Logo Blogo

Intervista agli autori di Segnalo.com

Pubblicato: 18 gen 2006 da Cristian

Intervista agli autori di Segnalo.comAbbiamo intervistato per voi i creatori di Segnalo.com, interessante progetto italiano di social bookmark, di cui vi abbiamo parlato la settimana scorsa.

Risponde a questa lunga intervista uno degli autori di Segnalo, Salvatore “Antirez” Sanfilippo. Mettetevi comodi.

[SS] Ciao a tutti i lettori di Downloadblog.

[DOWNLOADBLOG] Innanzitutto, quando avete cominciato a pensare a Segnalo.com? Quali sono stati i vostri riferimenti e gli obiettivi che vi eravate posti inizialmente?

[SS] Abbiamo iniziato a pensare a Segnalo dopo aver visto Del.icio.us. La nostra prima reazione e’ stata: caspita quanto e’ utile!
Io sono molto disordinato, i miei bookmark sono solitamente affollati, disorganizzati, e non superano alcuni mesi di vita. Quando aggiorno il browser, cancello tutto perche’ e’
diventato troppo lungo o qualcosa del genere, dunque dopo qualche giorno sono diventato totalmente ‘addicted’ all’idea di Del.icio.us.

[SS] Siamo rimasti davvero meravigliati della difficolta’ di utilizzo di Del.icio.us, l’interfaccia era cosi’ poco chiara che serve un po’ di tempo per capire come aggiungere il primo sito, come
tornare alla home, e altre operazioni basilari. Allora abbiamo pensato che un servizio di questo tipo che aveva grandi potenzialita’ era poco adatto al navigatore medio italiano: la lingua e l’interfaccia erano una barriera troppo alta all’entrata. Qualche mese dopo io e Fabio avevamo gia’ iniziato a sviluppare Segnalo.com.

[DOWNLOADBLOG] Tra i vari servizi di bookmarking sociale, da Delicious a Blogmarks, quale apprezzate di più? Ci sono funzionalità di qualcuno di questi che pensate di replicare?

Simpy.com, uno dei concorrenti di Delicious con più funzionalità
[SS] Tecnologicamente uno dei servizi migliori e’ Simpy.com. Simpy cerca dentro le pagine dei preferiti degli utenti tramite un crawler, controlla se ci sono errori 404, indicizza il testo del sito come google (e poi permette di cercarci dentro).
Del.icio.us secondo noi e’ quello che offre di meno in termini assoluti, ma ha centinaia di migliaia di utenti: e’ “fatto per scalare”, non so dunque se e’ un termine di paragone equo. E’ facile fare un sito con pochi utenti che faccia delle cose meravigliose. Tentare di fare cose complesse e riuscire allo stesso tempo a servire tanti utenti in tempi ragionevoli e’ una cosa piu’ complessa (per lo stesso motivo non si puo’ cercare su google con le regexp, e neppure con semplici
caratteri “jolly” in cui la ricerca per “mel*” mostra le pagine che contengono “mela”, “melone”, “Melinda” e cosi’ via).

La nostra idea di base comunque e’ che “less is more”. Vogliamo aggiungere diverse funzionalita’ a Segnalo, ma devono essere tutte cose di comprovata utilita’. La funzionalita’ che non usera’ quasi mai nessuno e rende il sito piu’ complesso non e’ sicuramente quella che inseguiremo.

[DOWNLOADBLOG] Parliamo di tecnica: quale linguaggio avete utilizzato per creare Segnalo.com? Cosa pensate di tutto questo “hype” su Ajax? Avete in serbo per noi nuovi “effetti speciali”?

[SS] A malincuore abbiamo utilizzato PHP. E’ un linguaggio che permette poche astrazioni, e’ poco potente e sicuramente poco elegante, e possiede la libreria piu’ confusa dei linguaggi che hanno un livello di popolarita’ paragonabile… eppure abbiamo dovuto sceglierlo per una serie di motivi.

Segnalo.com e’ progettato per avere costi di mantenimento bassissimi e per essere facilmente spostato su un diverso server, vogliamo riuscire a tenere il servizio vivo per un tempo indeterminato anche se non produce alcun profitto: lo dobbiamo agli utenti che si sono iscritti e che usano il servizio.
Inoltre e’ facile trovare persone esperte di PHP in caso dovessero servire nuove leve, e siamo sicuri che progetti in PHP possano scalare molto nonostante i limiti del linguaggio (vedi ad esempio digg.com che e’ scritto in PHP).

