Newsgroup: it.lavoro.informatica
Titolo: oggi mi sono iscritto a facebook.

e mentre giravo per le varie sezioni pensavo:
ma perche' non c'ho pensato io a fare una cosa del genere?
Capita pure a voi?

 
Eccome se capita... credo inoltre che ci abbiano già pensato in tanti: 
non è solo questione di difficoltà di implementazione, perché qualsiasi 
buon informatico ci si metta dietro riesce a realizzarlo, ma credo che 
il difficile sia anche (soprattutto) far sì che gli utenti lo utilizzino.

 buon informatico ci si metta dietro riesce a realizzarlo, 
e non gli basta una vita.
ma li sapete valutare i lavori? ci saranno cento anni/uomo di lavoro 
dietro a facebook. 


ti droghi parecchio? :)
qualche palata di php e tiri su il tuo facebook.
ha ragione il tipo sopra...il difficile e' lanciare un progetto ..non
realizzarlo.

 realizzarlo.
Questa è una minchiata. Credimi, Facebook non è qualche riga di php.
È passata da 3 a 400 dipendenti da quando di cui buona parte nell'IT
come operations engineer. Voglio vederti io a gestire un sito con
milioni di contatti giornalieri, terabyte di cache in RAM e non so
quante macchine solo per il servizio di chat in erlang.
-- 
Lawrence, 
oluyede.org
 - 
neropercaso.it
 - 
stacktrace.it
"It is difficult to get a man to understand 
something when his salary depends on not
understanding it" - Upton Sinclair

 qualche palata di php e tiri su il tuo facebook.
e poi sei sempre in ritardo nei progetti. ci credo, con queste 
valutazioni... :)

Kaizen ha scritto:

ok ti dò un aiuto, puoi partire anche da
http://elgg.org/
    (e ti ho detto molto)
ci risentiamo tra una settimana se vuoi sono il primo ad iscrivermi  :-)

 
Ora lo installo e lo traduco.... vedo se funzia. :)

 realizzarlo.
ROTFL! :-D
Ma si certo spaghetti codice! hahaha

 realizzarlo.
No, il difficile è pensare quali funzionalità spingere e come farle.
Sono d'accordo che tecnicamente non è questa complessità... a
copiarlo ! A inventarlo invece non è così semplice.

 Sono d'accordo che tecnicamente non è questa complessità... 
insomma, andiamoci piano.
non è che l'argomento ludico lo rende banale dal punto di vista tecnico. 
  solo per una chat di svariati milioni di utenti non immagino cosa ci 
sia dietro. poi ci sono tutte le altre applicazioni, le integrazioni con 
altri servizi... non ultimo, l'interfaccia veramente coi controcazzi.
-- 
++ questo messaggio è scritto in forma ridotta per venire incontro alle 
vostre capacità mentali
http://unopuntozero.wordpress.com/
http://www.flickr.com/photos/marko_po/

 realizzarlo.
Mi sembra incredibile come su un ng tecnico di informatica si possa 
sottovalutare la complessita' di uno tra i siti web piu' frequentati del 
pianeta! Non a caso, a Facebook ci lavora gente parecchio in gamba, 
inclusi alcuni ex di Google, Yahoo, Amazon e compagnia cantante.
A.

 Ora lo installo e lo traduco.... vedo se funzia. :)
Va a finire che ho detto pure qualcosa di utile va'!

 non ultimo, l'interfaccia veramente coi controcazzi.
esatto, ha segnato la storia di come pensare un applicativo sul web.
Diventerà il riferimento per chiunque voglia fare qualcosa di serio!

Kaizen wrote:

No.
Per quel che mi riguarda, Facebook non mi avrà mai!
:-DDDDDDDDDDD
-- 
Ciao!
Luca

 inclusi alcuni ex di Google, Yahoo, Amazon e compagnia cantante.
Già. 
E' facile pensare di essere i più fighi e pensare di essere incompresi, nel
frattempo gli altri "fanno" :-)
PaF

 Sono d'accordo che tecnicamente non è questa complessità...
