7 agosto 2008

Tu tu tu tu tuuuuu…


Anche quest’anno è finalmente arrivato il momento del post delle vacanze, che poi è il vero motivo per cui questo blog è ancora in vita. Stavolta niente concorsi, niente indovinelli, sarebbe troppo facile. Non faccio molta strada, come potete vedere dall’inconfondibile profilo dell’isola sulla quale passerò le prossime due settimane e mezzo.


Image courtesy of Google

psicopornografia


Geniale “banned commercial” (ma forse sarebbe meglio dire viral marketing) della Guinness:

Un po’ grezzo, ma molto fine :)

iStream


iStream
Originally uploaded by Lethalman
Very useful applet for listening to the radio. It lacks a perferences dialog, but it's still nice.

Gnome main menu


Gnome main menu
Originally uploaded by Lethalman
Hello,
while I was playing with apt-cache I've discovered a new kind of main menu in GNOME. It's being developed by SuSE. It feels nice, robust and innovative.
The screenshot is showing the documents tab.
To install, aptitude install gnome-main-menu and add the new applet.

kqemu on Debian amd64

Hello,
I've been using qemu a lot lately because I'm creating an usb hdd with debian live.
The image contains a system running postgresql, development packages for gtk and python and gnome-core . All this ends up loading in more than 5 minutes, this is really boring.

Then I begun looking for a faster virtualization system, and found KVM. Unfortunately my processor hasn't the right flag for it.

Finally I found kqemu, which is a module for the kernel that speeds up a lot qemu. I never thought it could speed up things...... so.... much!
Let's install it:
m-a a-i kqemu
modprobe kqemu
That's it, for those who owns an amd64 processor, this is the right way to use kqemu:
qemu-system-x86_64 -kernel-kqemu [your options]
You shouldn't get any error, if you do... boh.

The image now boots in 33 seconds down to the bottom init scripts, and GNOME works only with a slight delay but it's definitely a great speed up. With the real machine, I enter gnome in about 40 seconds.

Keep going the good work Qemu team, and thanks as usual to everyone who helped me on IRC.

6 agosto 2008

Debian and zd1211 wifi

Hello,
I'm using debian lenny and I've got these two problems:

  • With versions of the linux kernel prior to 2.6.20 (maybe) I could install zd1211 firmware using the module-assistant which has been now dropped from testing and unstable.
  • Boot process slowed down by 30 seconds and couldn't plug-in the usb pen because udev/hal screw up

What I've done is to remove the source and its created firmware, with the one shipped with testing and unstable (bug #411912):

aptitude remove --purge zd1211-firmware zd1211-source
aptitude update
m-a clean zd1211
aptitude install zd1211-firmware

Now let's fix the hotplug part, open /etc/udev/rules.d/z25_persistent-net.rules and remove similar lines:
# USB device 0ace:1215 (zd1211rw)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:1d:0f:b3:66:f7", NAME="eth2"
Now try to detach and reattach your usb pen and everything should magically work.

