Archive for category Internet

How to weigh your cat! – the IoT version

This is Leela. She is a 7 year old lilac white British short hair cat that lives with us. Leela had a sister who used to live with us as well but she developed a heart condition and passed away last year. Witnessing how quickly such conditions develop and evaluate we thought that we can do something to monitor Leelas health a bit to just have some sort of pre-alert if something is changing.

Kid in a Candystore

As this Internet of Things is becoming a real thing these days I found myself in a candy store when I’ve encountered that there are a couple of really really cheap options to get a small PCB with input/output connectors into my house WiFi network.

One of the main actors of this story is the so called ESP8266. A very small and affordable system-on-a-chip that allows you to run small code portions and connect itself to a wireless network. Even better it comes with several inputs that can be used to do all sorts of wonderful things.

And so it happened that we needed to know the weight of our cat. She seemed to get a bit chubby over time and having a point of reference weight would help to get her back in shape. If you every tried to weigh a cat you know that it’s much easier said than done.

The alternative was quickly brought up: Build a WiFi-connected scale to weigh her litter box every time she is using it. And since I’ve recently bought an evaluation ESP8266 I just had to figure out how to build a scale. Looking around the house I’ve found a broken human scale (electronics fried). Maybe it could be salvaged as a part donor?

A day later I’ve done all the reading on that there is a thing called “load-cell”. Those load cells can be bought in different shapes and sizes and – when connected to a small ADC they deliver – well – a weight value.

I cracked the human scale open and tried to see what was broken. It luckily turned out to have completely fried electronics but the load-cells where good to go.

Look at this load cell:


That brought down the part list of this project to:

  • an ESP8266 – an Adafruit Huzzah in my case
  • a HX711 ADC board to amplify and prepare the signal from the load-cells
  • a human scale with just enough space in the original case to fit the new electronics into and connect everything.

The HX711 board was the only thing I had to order hardware wise – delivered the next day and it was a matter of soldering things together and throwing in a small Arduino IDE sketch.

My soldering and wiring skills are really sub-par. But it worked from the get-go. I was able to set-up a small Arduino sketch and get measurements from the load-cells that seemed reasonable.

Now the hardware was all done – almost too easy. The software would be the important part now. In order to create something flexible I needed to make an important decision: How would the scale tell the world about it’s findings?


Two basic options: PULL or PUSH?

Pull would mean that the ESP8266 would offer a webservice or at least web-server that exposes the measurements in one way or the other. It would mean that a client needs to poll for a new number in regular intervals.

Push would mean that the ESP8266 would connect to a server somewhere and whenever there’s a meaningful measurement done it would send that out to the server. With this option there would be another decision of which technology to use to push the data out.

Now a bit of history: At that time I was just about to re-implement the whole house home automation system I was using for the last 6 years with some more modern/interoperable technologies. For that project I’ve made the decision to have all events (actors and sensors) as well as some additional information being channeled into MQTT topics.

Let’s refer to Wikipedia on this:

“MQTT1 (formerly MQ Telemetry Transport) is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based “lightweight” messaging protocol for use on top of the TCP/IP protocol. It is designed for connections with remote locations where a “small code footprint” is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker. Thebroker is responsible for distributing messages to interested clients based on the topic of a message. Andy Stanford-Clark and Arlen Nipper of Cirrus Link Solutions authored the first version of the protocol in 1999.”

Something build for oil-pipelines can’t be wrong for your house – can it?

So MQTT uses the notation of a “topic” to sub-address different entities within it’s network. Think of a topic as just a simple address like “house/litterbox/weight”. And with that topic MQTT allows you to set a value as well.

The alternative to MQTT would have been things like WebSockets to push events out to clients. The decision for the home-automation was done towards MQTT and so far it seems to have been the right call. More and more products and projects available are also focussing on using MQTT as their main message transport.

For the home automation I had already set-up a demo MQTT broker in the house – and so naturally the first call for the litterbox project was to utilize that.

The folks of Adafruit provide the MQTT library with their hardware and within minutes the scale started to send it’s measurements into the “house/litterbox/weight” topic of the house MQTT broker.

Some tweaking and hacking later the litterbox was put together and the actual litterbox set on-top.

Since Adafruit offers platform to also send MQTT messages towards and create neat little dashboards I have set-up a little demo dashboard that shows a selection of data being pushed from the house MQTT broker to the MQTT broker.

These are the raw values which are sent into the weight topic:

You can access it here:

So the implementation done and used now is very simple. On start-up the ESP8622 initialises and resets the weight to 0. It’ll then do frequent weight measurements at the rate it’s configured in the source code. Those weight measurements are being monitored for certain criteria: If there’s a sudden increase it is assumed that “the cat entered the litterbox”. The weight is then monitored and averaged over time. When there’s a sudden drop of weight below a threshold that last “high” measurement is taken as the actual cat weight and sent out to a /weight topic on MQTT. The regular measurements are sent separately to also a configurable MQTT topic.

You can grab the very ugly source code of the Arduino sketch here: litterbox_sourcecode

And off course with a bit of logic this would be the calculated weight topic:

Of course it is not enough to just send data into MQTT topics and be done with it. Of course you want things like logging and data storage. Eventually we also wanted to get some sort of notification when states change or a measurement was taken.

MQTT, the cloud and self-hosted

Since MQTT is enabling a lot of scenarios to implement such actions I am going to touch just the two we are using for our house.

  1. We wanted to get a push notification to our phones whenever a weight measurement was taken – essentially whenever the cat has done something in the litterbox. The easiest solution: Set-Up a recipe on If This Than That (IFTTT) and use PushOver to send out push notifications to whatever device we want.
  2. To log and monitor in some sort of a dashboard the easiest solution seemed to be Adafruits offer. Of course hosted inside our house a combination of InfluxDB to store, Telegraf to gather and insert into InfluxDB and Chronograf to render nice graphs was the best choice.

