Musiktipps

Der letzt Post zum Thema Musik ist ja schon wieder etwas her, weil ich auf ausführliche Reviews eigentlich keine Lust habe und sie auch reichlich überflüssig sind. Musik muss man halt hören und nicht darüber lesen. Also wird dieser Post auch reichlich Links enthalten, so das sich jeder selbst einen Eindruck machen kann.

Zuerst einmal sind mein Bruder Matze und ich für unsere Musiksammlung auf legale MP3-Downloads als primäre Quelle umgestiegen. CDs zu bestellen oder im Laden zu kaufen, um sie dann erstmal rippen zu müssen und unter Umständen sogar noch die Meta-Informationen manuell pflegen zu müssen, hat immer weniger Spass gemacht. Darüber hinaus sind MP3-Alben relativ günstig und verbrauchen keinen Platz im Schrank. Allerdings sollte man nicht vergessen, Backups zu machen, sonst ist die Musiksammlung schnell futsch.

Mein erster Amazon-MP3-Download ist auch gleich mein Album des Jahres 2009 (bisher zumindest) gewesen:
grau
Grau von Tua

Was soll man sagen? Tua ist einfach ein echter Allround-Künstler, und dieses Album ist so ehrlich, tiefgründig, musikalisch und in sich stimmig, dass man es einfach gut finden muss. Die aus „Nacht“ bekannten Doubletime-Abfahrten und Party-Tracks fehlen hier, aber ich habe sie kaum vermisst.

Ein Rapper, der viel zu wenig Liebe bekommt in Rapdeutschland ist definitiv sinuhe. Das Album „Keine Helden“ mit Drum Kid ist nicht mehr ganz brandaktuell, aber immer noch siedend heiß. Der feurige und einzigartige Flow des Wuppertalers brennt sich mir sofort in den Gehörgang. Der Typ spuckt Feuer😛 (Okay das reicht jetzt aber. Ach einen noch: Sinuhe sorgt für in Inferno im Trommelfeld. Schluss jetzt!)

À propos Feuer und Flammen: D-Flame hat auf youFM (90,4 in Frankfurt) immer Dienstags von 21 bis 23 Uhr eine Radiosendung, in der nicht nur gute Mukke gespielt wird, sondern auch die großen und kleinen Namen der Frankfurter Rapszene regelmäßig zu Gast sind. Finde ich interessant, habe ich allerdings auch nicht viel von, weil ich z.Z. immer genau dann Basketballtraining habe.

Neuen französischen Rap habe ich in letzter Zeit wenig gehört, aber zumindest einen neuen Geheimtipp habe ich für mich entdeckt: Oussen & 13k. The next tape gibt es kostenlos herunterzuladen und lief bei mir auf meinem iPhone bereits mehr Runden als Haile GebreSelassie in seinem Leben. Oder fast.

Wenn ich schon bei kostenloser Download-Musik bin, noch ein paar empfehlenswerte Links:
Olsen Rough – Rudeboy: Im Gegensatz zu den meisten harten Jungs im Rapgeschehen verzichtet der junge Düsseldorfer nicht auf doppeldeutige Vergleiche und technisch anspruchsvollere Lines und kommt dabei trotzdem einfach authentisch ‚rüber.
Cool Kids – Gone Fishing: Cooles Mixtape der Internet-Lieblinge.
Beatzebs & Weekend – Gemeinsame Sache: Teilweise etwas eklig und abgedreht, bringen die vollkommen wahnsinnigen Lines gepaart mit dem schrägen Flow der beiden mich doch mindestens zum Schmunzeln. Oder zum laut Lachen zu den unpassensten Momenten;-)
DNP: HIV EP: Hier wird die Hiphop-Szene gekonnt auf die Schippe genommen, ähnlich wie schon von Caught in the Crack.frontcover-hartz41
Weiterhin sei auf die folgenden Informationsquellen verwiesen:
HannoverRap.de für die Sachen von Matyes, Eliquez, Benuz und Co sowie den großartigen Blog von Herr Merkt, der beinahe das gesamte Deutschrap-Untergrund-Geschehen abdeckt. Beindruckender Einsatz.