Abbiamo sommato tutto questo… e abbiamo anche visto che i servizi di bookmark sociale non hanno dietro programmi complessi, ma algoritmi complessi (in modo da scalare bene), e abbiamo dunque deciso per PHP.

Se ci fossero stati dei finanziatori alle nostre spalle personalmente avrei utilizzato Ruby, Tcl, Scheme, o qualche altro linguaggio dinamico piu’ potente, flessibile ed organizzato.

[SS] Per quanto riguarda AJAX, e’ una tecnologia interessante che avvicina il web alla sua meta ultima: una piattaforma di sviluppo universale.
Il web sta diventando velocemente cio’ che si voleva diventasse Java.
Francamente non credo che Del.icio.us, Segnalo o Digg abbiano bisogno di AJAX in termini assoluti per funzionare, si potrebbero fare delle versioni piu’ semplici ma quasi ugualmente utili senza una riga di Javascript.
Ma le dinamiche non sono cosi’ semplici… credo siano successe alcune cose negli ultimi anni: adsense e altri programmi di advertising hanno fatto diventare lo sviluppo di applicazioni web una fonte di guadagno per programmatori abili, questo ha fatto si che gli hacker invece di scrivere solo compilatori ottimizzanti o tool di sicurezza si siano avvicinati a
questo mondo, e i risultati sono stati delle innovazioni (o proliferazione di tecnologie esistenti) quali AJAX che hanno reso meno noioso lo sviluppo sul web. Questo a sua volta ha attirato altri programmatori capaci, e cosi’ via.

[DOWNLOADBLOG] Quale pensate sia la via per insegnare alle persone che lavorano in aziende e amministrazioni pubbliche l’utilizzo di tecniche collaborative?
Deve per forza partire tutto dall’alto o ritenete che sia invece dal basso che partirà questa rivoluzione comunicativa?

[SS] Scegliere a monte persone valide, quando queste vengono assunte.
La pubblica amministrazione dovrebbe essere come una azienda sana, meritocratica. Scelte le giuste teste, bisogna poi formarle, ma e’ semplice se hai trovato le persone giuste.
Lo stato e le aziende dovrebbero puntare anche su un altro obiettivo: far sviluppare applicazioni collaborative che funzionano via web a piccole start-up che hanno grandi idee e bassi costi. La grossa azienda che sviluppa qualcosa di gigantesco (e mostruoso) con Java,
utilizzando decine di programmatori, produce quasi sempre applicazioni di bassa qualita’ e di altissimo costo.

Per quanto riguarda la crescita “dal basso”, e’ una cosa a cui credo molto. Se una azienda riesce a coinvolgere i lavoratori a diretto contatto con i problemi quotidiani nel processo di disegno delle applicazioni collaborative, si evitera’ di tentare di risolvere i problemi sbagliati.

[DOWNLOADBLOG] L’utilizzo esclusivo della lingua italiana è un primo stadio dello sviluppo oppure non pensate di realizzare una versione “internazionale” di Segnalo.com?

[SS] Il nostro focus sono gli utenti di lingua italiana, ci sono piu’ motivi per cui estendere il servizio non ha molto senso. Prima di ogni altra cosa l’ecosistema dei tag che si genera solo con utenti italiani e’ adatto agli utenti italiani. C’e’ il mix rappresentativo tra italiano e inglese
che il navigatore italiano sperimenta nella sua esperienza di navigazione.
Se ci fossero utenti di altre lingue, i tag popolari, i siti popolari, finirebbero per essere quasi tutti in inglese. Non credo che il bookmark sociale sia qualcosa per cui tradurre l’interfaccia utente in un’altra lingua basti a far diventare il servizio amichevole per utenti
di quella lingua. C’e’ anche la questione dei tag. Risolvere il problema dei plurali o dei sinonimi per una lingua complessa come l’italiano puo’ necessitare di soluzioni e algoritmi specifici.

Del.icio.us , il sito di social bookmarking più conosciuto, ora acquistato da Yahoo![DOWNLOADBLOG] Dalle vostre info leggo: “portare il bookmark sociale al più alto livello di usabilità possibile”.
Joshua Schachter di Delicious ci ha messo molto tempo prima di inserire degli aiuti nella pagina per far comprendere le funzioni ai meno smaliziati: quali pensate siano i punti ancora da limare nella vostra applicazione?

[SS] Segnalo.com allo stato attuale e’ soltanto una beta, abbiamo molte idee che svilupperemo nel tempo, anche se alcune sono gia’ comparse. Ad esempio Segnalo permette di specificare la ricerca per livelli successivi, per esempio se si va nella home e si visita il tag ‘CSS’ o ‘WEB’ o altro tag affollato, appare un box giallo sulla destra che permette di restringere la ricerca con altri “sotto tag” presenti nei siti appartenenti al tag di livello superiore, e cosi’ via.