Thanks to Nss (#debianizzati), dcbw NetworkManager developer and gsimmons (#debian).

5 agosto 2008

Una talpa è solo una talpa?

Ah, ragazzi fortunati, che stasera non solo sono a casa perché mi sto dando a nuove forme artistiche cromatiche e pittoriche¹, ma non mi va neanche di raccontavi i fatti miei².

Cosa rimane? Beh, ovvio un paio di annunci per far sapere al mondo e a tutti gli amici di Internet le novità in anteprima di GNOME 2.23. Che gusto ci sarebbe altrimenti a compilarsi milioni e milioni di righe di codice, se non spifferare in anteprima e con inutile orgoglio (del genere dell'orgoglio che può avere un possessore di iPhone nei confronti di un possessore di, che so, Sony Ericsson Z320i)?!?

Allora procediamo?

Bene la prima succosa notizia è: habemus temorum supportum³!

Eravate lì pronti nuovamente a criticare, vero? E invece no. Con la rapida velocità degno dell'agguato di un giaguaro (oddio, quando scendo a metafore di così bassa fattura sappiate che non ho la forza di pensare) in quattro e quattr'otto abbiamo due specifiche freedesktop.org e una libreria di supporto per una cosa fondamentale come i temi per i suoni di eventi!!!

Fatta, utilizzata e benedetta, la nuova dipendenza esterna per GNOME libcanberra (il perché del nome non l'ho ancora capito, giuro), una libreria per eventi sonori che supporta le nuove specifiche XDG sound theming/naming, è stata molto abilmente e rapidamente usata nel modulo Audio del centro di controllo per stabilire quale suono riprodurre, per esempio, al login, o quando vi appare un'allerta di errore o altro.

Ora, ricapitolando e snocciolando i due precedente paragrafi per quelle persone prive di visionarietà sufficiente a leggere sotto le righe o di voglia di cercare su goooooogle, i seguenti punti sono fatti e non parole:
  • esiste una specifica di freedesktop.org che stabilisce quale debba essere la struttura di un tema di suoni per eventi (tipo quella dei temi per le icone, per intenderci), la trovate qui;
  • esiste una specifica di freedesktop.org che stabilisce i nomi di alcuni eventi audio utilizzabili dall'ambiente grafico e dalle singole applicazioni - una lista lunga, in verità - e i criteri per aggiungerne di nuovi (tipo quella delle icone, per intenderci), la trovate qui (sì, è lo stesso link, che posso farci);
  • esiste un tema di suoni per eventi con alcuni suoni base, lo trovate qui (di nuovo, lo stesso link);
  • esiste una libreria che implementa le due specifiche cui sopra, si chiama libcanberra
  • esiste una libreria che semplifica la gestione degli eventi sonori in applicazioni GTK+, si chiama libcanberra-gtk ed è fornita nel pacchetto di libcanberra;
  • esiste un modulo per le GTK+, sempre in libcanberra, che permette la riproduzione di suoni per eventi (tipo pulsante cliccato) anche senza che la vostra applicazione GTK+ lo abbia o debba specificare nel codice (così come fa adesso la deprecabile libgnomeui);
  • esiste un minimo di interfaccia grafica in gnome-control-center per selezionare quale tema usare e quali suoni di eventi (non tra tutti quelli definiti dalla specifica, in verità) riprodurre.
Non solo. Anche Epiphany (ah, userà ancora Gecko per la 2.24) usa libcanberra, ma non ho capito per cosa, forse per comunicare via audio il completamento di un download e dello stesso umore sembrano gli sviluppatori di Empathy e forse altro.

Chiusura classica: per chi fosse interessato ad approfondire l'argomento, consiglio la lettura, in inglese, di questo annuncio da parte di Lennart Poettering, la persona dietro lo sviluppo di libcanberra.

Chiusura personalizzata: non chiedetemi schermate che le hanno già pubblicate altrove e sarebbe un controsenso, visto che parliamo di suoni e non di colori.

La seconda succosa notizia è che non c'è alcuna seconda succosa notizia.

[1] leggi "imbianchinaggio", ma su supporto antico, talmente polveroso che sono sicuro verrà fuori qualcosa a chiazze tipo spatolato, ma senza dover spendere euri e euri per la vernice adatta
[2] che a seconda di dove mi giro sono piattamente noiosi, compostamente tragici o murphianamente sfigatissimi
[3] OK, il mio latino è un bel po' arruginito..

Illuminated Displays

I have done some ncurses stuff lately and for whoever is interested in writing complicated layouts i advice to check this out: STFL. Hear this.

4 agosto 2008

So Say We All

There’s a reason you separate military and the police. One fights the enemies of the state, the other serves and protects the people. When the military becomes both, then the enemies of the state tend to become the people.

Intel-Moblin passa da Ubuntu a Fedora



Dirk Hohndel, il direttore delle strategie Linux e Open Source di Intel, ha dichiarato nei giorni scorsi che il progetto Moblin - nella sua versione 2.0 - transiterà dal kernel di base Ubuntu 8.04 a quello Fedora. Hondel riporta questa decisione come una scelta tecnologica, dovuta al fatto di voler adottare il sistema a pacchetti RPM in sostituzione di quello DEB, ma le voci più accreditate sembrano giustificare questa scelta alla scarsa partecipazione comunitaria che ha riscontrato il progetto Moblin 1.0 (Ubuntu).

Ricordiamo che la piattaforma Moblin Intel è un progetto ottimizzato per processori Atom (Menlow) e sistemi Mobile Intenet Device (MID). L’attuale stack Moblin 1.0 è costruito intorno al kernel Ubuntu 8.04 ed è la base di Ubuntu MID Edition presentato al pubblico nel giugno scorso.

Dov’è finito lo stretto accordo tra Shuttleworth e la Intel? A mio parere, questa decisione della Intel potrebbe essere figlia di un atteggiamento estremamente chiuso del gruppo OEM di Canonical, il quale ha in molte occasioni dimostrato di voler mantenere qualunque esclusiva commerciale sui nascenti progetti, agendo da intermediario tra il produttore asiatico e l’eventale cliente occidentale.

La decisione del nuovo kernel per la versione 2.0 di Moblin sarà presentata al prossimo Intel Developer Forum in San Francisco dal 19 al 21 Agosto prossimi. Potete leggere qui l’articolo di The Register.

.

3 agosto 2008

Chi ha la ricetta giusta?

Tito Boeri scrive un articolo su VOX in cui in breve dice che la politica economica dell’attuale governo ci porterà alla recessione, il governo ovviamente difende la propria politica ma chi ha la ricetta giusta? È evidente che in Italia vengano sprecati denari pubblici in mille modi diversi ma se poi vieni coinvolto in qualche progetto locale viene fuori che non ci sono mai soldi per nulla. Se è vero, come dice Boeri che nella scuola si spendono un sacco di soldi perché una scuola deve rivolgersi a un’associazione di volontariato per mettere su il laboratorio di informatica? Dove sono i soldi? Ripeto: chi ha la ricetta giusta?

Chi ha la ricetta giusta?

Tito Boeri scrive un articolo su VOX in cui in breve dice che la politica economica dell’attuale governo ci porterà alla recessione, il governo ovviamente difende la propria politica ma chi ha la ricetta giusta? È evidente che in Italia vengano sprecati denari pubblici in mille modi diversi ma se poi vieni coinvolto in qualche progetto locale viene fuori che non ci sono mai soldi per nulla. Se è vero, come dice Boeri che nella scuola si spendono un sacco di soldi perché una scuola deve rivolgersi a un’associazione di volontariato per mettere su il laboratorio di informatica? Dove sono i soldi? Ripeto: chi ha la ricetta giusta?

Da cosa si riconosce un paese civile


Ehud Olmert, leader (e bomber) dell’incivile e retrogrado paese di Israele, si dimette dal suo incarico per farsi processare.
È accusato di inezie come aver preso una “tangente” di 150.000 dollari ed aver richiesto due volte i rimborsi per alcuni suoi viaggi… briciole, insomma. Eppure lui si dimette. Annuncia che non si candiderà per le primarie di partito e si dimette da premier per fare largo ad un nuovo governo, dicendo addirittura che è felice di vivere in un paese che mette sotto inchiesta il proprio leader!

È da queste cose che si riconosce l’enorme divario che separa i paesi incivili dell’est dell’oriente (l’est è l’Albania, mica anche il resto!) dalla nostra grande Repubblica Fondata sul Lavoro (ma di chi, poi?). Qui da noi una simile umiliazione, ringraziandoiddio, non potrebbe mai aver luogo: si riconoscerebbe subito nella Magistratura Corrotta® la responsabilità di certe spiacevoli manovre, atte unicamente a screditare la Giusta Guida® del paese e creare inutile scompiglio; ai media non sarebbe mai permesso di far trapelare certe vergognose falsità, mettendo talmente in cattiva luce le persone da indurle ad affermazioni illogiche come quella di Olmert.

Eh, già, cari Israeliani: ne avete di cose da imparare, se volete arrivare al Nostro livello!

2 agosto 2008

UN po’ di sviluppo per hobby

Oggi, con la scusa di voler chiudere un po’ di bachi di apt-spy e dato che per qualche strano maleficio mi è sparito il debugger in anjuta, ho provato un po’ diversi ambienti di sviluppo:

  1. emacs+ddd: spartano ma funziona
  2. anjuta: senza il debbugger non serve
  3. kdeveloper: ha tutto quello che mi serve, stupendo il metodo per fare il pacchetto sorgente
  4. eclipse+cdt: si rifiuta di fare il build dicendo che non trova i riferimenti a curl, se qualcuno sapesse perché si comporta così me lo faccia sapere.

Vado comunque a dormire contento che due bachi li ho risolti

31 luglio 2008

Nice Guys Finish Last


AAAAAAAAAAAAA
RRRRRRRRRRRRR
GGGGGGGGGGGGG
HHHHHHHHHHHHH

!!!!!!!

Ma perché non me ne sono accorto prima!

Il buon Rhythmbox, se trascini i brani dal suo elenco all'iconcina del lettore collegato nell'elenco delle sorgenti musicali, crea un bell'albero di cartelle $AUTORE/$ALBUM. E io che me li creavo a manina visto che l'ultima volta che ci avevo provato metteva tutto nella directory root....

Non è giusto, scoprirlo proprio ora che il mio lettore ha smesso di funzionare (l'attacco delle cuffie, cacchio) e che sto pianificando di acquistarne uno MTP e non mass storage (ma solo perché costa meno di altri ed è in offerta). Speriamo almeno che il supporto a MTP sia altrettanto ben progettato e realizzato.

Tra l'altro qualcuno saprebbe interpretare psiconaliticamente il fatto che, recentemente, ho iniziato a fare la mia "camminata figa" - cioè la mia camminata è sempre figa, con un piede davanti all'altro tipo modella, o Kenshiro, a scelta, se volete canzonarmi oppure ricondurmi a modelli morali di dubbia origine; la "camminata figa" è quando sto con le cuffie (o canticchio in testa) canzoni cazzute tipo Back in Black o You Could Be Mine o Welcome Home (Sanitarium) e aggiungo al tutto un'aria da dio in terra data dalla opportuna sincronizzazione del passo, del ghigno e talvolta dell'ancheggio alle circa 200 battute per minuto - anche con il brano Sweet Transvestite??!!?? Anche se con passo lievemente meno marziale... ma senza ancheggiare troppo...

29 luglio 2008

Dietro ogni stupido c'è un idiota

No, stavolta non puoi lamentarti, hai scelto tu di restare ad aspettarmi.

A me hai lasciato solo la possibilità di sceglierti il posto. E spero che l'ombra della quercia ti faccia compagnia.

28 luglio 2008

JHbuild delle mie brame - parte 3

Out of Office

Se avete pazienza di aspettarmi.
Magari nel frattempo vi penso.
Però voi non cercatemi nei sogni.


Immagine pubblicata da Phineas H.

PS in tutta sincerità, la mia valigia non può che essere questa, per questioni di dimensioni; come dicevano al liceo "in me tutto è ben proporzionato", ma è una lunga storia...

PPS mi mancherete, lo ammetto, ma ho programmato un paio di post, così non vi annoiate troppo

PPPS Oh, dio!! il tag <blink> è ancora supportato!!!!!!!!

27 luglio 2008

Giro d’affari


In questo week-end sono stato a fare un “giro d’affari”: sono andato a Legnano e a Como per prendere dei nuovi arrivi, degli oggetti che avevo acquistato, ed in più ci ho attaccato una piacevole escursione sul lago di Como.

Primo nuovo arrivo:

Mistral Razor appartenuta nientepopodimeno che a Mattia Pedrani (che, potevo comprare una tavola da un bischero qualunque, io? :D ), presa a Legnano dal simpaticissimo Valerio Pedrani, padre di Mattia. Sarà dura passare dal Bomber a questa, non vedo l’ora di provare!

Gita sul lago:

Pernottato il venerdì presso Faggeto Lario, nel “dente” centrale del lago di Como, in un comodo parcheggio panoramico con limite d’altezza a 2.20 m (ma a noi ci fa un baffo!), fresco, tranquillo e con una connessione wi-fi a scrocco sufficiente per controllare l’email :)
Il sabato proseguito il giro fino a Bellagio, traghetto per Varenna e poi su fino in alto lago, ritorno sull’altro lato.
Molto carina la strada vecchia dalla parte di Lecco, anche se a tratti un po’ stretta; un po’ troppo turistica la riva comasca, ma comunque gradevole.
Tornati a Como, via verso l’officina di Eddy per il…

Secondo nuovo arrivo:

Ebbene sì, mi son deciso! Ho preso il tetto a soffietto per il Furbone! So già che mi costerà un bel po’ di lavoro, però anche solo l’anteprima di vederlo legato sul furgone per il trasporto mi fa venire l’acquolina in bocca… :)
Per puro caso, da Eddy abbiamo incontrato Gordano e Tiziana (Gioy_80 e Cucciola sul forum dei jokeristi) ed alla fine siamo andati a mangiare una pizza tutti insieme.

Pernottamento presso il parcheggio del cimitero di Cernobbio (sono i posti più tranquilli, non c’è mai un’anima viva…) e poi ritorno a casa a velocità ridotta per via del “trasporto eccezionale” del tetto, legato attraverso gli sportelli ed il portellone posteriore.

26 luglio 2008

Oggi piove

Ero partito per la montagna (Moena - Val di Fassa) con l’idea che mi sarei riposato sui prati e avrei letto tutto quello che avevo caricato sull’eeePC, invece ho camminato tanto, letto a malapena i titoli dell’email e … solo oggi che piove sono qui a giochicchiare con il piccolo PC ma per poco tra un attimo si esce e si vanno a salutare gli amici.

24 luglio 2008

La guerra dei poveri


Come se non bastassero tutti i problemi già enunciati nei precedenti post, i quali concorrono a soffocare qualunque iniziativa commerciale si cerchi di far nascere nel settore dell’Open Source in Italia, esiste anche il fenomeno della guerra dei poveri. Questa particolare circostanza si manifesta talora inaspettatamente, e costringe aziende amiche a lottare disperatamente fra loro per contendersi le briciole di un pasto avvenuto su banchetti ai quali, per loro, è vietato accedere.

Vittime di una chiusura ingiustificata dei grandi portoni del business, protagonisti consapevoli di una improbabile sfida di sistema, coraggiosi (forse incoscienti e sognatori) imprenditori dai bilanci inferiori a quattro cifre intere, questi eroici personaggi tentano quotidianamente di costruire un budget, un’offerta ecologica e competitiva.

Finché - talvolta - ci riescono. Ma per riuscirci devono aver ridotto le cifre al commiserevole importo di sopravvivenza, forse meno. Cifre che, per un anno di supporto, eguagliano ciò che un consulente di business guadagna in un solo giorno. Eppure sono soddisfatti: forse un granello è stato scalfito dal granitico muro dell’inconsapevolezza.

Finché la pratica non giunge all’amministrazione, terribile luogo di perdizione popolato da kafkiani personaggi dagli occhiali opachi i quali, tra un lamento e un grugnito, ti fanno notare che acquistando lo stesso supporto direttamente dal vendor primario risparmierebbero alcune centinaia di euro l’anno. È inutile che gli fai notare che in quel caso il supporto sarebbe in lingua inglese e che l’help desk è un numero telefonico in Canada (prefisso internazionale 001). Che in nessun caso urgente il Canadese sarebbe disposto a venire personalmente qualora occorresse, che in più gli offri un portale di ticketing in italiano. Ma soprattutto, per tutto ciò, la differenza è pari a 5 pieni di benzina nella mia smart! Per un periodo di un anno.

E quando tutto ciò ti giunge da un’azienda con cui ritenevi di poter collaborare, in quanto anch’essa impegnata nella fornitura di servizi e prodotti Open Source, pensi davvero questa sia una guerra dei poveri, e finalmente ti convinci che forse è persa in partenza.

(Foto: Poverty Colour’s di betbele)

In estrema sintesi

Tentativo di minirecensione (tipo haiku senza sillabe e struttura e senza liberare simboli e metafore perché non mi va di stare a pensare o farmi imbrigliare dalla struttura) del nuovo e un po' instabile e parzialmente¹ funzionante Yelp + Webkit:
Come dovrebbe essere
un browser di manuali.
Fottutamente più veloce.
Ma tanto di più. Al punto da far venir voglia di dire "All Hail WebKit!".

[1] per esempio, i link all'interno del singolo manuale non funzionano, bisogna andare di pagina in pagina, ma se non ho letto male dovrebbe essere in parte legato al fatto che per farli funzionare prima con Gecko era stato fatto un pesante hack. Uff, più lunga la nota della recensione...

23 luglio 2008

Libro aperto

Sinceramente.

A volte li/mi rileggo e mi domando come cavolo faccio a imperlare tante str0n#at3 una dietro l'altra.

Sarà la depressione, visto che mediamente oscillo tra l'incazzato ed euforico.

Che diabolici mattacchioni

No, non io e Milo. Basta con questa storia. Che poi mica saremo solo noi due mattacchioni, no.

Stavolta il post è di quelli dal taglio non proprio "pratico", ma per lo meno "informativo". Anche se con un inizio come questo, è ovvio che sia informale.

Allora, ricapitoliamo.

In quel posto dove si sono bevute tante birre offerte gli uni agli altri per i più svariati motivi (che recenti statistiche e trend di mercato mostrano non sarà Cesenatico), lo stesso posto in cui sono cominciate a fiorire schede da un'applicazione all'altra neanche fosse acne giovanile, era uscita fuori l'idea di fornire al mondo e agli amici di Internet una versione 3.0 delle GTK+ con il break delle API/ABI, seguita poi da una 3.1/.2 con nuove funzionalità.

Levata di scudi da parte delle più eminenti eminenze grigie (ma non porporate, le eminenze porporate pensano che le GTK+ siano scritte dal diavolo per rendere la noosfera un posto insidiosamente tentatore; non riescono a capire infatti come una libreria così funzionale possa essere scritta in C invece che in C++ e non potendo dichiarare un dogma, allora rigettano il tutto e lo attribuiscono al demonio). La numerazione non era affatto logica e allineata con... boh, allineata, punto.

Conseguenza della levata di scudi: lieve possibile alterazione e cambio di programma come qui di seguito elencato:
  • la versione con l'incompatibilità si chiamerà 2.99.0
  • la versione con nuove fiatchur si chiamerà 3.0.0
  • i cambiamenti precedenti hanno come gradevole controparte quella di accelerare il processo di branching per permettere l'inserimento delle succitate nuove fiatchur
Corollari alle precedenti alterazioni:
  • creazione di uno spin-off libgtk3deprecated
  • creazione di uno spin-off libglib3deprecated
entrambi non mantenuti dal core team delle GTK+ ed entrambi che tenteranno di reimplementare quanto deprecato con le nuove API (ove possibile).

Ora, sono solo dichiarazioni di voto e non c'è codice. Si sa che non ci sono sviluppatori che scrivano codice per le GTK+ ed "Emmanuele Bassi" è solo il nome di un collettivo di scimmie urlatrici¹ messe di fronte a un numero sufficiente di computer tale da permettere la scrittura di codice per lo meno funzionante. È risaputo che tanto è totalmente inutile che si proceda con tale piano di conquista globale del mondo perché per quando sarà completato MacOS X sarà stato riscritto con le Qt (quelle di Trolltech, non QuickTime).

C'è sicuramente qualcosa che non quadra.

....

....

....

Ho capito! Anche questo è un gigantesco scherzo!!! Non avremo mai le gtk+ 3.0 e resteremo per sempre con le 2.x!!!

Fare scherzi a luglio e non a carnevale o il primo aprile in modo che a nessuno venga il dubbio che sono scherzi. Generare tanti e tanti commenti irosi e invidiosi in tutti i migliori blog in modo da far cadere i puri di cuore nel peccato. Dannati figli del diavolo! Voi e le vostre GTK+!

[1] Emmanuele, ti debbo non so quante birre per ogni volta che ho usato il tuo nome in modo scorretto e sconsiderato... ma lo sai che ti voglio bene

Shuttleworth alla Open Source Convention


È in corso a Portland, nell’Oregon, la decima conferenza sull’Open Source OSCON. Ieri si è svolto l’intervento di Mark Shuttleworth e InformationWeek pubblica oggi un’interessante intervista al leader di Canonical.

22 luglio 2008

Come l’iPod


Non avendo mai avuto prima un portatile, non mi ero mai posto il problema dello scrolling col touchpad, aggrappandomi saldamente alla rotellina del mio mouse.
Adesso che ho un portatile, spesso mi trovo ad aver bisogno di uno scrolling più preciso di quello offerto dall’area laterale del touchpad, specialmente se devo zoomare un’immagine o un documento. Provate ad usare l’area di scroll su Google Maps, per farvi un’idea :)

Ma ecco che viene in aiuto il driver Synaptics, che offre la possibilità di impostare uno scrolling circolare, come quello dei vecchi iPod antecedenti l’era delle ditate sullo schermo: si parte da un lato del touchpad e col dito si fa un cerchio, girando in un senso si generano eventi “scroll up” e nell’altro “scroll down”.

Per attivare sul proprio laptop questa stupenda caratteristica e poter così sorprendere i windozari di turno, è sufficiente aggiungere due o tre righe dentro il file di configurazione del server X, nella sezione dedicata appunto al touchpad.
Queste le righe:

Option      "CircularScrolling"          "on"
Option      "CircScrollTrigger"          "0"
Option        "CircScrollDelta"        "0.3"

La prima riga abilita la funzione, la seconda imposta il lato da cui partire per attivarla secondo questi valori:

  • 0: qualsiasi lato
  • 1: lato superiore
  • 2: angolo in alto a destra
  • 3: lato destro
  • 4: angolo in basso a destra
  • 5: lato inferiore
  • 6: angolo in basso a sinistra
  • 7: lato sinistro
  • 8: angolo in alto a sinistra

La terza riga, facoltativa, indica di quanti gradi (radianti) dobbiamo “girare” per generare un singolo evento di scroll: più è alto il valore, più piano scorre la pagina ad ogni giro. Io mi trovo bene con valori intorno allo 0.3.

Se si vuole disabilitare l’area di scroll laterale, in teoria dovrebbe bastare aggiungere anche questa riga:

Option "VertEdgeScroll" "0"

ma almeno qui non sembra funzionare. Pazienza, mi tengo anche l’area di scroll, mi può far comodo per scorrere più velocemente quando non ho bisogno di precisione.

Signal to Noise Rate

Tra ...
  • ciò che io penso
  • ciò che io voglio dire
  • ciò che io credo di stare dicendo
  • ciò che io dico
  • ciò che tu vuoi ascoltare
  • ciò che tu credi di stare ascoltando
  • ciò che tu stai ascoltando
  • ciò che tu vuoi capire
  • ciò che tu credi di aver capito
  • ciò che tu hai capito
... ci sono almeno 10 modi per avere problemi di comunicazione tra me e te.

Ma proviamoci lo stesso.

Purtroppo non è mia, letta su planet.gnome che a sua volta la attribuisce a Juliette Jarry of AJEL. Di mio posso aggiungerti che se abbiamo provato o proveremo a comunicare per telefono, allora considera anche che io ho il terrore del telefono e pronuncio solo "Sì" e "No", quindi moltiplica il tutto per 2. O per multipli di 2.

21 luglio 2008

Revert Revision 14386

Vi siete lamentati.

Vi siete indignati.

Avete reclamato.

Avete protestato.

Avete mugolato.

Adesso potete anche fare il revert di tutto ciò e smetterla.

Io intanto vado a tradurre.

Update: come mostra l'immagine qui accanto, io ho finito di tradurre, almeno nella mia sandbox...

Per il commit su trunk aspettate che finisca di tradurre ben bene anche le nuove stringhe delle schede.

JHbuild delle mie brame - parte 2

È arrivato l'atteso momento. Non fatevi cogliere impreparati, ma non abbiate nemmeno troppa ansia. È una cosa naturale e bellissima voler scoprire sensazioni nuove eppur conosciute (ma di cosa sto parlando!!??!!??!!)

I preliminari sono SEMPRE importanti¹

La prima azione da intraprendere è creare un nuovo utente; se le vostra distribuzione usa sudo invece di attivare l'utente root, può essere utile dargli i permessi adeguati per operare da amministratore.
Tale passo non è strettamente necessario, ma di recente JHbuild ha smesso di installare il proprio omonimo comando sotto /urs, preferendo $HOME/bin, per cui a mio avviso è meglio "confinare" JHbuild a un solo utente senza sporcare la propria home di produzione. Inoltre sarebbe abbastanza complicato per me starvi a spiegare come sia possibile compilare come un utente ed eseguire la sessione come altro utente. Quindi fatelo.

Ovviamente non vi spiego come si crea un nuovo utente. Insomma, state tentando di usare JHbuild, se non sapete creare un nuovo utente rinunciate. Ah, se vi interessa, il mio utente di prova si chiama Beta Tester e ha come login betatester.

In secondo luogo bisogna installare una serie di pacchetti necessari per avere gli strumenti di base: compilatore, programmi per il controllo di versione, strumenti vari per poter configurare, librerie per compilare al meglio il moduleset bootstrap.

Aprire quindi il vostro bel Terminale, cambiate la vostra identità in quella del nuovo utente creato appositamente 2 paragrafi prima e date il comando:
sudo apt-get install automake build-essential docbook docbook-utils docbook-xsl docbook2x doxygen bison flex libpopt-dev cvs subversion git-core jade texinfo libgdbm-dev libgmp3-dev libltdl3-dev libreadline5-dev libbz2-dev libx11-dev libssl-dev libxt6
(o analogo per distribuzioni basate su RPM) che provvederà a installare un bel po' di cosette che sembrano più o meno utili, ma fidatevi, sono necessarie (tra l'altro, il dover installare alcuni pacchetti è il motivo per cui dicevo prima che è meglio dare i permessi di amministratore al nuovo utente).

