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

Archive for Computer

Back to the Life

si torna di nuovo a Debian, dopo la parentesi di ormai tre anni con Ubuntu.

mark my words: Fedora è la nuova Ubuntu. non fosse che anni di SuSE e RedHat mi hanno di fatto instillato un doveroso ribrezzo per RPM1, darei un giro di prova anche alla distribuzione con il cappello.

l’installazione di Lenny non è andata affatto male; un paio d’ore dopo l’inserimento del CD netinst avevo tutto quanto più o meno pronto — a parte il firmware per la scheda wifi, che comunque è nella sezione non-free. ovviamente, ha aiutato il non aver piallato la mia /home2.

ora ho un’installazione molto più streamlined, con poche modifiche a GNOME, e senza quella schifezza di tracker installato a tradimento3.

  1. we rpm haters aren’t born. we’re made. []
  2. in questo senso, GNOME mi ha piacevolmente sorpreso — mi aspettavo pena, miseria e morte e invece l’unica cosa da ricostruire sono state le password di Evo, nell’attesa che usino il fottuto gnome-keyring prima della morte termica di questo Universo []
  3. la moglie si lamenta perché il suo laptop alle volte si blocca per qualche secondo mentre sta scrivendo la tesi; temo di essermi dimenticato di fare apt-get --purge remove tracker quando le ho fatto l’upgrade l’ultima volta []

Comments (26)

A Step Forward Into Terror

A prendere questo e un contratto c’ho messo meno tempo che a prendere un paio di scarpe. Ho subdolamente barato, però: il negozio della T-Mobile era pieno e prima di entrarci avevo già controllato tutto quanto sul sito.

Nei prossimi giorni, quando avrò riabilitato il Bluetooth sul laptop e installato tutto l’ambaradan vi faccio sapere come funziona con Linux; per ora, ho visto che ha trovato tutti i wireless network.

Comments (3)

Why do I keep counting?

Lunedì è venuta a mancare

La Comunità di KDE

Ne danno il triste annuncio la madre Trolltech e la sua nuova consorte, Nokia; gli utenti commerciali di Qtopia, che se producevano cellulari adesso si trovano costretti a cambiare piattaforma; gli utenti di KDE, per cui il desktop potrebbe finire in secondo piano quando l’unico provider monopolista della tecnologia su cui ti basi viene acquistato da un produttore di embedded device che intende usarti come anti-Android.

I funerali si terranno, in una data inevitabile a meno che qualcuno non tiri fuori 150 milioni di euro, a Helsinki.

Certo però, che inculata pazzesca per gli utenti: prima la Trolltech forza la mano alla comunità per rilasciare un dimostratore incompleto e instabile di QT 4.x, poi vende l’ambaradan.

Fuori di obit joke: questo succede quando tieni tutte le uova in un paniere, e ci fai pagare pure “la tassa” sopra, con tanto di benedizione di San Ignucius (a dimostrazione di quanto il buon Richard si stia rincoglionendo con l’età); se poi si guardano i quarterly report ci si accorge di come la Trolltech stesse perdendo cash dal 20061, e che erano appena riusciti ad arrivare a un netto tra operative costs e operative revenues nel Q3 2007. Non mi sorprende l’offerta di 100m di euro, quindi.
Adesso la palla passa alla comunità. Se la Nokia dovesse decidere in un cambio di strategia, KDE muore; se la comunità decide di forkare e rimanere sotto GPL (v3, nonetheless), KDE cessa di avere un appeal commerciale, e diventa il nuovo GNUstep.

  1. Greenphone? Possibile. []

Comments (23)

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 Macports e di JHBuild si riesce a mettere in piedi qualcosa di usabile.

una cosa sicuramente mi piacerebbe avere anche sotto GLX, e sono i tool per fare profiling delle chiamate OpenGL; l’UI è banale da replicare (basta prendere una cosa tipo questa) ma quello che è interessante è tutta la serie di hooks per attaccarci uno statistical profiler.

