Aug 19

Programming open moko by Example

Category: Uncategorized

I’ts now been a while since I’ve finished my master thesis. Still I haven’t posted it here. It describes how you can access different mobile phone functions and shows working example applications. There we go: Master Thesis on Open Moko (german). I am currently updating the text so it can be published in some way. Any feedback is welcome.

No comments

Jan 11

New Year and 25C3 Podcast Feeds

Category: Informatics,Life

Happy New Year!

This Year I’ve had the pleasure to celebrate New Year in Rome. What a city, I was really impressed by the number of historic buildings squeezed into a city that you can cross by foot in less than an hour. I went there with Jan and we’ve met some nice people – I definitely have to visit Rome again during summer season.


Rom

All in all the trip was a great way to relax after 5 days of action and excitement at the 25c3. After I’ve missed some good lectures there, I decided to build a podcast from the available recordings. Somehow this year nobody managed to create one, so I went ahead and wrote a Python Script to parse through the files and mirror servers listed in the 25c3 Wiki, get available files, catch the meta information from the Schedule and finally output a valid iTunes compatible RSS Feed.

25c3 Podcast Logo

The Feeds are available via FeedBurner in H.264 at 720×576 px, iPod Compatible MPEG4 Video, MP3 Audio and OGG Vorbis Audio Format. Feedback regarding the Script is always welcome.

1 comment

Sep 2

Summer of 2008

Category: Informatics,Life

Hi there – long time no blogging. There is so much to tell; for now I’ll just put some things in here that are really important to me.

First of all I thank Lia for crafting the best bag I’ve ever had. The handmade Linatic II is a special Laptop-Version of Linatic, which she made for Lina (aka ettercat) earlier.


Linatic II Bag - ClosedLinatic II Bag - Open

As you can see in the second picture Linatic II is specially fitted for my Laptop, I don’t know how Lia did it, but it fits by the millimeter.

I’ve got my bag at ICMP4 in Münchsteinach, where we spend a wonderful weekend. I went to the place in the sun, with Peer from the oBiCo project who was talked into holding a presentation about the open Bicycle Computer and its progress. The talk inspired a stimulating discussion with lots of ideas and positive feedback. Peer brought a prototype and we’ve even had a chance to mount it to a recumbent bike which someone had used to ride to the small village in the southern German Steigerwald.


oBiCo Prototype on a recumbent bike

Only a few weeks later I’ve had a great time visiting my first FrOSCon. Again I could help the oBiCo Team to answer all those curious Open Source enthusiasts questions on the technical details and the practical relevance of an open Bicycle Computer (Thanks to Sascha who took some professional photos of the booth). Finally I’ve also had a chance to meet some friends from our time at Hochschule Aalen again. I especially liked Bernds talk on PostgreSQL Troubleshooting, which opened my eyes to the challenges of database administration – a topic I mostly managed to stay away from, until now. Good to know someone to call when one of my databases will ever be really big.


oBiCo booth at FrOSCon

That’s it for now. I still have a blog post about the master thesis work on the ToDo list, so stay tuned… ;-)

No comments

Jul 2

2-D Slider – GTK Widget

Today I build my first true GTK widget. Since written in Python, it’s not fitting in all GTK programs, but still I think some people might find it useful.

The Idea is to have a widget that can change two values at the same time. This comes in handy whenever a program has two numeric inputs that are manipulating one result. Users will not have to jump from one input element to another, but can use a diagram-like area to set values using an X and an Y axis.


Screenshot of the 2-D Slider

When the widget is created, the programmer can select which ranges X and Y shall be in. The 2-D area will then displays a grid to show where values will be placed. And while the mouse is hovering over the grid, a preview dot will mark the nearest available value pair. If a coordinate is selected (by pressing the mouse button, or dragging the mouse over the field) an event will be generated, to inform the rest of the program about new values (X, Y, or both).

The Python sources can be found at the SVN repository of the #neo1973-germany developers Homepage. The following code snippet shows how to use a slider_2d widget and how to connect two callback functions to the “value_changed” events.

import slider_2d
...
def x_changed_callback(new_x_value):
    value_x_label.set_text("Value X: %s" % new_x_value)
def y_changed_callback(new_y_value):
    value_y_label.set_text("Value Y: %s" % new_y_value)