Since most of the above can be done in the cloud (as of: outside the house with MQTT being the channel out) or inside the house with everything self-hosted. Some additional articles will cover these topics on this blog later.

There’s lots of opportunity to add more logic but as far as our experiments and requirements go we are happy with the results so far – we now regularly get a weight and the added information of how often the cat is using her litterbox. Especially for some medical conditions this is quite interesting and important information to have.

No Comments

the xenim streaming network SONOS integration now plays recent shows!




Since I am frequently using the xenim streaming network service but I was missing out on the functionality to replay recent shows. With the wonderful functionality of Re-Live made available through ReliveBot  I have now added this replay feature and I am using it a lot since.

Within the SONOS controller app it looks like this:

Screen Shot 2015-07-31 at 14.22.13


To set-up this service with your SONOS set-up just follow the instructions shown here: a new Music Service for SONOS

Source 1: xenim streaming network
Source 2: ReliveBot
Source 3: Download the Custom Service
Source 4: a new Music Service for SONOS

No Comments

I wish there was: cheap network microphones with open source speech recognition

I was on a business trip the other day and the office space of that company was very very nice. So nice that they had all sorts of automation going on to help the people.

For example when you would run into a room where there’s no light the system would light up the room for you when it senses your presence. Very nice!

There was some lag between me entering the room, being detected and the light powering up. So while running into a dark room, knowing I would be detected and soon there would be light, I shouted “Computer! Light!” while running in.

That StarTrek reference brought an old idea back that it would be so nice to be able to control things through omnipresent speech recognition.

I am aware that there’s Siri, Cortana, Google Now. But those things are creepy because they involve external companies. If there are things listening to me all day every day, I want them to be within the premise of the house. I want to know exactly down to the data flow what is going on and sent where. I do not want to have this stuff leave the house at any times. Apart from that those services are working okayish but well…

Let alone the hardware. Usually the existing assistants are carried around in smart phones and such. Very nice if you want to touch things prior to talking to them. I don’t want to. And no, “Hey Siri!” or “OK Google” is not really what I mean. Those things are not sophisticated enough yet. I was using “Hey Siri!” for less than 24 hours. Because in the first night it seemed to have picked up something going on while I was sleeping which made it go full volume “How can I help!” on me. Yes, there’s no “don’t listen when I am sleeping” thing. Oh it does not know when I am sleeping. Well, you see: Why not?

Anyway. What I wish there was:

  • cheap hardware – a microphone(-array) possibly to put into every room. It either needs to have WiFi or LAN. Something that connects it to the network. A device that is carried around is not enough.
  • open source speech recognition – everything that is collected by the microphone is processed through an open source speech recognition tool. Full text dictation is a bonus, more importantly heavy-duty command recognition and simple interactions.
  • open source text to speech – to answer back, if wanted

And all that should be working on a basic level without internet access. Just like that.

So? Any volunteers?

1 Comment

31st Chaos Communication Congress


Like every year the Chaos Communication Congress gathered thousands of people in one place between the Christmas-Holidays and NewYears.

Since I was out-of-order this year to attend I’ve opted for the Attending-by-Stream option. All Lectures are live-streamed by the awesome CCC Video Operations Center (C3VOC) and made available as recordings afterwards.

Since the choice of topics is enormous here are some I can recommend:

Source 1:
Source 2:
Source 3:
Source 4:


No Comments

Map, Search and Filter flights all around the world

Bildschirmfoto 2014-09-27 um 13.09.20

“OpenFlights is a tool that lets you map your flights around the world, search and filter them in all sorts of interesting ways, calculate statistics automatically, and share your flights and trips with friends and the entire world (if you wish). It’s also the name of the open-source project to build the tool.”


No Comments

Shaders in your browser

“Shadertoy is the first application to allow developers all over the globe to push pixels from code to screen using WebGL since 2009.

This website is the natural evolution of that original idea. On one hand, it has been rebuilt in order to provide the computer graphics developers and hobbyists with a great platform to prototype, experiment, teach, learn, inspire and share their creations with the community. On the other, the expressiveness of the shaders has arisen by allowing different types of inputs such as video, webcam or sound.”

Bildschirmfoto 2014-09-27 um 12.29.04

Source 1:

No Comments

a new Music Service for SONOS: xenim streaming network

I am a frequent podcast live-stream listener. And being that I am enjoying the awesome service called xenim streaming network.

Bildschirmfoto 2014-08-19 um 21.03.21

Any Podcast producer can join the xsn and with that can live-stream his own Podcast while recording. It’s CDN is based on voluntarily provided resources and pretty rock-solid as far as my experience with it goes.

Since I am a frequent user of this – and I’ve got that gorgeous SONOS hardware scattered around my house – I thought I need to have that service integrated into my SONOS set.

The SONOS system knows the concept of “Music Services”. There are quite a lot of them but xsn is missing. But SONOS is awesome and they got an API!

Unfortunately the API documentation is hidden behind a NDA wall so that would be a no-go. What’s not hidden is what the SONOS controllers have to discuss with all the existing services. Most of the time these do not use HTTPS so we’re free to listen to the chatters. I did just that and was able, for the sake of interoperability, to reverse engineer the SONOS SMAPI as far as it is necessary to make my little xsn Music Service work.

As usual you can get the source-code distributed freely through Github. If you’re not into that sort of compiling and programming things, you are invited to use my free-of-charge provided service. To set it up on your home SONOS just follow these simple steps:

Step 1: Start your SONOS Controller Application and find out the IP address of your SONOS.

Click on “About My Sonos System” and check the IP address written next to the “Associated ZP”.

Screen Shot 2014-08-19 at 19.45.56

Step 2: Add the xsn Music Service.

By opening a browser window and browsing to: http://<your-associated-zp-ip>:1400/customsd.htm

When you’re there – fill out the fields as below. The SID is either 255, or if you used that previously, something between 240-253. The service name is “xenim streaming network”. The Endpoint URL and Secure Endpoint URL both are

Set the Polling interval to 30 seconds. Click on the Anonymous Authentication SOAP header policy and you’re good to go. Click on “send” to finish.

