On the other side of the screen, it all looks so easy

Archive for May, 2007

Brain Stew

Per un Falwell che (mai troppo presto) ci lascia, un Betori che rimane. A quanto pare, non solo la natura non aborre il vuoto (pneumatico) ma ci sguazza.

Comments

The Worst Joke Ever

Ho passato gli ultimi tre giorni a tentare di capire perché un pezzo di codice producesse un SIGSEGV. Ho cambiato linee, logica, tipi di dato. Niente: qualunque cosa facessi, solo crash. Come al solito, gdb 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 segfault si verificava nel codice del GtkTreeModelSort che lui mantiene). Stasera mi dice di aver trovato la patch:

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)

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

Va da sé che Kris si vedrà offrire una birra al GUADEC.

Comments (11)

Centre for holy wars

In questi due giorni mi chiedo, a mo di esercizio puramente intellettuale, perché la Turchia non sia già in Europa…

Turchia laica?

… e perché, al contrario, ci sia l’Italia…

Italia non laica?

Comments (18)

Overdrive/2

segue

GTK+

Per mancanza di tempo, negli ultimi mesi ho dovuto lasciare a metà alcuni miei lavori sulle GTK+. 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 core team; il flusso di patch in Bugzilla è 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 API. 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 minor release, la 2.12.0? E cosa ci aspetta nel futuro?

Cominciamo con le cose già in trunk:

Supporto Quartz e DirectFB
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 trunk è il posto dove la magia avviene.
Rimosso il supporto a Windows 9x/ME
Il supporto per i sistemi operativi giocattolo della casa di Redmond era già cessato con la release 2.10; adesso è stato completamente rimosso dalla code base. Chi vuole, può fare un diff tra 2.10 e trunk, procurarsi un incudine e un martello e prepararsi per un’intensa sessione di martellate sui gioielli di famiglia.
Nuova API per le tooltip
Kristian Reitveld ha creato una nuova API per gestire le tooltip sui vari widget. D’ora in poi, niente più GtkTooltips 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’override di una funzione virtuale della class GtkWidget e si può usare la finestra che si preferisce. Questo, tra l’altro, permette finalmente di poter usare tooltip con GtkTreeView e GtkComboBox.
File recenti
Una delle cose che ho scritto io. Finalmente è possibile infilare la lista dei file recenti in un menu costruito usando GtkUIManager. Per la disperazione (di uno) degli autori di gedit, 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 qui). Ho anche aggiunto la possibilità di inserire elementi del menu prima e dopo la lista dei file recenti nel GtkRecentChooserMenu, così da renderlo più simile a un GtkMenu (quale è).
FileChooser migliorato
Una delle cose che mi fanno aumentare la misantropia e, in generale, il desiderio di vedere la razza umana estinguersi sono le flame sul selettore di file delle GTK+. Seriamente: ogniqualvolta arriva qualche sedicente esperto di usabilità che urla ai quattro venti come il GtkFileChooserDialog 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 commit 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 patch per chiudere il bug #435343 e intanto che c’ero anche il bug #435342 (se volete vedere come appare il selettore file adesso, ci sono degli screenshot qui e qui) 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 GUADEC che ha iniziato tutto quanto.

Ovviamente, le novità non sono solo queste. C’è stato un gran lavoro nel portare alcune feature sviluppate per piattaforme embedded, come la navigazione via tasti oppure il metodo di inserimento per tastiere solo numeriche. In più, ci sono nuove feature in fase di valutazione e di revisione che non sono ancora “atterrate” in trunk, come il supporto per il tap-and-hold per i menu contestuali (usato dai touchscreen o più in generale da chi ha puntatori con un tasto solo, come Mac o tablet). Infine, c’è la grossa feature rappresentata dal GtkBuilder, 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 GtkApplication 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 libgnome e libgnomeui)? Avremo un layer per VFS 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à.

continua…

Comments (6)

John Saw That Number

Solo una breve riapparizione su questi schermi (il lavoro è tiranno, e non succedono cose interessanti per il sottoscritto in questo periodo - a parte il viaggetto in quel di Copenhagen per il Nordic Perl Workshop), per la questione dei numeri che rappresentano una delle chiavi di decrittazione dei dischi HD-DVD. Non è una questione di copyright di numeri: nessuno ha registrato una sequenza di numeri come trade mark, nessuno sta usando le copyright laws per impedire alla gente di scrivere quei numeri in giro per la blogsfera perché i numeri stessi sono un copyright. La legge che le compagnie che producono i sistemi di crittazione per HD-DVD stanno tentando di usare per bloccare i numeri è il Digital Millenium Copyright Act - ovvero stanno tentando di bloccare chi pubblica quei numeri perché l’unico modo per ottenerli è violare il copyright del meccanismo di cifratura.

Come sempre, in questi casi, il telefono senza fili risulta in informazione al ribasso.

Poi, va da sé: un sistema di cifratura che prevede una chiave infilata in ogni pezzo di software e hardware venduto è automaticamente destinato a fallire; l’industra degli audiovisivi è troppo stupida per capirlo e piantarla di usare questi mezzucci, mentre l’industria che produce sistemi di cifratura è troppo furba per dirlo in giro e semplicemente sparire tra le pieghe della storia del capitalismo.

Comments (1)