PDI^2

Post Archivio n° 18

personale, blogosfera, web June 29, 2007 11:57 am (Save post)

pan e salam pan e salam — a fette!.
Lettore, ho due esami la prossima settimana di cui no so ancora nulla. Ho amiche in visita con cui mi piacerebbe passare del tempo. Fa un caldo della madonna. Ho fame, mi fa male il collo, il mio mac è rotto di nuovo, il cellulare è partito e per una volta che ho roba da leggere non ho il tempo. Ergo, Archivio.

  1. L’angolo del linguista: l’ungherese è una lingua agglutinativa, come il giapponese. Leggasi: le parole non hanno una radice fissa e una parte mutabile, come in italiano (amico, amica, amici) ma hanno una base che è la parola in se e delle particelle fisse che ci si attaccano (borat, boratno, boratok). Il bello èp che hanno una particella per tutto, dal plurale allo stato in luogo ai complementi temporali. La scoperta della settimana è il suffisso -getni/gatni che significa una cosa come “più volte ma in modo piccolo”.
    Apprezzate il fatto che non solo si possa dire “mangiucchiare“, ma che “coccolare” sia, letteralmente, “abbracciucchiare:) .
  2. sull’isola deserta porterei da leggere, l’enciclopedia, credo. Una maschera, per fare immersioni. Un rotolo di spago enorme, che serve a tutto. Una radio, che non si sa mai, e poi si possono fare le batterie con le noci di cocco. E un asciugamano, perché ho letto douglas adams ;)
  3. Alberto++ per Evenz, anche se io l’avrei chiamato E20 :)
  4. Sto abusando SimpleFold e sono strasoddisfatto, se usate vim fateci un pensierino. Prossimo passo è cominciare a sfruttare rcodetools
  5. Il mio stupido doctest per ruby adesso riporta la linea corretta in cui è accaduto l’errore, yay!
  6. Finalmente ho trovato un server NNTP aperto e che contiene sia comp.lang.ruby che it.comp.lang.python. Posso tornare a lurkare e fare il troll, evviva!
  7. giovanni ha un blog da un quarto d’ora ed ha già articoli più interessanti dei miei, come quelli sui RESTful Web Service in Squeak

Vabè, torno a studiare quella materia interessante ma con esame infernale che è Informatica Teorica II. Buon weekend a chi non deve fare una mazza!

Costruttori brutti linguaggi dinamici belli

programmazione June 26, 2007 8:55 am (Save post)

Sul blog di gilad bracha c’è un post che parla del perché i costruttori sono anti-oo.
Giovanni Corriga(finalmente ha un blog!), vi direbbe che è perché la gente continua a pensare agli “oggetti” invece che ai “messaggi”. In pratica cosa c’è che non va?

Fondamentalmente, che usando un costruttore alla java/c#/c++ si introduce un accoppiamento forte nel codice che andrebbe evitato. È una nozione abbastanza diffusa che uno dovrebbe scrivere codice relativo all’interfaccia e non all’implementazione, e invece usando i costruttori ci si lega invariabilmente a un certo modo di fare le cose. Esempio scemo:

DatabaseMapper dm = new DatabaseMapper()
dm.save(someObject)

A un certo punto vi rendete conto che DatabaseMapper potrebbe essere preferibile come singleton o come un riferimento a un pool di oggetti. In qualsiasi modo vogliate spostarvi dall’avere un oggetto sarete costretti a rompere l’interfaccia introducendo un metodo come getInstance() e nascondendo il costruttore.

In ruby, Smalltalk, python, perl e CL, invece, non esiste un concetto speciale di costruttore.
Un metodo è responsabile di allocare un oggetto. Un altro metodo è responsabile per l’inizializzazione. Infine, un comodo metodo di utilità si occupa di fare entrambe le cose.
Scrivendo

 dm = DatabaseMapper()
in python quello che in realtà accade è che richiamate il metodo __call__() il quale a sua volta alloca l’oggetto con __new__(), lo inizializza con __init() e lo restituisce.

