Feeds:
Posts
Comments
ADK DemoKit

ADK DemoKit

Con l’aggiornamento del mio HTC Wildfire S ad Android 2.3.5, finalmente ho la possibilità di sfruttare le possibilità offerte dall’Open Accessory kit (ADK), ed ho quindi testato subito l’applicazione demo (ridotta) supportata dalle librerie ufficiali per l’USB Host Shield per Arduino. Il sistema completo richiederebbe un Arduino Mega ed il kit ufficiale distribuito da Google, ma è possibile effettuare qualche progetto più “in piccolo” anche con il semplice Arduino Uno e lo shield offerto da SparkFun, con qualche leggero aggiustamento hardware per rendere compatibile il tutto.

Nella foto il risultato del primissimo esperimento: l’applicazione Android riconosce l’accessorio collegato via USB, anche se nessuno degli elementi previsti (LED, pulsanti etc) non sono collegati al momento… è stato un test rapido, l’esplorazione più approfondita verrà più avanti (appena ho un po’ di tempo da dedicarci).

Personalmente amo Android da quando ha trasformato il mio cellulare da “quella cosa irritante che devo portare in giro perché mia moglie possa raggiungermi” in “un pezzo di elettronica realmente utile con cui posso controllare la mia email”. Odio davvero parlare con le persone al telefono, ma una piattaforma mobile per rimanere in contatto attraverso vie differenti è qualcosa di grande. Inoltre avere a disposizione un po’ di videogame per i voli lunghi non è affatto male. Comunque ciò che è veramente importante in merito all’open source è il fatto che Google non abbia alcun bisogno del mio aiuto. Che mi piaccia il mio telefono Android è un fatto relativamente irrilevante. Potrebbero usare Linux indipendentemente da ciò che penso, la cosa giusta da fare, e migliorarlo nel modo che preferiscono. E’ questo l’importante, non Google ed Android. Il fatto che che ognuno possa usare Linux per i propri scopi e possa modificarlo nella direzione che preferisce è importante, come il fatto che non debba chiedere il permesso o firmare un accordo di riservatezza o pagare qualcun’altro. L’Open Source funziona se giochi alla pari con gli altri giocatori, altrimenti no. Ciò è un bene, favorisce una vera competizione sul mercato. Nessuno può fermare gli altri quando tentano di migliorare le cose.

(Intervista completa su Wired.it)

Escape

You know what? There is no escape.

Yesterday you told yourself: well, you know, if I’m not gonna make it here in my country, I’m going to Spain: good place, good people, good food, many youngsters going there for work. But then Spain got 21% unemployment, and it didn’t look that good anymore. And the whole Europe looks like it is going to be torn apart, so maybe there are no European countries really better than ours.

So today you tell yourself: well, if I’m not gonna make it here in my country, I’m going to the US. The dear, old US. But then US handle jobs in a way too different from ours, always on the verge of being fired if you’re not good enough; no middle class, you become a loser way too quick. Then you watch a Lawrence Lessig recent talk and decide that America has lots of problems. Ok, no US.

So tomorrow you will be telling yourself: well, if I’, not gonna make it here in my country, I’m going to Iceland: yes, it’s quite cold in there, and there are active volcanos all over the place, but their economy looks better than many others (or, at least, some posts on the Internet claim so), and maybe they are gonna make it (among all the other countries in the world).

But, how long will it take before things change there, too? Humanity must face the inevitable changes that are happening everywhere: the economy, the old jobs, the new jobs, the climate (speaking of which: at some point in time, we will have to pay the piper); it was too easy to get away to avoid problems here, and it is becoming harder to do it again. And I’m not speaking about just moving out to get more money in a job, I still can agree with it (especially in my profession), but in general on the quality of life that it is awaiting us in the next few years. And the one of the next generations.

So, there is no escape. Face the problems and solve them. Now.

P.S.: too much Battlestar Galactica today…

E’ uscita da qualche settimana (un paio se non ho visto male) la seconda release candidate di Arduino 1.0 (scaricabile da qui), ma per poter utilizzare il layer di rete su Ubuntu 11.10 è necessario patchare il file w5100.h, che si trova sotto /libraries/Ethernet/utility; alla riga 271 va modificata la seguente define:

static uint16_t read##name(SOCKET _s) { \
uint16_t res = readSn(_s, address); \
res = (res << 8) + readSn(_s, address + 1); \
return res; \
}

