“kachung” + shutter sound

When you take a picture with an iPhone these days it does generate haptic feedback – a “kachung” you can feel. And a shutter sound.

Thankfully the shutter sound can be disabled in many countries. I know it can’t be disabled on iPhones sold in Japan. Which kept me from buying mine in Tokyo. Even when you switch the regions to Europe / Germany it’ll still produce the shutter sound.

Anyway: With my iPhone, which was purchased in Germany, I can disable the shutter sound. But it won’t disable the haptic “kachung”.

look ma! no mirror! (yes this is an iPhone 6)

It’s interesting that Apple added this vibration to the activity of taking a picture. Other camera manufactures go out of their way to decouple as much vibration as possible even to the extend that they will open the shutter and mirror in their DSLRs before actually making the picture – just so that the vibration of the mirror movement and shutter isn’t inducing vibrations to the act of taking the picture.

With mirror less cameras that vibration is gone. But now introduced back again?

Am I the only one finding this strange?

celebrate the discordian holyday: Chaoflux

allow me to explain by quoting wikipedia:

Dicordianism is a paradigm based upon the book Principia Discordia, written by Greg Hill with Kerry Wendell Thornley in 1963, the two working under the pseudonyms Malaclypse the Younger and Omar Khayyam Ravenhurst.

According to its primary historian, Adam Gorightly, Discordianism was founded as a parody religion. Many outside observers still regard Discordianism as a parody religion, although some of its adherents may utilize it as a legitimate religion or as a metaphor for a governing philosophy.


The Principia Discordia, if read literally, encourages the worship of Eris, known in Latin as Discordia, the goddess of disorder, or archetypes and ideals associated with her. Depending on the version of Discordianism, Eris might be considered the goddess exclusively of disorder or the goddess of disorder and chaos.

Both views are supported by the Principia Discordia. The Principia Discordia holds three core principles: the Aneristic (order), the Eristic (disorder), and the notion that both are mere illusions.

Due to these principles, a Discordian believes there is no distinction between disorder and chaos, since the only difference between the two is that one refers to ‘order’.

This is likely a major reason for the inconsistency in the wording. An argument presented by the text is that it is only by rejecting these principles that you can truly perceive reality as it is, chaos.

wikipedia

And given that information you can expect a discordian calendar to exist. This calendar defines years (YOLD = year of our lady of discord) and seasons and days. And holydays:

Chaosflux is a Holyday of the season of Chaos. It is celebrated on Chaos 50 (Discordian calendar) or February 19 (Gregorian calendar).

Very little is known about this holyday. What we do know is pretty much made up as we go along.

discordia wikia GFDL

So now back to the holyday itself. How would you celebrate such a distinguished day?

I will use the services of theuselessweb.com to click 5 times on their most interesting button and then meditate on what comes up:

disaster warning!!! This is just a test.

Apparently yesterday somebody pushed the wrong button. Twice.

Like most countries Germany got a system in place to broadcast out warnings to the public in case of disasters or else.

And it proved to be quite useful in the past when it comes to the occasional storm or heavy snowfall/rain/lightning.

Seeing that they run a test and then again send out an apology to have run a test is puzzling and funny at the same time. Everyone has a “bad hair” day, right?

reward driven speed limits

As you might know I am living in Germany. Germany is the one country where you have some roads that are legally not having any speed limit whatsoever. If the circumstances allow to safely drive 250 km/h you are allowed to do so. It’s up to the drivers judgement.

Now as much as this is a great thing of personal freedom it also has some negative side effects on the climate.

Your car is burning a lot more fuel when driving those kind of speeds. And a lot meaning that it resembles more an exponential curve than a linear line. Rule of thumb: 2x the speed is more than 4x the consumption.

Ever once in a while people start discussing about a general speed limit for Germany – as every other country has it. Some talk about 160 km/h, some about 120 km/h.

The motivations are diverse: climate, resource use, safety, …

In any case additional limits would need to be enforced. More speed traps…

A.Savin (Wikimedia Commons · WikiPhotoSpace)

What if things would be handled differently?

How about this:

Politics would introduce a “best speed lottery”. On every street without a speed limit there would randomly be speed controls and speed traps. Those who follow the best practices of driving … Let’s say 120 km/h… Would be rewarded when randomly photographed. The reward would be a tax discount on car tax and/or gas tax and one ticket put into the countries lottery pool. Once a quarter a new electric car or similar would be given to a random winner.

What would you think would make people drive slower in their own motivation?

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:

Hardware

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?

Software

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 Adafruit.io MQTT broker.

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

You can access it here: https://io.adafruit.com/bietiekay/stappenbach

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.

small tool to filter iCal / iCalendar / ICS files

I am managing my appointments using Outlook on windows and iCal on OS X. Since I am not using any Exchange service right now I was happy to find out that Outlook offers a functionality to export a local calendar automatically to an iCalendar compatible ICS file. Great feature but it lacks some things I desperately need.

outlookg

Since I am managing my private and my business appointments in the same calendar, differentiating just by categories, I had a hard time configuring outlook to export a) an ics file containing all business appointments and b) an ics file containing all private appointments. It’s not possible to make the story short.

So I fired up Visual Studio as usual and wrote my own filter tool. I shall call it “iCalFilter”. It’s name is as simple as it’s functionality and code. I am releasing it under BSD license including the sources so everyone can use and modify it.

icalfilter_1

It’s a command line tool which should compile on Microsoft .NET and Mono. It takes several command line parameters like:

  1. Input-File
  2. Output-File
  3. “include” or “exclude” –> this determines if the following categories are included or excluded in the output file
  4. a list of categories separated by spaces
  5. an optional parameter “-remove-description” which, if entered, removes all descriptions from events and alarms

Easy, eh?!

Grab the Source and Binary here: https://github.com/bietiekay/iCalFilter

UPDATE: You can now access the source code on github! You can even add your changes!

How to sell a car

Mission accomplished. I successfully talked a co-worker, who needed to buy a new car, into buying a gadget-packed BMW 1 series.

He calls it his “cluster on 4 wheels” – because obviously there is some processing “horse-power” in this machine :-)

img_7539s

May he always have a safe ride!

Source 1: http://blog.ahzf.de/index.php/2009/09/21/mein-cluster-hat-vier-rader/

Welcome to the world of tomorrow!

So here we are on a new blog engine. It took me the better part of two days to do the Migration of 2,869 posts and 2,732 comments, a lot of pictures and movie files.

I will write an article on this but for now only two captures images from the migration:

php-xpath
yeah PHP rocks!

regex-magic 
had to do some regex action to do the url rewrites

Hail Eris! All Hail Discordia!

pope

I was in desperate need for an DDate equivalent running on Windows. DDate is an unix implementaion of date accoridng to the erisian calendar described in the principia discordia.

I only found some C Implementations. And since it’s fun to do I ported the original Discordian Date C code to C#.

You can download the C# sourcecode, licensed under CC-BY-NC here.

I also created a web page which displays the current discordian date and offers you to convert any gregorian date into discordian date representation.

This page can be accesses here. You can call another page with parameters and you only will get the ddate output back:

for example: http://ddate.schrankmonster.de/DiscordianDate.aspx?year=2009&month=6&day=9

Source 1: http://ddate.schrankmonster.de/
Source 2: http://dropbox.schrankmonster.de/dropped/SharpDDateLib.zip

the first 3000 km with the beemer

After more than 53 hours inside of our BMW are enjoying the car as much as we thought we would. Well I think we enjoy it even more than we would have thought.

In this nearly 54 hours we travelled 3252 km which translates to 2020 miles. With about 8,7 l of gas per 100 km (which translates to about 34 mpg) it’s less than I expected.

At around 2100 we had the first full-throttle run getting us up to about 230 km/h followed by the first car wash session and the first replacement windshield…(narf!)

beemer

Two weeks ago we had the chance to take the car out for a great drive through the “Franconian Switzerland” (I still like “Fränkische Schweiz” better). The only thing I write about this weekend is: great fun!

IMG_4276

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!!!

der bi-em-double-you !

