Monday, November 29, 2010

Out of this world - Wonders of the Solar System

This weekend we visited the "Out of this world - Wonders of the Solar System" exhibition in the Gasometer Oberhausen
The Gasometer itself is a great location which is worth being visited by its own. It's the European largest Gas-holder and provides from it's top  a great view on the Ruhrgebiet area. The Gasometer itself is used as a exhibition place which host changing exhibitions. Currently - only until end of December - you can learn something about our Solar System. A lot of big format pictures of different aspects of the solar system alongside with 3D figures of planets give you anther view on the area we all are grown up ;-). 


Above are some impression of the 3D Objects which are distributed over the exhibition. First one being the sun and on the second one you can spot the Earth in the background. Unfortunately the last one - one the right - fails miserably to  depict the fascination which originates from the large moon which seems to cover the whole hall but actually is hanging rather low in the Gasometer.

Some more impression of the different pictures and technical tools are going below.











Make sure that you visit the exhibition - it's really fascinating and that not only for Geeks. Make sure that you bring warm cloth along though - it's not heated. 

Wednesday, November 24, 2010

Public Transport the only alternative?!

My work colleagues and Facebook friends got me to know as the guy who keeps complaining about public transport - even though I promised to the later to stop that. It's just a matter of fact that I have quite some time to do Facebook status updates and such while public transport is not going well - and honestly I have the strong opinion that this happens way to much. My non-German colleagues keep insisting that I should have no reason to complain about public transport in Germany at all as it is way worse in other countries. I don't think that this is a valid argument as on the one hand nothing gets better only because something is worse and also I don't really think that they have a statistical relevant amount of experience to judge on German public transport - especially in the local traffic. ICE trains are pretty good - I need to admit.But let's keep all this away for the moment.

Today I decided to go by car and that is really wasting valuable life time. A lot of small traffic jams all over the place - although everything went reasonable smooth. But still - this time was really wasted. For sure, I could have listen to my favorite music, audio book, you name it, but that actually does not really work if you have so much commuting time. At a certain point of time your favorite music just works at the time you want it not at the time you could enjoy it. Everything beyond listening to something is way out of my reach - being a male I can not really do anything in parallel to the main task being executed. What about the main task? Yep right: Driving a Car. The Prototype of Individualism in our modern civilization. You can decide where to go, which way you take and at which speed you are traveling - Total Bullshit! In first approximation - and I think that is quite valid in this case - it is just about maintaining the minimal distance to the car driving - or rather waiting - in front of you. Pretty stupid but kind of takes pretty much all of your attention.

Pretty much, but not all. So let have a look around. Wow - I couldn't remember a single car - at least of the private ones (which are 99%) - which was stuffed by more than on person. OK - can't be the case. So let's assume that only 10% of the cars are taking two persons and neglect the ones which are actually convey more than two persons. In an average car 4 persons would fit. So over all the efficiency factor is something like 30% (actually less) - insane.

So all together, I will stick to public  transport. Although it is pretty crowded in there I still think it would make perfectly sense to get more people on this - given that the infrastructure is improved. Would be a valid opportunity to make individual commuting more expensive and use the money to improve and extend public transport. As there are still areas and time frames where you simply can't rely on public transport like for me today. I have a business dinner tonight and can' go back home after 21:30 with public transport anymore. That's pretty crap - next time I will try to combine public transport and taxi though ...

Sunday, November 21, 2010

Dortmund Zoo

That was a lovely day in the Zoo of Dortmund. Not that brand new like the one in Gelsenkirchen and also not equipped with an outstanding attraction like the dolphins in Duisburg, it is still a beautiful zoo. Fantastic view on the giraffes. They gave their audience from the outdoor enclosure before they went to the rather new indoor part.

It looks like a reasonable amount of enclosures hat been renovated lately - not all of it has been finished. Looks somehow like a software project - more than 6 month late and still not finished...

All together a great day. The picture impressions are containing more fences and tiles than the ones from more modern zoos but we also got more eye-contact with the animals. 

So everything has pros and cons. Looking forward to visit Burgers Zoo again ...
BTW - don't go for Glühwein or wafers from the cabin shop at the entrance - poor quality. For the one's with kids: They do have a limited number of pull carts available. Free of charge - coins available at the entrance.

Friday, November 19, 2010

A Darwinian theory of beauty