A questo punto si può procedere con i penultimi due passi preliminari, cioè:
  1. la creazione di una directory /opt/gnome2 in cui installare quanto compilato, directory che deve poter essere scrivibile dall'utente che esegue la compilazione;
  2. la creazione di una directory $HOME/svn/gnome2 in cui verranno scaricati e compilati i vari moduli scelti.
Sempre nel Terminale, quindi:
$ sudo mkdir -p /opt/gnome2
$ sudo chown `whoami`:`whoami` /opt/gnome2
$ mkdir -p ~/svn/gnome2
Nota: quando nel blocco c'è più di un comando, metto $ per indicare dove inizia ciascuno ed evitare problemi di trabocco. Ah, ovviamente potete usare nomi diversi per le directory, ma poi dovete ricordarvelo quando scriverete il file .jhbuildrc.

L'ultimo passo preliminare è scaricare JHbuild stesso con la semplice sequenza:
$ cd ~/svn/gnome2
$ svn checkout http://svn.gnome.org/svn/jhbuild/trunk jhbuild
per poi "installarlo" con l'altrettanto semplice sequenza:
$ cd jhbuild
$ make -f Makefile.plain install
Con l'ultimo comando viene creata una directory $HOME/bin in cui viene copiato lo script python jhbuild e a questo punto si è pronti per cominciare.

