09 May 2012
Ieri, approfittando di un post su Google+ dove si annunciavano imminenti, scottanti e peccaminose news riguardo CyanogenMod 7 e CyanogenMod 9, dato che sono due mainline di uno dei progetti che seguo di più ultimamente, ne ho approfittato per chiedere una piccola cosa: se ci fossero novità riguardo CyanogenMod 9 e il supporto per Nexus One - il quale, essendo io possessore di un Desire, è una cosa che mi interessa tantissimo.
Ho ottenuto risposta immediatamente da uno degli sviluppatori, Abhisek Devkota, che successivamente non ha rifiutato di continuare per un po' la chiacchierata direttamente nel thread. Abbiamo monopolizzato un po' l'attenzione, ma sono contento di questa "intervista" fra virgolette, dato che mi ha fornito l'opportunità di venire a contatto con un insider di un progetto che stimo moltissimo. Vi riporto lo scambio di battute in maniera integrale, a parte qualche piccolo taglio e/o correzioni varie.

Qualche notizia relativa allo sviluppo di CM9 per Nexus One?
Allo stato attuale, possiamo fare il boot ed eseguirla usando il nostro lavoro e quello di Evervolv (github.com/Evervolv). Però, e questo è un grosso PERÒ, il processo richiede delle patch che noi avvertiamo come non "pulite", o non appropriate nei confronti degli standard di Google per l'accesso al mercato. Purtroppo quindi, fino a che non porteremo il dispositivo ad uno stage in cui non ci sono conflitti, non avremo molte notizie in merito.
Capisco. Grazie della risposta, e continuate così, sto testando il vostro lavoro e lo trovo veramente veloce. Volevo solo l'opinione di un insider sulla questione Adreno200; sono veramente fiducioso sul fatto che non dovrò ricomprarmi lo smartphone per utilizzare ICS. Congratulazioni, ancora ;)
Beh, nel caso peggiore non avrai CM9. Ma ci saranno tante altre vie per avere ICS. CyanogenMod è un "animale" [questo l'ho tradotto alla lettera, è bellissimo ndr.] differente dal resto delle ROM e degli hack, dato che Google (con un po' di piaggeria) ci presta molta attenzione e, per assenza di termini migliori, ci tratta come un OEM.
Per mantenere questo status, operiamo come se fossimo un solo uomo, e ci assoggettiamo volontariamente a questa pratica, il che significa che dobbiamo stare attenti a non fare passi falsi, altrimenti romperemmo il CTS, od altri standard. È il prezzo da pagare per essere così popolari, ma questo d'altro canto rende il nostro lavoro ancora più duro e pulito.
Lo so, mi ricordo il problema con le GApps, dopo quel fatto Steve cominciò a distribuire la ROM come due package separati, e non come una soluzione all-in-one. È il prezzo da pagare, e non possiamo farci nulla; mi piace in ongi caso, una community con questa forza e questo tasso di crescita presenta qualche criticità ma infiniti pregi. Dopo tutto sono felice che il team di CM mantenga degli standard alti, anche se questo significa una RC in meno o un ciclo di sviluppo più restrittivo. [Mi riferivo al discorso di CyanogenMod 7.1, arrivata dopo tanto tempo; Abhisek ha capito. ndr.]
Quella è una storia vecchia dove (ringraziando il cielo) non abbiamo dovuto effettuare grossi cambiamenti, dal momento che avevamo fatto si che CM funzionasse da sola senza i "bit" di Google. In un caso più recente, stavamo considerando di aggiungere Cornerstone per i nostri tablet, ma abbiamo avuto un pushback serio da parte degli sviluppatori Google di Android, arrivando al punto di suggerirci che tutte le varianti di CM sarebbero state bandite dal mercato (non vista come una minaccia, ma come una soluzione a un problema tecnico). Siamo lieti di avere questo tipo di feedback dalle persone che rendono possibile Android e quello che noi facciamo.
Riguardo la nota sul ciclo di sviluppo, attualmente speriamo di poterlo velocizzare in futuro. I ritardi e il ritardo sono accaduti perchè noi potessimo riallinearci al fine di approcciare un piano più aggressivo. Poi se ne parla ;)
Fortunatamente ve l'hanno detto (di Cornerstone) prima, e non dopo un po'. Essere un coopetitor (non è un typo) così grande significa avere il giusto supporto in questo tipo di situazioni. Sul ciclo di sviluppo, la mia nota non voleva essere assolutamente offensiva ;) Ho visto i ritardi come una cosa positiva. Quando ho studiato Ingegneria del Software, ho usato una carta semplificata (fatta da me) analizzando il vostro modello di sviluppo quindi da utente sono fiero di vedere una struttura così organizzata ;)
Successivamente la discussione ha preso un'altra piega, essenzialmente perchè la gente si è rotta di leggere solo noi due ed ha ripreso a commentare. Mi ha fatto veramente piacere in ogni caso parlare con Abhisek, che si è dimostrato una persona preparata e soprattutto uno sviluppatore attento anche ai movimenti del mercato.
Photo courtesy of Johan Larsson
05 May 2012
Lo so, è tardi per celebrare lo Star Wars Day insieme a voi, ma purtroppo ieri ho avuto immensamente da fare e quasi nessun attimo libero. Festeggiamo oggi, sempre che vi vada bene; eeeh fiesta! Scherzi a parte, mi è venuto in mente che non ho mai postato di quanto sia bello vedersi l'episodio IV ("A New Hope") di Star Wars, tramite il proprio terminale, semplicemente tramite un comando.