Comments

Du Hasst

penso di averlo detto chiaro e tondo da anni, ma a chi si fosse connesso solo adesso voglio ricordare che io sono un misantropo. odio gli esseri umani, anche se mi piacciono alcune persone.

per inciso, non sopporto quelle che ormai sono note come community; ho frequentato per anni USENET e mailing list, e onestamente pensavo di aver visto tutto, ma se devo essere sincero non riesco a sopportare le cricche che si raggrumano intorno a web forum e blog.

prendiamo, ad esempio, pollycoke. chi commenta i post di felipe di solito ha una percezione dei fatti simile alla percezione spaziale esibita da un elefante spastico in una cristalleria boema. non è colpa loro: è il risultato di quella che Jonathan Gabe Gabriel ha definito come Greater Internet Fuckwad Theory, ovvero:

normal person + anonimity + audience = total fuckwad

in una forma o nell’altra, questa teoria l’avevo formulata in periodi antecedenti al 2004, anno di pubblicazione della strip di Penny Arcade; ma, in generale, è una teoria sociologica accettata quasi a livello memetico da chiunque abbia passato qualche anno in una qualunque gerarchia di USENET1.

ovviamente, la GIFT non si applica solo ai commentatori su weblog come pollycoke, o aggregatori di notizie come ossblog o punto informatico o slashdot. anche chi mantiene le community vi è sottoposto.

prendiamo, ad esempio, l’ultimo post di felipe sul totale disastro ferroviario che è planet gnome oggi (27 novembre 2007). l’ammasso di cazzate allucinanti che felipe riesce ad inanellare in un sol colpo, la quantità di male interpretazioni e di mancanza di una qualsivoglia conoscenza (diretta o indiretta) dei fatti - nonostante due press release e tonnellate di email su foundation-list, desktop-devel-list e altre mailing list con archivi pubblici non può che essere il risultato di due cause:

  • totale, completa, indifendibile e magistrale mancanza di buona fede
  • totale, completa, indifendibile e magistrale mancanza di intelligenza

delle due, l’una: o felipe c’è, o ci fà. personalmente, opto per la malafede, perché se davvero fosse una tale grossolana ignoranza di fatti, circostanze e contesto allora dubito molto che felipe (e tutti quelli che commentano sul suo blog con la bava alla bocca) riesca a mangiare se non imboccato, o andare in bagno senza essere accompagnato. preferisco, quindi, dargli una chance e credere che parli semplicemente a vanvera su tutto quello che gli passa per la testa senza avere un’idea precisa del perché lo fa, perché l’alternativa sarebbe quantomeno disarmante2.

ovviamente, non condonerei la totale malafede dimostrata: buona parte dei pundit hanno lo stesso problema, quindi potrei ignorare la malafede nella (vana) speranza che se chiudo gli occhi e la ignoro a lungo quanto basta, essa scomparirà senza avvelenarmi ulteriormente il sangue.