Javascript and Java

Jeremy Keith:
Java is to JavaScript as ham is to hamster.

Der Name Javascript wurde damals für die Scriptsprache, ohne die das Web 2.0 nicht funktionieren würde, gewählt, um vom Hype um Java zu der Zeit zu profitieren. So ähnlich, wie heutzutage alles mögliche die Versionsnummer 2.0 bekommt;-) Ansonsten haben die Sprachen außer ein bisschen Syntax nicht viel gemein.

Das W3C, das Standardkomitee des Internets, hat beschlossen, die Entwicklung an XHTML2.0 (Hey, da ist es wieder. 2.0. In diesem Fall ist das aber wirklich eine Versionsnummer und nicht nur ein Marketing-Gag) einzustellen und sich stattdessen auf HTML5 zu konzentrieren. Einen interessanten Artikel dazu hat Jeremy Keith verfasst.

(Nicht) meine Kragenweite

Nachdem mich meine Kollegin M. in den letzten Monaten täglich darauf hingewiesen hat, dass meine Anzughosen viel zu weit seien, habe ich mich heute dazu aufgerafft, besser passende Anzüge zu kaufen. Zugegeben, das Konzept von „passender“ Kleidung ist recht neu für mich – Ich habe bisher immer diesen Hiphop-Style mit kanariengelben 4XL-Shirts und Hosen in den Kniekehlen als das nonplusultra angesehen. Bei Anzügen und Hemden kommt das allerdings weit weniger cool, als ich bisher gedacht hatte;-)

Um im Laden nicht allzuviel Zeit zu verschwenden, sollte man am besten eine ungefähre Ahnung haben, welche Konfektionsgröße man hat. Das System hinter den Größen für Männerhosen und -Jackets ist für Uneingeweihte nicht so leicht zu erfassen — So ist 25 größer als 48, und 53 ist weiter als 54.

Wenn man die irgendwie willkürlichen Regeln erstmal kennt, ist es aber gar nicht mehr schwierig. Es gibt praktisch 4 Gruppen, für die jeweils die beruhigende Regel gilt, dass eine größere Zahl auch einer größeren Kleidungsgröße entspricht:

  • 48, 50, 52, …: „normale“ Proportionen. Die Zahl entspricht etwa dem Brustumfang in cm geteilt durch 2.
  • 25, 26, 27 … „untersetzte“ Größen. Also etwas breiter bzw kürzer geschnitten.
  • 90, 94, 98, … „schlanke“ Größen
  • 51, 53, 55, … „Bauchgrößen“: Extra breit am Bund für stolze Wohlstandsplautzen.

Ich habe den Eindruck, dass man irgendwie alle Infos unbedingt in eine Zahl packen wollte, als ob in einer Datenbank nur eine Spalte mit Integer-Wert zur Verfügung stünde, um diverse unterschiedliche Infos zu kodieren. Ich fände ja eine Größenangabe wie 180(schmal) oder 175 (extra breit) leichter zu lesen und zu verstehen, aber die werden schon ihre Gründe haben…

Für Jeanshosen wird meistens das US-System verwendet, das noch mal ganz anders funktioniert. Die erste Zahl entspricht da dem Bundumfang in inch, die zweite der Länge im Verhältnis zum Umfang. 30/38 würde also einem langen Skelett passen, und wer Hosen der Größe 40/30 trägt, ist wahrscheinlich etwas „untersetzt“.

Bei Hemden gilt das übrigens alles nicht – Da kommt es auf die Kragenweite (Halsumfang) in cm an.

Als Referenz, damit ich in Zukunft immer nachgucken kann:
Meine Größe:
Anzüge: 48 (Und zwar nur 48. 50 ist viel zu weit und 46 kriege ich auch mit Gewalt nicht zu)
Jeanshosen(US): 33/32 oder 34/32
Hemden: 38

