Wiedi in Wonderland

Hot Picz!!!1elf

Sat 30 August 2008

Zufälligerweise gerade eine Thermo Cam im Haus gehabt und gleich mal ein bisschen damit herumgespielt.

hot wiedi

Mirror mirror on the wall, who's the hottest dude in town? ;-)

hot house

hot macbook

MacBooks werden heiß!

openmoko neo freerunner charging

Beim Freerunner ist während dem Laden der Akku zu sehen.

thermo freerunner

Ansonsten wird nur das GSM (?nicht ganz sicher) etwas wärmer - ist aber nicht spürbar ;)

Holiday Geek

Sat 16 August 2008

Normal ist: zur Urlaubszeit Postkarten bekommen. Nicht ganz so normal: wenn die Postkarte verschlüsselt ist.

Diese nette Karte hab ich kürzlich von Boris bekommen. Um zu erfahren was dort geschrieben steht also erstmal alles in den Rechner tippen.

        03 0c 06 54 1d 08 1a 1d 45 0c
        45 0e 08 52 23 0b 01 45 0f 06 03
        45 6e 31 17 54 20 0b 13 1c 06 53
        11 00 49 18 4e 26 4f 20 10 4e 1e 10
        16 79 20 45 13 18 0f 14 0c 47 4c 07
        0c 0d 08 52 62 0e 16 07 0b 1a 11 00
        64 7a 45 36 16 0f 09 64 0e 53 16 45
        1a 02 00 24 1a 16 06 06 07 07 04 78
        7a 0d 11 1d 1d 12 4e 0f 49 07 17 47
        43 0e 48 3c 07 0d ad c5 0b 49 2a 30 04
        07 07 4e 25 1b 47 41 0e 09 0c 1e 00 27
        01 10 16 0d 1b 09 a6 b6 27 16 11 18 00 41
        05 08 4e 0c 11 0c 1e 54 6c 65 4e 02 1c 06 16 16 20 5e

Dass es kein ASCII ist war durch die niedrigen Werten und den enthaltenen Nullen sofort klar.
Mit Python dann erstmal versucht überall einen Offset zu addieren. Nur Müll.

PGP? Eventuell. Also in Base64 umgewandelt, Envelope aussenrum gebastelt... passt auch nicht.

Für XOR fehlt aber ein Schlüssel.

Oder auch nicht. Auf der Vorderseite ist ein kurzer Satz geschrieben. Fängt mit einem "T".
Also mit dem Taschenrechner ausprobiert:

Ergibt ein "W" - ok das ist schonmal nicht schlecht ;)
Also wieder Python zur Hilfe geholt und ein kurzes Script gebastelt. Das war's tatsächlich! So hat's geklappt.

Den Schlüssel verrate ich aber nicht! Einen kleinen Hinweis gibt es aber: die Schlüssellänge ist 23 - und kann so relativ leicht geknackt werden. Viel Spaß!

Ach ja, nächstes Wochenende ist FrOSCon!

i follow the frog

Und nächsten Monat BarCamp Stuttgart.

BarCamp Stuttgart

See you there ;-)

Wiedi running free!

Fri 04 July 2008

Openmoko Freerunner Box

Heute angekommen. Neues Telefon. Frei. Mein Openmoko Freerunner. Sehr hübsch in schwarz, solide und handlicher als ich erwartet hatte.

Openmoko Freerunner Extras

Außerdem hat TRIsoft zusätzlich zu dem schon ordentlich mit Spielzeug ausgestattetem Paket noch ein Headset und die offizielle Pouch kostenlos dazugelegt. Danke! :)

Openmoko Freerunner Linux booting

Die Software läuft bis jetzt sehr stabil. Telefonieren funktioniert, shortmessagen auch. Ein Terminal im Handy ist definitiv praktisch, und hier auch sehr gut zu bedienen. Sogar mit mehreren Tabs! Was allerdings für richtiges Bashen fehlt ist eine Tabulatortaste auf dem On-Screen-Keyboard. Was mir ebenfalls noch fehlt ist etwas mehr Software zum rumspielen (die fehlt im default Image damit alles schön stabil ausgeliefert wird). IPv6 Modul ist auch nicht mit drauf. Das lässt sich aber alles recht leicht durch ein neues Image beheben... werde ich morgen draufflashen ;)