"May the 4th be with you", dicevano. Mi dispiace un sacco aver bucato la festa di Star Wars mondiale, ma uffa. Ecco. Torniamo a noi.
Come è possibile fare ciò? Semplice: dei tizi con del tritolo al posto del cervello hanno riprodotto tutto l'Episodio IV in ASCII art, e l'hanno infilato su un server dove è disponibile per chiunque, solo entrando tramite telnet. Date questo comando:
telnet towel.blinkenlights.nl
E godetevi il film, da veri nerd, direttamente dentro la vostra shell. Devo essere sincero: vorrei che ci fossero più port simili di opere cinematografiche :D

03 May 2012
Vi eravate divertiti con la scorsa Dropquest? Per chi non fosse a conoscenza, qualche tempo fa da Dropbox era stata diffusa una quest che, in poche parole, mandava l'utente in tutta la Rete affidandogli dei compiti e degli indovinelli (un po' come i nostri giochi di ruolo preferiti, tipo, chessò, Dungeons and Dragons); alla fine del percorso chiunque ottiene 1GB di spazio gratuito. In più, chi completa la ricerca per primo - o in tempi ragionevoli così da rientrare nella classifica dei migliori - ottiene ulteriori premi.

Dropbox ha deciso di riproporre la Dropquest; ancora una volta enigmi e ricerche da compiere per tutti gli utenti, che se arriveranno alla fine otterranno 1GB gratuito addizionale di spazio, ed in più se riusciranno ad ottenere uno dei premi maggiori:
- Primo premio (1): La felpa dei dipendenti Dropbox, la t-shirt della Hack Week di Dropbox in edizione limitata, un disegno (e i disegni di Dropbox sono meravigliosi) firmato dall'intero team, un invito a scrivere la prossima Dropquest, e naturalmente 100GB gratuiti; (Elamadò.)
- Secondo premio (10): La felpa dei dipendenti Dropbox, la t-shirt di Dropbox, 20GB gratuiti;
- Terzo premio (15): La t-shirt di Dropbox, 5GB gratuiti;
- Quarto premio (50): 5GB gratuiti;
- Quinto premio (100): 1GB gratuito.
Tutto ciò naturalmente verrà sommato al GB gratuito (che ormai al confronto sembra quasi misero) ottenuto tramite il solo completamento della quest. Ulteriori informazioni le avrete sulla pagina ufficiale di Dropbox; io personalmente parteciperò, dato che l'anno scorso anche per solo 1GB gratuito mi sono comunque divertito moltissimo. Inoltre Dropbox per quanto mi riguarda non annoia mai, dato che correda la ricerca di disegni che, almeno secondo il sottoscritto, fanno crepare dalle risate.
Insomma, andate e moltiplicatevi per, ancora una volta, la sfida più epica di tutti i tempi attraverso Internet che vi frutterà pure un bel GB in più su Dropbox ;)
Photo courtesy of Johan Larsson
28 Apr 2012
Prima di dedicarmi completamente a Linux, avendo smesso di usare Windows da un sacco di tempo, avevo deciso di esplorare l'universo Apple più in profondità, concedendomi il lusso di poter dedicare un po' della mia infinita sapienza (hahah) all'atto di costruirmi un piccolo Hackintosh. C'è chi ci riesce e chi no; a me è riuscito e all'incirca un paio di anni fa ho fatto un giro con Mac OS X, spulciandomelo bene fino in fondo, sino ad arrivare nei meandri del filesystem, comprendendo l'abominio commesso da Apple nello sdoppiamento della struttura dei dati all'interno della root del sistema operativo. Ma a parte questo, che forse vi racconterò un'altra volta, ho compreso che l'universo della mela non faceva per me per una serie di motivi: primo tra tutti la sua chiusura. Sono così tornato ad usare con soddisfazione Linux, il quale però non mi riservava la stessa attenzione riguardo un aspetto che mi aveva molto colpito usando il mio Mac-non-Mac.
La user experience.
Cosa accade nell'universo Apple
Per retaggio culturale più che per vera necessità - diciamocelo infatti, Mac OS era superiore per operazioni di design in quanto Windows vent'anni fa non supportava i font a spaziatura variabile e tante altre carinerie; ora come ora sono esattamente equipollenti - a Mac OS è rimasto ancorato quel bacino d'utenza che, un po' hipster e un po' nostalgico, nonchè un po' traviato dalle opinioni comuni, durante le operazioni di sviluppo di un software tenta irrimediabilmente di trovare la migliore strada per disegnare l'interfaccia grafica. È un male? No. Anzi. Durante la mia esperienza con Mac OS X mi è capitato di imbattermi in applicazioni fatte abbastanza male dal punto di vista della funzionalità, ma mai in qualcosa che a vedersi fosse sgradevole: questo può essere riconducibile a due elementi fondamentali: Aqua e Cocoa. Cocoa è un set di librerie fondamentalmente molto prestante, e Aqua è l'estetica generale di Mac OS che al sottoscritto piace molto. Oltre questo, se proprio non si aderisce agli standard di Aqua le applicazioni che vengono scaricate sono sempre molto belle. Anche un tasto del tipo Sad Trombone risulta fenomenale, sarei pronto a scommetterci.

