I’m a satisfied owner of a Nexus One (loving Android Froyo 2.2) and today I decided to try a (volume based) 3G plan by CoopVoce.

There are 2 options available: either buy a 3G usb key or simply use 3G directly from your phone. In the former case (which I wasn’t interested in) the usb key works with Linux and you can even download a QT based dashboard which is supposed to set up the connection for you and it works on Ubuntu, Fedora, etc. While this definitely was a pleasant surprise, the lack of instructions to configure your phone wasn’t as pleasant. The website suggests to contact customer service so that they can provide you with the right configuration for your phone (but it seems that they’re not ready for Android phones). Long story short, I decided to download the dashboard instead and explore its contents hoping to find something useful to set up the APN myself. My research was successful and I thought I would share my findings with you.

Enter the “Settings” tool, then select “Wireless & network settings” -> “Mobile networks” -> “Access Point Names” and add a new profile with “New APN”.

Fill in the fields below as follows:

Name: CoopVoce
APN: web.coopvoce.it
MCC: 222 (set by default)
MNC: 01 (set by default)
Authentication type: PAP
APN type: default,supl

Note: I’m not really sure if MCC and MNC are actually useful.

Leave the rest unset. Save and select your new profile, then go back to the Mobile networks settings screen and select “Data enabled” to turn on your 3G connection.

Since this is mostly aimed at people who live in Italy, here’s the Italian translation:

Per configurare una connessione 3G con CoopVoce (web 500 mega nel mio caso) su di un telefonino con Android, entrare nel pannello delle impostazioni e scegliere la schermata di configurazione delle reti (“Wireless e reti”), poi quella per le “Reti mobili” e in seguito quella dei punti d’accesso (“Nomi punti di accesso”). Aggiungere un nuovo APN e riempire i campi come segue:

Nome: CoopVoce
APN: web.coopvoce.it
MCC: 222 (impostato di default)
MNC: 01 (impostato di default)
Tipo di Autenticazione: PAP
Tipo APN: default,supl

Nota: non sono sicuro dell’utilità di MCC e MNC.

Lasciare il resto non settato. Salvare e selezionare il nuovo profilo e infine tornare alla schermata di impostazione delle reti mobili e attivare la connessione 3G abilitando il traffico dati (opzione “Dati attivati”).

Posted by Alberto Milone | September 3, 2010 8:47 pm
Filed under: Daily routine, GNU/Linux, Planet, QT, Ubuntu
Comments (2) |


What is X-Bus?

It’s a personal project I’ve been working on (among other things) since I joined Canonical. It’s a daemon which handles input devices through the XInput protocol. In the future I hope to add support for outputs too.

What’s the purpose of X-Bus?

Its main purpose is to provide developers with a common (and simplified) way to access XInput from languages which have DBus bindings (Python, Ruby, C, C++, Java, Perl, etc.). It is not specific to any desktop environment, even though it uses C++ and QT4 (see below).

Wouldn’t it be nice if we could have KDE, Gnome, Xfce, etc. applications which make use of the same backend with different frontends (as opposed to having different backends and frontends)?

Current features:

  • Exposes XInput (listing/setting properties, catching signals, etc.) through Dbus with a simplified API.
  • Stores the (per-user) current inputs configuration in an XML file and applies it at startup or when requested.
  • Emits signals (through Dbus) when new devices are plugged in or unplugged (so that, for example your client application can refresh its UI to reflect the new situation).
  • Tracks keyboard activity so as to disable your touchpad when you’re typing.

It’s an attempt to combine the features in syndaemon and xinput (the command line tool), from both of which X-Bus borrows code.

3 examples of what X-Bus can be used for:

  • User interfaces to configure touchpads (which is the 1st thing I would like to work on).
  • User interfaces to configure touchscreens whose drivers support XInput (I still need to expose the calibration functions provided by XInput though).
  • Automatic rotation of your touchpad (figuratively speaking) when your screen is rotated (after this is implemented).

Why QT?

Because of its DBus and XML modules and because it’s a pleasure to work with QT in general.

Example: if you add the Q_SCRIPTABLE macro to the function in the header file, this function will be made available in your DBus interface. This applies to signals too. This makes maintenance a lot easier.