Ich fahre ja seit 2000 privat diesen wunderschönen SEAT Arosa. Nun ist das Auto Ende 1999 gebaut und damit auch nichtmehr das jüngste – eine kleine Excel Tabelle hat aufgezeigt dass das Auto de-facto durch die verschiedenen Durchsichten und Reparaturen mehr als zweimal komplett bezahlt wurde. Auch machte sich ein verstärkter Öl-Durst in den letzten Monaten eher unangenehm bemerkbar – unter anderem bekam ich erstmals die “nicht genug Öl”-Lampe zu sehen.

IMG_0973

Das Auto meiner Frau ist da noch viel schlimmer dran gewesen – als Baujahr 1997 und mit dem Geburtsfehler “Opel” ist es ein Wunder dass es überhaupt bis ins Jahr 2008 durchgehalten hat. Nicht ohne Blessuren: die gesamte Elektrik tut mehr oder weniger das was sie will, die Rad lager hören sich an als wären ein paar Stahlkugeln in einer Waschmaschine unterwegs und die Lenkung an sich zieht so böse nach rechts dass man sozusagen die ganze Zeit nach Links lenken muss um geradeaus zu fahren. Und da ist dieser Geburtsfehler: Die Hütte rostet dass man glaubt das wäre ein Hochseeschiff ohne Lackierung. Nun ja.

IMG_3770

Den Opel haben wir schon frühzeitig in 2008 dem Gebrauchtwagenmarkt zugeführt und auch – wie ich finde (meine Frau ist da etwas anderer Meinung) – reichlich Geld dafür bekommen. Für den SEAT Arosa haben wir uns ein anderes, endgültigeres Schicksal ausgedacht:

Im November 2008 klapperten wir die verschiedenen Autohändler in der Umgebung ab – all die üblichen Verdächtigen mussten befragt, begutachtet, bewertet und letztlich ausgewählt werden. Prinzipiell stellte sich die Frage: Ein Japaner oder ein deutsches Fabrikat?

Wir hatten einen Honda Civic im Auge – aber aufgrund glanzvoller Ignoranz der Händler und dem doch extrem schlechten Preis-Leistungsverhältnis haben wir uns schon frühzeitig entschieden: ein deutsches Auto soll es sein. Genauer gesagt ein BMW.

Die ersten Erfahrungen mit dem ortsansässigen BMW Händler haben dann auch recht schnell Herz und Brieftasche geöffnet. Schon nach dem ersten Besuch war die Probefahrt klar gemacht – wir hatten uns nämlich recht schnell auf einen “Einser” eingeschossen. Den gab es in der richtigen Größe und viel wichtiger: Mit der gewünschten Gadget-Dichte.

Am 08.11.2008 ging es also mit einem blauen 3 türigem 1er in den Thüringer Wald – gerade noch rechtzeitig vorm ersten großen Schnee. Wir haben natürlich die Gelegenheit für ein paar Fotos genutzt:

BMW_1er_Panorama_Steinbruch_2IMG_3556 IMG_3551 IMG_3552

Die Kaufentscheidung war getroffen – nun ging es an die Planung. Der BMW Konfigurator ist da ein ganz nettes Spielzeug, wenngleich ich mir da noch die ein oder andere Verbesserung gewünscht hätte. Über Weihnachten und im Januar wurde das Wunschauto konfiguriert und dann am 13. Januar mit der Hoffnung dass der Winter ein Herz mit uns haben möge gleich mit Sommerreifen auf den baldmöglichsten Termin bestellt. Abholen wollten wir das Auto nicht beim Händler sondern direkt in München in der BMW Welt.

Den Termin bekamen wir ein paar Tage später vom immer noch sehr zuvorkommenden, engagierten und überaus netten Händler – ja das ist nicht übertrieben, der Mann ist auf jede unserer Fragen eingegangen und hat sich speziell beim Rätsel-Thema “iPod-Integration” extra nochmal kundig gemacht.

Nun ging die wirklich anstrengende Phase des Projekts “BMW kaufen” los: das Warten.

IMG_3815

Da trudelten dann im Wochen-Rhythmus die Bestätigungen, die finalen Rechnungen und so wichtige Dinge wie Kennzeichen-Tragetaschen und Informationsmaterial zur Abholung ein. Alles in allem hat das die Vorfreude natürlich enorm gesteigert.

