Showing posts with label ubuntu. Show all posts
Showing posts with label ubuntu. Show all posts

16 September 2008

La luce delle api e i colori di compiz-fusion/2

Finalmente convinco Edo (quello, per intenderci, che usava pekwm...) a provare compiz e in particolare il Tabbing windows. Ne rimane, non dico entusiasta, ma almeno soddisfatto e conviene con me che, se non tutte, alcune (molte, direi io) funzionalità di compiz non sono solo un fattore estetico ma rappresentano degli strumenti realmente utili. Un'altra di queste funzionalità che piacque ad Edo è Negative, che "negativizza" le finestre:

hronir: e per cosa lo usi?
Edo: per dire, skype
Edo: per wikipedia
Edo: il nero su bianco diventa bianco su nero
Edo: e per me e' molto meglio
Edo: t'ho mandato uno screenshot
hronir: figo :)
Edo: molto piu' riposante
hronir: anche secondo me
Edo: ach
Edo: non dovro' abituarmi a compiz
Edo: sul mio portatile non ce lo posso avere!
hronir: vedi che anche tu rischi l'assuefazione?
hronir: ci sono effetti grafici carini, ma molti sono proprio... UTILI!
Edo: considero utile:
Edo: 1) window tabbing
Edo: 2) neg
Edo: il resto sono stronzate...
ok, ok, censura.
Come potete immaginare dalla tonalità di questo blog, anch'io ho sempre pensato che, su schermo, testo bianco su fondo nero sia più riposante dell'opposto. E proprio nel gestire il blog, per adattare al suo sfondo nero immagini "normali" su sfondo bianco, mi era già capitato di giocare con l'inversione fotografica. Invertire un'immagine permette di scambiare il bianco col nero, ma ha l'effetto collaterale di invertire anche i colori: il rosso diventa azzurro (ciano), il verde diventa rosso (magenta), il blu diventa giallo e così via. Ma smanettando con GIMP ero riuscito a trovare una specie di compromesso in un'ulteriore trasformazione dell'immagine da applicare dopo l'inversione, e cioè una rotazione di 180 gradi del parametro di tonalità (hue), che corrisponde, appunto, ad'ulteriore inversione "puramente cromatica". Tanto per capirci, un'immagine originale come questa diviene così dopo una semplice inversione, e così se si applica ancora un'inversione di tonalità.