Bildschirmfoto 2014-08-19 um 21.16.27

Step 3: Add the new Music Service to your SONOS Controller.

Click on “Add Music Services” and click through until you see “xenim streaming network”. Add the service and you’re set!

p.s.: It’s normal that the service icon is a question mark.

Step 4: Enjoy Live Podcasts!

Source 1:
Source 2:

No Comments

Knight Rider: a conclusion

Bildschirmfoto 2014-07-06 um 11.25.46

“Knight Rider ist wieder da! Nach Jahren des bangen Wartens zeigt RTL endlich wieder den jungen David Hasselhoff, der mit seinem “Wunderauto” auf große Verbrecherjagd geht. Knight Rider war Kult, Knight Rider ist Kult, und Knight Rider mit Bier ist Oberkult! Angeklebte Armaturen, deren Knöpfe beinahe beliebig in Farbe, Beschriftung und Anordnung variieren, während der Fahrt wechselnde Lenkräder, Stuntfahrer mit krasskranken Clownsfrisuren sowie viele, viele, WIRKLICH viele Logik-, Dreh-, oder sonstwie geartete Fehler laden zur spaßig alkoholgetränkten Analyse ein. Die dümmsten Drehpannen, die peinlichsten Hasselhoff-Anmachen, die unauffälligsten Tarnsack-Autofahrer.”



No Comments

How to get a list of all recent Podcasts on SONOS

I am using an external podcast download tool to stay updated on all podcasts I subscribed to. For this purpose SubSonic is a good choice – actually for a lot more also.

Screen Shot 2014-07-02 at 18.56.52

One of the quirks of the SONOS products is that Podcasts are not really well supported. In fact there is no support at all.

So I wrote a tool that extends the SONOS players with the functionality to “remember” play positions within audiobooks and podcasts. Now what’s left to properly have podcasts supported is a view of the most recently updated podcasts. Wouldn’t it be nice to have a “Folder View” in the SONOS controller of what’s new across all the different podcasts you are subscribed to?

Now here’s the trick:

Use a small script on any RaspberryPi in the house to dynamically create hardlinks to the podcasts files in a “Recently Updated Podcasts” folder.

The script is something like this:

find /where-your-podcasts-are/ -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort | tail -n 25 | cut -c 32- | sed -e “s/^/ln \”/” -e “s/$/\”/” -e “s/$/ \”\/recentPodcasts\/\”/” | sh

This short line will go through all folders and subfolders in /where-your-podcasts-are/ and then create Hardlinks in /recentPodcasts to the most recent 25 files.

That way, and when /recentPodcasts/ is made accessible to your SONOS controllers, you’ll have something like this:

Screen Shot 2014-07-02 at 19.17.24

Source 1:
Source 2: play position bookmarker

No Comments

did you know that the marriage rate in Ohio correlates with legal executions? Spurious Correlations!

I took notice of a website called “Spurious Correlations“. It seems that it collects all sorts of correlating statistics to proof the point of how important context is to statistics. Enjoy!

Bildschirmfoto 2014-05-18 um 17.56.20

Source 1:

No Comments

IPv6 native root server has problems with OpenFire Jabber / XMPP Server to Server

I was setting up a new root-server machine and went for the Debian 7 minimal set-up. Thankfully the root-server provider I am using (hetzner) is connected with IPv4 and IPv6 natively. Awesome stuff!

If you’re using an IPv6 native set-up these days you STILL have to be cautious about possible side-effects with software having bugs and not knowing how to deal with these ginormous ip adresses.

So there’s a well known Jabber / XMPP server that I am using for some years now without any issues. I was even using it on native IPv6 connected machines earlier.

But with the fresh and clean set-up of Debian 7 and IPv6 by the hoster several problems started bubbling up.

1: the ‘there can only be one ipv*’ problem

Turns out that the debian team decided to set a system setting by default that lets IPv6 aware applications bind to IPv6 only. Good thing, you can disable it by adding this to your sysctl.conf:


2: the ‘who resolves first is right’ problem

When you get a IPv6 native machine it might have a resolv.conf consisting of IPv4 and IPv6 name servers. And don’t worry: Everything is going to be all-right as long as the software you’re planning to use is perfectly capably dealing with the answers of both types of servers. The IPv4 ones will default to the A records, the IPv6 ones to the AAAA record.

Now there’s OpenFire. A stable and easy to use XMPP / Jabber server implementation. It’s based upon Java and I am running it with Java 7 on my Debian machine.

Unfortunately in the current 3.9.1 version of OpenFire there’s a bug that leads to Server-to-Server XMPP connections not working when they resolv to IPv6. So for example your Google-Talk contacts won’t work at all.

The bug itself is rather stupid: Seems that OpenFire expects an IPv4 adress from the DNS lookup and crashes on an IPv6 adress.

The solution is as easy as the bug is stupid: Remove the IPv6 defaulting nameservers from your resolv.conf.

# nameserver config
#nameserver 2axx:yyy:0:zzzz::add:9898
#nameserver 2axx:yyy:0:zzzz::add:9999
#nameserver 2axx:yyy:0:zzzz::add:1010

Source 1: defaulting to net.ipv6.bindv6only=1
Source 2:

No Comments

Find out how words translate in europe

“Enter one or two lower-case English words to see translations from Google Translate.”


Bildschirmfoto 2014-03-30 um 21.56.55

No Comments

The Data Visualisation Catalogue

The Data Visualisation Catalogue is currently an on-going project developed by Severino Ribecca.

Originally, this project was a way for me to develop my own knowledge of data visualisation and create a reference tool for me to use in the future for my own work. However, I thought it would also be useful tool to not only other designers, but also anyone in a field that requires the use of data visualisation regularly (economists, scientists, statisticians etc).

Although there have been a few attempts in the past to catalogue some of the established data visualisation methods, there is no website that is really comprehensive, detailed or helps you decide the right method for your needs.

