Facebook developer garage a Venezia!


Facebook ha da poco raggiunto i 300 Milioni di utenti e proprio oggi è stata resa nota la presentazione che il VP of Technology, Jeff Rothschild ha tenuto e in cui spiega la tecnologia che sta dietro al social network dai grandi numeri. Una delle cose che più mi mette in imbarazzo sono i dati forniti in questa presentazione: 25 Terabyte di log salvati da facebook ogni giorno, 1miliardo di messaggi di chat inviati ogni giorno, 200 miliardi di pagine viste al mese… Tutto ciò è permesso da un’infrastruttura (i software utilizzati li ho già discussi in questo post) che conta circa 30000 servers….. eeeeeeeh?? Ebbene sì 30mila servers e qui sotto potete notare una foto scattata in uno dei Fb data center…

Cioè…. ma avete idea di cosa vuol dire?

Tutto ciò per fare venire l’acquolina in bocca a chi leggerà questo articolo e far sapere che venerdì 23 ottobre a Venezia ci sarà il Facebook developer garage, un incontro dove verranno spiegate le caratteristiche principali del social network, le peculiarità delle sue API e come utilizzare queste ultime per integrarle nei propri siti web o creare fb application. Come ultimo appuntamento della giornata ci sarà l’intervento di un “facebook engineer” direttamente da Palo Alto (CA, U.S.A)
Buon divertimento! (se pensate di andarci!)
[ad]

La versione open source di Google App Engine? …esiste!

Tornado Web Server

Come qualcuno di voi sa, la mia tesi di laurea riguardava lo studio di Google App Engine e più in generale del Cloud Computing, un argomento che mi ha molto affascinato, e che di questi tempi è sempre più di attualità. Alcuni giorni fa, ho notato tra i vari post sulla mia bacheca di facebook, quello proveniente dalla pagina facebook.com/engineering di cui sono fan (accanito). Questo articolo riguardava la decisione di facebook di rendere open source un progetto molto interessante: Tornado web server. Cos’è Torndado? Semplice! Un web server che supporta un elevato numero di connessioni simultanee, con integrato al suo interno, un web-framework python, del tutto simile a webapp (il web-framework fornito di default con Google App Engine, versione per python). Tornado è stato creato dai fondatori di Friend Feed, e quando facebok ha acquisito questa società, ha pensato bene di arrichire la lista dei suoi progetti rilasciati con licenza open source. Bene, proprio da questa lista, sono venuto a conoscenza di altri progetti molto interessanti, tra cui Hive e Cassandra, ma soprattutto Hadoop, un insieme di software (anch’essi, tutti open source, in cui è compreso anche Hive) che permettono di realizzare un’infrastruttura di server altamente scalabile e distribuita. Da notare inoltre che Cassandra è la versione open source di Big Table, il database ad oggetti utilizzato da google per quasi tutti i suoi progetti più importanti (tra cui la ricerca), nato dalle menti di alcuni ingegneri impiegati presso Big G, e al quale avevo dedicato un capitolo della mia tesi (che potete trovare su sellbook).

Ok e con ciò? Tutto questo era per dire che se vogliamo replicarci un sistema in stile App Engine, ma sui nostri server, è una cosa possibile. Allo stesso modo è possibile utilizzare solo alcuni di questi software, ad esempio Hadoop con mysql e php, oppure Tornado con mysql, ecc ecc…(lascio a voi tutte le altre combinazioni).

Ho riempito questo articolo di link, mi rendo conto che sono un po’ troppi, ma così potete documentarvi a sufficienza su tutti questi progetti, che personalmente mi hanno intrigato parecchio! ;-)

Buon divertimento!
[ad]

Web & Flash: risolvere tutti i problemi di compatibilità

Come spiega il titolo, in questi giorni, ho avuto qualche piccolo problema nell’embedding di oggetti flash in alcune pagine web a cui stavo lavorando.

Chiunque si sia cimentato, anche solo per poco, nel mestiere del web developer, avrà certamente incontrato problemi nel rendere uguale per tutti i browser le pagine web. Con quasi tutti i browser, le pagine vengono renderizzate in un certo modo, mentre con altri browser no (notare, non c’è la “s” del plurale :-P ). E così è anche per gli oggetti flash. Il browser appena linkato pensa bene di riconoscere l’embedd come controllo Active X, e non lo visualizza (a meno che… ma la storia si fa lunga e tortuosa). Googleggiando, ci si imbatte quasi subito in swfobject, un oggetto javascript che ci toglie le castagne dal fuoco e mette in pista in un attimo il nostro lavoro. Il codice da scrivere è veramente ridotto all’osso, vi riporto l’esempio che faceva al caso mio con l’embedd del player flash di livestream.com (una piattaforma di streaming video):

  1. Includere la libreria nel tag <head>:
    <script type="text/javascript" src="swfobject.js"></script>
  2. Creare il div che ospiterà l’oggetto flash:
    <div id="livestreamPlayer"></div>
  3. Creare l’oggetto con il codice javascript:
    <script type="text/javascript">
    	flashvars = { channel: 'livestreamearth' };
    	params = { AllowScriptAccess: 'always' };
    	swfobject.embedSWF("http://cdn.livestream.com/chromelessPlayer/wrappers/
    SPlayer.swf","livestreamPlayer", "400", "300", "9.0.0", "expressInstall.swf",
    flashvars, params);
    </script>

Come si può intuire la variabile flashvars conterrà le variabili di cui l’oggetto flash necessita per funzionare mentre params conterrà i settaggi flash per l’oggetto. Il primo parametro è invece il path dell’oggetto flash da embeddare, il secondo è l’id del div che lo conterrà nella nostra pagina, seguito da width e height, versione di flash richiesta e oggetto flash(fornito insieme ad swfobject) che consente di aggiornare la propria versione di flash installata sul pc.

Con questi semplici passi si otterrà il caricamente dell’oggetto flash tramite javascript, che consentirà di bypassare il blocco di alcuni browser e di eseguirlo senza problemi in tutti gli altri ;-).

Eccovi il link per scaricare lo zip contenente swfobject: http://bit.ly/3GWdi6

<script type="text/javascript" src="swfobject.js"></script>

[ad]