Nov 262013

We need to debug / reenable the VoIP connection, as Hetzner has switched routers. The new routers drop fragmented UDP packets which used to do our SIP messages.

The best way to reach us in the meantime is via our contact form. We will get back to you by mail or phone asap (we can place outgoing calls, still.)

Update (06.12.13)

We can be reached by phone again, but the connection drops after two minutes.

Huge thanks go out to the Null Team of YATE fame for putting up a new Alpha in a couple of days which fixes a TCP/IP buffering bug we encountered in the transition.

We need to continue to debug this.

No thanks to Hetzner for switching perfectly good equipment and breaking functioning setups without advance warning … ! There must be other alternatives than discarding fragmented UDP packets.

Jun 192013

Over my desk (over a big map of the world) I have a sign, which says “The map is not the territory”. It is a quote by Korzybski, a favorite of Bob Wilson’s (of Illuminatus! fame). Also one of me …

A short story about traffic

Today, my brother came to me and wanted the Galaxy Tab I had been using for some days now. It used to be mine, then he took it with him to China, and … actually never really gave it back. Which was mostly fine by me, I got used to it. I did go to Berlin a couple of days ago, and took it with me – I’ve switched the SIMs, installing my Fonic SIM, which includes 300 MB traffic for 10 €.

Today, I was assuming that the SIM was still installed – he asked me to have the phone after I came back from Berlin, probably to chat with some Chinese guys. Turns out it hadn’t been – he had installed his own Alice SIM. And I had been around town yesterday, him probably, too, and the packet switched traffic had not been turned off. It was not used for anything special, mostly the system running updates automatically, probably. Still …

Two things: first, it’s a very expensive mistake (traffic with Alice is about 15 Cent / 100 kB with the first 30 MB being free, if I remember correctly). Second, it’s a predictable mistake – something which can happen easily.

The problem was that our mindstates / maps of the world (in this case of the SIM inside the phone) had not been synchronised. I did not see him exchange my SIM for his SIM, and therefore did not foresee the possible “danger” of using very expensive packet switched traffic. In essence, Alice charges TOO MUCH for this traffic, making the mistake unnecessary expensive.


But that’s not the point of this blog post. The point is Korzybski’s quote: The map is not the territory.

We build a mental map of everything we interact with – people, machines, animals, transportation, companies … The map can NEVER be the territory (i.e. absolutely cover every aspect of it), it is just a projection of the territory being covered.

Mostly we get by very well. Many people are quite predictable (although I find myself wishing they weren’t in some cases, still hoping for changes …). Transportation mostly is, too. Animals are.

But are machines?

Your vanilla desktop calculator sure is … but your computer (and by computer I mostly mean it’s operating system and software in general) is not.

Windows 8 will force you to try to save your unfinished / unsaved work in 15 minutes before rebooting. There is no easy possibility of preventing that for the user. Windows 7 “kindly” offered to postpone the restart for 15 minutes to 4 hours (if you were present in front of the computer during the critical phase of this dialogue).

Are you expecting your computer to be restarting out of the blue? Emphatically – never. If it would happen every hour, it would be predictable. Annoying still, but predictable – and merged into the mental map. These (rather rare) restarts occur – maybe once each month – and are not in the map.

Nor should they be. Similarly, as with Alice’s heavy penalty for a trivial mistake – this aspect of Windows should be redesigned.

The expected behaviour of the computer by the user should be the default behavior. Novice users should be the ones we model after – bringing their natural experience – interaction with their “normal” surroundings – to bear. The computer should be the one trying to guess the user’s mindstate, and not the other way around.

Some examples

  1. No more restarts without user initiation
  2. No computer initiated focus changes. Never ever. Not even for good reasons.
  3. No “USB key can not be removed” messages without informing the user EXACTLY why (no, “a program is using it” is NOT good enough – even I can’t figure out WHICH program in most cases)
  4. No silent reboots after crashes – the user should be informed about the crash, and if possible about the applications which were open at the last time
  5. Excel should not show a dialogue to recover files, and close it if you double click to open and view one of the files. (This is HUGE)
  6. State dialogues / message boxes should be part of the application, not modal dialogues (the association is easier in this case)
  7. I could go on.

Apple once had a manual on designing user interfaces. I believe we need something like that, too. For the upcoming generation of Web 2.0 apps, and the global switch to Cloud-based App Computing.

Here’s a farewell to all the old cruft, the old problems and bad user interface design. Here’s to less suffering, frustration and angry users of badly designed software. If you happen to be exposed to bad software, do the most sensible thing: turn and run!

May 012013

1.0 von 5 Sternen Für Raspberry Pi ungeeignet., 25. April 2013



Von Amazon bestätigter Kauf(Was ist das?)

Rezension bezieht sich auf: Steckernetzteil Micro-USB 5V 1200mA für Raspberry Pi (Elektronik)

