Baking Cakes

I’ve been doing web-development for quite a long time now. But honestly it was never nearly half as much fun as when I discovered CakePHP a year ago.

It took me not even six hours to write the Android ROMs section, a task I would have spend at least a week on before I knew CakePHP.

By the way, the fancy graph is done using the JavaScript InfoVis Toolkit (another great tool for web-developers).

Curing a Legend

Google’s Android platform is mostly great, but it does have a serious problem:

Manufacturers can’t keep their fingers off the interface.

This produces systems that do not even look like Android (and, as with Sony’s, annoy everyone), sometimes even worse than that.

Apart from awful Android skinning there is a new trend and light in the darkness for us purists: Android vanillaizing!

It’s software dermatologists devoting their precious nights and sleep to finding the cure to Android acne. In the case of the HTC Legend (comes with Sense) I was able to compile and tweak the Android Open Source project. Later I decided to start porting (and patching, where necessary) the famous CyanogenMod, which I’m using on my phone right now.

Beans, anyone?

Find first beta versions of my port called “Indigo Bean” and updates and bug reports on xda-developers.

Since we’ve got support by koush’ outstanding ROM-Manager the recommended method to install it (after rooting your phone) is getting this app via the Android market and downloading “Indigo Bean”. Just a few clicks (taps!) and you are set to enjoy.

Android, Signing and Proprietary Apps

Android phones are delivered with proprietary apps that greatly improve the user’s experience. Some might even say an Android device without Google apps is only half the fun.

For being accepted as valid packages, apps are signed. Moreover if an app wants special-1337-system privileges, it has to be signed with the platform key. This is to make sure apps behave correctly.

So if you come across a message that tells you the system just ignored a package (“Package xyz has no signatures that match those in shared user android.uid.system; ignoring!”), just resign it with your platform key. If you don’t have the platform key: Bad luck.

This is rather a note to myself (the sky just fell on my head):
Google apps that always need resigning are GoogleCheckin, GoogleSubscribedFeedsProvider and NetworkLocation.
Don’t ever dare to sign any other proprietary app, Google doesn’t like that and your Android system won’t allow you to use it.

Multiple Twitters

Ben Morrow contacted me some time ago asking me to look into some problems he had with my AJAXed Twitter plugin for WordPress.

AJAXed Twitter was never meant to be used with more than one account, so his request was not a bug, but a design flaw. Yesterday I took the chance and completely rewrote the plugin part, using WordPress’ great 2.8 API (piece of cake!).

Be sure to check it out.

Well, some sync today

After getting an Android phone and blogging about it’s lack of synchronisation options in Gnome I was finally able to make some progress.

The answer is GCALDaemon which can read Evolution’s .ics-files (even the locally cached ones from my university) and copy the events within to Google Calendar.

Combining it with my Notification Server you can use “bin/” in a script and even get a nice notification after running it (for example a few minutes after logging in).

Not the best solution (I’d rather skip one step and write directly to my Legend), but usable nevertheless.

Android – No sync today…

Yesterday I got my first phone with Android, the HTC Legend. While I really love it so far, there is one big issue, that turned out to be a complete mess in Linux: Syncing it with Evolution.

Apparently there are no solutions at all that allow you to conveniently plug in the phone and push calendar events, contacts or notes.

After following some traces here’s my disappointed summary:


Complete mess in Debian (maybe Ubuntu as well). After checking out all the repositories and building libopensync1 from svn still no clue how to use it with Evolution.


Android doesn’t understand it out of the box.
Funambol doesn’t sync anything besides contacts.
Synthesis costs money, but can be evaluated 30 days. Once I get a SyncML running here, I could give it a try.

HTC Sync

No idea which protocol it uses, but I can’t get SynCE for OpenSync (for blind trial and error) working here anyway. Some obscure python errors in OpenSync to blame.


Help, I need somebody, help…

Xorg and HAL (2)

As already mentioned in “Xorg and HAL” X-land is in state of “complete” redesign.

Today I read at Phoronix that Intel released their driver update 2.11.0. Curious as I tend to be I had to compile Xorg, Mesa and the driver once again to take a look at what’s going on myself.

Because support for setting properties via udev seems to have gone in favour of the shiny new “conf.d” features, my old post is definitely outdated.

Not that big of a deal though, to configure your touchpad/-stick you now have to create InputClass-Sections in *.conf-files in “/etc/X11/xorg.conf.d/” (99-trackstick.conf in this example).