Denis Dutton provides an interesting theory of beauty in this TED talk. He applies the Darwinian Theory on the concept and discusses cultural and natural influences on the perception of Beauty.


We find beauty in Something made well.
Hand axes as the first art works which help the artist's tribe to survive sexual selection.
Does it explain everything and is self-consistent - Not necessary. But anyway interesting approach and definitely well presented.
Check it out!

Sunday, November 14, 2010

Woihinkelche

Seems to be a typical German dish, but beware it is a quite local one - I didn't know about it the other day. Picking up a random German person in NRW to talk about is, will definitely lead to confusion. In my ears it sounds like somebody who is asking the way to somewhere.


In fact it is hessian dialect and it is one of the German Lego words. The first part "Woi" translates to "Wein" (wine) while the second one "Hinkelche" means "Hänchen" (henchmen).
We have been inspired by a recipe from "Culinaria - Deutsche Spezialitäten"- like always we didn't managed   - actually didn't want to -  follow the recipe one by one. The main ingredients are:
You can find many recites in the internet - e.g. this one. Especially the flambé part makes fun and gives the special taste. Awesome ! 

Friday, November 12, 2010

Android Market - Downloads stalling and market crashes constantly on cancel

I >hate< this situation now for quite a while already. A couple of application downloads keep in a stalled mode and actually never finished. New initiated download went fine though. Even resetting the Phone (in this case an HTC Desire) didn't help out. Quite Frustrating.
Now after some internet search I found a working solution for this problem. Steps:

  1. clear market cache: Settings > Applications > Manage Applications > All > Market > Clear Cache
  2. clear market data:  Settings > Applications > Manage Applications > All > Market > Clear Data
  3. force market close:  Settings > Applications > Manage Applications > All > Market > Force Stop
Just executing step 1 did not make the trick for me and obviously you don't need step 3 if your market application is not already running. This solved my issue - actually even without reseting the phone. I hope that I remember this one for next time ....
Source of this instruction is here.

Thursday, November 11, 2010

St Martin's fire



Pretty wet ...

Location : Frochtwinkel 11, 45966 Gladbeck,

Oberhausen HBF



In the rare case that the real trains are not running you can have fun with the toy ones...

Wednesday, November 10, 2010

Devil has arrived

Great -  The speaker set has been delivered yesterday. All looks pretty good - only the cable which I ordered from a different supplier is not yet arrived, but the cabling task is anyway something which needs to be done at the weekend.


Only the Sub woofer is really huge - did I mention that it is really huge?! . Still looks good but not the greatest WAF. Let's see how the discussion goes with home government for this one ;-)
Looking forward to listen to the set - not just watching it.

Thursday, November 4, 2010

In memories of the father of redpoint climbing

End of September 2010 Kurt Albert died while climbing a via feratta.
German TV BR broad-casted  a 30 minutes portrait of Kurt. I will be online for 7 days. Make sure that you check it out in time - Fascinating person who had a fabulous life style and sense of humor. For the non-native German speakers this one is a opportunity to practice German ;-)

"Vom Teufel geritten" - driven by the devil

My AV receiver in the living room is already quite some time bored - just one pair of stereo speaker attached to it - leaving 90% of the connection possibilities orphaned.
Now - just more or less finished the movement into the new Flat - Teufel dropped their prizes for some of 5.1 speaker sets. Perfect timing.
Looking forward  to get my set delivered soon-ish - together with 50 m of cable. That will be fun ...

Sunday, October 31, 2010

Oberhausen Miniaturwelt - Ruhrgebiet as a miniature

This exhibition shows off the "Ruhrgebiet" as  a miniature - in old traditional model railway scale. 




Clearly works best if you are either a model railway enthusiast or interested in the "Ruhrgebiet itself". Basically the current exhibition provides you a view on the post 2nd world war "Ruhrgebiet" - as coal mining and iron ore processing ruled the industry in the area. 

Therefore it provides you with a nice time-travel back to the good old times which have coined the "Ruhrgebiet" - this provided you with a good foundation to understand where the Ruhrgebiet comes from, what are the actual difficulties it is facing to process the structural changes which is required due to the death of coal mining in this area and finally to value the achievements which have been made on this long way already.


As you can see the exhibition really focus on details and it is good fun to try to spot all the details which are present - including the night / day changes.

Future extension will include of up-to-date model of some parts of the exhibition. This will really show the structure change. Check it out - it is great fun. Perfect for a rainy day. It's located in the Centro area - so you can combining it with some shopping, cinema or pub visits if you like. More information is available on their website.