Ich hoffe, Bilder von mir in einem meiner neuen Anzüge bald nachreichen zu können. Ich seh darin jetzt nochmal 10% besser aus:P

Pro A 2009/10

ubctigers
Seit gestern ist es wohl offiziell: Die UBC Tigers werden nächste Saison in der Pro A spielen, der zweitstärksten Basketballliga in Deutschland. Sportlich wurde der Aufstieg als 10. Platz der abgelaufenen Pro B-Saison nicht erreicht, aber wegen der professionellen Strukturen und der (für Basketball-in-Deutschland-Verhältnisse) recht stattlichen Zuschauerzahlen wurde die Lizenz trotzdem vergeben. Damit ist die Aufstiegsserie weiterhin ungebrochen:

2002: Bezirksklasse
2003: Bezirksliga
2004: Bezirksoberliga
2005: Oberliga
2006: Regionalliga 2 (Nord: West)
2007: Regionalliga (Nord)
2008: Pro B
2009: Pro A

Besonders pikant ist natürlich, dass auch die Lieblingsrivalen aus Osnabrück in die Pro A zugelassen wurden. Nachdem sie sich letzte Saison als 4. der Pro B klar vor dem UBC platzieren konnten und das legendäre Spiel in der AWD-Hall vor 4500 Zuschauern knapp gewinnen konnten, können die Tigers sich diese Saison revanchieren. Die Tigers mit ihrem neuen Trainer Mahmut Attaman haben bereits bekanntgegeben, dass Florian Fleischer, David Arigbabu und JP Prasuhn nächste Saison wieder dabei sein werden. Auf Ismael Yaldiz werden sie hingegen verzichten müssen. Ich hoffe ja, dass der Publikumsliebling Bear Townsend und der Energizer Casey Holt bleiben, aber es ist natürlich auch klar, dass für die Pro A noch einige echte Kracher dazukommen müssen, um konkurrenzfähig sein zu können.

Einer meiner guten Vorsätze für die nächste Saison ist, dass ich den Profi-Basketball in Deutschland etwas intensiver verfolgen möchte:

  • Die Skyliners (BBL) spielen immerhin in Frankfurt. Hin und wieder kann ich ja mal zu einem Spiel gehen
  • Ebenfalls haben die Skyliners jetzt eine Pro B-Nachwuchsmannschaft. Kann ich mir also auch geben
  • Falls Eurosport oder ein anderer Sender wieder BBL zeigt, sollte ich mal hin und wieder reinschauen
  • Den UBC verfolge ich natürlich weiterhin über das Internet und live, wann immer ich in Hannover bin.
  • Der TV Langen(Pro A) ist auch noch in Fahrraddistanz zu Frankfurt, die könnte ich also ebenfalls im Blick behalten;-)

Naja, jetzt sind eh noch 2 Monate Zeit, bis es wieder losgeht. Also abwarten und Tee trinken:-)

Shawn Marion zu den Mavs

Ein 4-Team-Trade zwischen den Mavs, Grizzlies, Raptors und den onehin sehr aktiven Orlando Magic steht unmittelbar vor dem Abschluss. Hedo Turkoglu soll durch einen Sign-and-Trade Deal nach Toronto gehen, genauso wie Marion nach Dallas. Wahrscheinlich werden noch viele andere Spieler in dem Deal die Teams wechseln, wie etwa Jerry Stackhouse, der nach Memphis getraded würde. Laut ESPN sind aber noch nicht alle Details in Stein gemeißelt.