value_x_label = gtk.Label("Value X: none")
value_y_label = gtk.Label("Value Y: none")
slider_2d = slider_2d.slider_2d(x_range = (0, 30), y_range = (0, 10))
slider_2d.connect('x_value_changed_event', x_changed_callback)
slider_2d.connect('y_value_changed_event', y_changed_callback)
...
No comments

Jun 3

Googles Android Online Services not open (yet)?

Category: Mobile,Opinion

After being told that Google understands the need for 3rd party access to Androids online services at Android Developer Session (Munich) in January 2008, I wonder about a statement in Ed Burnettes blog showing that Google is restricting access to the protocol API.

A Google employee I talked to felt the need to apologize for this. “We’re not holding it back for any nefarious purpose,” says Dick Wall on the Android team. “We’re simply not ready to publish the API that talks to the back end server.” This makes sense given Google’s extreme reluctance to be “stuck” with a poorly thought out API that they can’t support forever. This doesn’t preclude the company from opening up the source to those apps later.

In Munich we where told that Android developers would see a use case for 3rd party access, and start planning the interface for server-to-server XMPP. But after renaming and changing the XMPP services to “GTalk” it seems to me like Google does not plan to provide any open interface to their services.

Let’s hope it’s only a temporary thing until the API is stable…

No comments

Apr 27

LaTeX Language definition for Patch Files (generated by diff)

Category: Informatics

As there is no lstlisting class for patches in LaTeX today I’ve had the problem to define a working definition to highlight diff files. If anyone else is having that problem, here are those 11 Lines of Code.

\definecolor{darkgreen}{cmyk}{0.7, 0, 1, 0.5}

\lstdefinelanguage{diff}
{
    morekeywords={+, -},
    sensitive=false,
    morecomment=[l]{//},
    morecomment=[s]{/*}{*/},
    morecomment=[l][\color{darkgreen}]{+},
    morecomment=[l][\color{red}]{-},
    morestring=[b]",
}

After defining the diff format you can add the content by using the following code.

\lstset{language={diff}}
\begin{lstlisting}[captionpos=b, caption=text, label=src:patch]
- your content here -
\end{lstlisting}


Screenshot of the PDF file

3 comments

Mar 26

Getting a Huawei E800 UMTS Modem to work with Linux

Category: Informatics,Mobile

Today I finally managed to get the E800 ExpressCard provided by BASE working with Linux. I installed the latest Version (0.8) of Klaas van Gends umtsmon, and configured it to use 3G instead of GPRS. The problem that kept me from bringing the configuration to work until today was that two of the tree USB serial devices (/dev/ttyUSB0 and /dev/ttyUSB2) are only available for a couple of seconds.

UMTS Monitor with established connection

But now I figured out that those will stay available once you disable the usb-storage part of the card right after the card is initialized.

To provide Windows drivers on the fly, the E800 has a build in, read only USB stick like device, where the manual (PDF) and the setup program are stored. Once that device gets mounted, the card is not usable as a modem anymore.

While writing this blog post I just found out that the ExpressCard slot also provides a USB interface, which explains the device tree seen in the following picture. There you can see that the modem hardware is detected as a Huawei E220 and is not using the PCI Express Bus at all. It is rather using the same USB Controller as the Infrared Remote Port of my MacBook Pro.

UMTS Monitor with established connection

When thinking about this further, I figured it would be possible to build a ExpressCard to USB adapter – and after some googling I found one that is even said to work with the E800. Engagded also reviewed one of those devices some time ago. I wonder that some plastic and connections from pin 34, 36 and 38 to a USB cable are still worth more than $ 30.

The steps to bring an E800 to work in a current Ubuntu Laptop are the following (this will only work if you are not using a USB storage device at the same time).

  • Register the USB serial modul to handle the Huawei card
  • sudo modprobe usbserial vendor=0x12d1 product=0x1001

  • Append the above line to your /etc/rc.local (without “sudo”)
  • Plug in the device
  • Try running the following command every second until no error is returned
  • sudo chmod a+rw /dev/ttyUSB{0..2}; sudo rmmod usb-storage

  • Run umtsmon (try with sudo in case it gets stuck)
  • Configure your connection and press the connect button

As umtsmon is a QT program, I think this would be a nice project for pyGTK.

1 comment

Mar 16

Bluetooth PAN on Openmoko

Last night I could finally finish the 0.8 release of SettingsGUI. The touch based application for Openmoko does now feature a configuration interface for Bluetooth Personal Area Networks. After setting up such a Network (touching the “Connect” button on both ends) I could get two Neo1973 phones to communicate with each other.

SettingsGUI will use the last byte of the 6 bytes long Bluetooth Address as fourth number in its IP Address. That way most devices will reach each other without any further configuration.


The new Bluetooth Panel in SettingsGUI

Thanks to Professor Dr. Rüdiger Weis who privately financed the second Neo1973 as our university does not seem to be able to equip students with GSM capable hardware.

In the picture you can see the two Neo1973 (GTA01) with SettingsGUI running. Also I could successfully test a configure where the default gateway points to my Laptop, so that ip-forwarding would work. That way you can surf the Web using Bluetooth on Openmoko. Bluetooth 2.0 can reach a transfer speed of about 2 MBit/s which is about as fast as DSL, so it is fun to use.

Since last week SettingsGUI and the three other tools I wrote for Openmoko are part of the Moko Underground movement at neo1973-germany.de where they finally found a SVN home.

I would be happy about any kind of feedback regarding SettingsGUI.

2 comments

Mar 12

Southern Norway, Downtime and ToDo

Category: Life

Since Monday I’m back from a fishing trip to Southern Norway. A few days there can be so relaxing. The landscape in Norway is just stunning.

In the picture you can see the Lista Fjord on a foggy morning.

Foggy Fjord in the Morning

On arrival in Berlin I found my server being down for several days. As it turned out the housing provider somehow disconnected it from the Internet. An hour after calling them, it was reachable again and I found the machine running the way I left it. (no reboot at all…, I wonder how that could happen.)

After documenting some code for my Master Thesis during the Trip, I am now finally taking the time to finish SettingsGUI Verion 0.8, so stay tuned. ;-)