Duraturo piacere

E invece no. I preliminari vanno fatti per bene e devono essere una piacevole tortura. Per cui non è ancora il momento di dare il via alla lunga ed estenuante fase di compilazione.

Per evitare intoppi e rallentamenti dopo, tanto vale installare subito gli altri pacchetti necessari o opzionali a poter compilare i moduli che si vogliono compilare (quelli che, nel precedente post, avevo definito dipendenze "esterne-estern"). L'elenco dei pacchetti e il modulo da cui sono richiesti è (più o meno, magari manca qualcosa) il seguente:
  • libattr1-dev (glib)
  • libgamin-dev (glib --> perché il configure cerca libfam in /usr/)
  • libselinux-dev (glib e gnome-vfs, opzionale)
  • xorg-dev (ovvio!)
  • libfreetype6-dev (fontconfig)
  • libjpeg62-dev (GTK+)
  • libpng12-dev (GTK+)
  • libungif4-dev (GTK+)
  • libtiff4-dev (GTK+)
  • libmng-dev (GTK+)
  • libjasper-dev (GTK+)
  • libcupsys2-dev (GTK+)
  • libldap2-dev (opzionale per gconf ed evolution-data-server)
  • libffi4-dev (pygobject, opzionale)
  • lynx (libdaemon)
  • libsmbclient-dev (gvfs e gnome-vfs, opzionale)
  • libfuse-dev (gvfs, opzionale)
  • libcdio-paranoia-dev (gvfs, opzionale)
  • libgphoto2-2-dev (gvfs, opzionale)
  • libopenobex1-dev (gvfs, opzionale)
  • libssl-dev (gnome-vfs)
  • libkrb5-dev (gnome-vfs e evolution-data-server)
  • libacl1-dev (gnome-vfs e non ricordo se anche gvfs o glib/gio)
  • icon-naming-utils (icon-naming-utils :-)
  • libdb3-dev (evolution-data-server ?)
  • libelf-dev (bug-buddy)
  • libwrap0-dev (supporto a TCP in gnome-session, non so se serve ancora per la 2.23)
  • libpcre3-dev (vte)
  • check (gstreamer)
  • valgrind (gstreamer)
  • libsdl1.2-dev (gstreamer e altro)
  • libasound2-dev (gstreamer)
  • libpam0g-dev (PolicyKit e altro)
  • libncurses5-dev (vte, ma forse anche altro...)
  • libexif-dev (nautilus e eog)
  • libxkbfile-dev (libgnomekbd)
  • libgpgme11-dev (seahorse)
  • xnest (sabayon e forse gdm)
