Ruby Caldav Library

Nikolaus Gradwohl2008-07-14T06:27:00+00:00

I have a DAViCal running and i wanted to write a simple jabber bot that reminds me when i have forgotten to enter my timesheet data. So i have hacked together a simple ruby library to access the caldav protocol. More info and sourcecode is available on the project page

read more ...


Nikolaus Gradwohl2008-07-13T22:06:00+00:00

I just made another completly useless Mousetrail Demo in 5 minutes using processing

Why this time? - same reason as last time :-)

read more ...

'Hello World' in 80 hacks / In 80 Sprachen 'Hallo Welt' - Phase 1

Nikolaus Gradwohl2008-07-13T20:40:00+00:00

I have started a multilanguage programing project. The goal is to create a "Hello World"-program using 80 programing languages. A list of programing languages i intend to use is already available on the project-page

read more ...

Nagios Glitzerlampe

Nikolaus Gradwohl2008-07-13T16:58:00+00:00

I made a new project page for my nagios visualisation system written in ruby.

read more ...


Nikolaus Gradwohl2008-07-12T21:19:00+00:00

I hacked together a BouncinBall-Demo in 5 minutes using processing.

Why? Just because i can :-)

read more ...

Demo Exhibition

Nikolaus Gradwohl2008-07-12T21:01:00+00:00

Yesterday some workmates and i went to an exhibition about demos in the MQ. It was realy realy funny to see C64, Sinclare, Amiga, Atari and co in reality again.

They even had a Atari Falcon 030!! And a FastTrack II!!

read more ...

Processing OSC

Nikolaus Gradwohl2008-07-04T06:23:00+00:00

I have recently posted about my chuck-script that generates osc events from my m-audio iControl. Now i have written a Processing-sketch, that visualizes the events. The OSC-Events are parsed using the oscP5.

import oscP5.*;
import netP5.*;

OscP5 oscP5;
int buttons[] = {0,0,0,0,0,0,0,0};
float knobs[] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};

void setup() {
background( 0 );
oscP5 = new OscP5( this, "", 3334 );

void draw() {

void drawControl() {
ellipseMode( CORNER );
for (int i = 0; i < 8; i++ ) {
    fill( 255 * buttons[i] );
    stroke( 255 );
    ellipse( 10, 20 + i * 20, 15, 15 );

    fill( 0 );
    rect( 40, 20 + i * 20, 100, 15 );  
    fill( 0, 0, 128 );
    rect( 41, 21 + i * 20, 99 * knobs[i], 14 );  


void oscEvent( OscMessage m ) {
print( " pattern " + m.addrPattern());
println( " type " + m.typetag());
if (m.addrPattern().equals( "/icontrol/button" )) {
    int chan = m.get(0).intValue();
    int val = m.get(1).intValue();
    buttons[chan] = val;
} else if ( m.addrPattern().equals( "/icontrol/knob")) {
    int chan = m.get(0).intValue();
    float val = m.get(1).floatValue();
    knobs[chan] = val;
read more ...

stinky emails

Nikolaus Gradwohl2008-06-23T06:14:00+00:00

Last week a college came up with the theory, that nobody would have mails lying around in his inbox, if they would start to stink after a while. To check this, i came up with the "email-stinky-o-mat" i already have hacked together a small ruby script that calculates the "stinkycount" for a mailbox.

require 'net/imap'
require 'date'

imap ='mailhost')
imap.login( 'user', 'password') "INBOX" )
stinkycount = 0["BEFORE", "#{( "%d-%b-%Y" )}" ]).each do |message_id|
stinkycount += 1
puts "#{stinkycount} stinking messages found"

this count can now be sent to a microcontroller (an arduino for example) which starts a fan, that is standing next to a reservior containing someting stinky - et voila (imagine drum roll here) - emails start to stink after 20 days :-)

read more ...


Nikolaus Gradwohl2008-06-20T05:44:00+00:00

Yesterday i attended to the javadeus08, the first java-conference by sun in austria.

Most of the sessions were really interesting, and i definitly have to give jmaki a try :-)

The only thing, that annoyed me, is that there was no free wlan and that even the speakers had a veeeeeeeeery slow connection for their demos

read more ...


Nikolaus Gradwohl2008-05-31T19:06:00+00:00

6 years ago we have put up a table in our cellar for soldering and making stuff. since then we put various stuff in big boxes on the table an in front of it "just until we find a proper place" ... :-/

today we finaly managed to clean our cellar, put up 3 new shelves and store the stuff in them, and - TADA - the table can be used now!!

i just went down and soldered a kit - just because i can :-)

read more ...