Introduzione al Perl Object Environment (POE)/2

L’articolo che segue è la seconda e ultima parte di questa introduzione al Perl Object Environment. La prima parte è disponibile a questo link.

Wheel e componenti

La prima classe di oggetti che possono aiutare a sviluppare più rapidamente le nostre applicazioni con POE sono chiamate Wheel. Si tratta di insiemi di event handler, che possono essere iniettati all’interno di una sessione per istruirla a reagire ad un più ampio insieme di stimoli senza dover faticare troppo. Un esempio semplice da seguire é quello che adopera la classe POE::Wheel::FollowTail. Si tratta di una wheel che aiuta a creare applicazioni che, come il comando UNIX tail, seguono l’evolversi di un file specificato.

[Read more...]

Introduzione al Perl Object Environment (POE)/1

Se vi siete sempre cimentati con script di shell, applicazioni web o semplici CGI — e questa è una sorte comune a molti programmatori Perl — allora siete probabilmente abituati a concepire i vostri programmi come una sequenza di operazioni che avvengono l’una dopo l’altra in maniera lineare, o al più pilotate dallo stato del sistema e dall’input fornito al programma.

Ci sono però tanti casi in cui un simile approccio non va bene: ad esempio tutto l’insieme delle applicazioni GUI, che devono essere reattive alle azioni dell’utente, e per le quali di conseguenza non è possibile individuare a priori una sequenza di operazioni da svolgere: l’impredicibilità dell’agire dell’utente, e la quantità di attori che devono modificare il proprio stato in base ad esse, impedisce — o rende molto difficile — usare il medesimo approccio che normalmente governa i programmi tradizionali. Altra categoria che può trarre beneficio da un approccio ad eventi è quella dei software che devono implementare protocolli di comunicazione con agenti esterni, come quelli di networking.

[Read more...]

Recensione di High Performance Web Sites

High Performance Web Sites Nella botte piccola c’è il vino buono, recita un vecchio proverbio che calza alla perfezione a questo libro, all’apparenza piccolo ma estremamente utile per tutti coloro che lavorano nell’ambito web.

Il problema delle prestazioni di un sito web è tutt’altro che banale, nonostante oggi gli ISP facciano a gara a fornire contratti ADSL dalle prestazioni sempre maggiori e l’hardware medio, sia lato utente finale sia lato server, abbia raggiunto prestazioni di altissimo livello. Tuttavia, la tecnologia evolve anche dal lato software ed è sempre fondamentale minimizzare il tempo di caricamento di una pagina web sia per aumentare il feedback di risposta per l’utente (un sito web estremamente lento nel caricamento alla lunga fa fuggire tutti) sia per ridurre il carico dei server e l’occupazione di banda. E troppo spesso si ignora che i problemi nascono proprio da un’errata progettazione del front-end dell’applicazione web. Se sul lato server, infatti, oggi esiste un arsenale di tecniche molto collaudate (cache, bus in fibra ottica, replicazione, load balancing, ecc) che consentono di ridurre il tempo di generazione di una pagina web, sul fronte web il dare eccessivamente per scontato bande trasmissive sempre maggiori ha portato a dimenticare o sottovalutare aspetti che costituiscono il reale collo di bottiglia per l’utente.

[Read more...]

Samba riceve la documentazione dei protocolli Microsoft

SambaDopo 16 anni di lavoro finalmente, grazie anche all’UE, Microsoft condivide la
documentazione sui protocolli utilizzati da Windows con la PFIF (Protocol
Freedom Information Foundation). Il primo, e scontato, progetto a trarne
vantaggio sarà Samba.

Si tratta di uno sviluppo estremamente interessante, evoluzione della causa
Microsoft-UE terminata a settembre del 2007; i termini dell’accordo tra PFIF e
Microsoft sono però abbastanza complicati, infatti resteranno validi i
brevetti sui protocolli e la visione della documentazione sarà permessa solo
agli sviluppatori di Samba che firmeranno un contratto di
non-disclosure.

[Read more...]

Utilizziamo i device TunTap per realizzare una piccola VPN in userspace su GNU/Linux (parte 1).

Di recente sulla mailing list italiana di python è nata una discussione interessante sull’implementazione di stack
IP utilizzando python. Una scuola di pensiero relegava questo tipo di programmazione in kernel space, ma io faccio parte
dell’altra scuola…

Però sono un perlista (perdonatemi) quindi ora illustrerò come realizzare una semplice VPN completamente in userspace
(niente ipsec, kame e amici) in perl.

[Read more...]

Presto Internet non basterà più

Mappa di InternetSi ripetono negli ultimi anni gli annunci e gli studi di raggiungimento dei limiti di capacità della grande rete. Numerose sono le soluzioni che di volta in volta vengono intraprese per ritardare quello che sembra inevitabile anche per via del fatto che le pezze si limitano a mascherare temporaneamente i problemi, senza però risolverli definitivamente.

[Read more...]