Oct
04
2008
2

Liberty Bell

il sottoscritto se ne va per una settimana circa in quel di Boston, prima per una hackfest poi per il Boston Summit. poiché mi porterò dietro l’altro laptop1 sarà problematico rispondere a email e menate varie, ma tenterò di usare tumblr e twitter per dimostrare la mia esistenza.

  1. un T61 con su windows xp, che serve solo come client di posta hardware e per completare burocrazia varia che richiede IE, e che in questo momento sta subendo un’installazione di Debian per un improbabile dual booting che non faccio dal novembre 1998 []
Jul
11
2008
1

GUADEC/0

dalla caffetteria dell’università, a cinquanta metri dal Bosforo

anche quest’anno, il GUADEC è stata una grande esperienza. ritrovare varia umanità con cui chiaccheri solo su IRC o su mailing list mette più o meno di buon umore — e se a questo si aggiunge passare la serata fino alle tre del mattino sdraiato su cuscini bevendo te e in compagnia di un nargilé al mango il quadro è completo.

al GUADEC, però, si va anche per parlare con persone che lavorano con e su GNOME — invariabilmente questo porta a interessanti sviluppi.

leggendo un po’ in giro, vedo che alcuni si sono scandalizzati o sorpresi del new deal nelle GTK+ e in GNOME; se però avessero seguito quello che avviene ogni giorno da un anno a questa parte si sarebbero velocemente resi conto di come tutto questo sia partito dallo scorso GUADEC — e possibilmente anche da quello prima. sigillare le GTK+ per poter cambiare gli internals senza rompere le applicazioni, ridurre il lasso di tempo da major release, non sono grandi e rivoluzionari piani: sono l’unico modo di portare avanti una piattaforma in maniera organica e continua. non vi siete svegliati una mattina trovandovi venti centimetri più alti, con una voce di due ottave più bassa e i caratteri sessuali secondari completamente sviluppati — vi ci saranno voluti anni. E se gestire la pubertà è un’impresa ardua, immaginatevi un desktop con milioni di utenti su varie piattaforme su cui non esercitate alcun controllo.

GNOME ha già provato a rompere con il passato in maniera netta, con un quantum leap invece che vari passi incrementali; è stato un diastro ferroviario, e sicuramente tutti quelli coinvolti nel progetto pensano "mai più". la somma di questi piani — GTK+ 3.0 e GNOME 3.0 — sono l’unica alternativa realistica.

se poi vogliamo andare sul non-realistico, possiamo sempre contare sull’aiuto di Babbo Natale e della Fatina dei Denti — ma ho i miei dubbi sull’implementabilità.

Jan
15
2008
--

Driving Sideways

non ti rendi conto di quanto dai per scontato in Linux se non quando devi replicare un ambiente di sviluppo sotto OS X. fortunatamente, con un po’ di <a href="http://www.macports.org/">Macports</a> e di <a href="http://live.gnome.org/Jhbuild">JHBuild</a> si riesce a mettere in piedi qualcosa di usabile.

una cosa sicuramente mi piacerebbe avere anche sotto <a href="http://en.wikipedia.org/wiki/GLX">GLX</a>, e sono i <em>tool</em> per fare <em>profiling</em> delle <a href="http://developer.apple.com/graphicsimaging/opengl/opengl_serious.html">chiamate OpenGL</a>; l’<acronym title="User Interface">UI</acronym> è banale da replicare (basta prendere una cosa tipo <a href="http://labs.o-hand.com/oprofileui/">questa</a>) ma quello che è interessante è tutta la serie di <em>hooks</em> per attaccarci uno <em>statistical profiler</em>.

Written by ebassi in: Linux, Software, clutter, gnome, hacking |
Sep
03
2007
8

Just a Ride

Dicevo <a href="http://log.emmanuelebassi.net/archives/2007/09/my-wandering-days-are-over/">altrove</a> di aver provato <a href="http://live.gnome.org/Vala">Vala</a>, il linguaggio C#-like scritto usando GLib e GObject come base, e che viene "compilato" in C invece di usare una <acronym title="Virtual Machine">VM</acronym> e un linguaggio intermedio1.