Für die Mavs jedenfalls scheint mir das ein sehr guter Trade zu sein. Marion profitiert sehr davon, einen Point Guard wie Kidd oder Nash im Team zu haben, der den Musterathleten mit für Normalsterbliche unerreichbaren Pässen füttert, und der vielseitige Forward ermöglicht interessante Varianten. Besonders sexy ist meiner Meinung nach die Small-Ball-Variante mit Kidd, Jet, Josh Howard, Marion und Dirk auf der 5. Wenn man nicht gerade gegen Orlando oder LA spielt, könnte man dank Marions Reboundstärke damit defensiv über die Runden kommen, und vorne hat man mehr Waffen als die UDSSR und Amerika zusammen.

EADD 2009

Der Eclipse Application Developer Day fand gestern in Ettlingen bei Karlsruhe statt. Gastgeber war die Softwarefirma Silverstroke, die in einem architektonisch modernen und sehr offenen Gebäude residiert.
Silverstroke Office
Arne, Teamkollege bei der FTG und seit Anfang Juli Praktikant bei meinem Arbeitgeber HighQ-IT, und ich sind morgens um 6 Uhr 50 vom Hauptbahnhof Frankfurt losgefahren, um pünktlich bei der Veranstaltung anzukommen.

Paul-Gabriel Müller and Arne
Insgesamt haben wir uns 7 Vorträge und eine Panel-Diskussion angehört, bevor wir die Heimreise angetreten haben. Im Nachhinein denke ich, wir hätten vielleicht etwas länger bleiben sollen, um nach den Vorträgen noch ein paar Kontakte zu anderen Eclipse-Entwicklern zu knüpfen. Beim nächsten Mal 😉

