Category: Einsen und Nullen

Nagroid released

I proudly present my first Android application called Nagroid.

Nagroid is an unofficial nagios client for android devices.

At the moment (first release) there is only basic viewing support for nagios implemented – future version will improve. Drop me an email if you miss a feature, find bugs, etc…

• Download
You can download Nagroid via the Android Market or directly here.

• Screens

Main Screen

Menu Options

About Dialog

Configuration 1

Configuration 2

Stille Nacht

Es ist irgendwie ruhig geworden in diesem Blog. Ich bevorzuge zur Zeit Microblogging, folgt mir einfach auf Twitter: https://twitter.com/kiu112

WineGong

Long time ago i saw this unusual door bell at the make:blog. I loved the idea instantly! Even though the project is quite simple, it took me one year (sic) to get it done.

I didnt like the concept of using a electromagnet for playing the sound. I preferred a servo motor controlled by a microcontroler (Atmega8) to do the job (side effect: programmable “melodies”).

• The setup is quite easy:

- The two glasses (Butlers) are srewed to a wooden board (OBI)
- The servo (Conrad) is attached to the board via angle brackets (OBI) by tie wraps
- The wooden spoon (Ikea) is attached to the servo by tie wraps
- The board has two colored LEDs attached to the glasses fixated by hot-melt adhesive

The circuit board is a very simple layout (all parts Reichelt):
- Atmega8 (internal clock)
- ISP connector for programming
- Connector for servo
- Connector for 5V power supply
- Resistors for LED
- Button for testing
- The unused connector will carry the radio receiver in the future

Lessons learned:
– The glasses need a bit more spacing so the servo/wooden spoon has better momentum
– Include a RS232 connector in the layout for calibrating servo frequency/wait time

• Downloads
winegong-2008-08-17-src.tar.gz
winegong-2008-08-17-pic.tar.gz

• Pics

Top View

Bottom View

Mounting Circuit/Servo

Mounting Circuit/Servo

Mounting Glasses

Circuit Top

Circuit Bottom
   

• Vids


Melody A

Melody B

Installing redmine on Ubuntu 7.10 (Gutsy Gibbon) with apache2/mongrel cluster

Setup apache/mysql:

$ apt-get install apache2 mysql-server
$ a2enmod proxy proxy_balancer

Setup ruby enviroment:

$ apt-get install ruby1.8 ruby1.8-dev rubygems librmagick-ruby1.8 rails build-essential
$ gem update
$ gem install -y --include-dependencies mongrel mongrel_cluster

choose “mongrel 1.1.4 (ruby)”
choose “fastthread 1.0.1 (ruby)”


$ ln -s /var/lib/gems/1.8/bin/mongrel_cluster_ctl /usr/local/bin/
$ ln -s /var/lib/gems/1.8/bin/mongrel_rails /usr/local/bin/

Install redmine:

$ cd /srv/www/
$ wget http://rubyforge.org/frs/download.php/33789/redmine-0.6.4.tar.gz
$ tar oxfz redmine-0.6.4.tar.gz
$ ln -s redmine-0.6.4 redmine

edit: /srv/www/redmine/vendor/rails/activerecord/lib/active_record/vendor/mysql.rb
change
MYSQL_UNIX_ADDR = "/tmp/mysql.sock"
to
MYSQL_UNIX_ADDR = "/var/run/mysqld/mysqld.sock"

Install redmine II:
Follow http://www.redmine.org/wiki/redmine/RedmineInstall

$ chown -R www-data.www-data /srv/www/redmine

Configure cluster:

$ cd /srv/www/redmine
$ mongrel_rails cluster::configure -e production -p 8000 -N 3 -c /srv/www/redmine --user www-data --group www-data
$ mongrel_rails cluster::start

Cluster should start after reboot:
edit /etc/init.d/redmine_cluster

#!/bin/bash
cd /srv/www/redmine
/usr/local/bin/mongrel_rails cluster::restart


$ chmod +x /etc/init.d/redmine_cluster
$ update-rc.d redmine_cluster defaults

Configure apache2:

<virtualhost *>
ServerName redmine.yourdomain

