One day two releases

Mittwoch, der 11. November 2009, 22:19 Uhr von Ullrich

Finally we’ve got something to present in the app store. After doing several internal projects that were never supposed to be released to the public this tuesday two of our apps hit the store.

So I want to take the time to shortly link to them so you all can get them :)

The SoundCloud iPhone App plus the TravelIQ Hotel Search.

I promise I write more about both later when I got more time. :) Promised!

Geschrieben in: Privat | Tags: 
0 Trackbacks | 1 Kommentar »

Problems sending emails?

Freitag, der 23. Oktober 2009, 15:21 Uhr von Ullrich

Hello everybody,

My web space provider has issues with it’s mail delivery. So just as a quick hint, if you want to send me mails that get rejected with a Delivery Status Notification (Failure) please try my mail address

Thanks and apologies for the inconvenience. I’m doing my best to move to a new provider asap.

UPDATE: Provider change is done. Operations back to normal… (Thank goodness!)

Geschrieben in: Privat | Tags: 
0 Trackbacks | Keine Kommentare »

Documenting Cocoa code with Doxygen

Montag, der 6. Oktober 2008, 14:05 Uhr von Ullrich

As some of you might know, I have a strong Java background. Documenting my code just feels natural to me. That’s why I was wondering about how to document the code I write in XCode. I found a post on MacDevCenter which describes how to use Doxygen to generate Javadoc like documentations out of Objective-C code. Since this post is quite old (2004) and I want to draw some more attention on the possibilities of documentation in XCode, I’m going to refresh the steps necessary to setup Doxygen for XCode.

First of all you’ll need to get the OS X version of Doxygen from Doxygen comes in a dmg image. Just copy the Doxygen application into your Application folder.

Den Rest des Eintrags lesen »

Geschrieben in: Coding | Tags: Schlagwörter:
0 Trackbacks | 1 Kommentar »

Project Description

Freitag, der 5. September 2008, 12:35 Uhr von Ullrich

Today I’m going to talk about the what I’m going to build. Omg, sounding like a teacher already, but really I’m the student in this. So first let me explain my motivation..

I already own a monome 40h and i really like it, but I’m always jealous of those bigger machines out there ;) Especially when it comes down to the semi quaver…

Also I find it challenging to understand the insights of such a great little box and would be überproud to create one my own.

So what do I want to build?

Basically this is a list of attributes the final monome shall have (sorted by priority):

  • 128 buttons (I like the for factor and if I succeed I can build me just another 256 ;) ) …
  • … in one unit (no two 64s which are routed as one device. I want a true 128 in one piece)
  • USB + 9V power supply
  • Support for the series protocol
  • Based on the slightly larger button pads by SparkFun
  • Using the SparkFun PCBs for RGB LEDs, too.
  • Finally those RGB LEDs will also be included, to support RGB
  • RGB extension to the series protocol (hope there will be a quasi standard on this soon, more on this later..)

Also there are some constraints I imposed myself:

  • I don’t want to build it, using an Arduino…
  • … except for using it to try out hardware layouts and burn the micro controller
  • So I want to modify the original 40h firmware and burn it on an ATMega micro controller probably the ATMega32 (as i already got two of those)

I’m not sure yet how I’ll proceed with the illumination of the 128 RGB button, but I don’t want to use the SparkFun SPI RGB LED Matrix BackPack (long name, i know)… But this need a lot of further investigation, and I’m looking forward to it :)

So stay tuned :) as the next time I’m going to give a short summary about current running projects that try to build similar or comparable projects.

Geschrieben in: Monome, Privat | Tags: Schlagwörter: , , ,
0 Trackbacks | 1 Kommentar »

Chrome Chrome Chrome…

Donnerstag, der 4. September 2008, 23:21 Uhr von Ullrich

… Hallogen Hallogen Hallogen … Subwoofer Subwoofer Subwoofer …

So beschrieben Badesalz einst ein aufgepimptes (so sagt man dass doch heute) Auto.

Seit vorgestern steht Chrome allerdings für was ganz neues. Und zwar handelt es sich dabei um Googles neue Browser Alternative. Ich spreche ganz bewusst nicht vom “Angriff auf den Browsermarkt” oder von einem “weiteren Griff nach der Weltmacht”, wie man es heut viel zu oft liest.