Un bel sudo apt-get install ELENCO_PACCHETTI per installare quello che serve. Non ho messo le dipendenze "esterne-esterne" necessarie ai plugin di GStreamer e quelle necessarie per compilare pacchetti non inclusi nel rilascio ufficiale dello GNOME Desktop magari le pubblico in un secondo momento. E, ripeto, potrebbe mancare qualcosa che al momento mi sfugge o potrebbe esserci qualcosa che nel tempo è diventato non utilizzato.

A questo punto possiamo procedere oltre e dirci ciao ciao, perché anche per questa volta ho scritto abbastanza e se non scrivo abbastanza stupidaggini mi annoio in fretta.

PS L'ottimo e ubiquo sqlite sta per diventare dipendenza esterna ufficiale di GNOME, richiesto da evolution-data-server. Al momento in cui scrivo non è gestito da JHbuild, ma lo sarà presto. Per cui, se la compilazione vi si blocca causa sua assenza, installatelo da pacchetto della distro in attesa di aggiornamenti.

[1] a meno che non vi saltiate letteralmente addosso a vicenda, ma quello è un caso a parte, si fanno comunque, dopo, prima di cominciare la seconda, e si definiscono intraminari.

20 luglio 2008

Eppur ci prova…


Oggi la Cri, per la prima volta proficuamente, si è cimentata con il windsurf!

È straordinariamente riuscita a starci sopra in piedi e quasi ad alzare la vela! Credo che fra un po’ mi toccherà mettere su un’attrezzatura doppia… :)
Anche perché con la mia muta e le mie scarpette, tutto un paio di taglie sopra la sua, ha un’aria un po’ troppo buffa :D

A parte questo, ieri sera siamo stati a vedere “tutta la vita davanti” di Virzì: dopo tante porcherie che si vedono al cinema, finalmente un bel film che merita veramente di essere visto!
Dirò di più: mi è anche piaciuta l’interpretazione della Ferilli! :)
Andatelo a vedere.

Che cosa intendevi con «Furbetta»?

Prima che la questione degeneri e debba aprire un mutuo... no, non me lo concedono... ricominciamo: prima che la questione degeneri e debba rivolgermi a qualche oscura e poco lecita persona fisica e non fiscale che rilascia divisa monetaria corrente in cambio di un (in)determinato tasso d'interesse¹, non è che tutti coloro che sono stati gabbati e hanno creduto al flame-meme si debbono ora sentire in diritto di chiedere una birra per compensare la loro ingenuità nel non saper leggere tra le righe.

Le relazioni interpersonali, di solito, sono abbastanza semplici: io do qualcosa a te, tu dai qualcosa a me, cercando di mantenere la giusta distanza per non ferirsi come porcospini². Anche se non è detto che la giusta distanza sia 32 centimetri. Potrebbe anche essere 0 oppure -12. Dipende.

Quindi, considerato che io e Milo abbiamo già impegnato tutto il nostro essere nel decidere di dare vita a tale tormentone - ah, se vi facessi leggere i log... non immaginereste quanto lunga, dolorosa e sofferta è stata la decisione di procedere, ma soprattutto di tacere (anche) con chi stimiamo -, data tutta la nostra simpatica allegrezza e linguistica fermezza - credetemi, per incazzarmi con Milo ho dovuto ricorrere allo stanislavskij e immaginare che la ragazza che adoro fosse perdutamente innamorata di lui e non di me - nel costruire questa barocca architettura, visto che in fondo in fondo vi siete divertiti, non sarebbero già dovute aumentare a dismisura le vostre offerte nei nostri confronti? Anche perché vi faccio notare che almeno io sono astemio di facciata, ma in teoria non dovreste buttarmi giù con tre birrette...

Pare comunque che le nostre capacità di marketing siano state apprezzate anche al di fuori della blogosfera. Sono stato contattato informalmente dal personale della sede Ikea di Porta di Roma. Dopo l'insuccesso di pubblico dell'incontro di calcetto maschile Reparto Cucine - Resto dei Locali, hanno bisogno di qualche buona idea per un futuro ipotetico match tra il personale femminile. Io ho già messo in moto gli ingranaggi e ho di getto proposto a Paola la (al solito riciclata, ma sempre verde) possibilità di usare un abbigliamento non convezionale: il body painting, limitato ovviamente alla parte del corpo sopra la vita. Comodo da indossare, facilita i movimenti, i rimbalzi e i constrasti . E poi, privatisticamente parlando, in primo luogo le tette di Paola non sono affatto male, in secondo luogo mi anticipo e do una sbirciata alla sua amica alta 1.85 che mi ha promesso da ormai 6 mesi (ho il terrore di chiederle se, come credo, ha anche promesso me a lei: non voglio assolutamente sapere se e come mi ha descritto). Milo, non preoccuparti, resta pura a Vittorio Veneto: ci penso io alle prove e a tutto il resto.

[1] A.K.A. cravattaro
[2] ogni riferimento a fatti, passeggiate, dita intrecciate, cose, parchi, panchine, persone, animali, cani, gatti è volutamente puramente casuale³
[3] sì, anche il titolo

So They Say

non amo i musical. faccio due sole eccezioni: Grease (perché non puoi odiare Grease) e l’episodio Once more, with feeling di Buffy.

adesso faccio una terza eccezione: Dr. Horrible’s Sing-a-long blog. probabilmente perché è di Joss Whedon. probabilmente perché ha Neil Patrick Harris, Nathan Fillion e Felicia Day come cast. probabilmente perché è una produzione fatta per mostrare a tutti quelli che hanno un’idea per una produzione che non serve avere gli studios dietro per realizzare qualcosa di ben fatto, e che Internet è un mezzo infinitamente potente per un’idea. probabilmente perché verrà rimosso stanotte e ritornerà in vendita con un DVD dopo la ComiCon. probabilmente perché le canzoni sono scritte, musicate e interpretate perfettamente. probabilmente perché la fine non è quella che vi aspettate. probabilmente perché il terzo atto bilancia il primo. probabilmente perché sono i 45 minuti meglio scritti che io abbia visto in anni.

probabilmente.

facciamo così: voi andare a vedere i tre atti e poi decidete per quale motivo Dr. Horrible Sing-a-long Blog vale la pena di essere visto.

fate presto, però.

19 luglio 2008

Nuovo workflow per Tango


Qualche giorno fa il buon Jimmac ha postato sul suo blog uno screencast che spiega il nuovo metodo “one canvas” per disegnare le icone, ideato nell’ambito del Progetto Tango.

La novità consiste nel fatto che i sorgenti delle icone non saranno più sparpagliati nelle varie cartelle e sottocartelle dipendenti dalle dimensioni e dal contesto, insieme alle png renderizzate, ma verranno tutti contenuti in una singola cartella “svg” nella radice del tema (eventualmente anche tutti nello stesso file!), facilitandone la manutenzione.

Un grosso vantaggio di avere le varie “taglie” nella stessa tela è quello di avere sempre una visione d’insieme, facilitando la consistenza tra le differenti dimensioni. La possibilità di avere più di un’icona nello stesso file, inoltre, permette una maggiore consistenza anche tra icone differenti con parti in comune (per esempio quelle dell’attività di rete) o che comunque hanno destinazioni simili.

Una volta approntati i sorgenti, uno script (attulmente in ruby, ma so che ce ne sono in lavorazione anche in altri linguaggi) si prende cura di estrarre le porzioni giuste, renderizzarle in png e posizionarle nelle cartelle appropriate.

I file ovviamente devono essere predisposti, perché lo script funzioni: per ogni icona deve esserci un livello che abbia la stringa “plate” nel nome, al cui interno devono essere due campi di testo con etichetta “context” e “icon-name”, e tanti rettangoli quante le taglie dell’icona che vogliamo fare, quindi in generale 256×256, 48×48, 32×32, 22×22 e 16×16; la taglia 24×24 viene generata comunque, aggiungendo un pixel intorno alla 22×22.

Lo script analizza i file svg in cerca di questi dati ed esporta in png quello che trova nel perimetro dei rettangoli (che poi sarebbero quadrati…) in base alle loro dimensioni, nella sottocartella definita dal testo “context” e col nome definito dal testo “icon-name”.
Bisogna ricordarsi di etichettare i campi di testo quando si crea un nuovo livello, e di nascondere il livello “plate” quando si salva il file, altrimenti viene renderizzato anche quello.
Per ovviare a queste noie sono in sviluppo alcune modifiche a Inkscape che dovrebbero automatizzare il tutto, ma non le ho provate personalmente quindi non so dire di più.

Lo script può essere ottenuto dal repository git col seguente comando:

git clone git://users.freedesktop.org/~jimmac/tango-lib

Insieme allo script, nella cartella svg, si ottiene anche un comodo file svg di esempio.

