Archive Page 3

05
Feb
08

json

Nachdem ich gestern auf meinen Rechner eine Palava-Umgebung eingerichtet hab’, war ich heute mit JSON beschäftigt. JSON steht für JavaScript Object Notation, ist aber trotz seines Namens unabhängig von der zugrundeliegenden Programmiersprache. Ein String, der in JSON-codiert ist, sieht in etwa so aus:

{

“name” : “alittleobject”,
“next” : null,
“previous” : {

“name” : “anotherlittleobject”,
“count” : 18,
“anarray” : [ null, 192, false]

}
“number” : 17,
“list” : [ "astring", 127, true ],
“active” : false;

}

JSON ist in gewisser Weise sehr ähnlich zu XML. Aufgrund seiner Nähe zu JavaScript kommt es bevorzugt beim Datenaustausch zwischen Webservern und Browsern, die via Ajax kommunizieren, zum Einsatz.

04
Feb
08

palava

Nachdem ich am Freitag das Projekt mit der automatischen Kartenbeschriftung quasi abgeschlossen habe, bestand meine Aufgabe heute darin, mich in die firmeneigene Java-PHP-Bridge Palava einzuarbeiten. Um genau zu sein, soll ich mich mit JSON beschäftigen und das Framework so hingehend erweitern, dass zum Datenaustausch zwischen Frontend (PHP) und Backend (Java) neben der PHP-Notation nun auch JSON zum Einsatz kommt.

01
Feb
08

html, swf, ajax, js, rhino,…

Gestern (Donnerstag) und heute (Freitag, haha!) war ich damit beschäftigt, ein kleines Web-Frontend für die Karte zu bauen. Ich durfte meine nicht-existenten HTML+CSS-Kenntnisse ausbauen :) . Hab’ jetzt die Map als Flashfilm und dazu ein kleines Panel, womit man per Ajax, die thread-basierte Abarbeitung des genetischen Algorithmus auf dem Server steuern kann. Per Ajax werden auch die jeweils aktuellsten Ergebnisse direkt (bzw. mit 5 Sec Verspätung) an den Browser geschickt.

30
Jan
08

Heute mal früher

In letzter Zeit hinke ich ja immer 12h hinterher, was meinen Bericht angeht. Heute bin ich dafür mal besonders früh dran.
Zwei Aufgaben erwarteten mich heute morgen.

1. Warum zum Henker wird im Flashfilm totaler Müll angezeigt, obwohl es super aussehen müsste?
(Sprich, lauter Überschneidungen und schlechte Ausrichtung der Bilder, aber eine gute Bewertung)
2. Im CMS eine dynamische Liste von artverwandten Artikeln erstellen.
(Also wieder etwas mehr über das firmeninterne CMS lernen)

Aufgabe zwei war mit Biancas Hilfe relativ schnell erledigt und kleine Probleme auch ruckzuck behoben. Die Fehlersuche in meinem Algorithmus wurde nicht durch “ne Nacht drüber schlafen” gelöst, wie ich das erhofft hatte, dafür mit peniblem Durchsuchen des Quellcodes und Überlegen. Das Problem war schließlich, dass ich beim Kopieren (eines Objektes, das alle relevanten Daten, wie Position und Ausrichtung enthält) das wichtigste vergessen und statt einer Kopie eine zufällige Variante erzeugt hab’. Schande über mich.

PS:

Heute hat Stoffie Geburtstag und gesellt sich zu mir in den Kreis der “>=23″-jährigen.

29
Jan
08

Dienstag

Seit ich bei Cosmocode arbeite trink’ ich an einem Tag mehr als sonst in einer Woche. Meine Blase ist dauerhaft überfüllt, aber Tee und Vittel sind einfach zu lecker, um darauf zu verzichten.
Kommen wir zum technischen. Ich (bzw. mein Algorithmus) soll ja einen Flashfilm dynamisch mit XML-Daten befüllen. Da man das SWF aber (noch) nicht on-the-fly zum Neuladen zwingen kann, musste ich mir was einfallen lassen. Dazu habe ich folgenden JavaScript-Code geschrieben:

var oldFlash = document.getElementById(“flashMap”);
var newFlash = oldFlash.cloneNode(true);
var parent = oldFlash.parentNode;
parent.removeChild(oldFlash);
parent.appendChild(newFlash);

Billig und vor allem “quick&dirty”, aber für den Anfang erfüllt es seinen Zweck. Wenn ich also den Flashfilm nicht zwingen kann, seine Daten neuzuladen, dann lad’ ich eben den ganzen Film neu.