Friday, October 1, 2010

Ubuntu Update mess up: udevadm trigger is not permitted while udev is unconfigured

My cooperate environment forces me to only run Ubuntu in a virtual machine. So basically all the "real" work is done in VM. So my problem is most likely not related to that fact directly, but I won't blame Ubuntu for this problem. The problem occurred with the first reboot after a system updates which involved a new kernel version. During booting up the system issues "udevadm trigger is not permitted while udev is unconfigured" message and brought me to a limited shell.
Most likely this has been caused by not finishing the kernel installation completely. Likely to happen if you run from meeting to meeting and you host system tends to crash from time to time (See update on this one below).
Anyway - like always, I asked Google and here we go. Steps to recover are:
  1. Grab some boot-able Linux iso and boot a Live System
  2. Mount relevant hard disk  partition read-writable
  3. Bind parts of the life file system to the new mounted hard disk partition
  4. Chang the file system root.
  5. Fix udev configuration for the new installed kernel.
Sounds easy and actually has been - once you figured out the necessary steps.


For Step 1 I decided to download a preview version of Ubuntu 10.10 - which looks great btw. Just boot it with the "try it" option and create a terminal window.


Step 2 is easy as well. Only two things to remember. You need to know which device (e.g. something like /dev/sda holds the relevant system folders and you need to make sure that you really mount the file system read-writeable - default is read-only. So issue something along the lines of "sudo mount -rw -v /dev/ /mnt" in the terminal.


Step 3 requires to bind  /dev, /proc and /sys from the life system into the just mounted hard disk partition. This can be done by:


sudo mount --bind /mnt/dev
sudo mount --bind /mnt/proc
sudo mount --bind /mnt/sys



Step 4 is an easy piece of cake. Just issue "sudo chroot /mnt" and its done.


Finally for step 5 you need to navigate to the folder which holds your installed kernels (usually /boot), figure out which kernel is the current one and issue

sudo update-initramfs -u -k   
command.

That did the trick for me. After rebooting the machine everything was fine again. I hope I remember my blog post next time this happen to me ;-). Input for the resolution is taken from here and here.





Update: And yes indeed - the update not properly finished. Next time I tried to start the packet manager, it forces me to run sudo dpkg --configure -a command and among others 

Setting up python-aptdaemon (0.11+bzr345-0ubuntu4.1) ...
Setting up sudo (1.7.2p1-1ubuntu5.2) ...
Setting up ubufox (0.9~rc2-0ubuntu2.1) ...
Processing triggers for menu ...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-24-generic



the update-initramfs has been triggered. Next time I will focus a little more on the running update to have it finishing properly :-)

Thursday, September 23, 2010

Installation of Diaspora - Open Source Social Network Implementation

There is a long list of pro and cons re social networks. Basically the whole thing is about sharing private information with other users and the owner of the social network to gain some insights and social relation to user users. Most of us don't go public with each single detail of their personal life and therefore want to control what they share with whom. This part - just follow the Facebook Privacy Discussions - is already a challenge in its own. Not all existing Social Networks are doing that fine in supporting the user to easy and reliable control what they share with other users. No matter how good the Privacy control is implemented in any Social Network, the owner or operator has access to all the data we share - unless we come up with some really fancy and impracticable security implementations. That's a point were the user's trust in the operator plays an important role.

The diaspora project tackles both dimensions of the problem by trying to provide a  superior Privacy Concept for the user to use aspect and being open and distributed to build the trust into the solution and "provider".

So let's give it a go and have a hands-on experience on this project.


The installation on a Ubuntu 10.04 system is pretty much straight forward. After cloning the git repository you find the installation script ubuntu-setup.bash which you can run on your machine. It makes sure that all dependencies like required build tools, gems, db, ... are properly installed on the system. I did run into some slight issues:


  • The sudo permission detection within the script did not work for me. So I just commented out this line form the script..
  • At the end of the script it tries to start  the server which failed with the following message: "http://github.com/BadMinus/devise.git (at master) is not checked out. Please run `bundle install` ". That one can be fixed by issuing a "sudo bundle install devise.git" like e.g. explained in http://www.jimmyhasablog.com/2010/09/17/geekspora-diaspora-install/ . Once this is done the server can be started with "bundle exec thin start" and is listening on port 3000. 
 I'm always surprised which kind of dependencies some of the Ruby based projects come - Would be fun to roll it out in our Cooperate production environment :-)

