Archive for category networking

in case of emergency: spoof your MAC address



There have been several occasions in the past years that I had to quickly change the MAC address of my computer in order to get proper network connectivity. May it be a corporate network that does not allow me to use my notebook in a guest wifi because the original MAC address is “known” or any other possible reasons you can come up with…

Now this is relatively easy on Mac OS X – you can do it with just one line on the shell. But now there’s an App for that. It’s called Spoof:


“I made this because changing your MAC address in OS X is harder than it should be. The Wi-Fi card needs to be manually disassociated from any connected networks in order for the change to apply correctly – super annoying! Doing this manually each time is tedious and lame.

Instead, just run spoof and change your MAC address in one command. Now for Linux, too!”


No Comments

Nitrous – full IDE in your browser – with Collaboration!

“Nitrous is a backend development platform which helps software developers save time by cutting out the repetitive parts of creating development environments and automating them.

Once you create your first development environment, there are many features which will make development easier.”

Bildschirmfoto 2014-07-06 um 11.38.49

So what you’re getting is:

  • a virtual machine operated for you and set-up with a single click
  • A full-featured IDE in your browser
  • Code-Collaboration by inviting others to edit your project
  • a debugging environment in which you can test-run and work with your code

Here are some screenshots to get you a feel for it:


No Comments

using the RaspberryPi to make all SONOS speakers support Apple Airplay

Airplay allows you to conveniently play music and videos over the air from your iOS or Mac OS X devices on remote speakers.

Since we just recently “migrated” almost all audio equipment in the house to SONOS multi-room audio we were missing a bit the convenience of just pushing a button on the iPad or iPhones to stream audio from those devices inside the household.

To retrofit the Airplay functionality there are two options I know of:

1: Get Airplay compatible hardware and connect it to a SONOS Input.

airportexpress_2012_back-285111You have to get Airplay hardware (like the Airport Express/Extreme,…) and attach it physically to one of the inputs of your SONOS Set-Up.  Typically you will need a SONOS Play:5 which has an analog input jack.


2: Set-Up a RaspberryPi with NodeJS + AirSonos as a software-only solution

You will need a stock RaspberryPi online in your home network. Of course this can run on virtually any other device or hardware that can run NodeJS. For the Pi setting it up is a fairly straight-forward process:

You start with a vanilla Raspbian Image. Update everything with:

sudo apt-get update

sudo apt-get upgrade

Then install NodeJS according to this short tutorial. To set-up the AirSonos software you will need to install additional avahi software. Especially this was needed for my install:

sudo apt-get install git-all libavahi-compat-libdnssd-dev

You then need to get the AirSonos software:

sudo npm install airsonos -g

After some minutes of wait time and hard work by the Pi you will be able to start AirSonos.

sudo airsonos

And it’ll come up with an enumeration of all active rooms.

Screen Shot 2014-06-25 at 11.38.47

And on all your devices it’ll show up like this:



Screen Shot 2014-06-25 at 12.38.27




Need to do Load Tests? Try Tsung!

Tsung is an open-source multi-protocol distributed load testing tool

It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers. Tsung is a free software released under the GPLv2 license.

The purpose of Tsung is to simulate users in order to test the scalability and performance of IP based client/server applications. You can use it to do load and stress testing of your servers. Many protocols have been implemented and tested, and it can be easily extended.

It can be distributed on several client machines and is able to simulate hundreds of thousands of virtual users concurrently (or even millions if you have enough hardware …).

Source 1:

No Comments

MOSH (Mobile Shell) – fixing SSH for everyone

How many times did you experience a connection loss on your terminal window in the last week? Yeah I know – like everytime you close the lid of your notebook and move to a different place. So like a dozen times every day.

And everytime you reconnect to your servers and you use things like screen to keep your terminals open and your programs running while you’re disconnected.

On the other hand – did you ever curse the internet gods while you tried to do a very important check or bugfix to a machine whilst on a train or mobile roaming network? It’s not what I would call fun-times. When there are no constant disconnects the lag is just infuriating. MOSH also solves this since it’s predicting and responding way faster then vanilla SSH. Your terminal becomes useable again!

So there’s now MOSH to the rescue:

Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.
Mosh is a replacement for SSH. It’s more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
Mosh is free software, available for GNU/Linux, FreeBSD, Solaris, Mac OS X, and Android.

Install it on your servers and your clients and never lose a connection again.

Source 1:
Source 2:

No Comments

TIME_WAIT – how does it work?

The Problem Addressed by the TIME-WAIT State

The Problem Addressed by the TIME-WAIT State

The purpose of TIME-WAIT is to prevent delayed packets from one connection being accepted by a later connection. Concurrent connections are isolated by other mechanisms, primarily by addresses, ports, and sequence numbers


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

weave your net of things that have internet…ehm – internet of things


The internet of things” is a buzzword used more and more. It means that things around you are connected to the (inter)network and therefore can talk to each other and, when combined, offer fantastic new opportunities.

Yeah right.

So NodeRed is a NodeJS based toolset that allows you to create so called “flows” (see picture above). Those flows determine what reacts and happens when things happen. Fantastic, told you!

Source 1:
Source 2: 3:

No Comments

“Compressing” JSON to JSON



The internet and all those browsers and javascript applications brought data structures that are pretty straight-forward. One of them is JSON.

The wikipedia tells about JSON:

“JSON (/ˈdʒeɪsɒn/ JAY-soun, /ˈdʒeɪsən/ JAY-son), or JavaScript Object Notation, is an open standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is used primarily to transmit data between a server and web application, as an alternative to XML.”

Unfortunately complex JSON can get a bit heavy on the structure itself with over and over repetitions of data-schemes and ids.

There’s RJSON to the rescue on this. It’s backwards compatible and makes your JSON more compressible:

“RJSON converts any JSON data collection into more compact recursive form. Compressed data is still JSON and can be parsed with JSON.parse. RJSON can compress not only homogeneous collections, but also any data sets with free structure.

RJSON is single-pass stream compressor, it extracts data schemes from document, assign each schema unique number and use this number instead of repeating same property names again and again.”

Of course this is all open-source and you can get your hands dirty here.

Source 1:
Source 2:
Source 3:

No Comments

IPv6 Migrationsleitfaden für die öffentliche Verwaltung

Die verfügbaren IPv4 Adressen neigen sich dem Ende und IPv6 wird kommen. Da gibt es keinen Zweifel! Dieses Weblog beispielsweise ist seit über zwei Jahren nativ über IPv6 erreichbar. Nun wird es mit jedem Monat der ins Land geht immer ‘brenzliger’ und dementsprechend wichtig ist der Schritt unter anderem auch für die öffentliche Verwaltung. Interessante Einblicke gibt dieses umfangreiche Dokument:

Bildschirmfoto 2013-05-04 um 20.15.28

downloadbares 270 Seiten PDF

