EnvyNG – The End of the Artwork Contest

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

I graduated again

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 πŸ˜›

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

Updates on URandR

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.

ATI Catalyst driver 8.3 in Envy Legacy and EnvyNG

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

EnvyNG is now available (Only for Hardy Heron)

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)

A new Envy Legacy and the death of Envy New…

If you use an operating system other than Ubuntu Hardy you will now have to use Envy Legacy. Envy New is dead and will be soon replaced by EnvyNG.

Release highlights of Envy Legacy:

* Fixed: Envy tried to install dkms on Debian.
* Fixed: the GUI didn't show the missing dependencies which can't be installed.
* Added: Nvidia drivers 96.43.05, 71.86.04
* Added: AMD Catalyst driver 8.02

Enjoy

EDIT: there was a problem with the ATI driver which I have just solved. Please download Envy Legacy again

EDIT 2: I have updated the NVIDIA driver to version 169.12

More on the Artwork Contest

First of all I would like to thank you all for participating in the contest. I apologise if I didn’t reply to all your emails but I’m receiving so many emails that it’s hard to keep pace with your emails. I’m so busy doing the uploads of your work, coding EnvyNG and living my life (but only in my spare time)… anyway I just wanted to let you know that you ROCK and that I do appreciate all the effort you’re putting into your works.

I have set up a new gallery with all your logos (with thumbnails) so that I don’t have to edit html code every time I receive a new logo. I will only have to upload the new logos and the php scripts which I’m using (LGR Photo) will update the gallery for me.

NOTE: unfortunately the script supports only .jpg.For this reason I had to convert all your works to jpgs therefore the quality of the images in the gallery may be poorer than the one of the originals (which I will use for EnvyNG). If you know a php script with supports pngs and svgs, and which creates albums from folder structure, please let me know.

I would like to make it clear that there’s no rush to create and send me your works since EnvyNG 1.1.x is still under heavy development. EnvyNG 1.0.x won’t include the new GUI and hasn’t been released yet.

Here’s something I managed to do yesterday (despite the fact that I hadn’t slept at all the night before):
EnvyNG Error Dialog QT4

The error dialog (of the QT4 interface) shows what prevented the installation process to end successfully in EnvyNG. You will be able to copy and paste the content of the text browser in dialog (hopefully) without having to send me the full log.

QT4 is great πŸ™‚

Of course I’ll do something similar in GTK as well.

Artwork Contest for EnvyNG

The reactions to the screenshots of the prototypes of EnvyNG 1.1.x were positive however some users (see the comments to my previous posts and this blog post ) led me into thinking that it’s time for me to change EnvyNG’s icon and logo.

I won’t draw a new icon and logo myself though. I wouldn’t define myself as skilled with the GIMP or Inkscape therefore I need your help:

  • If you are a designer (or you can use either the GIMP, Inkscape, etc.) you can send me an icon and logo (you can find my email address on my website) which reflect your idea of what EnvyNG should look like.
  • If you’re not a designer you can post a comment the artwork you think it’s more appropriate.

Requirements for the icons and logos:

  1. They cannot contain trademarked components (e.g. ATI or NVIDIA’s logos).
  2. Their license has to be GPL 2.
  3. The preferred size of the logo is (more or less) 550×133 pixels.
  4. The preferred file formats are “png” or (even better) “svg”.
  5. It would be better if the colours reproduce the look and feel of the old Envy, however you’re free to surprise me in this respect.

For further details you can have a look at the Frequently Asked Questions.

Two Italian users have already sent me their logos. Of course your (polite) feedback on this blog is more than welcome.

Follow this link to participate.

EDIT: the new galley is here

A few updates – Part 2

Features in EnvyNG 1.1.x

  • A new interface in GTK.

      Its code will be cleaner (more readable and sensible). I will use SimpleGladeApp as glatzor (Sebastian Heinlein) suggested a long time ago.
      It won’t waste as much screen space as it used to do (see the screenshot below) as using Envy in 640X480 is not an easy task. It will use tabs and a treeview.
  • A new interface in QT4
      EnvyNG will have an alternative interface written in PyQT4 so that it has a native look on KDE4 and that it doesn’t require GTK dependencies, VTE, etc. It will also use Adept instead of Synaptic.
  • An improved Logger
      The logger of EnvyNG will be improved so that it will be easier for you (and for me) to see what goes wrong in the installation process.
      In GTK I use VTE to show the output of the subprocess which performs the installation, uninstallation, etc. and there’s still room for improvement.
      In QT4 I use a KProcess and insert the output into a QTextEdit widget. I rely only on QT4 (no VTE is required).

  • Save the packages built by EnvyNG to your hard disk
      You will be able to either build, install and save the packages to your hard disk or just build and save without any need to install such packages. For example you might build the packages on a computer which is faster or which has access to a broadband internet connection and install such packages on another computer which lacks these features (in this case you will have to configure your xorg.conf manually).
  • EnvyNG will be split into 3 packages
      envy-core – which contains the program and its textual interface and doesn’t depend on any GUI toolkit so that if, for example, you want to include EnvyNG in your customised distro but don’t have enough space for either the GTK or the QT4 libraries in your livecd, you can include just the textual installer.
      envy-gtk – the GTK interface
      envy-qt – the QT4 interface
      I will set up a PPA repository so that if you do a “sudo apt-get install envy-qt” (or -gtk), envy-core will be installed automatically as a dependency.

    The new GTK interface:

    New GTK interface

    The new QT4 interface:

    QT4 interface

    P.S. In case you’re wondering, I will update the good old Envy soon.