I will be adding in new visualisation methods, bit-by-bit, as I research each method to find the best way to explain how it works and what it is best suited for.”

Bildschirmfoto 2014-03-29 um 13.11.59

Source 1:

1 Comment

DRAD.IO – “made for mobiles” german radio livestream

Having live streams of common german news radio handy when in other countries is essential. Here’s a good offer (not made by the radios :-))

Bildschirmfoto 2014-03-15 um 22.41.29

Source 1:

No Comments

the ocean in your browser

It’s impressive what these browsers started to become these days. Here you have a quite convincing wave simulation right in your browser with some knobs to play with:

Ocean Waves


No Comments

the Google Cultural Institute

A very interesting find that I wanted to blog about for a while now – loads of stuff to read and watch through – let it be art or history.

“Google has partnered with hundreds of museums, cultural institutions, and archives to host the world’s cultural treasures online.

With a team of dedicated Googlers, we are building tools that allow the cultural sector to display more of its diverse heritage online, making it accessible to all.

Here you can find artworks, landmarks and world heritage sites, as well as digital exhibitions that tell the stories behind the archives of cultural institutions across the globe.”

Source 1:
Source 2: D-Day

No Comments

Coffee Shop sounds that boost creativity

Interesting concept: By allowing you to play sounds of coffee shops and lounges – the chattering and mumbling of people in the background – this website tries to boost creativity.

Bildschirmfoto 2014-01-05 um 22.58.08

Does it?


No Comments

a kilobyte of javascript – js1k

What do you think can you do with 1 kilobyte of javascript? Not a lot you might think. In fact it’s quite a lot!


Similar to the 4k and 64k demo awards now there is a 1k javascript competition:

“This is a competition about JavaScript scripts no larger than 1k. Starting out as a joke, the first version ended with a serious amount of submissions, prizes and quality.”

So what can you do with 1k of javascript? A lot! Click your way through the demos on the site and find a lot like this:

Bildschirmfoto 2013-05-04 um 20.50.54

Source 1:
Source 2:
Source 3:

No Comments

a virtual network inside your machine

Did you ever start a horde of virtual machines and a complicated vm-only network set-up just to simulate a medium complex network and the interaction of nodes in that network? Well that’s a tiresome, error-prone and labour intensive process. Fear no more, there’s a tool to the rescue.

“Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command:”


“Because you can easily interact with your network using the Mininet CLI (and API), customize it, share it with others, or deploy it on real hardware, Mininet is useful for development, teaching, and research. Mininet is also a great way to develop, share, and experiment with OpenFlow and Software-Defined Networking systems.

Mininet is actively developed and supported, and is released under a permissive BSD Open Source license. We encourage contribution of code, bug reports/fixes, documentation, and anything else that can improve the system!”


1 Comment

A lot of Whisky videos – and a tutorial how to cut videos on the command line

For just shy of 2 years I am a fan of whisky. After I got the hang of the processes, tastes and smells around this spirit I started collecting them – collecting to drink them eventually.

Now there are a number of shops you can buy good quality whisky from anywhere in the world. One of which happens to be located in germany. This shop is not only offering a huge choice but also a cross-sellers dream: tasting and explanation videos beneath many of the whiskys in which a very talented Mr. Horst Lüning tastes and explains all things whisky.

Now this shop hosts all videos on YouTube. Since I am a big fan of podcasting and internet based entertainment it’s a great thing that because if my little tool called “YouTubeFeast” all new episodes and tasting videos get downloaded automatically. Till today this way I’ve got well over 650 whisky tasting and explanation videos downloaded.

Bildschirmfoto 2013-03-01 um 20.46.32

As a matter of fact this is a really entertaining and educating series I even would pay to get access to. But that aside every video which got automatically downloaded usually looks like this (german audio):

As you can see there’s a short intro (8 seconds) and an outro (29 seconds) which every single video starts and ends with. Under normal circumstances there are two occasions when I have those videos played.

  1. When I want to look for a particular whisky and get an overview of how it’s going to be like.
  2. For over 12 years I happen to have a “nights playlist” – a playlist of things that are played back during the night – every night. For this it’s important that it’s mainly speech, very normalized audio and of course it needs to be interesting.

So for the second reason it’s important that there are not too many audio bumps and breaks. Unfortunately as much as I like the intro and outro music it’s actually very bass heavy and as such sleep interrupting sometimes… So just like when a good newmake spirit is distilled the start and end run need to be separated by the heart that makes up the spirit.

Every 4-6 months I take all newly added videos and cut them down and add them to the nights playlist folders. The process is like this:

  1. Rename them: Remove the following things from the filenames
    “Whiskey Verkostung – “, “Whiskey Likör Verkostung “, “Whiskygläser “, “Whisky-Verkostung – “, “Whisky Vorstellung “, “Whisky Verkostung “, “Whisky Verkosten “, “Whisky Tasting – “, “Whisky Tasting “, “Whisky Likör Verkostung “, “Whiskey-Verkostung – “, “Whiskey Verkostung “, “Whiskey Tasting – “, “- ”

    To rename the files I am usually using the freeware tool Rename Master – it’s awesome!

  2. Cut the intro away.
    This best done with a simple ffmpeg command:

    ffmpeg -i $inputfile -ss 00:00:08.0 -acodec copy -vcodec copy $output

  3. Cut the outro away.
    Using a little shell script it’s fairly easy to first get the full length of each video file and then using another tool to substract 29 seconds from each length and cut the heart out until that length is reached.

    To get the length the following short line is doing a great job:

    ffmpeg -i “$1” 2>&1 |grep Duration | cut -d ‘ ‘ -f 4 | sed s/,//

    In order to then cut the video before the outro starts it basically is a another call to ffmpeg:

    ffmpeg -i $infile -t $calculatedlength -acodec copy -vcodec copy $output

That way you get just the tasting videos without intro and outro – ready to be enjoyed. For the end of this article I want to stress the fact how awesome I think those whisky videos from Mr. Lüning are. It’s awesome to watch and learn. I hope that those videos will be available for more years to come! Cheers!