“Seit den Anfangstagen des Internets wird zur Übertragung der Daten das Internet Protokoll in der Version 4 (IPv4) verwendet. Heute wird dieses Protokoll überall verwendet auch in den internen Netzen von Behörden und Organisationen. Das Internet und alle Netze, welche IPv4 heute verwenden, stehen vor einem tiefgreifenden technischen Wandel, denn es ist zwingend für alle zum Nachfolger IPv6 zu wechseln.

Auf die oft gestellte Frage, welche wesentlichen Faktoren eine Migration zu IPv6 vorantreiben, gibt es zwei zentrale Antworten:

  • Es gibt einen Migrationszwang der auf die jetzt schon (in Asien) nicht mehr verfügbaren IPv4-Adressen zurückführen ist.
  • Mit dem steigenden Adressbedarf für alle Klein- und Großgeräte, vom Sensor über Smartphones bis zur Waschmaschine, die über IP-Netze kommunizieren müssen verschärft sich das Problem der zur Neige gegangenen IPv4-Adressräume. Das Zusammenkommen beider Faktoren beschleunigt den Antrieb zur IPv6-Migration.

Es wird in Zukunft viele Geräte geben, die nur noch über eine IPv6-Adresse anstatt einer IPv4-Adresse verfügen werden und nur über diese erreichbar sind. Schon heute ist bei den aktuellsten Betriebssystemversionen IPv6 nicht mehr ohne Einschränkungen deaktivierbar. Restliche IPv4-Adressen wird man bei Providern gegen entsprechende Gebühren noch mieten können. Bei einem Providerwechsel im Kontext einer Neuausschreibung von Dienstleistungen wird man diese jedoch nicht mehr ‘mitnehmen’ können. Damit bedeutet eine Migration zu IPv6 nicht nur die garantierte Verfügbarkeit ausreichend vieler IP-Adressen, sondern stellt auch die Erreichbarkeit eigener Dienstleistungen für die Zukunft sicher ohne von einem Anbieter abhängig zu sein.”

Source 1: IPv6 Migrationsleitfaden für die öffentliche Verwaltung
Source 2: IPv6-Best Practice für die öffentliche Verwaltung

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

DevOps reactions

“Say it with pictures. Describe your feelings about your everyday sysadmin interactions.”


Source 1:

1 Comment

new actors to switch power on/off and measure power usage by AVM

Usually the actors that allow you to switch power on/off and who measure power usage use the 434Mhz or 868Mhz wireless bands to communicate with their base station. Now the german manufacturer AVM came up with a solution that allows you to switch on/off (with an actual button on the device itself and wireless!) and to measure the power consumption of the devices connected to it.

The unspectacular it looks the spectacular are the features:


  • switch up to 2300 watts / 10 ampere
  • use different predefined settings to switch on/off or even use Google Calendar to tell it when to switch
  • measure the energy consumption of connected devices
  • it uses the european DECT standard to communicate with a Fritz!Box base station (which is a requirement)

For around 50 Euro it’s quite an investment but maybe I’ll give it a shot – especially the measurement functionality sounds great. Since I do not have one yet I don’t know anything about how to access it through third party software (h.a.c.s.?)

Source 1:
Source 2:
Source 3:

1 Comment

if this than that – simple recipes for home automation

Workflows are important – and having a lot of switching possiblities and even more sensors that measure things it begins to become important to be able to implement workflows behind all that hardware.

It’s nice to be able to switch light on and of when you want to. But isn’t it even better to have some sort of workflow behind all sorts of triggers. Think of the possibilities!

If this then that is a service to help you define very simple workflows:

Want an example?

It knows a lot of ‘this’ and a lot of ‘that’. So give it a try or even better, add your own home automation software as ‘this’ and ‘that’ 🙂

Source 1:

No Comments

extending the house storage

In times when mobile phone cameras produce pictures of 2 MBytes each and decent DSLR cameras produce pictures in the range of more than 20 Mbytes each – not speaking of the various sensors around the house the question of how all of this is going to be stored is an interesting one.

Prices for mass storage is dropping for years and sized of hard disks are getting bigger and bigger. 3 Tbyte drives are fairly cheap now. Cheap enough to consider serious redundancy even for home use.

Having that home automation hobby and having very specific needs when it comes to home entertainment or even watching TV (we don’t watch live-tv…) we have a relatively huge demand for storage space. That way we are already storing over 10 Tbyte of data, fully encrypted, redundant and backed-up.

Our file server infrastructure grew with the needs over the years.

It started way back in 2003 when I set-up the first fileserver for my apartment back then. It was a fairly huge 19 inch case with 5 hard disks (100 Gbyte each). This machine was filled in 2005 and needed replacement.

We’re in IDE land back then. Because the system hardware died on me due to a power surge all the disks and a new mainboard were seated in a new case with room for a lot of disks.

One interesting detail might be that I consistently used Windows Server for that purpose.

The machine always wasn’t just a fileserver. It was smtp, imap, nntp and media server all the time. That lead to a growing demand of CPU and memory resources. It started with an 800 Mhz AMD Athlon (which died quickly) and for the next years to come I used a 2.8 Ghz Intel Pentium 4. Everything started with Windows Server 2003 – bought in the Microsoft Store when I was a Microsoft employee.

Diskspace demand kept growing and in 2009 a new case, new mainboard + memory and new disks where due.

Since 2009 a Core4Quad Q9550 with 2.8 Ghz and 16 Gbyte of Memory is the heart of our fileserver. Since we’re frequently live-transcoding video streams to feed iPads and iPhones around the house that machine has plenty of grunt to feed the demand. We can have 2 iPhones and 2 iPads playing 720p content without getting stutters. Back in 2009 we also switched to a mixed IDE and SATA setup as you can see in the picture:

Plenty of room when the new case arrived – it was getting crowded just 2 years later in 2011. Every seat was taken – which means 13 disks are in that case and 1 attached through USB.

That adds up to more than 16 Tbyte of raw storage. In 2011 we also upgraded to Windows Server 2008. We never lost a bit with that operating system, not under the heaviest load and even through serious hardware malfunctions. A lot of disks of those 13 died throughout the years: Almost 1 every 2 months was replaced – most of them through extended waranties – of course we have a spare always ready to take the place. Only one time I had to rush to a store to get a replacement drive when two disks failed short after each other. That’s why there’s that 2 Tbyte drive in the 1.5 Tbyte compound…

So it’s getting full again. Since that case isn’t really holding more disks and replacing them is getting harder because of the tight fit the idea was born to now add a bigger case but to just add a NAS/SAN which holds between 6 to 8 disks at once, comes with it’s own redundancy management and exports one big iSCSI volume.

That said a network card was added to the fileserver and a QNAP TS-859 Pro+ 8-bay appliance was bought. This one is a shiny black device which uses less power then an aditional case with extra cpu and memory would have use and after calculating through a number of combinations it’s even the cheapest solution for an 8 drive set-up.

After some intensive testing it seems that the iSCSI approach is the most robust one. Since I am just done with testing the appliance the next step is to buy drives. So stay tuned!

Source 1:


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

generate C# classes from JSON data

It’s a common use case: you’ve got some JSON formatted data and you want to interface with it using your favourite programming language C#. You can write the appropriate classes yourself, or you could use the fabulous json2csharp helper page.