Nel caso di Del.icio.us sembra ci sia quasi poca volonta’ di aprire il servizio alle masse, poche spiegazioni, l’interfaccia e’ poco intuitiva. Anche questo e’ un punto su cui vogliamo lavorare per Segnalo, creando una documentazione completa, quasi un tutorial di come si usa il sito, una FAQ completa e cosi’ via.

Altri problemi che noto nelle implementazioni correnti sono la mancanza di interazione tra gli utenti. I commenti sono il primo passo di Segnalo nella direzione che noi riteniamo sia giusta, ma ci sono altre feature in fase di sperimantazione, e il sistema stesso dei commenti probabilmente subira’ delle modifiche.

[DOWNLOADBLOG] Per facilitare l’utilizzo dei social bookmark dobbiamo solo aspettare che vengano integrati nei browser (come Flock) oppure, secondo voi, è possibile favorire e facilitare l’utilizzo di questi servizi per il grande pubblico?

[SS] Temo che l’integrazione col browser possa rendere meno interessante l’utilizzo del social bookmarking. In un sito c’e’ la possibilita’ di creare diverse situazioni di incontro e collaborazione tra gli utenti.
L’integrazione col browser che nasconde il sito vero e proprio potrebbe diventare un mero collezionamento dei dati dell’utente.

Credo che il grande pubblico non usi il social bookmarking perche’ non lo conosce bene. Specialmente gli utenti Windows spesso forzati a reinstallare il sistema operativo piu’ volte in un anno, avrebbero dei grossi vantaggi ad usare il bookmark sociale, e’ una vincita netta. Stessa cosa vale per la possibilita’ di consultare il proprio bookmark da qualunque computer dotato di una connessione. Se non c’e’ un tuo amico che ti spiega direttamente come funziona e non sei molto smaliziato, entrare in questa logica e’ difficile, ma alla fine molti capiranno di cosa si tratta e quanto e’ comodo, e migreranno, come e’ successo con la web mail.

Penso che per aiutare gli utenti bisogna rendere l’interfaccia web semplice, in particolare operazioni quali aggiungere un sito e cercare tra i propri preferiti devono essere banali. Altro punto importante e’ l’import: se come primo passo i nuovi utenti possono inserire i
loro preferiti da IE, Firefox o qualunque altro browser utilizzato, vedono qualcosa che gia’ conoscono in un ambiente nuovo, e questo li aiuta a capire di cosa si tratta. Comunque credo che niente sia importante come l’informazione, bisogna spronare le persone ad
entrare in questa nuova era dell’informazione, per fare un favore a loro, alla cultura e al mercato italiano della tecnologia che appaiono sempre piu’ indietro e sofferenti.

[SS] Grazie per lo spazio che ci avete concesso su Downloadblog!

[DOWNLOADBLOG]Grazie a te, Salvatore, per il tempo che ci hai dedicato e tanti auguri a te e al tuo collega per Segnalo ed i vostri altri progetti.

Se volete saperne di più, seguite il blog di Segnalo.com.

1 stelle2 stelle3 stelle4 stelle5 stelle (nessun voto)
condividi condividi
3 commenti

Commenti dei lettori