Gute Nacht!

PS: das Screenshot-tool hat eine automatische "ins internet upload" Funktion! Das muss ich natürlich auch noch umbauen damit die Bilder an SaU geschickt werden ;)

IPv6 mit OpenVPN unter Leopard

Sun 01 June 2008

Eine IPv6 Verbindung über ein OpenVPN mit tap-Device unter Leopard zu bekommen ist nicht ganz einfach.
Das rtsol versucht mit shutdown() das socket in den Write-Only modus zu versetzen. Das schlägt mit "Socket is not connected" fehl.
Ich vermute dass der tap-Driver dafür keine Unterstützung hat, bin mir aber nicht sicher - hab's noch nicht näher angeschaut.

Ein "einfacher" work-around ist rtsol zu patchen. Also die Sources von

http://www.opensource.apple.com/darwinsource/tarballs/apsl/network_cmds-307.tar.gz

herunterladen. Dafür braucht man einen ADC Account.
Weil ich grad sooo faul war um die mir fehlenden Abhängigkeiten des Makefiles rauszusuchen hab ich schnell ein eigenes gebaut.
Runterladen und in den rtsol.tproj Ordner kopieren.
Die Zeile 88 in der Datei probe.c auskommentieren, die bei dem Fehlschlagen von shutdown() rtsol beendet.
Ebenfalls in probe.c in Zeile 47 das include von ip6_var.h nach in6_var.h ändern.
Nach einem make kann man rtsol mit der selbstgebauten Version ersetzen.
Fertig.

Nicht ganz schön, aber funktioniert. Werde jetzt mal versuchen genauer herauszufinden warum das shutdown() auf dem Tap-Device nicht funktioniert...

Ach ja, Tunnelblick mag unter Leopard gar kein IPv6 - sobald selbst nur eine Link-Local Adresse hinzugefügt wird startet die VPN-Verbindung neu, das Tunnelblick Suversion ist momentan leider auch kaputt.... schade

Live from BarCamp

Sat 31 May 2008

Zeppelin University

Wunderbar! Einfach super.

Bin ja wie geplant in Friedrichshafen. Hocke mit Blick auf den See vor der ZU und esse eine Brezel.

Eben ist der Zeppelin über mich drüber geflogen - sehr passend :)

Zeppelin

Nach dem Frühstück mit leckerem Kaffee von Sonntagmorgen und allem was man sich sonst noch so wünscht die übliche Vorstellungsrunde: ca. zwei drittel sind zum ersten mal hier - cool :)

BlueMaex hilft gerade noch am Eingang aus und PanicProne kämpft mit dem WLAN... das bis auf kurze Aussetzer relativ gut funktioniert.

More to come...

Update:
Sooo gleich gibt's Abendessen, die Sessions sind vorbei. Waren einige interessante dabei, unter Anderem über Microformats oder OpenID von Cédric Hüsler. Zum Schluß ging es noch um zu Zukunft des Internets in 20+ Jahren, wo einige sehr verrückte Ideen diskutiert wurden.
Der kurze Regen von eben ist auch schon wieder weg und ich stürz mich jetzt aufs Buffet....

Barcamp Bodensee

Wed 21 May 2008

BarCamp Bodensee

Übernächstes Wochenende ist es soweit: ein BarCamp direkt bei uns in Friedrichshafen.
An der Zeppelin University findet von Freitag Abend (30. Mai) bis Sonntag das BarCamp Bodensee statt. Zu erst Party und Samstag und Sonntag dann Unkonferenz. Bin gespannt ;D

Echohipa

Wed 23 April 2008

Heute mach ich mal etwas Werbung für eine ziemlich coole Idee die hier an der FH entwickelt wurde: Echohipa.