Quando decidete di passare al singleton non dovete far altro che cambiare un metodo e tutto continua a funzionare correttamente.
Lo stesso discorso vale per ruby, solo che i metodi in questione sono new, allocate e initialize.

Smalltalk e common lisp, per quel che ne so, seguono lo stesso identico approccio, con la sola singola differenza che i metodi non hanno una visibilità ristretta ma sono pubblici. Nel post di gilad bracha si parla di Smalltalk dicendo che non forza il fatto che un oggetto sia inizializzato una sola volta, e immagino parli di questo, ma da buon programmatore dinamico io ritengo che si tratti di un non-problema.

Il linguaggio non deve costringere a fare cose stupide, ma non è utile trattare il programmatore da idiota.

Ad ogni modo credo sia interessante considerare come, ancora una volta, aggiungere un costrutto ad un linguaggio (i costruttori) ne diminuisca le potenzialità invece di aumentarle. Meditate gente, meditate.

UidBind e il self-marketing

programmazione, linux, web June 24, 2007 2:37 pm (Save post)

Da anni sono un utente felice di un certo servizio di hosting, per vari motivi.

Primo, sono open-source friendly. Nel senso che usano software libero, contribuiscono allo sviluppo di quel che usano e supportano la gente che supporta l’open source, come ruby-it o ziobudda .

Secondo, ho il supporto via jabber di una persona (roberto) che conosco di persona :)

Terzo, sono una manica di hacker, nel senso positivo del termine. Il vero motivo per cui su unbit è possibile usare Camping o Django, si ha disposizione mercurial, e si può accedere al pannello di controllo tramite XMP-RPC è perché è fico, non perché ci sia un grosso mercato.

Ma essendo una manica di hacker hanno anche i tipici difetti di relazione col mondo, ad esempio una homepage inaccessibile.

Tutto questo per parlarvi di uidbind, che è un modulo kernel per linux che permette di impostare permessi di accesso granulari a specifiche porte TCP/UDP.

L’amministratore può, tramite un albero di directory configfs, selezionare alcune porte e rendere possibile solo all’utente X di effettuare una bind() su di esse, il che ha un grosso potenziale per evitare che si crei casino.

Mettiamo che si permetta agli utenti di lanciare dei server (esempio: mongrel, o tomcat). Il default è che gli utenti comincino a pestarsi i piedi a vicenda, andando ogni volta a occupare le porte altrui e forzando un algoritmo distribuito di “ti frego la porta o devo modificare le configurazioni” che è decisamente sgradevole.

Con uidbind è possibile assegnare ad ogni utente una porta e far si che usi sempre e solo quella e che nessun altro abbia la possibilità di usarla, in nessun modo.

Il modulo ha anche il potenziale di eliminare quella vecchissima eredità di UNIX per cui le prime 1024 porte sono riservate a root. La ragione, all’epoca, era che si voleva evitare che un utente potesse effettuare l’hijack di servizi trusted (esempio: telnet o http), ma l’effetto collaterale è che ancora oggi tutti i servizi classici devono partire inizialmente come root.
Facendo si che l’accesso alle porte sia gestito in modo granulare sarebbe possibile riservare le prime porte a root e poi, caso per caso, riassegnarle ad utenti specifici come httpd o smtpd, superando finalmente limitazioni vecchie di decenni.

Ora vabè che il modulo è ancora in betamm ma guardate la pagina di uidbind. Neanche un po’ di auto-esaltazione porca miseria!

Le API di BlogBabel e il mio feedflare

blogosfera, web June 23, 2007 10:10 am (Save post)

Finalmente BlogBabel ha un set di API REST & pubbliche per accedere alle informazioni della classifica e del crawler.

Andtate a giocarci pure voi e vedete che ne pensate, così potete darci feedback e ci mettiamo una pezza dove sono più smandrappate. Io credo ci siano già le potenzialità per farci un sacco di cose carine, tra cui la mia prima è (rullo di tamburi) il feedflare!

Ovvero quella cosa che vedete in fondo ai miei post nel feed e nel sito, che dice che posto ho in classifica. Prima era una cosa privata perché abusava dello screen scraping su BlogBabel e non volevo fare casini.

