Java Forum Stuttgart 1. Juli 2010, Live Blogging

8:40 Erster Workshop, Pleiten, Pech und Pattern Testing
Erstes Beispiel für fehlgeschlagenes Testing: Ariane 4 Übergang auf Ariane 5. Oh yes, I remember it well.

Die grösste Panne ist die Gestaltung der Folien, viele Teile des Textes sind wegen unvorteilhafter Farbgebung kaum lesbar.

Security Chip auf vielen EC Karten fehlerhaft. Warum war der Chip so schnell abschaltbar?
Pattern stellen guten Code dar, Code, wie er gewünscht ist
AntiPattern für Worst Case Coding. (Spagetti Code, Dead Code)

Auch als Bibliothek einbindbar für nicht aspectj affine Häuser.

Mit Maven ist es direkt einbindbar als org.patterntesting…….Für offline Testing bietet sich die Annotation „Integrationstest“ an. Alle Tests, die laut Property Testing nicht auf IntegrationTest stehen, werden ausgelassen.

Weitere Annotationen sind @SmokeTest, @Broken, @RunTestOn(„MacOSX“)
@SkipTest(„Linux“) @Deprecated, @TestException

Bei Socket oder Http Errors ist immer interessant, welcher Server angesprochen wurde.
Hier bietet sich PatternTesting Exception zur informativen Anreicherung an.

Stichwort für die Suche nach Bad Practices Pattern Testing (eigentlich AntiPatternTesting)
Die Vortragenden wechseln showhaft zu einem Problemfall. Gute Idee, die Zuschauer sind aufgewacht.

Stichwort Junit Test, eine Sache die schon die wenigsten Projekte nutzen.
Besides, die Demo läuft natürlich mit Eclipse.
Pattern Testing benötigt das AspectJ Plugin, da Pattern Testing Teil von AspectJ
Vortrag wird hauptsächlich über Code Demo dargestellt.

Pointcuts mit Wildcards können dezidiert Punkte im Programm ansprechen mit spezifischen Features. Hier können dan Check Anforderungen „eingewoben“ werden.

Über den Runtime Monitor können Systemparameter überwacht werden wie Classpath Doubletten o.ä.
http://patterntesting.org für mehr Infos bzw. http://oli.blogger.de
8:45 Java GUI Testing von A-Z

Vortrag der Firma Froglogic
Gui Testen, Bedienung der grafischen Oberfläche wie ein Anwender und Abprüfung erwarteter Resultate-> Funktionales GUI Testen

Kann mit Coverage Tests und Load/Stress Tests kombiniert werden

Es werden stehts Anforderungen bzw. Use Cases als Basis benötigt.

Mit der am häufigsten genutzten Funktionalität beginnen (Priorisierung auf das wichtige)

Manuelle Tests sind fehleranfällig, langweilig und dauern recht lange. Menschliche Tester sind zudem „teuer“.

Problem auch, es wird nicht immer genau gleich getestet, der Testablauf als solcher kann sich ändern.

Automatische Tests haben eine hohe initiale Hürde, aber sie sind schneller, skalierbarer, lassen sich einfacher in unterschiedlichen Konfigurationen nutzen und günstiger „in the long run“.

Meist existiert ein gemischtes Vorgehen aus manuellen Tests zu Beginn und immer mehr automatischen Tests zum Ende hin. Aber es wird auch immer manuelle Tests geben.

Am Beginn steht die Auswahl des Werkzeugs:
Hat es Support für mein Toolkit
Kann ich auf den Non-GUI Layer zugreifen
Wird scripting unterstützt?
Wird meine Plattform unterstützt?
Ist es erweiterbar?

Wie stehts es um den Support?
Bekomme ich Hilfe, wenn nötig?
Update Strategie?

GUI Tests sind nix für „nebenher“. Die Testfälle müssen nicht nur eingerichtet sondern auch gepflegt werden. Die Rolle für eine spezielle Person.

Beginnen mit den „low hanging fruits“