retrospiegone relativistico per pollycoke, ossblog, planet gnome it e tutti gli altri, così tentiamo di spiegare a un po’ di gente come funzionano le cose e come si sta al mondo:

  • tra jeff e murray non è mai scorso buon sangue; chi si trova nella comunità da qualche anno lo intuisce anche senza conoscere dettagli o persone
  • questo non c’entra una benemerita fava con OOXML, ODF, GMAE o elezioni della fondazione
  • novell non partecipa molto alla gestione della fondazione
  • la fondazione non partecipa nello sviluppo di tecnologie sulla piattaforma, ma coordina attività come relazioni con i media, marketing, donazioni, conferenze, etc.
  • l’advisory board è solo una componente della fondazione, ed è quella minoritaria se paragonata alla comunità
  • i soldi forniti dalle compagnie dell’advisory board sono usati per sponsorizzare le attività della fondazione, ma se venissero a mancare non sarebbe una catastrofe
  • ergo i soldi versati dalle compagnie, quindi anche dalla novell ma non solo, sono usati per tutt’altro e non per lo sviluppo, e quindi non rappresentano un driver per nessuno e nella fondazione e nella comunità, a parte impiegare alcuni hacker (e neanche la maggioranza)
  • miguel non fa parte della board dal 2005 e ha mantenuto la carica di presidente in maniera onoraria perché nessuno ha mai formalizzato la richiesta di dimissioni per avere un altro presidente fino a quest anno, cosa che ha portato alle sue dimissioni istantanee, compatibilmente con i suoi impegni3
  • la fondazione non ha mai detto di essere a favore di OOXML e contro ODF; anzi, ha contribuito a supportare ODF, esattamente come tutti gli altri, perché è sicuramente il formato che garantisce migliori chance di essere interoperabile
  • detto questo, ODF è un casino sotto-specificato, con la Sun che cambia formato senza mantenere la compatibilità all’indietro anche dopo il processo di standardizzazione, e l’unico modo per implementare un cazzo di filtro per ODF è prendere i sorgenti di openoffice e guardarseli, finendo impallinati dalla licenza (GPLv2) e dal copyright (Sun)
  • non che OOXML sia meglio anzi: quello non ha nemmeno il codice disponibile; ma se pensate che scompaia solo perché la microsoft non riesce a farlo diventare uno standard ISO allora vi porterò in una stanza in cui babbo natale, la fatina dei denti e la befana vi spiegheranno come microsoft è una monopolista quindi col cazzo che butterà a mare il formato di office solo perché lo implementa solo lei; in più, gesù bambino vi farà sapere che sarà molto offeso dai cristoni che i poveri programmatori dovranno tirare giù per implementare i filtri per OOXML se nessuno avrà obbligato la microsoft a documentare il loro formato quando questo era possibile e una risposta era garantita4

basta così? devo continuare?

ma sì, aggiungo un’ultima cosa: avete rotto il cazzo con mono. non ne capite il senso, le regole e il contesto. non avete capito che è una reimplementazione in clean room e quindi tenta in tutti i modi di non violare brevetti; non avete capito che gli exe che produce sono solo una convenienza e basta usare uno switch a linea di comando per non averli5; non avete capito che mono predata qualunque accordo della novell con la microsoft, e che è stata l’unica tecnologia esclusa dal patent covenant perché perfino alla microsoft sanno che non possono farci niente. vi prego, non rendetevi ridicoli ulteriormente, e smettete immantinente di parlarne: non siete qualificati per farlo6.

e adesso mi siedo sulla riva e aspetto la tonnellata di fango da chi non ha mai scritto due righe di codice; da chi non ha mai passato una sera a chiudere un bug report; da chi non ha mai implementato qualcosa per fare un favore a utenti che non ha mai visto. perché la comunità ormai è ridotta a questo, e se da una parte sono triste, dall’altra sono così incazzurrito che neanche uno storione del Don.

  1. il che porta alla immediata realizzazione di come USENET sia il più vasto esperimento sociologico involontario mai realizzato dagli esseri umani sugli esseri umani []
  2. oppure un miracolo della modera tecnologia, per cui un sub-umano riesce a mettere insieme una frase più o meno coerente []
  3. va tutto fatto secondo le regole della fondazione, non basta andare su IRC e direi “mi dimetto”; lo aggiungo giusto per venire incontro ai più bisognosi []
  4. tanto lo so che la maggior parte dei fessi pensano che i filtri si scrivano da soli e che sarà mai basta fare il revers inginiring []
  5. perché oddio, mai avere degli exe in giro per il disco: potrebbero trasformarsi in mostri e venirvi a rosicchiare le dita dei piedi []
  6. oy oy oy, nemmeno io: ma almeno io sto fottutamente zitto a riguardo []

Comments (86)

Dead Duck

