<p><br>
Il giorno 24/ago/2012 14:32, &quot;Sandro Mosca&quot; &lt;<a href="mailto:stoke95@gmail.com">stoke95@gmail.com</a>&gt; ha scritto:<br>
&gt;<br>
&gt; L&#39; I/O che &quot;non si blocca&quot; è semplicemente un nome, ovvio che un I/O per definizione si blocchi prima o poi.</p>
<p>Appunto ;) <br></p>
<p>&gt; Comunque se hai altri link<br>
Si, quando torno dalle vacanze te li passo.</p>
<p> <br>
&gt; Ovviamente si può programmare con I/O asincrono in qualsiasi linguaggio, il problema è che alcune volte è abbastanza ostico.</p>
<p>Esattamente quello che dicevo ;)</p>
<p>Manda la proposta di talk. Se è troppo complessa ti trovo un posto più cazzuto dove mandarla.</p>
<p>Pace e buone vacanze,<br>
Rob</p>
<p>&gt; Node.js è un framework che sta avendo molto successo<br><br><br></p>
<p>, perché:<br>
&gt;<br>
&gt; 1) E&#39; Javascript<br>
&gt;<br>
&gt; 2) Rende la programmazione asincrona veramente, veramente semplice.<br>
&gt;<br>
&gt; Per quanto riguarda la complessità delle richieste, se si usano anche altre lib asincrone (ovviamente se l&#39;I/O è asincrono, lo saranno anche i socket, se lo sono i socket, le lib per l&#39;accesso a qualsiasi db saranno asincrone) non c&#39;è un vero e proprio calo: transloadit (<a href="https://transloadit.com/">https://transloadit.com/</a>) è un servizio per l&#39;encoding di video, audio ed immagini, basato completamente su node.js, e difficilmente riesco a pensare a delle richieste più complesse di quelle.<br>

&gt;<br>
&gt; Il giorno 24 agosto 2012 08:54, Roberto Polli &lt;<a href="mailto:robipolli@gmail.com">robipolli@gmail.com</a>&gt; ha scritto:<br>
&gt;<br>
&gt;&gt; Penso che per i talk vada benissimo un argomento più leggero ;)<br>
&gt;&gt;<br>
&gt;&gt; Il libro te lo consiglio per cultura personale perché è molto bello. Mi.fa piacere che un giovane conosca tutte ste cose.<br>
&gt;&gt;<br>
&gt;&gt; Se invece ne sai già abbastanza e volessi approfondire ulteriormente fai sapere e ti giro altri link.<br>
&gt;&gt;<br>
&gt;&gt; Sull&#39;io asincrono, ovviamente esiste. Non è un io «che non si blocca» ma è appunto asincrono. Se non si blocca all&#39;inizio si bloccherà alla fine :P<br>
&gt;&gt;<br>
&gt;&gt; E che non dipende dal linguaggio di programmazione ma dal programmatore ;)<br>
&gt;&gt;<br>
&gt;&gt; Su nginx ok, ma distingui la capacità di processare tante richieste da quella di processare richieste complesse.<br>
&gt;&gt;<br>
&gt;&gt; Sono curioso sulla tua proposta di talk: sarà sicuramente interessante.<br>
&gt;&gt;<br>
&gt;&gt; Se hai qualcosa di più pesante considera la possibilità di partecipare a qualche conferenza: gli mandi paper on line e se  lo accettano bella per te.<br>
&gt;&gt;<br>
&gt;&gt; Pace,R<br>
&gt;&gt;<br>
&gt;&gt; Il giorno 23/ago/2012 23:30, &quot;Sandro Mosca&quot; &lt;<a href="mailto:stoke95@gmail.com">stoke95@gmail.com</a>&gt; ha scritto:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Allora mi sa che non ci siamo capiti dall&#39;inizio.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Quel libro è sull&#39;I/O base di linux (che tral&#39;altro già conosco). Se volevo fare un talk su come il kernel gestisce l&#39;accesso ai file lo dicevo da subito.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Libuv (<a href="https://github.com/joyent/libuv">https://github.com/joyent/libuv</a>) è una lib cross-platform per l&#39;astrazione di altre librerie (IOPL e libev), che servono proprio per utilizzare l&#39;async I/O, che per inciso esiste, e consiste semplicemente nel fatto di avere la possibilità di continuare l&#39;esecuzione del programma senza aspettare che l&#39;input sia completamente arrivato.<br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt; L&#39;async I/O e la conseguenziale programmazione event-driven stanno avendo molto successo, poiché diventa molto più semplice gestire problemi concorrenziali, la memoria usata è molto bassa (essendoci un numero limitato e predefinito di thread), e per le sue performance molto soddisfacenti.<br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt; Un classico esempio di server http buildato con questa tecnologia è nginx (<a href="http://nginx.org/">http://nginx.org/</a>), so che una volta era usato da youporn (possiamo ben immaginare che tipo di richieste deve processare un web server in caso di un sito così conosciuto e di contenuto così spinto).<br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt; Il giorno 23 agosto 2012 21:43, Roberto Polli &lt;<a href="mailto:robipolli@gmail.com">robipolli@gmail.com</a>&gt; ha scritto:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Per l&#39;i/o asincrono può interessarti questo. Nei capitoli su read e write illustra molto bene le problematiche dell&#39;i/o, l&#39;uso delle cache, ...<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; LibUv ovviamente è un&#39; altra cosa ;)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Pace, Rob<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="http://seesee.pbworks.com/f/linux.pdf">http://seesee.pbworks.com/f/linux.pdf</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; <a href="http://www.llg.it">http://www.llg.it</a><br>
&gt;&gt;&gt;&gt; latina mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:latina@lists.linux.it">latina@lists.linux.it</a><br>
&gt;&gt;&gt;&gt; <a href="http://lists.linux.it/listinfo/latina">http://lists.linux.it/listinfo/latina</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; <a href="http://www.llg.it">http://www.llg.it</a><br>
&gt;&gt;&gt; latina mailing list<br>
&gt;&gt;&gt; <a href="mailto:latina@lists.linux.it">latina@lists.linux.it</a><br>
&gt;&gt;&gt; <a href="http://lists.linux.it/listinfo/latina">http://lists.linux.it/listinfo/latina</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; <a href="http://www.llg.it">http://www.llg.it</a><br>
&gt;&gt; latina mailing list<br>
&gt;&gt; <a href="mailto:latina@lists.linux.it">latina@lists.linux.it</a><br>
&gt;&gt; <a href="http://lists.linux.it/listinfo/latina">http://lists.linux.it/listinfo/latina</a><br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; <a href="http://www.llg.it">http://www.llg.it</a><br>
&gt; latina mailing list<br>
&gt; <a href="mailto:latina@lists.linux.it">latina@lists.linux.it</a><br>
&gt; <a href="http://lists.linux.it/listinfo/latina">http://lists.linux.it/listinfo/latina</a><br>
&gt;<br>
</p>