Adesso potete sperimentarlo pure voi, non vi garantisco che funzionerà per sempre o che non muoia sotto il carico, ma insomma, potete provarci. Vediamo quanto scala questa applicazione rails, a occhio fino a 11.000 richieste al secondo dovrei arrivarci :)

Per utilizzare il feedflare di blogbabel basta che andiate nel tab “optimize” di feedburner e aggiungiate un feedflare con URL:


  http://flarez.riffraff.info/bb?lang=it&id=blogid&version=1

ovviamente lang è sempre “it” e blogid è l’identificativo del blog su BlogBabel (questo blog ha id “pdi2″ non “PDI^2″, “Gabriele Blog” o “Propulsione d’Improbabilità Infinita”). In pratica è lo slug che vedete nell’url dei dettagli del vostro blog.

Andate e verificate, e fatemi sapere se ci sono problemi.

Cronache dal centro nord

linux, personale June 22, 2007 4:58 pm (Save post)

Vi lasciai dicendo che andavo all’heineken jammin festival. Questi sono i fatti accaduti da allora.

L’autore si mette in cammino giovedì insieme al compagno di viaggio A., coppia già consolidata negli anni nel corso di altre zingarate in giro per il Bel Paese.

Partenza intelligente alle quattro del pomeriggio, sole che spacca le pietre. Preveggenza dell’Autore: “guarda che cavolo di sole che c’è oggi, domani minimo gràndina“.

Il viaggio scorre felice, allegria e birrette in serata nella citta di tette&torri&tortellini, ospitalità fantastica e la mattina dopo si parte per mestre, si schiva la maggior parte del traffico, si azzecca la strada al 99% (pur senza navigatore e con una cartina in cui il veneto ha le dimensioni di una moneta da un euro) e si parcheggia velocemente.

Entriamo. Il parco san giuliano è enorme, e i nostri decidono di rilassarsi con la prima bottiglia di vodka lemon e i panini comprati all’esselunga, nell’attesa di altri due compari in arrivo da pavia. Il sole splende, gli uccellini cantano, niente lascia presagire la catastrofe.

Arrivano gli altri due ragazzi. Come stai, anche io, non tanto, si certo che la voglio, facciamo un giro. Iniziamo il saccheggio degli stand promozionali, procurandoci numerosi pacchetti di cartine, palline di burrocacao della 3 (?), preservativi, anelli fallici stimolanti per lei (??), mousepad, cappellini, portachiavi, accendini, bandana PosteItaliane giallo fluo (???).

Poi ci prendiamo qualche birra perché, voglio dire, è pur sempre un concerto, e molestiamo le fanciulle degli stand perché, voglio dire, siamo pur sempre brilli.

E comunque vorrei sapere chi è il criminale che ha mandato due belle figliole vestite da dottoressa sexy nel mezzo di una torma di ragazzi in overdose da luppolo. Credo sia punibile per incitamento alla violenza carnale.

Comunque è a quel punto che accade il casino. Ora: potreste aver visto notizie inquietanti alla TV o nei giornali ma la realtà è che noi, dominati dall’amore per il fango post-woodstock, non è che ci preoccupassimo molto.

Improvvisiamo un rifugio assemblando panche e tavoli. Immagino sia significativo che abbia resistito più o meno quanto le impalcature del concerto.

Poi pioggia e vento diventano eccessive e ci rifugiamo dentro uno stand dell’heineken. In cambio dell’ospitalità cerchiamo di renderci utili portando via qualche sacco di merchandising che si rivelerà, ad un più attento esame, un bottino composto interamente di portachiavi e portacellulari. Neanche una maglietta, porca zozza.

Smette di piovere, velocemente. Usciamo dal riparo e c’è devastazione, passa qualche ambulanza e cominciano a sgomberarci. A quel punto sorge qualche sospetto che forse il concerto non si farà. E vabbè sarà per la prossima volta.