Ho trovato dei difetti nel layer di traduzione, ma sono dovuti essenzialmente alla giovane età del progetto, e il team di sviluppo sta raccogliendo intorno a sé una quantità di collaboratori più o meno saltuari che fa ben sperare. In più, la mera esistenza di Vala sta spingendo a completare il supporto per l’introspezione in GObject2.

Quello che più mi interessa, però, è la possibilità di avere un linguaggio a medio/alto ufficialmente sanzionato da GNOME – come Objective-C da Apple. Intendiamoci: la quantità di <em>binding</em> già presenti è enorme, e già oggi se volessi scrivere un’applicazione per GNOME potrei farlo in Perl, come in Java, come in C# e perfino con quel <em>train wreck</em> di Python3. Tuttavia, i bindings sono quello che sono: si portano dietro <em>virtual machine</em>, ambienti di <em>runtime</em>, licenze, implementazioni <em>patent encumbered</em> e altre amenità.

Intendiamoci: non ho nulla contro le <acronym title="Virtual Machine">VM</acronym> – a parte l’obiezione classica: "sto già usando una macchina virtuale su una macchina reale, perché devo usarne un’altra ancora per ogni linguaggio?"; tuttavia, e specie sulle macchine su cui lavoro, <strong>una</strong> <em>virtual machine</em> è già sufficiente – figuriamoci quattro o cinque. Mi piacerebbe che qualcuno prendesse Mono e ci portasse più di tre o quattro linguaggi; mi piacerebbe ancora di più che qualcuno prendesse <a href="http://en.wikipedia.org/wiki/Parrot_virtual_machine">Parrot</a> e lo completasse. Mi piacerebbe, insomma, avere <strong>una</strong> macchina virtuale per tutti i linguaggi ad alto livello. Se non posso averla, allora tanto vale usare Vala.

  1. si potrebbe arguire come, in realtà, la VM usata sia il sistema operativo ospite, e che sicuramente esistono più piattaforme con un compilatore C che piattaforme che supportano Java o C# []
  2. ovvero la possibilità di avere meta-informazioni a <em>runtime</em> su una libreria, sulle API e sui tipi di dati esportati []
  3. che, spero, Python 3.0 affosserà definitivamente con tutte le modifiche arbitrarie alle API senza vere nuove <em>feature</em>; non ci resta, quindi, che sperare in IronPython per una implementazione sana di mente? non voglio pensarci []
Jul
15
2007
5

GUADEC/0

Di nuovo qui al <a href="http://guadec.org">GUADEC</a>, quest’anno vicino a casa.

Non ho ancora visto la <em>venue</em>, anche se mi dicono essere molto bella. Abbiamo portato un po’ di ferramenta per mostrare <a href="http://pokylinux.org/">Poky</a> e <a href="http://clutter-project.org">Clutter</a>: un paio di <em>board</em>, un’AppleTV (ribrandizzata prontamente "OhTV"), Zaurus, UMPC, etc.

Mi raccomando, date un’occhiata a <a href="http://flickr.com/groups/guadec2007/">Flickr</a> per le ultime news.

Written by ebassi in: Diary, conferences, gnome, guadec |
May
14
2007
11

The Worst Joke Ever

Ho passato gli ultimi tre giorni a tentare di capire perché un pezzo di codice producesse un <code>SIGSEGV</code>. Ho cambiato linee, logica, tipi di dato. Niente: qualunque cosa facessi, solo crash. Come al solito, <code>gdb</code> si rivelava poco utile, mentendo spudoratamente sul luogo della violazione di memoria.

Oggi pomeriggio ho deciso di arrendermi e ho chiesto a Kris se poteva darmi una mano (dato che il <em>segfault</em> si verificava nel codice del <code>GtkTreeModelSort</code> che lui mantiene). Stasera mi dice di aver trovato la patch:

