Wiedi in Wonderland

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 :)

Announcement: Vine - Visualized Networking

Mon 14 January 2008

Today we finished the website for a project Michael Wagner and I am working on at the moment.
The project is called Vine which stands for Visualized Networking.
And thats what it's all about: gathering information of IP networks and visualize them in a simple graph.

To get the information from the network we use different technics. For example there is an Avahi component resolving all announced Services. Planned is also an Nmap component and one using simple ICMP echo requests.

As some of these technics only work on the local link we separate the discovery part from the GUI (called Vine Control Center) into a daemon application (called Vine Agent) you can run in different network segments.

The Control Center receives the information from all your daemons and puts the puzzle together presenting you with a nice map of your network and all its devices. Clicking on a Device will show you everything Vine could find out about it. To for query more detailed data there is a SNMP client integrated as well.

Both parts are written in C++ and Qt, so they'll run on quite a lot of platforms. As the Agent also requires Avahi it won't be able to run it on Windows though.

At the moment it isn't really usable yet, but you can check the progress with the WebSVN. For a sneak peek of the user interface have a look at the Screenshots.

If you'd like to help just leave a comment :)

LinuxDay 2007

Sun 25 November 2007

Heute haben sich Geeks aus nah und fern am LinuxDay in Dornbirn getroffen. Boris ist sogar extra aus Berlin runtergefahren! (Und hat korrekte lieblings premium Cola mitgebracht - sehr super!) Dieses mal hatten wir keinen eigenen Frubar Stand sondern haben statt dessen etwas über IPv6 informiert und viele interessante Gespräche geführt. Bernd, DrScream und Georg haben ausserdem Gentoo vertreten.

Kamerakind Spike

Unser Kamerakind Spike hat wieder viele tolle Fotos geschossen. Als kleines Kunstprojekt quasi hat er viele Besucher gemeinsam mit einem Switch (Symbol für den Treffpunkt und Kommunikation?) abgelichtet. Die Galerie ist leider noch nicht Online, der Link wird aber nachgeliefert.

Sehr interessant war auch die Demonstration von Raphael Langerhorsts selbstgebautem Computer. Raphael Langerhorst Das System läuft natürlich mit NetBSD, benötigt inklusive Display gerade mal 5 Watt und kann somit via Solarzelle betrieben werden. Als ob das nicht schon genug wäre entwickelt Raphael auch noch an einer eigenen Infrastruktur, die eine neue Abstraktionsebene überhalb des Betriebsystems darstellt und als graphische Benutzerschnittstelle dient.

Von dem vollen Programm habe ich letzen Endes doch nur zwei Vorträge besucht. Zum einen "Ganeti", ein Xen basiertes Cluster-Verwaltungsprogramm von Michael Hanselmann dass bei Google entwickelt wird. Zum anderen hat Paul Kirner über die Implementierung einer ATA over Ethernet Storage Lösung an der HS-Weingarten referiert.

Zum Abschluss wurden alle Mitwirkenden von der Linux User Group Vorarlberg, die den LinuxDay bereits seit 1999 jährlich ausrichtet, auf ein gemütliches Bier und leckere Käsespätzle eingeladen. Danke schön :)

Hat sehr viel Spaß gemacht! Bis spätestens nächstes Jahr ;)

Rätsel

Tue 20 November 2007

raetsel

Wer rausfindet worum es geht bekommt ein Eis. Hmmmm oder besser einen Glühwein bei dem Wetter...
Viel Spass - ich hoffe es ist nicht zu schwierig. ;-)

Neuer Mitbewohner

Sun 14 October 2007

Seit einer Woche hab ich jetzt einen Drachen als Mitbewohner. Allerdings sehr nett und sehr grün. Darf ich vorstellen: Dracaena, mein neuer Mitbewohner.

Dracaena 1
Dracaena 2

In other news: ich bin nicht tot, ich hab nicht aufgehört zu Bloggen und auch sonst werde ich euch nicht verschonen. Der Grund weshalb ich nicht vom grossartigstem und besten Camp aller Zeiten berichtet habe ist einfach: auf dem Camp gab es viel zu viele nette Leute mit denen man sich unterhalten musste, interessante Projekte die man ausprobieren musste, und überhaupt viel zu viel von allem was nur irgendwie spass macht. Ja, mich hat die Camp Sehnsucht gepackt. Danach gab es auch nix von mir zu hören weil ich die restlichen Semesterferien mit Arbeiten verbracht habe.
Aber jetzt ist alles anders.
Das Semester hat wieder angefangen.
Ich hab wieder viel Freizeit.
Ich bastele an vielen neuen Projekten (...ja noch mehr und mehr und immer mehr und mehr dazu, wann anders).
Der Spike hat endlich Auto und Blog. ;-)
Ich habe angefangen meine Bookmarks über del.icio.us zu verwalten.

And I like it!

Camp Day -2

Mon 06 August 2007

Morgen früh um Sieben geht's los. Bis dahin gibt's noch viel zu viel zu tun ;)
Natürlich geht so kurz vorher einiges schief. Gestern zuerst einmal eine Stunde verzweifelt gegen einen Drucker angekämpft und schließlich aufgegeben. Somit wird auch der Dvorak Workshop gecancelt. Wer Interesse hat wie man seine Tastatur umbaut kann natürlich gerne am Village vorbeischauen.
Später haben wir noch ein Servernetzteil getötet, Epsi und Chosy haben beide ihre Züge verpasst und mein Switch den ich mit aufs Camp nehmen wollte ist auch noch ausgefallen.

Aber alles halb so schlimm.
Epsi und Chosy sind gestern dann mit etwas Verspätung gut in Friedrichshafen angekommen. Abends haben sich alle gemütlich im Bäumle getroffen.
Heute morgen sind die Super-Garten-Sessel gerade rechtzeitig angekommen. Der Switch geht auf mysteriöse weise auch wieder.

So, und jetzt muss ich weiter packen - später geht's nach Tettnang wo ich dann auch gleich bleibe und morgen direkt starte.

Simpsons Movie

Sat 21 July 2007

genau wie DrScream kann ich den kommenden Mittwoch kaum mehr erwarten. Mittwoch? Ja! Karten für die Vorpremiere ;-)

Come to the camp with us!

Ausserdem: es sind noch Plätze in dem fantastischen Frubar Bus frei der direkt zum Camp fährt. Also schnell anmelden und mit vielen netten Leuten spass haben!

(hintergrund von criscris1)

Tunnelblick mit IPv6

Wed 04 July 2007

Tunnelblick, mein lieblings GUI für OpenVPN unter OS X, hat sich bis gestern immer geweigert IPv6 auf dem tap Device zu verwenden. Unter Linux war das nie ein Problem, einfach OpenVPN Verbindung aufgebaut und ich bekam dank SLAAC eine Adresse.

Das hat mich schon länger gestört und gestern hab ich also die Zeit gefunden rauszusuchen wie ich das ändern kann.
Die Lösung ist erstaunlich einfach:
sysctl -w net.inet6.ip6.accept_rtadv=1
ip6 -u tap0
rtsol tap0

Der nächste schritt wäre das in `/Applications/Tunnelblick.app/Contents/Resources/client.up.osx.sh` einzufügen damit bei jedem Verbindungsaufbau ins VPN IPv6 für das Interface aktiviert wird.

UPDATE:
Ich habe
sysctl -w net.inet6.ip6.accept_rtadv=1
ip6 -u $INTERFACE
rtsol $INTERFACE

in Zeile 10 eingefügt.
Wichtig: die Haken bei "Set Nameserver (Experimental)" muss gesetzt sein damit das Script aufgerufen wird.