Name : Alberto Milone
Status : Canonical Sustaining Engineer (system)
Project : Canonical OEM Custom Engineering Solutions Group
Location : Lecce, Italy
O/S : Ubuntu
Launchpad : https://launchpad.net/~albertomilone
IRC : tseliot @ irc.freenode.net, irc.gnome.net, irc.efnet.fr
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 X.org and (graphics and input) 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 ubuntuforums.org and therefore worked on the documentation on the UDSF.
I am a moderator on ubuntuforums.org. I used to be very involved in writing guides and providing support for the installation of graphics drivers and for the resolution of problems with the Xserver in general. Currently, however, I'm more interested in software development and bug fixing.
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.
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 X.org is what I like most.
You can view the teams that I'm a member of at https://launchpad.net/~albertomilone/+participation
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
X.org Synaptics driver freedesktop #21613
Contributions to Ubuntu packages
Development and/or maintenance of and/or code contributions to the following packages
bcmwl - author - its logic for DKMS was adopted by DKMS upstream in a template.
- screen-resolution-extra - author
- python-xkit - author
- nvidia-graphics-driver (since Ubuntu Intrepid Ibex 8.10): split the NVIDIA driver from the linux-restricted-modules,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.
- jockey - contributed code to use X-Kit, nvidia-common, rewrote the KDE4 UI, helped with the GNOME UI (bugs).
- envyng - author
Development and maintenance of patches for the following packages:
- nvidia-settings: 01_allow_dark_themes.dpatch
kdebase-workspace: patch to use DontZap.
- xserver-xorg-input-synaptics: I'm the author of most of the patches in the synaptics package.
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.
URandR - [now deprecated]
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.
Evolbck - [now deprecated]
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.
Dontzap - [now deprecated]
Nvidia-common is a Python application (with a debconf backend) which performs hardware detection (based on lspci and the modalias files of the drivers) and returns the right graphics driver for the card(s). The returned driver can be either a driver which supports all of the cards (if more than one card is plugged in) in 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 when . 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).
Nvidia-common is also used in Jockey to decide which version of the NVIDIA driver users should install.
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''':
Xorg Parser and writer - a Python parser/writer for the xorg.conf
Xorg Validator - a Python program which performs a sanity check on the xorg.conf
Xorg Options Data Store - a Python program which translates the man page of the xorg.conf into and XML file
A dialog to set the Virtual resolution in the Screen resolution panel - (phase 1 of the blueprint) Uses PolicyKit to write the settings to the xorg.conf.
X-Kit is also used in Jockey, EnvyNG and is a few OEM projects at Canonical.
For further details on X-Kit you can have a look at this blog post.
X-Bus is a daemon written in C++ and QT4 which provides a DBus interface to X.org's protocols (such as Xinput and RandR).
X-Bus is capable of changing touchpads settings and of applying saved settings at startup. It is being used to develop a UI for the touchpads configuration.
My Suggestions to improve Ubuntu
X server Failover I proposed the following spec for Edgy Eft: On Launchpad: https://launchpad.net/distros/ubuntu/+spec/xserver-failover
A detailed explanation on the Wiki: https://wiki.ubuntu.com/XserverFailover
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 AlbertoMilone/CoreDeveloperApplication.
Credit for the template of this page goes to CodySomerville