Visto che avevi scritto la stessa cosa per PassPack, ti posso dire che 
gli autori
di Clipperz (servizio analogo) hanno impiegato circa un anno per sviluppare
l'idea ed arrivare ad un prototipo discretamente funzionante verso la 
fine del 2006.
(gli stessi che hanno sviluppato extrapola/internetbusinessnews)
Quasi 10 anni fa avevo impiegato un mesetto per arrivare ad un 
prototipo portabile
e distribuito [nojava]  che funzionasse sulla (molto) falsa riga del 
servizio akamai con
estensioni per apache ed apple streaming server, un'interfaccia web pietosa,
fix agli strumenti di sviluppo (web e orm) e senza toccare la questione
'risposta dns/localizzazione geografica'/bgp/as/etc.
Ma quando leggo ste cose... mi cascano le braccia!
Ciao
Mirko

 
Ho letto un po' questa nota tecnica di un loro ingegnere:
http://www.facebook.com/note.php?note_id=23844338919
Non ti sembra che il PHP non sia lo strumento adatto? 
Mi sembra una soluzione inventata e anche sporca (modificare la grammatica mysql?), 
quando forse con altre tecnologie (Java, Python) la soluzione
sarebbe stata a portata di mano e piu' trasparente.

 stata a portata di mano e piu' trasparente.
Cosa c'entra il linguaggio di programmazione con il problema della
replica e il load balancing? Questo genere di problemi di scaling ha
niente a che vedere con il linguaggio di programmazione


 e non so quante macchine solo per il servizio di chat in erlang.
cazz, la chat e' scritta in erlang?
Pensavo fosse usato solo in telefonia.
-- 
[cit. da INN-A]
I roditori una volta vivevano secondo natura...
Poi hanno incominciato ad incartare la cioccolata...
Adesso si rendono conto che spammare è più proficuo...

 Pensavo fosse usato solo in telefonia.
No, per niente. ejabberd non ti dice niente? Fa girare quasi tutti i
servizi di Jabber che ci sono in giro :D
RabbitMQ? YAWS?  sono in Erlang



tecnologie Java  = piattaforma Java.
Per python sono ignorante del tutto, quindi protrei aver detto una
castronata.
E la piattaforma conta, eccome se conta...Ad esempio quei problemi di
caching
non sarebbero forse risolvibili in maniera trasparente con EJB3 e, che
so, un JBoss, magari con un Terracotta di mezzo?

 stata a portata di mano e piu' trasparente.
io penso che quando si arriva a quei livelli di scalabilità l'eleganza 
delle soluzioni va a farsi benedire. mi riferisco in particolare al j2ee. 
ti fanno progettare nell'ottica di processi business "robusti" e dalle 
transazioni complesse ma sempre a scapito delle performance che in questi 
casi sono molto critiche. 

 so, un JBoss, magari con un Terracotta di mezzo?
ho appena risposto più su. no, imho non è pensabile.


Non sono tanto convinto di ciò, certamente bisognerebbe provare (ma
come?). Alcuni prodotti sono disegnati apposta per migliorare la
scalabilità e gestire carichi di lavoro molto alti. Terracotta, ad
esempio, non è  un giocattolino come potrebbe esserlo EHCache.
E poi non vedo perchè l'eleganza debba andare a farsi benedire
obbligatoriamente. Certo, concordo con te nel pensare che non sia un
punto fondamentale per Facebook.

 qualche palata di php e tiri su il tuo facebook.
Che sia giunto il momento di chiudere ILI?
Saluti.
Luciano

 RabbitMQ? YAWS?  sono in Erlang
cazzarola, e io che pensavo fosse un linguaggio di nicchia.


Luciano (DOC) ha scritto:

Calma, se parliamo delle problematiche di rete dovute alla gestione del 
traffico enorme ammetto che non saprei dove mettere le mani (sto 
approfondendo proprio in questo periodo le mie conoscenze di reti), ma 
se il mio primo lavoro in PHP è stato un negozio virtuale con tanto di 
ricerca dei prodotti approfondita (appoggiandomi a MySQL), credo proprio 
che, almeno per quanto riguarda strettamente la programmazione web, non 
sia un lavoro di 100 anni/uomo!

 traffico enorme ammetto che non saprei dove mettere le mani
Ma non sono solo problematiche di rete... se un programmatore deve 
progettare un'applicazione su un'infrastruttura complessa e distribuita 
come quella di Facebook, non puo' prescindere da questa complessita' nel 
suo codice.
Se iniziamo ad affermare che Facebook e' un lavoro da qualche palata di 
php, allora un sacchetto di arance (come ho letto in un thread qui 
sotto) e' una ricompensa anche troppo generosa per un sito web 
aziendale. :-)
A.

 sia un lavoro di 100 anni/uomo!
Il mio primo lavoro č stato cercare una stringa all'interno di un testo. Se
non mi avessero fregato sul tempo quei due lŕ, com'č che si chiamano, Page e
Brin...
Saluti.
Luciano

 sia un lavoro di 100 anni/uomo!