(Inserisci un commento - Nascondi commenti anonimi)
  • Andrea

    18 gen 2006 - 10:43 - #1
    0 punti
    Up Down

    Segnalo.com è ottimo, ma secondo me si dovrebbe spingere gli utenti a segnalare siti in italiano. E’ inutile spulciare, per esempio, la tag “css” e trovarci dentro siti come AListApart o CSSBeauty : ) che sono taggati da migliaia di utenti di siti social bookmarking. Apprezzatissimo invece il CSS Text generator di maniegrafiche.it!

  • ascii

    19 gen 2006 - 02:19 - #2
    0 punti
    Up Down

    Antirez per fare segnalo.com andava bene qualsiasi linguaggio (nel senso che ci saranno molti dati e poco codice), il php e’ molto comodo per vari motivi (grande supporto, diffusione, semplicita’) e ha tutto quello che serve (classi, interfaccie etc, quindi imho ormai e’ full oo e si puo’ “astrarre” proprio tutto quello che si vuole, e poi non saprei cosa potresti “astrarre” su segnalo.com, alla fine i dati saranno tutti in una mega tabella chiamata “links”).

    Gli algoritmi che immagino piu’ complessi sono quelli che lavorano con l’italiano (tags, search), per il resto sono select.

    Non ultima, e in questo sono con te, ci sono un mucchio di cose che si possono fare con grande facilita’ per far scalare bene le applicazioni (e’ un linguaggio leggero, e’ un modulo di apache, c’e’ memcached, mysql che e’ veloce, etc) anche se questa e’ una caratteristica comune a quasi tutti i linguaggi web-oriented e dovuta piu’ che altro all’architettura stessa e a come funziona il protocollo http.

    Sull’estetica del codice non so che dire, mi e’ sempre piaciuto il c ben indentato e mi piace il php ben indentato, insomma secondo me dipende da chi indenta (e programma) : )

    > e’ poco potente
    Giuro di non riuscire a comprendere quest’affermazione, secondo me php e’ molto potente quando si parla di applicazioni web.

    Php non e’ simil [ruby|python|java], il php e’ fatto a suo modo.. c’e’ il Pear che assomiglia al CPAN (ho detto assomiglia e aggiungo IMHO, la prudenza non e’ mai troppa), le funzioni build-in sono tutte in una “root” (e poi mi piacciono le funzioni, se voglio la lunghezza di una stringa preferisco strlen(str) a str.lenght o qualsiasi altra incarnazione di chiamate simil java.

    Questo e’ il mio punto di vista sul php, e alla fine non ti sei trovato cosi’ male col php perche’ vedo che tutto e’ rewritato per bene e che ci sono le mysql_real_escape_string dove servono al pari delle htmlspecialchars.

    Comunque bravo Antirez, ma vai avanti anche con hping mi raccomando : )

  • antirez

    29 gen 2006 - 19:24 - #3
    0 punti
    Up Down

    Ciao Ascii,

    grazie per i tuoi commenti, sono molto interessanti, mi piacerebbe
    affrontare una discussione piu’ dettagliata su questa questione di PHP
    contro altri linguaggi considerati da me piu’ potenti perche’ dotati
    di maggiori astrazioni. Spero di riuscire ad aprire un ‘forum’ di segnalo
    che oltre al canale in cui si parla del servizio ne c ontenga altri in cui
    generalmente si discute di implementazione di servizi web.

    Comunque ecco in breve alcune risposte.

    1) Algoritmi:

    a parte le select, ci sono una serie di operazioni su insiemi di ID,
    questo serve ad avere un algoritmo abbastanza efficiente in una
    operazione particolare: dato un insieme di TAG, prendere tutti
    i siti in cui contemporaneamente appaiono tali tag, e ordinarli in
    diversi modi. Fare questa operazione e’ semplice, farla in modo
    che scali molto bene e che sia magari distribuibile su piu’ computer
    e’ molto piu’ complesso! in pratica e’ esattamente cio’ che fa google:
    dato un set di parole, individuare i siti in cui compaiono tutte e ordinarli
    per rank.

    2) Linguaggi:

    Ecco cosa manca a PHP:

    0) Ortogonalita’: ogni cosa sembra fatta ad hoc
    1) Funzioni anonime
    2) Closures
    3) Caratteristiche funzionali: map, filter, …
    4) First-class functions
    5) Sistema di tipi solido senza auto-conversioni,
    attualmente if (”ciao” == 0) torna TRUE. C’e’ un
    operatore speciale per la comparazione che tiene conto
    del tipo (===) ma perche’ tutto cio’? si puo’ fare molto
    di meglio senza una conversione autoamtica del tipo,
    e se proprio si vuole fare bisogna ritornare una eccezione
    quando si tenta di convertire “ciao” in nuermo!
    6) Libreria coerente, una sola funzione per fare una sola cosa
    7) Interfaccia piu’ ad alto livello, attualmetne la libreria del PHP
    sembra presa in gran parte dal C come design! Un linguaggio
    dinamico dovrebbe avere una libreria che sfrutti di piu’
    le astrazioni.
    8) Possibilita’ di estendere il linguaggio in se stesso, esempi:

    Uplevel di Tcl
    Macro di Lisp
    Blocchi di SmallTalk e Ruby

    Linguaggi dinamici che io considero davvero potenti:

    Scheme, SmallTalk, Tcl

    Lingauggi che mi sembrano piu’ ad-hoc, ma che sono comunque buoni:

    Ruby, Python

    (molto, ma molto meglio Ruby per i “blocks” e perche’
    e’ totalmente funzionale).

    Spero di poter continuare questa discussione nel attualmente-non
    esistente forumo di Segnalo :)

    Ciao!
    Salvatore

L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito su tutti i blog di Blogo e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No
I commenti sono sottoposti alle linee guida per la moderazione.

Anteprima del commento