Tigraine

Daniel Hoelbling-Inzko talks about programming

Interessanter Ansatz für ein Server-Protokoll

Ich glaube mir ist aus Versehen was interessantes gelungen.

Im Rechnernetze Kurs an der Uni war von uns gefragt ein eigenes Protokoll für einen Socket Server unter Java zu entwerfen.

Im Grunde wollten man wohl ein relativ simples HTTP ähnliches Protokoll mit GET, POST und LIST von uns. Ich musste aber natürlich über das Ziel hinwegballern.

Rausgekommen ist ein IMAP ähnlicher Socket-Server der nicht nur für jedes Socket einen Thread öffnet sondern auch für jeden Command einen weiteren startet um nie zu blockieren. Und auch wenn das jetzt ziemlich brutal klingt, der tiefere Sinn dahinter war der dass man dadurch Befehle aneinanderreihen kann und das im Server sehr simpel über Thread.join() gelöst wird.

Spezielles zum Konzept und der Paket Syntax gibts unter more.

Java Source Code of Packet Spec

Sämtliche Befehle werden mit einem Token prefixed (wie in IMAP) und dieser Token wird vom ClientHandler (der eigene Thread für jeden Client) in einer Hashtable als Key angelegt während der zu launchende Thread (CommandExecution) die Value ist. Existiert der Key bereits in der Hashtable so wird der alte Thread durch den gerade neuen ersetzt und der neue macht Thread.join() auf den alten. Dadurch wird der neue erst ausgeführt wenn der alte Befehl abgearbeitet ist, also dessen run() Methode durch ist. Der Token diehnt auch dazu dass der Client die Response vom Server zuordnen kann (wie in IMAP).

Was auf jeden Fall noch verändert werden muss bevor man damit irgendwas bauen kann ist dass alles auf Threadpools umgebaut werden muss (Das andauernde Threads starten frisst enorm Ressourcen). Außerdem ist der Server momentan sehr verwundbar gegen DoS Attacken.

Ich werde versuchen bis nächste Woche mal den Java Code soweit aufzubereiten dass ich ihn ohne mir Spott und Hohn einzuhandeln hier unter der GPL herzeigen kann.

Parkplatz Demo an der Uni

ÖH Demo

Juhu, endlich was interessantes zu berichten dachte ich mir gestern als ich das Infomail der ÖH-Klagenfurt bekam mit der Ankündigung der Demo gegen die Parkplatzgebühren und für mehr Parkplätze.

Heute war ich dort, wollte meine Liebste abliefern und mal schauen was los ist. Folgendes Bild bot sich mir:

5 Polizeiautos, 8 Polizisten und 3 Demonstranten standen am Westparkplatz der Uni Klagenfurt.

Von den 3 verzweifelten Demonstranten wurde ein Schild hochgehalten und der Parkplatz war mit Absperrband versperrt. Und das alles um 8:30! Als ich um 12 nochmal zur Uni musste war von Demo nichts mehr zu sehen.

Witzig ist vor allem dass die ÖH jetzt im Newsletter die Aktion als vollen Erfolg preist :). Ich weiß zwar nicht was daran erfolgreich ist wenn mehr Polizisten als Demonstranten auf der Demo waren.. aber trotzdem Respekt an die wenigen die mitgemacht haben!

Update: Ich habe zufällig noch ein besseres Photo von der Demo bei SemanticMetadata gefunden, dem Blog meines Rechnernetze LV-Leiters.

Filed under news, personal, studium

The Beast within

The Beast in UBRS

Mein Gott, eigentlich sollte ich mich seit knapp 4 Stunden mit Einführung in die Theoretische Informatik beschäftigen, anstatt dessen surfe ich durch die weite Welt und lese mir allen möglichen Mist über Weblogs und deren Technik durch.

Nun, verbinden wir das sinnlose mit dem noch sinnvollen: Ich dachte ich Poste mal die Lösungen zum Übungsblatt 2 von Rechnerorganisation:

Außerdem habe ich meine Blogroll aktualisiert :). Blogroll ist übrigens die Liste der Blogs die ich momentan abonniert habe und regelmäßig lese.

Und da wären wir auch schon bei meiner nächsten Neuentdeckung: Google Reader Warum ich jetzt auf Google Reader umgestiegen bin sprengt jetzt aber ein wenig den Rahmen des Posts, und ich werde dem Thema morgen einen eigenen Post widmen.

Wer macht sowas?

Verzweiflung macht sich breit um 2 Uhr Nachts.

Ich komme mit meinem ETI Blatt einfach nicht zurande und hab nun endgültig den Hut drauf geschmissen. Nach dem PR werde ich wohl wieder schlauer sein und nächste Woche sollte ich mal bei der Vorlesung vorbeischauen, vielleicht hilfts :)

Hier übrigens das Übungsblatt für alle diejenigen die es mal selbst versuchen wollen

Übungsblatt 3
Ach ja, und für jeden der glaubt sein eigenes Skript ist Mist hab ich unseres mal hochgeladen gestellt. Zweifelsohne das wohl schlechteste Skript das ich jemals gelesen habe.
Skript - Grundlagen

I hate Java

Gut dass ich mir sicher sein kann das das nicht wirklich viele Leute lesen, sonst müsste ich wohl einen Flame-War allein wegen der Überschrift fürchten, ganz zu schweigen von dem was noch kommt.

Aber zurück zum Thema. Gute Vorsätze fürs Semester und so wollte heute erstmalig umgesetzt werden und ich hab mich an die Rechnernetze Aufgabe rangemacht. Die Sache fing simpel an, Eclipse runterladen und installieren, und los gehts. Zwei vorgefertigte Klassen implementieren und jeweils eine Read und Write Methode erstellen die die Klasse auf die Festplatte als Datei schreiben würde.

Bisher eigentlich ganz simpel, und eigentlich sollte es auch so bleiben dachte ich. Löblicherweise wurde sogar ein Link zu einem DataStream Tutorial gegeben und nach einigem herumgesuche hab ich es sogar geschafft (unter Zuhilfenahme der Javadoc) ein halbwegs funktionierendes Programm zusammenzuzimmern.

Nun, warum hasse ich also Java? Ein 30 Zeilen Programm hat mich fast 2 Stunden Arbeit gekostet. Herumprobieren mit dem Code, herumspielen mit der IDE, Debugger testen (Guter Tipp: Exception.printStackTrace() ist dein bester Freund!) Und das beste: Ich bin nicht fertig und habe noch 3 Punkte am Aufgabenblatt vor mir.

Denn: Nachdem der erste Teil der Aufgabe simpel war (Ein Objekt das nicht Serializable ist auf die Platte zu schreiben) scheitere ich wohl an der zweiten Aufgabenstellung. Nämlich ein Collection Objekt in eine File zu schreiben.

An und für sich auch simpel, ich habe nur keinerlei Lust den gesamten Stream.writeUTF Mist den ich schon für das einzelne Objekt geschriebne habe nochmal in der Collection Klasse erneut zu schreiben mit irgendwelchen armen Count variablen etc. Eklige Sache.

Nun, eigentlich kann Java garnichts dafür, unter .NET wäre die Sache ähnlich verzwickt, nur dass ich mich da mit der Sprache soviel sicherer fühle dass das ganze bis zu dem aktuellen Punkt wohl nur 10 Minuten gedauert hätte.

Übrigens, sagte ich schon dass ich das neue Eclipse ziemlich gut finde? Vor allem das Word-Hopping :). Mit CRTL+Pfeiltaste kommt man innerhalb eines Wortes anhand des Camel Casings weiter. Also bis zum nächsten großgeschriebenen Wort (genial wenn alle Variablen z.B. strInputParam2 etc heißen)

Filed under coding, java, java, rechnernetze, studium

My Photography business

Projects

dynamic css for .NET

Archives

more