Wer mehr zu dem Thema wissen will sollte sich folgende Beiträge zu Gemüte ziehen. Beide sehr empfehlensert:

  • Der Spreeblick Blog beschäftigt sich mit Sensationsmache rund um Googles Datensammlung und wünscht sich den multidimensional mündigen Bürger, der nicht nur auf seine Daten acht gibt, sonder sich auch nicht durch Stimmungsmache auf ein Feindbild einschwören lässt.
  • Und Gernot betrachtet Googles Schachzug einen eigenen Browser zu entwickeln nicht als Angriff auf Mozilla & Firefox, sondern auf das Konzept des Desktop PCs mit omnipotentem Betriebssystem.

Also wer schnell fundiert mitreden will, abseits von Stammtisch und Imbissbude, dem sind die obigen Links ans herzgelegt.

Unterdessen wart ich auf die Mac-Version, damit ich mich auch endlich selbst von Chromes Faszination fangen lassen kann :)

Geschrieben in: Netzleben | Tags: Schlagwörter:
0 Trackbacks | Keine Kommentare »

Just another Monolog

Mittwoch, der 3. September 2008, 20:57 Uhr von Ullrich

Finally i started a new category on my blog: Monome
Like the coding category this one will also be in English as it targets a quite international audience.

So first of all, welcome all you monome’ers around the globe. You’ll probably get the idea quite fast :)

But for all non monome-aware folks just a short introduction:
Monome (pronounce it as you like.. :) ) is, first of all, a box with an illuminated button grid. Typically 8×8.
It’s mostly used to “create music” but in fact is more versatile than that. Basically it sends information about button presses via USB to the computer which can send information about lighting up LEDs in return. All of this happens asynchron.

There’s lot of open source software that was created for the monome. A list can be found in the monome wiki.

The whole device is open source too, meaning the firmware is open sourced, the hardware layout is open source an we build a great community which is very enthusiastic about helping each other.

Since I got myself one of those precious (only 400 were made of the one i got) devices for last christmas (a monome 40h original with build in accelerometer, yay! :) ) I instantly fell in love with it. It also got me into physical engineering. And that’s what this is all about…

I’m going to build me a monome!

You got one already?!.. you might think. But that’s not the point. You can’t have enough of those boxes ;)
Further I’m aiming to gain experience with firmware coding, soldering, reading datasheets and everything around. And yes, I looove blinking lights!!!

So again, welcome all of you!!! :)

In the following days I’ll tell you more about what exactly I’m planing to build. This will be totally abnormal! Trust me :)

Geschrieben in: Monome, Privat | Tags: Schlagwörter: , , ,
0 Trackbacks | 1 Kommentar »

Wasting time with JAXB, ANT and APT

Donnerstag, der 3. Juli 2008, 17:56 Uhr von Ullrich


I just wasted 2 days finding a damn problem with the mentioned combination. What i tried to do ist: Using JAXB from within a APT AnnotationProcessor from within ANT.

Now to the problem:

From within my processor i could access the classes in the jaxb jar files (jaxb-api.jar and jaxb-impl.jar) but when i tried to unmarshal some XML file, i got a ClassNotFoundException. See

I tried thousands of things to fix this. Passing the classpath in multiple ways. Even passing a new bootstrap classpath, but non worked.

After lots of try and error, some conversations on #java@freenode ( and a look at the JAXB sources i found the solution in passing the classloader of the calling class when instantiating the context:

String contextPath = ObjectFactory.class.getPackage().getName();
JAXBContext c = JAXBContext.newInstance(contextPath, MyClass.class.getClassLoader());

Hope this could help someone and save some time :)

Geschrieben in: Coding | Tags: Schlagwörter: ,
0 Trackbacks | Keine Kommentare »

WD My Book World Edition auf Mac OS X (& Linux)

Freitag, der 20. Juni 2008, 11:06 Uhr von Ullrich

Hallo Freunde,

Hab mir meinen ersten Speicher in der TerraByte Region geholt, und hoffe wie immer, dass er nie voll wird. Aber wir wissen alle: That day will come!

Was mich nun aber demotivierte war die Tatsache, dass das Installations Programm nur auf Windows läuft. Nach ein wenig Netz Recherche und ein wenig hin und her gibts nun hier das HowTo zu Installation auf non Windows Systemen.

Die Basics:

  • Also, Netzteil Stecker rein und die Platte über das Ethernetkabel an das eigene Netz geklemmt
  • Den Knopf auf der Vorderseite der Platte drücken und auf die ersten Lebenszeichen warten

