31 maggio 2006

Compiz, Ubuntu e le tastiere italiane

Se avete intenzione di usare Compiz con la vostra nuova installazione di Ubuntu, Dapper Drake, attenzione a quale tutorial seguite.

In questa pagina del wiki di Ubuntu, viene suggerito l'uso della seguente riga di comando per l'avvio di Xgl

Xgl -fullscreen :1 -ac -br -accel glx:pbuffer -accel xv:fbo

Notare in particolare il parametro "-br" che, eseguendo `Xgl --help` in un terminale, si scopre corrisponde a

 disable the X Keyboard Extension
Ciò impedisce il corretto funzionamento della tastiera in italiano, in particolare non è possibile:
  • utilizzare il tasto BlocMaiusc per scrivere le lettere maiuscole accentate (ÀÈÌÒÙ)
  • Utilizzare il AltGr come selettore di terzo livello per immettere caratteri non ASCII non presenti sulla tastiera (come «»¢“””ñµĸjħŋđðßðæ@ł€¶ŧ←↓→øþ¹²³¼½¬{[]})
Per una utenza non inglese, quindi, il modo migliore per usare Compiz e Xgl è:
  1. non inserire -br nella riga di comando per l'avvio di Xgl (in terminale, script, file .desktop per una nuova sessione di GDM o nel file gdm.conf-custom per l'avvio di X con GDM, a seconda del metodo scelto)
  2. all'avvio della prima sessione con Xgl+Compiz (in GNOME, ovvio) scegliere l'opzione "Usa impostazioni di GNOME" nel dialogo che notifica la discrepanza tra le impostazioni di X e quelle di GNOME
  3. aprire lo strumento di preferenza Tastiera quindni mpostare la disposizione italiana nella scheda Disposizioni
  4. Sempre nello strumento di preferenza Tastiera nella scheda Opzioni di disposizione scegliere l'opzione Super è mappato sul tasto Win per la sezione Comportamento tasto Alt/Win e l'opzione BlocMaiusc commuta l'uso normale delle lettere maiuscole dei caratteri alfabetici nella sezione Comportamento tasto BlocMaiusc.

Proteste inutili

Parimpampù, eccomi qua.(1) Dopo qualche settimana a cercare di rendere completa la traduzione di Ubuntu e dopo tre giorni di seggio per le elezioni amministrative di Roma, eccomi qua a riferire di tutti i brogli elettorali che ho compiuto in questi giorni. Perché, si sa, da un nichilista scettico con tendenze minimaliste che vota rifondazione solo questo ci si può aspettare.

Partiamo dai componenti del seggio. Stavolta, causa impossibilità (e indolenze) varie, a farmi da segretario è venuta la mia mammina. La sua prima volta a contatto con gli intricati ingranaggi delle elezioni con sistema proporzionale. Ne è rimasta scioccata. Forse però era solo amareggiata per aver dovuto ricopiare a mano sul verbale tutti i candicati (PDF) alla carica di consigliere (una sessantina per ogni lista, con trentasei liste presenti).

Avevamo gli scrutatori, due signore e due ragazze appena ventenni.

Infine avevamo i rappresentanti di lista, circa una ventina, più alcuni candidati alla carica di consigliere municipale (che hanno facoltà di presenziare). Curiosità: tutti i rappresentati del centro sinistra erano uomini, tutti i rappresentanti del centro destra erano donne.