L’altra settimana ho aggiornato il laptop a Gutsy. In generale, il feel è che questa release sia una mezza tragedia: non siamo ai livelli di Edgy, ma poco ci manca. Tra le cose che hanno smesso di funzionare:

  • NetworkManager non sopravvive al suspend e sono costretto a disabilitare la rete quando sposto il computer da casa all’ufficio; questo quando va bene: alle volte devo andare di killall. Update@2007-11-01T15:39+0100: bug noto, a quanto pare risolto in SVN.
  • Se spengo il monitor sotto X (ad esempio, se chiudo il laptop ma lo lascio acceso) due volte su tre non viene riacceso e sono costretto a far ripartire GDM.

C’è di buono che GNOME 2.20 è meraviglioso, e che Debian non riconosca (ancora) l’esistenza dei laptop, altrimenti sarei tornato di corsa al mix di testing+unstable che usavo prima.

Ovviamente, ho provato di nuovo Compiz - il compositor che alle volte fa da (pessimo) window manager. L’user interface è un totale disastro ferroviario, in cui puoi scegliere solo tre livelli:

  1. Niente effetti (ovvero: Metacity)
  2. Effetti per persone sane di mente
  3. Hurt me plenty1 (ovvero: gente che si bulla con gli amici, gente che registra un video per bullarsi con gli amici, gente che sta male perché non ha amici ma non ne ha bisogno perché ha Compiz, gentooisti)

In più, se hai qualcosa che non è installato di default e non ha un nome umanamente inferibile2, hai anche il livello segreto:

  1. Customizzami tutta

Che permette di selezionare cose utili come il motion blur ma non ha un setting per avere un window manager sensato, tra il miliardo di tunables, plugin che si disattivano a vicenda e chiari esempi di opzioni di tipo unfuck my application.

Il problema è che perfino al livello per persone normali dopo dieci minuti di utilizzo comincio a sentire il mal di mare e un mal di testa impressionante. A questo va aggiunto il fatto che il trasferimento di opzioni da Metacity a Compiz è orrido e mi sono trovato dall’avere dodici workspace all’avere dodici viewport con dodici workspace l’uno - l’equivalente di 144 aree di lavoro la cui navigazione è banalmente impossible.

Morale della storia:

  cd ~/git
  git clone git://anongit.freedesktop.org/git/xorg/app/xcompmgr
  ./autogen.sh
  make && cp xcompmgr ~/bin
  xcompmgr -cC -o .3 &

e Metacity. E, ovviamente, AWN (che ha dei bug grandi così, ma posso rompere le scatole a Neil di persona).

  1. citazione colta []
  2. hint: non è gnome-compiz-manager []

Comments (28)

Be Here Now

Ma perché fermarsi al COBOL? Perché non torniamo tutti quanti ad Algol 60? Oppure all’assembly per PDP-1? In fondo anche x86 è una moda passeggera: prima o poi torneremo tutti alle valvole e allora si che non ci saranno cazzi per nessuno.

Con l’adozione dei socket inseriti circa 4 anni fa il cobol comunica in modo diretto con i linguaggi di programmazione attuali anche rivolti al web.

Ovvero: con l’introduzione di un filo sufficientemente lungo e due lattine, posso comunicare da Londra con i miei che stanno in Italia! Seriamente: COBOL comunica con altri linguaggi? Come dire che io comunico non con gli inglesi, bensí con la Lingua Inglese.

[…] uso [COBOL] per creare gestionali come contabilità magazzino fatturazione ecc.

Sempre lì, siamo: gestionali.

Update@2007-09-10T23:05+0100: siamo al delirio:

La potenza del Cobol a mio avviso oltre alla capacità di gestire grandi quantità di dati è la sua interfaccia di base a carattere facilmente proiettabile verso i sistemi remoti con una minima occupazione di banda. […] L’interfaccia a carattere può essere valorizzata per esempio aggiungendo gli iperlink che portano ad una pagina web per ottenere i grafici che interessano.

Una Cinquecento color topo può effettivamente essere valorizzata aggiungendoci dei finti motori a curvatura e facendo bruuuum bruuuuum con la bocca una volta messi al volante.