I will keep playing with it for a while and come back to you guys with my view on the current status of the project ...

Thursday, May 13, 2010

Picasa Face Recognition

Already some time ago Google released version 3.5 and 3.6 of their picture management software Picasa which provides a local face recognition feature which is detecting faces in pictures and does some grouping of similar faces which than can be connected to persons. This does not require to upload your images to any of their servers. As I'm much in favor on deciding where pictures which contain myself and my family are going and I assume that this holds true for most of my friends this seems to be a good solution to get finally some (more) structure in my photo collection. Unfortunately the official Linux version is still 3.0 and lacking this feature.

Long time I did not bother to give any later version a try on Linux but this weekend while I wanted to sort some holiday pictures -  I started Picasa while my wifi connection was down. Looking into the empty local folder which usually is mounted  with the pictures from the NAS Picasa decided to drop all it's knowledge about the pictures. One connection was up again it started scanning all over the pictures again - ARGHHH. That seemed to be a good point in time to change something in the setup.

Up to know I'm still not aware of a good alternative to Picasa which overcomes the major issue with Picasa - namely  not supporting multiuser/single repository setup and being a windows application. Suggestions are welcome. So I just gave the current Windows version - which is 3.6 - a try. As the official Linux version comes with an embedded wine, it should be possible to get the current windows version running under wine as well. And Bingo - both under Ubuntu 9,10 and 10.04 the standard wine package is good to run Picasa without any hassle. That was easy although some of the nice feature - namely geo-tagging is not working. I decided it to run Picasa now on the NAS itself (Atom 330 based) to circumvent the network /multi-user issues by just having a shared account on the machine. Performance of Picasa - which still tends to sleep now and then for a while - is comparable to the earlier setup. It seems that network latency and smaller computation power balance themselves.

It took roughly 2 days to scan our complete picture collection. Once in a while we dropped into the process and started to create persons and match face groups to persons. Went quite well. I must say that our picture collection for sure contains quite some challenges - like uncounted picture of the 4 first years of my Son's life. Surely a challenge. We ended up with having a lot of distinct face groups for the same persons, but this is manageable. The amount of false positives is quite low. In the end we still have more than 5000 faces which are not matched yet. Quite some work but most of them are faces of unknown people somewhere in the crowd. Really working nice. We also got some quite funny detections like recognizing the face of a Playmobil puppet as a face or detecting my son's face on a picture which only contains the Christmas tree in the living room - on the first glance but there is also a small picture of my son in the living room.

Once we have finished the job, I really want to work on extracting the information from the Picasa database/files and get them into the pictures itself to prevent vendor lock-in. There seems to be a tool for this purpose - AvPicFaceXmpTagger. Will give it a try once the face recognition process is finished.

There is no free lunch. Picture data becoming more and more structured is great if you want  to manage your stuff but you might still not want to provide all this structure once you upload the picture e.g. to a website. So there is still a task for removing the structured information again form the pictures.

Sunday, May 2, 2010

Dance on the Vulcano - Being off-line

Finally it was there - holidays. Being ready for some relaxing holidays for quite a while, we decided to book a package tour. Nothing to organize from our side - that was the idea. As destination we selected Lanzarote - one of the beautiful Canaries islands. We had a great time there - fantastic weather, great places to visit and a good hotel - and I took quite some notes and picture which I intend to share at a later point of time.

Have you spotted the issue on the picture above?! Me neither. I decided to be really off-line during the holidays. No Internet, no TV, no news papers and rarely radio news. Worked out quite well. In the beginning I felt some time a need to check my emails and social networking pages but this was going away fast and in the end I felt superior than the guys which spent a significant time in front of their facebook pages in the Internet kiosk of the hotel. Being off-line is really relaxing - a luxury these days!

On the other hand being off-line has also some disadvantage in out on-line world. We checked our flight back in the file folder of our travel agency at the hotel the night before we wanted to fly back. Everything fine. The other day as we checked out from the hotel - there was a surprise waiting for us. We should be really happy that we can leave suggested the woman at the reception. "No - we are not " I said as I really could have stayed a little bit longer on this beautiful island. Than we figured out what the whole on-line world did know already for 24 hours at least. All airports are closed, no flights, big chaos in Europe as Eyjafjallajökull - a vulcano in Iceland erupted. 


