13 May 2013
Rispolvero un minuto il blog, dato che ultimamente posto poco per il semplice fatto che tra lavoro e università, scrivere di cose che mi stiano a cuore con la testa "a posto" (ossia non presa da mille pensieri) mi riesce un po' arduo. Ma ho appena scovato una cosa interessante, che ha mi ha svoltato qualche ora della mia esistenza.
Vi siete mai chiesti quanti cambiamenti il progetto Android abbia mai apportato al kernel Linux per renderlo compatibile con il documento di progetto iniziale? Io spesso me lo sono chiesto. E a prescindere dal fatto che da qualche versione di Linux tutto il codice prima separato è confluito nel sorgente ufficiale, è una domanda che qualche volta mi sono fatto anch'io, concludendo con un sonoro boh ogni mia riflessione. Fortunatamente qualcuno ha deciso di chiederlo su Quora, e qualcun altro, uno sviluppatore Google, ha risposto.

Traduco in italiano perché merita:
La cosa interessante riguardo il design di Android è quanto poco abbiamo modificato il kernel. La maggior parte dei sistemi embedded su cui ho messo mano hanno apportato cambiamenti drastici al kernel, solo per lasciare lo user space isolato - per esempio, un kernel "realtime" fortemente modificato, e poi X11 per la GUI.
Android è l'opposto: solo cambiamenti minimali al kernel, ma uno user space esclusivo, diversamente da ogni altro sistema Unix. Infatti, lo user space di Android è così differente dal Linux tradizionale, che si può dire che Android non sia un sistema Linux eccetto che per il kernel.
Ecco una lista concisa dei cambiamenti che abbiamo apportato al kernel di Linux:
- ashmem (Android Shared Memory), un sistema di memoria condivisa file-based;
- Binder, un sistema IPC ed RPC;
- logger, un sistema hi-speed interno al kernel di logging ottimizzato per le scritture;
- Paranoid Networking, un meccanismo per ridurre l'I/O di rete a determinati processi;
- pmem, un driver per mappare chunk grandi di memoria fisica nello user space;
- Viking Killer, un OOM killer di rimpiazzo che implementa la logica di Android "killa i processi recenti meno utilizzati" in condizioni di memoria libera scarsa;
- wakelock, la soluzione unica di Android per il power management, per cui lo stato di default del dispositivo è sleep e sono richieste azioni esplicite (via il wakelock) per svegliarlo.
E ovviamente tutto il solito assortimento di driver, port per architetture ARM, e altro codice a basso livello per supportare Android su ogni dispositivo.
Di questa lista, quasi tutti i punti sono stati implementati come driver di dispositivo con modifiche al core del kernel minimali o assenti. L'unico cambiamento significativo è l'implementazione dei wakelock.
Per cui, ecco la risposta: la cosa più invasiva che ha realizzato Google è il meccanismo di wakelock, mentre il resto è tutto farina del sacco di Mountain View che però non interferisce per nulla o quasi col lavoro predefinito del kernel del ramo Linus Torvalds "e figli". Molto molto bene. Non credo di aver mai trovato righe così interessanti su Android e su quale sia il rapporto che lega i due team di development (e i due code stack).
Ringrazio il mio ottimo "collega" Alessio Sergi per la segnalazione.
Photo courtesy of Tom Page
27 Apr 2013
Dato che è un bel po' che non mi concedo qualche riflessione in libertà sul mio piccolo magazine aperiodico (LOL, dai, è solo un blog, ma me la tiro), parliamo un po' del nuovo Google Play Store, che ho trovato aggiornato non sui miei Nexus - o aspiranti tali - bensì sul mio (!) HTC One nuovo di pacca.
Da questo deriva una semplice considerazione: Google, devi rivedere il tuo algoritmo per il rollout degli aggiornamenti allo store, perché banalmente you are doing it wrong.
Scemenze a parte, scartato l'HTC One che mi è arrivato da recensire per Leo Hi-Tech, ho paciugato un po' con questo Play Store flashando anche un APK sul mio Nexus 7 per apprezzarlo su più piattaforme. L'interfaccia è notevolmente migliorata, seguendo le linee guida Holo in maniera molto più aderente; questo ci piace parecchio, anche perché in questo modo Play non è più un pugno negli occhi, e non siamo più costretti, noi utenti, a sopportare una schifezza di aborto di user experience ogni volta che vogliamo installare un'applicazione.

