Tag Archives: DIY

Baba und Foi Ned

New piano composition / Jazz tune out now! “Baba und Foi Ned”, Bavarian for “Farewell and don’t trip”. Will bring it to one of the next jam sessions this fall.

And here’s the sheet music.

It’s Getting Warmer – Morning Data Points

In my previous post I described how I got data from my weather station into MATLAB to help me answer my primary questions:

  • When to open the windows in the evening, to let in cool air?
  • When to close the windows again in the morning?

The data I have available covers 10 days, including a late July heat wave. At first I tried to understand when the lowest outside temperature was reached and when it increased again by more than 0.5 °C and 1 °C compared to the minimum.

DayMin Temperature (°C)TimeTime +0.5°C Time +1°C
18 Jul 201916.305:54 06:5406:54
19 Jul 201917.005:56 06:5207:12
20 Jul 201920.405.56 07:0108:07
21 Jul 201920.705:45 07:0007:56
22 Jul 201919.905:56 06:2707:22
23 Jul 201920.406:14 07:0508:21
24 Jul 201921.405:53 06:4807:33
25 Jul 201922.106:16 06:5107:17
26 Jul 201922.905:42 06:1707:13
27 Jul 201923.105:50 06:3607:36

If I had more data I’d plot a histogram of the times to decide when to close the window in the morning. For now, I can only come up with a “manual estimate” based on looking at the table above. I conclude: During summer I should close the window by 7:30 in order to optimally protect the cool indoor climate.

It’s Getting Warmer – Using MATLAB to Visualize Netatmo Data

Global warming is a thing. There’s no denying that temperatures are rising.

In my quest to learn to live with it, I got a Netatmo weather station that measures outside and inside temperature levels (among other things) in 5 minutes intervals.

My goal is to keep the temperature in my apartment as low as possible without installing AC, so my primary questions are:

  • When to open the windows in the evening, to let in cool air?
  • When to close the windows again?

While the Netatmo website provides a coarse overview of the temperature levels, it’s not particularly helpful in answering these questions because …

  1. the weekly view shows data points in steps of 3 hours
  2. data from different sensors can not be merged into one graph to understand dependencies (e.g., outdoor vs. indoor temperature).

Here’s a plot I generated by exporting the raw data from Netatmo and some MATLAB coding.

Temperature over the course of 10 days.

With all the data available in MATLAB I can now go ahead with extracting some critical data points, such as when the outside temperature reaches its minimum or when it starts increasing again. More on that later.

Holiday Project: Philips Hue Goes System Tray

Every year around Christmas I start a little DIY project, that most of the time involves some programming and some real hardware (e.g., TI chronos: My watch controls my bedroom lights). With most light bulbs in my apartment being Philips Hue light bulbs, I decided I wanted to be able to control them from my PC. So this Christmas I created “Hue System Tray”, a tiny program that lives in the system tray and lets me check the status of my hue lights as well as control them.

Hue System TrayInstead of using Java, which I’ve used for most of my GUI programs (e.g., jdotxt), I did this little project in C++ using Qt. The only down-side is that Philips does not offer a C++ SDK. To keep things simple I decided not to implement a full-blown SDK myself. At this point in time the program basically makes hard-coded RESTful API calls to the Hue bridge directly. It would of course be much nicer if the list of rooms would be populated automatically from the list of rooms stored on the bridge and if all API calls were derived automatically. But hey, holiday time is limited ;)

This was my first encounter with Qt and a rather pleasant one I have to say. The signals and slots mechanism is rather intuitive, it features a nice collection of libraries (e.g., for networking or for parsing JSON), the documentation is good and the learning curve is not too steep. Actually I found programming Java for Android apps more difficult. Also deploying my program to another machine was not too difficult, once I had figured out which dlls to carry over.

I will probably have to do some more C++ coding at work in the near future, so I hope that dusting off my C++ skills and Qt will come in handy.

j d o t x t

jdotxt is an open source, cross-platform Desktop tool for managing your todo list. It’s geared towards Gina Trapani’s todo.txt file format and stores all of your stuff in two human readable text files. Having these files on your owncloud, dropbox or any other cloud storage makes it easy as pie to keep your todos in sync across multiple devices.