Nice surprise  - you could imagine worse situations than being forced to stay longer on holiday. True and we also had booked package tour - no worries the travel agency will manage it. So no worries? A few phone calls later - with the travel agency in Germany, the local travel guide and the airline - the situation changed a bit. Travel agency annulled he contract because of act of nature beyond control. They would still support us but there would be nothing they could do for us. As our flights are with Ryanair, this would be special anyway - just sit and wait. 

Nice advice - we would be still there if we would have followed this. In the end we prolonged our hotel, kept luggage there and drove to the airport to speak face two face to some people from the airline and this was the key to get home. In the queue in front of the desk we got first information. Airline offers to rebook the flights to later flights but direct flight back home would be only available in 10 days time. That will be a quite expensive holidays and will create some trouble at work I thought. In the end we got some flights via Madrid in 6 days time. After prolonging the hotel for the whole time, extending the rent of the car and passing the message to home and company we tried to enjoy the time as holidays as good as possible - but now on-line.


My take away from this. Organizing holidays on my own is definitely a proven alternative. Booking a packaged tour I would next time spent more effort to select a different agency. The one we selected - urlaubstours.de - was a completed fail in this situation. Looks like that low cost airlines does not fit well into the concept of packaged tours but they are still an alternative for self-organized travels. Let's see if and what cost we could claim back from airline or travel agency.

Saturday, May 1, 2010

PCTV Diversity Stick Solo running on linux

As I planned to extend our HTPC with DVB-T capabilities, I bought a PCTV Diversity Stick Solo. Couldn't find any evidence that this one is running on Linux but as it was really cheap, I thought it would be worth a try. It is a usb-stick which comes with two receivers. The stick itself is rather big and together with the two delivered antennas it is nothing I really would like to use in mobile use cases but our HTPC is not moving at all ;-).

Being a absolute newbie to the topic DVB-T on Linux, I was really surprised how it went on our Ubuntu 9.10 system. After connecting the stick to the HTPC dmesg | grep dvb shows right away that the stick has been recognized and everything seems to be green. After installing kaffeine media player - and it's dependencies as I didn't had much kde stuff on it before - and running a service scan it was there: our first DVB-T channel is presented on the screen. Easy piece of cake.
Kaffeine showed two DVB-T devices, so I think both receivers can be used under Linux, but i don't think that diversity modus is supported (using both receivers to result in one single improved input signal).

Next step is to get yaVDR running as I want the topic TV to be handled from within the XBMC software we are using anyway. Real benchmark would be time-shift recording of "Tatort" on Sunday - I can't think of the last time we managed to watch this ...

Tuesday, April 27, 2010

Personenschaden - Great problem management by DB/PEG

Honestly I'm still overwhelmed of what happened yesterday. Running a little bit late after having a beer after work with some colleagues, the train driver announcement: "Personenschaden (damage to persons) - the train will not proceed after the next station" seems to indicate another upcoming public transport disaster. From experience the track is usually closed for hours, no alternative is offered during the first 2 hours. Maybe if it takes even longer they get some buses to move the people.
Yesterday it went perfectly different. Right after I checked alternative routes on the VRR website and informed home government they I'll be _really_ late, they announced taxi transport between the directly affected stations. So, get a group of four passengers and jump into the next taxi - paid by the DB.
Great - got only 20 minutes delay. Happy to be surprised by problem management of DB more often in this positive manner in general - obviously I would be even more happy if we could arrive to a point where less people choose to use "Personenschaden" as final exit strategy.

Tuesday, April 6, 2010

Easter fire




Easter fire is a quite common tradition in Germany. Beside the religious meaning it is a nice opportunity to meet some - old - friend and the kids have fun anyway.





We had quite a good time - luckily the weather did not kill the whole thing. We got three times really light drizzle but never got really wet ...



Check out the background details on the easter fire tradition at wikipedia. We had "our" easter fire at Hof Holz. Hof Holz is a farm where disabled are integrated in work and life. The farm provides rich opportunities for visitors, e.g. playground and animals for the kids and great home-baked cakes and bread.

Wednesday, March 31, 2010

A nice day in the Zoo

We spent a nice afternoon in the Zoo Gelsenkirchen - Zoom Erlebniswelt. Due to the fact that there are currently school holidays we were far of from being the only visitors. Luckily the Zoo area is big enough so that this was never really disturbing. The Zoo provides three different theme parks: Alaska, Africa and Asia. As the latter is new and justed opened, we started with this one.