In secondo luogo, su Nexus 7, ho apprezzato veramente tanto come Google abbia creato una sezione preferenziale di applicazioni per tablet, dove l'esperienza utente è ottimizzata per questi device: si spera che in poco tempo quindi venga colmata una grande mancanza (parlo da utente) che a ragione mi hanno fatto presente alcuni soggetti famosi come ad esempio @SaggiaMente, ossia la mancanza di un vero e proprio ecosistema tablet-oriented su piattaforma Android. Tra la creazione di una sezione del genere e - si spera - l'effort crescente di un numero alto di sviluppatori, probabilmente la situazione andrà via via migliorando.
In conclusione quindi posso dire che con Jelly Bean e questo nuovo Play Store, Android è arrivato ad un grado di maturazione pieno e soddisfacente: per fare ancora l'hipster quindi stavo pensando a Firefox OS, o Ubuntu Phone. E questi, gente, si che sono i problemi seri della vita. (:D)
Photo courtesy of me - scattata con un Galaxy S3 e "artata" con Aviary, di cui vi parlerò più diffusamente, da qualche parte. Forse qui.
14 Apr 2013
Piccolo update per una questione che mi sta a cuore: KDE migra tutta la sua infrastruttura a Git, smettendo definitivamente di supportare Subversion come da programma. È stato un passo sicuramente arduo da compiere e faticoso, anche per il know-how che gli sviluppatori hanno dovuto acquisire in una finestra temporale sicuramente ampia ma mai abbastanza, anche contando che c'è sempre qualche pigro che rifiuta di modificare il proprio flusso di lavoro.

Sperando che non ci siano problemi di sorta nello shutdown dell'intera struttura SVN (ormai assorbita dai Git peer), auguro come sempre un ottimo lavoro al team di KDE, e mi auguro che lo switch abbia fatto venir fuori le potenzialità di contributor che magari con SVN sarebbero rimasti nell'ombra di una subdir. E in via assolutamente definitiva dò il benvenuto a KDE nella grande famiglia dei progetti Git :)
Photo courtesy of zakiakhmad
07 Apr 2013

Copio qui la riflessione iniziata in MobiLovers nel thread di Ilario Farina.
Io intanto l'altra sera ho giocato col Nokia Lumia 620 di Marco Usai (recensione sua su Leo Hi-Tech). Bello, l'hardware mi è piaciuto un sacco (anche come scocca, veramente bellino col monocolore dietro) però il software l'ho trovato imbarazzante. Per strano che possa sembrare il SO non era superfluido (anche se molto reattivo, e so che sembra un paradosso), e comunque la Modern UI continua a lasciarmi perplesso, non mi fa l'impressione che Microsoft si aspetterebbe che mi facesse.
Attendo il Surface con fiducia.
Che significa? Significa che se prima avevo una mezza idea di un Windows Phone come telefono di riserva visti i prezzi, adesso ho tre quarti di quell'idea. Il problema è che non sono pienamente convinto della scelta, perché se il device in sé è bellino (impronta molto teen), il software non è il massimo. Checché se ne dica - e qui so che mi farò nemici tipo Gabriele Pannacci :D - Modern UI mi sembra ancora una cosa non matura e poco personalizzabile; è probabile che l'impressione sia dovuta alla prova su un device di basso profilo, anche se Windows Phone 7 mi sembrava più veloce anche su hardware similari.
Per ora il mio riferimento indiscusso resta il Nexus 4. Period. :)
31 Mar 2013
Sto giocando da un sacco di tempo in macchina virtuale con OpenSUSE, e ci tengo a precisare che l'ho tenuta regolarmente aggiornata dalla 12.1, passando per OpenSUSE 12.2 e OpenSUSE 12.3. Come al solito Zypper rimane un caposaldo per la semplicità d'uso e le similarità con APT e Pacman, che personalmente apprezzo molto. La seconda cosa che mi ha stupito è la presenza di pacchetti che ad esempio Fedora non ha.

La dotazione software è la stessa delle mie workstation: Linux, systemd, KDE, e il gestore di pacchetti di turno. La cosa che mi ha fatto particolarmente piacere è proprio la presenza di Node.js, ambiente su cui ogni tanto mi diverto a sviluppare un po' di cosette e la cui mancanza in distribuzioni come Debian e Fedora mi è sempre pesata parecchio. Nello specifico, la questione su Fedora è controversa dato che bisogna usare i repo testing, quindi per me in Fedora stable Node ancora non c'è.
In ogni caso, come al solito, distribuzione snella e carina, con tante utility a prova di utonto. Ma sono ancora indeciso sull'OS per la mia prossima workstation.