gMTP su Fedora – pacchetti (spec) e appunti

Come sapete, da qualche tempo sto usando Fedora (al momento Fedora 18) con GNOME e devo dire che mi trovo, se non molto bene, di sicuro “non male”: ovviamente c’è il supporto hardware solito tipico di Linux, e GNOME Shell ha fatto un po’ di passi che se non sono da gigante comunque lasciano intravedere la speranza per chi, con le prime release, ha storto il naso (sottoscritto compreso). La mancanza più grande che ho riscontrato sinora però è quella di gMTP.

Per chi non sapesse cos’è MTP, copincollo da Wikipedia:

L’ MTP (Media Transfer Protocol) è un set di estensioni del PTP (Picture Transfer Protocol) creato da Microsoft, per consentire l’uso di lettori MP3, macchine fotografiche digitali e altri dispositivi digitali portatili. MTP è fortemente legato a Windows Media Player. L’utilizzo di MTP al posto del classico MSC (mass storage class) comporta alcuni vantaggi pratici per gli utenti che utilizzano abitualmente Windows Media Player, ma rende di fatto meno accessibile la periferica rispetto ad un utilizzo col protocollo MSC. Ad esempio: un lettore MP3 che viene visto tramite MSC come una comune chiave di memoria (e quindi anche in Risorse del Computer si comporta come tale) è molto più versatile di un lettore MP3 che utilizza il protocollo MTP e che viene visto dalla gestione delle risorse del computer come dispositivo “Hierarchical”, cioè come sotto cartella di risorse del computer. Le sottocartelle poi non portano indicazione sulla data e l’ora di creazione dei file contenuti (molto scomodo se il lettore MP3 è dotato di registratore vocale in quanto si perdono la data e l’ora in cui sono stati registrati i dati; infatti una volta trasferiti sul pc acquisteranno la data e l’ora del momento esatto del trasferimento. Altro difetto sta nel fatto che durante un trasferimento non si deve chiudere la cartella del lettore mp3 dalla quale si stanno prelevando i file altrimenti il trasferimento si interrompe.

Ora, piccolo approfondimento, che molti conosceranno già: in cerca di un protocollo migliore per gestire i trasferimenti di file in Android, Google ha deciso di utilizzare MTP che è probabilmente (anzi sicuramente) il protocollo “meno peggio” in circolazione riguardo il file transfer tra dispositivi. Il problema è che MTP gode del seguente supporto presso i maggiori sistemi operativi:

  • Windows lo supporta ottimamente (ci credo: è il loro)
  • Mac OS ha bisogno di un frescobuffo che si chiama Android File Transfer – che, per chi non lo sapesse, e si ostinasse a denigrare il software open source in ogni sua forma, è una GUI per libmtp, progetto aperto. Sucate.
  • Su Linux, come sopra, abbiamo libmtp che però ha una corolla di interfacce grafiche e a riga di comando notevoli. La mia preferita è gMTP che, pur funzionando (scusate la ruralità dell’espressione) a cazzo, è anche in questo caso la meno peggio. Semplice, efficace, fa il suo mestiere.

Package

Il problema è che pur essendo nei repository di tutte le distro del mondo, come al solito Fedora, sguarnita più di un supermercato il giorno dopo Natale, non ce l’ha. Mi sono quindi ingegnato e editando uno spec che ho preso da Fedora Forum, ho creato il mio bel pacchetto sorgente con l’ultima versione di gMTP, pronto per compilare su qualsiasi Fedora 18 di questo mondo. Dovrete armarvi di un po’ di buon senso, la linea di comando e delle vostre incantevoli dita, dopodiché, come ci dice anche il wiki di CentOS:

wget http://dl.dropbox.com/u/685412/f-pkg/gmtp-1.3.4-2.fc18.src.rpm
rpm -i gmtp-1.3.4-2.fc18.src.rpm
cd ~/rpmbuild/SPECS
rpmbuild -ba gmtp.spec

Dando questi quattro comandi riusciremo a produrre un RPM di gMTP perfettamente funzionante, che possiamo installare come vogliamo; io ho usato rpm da CLI perché il frontend era andato in sciopero per ragioni a me ignote.

Note nerd

Oh, figo rpmbuild!

Non avevo mai visto una cosa così caruccetta nei modi e nelle configurazioni. L’unica cosa che gli assomiglia per la mia esperienza è ABS, il sistema di port di Arch Linux, ma la sintassi degli spec per costruire un RPM è decisamente poco complessa, con header ben definiti e contenuti stra-leggibili. Sembra – azzardo – quasi un file markdown più che qualcosa dove vengono istanziate delle variabili. Ne sono rimasto piacevolmente sorpreso, adesso come in altre occasioni. Sicuramente, sia rpmbuild che makepkg sono anni avanti a quello che è (mi scusino i debianisti) il modo di creare un pacchetto DEB, pacchetti per i quali ho buttato il sangue a suo tempo e sui quali ho promesso di non ripetere più l’esperienza traumatica.

Photo courtesy of Fernando Weno

Ciclo di vita di un fork inutile

Visto che la storia si ripete, come diceva il buon Giambattista Vico, ma anche Nietzsche, ma anche insomma un po’ tutti e a partire da Vico questa citazione è stata ficcata un po’ in bocca a chiunque, nell’ambiente dell’open source si vengono spesso a creare fork di fork di fork semplicemente perché a qualcuno non sta bene un pelo nell’uovo, rifilando poi alla potenziale userbase delle promesse che nemmeno $politico_a_scelta.

Esempio di fork rigoglioso. Non questo, certamente.

Quindi, esemplifichiamo, perché la vita è più bella con gli esempi:

  1. Un cane manda una patch scritta male per girare a suo piacimento l’andamento di un progetto open
  2. Tale patch gli viene rifiutata (not compliant, non c’entra una mazza col documento di progetto, o altro. Metteteci quello che vi pare come ragione)
  3. Il suddetto cane piange
  4. Il suddetto canide alza una canizza (come appropriato) in mailing list di progetto o sul bugzilla, facendosi aiutare da qualche developer più cane di lui
  5. La discussione prosegue con toni supponenti da parte del “developer”, con pazienza il team gli propone di migliorare la patch e provare a sottoporla durante la prossima merge window
  6. “Procrastinatori! Nazisti! Il team di sviluppo non ci ascolta, non è abbastanza open” (ignorando l’esistenza di specifiche e documenti di progetto). Il cane forka il repository (aka codebase)
  7. Il cane promette sul suo blog (che passa da 20 visite al giorno – di bot come Google – a 4000 visite giornaliere) meraviglie, lo zip uor airghenon et similia
  8. Su una codebase di 400 mila righe di codice il cane riesce a fare il rename di qualche software. Il resto no. Ma mica per altro, è che semplicemente non capisce quello che legge.
  9. Imprecazioni sul blog contro parti di codice non commentate, mantenute regolarmente nell’altro progetto che altrettanto regolarmente prosegue il suo ciclo di vita
  10. La gente (utenti, ndr) comincia a scocciarsi
  11. Dopo due anni di lavoro viene rilasciata una specie di golden master (alpha, beta, ‘n se capisce bene) indietrissimo rispetto al progetto originale
  12. Il team di sviluppo (già poco numeroso) si defila

Credo di aver terminato. In caso posso aggiungere altri passi, basta dirmene nei commenti.

Photo courtesy of Diego Sevilla Ruiz

How to make money with open source

Ci sono diverse ragioni (e tra le piú disparate) per il titolo di questo post:

  1. Mi fa SEO, che non è mai una brutta cosa;
  2. È un bel claim (vedasi la ragione di sopra);
  3. È una cosa che mi interessa in prima, seconda, e terza persona – singolare e plurale;
  4. Ma soprattutto Ben Werdmuller ha scritto questo interessante, meritevole, notevole (inserite altri aggettivi positivi qui) post dove spiega alcuni concetti abbastanza semplici.

A prescindere dai business model elencati infatti abbastanza attivo nel movimento open source e arrivato a capire in qualche anno che sulla sua testa pende una sorta di condanna: il contraccolpo dell’effetto buzzword infatti lo ha reso un tema al limite dell’impopolare, e chi si sforza di costruire conversazioni tra team non me beneficia affatto.

money

Vi consiglio la lettura del post di cui sopra; nel frattempo, alcune riflessioni al volo su quanto ci si può leggere dentro. Prima cosa, mettere in luce i casi di studio. I nostri clienti o i nostri amici (banalmente) possono essere spaventati dalla fine che hanno fatto progetti come StatusNet e Diaspora. Sta a noi portare in gioco compagnie come Red Hat e software come WordPress, che sicuramente ormai sono diventati dei veri e propri motori dell’economia, in totale apertura, e in totale assenza di paura del feedback comunitario. Seconda cosa, identificare le nostre best practice di riferimento. Ci sono un sacco di modelli che hanno generato profitto negli anni per progetti anche completamente aperti: facciamoli nostri, accettando di dover applicare un po’ di inventiva perché magari roba trita e ritrita. Non buttiamo nemmeno i grandi fallimenti (come lo stesso Diaspora) che con qualche colpo di reni avrebbero potuto conquistare le scene.

Fine dei consigli per gli acquisti. E leggetevi il post – lo ripeto – ché è fighissimo. Torno ad ascoltare i Dream Theater. E daje che ‘sta settimana ricomincia Game of Thrones.

Photo courtesy of JD Hancock

Codemotion 2013: soddisfazioni, divertimento, e open source

Dato che del lavoro ne ho fin sopra i capelli per questi giorni, mollo tutto e mi dedico a raccontare un po’ di cose.

In questi giorni ho curato alcune cose: lo speciale sul Codemotion di HTML.it, di cui potete leggere i post (by me) sugli interventi che mi hanno colpito di più sul nostro blog. È una di quelle cose che di solito mi diverto a fare, perché per scrivere su un company blog bisogna necessariamente cambiare registro rispetto alla scrittura tradizionale (come quella che vedete qua).

Non solo: per Leo Hi-Tech ho cominciato a pubblicare i resoconti degli speech che mi hanno stuzzicato per così dire “lato maker” o comunque tecnologicamente parlando. Aspettatevi quindi un resoconto anche sulle stampanti 3D di Kentstrapper, e qualcosa sul robot che risolve Ruzzle (di cui posterò pure il video nei prossimi giorni).

La cosa notevole, post a parte, di questo Codemotion, è stata la visione dell’open source che è stata data da diversi speaker: qualcosa di necessario, e che parecchie volte funge da catalizzatore per un’idea che ha solo bisogno di un’integrazione di alcuni componenti con una “limata” finale. Ho partecipato, a tale proposito, anche alla tavola rotonda di Andrea Mignini (ILDN) sullo stato dell’open source e in particolare di Linux in Italia, occasione che ci ha permesso (me e gli altri presenti) di mettere a fuoco alcune problematiche come la chiusura stagna di alcune community, e di analizzare anche possibili soluzioni.

Codemotion

A parte tutto quello che consegue dal lavoro, tuttavia, le cose belle me le hanno regalate gli amici. Lorenzo Cantini (Kentstrapper, di cui sopra), su richiesta si è fatto scippare un meraviglioso fischietto rigorosamente stampato in 3D. Luca Bonesini mi ha regalato uno dei momenti migliori di networking di tutta la mia (breve?) vita, nonché un bel po’ di risate al corner di Sourcesense, messo proprio di fianco a quello di nois3lab, per celebrare la nascita di RIOS (Rete Italiana Open Source). Oltre questo, una menzione d’onore va ad Alfredo, di Google, per aver reso possibile un sogno: oggi sulla mia scrivania c’è un peluche di Android che si fa fare le coccole, e devo ringraziare lui.

Non finisce qui: Lorenzo è stato il mio compagno instancabile lungo un sacco di interventi e ha sopportato anche il fatto che prendessi appunti invece di parlare con lui, supportandomi nel mio lavoro di cui sopra. Ultimo, ma non per importanza, Alessio (darthpelo, omonimo – e se qualcuno dei due avesse scelto, sarei sicuramente io ad avere lo stesso suo nome): l’evento è iniziato infatti come una gita delle medie con lui come compare di autobus, e le sue frecciate nerd mi hanno accompagnato lungo tutta la prima giornata. Peccato non aver poi proseguito la chiacchierata davanti ad un hamburger.

Un caloroso grazie anche a tutti gli speaker che ho seguito, tutti davvero preparati e con una presenza scenica media notevole.

Photo courtesy of Alessio Jacona

GitLab: BitNami fornisce un installer

Conoscete BitNami? No? Descriverla è semplice: si tratta di una compagnia che gestisce una sorta di repository di script di installazione o deploy per soluzioni comuni e stack di software open source come WordPress, tra i più semplici, o Magento, tanto per nominare qualcosa di un po’ più esotico. Conoscete GitLab? No? È un software che ho anche nominato più volte nelle mie imprecazioni, che essenzialmente si pone come un’alternativa open source a GitHub per il management dei repository (git) di codice, grafico, via web.

git

Nonostante sulla carta GitLab sia un software validissimo sulla carta, soprattutto adesso che ha annunciato il voler rendersi indipendente da Gitolite nella prossima versione, l’installazione di questa sorta di CMS del repo management rimane per me un mistero, indipendentemente dalla sua ottima documentazione su Arch Wiki. Sono quindi contentissimo del fatto che BitNami offra da pochi giorni l’installazione in pochi click dello stack di GitLab, in modo assolutamente indolore.

La potenza dell’open source: qualcun altro può porre rimedio alle procedure più fastidiose conoscendo bene il funzionamento del software. In questo caso BitNami ha automatizzato il punto negativo probabilmente più imponente per GitLab, quindi io ovviamente sono contentissimo. E, cari sistemisti, cari smanettoni, cari nerd casalinghi, dovreste esserlo anche voi.

Photo courtesy of Johannes Gilger

Firefox OS: hands on e prime impressioni

Proprio durante il Mobile Tea di qualche giorno fa in cui ho partecipato come speaker, ho avuto anche l’occasione per mettere le mani su un bel po’ di device carini come il Padfone che ha Flavio in prova, o ancora Blackberry Z10, o addirittura un device con Firefox OS portato “in scena” dal mio amico Carlo Frinolli, che ormai in Italia è una celebrità dato il suo apporto all’open web evangelism e a Mozilla stessa di cui si è fatto rappresentante.

Complimenti a parte, ho visto qualcosa di interessante: innanzi tutto come già avevo avuto modo di intuire l’idea che HTML5 non sia annidato dentro qualche tipo di emulazione rende tutto decisamente molto più prestante, tant’è che come lo stesso Carlo ha avuto modo di mostrarmi, sull’hardware di prova (non ufficiale e che a mio parere faceva proprio cagarone) Firefox OS offriva comunque un’esperienza utente quantomeno piacevole grazie a un’interfaccia pressappoco fluida, cosa che con un device Android da qualche decina di euro non avrei mai avutp. Diciamo che sono molto soddisfatto dalla constatazione che durante la prova non mi sia venuta la pulsione di fiondare il telefono dalla finestra, sentimento che di solito invece è potente in me quando testo dispositivi di fascia bassa o ultra bassa.

firefox os

Per il resto? Su un top di gamma Firefox OS dà l’idea di poter volare alto con le prestazioni: sicuramente è un’alternativa interessante al resto del panorama mobile soprattutto per il fatto che con altri brand pur con le novità del caso si ha sempre una sensazione di già visto. Firefox OS si pone oltre questa prospettiva per power user e opinion leader a mio parere, dato che se si è consapevoli che tutto quello che si maneggia (un esempio? Il dialer, o il pannello delle impostazioni) è fatto di file HTML e JavaScript, allora si riconsiderano un sacco di assunzioni date per vere in precedenza, e la piattaforma assume un suo senso nonché un fattore caratterizzante che stimola la curiosità di chi guarda.

Il tutto, ovviamente, condito dal fatto che Firefox OS porta una ventata di aria nuova nel sempreverde flame HTML5 VS sviluppo nativo – e senza dubbio io credo che l’avere un banco di lavoro dove il codice non venga tradotto in dei blob orribili abnormi (mi scusino gli estimatori di PhoneGap e Titanium in sala) sia un grosso plus.

Photo courtesy of Mozilla in Europe

Open source & mobile development – be open, and sleep well

Qualche giorno fa si è tenuto a Roma il Mobile Tea #3, evento organizzato da CodeInvaders con l’aiuto di MobiLovers, la community nella quale partecipo attivamente che tratta di mobile visto e trattato in profondità da tutti i punti di vista. L’evento è stato interessantissimo, sia perché gli speaker (altri) erano veramente preparati, sia perché io stesso ho presentato un mio talk. :D

Ho deciso di parlare un po’ di open source e sviluppo mobile, perché credo che con la definizione di nuovi paradigmi si sia perso un po’ il senso del tutto, e per far capire ai presenti che è possibile portare i modelli di business legati all’open source dai vecchi ecosistemi al mobile che ogni anno cresce di un ordine di grandezza. Ho parlato quindi di open API, open BaaS, applicazioni aperte e effort aziendale necessario affinché un processo di apertura abbia un ritorno di investimento soddisfacente.

Godetevi le slide, che purtroppo rappresentano l’1% della mia presenza scenica, e ricordatevi che sono disponibile (beware: momento marketta) a ripetermi in azienda dietro pagamento.

Uptime, stabilità: dove un Mac mostra il fianco

L’altro giorno stavo leggendo un post incredibilmente fazioso di John Gruber. Nonostante tutto, ho continuato a leggerlo – reputo infatti Daring Fireball un blog schizofrenico a tratti notevolissimo, in altri tratti spudoratamente commerciale e Apple-ofilo. Insomma, per farla breve vado e ti leggo questo:

16 years after the ad campaign, “Think Different” has proven itself to be more than glib marketing. It is a simple, serious motto that serves as a guiding light for the company.

Oggi, scrivendo un articolo per lavoro, mi sono concesso una piccola pausa andando a guardare Facebook (che, uhm, ultimamente guardo sempre meno – sarà che mi sto disamorando), e ho trovato lo status di una mia amica (che saluto – ciao Carmen :)):