Alcune ore più tardi siamo in autostrada, seguendo una strada che ci ha indicato un vigile e che congiunge mestre-bologna via rejkyavìk, e realizziamo: prossima volta un paio di palle.
I protagonisti sembrano condannati a non vedere i pearl jam. L’anno scorso quando son venuti in italia era esattamente una settimana dopo la data in cui loro dovevano trovarsi a budapest per motivi di studio.
Una data a lisbona, dove avrebero potuto vederli, è stata anch’essa annullata.
Le date precedenti in italia si perdono nella notte dei tempi.

Evidentemente sono in azione forze più grandi di noi e che non comprendiamo. Forse in una vita precedente abbiamo fatto uno sfregio a qualche road manager e questa è solo una prolungata espiazione di tale crudeltà.

Ad ogni modo arriviamo di nuovo a bologna, che sabato è il compleanno del nostro ospite.

Bella festa, della quale purtroppo non posso dirvi tanto perché le mie facoltà menemoniche sono ridotte. Ricordo di aver visto e rivisto un sacco di gente, di aver cantato come un demente, smarrito il compagno di viaggio, invaso un locale, importunato un po’ di gente. Sono piuttosto sicuro di aver bevuto sangria, confermando ancora una volta che se qualcosa è rosso e ha la frutta è sangria, perché in questa variante (ottima) c’erano anche i chiodi di garofano.

Almeno mi sembra. Poi ci siamo ritrovati a mangiare pizza da (anto’, commenta ti prego che non mi ricordo il nome). Dove c’era alessandrodelgrandefratello. Chi cavolo sia alessandrodelgrandefratello non lo so.
In seguito abbiamo dibattuto i meriti della sorella del festeggiato e sono arrivato abbastanza vicino a un destro alla mascella, ma il nostro ospite è una brava persona e ha rispettato i sacri principi dell’ospitalità. Kudos.

Domenica si riparte, era prevista una tappa a perugia ma abbiamo fatto tardi e ci siamo fermati solo un po’ a firenze che era di strada, dove abbiamo visitato un’amica e, per ragioni complesse, un ragazzo francese che è venuto a vivere a firenze qualche mese.
Ovviamente la parte banale del viaggio, arrivare dall’uscita dell’autostrada all’appuntamento con i due, si è dimostrata estremamente articolata, motivo per cui adesso abbiamo una conoscenza dettagliata del lato sbagliato dell’arno e della periferia estrema della città. Alla fine tutto bene, baci, abbracci, coccole.
Prendiamo un caffè in un posto che è dello zio della ragazza ed in cui A. aveva già mangiato in viaggio a firenze, quando ci lavoravano le sorelle della stessa.
Il mondo ha le dimensioni di un guscio di noce, bisogna rassegnarsi.

Alla fine arriviamo a roma a mezzanotte, con milleduecento chilometri alle spalle, senza aver visto un concerto, avendo speso duecento euri tra una cazzata e l’altra, avendo mangiato il sacro Grisbì da viaggio, conosciuto e riconosciuto una mare di gente, ingollato dosi semiletali di alcolici ed avendo ascoltato 12 ore di vecchi cd. E contenti, pensando al prossimo viaggio.

Perché Java è meglio di Ruby

ruby, java, fun 4:56 pm (Save post)

Si, siamo una comunità di disturbati, e ne siamo fieri.

Ruby & rails vs J2EE, di nuovo

ruby, java, blogosfera June 13, 2007 2:44 pm (Save post)

Su TRM c’è un articoletto che ha l’intento di spiegare rails al programmatore J2EE, e da lì c’è un articoletto di risposta di uno sviluppatore J2EE, appunto.

Le mie dure lire: usate quello che è più adatto al progetto corrente, che conoscete meglio e che preferite. È il modo giusto per vivere felici :-)

Ad ogni modo, nel post e nei commenti ci sono dei punti validi: la m17n in ruby è ancora debole (ma per il web cambia poco, visto che utf8 è gestito), il deploy non è ancora un’operazione banale, ruby non ha i thread nativi ed è un interprete lento, non esiste accesso a tutta la pletora di MOM che c’è in java e altro. Ricordo che io, fondamentalmente odio rails ;)