hronir: oltre al neg ci vorrebbe una rotazione di 180 gradi nell'hue
hronir: cosi' i colori rimangono simili all'originale
hronir: ma non credo esista questa feature :(
Edo: cosa fa?
hronir: prova a giocare con un'immagine (non una foto, meglio uno screeshot) con GIMP
hronir: e applica il negativo e poi uno shift di 180 gradi nell'hue
hronir: l'effetto e' quasi di aver scambiato il bianco col nero
hronir: lasciando i colori piu' o meno uguali
Edo: mah, no
Edo: il bianco mi rimane bianco
hronir: no, prima fai il negativo
hronir: e poi gira l'hue
Edo: aaaaaaa
hronir: l'hue non cambia bianco/nero
Edo: e' vero
Edo: non dovrebbe essere impossibile
hronir: eh, infatti, non dovrebbe essere complicato
hronir: bisognerebbe trovare un qualche sito per i feedback per compiz
Edo: sembrerebbe esserci un plugin che cambia i colori
hronir: come si chiama?
Edo: si chiama color filter
Ora, color filter sembrerebbe proprio quel che fa per noi, solo che non ha, fra i filtri disponibili quello per le rotazioni dell'hue. Leggo che si possono aggiungere filtri personalizzati, ma bisognerebbe mettersi a imparare l'OpenGL fragment program, una specie di assembler per schede grafiche. La prima idea, ovviamente, è quella di cercare qualcuno che abbia già scritto un simile filtro, ma google sembra non portare ad alcun risultato. Mi toccava davvero imparare l'ARBfb1.0? Ora, imparare è una parola grossa: sarebbe bastato trovare un filtro qualsiasi e provare a modificarlo. I filtri disponibili con compiz si trovano in /usr/share/compiz/filters/ e dando un'occhiata a filtri come swap-green-blue o green-gray sembra che tutto stia nel giocare con i "campi" rgb della texture, scambiandoli o invertendoli.
Purtroppo, però, non esiste alcuna semplice operazione di shuffle delle componenti RGB che corrisponda ad un'inversione dell'hue e anzi la relazione fra RGB e HS* è espressa con un sacco di condizionali... E questa era una brutta notizia, perchè la mia idea era semplice: trasformare le componenti red-green-blue del colore in componenti hue-saturation-value, invertire la componente hue (o ruotarla di 180 gradi) e riconvertire in red-green-blue. Ma per implementare in assembler quelle formule piene di casistiche non mi sarebbe bastato usare qualche semplice operazione matematica. Testardo, provo a scrivere un codice lunghissimo, implementando i salti in maniera "acrobatica" usando le istruzioni SLT, KIL e CMP... ma ovviamente appena provo ad aggiungerla ai filtri attivi di compiz mi crasha non X ma tutto il computer!
Tutto sembrava perduto quando, serendipicamente, trovo La Soluzione Semplice. Nonostante ovunque, su internet, le trasformazioni ufficiali RGB-HSV sono quelle riportate da wikipedia, e nonostante ovunque, su internet, i mille e mille piccoli codici di esempio nei linguaggi più disparati traducono quelle trasformazioni in maniera pedissequa, con i corrispondenti costrutti if-case che tanto mi hanno fatto impazzire con ARBfp1.0, la realtà è che... esistono trasformazioni lineari fra RGB e HSV!!!
A quel punto tutto è in discesa, e infatti in una manciata di minuti metto insieme non più di una dozzina di linee... et voilà, il gioco è fatto.

15 September 2008

compiz-fusion color filter for hue inversion

The negative plug-in for compiz fusion can be used to reduce eye straining while reading from screen: it switches black-text-on-white-background to white-text-on-black-background. But such inversion involves also color channels: red appears cyan, green appears magenta, blue appears yellow and so on. Therefore if you want that in your application, for example, your green buttons (which mean "good", "on", "ok"...) will remain green, and for example your red buttons (which mean "alert", "off", "cancel"...) will remain red, you have to resort to an additional hue switching transformation.
The Color Filter plug-in could be used for such a color transformation, but the already available filters do not include such option. Moreover, I couldn't find a similar trasformation through google, so I write it for you. You can find it just below here, it is merely a dozen of lines of OpenGL fragment program: simply copy those lines in a file (to be placed, for example, among the other filters in /usr/share/compiz/filters/) and then select as filter files both the negative filter and my filter (the order is irrelevant).
Enjoy! :)

!!ARBfp1.0
TEMP output, tmp, YPbPr;
TEX output, fragment.texcoord[0], texture[0], RECT;

MOV tmp, output;

DP3 YPbPr.x, tmp, {0.333, 0.333, 0.333, 1};
SUB YPbPr.y, YPbPr.x, tmp.b;
SUB YPbPr.z, YPbPr.x, tmp.r;

ADD tmp.r, YPbPr.x, YPbPr.z; 
ADD tmp.b, YPbPr.x, YPbPr.y;
SUB tmp.g, YPbPr.x, YPbPr.z; 
SUB tmp.g, tmp.g, YPbPr.y;

MOV result.color, tmp;
END

30 July 2008

Don't look back

E' uscito KDE 4.1, e davvero c'è di che avere l'acquolina in bocca! Da più parti si dice che ancora non è completamente stabile e affidabile, ma chissà, magari quest'estate troverò il tempo di farci un giro, senza piallare ancora niente della mia attuale 3.5.9, giusto per provare l'ebrezza... ma ho paura che davvero, una volta provato, non si avrà più voglia di guardare indietro! :)