Nun kommt der trickreiche Teil. Ihr müsst die IP Adresse, unter der sich die Platte im Netzwerk angemeldet hat, herausbekommen. Manche Router haben in Ihren Einstellungen eine Liste der “DHCP Clients”. Dort sollte die Platte auftauchen. Ansonsten ist raten+ausprobieren angesagt :)

In meinem Fall lautete die Adresse Ihr nehmt also eure IP Adresse, oder die eures Routers (findet sich in den Netzwerkeinstellungen), und probiert die letzte Ziffer durch, von 1 bis 255. Aber keine Angst, meistens ist eine der ersten fünf.

Also, wie jetzt? Durchprobieren? – Ganz einfach!

Ihr öffnet euren Browser und tippt die IP Adresse in die Adressleiste. Wenn es die richtige ist, öffnet sich eine Seite “WD Shared Storage Manager”. Nach einem Klick auf Language mit anschliessender German Auswahl verwandelt sich das aber ganz schnell in “WD Speicherfreigabe-Manager” :)

Seit Ihr nun auf der Seite des Speicherfreigabe-Managers angelangt, gehts folgender massen weiter:

  • Weiter klicken und Nutzer + Kennwort eingeben (Nutzer: admin / Kennwort: 123456)
  • Danach müsst Ihr noch den Lizenzkram akzeptieren (zur Abwechslung vielleicht mal durchlesen? … Ne? Auch gut! :) )
  • Nun könnt Ihr ein neues Kennwort angeben, was Ihr auch tuen solltet. Unbedingt!
  • Jetzt noch die Zeitzone eingestellt und weiter gehts.

Das war soweit das Wichtigste und Schwierigste. Nun könnt Ihr euch durch die Einstellungen klicken und alles nach euren Wünschen einrichten. Von Belang sind folgende Punkte:

  • Allgemeines Setup -> Aktualisieren Sie Geräte-/Arbeitsgruppennamen: Hier gebt Ihr den Namen eurer Arbeitsgruppe, sowie den Namen unter dem die Platte dann auch gefunden werden kann ein.
  • Unter File Management kann man verschiedene Nutzer anlegen, und ihnen die diversesten Rechte zum Zugriff geben, aber da könnt Ihr ja nach herzens Lust rum probieren :)

Um auf die Platte zuzugreifen geht ihr einfach auf Netzwerk, oder alternativ im Finder auf “Gehe Zu -> Mit Server verbinden …” (Cmd+K) und dort dann auf Durchsuchen. Sollte das auch nicht funktionieren, dann könnt Ihr im selbigen Dialog direkt die IP Adresse der Platte eingeben. Bei mir sähe das dann folgender massen aus: smb://

Ich hoffe es hat alles geklappt und das TerraByte wird nie voll.

Beste Grüße

Geschrieben in: Netzleben, Privat | Tags: Schlagwörter:
0 Trackbacks | 22 Kommentare »

Putting the Discogs API on Rails – ActiveDiscogs

Sonntag, der 15. Juni 2008, 19:40 Uhr von Ullrich

I had a look inside ActiveResource as it is part of Rails since version 2.1, and tried to use it to access the Discogs API. It turned out to be a bit difficult and required a bit more coding than accessing a regular Rails RESTful API.

That’s the reason why i created a Rails Plugin which supports the basic tasks for now (getting releases, artists and labels). Future versions will support searching and caching and a bit more.

The project goes by the name of ActiveDiscogs and is available on

Feel free to join and play with it :)

Ah, before i forget: To install just use

script/plugin install svn://

Geschrieben in: Coding | Tags: Schlagwörter: ,
0 Trackbacks | 1 Kommentar »

My Methods – Rails Object extension

Donnerstag, der 29. Mai 2008, 09:43 Uhr von Ullrich

This post is in English as the whole Coding category will be.

What’s this all about.

Ryan wrote on his blog about a ruby snippet he came up with a friend. His code snippet won’t be that useful for ruby on rails starters since his example only gives half of the solution.

So here’s the rest :)

Create file app/overrides/object.rb

class Object
  def self.my_methods
    methods - (superclass ? superclass.methods : [])
  def my_methods
    methods - (self.class.superclass ? : [])

Also create app/overrides/all.rb containing just

Dir[ File.dirname( __FILE__ ) + "/**/*.rb" ].each { |file| require( file ) }

This file now needs to be included in the environment.rb

require "#{RAILS_ROOT}/app/overrides/all"

This should do the trick. Now get out there and code, code, code!

Geschrieben in: Coding | Tags: Schlagwörter:
0 Trackbacks | 2 Kommentare »

Seiten: 1 2 Weiter