Però, siccome l’autore dice di cercare l’oggettività, per quanto ovviamente possibile, mi permetto di rettificare alcune cose sbagliate ( credo siano dovute alla mancanza di conoscenza dell’ambiente, non a un FUD intenzionale ;)

Su ruby:

  • ruby non ha le variabili dì’istanza pubbliche di default, anzi non è proprio possibile avere variabili pubbliche, si accede solo attraverso metodi.
    Le variabili d’istanza pubbliche sono una rottura dell’incapsulazione (eccezione: property alla python/C#/TP) e infatti in Smalltak, che la OO l’ha inventata, non esistono.
  • non so cosa significhi che la struttura delle classi è neogotica, perché non so qual’è l’equivalente degli archi a sesto acuto in ambito programmatorio, ma la gerarchia delle classi mi sembra abbastanza ragionevole. Non c’è neanche l’ereditarietà multipla che dovrebbe far storcere il naso ai javisti (io, essendo anche pythonista non ci vedo niente di male :)
  • sinceramente non mi pare sia possibile assegnare una variabile da sinistra a destra in ruby, a meno che non ci sia un operatore “->” che non ho mai trovato negli ultimi 6 anni
  • le variabili d’istanza vengono istanziate al volo, vero, ma puoi comunque farlo solo tramite i metodi (o la reflection) quindi non c’è problema
  • “La tipizzazione degli oggetti base è da barzelletta non esiste”. De gustibus, a me i tipi dinamici piacciono. D’altronde neanche java è type safe, e HAppS è ancora un po’ ostico per me.
  • gli errori sono più comprensibili in ruby imho. Almeno l’equivalente di NullPointerException ti dice che metodo è stato richiamato, perché nil è un oggetto
  • mai fallita l’installazione di una gemma, ma capisco possa accadere. Però il confronto con maven mi pare inappropriato, non è un package manager.

Su Rails:

  • il sistema di template (che imo pone pochi problemi) si cambia in una riga. script/plugin install liquid | haml | erubis | ya2yaml | amrita | markaby o quel che volete
  • credo che il plurale di persona (as in dramatis persona) sarebbe personae, ma si sa che gli inglese col latino fanno porcate :) . Aldilà di questo, è possibile definire le proprie inflection se si vuole un db sgrammaticato (o uno legacy)
  • non ho capito che significa che la gestione degli url viene fatta in punti diversi, io la faccio solo in routes.rb
  • non so perché non si possa usare un qualsiasi approccio allo sviluppo. In teoria si può sviluppare un’applicazione RoR anche senza modelli e controller ma grazie al cielo lo fanno in pochi ;)
  • si può usare uno schema legacy, si può fare. Ci sono pure plugin per farlo. Certo, manca JCA.
  • manca il supporto all’internazionalizzazione builtin, ma esistono plugin come globalize apposta. Rimane sempre meglio averla builtin, come in django (lo dicevo di là) e comunque il supporto a unicode è scadente, come dicevo prima, ma c’è sempre UTF-8.
  • non ho capito il problema con gli scaffolding. Quelli servono a evitare di scrivere un po’ di codice, mica sono un’interfaccia di amministrazione (django++ ma per rails ci sono, ancora, dei plugin)

Sui punti generali non posso commentare.. non uso capistrano, ViM è il mio IDE e Rails forse non scala ma non per colpa di FastCGI (che è concettualmente molto diverso da CGI). Yahoo, Google, Digg, reddit, Flickr, livejournal etc scalano infinitamente senza servlet. <flamebait>e poi vorrei vederla questa mega applicazione in java che scala come slashdot, che è fatto con mod_perl </flamebait>

Ancora, right tool for the job, KISS, long life & prosperity, io domani parto per l’heineken jammin festival dove non mi preoccuperò di queste cose :)

ruby, doctest e lo pseudofile DATA

ruby June 12, 2007 8:33 am (Save post)

Sono un maestro del tosare yak.
Ovvero, di quella antica e nobile pratica per cui devi risolvere un problema, che però dipende da un altro, il quale porta a un altro che porta a un altro e a un certo punto ti trovi a depilare uno yak per far funzionare il tuo blog.