Nello svolgimento delle operazioni di voto non si sono verificati problemi. Fatto salvo domenica un signore che esce dalla cabina con una sola scheda e alla domanda "ma l'altra?" risponde "Eh, ho sbagliato a votare, che me la cambiate?" Fortuna che ero nel seggio (visto che ho passato parecchio tempo in giro a chiacchierare con il messo (o la messo, visto che è donna?) del sindaco che conosco da parecchio tempo), altrimenti la mia mamma avrebbe fatto il cambio. La cosa bella è che lunedì, mentre mi trovavo assieme al messo all'ingresso della scuola, il signore torna dicendo che lui voleva lamentare una irregolarità, ossia quella che gli era stato impedito di votare e che il figlio gli aveva detto che la scheda gli andava cambiata. Verbali alla mano, gli faccio vedere che non è previsto il caso di restituzione della scheda per un cambio. Bofonchia un po' dicendo che gli avevano detto votare un candidato... Mentalmente penso "e chi cazzo se ne fotte! potevi stare attento, vecchio rincoglionito che non sei altro. Io devo far quadrare i conti. Avrei potuto dirti di strappare un po' la scheda, visto che è previsto il cambio per le schede deteriorate, ma chi me lo faceva fare a portarmi appresso nei conti 'sta scheda a penzoloni"

Ma passiamo alla fase che più interessa tutti, quella in cui i presidenti fanno sempre dei gravi brogli che tolgono voti al povero Silvio: lo spoglio.

Dieci minuti prima della chiusura dei seggi, tutti i rappresentanti di lista accreditati si incominciano a presentare. Bravi, noi abbiamo passato l'intera domenica e siamo qui dalle sette, sudati con gli occhi che si incrociano per tutti i nomi che abbiamo dovuto trascrivere nei verbali, e voi vi presentate alle 3 precise, freschi freschi di doccia e di deodorante.

Lo spoglio, purtroppo, non ha presentato particolari contestazioni. Al di là della mia conoscenza di quali voti sono validi e quali no, al di là delle linee guida che avrei assunto e che gli avevo esposto, al di là della mia imparzialità nell'attribuire i voti, credo che per la giovane età o per scarsa volontà (erano lì solo per prendere i dati e i soldi che i partiti gli danno per essere lì) non sarebbero stati in grado di sollevare o argomentare una protesta formale. Formale, perché di protesta informale ce n'è stata una.

Ma qui è necessaria una premessa. Nel seggio accanto al nostro, era di presidenza una professoressa che per tutta la domenica e per tutto il lunedì ha dovuto litigare con un rappresentante di lista che pretendeva di votare per il municipo pur essendo appartenente ad un altro. La signora professoressa, un po' antipatica in verità, ha ben pensato di cacciare via tutti i rappresentanti di lista all'atto dello spoglio. Ci sono state proteste e reclami, ma, salvo successive azioni legali, era nelle sue possibilità. Ne è venuto fuori, alla fine dello spoglio, mentre io ero di nuovo dal messo comunicare i dati da trasmettere via PC, che il rappresentante dell'Ulivo, tagliato "fuori" dalle rappresentati di UDC, FI e AN dalle postazioni accanto a me che controllavo le schede e assegnavo voti, abbia detto che in questa scuola "si andava dalla stelle alle stalle", con seggi che cacciavano fuori i rappresentanti e seggi, come il mio "troppo blandi"

È in queste occasioni che uno ringrazia di avere una mamma cazzuta, quelle occasioni in cui uno non si può difendere da solo. Anche perché dopo avergli chiesto se si trattava di una protesta, ha ricevuto come risposta, rincarando la dose, qualcosa che faceva riferimento al fatto che nel mio seggio c'erano tutti ragazzini, che vedi le proteste che avrei potuto rivecevere, che in fin dei conti chiunque poteva avvicinarsi alle schede e magari metterci le mani e invalidare il voto.

Mamma lo ha distrutto, come solo lei sa fare senza picchiare. Mi dispiace essermi perso la scena.