Leider ist dieses Netzteil trotz entsprechendem Titel NICHT für ein Raspberry Pi geeignet, da die Stromstärke von 1200mA nicht für die Versorgung des Ethernet Ports ausreicht.
Dieser konnte nur dann verwendet werden, wenn die Gegenstelle (Switch, Router) PoE (Power over Ethernet) unterstützt – was bei einer FritzBox z.B. nicht der Fall ist.”

Diese Amazon Bewertung bezieht sich auf ein Netzteil (das wir im übrigen NICHT in unseren Produkten einsetzen).

PoE hat mit der Stabilität / dem Betrieb des Ethernet Port des Raspberry Pis nichts zu tun – der Raspberry kann kein PoE “nackt” nutzen, da er kein PoE fähiges Gerät ist (es gibt diese Geräte durchaus, sie sind aber deutlich seltener als normale Geräte und auch entsprechend teuerer). Im besten Fall sollte einfach gar nichts passieren, da die PoE Endstelle (besagter Switch) erst die Spannung (48 V, nicht 5 V!) aufschaltet, wenn die Gegenstelle durch eine Aktivierungssequenz andeutet, dass sie PoE fähig ist. Mal den Wikipedia Artikel bemühen, wenn Sie weitere Infos brauchen.

Die Aussage dass man also PoE braucht und sonst das Netzteil zu schwach ist rührt vom mangelnden Verständnis der Technologie des Kommentarautors her. Ob das Netzteil allerdings wirklich zu schwach ist weiß ich nicht,da ich es nicht einsetze.

Leider konnte ich diese Antwort wohl nicht direkt im Amazon Store posten, aber hier vielleicht als Warnung dass nicht alle Kommentare wirklich von Experten verfasst werden …

Dec 042012



Der Kyocera SB-4e ist ein TCP/IP Printserver für Kyocera Drucker, z.B. unseren FS-1700+. Wenn man ihn gebraucht gekauft hat, sind diese Daten oft schon so konfiguriert, dass man an den Printserver nicht herankommt, und ihn nicht administrieren / diese Daten ändern kann.

Aus dem Controlpanel des Druckers (Tastenbedienfeld) habe ich keine direkte Möglichkeit gefunden, diese Daten neu einzustellen.

Aber zum Glück gibt es ja dafür das Raspberry Pi!


  • Raspberry Pi wird über LAN an den Drucker angeschlossen. (Dafür kann man auch ein normales Patch-Kabel nehmen, da das Raspberry Pi die Pins automatisch umschalten kann = auto-MDI).
  • Über WiFi wird das Pi an das lokale Netzwerk angebunden
  • Über NGINX im reverse proxy Modus ermöglicht man den Zugriff auf das Web Control Panel des Printers

Dass es funktioniert zeigt der obere Screenshot (man beachte die IP Adressen!).


Im Screenshot zu sehen: Kyocera FS-1700+ von hinten mit Printserver-Einheit SB-4e (oder auch bekannt als IC59-ETHER-KYO2 – hergestellt von der Firma SEH.), Raspberry Pi, TP-LINK W-LAN Adapter mit Booster-Antenne, und unser spezielles Flachkabel – mit dem man LAN im häuslichen Bereich unauffälliger verlegen kann.

Alle Produkte (bis auf den Drucker und den darin verbauten Printserver) werden demnächst bei uns im Shop erhältlich sein. Alle sind natürlich, wie alle Produkte im Shop, 100 % mit dem Raspberry Pi kompatibel.


(Bemerkung: man kann den Printserver SB-4e einfach resetten, siehe weiter unten im Text – er geht dann in den DHCP Modus. Aber natürlich bringt man sich damit um ein wenig Bastelspaß mit dem Pi!)

Das Raspberry Pi muss sowohl in das bereits bestehende Funknetzwerk angebunden werden, als auch über den LAN Port mit dem Printserver kommunizieren. Dazu müssen (bei WPA Verschlüsselung) die Dateien wie folgt angelegt sein:


auto lo

iface lo inet loopback
#iface eth0 inet dhcp
iface eth0 inet static

allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


  • Das eth0 (der LAN Port) wird statisch so konfiguriert, dass es zu den Druckerdaten passt
  • Diese Drucker(printserver)daten kann man sich ausgeben lassen, indem man bei eingeschaltetem Drucker kurz auf den Statusknopf drückt.
  • Die Adresse muss dabei verändert werden (z.b. -1)
  • Die Netmask bleibt gleich, wie die des Printservers
  • Gateway kann auch gleich bleiben
  • Das Funknetzwerk wird aus der neu anzulegenden Datei /etc/wpa.conf heraus eingestellt



Hier müssen Sie die Netz_SSID durch Ihren Netzwerknamen, die SSID, in Anführungszeichen ersetzen. Und bei psk Ihren Netzwerkschlüssel, ebenfalls in Anführungszeichen, eintragen.