Questo nuovo workflow ha delle ottime potenzialità; consiglio vivamente di provarlo a tutti i disegnatori di icone là fuori, Tango e non ;)

18 luglio 2008

Gli occhi dolci non bastano e neanche una birretta

È inutile che intercedano femminili (e comunque adorabili) ambasciatrici nel tentativo di trovare un compromesso riconciliante su una questione che è esplosa come fulmicotone e che rischia di lasciare pesanti strascichi, minacciano la nostra collaborazione in modo sinistro e indiscriminato.

Proviamo a ripartire da capo, dal vero punto d'inizio, da ciò che ha generato tutto questo ambaradam, e a rileggere ben bene cosa c'è scritto sulla pagina di bugzilla quando si aggiunge una patch. Anzi, per chi avesse l'amigdala fuori sincro col resto del sistema nervoso centrale come certi individui, mettiamo anche una bella schermata.

Allora, come chiaramente mostrato, quando si aggiunge una nuova patch a bugzilla, è necessario attribuire una descrizione ed è possibile inserire un commento. Bene, dice che è opzionale, ma se tu non volevi che la patch fosse committata, mi spieghi perché:
  1. non hai aggiunto l'opzionale commento "ehi, è solo una stupida prova, non è una vera patch da committare" invece di scrivere a posteriori che avresti integrato il tutto in un secondo momento?
  2. non hai proprio evitato di preparare la patch, visto che avevi intenzione di integrare il tutto in un secondo momento? Cos'è? Esibizionismo? Voglia di far vedere che sei capace di preparare patch non per una, ma per ben due serie di sviluppo? Bravo, bravo.
Ah, scusa, è vero, sei abituato a quell'accozzaglia di interfaccia mal riuscita che è launchpad e applichi il suo approccio artigianale e raffazzonato anche a sistemi progettati per essere funzionali a persone che sanno quello che fanno e perché.

Comincio a pensare che tutto il trash metal che ascolti ti abbia dato alla testa e che se anche me li cantassi, i commenti, uscirebbe fuori qualcosa di incomprensibile. Fai una bella cosa: ogni tanto ascoltati anche musica di qualcuno che al conservatorio ha studiato, non ha solo suonato (al campanello) e non gli hanno mai aperto.

L’ansia da supporto


Uno degli stereotipi più banali adottati dai responsabili delle grandi imprese italiane per rifiutare la scelta dell’Open Source è il timore di non avere un adeguato supporto. Consideriamo però che le società che si occupano di Open Source hanno fatto del supporto la loro attività primaria, quella più consistente. Perciò accade che mentre i venditori di software proprietario offrono essenzialmente licenze e considerano il supporto come un’attività collaterale e di minore interesse economico, i responsabili delle Imprese confidano inspiegabilmente in questo atteggiamento commerciale e se ne sentono protetti.

Allo stesso tempo, le società di Open Source vendono principalmente supporto e considerano le eventuali licenze commerciali come un business collaterale, eppure ciò non riesce comunque a contenere l’ansia da supporto dei nostri manager.

Nel tentativo di dare risposta a tale quesito, l’unica possibile soluzione che mi sovviene è data dalle dimensioni dell’azienda che vende: di fronte a nomi come SAP, IBM e Microsoft il manager si sente più tranquillo anche se spesso il supporto fornito viene erogato da piccole aziende collegate in “trenini” commerciali senza fine, alla cui guida c’è sempre il venditore di licenze.

La cosa che a loro sfugge, però, è che un’azienda Open Source costituita appositamente per sopravvivere con la fornitura di supporto e assistenza potrebbe essere in grado di erogare, nella maggior parte dei casi, un supporto molto più efficiente rispetto a un grande venditore di licenze per il quale il supporto è solo un fatto di secondaria importanza commerciale.

Non voglio qui affermare che il supporto Open Source è sempre migliore di quello fornito dai venditori proprietari, ma solo evidenziare che rifiutare l’adozione dell’Open Source a causa di una sensazione di assenza di supporto, è una decisione errata e fuori dai tempi. Siamo nel Nuovo Millennio!

(Foto: An Eyeful of Puddle di tarotastic)

17 luglio 2008

Out of Little Chamber Pot

Milo, se la vita non ti sorride e le ragazze non te la danno, non prendertela con qualcuno che ha semplicemente provato ad applicare il criterio release-earlier, release-often.

A parte che se il sottoscritto non perdesse tempo a vedere se ci sono bug aperti e non ti avesse messo in CopiaConforme, quella penosa e orribilmente cannata traduzione sarebbe rimasta lì a farsi apprezzare da quante più persone possibili (causando magari anche dischi irrimediabilmente persi? forse, visto che l'hai tradotta al contrario) per chissà quanto tempo.

A parte che non ho capito cosa mai avrei incasinato, visto che il sottoscritto si è semplicemente limitato ad applicare la TUA patch.

A parte tutto questo, ma possibile che non riesci, come direbbe la mia ex-amica Valentina, a essere uomo e tirare fuori le palle, evitando queste scene infantili in cui non si capisce mai con chi ce l'hai e con chi non ce l'hai?

Che poi, diciamocelo, cazziatoni sull'uso di svn da uno che non capisce la differenza tra un tag e un branch...

15 luglio 2008

Luce del giorno

Per chi non l'avesse capito, ma anche per chi l'ha già capito, i miei livelli di curiosità sfiorano il maniacale. Non su tutto, certo, solo sulle cose che trovo intellettualmente stimolanti. Magari per altri sono stupidaggini, magari si tratta espressioni di idee opposte alle mie, ma talvolta è piacevole leggerle e sapere che qualcuno le pensa.

Per esempio, trovo che il seguente passaggio estratto da un commento di un famoso blog meriti di essere portato bene in vista e non essere relegato a un lontanissimo (nello spazio) commento # 116 che il casuale lettore neanche arriva al numero 30.
Ma insomma questo GTK che problemi ha? E' veramente il linguaggio di programmazione che usano il problema? A mio modesto avviso NO. Il problema di GNOME e delle GTK sono 2:
- la forza lavoro totalmente inesistente
- la filosofia che c’è alla base che ha rovinato tutto.

Possibili soluzioni? Non ne vedo e anzi vedo nel futuro un fallimento totale. Quello che fa la differenza con le QT è sopratutto la forza lavoro. Sarebbe un bene se GNOME fosse riscritto in QT? Tralasciando i problemi di licenza, la risposta per tanti motivi è SI. E qui il discorso kde vs gnome non c’entra niente. E’ un discorso puramente tecnico. Ma questo non accadrà mai a causa del secondo motivo prima citato: - la filosofia che c’è alla base che ha rovinato tutto.
Ora, per curiosità, ho letto, ho riletto, ho cercato con la funzione cerca, ho provato con la tavoletta ouija, ma non sono riuscito a trovare alcun riferimento e/o chiarificazione su cosa il citato intenda per filosofia che c'è alla base e sul come abbia rovinato tutto.

Qualcuno sa come aiutarmi?

PS sì, un post interamente basato su un commento altrui è verameeeente una bastardata, ne sono conscio. Avrei potuto commentare anche io su quel blog e chiedere spiegazioni, ma non mi andava di spiegare, oggi ho fatto già abbastanza il pignolo saputello altrove e dal vivo. Cmq non è un attacco personale. È solo che non capisco.

PPS semmai l'attacco personale nei confronti della persona che ha scritto quel commento è relativa all'uso improprio della E MAIUSCOLA CON APOSTROFO, al posto della E MAIUSCOLA ACCENTATA. Uno dei vantaggi di Linux su MS Windows è che le lettere ÈÒÀÙÌ sono mappate sulla tastiera. Basta premere BlocMaiusc e poi il tasto con le corrispettive minuscole. Usatele. La grammatica ve ne sarà grata.

MediaManager, week 7

Hi everyone,

Last week I have been to Istanbul, to attend GUADEC. It has been an amazing time there, and I have been really happy to meet, socialize and share ideas with the other SoC students and some of the GNOME gurus :P

Together with Bastien, Clemens and Felix, we planned the next final steps for the MediaManager project. Also, it seems that Felix’ project (Cheese integration) will be one of the first clients to use my MediaManager library to expose cool features in the GtkFileChooser! :)

== Work to be done ==

- Write a set of widgets wrapping around the backend code
- Write a GtkModule that hooks up into the GtkFileChooser to achieve my ultimate SoC goal of integration with it.

== Timeline ==