via Ikitt, che ha un talento tutto particolare per scoprire i fenomeni sui web forum

Comments (14)

Just a Ride

Dicevo altrove di aver provato Vala, il linguaggio C#-like scritto usando GLib e GObject come base, e che viene “compilato” in C invece di usare una VM 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 binding 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 train wreck di Python3. Tuttavia, i bindings sono quello che sono: si portano dietro virtual machine, ambienti di runtime, licenze, implementazioni patent encumbered e altre amenità.

Intendiamoci: non ho nulla contro le VM - 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, una virtual machine è 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 Parrot e lo completasse. Mi piacerebbe, insomma, avere una 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 runtime 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 feature; non ci resta, quindi, che sperare in IronPython per una implementazione sana di mente? non voglio pensarci []

Comments (8)

Hysteria

O mio dio! Skype usa D-Bus, che usa getpwnam (3posix), che apre /etc/passwd! Moriremo tutti!

O mio dio! La demo giocabile di un gioco già uscito installa un sistema per il DRM possibilmente scritto dalla stessa compagnia che aveva scritto un altro sistema per il DRM che aveva le caratteristiche di un rootkit! Moriremo tutti!

L’isteria di massa del weekend è stata gentilmente offerta da blog e webforum e dal tam-tam della stessa gente che installa un firewall per sentirsi più sicuri - e poi magari blocca il DNS e pensa di essere stata “acherata”. Chiunque campi sull’informatica non può che ringraziare questi fessi che permettono di portarsi a casa la pagnotta e non offrono alcun pericolo imminente di rimpiazzo.

Comments (6)

Out of time

Ora, non dico che questo blog dovrebbe sparire dai pagerank di Google. Sarebbe chieder troppo, in alcuni casi (vedi la quantità di fuffa cazzara laboriosamente redatta e impilata negli anni), oppure non sarebbe carino per altri (tipo le mie carampane del solitario e del campo minato).

Però mi piacerebbe sapere quale percorso mentale sballato abbia portato il tal matteo_xxxxxxxxxx@hotmail.com (email rimossa per proteggere la testa di beep) a scrivere un commento - finito in coda di moderazione, ça va sans dire - a un post del 2004 - si, signore e signori, del duemila-cazzo-quattro - in cui vengo insultato bellamente perché, a suo dire, avrei dovuto usare qualcosa di non esistente all’epoca per fare qualcosa di non realizzabile all’epoca.

Qualcuno mi verrà a dire: il povero pisquano non sapeva che quello era un vecchio post. Non fosse che la data è scritta: 1. nel post; 2. nei diciassette commenti del post; 3. nella stracazzo di URL del post che il povero deve aver visto comparire nella grossa barra in cima alla finestra del suo Internet Explorer (oh si, usa Internet Explorer, ci potrei giurare).

A questo punto, una richiesta: Matteo, dé, io ‘un ti fò nulla; ma tu, fammi il santo piacere, e rimuoviti dal pool genetico dell’umanità - se sei ancora in tempo (e se vai cercando roba sul web e capiti su un post di un blog in cui si parla di 24, Scrubs e Coupling, posso azzardare l’ipotesi che si: tu sia ancora in tempo e che no, Federica e Manola sicuramente stasera avranno mal di testa).

Grazie mille.

Comments (9)

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)

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)

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 Super Nintendo d’occasione, completo di una decina di giochi tra cui Starwing, Sensible Soccer e una valanga di Super Mario.