Die Vorträge wurden fast alle auf deutsch gehalten, während die Folien auf englisch waren. Diese Kombination ist nicht ungewöhnlich und habe ich schon zu seligen Studien-Zeiten kennengelernt.
Als kleine Gedächtnisstütze für mich selbst und evtl. meine Kollegen werde ich zu jedem der Vorträge einen kurzen Satz schreiben.

  • Jochen Krause, EclipseSource / Harald Mueller, SAP: Keynote – Eclipse Runtime: Business Ready Open Source
    Besprochen wurde die zunehmende Verbreitung von OSGi auf Servern, die es ermöglicht, die Eclipse-Plattform nicht nur in GUI-Applikationen auf dem Client, sondern auch für Server-Anwendungen („Headless“ = ohne UI) einzusetzen. Darüber hinaus wurde ein grober Überblick über verschiedene Themen wie Equinox als „Kernel“ von Eclipse und Projekte wie Jetty oder RAP gegeben.
  • Leif Frenzel, andrena objects / Stefan Schürle, andrena objects: Gekonnt tranchieren, ansprechend garnieren und maßvoll würzen …
    In diesem Vortrag ging es um die Organisation von Plugins bei größeren Projekten. Hängen geblieben sind neben den vielen Fotos von Nahrungsmitteln auf den Vorlesungsfolien bei mir, dass man möglichst „Extension Points“ nutzen sollte, seine Plugins besser nach Funktionalität als nach technischen Gesichtspunkten trennen sollte (Gutes Beispiel: Ein Plugin für Versionskontrolle und eins für Java-Entwicklung. Schlechtes Beispiel: Ein Plugin für Views und eins für Actions). Außerdem wurde empfohlen, lieber mehrere ViewParts und EditorParts mit klar abgesteckten Aufgaben zu erstellen, statt alles in einer komplexen Mega-View zu behandeln. Zur Kommunikation zwischen den Views sollten SelectionServices eingesetzt werden. Abschließend wurde über die „innere Softwarequalität“ und das Tool ISIS gesprochen. Ein sehr gelungener Vortrag.
  • Jens Kübler, aquintos: Automatisierte GUI Tests mit SWTBot :
    Mit SWTBot lassen sich in Eclipse grafische Oberflächen (UI = User Interface) automatisch testen. Hervorgehoben wurde, dass es sich nicht um aufgezeichnete Tests handelt, die von Testexperten wegen ihrer geringen Flexibilität abgelehnt werden, sondern um welche, die programatisch erzeugt werden. SWTBot bietet eine große Auswahl von Methoden an, um Interaktionen wie das Anklicken eines Menüpunkts zu modellieren und die Ergebnisse zu testen. Das Projekt befindet sich noch in der „Incubator“-Phase, ist also für den Produktiveinsatz noch nicht unbedingt reif.
  • Dr. Frank Gerhardt, Gerhardt Informatics Kft.: Eclipse Data Binding — updating RCP Mail 2.0 (PDF)
    RCP Mail ist das Standard-Tutorial zum Lernen der RCP-Entwicklung. Frank Gerhardt hat die neue Version vorgestellt. Hervorgehoben wurde, dass es sich um eine Art Copy&Paste-Vorlage handelt, und deswegen sehr darauf geachtet wurde, es „richtig“ zu machen.
  • Benjamin Muskalla, EclipseSource: „Single Sourcing RCP and RAP“ – Desktop and web clients from a single code base
    Sehr beeindruckend fand ich diesen Vortrag:

    Chris Aniszczyk:
    “Cool, one runtime to rule them all”

    RAP (Rich Ajax Platform) erlaubt es, mit einigen Anpassungen, RCP-Applikationen in Web-Anwendungen in HTML und Javascript umzuwandeln. Dabei wird die gesamte Arbeit am Server gemacht, der Client braucht nur noch einen Webbrowser, um die Anwendung nutzen zu können.

  • Hans-Joachim Brede, BREDEX: Automated functional testing with keywords
    Der zweite Vortrag zum Thema „Tests“ beschäftigt sich ausdrücklich mit funktionalen Tests, bei denen es im Gegensatz zu Unit Tests nicht darum geht zu testen, ob ein kleines Stück Code so funktioniert, wie der Programmierer es erwartet, sondern darum, ob das Gesamtprogramm sich gemäß der Spezifikation verhält. Hans-Joachim Brede verfolgt dabei einen pragmatischen Ansatz und sagt, dass zuerst einmal der „Happy Path“ getestet werden muss, also dass das Programm bei korrekter Benutzung funktioniert, und das Testfälle explizit nicht von Entwicklern, sondern von den Testern geschrieben werden sollten. Im Prinzip kann das von ihm vorgestellte „Keyword-driven Testing“ also den Testern manuelle Arbeit abnehmen, wenn sie in der Lage sind, ein wenig Code zu schreiben.
  • vortrag_e4
    Thomas Schindl, BestSolution.at: The Modeled UI in Eclipse e4
    In breitem Schwytzerdeutsch referierte Thomas Schindl über e4, bei dem es sich mehr oder weniger um ein Rewrite der Eclipse-Plattform (Aktuelle Version: 3.5, Codename Galileo) handelt. Lästiger und im Regelfall überflüssiger Legacy Code kann hier endlich über Bord geworfen werden, und einige umständliche Konventionen, z.B. die Notwendigkeit, selbst bei simplen Applikationen eine Perspektive definieren zu müssen, können durch einfacherere Vorgehensweisen ersetzt werden. Außerdem wird statt der teilweise sehr komplexen Vererbungsstruktur in Eclipse mehr mit Injection gearbeitet, um Funktionalität wiederzuverwenden.

Die Verpflegung während der Veranstaltung war reichlich, und die leeren Teller mit leckerem Kuchen wurden ständig durch volle ersetzt. Glücklicherweise konnte ich meinen Appetit noch halbwegs im Zaum halten:) Insgesamt war es eine sehr gelungene Veranstaltung, die ich auf jeden Fall wieder besuchen würde.

Das Buffet in den Vortragsräumen wurde ständig wieder aufgefüllt

Das Buffet in den Vortragsräumen wurde ständig wieder aufgefüllt