Nach einem Netzwerk / Raspberry Pi Neustart sollte jetzt die Verbindung mit dem Drucker möglich sein, bspw. kann man ihn anpingen


Man kann auch, wenn man das Paket Lynx installiert (aptitude install lynx als root) direkt die IP des Druckers als Adresse unter der Konsole ansurfen. Mit dem Raspberry Pi ist über den HDMI Ausgang selbstverständlich auch das “grafische” Nutzen eines normalen Webbrowsers (Midori) möglich.

Doch was tun, wenn der Monitor woanders steht? X-11 forwarding, ODER: reverse proxying des Webservers des Printservers. Enter NGINX:


NGINX ist eigentlich eine gute Alternative zu Apache, vor allem wenn es um Performance und geringen Ressourcenverbrauch geht – es lohnt sich sich damit vertraut zu machen. Neben einem reinen Webserver kann NGINX jedoch auch deutlich mehr. Wir nutzen das Reverse Proxying Feature, das einem Webbrowser “vorgaukelt”, dass er direkt mit der Endmaschine verbunden ist, aber eigentlich die Daten selbst wiederum von dieser Maschine holt und sie dann an den Webbrowser weiterleitet. Dieses Reverse Proxying ist eine sehr interessante Technologie für Load Balancing, Web Acceleration, u.v.m, wir haben uns schon intensiv damit auseinandergesetzt, und es werden bestimmt weitere Artikel in diese Richtung folgen.

Doch zurück zu unserer Konfiguration. Installation von nginx mittels:

aptitude install nginx

Es müssen nun zwei Dateien angelegt werden:


proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;

proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;


server {
listen   80 default;
server_name  raspberry.pi;

access_log  /var/log/nginx/raspberry.pi.access.log;

location / {
proxy_redirect default;
sub_filter_once off;

In der zweiten Datei passiert die Magie. Die Direktive proxy_pass sagt, dass alle Zugriffe für die Location / und Unterverzeichnisse / Dateien an den Server der unter erreichbar ist, weitergeleitet werden sollen, um das Resultat dann wieder zurückzuschicken.

sub_filter dient hier dazu, das Webinterface des Printservers umzuschreiben: Leider wurde hier mit vollen URLs mit fest verdrahteten IPs im Link gearbeitet, so dass Klicks im Webinterface zu “Server nicht erreichbar”-Fehlern führen.

Es ist klar, warum – diese Adresse kann nur das Raspberry Pi erreichen, und es ist dem “normalen” Netzwerk nicht bekannt, dass das Pi eine Route zu dieser Adresse kennt. Der Printserver geht aber davon aus, dass er ganz normal mit dieser Adresse angesprochen werden kann …

sub_filter kann beliebige Textsnippets suchen und ersetzen. Die zweite Direktive, sub_filter_once off, dient dazu ALLE Vorkommen dieses Textsnippets in der ausgelieferten Seite (technisch: dem Response Body) zu ersetzen.

Mittels netstat -tulpn kann man jetzt verifizieren, dass NGINX läuft und auf dem Port 80 gebunden hat:


Durch Zugriff auf die IP des Raspberry Pi sollte jetzt automatisch der Zugriff auf den Printserver (im reverse proxying Verfahren) möglich sein.


Passwort des Druckers neu setzen (Reset des Druckservers SB-4e)


Nötig, falls auf dem Druckserver ein Passwort vergeben wurde.

Auf der Seite 194 des folgenden Manuals wird der Prozess beschrieben

Im Photo ist der schwarze Status-Knopf mit einer weißen Pfeilspitze markiert:


Diese Vorgehensweise hat bei mir funktioniert:

  • Drucker ausschalten
  • Netzwerkkabel aus dem Drucker ausstecken
  • Status Knopf (einziger Knopf am Druckserver) drücken
  • Drucker einschalten, auf Lämpchen am Printserver achten
  • Ativity und Status LED Lämpchen blinken gleichzeitig -> Knopf loslassen (nach 5 x Blinken kommt man sonst in den “BIOS” Modus)
  • ca. 2 sec warten, die LEDs blinken abwechselnd
  • Knopf nochmal drücken und halten, bis nur noch die Activity LED blinkt.
  • Knopf loslassen
  • Drucker ausschalten
  • Drucker einschalten
  • Status Knopf kurz drücken um ein Printout der Einstellungen zu kriegen -> Druckserver FS-4e sollte jetzt resetted sein.

Nach dem Reset geht der Printserver übrigens vollautomatisch in den DHCP Modus.

ansonsten hilft:

Kyocera Hotline (0180 / 5 177 377; Mo-Fr 8:30 – 18:00; 0,12 cent/Min.).

Für abgelaufene Garantie hat Kyocera die kostenpflichtige Nummer 09001 5962372 (0,99 Ct / min)

Quelle:, Detlef Meinke (danke!)

Optimization WordPress Plugins & Solutions by W3 EDGE