I’m still trying to get over the stress of graduating, dreaming (every night!) of having yet to do exams in order to graduate doesn’t help though. I’m working on my projects at a slower pace, fixing a few bugs here and there before the release of EnvyNG. I have designed a new system for URandR and I hope to write some real code soon.

Today I have fixed a nasty bug in the old EnvyNG which affected automatic hardware detection with the following ATI cards:

['ATI FireGL V7300', 'ATI FireGL V7350', 'ATI FireGL V7350 Secondary', 'ATI FireGL V3400 Secondary', 'ATI FireGL V7300 Secondary', 'ATI FireGL V5200', 'ATI FireGL V3300 Secondary', 'ATI FireGL Z1 Secondary', 'ATI FireGL X3-256 Secondary', 'ATI FireGL X1 Secondary', 'ATI FireMV 2200 Secondary', 'ATI FireGL V3200', 'ATI FireGL X3-256', 'ATI FireGL Z1', 'ATI FireGL V5200 Secondary', 'ATI Mobility FireGL V5200', 'ATI FireGL X1', 'ATI FireMV 2200', 'ATI FireGL V3100', 'ATI FireGL V3300', 'ATI FireMV 2200 PCI', 'ATI FireMV 2200 PCI Secondary', 'ATI FireGL 8800', 'ATI Mobility FireGL V5000', 'ATI Mobility FireGL V5000', 'ATI Mobility FireGL V5250', 'ATI Mobility FireGL V7200', 'ATI FireGL V5100', 'ATI Mobility FireGL V3100', 'ATI Mobility FireGL V7100', 'ATI Mobility FireGL V3200', 'ATI FireGL V7200 Secondary', 'ATI FireGL T2 Secondary', 'ATI FireGL V7200 Secondary', 'ATI FireGL T2', 'ATI Mobility FireGL T2/T2e', 'ATI Mobility FireGL V5100', 'ATI FireGL V5100 Secondary', 'ATI FireGL V7100 Secondary', 'ATI FireGL V3100 Secondary', 'ATI FireGL X2-256/X2-256t Secondary', 'ATI FireGL V5000', 'ATI FireGL V3300', 'ATI FireGL V5000 Secondary', 'ATI FireGL V7200', 'ATI FireGL V3200 Secondary', 'ATI FireGL X2-256/X2-256t', 'ATI FireGL V7200', 'ATI FireGL V3400', 'ATI FireGL V7100']

It’s all fixed in EnvyNG’s new release.

As regards the translations for EnvyNG 1.1.0, you’re doing an amazing job. Thank you all. One thing that I’ve noticed though is that a few translators are having problems with the translation of the word “Main”, maybe because it’s a rather generic word which doesn’t make much sense out a context. Here is screenshot which hopefully will make things a bit clearer (”Main” is the label of the 1st tab):

Translating EnvyNG

Posted by Alberto Milone | March 29, 2008 2:37 pm
Filed under: Daily routine, Envy, GNU/Linux, Planet, Python, Ubuntu
Comments (3) |


Dear users of EnvyNG,
if you want to help to translate EnvyNG (1.1.0) into your native language you can contribute by using Rosetta’s web interface.

The Italian translation is complete.

As regards the EnvyNG 1.1.0, it will no longer build the packages locally but will rely on my repository so that you won’t have to install all those dependencies anymore. This means that when a new driver is released you will only have to wait for me to update my repository (rather than having to install a new release of EnvyNG).

EnvyNG 1.1.0 is ready (but I haven’t released it yet), therefore the sooner the translations are available, the better.

Thanks in advance for your help.

P.S. the %s symbol must be left as it is.

Posted by Alberto Milone | March 27, 2008 4:48 pm
Filed under: Envy, GNU/Linux, Planet, Python, QT, Ubuntu
Comments (16) |


If you were affected by this bug in the ATI installer on Ubuntu 64bit, the new release of Envy Legacy (envy_0.9.10-0ubuntu8) fixes it.

EDIT: please try envy_0.9.10-0ubuntu9 instead

Posted by Alberto Milone | 3:42 pm
Filed under: Debian, Envy, GNU/Linux, Planet, Python, Ubuntu
Comments (0) |


First of all I would like to thank all the ones who contributed to EnvyNG with their icons and logos. You all did an amazing work. I received many works and they were simply beautiful, therefore it was very hard for me to choose only one. My choice is based on my (questionable) personal taste and on my (anything but clear) idea of what EnvyNG should look like, therefore I don’t expect everyone to agree with my decision.

In the end I chose Alberto Gasparin’s icon and logo which I find beautiful, stylish and representative of the spirit of EnvyNG:

EnvyNGlogo

EnvyNG icon

Here is the list of the artists (for once in inverted alphabetical order) who created the other wonderful icons and logos:

Valerio Tarabella
Tommaso Gardumi
Simone Zuliani
Simone Scalas
Sergio Gridelli
Seaofgrass
robilive
rigobot
Michael Gatta
Julian Saraceni
Jonathan Grass
Jesús Alonso Abad
Jack Eatnins
Ivan Prignano
Hussanin Al Hammady
George Connor
Frank Quotschalla
Federico Pelloni
excalibur1491
Eduardo Ruiz
deviantdark
Davide Candita
Daniele Reviglione
Damiano Dallatana
Antonio Acquarica
Anton Petersson

Thank you very much, you all rock!

P.S. You will read more about EnvyNG soon

Posted by Alberto Milone | March 24, 2008 10:12 am
Filed under: Debian, Envy, Planet, Ubuntu
Comments (5) |


If you are affected by bug 204044 with the ATI driver, please try envyng_1.0.4ubuntu11.

Let me know if there are still problems.

EDIT: The problem with fglrx and DKMS is solved in envyng_1.0.4ubuntu12

Posted by Alberto Milone | March 20, 2008 8:36 am
Filed under: Debian, Envy, GNU/Linux, Planet, Python, Ubuntu
Comments (3) |


This morning I defended my thesis (in foreign languages) whose title was “Language and Artificial Intelligence”. I experimented a bit also with chatterbots and I had corrected and modified Joe Strout’s therapist (written in Python), added a few more patterns and added the support for Espeak (a voice synthesiser). I had to present my work and then chat to the chatterbot (which I called “Alberta”) so as to show how it could trick us into thinking that we are dealing with a human being (in limited contexts).

I made my laptop (running Hardy with Compiz) resume from standby, I used URandR to clone the content of my screen on the beamer and then the audio decided to crash. What the heck???
Crash

I tested the program 2 days ago with the same projector and audio cable and it worked well. *Of course*, after my graduation both my program and Ubuntu worked well… I should have restarted my computer but I was running out of time.

I also told the commission that something similar happened to Bill Gates :-P

I explained what my program was supposed to do, etc. and, as you can see in this photo, the defence of my thesis went great. I really can’t complain.
Success

Here I was explaining what happened to my laptop to a friend of mine:
Explanation

Of course now that I graduated I am also unemployed, therefore I’m officially looking for an IT job (better if located in Europe).

Posted by Alberto Milone | March 19, 2008 3:56 pm
Filed under: Daily routine, Envy, GNU/Linux, Planet, Python, Ubuntu
Comments (27) |


A few days ago I decided to have a deeper look at the API of the Python bindings for Xrandr (pyxrandr) written by Sebastian Heinlein and Michael Vogt. While I must admit that they did a good work with the bindings I’m still not completely satisfied with what I can do with them. This is not a complaint, actually I’m quite happy since it will give me a reason to learn C and complete the bindings myself (when I have the time). In the meantime I will use such bindings in URandR in at least 2 ways:

1) To achieve compatibility with drivers which support only RandR 1.1 (such as “nvidia”, “fglrx”, etc.)
2) To drop hardcoded names of the outputs for the sake of a more dynamic detection

As regards point 1, this screenshot shows how URandR works with NVIDIA’s proprietary driver as well:
URandR with the NVIDIA driver

If a driver doesn’t support RandR 1.2 you will only be able to change its resolution, refresh rate and to rotate the screen. This means that I won’t have to check which driver you’re using by reading your “/proc/$(pidof X)/maps”, which requires having root permissions. If URandR can get the current rotation of the screen through the xrandr bindings then the driver supports RandR 1.2, otherwise URandR will use compatibility mode.

Thanks to point 2 I won’t have to worry about the names by which each driver refers to output connections. For example this table contains the names of the outputs used by the ATI (radeon) driver and by the Intel driver:

Ati
(radeon)
Intel
VGA-0 VGA
LVDS LVDS
DVI-0 TMDS-1
S-video TV

I assume that drivers such as radeonhd, nouveau, etc. which support RandR 1.2 use other names. Fortunately I’ll no longer have to deal with their idiosyncrasies (directly) since the xrandr python bindings give URandR access to such names at runtime. Another thing I won’t have to worry about is the number of monitors, tvs, etc. that you connect to your graphic card. If you can connect 20 screens at the same time (provided that such thing is possible and that the driver supports it) URandR will detect them all. Thanks to these changes I was able to improve my own detection library (which is *a bit* more readable) and to make it much more dynamic as well.

Here are my plans for the next release of URandR:

* Support for RandR 1.x (DONE)
* Support for any driver which supports RandR 1.2 (DONE)
* PolicyKit integration – so that you don’t have to
be root in order to run URandR and that if the
framebuffer is not enough URandR can ask your
root password only to set the virtual resolution
in your xorg.conf
* When you apply your settings, things can go wrong,
therefore URandR will show a dialog with a countdown
and a button which, if not clicked in time (if for example
you disabled your main screen by mistake), will revert to
your previous settings.

When the new URandR is ready I will work on an alternative interface in QT4.

Here are a two screenshots of URandR with the Intel driver with my laptop screen (LVDS) (virtually) positioned to the left of an external monitor (VGA):

Multiple screens

URandR

As you can see, each output has its own place in the treeview instead of having its own tab.