Nel mio caso il processo è stato

  1. mephisto non ha la feature X (che ho dimenticato cosa fosse)
  2. cavolo dovrei scrivermi il mio blog engine..
  3. beh posso farlo usando ramaze
  4. peccato non abbia una gui di amministrazione automatica
  5. beh posso sempre farla se ho un buon ORM
  6. ma non mi va di usare ActiveRecord, oltretutto son sempre stato un fan del Data Mapper
  7. oddio c’è la v0.50 di Og.. no ancora non è rilasciata e non hanno tolto tutti i rescue Object… brrr
  8. vabè, potrei scrivermene uno io, piccolino, ma ben testato
  9. cavolo se son brutti sti test..
  10. ah beh posso usare test/spec
  11. cavolo sti test fanno schifo..
  12. e poi non son capace di azzeccare una descrizione..
  13. ah avessi doctest come in python..
  14. beh potrei scrivermi il mio..

Ed è a questo punto che ci ritroviamo, circa una settimana dopo, 1400 righe più tardi, e con SLOCCount che per questo progetto stima 4 mesi di lavoro e una spesa di 38.581 dollari, da investire in 0.83 sviluppatori (?).

1400 righe? Ma sei scemo?? diranno ora i miei piccoli lettori.
In verità si, ma non per questo, in quanto solo un quinto di queste sono la libreria, mentre il resto sono i miei test unitari & doctest.
La mia libreria è piccina, se considerate che SLOCCount su ActiveRecord trova 22941 linee di codice :) .

Ed il bello è che metà di queste righe sono doctest, che nella mia microimplementazione significa: apri irb, prova cose, copincolla.

Come funziona test/doc

La “libreria” che fa funzionare il tutto è lunga ben 30 righe, perché è mal scritta e scorretta, ma io le voglio bene lo stesso.

L’idea è semplice: ogni operazione in un REPL come irb è composta da due parti: il codice, e il risultato. Se usate irb con l’opzione –simple-prompt si tratta di una cosa come questa:


>> codice()
=> risultato

dunque se le righe sono in un oggetto enumerabile basta usare grep per trovarle e ignorare le altre linee, nelle quali potrete aggiungere utili commenti o, nel mio caso, i modeltest di django ancora da tradurre :)

Una volta che avete la lista ordinata in coppie input/output basta fare l’eval del primo e confrontrarlo con il secondo. Facile, no?

In realtà no, definendo un metodo o una classe in irb questo non va perché vi trovate con input multilinea, ma io mi limito a ignorare il problema, e i miei test sono abbastanza carini.

Ora: dov’è il posto migliore per mettere i doctest? Nei commenti, potreste dire voi. Concordo in generale, ma in questo caso, visto che le cose da fare sono molte e le righe del modello molto poche, sembrava più conveniente mettere i test nello pseudofile DATA.

Per chi non lo sapesse, ruby mette a disposizione del programmatore una variabile, DATA appunto, che si comporta come un oggetto File, ovvero è possibile leggere le linee, fare seek etc etc.

Il contenuto dell’oggetto non è però un vero file, ma il pezzo del file .rb corrente che sta dopo dopo la keyword __END__.

Sembrava perfetto per il mio scopo. Nessun require strano, nessun problema per fare parsing, codice
& esempi nello stesso file ma separati e dovendo aggiungere una singola linea di codice.

Senonché, e qui viene il problema, DATA non funziona come mi ricordavo io.
Ovvero, la variabile è globale e rappresenta la relativa sezione non del file corrente (cioè di __FILE__) ma dello script in esecuzione (cioè $0 o $PROGRAM_NAME).

Ergo eseguire i miei doctest tramite rcov è impossibile, perché DATA è inizializzato, male, in rcov stesso. Vabè, torniamo al parsing a mano, in fondo basta leggere il file in un array di linee e poi scorrerlo finché non si trova __END__

Però dovrei ridurmi a specificare il nome del file ogni volta che voglio creare un doctest.

