Fedora 8 in less than 9 days…

We all like to have a little grumble about our favourite distribution from time to time. As it happens, I don’t have a favourite GNU/Linux distribution (they all have good and bad points), but with apparently less than 9 days to go until Fedora 8 is released, I really hope they fix the bugs I’ve been having.

Although I use other distributions on my personal computer, I have always kept my work laptop on the latest stable release of Fedora. Mainly because they have historically patched GNOME much less than other distributors and are fairly good at keeping up with the most recent GNOME (and possibly because that is what Mallum originally installed when I joined – apparently we needed to try building Poky on something other than Debian/Ubuntu!).

A week or so ago, I “upgraded” to the development version of Fedora to see if the new version of NetworkManager would help alleviate some of my problems. Unfortunately things haven’t gone quite so smoothly. Here’s a list of things I’ve noticed:

The Good

  • Suspend and hibernate on my T43 are now working again. They both mysteriously stopped working after an update to Fedora 7.
  • There is a great looking new GDM screen
  • The new default web browser home page is a huge improvement. It’s now actually useful!

The Bad

  • Power Manager now brightens my display when idle, despite the fact I have explicitly told it not to do anything when the computer is idle. I wish Power Manager would not touch my brightness settings at all, since it doesn’t know anything about the ambient light. (Could be bug 483134)
  • NetworkManager now frequently crashes whenever I try to interact with it. It seems this has something to do with the Neo1973 acting as a usb network device. I see the following on the terminal:
    ** (nm-applet:8834): WARNING **: Error getting vendor info from HAL: No property info.vendor on device with id /org/freedesktop/Hal/devices/usb_device_1457_5122_noserial_if0
  • The package management application frequently refuses to help me, insisting that another application is using the package database even though there is no sign of one working.

The Ugly

  • Sorry about this one, but it’s possibly a little pet peeve. The new GTK+ theme in Fedora 8 is not to my liking at all. It is clearly unfinished (progress bars for example) and the gradients on the buttons look (to me) like blisters on human skin. Not only does it look bad, but I seriously doubt the code quality is as good as the engines in the gtk-engines module. There are a lot of very important things to consider when writing a GTK+ engine, as it will be running on every single GTK+ application. Just look at the number of bug reports and issues associated with Ubuntu’s “Ubuntulooks” engine as an example of what can go wrong (and the original Clearlooks had it’s fair share of very nasty bugs too). The engines in gtk-engines are rigorously tested and very well maintained, so I really don’t see any advantage in using yet another theme engine.

I know this last point will probably upset some people, but I really want to encourage distributions to work with upstream projects when working on themes and artwork. The look and feel of GNOME should not be the differentiating factor when choosing a distribution, so I would love to see more upstream efforts to help provide a better and more consistent visual identity for GNOME.

And please, if anyone can direct me to Fedora’s bug tacker, I would be very happy to file my issues there. Unfortunately, fedoraproject.org doesn’t seem to give me any clue on how I send my feedback to the developers. OK, I’ve found Fedora bugzilla now. Still, please let me know if any of the above problems have already been reported so I don’t end up adding duplicates.

Turning the Neo1973 into an (expensive) external GSM modem

Today I achieved a small milestone: I have managed to run and use gsmd reliably on a host computer.

This is really important because being able to use gsmd on the desktop dramatically reduces the development cycle of phone (gsm) based applications. Rather than having to code blind, cross compile, install onto the target device and then test and debug on the target, you can now do the entire cycle on the desktop.

I first tried the gsm passthrough features in u-boot, which effectively turns the u-boot terminal into the gsm terminal. Unfortunately there appear to be bugs somewhere in this process and it would not work reliably. However, with a bit of thought, this functionality is just as easy in user space.

Here are the instructions:

  1. Maks sure gsmd is not running on the phone: killall gsmd
  2. Run netcat on the phone to export the modem serial port: nc -l -p 5000 < /dev/ttySAC0 > /dev/ttySAC0
  3. Compile pty.c and run on the host with: ./pty 192.168.0.202 5000
  4. run gsmd on the host with (replacing 0 if necessary): ./gsmd -p /dev/pts/0
  5. run openmoko-dialer or any other application which interacts with gsmd