Comunque, o mio piccolo rappresentante di lista, che per tutto il tempo dello spoglio te ne sei stato in un angolo zitto zitto e hai trovato il coraggio di pronunciare parole così diffamatorie nei confronti del mio operato, sappi che, anche se in modo tardivo e di certo inascoltato:
  • come detto sopra, sono un nichilista scettico con tendenze minimaliste, credo che la vera legge universale sia la legge di Murphy e sono parecchio paranoico: credi che non abbia tenuto d'occhio o non fossi capace di tenere d'occhio quello che voi rappresentanti di lista stavate facendo?
  • oltre a me c'erano alte 4 scrutatrici alle quali avevo detto di controllare i vostri movimenti, specie quando vicini alle schede
  • magari ci sei rimasto male perché nel mio seggio gli altri rappresentanti ti hanno relegato in un angolo e in quello accanto ti hanno sbattuto fuori, ma io non ho avuto alcun ruolo in tutto ciò
  • da presidente di seggio il mio compito è far rispettare il voto dell'elettore ed evitare inutili proteste di voi rappresentanti. Il modo migliore di farlo è quello di creare un clima di falsa simpatia e cordialità, di farvi credere di partecipare alla mia decisione, di tenervi vicino e non a distanza.
Però, se questo è il tuo commento, se, come credo, è questo il commento che in fondo balena nella mente di tutti voi rappresentanti, allora ti ringrazio per averlo manifestato, dal più profondo del cuore. In fondo ci sono occasioni in cui non mi crea fastidio passare per stupido, pur di ottenere il mio scopo (chiudere i verbali senza proteste e in fretta), ma se è a bastonate che volete essere trattati, se volete che vi intimi di restare ad almeno 1 metro dalle schede, se volete che metta uno scrutatore a controllare ogni vostro movimento e a girarvi intorno come un avvoltoio mentre firmate i verbali, bene è quello che farò in futuro, e francamente sarò ben lieto di farlo.

Sinceramente anche io sono stanco di farvi partecipare per evitare discussioni, di darvi subito i dati per farvene andare in fretta e in fretta compilare i verbali. Aspetterete, il vostro compito è solo quello di stare lì e quanto pare vi pagano anche. Magari dovrei attestare che vi ho visto durante lo scrutinio e non durante la giornata.

Quindi prosaicamente vi chiedo: leggete la bibbia? E allora ascoltate questo passo che conosco a memoria: Ezechiele, 25 17 ...

(1) trivia: chi lo diceva?

8 maggio 2006

Libero software in hardware proprietario

La mia mamma, tornando dall'IperCoop vicino casa [1], mi ha consegnato un oggetto che francamente non mi aspettavo acquistasse. No, non una confezione di profilattici, il titolo di questo post lo smentisce :-)

Bensì un nuovo mouse. Con rotellina, perché si è resa conto che è utile, e senza pallina, perché tempo fa avevamo parlato del perché ogni tanto il nostro buon Logitech OEM si inceppasse. Non pensavo mi fosse stata a sentire e che avesse capito cosa è un mouse ottico. E invece...

Il ridicolo è che ha comprato un mouse Microsoft!!! Per essere precisi il nome è «Microsoft Comfort Optical Mouse 3000». A sua discolpa possiamo dire che non ha guardato la marca ma le funzioni e il prezzo (scontato da 26,00 a 15,90 €).

Effettivamente il mouse va meglio del precedente (che forse risentiva degli anni e della polvere) e in quanto al prezzo c'è da dire che un Logitech OEM con caratteristiche simili costa 12,00 €.

Oltre ai soliti due tasti e alla rotellina questo mouse ha un ulteriore tasto sul lato sinistro del corpo (il trattino rosso che vedete nella foto della pagina prima linktata) che, nella configurazione standard di MS e con il software a corredo (che, bada bene, va installato prima di collegare il mouse... benedetta MS) funziona da ingranditore. Certo, sarebbe interessante capire come una persona mancina possa usare questo pulsante, forse con l'interno del mignolo... E poi dicono che ha una linea ergonomica...

L'idea dell'ingranditore cmq non è affatto male. In Ubuntu non ho dovuto fare altro che inserire il mouse prima di accendere il computer, aspettare l'avvio, aprire un terminale, lanciare xev, e premere il pulsante rosso all'interno della finestra «Event Tester» per scoprire che X11 lo aveva già mappato come button 9. A questo punto è bastato andare a modificare la chiave GConf /apps/compiz/plugins/zoom/screen0/options/initiate e impostarne il valore a "Button9" per avere l'ingrandimento, grazie a XGL e compiz.