Sul fronte più interessante dell’hacking, sto finendo la riscrittura di gnome-screenshot; 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 code path per scattare screenshot su compiz/beryl/vattelapesca (che non fanno il reparenting delle finestre con il frame 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 backend in Clutter; 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 Neil Patel dal vivo. Trattasi di ragazzo particolarmente in gamba impegnato nella realizzazione di bling vario e utile per il desktop. A quanto pare, si è interessato a Clutter per scrivere una specie di media center. 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.

Comments (15)

Millions Miles Away

Sto attraversando un momento di pura e distillata misantropia. Oppure, più semplicemente, non capisco che strano processo mentale (?) porta certa gente a proporre cose come:

Gli utenti si apettano tutte le funzionalità del file manager dalla finestra di dialogo per salvare un file […] quindi se Nautilus è installato le GTK+ dovrebbero eseguire Nautilus [al posto della GtkFileChooserDialog].

Sicuramente, ha a che fare con della droga - crack, nel caso specifico. Lasciamo perdere l’evidente caso di inversione (perché le GTK+, che sono un toolkit multipiattaforma, dovrebbero dipendere da Nautilus, albeit opzionalmente?), e concentriamoci sull’idiozia di poter effettivamente modificare file, directory ed eseguire applicazioni mentre si sta salvando un file. Ottimo se hai un attention deficit disorder e non riesci a fare a meno di lavarti i denti mentre bevi il caffé, tirandoti su i pantaloni alla fermata dell’autobus.

Oppure no.

Comments (9)

Give It Up

La missione, se deciderete di accettarla, sarà di trovare la playlist nel prossimo Amarok:

amarok-2.png

Se verrete catturati, uccisi oppure vi butterete dalla finestra dall’orrore, il dipartimento negherà di essere a conoscenza della vostra missione.

Poi, a che diavolo serve il menu Engage? Cos’è, l’Enterprise?

Le motivazioni per utilizzare Amarok stanno scivolando sempre più verso il lombrosiano.

Comments (14)

Next Year

Attenzione: post ad elevato livello di sarcasmo

È bello vedere gli amici di KDE pensare agli utenti, e passare a Dolphin. Certo che, potendo scegliere, non sarebber convenuto loro usare un file manager che non 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 corporate user, transfughi di Windows, mentre GNOME torna ad essere il desktop environment pieno di crack.

Comments (3)

Going Mobile/3

… and back

Il FOSDEM di quest’anno è stato interessante; i talk erano come al solito troppi, e troppo sparsi, per essere seguiti - ma in generale il FOSDEM non è una conferenza a cui si partecipa solo per seguire demo e sentire gente che parla davanti a slide. Ho ritrovato volti noti e conosciuto di nuovi. Ho parlato di nuovi “giocattoli”, sviluppi futuri di alcune librerie e architetture, bevuto birra in quantità, dormito poco e riso molto.

Il viaggio a Helsinki è stato più stancante, e non posso dire molto: solo per entrare al research centre devi firmare un NDA. Sono stati comunque due giorni interessanti in una nuova città, per il sottoscritto.

Comments (1)

Going Mobile/2

Dal FOSDEM. Più precisamente: dalla GNOME dev room del FOSDEM, una volta tanto che la connessione funziona.

Parrà incredibile, ma le conferenze di hacker, programmatori e più in generale smanettoni, hanno la peggior connettività del mondo; forse è perché tutti i partecipanti hanno almeno un computer acceso e in procinto di fare un sync con venti repository

Nel frattempo, uno screenshot di quello su cui sto lavorando:

Places in the file chooser
Directory speciali nel file chooser, caricate da un file esterno e traducibili.

Ovvero, l’implementazione di DesktopPlaces.

Comments (7)

Going Mobile

Fine settimana: a Bruxelles per il FOSDEM 2007. Direttamente da lì, fino a martedì, si finisce ad Helsinki.

A fine aprile si vola a Copenhagen, per due talk da tenere al Nordic Perl Workshop 2007.

A inizio luglio (ovviamente) il GUADEC 2007 a Birmingham. Ed è la conferenza a minor distanza da casa.

A fine agosto mi piacerebbe andare alla YAPC::Europe in quel di Vienna.

Purtroppo dovrei rifare il passaporto per poter andare negli States, quindi con ogni probabilità il Summit a Boston salterà anche per questo anno.

Comments (1)

Climbing the Wall/2

segue

Finalmente sono riuscito ad avere quei dieci minuti di tempo per installare Compiz 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 compositing engine sarei molto più felice; speriamo che Thomas riesca a finire di renderla accettabile entro GNOME 2.20.

Update@20070217T23:22Z: 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, for the time being si torna a Metacity.

Comments (5)

Twist the Knife

Panacea
\Pan`a*ce”a\, n.
[L., fr. Gr. pana`keia fr. panakh`s all-healing; pa^s pa^n, all + ‘akei^sqai to heal.] [1913 Webster]
1. A remedy for all diseases; a universal medicine; a cure-all; catholicon; hence, a relief or solace for affliction. [1913 Webster]
2. (Bot.) The herb allheal. [1913 Webster]
3. (Programming) Tracker. [2007 Gnome]

Okay, adesso si è andati talmente oltre il ridicolo che non è neppure più divertente. Gli autori ci si sono messi per la loro parte, ma adesso i droni stanno diventando davvero fastidiosi.

Comments (2)

Billy Liar

La moglie ha preso il nuovo portatile, per sostituire l’iBook sans lettore DVD e con la batteria agli sgoccioli. Il portatile viene via con Vista pre-installato.

Al momento, sto facendo i sette CD di recupero; pare che alla Microsoft non abbiano ancora imparato a fare una installazione senza riavviare tre volte (e fortuna che il sistema è pre-installato, quindi con tutti i driver già ammodíno).

Alla fine, però, la cosa che più mi colpisce è quanto Vista sia boring. Sono riusciti a rendere noiosi perfino gli effetti speciali. Un po’ come dipingere la propria casa di grigio per renderla calda e accogliente.

Fortunatamente, il commesso del negozio mi ha fatto provare la Live di Edgy Eft prima di prendere la macchina; appena avrò finito di fare questi cavolo di 4.7 GB di disco di recovery, il disco fisso verà purificato con aspersioni di rugiada e acqua santa, mentre Debussy risuona nell’aere.

Primo commento durante l’installazione: “Wow, what a rip-off”.

Comments (16)

Nuclear War (On The Dance Floor)

Di solito non accendo flame: ci partecipo solo (grazie ai poteri della I-can-t-believe-it-s-not-Asbestos tuta che mi è servita per anni su Usenet) perché mi diverte vedere le buffe reazioni degli esseri umani (misantropo umanista? You bet!).

Stavolta, però, me la stanno tirando fuori dalle carni.

Chiunque segua desktop-devel-list sarà al corrente che non nutro grande simpatia per Tracker, il calderone di indexer/database/interfaccia grafica/kitchen sink/quello che sarà questa settimana che alcuni vorrebbero avere una maggiore integrazione con GNOME.

Premetto subito che io non odio Tracker: mi stanno cordialmente sulle balle le modalità con cui viene evangelizzato e, soprattutto, sviluppato. Dopo un anno e rotti in cui è stato riscritto almeno tre volte, cambiato il database, cambiato l’indexer, aggiunte feature e realizzato poco testing, ancora manca una cazzo di API decente per permettere a me, sviluppatore, di poterlo utilizzare. Si, perché il fine ultimo di Tracker è, evidentemente, immagazzinare il maggior numero di informazioni sui vostri file e poi non utilizzarle, dato che esiste solo una serie di remote procedure calls per D-Bus e nient’altro. Ma certo, se ho bisogno di estrarre dati mi basta usare Python. Solo che non io posso riscrivere GNOME in Python (o C++, o C#, o D, o COBOL o ${WHATEVER_LANGUAGE_ZEALOTS_WILL_PROPOSE_NEXT} - in fondo, abbiamo milioni di linee di codice da riscrivere da capo, che sarà mai), e gli utenti non hanno un cazzo di Cray su cui far girare uno GNOME scritto in Python (i requisiti di memoria dopo otto ore di utilizzo sono quelli). By the way: menarmi il torrone su quanto Tracker sia buono con la mia CPU e la mia RAM e poi dirmi che se voglio usarlo devo ridurmi a scrivere un’applicazione in Python è prendermi per culo - puro e semplice; e io non sopporto quando mi prendono per il culo.

Prendiamo HAL, l’Hardware Abstraction layer scritto per evitare di dover pasticciare con device, permessi e stronzate varie; è composto da RPC ma ha anche ben due librerie che mi permettono di non dover usare D-Bus direttamente. Perché? Perché HAL è scritto da qualcuno sano di mente, probabilmente, che pensa che l’utente non se ne fa una sega di HAL in quanto tale - l’utente è esposto ad applicazioni che usano HAL a loro volta; gli utenti di HAL sono gli sviluppatori, e se non do agli sviluppatori un’API sensata come diavolo faranno a scrivere applicazioni? Tracker occupa una nicchia analoga: gli utenti non sanno cosa sia Tracker, a cosa serva o come lo faccia; sanno solo che possono aggiungere una tag a un file e cercare file usando lo stesso tag. Se un utente si eccita con il fatto che esista Tracker è un cazzo di geek, e non è per loro che io contribuisco a GNOME.

Quindi, prego qualcuno di mettersi a scrivere un’API coi contro cazzi per permettermi di scrivere applicazioni con Tracker; non widget: voglio scrivermi i miei widget senza aspettare sei mesi che qualcuno ne aggiunga uno che mi serve. Perché sono io che scrivo applicazioni per GNOME, non “gli utenti”; e se io non sono in grado di scrivere applicazioni per GNOME usando Tracker vorrà dire che sarò costretto a reinventarlo tra sei mesi.

Giuro, mi basta qualcosa che mi dia un GObject a cui far eseguire un match, e abbia segnali che mi dicono cosa la mia richiesta ha trovato. Perché non c’è ancora? Perché gli sviluppatori e chi contribuisce a Tracker ha deciso di perdere il suo tempo per scrivere front-end per la Deskbar applet, mantenere branch parallele di Nautilus e violentare il Search Tool invece di permettere ai maintainer di questi progetti di fare il loro lavoro?

</rant>

Comments (8)

Overdrive/1

Un recap sui progetti a cui sto lavorando al momento.

Clutter

Nei commenti al blog precendente mi si chiedeva di Clutter. Per chi non seguisse Planet GNOME (o per chi lo seguisse ma non avesse comunque la più pallida idea di cosa si tratti), Clutter è un toolkit che ho contribuito a realizzare più o meno da quando sono stato assunto alla OpenedHand (settimana più, settimana meno).

Clutter è un toolkit basato sulle stesse librerie usate per le GTK+ (GLib, GObject, Pango) ideato per scrivere applicazioni con un’interfaccia grafica mono-finestra - ad esempio: media box, personal video recorder, etc. - in ambienti (embedded e non) dotati di grafica accelerata (tramite OpenGL oppure OpenGL ES). Clutter fornisce un canvas, rappresentato dal singleton ClutterStage, e alcuni widget, chiamati ClutterActor. I widget forniti sono (volutamente, al momento) pochi: non solo perché siamo alla release 0.2.0, ma soprattutto perché vogliamo vedere di cosa necessitano gli sviluppatori prima di implementare ClutterActor nel modo sbagliato o del tutto inutili.

Hello, World - Come funziona Clutter? Ecco un semplice “hello, world” che sfrutta buona parte delle nuove API. È scritto in Python - avrei preferito scriverlo in Perl, ma conoscendo la quantità di pythonisti in “ascolto” ho scelto altrimenti; la versione in Perl è disponibile a richiesta. Se volete, potete scaricarla e farci quello che volete - è nel public domain, come dovrebbero essere tutti gli “hello world” di questo mondo. Se cliccate dopo il link, smonto il codice in blocchi per spiegare come funziona.

Read the rest of this entry »

Comments (16)

« Previous entries ·