Jeder kennt das Problem: man ist unterwegs an einem fremden Computer um mal eben in der trendigen Onlinecommunity nach neuen Mitteilungen zu schauen. Die Tastatur fühlt sich anders an. Man ist sich nicht ganz sicher ob alles richtig geschrieben ist. Gerade im Internetcafé möchte man das Passwort nicht öfters eingeben - zu leicht kann hier auf die Finger geschaut werden.

Echohipa, was übrigens für "Easy Check of Hidden Passwords" steht, ist ein simpler Lösungsansatz: Dem User wird vor dem bestätigen des Logins etwas nicht-eindeutiges aber Einprägsames gezeigt. Es wird also über das Passwort ein Hashwert berechnet und visuell Aufbereitet. Beispielsweise kann aus dem Hash eine Farbkombination, eine Grafik oder ein Wort gebildet werden.

So sieht man sofort: "ah, das Echohipa ist Grün-Orange-Lila, das passt". Rückwärts funktioniert das dank des Hashes natürlich nicht.

Ein paar Beispiel Umsetzungen kann man sich auf der Demoseite anschauen und ausprobieren.

Ich sehe aber auch noch Verbesserungspotential:
Das Echohipa sollte erst berechnet und angezeigt werden nachdem das Passwort komplett eingegeben wurde (onblur) - ansonsten ist es sehr einfach bei der Eingabe zuzuschauen welche Farben / Wörter der Reihe nach erscheinen.
Eine Möglichkeit das Echohipa komplett zu deaktivieren wäre für manche Situationen auch sinnvoll: Es enthält immer noch einen gewissen Informationsgehalt über das Passwort den man nicht überall Preisgeben will.

Diese Änderungen können aber ohne weiteres gemacht werden: der Beispielcode wird unter der Creative Commons Attribution-Share Alike Lizenz zum Download angeboten. Sehr schön! ;-)

Mal sehen wo ich mein erstes Echohipa einbaue. Freamware?

The History Meme

Thu 10 April 2008

gruppenzwang...

# history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
81 cd
70 ls
67 nano
54 ssh
25 scp
21 make
16 host
12 sudo
10 ./configure
9 ping6

libmaia: XML-RPC with Qt4

Sat 08 March 2008

So, now that my exams are all done I finally found some time to put up a library you might find useful.
Two semesters ago Karl Glatz and I both needed a XML-RPC library for Trolltechs Qt 4.

Qt4

We first looked around what was already there:

  • QuteXR: a very good lib implementing the server and client side. Sadly only Qt 3. Has many features and so wasn't easy to port over to Qt4 in the short time we had for our Projects.
  • KRPC: only implements the client side. But we could use some code here.
  • QxtXmlRpc: I found out about this one only recently. And also only implements the client.

So we had to create something new. Luckily we were able to use some code from KRPC and had some inspiration from QuteXR.

To demonstrate how easy it is to use libmaia: two examples.

Let's create a Server first using these simple lines of code:
QLineEdit *sometext = new QLineEdit(this);
MaiaXmlRpcServer *server = new MaiaXmlRpcServer(8080, this);
server->addMethod("examples.displaytext", sometext, "setText");

First we create a QLineEdit for demonstration purpose.
Then we start the XmlRpc Server on port 8080.
In line 3 we register the Method "examples.displaytext" to the QLineEdits slot "setText".
You can now remotely call "examples.displaytext" with a String as parameter and change the content of your LineEdit.

Now create a client:
MaiaXmlRpcClient *rpc = new MaiaXmlRpcClient(QUrl("http://localhost:8080/RPC2"), this);
rpc->call("examples.displaytext", QDateTime::currentDateTime().toString("hh:mm:ss"),
this, SLOT(testResponse(QVariant &)),
this, SLOT(testFault(int, const QString &)));

Here we create the client object by passing the server URL to the constructor.
Calling a Method is as easy as passing its name, the arguments and two slots to the "call" method.
The first of the two slots is used to handle the response, the second can be used to catch errors.

Looks easy to get started with? Right, so clone directly from github here:

git clone https://github.com/wiedi/libmaia.git

You'll also find further examples there.

Have fun with it :)