Source 1:
Source 2:

No Comments

a good source of all things javascript libraries

Choosing the right javascript library is one of the key elements to create a good prototype in very short times – productive applications even. If you want to get new impressions, hints and links to those javascript libraries that will render your next project a success look no further:

Bildschirmfoto 2013-02-02 um 20.50.49

Source 1:

No Comments

Raspberry Pi gets a camera

The first signs of the upcoming camera board for the raspberry pi are showing. During the Electronica 2012 fair RS showed the board to the public for the first time.

Since it’s going to be a 25 Euro add-on for the Pi the specification is quite impressive. The OmniVision OV5647 is used as the Image Sensor – it’s bigger brother is used in iPhone 4. OmniVision says:

“The OV5647 is OmniVision’s first 5-megapixel CMOS image sensor built on proprietary 1.4-micron OmniBSI™ backside illumination pixel architecture. OmniBSI enables the OV5647 to deliver 5-megapixel photography and high frame rate 720p/60 high-definition (HD) video capture in an industry standard camera module size of 8.5 x 8.5 x ≤5 mm, making it an ideal solution for the main stream mobile phone market.

The superior pixel performance of the OV5647 enables 720p and 1080p HD video at 30 fps with complete user control over formatting and output data transfer. Additionally, the 720p/60 HD video is captured in full field of view (FOV) with 2 x 2 binning to double the sensitivity and improve SNR. The post binning re-sampling filter helps minimize spatial and aliasing artifacts to provide superior image quality.

OmniBSI technology offers significant performance benefits over front-side illumination technology, such as increased sensitivity per unit area, improved quantum efficiency, reduced crosstalk and photo response non-uniformity, which all contribute to significant improvements in image quality and color reproduction. Additionally, OmniVision CMOS image sensors use proprietary sensor technology to improve image quality by reducing or eliminating common lighting/electrical sources of image contamination, such as fixed pattern noise and smearing to produce a clean, fully stable color image.

The low power OV5647 supports a digital video parallel port or high-speed two-lane MIPI interface, and provides full frame, windowed or binned 10-bit images in RAW RGB format. It offers all required automatic image control functions, including automatic exposure control, automatic white balance, automatic band filter, automatic 50/60 Hz luminance detection, and automatic black level calibration.”

That sensor delivers RAW RGB Imagery to the RaspberryPi through the onboard camera connector interface:

this actually is a 14 MPixel test-board and not the final 5 MPixel one…

And the part that impressed me the most is that that 5 Megapixel sensor delivers it’s raw data stream and it gets h264 compressed directly within the GPU of the Raspberry Pi. 30 frames per second 1080p without noticeable CPU load – how does that sound? – Not bad for a 50 Euro setup!

Source 1: First Demo
Source 2: OmniVision OV5647 Color CMOS QSXGA Image Sensor

No Comments

HTTP/2 RFC draft is out

Progress is showing in regards of the next incarnation of the famous Hypertext transport protocol aka http. Despite the fact that those 4 letters got banned from modern browser adress bars it’s still the cornerstone of everything your browser does with the network.

Based upon the work of Google and their SPDY implementation it comes with a lot of things that come in handy when thinking about modern demands for security, performance and multi-channel-data-transport.

Source 1:
Source 2:

No Comments

History Lessons: Trial of the Major War Criminals before the International Military Tribunal in Nuremberg

History was one of my favourite classes at school – I liked it so much that I even wrote one of my final examinations at the A levels in history. I like to know how stuff happened and I like to know what people got from it.

Being a german there’s a lot of history in the last 100 years guiding the interest. You can imagine that the darkest parts of those 100 years are the first and the second world war. Thankfully my generation never had to suffer through such a terrifiying time.

So for the equally interested reader of this article I have good news. In times of the internet we get access to documents that were previously hard or expensive (or both) to get. Like the original documents of the so called Nuremberg Trial – the Trial of the Major War Criminals before the International Military Tribunal in Nuremberg.

You can get them in english, over 16.000 pages of PDFs, packed into 42 PDF files. Or in the official translation in German on

That will keep me reading for a while – but there’s even more. With the progression of scan projects more and more original sources are becoming available for everyone.

Source 1:
Source 2:
Source 3:
Source 4:

No Comments

home automation example: domotica

For several years now I am interested in this home automation thing – I even got a little bit of my own home automation going. But with websites like domotica you can get an idea of what is achieveable and how it might look for the people actually using it every day.

Source 1:

1 Comment

soothing rain

When music just does not cut it and you need to concentrate or sleep. Well you need rain. To the rescue comes an entire internet radio station dedicated to bring the best rain showers directly to your speakers:

Source 1:

1 Comment

automation to the people: download YouTube videos automatically

You know that: You have just stumbled upon a great and informative YouTube channel. It’s full of videos you would like to watch but to do that you need to have internet access in any case. And of course that internet access needs to be as fast as possible to cope with the video quality you would like to watch.

If only it would be possible to download a video from YouTube, store it locally and watch it whenever you got the time. Maybe you want to take that video with you on that great, internetless self-awareness trip…

Now there are a lot of tools that allow you to download YouTube clips manually. I used BYTubeD for that purpose. It is a nice and easy to use Firefox Add-On which can be started whenever a YouTube video appears in any page.

After you’ve started into BYTubeD you can select which of the videos on the page you would like to download and what quality you would like to get.

All this works very well if you only want to download something once every while. Problems come up if you want to download regular postings…

I’ve subscribed to several – to me – very interesting YouTube channels. These get updated almost every day. The only option for me to keep track with them is to take the time, surf YouTube and use BYTubeD to download manually if there is anything new. Now this was a waste of time for me so I automated it.

I wrote a small tool I call “YouTubeFeast” – because it allows you to feast on YouTube… yeah I know. Now this tool is designed to run on a linux or windows machine in the background and scan in configurable intervals for new videos. If it finds new videos it downloads them in the quality you pre-configured to a folder you configured. It couldn’t be easier.