No comments

Jan 12

open Bicycle Computer

Category: Informatics,Life,Mobile

During the last week I had the privilege to help a good friend to build the project homepage for oBiCo. The open Bicycle Computer project aims to build nothing less then an open source autonomous embedded system for your bike.


The oBiCo Logo


Peer with whom I shared a flat while studying at Aalen University and his girlfriend Ramona are planing to release the open source project at LinuxTag 2008, May 28 – 31, here in Berlin.


oBiCo prototype running gravitational sensor testprogramPCB of oBiCo prototype


Have a look at the projects homepage – which is still being developed – and notice the features. Just imagine what can be done with a dynamo-charged open source media device during bike trips.

Also I find it really astonishing that Peer could develop the prototype from scratch (hardware and software) in just a couple of months during his spare time, while being really busy at his day job.

I was excited to do the artwork of oBiCo.de and to finally spend some time using Blender again, which really grew in the years.


oBiCo developer button


In this spirit – keep developing, see you at LinuxTag 2008.

No comments

Oct 16

OpenMoko

Category: Mobile,openmoko

As I’ll write my Master Thesis on OpenMoko, I bought a Neo1973 as soon as it was available in the OpenMoko Online Shop. OpenMoko is an open source distribution for mobile phones, and the Neo1973 the first publicly available Phone, using it.

After it arrived, I managed to write some software just to get used to the environment. I’ve chosen Python for the task, as I like the development speed you can achieve with it and the number of libraries it provides.

OpenMoko is based on OpenEmbedded (OE), and so I was happy it had the most important Python libraries in its recipe database. I could start using pyGTK, Distutils, Subprocess and urllib right away.

What would you code on a virgin Embedded System like the Neo? Well the first thing that came to my mind, after playing around with the functions that could be only accessed by the on screen terminal or an ssh connection, was a User Interface to provide these functions. That way, I would be able to set options on Audio, Video and GSM connection without having to use the onscreen keyboard. SettingsGUI was born.

SettingsGUI GSM Panel

It’s a great experience to work with the OpenMoko community. There is a Wiki to get in-depth information, and the guys at #openmoko (and #neo1973-germany) at the freenode.net IRC network are providing instantaneous help. I could commit patches and bugs into the Bugtracker, to get the existing source code adjusted to my needs, and Alessandro offered to package my programs for his repository. Thanks for that.

So, it is really fun to develop for OpenMoko. Currently I’ve also got an SMS tool and a note writing program in the works. Expect more blog posts on those and on an experimental RSS Feed Reader soon.

