|
Software: Projektmanagement, Architektur, Methoden. |
||||||||||||||||||||||||||||||||||||||||
|
home blog tools text links kontakt 2010 2009 2008 2007 2006 |
WeblogUI Builder, 5.8.2011Textuelle Beschreibung von Web oder Rich Client UI Masken ist auf den ersten Blick eine unnatürliche Idee. Immerhin müsste sich doch wenigstens derjenige Teil unserer Software, bei dem es auf das gute Aussehen ankommt, ideal graphisch erstellen lassen. Graphische UI Builder sind eine Klasse von Werkzeugen, die genau das ermöglichen. Softwarentwickler müssen den UI Code nicht von Hand schreiben, sondern können ihn WYSIWYG bequem zusammenklicken, sie verwenden scheinbar eine graphische DSL. Seit kurzem gibt es unter Eclipse sogar ein brauchbares freies Plugin: WindowBuilder.Da ich momentan als Architekt den Bau eines Rich Client vorbereite, habe ich mir WindowBuilder genauer angesehen... und war eigentlich zufrieden. Allerdings nervt mich die Mausschubserei und das zeitraubende, teilweise redundante Eintragen von Werten in den Eigenschaftsfeldern der Widgets. Einen Eindruck davon vermittelt folgendes Beispiel:
Eclipse WindowBuilder (ca. 3:30 Minuten): Ein wenig Recherche nach weniger mauslastigen Alternativen ließ mich auf Swing JavaBuilder, den Groovy Swing Builder und Scala GUI stoßen, alles Ansätze, den Aufbau von Rich Client Masken mittels textueller statt graphischer DSL zu beschreiben, so dass die Schmerzen der teilweise extrem umständlichen Swing API gelindert werden. Was ich für ein ausgewachsenes Stück Enterprise GUI aber eigentlich von einem Tooling obendrauf bekommen möchte ist:
Xtext basierte UI Language (ca. 1:30 Minuten) Interessanterweise wird bei besseren Layout Managern jenseits der JDK eigenen (z.B. JGoodies Form Layout oder MiGLayout) auch für das Layout Management eine DSL verwendet. Die kurzen Anweisungen lassen sich direkt in die UI Language einbetten und werden -- ggf. unter Anreicherung mit Defaults -- in die generierte View geschrieben. Das Ergebnis ist eine Sprache, mit der sich in -- gefühlt -- einem Drittel der Zeit eine größere Wirkung erzielen lässt als mit Klicken und Ziehen in einem graphischen UI Builder. Die Entwicklung der Grammatik und des Generators nimmt bei guten Kenntnissen der Rich Client API (SWT, Swing, GWT) ca. 1-2 Wochen in Anspruch. Der Break-Even dürfte dann bei unter 50 Masken liegen, eine Menge die bei Enterprise Systemen leicht erreicht wird. Bye bye, mühsames "Code Zusammenklicken"... Das Kabel, das ich nicht wollte, 30.5.2011Im Januar sind wir innerhalb Bonns umgezogen. Kleines Kind daheim: da ändern sich die Bedürfnisse dann doch. Größere Wohnung, andere Lage, Garten etc. Unser Wohnzimmer ist groß, so ca. 6x4 Meter. Und unser Fernseher macht irgendwie nur an dem Platz Sinn, der am weitesten von der Fernsehsignaldose entfernt ist.Wir hatten bis dato einen 4:3 LC Fernseher mit analogem Anschluss plus Festplatten/DVD Recorder, beides vielleicht fünf Jahre alt. Und ich hatte keine Ahnung, wie der Stand der Technik aussieht. Also wie das Kabelsignal unseres Providers zum Fernseher kriegen? Ein langes Koaxialkabel? An der Wand und über Türdurchgänge verlegt? Keine charmante Lösung. Erster Ansatz im Dezember 2010: ein ordentlicher Fachhandel. Was kann ich tun? Gibt's da nicht etwas, um diese Hürde zu überwinden? Antwort: nehmen Sie ein gutes Kabel, 15 Meter sind kein Problem. Zweiter Ansatz: Google, Google, Google. Um das Ergebnis für eilige Leser vorweg zu nehmen: das lange Kabel habe ich nicht gekauft. Inzwischen habe ich neben einem neuen Full HD Backlight LED Fernseher zwei preiswerte Mini PCs angeschafft, überbrücke die Strecke mit einem Homeplug AV Adapter, verwende als Software im wesentlichen Ubuntu, TVheadend, OSCam, TwonkyServer und XBMC. Man sieht keine Kabel und hört keine Lüfter rauschen.
Wir können außer mit dem Fernseher auch über jedes Notebook Fernsehen, unsere Fotosammlung betrachten und Musik aus Webradio, Last.FM oder unserer gerippten CD Sammlung hören. Für unser Tivoli Model Two habe ich noch einen UPnP Streaming Client gekauft. In der Küche läuft über ein altes Notebook Fernsehen oder Musik, während ich abends noch was koche. Und meine Frau kann ihren iPod Touch nicht nur mit Musik und Fotos sondern auch mit Fernsehaufnahmen betanken. Und das wichtigste: der Kram hat den WAT (Wife Acceptance Test) bestanden. Den Fernseher und vorhandenen WLAN-Router nicht eingerechnet, hat der Spaß ca. 1100 Euro und viele Abende gekostet. Neben den jetzt verfügbaren Features hat es mir vor allem eine recht umfassende Bildung bzgl. relevanter Hardware, Software, Standards und schwieriger Knackpunkte gebracht. In den kommenden Monaten kann ich aus diesem Fundus noch einiges in meinem Blog berichten, was im Überblick so aussieht:
![]() Die Frage, die sich jetzt mancher, der selbst gerade nach Lösungsmöglichkeiten für das eigene Heim sucht, stellen wird, ist: Soll ich mich auf eine Bastelarbeit einlassen, riskiere ich damit zuhause den Frieden und tausche obendrein noch Geld und Freizeit für eine halbgare Frickellösung ein? Wer computertechnisch geschickt ist, mit Linux umgehen kann und auch vor Skriptprogrammierung nicht zurückschreckt, kann sich m.E. darauf einlassen. Die Hardware und Software ist reif und nutzerfreundlich genug, um nach weniger als drei Stunden den Kern auf den Beinen zu haben. Im Netz gibt es haufenweise Anleitungen und Hinweise, um fast jede Aufgabe kurzfristig zu lösen. Tatsächlich war mein Startpunkt ein gerade 12 Euro teurer 8GB USB-Stick, auf den ich ein bootfähiges Ubuntu installiert habe, um mich ohne Risiko erstmal vorzutasten. Meine Anforderungen an mein "Projekt" entstanden auch erst mit der Zeit:
Hier noch die Aufstellung der bei mir verwendeten Hardware:
Mehr zu diesem Thema in den kommenden Monaten... Scrum - unvollständig, 10.5.2011Seit einigen Jahren drängt sich in Sachen agiler Softwareentwicklung die Methode "Scrum" (Einführung) -- zumindest in meiner Wahrnehmung -- in den Vordergrund. Auf Veranstaltungen und bei Kunden höre ich dagegen sehr selten die Namen eXtreme Programming, Crystal Clear oder Feature Driven Development. Auf der einen Seite ist es mir egal, welchen Namen das Kind trägt. Alle bringen die grundlegenden, sehr wertvollen Eigenschaften mit, die in umfangreichen Softwareprozessen leichter unter die Räder kommen. Darunter sind z.B.:
Ich würde trotz meiner Kritik an Scrum eher den einfachen, agilen Prozess als Ausgangspunkt wählen und in diesen Software spezifische Aktivitäten einbetten, als einen Prozess wie RUP zurechtzuschneiden. Denn agile Verfahren sichern, dass man schon nach Wochen die Fähigkeit, laufende Software zu bauen, einschätzen kann, während sich Projekte, die aufwändigen Prozessen folgen, Monate mit sich selbst beschäftigen können, ohne den maßgeblichen Prüfstein "potentially shippable product" zu passieren. |
||||||||||||||||||||||||||||||||||||||||