It’s open-source (GPLv2) and I’ve made it publicly available on GitHub. You can even find a pre-compiled binary version there which is ready-to-run.

The configuration file “YouTubeFeast.configuration” is a plain and simple text file. Use your favourite text editor and obey some simple rules:

  • any line beginning with # is a comment
  • any line not beginning with a # is a download-job
  • any download job consists of the following, tabulator separated parameters:
    • the URL of the video page / channel homepage / overview
    • the desired quality (360p, 720p, 1080p)
    • the path to store the videos
    • the interval (in hours) to check for new stuff
  • don’t forget: tabulator separates parameters (take a look into the example configuration file…)

After configuring the only thing you need to do is to start YouTubeFeast. It will then go through all the jobs and download video files – as soon as it comes across an already downloaded file it stops that specific job.

That’s all about it. If you got any comment or suggestions for improvement please let me know.

Source 1:
Source 2: Download YouTubeFeast-March2013


downloading the whole Jamendo catalog

Yesterday @simcup wrote on twitter about that he is currently downloading the whole Jamendo catalog of Creative Commons music. Capture

Although I already knew Jamendo it never occurred to be to download their whole catalog. Since I am a fan of choice I immediately thought about how I could download the catalog too. Since the only clue was a cryptic uri-like text how to achieve that it suddenly sounded like a great idea to write a universal tool and release it as open-source. This tool should allow users to download the whole catalog and keep their local jamendo mirror in sync with the server. So anytime new artists, albums or tracks are added the user does not need to download them all again.

So the only thing I had as a starting point was that cryptic uri pointing me to something I’ve never heard of called Rythmbox. Turns out that this is a GNOME music player application which has Jamendo integration. After some clueless poking around I decided to take a look at the source of Rythmbox, especially the Jamendo module.

This module is written in python and quite clean to read. And just by looking at the first lines I came across the interesting fact that there is a almost daily updated XML dump of the Jamendo catalog available from Jamendo. Hurray! Since Jamendo wants developers to interact with the platform they decided to put a documentation online which allows anyone to write tools and stream and download tracks. After all the clues I found I finally ended up on this page.

So there are the catalog download, track stream and torrent uris necessary to download the catalog. Now the only thing that is needed is a tool which parses the XML and creates a nice folder structure for us.


Parsing XML in C# (my prefered programming language) is easy. Basically you can use a tool called XSD.exe and let it generate first the XSD from the XML and then ready-to-use C# classes from that XSD.


After doing all that actually reading the whole catalog into a useable form breaks down to just three lines of code:


Isn’t it great how modern frameworks take away the complexity of such tasks. At this point I’ve already parsed the whole catalog into my tool and only wrote three lines of code. The rest was generated automatically for me. The best of all – this also works on non-windows operating systems when you use mono.

When the XML data is parsed and available in a nice data structure it’s easy to iterate through all artists, all albums and all tracks and then download the actual mp3 or ogg. And that’s basically what my tool does. It takes the XML, parses it, and downloads. It will check before downloading if the track already exists and will only download those added since the last run.

Additionally since I am deeply involved into the development of the GraphDB graph database at sones I want to make use of the Jamendo data and the graph structure it poses. Since the directory structure my tool is generating is only one aspect how you could possibly look at the data it’s quite interesting to demonstrate the capabilities of GraphDB based on that data.

The idea behind the graph representation of the data is that you could start from almost any starting point imaginable. No matter if you you start from a single track and drill up into genre and artists, or if you start at a location and drill down to tracks.

So what the Downloader does in matters of GraphDB integration is that it outputs a GraphQL script which can be imported into an instance of GraphDB.

The sourcecode of my tool is available on github and released unter the BSD license – feel free to play with it and to contribute.

Source 1:
Source 2:

No Comments

der letzte Flug des Space Shuttle Endeavour

Am kommenden Freitag soll das Space Shuttle Endeavour zum letzen Mal und ein Space Shuttle zum vorletzten Mal abheben. Da will man dabei sein 🙂

Ich habe glücklicherweise gerade die Herren (und Damen?) von SpaceLiveCast entdeckt. Offenbar machen die schon eine ganze Weile Livestreams zu den verschiedenen Raumfahrt-Events.

P.S.: Wenn ich einen Wunsch frei hätte, wäre das, dass die Seite einen Video Podcast Feed anbietet….(wird Hilfe benötigt?)

Source 1:
Source 2:
Source 3:

No Comments

type to win

In the dusk of Flash it’s nice to see that HTML 5 and JavaScript are here to bring small and fun games to our browsers.

“Z-Type was specifically created for Mozilla’s Game On. I immediately wanted to participate in the competition when I first heard of it, but the deadline seemed so far away that I didn’t bother to begin working on a game back then. Fast forward to this tweet announcing that the deadline was only one week away – it took me by surprise. I still hadn’t even began working on anything. The thought of just submitting my earlier game Biolab Disaster crossed my mind but was immediately dismissed again.”

Great sound, great graphics and in the higher levels quite difficult.

Source 1:

No Comments

great SIP Softphone for Linux and Windows

Thank goodness I can uninstall X-Lite! At sones we are using a SIP based telephony solution. And therefore some times a SIP softphone application is needed along with the obligatory hardware SIP telephones. Till today the only half-working software I knew for that task was X-Lite. But a colleague told me today that there is a better software which not even looks better but also works better than X-Lite.

It’s called “Ekiga” and it’s a GTK based open source application which can run on Windows and Linux. It looks clean and therefore nice and works great.

A special tip from me: Abort the Welcome Wizard because the only thing it does is registering you with ekigas’ own services.



No Comments


After the last Open Movie Project “Bug Buck Bunny” – Sintel is the next short movie available for free download. Get it here.