Si è oscurato improvvisamente lo schermo del MacBook, cosa si fa?

macbook air

Bene. Dopo averla guidata attraverso una sorta di hard reset per aggirare lo schermo oscurato e averle fatto riaccendere il computer con i miei soli superpoteri (:D), mi sono ricordato del post di Gruber, e della sua sviolinata al motto di Apple come unica via verso prodotti funzionanti. Eh no – ho pensato – questo non è un motto che serve da luce guida a tutti: è, ed è sempre stato, solo un’iniziativa di marketing, perché la carissima Apple sull’uptime ha sempre mostrato il fianco, tanto che è già da un bel po’ che non si producono più XServe. Macchine, che, orientate al mercato dei server, non vendevano ovviamente un fico secco perché far gestire i tuoi task, le tue cose importanti a Mac OS X, è come offrire i tuoi più importanti documenti ad un tritarifiuti perché te li tenga al sicuro.

Non dico di non comprare un Mac. Sarei spudoratamente fazioso quanto Gruber in questa occasione – tanto più che in casa ne ho anche un paio (Hackintosh, va bene, ma sempre OS X è). Dico solo che l’obiettività è qualcosa che ultimamente manca: osannare la filosofia “think different”, quando questa non ha mai fatto più che produrre degli hipster cultori dello status quo tecnologico (quando invece avrebbe dovuto portare macchine con uptime e stabilità superiori), è per me moralmente errato.