Download and Installation

  • Windows (Installer)

    Download installer. When you launch jdotxt, you may be asked to download and install Java, which you should do in that case.

  • Mac OS X

    1. Make sure you have Java JRE >= 7 installed. E.g., by downloading and installing it from http://www.java.com
    2. As always: download, mount, drag&drop this file
  • Ubuntu >= 12.10 (Repository)

    Open a terminal and execute the following three commands (line by line):

    sudo add-apt-repository ppa:chms/jdotxt
    sudo apt-get update
    sudo apt-get install jdotxt
  • Ubuntu 12.04 LTS

    First you must get JRE >= 7 by executing the following two commands (line by line):

    sudo apt-get install openjdk-7-jre
    sudo update-alternatives --config java

    After executing the second line you will be asked, which version of Java you would like to use by default. Select the one that has version number 7 or higher in its path name.

    Now continue with the instructions for Ubuntu >= 12.10 (see above)

  • Debian GNU/Linux

    Download and install the jdotxt Debian file. Of course this works on Ubuntu too, but it is highly recommended to use the repository, for automatic updates.

  • Generic (Works on Windows, GNU/Linux and Mac OS X)

    Download the jar file and execute it using Java JRE >= 7 (http://www.java.com)

Mastering jdotxt in 110 Seconds

Get Involved!

You are more than welcome to drop me a line via one of the online platforms I use, or to contribute by reporting bug reports or feature requests via github. The source code is also hosted on github.com so feel free to contribute!


Christian M. Schmid
Mikhail Kalkov


jdotxt is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Pebble ArcS+, a “Pebble, Hello World!”

I own a Pebble Steel for quite some time now, and I still love it. Good battery life and not too many, but useful features. It was a no-brainer that I joined their latest record-breaking kickstarter campaign for the new Pebble time as an early bird.

At the same time I had to do something that I do with almost any piece of hardware that I own and that lets me do it: Write some code for it! Sometimes it’s just the mandatory hello world, but this time it’s a watchface for the Pebble:

IMG_20150301_125316796_HDRI was amazed by how little time it took me to write (or should I say copy and paste) the code. I’ve uploaded the watchface to the Pebble app store so that it can be installed by everybody who owns a Pebble and the source code can be found on github. Please let me know what you think of it and keep the hacker spirit high by writing code for every piece of hardware that you own!


I am from Europe

“I am from Europe” is a phrase that I’ve found myself using quite frequently lately. I don’t just use it because Europe is much easier to explain than ___________ (fill in any European country you can think of), but because Europe is more than that.

I mean of course the statement is true from a geographical perspective, but then again it is more than that. Europe for me is the notion that there is this geographically large region that is so diverse in terms of culture and lifestyle but that still shares a set of unwritten core values, that every one of us can relate to and rely on.

I am aware of the stereotypes that all of use have. Germans are overly correct, the British can’t cook, Polish people are ueber-Catholic, Greeks are lazy and Spanish men are macho men on siesta. However if you dig deeper, if you are willing to immerse yourself in one or more of the “other” European cultures, you will find that there are more things that we have in common than those that separate us. – I mean except for the French, who I never really liked or understood. But then again, they enrich our union as much as you and I do.

Sometimes I am wondering what Europe must look like from the outside. Probably like someone suffering from Schizophrenia. Someone with so many voices inside and no clear, single voice to the outside. But that is alright, because when it comes to the important issues, everybody can and should rely on our common understanding. We do believe in human rights, in social welfare for those who need it and in an economic system that encourages everybody to thrive based on his or her personal talents but one that should leave nobody behind.

From the inside it is probably a little bit like marriage. – There are good times and bad times, and things are far from perfect. Every now and then we are put on trial, and at the same time we often don’t appreciate what we have because of the union. But even if one party has to give in and do something that might hurt, we are better off as a union.

At the end of the day it comes down to this: I am in awe of what Europe is and more than that of what it can become: A super-powered peace-keeping instrument and a diverse, flourishing system with shared values and the inherent ability to see challenges from multiple perspectives. It’s now on us to act and voice our vision for Europe, so don’t miss the elections http://www.elections2014.eu/

Planned Obsolescence

A while ago I learned about something called planned obsolescence. Today I found another example of it.

I can’t fight my genetics: my dad is bald, my dad’s dad was bald, my mom’s dad was bold – you get the idea. The only logical thing (at least for me) is to trim the little I have left regularly, for which I bought a Philips QC5055 about three years ago.

The clipper seems well built, no doubt. But I do see now where they have made design choices that I would classify as planned obsolescence.

  1. The battery is not replaceable and it does barely last for one cut after three years. – I always need a wall outlet nearby.
  2. The plastic combs that you need to adjust the hair length break easily. It’s not that I have handled the clipper super carefully, but they should at least provide replacements for those fragile parts. – Which they did, but are listed as out of stock in all web shops I could find. They even explicitly exclude the combs from their warranty in newer products.

In the interest of prolonging the life of my hair clipper, I have already fixed the comb with the help of superglue twice. Meet my new best friend (aka superglue):

What I take from this:

  1. Always look for products that have replaceable batters, even better if they are AAs or some other standard form factor. (E.g., keep your hands of those electronic devices that have the battery per-installed and are sealed like vaults. And yes that does include your iThings)
  2. Always have some superglue and some scotch tape around. They might come in handy, save you some money and give you the sensation of empowerment which you may find in fixing the things around you!
  3. Try fixing things, even if you risk breaking them entirely (which I did with a Samsung Galaxy S3 Mini 2 weeks ago, while trying to replace its display).

The Making of me.chschmid.com, Part 2: The Hardware

I recently blogged about why it makes sense to run your own server. Although I have a machine running at me.chschmid.com already, I decided to do a serious hardware upgrade.

serverNot because the old AMD E-350 CPU can’t keep up anymore, but because I’d like to use the new machine as my desktop PC as well. So here’s what I ordered (some parts of it are actually not new, but carry over from my old setup)

For all I know this system will be hopelessly over-powered, yet power-efficient, so that it can run 24/7. The parts are probably going to arrive by the end of the week. I’ll keep you posted about the assembly and everything else that’s going to happen.