DocumentRoot /srv/www/redmine/public
<directory "/srv/www/redmine/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</directory>

<proxy balancer://redmine_cluster>
Order allow,deny
Allow from all
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
</proxy>

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://redmine_cluster%{REQUEST_URI} [P,QSA,L]
</virtualhost>

Misc:

$ apt-get install cvs

Inspired by:
http://www.redmine.org/wiki/redmine/HowTo_run_Redmine_with_a_Mongrel_cluster
http://rails.aizatto.com/2007/05/20/deploying-ruby-on-rails-on-ubuntu-feisty-fawn-via-mongrel-cluster-and-apache/

Nail down blackberry verification error 2214 at / JVM Error 104

Sometimes on “old” BlackBerry devices strange errors occur without any particular reason. One of those feared errors is “verification error 2214 at / JVM Error 104″ which can be translated to “You have valid java code, but you use interfaces/abstracts/statics/synchronized/super/this/protected/foo in a combination i dont like. Screw you!”.

The JDE wont give any helpful information out of the box. It will just print something like:

VM:-DA 0
Starting rim_BBE_7130_de_DE
VM:LINK rim_BBE_7130_de_DE
Module 'rim_BBE_7130_de_DE-1' has verification error 2214 at offset 7ba9
Linker error: 'VerifyError' for rim_BBE_7130_de_DE
CMM: set CRC
NVS: write 2(152)
Error starting rim_BBE_7130_de_DE: Module 'rim_BBE_7130_de_DE-1' has verification error 2214 at offset 7ba9

But there is hope. You can at least find the offending method which caused the error:

1. Detach the JDE debugger
2. Run your application
3. The emulator shows "JVM Error 104 / Uncaught: RuntimeException"
4. Select last entry in the dropdown box "Print GC info"
5. Save "failure.zip"
6. Open the devicename.log in the zipfile
7. Search for "VM:VECPs=", "VM:VECCs=" and "VM:VECMm="
8. Modify your code and retry
9. Profit!

Example:
VM:VECPs=com.your.stylish.package.name.here
VM:VECCs=ThisIsTheFailingClass
VM:VECMm=fancyMethodWhichFails()

Good luck!

Freiheit statt Angst!

Auch in deiner Stadt: www.FreiheitStattAngst.de – hingehen!

Frei nach V for Vendetta: “Together we shall give them a sixth of November that shall never, ever be forgot. “

Google Earth Webstats

At the camp we attended a cool lecture where the speaker demonstrated live download stats via google earth. That was awesome, so i added the functionality to my domains.

PS: Its beta. I misused some functions (link instead of update) so it sucks a bit. Select only one domain for display at once…

Der Mastercode

Seit Weihnachten lag Der Mastercode auf meinem Nachttisch und staubte langsam vor sich hin. Das lange Pfingstwochenende bot die Gelegenheit den 450 seitigen Verschwoerungs/Die-Menschheit-wird-durch-Reiche-versklavt-Thriller zu lesen. Fuer eine spannende Unterhaltung ist alles wichtige dabei:

Ein Uebergoogle namens Mother, der Zerfall der Demokratie durch die von Politikern geschuerte Terrorismus Angst, nach Geld und Macht gierende globalisierte Unternehmen, Geheimdienste, Putschversuche und ein kitschiges nur-eine-Person-kann-die-Menschheit-noch-retten :)

Die Rezensionen auf Amazon sind teilweise nicht sonderlich positiv, aber mir hat es gefallen. Hoffentlich werde ich nie tiefer als A5 eingestuft…

BlinkAlone

Das Vorbild: blinkenlights

Die Alternativen: BlinkenProjects

Die Motivation: Einstieg in die Welt der 8 Bitter

Die Anforderung: KISS, Standalone Betrieb

Die CPU: Eine Matrix aus 18×8 LEDs benoetigt entweder Schieberegister Voodoo oder eine CPU mit mindestens 18+8=26 IO Pins. Gluecklicherweise verfuegt der groesste noch einfach loetbare (DIL-40 anstatt QFP) ATMega16 ueber 32 IO Pins.

