Samstag, 5. Dezember 2015

If I would need steel? #bicyle touring

If I would need a bike next year.... 

But I still love to take my Stevens out into the woods. It takes me to work every day, we had fun going to The Hague together and I enjoyed even the sometimes painful ride to Copenhagen.

Samstag, 24. Oktober 2015

Market Research: Shoes & Footwear - Results & Findings

It was time to get me a pair of new shoes. As always it was a long process to find the best solution. First there are my own needs. My personal list of problems my shoes have to solve in their life is the basis. Then a thorough market research has to be made. There are thousands if not  millions  of models  and types of shoes which have to be taken into account here! And then there are blue Vans Sk8-High...



Freitag, 23. Oktober 2015

38.224 lines of Music as txt

I like to listen to music and I like to track everything. That's why I now have 38.224 lines in a txt file representing the music I listened to over the last 22 month and it's also why most of my friends think I'm kind of weird.

Here's how:
The basic is Spotify as my streaming music service of choice. Spotify allows you to scrobble all the music you've listened to over to You'll find that somewhere in your spotify settings.
Now to collect all this data for myself, to play around with it and get happy, I needed my own list. Using an IFTTT recipe, everytime a new 'scrobble' was made at, a line was added to a google spreadsheet. Unfortunately google somehow added a new file every 2000 lines so that I decided today to tinker all those files into one txt file and to change the IFTTT recipe to dropbox (Here's the recipe). While I'm writing this, the recipe creates a second file in dropbox too...

Here's what:
Having all those lines of pure music data as a txt file, you can easily import it into your spreadsheed.
Using a little pivot table I found out that I've been listening to 2212 different artists, Alt-J at first place, followed by Turbostaat:

My most-played song over the last 22 month was All Opportunities by Solander.
I didn't even realize that It's On is a song of both Broncho and Pins:

What I double checked is this chart: it shows songs played per day. And there are days when I listened to more than 200 songs:

By hour of day:

Now I could cluster artists by hour... or day of week ... or I could go outside, enjoy the sun, have some coffee ...

Samstag, 10. Oktober 2015

Sorting my apps...

So the first train was late and I missed the next connection. Made the most out of it and color sorted all the apps.

Sonntag, 3. Mai 2015

Sonntag, 15. März 2015

Mittwoch, 21. Januar 2015

#Raspberry Pi Timelapse project

Someone gave me a "Magic Garden" as a present this Christmas! So I headed to my local dealer to get me a Pi Cam to play around with it as I now really really had a valuable yet scientific job to do!

Here's the result:

And this is what I've done:

I cut a little slot into the pi case for the flat cable. Then I found some parts of a lamp and a lighter and a film canister - screwed and glued it together to have a solid and flexible stand for it. While writing these lines I am thinking abount some buttons to start my scripts and shutdown the device ...

Next thing was to follow this tutorial to get that thing working: python-picamera-setup
As the pi runs headless through its life, I wanted it to either copy the pictures to a dropbox folder or to a usb stick plugged into the pi. 
For the dropbox part I followed here: how-to-use-dropbox-with-raspberry-pi
Some googling helped me to find out how to mount a usb stick to my pi how-to-mount-a-usb-flash-disk-on-the-raspberry-pi Most important was to change the fstab: adding the sticks uuid and so on:

Using the above mentioned tutorials I came out with two little python scripts:
(note to myself: needs some errorhandling if the dropbox upload fails)
#! /usr/bin/env python
# taking a picture and uploading it to dropbox
# uses Andrea Fabrizis Dropbox Upload

from subprocess import call
import time
import datetime
import picamera

pictureDir = '/home/pi/tinkerCam/pictures/'
ts = time.time()
fileNameShort = 'tinkerPic_' + datetime.datetime.fromtimestamp(ts).strftime('%d-%m-%y_%H-%M-%S') + '.jpg'

uploader = '/home/pi/Dropbox-Uploader/'
upconfig = '/home/pi/Dropbox-Uploader/.dropbox_uploader'

camera = picamera.PiCamera()
fileName = pictureDir + fileNameShort


cmd = uploader + ' -f ' + upconfig + ' upload ' + fileName + ' /tinkerCam/' + fileNameShort
call([cmd], shell = True)

#copy file to usbStick
stickDir = '/media/stick/tinkerCam/'
cmd = 'mv ' + fileName + ' ' + stickDir+fileNameShort
print cmd
#call([cmd], shell = True)

#clean up
cmd='rm ' + fileName
call([cmd], shell = True)
print 'finished'
#! /usr/bin/env python
from subprocess import call
import time
import datetime
import picamera

uploader = '/home/pi/Dropbox-Uploader/'
upconfig = '/home/pi/Dropbox-Uploader/.dropbox_uploader'
usbPath = '/media/stick/tinkerTimelapse/'
dropboxPath = '/tinkerCamTimelapse/'
tempPath = '/home/pi/tinkerCam/'

def toDropbox(fileNameShort):
cmd = uploader + ' -f ' + upconfig + ' upload ' + tempPath + fileNameShort + ' ' + dropboxPath + fileNameShort
call([cmd], shell = True)
#clean up
cmd = 'rm ' + tempPath + fileNameShort
call([cmd], shell = True)

def capturePic(frame, fileNameShort):
with picamera.PiCamera() as cam:
picPath = tempPath + fileNameShort
print 'capturePic:', picPath

def constructFileName():
ts = time.time()
fileNameShort = 'tinkerPic_' + datetime.datetime.fromtimestamp(ts).strftime('%d-%m-%y_%H-%M-%S') + '.jpg'
return fileNameShort

#user interface
picDays = raw_input('How many days will be captured?: ')
framesPerHour = raw_input('How many pictures per hour?: ')
frames = int(framesPerHour) * 24 * int(picDays)
saveTo = raw_input('Save to? [dropbox, usb]: ')

#capture images
for frame in range(frames):
start = time.time()
fileNameShort = constructFileName()
fileName = tempPath + fileNameShort
capturePic(frame, fileNameShort)
if saveTo == 'dropbox' or saveTo == 'd':
if saveTo == 'usb' or saveTo == 'u':
cmd = 'mv ' + tempPath + fileNameShort + ' ' + usbPath + fileNameShort
call([cmd], shell = True)
print 'Picture taken: ', frame
time.sleep(int(60 * 60 / int(framesPerHour)) - (time.time() - start))

print 'finished' 

WTF - "solving three cubes while juggling them"

I found this video here at bo(lots of os)m ....