Revision 1 as of 2009-09-03 13:08:04

Clear message
  • Name : Alberto Milone

  • Status : Canonical Sustaining Engineer (system)

  • Project : Canonical OEM Custom Engineering Solutions Group

  • Location : Lecce, Italy

  • O/S : Ubuntu

  • Launchpad :

  • IRC : tseliot @,,

About me

My name is Alberto Milone, I graduated [1st level degree (equivalent to a BA) - December 2005, 2nd level degree (equivalent to a MA) - March 2008] in Foreign Languages (English and Spanish) at the Università del Salento. I was born in Turin in 1983 but I have spent most of my life in Lecce. My current interests range from the study of the English language to free software development (on GNU/Linux distributions), for both of which I have an insane passion.

As of March 2009, I'm an employee of Canonical OEM Services Custom Engineering Group as a Sustaining Engineer (system). I deal (mostly) with and drivers.

My Experience and Involvement in Ubuntu

I have used Ubuntu since April 2005. When I tried it, loved it, left Windows and never looked back. One of the reasons for which I like Ubuntu is its forum, where I learnt most of the things that I know (thanks to all the people who were so kind to help me). I decided to pay back all the people who helped me by helping new users, which all my guides are aimed at. As a matter of fact I try explaining as many things as possible when I write my guides so that anyone can follow them, even when dealing with topics such as recompiling kernels.

I joined the Archival team on and therefore worked on the documentation on the UDSF.

I am a [ Moderator ] on the Ubuntu Forums ( I used to be very interested in writing guides and providing support for the installation of graphics drivers and for the resolution of problems with the Xserver in general.

A partial list of the guides (now mostly obsolete) that I wrote can be found here:

At a certain point I decided to teach myself programming and to get involved in software development so as to fix the problems that I had tried to get around with my guides.

Skill Set

The programming languages that I use most (in order of importance for my job) are C/C++, Python and Bash Script.

I'm comfortable with hacking on both GNOME and KDE applications but working on is what I like most.

My Contributions

Contributions to Upstream Projects

Here are some examples of my contributions to upstream:

Abiword: abisource #11789

Gnome Power Manager: gnome #568162

Gnome Settings Daemon: gnome #568160 Synaptics driver freedesktop #21613

Contributions to Ubuntu

My Projects

1) Envy/EnvyNG

"Envy" is an application for Ubuntu Linux and Debian written in Python and PyGTK which will: 1) detect the model of your graphic card (only ATI and Nvidia cards are supported) and install the appropriate driver. However automatic detection can be overridden with the "Manual installation" 2) package the driver that comes with ATI or Nvidia's installer (from their respective websites) 3) install all you need to package and install the driver 4) configure the Xserver for you

Envy features both a GUI (which you can launch only inside a Desktop Environment) and a textual interface which you can use if, for example, you cannot start the Xserver.

Thanks to the cooperation with Ben Collins, Bryce Harrington, Daniel Holbach and Michael Vogt, I rewrote part of Envy and created EnvyNG. EnvyNG is perfectly integrated in Ubuntu and it's a semi-official way to update the ATI and NVIDIA drivers in Ubuntu Hardy 8.04 LTS. You can read further details on my [ blog ] and on my [ website ].

You can find it on launchpad:

2) URandR

[ URandR ] is a GUI to RandR 1.2 written in PyGTK. IT covers RandR 1.2 basic functionalities and aims to make multihead configuration as easy as possible for unexperienced users.

3) Evolbck

[ Evolbck ] is an application for GNU/Linux written in Python and PyGTK which will enable you to import and export (in tar.gz format) your mail and settings (mail accounts, contacts, calendar, etc.) in Evolution.

4) Maintenance of the NVIDIA driver since Ubuntu Intrepid Ibex 8.10

In 2008 at the UDS in Prague I participated in the separation of the ATI and of the NVIDIA driver from the linux-restricted-modules. I became the maintainer of the NVIDIA driver, rewrote the packaging scripts and added the support for DKMS. I also wrote patches to make the NVIDIA drivers build with Intrepid's new kernels when NVIDIA had not added the support for such kernels in their drivers yet. Currently I keep updated the linux-restricted-modules-envy (in Ubuntu Hardy) and the 4 flavours of the NVIDIA driver (nvidia-glx-177, -173, -96, -71) in Intrepid.

Martin Pitt is my main sponsor for the NVIDIA packages. His feedback helped me a lot in the transition to the new packages in Intrepid.

5) Nvidia-common

Switching from the old name scheme of the NVIDIA drivers (nvidia-glx{-new,-legacy}) to the new one (nvidia-glx-177, -173, -96, -71) and because of changes in the drivers as regards the supported hardware, dist-upgrades from Hardy to Intrepid failed. Below you can see how different the supported hardware is in Hardy and in Intrepid:


  • nvidia-glx-new (169.12):
    • Geforce 5xxx, 6xxx, 7xxx, and a few models of the 8xxx series
  • nvidia-glx (96.43.05) in Hardy is a legacy driver which supports:
    • Geforce 2xxx, 3xxx, 4xxx, 5xxx, 6xxx, 7xxx up to 7800
  • nvidia-glx-legacy (71.86.04) is another legacy driver which supports:


  • nvidia-glx-177 (177.13): Geforce 6xxx, 7xxx, 8xxx, 9xxx, GeForce GTX 260, GeForce GTX 280

  • nvidia-glx-173 (173.14.09): Geforce 5xxx, 6xxx, 7xxx, 8xxx, 9xxx
  • nvidia-glx-96 (96.43.05): Geforce 2, 3, 4xxx, 5xxx
  • nvidia-glx-71 (71.86.04): RIVA TNT/2, Vanta/Vanta LT, GeForce 256, GeForce DDR, GeForce2, Quadro2 Pro

There was no clear (and flexible) way to tell the system which driver should replace, say, nvidia-glx-new, therefore Bryce Harrington, Martin Pitt and I worked on a plan for dist-upgrades. I developed Nvidia-common (a Python application) which performs hardware detection (based on lspci and the modalias files of the drivers) and returns the right driver for the card(s). The returned driver can be either a driver which supports all the cards (if more than one card is plugged in) of a system or, if such driver is not available, the newest (compatible) driver.

Thanks to Michael Vogt, Update Manager uses Nvidia-common in order to make dist-upgrades a lot smoother. If users dist-upgrade to Intrepid from the command line, they will see a Debconf warning from Nvidia-common which will tell them to install a specific version of the NVIDIA driver (I implemented Martin Pitt's idea).

6) X/OptionsEditor

At the UDS in Prague I was assigned this blueprint, whose mentor is Bryce Harrington and whose approver is Colin Watson.

For this blueprint I developed the following components of the X-Kit project:

For further details on X-Kit you can have a look at this blog post.

My Suggestions to improve Ubuntu

I have proposed the following spec for Edgy Eft: On Launchpad:

A detailed explanation on the Wiki:

I have also asked the opinion of the members of

NOTE: my suggestion was implemented as Bullet-proof X by Bryce Harrington

Plans & Goals

I'm currently applying to become a Ubuntu Core Developer. You can find my application at CodySomerville/CoreDeveloperApplication.