Ich komme gerade von meiner ersten Macoun. Ich kannte die Konferenz bisher nicht und war mir unsicher, ob man für knapp 100€ wirklich eine vollwertige Konferenz bekommt. Diesbezüglich wurde ich aber wirklich überrascht. Das Organisationsteam hat hier wirklich hervorragende Arbeit geleistet. Chapeau dafür!
Die Location in einer Jugendherberge fand ich ebenfalls ziemlich befremdlich, aber auch hier bin ich positiv überrascht worden. Es gab Brezeln, Croissants, Kuchen und Obst sowie kalte und warme Getränke. Die Vortragsräume waren groß genug für die über 400 Teilnehmer und mit einer Ausnahme auch gut belüftet.
Auch die Umgebung fand ich recht angenehm. In den Pausen konnte man mit ein paar Schritten über die Straße ans Mainufer und dort etwas Sonne und Luft tanken um anschließend entsprechend relaxed zu den Vorträgen zurück zu gehen. Im folgenden noch eine subjektive Beurteilung der Vorträge, die ich ausgewählt habe.
Automatic Reference Counting – Daniel Höpfl
Sehr gut recherchierter und fundierter Vortrag. Es wurde gezeigt, wie man ein bestehendes Projekt auf ARC umstellt und welche Probleme mit ARC entstehen können. Toll fand ich, die Live-Demonstration des Verhaltens der verschiedenen ARC Attribute.
Kommunikativer Stabilbaukasten – Pascal Bihler
Live coding parallel in Objective-C unter XCode und Java unter Eclipse. Unterhaltsam und auch ein bisschen lehrreich. Ich hätte mir mehr Infos zur stabilen Verwendung von BSD-Sockets versprochen, falls das überhaupt möglich ist. Nach einem kurzen Einstieg ging es aber nur noch über HTTP-Requests, die natürlich die meisten Probleme der lowlevel Kommunikation vermeiden.
Die Möglichkeiten zur Verschlüsselung eines HTTP-Requests wurden kurz aber gut verständlich erklärt. Ich hätte mir etwas mehr Infos zur Erstellung von Schlüsseln gewünscht. Da aber live gecodet wurde, sind diese Punkte sehr schnell abgehakt worden.
Die Server-Implementierung erfolget mit Resty unter Eclipse. Wenn man das Framework nicht kennt, hat man aber schnell den Überblick verloren.
Volle Kontrolle mit und über HID – Matthias Krauß
Super Vortrag über die direkte Kommunikation mit HID Geräten. Sehr kurzweilig vorgetragen. Hat Lust auf die Entwicklung eigener HID Hardware gemacht. Schade nur, dass das alles nicht unter iOS geht.
Sicher nach iOS – Klaus M. Rodewig
Toller Vortrag für einen Einsteiger in das Thema. Ich habe mir danach gleich ein Buch zum Thema angeschafft und die aktuelle C’t Security gekauft.
Es wurde sehr schön dargestellt, wie und wann Verschlüsselung unter iOS funktioniert, wie man Thread-Modelling macht und welche Fehler durch schlechten Security-Code entstehen können.
Ich hätte mir etwas mehr Details zum Testen von Security-Code gewünscht. Schließlich hat der Dozent sich selbst als Hacker bezeichnet und dürfte ein paar Tools kennen, mit denen man Sicherheitslücken in der eigenen App finden kann.
Lokalisierung: Ein Hürdenlauf? – Felix Lotze / Oliver Gurtschmann
Tipps und Hinweise aus der Sicht von Übersetzern bzw. Linguisten. Eine App lokalisierbar zu machen, heißt nicht nur, dass man lokalisierbare Strings verwenden muss. Ein Übersetzer benötigt auch Informationen über den Kontext, in dem dieser String verwendet wird, sonst sind Missverständnisse möglich.
Ein weiteres Problem entsteht aus der Grammatik, wenn man parametrisierte Strings verwendet. Hier war die Empfehlung, die ich mitgenommen habe, dass man parametrisierte Strings möglichst selten einsetzt. Wenn man solche Strings verwendet, sollte man sich auf jeden Fall überlegen, ob diese so auch einfach auf andere Sprachen transportierbar sind.
Übersetzungen in verschiedene Sprachen sind unterschiedlich lang. Das führt im ungünstigsten Fall zum Clipping von Buttonbeschriftungen oder zur Verwendung von Fonts in unterschiedlicher Größe. Hier war der Hinweis hilfreich, eine Beschreibung in den Kontext des Buttons auszulagern, so dass sich der Button auf diesen Kontext beziehen kann.
Schließlich ging es auch noch über die Lokalisierung von gesprochener Sprache. Hier müssen die Texte aus Bausteinen zusammengesetzt werden. Wo das zu Problemen führt wurde schön anhand von Zahlen in Deutsch und Englisch gezeigt.
Insgesamt ein guter Vortrag aber der Inhalt hätte meiner Meinung nach auch in kürzerer Zeit transportiert werden können.
Astronomie mit GLKit – Daniel Dönigus
Schon wieder eine „live coding“ Veranstaltung. Hier wurde eine komplette interaktive Visualisierung des Sonnensystems innerhalb von einer Stunde zusammenkopiert. Gerade bei OpenGL werden die Codeblöcke dabei extrem umfangreich, so dass man kaum etwas erkennen konnte. Für einen erfahrenen OpenGL Programmierer war es gerade so möglich, dem Ablauf zu folgen und die GLKit Objekte zu identifizieren. Leider ist daraus kein größeres Verständnis entstanden.
Den größten Nutzen dürfte man aus den Math-Routinen ziehen. Warum Khronos keine ähnliche Auxiliary-Library für lineare Algebra und Projektionen standardisiert hat, ist mir bis Heute ein Rätsel. Was mir an der GLKit Lösung nicht gefällt ist, dass die Funktionen nur für iOS verfügbar sind. Auf dem Mac muss ich also mit dem OpenGL 3.2 Core Kontext wieder eine andere Library verwenden. Das verkompliziert die Unterstützung beider Plattformen unnötigerweise zusätzlich.
Sehr intensiv wurde der GLKitBaseEffekt eingesetzt. Damit kann man auch wirklich schnell etwas sichtbares auf den Bildschirm bekommen. Der Hinweis, dass man alles noch einmal neu machen muss, wenn man eigene Shader verwenden will, kam aber erst auf Nachfrage zum Schluss. Hier empfiehlt sich – wenn man GLKitBaseEffekt unbedingt verwenden will – meiner Meinung nach auf jeden Fall die Einführung einer Zwischenschicht, um den Umfang der Codeänderungen möglichst gering zu halten.
Von dem Vortrag hätte ich mir wesentlich mehr erwartet. Dazu hätte man aber wahrscheinlich vom „live coding“ oder besser gesagt vom „live copy & paste“ Abstand nehmen müssen. Ich werde in Zukunft auf jeden Fall einen großen Bogen um Vorträge machen in denen eine komplexe Anwendung live erstellt werden soll.
Zeichnen auflösungsunabhängig – Frank Illenberger
Es ging in diesem Vortrag eigentlich nur darum, wie man horizontale und vertikale Linien mit Quarz 2D so zeichnen kann, dass sie scharf dargestellt werden. Das Problem dabei ist, dass die Pixel einer Linie durch die Kantenglättung in einer helleren Farbschattierung gefärbt werden, wenn die Linie das Pixel nur zum Teil ausfüllt. Die am üblicherweise für dieses Problem vorgeschlagenen Lösungen sind, das Ausschalten der Kantenglättung und das Verschieben der Punktkoordinaten um 0.5. Diese Lösungen sind aber beide nicht zufriedenstellend. Zum einen betrifft das Ausschalten der Kantenglättung auch diagonale Linien, bei denen die Glättung jedoch zu einem besseren visuellen Ergebnis führt. Zum anderen funktioniert das Verschieben von Koordinaten nur bei einer Zoomstufe von 100%, bei der die Punktkoordinaten den Pixelkoordinaten entsprechen.
Die vorgeschlagene Lösung transformiert Start und Endpunkt einer Linie in den „device space“ und führt die Verschiebung auf die Pixelmitte dort aus. Anschließend wird der Wert wieder in den „user space“ zurücktransformiert. Damit bekommt man Koordinaten, die bei allen Zoomwerten auf die Pixelmitte abgebildet werden.
Das allein reicht aber noch nicht für alle Fälle. Da die Kantenglättung mit Hilfe des Alphakanals durchgeführt wird, kommt es bei Linienbreiten, die kleiner als ein Pixel sind, an den Schnittpunkten zweier Linien zu einer dunkleren Färbung. Diesem Effekt wird durch die explizite Berechnung einer Farbe für die Linie begegnet. Werden die Linienbreiten nun auf Pixelmaße gerundet, findet kein Alphablending statt.
Dieser Ansatz wurde als finale Lösung dargestellt, um anschließend den Schwachpunkt dieser Lösung aufzuzeigen. Bei einer Zoom-Animation kommt es zu einer springenden Darstellung, wogegen die Kantenglättung eine weichere Animation produziert. Dieses Problem ist der Rundung auf Pixelkoordinaten natürlich inhärent, so dass hier auch keine Lösung vorgeschlagen wurde.
Alles in allem ein sehr interessanter Vortrag. Ich bin selbst schon einmal auf dieses Problem gestoßen und habe mir einen ähnliche Lösungsansatz überlegt. Ich habe das jedoch nicht mehr in der Intensität verfolgen können, wie es Frank Illenberger gemacht hat. Deshalb freut es mich insbesondere, dass ich offensichtlich nicht der einzige Entwickler bin, den die Kantenglättungsartefakte bei horizontalen und vertikalen Linien stören.
iOS 5 Appearance Customization – Ortwin Gentz
Solider Vortrag über die neuen Möglichkeiten in iOS 5 den Stil von Controls anzupassen. Dazu zählen das setzen der Tint-Color, die Verwendung von Hintergrundbildern und die Anpassung von Textstilen. Es wurden die Möglichkeiten zum Styling bestimmter Views oder ViewController demonstriert und deren Defizite aufgezeigt, die insbesondere beim gezielten Styling von UINavigationBars auffallen.
Anschließend wurde gezeigt, wie in der App „Wohin?“ das UI-Styling bisher realisiert wurde: durch „method swizzling“ mit der Objective-C Laufzeitumgebung. Mit den neuen Möglichkeiten in iOS 5 könnte der Aufwand für das Styling in „Wohin?“ laut Aussage von Ortwin Gentz um fast 50% von über 1400 Zeilen Code auf etwa 750 Zeilen Code reduziert werden.