Source 1:
Source 2:
Source 3:

No Comments

das außer-Haus Backup

Irgendwie werden es auch privat immer immer mehr Daten – mit immer zunehmender Geschwindigkeit… Alle paar Jahre tausche ich bei uns im Haushalt die Festplatten/Speicherlösung komplett aus – was zwar immer wieder mal eine Investitions bedeutet, gleichzeitig aber auch dafür sorgt dass Daten nicht irgendwelchen ungünstigen mechanischen, chemischen oder magnetischen Effekten zum Opfer fallen… Ja so etwa alle zwei Jahre wird alles einmal umkopiert… Das dauerte beim letzten Mal zwar gut eine Woche, aber naja so ist das eben…

Aus vielerlei Grund haben wir auch für einen Haushalt recht viel Bedarf an Speicherplatz – teilweise wohl auch weil meine Frau Photographin ist – aber ich als “werf-nix-weg”-Typ werd da auch einen guten Anteil dran haben…

Herr über alle unsere Festplatten (kein Witz, die Rechner bei uns haben ihre Festplatten eigentlich nur um booten zu können) ist seit jeher ein einzelner Rechner welcher ebenso alle paar Jahre komplett ausgetauscht wird. Dieser Rechner verwaltet im Moment zwischen 12-15 Festplatten verschiedener Größe – Hauptarbeit wird zur Zeit durch drei separate (gewachsene) RAID-5 Volumes erledigt…

Nebenbei: Nein ich kann/will da kein RAID-6 fahren ohne entweder Linux zu verwenden (was aus verschiedenen Gründen nicht geht) oder einen Hardware-Controller zu verwenden, was nach einschlägigen Erfahrungen querbeet durch alle möglichen Hardware RAID Controller ausfällt.

Dem ganzen Festplattenstapel liegt dann ein Standard-PC mit Windows Server 2008 zugrunde – zum einen weil ich so eine Lizenz noch herumliegen hatte und zum anderen weil ich in über 10 Jahren File-Server Erfahrungen sammeln noch nie auch nur ein Byte unter Windows verloren habe. Zusätzlich habe ich einen riesigen Haufen Software welche Windows-only ist ud sozusagen ständig laufen muss um Sinn zu machen (Mail-Server Puffer, Newsserver Mirror, Musik und Video Streaming Server, Medienbibliothek, Videorekorder,…

Diese drei großen RAID Volumes schnappt sich dann Truecrypt und ver- und entschlüsselt zuverlässig vor sich hin – im Endeffekt gibt es kein Byte Daten im Haushalt welches nicht verschlüsselt wäre. Gut für uns.

So ein RAID verhindert nun ja aber nicht dass dennoch oben genannte ungünstige Effekte eintreten und man mal eine oder mehrere Defekte zu beklagen hat. Im Normalfall tauscht man die defekte Festplatte, resynct das RAID und alles funktioniert weiter ohne dass man Daten verloren hätte. Allerdings ist das ja kein Backup. Das ist nur eine erste Absicherung gegen mögliche Defekte.

Getreu folgendem kurzen Musikstück:

RAID ist kein Backup

… ist ein RAID eben kein Backup. Backups erledigt bei mir eine Sammlung von Scripten welche jeweils in festen Abständen Vollbackups und Differenz-Backups erstellt. Da kommt dann ein Haufen 1 Gbyte großer Dateien raus welche dann anschliessend per RSync in mühevoller (und dank funktionierendem QoS unbemerkt) Arbeit außer Haus geschafft werden. Die Komplett-Backups dauern aufgrund der großen Menge einfach ewig lang und lassen sich recht einfach dadurch beschleunigen dass man sozusagen das Backup physisch auf einer externen Festplatte zum Server trägt…die Differenz-Backups sind dann meist immer recht flott durchgelaufen. Speicherplatz im Internet wird ja auch immer billiger und so haben wir auch immer ein gutes Off-Site Backup unserer Daten…

Für Windows gibt es neben den üblichen Cygwin Ports von rsync auch eine gute GUI Version namens DeltaCopy. Das Ding kopiert zuverlässig und auch wenn mal der DSL Router rebootet oder hängt nimmt er selbständig die Kopierarbeit wieder auf sobald Netz wieder verfügbar ist.

Damit DeltaCopy seine Daten irgendwo abladen kann wird auf der Gegenstelle natürlich ein rsync Server vorrausgesetzt. Die Konfiguration eines solchen ist nicht sonderlich kompliziert – im Grunde muss man nur rsync installieren und die rsyncd.conf Datei anpassen. Zusätzlich dazu muss man eine Konfigurationsdatei anlegen in welchem nach dem Schema “Benutzername:Passwort” entsprechend die Nutzeraccounts angegeben werden – das wars eigentlich schon. Rsync ist sehr robust und vor allem auch gut für geringere Bandbreiten geeignet. Wenn sich an einer Datei nur wenige Bytes geändert haben müssen auch nur die geänderten Bytes übertragen werden.

Source 1:
Source 2:
Source 3:

No Comments

Shairport – someone reversed an AirPort Express

Low Latency Network Audio was a dream for the past years (see an article of 2005 and 2008) and with AirPlay it’s finally there.

I am using the Apple AirPlay technology for several years now… after it got implemented into iOS it’s just fantastic to have the option to have whatever sound source I want to playing loud and clear in any room I want to…

Okay it’s not quite as sophisticated as the sonos solution regarding the control of multiple music sources in multiple rooms but it get’s the job done in an apartment.

So back to the topic: Apple integrated the AirPlay technology into their wireless base station “AirPort Express”. Basically AirPlay is a piece of software which receives an encrypted audio stream over the network and outputs the stream to the SPDIF or audio jack.

Back in 2005 there already was an emulator of this protocol called “Fairport” but Apple decided to encrypt the AirPlay traffic. This led to the problem that the encryption key was unkown because it’s baked into the AirPort Express firmware. And this is where the good news start:

“My girlfriend moved house, and her Airport Express no longer made it with her wireless access point. I figured it’d be easy to find an ApEx emulator – there are several open source apps out there to play to them. However, I was disappointed to find that Apple used a public-key crypto scheme, and there’s a private key hiding inside the ApEx. So I took it apart (I still have scars from opening the glued case!), dumped the ROM, and reverse engineered the keys out of it.”

So to keep things short: Someone got an AirPort Express, dumped the firmware, extracted the AirPlay encryption keys and wrote an emulator of the AirPlay protocol which uses the key. Voilá!

ShairPort is available in source code on the site of the guy and obviously it’s unsure if Apple will react by changing the encryption key in the future. But for the time being it works as advertised:

I took one of my computers and followed the instructions to update perl, install Macports and then run ShairPort. So when ShairPort is run it looks not as appealing as expected:

Notably  it uses IPv6 to communicate between iTunes and ShairPort… Oh I almost forgot to show how it looks in iTunes:

On another side note: It works on Linux, Windows and Mac OS X 🙂

Source 1: Apple AirPlay
Source 2: Sonos
Source 3: Apple AirPort Express
Source 4: ShairPort

No Comments

winter 2011 hacking project: Home Automation

In the last 10+ years I was fiddling with different home automation concepts. Mostly without broad use cases because at that time no one seemed to be interested in having sensors and actors like crazy at home. In fact not that many people seem to care these days.

Having more and more hardware and software around us creates the use cases for a broader audience people like me have for 10+ years. Mainstream is a bitch for nerds Smiley

That said I found a nice plastic box I want to use in a winter project. This plastic box is called “EzControl XS1”. It comes with several visible and “invisible” interfaces.

The visible and obvious ones are: power, 100 mbit ethernet, sd card slot. So it takes some power and does something on the network. The not so obvious and therefore “invisible” interfaces are the most interesting ones: the EzControl XS1 comes with the ability to send and receive on 433 Mhz and 868 Mhz.


Yes that are the ranges used by switchable and dimable power sockets, temperature sensor and AMR. The EzControl XS1 is not that cheap (coming at 189 Euros for the base version and additional 65 Euros per upgrade option). I do not own one yet so it’s the plan to acquire at least one and start of with dimable power sockets and add more sensors and actors on the way

One great feature of the EzControl XS1 is the embedded WebServer with which the users application (the one I want to write) can interact using a HTTP/JSON Protocol. Oh dear: Sensor data and Actor control using JSON. How great is that!

There is some example code available (even a proprietary iPad/iPhone client) but since I want to have some custom features I do not currently see to be available in software I am going to write a set of tools which will get and protocol sensor data and run scripts to controls actors. Oh it’ll be all available as open source (license not yet chosen).

P.S.: If some one from Rose+Herleth is reading this and wants to help – send me a test unit Smiley

Source 1: (in german though)
Source 2:
Source 3:

No Comments

Using Windows Deployment Services (WDS) to install Linux over Network (PXE)

Developing software is hard work – especially when you target several operating systems. One task that you have to perform quite often would be to deploy a new installation of an operating system as fast as possible on a test machine.

Doing this with Windows is easy – you can use the Windows Deployment Services to bootstrap Windows onto almost every machine which can boot over ethernet using PXE. Everything needed to make WDS work on a Windows Boot-Image is located on that image. Since it’s that easy I won’t dive into more detail here.

What I want to show in greater detail is how you can use WDS to deploy even Linux over your network.

Step 1: Get PXELINUX

What’s needed to boot Linux over a network is a dedicated PXE Boot Loader. This one is called PXELINUX and can be downloaded here.

“PXELINUX is a SYSLINUX derivative, for booting Linux off a network server, using a network ROM conforming to the Intel PXE (Pre-Execution Environment) specification.”

On the homepage of PXELINUX is also a short tutorial which files you need and where to copy them.

Step 2: Setup WDS with PXELINUX

I suppose you got your WDS Installation up and running and you are able to deploy Windows. If that’s the case you can go to your WDS Server Management Tool and right-click on the server name – in my case “fileserver.sones”. If you select “Properties” in the context menu you would see the properties windows like in the screenshot below:


You have to change the Boot-Loader from the standard Windows BootMgr to the newly downloaded PXELINUX bootloader. Since this bootloader comes with it’s own set of config files you can edit this config file to allow booting into Windows.

Step 3: Edit PXELINUX configuration filewds-pxelinux-2 

The first entry I made into the boot menu of the PXELINUX boot loader is the “Install Windows…” entry. Since the first thing the users will see after booting is the PXELINUX loader menu they need to be able to continue to their Windows Installation. Since this Windows Installation cannot be handled by the PXELINUX loader you have to define a boot menu entry which looks a lot like this:

MENU LABEL Install Windows…
KERNEL pxeboot.0

To add OpenSuSE to the menu you would add an entry looking like this:

LABEL opensuse
MENU LABEL Install OpenSuSE 11.x
kernel /Linux/opensuse/linux
append initrd=/Linux/opensuse/initrd splash=silent showopts

The paths given in the above entry should be altered according to the paths you’re using in your installation. I took the /Linux/opensuse/ files from the network install dvd images of OpenSuSE.


That’s basically everything there is about the installation of Linux (Debian works accordingly) over PXE and WDS.

And finally this is what it should look like if everything worked great:


Source 1:
Source 2:


One step closer to digital nirvana…

Thanks to a podcast I found a great software for my iPhone and iPod touch. It’s a small tool which does cost less than 3 Euro and it’s served by a server tool which runs on Windows and Mac OS X.

It’s called Air Video and it’s frikin’ awesome! ™

What you do is you install the server software and point it to all your directories / drives that might contain video material. You then take your iPhone and install the client app. If you configured the server to be available over the internet you can now connect from anywhere you want using a pass-pin (which is generated) and a password (which is set by you). And by “from anywhere” they mean “anywhere”. WLAN or 3g didn’t make any difference in my test. You start the client, point to a video file and most of the time you are asked if you a) want to directly play is (if the file is ipod-compatible) or b) if you want to live-convert it and play it (when the file isn’t compatible and needs to be re-encoded live for you) or c) if you want to add the file to a conversion queue which will off-line convert the video for you.