<pre>
Index: gtk/gtkfilechooserdefault.c
==============================================================
— gtk/gtkfilechooserdefault.c (revision 17846)
+++ gtk/gtkfilechooserdefault.c (revision 17848)
@@ -9508,7 +9508,7 @@ recent_column_path_sort_func (GtkTreeMod
if (!name_a)
return 1;

- if (!name_b);
+ if (!name_b)
return -1;

if (is_folder_a != is_folder_b)
</pre>

Penso che i miei moccoli siano arrivati vicinissimi al Moccolo a Delta di Dirac (dieci alla ventottesima madonne in un microsecondo).

<em>Va da sé che Kris si vedrà offrire una birra al GUADEC.</em>

Written by ebassi in: Diary, Linux, OpenSource, Software, gnome, gtk+ |
May
12
2007
6

Overdrive/2

<em style="font-size:80%"><a href="http://www.emmanuelebassi.net/archives/2007/01/overdrive1/">segue</a></em>

<h4>GTK+</h4>

Per mancanza di tempo, negli ultimi mesi ho dovuto lasciare a metà alcuni miei lavori sulle <a href="http://www.gtk.org">GTK+</a>. Fortunatamente ogni tanto si è aperto qualche spiraglio di tempo libero, e quando ho potuto ritornare alla libreria che (ricordiamolo) ha consentito all’avere di che mangiare non mi sono certo fatto scrupoli.

Le GTK+ sono piagate, da tempo ormai, da una cronica mancanza di sviluppatori nel <em>core team</em>; il flusso di patch in <a href="http://bugzilla.gnome.org">Bugzilla</a> è più o meno costante (anche se non altissimo), ma le persone in grado di fare una revisione delle patch e in generale dei bug segnalati sono poche, e nessuno lavora a tempo pieno sulle GTK+. A questo si aggiunge un’inerzia proveniente dalle compagnie che lavorano con le GTK+ nei confronti di una (ormai inevitabile) rottura della compatibilità binaria e, possibilmente, delle <acronym title="Application Programming Interface">API</acronym>. Il quadro è complesso, e meriterebbe un post di analisi dei fattori pro e contro una tale rottura di compatibilità all’indietro; sfortunatamente è sabato mattina e non ho molta voglia di farlo – considerate la questione solo rimandata.

Cosa si muove, quindi, nelle GTK+? Cosa ci sarà nella prossima <em>minor release</em>, la 2.12.0? E cosa ci aspetta nel futuro?

Cominciamo con le cose già in <code>trunk</code>:

<dl>
<dt><strong>Supporto Quartz e DirectFB</strong></dt>
<dd>Il lavoro sui backend per GDK continua; il backend per Quartz è mantenuto dagli sviluppatori della Imendio ed è quasi stabile; mancano ancora feature, e molto dipende dalla stabilità del backend Quartz di Cairo, ma comincia ad essere usabile. Il backend DirectFB è invece portato avanti dal team per l’installer grafico della Debian, e ha ricevuto molte attenzioni in occasione del rilascio di Etch. Alcune delle funzionalità sono state aggiunte alla branch stabile, ma <code>trunk</code> è il posto dove la magia avviene.</dd>

<dt><strong>Rimosso il supporto a Windows 9x/ME</strong></dt>
<dd>Il supporto per i sistemi operativi giocattolo della casa di Redmond era già cessato con la release 2.10; adesso è stato completamente rimosso dalla <em>code base</em>. Chi vuole, può fare un <code>diff</code> tra 2.10 e <code>trunk</code>, procurarsi un incudine e un martello e prepararsi per un’intensa sessione di martellate sui gioielli di famiglia.</dd>

<dt><strong>Nuova API per le tooltip</strong></dt>
<dd>Kristian Reitveld ha creato una nuova API per gestire le tooltip sui vari widget. D’ora in poi, niente più <code>GtkTooltips</code> da tenere in giro per tutta la durata dell’applicazione, ma una semplice proprietà che contiene il testo della tooltip (con supporto per il markup). Se si vuole modificare la finestra stessa usata per la tooltip, basta fare l’<em>override</em> di una funzione virtuale della class <code>GtkWidget</code> e si può usare la finestra che si preferisce. Questo, tra l’altro, permette finalmente di poter usare tooltip con <code>GtkTreeView</code> e <code>GtkComboBox</code>.</dd>

<dt><strong>File recenti</strong></dt>
<dd>Una delle cose che ho scritto io. Finalmente è possibile infilare la lista dei file recenti in un menu costruito usando <code>GtkUIManager</code>. Per la disperazione (di uno) degli autori di <a href="http://www.gnome.org/projects/gedit">gedit</a>, niente menu "in linea" (come Windows, per intenderci) ma solo come sotto-menu (come OS X). Scrievere una version in linea non è complicato (se volete, trovate una implementazione <a href="http://www.gnome.org/~ebassi/recent-uimanager-inline.c">qui</a>). Ho anche aggiunto la possibilità di inserire elementi del menu prima e dopo la lista dei file recenti nel <code>GtkRecentChooserMenu</code>, così da renderlo più simile a un <code>GtkMenu</code> (quale è).</dd>

<dt><strong>FileChooser migliorato</strong></dt>
<dd>Una delle cose che mi fanno aumentare la misantropia e, in generale, il desiderio di vedere la razza umana estinguersi sono le <em>flame</em> sul selettore di file delle GTK+. Seriamente: ogniqualvolta arriva qualche sedicente esperto di usabilità che urla ai quattro venti come il <code>GtkFileChooserDialog</code> sia "inusabile" io spero solo che si tratti di qualcuno che vive vicino ad una costa marittima, e aspetto che il riscaldamento globale faccia il resto. Due settimane fa ho fatto il <em>commit</em> della patch (non scritta da me) che aggiungeva il supporto per la ricerca di file usando (indirettamente) Beagle, Tracker o una semplice ricerca per nome. La patch aveva ancora dei problemi, con funzionalità non implementate o comportamenti non consistenti, quindi ho passato questa settimana a scrivere <a href="http://www.gnome.org/~ebassi/filechooser-merge/">patch</a> per chiudere il bug <a href="http://bugzilla.gnome.org/show_bug.cgi?id=435343">#435343</a> e intanto che c’ero anche il bug <a href="http://bugzilla.gnome.org/show_bug.cgi?id=435342">#435342</a> (se volete vedere come appare il selettore file adesso, ci sono degli screenshot <a href="http://www.gnome.org/~ebassi/filechooser-recent.png">qui</a> e <a href="http://www.gnome.org/~ebassi/filechooser-search.png">qui</a>) per aggiungere la lista dei file recenti direttamente nel selettore di file e chiudere così integrazione iniziata con la scorsa versione delle GTK+ – quasi due anni dopo il <a href="http://www.emmanuelebassi.net/archives/2005/05/guadec-live/">GUADEC che ha iniziato tutto quanto</a>.</dd>

</dl>

Ovviamente, le novità non sono solo queste. C’è stato un gran lavoro nel portare alcune <em>feature</em> sviluppate per piattaforme <em>embedded</em>, come la navigazione via tasti oppure il metodo di inserimento per tastiere solo numeriche. In più, ci sono nuove <em>feature</em> in fase di valutazione e di revisione che non sono ancora "atterrate" in <code>trunk</code>, come il supporto per il <em>tap-and-hold</em> per i menu contestuali (usato dai <em>touchscreen</em> o più in generale da chi ha puntatori con un tasto solo, come Mac o <em>tablet</em>). Infine, c’è la grossa <em>feature</em> rappresentata dal <code>GtkBuilder</code>, ovvero la possibilità di creare interfacce utente usando XML – come libglade ma integrato ed esteso.

Cosa ci attende nel post-2.12 non si sa. Le GTK+ avranno finalmente un canvas? E come impatterà questo oggetto con la struttura dei widget? In più, avremo finalmente una class <code>GtkApplication</code> per scrivere applicazioni in maniera più semplice, lasciando che siano le GTK+ a gestire le sessioni e lo stato (liberandoci di un bel pezzo di <code>libgnome</code> e <code>libgnomeui</code>)? Avremo un <em>layer</em> per <acronym title="Virtual File System">VFS</acronym> finalmente usabile senza una lobotomia parziale? E una piattaforma per la configurazione che non sia ferma al 2001?

Infine, quando avremo le GTK+ 3.0, con una ripulitura generale del codice?

Non so dare risposte; so solo che chi vivrà, vedrà.

<em style="font-size:80%">continua…</em>

Written by ebassi in: Diary, Linux, OpenSource, gnome, gtk+ |
Mar
31
2007
15

Special Delivery

A tirare su il bilancio di una discreta settimana del cavolo ci pensa eBay, grazie alla quale ho potuto mettere le mani su un <a href="http://en.wikipedia.org/wiki/SNES">Super Nintendo</a> d’occasione, completo di una decina di giochi tra cui <a href="http://en.wikipedia.org/wiki/Starwing">Starwing</a>, <a href="http://en.wikipedia.org/wiki/Sensible_Soccer">Sensible Soccer</a> e una valanga di Super Mario.

Sul fronte più interessante dell’hacking, sto finendo la riscrittura di <code>gnome-screenshot</code>; ho rimpiazzato buona parte del codice con oggetti, rimosso l’uso diretto delle Xlibs in favore delle più compatte e utili GDK (tagliano circa l’80% di fuffa, garantendomi una certa qual sanità mentale), e aggiunto il <em>code path</em> per scattare screenshot su compiz/beryl/vattelapesca (che <strong>non</strong> fanno il <em>reparenting</em> delle finestre con il <em>frame</em> aggiunto dal window manager – come chiunque abbia tentato di usare gnome-screenshot sotto compiz avrà notato).

Un altro fronte sul quale ho lavorato nelle ultime due settimane è stata la separazione di <em>backend</em> in <a href="http://www.clutter-project.org">Clutter</a>; adesso Clutter si può usare sia in ambienti desktop con GL che in ambienti embedded con GL-ES; in più, il codice è molto migliorato e la gestione degli eventi pure.

Infine, qualche tempo fa ho incontrato <a href="http://njpatel.blogspot.com/">Neil Patel</a> dal vivo. Trattasi di ragazzo particolarmente in gamba impegnato nella realizzazione di <em>bling</em> vario e utile per il desktop. A quanto pare, si è interessato a Clutter per scrivere una specie di <em>media center</em>. Il suo unico difetto è che gli piace Tracker, ma non temete: con un po’ di convincimento da parte del sottoscritto potrebbe lasciar perdere quell’aggeggio senza speranze.

Written by ebassi in: Diary, OpenSource, clutter, compiz, gnome |
Mar
06
2007
3

Next Year

<em>Attenzione: post ad elevato livello di sarcasmo</em>

È bello vedere gli amici di KDE pensare agli utenti, e <a href="http://www.ossblog.it/post/2115/la-storia-di-kde-e-dolphin">passare</a> a Dolphin. Certo che, potendo scegliere, non sarebber convenuto loro usare un file manager che <strong>non</strong> assomigliasse a Nautilus com’era cinque anni fa?

Ad ogni modo, il cerchio si chiude e si ritorna al 1999: KDE torna ad essere l’ambiente per i <em>corporate user</em>, transfughi di Windows, mentre GNOME torna ad essere il <em>desktop environment</em> <a href="http://pollycoke.wordpress.com/2007/03/06/tracker-delle-meraviglie-ecco-le-prossime-sciccherie/">pieno di crack</a>.

Written by ebassi in: Computer, Linux, OpenSource, Software, gnome, kde |
Feb
14
2007
5

Climbing the Wall/2

<em style="font-size:80%"><a href="http://www.emmanuelebassi.net/archives/2006/10/climbing-the-wall/">segue</a></em>

Finalmente sono riuscito ad avere quei dieci minuti di tempo per installare <a href="http://www.go-compiz.org">Compiz</a> sul portatile. Immensamente meglio di Beryl: l’applet per la configurazione sembra quasi progettato da uno sano di mente.

Ovviamente, se avessi un Metacity con un <em>compositing engine</em> sarei molto più felice; speriamo che <a href="http://marnanel.livejournal.com/">Thomas</a> riesca a finire di renderla accettabile entro GNOME 2.20.

<strong>Update@20070217T23:22Z</strong>: come non detto – Xgl, che sono costretto ad usare per via della ATi del cavolo, crasha non appena parte lo screensaver e mi tira giù tutta la sessione con sé; ergo, <em>for the time being</em> si torna a Metacity.

Written by ebassi in: Computer, Linux, compiz, gnome, shiny, xgl |

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com