Der Speicher: BlinkenLightMovies sind nicht gerade platzsparend. Wenn man die ASCII Versionen in ein binary Format ueberfuehrt, erhaelt man pro Frame stolze 19 bytes. Alle Movies aus der Blinkenlight Gallery bringen konvertiert 458kb Daten auf die Waage. Der ATMega16 hat 16kb Flash, 1kb SRAM und 512bytes EEPROM. Fuer seine Klasse eine enorme Leistung, aber fuer unser Projekt voellig unzureichend :)

Es wird externer Speicher benoetigt, der mangels freier IO Pins nur seriell (I2C) angebunden werden kann. Atmel bietet mit dem AT24C512 ein serielles EEPROM mit 64kb Speicher an, das zu maximal 4 x 64kb = 256kb kaskadiert werden kann. Dh 256kb/19bytes = 13797 Frames – das sollte reichen.

Die LEDs: Um eine weitere Beschaltung durch Widerstaende/Transistoren zu vermeiden, wurden “2ma Low Current” LEDs eingesetzt, die direkt vom ATMega16 (max 100ma) getrieben werden koennen.

Das Loeten: 144 LEDs a 2 Loetpunkte plus unzaehlige weitere Bahnen und Anschluesse – puh, das mach ich nie wieder :)

Die Ueberraschung: Es hat alles nahezu auf Anhieb geklappt!

Erst Theorie…

…dann Praxis…

…das Resultat!

Doppeldecker

Komponenten

LED top

LED bottom

Controler top

controler bottom

Beispiel I

Beispiel II

Beispiel III

Elektronik Spielzeug

Mein neues Spielzeug, ein G24 Developer Kit.

Das G24 Modul von Motorola ist ein vollwertiges GSM/GPRS/EDGE Terminal. Mittels AT Kommandos koennen GSM Voice Calls/SMS, GPRS Sitzungen und vieles mehr initiiert werden. Das Modul bietet u.a. einen integerierten TCP/IP Stack, der auch mittels AT Befehlen von aussen zugaenglich ist.

Doch es gibt noch ein Highlight: Das Modul verfuegt ueber eine Java Virtual Machine, so dass Anwendungen komplett autark im Modul laufen koennen und daher keine weitere steuernde Hardware noetig ist. Sehr cool. Die Java Versionen werden naechstes Jahr auf dem Markt erscheinen, ich spiele gerade mit einem Engineering Sample.

Das FC Oncore ist ein kleiner GPS Receiver, der SIRF III Perfomance erreicht.

Mal schauen was man damit so anstellen kann…

G24 Developer Kit

Die Zukunft ist jetzt

Im Heise Newsticker gab es ein feines Zitat zum Thema Gluecksspiel: “Hätte der Kongress der Gesetzesinitiative jetzt nicht zugestimmt, würden Spieler ihre Einsätze künftig auch vom Mobiltelefon aus oder über ihre Blackberries tätigen”.

In Deutschland sind wir bereits soweit, denn meine Firma macht gerade einen Softlaunch ihres Flag-Ship-Products. Ein hochwertiger mobiler Wettclient fuer bet-at-home.com.

Ihr koennt es kostenfrei (abgesehen von transportkosten) ausprobieren:

1. “moc bah” an die 72990 schicken
2. Direkt mit einem Test Account loslegen – User: 1 Pass: 1
3. Danach Feedback geben

Falls eure Company ein mobiles Tool braucht (gute Usability, viele unterstuetzte Endgeraete) – Wir koennen das!

PS: Sorry fuer die Werbung, aber das musste mal sein :)

Ich bin erloest!

Nach ziemlich genau vier Wochen stand heute Mittag der Herr Telefon (“Guten Tag, Telefon!”) vor meiner Tuer. Er hat zwei Kabel umgeklemmt und schlagartig ist ein Traum wahr geworden :) Nie wieder dsl light!

Ich liebe M-net!

$ ping heise.de
64 bytes from redirector.heise.de (193.99.144.80): icmp_seq=1 ttl=246 time=14.7 ms
rtt min/avg/max/mdev = 13.678/14.526/14.959/0.520 ms

$ ping -s 1400 heise.de
1408 bytes from redirector.heise.de (193.99.144.80): icmp_seq=1 ttl=246 time=26.5 ms
rtt min/avg/max/mdev = 25.701/26.498/27.199/0.615 ms