Ah, hipster.

Photo courtesy of Travis Isaacs

Una nuova backbone: ma Google+ non è quello che ci serve

Cos’è successo oggi in sintesi? Troppe cose. Ma mentre ero in viaggio sul mio trenino mi sono preso cinque minuti per leggere questo post di Simone Robutti, molto carino, di cui mi ha particolarmente colpito un passaggio centrale relativo alla sua filosofia del “thinking plus“. Ve lo allego, merita:

L’entusiasmo e la partecipazione non sono però solo imputabili al naturale sentimento di coesione dovuto alle minacce esterne, ma anche a qualcosa di più profondo. Per molti G+ era il primo esempio di successo, di quella dimensione dell’Internet immaginata da tanti teorici, in cui si poteva formare una rete altamente magliata, di persone  fiduciose nel progresso e nel futuro, interessate a condividere il proprio sapere, a migliorarsi, migliorare gli altri e il proprio ambiente, perseguendo quell’ideale superomistico che pervade i pensieri di tante persone quando guardano ad internet. Certo, detto così sembra che G+ abbia inventato l’acqua calda, ma chiunque vada ad osservare G+ nella sua vera essenza, è in grado di cogliere la differenza con gli strumenti preesistenti: si muove ad un’altra velocità, con logiche più semplici, più intuitive, tutto più veloce ed estensivo, uno strumento per mettere davvero in comunicazione e connessione l’intero strato pensante dell’umanità, ad ogni angolo del globo.