When will all this be available? I don’t know, however I’m going to graduate (yes, again…) next week therefore I guess I’ll have (relatively, as usual…) plenty of time to work on URandR.

Posted by Alberto Milone | March 10, 2008 4:05 pm
Filed under: Debian, GNU/Linux, Planet, Python, Ubuntu
Comments (22) |


The ATI Catalyst driver 8.3 is now available in Envy Legacy and EnvyNG. You can check the release notes of the driver here.

As regards the future of EnvyNG, I’m glad to say that the GTK GUI for EnvyNG 1.1.0 is finished and the QT4 interface is in good shape. I only have to solve a problem with the logger in QT4 since using QProcess and TextEdit as a virtual terminal (a la VTE) makes the log look a bit weird. I’ll write a post about this.

EDIT: if you had problems with Envy Legacy and the ATI driver, try version 0.9.10-0ubuntu7

Posted by Alberto Milone | March 6, 2008 11:18 am
Filed under: Debian, Envy, GNU/Linux, Planet, Python, Ubuntu
Comments (12) |


EnvyNG (1.0.4ubuntu2) is now available.

Here is a stripped down changelog:

* Defaultdepth is set to 24bit in xorg.conf as required because of BUG #94963
* Added: NVIDIA driver 169.12
* Changed: ATI packaging scripts are now based on Ubuntu's lrm
* Added: ATI driver 8-02
* Added: NVIDIA driver 96.43.05 and 71.86.04
* Added: patch for xen kernel 2.6.24 and NVIDIA driver 169.0x
Thanks to Kano for reporting the problem and the solution.
* Added: patch for rt kernel 2.6.24 and ATI driver
Thanks to Kano for reporting the problem and the solution.
* Changed: DKMS patches the NVIDIA driver if necessary.
* Changed: nvidia-settings is installed from the repos for all the driver
flavours.
* Changed: NVIDIA's libglx.so.$VERSION is now installed to
/usr/lib/xorg/modules/extensions/ rather than in
/usr/lib/xorg/modules/
* Added: NVIDIA support for DKMS
* Changed: the NVIDIA driver now depends on DKMS
* Changed: there no longer is a popup which asks users whether they want to
let EnvyNG configure their xorg.conf. It's all done
automatically.
* Changed: when a driver is uninstalled, the driver in xorg.conf is set to
an open source driver (as in the --uninstall-all mode)

Features
Have a look at this blog post

I have updated the FAQ for EnvyNG which I suggest you to read. For example you will learn that you will have to launch Envyng with “envyng -t” rather than “envy -t” from the command line or that you will have to remove the old Envy before you install EnvyNG (see point A).

Special thanks:

  • Ben Collins: suggested how different versions of the same module (EnvyNG and Ubuntu’s) could coexist without conflicting at boot

  • Bryce Harrington: suggested a tool for semi-automatically building drivers (which I hope to use in the future), suggested to switch to guidance, set up a page on the wiki, and (above all) took the time to answer all the question I asked him ;)

  • Colin Watson: for quick but extremely useful lesson on bash on #ubuntu-devel

  • Daniel Holbach: contacted me about the EnvyNG project so as to make it possible for Envy to be 100% compatible with Ubuntu (I’ll reveal more about it later…). He organised the meetings and made sure that I had all the support I needed. He also corrected the way EnvyNG was packaged so as to make it compliant with Ubuntu’s policy.

  • Kano: told me about two issues with DKMS and gave me the solution to both problems. In case you’re wondering, yes he is the guy behind Kanotix.

  • Mario Limonciello: was very helpful with the ATI driver. He wrote a patch which I used in an earlier (never released) version of EnvyNG.

  • Martin Pitt: expressed his doubts on the first patch to /sbin/lrm-video I suggested and accepted my 2nd patch in Ubuntu.

  • Matthew Domsch: gave me a brief but extremely valuable lesson on how DKMS and modules work and helped me with my first dkms.conf .

  • Michael Vogt: helped me with a few things in EnvyNG and (above all) was always there when I had a doubt.

  • Timo Aaltonen: uploaded my patch and was very helpful with the l-r-m.

Without their help there would have been no EnvyNG. I think it was Daniel who suggested the creation of a page on the wiki titled “EnvyNG”. I liked the name and this is how EnvyNG was born.

I must admit that working with (Ubuntu and non-Ubuntu) developers who are *a bit* more experienced than me is *slightly* better than working on my own. It was a real pleasure. I look forward to working with them again in order to improve the linux-restricted-modules and (hopefully) many other things in Ubuntu.

This community rocks :-)

P.S. Enjoy this new release and let me know if you have problems with it

EDIT1: I have just fixed a bug which affected the ATI driver. The fix is in EnvyNG (1.0.4ubuntu4)

EDIT2: I have just fixed a bug which affected the NVIDIA driver (all versions but the latest). The fix is in EnvyNG (1.0.4ubuntu7)

Posted by Alberto Milone | March 2, 2008 11:51 am
Filed under: Debian, Envy, GNU/Linux, Planet, Python, Ubuntu
Comments (59) |