In my opinion it would be overkill to use the DBus low-level API and I don’t think the glib (DBus) bindings can offer what I described in the example (feel free to prove me wrong on this). Furthermore I would have to use an external xml module to perform validation and the things that I currently do with the xml file.

Doesn’t it duplicate efforts? Why don’t you work on $INSERT_DAEMON_HERE instead?

Yes, it does (partially) but my point is: can we use $INSERT_DAEMON_HERE on KDE, Gnome, Xfce, etc. ?

Furthermore, if you have a look at X-Bus’ API you’ll see that (currently) there’s very little duplication.

Where’s the code?

Source code (have a look at the examples which are written in Python)
Packages

NOTE: this is just a first release and users won’t benefit from it without a user interface (unless they want to edit the xml file manually).

Posted by Alberto Milone | July 2, 2009 3:00 pm
Filed under: Planet, QT, Ubuntu
Comments (6) |


I’m working on EnvyNG every day. I’m fixing as many bugs as possible. Here’s a list of what’s changed in EnvyNG and Envy Legacy:

Improvements in EnvyNG-core:
* New connection detection method (based on Network Manager)
* Update compatibility list
* Update translations
* Use unicode (utf-8) for the translators' names
* Use an additional xorg.conf parser in order to set the default colour depth

EnvyNG checks the availability of an Internet Connection either by asking Network Manager (through dbus) or (if you don’t use network manager) by using only Python’s “urllib2″. This solves Bug 211620.

The latest update of EnvyNG-core includes an additional xorg.conf parser which should finally solve the problem with ATI cards which don’t have a “defaultdepth” option set in xorg.conf. This made the Xserver crash (at times?) since the fglrx driver assumed that the default colour depth was 8bit.

Improvements in EnvyNG-qt:
* The links in the about dialog can be selected with the mouse cursor
* Fix complete dialog showed up when restart dialog should have
* About dialog can expand now
* Fix if both EnvyNG-qt and -gtk are installed, -qt should be the one which is launched on KDE

Improvements in EnvyNG-gtk:
* GTK filechooser points to /home by default

Bugfixes in Envy Legacy:
* Fix Bug #210392 in classes
* Catch exception in classes.restorenvfolder()
* Add "n/a" to dkms blacklist so the unofficially dkms is not installed
on Debian Lenny (Lenny is still unsupported)

Should you find other bugs, please report them to me.

Posted by Alberto Milone | April 9, 2008 3:15 pm
Filed under: Envy, GNU/Linux, Planet, Python, QT, Ubuntu
Comments (73) |


I’ve set up a new PPA repository for Hardy containing EnvyNG 1.1.0. The repository includes a new version of the three packages with a few bugfixes.

Add this line to your /etc/apt/sources.list so as to be sure to get always the latest release of EnvyNG :
deb http://ppa.launchpad.net/envyng-hardy/ubuntu hardy main

Update your list of packages:
sudo apt-get update

and then, for the textual installer, type:
sudo apt-get install envyng-core

or for the GTK GUI:
sudo apt-get install envyng-gtk

or for the QT4 GUI::
sudo apt-get install envyng-qt

I have followed your suggestions and I’ve fixed a few inconsistencies in the QT4 interface, therefore I need you help again with the translations for just 1 word (”Cancel”). I’ve tried to use what Rosetta suggested as alternative translations from other packages (i.e. firefox 3) therefore some translations will look like they are complete but please check that everything’s ok even in such case.

Thanks again.

P.S. please keep reporting bugs so that I can fix them ASAP.

EDIT: I had posted the wrong repository. Sorry for the inconvenience.

Posted by Alberto Milone | April 2, 2008 5:38 pm
Filed under: Envy, GNU/Linux, Planet, Python, QT, Ubuntu
Comments (35) |


Here is a new release of EnvyNG (which supports only Ubuntu Hardy). EnvyNG 1.1.0 is made up of 3 packages:

  • envyng-core (which contains the main program + the textual interface)
  • envyng-gtk (which contains the new GTK interface for GNOME, XFCE, etc. users)
  • envyng-qt (which contains the new QT4 interface for KDE users)

Brief Explanation
If you install only envyng-core you will have only the textual interface which (currently) has less features than the 2 GUIs.

If you want to install either envyng-gtk or envyng-qt you will have to install envyng-core first.

New Features
The 2 GUIs now enable you to:

1) Install and save the packages with the driver to a folder
2) simply download the packages without installing anything (this will be useful if you want to install such packages on a computer which is not connected to the Internet)

EnvyNG relies upon my PPA repository (the packages are no longer built locally), therefore every time a new driver is released I will only have to update my repository and you won’t have to install a new release of EnvyNG. You will receive the update via update manager. The packages use DKMS (i.e. you won’t have to reinstall the driver for each kernel you have since this is done automatically), do not conflict with Ubuntu’s linux-restricted-modules, do not cause problems during dist-upgrades since they can be overwritten by Ubuntu’s official packages (if they provide a driver which is newer than the ones in my repository or if the kernel is upgraded, say, from 2.6.24 to 2.6.25, ABI bumps won’t do anything).

Translations
There was a problem with Launchpad therefore I wasn’t able to upload all your translations in time (but I promise I will ASAP). Thanks again for your translations.

Instructions
Please read point A of the FAQ before you install EnvyNG (so that the old EnvyNG doesn’t conflict with version 1.1.0)

Testers
Please test the packages and let me know if there are problems.

Credits
As I said in the past, I would have never done all this alone. I would like to thank all the Ubuntu developers who helped me, all the artists who participated in the artwork contest, and the translators. And special thanks to Carlos Perelló Marín who helped me with Rosetta.

Posted by Alberto Milone | April 1, 2008 5:01 pm
Filed under: Envy, GNU/Linux, Planet, Python, QT, Ubuntu
Comments (50) |


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


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.

Posted by Alberto Milone | February 24, 2008 1:25 pm
Filed under: Debian, Envy, GNU/Linux, Planet, Python, QT, Ubuntu
Comments (1) |


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

Posted by Alberto Milone | February 22, 2008 1:08 pm
Filed under: Debian, Envy, GNU/Linux, Planet, QT, Ubuntu
Comments (25) |


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.

  • Posted by Alberto Milone | February 20, 2008 3:42 pm
    Filed under: Debian, Envy, GNU/Linux, Planet, Python, QT, Ubuntu, Uncategorized
    Comments (9) |


    I have finished writing my thesis (in Latex) and I’ll graduate in March. In the meantime I’m studying PyQT4 and working on Envy.

    I haven’t updated Envy yet as I’ve been working on EnvyNG (”NG” stands for “Next Generation”) i.e. the latest evolution of Envy. EnvyNG will support only Ubuntu Hardy (8.04) or higher while Envy Legacy will still support Ubuntu’s previous releases and Debian (stable).

    The release of EnvyNG which you will see in time for Hardy is 1.0.x. Consider it a transitional release since many new features will be available only in version 1.1.x. Here is a (partial) list of the features in EnvyNG 1.0.x

  • Improved integration with Ubuntu.
      I have worked with a group of Ubuntu developers (to which I’ll give credit when EnvyNG is officially released) in order to prevent Envy from causing troubles when if a user doesn’t do a “envy –uninstall-all” before a dist-upgrade (e.g. from Gutsy to Hardy). Ubuntu’s l-r-m (linux-restricted-modules) and the packages generated by EnvyNG will be able to overwrite each other in a sensible way so that, for example, if Ubuntu’s l-r-m provide the latest NVIDIA driver before EnvyNG does, the former will be perfectly capable of overwriting the packages generated by the latter without causing any problem to the user. Furthermore, thanks to DKMS and also thanks to a patch I wrote for the l-r-m (already applied in Hardy), there will be no need to blacklist Ubuntu’s drivers (in /etc/default/linux-restricted-modules-common). If the packages generated by EnvyNG are installed, they will be automatically loaded at boot.
  • DKMS will automatically build and install the module for your kernel at boot
      In Envy a user had to reinstall the driver every time the kernel was updated. This is no longer the case as DKMS will automatically build and install the module for your kernel at boot (if necessary), provided that your kernel headers are installed.
  • EnvyNG no longer asks you whether you would like to have your xorg.conf configured.

      It does it automatically (during both the installation and the uninstallation processes)
  • The NVIDIA driver *should* work with both realtime kernels (tested) and xen-kernels (untested).

      The same can’t be said about the fglrx driver but I guess this can be fixed later
  • I’ll reveal other details on version 1.0.x soon

    In the meantime you might want to have a look at the list of features in version 1.1.x.

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