in questo modo:

static uint16_t read##name(SOCKET _s) { \
uint16_t res = readSn(_s, address); \
uint16_t res2 = readSn(_s, address+1); \
res = (res << 8); \
res2 = res2 & 0xFF; \
res = res | res2; \
return res; \
}

GCC-AVR in Oneiric, infatti, per qualche motivo (che non sto ad indagare) non digerisce l’altra definizione, e rende inutilizzabili i socket aperti (esperimenti con Wireshark infatti mostrano pacchetti malformati). Questa modifica peraltro vale anche per le versioni precedenti di Arduino, eccetto quelle pacchettizzate, che già includono la patch (ma chi usa Arduino pacchettizzato…).

[…] gli utenti del software accettano come ineluttabile il fatto che la versione 1 di un prodotto contenga errori […]. Questo è uno dei sintomi più evidenti dell’immaturità dell’ingegneria del software rispetto agli altri campi dell’ingegneria.

[…] di solito i prodotti software sono accompagnati da un avvertimento, nel quale il produttore afferma che non si ritiene responsabile degli errori presenti nel prodotto e dagli eventuali danni che possono provocare. L’ingegneria del software potrà davvero essere considerata una disciplina ingegneristica solo nel momento in cui si riuscirà a raggiungere con il software un’affidabilità paragonabile a quella raggiunta dagli altri prodotti dell’ingegneria.

(Ghezzi, Jazayeri, Mandrioli, Ingegneria del Software – Fondamenti e principi)

Buon compleanno, WWW!

Riusciremmo un giorno a realizzare la vision di TBL?

The entertainment system was belting out the Beatles’ “We Can Work It Out” when the phone rang. When Pete answered, his phone turned the sound down by sending a message to all the other local devices that had a volume control. His sister, Lucy, was on the line from the doctor’s office: “Mom needs to see a specialist and then has to have a series of physical therapy sessions. Biweekly or something. I’m going to have my agent set up the appointments.” Pete immediately agreed to share the chauffeuring. At the doctor’s office, Lucy instructed her Semantic Web agent through her handheld Web browser. The agent promptly retrieved information about Mom’s prescribed treatment from the doctor’s agent, looked up several lists of providers, and checked for the ones in-plan for Mom’s insurance  within a 20-mile radius of her home and with a rating of excellent or very good on trusted rating services. It then began trying to find a match between available appointment times (supplied by the agents of individual providers through their Web sites) and Pete’s and Lucy’s busy schedules. (The emphasized keywords indicate terms whose semantics, or meaning, were defined for the agent through the
Semantic Web.)

In a few minutes the agent presented them with a plan. Pete didn’t like it—University Hospital was all the way across town from Mom’s place, and he’d be driving back in the middle of rush hour. He set his own agent to redo the search with stricter preferences about location and time. Lucy’s agent, having complete trust in Pete’s agent in the context of the present task, automatically assisted by supplying access certificates and shortcuts to the data it had already sorted through.

Almost instantly the new plan was presented: a much closer clinic and earlier times—but there were two warning notes. First, Pete would have to reschedule a couple of his less important appointments. He checked what they were—not a problem. The other was something about the insurance company’s list failing to include this provider under physical therapists: “Service type and insurance plan status securely verified by other means,”the agent reassured him. “(Details?)”

Lucy registered her assent at about the same moment Pete was muttering, “Spare me the details,” and it was all set. (Of course, Pete couldn’t resist the details and later that night had his agent explain how it had found that provider even though it wasn’t on the proper list.)

(dall’articolo The Semantic Web, Scientific American, 2001 (PDF))

Alcide De Gasperi

Un politico guarda alle prossime elezioni. Uno statista guarda alla prossima generazione.

Ebbene sì: proprio io, il laudator maximo di KDE e Ubuntu, sto per scrivere un rant. E devo ammettere che la cosa è successa un po’ per caso, essenzialmente perchè per la prima volta sto configurando un PC per uso di tutta la casa, quindi essenzialmente multiutente e con un utente in particolare semplificato il più possibile, così da permettere anche ai miei genitori di fare task estremamente semplici (in particolare, navigazione Web).

