Matthias@Hacker Hotel - Follow up

The given talk went quite well, I think. You can find the recording under this link. Unfortunately, I can't share the slides directly.

Beside the link list for more information at the bottom of the post, I need to correct or emphasize a few things from the talk here:

  • The s/360 architecture is built to be not only compatible, as mentioned in the talk. The architecture is binary compatible since 1964!
  • For the IBM it was a 5 billion dollar bet not like mentioned a 1 billion dollar bet.

Further sources and articles which you may be interested to get more information about mainframes:

In addition I want to show you a very good article about 7 mainframe taboos we should break.

Problems building AttitudeAdjustement OpenWrt

I recently encountered a problem building the old version of OpenWrt called "AttitudeAdjustement" on my ArchLinux machine. As ArchLinux is using the most recent sources, a upstream patch landed, which changes the default behaviour of the tool called "grep".
The same propblem seems to occur on the "oldpackages" repository of BreakingBarrier as well, so that small fix below should work there, too.

Now, it throws a message on Binary files instead of parsing it somehow, which results in the following problem:

$ ./scripts/feeds update  packages
Updating feed 'packages' from '' ...
Already up-to-date.
Create index file './feeds/packages.index' 
grep: feeds/packages/Binary: No such file or directory
grep: file: No such file or directory
grep: matches/Makefile: No such file or directory
make: *** No rule to make target 'feeds/packages/Binary', needed by '/home/matze/tmp/LibraryBox-2.1-beta-build-env/openwrt/feeds/packages.tmp/info/.packageinfo-Binary'.  Stop.

That breaks the OpenWrt Buildchain. I found the solution on the GNU mailing list: In the console you are running, change the LC_ALL setting and export it. That makes the grep tool work like before the change:

export LC_ALL=C

After that, you can work like normal:

$ ./scripts/feeds update packages
Updating feed 'packages' from '' ...
Already up-to-date.
Create index file './feeds/packages.index' 
Collecting package info: done

Remember to rerun the export when you continue working after closing the terminal window...

Matthias@Hacker Hotel

This April I'm heading towards the Netherlands for participating in a hacking event called Hacker Hotel, which will take place in Garderen at the weekend Fri 10 - Sun 12 April 2015.

I'll do a small PirateBox workshop for beginners.

In a short discussion on the IRC a lot of interest in the topic 'mainframe' came up. So, I will talk about is Hacker meets Mainframe. The plan is to do a brief overview of the history, architecture of the mainframe and why it is still a topic which should interest a normal linux-hacker.

I'm looking forward to give the two session and, of course, to see you!

Winter vacation

I think, I'm ready for my winter vacation. During the last weeks my ordered hardware arrived:

New OpenWrt hardware

On the left side you can discover one of my two WRTnodes. I ordered two of them to see how nicely they can work as mesh nodes. On the right side you find the Indiegogo founded project named VoCore, which I mainly use for Piratebox applications.

While I'm fiddling around with the new hardware, I hope you all have a merry Christmas and a happy new year.

See you soon!

How to launch an AWS instance via cron.

I'm not a big python developer, but I'm able to read documentations. There are several expensive services on the worl wide web, that allows you to start AWS instances using a specific schedule. Some free services do not allow to bring up instances of expensive types like "c3.xlarge".

For me, that is all too much, because I want to start a prepared AWS-instance once in a week. I created a solution, that uses an available Python library called boto and a common cron on a running linux machine (or a tiny RaspberryPi).
Note: This script does not create an Instance out of AMI-images, but you are able to achieve that as well.

How to setup it?

from boto.ec2 import EC2Connection
from boto import ec2

conn = ec2.connect_to_region("region-abc",
    aws_secret_access_key="secret" ) 

conn.start_instances( [ "i-4711" ] )
  • Exchange region-abc to region you instances are located. access-key and secret should be replaced with the API credentials you generated above and the i-4711 you see in your overview on the EC2 list.
  • Put the script to the crontab like:

1 3 * * 1 python ~/bin/

I use this as a tiny, cheap solution to quickly fire and forget one instance. The script doesn't fail, if the instance is already up and running. If you use this way to start the instance, you should add a shutdown option in your running AWS-instance. I use a build script fired up right after instance is finished with booting. After the complete script is processed, a norma shutdown -h now is initiated.

I don't recommend to use this in a large scale or buisiness critical solution, but sometimes you need a "quick win".