“Sintel” is an independently produced short film, initiated by the Blender Foundation as a means to further improve and validate the free/open source 3D creation suite Blender. With initial funding provided by 1000s of donations via the internet community, it has again proven to be a viable development model for both open 3D technology as for independent animation film.
This 15 minute film has been realized in the studio of the Amsterdam Blender Institute, by an international team of artists and developers. In addition to that, several crucial technical and creative targets have been realized online, by developers and artists and teams all over the world.

“Sintel” commenced in May 2009, with producer Ton Roosendaal establishing a core team consisting of Colin Levy (director), David Revoy (concept art), Martin Lodewijk (story) and Jan Morgenstern (composer). In August script writer Esther Wouda was approached as a consultant, which resulted in her taking the responsibility for the entire screenplay. Esther then worked in close cooperation with Colin, David and Ton to deliver the final script early November. Meanwhile, Colin and David realized the first storyboards.

Based on a public call for artists – with over 150 respondents – the Durian artist team got established in July 2009. They first met in a pre-production week in Amsterdam in August, and all decided to join the project per October 1st. With the final movie budget still unknown, the target then still was to finish the film within 7 months, with a team of 6 artists and 2 developers. At that time the team still had the hopes to be able to realize the script in a 6-8 minute film.

In november, the Netherlands Film Fund approved on a substantial subsidy for Sintel, enough to extend the project to 10 months, with possible 1 or 2 extra artist seats in the final months. It was also by this time that breakdowns and animatic edits showed that the script had to be revised to become more compact, with a story structure using a flashback.

In the months after, Colin’s work on the Director’s Layout – 3D animatic shots – and final designs on the grand finale gradually made the movie longer, from 9 minutes in november, to almost 12 in May. Proper story telling, to absorb an audience with convincing characters and action just takes time!

With the highly anticipated extra funding from the Amsterdam Cinegrid – also funding a 4k resolution version – Ton finally could extend the team with 5 artists and a developer in March 2010. With 14 people the film then was completed for a first screening on July 18th in cinema Studio K in Amsterdam.
Three artists then stayed in Amsterdam working on final shot edits, lighting design, compositing, and on the impressive 2 minute film credits. The movie ended up with a total duration of 14m:48s, 888 seconds!

Watch it now:


Source 1: Elephants Dream
Source 2: Big Buck Bunny 
Source 3: Sintel
Source 3: Sintel Download

No Comments

Still 9 days to go till SXSW 2010

Since there are still 9 days to go till SXSW 2010 it’s a pleasure to give out a link to the completely unofficial torrents which old all mp3 files of almost all songs which are to be presented at this years SXSW:

“The SXSW® Music and Media Conference showcases hundreds of musical acts from around the globe on over eighty stages in downtown Austin. By day, conference registrants do business in the SXSW® Trade Show in the Austin Convention Center and partake of a full agenda of informative, provocative panel discussions featuring hundreds of speakers of international stature.”


Source 1:
Source 2:

No Comments

137 years of Popular Science is available now

That’s great news for everyone interested in science and history. As it turns out Google and PopSci just made their entire 137-year archive available online… good times!

“We’ve partnered with Google to offer our entire 137-year archive for free browsing. Each issue appears just as it did at its original time of publication, complete with period advertisements. It’s an amazing resource that beautifully encapsulates our ongoing fascination with the future, and science and technology’s incredible potential to improve our lives. We hope you enjoy it as much as we do.”



No Comments

Nine Inch Nails – another version of the truth – fan blu-ray release

“12 months,
a core team of dozens (with a network of thousands)
spanning 3 continents,
4 languages,
5 specialist teams,
countless sleepless nights…

It’s finally here.

Filmed in Sacramento, Portland, and Victoria by the Nine Inch Nails team, edited and produced by their fans, The Gift is a stunning work in 1080p High Definition video with 5.1 Surround Sound, multi-language subtitles, and artistically-driven ethics.”

You’re reading it right: the final production is ready to be downloaded. I am downloading it right now.


It’s a complete Nine Inch Nails live concert in full-hd. Free for all / Not for sale. Get it while it’s hot!



How to unleash the “Virtual WiFi” feature in Windows 7 in C#

Great stuff ahead – this is just the thing I would want to write if it’s not been written already. This tool is free and open source and it’s the perfect workaround for those usual cases when you want to download a podcast in your holiday and your apple branded device tells you “You can only download files up to 10 Megabyte over 3G connections” – You take your notebook, log into 3G, create a WiFi Hotspot with this tool and off you go.

“Over the last week some of you may have heard about Connectify. It’s an app that unleashes the “Virtual WiFi” and Wireless Hosted Network features of Windows 7 to turn a PC into a Wireless Access Point or Hot Spot. Well, I looked into what it would take to build such an app, and it really wasn’t that difficult since Windows 7 has all the API’s built in to do it. After some time of looking things up and referencing the “Wireless Hosted Network” C++ sample within the WIndows 7 SDK, I now have a nice working version of the application to release. I’m calling this project “Virtual Router” since it essentially allows you to host a software based wireless router from your laptop or other PC with a Wifi card. Oh, and did I mention that this is FREE and OPEN SOURCE!”


“The Wireless Network create/shared with Virtual Router uses WPA2 Encryption, and there is not way to turn off that encryption. This is actually a feature of the Wireless Hosted Network API’s built into Windows 7 and 2008 R2 to ensure the best security possible.
You can give your "virtual" wireless network any name you want, and also set the password to anything. Just make sure the password is at least 8 characters.”


1 Comment

what would you do with 1 million frames per second?

This is just beautiful:

No Comments

Musik zum Piratenpartei-Wahlkampf 2009


“Und ein weiterer Schritt im Free! Music! Contest wurde getan: Der Sampler steht nun zum Download zur Verfügung! Da die Rückfrage kam: Natürlich sind alle Stücke unter Creative Commons lizenziert.

Fast vier Stunden Musik waren eingereicht worden und am Ende stand eines fest: Mit einer einzelnen CD wären wir nicht in der Lage gewesen, die Qualität der Einsendungen entsprechend zu würdigen. Also verzichten wir auf ungefähr 70% des Gewinns und haben dafür 100% mehr feinste freie Musik. :)”

