I got arround to updating my fitness app.
Here's the current version: link
It is still written in Ruby. It uses Sinatra and a simple pstore as persistence layer.
I thought about using redis as the backend like I do for my new blogging engine (sneak peak), but it seemed too much of an overkill for a low traffic personal running log :)

I'll release the new code publicly soon as soon as I refactored it a bit :)

I recently bought a Smart Q7 Tablet.
It features a 7 inch touchscreen, a proper USB Port (host mode!), WLAN, a headphone jack (+ a speaker) and an SD card reader.
Hardware wise, it is driven by a 667 MHz ARM CPU, 128 MB of RAM and 1 GB of internal flash.
The operating system it features out of the box is Ubuntu Linux. There is also the possibility to run Windows CE (you've got to buy a license for about 15 Euros) and there are even (so far) unstable ports of android available.
The great thing about this toy is, that it's only 210 USD. I bought mine from mp4nation

Here's a picture:

For some strange reason, I decided to flash a version of Android for the Smart Q5. I thought giving it a try can't hurt and I might be able to see at least some sort of kernel errors.
I thought that, as with my G1, the flashing process would only involve the system partition and not touch the bootloader (and therefor the recovery mode) what so ever.
Sadly, the flash process just immediately quit with 3 chinese symbols and an exclamation mark. The onbly possibility I saw was simply to push the reset (aka reboot) button and see if the old OS would come up again.
Strangely enough the device didn't completely reboot, but got stuck into a strange mode where the LED on the left only was shimmering slightly greenish and I wasn't able to get into any other mode any more. Pushing the reset button didn't do anything, neither did plugging in the charger.
Long story short, thanks to the friendly people (especially Stskeeps) on the #mer channel on Freenode IRC, I got my device running again.
The thing is that the SmartQ series is almost unbrickable. Even with the internal flash in total disarray, it will look for a bootable SD card right after boot (or in my case: upon push of a button).
To create a bootable SD card, you can either:

  • Use the SDCard Tool (forum post | direct link (used it in virtualbox)

  • Try your luck with extracting the u-boot.bin and the qi.nb0 from the official images and flashing it with the script found here . The extraction process is done with the Smart Q Firmware Extractor which runs fine on mono in linux.

After copying the official image (the file called "SmartQ7"; from the official homepage) on that SD Card, you are good to go.
Using this card, the smart q will respond to pressing the upper right button after plugging in the carger when reset is pressed.

I just realized that my mediaplayer, the Poppstar MS30 is running Linux and has an open Telnet connection :)

Here is some data:


$ uname -a
Linux Venus #1 Wed Apr 22 10:33:31 CST 2009 mips unknown


$ df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 203.8M 76.9M 126.9M 38% /
/dev/mtdblock/2 16.0M 1.3M 14.7M 8% /usr/local/etc
/dev/rd/0 40.0k 40.0k 0 100% /mnt/rd


$ cat /proc/cpuinfo
system type : Realtek Venus
processor : 0
cpu model : MIPS 24K V7.8
BogoMIPS : 269.51
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes
ASEs implemented : mips16
VCED exceptions : not available
VCEI exceptions : not available


  1. cat /proc/meminfo
    MemTotal: 121864 kB
    MemFree: 32420 kB

And there is much more :)

This one is in German as the content of the podcast I’m talking about is in German :)
Es gibt selten einen Podcast auf den ich mich so freue wie Chaosradio Express (auch als CRE bekannt). Natürlich gilt das für das Gesamte Pritlove-versum an Content welches durchgängig Qualitativ hochwertig und extrem unterhaltsam ist, aber CRE kann man in diesem Umfeld wohl die Siegerrolle zuweisen.

Es gibt selten einen Podcast der mich mein komplettes Informatikstudium durch verfolgt, kein Thema welches nicht auf eine unterhaltsame Art und Weise abgehandelt wurde.
Aktuell arbeite ich an einem kleinen Paper über Key-Value Stores und CRE125 Über "Couch DB\" hilft mir da extrem weiter.
Das schöne an CRE ist die vielfalt der Themengebiete. Während andere Podcasts meist in ihrer eigenen Niesche sitzen übernimmt CRE quasi die Rolle der allwissenden Müllhade in Audioform. Kein Thema, wenn auch noch so komplex das nicht behandelt wird. Hier mal einige Folgen, wild in den Raum geworfen:

Es sind jedoch nicht nur strikt teschnische Themen wie folgende Episoden verdeutlichen:

Jede dieser Folgen ist von einer Leichtigkeit der Konversation gekennzeichnet bei der man sich vorstellen könnte, dass einem so ein Gespräch in der Kneipe über den Weg läuft und vermittelt mehr Wissen und "aha\" Momente als die Meisten Uni-Vorlesungen.

Zusammenfassend kann ich nur sagen: anhören und lernen!

p.s. Das ganze ist Teil der Kettenbloggen für den Weltfrieden Aktion und soll dazu dienen meine Semesterferien mit Wissen zu füllen :)

<— blogpost #40 | Blogpost #42 —>

Urban Dictionary is a great page and I thought I'd simply push another blog post out there with some phrases I particularily like:

Man Cave:
A room, space, corner or area of a dwelling that is specifically
reserved for a male person to be in a solitary condition, away from the
rest of the household in order to work, play, involve himself in certain
hobbies, activities without interuption. This area is usually decorated
by the male that uses it without interferance from any female influence.

Bachelor wash:
A quick soap-free rinse of a plate, cup, or utensil which had recently
been used. This is most useful for low-oil, water based, or dry foods.
Wiping with a paper towel will usually remove residual food particles
missed by the bachelor wash.

To use Facebook as a platform to brag. Normally about a job, internship,
trip, purchase or anything else that nobody really needs to know but
you'd like to tell everyone because you're awesome.

running latte:
showing up late to work because you stopped for coffee along the way.

mow the laundry:
Doing a load of laundry after allowing clothes to pile up on your
bedroom floor for weeks.

brown chicken, brown cow:
An onomatopaeic imitation of the guitar riff commonly heard in 1970's
porn movies.
Jim: "Hey, where are Abby and Jake?";
Tom: "Brown chicken, brown cow.";

I recently bought an arduino starterkit from bausteln.de.

While I do not really know what I'll do with the hardware next, I decided to give it a short go using a simple hello-world kind of thing.
I attached a piezo speaker (part of the set) to one of the outputs capable of pulse-width modulation (red wire) and to ground (black wire).
By using the code provided in the learning section of arduino.cc, I was able to get some beeping going:

Simply dial #96*7* on an attached phone. My "Fritz!Fon" actually displayed "telnetd enabled";

$ telnet fritz.box
Connected to fritz.box.
Escape character is '^]'.
Fritz!Box web password: 

BusyBox v1.8.2 (2009-03-27 11:37:25 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.


After you enabled telnet, just log in, go to the /var/flash folder and open the ar7.cfg file:

cd /var/flash
nvi ar7.cfg

You're now in vi editing your settings file. To enable OpenDNS, just earch for the "overwrite_dns"; parameters and change them accordingly:

overwrite_dns1 =;
overwrite_dns2 =; 

after that, save (:wq!) and reboot the box