Diverso il discorso per quel che concerne la possibilità di scorrimento orizzontale. La rotellina è dichiarata inclinabile, in effetti inclinandola verso destra o sinistra ad un certo punto emette il classico clic. Putroppo sembra che non venga emesso alcun evento di X11 :-(

E pensare che sulla confezione dice che bisonga avere Windows XP o MacOS X per farlo funzionare...

[1] Sì, giusto a 100 metri, peccato che secondo Google Map l'ipermercato si trovi al centro delle rotaie del tram :-| L'ipermercato/centro commerciale è in realtà quella struttura sviluppata in diagonale a sinistra del fumetto.

4 maggio 2006

Compiz e XGL dal vivo

Qualche tempo fa avevo scritto i miei commenti su XGL e compiz.

Recentemente ho aggiornato la mia installazione di Ubuntu per usare Dapper Drake (visto che è in fase di beta, è il momento giusto per provare e verificare lo stato delle traduzioni).Il che apriva la possibilità di usare XGL e compiz. Non ho resistito ed ho seguito (in parte) le indicazioni elencate qui.

Mi pare giusto quindi completare le mie impressioni sul desktop 3D.

Innanzitutto una premessa: sì, è veramente così figo come appare nei vari video pubblicati in rete.

Ho provato a tornare al semplice metacity dopo una settimana di compiz: usare un window manager "non fisico" è quasi traumatico. Compiz non fornisce solo degli abbellimenti sprecando cicli di CPU, ma fa in modo che ciò che appare sullo schermo reagisca a leggi del mondo reale (più o meno). Per questo nello spostare le finestre si ha una frizione con lo sfondo (variabile, provate a renderla molto molto bassa: la finestra non si ferma quando terminate il trascinamento) che magari non esiste nel mondo reale quando spostate un foglio sulla scrivania (oddio, su certi banchi di formica non è detto), ma che sullo schermo ha una sua funzione. Allo stesso modo i menu non copaiono all'improvviso belli e completi, ma dopo un effetto di fading, magari anche "ballonzonando" un po'.
Analoghi effetti "fisici" si hanno all'apertuna, chiusura e minimizzazione delle finestre: la finestra non sparisce all'improvviso, ma segue un percorso, modifica il suo stato (si rimpicciolisce diventando trasparente). L'effetto più bello è però quello della massimizzazione: i quattro angoli della finestra vengono spinti di forza ai quattro rispettivi angoli dello schermo, ed il resto della finestra ballonzola come se fosse un elastico tirato d'improvvivo per assestarsi al cambiamento. Analogo effetto demassimizzando.

A livello utente il giudizio su Compiz è assai positivo. Magari ci sono poi cose inutili (alcuni hanno preparato una patch per rendere colorata l'obra proiettata dalle finestre) o alcune preferenze impostate in modo un po' troppo figoso (per esempio l'eccessivo ballonzolamento dei menù all'apertura, ma non sto usando la versione vanilla), ma il nocciolo del programma è ottimo, dal punto di vista delle funzionalità offerte, dell'architettura a plugin, dell'uso di GConf e mi azzarderei anche a dire delle prestazioni (il mio Athlon 1200 + 256 RAM +GeForce2MX non soffre più di tanto). È bello vedere che su Linux una cosa del genere è disponibile subito, senza dover aggiornare tutto il sistema con ritardi su ritardi. Se la scelta di chiusura di Novell poteva essere criticabile "a priori", a conti fatti ha protoddo qualcosa che funziona, che attrae interesse e che, cmq, è aperto e libero. Grazie a ciò direi che ci si possono aspettare buoni margini di miglioramento da Compiz.

Ciò che è un po' problematico è purtroppo il server grafico, XGL. Non che non funzioni, altrimenti non avrei parlato bene di Compiz, solo che crea alcuni problemi ad altri componenti del sistema. Innanzitutto ci sono dei problemi con la disposizione italiana della tastiera. Il server infatti sembra non usare quella definita del file /etc/X11/xorg.conf e va a ripiegare su quella americana, rendendo necessario l'uso dello strumento di preferenze di GNOME per selezionare la disposizione corretta. Ovviamente il problema potrebbe non essere imputabile a XGL in sé, ma a come è stato pacchettizzato. Certo è una cosa noiosa. Credo anche sia cosa nota, visto che nei vari forum consigliano di eseguire xmodmap dopo l'avvio di compiz.

Il secondo problema lo ho con GStreamer. Lasciando l'uscita video predefinita (xvimagesink), la riproduzione video è notevolmente rallentata (a occhio direi che viene mostrato 1 fotogramma al secondo - da considerare che la versione di GStreamer presente in Ubuntu dovrebbe avere inclusa la patch per il QoS [Quality of Service], ossia video e audio sono tenuti in sincro, anche a costo di tagliare fotogrammi). L'aver inserito il comando per l'accelerazione nelle opzioni di avvio di XGL non aiuta. L'unica soluzione, al momento è di aprire lo strumento di configurazione (Alt+F2 poi eseguire gstreamer-properties), andare alla scheda Video e selezionare XWindow (no xv) nella casella di selezione Uscita. Da notare che il problema non è solo di lentezza. Facendo clic sul pulsante Prova delle sezione relativa al pugin di uscita, i due sink ximagesink e xvimagesink producono test diversi (solo quello di ximagesink è corretto). Anche in questo caso non so se l'imputazione è da riferire a XGL in sé, a chi ha fatto il pacchetto, a GStreamer o al mio computer magari troppo lento (anche se...)

L'ultimo problema è con il povero vecchio emacs. Ecco come appare sotto XGL:

Tutti i caratteri sono stati rimpiccioliti, usando 5x5 pixel per le minuscole :-( Va bene che Compiz ha una utilissima funzione di zoom, ma sempre 5x5 rimangono...

Oh, non ho detto il perché della scelta di usare fonti alternative a quelle di Ubuntu: semplice, perché in Ubuntu compiz è fermo alla versione 0.0.2, mentre quella su xgl.compiz.info è la 0.0.10 :-) aggiornata non appena disponibile una nuova versione o qualche patch interessante. Sperimentale per sperimentale...

Una nota finale. Tutti i vari tutorial su come usare compiz nella propria sessione a mio avviso usano una procedura non ottimale. Quello che fanno è infatti creare una nuova sessione di GDM in cui viene avviato compiz e poi gnome-session. A mio avviso, per lo meno se si usa GNOME 2.14, il modo di procedere "corretto" è un altro.

Una volta compiuti i passi necessare per installare il sotware e far partire XGL al posto di Xorg, si dovrebbe:
  • scrivere un file /usr/local/bin/compiz.sh sul tipo di quello presente qui, ma senza la riga finale per avviare gnome-session
  • scrivere un file compiz.desktop come quello indicato nella pagina referenziata qui sopra, ma porlo nella directory /etc/xdg/autostart/ (è una funzionalità di gnome-session versione 2.14, permette di avviare programmi aggiungendo i relativi file .desktop in una particolare directory. In questo modo è anche possibile disabilitare l'avvio di compiz in una sessione usando lo strumento di preferenze Sessioni)
In questo modo compiz viene avviato alla fine, a rimpiazzare metacity che viene avviato e poi arrestato. Però mi pare un modo più flessibile per gestire l'avvio di un programma che, al momento è solo un'aggiunta.

Ovviamente lo stesso risultato del secondo punto si può ottenere usando lo strumento di preferenze Sessioni per aggiungere i due programmi avviati da compiz.sh all'elenco di programmi da avviare. Va da sè che facendo così ne beneficerà solo l'utente che ha applicato il cambiamento.

Ultima nota, una cosa che non capisco: è normale che in un sistema "accelerato", ossia con una GPU che potrebbe farsi carico di gran parte del lavoro grafico e con XGL che dovrebbe sfruttare le potenzialità della GPU, il processo relativo a XGL usa dal 15 al 20 % di CPU?????