Capture Track-Listing


No Comments

maybe I should…

…switch this website to another weblog software in the future. The dasBlog development isn’t exactly what I would call fast-paced. It even seems that there was no movement at all for the last year at all regarding new features.

I took a short look at a current WordPress installation we did for our Developer Website at sones – and I have to admit that feature-wise this WordPress is way beyond anything I could achieve in dasBlog anytime soon.


Additionally the fact that the skin of this site seems to be broken (especially for older browsers) I would have to do a skin-redesign – turns out that this is way easier in WordPress than it is in dasBlog.

1 Comment

making things up…

While trying out the new Mozilla Weave I came across the nice interface the guys built into their sync service. Funny messages included.



No Comments

That’s what I call customer support

One of our two DSL lines in the office is provided by QSC. So far the decision to go with QSC was one of the best since I deal with Internet providers. These guys at QSC are just brilliant. Great support, great service, great pricing!

They even sent me a notice that there will be a planned maintenance downtime in more than a week. They do the maintenance on a saturday morning. When it’s unlikely that anyone will miss the uplink. (Since we got two, we won’t actually miss it… it’s just slower)


No Comments

Plain-Text Username Password Authentification with WCF

If you got it, it’s easy. If you’re starting from scratch it ain’t as easy. We were in need of such a Username+Password Authentification so I started googling around.

I found several articles but had to mash it all together in a trial-and-error session. Now that I am enlightened I want to share my knowledge:

Step 1: Implement an UserNamePasswordValidator class and override the Validate method.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IdentityModel.Tokens;
using System.IdentityModel.Selectors;

namespace sones.Pandora.Database.Hosting
    public class UserNamePasswordAuthentification: UserNamePasswordValidator

        public override void Validate(string userName, string password)
            if ((userName != "Username") || (password != "Password"))
                throw new SecurityTokenException("Validation Failed!");

Step 2: Edit the App.config file to enable the previously implemented UsernamePasswordValidator.

        <binding name="CustomAuthentication">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Basic" proxyCredentialType="Basic"/>
        <behavior name="SecurityBehavior">
            customUserNamePasswordValidatorType="sones.Pandora.Database.Hosting.UserNamePasswordAuthentification, PandoraDB_WebServiceHost_UsernamePasswordAuth"/>
      <service behaviorConfiguration="SecurityBehavior" name="sones.Pandora.Database.Hosting.PandoraDatabaseHost">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="CustomAuthentication"
          name="ep1" contract="sones.Pandora.Database.Hosting.IPandoraDatabaseHost" />

In this example the ServiceHost will use no server SSL certificate and therefor allow normal http access instead of just using https ssl. You can configure that behavior with the <security mode=”TransportCredentialOnly”> line. Just change there and define an apropriate certificate and you’re good to go with https / ssl.


farewell popfly

I’ve seen the launch of PopFly two years ago. And now I am going to see the landing 🙁


“Unfortunately, on August 24, 2009 the Popfly service will be discontinued and all sites, references, and resources will be taken down. At that time, your access to your Popfly account, including any games and mashups that you have created, will be discontinued.”

Now somebody please tell the world that the code of popfly will be released in some way so that other people can learn and work with it. That would be great. Oh if we just wouldn’t have that many lawyers on this planet.

Source 1:!51018025071FD37F!336.entry
Source 2:

No Comments

Google Copy-Wave

Oh dear. Another hyped protocol/platform from Google… oh wait. It’s not from Google. It’ all started in Xerox PARC…

There are several papers that describe what Google now claims to have developed…

left: Xerox PARC Paper; right: Google Wave

Conclusion: Go and read old Papers. As it turns out almost all newly hyped things have been described in papers from years ago.

Source 1:
Source 2:

1 Comment

small and reliable SFTP server for Windows

I had to transfer some data the last days and I wanted to do it fast, encrypted and using only one tcp port. SFTP is one of those protocols that come in handy in these cases.

Since the machine that would host the SFTP service is a Windows machine I reached out to find a free, reliable and easy to install and use SFTP Server.

Bild 1

I found Core FTP mini-sftp-server. It’s a small download of just one .exe file. When you start it up it’ll show the dialog above. You can configure username, password, port and path. Click “Start” and off you go. Works as advertised.


No Comments

Society for Geek Advancement

“”Being a geek means being so interested in something that you don’t care whether or not it’s cool.”

THE SOCIETY FOR GEEK ADVANCEMENT was founded upon the principles that we should all embrace our inner and outer geek and have fun while doing it. As individuals who love learning, innovating and believe in possibility as well as change, the second step of responsibility is to “be the geek that keeps on giving”. As a member of SGA, we work together as a global community to provide the tools and help others realize their true potential too!”

<\/param><\/embed><\/object><\/div>“;” alt=””>


No Comments

Go little Mailserver, go!!!

Since we moved into a new apartment in the last 3 weeks I had no stable internet connection – neither had my private Mailserver.

As of today everything is in place – the mail- and fileserver is up and running and connected to the internet again. So I had a server which buffered all the mail that came in during that time. That sums up to:

Bild 3

63.671 Mails in about 18 days. Hussah!

Bild 1

Go little Mailserver, go!!!

No Comments

Never gonna give you up, Never gonna…

Die Bits-und-so Adventskalender DVD kam an! Hurray! Und nicht nur die war in der Packung:


No Comments

finally faster internet

QSC just delivered a second DSL line to our office – now even faster – 16 Mbits downstream should be enough for now. Since the german telecom could not deliver more than 3 Mbit/s we had to ask QSC for their service… overall a very good customer experience so far.

If you order a DSL line in germany from a reseller like QSC it means that a technical guy from the german telecom is sent to your place and he is doing the last mile connect – in our case the guy thought it would be enough to drop the TAE socket inside the wall… means we have to get another company to do the cabling afterwards… well.


No Comments

clicking to fast


gnaaaaa 100 requests per hour…

No Comments