Pronto e carico, stamattina decido di installare Kubuntu 11.10: avevo già messo su la 11.04 in precedenza in quel PC, ma c’era Gnome e preferivo avere KDE per avere un ambiente desktop che assomigli a Windows e non a Mac, per favorire appunto il newbie della situazione. L’installazione va smooth, come al solito del resto, ma è al momento della configurazione che appaiono i problemi, che mi fanno dire appunto che un sistema del genere non è certo pronto a reggere il confronto con gli altri già nominati. Per la cronaca: il rant è rivolto sia a Kubuntu che a KDE.

Nell’ordine:

  • creo i 3 utenti del sistema: quello dei 3 che verrà usato dai miei vorrei che fosse creato senza password (ovviamente non è amministratore del sistema), dato che non c’è motivo di inserirne una. System settings non si lamenta, e fin qui tutto bene.
  • Tento di fare login con i nuovi utenti: KDM mi costringe a cambiare la password al primo login di tutti, senza che io glielo avessi chiesto. Torno in System settings, ma da nessuna parte trovo l’opzione per disattivare questo comportamento. Prendo atto, riapro la gestione degli utenti, metto password a caso e torno a provare il login. A questo punto inserisco le password definitive, ma sono costretto a darne una anche all’utente che non doveva averne, dato che KDM non accetta campi vuoti. Tanto per fare un esempio, in Gnome posso configurare utenti con e senza password senza alcun problema.
  • Il tema di login predefinito di KDM (e l’unico installato) non mostra i tre utenti, ma costringe a scrivere sia il nome utente che la password. Non c’è modo di cambiare questa cosa, se non installando (forse) un altro tema. Peraltro, se si scaricano ed installano nuovi temi dalla pratica finestrella di System settings, questi non appaiono nell’elenco (forse dopo un riavvio, ma devo controllare).
  • Rekonq è il browser di default di Kubuntu. Rekonq? Ma ci prendiamo per i fondelli? Per carità, se cerchi Firefox trovi l’installer, ma Rekonq è una cavolata fatta più o meno per caso e probabilmente ancora instabile, vogliamo veramente rifilare questo catorcio ai nuovi utenti?
  • KDE notifica con warning, al termine del login di chiunque, che la cartella $HOME/.kde/share/apps/korganizer/contacts (o qualcosa del genere) non esiste. Bè, e allora? Non esiste perchè nessuno di noi usa un gestore dei contatti, non vedo cosa gli possa interessare al sistema se tale cartella non c’è.
  • Imposto un utente con il desktop a vista delle cartelle (aka come un desktop normale), e inserisco alcune icone. Ora, a parte il fatto che le icone hanno dimensioni diverse l’una rispetto all’altra, resta il fatto che se voglio dare all’utente la possibilità di muoverle, devo lasciare sbloccati gli widget, e questo fa sì che ogni volta che si va sopra un’icona esca la barra laterale per spostarla, e se non voglio che appaia questa cosa (che francamente è inguardabile se esce ogni volta che si muove il mouse sul desktop) devo bloccare gli widget, rendendo impossibile muovere le icone. Ora, la barra in trasparenza va benissimo per configurare i plasmoidi e per muoverli, ma per le icone è veramente inutile per non dire pessima da un punto di vista visivo.

Per quanto mi riguarda, uno qualunque di questi punti mi porterebbe quantomeno ad installare Gnome, se non fosse che Unity è troppo diversa dal Windows XP che usano normalmente i miei genitori, e devo ammettere di aver pensato anche di mettere su direttamente XP, se non fosse che è un OS che ha più di 10 anni.

Vedremo le impressioni al loro primo utilizzo, anche se temo vivamente quel momento.

P.S.: il sistema è, come detto, Kubuntu 11.10, aggiornato fino ad oggi con i soli repository ufficiali (quindi nessun PPA in mezzo).

LaTeX @ LinuxDay 2011

Anche quest’anno ho partecipato al LinuxDay, finalmente tenutosi in sessione congiunta da tante associazioni per il software libero di Milano, tra cui naturalmente il POuL; ho avuto anche il piacere di tenere un talk introduttivo a LaTeX, in parte ispirato a quanto già mostrato qualche mese fa in occasione della conferenza su LyX che abbiamo fatto al Politecnico. Ripropongo qui le slides aggiornate.

Anche quest’anno ho dato un (piccolo) contributo ai Corsi Linux organizzati dal POuL, introducendo agli studenti KDE; ecco di seguito le slide che ho preparato (tutte le immagini sono tratte dai siti kde.org e satelliti).