prima di tutto guarda *per* *bene* com'è fatta l'interfaccia di facebook 
e dimmi se il tuo negozio virtuale si avvicina a quegli standard.
poi guarda *per* *bene* le funzionalità che implementa e dimmi se è il 
caso di paragonarle ad un sito di negozio virtuale, seppur "con tanto di 
ricerca dei prodotti approfondita".
dopodichè si comincia a parlare del nocciolo del problema, ovvero reggere 
all'urto di milioni di utenti che vogliono comunicare in tempo reale fra 
loro, tenendo conto che il tuo programma nemmeno si pone il problema 
applicativo di mettere in comunicazione due utenti. 

 applicativo di mettere in comunicazione due utenti. 
Infatti parlavo a prescindere da queste problematiche che francamente 
ignoro (nel senso che il mio know how in materia è praticamente assente).

 cazzarola, e io che pensavo fosse un linguaggio di nicchia.
Lo è ancora numericamente parlando, ma il mondo del web si è accorto da
qualche anno che per fare quello per cui è progettato (sistemi
distribuiti con fault tolerance) è pressoché imbattibile. E siccome le
applicazioni web che stanno dietro a questi social cosi son tutto meno
che scherzi... beh... eccolo qui :)


 so, un JBoss, magari con un Terracotta di mezzo?
Cioč intendi una soluzione che automaticamente faccia la stessa cosa?
Non ho la minima idea se esistono soluzione pronte per problemi del
genere. Magari a scriverlo ci hanno messo una settimana e a testarlo un
mese, scriverlo da zero con JBoss o che avrebbe probabilmente portato
via molto molto piů tempo. 
Non disdegnare le soluzioni custom, soprattutto se non conosciamo
appieno il dominio.


 punto fondamentale per Facebook.
A me viene in mente l'esempio di plentyoffish che č un sito con un
traffico mostruoso che praticamente ha eliminato qualsiasi tipo di
framework. Vedi anche l'architettura di ebay. Le soluzioni preparate
scalano fino ad un certo punto (indipendentemente che sia il punto che
ci interessa o meno), ma se non hai degli ingegneri con le palle non c'č
linguaggio o piattaforma che tenga quando si arriva a quei livelli.


 Brin...
Che poi come ben sai la parte di ricerca è solo una parte del problema
;-)


 ignoro (nel senso che il mio know how in materia è praticamente assente).
beh si potesse prescindere dalle problematiche sarei il miglior 
programmatore del mondo...

 cosi son tutto meno che scherzi... beh... eccolo qui :)
infatti, in se, l'idea del social network e' di una boiata disarmante 
(ad averci pensato per primo :)), ma il tutto deve essere di una 
complessita' disarmante, backend e frontend distribuiti, applet, 
storage, applicativi realtime o quasi.
tanto di cappello, come sistemista non ho mezzi per quantificare il 
lavoro di sviluppo che c'e' dietro, ma dalla parte del ferro, devo dire 
che c'e' un bel dispendio di mezzi e di persone.
-- 
[cit. da INN-A]
I roditori una volta vivevano secondo natura...
Poi hanno incominciato ad incartare la cioccolata...
Adesso si rendono conto che spammare č piů proficuo...

 appieno il dominio.
Non disdegno. Sarei comunque interessato a sapere che armi usare per affrontare
un problema di quel tipo nella piattaforma Java, quella su cui lavoro.

 appieno il dominio.
Non disdegno. Sarei comunque interessato a sapere che armi usare per affrontare


 lavoro.
Beh immagino che di casi d'uso ce ne siano in giro. Fatti un giro su
highscalability.com


 po' eccessivo. :-)
Certo, condivido, però 100 anni/uomo mi sembrano comunque tantissimi..., 
3 anni/uomo ok!

 3 anni/uomo ok!
A mio parere 100 anni-uomo (non anni/uomo) e' una stima piuttosto 
prudente. :)
Ma 3 anni-uomo e' decisamente sballata... vorrebbe dire che un team di 
12 persone ci metterebbe 3 mesi per realizzare il progetto.
A.

 A.
Non è sempre vera questa equivalenza: l'overhead per integrare il lavoro 
di più persone non è da sottovalutare. Però due persone un anno e mezzo 
credo di sì: una si dedica all'interfaccia e al database (programmazione 
PHP e MySQL), l'altra alle problematiche di rete di cui hanno parlato 
altri... ma siamo poi sicuri che siano necessarie? Voglio dire, non 
esistono servizi di hosting che fanno già questo? Magari ti sparano 1000 
euro al mese, ma ti garantiscono un minimo di banda.