28 June 2008

Firefox3: ubuntu modified version and checkboxes & radio buttons issue

Firefox 3
After some minor troubles for uncompatible extensions and themes, I definitively passed to the brand new release of Firefox and... damn, it's unbelievably faster and nimbler!!!
For me there were only a few things to fix.
The first is that some extensions do not work properly on ubuntu since it has a modified version of Firefox. But for me it was enough to install the xulrunner-1.9-dev package from the standard repositories, as suggested by mkalen.
The second is related to the checkboxes and radio buttons rendering under KDE 3.5. For me the solution was to install the gtk2-engines-qtcurve package and then choosing not to use the KDE style for GTK applications. For that, you have to go to the GTK styles and font sub-section of the Appearance section of the System Settings, where you have to choose use another style and select the QtCurve style.
After that, I can say that Firefox3 is really the very best browser yet.

15 October 2007

root on kubuntu

Even if root sucks, I got to install it on several machine (laptop, office desktop, home deskop...). So here it is the recipe for a Kubuntu box.
  • install X11 pixmap library and its development headers:
  • sudo apt-get install libxpm4 libxpm-dev 
  • download source tarball, e.g root_v5.17.02.source.tar.gz from http://root.cern.ch/root/Version517.html
  • actual install it:
  • sudo mkdir /root++
    mv root_v5.17.02.source.tar.gz /root++
    cd /root++
    tar -xzvf root_v5.17.02.source.tar.gz
    export ROOTSYS=/root++/root
    cd root
    ./configure
    make
    where /root++ is the directory where you want to install root into.
Hope this can help someone else.

13 August 2007

afs on ubuntu

I tried to install the afs client for my kubuntu following the recipe found at the ubuntu forum, but I got in trouble with the make-kpkg stuff. Just within the comments on that post there is the hint for the solution, which relies on what is suggested in /usr/share/doc/openafs-client/README.modules.
I put here the plain recipe that worked for me, for anyone which would be interested, but also for my future reference: in fact, unfortunately, you must compile the module for the particular kernel you are using, i.e. you have to recompile the module each time you upgrade your kernel...
   —   ∴   —   
So, here is the recipe. The first part is the one you have to redo for each kernel upgrade.

# Installing linux-headers for the running kernel and kernel-package:
sudo apt-get install linux-headers-`uname -r` kernel-package
# Installing openafs-modules-source:
sudo apt-get install openafs-modules-source
# building openafs kernel module (this is where my recipe is different from the ubuntu-forum one):
cd /usr/src
sudo tar xzvf openafs.tar.gz
cd /usr/src/linux-headers-`uname -r`
sudo apt-get install module-assistant
sudo module-assistant prepare openafs-modules
sudo module-assistant auto-build openafs-modules
# Installing the just created openafs-modules package:
sudo dpkg -i /usr/src/openafs-modules-`uname -r`*.deb
The next part is needed only the first time you install the openafs client (so, if you are updating the module due to kernel upgrade, you can stop here).
# Installing kerberos 5 packages:
sudo apt-get install openafs-client openafs-krb5 krb5-user krb5-config
For me, the file /etc/openafs/afs.conf.client turns out to be already set with the AFS_CLIENT=true option (which make the AFS client to start at boot). To insert the just made module into the kernel, do:
sudo insmod /lib/modules/`uname -r`/fs/openafs.ko
To manually start the client, do:
sudo /etc/init.d/openafs-client start
To get an AFS token using kerberos, do:
klog -principal <your_afs_username> -cell <name_of_the_AFS_server>
and that's all.
As you can see, I put some tricky `uname -r`'s into the recipe, to get the version of the running kernel. In this way it can be used "as is" for each new kernel module. In fact, i put such a recipe into a small script you can download and launch for each upgrade (or even at the first installation, since it also contains the una tantum kerberos installation, which still can be skipped by the user after an interactive question from the script).
Enjoy!

