I'd thought I'd share a list of the tools that I use in my day to day business.

  • Sipcalc is an IP-address/network mask calculator, I should probably know this by hand, but sometimes it's hard to remember if a /28-mask is a 248 or 252 netmask.
  • Tmux is the best terminal multiplexer I have ever used, I spend most of my working day in either tmux or my browser
  • Curl is a library and command-line client for transferring data over a number of protocols, I mostly use it for testing JSON-responses though.
  • Vim shouldn't need an introduction.
  • Midnight Commander is a norton commander like filemanager with a two pane view, it's got both FTP and SSH-support, great for moving files without a coherent naming pattern back and forth.
  • MPD/NCMPCPP is what I use to listen to music with. I stream MPDs audio via a websocket from my home server to my job so I've got access to all my music all the time.

A few weeks ago my local LUG(which I've been a member of since the start) organized a so called "mini hackaton". We try to do this every three months or so, they're very popular. There's something special with getting together with other nerds and working on projects, be it software or hardware, for a day and chat.

I worked on this: Timerbox a small board with a relay, two buttons, a rotary encoder and an LCD that I've designed. The ┬ÁCU is an Attiny 4313. I managed to get the LCD working quite well with a library written by user alan2k on AVRfreaks.net. This library is based on the library by Peter Fleury modified by Martin Thomas and Andreas Heinzen. It removes most of the "unnecessary" functions like scrolling but adds a very crucial setting for my PCB; disabling/enabling the RW-line. My PCB has the RW-line tied to be write-only, since I very rarely will care if the display says it's done or not, I'll handle it with delays instead.

I did however miss some things on the board, as you always do with 0.1-versions. As you can see the relay is "on stilts", that's because I forgot to change pad size when I did the footprint. I also tied the relays coil pin to +5V instead of +12V for some reason, I don't know what I was thinking there. But it's just version 0.1, 0.2 will be a lot better :)

Today I've been coding a bit on my KSP Control Center project. It's so far just 11 buttons, three SPI-controlled LED-displays and an analouge gauge, but it's getting closer to something more "real" every day.

It's for playing Kerbal Space Program, one of my favourite games. Heres a video of me showing of some of the new displays.

The three position switch in the video is for going between surface, target and orbital velocity. The code's on my github for anyone interested.

I store all my photos on my Fileserver. I am using an android application called Foldersync to sync all my photos as soon as I connect to my homes wifi.
This means I've got a huge folder filled with photos that rarely gets sorted properly.
This is about to change, I've created a script which can find which date the photo was taken and move it to the corresponding folder. It's a fairly simple program, it uses Identify along with awk and friends to figure out the date. I will most likely rewrite it in some other language in the future since this script is a bit barebones.
This script runs as a cronjob each night.

#!/usr/bin/env bash
/usr/local/bin/sort-jpeg.sh /export/Mnt/Photos/sort /export/Mnt/Photos/. &> /root/sortphoto.log

I still need to figure out how to make my camera autoupload photos to that folder though.

I'm redoing my whole blog-thing(again) because logging in to the server, firing up vim and writing HTML is too much of a hassle. Jekyll seems cool and I don't know ruby, so why not? This is the post-recieve-hook I'm using

 #!/usr/bin/env bash
    GIT_REPO=$HOME/blag.git
    TMP_GIT_CLONE=$HOME/tmp/git/blag/
    TMP_WWW=$HOME/tmp/www/
    PUBLIC_WWW=/www/docs/hax0r.se

    git clone $GIT_REPO $TMP_GIT_CLONE
    jekyll build --source $TMP_GIT_CLONE --destination $TMP_WWW
    cp -r $TMP_WWW $PUBLIC_WWW
    rm -Rf $TMP_WWW
    rm -Rf $TMP_GIT_CLONE
    exit

At first it didn't work and I couldn't figure out why... this is like the easiest script in the world, right? Spelling is not my thing today, although I'm usually quite good at it. post-recieve != post-receive(I even misspelled it when I wrote it just now).