As you can see in the picture above the Asia theme park consists of a outdoor area - which was not populated with animals except few great apes with were fixing the last things within the area - and a big indoor area. The latter provides a jungle hall and a big indoor playground for the kids.

After having a rest at the central snack point we explored the Alaska theme. As a picture can say more than thousands words:


The Zoo is a modern zoo which provides the animals with a recent amount of space. You do not find any small cages build from iron bars but rather big areas which are bounded by nature emphasized borders, like rocks and water. Works nice - not only for the animals but also for the visitors as this gives a much more natural impression than in the old fashioned zoos. Glass windows in the different enclosure give you the opportunity of a 5 meter-distance eye in eye contact with e.g. a pole bear. Drawback of this is that the visitor needs to be more patient to really spot all of the animals as some of them use the available space to hide from the visitor. So take your time and bring you Zoom lens with you...

For the kids the zoo provides great opportunities not only to experience all the animals but also to refresh their capacity for animal experiences on the various playground. Even within the theme parks they find - nicely integrated in the theme - a couple of slides which keep the kids happy.

As we got a free visit as part of the Ruhrtop-Card it was more than OK just to spent half a day in the Zoo. Anyway if you aim to see all parts of the Zoo you should definitely spent a whole day in the Zoo. More than enough attractions to see and nice opportunities for a break. I think a nice alternative to the central snack area - which provides a huge playground for the kids - would be to aim for one of the snack points within the theme parks. Those are much smaller and provide some park theme related atmosphere and food.

We are looking forward to our next visit - even quite willing to spent some money for this.

Wednesday, March 10, 2010

Simon says done / Benchmark

... really easy puzzle. Spent more time on writing - a still really easy - test server than actually writing the client. Anyway the purpose is to get thrift running (and proof the connection/submission process towards Facebook) and that has been well achieved.

Beside playing a little bit more with the puzzles, I will know dig a little bit deeper into the thrift piece. For the time being I found a interesting benchmark of different object (de-)serialization solutions including Thrift, protobuf and many more. Interesting ...

Saturday, March 6, 2010

Getting in touch with Thrift - Get the turial example running

So - Thrift has been compiled - hopefully it does work (see earlier post). Before I jump to the "Simon says" Puzzle, I wanted first to check if my thrift build is working. Therefore I gave the example of the thrift tutorial a go. The tutorial is still in an early stage:

This tutorial is known to be woefully incomplete, and is a work in progress. This skeleton is illustrative of what is being worked on and will soon be available. [thrift webpage]


Sounds not that promising and indeed there have been some minor obstacles in my way. Prerequisits for the tutorial is the availability of
  • Simple Logging Facade for Java - SLF4J and
  • Log4j if you decide to use log4j behind the facade
jars in the classpath of the system. Instead of building from the provided build file, I decided to create a eclipse project. After setting the scenes, I still got some compile errors in JavaServer.java. Seven occasions like:

[javac] /home/stefan/thriftest/tutorial/java/src/JavaServer.java:57: an enum switch case label must be the unqualified name of an enumeration constant
[javac] case Operation.ADD:


which simply can be solved by replacing case Operation.ADD by case ADD. And two more problems:

[javac] /home/stefan/thriftest/tutorial/java/src/JavaServer.java:69: incompatible types
[javac] found : tutorial.Operation
[javac] required: int
[javac] io.what = work.op;
[javac] ^
[javac] /home/stefan/thriftest/tutorial/java/src/JavaServer.java:77: incompatible types
[javac] found : tutorial.Operation
[javac] required: int
[javac] io.what = work.op;

I omitted those by commenting those lines as they anyway don't add to the functionality of the server.

After this manual changes the tutorial seems to be running fine. Ready for Simon says puzzle.

Friday, March 5, 2010

Getting in touch with Thrift - Simon says

Selected Simon Says from the Facebook Puzzle selection as this one seems to be the easiest example which involves the usage of Thrift. Thrift is right now a apache incubation project and is a framework for x-language service development. It has been initially developed by Facebook.

Let's see how to get Thrift working on my Ubuntu 9.10 system. First of all I downloaded the current snapshot from the Facebook Developer Pages ( in my case thrift-20090330.tar.gz). After unpacking a run of the ./configure script unveils a unsatisfied dependency on boost libraries. Synaptic comes with a couple of boost packages. I gave it a try with libboost-dev package (incl dependencies). With that the configure script was happy but the make command produces this nice error:

make[3]: Betrete Verzeichnis '/home/stefan/thrift-instant-r760184/compiler/cpp'
g++ -DHAVE_CONFIG_H -I. -I../.. -Wall -I./src -I/usr/include -g -O2 -MT thrift-thriftl.o -MD -MP -MF .deps/thrift-thriftl.Tpo -c -o thrift-thriftl.o `test -f 'thriftl.cc' || echo './'`thriftl.cc
In file included from ./src/parse/t_const.h:10,
from ./src/main.h:11,
from thriftl.ll:20:
./src/parse/t_type.h:88: error: ISO C++ forbids declaration of ‘uint8_t’ with no type
./src/parse/t_type.h:88: error: expected ‘;’ before ‘*’ token
./src/parse/t_type.h:92: error: expected ‘;’ before ‘std’
./src/parse/t_type.h:110: error: ‘uint8_t’ has not been declared
./src/parse/t_type.h:149: error: ‘uint8_t’ does not name a type
./src/parse/t_type.h: In member function ‘virtual void t_type::generate_fingerprint()’:
./src/parse/t_type.h:76: error: ‘fingerprint_’ was not declared in this scope
./src/parse/t_type.h: In member function ‘bool t_type::has_fingerprint() const’:
./src/parse/t_type.h:81: error: ‘fingerprint_’ was not declared in this scope
./src/parse/t_type.h: In member function ‘std::string t_type::get_ascii_fingerprint() const’:
./src/parse/t_type.h:94: error: expected initializer before ‘*’ token
./src/parse/t_type.h:96: error: ‘fp’ was not declared in this scope
./src/parse/t_type.h: In constructor ‘t_type::t_type()’:
./src/parse/t_type.h:123: error: ‘fingerprint_’ was not declared in this scope
./src/parse/t_type.h: In constructor ‘t_type::t_type(t_program*)’:
./src/parse/t_type.h:129: error: ‘fingerprint_’ was not declared in this scope
./src/parse/t_type.h: In constructor ‘t_type::t_type(t_program*, std::string)’:
./src/parse/t_type.h:136: error: ‘fingerprint_’ was not declared in this scope
./src/parse/t_type.h: In constructor ‘t_type::t_type(std::string)’:
./src/parse/t_type.h:143: error: ‘fingerprint_’ was not declared in this scope
thriftl.cc: In function ‘int yylex()’:
thriftl.cc:1449: warning: label ‘find_rule’ defined but not used
thriftl.cc: In function ‘int yy_get_next_buffer()’:
thriftl.cc:2389: warning: comparison between signed and unsigned integer expressions
thriftl.cc: At global scope:
thriftl.cc:2483: warning: ‘void yyunput(int, char*)’ defined but not used
thriftl.cc:3138: warning: ‘int yy_flex_strlen(const char*)’ defined but not used
make[3]: *** [thrift-thriftl.o] Fehler 1

I played a little bit with different versions of flex, bison and such a like, but I couldn't get this one running. While I was browsing for help, I found this nice blog entry from Robert J Berger which talks you through the installation of Thrift on a Ubuntu system. However mine still does not work.

As a x-check I downloaded the 0.2 Thrift release from the project homepage and tried to compile this. And this worked without any visible errors (note that you need to execute ./bootstrap.sh before running ./configure. Next step will be to test this installation and than keep fingers crossed that this one works for the Facebook Puzzles as well.

Thursday, March 4, 2010

Facebook puzzles

Tonight I joined the community of people who are spending their time to solve Facebook Puzzles.

Those puzzles are programming exercises. Facebook provides couple of those puzzles in different difficulty levels. Each of them consists of a problem description, sample input and expected output data. Solution are excepted in a range of different programming languages like Java, C, C++, Ruby, Erlang (.. really long list ...). You submit your solution as an email which is processed by a bot which compiles and runs the submission against an input which is not known by us. Result of this run is provided as an email which provides a binary success / failure indication.

As far as I looked at those problems they are restricted variants of hard problems. Only the tiny restrictions make them solvable in polynomial time. So quite some thoughts on finding a proper algorithm is needed for this one which makes this stuff pretty interesting. Another dimension is that your solution will be run on large/difficult test data. Therefore you really need to spent some time to optimize your solution in runtime and space. That makes it even more interesting. The more advanced puzzle involve the usage of the Thrift framework and elements of distributed computing. Nice :-)