android comunicazione

Ora, il buon Simone mi ha stimolato una riflessione che frullava in testa quanto a pensiero singolo già da qualche giorno: riusciremo prima o poi a portare le nostre interazioni ad un livello nuovo dove contino gli individui, i contenuti (come messaggi) e gli archi di un grafo in maniera predominante, portando a termine l’intento di rendere l’Internet attuale compenetrata da questo concetto? Google è potente. Google ci sta provando. E Google+ è un bel tentativo, non c’è che dire: mai prima d’ora avevamo vissuto un approccio così nuovo all’individualità online.

Mi sono reso conto però che l’approccio è a conti fatti il punto di partenza: posto che in questo caso la curva di implementazione delle feature segue più o meno una sequenza di Fibonacci, e che siamo ai primi numeri, quello che Google giustamente sta portando avanti è nonostante l’innovazione qualcosa di cui non abbiamo bisogno. Se infatti quello che stanno tentando di far passare come la figata del secolo è – vuoi o non vuoi – un social network, quello di cui c’è un esasperato bisogno è una social backbone tutta nuova per i contenuti, dotata di una open API e possibilmente open source per raggiungere un fattore di democratizzazione e distribuzione delle piattaforme.

Quindi si: la novità di Google+ è l’aver portato il livello di connessione sociale alla compenetrazione di Internet, ma allo stesso modo questa fase va superata con l’istituzione di uno stage di providing super partes che possa garantire la net neutrality anche in questo caso e la diffusione capillare di un networking libero. E non è detto che la stessa Google non possa avere un ruolo in questo. Vi sembra fantasia? Non lo è: è esattamente il social networking come lo conoscete voi, unito all’approccio dei banalissimi mailserver.