This all provides a great basis for the Master Thesis, and I am really looking forward to start writing in the next weeks (after my university approved). So stay tuned and don’t hesitate to send me any thoughts or ideas.

No comments

Aug 17

3D Spanning Tree Simulator

Category: Informatics

After the semester finished I finally found some time to publish the 3D STP Simulator that I’ve developed for my Diploma Thesis.

The Python application features a GTK GUI (wxPython) to build and control a custom network topology and a VPython frontend to visualize virtual switches and network cables in a 3D environment.

The program still is a proof of concept. If you intend to try it out, I’d be happy to get feedback and bug reports. Please make sure to use wxPython version 2.8 or higher as there is a problem with the spinbox callback of older implementations.

3D STP Network Simulator

If you are interested in Ethernet switching algorithms – especially in the industrial field – you can also take a look at the Diploma Thesis (German, PDF, 10 MByte) itself. Again I’d like to hear your feedback.

9 comments

Jul 14

New projects in queue

Category: Informatics,Life

In the recent weeks I have been quite busy. After finally finishing my degree at the TFH-Berlin I decided to continue studying to upgrade the Dipl.-Ing.(FH) to a Master Degree.

As for new Projects I’ve got plenty finished and nearly finished to document now. Most projects I choose for University courses like a little library for basic picture modification, a small Atmel program to pilot a C’t-Bot , a Search Engine Web-Bot , or an FPGA program to access a OLED-RGB-Display. At work I am now close to finish the Software of a PPC-based embedded industrial mini PC using Linux and CoDeSys . And in the time left I managed to build myself some tools like an RSS converter and a Character Display driver for the Etherrape project.

The most complex project from the recent months is the program I’ve developed in my diploma thesis. As there is already some documentation in the Thesis itself I plan to publish the PDF on my site. 

After rearanging my apartment last week I figure it’s also time to update the blog and the projects section of my homepage. At least after finishing the final tests of the current semester in two weeks you can read more about every single project on this page.

No comments

Jan 20

Microphones and the MacBook Pro

Category: Informatics,Life

Using iChat on a new MacBook Pro (a worthy replacement for my Pismo) to see some friends, we found out that the built in mic of the Laptop isn’t usable if you intent to move your mouth more then 10 cm away from the screen. So I remembered an old mono headset somewhere in the gizmo collection. I found it and found out – it wouldn’t work. After opening the mic cover and replacing it with one from a broken camera it was still not working – but as I was soldering it myself I thought that I may have destroyed it.

Today I bought myself a brand new headset attached it to the mic port and – guess what – found out it wouldn’t work. I tryed connecting the microphone directly to my stereo and it stayed quiet. Eventually I ended up opening the volume control of the headset and measured that everything was connected nicely (though stereo channel where interchanged). I could even measure a short-time connection between ground and signal of the microphone to disclose a condenser microphone there (what explains why it wouldn’t work with my stereo).

Now I got curious. Could it be that the MacBook Pro does not have a build in mic amp? And as it turned out the headset would work fine with the on board sound card of my workstation. After reading some forum posts and asking a friend I found out that there really is no such amp in newer Powerbooks. As Pismo had the option to  enable the amp even from Linux I didn’t even think of the possibility. 

Since I couldn’t return the headset to the store after opening it up I could ether buy a USB sound stick or try to get an external mic pre amp. Sven pointed me to a site (german) with an easy to build amplifier for condenser microphones and so I had to power up my soldering iron. 

Here are some pictures (Picture quality will get better again when I have a new camera ;-) ) of the working device. I used a 1.5 µF electrolytic capacitor as it was the nearest I found to 4.7 µF and it just worked fine.

backside of the mic amp

As you can see the circuit is not bigger then the connector itself.

upper side of the mic amp

The only parts needed apart from the jack and some wires are a  2.2 kOhm resistor an the above mentioned condenser. I am also using one AA battery whilch will hopefully hold quiet some time.

You could say the MacBook Pro was giving me some geeky fun time. I guess that was what Apples engineers had in mind when they decided to delegate the selcetion of a mic pre amp to the user.

1 comment

Aug 26

Using amaroK and an iPod Video (libgpod)

Category: Informatics