Facebook provides quite some ground for a vivid developer community around the puzzles. There is a fan page, quite some discussion threads and even stuff outside Facebook (like this FAQ) which deal with that topic. There is a Facebook application which allows you to share the glory of solved puzzles on your Facebook profile and there are public pages which show High-Scores like thriftpuzzle server. Everything set for a good competition ;-).

Facebook places the puzzle as a recruiting tool - showing guys which solved puzzles and have been hired. Definitely this is a good tool for a company to get smart developers into your orbit.

Some of my colleagues started solving those puzzles some time ago and I was trying to keep myself out of this one as this definitely would impact my family life. High risk of addiction ;-). Now it happened, but I try to keep my involvement low. Personally it is a nice opportunity to
  • solve some nice algorithmic challenges
  • learn/compare programming languages on valuable problems
  • get in touch with the Thrift framework - on my list anyway.
Why don't you try this as well?!

Tuesday, February 23, 2010

Problems updating GAE SDK 1.3.0 - 1.3.1


Since quite a while my Google App Engine Development server keeps complaining that there is a new SDK version out there which I should utilize. Nice hint but actually I'm wondering why I need to care about this one as I'm using the SDK within the Eclipse plug-in which seems to be configured to check for update. But neither the Plug-in nor the Eclipse update manager found the new SDK.
Only solution so far it to download the current version of the SDK from download page, unpack it at convenient place to live and add it to the App Engine Plug-in in Eclipse (Navigate to Window-Preferences-Google-App-Engine and add it there - make sure that it is marked as default SDK).




Seems to be working pretty well and I'm looking forward to try the new features like Query Cursors which are indicated to come as part of the new release (release notes). Will keep you posted on this.

Tuesday, February 16, 2010

First Geocaching experience

An old friend of mine got recently a GPS navigation device as a present for his birthday - such a tiny thing which you can carry while you are hiking or such. Comes along with some pretty usable hiking maps - really cool stuff.

Last time we met, he reported on his new hobby - geocaching. Pretty much the same thing like the "Schnitzeljagd" we are used to play a kids. Someone hides something which all the other try to find. Our days the location of the secret is posted on a dedicated website (see www.geocaching.com) and the whole community can try to find the secret. As a reward the happy finder of the secret get the honour of success by leaving a line in the logbook and reporting back the found in the community website. More detailed description can be found at wikipedia.

Sounds like a great opportunity to kill time and have a reason to explore areas you would never touch without a reason. As I'm not the proud owner of such a GPS navigation device - beside the car navigation which comes a little bit bulky. But in our days almost all the nice mobile phones come with a build-in GPS. I took my Vodafone H1 and pimped it with the vlkgps application. A little bit brittle and not that straight forward to use, but working. Might well be depending on the combinaten of the device and application.

All together it was great fun and we made a nice snow walk, but we think of improving the tooling. I'm thinking of getting a Android Phone anyway. This might be working better ....

Wednesday, February 10, 2010

Sharepoint Wiki to Media Wiki

Document format conversion is always a mess. Right now I'm looking into a Sharepoint Wiki ( bare with me but that's what it is called but It does actually not feel like a wiki - anyway) which needs to be migrated to MediaWiki (:-)).
Still struggling on how to do that. Open Office offers some export to MediaWiki functionality which might well be usable for the initial import. Only I'm missing the ability to export e.g. word-format from sharepoint wiki. Any hints?!

Thursday, February 4, 2010

Warning Strike - Opportunity for a refreshing walk

Hey this time something new. Instead of having delayed trains we do have a token strike which prevents me from doing the last 1/10 of the way via the tram. Nice opportunity for a refreshing walk in the drizzle. Good to get rid of the muscle ache from soccer last night and the same time I could socialize with a colleague of mine.
Should have taken a picture. Instead of cabs queuing in front of the main station, we had a queue of people which were desperately waiting for a taxi.

Tuesday, February 2, 2010

Hello World

That's the first blog post - hopefully just the first of a long chain of upcoming interesting stuff. Let's see how this is going. I expect myself to blog stuff around computer science, technology, traveling, sports and public transport system in Germany and random other fun stuff.

Friday, January 1, 2010

Hello Blogger World!

public class HelloWorld {
   public static void main(String[] args) {
      System.out.println("Hello Blogger World!");
   }
}