Section "InputClass"
	Identifier			"dualpointstick"
	MatchProduct			"DualPoint Stick"

	Option "ButtonMapping"		"3 2 1 4 5"
	Option "EmulateWheel"		"true"
	Option "EmulateWheelButton"	"2"
	Option "EmulateWheelTimeout"	"400"
	Option "YAxisMapping"		"4 5"

By the way: Subsequent rules seem to be overwritten, so copying “/usr/lib/X11/xorg.conf.d/05-evdev.conf” makes sure “normal” input devices use the evdev driver.

Ah, in case you might have wondered: Yes, contrary to mice I use touchpads and tracksticks with my left hand. Which other OS would allow me to configure input devices like that?

A notification server in Python

I decided to learn Python two days ago. Partly because I wanted a quick solution to a problem (and writing C always takes me so long), but also because I’ve read a lot of positive comments about it.

The problem

What I wanted was to get rid of the old gnome-osd stuff and beautify the visual output of some shortcut-scripts I use (more about that later). I found out I needed a script that can display notifications (using Ubuntu’s notify-osd) and provide that functionality for other scripts with D-Bus. Continue reading A notification server in Python

AJAXed Twitter Plugin for WordPress

Ricardo González wrote a nice plugin for WordPress that displays the public timeline of a twitter account in your WordPress theme.

Though the plugin works I found two major problems:

  • Sometimes Twitter doesn’t provide the timeline at first request.
  • Embedding it in your theme significantly slows down loading of the blog.

I came up with a solution to both of them (featuring MooTools or jQuery support) using XMLHttpRequest.

Basically all it does is wait until the page is loaded and then request the tweets. If Twitter decides not to provide the timeline, the request is sent again until a configurable number of retries is reached.

There are two ways to use this plugin:

  1. Configure it manually (see how-to below)
  2. Use it as a widget (version two and above)

If you use it as widget, simply use the management functionality for widgets provided by WordPress. Otherwise (if your theme doesn’t support widgets for example) you can set also it up manually as I did on this blog (because I use MooTools here).
Continue reading AJAXed Twitter Plugin for WordPress

Your own 64-Bit-build of Firefox

With all that Firefox 3.6 news lately, you might have asked yourself where to get it for your 64 Bit system, because though the nightly builds also include x86_64 (to make sure developers don’t break anything), official releases – like latest 3.6 release – don’t.

Here’s what I do: Continue reading Your own 64-Bit-build of Firefox

Time-tracking Hamsters

I’m following the development of a great time-tracking software since mid 2008. Project Hamster, an applet for Gnome’s panel, has constantly evolved from a nice tool to something I could not do without any more.

It’s easy to use, fast and for someone like me (I always forget to write down start and stop times) it comes with a few handy reminding features.

The new interface they are planning for Gnome 2.30 is cleaner and better arranged than ever before, but I’ll let the screenshots (excuse the German labels) speak for themselves.

Xorg and HAL

A few things have been brewing in Linux-world concerning the replacement of HAL for some time now: Ubuntu’s Lucid Lynx (10.04) for example will ship without it.

Xorg 1.7.4 was uploaded to Debian/unstable three days ago and comes with udev support, which also means that support for configuration of input devices via HAL was dropped (at least for Linux).

So, in case you might wonder how to configure your input devices, here’s an example for my Synaptics touchpad. Similar to HAL, put your .fdi-files into “/etc/udev/rules.d/”.

ACTION!="add|change", GOTO="xorg_synaptics_end"
KERNEL!="event*", GOTO="xorg_synaptics_end"
ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="xorg_synaptics_end"



Although you can get rid of HAL completely, some (Gnome-) packages are still built with HAL support and dependencies. I for example had to rebuild gnome-power-manager and sound-juicer but after that I was able to disable HALs start-script. Another problem you might face is the dependency of bluez (the bluetooth implementation) on HAL.

If you’re interested: Xorg developer about udev-directions

Finally done

After intensive redesign of and the decision to drop dasSchandblatt (my old blog) in the near future, my new website goes on-line today. I still have to test and complete the layout for Internet Explorer though.

This blog will be about OpenSource, web-development and computer stuff mostly.

Have fun!

Update: IE8 was no problem at all, IE7 a little bit and, no, for a private “fun”-page I’ll never do IE6-support again. Even if it was easy. This website “needs” transparent .png-graphics because it’s much easier for me to use the alpha-channel instead of fixed graphics.

nothing to see here