Proprio questo ha fatto sembrare Linux per certi aspetti ai miei occhi un sistema abbastanza "vecchio dentro", non tanto per i desktop environment che col tempo hanno assunto dei connotati sempre più moderni, ma per alcuni programmi i quali sembrano la morte civile. Fortunatamente Canonical ha portato all'attenzione di tutti questo dettaglio, che per quanto possa essere un'idiozia è pur sempre qualcosa che conta agli occhi dell'utilizzatore finale; sono felice quindi che esistano applicazioni come Nitro Tasks, che godono di un port Linux e di un'interfaccia molto bella, ma soprattutto ho visto come il trend a riguardo sia cambiato, anche nel panorama Linux che a cambiamenti di questo tipo è sempre stato restio, a causa dei moniti lanciati da Steve Jobs e Mark Shuttleworth in seconda battuta.
Il panorama open si evolve
Ho fatto un giro con Novacut 12.04 proprio ieri, per testarlo un secondo e vedere fin dove ci si può spingere con questo software che erge come suo cavallo di battaglia proprio la UI. Soddisfattissimo, mi sono poi girato il blog ufficiale e ho trovato a lato la lista degli sviluppatori, con rispettive qualifiche. Ve la riporto integralmente:
Jason DeRose
Architect & Developer
Tara Oldfield
Anthropologist & Artist Liaison
Akshat Jain
Developer Outreach & Developer
James Raymond
UI Designer & Developer
David Jordan
Multimedia Engineer & Filmmaker
Mi è saltata all'occhio questa cosa meravigliosa: tra cinque sviluppatori, possiamo vedere come due tra loro (un'ottima percentuale quindi) siano "umanisti": un UI designer, quindi una persona più che preparata, e soprattutto un'antropologa che si occupi di verificare che effettivamente il lavoro del designer sia usabile e degno di questo nome. Sono parecchio felice di vedere che anche nel panorama Linux le cose stanno cambiando, e che il design non sia un fattore che di fronte ad altri aspetti (magari marginali) passa in secondo piano.
Spero vivamente che l'esempio di Novacut non rimanga solo una goccia nel mare.
Photo courtesy by jm3 @ Flickr
20 Apr 2012
Poco tempo fa è apparso un post su OneOpenSource scritto dal medesimo che spiegava come Linux 3.3.1 introducesse dei bug gravissimi nella gestione di schede wireless Atheros, precisamente facenti uso del driver ath9k incluso in Linux già da parecchi anni. A quanto pare infatti, gli sviluppatori hanno deciso di farsi qualche risata alle nostre spalle.
Con Linux 3.3.2 rilasciato stabile su kernel.org ho voluto dare una chance alla mainline 3.3 per vedere cosa diavolo succedesse, e invece mi sono trovato connesso alla rete WPA2 di Roma2LUG in men che non si dica. Tutto è bene quel che finisce bene, tuttavia volevo lasciarmi a qualche considerazione da vecchia di paese riguardo l'accaduto, precisamente sul meccanismo di QA e signoff sia del kernel Linux che del suo pacchetto in Arch Linux.
Mi domando infatti cosa diavolo sia venuto in mente agli sviluppatori da due lati: innanzi tutto rilasciare una modifica del genere senza testare. È vero infatti che uno in genere è sicuro di quello che scrive e "if it compiles, it works", tuttavia ho esaminato la patch (capirai, 'sta perizia tecnica hahah) e ho visto che è stata tolta una porzione di codice veramente miserrima, mentre le aggiunte sono state parecchie in confronto. Mi è sembrato come se ci si fosse dimenticati di inserire delle syscall in mezzo al codice; qualcosa del tipo "Massì, fàmo così, che ce frega,che ce 'mporta, male che va ci arriva qualche mail minatoria" - e infatti è andata male. Non commento solo perchè in quanto a programmatore sono un'emerito imbecille e non sono al livello, sicuramente, di chi ha scritto ath9k, però insomma. Qualche riserva me la prenderei.
La mia seconda perplessità è riguardo il meccanismo di signoff di Arch Linux. Quando è arrivata la mail "please signoff linux-3.3.1" la gente a che pensava? Era tempo di YouPorn? Mi fa strano, perchè comunque gli sviluppatori di Arch di solito scoprono eventuali malfunzionamenti abbastanza in fretta. La patata bollente stavolta è scappata dalle mani di tutti, ed è finita in terra. Peccato: sinora il meccanismo di QA (se così si può chiamare, dato che non lo è in maniera letterale) aveva retto parecchio bene a eventi di questo tipo.
Questo è lo spazio riservato alle considerazioni che mi sono concesso. Le riflessioni che ne sono derivate, magari ve le racconto nel prossimo post ;)