In terms of “finding your video” it does look like this:

Air Video

Simple, eh? Taping a video will bring up this screen:


As I said – Play directoy, Play with Live Conversion and Offline-Conversion-Queue…

It did work with EVERY Video I tried. When I tried Full-HD Movies my serving PC wasn’t able to handle the load but everyhing in SD worked great which is perfect for me.


Therefore I can highly recommend this tool – it really does work better than anything I’ve seen before.


No Comments

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

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

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.


Allowing Web Service host to run locally without Administrator rights

If you’re writing WCF Web Services you maybe came to the point when you needed Administrator rights to start the Web ServiceHost. As a matter of fact the only thing you need is the right to use a that URL space.

So for  a WCF Web Service running on http://localhost:80/TestService/Ep2 you would use the netsh command line tool to set the correct rights.

Step 1: Start an Administrator-Commandline

Step 2: run “netsh http add urlacl url=http://+80/TestService/Ep2 user=SONES\bietiekay

(SONES\bietiekay = the Domain+User to grant the right)


1 Comment

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

Using Jabber to monitor Windows EventLogs

Like every company we also got several machines working just for our infrastructural needs like Sharepoints, Activedirectory, Databases, Backup-Servers and so on.

To monitor many machines we came across the idea to use Jabber Instant Messaging to monitor the machines. For example the VPN should drop a line to specified jabber adresses if someone connects or disconnects. Every single machine is maintaining it’s own log – which means you would have to consolidate them in some ways. And since consolidation is not the masterplan – since you would need an event alarm system which sends out alarm calls if something weird is happening, you would need that alarm system too.

So we wrote (while waiting for the machines to install) several small tools which provide a gateway between syslog-ng, windows event logs and Jabber.

Since we are using this productively my Jabber Client Window looks something like this:


As you can see there are 3 machines online right now – and since these are Linux machines they also provide some status information like load averages and free memory. The Linux version was written by ahzf in perl – and obviously his library can handle the presence and status information much better than the one I used for the Windows version 🙂 – So there are no presence and status informations for the Windows machines right now.