When I’ve had trubble using my iPod with amaroK for the second time, after a complete database reformat (using iTunes in Windows – to get a FAT filesystem) I had to fix things there. After copying files to the device amaroK seemed to be stuck so that it could not change the XML files on the iPod. It stucked again when I wanted to unmount the device. Having Ubuntu Edgy updating amaroK from 1.4.2-beta to 1.4.2 the issue wasn’t solved and I suspected libgpod to be the problem. 

So, as written on the amaroK homepage I downloaded the latest CVS version of libgpod . And had to rebuild it using autogen autoconf and make. To cut a long story short – I finlly ended up with:

ACLOCAL=/usr/bin/aclocal AUTOCONF=/usr/bin/autoconf AUTOMAKE=/usr/bin/automake LIBTOOL=/usr/bin/libtool INTLTOOL=/usr/bin/intltool GTKDOCIZE=/usr/bin/gtkdocize ./autogen.sh

After fixing some things in gnome-autogen.sh (like commenting out the section on $want_gtk_doc which seemed to exceed the limit of shift) and having to copy and link the lib manually into /usr/lib – after a test application did not compile. I finially finished the installation.

Resarting amaroK I got a working iPod update. Now I can even download Videos to the device (not m4v yet) so that I have no need to use iTunes anymore.

I like that Amarok is kind of grabbing libs from everywhere and does not even stop at using gnome libs. So maybe it will stay on my system for a while to be one of the only KDE programms in a GNOME environment.

No comments

Jun 19

Geeks learning the chinese language

Category: China,Life

As Poeloq points out in the Th!nkNerd Blog (german) to learn the chinese language seems to be more easy for geeks then some of our western languages. I think he has a good point and regret not to have lerned more about this language when I was there.

He also did mention Chinese Pod which is great for learning chinese while listening to the Podcast. For instance – as I do – in the Berlin subway.

3 comments

May 14

Chinese Computer Brand Naming

Category: China,Informatics

When thinking about chinese brands many western people do actually think about the brands they get to know from advertising campains for the western market. Interestingly some companies do have different names – with even different meaning – for the chinese market.

For example Lenovo is not a chinese name as you may think – it is a brand specially adapted to the western marked meaning "Le" from legend and "Novo" for new. As it was former known as the "Legend Group" (src: Wikipedia).

But as chinese friends pointed out the chinese word is Lián Xiǎng (联想) meaning "associate", or "joined thinking". It’s meaning is also not so far away from the actual chinese word for computer which is diàn nǎo (电脑) meaning "electronic brain". It is also worth mentioning how well the brand "Think Pad" fits into that idea… .

Chinese Advertisment Brand - from wikipedia

(picture from chinese Wikipedia

So it is most interesting how all chinese words can have a meaning to be used even for commercial names. And although the modern chinese see a big value in lerning and speaking english they still love they’re language to create new meaningful words for english vocabulary as you would not see it in Germany where we just take english word into every day language and even create english words for new inventions.

No comments

May 9

Moving mput from Paris to Berlin

Category: Informatics

Some of you may have realized a downtime of mput.de in the last days. This is due to a relocation of the server powering this side for the last years.

After a long and great time im Paris (exactly Aubervieller) I want to thank eliott-ness and Daniel for making that possible. Starting today mput.de will be located in Germany like you would suspect it from the TLD. The folks at Speedbone.de have a great service and it was quiet easy and uncomplicated to bring my server to the Alboinkontor in Berlin-Schöneberg. I also want to thank Manu for his superb hospitality and a nice evening with his friends in Paris. Thank you that I could join hours of dîner and enjoy french specialties and relaxed chats.

addition:
2005/05/14 – speedbone.de was down for 2 hours and after 2 h 25 min downtime mput.de was online again, and rebooted. – Reason: broken UPS + broken bypass. Speedbone assures that they have now replaced that UPS what should ensure that this is not going to happen again.

No comments

Apr 26

RS232 Signal Refresher

Category: Informatics

As it came up yesterday – I’ve lost the docmentation for my RS232 Signal refresher. Such a device is needed to refresh signals (from USB-converters or direct TTL implementations) to valid oldstile RS232 signals with 15 V and -15 V using a 9 battery – and yes it’s kind of magic… ;)

So searching for that pice of documentation I could just find some images of that project, that I now postet to flickr and can be found here.

RS232 signal converter

No comments

Apr 26

Lazy Blogger

Category: Life

Okay, so I found it out again – I’m such a lazy blogger. So to post something from time to time I’ll start blogging just to blog from here on… ;)

No comments

Next Page »