AlbertoMilone

Differences between revisions 2 and 3
Revision 2 as of 2009-09-03 13:19:13
Size: 9958
Editor: host141-199-dynamic
Comment:
Revision 3 as of 2009-09-03 15:15:25
Size: 10700
Editor: host141-199-dynamic
Comment:
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:

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 drivers.
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.
Line 25: Line 24:
I am a [ http://www.ubuntuforums.org/member.php?u=19388 Moderator ] on the Ubuntu Forums (ubuntuforums.org). 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. I am a [[http://www.ubuntuforums.org/member.php?u=19388|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.
Line 27: Line 26:
A partial list of the guides (now mostly obsolete) that I wrote can be found here:
http://www.albertomilone.com/guides.html
A partial list of the guides (now mostly obsolete) that I wrote can be found [[http://www.albertomilone.com/guides.html|here]].
Line 40: Line 39:
=== Team Membership ===

You can view the teams that I'm a member of at https://launchpad.net/~albertomilone/+participation
Line 44: Line 47:
Abiword: [[http://bugzilla.abisource.com/show_bug.cgi?id=11789|abisource #11789]]  * Abiword: [[http://bugzilla.abisource.com/show_bug.cgi?id=11789|abisource #11789]]
Line 46: Line 49:
Gnome Power Manager: [[http://bugzilla.gnome.org/show_bug.cgi?id=568162|gnome #568162]]  * Gnome Power Manager: [[http://bugzilla.gnome.org/show_bug.cgi?id=568162|gnome #568162]]
Line 48: Line 51:
Gnome Settings Daemon: [[http://bugzilla.gnome.org/show_bug.cgi?id=568160|gnome #568160]]  * Gnome Settings Daemon: [[http://bugzilla.gnome.org/show_bug.cgi?id=568160|gnome #568160]]
Line 50: Line 53:
X.org Synaptics driver [[http://bugs.freedesktop.org/show_bug.cgi?id=21613|freedesktop #21613]]  * X.org Synaptics driver [[http://bugs.freedesktop.org/show_bug.cgi?id=21613|freedesktop #21613]]
Line 52: Line 55:
=== Contributions to Ubuntu === === Contributions to Ubuntu packages ===
Line 54: Line 57:
'''Development and/or maintenance of and/or code contributions to the following packages'''
 * bcmwl - author - its logic for DKMS was [[http://linux.dell.com/git/?p=dkms.git;a=commit;h=549815ba42b08911d110b3c9aa7c7296d5ace42e|adopted by DKMS upstream]] in a template.
Line 55: Line 60:
== My Projects ==  * screen-resolution-extra - author
Line 57: Line 62:
'''''1) Envy/EnvyNG'''''  * python-xkit - author
Line 59: Line 64:
"Envy" is an application for Ubuntu Linux and Debian written in Python and PyGTK which will:  * 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: [[http://bazaar.launchpad.net/~kubuntu-members/kdebase-workspace/ubuntu/annotate/3.1.1?file_id=kubuntu_55_add_dontz-20090108132319-vrhy3tnzkm6v0iq1-1|patch to use DontZap]].

 * gnome-control-center: [[http://bazaar.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu/annotate/head%3A/debian/patches/109_screen_resolution_extra.patch|109_screen_resolution_extra.patch]], [[http://bazaar.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu/annotate/head%3A/debian/patches/110_screen_resolution_package.patch|110_screen_resolution_package.patch]]

 * gnome-desktop: [[http://bazaar.launchpad.net/~ubuntu-desktop/gnome-desktop/ubuntu/annotate/head:/debian/patches/100_load_desired_settings.patch|100_load_desired_settings.patch]]

 * xserver-xorg-input-synaptics: I'm the author of most of the patches in the synaptics package.

==== Personal Projects ====

'''Envy/EnvyNG'''

[[https://launchpad.net/projects/envy|Envy]] is an application for Ubuntu Linux and Debian written in Python and PyGTK which will:
Line 67: Line 94:
Thanks to the cooperation with [[https://launchpad.net/~ben-collins|Ben Collins]], [[https://launchpad.net/~bryceharrington|Bryce Harrington]], [[https://launchpad.net/~dholbach|Daniel Holbach]] and [[https://launchpad.net/~mvo|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 [ http://albertomilone.com/wordpress blog ] and on my [ http://www.albertomilone.com/nvidia_scripts1.html website ]. Thanks to the cooperation with [[https://launchpad.net/~ben-collins|Ben Collins]], [[https://launchpad.net/~bryceharrington|Bryce Harrington]], [[https://launchpad.net/~dholbach|Daniel Holbach]] and [[https://launchpad.net/~mvo|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 [[http://albertomilone.com/wordpress|blog]] and on my [[http://www.albertomilone.com/nvidia_scripts1.html|website]].
Line 69: Line 96:
You can find it on launchpad:
https://launchpad.net/projects/envy
'''URandR - [now deprecated]'''
Line 72: Line 98:
'''''2) URandR''''' [[http://www.albertomilone.com/urandr.html|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.
Line 74: Line 100:
[ http://www.albertomilone.com/urandr.html 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]'''
Line 76: Line 102:
'''''3) Evolbck''''' [[http://www.albertomilone.com/evolbck.html|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.
Line 78: Line 104:
[ http://www.albertomilone.com/evolbck.html 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]'''
Line 80: Line 106:
'''''4) Maintenance of the NVIDIA driver since Ubuntu Intrepid Ibex 8.10''''' [[https://launchpad.net/dontzap|DontZap]] is an application written in Python which relies on X-Kit and allows users to set the "DontZap" option in xorg.conf.
Line 82: Line 108:
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. '''Nvidia-common'''
Line 84: Line 110:
[[https://edge.launchpad.net//~pitti|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. 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.
Line 86: Line 112:
'''''5) Nvidia-common''''' Thanks to [[https://launchpad.net/~mvo|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 [[https://edge.launchpad.net//~pitti|Martin Pitt]]'s idea).
Line 88: Line 114:
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-common is also used in [[https://launchpad.net/jockey|Jockey]] to decide which version of the NVIDIA driver users should install.
Line 90: Line 116:
HARDY:
 * 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:
   RIVA TNT/2, Vanta/Vanta LT, GeForce 256, GeForce DDR, GeForce2, Quadro2
   Pro

INTREPID:
 * 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 [[https://launchpad.net/~bryceharrington|Bryce Harrington]], [[https://edge.launchpad.net//~pitti|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 [[https://launchpad.net/~mvo|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'''''
'''X/OptionsEditor'''
Line 113: Line 120:
For this blueprint I developed the following components of the X-Kit project: For this blueprint I developed the following components of the [[https://launchpad.net/xorgparser|'''X-Kit project''']]:
Line 120: Line 127:
X-Kit is also used in [[https://launchpad.net/jockey|Jockey]], EnvyNG and is a few OEM projects at Canonical.
Line 122: Line 131:
= My Suggestions to improve Ubuntu = '''X-Bus'''
Line 124: Line 133:
I have proposed the following spec for Edgy Eft: [[https://launchpad.net/x-bus|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:
Line 131: Line 147:
I have also asked the opinion of the members of Ubuntuforums.org:
http://www.ubuntuforums.org/showthread.php?t=201128
Line 138: Line 151:
I'm currently applying to become a Ubuntu Core Developer. You can find my application at [[/CoreDeveloperApplication|AlbertoMilone/CoreDeveloperApplication]]. I'm currently applying to become a Ubuntu Core Developer. You can find my application at [[/CoreDeveloperApplication|CodySomerville/CoreDeveloperApplication]].


== Credits ==

Credit for the template of this page goes to CodySomerville
  • 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

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 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.

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 X.org is what I like most.

My Contributions

Team Membership

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:

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:

Personal Projects

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.

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]

DontZap is an application written in Python which relies on X-Kit and allows users to set the "DontZap" option in xorg.conf.

Nvidia-common

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.

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''':

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

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 CodySomerville/CoreDeveloperApplication.

Credits

Credit for the template of this page goes to CodySomerville

AlbertoMilone (last edited 2009-09-25 23:19:05 by cust)