Nächstes Problem war die Erzeugung XML-konformer Daten, das war nach ein bisschen Recherche und Copy&Paste aber schnell gelöst. Nach mehrmaligem Testen stellte sich allerdings kein Aha-Effekt ein. Irgendwie kam stimmt die errechnete Bewertung einer Lösung nicht mit der optischen überein. Also mach’ ich, was ich am besten kann: Feierabend und ne’ Nacht drüber schlafen.

28
Jan
08

Logbuch 2008/01/28-18:22

Weblogbuch willi.gotdns.com, Uhrzeit 18:22, Praktikant Schönborn.

Heute habe ich jede Menge Erkenntnisse mir bislang unbekannter Themengebiete gewonnen. Unter anderem habe ich Kontakt mit der ECMA-konformen Erweiterung E4X gemacht, die mir dabei helfen soll mit JavaScript auf Rhino-Basis einen XML-String zu editieren und an ein SWF weiterzuleiten. Weiterhin konnte ich meine Kenntnisse und mein grundlegendes Verständnis über das firmeninterne CMS ausbauen. Diese Aufgabe wird auch heute meine oberste Priorität sein.

27
Jan
08

Willi on Linux

Am Wochenende hab’ ich mich endlich mal durchgerungen Linux, um genau zu sein Ubuntu, auf meinem Notebook zu installieren. Funktionierte alles erschreckend problemlos, vielleicht trägt Ubuntu nicht umsonst den Bei-Namen “Linux For Human Beings” :)
Jedes Mal, wenn ich jetzt wieder an meinem Vista-Rechner sitze, wirkt der Desktop irgendwie fade und langweilig. Aber macht euch selbst ein Bild. Hier ist mal ein kurzes Video, was mit Ubuntu (bzw. um genau zu sein mit Compiz) möglich ist:

bI9FCrdtjcw

25
Jan
08

Freitag

Gestern (Donnerstag) habe ich noch etwas an meinem Genetischen Algorithmus getüftelt. Heute hab’ ich dann mit Detlef (Chef) getüftelt, wie mein Algorithmus ins System integriert werden soll. Das firmeninterne CMS baut auf eine JavaScript-basierte Template-Sprache und kann dank Rhino auch pures JavaScript ausführen. Jetzt wird für die genetische Entwicklung der Lösung ein Extra-Thread auf dem Server gestartet, der kontinuierlich Ergebnisse liefert, die man sich bei Bedarf ausgeben lassen kann. Ab Montag werd ich daran arbeiten die eingehenden Daten aus einer XML-Datei zu lesen, damit meinen Algorithmus zu befüllen und ggf. generierte Ergebnisse wiederum als XML-String an einen Flashflim weiter zu reichen. Ich werd’ nächste Woche, glaub’ ich, genug zu tun haben :)

23
Jan
08

Heute & gestern…

war irgendwie wenig ertragreich. Heute hab’ ich immerhin noch was am CMS gemacht, sprich Daten aktualisiert und 1-2 JavaScript-Funktionen überarbeitet. Außerdem musste ich meinen Algorithmus für die Geo-Referenzierung (55°4′ 12″ -> x=24, y=510) auf eine zweite Karte anwenden. Dazu habe ich mir wieder 5 markanten Punkte gesucht, mir mithilfe von Yahoo die dazugehörigen Geo-Kooridnaten besorgt und in meine Funktion übernommen, fertig.

21
Jan
08

Talk To My Hand

Ace

Heute wurde bei CosmoCode gepokert und ich wurde, wie schon die meisten Male beim Kickern, vernichten geschlagen. Gespielt wurde Texas Hold’em, ohne Geldeinsätze aber um die Ehre, die ich also jetzt verloren hab’.

Immerhin konnte ich vorher meinen GA (Genetischen Algorithmus) weiter verfeinern. Die Kartenbeschriftungen bewegen sich nun auf einer Kreisbahn um ihren jeweiligen Fixpunkt und werden beim mutieren an eine zufällige Position auf dem Kreis bewegt. Dadurch ist das Problem mit der relativen Nähe erstmal gelöst. Weiterhin sollten alle Beschriftungen zur Kartenmitte orientiert sein, dazu wird der Cosinus des Schnittwinkels zwischen folgenden zwei Vektoren errechnet: Vektor a = Beschriftung zur Kartenmitte und Vektor b = Beschriftung zum Fixpunkt. Je größer der Cosinus, desto kleiner ist der Bereich zwischen den Vektoren. Außerdem werden Überschneidungen nun mathematisch korrekt berechnet und auch entsprechend bewertet, was die Fitness eines Chromosomes angeht.