19 June 2007

at last

For days I was unable to properly set the native resolution of my LG Flatron wide L194WT monitor, within my intel graphics media accelerator 950. I turned upside down my xorg.conf, quick-fire reconfiguring the X server
sudo dpkg-reconfigure xserver-xorg
and restarting it, and rebooting... Finally, the workaround was to simply replace the i810 default ubuntu drivers with the intel ones:
sudo apt-get install xserver-xorg-video-intel
following this ubuntu forum thread.
Now I can fully enjoy all the 1440x900 pixels of my home screen (needless to say, with the full beryl cube fancy!)

19 April 2007

Kubuntu Feisty Fawn 7.04 e' arrivata!

E la rete e' semplicemente impazzita! Non posso neanche mettere qualche link perche' al momento tutto e' letteralmente inaccessibile (repository dei pacchetti, delle immagini iso, anche semplicemente le pagine degli annunci e le {,k,X,ed}ubuntu-homepage!).
Ma settimana prossima credo che non riusciro' a trattenermi dall'upgrade (e chissa' se finalmente riusciro' a godermi anch'io qualche effetto speciale...)

13 March 2007

gnuplot 4.2 on ubuntu: update

Edo pushes me to take a look at the several options one can select while compiling. The complete list is not so deep (you can find it through ./configure --help, or inside the INSTALL file). Moreover, as a matter of fact, most of them are selected by default (like the useful --enable-history-file and --enable-datastrings, which enables gnuplot to apply a label just near the coordinates of each point of the plot).
Anyway, the one I consider the most useful for the everyday life with gnuplot − namely enabling the GNU readline − is not selected by default. This option enables the gnuplot prompt to act just like a common shell one, provided with its powerful line-editing capabilities (which are taken, as Wikipedia says, from one of GNU's earliest and most popular projects, Emacs!). As usual, life is quite easy with Ubuntu. My previous recipe is still good with two small things.
First of all, make sure to have the libreadline5-dev package installed. If not, it is easy to use apt-get, Synaptic or Adept Manager to find and install it.
Finally, simply add the --with-readline=gnu option to the first ./configure command.
That's all Folks!

09 March 2007

gnuplot 4.2 on ubuntu: right now!

Just a few days ago the new version of gnuplot was released. As you can read from the announce, it has been almost 3 years since release of the previous version 4.0. This new version contains a ton of new features, support for several new output devices, and improved performance. But I don't know how much I'm supposed to wait before the ubuntu guys will include this brand new version into its official repositories. Moreover, if you google for a debian package, you will find no more than the 4.0.0-5 version. So I moved to install gnuplot from sources.
   —   ∴   —   
So I took my tar-ball and unzipped it into a temporary directory:
[hronir@boltzmann:~/gnuplot-src] tar -xzvf gnuplot-4.2.0.tar.gz
[hronir@boltzmann:~/gnuplot-src] cd gnuplot-4.2.0
[hronir@boltzmann:~/gnuplot-src/gnuplot-4.2.0]
To be careful, I decided not to replace the previous instance of gnuplot, so I asked ./configure to take a home-based directory as the --prefix option:
[hronir@boltzmann:~/gnuplot-src/gnuplot-4.2.0] ./configure --prefix=$HOME/gnuplot4.2
[hronir@boltzmann:~/gnuplot-src/gnuplot-4.2.0] make
[hronir@boltzmann:~/gnuplot-src/gnuplot-4.2.0] make install
My first attempt failed just in the last step: it was saying something ending with:
/home/hronir/gnuplot-src/gnuplot-4.2.0/missing: 103: makeinfo: not found
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[1]: *** [gnuplot.info] Error 1
make[1]: Leaving directory `/home/hronir/gnuplot-src/gnuplot-4.2.0/docs'
make: *** [install-recursive] Error 1
But it really was a very small hurdle to overcome. As the warning was suggesting, I simply took the Texinfo package from my Adept Manager and at the second attempt with ./configure, make, make install I get my new-gnuplot [›››] (the only comment is that it was not only a warning, since without the Texinfo package it would not complete the installation...)
Last thing: making the new-gnuplot the default gnuplot. First check which gnuplot is your gnuplot:
[hronir@boltzmann:~] which gnuplot
and bind it to some alias of your choice, for example:
[hronir@boltzmann:~] alias gnuplot-old=`which gnuplot` 
Then bind a gnuplot alias to the new-gnuplot, which lies in the bin directory:
[hronir@boltzmann:~] alias gnuplot='$HOME/gnuplot4.2/bin/gnuplot'
and all done!
 
PS
As a matter of fact, the gnuplot-old alias is not needed. When you have an alias which overloads a pre-existing command, you can always recover the original command by pre-posing a backslash to the command itself. In this case, for example, you have:
[hronir@boltzmann:~] gnuplot --version
gnuplot 4.2 patchlevel 0
[hronir@boltzmann:~] \gnuplot --version
gnuplot 4.0 patchlevel 0
and the gnuplot-old alias is pretty useless.

28 February 2007

Mark Shuttleworth at CERN

He, no matter what the picture on the left will let you think, is of course the founder of the Ubuntu project. And he was just here, today, for a conference about Open Source Software: The Challenge Ahead. I moved to the conference only to see him, because I had no idea of what could be the appearance of the man at the source of my OS-passion.
There I found a guy − yes, he is only 4 years older than me! − just like the one in the photo down-right here, dressing blue jeans and exactly that black sweatshirt. And I come to know that he
  • started as a Debian developer (ok, this was obvious)
  • founded a company, Thawte, specialized in digital certificates and than he sold it to Verisign for more than half a billion bucks.
  • formed the Shuttleworth Foundation, a non-profit organization dedicated to social innovation which also funds educational and open source projects in South Africa, such as The Freedom Toaster.
  • spent eight days aboard the International Space Station as a civilian cosmonaut, participating in experiments related to AIDS and genome research (yes, the one in the picture on the top-left is just him).
  • started the development of Ubuntu and then founded the Ubuntu Foundation
And today he was here, just a few meters apart from me, speaking about something as common in my life as the open source software.
 
PS
Concerning the K in front of my OS-passion, on 15 October 2006 it was announced that Mark Shuttleworth became the first patron of KDE, the highest level of sponsorship available.

15 January 2007

(k)ubuntu vs Vista

Sono così contento della (k)ubuntu che ormai mi scopro a pensare tutto in girotondi ternari. I motivi che mi hanno spinto al grande passo [›››] mi sembrano cosi' oggettivi e condivisibili [›››] che ormai mi ero autoconvinto anch'io, come crede Alessandro Bottoni, che con l'arrivo di Windows Vista si sarebbe manifestato in piena luce la grande crepa nell'egemonia di Microsoft nei sistemi operativi. Qualche segnale lo si puo' gia' leggere in questo senso; e comunque, per tornare a (k)ubuntu, Microsoft e' sottoposta al fuoco incrociato anche − e soprattutto − di Apple, oltre che di Linux. In ogni caso ci sono statistiche che promettono le solite faville e anche piu'.
Ma e' stato July a mostrarmi l'irragionevolezza di questa speranza con una semplice considerazione: quando Vista sara' pronto, i nuovi computer che saranno venduti se la porteranno in dote automaticamente. E' difficile pensare che si possa andare dal negoziante e chiedergli di avere XP invece di Vista [›››], e ancora piu' improbabile e' la circostanza che quel Vista venga lasciato su una partizione ridotta per far posto a una qualche piu' user-friendly distribuzione di Linux.
L'argomento di July non ammette replica, ma continuo a non essere convinto che tutto si ripetera' uguale, e resto dunque in curiosa attesa di quel che succedera' dalla fine di questo mese...