-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 

« Perl nelle imprese - C'è speranza | Home | Per i solutori più che abili »

Ciò che senza Perl non si sarebbe potuto fare
08.08.04

Salve a tutti,
sono un "vecchio" programmatore (non nel senso anagrafico... ) e ultimamente ho ringraziato il "santo degli sviluppatori" per aver fatto in modo che esistesse Perl.

Mi spiego.

Da poco ho pubblicato su freshmeat un progetto già in versione stabile che consiste in un completo framework per realizzare una radio via web.

Bhè, direte, è dov'è la novità?

Esistono software a bizzeffe per questo tipo di attività: ShoutCast (o IceCast), Real, WindowsMedia, ecc..

Ma tutte queste piattaforme hanno un "difetto" comune non indifferente: necessitano di un server dedicato e, per di più, in ascolto su una porta specifica, necessariamente diversa da quella http (la 80).

Quello che avevo in mente di fare (e che alla fine ho fatto) era una web radio funzionante sui normali servizi di hosting, dove non puoi compilarci sopra sorgenti e men che meno avviare binari.

Anche potendolo fare, la porta aperta da uno di questi software (come la 8000 di ShoutCast) sarebbe stata irraggiungibile per via degli onnipresenti firewall.

Armato di pazienza, ho sviluppato due CGI (ovviamente in Perl) che "simulano" normali connessioni HTTP con l'esterno, e comunicano tra loro via UDP.

In pratica, la sorgente audio, si connette al server effettuando un semplice POST http e invia l'audio in streaming.

Con linguaggi come PHP, le variabili dei form si presentano allo script solo quando tutti i dati sono stati correttamente ricevuti dal web server.

In Perl invece, i dati inviati come POST sono messi in pipe da Apache con lo script CGI: basta quindi leggere un pò alla volta i byte dallo STDIN e il gioco è fatto.

Con un ciclo temporizzato, lo script invia i dati a blocchi via UDP sull'interfaccia 127.0.0.1 ad altri script (sempre in Perl) che inviano l'audio agli ascoltatori emulando un semplice download http (metodo GET).

Questa tecnica si risolve in due fondamentali vantaggi:

1. Il costo: con questo sistema, avere una propria stazione radio sul web costa esattamente quanto avere un normalissimo hosting linux con Perl, cioè pochi euro all'anno. Da notare che moltissimi hosting provider (tipo il mio) danno "banda illimitata" ai propri clienti, ignari dell'esistenza di questo sitema di streaming (hi hi hi ...)

2. La stragrande maggiornaza del traffico internet è oramai frutto di connessioni aziendali, dove sempre più spesso si installano firewall (che chiudono porte) o proxy (che non permettono connessioni dirette) o entrambi. Questi utenti perciò sono quasi sempre tagliati fuori dalla maggior parte sei servizi di streaming, in primis quelli basati su RTSP. Il mio framework, invece, permette sia di INVIARE che di RICEVERE ovunque si possa navigare sul web, con o senza firewall/proxy/NAT.

Tutto questo grazie a Perl !!!

PS: dimenticavo, il progetto si chiama PicoStreamer ed è su http://www.freshmeat.net/picostreamer, un forum di supporto (dove aiuterò a risolvere problemi) è su http://www.vinz486.com/forum , una pagina di test è su http://www.vinz486.com/picostreamer dove, volendo, posso creare un account di test per chiunque voglia provare (il mio è uno di quegli hosting che dà banda illimitata, eh eh eh ... )

Ciao!!!

Inviato da vinz486 il 08.08.04 20:10
Ti è piaciuto questo articolo? Iscriviti al feed!

Inviato da Luigi il 08.05.06 13:11

Ciao, ho letto il tuo blog su PicoStreamer.
Dove lo posso reperire?
Avrei bisogno di dare un'occhiata al codice, visto che devo scrivere un server RTSP per il video on demand e forse questo tuo codice mi potrebbe essere di aiuto.










Devo ricordare i dati personali?






D:
Sull'autore...
Inviato da vinz486 il 08.08.04 20:10.
Post recenti di vinz486:
D:
La ML di Perl.it
Iscriviti! mongers@lists.perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
D:
Annunci Google