The Windows version is written in C# and relies on the Jabber.NET library. It comes with a small setup and runs as a windows service.


In the setup you have to enter the username+password of a user that can access the local Windows Event Log. After the successful setup you need to edit the config file:


It’s XML and quite easy to understand (I think) – so you define the jabber server, the user, the password, the Users that you want to receive the messages and the EventLog you want to monitor.

After starting the service you get the startup message via the jabber server and from now on everything that is written into the Windows Event Log is sent to the accounts you specified. Easy eh?

P.S.: sourcecode release will be after we packaged everything.



Linksys: Epic FAIL! – AVM: Epic WIN!

We wanted to have a separate Office wireless network and a separate guest wireless network in our new Office here at sones. So it was decided to take the old and working wireless router and dedicate him as the guest wirless network base station and buy a new one with 802.11n capabilities to work as the brand new office wireless network base station.

Since we had great experiences with older Linksys WLAN routers we first decided to buy this one:


Linksys WRT160N

This one was promised to work as a 802.11n capable router but it just did not. There’s nothing more to say about this thing besides: horrible UI, not working, no 5ghz capabilities – we returned this router immediately to the dealer and ordered a new one. This time:


AVM Fritz!Box 3270

And this one is a winner! Not only was our network up and running within 45 minutes – it also is faster than anything I’ve seen so far. There are even some very very cool frequency monitoring capabilities:


Not to mention the energy saving functionalities:


No Comments

elastic windows

Amazon has done it’s thing and you can now order Windows based machinery based on EC2. That’s great news for us since we’re definitly planning to make our software also available on EC2.

“Amazon EC2 running Microsoft Windows Server® 2003 is a fast and dependable environment for deploying applications using the Microsoft Web Platform, including ASP.NET, ASP.NET AJAX, Silverlight™, and Internet Information Server (IIS). Amazon EC2 enables you to run any compatible Windows-based solution on AWS’ high-performance, reliable, cost-effective, cloud computing platform. Common Windows use cases include website and web-service hosting, high-performance computing (HPC) and data processing, media transcoding, distributed testing, ASP.NET application hosting, and any other application requiring Windows software. Amazon EC2 also now supports the SQL Server® Express and SQL Server Standard databases, and makes those offerings available to customers on an hourly basis.”


No Comments

DIY PMR Gateway

In my case it’s just partly do-it-yourself: Michael and Peter did the cable soldering and I wrote the software that controls the serial interface to the PMR sender/receiver.

My gateway is on PMR channel 5 with no CTCSS configured in the Campus area of the TU-Ilmenau. A gateway is only just a PMR radio connected to a PC which is logged into a Teamspeak server which is connected to several other gateways (citizen radio / PMR / …)

So if you talk within the range of my gateway you’ll be heard in more than 24 areas across germany over PMR and citizen radio.


One toolset which was particularly useful is the VU-Meter tools. You can use them to monitor your input/output ports and tune them for perfect modulation. You can get them here and they look like this:


Since the cable soldering was one piece of craftsmanship a picture of the radio and the cable:

the computer side of the interface

the radio side of the interface

If you want to connect from outside the range of the PMR you should go to the homepage of Freies Funknetz and get all the necessary information there.

Source 1:
Source 2:
Source 3:

1 Comment

I finally got my low latency network audio solution

In May 2005 I wrote about a wish I had for years:

“As usual I’ve got a very strange wish what nobody else seems to have on this planet. I have several computers of different platforms. And on one of this machines there are speakers attached…I want to have the possibility to output from any of the machines to the speakers. And please loss-less and low latency!”

It took more than 3 years to fulfill this particular wish. But now it’s done. In 2005 I mentioned the Airfoil software that could run on MacOS X and forward sound from almost every application to an AirTunes compatible device. As it turns out Rogue Amoeba did their homework and created a free “Airfoil Speakers” application which can be used on Windows and MacOS X.

So the things are simple: Start the speaker application on a machine that is in the same network/subnet as the Airfoil master. The virtual speaker is then displayed on the master machine and you can assign a sound source from that machine to the speaker. Hmm… Simple Setup sample: One machine is in my kitchen (Windows XP machine) and one machine is on my desk – an iMac. In the kitchen only the speaker application is started and the iMac instantly “sees” the speaker. One click and the sound output of my desk machine is forwarded through the network to the kitchen… Easy and cool. One can think of any other combination of Speaker/Master application – even multiple speakers can be powered by one master…oh joy!

So here is what the master looks like:


and this is what it looks like on a client (speaker):


Source 1: nerd wish of 2005
Source 2:

No Comments

how to push an INN NNTP newsserver dump to a new newsserver…

I happen to have this ginormous archive from a local newsserver – more than 14 gigabytes of text and more than 8 years of history. Now this archive is a dump from the INN NNTP server that was previously used. It’s one folder per newsgroup and one file per article.

So I now want to integrate that archive into my own new newsserver – so what I am going to do is: Writing a small client application that can push all the articles from the folders to the new newsserver via nntp procotol.

Since the NNTP protocol is trivial to code and to explain I won’t reimplement it once again – instead I am going to use Randy Charles Morins nice article about accessing NNTP servers with C#:

“NNTP is an older fading protocol in the Internet protocol family. The protocol is used to retrieve news from news server, a.k.a. NetNews servers. The protocol works by posting messages into various forums, a.k.a. newsgroups. Then other end-users can read the recent posts in the forums. There also exist protocols for distributing NetNews contents amongst various NetNews servers, allowing thousands of servers to share news and forums. The most popular news server is of course Microsoft’s [nntp://]. More often than not, you can launch your NetNews client by typing the nntp URL in your browser’s address bar.”

I just made a quick-n-dirty addition of NNTP USER/PASS Authentification because my new server needs a username/password authentification. (NNTP Authentification is specified in RFC 4643)

The tool is easy to use since it’s command line and only takes simple parameters:


Grab the source and compiled binary here: (32,82 KB)

I release all of this under cc-by-nc-sa license.

Source 1:
Source 2:
Source 3: (32,82 KB)

No Comments

a concept map of everything “distributed systems”

Apparently someone had some time to kill:

“The other day I had this idea, what if I were to take all the concepts I write, speak, and consult about and turn them into a concept map. That might help me explain how things like messaging, unit of work, and exception management work together and why. It also shouldn’t be too much work. Or so I thought.

I started out with a blank piece of paper, and this is what happened:”



1 Comment

Version 2 (final) of my Dropbox Tool

Some days ago I wrote about a 10 minute hack of a tool I always wanted to have – now I was using it quite often so I decided to upgrade it a bit – besides of the usual bugfixing I added these features:

  • unlimited filesize – if the file is >4 Megabyte it’ll split into smaller portions and uploaded one by one
  • Progressbar 🙂 When uploading severel hundred Mbytes you just want a progress indicator.
  • new Icon (curtesy of my wife – she did not like the old icon…)


You can grab the source here.

Source 1: (92,77 KB)
Source 2: a selfmade web drop box in 10 minutes

No Comments

a selfmade web drop box in 10 minutes

I often have to share files with people – files which most of the time can be publically accessible – the problem is though that it’s far to much copy-n-paste involved to get the file uploaded and the URL of the file put together. I just made my life a bit easier and invested some minutes to write a small “DropBox” application that uses a custom webservice hosted on one of my machines to upload, list and delete files and to allow users that have the correct URL to download files.


The path scheme is obviously just that I added a dropped folder in which the files will be stored and the webservice itself – that’s all on the webserver machine (having this folder setup as a website using ASP.NET 2.0)

For the client I wrote this little app:


It’s no rocket science but it’s a good example for a small app that utilizes a webservice. If you want to use it you have to configure the webservice and the Client Application:

for the webservice:


You have to adjust the paths, URLs and the Password.

for the application:


You just have to set the right Password.

If you’re set everything up correctly you should be able to drop files onto the Client Application window and get them uploaded to your webserver – the URL is automatically in your clipboard when everything worked.

If you click on the “Manage” tab in the Client Application you can get a list of all files on the server – clicking on the name of the file will automatically add the url to that file to your clipboard – if you want to delete a file – just click on it and click “delete selected file”.

The code can be considered public-domain and can be downloaded here.

I used the open-source icons from the Tango Desktop project to make a simple icon for the client application.

Source 1: DropBoxService-v1.rar (94,09 KB)
Source 2:

1 Comment

Windows Communication Foundation (WCF) Improvements for .NET 3.5 SP1

Servicepack 1 for the .NET Framework 3.5 is coming out so there are many new features and improvements… like this list of WCF Improvements:

  • New Hosting Wizard for WCF Service projects.
  • Enhancements in Test Client such as support for RM Sessions, Message Contract and Nullable types enables testing of broader set of WCF-based services.
  • Expanding reach of DataContract Serializer by relaxing the need of having [DataContract]/ [DataMember] on types and by supporting an interoperable mechanism for dealing with object references.
  • Improved Partial Trust Debugging Experience with support for Event Log.
  • Support for ADO.NET Entity Framework entities in WCF contracts.
  • Improvements in writing REST based services ranging from easily supporting ServiceDocuments publication and consumption to providing greater control and usability of UriTemplate.
  • Significant performance improvements on large workflow-based projects in Visual Studio.
  • Considerable scalability increases for hosted WCF services in IIS7-integrated mode.


No Comments

A .net web debugging proxy tool

If you’re frequently debugging web traffic (http/https) you may want to take a look at Fiddler:

“Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and “fiddle” with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, and can be extended using any .NET language.

Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more.”



No Comments

the ethernet wedding ring… OMG!

Since we already got them this is not an option for us… but maybe for your wedding:


1 Comment

YAPS progress (epg, sap / sdp, integration,…)

It’s been some time since I wrote about my little digital video disk recorder project and I think it’s time to wrap up some things. First of all I am using this software myself on a daily basis, having recorded about 1000 recordings in the last 4 months alone tells something. YAPS now is capable of handling multiple users – with each one having their own recordings and play-stop-positions.

Here are the new features in a short list:

  • Electronic Program Guide (EPG) Integration (multiple transponders/streams if you like)
  • Session Announcement Protocol / Session Description Protocol Integration
  • Multi-User support with capability checking
  • Cassini / ASP.NET Integration to allow ASP.NET web applications to run on YAPS
  • WCF Webservice interface to expose video disk recorder internal data (recordings list, event list,…)
  • Automatic and Reoccuring recordings
  • several new graphics


The daily-build system is broken as of now but you can always grab the latest sourcecode from here.

For a complete changelog hit the jump.

Here’s the complete changelog since the last article about yaps:


  • added %render_automatic_and_reoccuring_recording_table% keyword; the other recording table keywords don’t display automatic/reoccuring events
  • added canAccessOthersRecordings capability and capability handling
  • added %holdingtime%, %comment% and %elapsed_holdingtime% to the Recording/Recorded/AutomaticReoccuringRecording table
  • added %render_currently_running_epg_events_table% keyword


  • added Session Description Protocol parser
  • added Session Announcement Protocol setting data (SAP_IPAdress, SAP_Port)
  • added Session Announcement Protocol processor
  • bugfix attempt to fix a race condition that leads to no RecordingList rendering and no more recordings…


  • added WCF Service Host to allow self hosting of data
  • switched to .NET Framework 3.5


  • added feature that automatic EPG recordings end when they do end on the channel – Event EndTime is used now
  • rewrote Cassini Webserver integration
  • fixed a bug in the Template Processor that caused a display of the runtime as fraction of minutes…


  • automatic epg recordings are now looking at the channel id and if it’s set they only record events on that channel
  • automatig epg recordings are now looking for a timespan in which they are active
  • recorded listing template processor is now aware of automatic recordings (icon, time rendering)
  • added automatic epg wait icon on recordingslist html page
  • changed automatic epg recording to take the real name from the epg instead of the one that was entered


  • Recording data structure changed to reflect new “automatic epg based recording” feature
  • added automatic EPG recording feature; based on “AutomaticEPGRecordingKeywords”
  • changed Tuxbox Implementation to show channel ID on Xbox Media Center
  • changed addrecording.html and http vcr command handling (addrecording) to reflect automatic epg recording feature
  • implemented automatic epg based recording; just enter keywords + recordingtime + name + isAutomatic=true –> Automatic recording


  • changed EPG error handling to only stop listening to EPG events when 25 errors in a row occur
  • changed EPG handling to display new events on unknown service ids


  • fixed holding-time bug


  • updated neu.png
  • added Holding-Time Handling


  • added reoccuring event handling in VCRScheduler
  • added reoccuring event handling in HTML page AddRecordings
  • updated years and version numbers
  • bugfixed RecordingsPlayed statistics
  • updated Recordings-Table to reflect status if recording is reoccuring or not
  • added SVG Files for all YAPS graphics


  • updated solutions to Visual Studio 2008


  • Added HoldingTime to make “forget to delete a recording” impossible; HoldingTime of 0 is indefinite, everything else means hold n+1 days
  • Changed behaviour of Recordings Streaming: The StopPosition Counter is updated in realtime which means: You don’t have to close a recording to watch it from the current Position
  • added Cassini Wrapper


  • integration of Cassini v2 into YAPS
  • added some statistics


  • added a new management data structure to the data structures/Recording.cs that holds a list of UserStopPosition; Each User now has his own LastStoppedPosition for each recording.


  • added RecordingsThumbnail class to generate a Thumbnail picture for a recording
  • added generateThumbnailFilename to XBMCPlaylistFilesHelper
  • added thumbnail creation and deletion routines to multicast_vcr and others
  • udpating thumbnail when playcounter/position is updated…
  • added “Updating recording…” console output
  • added isRTP property to channelist (default value is false); you can determine if RTP header should be stripped or not for a specific channel


  • fixed a bug in the /xml/CurrentServiceData section that caused an exception when no EPG data was known
  • added error handling to the EPG Processor Thread; after 25 errors a thread will be shut down


  • added /cgi-bin/zapto to http handling
  • added /xml/streaminfo to http handling
  • added Name2ServiceID to ChannelAndStationMapper
  • added TuxboxCurrentServiceData structure and handling
  • added /xml/currentservicedata method to http server
  • added /xml/boxinfo method to http server
  • added boxinfo data structure


  • several changes for debugging purposes to the YAPS multicast processor to debug a specific problem
  • fixed a thread unsafe bug in multicast processor
  • fixed several more thread unsafe things in multicast processor and vcrscheduler
  • changed behaviour: If a streaming client now refuses to accept data packets he will be disconnected after 1 second (until timeshift is implemented)


  • fixed a bug in VCRScheduler that could lead to a crash on startup (was not threadsafe)


  • added %rendertransformation($input_url,$xslt_url)% keyword to the TemplateProcessor


  • fixed a memory leak in the rss generator
  • added TuxBoxServices data structure
  • added tuxbox /xml/services call handler to http processor
  • changed the MulticastEPG source data handling so that the multicastEPG Sources are now stored in the settings.dat.xml (misc settings) file
  • fixed a bug in the EPGProcessor that caused an empty CurrentlyPlayingList
  • added small testing portion
  • fixed some bugs in http server
  • rewrote tuxbox services data structure and handling (helping hand: Andreas Heil)


  • reimplemented the whole Channel-Name-Picture-ServiceID-MulticastIP-MulticastPort Mapping and created a new data structure and XML file that holds that data
  • added filtering functionality to the EPG Processor that filters only known channel EPG data and discards data for unkown channels
  • fixed the XBMCSyncProcessor bug; I had the file deletion functionality disabled….


  • added the multicastedEPGProcessor Implementation, does maintain a CurrentlyRunning List but is not used yet (Implementation just for leak and stability testing)
  • added new Channel/StationID mapping data structure


  • removed JMS/DVB subproject
  • several changes to the JMS/EPG subproject to make JMS/DVB obsolete
  • working EPG implementation (not yet activated) — need to get working


  • now displaying associated username instead of IP address in the http logfile
  • added EPG Processor startup to YAPS.cs



  • fixed a bug in the XBMC Playlist File branch; XBMC Playlistfiles respect now a port number setting != default port 80


  • changed multicast behaviour: we don’t use RTP from now on; there’s just plain UDP
  • added new EPG test data
  • fixed a bug in multicast_vcr
  • fixed DeleteRecordings; did not work for several versions – you can now delete scheduled recordings
  • fixed a bug in the ConsoleOutputLogger that leads to a “Collection was modified after the enumerator was instantiated.” exception when the logoutput is accessed while it’s written

Source 1:
Source 2:,guid,71a24ec5-8576-4fe6-b5f5-8607017e5f00.aspx

No Comments

publish your iTunes library on your network without actually using iTunes on the client

There’s a new version of Dot.Tunes out which is now available for free. That’s good news and if you ever wanted to access your iTunes Library and you were not in Bonjour range…try this great tool!

Bild 1

“DOT.TUNES is not some lightweight iTunes utility. It’s a fully developed web server application that supports MP3, AAC, AIFF, WAV, MPEG, MP4, and MOV files, allowing you to share your iTunes library contents with your friends in other cities, your classmates across the dorm or the coworkers scattered throughout the building. DOT.TUNES contains a custom web server designed specifically to serve the audio tracks from your iTunes at lightning fast speeds. Through seamless integration with your iTunes base, DOT.TUNES easily handles large libraries without missing a beat.”

I tried it and it’s working quite well – especially if you consider that there’s a bunch of plugins available.(which you have to pay for)


No Comments

when you think you’re invulnerable by using Amazon services

Oh last year I worked with many different companies that thought that the best thing they could do to increase their availability is to outsource their complete webserver and storage infrastructure to Amazon.

Now last week there was this 2 hour black out of parts of the Amazon S3 infrastructure which should have this “wake up call” effect for most of those hype-believers.

S3 is great for all sorts of applications but you – like in everything IT – really shouldn’t depend on just one service provider.


No Comments

a replacement software for your UMTS/3G card…

With every UMTS/3G card comes a tool that tracks your connection information, your traffic and everything… and it looks like this for a Vodafone UMTS card:

That’s not even close to cute and well useable. So someone took the task and created this:


A small tool that is compatible with almost any available UMTS/3G hardware on earth and has these features:

tiny executable: 0.3 MB, very little CPU load

  • permanently displaying:
    • up- and download speed in kBytes/s, used data volume in kByte (with round option), used online time (with round option), mode of operation UMTS(3G)/GPRS, signal strength in percent and dBm, network name and cell id (if provided by pc card), homezone status
  • movable mini window with information display:
    • sitting on the task bar, at upper screen border, in front of the start button, as dynamic tray icon with gauges
  • warning when exceeding data volume or online time
  • optional beep output for signal strength,network change and cell change
  • manual or automatic selection of network and mode
  • optional warning when using not listet networks
  • determination of receivable networks
  • retrieve and charge prepaid credit
  • automatics:
    • start/terminate connections,start extern programs such as Browser or Ping, reconnect after errors/freezes, generate network entry, dynamic com port determination
  • adjustable connection error tolerance
  • connection test by “smart Ping”
  • SMS reception can be activated
  • PC remote-control by SMS
  • SMS transmission by batch job
  • logging of data volume and connection information
  • connection statistics as semigraphics
  • timer for program end or shutdown
  • deactivate graphics compression (some networks)
  • scriptable
  • service terminal for data card commands
  • shows data card netlocks
  • service log for data card control communication
  • for Windows 2000/XP/Vista/embedded

And the best of all is that this is a freeware tool. Unfortunately it’s not available for OSX.


1 Comment

WLAN’s Labyrinth

So the Telekom finally managed to bring DSL to my home region. Immediately new stuff was bought to establish a WLAN-network inside the house. When I went home of course I wanted to add my laptop ( a Medion MD 41100, 4 years old) to the net to gain access. But after never having used the WLAN-functions before (yes, there are such people…) no one could know that this would end up in such tremendous trial and error.

The router was a Speedport W 900V and working. It took me about an hour to find the add-new-user-option in the router-menu. After filling in the MAC of my Intel PRO/Wireless LAN 2100 card and creating a new WLAN-connection I was ready to go but nothing happened (yet).

Speedport W 900V

From now I tried several ways to get it done:

1. Get your drivers updated

This was strongly recommended because my card didn’t know the WPA-coding yet, only the older WEP-standard. OK, done. Now I was able to type in some data required by the router. But still no connection.

2. Get your Windows updated

Somewhere I read that there is a support-patch for WPA by Microsoft. Downloaded and installed. Still no access.

3. Use the cards firmware

Intel programmed a software called Intel PROSet for doing some adjustments if needed and adding a new connection which I did. But again without any success.

Here an important thought crossed my mind: Maybe the card is deactivated (The problem had to be clearly somewhere in my laptop because I was using another one for researching in the Internet, so there was a WLAN available and it was working.).

Some clues:

PROSet-configuration (hardware deactivated)

Tray-icon (no network, no connection, transmitter OFF)

Good! So I narrowed down the problem. But how to activate the transmitter?

4. Try the Windows-network-configuration

Many options but nowhere the one I was looking for.

5. Try the firmware

Look above to the PROSet-configuration image: The option to activate the transmitter is simply disabled. Hmm…

6. Try the tray-icon

No, not here.

7. Check your BIOS

Yes, there is a WLAN-entry. But my Phoenix-BIOS has only two modes: card always deactivated on every start or card activated only if activated prior to the system shut-down. So no solution here.

8. Remove the card from your profile

Done and the same as before.

9. Deep-looking in windows

As you know there is a life under the desktop. Typing in %systemroot%\system32\services.msc brought up a nice menu about the systems local services. Here you look for network-connections as follows:

The way to start already has been “automatic”. OK.

10. Look for a hardware-button

Some of you might mention here that this could have happened much earlier: simply looking for an activation-button. And you are right, this button exists. However, pressing it changed nothing.

The solution:

The hardware-button proved to be a good hint. Next I checked the program for controlling the programmable buttons (EzSystem).

Hey, there is an option for WLAN. Activated and one system restart later it was like it was before: the card still deactivated. Then I checked out the directory of this EzSystem-Software.

wbutton.exe –> nothing happened

wirelesscontrol.exe –> peng! WLAN activated and access to the Internet.

Finally it worked. Let’s review it: Obviously you cannot activate WLAN neither through Windows nor the cards firmware; you need a third party’s software. This is (in my opinion) a very weird way.

So I guess that simply some links between components got lost and you have to re-engineer that. A hard task, especially if you have formatted the harddisc right after the purchase, do not knowing anything anymore about the original state and with the support disc hundreds of kilometers away.

Jens Heymann

No Comments

Windows Eventlog Client/Server Application to monitor your servers…

When I first saw a review of “Microsoft Windows Home Server” I was impressed by several features. One that I never thought about is that little icon on each Home Server client that shows you the overall status of your home network:


This little icon can look like this, depending on the status:


As you can see – it’ll give you a clean and fast status by telling you that everything is okay on your network or that anything needs your, maybe immediate, attention.

I am administrating round about 12 Windows servers and I always looked for a clean and easy to use tool to monitor them. So I came up with a plan: Build my own tool.

Since I am extensivly using Windows Communication Foundation in the last weeks I was intrigued to try it on that matter. So I built a WCF selfhosting service that makes the eventlog of the machine it is running on available. Then I built a small client that fits nicely in your tray. I am not quite done yet but it’s a good start.


As you can see. There is the Host, running on the server and making all Eventlogs of this machine available. Then there is “SmallClient” – being exactly this: a small client for testing purposes only. And thirdly there’s the EventLogClient – giving you the full blown user interface…

This is how it looks when you add a server to the client:


And this is how it looks when you configure a filter:


I thought it would be nice to have this workflow:

  1. configure/add the server and select the eventlog that you want to monitor
  2. create and configure a filter that is matched upon the particular eventlog source

For the icons (see above) I used one of the icons from the Tango Icon Gallery as a starting point and added some color and stuff.

So why do I even talk about all this? I want YOU to take the code and use it…add more functionality…I am releasing the code(except the icons) under the BSD license. So you can do almost whatever you want with it – but I would love to hear about the things you’re doing with my code and idea.

You can download the sourcecode of my little project here. (200 Kbytes)

Source 1: Home Server Homepage
Source 2:
Source 3: Sourcecode.


When things seem to take forever…

I just started the formating of a 3 Tbyte truecrypt volume which is located on a Promise Vtrak m500i connected via 1 Gbit/s iSCSI…


This is some serious big truecrypt volume, isn’t it? (at least today it is…)

No Comments

sitting on the Roundtable…

FeM is in need of a decent conferencing system for years now. And it seems that there’s something really cool showing up in the next days. As of now Microsoft is going to put it’s Roundtable on sale.

“Microsoft RoundTable is a very cool videoconferencing system featuring 360° panoramic views powered by its 5 built-in cameras.”

“The RoundTable actually installs two USB camera devices. The first is the Active Speaker which uses the RoundTable’s 6 microphones to locate where in the room the active speaker is and then focus one of the 5 cameras onto that person. I suspect it may actually use 2 cameras to focus on a person, since it always appears that the speaker is “centered” which probably would require at least 2 camera images and then the images are “spliced” together, processed, and then transmitted over the USB cable. The second USB camera device is the panoramic camera which combines the 5 camera images into a single panoramic image.”

Source: Roundtable Review

No Comments

If you have dropped connections in Vista…

… you’ll probably can solve this problem by activating your integrated Firewall.

It seems that Vista just like Windows XP SP2 enforces the same stupid so called “worm restricting measure”. To make it short: If you disabled the integrated Windows Vista Firewall you’ll have a connection limit. And you probably will run into this limit resulting in strange network behaviours, dropping VPN connections and so on.

Beside activating the integrated Windows Firewall you can disable the TCP/IP “Autotuning” feature:

Click on the Start menu and type cmd in the search box. Type CTR+SHIFT+ENTER to tell the command prompt to open with elevated privileges.
In the command prompt window, type netsh int tcp set global autotuninglevel=disable and hit Enter
After getting the OK returned in the command prompt window, restart to activate the change.

Way to go when it comes to networking :-/

No Comments

how (almost) everything works at ISWIsion

Namenlos wrote about how almost everything is held together at this years ISWI technically. Well he even draw something neat to look at and say “Look, that we did!”

“Die Audiostrecke wird mittels 6 Behringer Ultragain Pro-8 Digital ADA8000 aufgebaut. Diese Geräte nehmen 8 Kanäle Audio via XLR entgegen und setzen die auf eine ADAT-Verbindung über ein TOS-Link-Kabel um. Da die TOS-Links nur 10m weit gehen hängt an jedem Behringer ein ADAT-Extender, der das ganze gleich auf Glasfaser umsetzt. So kommt der Ton vom Studio zur Regie und zurück. Zusätzlich liegen noch 5 Strecken Video (so ein Fernsehsender ganz ohne Bild is ja auch nix.). Zum Abschluss verteilt in der Fischerhütte nochmal ein HP Procurve 2524 ein bischen Netz an die Surfterminals und die Leute vom ebenfalls dort beheimateten L.i.g.h.t. Projekt.”

And then deka came and created another drawing of the Live Streaming infrastructure:


No Comments

Attention: no VLAN settings with Intel Network Interface Cards

When you’re using Windows Server 2003 R2 64bit Edition with SP2/IE7 you will most likely not be able to access the advanced settings of an Intel Network Interface card (Teaming, VLAN settings). Instead you get the simple dialog:

Damn it. I don’t have a solution for this right now and it does corrupt my plan using one of the servers for VLAN games….

Anyone reading this got a solution how to get the VLAN settings tabs back?

1 Comment