Am 12. März war es dann soweit. Unser BMW war gebaut, poliert und fertig zur Abholung. Wir sind an dem Tag extra früh aus dem Bett da die Abholung selbst auf 14:20 Uhr angesetzt war. Das ist natürlich reichlich spät wenn man hinterher noch eine BMW Stammwerksführung machen will. Deshalb haben wir die Werksführung vor die Auslieferung gezogen und mussten so recht früh (4 Uhr, urks!) raus und nach München. Wir waren rechtzeitig da und natürlich war wie erwartet ein wirklich schöner Tag für uns vorbereitet worden. Der Empfang, die Werksführung, die BMW Welt selbst, die Präsentation unseres Autos – da fällt einem nur ein “WOW!” ein.

IMG_4261_stitch
die Abholer-Premium-Lounge

IMG_4226_stitch

die “BMW Welt”

IMG_4246_stitch

die Treppe für die Abholenden – da geht man
gaaaaaanz langsam runter

Auf den Bildern ist ja auch diese Treppe zu sehen – da geht man nach dem Fahrzeug-Briefing – also dem Teil wo dem Abholer sein neues Auto in Theorie und Simulations-Praxis erklärt wird – gaaaanz gaaaanz langsam hinunter. Um dann direkt vor seinem Neuwagen zu stehen. Und ganz ehrlich, bei der ganzen Show ist das schon ein erinnerungswürdiger Moment wenn das Auto dann endlich vor einem auftaucht.

IMG_4338

Außen weiß und innen ganz in schwarz.

Endlich war das Warten vorbei! Wir haben uns dann direkt auf die Sommer-Socken gemacht. Die Fahrt versprach nämlich spannend, oder doch zumindest interessant zu werden: Schneeregen und Nebel war angesagt. Das kam dann auch, war aber nicht die Spur eines Problems – schön langsam und sicher sind wir nach einem ewig langen Tag wieder zuhause angekommen. Die Nacht war dann aber auch nicht besonders lang – denn nur zwei Tage später sind wir umgezogen. Ja da ist sozusagen die “Coole Sache Nummer 2”. Den Bericht gibts dann aber in einem anderen Artikel.

Painting the wall

SONES just moved into the new place – and after having all the ordering done we’re now waiting for the delivery of the various bits and pieces of the new office.

To make it a little bit more SONESisch my wife and I decided to paint a 1,5m huge logo of the company on the wall that can be seen first when you walk in. So we went to the nearest hardware store and bought all the needed tools aaaaaaaand we found somebody who could mix the right shade of green to fit our company color.

IMG_3789

Back at the office we started with placing the projector and the logo itself so we could draw the borders with a pencil on the wall.

IMG_3782

IMG_3793

When the borders where on the wall we started the masking tape attack! It was the first time that I had used masking tape but it everything went surprisingly good.

IMG_3800

The last and final step is to paint it. So we got the paint, we got the rollers – and after half an hour:

IMG_3809

The shades you’re seeing in the picture above are just because of the wet and already dry paint which has a slightly different shade. So after a bit of drying and the removal of the masking tape:

IMG_3827

Et voilá!

Voltage wins

Well I don’t talk about voltage in the electrical sense but the brand new flavor of Mountain Dew. Since it’s not officially purchaseable in germany it took some time till I had the chance to judge the 3 new flavors. Since the winner is already confirmed to be the voltage it was just a “I want to see by myself”-test :-)

So here they are, the 3 flavors that were eligible for election:

IMG_3482

the 3 flavors:

  • Revolution: Wild berry Fruit Flavor and Ginseng
  • Supernova: Strawberry Melon Flavor and Ginseng
  • Voltage: Raspberry Citrus Flavor and Ginseng

The voltage was my favourite too – the Revolution and Supernova taste just to artificial and strange… I could not drink more than a can… with the voltage I immediately wanted to have another one.

The one thing about the voltage that I don’t like is the color…

IMG_3485

but hey, the other flavors colors… well…

IMG_3489

IMG_3492

So since Voltage won the vote there hopefully will be a new great flavor of Mountain Dew be available in germany too. (PLEASE!)