Ma le email sono una storia a parte, di cui spero di stare qui a narrarvi presto.

Photo courtesy of Johan Larsson

Il CEO di Groupon sbattuto fuori: la lettera mi ha quasi fatto piangere

Meravigliosa la lettera di poco fa del CEO di Groupon a tutti i dipendenti, specialmente ai suoi collaboratori più cari: io penso di non avere ancora mai visto un esempio così clamoroso di autofustigazione per gli errori commessi e di sincerità nei confronti dell’azienda, dello staff e del mondo esterno.

Leggetela, perché merita veramente tanto.

(This is for Groupon employees, but I’m posting it publicly since it will leak anyway)

People of Groupon,

After four and a half intense and wonderful years as CEO of Groupon, I’ve decided that I’d like to spend more time with my family. Just kidding – I was fired today. If you’re wondering why… you haven’t been paying attention. From controversial metrics in our S1 to our material weakness to two quarters of missing our own expectations and a stock price that’s hovering around one quarter of our listing price, the events of the last year and a half speak for themselves. As CEO, I am accountable.

You are doing amazing things at Groupon, and you deserve the outside world to give you a second chance. I’m getting in the way of that. A fresh CEO earns you that chance. The board is aligned behind the strategy we’ve shared over the last few months, and I’ve never seen you working together more effectively as a global company – it’s time to give Groupon a relief valve from the public noise.

For those who are concerned about me, please don’t be – I love Groupon, and I’m terribly proud of what we’ve created. I’m OK with having failed at this part of the journey. If Groupon was Battletoads, it would be like I made it all the way to the Terra Tubes without dying on my first ever play through. I am so lucky to have had the opportunity to take the company this far with all of you. I’ll now take some time to decompress (FYI I’m looking for a good fat camp to lose my Groupon 40, if anyone has a suggestion), and then maybe I’ll figure out how to channel this experience into something productive.

If there’s one piece of wisdom that this simple pilgrim would like to impart upon you: have the courage to start with the customer. My biggest regrets are the moments that I let a lack of data override my intuition on what’s best for our customers. This leadership change gives you some breathing room to break bad habits and deliver sustainable customer happiness – don’t waste the opportunity!

I will miss you terribly.

Love,

Andrew

Photo courtesy of Kristina Alexanderson