I don’t know how much work I will be able to do in this following week until the 23rd of July, as I’m having some exams in this timeframe. Anyway, afterwards I’ll be home until the 10th of August at least and working again full-time on the project, so I came up with this plan, which would be perfectly synced with both the SoC timeline and my holidays :)

- 24th of July to 31st of July, writing of the widgets
- 1st of August to 5th of August, writing of the GtkModule
- 6th of August to 10th of August, final bugfixing & release

Feel free to mail me for any suggestions on the widget part or if you think your application needs some specific widget to use my library. I will start coding them in the next week, so there’s still time for thinking/designing.

14 luglio 2008

Progetti FLOSS

Quanti ne trovate? FLOSS projects

Io vedo: OpenSSH, GNOME, X, GNU, GTK, FreeBSD, Linux, Java, Mozilla, Evolution, OpenOffice.org, GIMP e Apache… dei ritratti riconosco RMS ma l’altro???

Gradevole come una balena insabbiata

Update: spiacente di essermi dimenticato il titolo... cioè mi ero dimenticato di metterlo quando ho pubblicato e ora mi sono dimenticato quale fosse, quindi ho rimediato in 4 e 4 8

Che le GTK+ fossero qualcosa di obsoleto lo dico da tempo. Che sia molto meglio scriverle in C++ che è un linguaggio con i controcosi l'ho sempre sospettato, ma ora ne ho la conferma. Che GNOME è inutile che esista lo sanno praticamente tutti tranne me.

Ora che ho fatto coming out per la seconda volta nel giro di una settimana, lasciatemi irridere crassamente la nuova stupida idea che è venuta in mente a quei mentecatti degli sviluppatori delle GTK+ e di GNOME.

Ma prima un doveroso riassunto.

Un toolkit veramente moderno dovrebbe fornire un sistema per il theming degno di questo nome. L'utente deve essere messo nelle condizioni di cambiare non solo il colore, ma anche la forma di ogni controllo che appare a schermo (ah, WindowsBlind... che sogno umidiccio) perché è così che fanno i sistemi operativi seri e moderni. Essendo però le GTK+ un toolkit antiquato, il suo sistema di theming è altrettanto antiquato. Gli sviluppatori se ne sono accorti solo oggi, ma è da alemno un decennio che sono evidenti agli occhi di tutti¹ i seguenti problemi:
  • i theme engine sono troppo dipendenti dai dettagli di implementazione dei widget;
  • i widget non ereditano in modo corretto i colori;
  • gli stili non possono essere aggiornati con facilità in funzione di diversi valori delle proprietà;
  • gli artisti (ce ne fossero nella comunità di GNOME!!) non possono creare temi senza ricorrere a un engine.
La questione, si sa, va avanti da anni e anni e anni, solo perché quei capoccioni si ostinano a mantenere la compatibilità all'indietro e perché all'epoca di GTK+ 2.0 non avevano idee migliori e sviluppatori capaci che potessero sfruttare l'accelerazione 3D.

Oggi, inebriati dai fumi dei narghilè che si sono fumati in quel di Istanbum, invece che arrivare alla vera soluzione (spostarsi di qualche chilometro e ritirarsi a vita monastica sul monte Athos lasciando che il vero desktop² conquisti il mondo e guidi le masse) arrancano ancora nel tentare la rianimazione artificiale di qualcosa che nessuno vuole più.

Prima se ne escono con le seguenti proposte collegiali:
  • creare un theme engine CSS per fare delle prove e vedere come funziona e se gli artisti riescono in questo modo a tirare fuori qualcosa di buono senza richiedere la scrittura di codice;
  • definire una nuovi API per la 3.x;
  • aggiungere un treno di funzionalità e miglioramenti.
Poi, non contenti, lasciano la parola a uno sconosciuto Owen Taylor, il quale dichiara che in teoria la vera soluzione al problema temi sarebbe creare una theme library "esterna" alle GTK+ perché:
  • in questo modo sistema di theming diverrebbe indipendente dai widget delle GTK+;
  • riuscirebbe meglio la theme-izzazione dei custom widget personalizzati forniti dalle applicazioni;
  • la theme library potrebbe essere usata anche da altri toolkit ed essere considerata l'API primaria per l'aspetto nativo di Linux.
Il tutto portando esempi che sembrano corretti, ma che in realtà sospetto si tratti semplicemente di una serie di understatement o altre figure retoriche che alterano il senso della realtà.

Agli dei io chiedo la fine di questi patimenti, dell'attesa durata già troppi anni (cit. o quasi).

[1] ma tutti tutti; andate al supermercato, reparto latticini, prendete la prima vecchia anziana signora che passa e domandatele "signora, il theming delle GTK+?" vi risponderà "nessuna pietà!"
[2] a scelta, a seconda delle vostre tendenze, il vero desktop è KDE, MacOS, Windows oppure Plan9

Ritorno al passato

Da quando sto facendo esperimenti con l’eeePC trovo che usare grossi ambienti grafici non è poi indispensabile. Molte cose si riescono a fare senza grafica, l’unica cosa per cui è indispensabile è usare un browser, i vari lynx/link2 e compagnia sono veramente limitati.

Ubuntu Network Remix


Ho installato quasi per sbaglio Ubuntu network Remix sul Ferrarino, anche se in realtà lo schermo è talmente denso che non ce ne sarebbe stato alcun bisogno…
L’ho installato un po’ per curiosità, ma siccome sono in vena di provare interfacce diverse dal solito, ho deciso di tenerlo per un po’.
…ok, anche perché non so più levarlo :P

Per chi volesse provarlo, la soluzione più veloce è quella di usare il PPA dedicato, aggiungendo nel pannello “software di terze parti” di “sorgenti software” la seguente riga:

deb http://ppa.launchpad.net/netbook-remix-team/ubuntu hardy main

Dopo aver aggiornato le liste dei pacchetti, usare il seguente comando per installare il necessario:

sudo apt-get install go-home-applet window-picker-applet maximus human-netbook-theme ume-launcher

NON installare assolutamente “ume-netbook-config” a meno che non si sappia realmente a cosa serve!

Una volta installato il tutto, aggiungere “maximus” ai programmi d’avvio della sessione, rimuovere il pannello inferiore di Gnome e mettere le applet del superiore in modo che diventi circa così:

GoHomeApplet|WindowPickerApplet|NotificationArea|MixerApplet|Clock

Applicare al desktop il tema “Human-Netbook-Ttheme” e disabilitare compiz se attivo; riavviare incrociando le dita e, se tutto va bene, si dovrebbe avere l’interfaccia Netbook Remix :)

Noterete che il tema “Human-Netbook-Theme” è diverso dall’immagine qui sopra, molto più chiaro… ok, per chi come me predilige i temi scuri, ho velocemente approntato un “Clearlooks-Netbook-Dark“, ma vi avverto che contiene un hack vergognoso per avere la barra del titolo delle finestre di un colore diverso da quello della selezione (a proposito: Cimi, sei in ascolto? come si fa nel modo giusto?).
Per usare il mio tema è necessario avere installate anche le mie icone “Foglie” (che art.gnome.org si rifiuta da quasi un anno di pubblicare, ma c’è ancora qualcuno là dietro?), altrimenti è sufficiente applicare manualmente i vari componenti.

Per ora il Netbook Remix mi piace, anche se sento la mancanza della possibilità di fare drag’n'drop tra le finestre; credo che chi ha un monitor più ristretto del mio, tipo i possessori di un eeepc, ne possa trarre enorme giovamento.

Ah, come levarlo lo so, eh? basta togliere maximus dall’avvio e ricostruirsi i pannelli, all’inizio stavo scherzando ;)

JHbuild delle mie brame - parte 1

Una doverosa premessa. JHbuild è da utilizzare solo se avete intenzione di scaricare i sorgenti e compilarli, magari perché vi interessa sbirciare nel codice, magari perché il vostro computer nuovo fiammante usa solo il 5% della CPU per il 95% del tempo, magari perché avete intenzione di partecipare alla scoperta e risoluzione del bug. Se non vi interessano i sorgenti e la compilazione, ci sono altri modi, ma personalmente non li ho sperimentati.

JHbuild è un comodo strumento che permette, con uno sforzo non titanico, di compilare e tenere aggiornata l'installazione di un determinato programma o di un intero ambiente grafico direttamente dalla versione in via di sviluppo, senza interferire oppure sovrascrivere quanto installato attraverso i pacchetti dal proprio vendor o distributore.