Der Bahnhof von Karlsruhe, übrigens Bahnhof des Jahres 2008, wurde von mir auch noch fotografiert:
karlsruhe_bahnhof
karlsruhe_bahnhof2
Abschließend noch ein Foto von der „S-Bahn“ in Karlsruhe. Sieht eher aus wie eine Straßenbahn, und fährt auch auf der Straße. Und es gibt gar keine Türen links in diesen Bahnen, was ja auch eher ungewöhnlich ist.
s-bahn_karlsruhe
So sieht übrigens der Fußboden in den Bahnen aus (Ooh-Kay, ich bin einfach aus Versehen auf den Auslöser gekommen^^)
fuesse

Profiling & Performance – Tuning bei RCP-Anwendungen

eclipse
Die RCP-Anwendung, an der ich auf der Arbeit programmiere, reagiert bei größeren Dateien mit einer gewissen Behäbigkeit auf Tastatureingaben. Und wenn der Rechner langsam genug und die Dateien groß genug sind, verlieren auch weniger ungeduldige Leute als ich ihre Nerven. Es war also nach sieben Monaten mal nötig, sich intensiver mit der Performance unserer Applikation zu beschäftigen. Warum wir das nicht schon viel früher gemacht haben?

“The First Rule of Program Optimization: Don’t do it. The Second Rule of Program Optimization (for experts only!): Don’t do it yet.” – Michael A. Jackson (Nein, nicht der Thriller-MJ. RIP :-()

oder auch

„We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.“ (Donald Knuth)

Aber nun war es doch mal nötig, sich damit zu beschäftigen. Einfach drauflos zu optimieren hat natürlich keinen Sinn, man muss zuerst einmal wissen, welche Abschnitte wirklich Zeit kosten. Dabei können einem Profiler-Tools helfen. Wir haben TPTP eingesetzt, um einen Eindruck davon zu bekommen, in welchen Methoden unser Programm einen Großteil seiner Zeit verbringt.
tptp_options
Standardmäßig ignoriert TPTP dabei unter anderem alle Pakete, die mit „org“ beginnen, was in unserem Fall nicht so erwünscht war. Eine zusätzliche Regel, die Pakete unter „org.eclipse.jst.pagedesigner“ explizit miteinzubeziehen, hat dieses Problem für uns gelöst. Da der Overhead für diese Analysen zur Laufzeit enorm ist, ist es allerdings schon sinnvoll, nur innerhalb der Klassen zu testen, an die man wirklich heran kommt. So konnten wir herausfinden, dass der Großteil der Laufzeit beim Einfügen von Zeichen für Code draufgeht, der sich um das Synchronisieren der grafischen Darstellung und die Validierung der Eingabeposition kümmert. Bei der weiteren Entwicklung hat es sich dann als nützlich erwiesen, mit folgendem Code zu prüfen, welche Methoden innerhalb einer offenbar aufwändigen Methode den Großteil der Arbeitszeit in Anspruch nehmen. Denn nur an diesen Stellen möchte man überhaupt etwas ändern. Schließlich bringt jede Änderung das Risiko mit sich, irgendetwas kaputt zu machen;-)


long time = System.currentTimeMillis();
doSomething();
System.out.println("doSomething: "+(time-System.currentTimeMillis()));
time = System.currentTimeMillis();
doSomethingElse();
System.out.println("doSomethingElse: "+(time-System.currentTimeMillis()));

Ein weiteres nettes Tool zum profilen von Java-Applikationen ist visualVM, dass von Sun mit dem JDK mitgeliefert wird. Damit kann man bereits laufende Java-Anwendungen unter die Lupe nehmen. Leider lief es in unserem speziellen Fall nicht schnell genug und lieferte keine relevanten Ergebnisse, aber für viele einfacher aufgebaute Java-Anwendungen ist das eine gute Option.visualvm

Mit Hilfe der Werkzeuge und einigen Aussparung von vermeintlich überflüssigem Code konnten wir die Eingabegeschwindigkeit vielfach erhöhen. Bevor wir diese Änderungen ausliefern, werden wir aber lieber testen, ob wir wirklich nichts kaputt gemacht haben…