Automatisierte Ausführung der Testfälle sollte frühzeitig angedacht und implementiert werden. Test müssen z.B. via cron Jobs ohne Eingriff automatisch zu bestimmten Zeitpunkten oder unter bestimmten Bedingungen durchgeführt werden.

Ergebnisse sollten für alle verfügbar sein. Hudson oder Cruise Control sollten auch ausgewählte GUI Tests mit ansprechen.

Test Management Tool für die Verwaltung der Ergebnisse einsetzen.

Auch die Fehlerbereinigung muss koordiniert werden. Abnahme nur ohne unerwartete Fehler.

11:15 Bessere Tests mit JUnit 4.X

David Saff:JUnit is the intersection of all possible useful java test frameworks, not their union.

Kent Back: A programmer-oriented Testing Framework

Ab 4.x neue Features:

assertThat(1 + 1, is(2));

Matcher lassen sich einfacher kombinieren.

Vordefinierte Matcher (is, not, allOf, anyOf, nullValue,…..

weitere Matcher über hamcrest, auch die Möglichkeit, eigene Matcher zu definieren.

Mittels hamcrest lassen sich auch Matcher Bibliotheken erstellen.

Parametrisierte Tests seit 4.x möglich auch mit Methoden, dazu gibt es die sogenannten Theories

Rules als Erweiterungsmechanismus für Tests um z.B. beim Test eigenen Code einzufügen.

Und Rules können auch selbst entwickelt werden.

Categories ermöglichen Trennung von Tests, so daß nicht alle Tests immer ausgeführt werden.

Kategorie ist Klasse oder Interface, annotiert mit Category @Category(Slow.class)

Migration auf neue JUnit Version ist denkbar einfach, alle alten Tests laufen immer noch.

12:15 OSGi Lessons learned: Best and Worst Practices

Best practices: Don’t program OSGi (nicht gegen die APIs programmieren)

Idee dahinter: pojo basiert bauen, die Umgebung „ignorieren“ und sich dadurch nicht davon abhängig machen.

„Your code sucks. Versioning can help!“

Klare Gedanken über Modulgrenzen machen „Good fences make good neighbours“. Was muss zwischen Bundles sichtbar sein, was nicht.

Es gibt keine allgemeingültige Grössendimensionen für Bundles. Aber nicht zu gross werden lassen.

Auf die Abhängigkeiten zwischen den Modulen achten, daraus ergibt sich, wie gut das System weiterentwickelt werden kann. Modular heisst auch, wenige Abhängigkeiten.

OSGi Services verwenden, das ist die Grundlage der ganzen Idee.

Gut überlegen, wo es sich lohnt, einen OSGi Service draus zu machen.

Hmm, also einige der Aussagen sind aber nun wirklich nicht OSGi spezifisch, sondern eigentlich was jeder gute Entwickler sich auf die Fahnen schreiben sollte, egal mit was er arbeitet.

Man soll in OSGi testen.. Ersetze OSGi durch IMMER!

Nach der Mittagspause:

14:30 Java Entwicklung für Embedded Devices

-Famous Last Words-

„Ja, kein Problem, ich schaff das“

Oft sehen Entwickler nicht die Unterschiede zwischen Java Midlet und Standard Edition!

Ggf. müssen Libraries portiert werden.

Der Compiler Level ist NICHT das Hauptproblem. Am besten auf spezielles Environment für Mobile Entwicklung wechseln.

Tests müssen am Device erfolgen. Und damit ist nicht die Emulation gemeint.

Immer dran denken. Es gibt Speicherlimits auf Mobile Devices.

Merke: Lessons Learned und Famous Last Words Vorträge in Zukunft meiden, das meiste ist offensichtlich und wird nur von jenen nicht gelernt, die sich nicht für die Sache an sich interessieren.

Best Practices, oder wie ich zu sagen pflege. Gesunder Menschenverstand!

Lol, da wurde ja hauptsächlich über die Entwicklung für Windows Mobile berichtet. Also garnicht über vernünftige Embedded Devices….

Interessant, wie oft die guten Ideen der neuen Technologien ignoriert werden. Die IPhone GUI ist kein Hype, Windows Mobile ist tot. Veraltet, Computersteinzeit und klassisches Java Mobile ist bald irrelevant.

Ich mache mir langsam Sorgen um die Sichtweisen einiger Java Protagonisten. Die verlieren nach den Sprüchen, die hier so abgesondert werden, so langsam den Anschluss an die Zukunft.

15:30 Android- Java für unterwegs.

Die Jungs sind schon mal sehr amüsant. Wer ihnen folgen möchte: @elektrojunge @derwildemomo

Es wird aber mehr eine Vorstellung, was eigentlich Android ist. Insofern wenig Live Bloggbarer Inhalt, werd es einfach still geniessen und ggf. ein paar Facts einwerfen.

Zur Historie: 2008 wurde die Plattform angekündigt.

Guter Vortrag der Vor- und Nachteile darstellt. Google als offenes System mit allen Vor- und Nachteilen. Remote Wipe wird erwähnt, ebenso wie die anderen Remote Möglichkeiten und die Fähigkeit, auch auf die Hardware zuzugreifen.

Mit Froyo geht auch im Browser ein Zugriff auf die Hardware.

Fazit ist Froyo macht Android auch fürs Unternehmen interessant, aber Business Integration ist nicht so einfach, wie manche sich das vorstellen. Jetzt für die Techniker unter uns die Dalvik VM.

Dalvik ist der Kern des ganzen, durch die Dalvik Engine ist Android performant. ABER, es gibt keine Verwendbarkeit des klassischen Java Bytecodes.

Für mich ist der Vortragsblock damit durch, jetzt noch Social Networking und Business Card Sharing.

Alles in allem wieder eine gelungene Veranstaltung, vor allem auch dank interessanter Gespräche zwischen den spannenden Vorträgen und einigen neuen Kontakten, sei es in RL oder auch via Twitter. Der Tag hat mich wieder inspiriert und Lust auf neue Entwicklertätigkeiten auch im Android Umfeld gemacht. Ein paar gute Ideen wachsen gerade, mal sehen, was daraus wird. Um es mal plakativ zu formulieren: „We ain’t seen nothing yet.“

Die TAZ zieht sich aus dem Bookstore des IPads zurück

taz nicht mehr als iBook
Und warum? Nun, scheinbar konnten neue Ausgaben nicht schnell genug im Store bereitgestellt werden. Das halte ich aber angesichts der heutigen schnelllebigen Zeit für merkwürdig. Da wird ein Gerät gerade mit der Möglichkeit beworben, darauf auch Zeitungen zu lesen und dann braucht es mehrere Tage, bis die neue Ausgabe online erscheint. Wenn ich schon eine Zeitung online lese, erwarte ich eigentlich, dass sie zumindest zeitgleich mit der Printausgabe verfügbar ist, wenn nicht für Abonnenten sogar etwas früher. Insofern ist das ein klares No Go. Wie mir scheint schlägt jetzt auch hier langsam die Realität durch, nachdem der erste Hype verklungen ist. Warten wirs ab, wie sich die Konkurrenz aufstellt. Ich für meinen Teil freue mich jeden Morgen parallel zur Printausgabe auf mein ePub eBook der Zeit, dass ich mir morgens runterladen und gleich mitnehmen kann.
Allerdings auf einem klassischen eBookReader, der mehrere Wochen durchhält, ein entspiegeltes angenehmes Schriftbild hat und auch andere Formate ohne Probleme übernimmt.

Das Bild vom Wissenschaftler und warum wir normale Menschen sind

Eine schöne Geschichte habe ich bei Astrodicticum Simplex enteckt: Kinder stellen fest: Wissenschaftler sind ganz normale Menschen
Dort wird berichtet, dass Kinder die Wissenschaftler am Fermilab besuchen durften und über ihr Bild vom Wissenschaftler zuvor und danach befragt wurden. Schöne Geschichten, die da herauskamen.
Als Wissenschaftler find ich das schon deshalb amüsant, weil viele in meinem Umfeld gar nicht wissen, daß ich Wissenschaftler bin, bzw. denken, als Wissenschaftler müsste man an einer Universität oder einem Labor arbeiten. Wissenschaftler zu sein, ist aber vielmehr eine Geisteshaltung, eine Einstellung zum Leben. Es beinhaltet die Lust Fragen zu stellen, nach Antworten zu suchen, sich selbst und seine Arbeit immer wieder zu hinterfragen.
Es bedingt, dass man offen ist für neue Ansichten, daß man Freude an Wissen und Fakten hat. Schon deshalb bin ich auch Skeptiker, weil wir heute in einer Zeit leben, in der erstaunlicherweise Technophobie und der Glaube an esoterische Pseudowissenschaftler noch erschreckend weit verbreitet ist. Ein Wissenschaftler ist jemand, der Wissen schafft. Der sich nicht mit Halbwahrheiten und Pseudowissen abgibt.
Insofern sind wir schon etwas anders, wir wollen die Wahrheit wissen, auch wenn es unangenehm sein kann.
Allerdings gebe ich zu, daß es schwieriger sein kann, einen Wissenschaftler in einem „normalen Unternehmen“ zu beschäftigen. Dort zählt der Status Quo, dort geht es eher um Macht und Kontrolle und wer da zu viel fragt, fällt eher negativ auf. Da muss man als wissenschaftlich denkender Mensch so seine Strategien entwickeln. Hier gilt für mich:

„There are two kinds of people, those who do the work and those who take the credit. Try to be in the first group; there is less competition there.“ Indira Gandhi

Ich fühle mich in der „do the work“ Kategorie mittlerweile sehr wohl. Und wissenschaftlich arbeite ich dann halt eher in meiner „Freizeit“. Aber ganz wichtig. Wissenschaftler sein ist eher eine Geisteshaltung denn eine Berufsbezeichnung.

Homöopathie, die Wissenschaft vom Glauben

Die ZEIT berichtet: Heilkraft aus dem Nichts und berichtet, dass Homöopathie nur dann wirkt, wenn man daran glaubt. Oder um es anders zu formulieren. Homööpathie lebt vom Placeboeffekt. Das ist für mich aber nun nicht sehr überraschend. Zwar halte ich es nach wie vor für extrem verantwortungslos, wenn man bei einer schweren, lebensbedrohlichen Erkrankung der Homöopathie den Vorzug gibt.

Aber bei Wehwechen habe ich schon selbst erlebt, dass die Gabe von ein paar Globuli (nein, ich kauf das Zeug nicht, aber meine Frau) tatsächlich unsere Kinder BERUHIGTE (das hat aber nix mit einer wirklichen Behandlung der Grunderkrankung zu tun). Das hat aber garnichts mit einer etwaigen Wirksamkeit des Mittels an sich zu tun. Vielmehr greift hier der Placebo Effekt, der durch den Glauben an eine Wirksamkeit eine positivere Grundeinstellung beim Patienten auslöst und damit die Heilung unterstützt.
Das schlimme an alternativer Medizin ist eher die Charakterlage ihrer Anhängerschaft. Dort herrscht eine geradezu religiöse Gläubigkeit an die Wirkung, und jeder , der das hinterfragt wird geradezu inquisitorisch verfolgt und verdammt.

Auch Bild der Wissenschaft titelte in seiner März Ausgabe „warum Ärzte mit Placebo-Medizin Erfolg haben, Zuckerpillen auf dem Prüfstand“.
Jedem, der fast religiös an solchen Müll wie Vitaminpräparate oder Alternative Heilmethoden glaubt, sei Ben Goldacres Buch „Die Wissenschaftslüge“ ans Herz gelegt. Darin räumt mit einigen Lügen und gefährlichen Behauptungen der alternativen Medizin wie auch der Pharmaindustrie auf.

Die FAZ, @MSPRO und der gezogene Stecker, #ctrl-verlust gelöscht. Hallo FAZ, gehts noch?

Die FAZ entfernt komplett einen wirklich guten Blog, den von @MSPRO geschriebenen Blog #ctrl-verlust. Wie es dazu kam, das beschreibt @MSPRO hier. Meine Frage an die FAZ. Hey, was soll das ? Sixtus hat schon den Begriff #buecherverbrennung in den Raum geworfen und tut mir leid, aber diesen Beigeschmack hat das ganze. Ungefragt Inhalte entfernen, auch wenn sie in einem Blog stehen, das zeugt von einer Schere im Kopf, von ungleicher Wertung, von der ach so bekannten Printarroganz. Oder sollte nur der liebe Herr S. mal wieder zu viel gehabt haben und sich gedacht haben, den Blog schaff ich jetzt nicht auch noch, also schaff ich ihn ab.
Ich fordere, der Blog muss wieder online gehen. SOFORT!

Es gibt ein Leben jenseits des Firmeninternets: Eine Zensur darf nicht stattfinden.

Vernetzung allenthalben. Durch die immer tiefere Durchdringung des Internets in den Alltag speziell der Generation Y bilden sich viele Netze, auch beruflicher Art immer mehr außerhalb der IT Infrastruktur der Unternehmen. Die Diskussion, wie man die ganzen Smartphones ins Intranet integriert, ist längst obsolet, da immer mehr Menschen solche Smartphones auch privat nutzen. Damit haben sie aber permanent und überall das gesamte Internet, unzens.. aeh ungefiltert bei sich. Insofern sind viele Diskussionen in Firmen, was denn der brave rund um die Uhr arbeitende, als Unternehmer agieren sollende Mitarbeiter sehen darf und was nicht. Wenn er es nicht im Internet am Arbeitsplatz sehen darf, dann wird schnell das Smartphone gezückt. Gut, man könnte den Empfang stören. Das ist aber nicht nur rechtlich bedenklich. Denn schon die Sperrung von Teilen des Netzes für die Mitarbeiter zeugt von einem tiefen Misstrauen. Und in solch einer Atmosphäre kann keine offene, vertrauensvolle Kommunikation entstehen. Wer mich auf diese Art kontrolliert, der vertraut mir nicht, und dem vertraue ich auch nicht. Also werde ich mich von dessen Netz abkoppeln. Schon deshalb, weil ich als Wissensarbeiter auf freien Zugang zu Informationen angewiesen bin.
Je mehr ich kontrolliert werde, um so mehr verhalte ich mich kontrolliert. Und das ist der Tod von Kreativität, Engagement und Motivation. Ich schreibe es schon wieder, ich weiss, aber das ist in der heutigen Zeit die elementares Ressource, die ein Unternehmen hat. Kreative, motivierte und dem Unternehmen verbundene Mitarbeiter. Und wer hier mit Sperren und Kontrollen ansetzt, der hat verloren.

Die Zeiten der Hierarchien und der Kontrolle von oben nach unten nähern sich ihrem Ende. Wer das nicht versteht, wird es erleben müssen, in dem er immer mehr vom Strom der Information abgekoppelt wird, die einfach an ihm vorbei, um ihn herum geht.

Lotus JamCamp Smarter Work auf der re:publica, da war ich auch dabei.

Cool, der Workshop wurde ja doch aufgezeichnet und unsere coole Orga für den Linux Desktop Workshop wird auch als Beispiel erwähnt ab Minute 57 kommt unser Beispiel, wie wir über Twitter einen Vortrag auf der re:publica binnen 2 Tagen organisiert haben. Wer also immer noch glaubt, Twitter und co. seien lediglich Spielzeug, der hat das Prinzip des Networkings, des gleichberechtigten Austauschs von Gedanken und Ideen noch nicht verstanden. Es gilt die Potentiale des Mediums zu nutzen, ohne die Gefahren aus den Augen zu verlieren. Wir müssen das ewige Bedenkenträgertum ablegen und gelegentlich auch den Schritt nach vorne wagen und etwas einfach mal „nur“ ausprobieren. Wenn es nicht sinnvoll ist, kann man es ja immer noch lassen. Aber zumindest weiss man dann, worüber man redet. Die meisten Kollegen, mit denen ich im Büro über Twitter, Facebook und co. rede schimpfen zwar drüber, haben es sich aber weder richtig angesehen, noch wissen sie wirklich, wovon sie sprechen.

Das war unser Beispiel für Twitter und den Nutzen für die Arbeit….