If gsmd from OpenMoko SVN doesn’t appear to work correctly, try Andrew’s git repository: http://folks.o-hand.com/andrew/gsmd.git/

(Update: if you’re wondering why I didn’t use a “proper” application to export the serial port, it is because nc is built into busybox. I did originally use ser2net to export the serial port, but using nc means no cross compiling or extra set up on the phone is needed to get this working.)

New Stuff in OpenMoko (with screenshots)

On the OpenMoko front, I have mainly been doing boring things such as bug fixing the Dialer, Address Book, themes, icons and related framework libraries. On the other hand, Chris has been doing exciting work with cairo, clocks and world maps. Apart from looking cool, these components will be forming the basis of the world clock and stop watch applications, as well as the alarm functions, including alerts from the calendar. Oddly enough, this is one of the most important features for some people. I asked someone what they used their phone for and they reply was “Calling people, sending text messages and waking me up in the morning”. As it happens, I think those are also the functions I use most often on my phone too. I’ve also heard that teenagers are replacing their watch with the mobile phone as a way of telling the time…

screenshot-today-analog-clock.pngscreenshot-world-map.png

One interesting thing I have done recently was to port the original application manager to the new 2007.2 framework. This means you will be able to upgrade and install packages straight from a GUI interface.

screenshot-appmanager-update.pngscreenshot-appmanager-details.png

I also added colour scheme support to the moko-gtk-engine, so it is possible to change the orange to a different colour if you are using this. I also wrote a little application called openmoko-appearance that can be used to set a new colour through a GUI. I’m hoping it will also be a good example application for people getting started in GTK+/OpenMoko programming. Chris has also already added support for changing the background of the home screen to openmoko-appearance too. Openmoko-appearance isn’t quite finished yet, but you should be able to get the general idea…

screenshot-openmoko-appearance-colours.pngscreenshot-openmoko-appearance-background.png

As you can see, the titlebar is not yet updated and the icons look rather out of place. We are going to look at recolouring the icons on the fly, but we need to work round a few issues first, and performance will be a factor.

The Parsing

I’ve been a bit quiet on the theme editing front lately, but I have been making progress. I realised that at some point people are actually going to want to edit existing pixmap themes, so rather than making bold decisions to make creating and editing easier I have decided to concentrate on making something that will be immediately useful. So I sat down and ripped off most of the theme parsing code from the pixbuf engine. I also rearranged the internal data storage of the theme editor to use the same structures as the pixbuf engine. The result is that I can now load and display all the information from an existing theme. There are still a few odd quirks, but when it works it does work…

screenshot-gpte-2.png

I have even added recent files support with a little guidance from Emmanuele (I got tired of navigating to ~/.themes/foo/gtk+-2.0…). Next thing on my to do list is to clean up the source file structure, autotool it and then have a go at creating my own Subversion repository on svn.gnome.org. Of course, that is also dependant on finally picking a name for the project. I liked “Artisan” from the previous suggestions, but I am not sure it has quite the right feel to it. Following the discussion I had about micro branding with Emmanuele, Chris and Rob at work, I now feel obliged to call it something like “ThemeKit” or simply “Theme Editor”, but that may be a little too generic. Seeing how I just announced a proposal for OpenMoko and named it PhoneKit, I could also be accused of being rather unoriginal in my naming.

Two Neo1973s calling each other

Met Will Lai from OpenMoko on Sunday at mobileCampLondon. Gsmd has become much more reliable recently, so we attempted to get two Neo1973s to call each other. Will filmed our experiment for posterity!

If you’re wondering, the Neo1973 on the left is running my new (as yet incomplete) gtk-engine, which is why it has white dialer buttons.

Also met some people developing applications for OpenMoko for the first time. Will filmed a demonstration by John Moore of his thumbtribes project. It would be great to hear about more people developing applications for OpenMoko.

Also found out that the UK was the second highest country for sales of the Neo1973. OpenedHand have several debugging boards, so if you accidentally brick your Neo1973, drop me an e-mail and we can arrange to fix it for you. If anyone is interested, we could even organise a user group for Neo1973 owners in London (and maybe the UK).