Das riecht nach Headshots!

$ wget http://501gu.de/random.rnd
11:15:11 (1.79 MB/s) – `random.rnd’ saved [104857600/104857600]

Ist das geil oder was ?

Lokaler Exim, Smarthosts und Hosteurope

Neuerdings werden meine Mails an Hosteurope Kunden als Spam markiert. Mein Setup ist recht einfach: Ein lokaler Mailer (IMP/Horde) uebergibt seine Mails einem lokalen Exim4 Server, der wiederum die Mails an einen Smarthost (bei meinem Domainhoster) weiterleitet.

Die Spamfilter bei Hosteurope moegen das aber nicht wirklich:

RCVD_IN_SORBS_DUL RBL: SORBS: sent directly from dynamic IP address
RCVD_IN_NJABL_DUL RBL: NJABL: dialup sender did non-local SMTP

Hm, scheinbar versteht Hosteurope es nicht, dass zwar ein lokales Netz benutzt worden ist, aber es anschliessend an einen Smarthost weitergegangen ist. Es muss daher dafuer gesorgt werden, dass der lokale Exim Server aus den Headern (“Received:”) verschwindet.

In der Exim Konfiguration den “smarthost” Transport raussuchen und folgendes einfuegen:

headers_remove = Received:X-Originating-IP

Das laeuft schon viiiel besser. Hosteurope meckert zwar immer noch mit den gleichen Fehlermeldungen rum, aber der Score faellt durch die Massnahme von 3.7 auf 1.0 zurueck, damit sollte es dann klappen…

A780 J2ME GPS Location API (JSR-179)

The Motorola A780 has a builtin GPS receiver which can be accessed by J2ME Midlets even though Motorola failed to include the needed libs into the SDK.

You will need the A780 SDK (v5.2.1) and the A925 SDK (May 2004). You have to fetch the file “stubclasses.zip” of the A925 SDK and include it in your built path for your A780 project. Select “Motorola SDK for J2ME MOJM3″ (in Eclipse with EclipseME installed) as your platform definition and start coding:

import javax.microedition.location.*;
Criteria c = new Criteria();
c.set…
LocationProvider lp = LocationProvider.getInstance(c);
lp.setLocationListener(instanceWhichImplementsLocationListener, interval, timeout, maxage);

Interval? Timeout? Maxage?
The setLocationListener() call is well documented, but unfortunately there is no documentation from Motorola explaining the capabilities of the device. Which settings should be used to get valid location information with a high resolution (as often as possible) ?

I wrote a try-every-value-between-1-and-12-and-measure-for-60-seconds-brute-forcer which ran almost 24 hours to get some hints for choosing good values. According to the data i would recommend the following settings:

// xx/yy locations/minute
// xx = valid locations, yy = invalid locations (null)

lp.setLocationListener(this, 1, 1, -1); // 19/17 locations/minute
lp.setLocationListener(this, 1, 1, 1); // 13/21 locations/minute
lp.setLocationListener(this, 2, 1, -1); // 10/16 locations/minute
lp.setLocationListener(this, 2, 2, -1); // 18/1 locations/minute
lp.setLocationListener(this, 3, 1, -1); // 13/3 locations/minute
lp.setLocationListener(this, 3, 2, -1); // 17/4 locations/minute
lp.setLocationListener(this, 4, 1, -1); // 11/5 locations/minute

// almost any other combination reduces performance to only 1-3 locations/minute!

I know that the measurement wasnt very scientific or accurate (weather changes, satellite movement, etc) – but better than nothing :)

RAZR V3i Browser versagen

Heute ist mein neues Motorola RAZR V3i eingetrudelt. Schickes Teil. Nach endlosen rumspielen bin ich auf die Funktion web’n'walk gestossen. Es handelt sich um einen Opera Mini Browser (das V3i hat sonst nur einen WAP Browser – ihgitt), der einem beim Starten eine interessante Frage stellt:

Zugriff auf http://xx.xx.xx.xx zulassen ?

Ich Trottel habe natuerlich “Nein! Nicht mehr Fragen!” angekreuzt, da ich dachte, das ich damit die nicht abaenderbare T-Mobile Startseite loswerde. Dummerweise war es nicht die Startseite, sondern das T-Mobile Gateway. Noch duemmer dass man die Einstellung nicht mehr Rueckgaengig machen kann :) Da wurden wohl von T-Mobile zuviele Telefonfunktionen beim Branding beschnitten.

Sehr sauber, ich habe mir also gerade meinen Webbrowser geschrotet und die Hotline erzaehlt mir, dass der Browser eigentlich gar nicht mit diesem Handy ausgeliefert wird (web’n'walk ist ne Art Flatrate fuer 30.- extra) und man daher nix machen kann.

Tja, soviel dazu, gleich mal den Retourschein benutzen und dann ein Nokia Telefon mit nem richtigen Opera Mobile ordern.

Hauptsache haben

Ich brauch es nicht wirklich – aber Hauptsache Early Adopter :)

$ host -t NAPTR x.x.x.x.x.x.6.0.1.6.9.4.e164.arpa
x.x.x.x.x.x.6.0.1.6.9.4.e164.arpa NAPTR 1 10 “u” “E2U+tel” “!^.*$!tel:+496106xxxxxx!” .

AVI2DVD with mencoder without distortion

I tried to convert AVI files to DVD PAL MPEGs using a Debian Version of mplayer/mencoder (MEncoder dev-CVS–3.3.5/1:1.0-pre7cvs20060219-0.2sarge1) using the advice from the mencoder manual:

mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\
abitrate=192:aspect=16/9 -ofps 25 \
-o movie.mpg movie.avi

Unfortunately the conversion of the audio track to 48khz gets totaly distorted. But only if video and audio is converted at the same time. Easy solution:

1. Convert the audio:
mencoder -oac lavc -ovc copy -srate 48000 -af lavcresample=48000 -lavcopts acodec=ac3:abitrate=192 -o tmp.avi myinputfile.avi

2. Convert the video:
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9600:vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 -o myoutputfile.mpg tmp.avi

3. Done
rm tmp.avi

server4you vserver performance

Ich habe mich endlich aufgerafft und meinen Virtual Server bei Server4You richtig konfiguriert. Doch wie sieht es jetzt mit der Performance aus ? Ueber den up/downlink kann man sich nicht beschweren, konstante 500 kb/s sind ok. Aber was ist mit CPU und IO Leistung ?

Ich habe mrtg installiert und lasse ein paar Messungen laufen. Interessant ist zum Beispiel ein md5sum auf einem 400MB File. Zwischen 6 und 44(!) Sekunden ist alles drin. Hat noch jemand Ideen was man feines benchmarken koennte ?

MRTG Graph

Vogelperspektive

Detailreiche Satellitenbilder zum reinzoomen sind einfach toll. Wir kennen alle die Bilder von Google Earth. Allerdings kann man den Zoom nur in Grossstaedten richtig geniessen, weite Flaechen (zb meine Heimat) in Deutschland sind einfach nur eine matschige Pixelsuppe.

Doch goyellow.de hat einen neuen Webkartendienst gestartet der jetzt deutlich bessere Kartendaten liefert. Aber schaut doch einfach selbst: Rembruecken

Schoenes Feature: Rechts unten kann man den Link “Lesezeichen” kopieren und schon hat man einen Link zum Kartenausschnitt. Die einfache Web API laedt zum experimentieren ein.

Ausstellung beendet

Die Ausstellung ist endgueltig beendet. Ich habe in diesem schoenen Wordpress Blog bisher das Exhibit Plugin benutzt, um meine Bilder zu pflegen.

Leider werden die Bilder dabei nicht in das Posting integriert, sondern von Exhibit in einer extra Datenbanktabelle verwaltet und dynamisch bei Abruf hinzugefuegt. Ein Horror bei Wordpress Updates. Ich habe mir daher ein kleines Skript geschrieben, dass meine Exhibit11 Bilder in die Postings inlined. Es sieht nicht gerade huebsch aus, aber es erfuellt seinen Zweck.

Download: exhibit2table-0.0.1.tar.gz

WordPress Themes