Soluzione: filename ||= caller[0][ /^.*?(?=:)/ ].

Lasciando stare la Regexp, significa che usiamo come nome del file quello in cui c’è il codice che crea il DocTest.

Quindi se ho una riga DocTest.new in test/sample.rb non c’è bisogno che usi degli argomenti, perché usando caller posso scoprire automaticamente qual’è il file chiamante (appunto, test/sample.rb.

Ora i miei test funzionano, sono gradevoli e posso usare quelli di django praticamente copincollandoli (come noterete ci son pure gli stessi commenti).
Trentottomila dollari ben spesi!

Diventa virale anche tu

personale, blogosfera June 9, 2007 8:26 pm (Save post)

Inspiegabilmente negli ultimi giorni son stato linkato sul blog inglese da matz e da peter norvig che sono due miei eroi.

Lì per lì mi son pure esaltato, ma poi mi son reso conto che la mia strada doveva essere un’altra scoprendo dema (non voglio le scarpe perché per convinzione e formazione sono contrario ma mi son scompisciato) e geek-geek.

Diventare protagonista della blogopalla trasformandosi in un virus .

A breve vedrete la mia faccia con sotto il cartello will strip for backlinks.

le mie due lire: google mangia feedburner & panoramio

web, fastidio June 5, 2007 8:45 am (Save post)

Potremmo fare i discorsi del tipo “papà, tu dov’eri quando google ha spento internet?” ma di mattina la paranoia è a livelli bassi. Linko berny, che è l’unico che abbia letto nella lingua di Dante a fare un commento un po’ critico.

Ma mi dispiace che google si sia pappato feedburner, per vari motivi.
Primo, il servizio di feedburner era innovativo, interessante e porca miseria il supporto mi ha sempre risposto nell’arco di 6 ore. Le garanzie che rimanga così non ci sono. Ammetto che mi è sempre sembrato implementabile in due settimane, mod layout.

Secondo, effettivamente è un po’ inquietante che una percentuale massiccia dei link cliccati nel mondo potrebbero essere serviti, e tracciati, da google,

Terzo, feedburner ha un’ottima tradizione di api aperte, Google la sta perdendo.

Ma soprattutto è triste se guardiamo in retrospettiva alle ultime acquisizioni di google, tra cui: panoramio, feedburner, youtube, doubleclick, writely.
Escludiamo doubleclick, che chiaramente è web 0.2 e quindi non è nella stessa categoria degli altri.
L’unica strategia commerciale di panoramio, youtube e writely è stata diventare famosi e vendere. In alcuni casi, come per writely, il business plan era “vendiamo a google“, dichiaratamente.

Feedburner d’altro canto aveva una possibilità di farcela da solo. Aveva gli inserzionisti, il feed advertising ha grosse potenzialità, era leader nel mercato e senza concorrenti importanti. Aveva anche fatto acquisizioni importanti, e avevano una visione.

Perché cavolo han venduto a google? Gli avranno dato una marea di soldi, in pieno stile bolla2.0?
Probabile. Ma la mia paura è che abbiano venduto perché era un offerta che non potevano rifiutare, in pieno stile padrino2.0.

Prendi questi numerosi sacchi di soldi, e sbrigati. Se non lo fai saremo costretti a entrare nel tuo mercato. Non sarà molto faticoso, perché

  • abbiamo già l’infrastruttura per scalare all’infinito
  • abbiamo già il polling dei feed
  • abbiamo già gli inserzionisti
  • abbiamo già il sistema di statistiche
  • abbiamo parecchi milioni di utenti già nella nostra rete, tu neanche cinquecentomila

ci faresti perdere tempo e sprecare soldi, ma ti spazzeremmo via e spenderemmo meno che per acquistarti.

Certo, puoi fare come ICQ, non vendere e proseguire da solo.
Si ti ricordi, quell’instant messenger che andava tanti anni fa, prima che microsoft decidesse di annichilirlo.

Sono LarrySergey dei googleborg. La resistenza è futile, preparatevi ad essere assimilati.

Get free blog up and running in minutes with Blogsome
Theme designed by Janis Joseph