Scusate, ma siete andati a leggere il link che è stato postato ? Avete 
letto gli altri articoli presenti nel blog ?
Alcuni cose che mi ricordo al volo:
- i loro server web inviano 300.000 (TRECENTOMILA) immagini AL SECONDO
- l'occupazione di spazio aumenta di 2/3 TERABYTE AL GIORNO
- hanno il sistema di data-mining più potente che hanno (fra i vari) ha 
UN PETABYTE di dati e DUEMILACINQUECENTO CORE dedicati
- hanno costruito un secondo data-center in Virginia anche per 
risparmiare 70ms di viaggio verso il datacenter in California per gli 
utenti europei
-- per sincronizzare i due data-center e per ovviare alle latenze di 
propagazione master-slave di mysql sono dovuti intervenire in vari modi, 
un mix di programmazione php, tuning dei load-balancer layer 7 e non 
ultimo la modifica del parser di mysql per accettare dei comandi 
aggiuntivi che vengono replicati e servono a invalidare le cache....
D'altro canto, nello stesso blog si racconta come sia stata aggiunta una 
feature in qualche ora, addirittura mettendo online macchine di 
sviluppo.... ma anche dello studio del sistema di segnalazione di quando 
un amico è online per la chat, studio nel quale si sottolinea come molte 
di queste cose devono essere pensate e testate per benino in quanto da 
quando le metti online passi da zero utenti a QUALCHE MILIONE nel giro 
di pochi minuti !!!!
Forse all'inizio sarà stato pure una qualche manciata di php... ma non 
più ora...
Francesco

 3 anni/uomo ok!
3 anni uomo vorrebbe dire che 3 persone lo realizzano in un anno, sei in 
sei mesi, 12 in tre mesi. considerato che ad oggi sono 700 impiegati 
dovrebbe fattibile in 37 ore, minuto pių minuto meno.

FP ha scritto:

Ok, ma se non lo realizzi questo sito come fai a farci andare gli 
utenti?? L'argomento principale del thread era questo: se all'inizio è 
stata una manciata di PHP, può venire da dire "perché non ci ho pensato 
io?". Non è che se pensi ad un progetto come Facebook ti crucci subito 
con le problematiche che derivano da milioni di utenti collegati, e se 
arriveranno gli utenti, via via che si guadagna in pubblicità, si 
investe in ulteriori risorse.

 prudente. :)
bah, parliamone.
il sito è nato nel 2004, ok che sono partiti con tre persone (e già 
siamo a 12 anni uomo) ma mi risulta che siano centinaia quelli che ci 
hanno lavorato nell'ultimo periodo.
se è vero quello che dice wikipedia che attualmente gli impiegati sono 
700, supponendo che la metà siano addetti alla manutenzione/sviluppo, 
supponendo che siano stati assunti solo nel 2008, calcoli alla mano 
abbiamo già abbondantemente sforato il preventivo :)

 dovrebbe fattibile in 37 ore, minuto pių minuto meno.
non esageriamo :D son "solo" 400. e non di certo tutti sviluppano o
gestiscono l'architettura 


 A.
Nooooooooooooooo!
Che lo dica un commerciale passi, ma....se cominciamo a dire anche noi 
che 3 anni-uomo corrispondono a 3 mesi per 12 persone è la fine...!
Quindi secondo te il futuro Windows 3000 sarà sviluppato in un mese da 
100 000 sviluppatori indiani?!
Lasciamo ai commerciali o ai manager della domenica queste castronerie 
semplicistiche e cominciamo a studiare seriamente a come stimare lo 
sviluppo di un software.
Maurus


Vale anche se il progetto non è ancora in ritardo. La velocità di
sviluppo software non è direttamente proporzionale al numero di
programmatori su un singolo progetto.



E 9 donne possono fare un bambino in 1 mese.
http://www.geekherocomic.com/2008/10/17/how-to-improve-productivity/
-- 
Salvatore Iovene
http://www.iovene.com/
http://www.geekherocomic.com/

 gestiscono l'architettura
la mia era ovviamente una battuta :) comunque l'avevo letto su wikipedia:
http://en.wikipedia.org/wiki/Facebook
e in ogni caso parlare di tre anni uomo per un progetto che è in sviluppo 
pressoché continuo da 5 anni mi sembra bizzarra come valutazione e basta 
una media di 20 addetti in questi 5 anni per arrivare alla mia. penso di 
essere stato anche ottimista :)

 100 000 sviluppatori indiani?!
Mi stai attribuendo bytes che non ho inviato. :-)
Non era mia intenzione affermare equazioni astruse, ma semplicemente 
osservare che 3 anni-uomo per sviluppare Facebook e' una stima sballata.
A.