JHbuild è costituito da tre parti fondamentali:
  • il comando stesso (ossia l'insieme di script in python), che funge da "frontend" ai comandi specifici per l'aggiornamento e la compilazione dei sorgenti, il tutto condito con la definizione di opportune variabili d'ambiente - esempi: mi basta scrive jhbuild update PROGRAMMA invece del comando specifico (cvs, svn, git, bzr) per aggiornare, oppure jhbuild buildone PROGRAMMA invece della sequenza configure/make/makeinstall e senza dover specificare il percorso in cui sono installati i programmi e le librerie che voglio usare;
  • l'insieme dei moduli disponibili, ossia l'elenco di programmi "conosciuti" che si possono compilare, ognuno con le indicazioni su come reperire i sorgenti e sulle dipendenze da cui (tautologicamente) dipendono;
  • la configurazione specifica dell'utente, nel file $HOME/.jhbuildrc, che serve a integrare quanto definito dalle due precedenti parti con le esigenze specifiche di chi sta usando JHbuild (cosa si vuole compilare, cosa no, eventuali aggiustamenti per la propria distribuzione...).
C'è gente in giro che dice che JHbuild non funziona, senza spiegare con assoluta precisione con chi ce l'ha e con chi non ce l'ha.

JHbuild è uno strumento che va capito e poi "domato", adattandolo al proprio sistema e comunque, trattandosi di compilazione di software prelevato da sistemi di version control, è sempre probabile che qualcosa non vada a buon fine (anche se, per esperienza, con i programmi sotto version control basta aprire un bug e aspettare un paio di giorni, mentre per compilare Firefox da targz bisogna chiedere aiuto alla jakuza).

Le difficoltà che si possono incontrare nell'usare JHbuild sono per lo più riferibili o a mancate dipendenze "esterne-esterne" (vedi dopo) oppure alla mancata/parziale/inadatta configurazione utente.

Visto che questa dovrebbe essere una guida "definitiva" a JHbuild e vista la mole di informazioni che sto per riversavi addosso, ho pensato fosse meglio (per me) dividere il tutto in più parti. Anzi, vi preannuncio che in questa puntata non faremo un bel niente, tranne parlare di massimi sistemi e filosofie di compilazione.

Premessa su come funzionano e come non funziono le cose

JHbuild è nato per permettere agli sviluppatori di GNOME di avere una versione aggiornata all'ultimo minuto della versione di sviluppo dello stesso, tant'è che in modo predefinito l'esecuzione del comando jhbuild build va a prelevare, compilare e installare i circa 200 moduli che compongono lo/il/la/un/una GNOME Desktop and Development Platform.

Per chi fosse nuovo di queste cose o non se ne è mai interessato, con GNOME Desktop and Development Platform (nel seguito indicato per brevità come GD&DP) si intende un ben definito gruppo di librerie e programmi il cui sviluppo è in qualche modo gestito dallo GNOME Project. A cavallo tra un rilascio stabile e un altro la comunità di GNOME si interroga su cosa sia il caso di includere nel GD&DP: nuove librerie per gli sviluppatori, nuove applicazioni per gli utenti (oppure applicazioni già esistenti finalmente giudicate stabili e aderenti agli standard).

Il GD&DP altro non è che la lista di tali moduli ufficiali (e relativa versione), che soddisfano una serie di criteri come internazionalizzazione, supporto all'accessibilità, aderenza agli standard nel codice e nell'interfaccia, utilità per l'utente finale... Tale lunga lista è divisa in altre sottoliste:
  • piattaforma di sviluppo - librerie per sviluppatori giudicate essenziali, gestite dallo GNOME Project e alle quali tutte le altre applicazioni e librerie GNOMEsche possono fare riferimento, con garanzia di stabilità delle API e delle ABI per tutta la serie 2.x;
  • ambiente grafico - insieme di applicazioni visibili all'utente e librerie di supporto (a differenza delle precedenti tali librerie non sono giudicate essenziali e non vi è garanzia di stabilità delle API e delle ABI);
  • strumenti di amministazione - insieme di applicazioni rivolte all'amministrazione del sistema;
  • strumenti di sviluppo - insieme di applicazioni rivolte allo sviluppo di applicazioni per GNOME;
  • binding - librerie per scrivere applicazioni GNOME-compliant in linguaggi diversi dal C
A ciò è affiancata la lista delle dipendenze esterne, ossia moduli che non sono gestiti o sviluppati direttamente dallo GNOME Project, ma che sono comunque necessari all'intero ambiente e che possono essere ufficialmente usati come dipendenza dai moduli dello GD&DP senza timore. La dicitura "senza timore" è rivolta più agli sviluppatori che agli utenti, non riferita alle funzionalità fornite, ma alla stabilità delle API: non potendola garantire direttamente, si fa riferimento a una prefissata versione. Queste dipendenze esterne sono gestite da JHbuild proprio perché da una versione all'altra di GNOME potrebbe essere necessario usare una versione più recente.

Modulo extaparlamentare

In questa ottica quindi, quando prima parlavo di dipendenze "esterne-esterne" intendevo tutto ciò che non è gestito direttamente da JHbuild, come per esempio tutti i vari pacchetti -dev di X11, o libpng-dev o il gcc, ossia tutto ciò che serve ma che non è "ufficiale" per GNOME perché talmente necessario o basilare da servire all'intero sistema.

Tanto per cominciare, vi dico subito che, per mia esperienza, si deve installare una buona dose di pacchetti per far funzionare JHbuild al meglio.

E qui innesto la questione bootstrap. Una piccola e limitata quantità di dipendenze "esterne-esterne" è gestita da JHbuild e può essere recuperata, compilata e installata con il comando jhbuild bootstrap. In teoria sarebbe possibile installare direttamente dai pacchetti forniti dal vendor e saltare questo passaggio, ma per esperienza personale è meglio passare per il bootstrap. Ora, potrei anche stare qui a spiegarvi i motivi, ma poi non troverei mai il tempo di passare alla parte due. Quindi per ora accontentatevi e sperate che in settimana prossima arrivi la nuova uscita di questa interessssaaantisssssima serie.

13 luglio 2008

Status update

I am still alive, just don’t have time to blog something meaningful.

By the way, this is what I am doing/I have done recently:

  • Patched httplib2 to support MD5-sess (at work)
  • Patched soaplib to use httplib2 with the above patch (at work)
  • All the above is because we are interfacing with a couple of SOAP servers (in Java and .NET)
  • Reading The Ruby Way by Hal Fulton and JavaScript the Good Parts by Douglas Crockford (read) Dreaming In Code by Scott Rosenberg
  • Planning my vacation: I’ll be staying in London for 3 weeks, from the 27th of July to the 17th of August. If you want to catch up and drink something contact me at l dot oluyede at gmail dot com
  • Bought a Nokia E51 which is UMTS/HDSPA/WiFi ready Symbian phone (and also cheap)
  • Still reading a lot of stuff in my backlog

Controllo del livello di rombo

  • creazione di un nuovo progetto - fatto
  • definizione di un nuovo gruppo - ricordato di farlo
  • aggiunta di un secondo amministratore al sopraindicato gruppo - a sua insaputa, così si impara a non richiedere l'accesso al svn di GNOME e scassare me per i suoi frequenti commit
  • importazione dei sorgenti - speriamo corretta, mica mi andava tanto di leggere tutto il manuale di bzr; ho fatto come tutti, leggiucchiato e copiato i comandi senza capire cosa stessi facendo
  • cose da fare - parecchie, compreso vedere se compila, aggiornare, correggere, aggiungere, scattare nuove schermate, coinvolgere amici e fidanzate, preparare pacchetti installabili e via dicendo
  • voglia di fare - parecchia, ma non è detto che sia rivolta a fare¹ esattamente quanto elencato poco sopra
Chooooopaaaaaa!!!

[1] mmmhhhh

Update: dimenticavo, questo post andrebbe gustato con Radiopatchanka come sottofondo musicale, nella versione dall'album che da il titolo al post medesimo.

Syx gaining more stability and speed

Hello,
in the new branches of Syx (an open source Smalltalk-80 implementation) we're working to try a new kind of memory management and add many features that have been missed until now to focus on other stuff.

The new faster and more modern v0.1.8 release will contain the following refactoring:
  • Objects will be variable-length (minumum 12 bytes on 32-bit processors and 16 bytes on 64-bit processors)
  • By changing the objects also the GC changed to a mark and compact GC
  • Threaded-switch statement to run processes
  • More efficient method cache (maybe a simple global cache lookup for this release)
API for primitives will only change slightly.

Suggestions for any new particular technologies are welcome.

12 luglio 2008

GNOME 3.0 = Tabs!

It seems that the GNOME community has finally reached the long-awaited wide consensus about the future direction for the project. It’s all about tabs!

We’ve been discussing the issue here at GUADEC and it seems that many