Ich persönlich mag es immer wenn die Programme im Windows Startmenü (XP) alphabetisch sortiert sind. Klar kann man das Eigenschaften –> Sortieren anpassen. Aber jedes mal wenn man ein neues Programm installiert hat beginnt der Spass von vorne. Jetzt habe ich durch Zufall einen Registry “Hack” gefunden mit dem man das Menü dauerhaft alphabetisch sortiert bekommt.
Man löscht unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrde alle Einträge (hier steht die Sortierreihenfolge) und nimmt anschließen dem lokalen Benutzer die Schreibrechte. Findet Windows keine Einträge für ein Programm werden nämlich alle Programme schön alphabetisch angezeigt und man muss sich nie mehr ums sortieren kümmern.
Wir alle kenne den Spruch “Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab.” Bei meinem ersten Projekt ist es jetzt soweit, ich habe beschlossen das “Pferd” JSF ist vielleicht nicht tot, aber zumindest schwer krank.
Anforderung des Kunden war es sowohl “Deep Links”, also URLs anzubieten die direkt tief in den Webauftrit einsteigen als auch den Browser Back Button sauber zu unterstützen. Nach einigen Experimenten und einer Menge Recherche Arbeit bin ich zu der Erkenntnis gekommen, dass JSF für solche Projekte nicht die richtige Plattform ist. Deep Links lassen sich vielleich nocht realisieren, aber den Back Button in Zusammenhang mit Datatables habe ich nicht in den Griff bekommen. Problem ist, dass die Datatable ihren Zustand aus der Session holt, spricht ihre eigentlichen Objekte auf Basis einer drunterliegenden Collection holt. Wenn diese Collection nicht mehr vorhanden ist, funktioniert die Datatable nicht (einen guten Artikel hierzu gibt es auch im myFaces WIKI). Egal wie ich es gedreht habe, ich konnte mit JSF nicht den Speicherbedarf und die Performance parallel in den Griff bekommen, so dass ich die Anwendung auf klassische Servlets (auf MVC Basis) zurück drehen musste.
Die Moral von der Geschicht? Aus meiner Sicht wird JSF nicht DAS Web Framework werden. Im schlimmsten Fall droht JSF ein ähnliches Schicksal wie EJB 1.x und 2.x, gute Ideen aber für die praktische Umsetzung zu kompliziert, im besten Fall wird es ein mögliches Framework für Web Application bleiben. Den de facto Standard Status, wie Struts ihn bis vor einigen Jahren hatte, wird es aber so schnell nicht erreichen können.
Die Diskussion wie gut denn die eignene Software ist, ob und ob man die eigene Software nicht auch für die geinen Webseite einsetzen muss, scheint mal wieder neu aufzuflammen, ohne dass die Beteiligten wirklich neue Argumente ins Feld führen können.
Letztlich bleibt es beim alten, rationell macht es manchmal mehr Sinn eine fertige für den jeweiligen Zweck passende Standardsoftware einzusetzen, emotional bleibt das bessere Bild wenn man die jeweilige Software auch selbst einsetzt.
Unsere Firma ist da ziemlich konsequent, jede Software die wir entwickeln und für die wir ein potentielles Einsatzszenario haben, wird bei uns auch eingesetzt, selbst wenn sie im konkreten Fall nicht die erste Wahl wäre. So hoffen wir sowohl die Qualität zu steigern als auch neues Nutzen und Innovationspotential zu erkennen. Im Ergebnis hat sich das bei uns bewährt, aber für andere mag anderes gelten.
Nachdem ich diese Woche die Problemstellung hatte, ein Konzept zu schreiben für ein Projekt, wo die Problemstellung so komplex war, dass man sie mir vor Projektbeginn gar nicht beschreiben konnte. Der Kunde wusste nur, dass er komplexe fachliche Probleme hatte und er das wissen seiner Mitarbeiter irgendwie in Programmlogik gießen wollte. Aber wie man Logik aufbauen kann die es noch gar nicht gibt?
Selbst mit Strategy Pattern kommt man irgendwann zu einem Punkt wo der Code komplex und schwierig zu warten wird. Wenn dann, wie hier, der Fachanwender auch noch selber Logik hinzufügen soll, ist man spätestens mit seinem Latein (oder Java) am Ende. Genau so oder ähnlich war meine Situation diese Woche und ich habe nach einem Ausweg gesucht. Mein erster Gedanke war es eine Skriptsprache wie Groovy oder JRuby zu integrieren und den Fachanwendern Zugriff auf (Teile) des Codes zu lassen. Eigentlich ein ganz brauchbarer Ansatz, aber die Welt der Skriptsprachen ist noch sehr in Bewegung und ich habe mich dagegen entschieden.
Als Alternativen untersuche ich jetzt einen eigenen Regel Parser mit ANTLR aufzubauen oder das ganze unter eine hübsche grafische Oberfläche mit Drools zu packen.
Ich arbeite nun schon seit vielen Jahren mit log4j, aber erst in dieser Woche habe ich herausgefunden, dass es auch einen Email Appender gibt. Standardmäßig wacht er über ein Logfile und protokolliert die Ereignisse wie jeder andere File Appender auch, trit aber ein Ereignis mit Level ERROR auf, so schickt er eine Email mit den letzten Logereignissen an eine konfigurierbare Adresse.
Seitdem muss ich nicht mehr in meine Logfiles schauen, wenn mir die Anwender Fehler melden, sondern bin meistens schon im Vorfeld informiert, dass etwas schief gelaufen ist. Und alles ohne Entwicklungs- nur mit Konfigurationsaufwand.
Die hübschen kleinen Bildchen in der URL Zeile oder bei den Favoriten haben sich mittlererweile ziemlich etabliert, nur wie erzeuge ich die Grafik im korrekten Format damit Sie auch von allen Browsern richtig angezeigt wird?
Eigentlich ist es nicht schwierig, man brauch nur die Datei und eine kleine HTML Meta angabe aber irgendwie war ich mir immer unsicher wie genau das auszusehen hat und welches Dateiformat ich verwenden muss. Als das Problem heute noch mal auftrat, habe ich die Seite FavIcon from Pics gefunden. Hier kann man nicht nur bequem aus einer beliebigen JPG oder GIF seine Favicons generieren lassen, sondern kann auch gleich noch die vorhandene Seite überprüfen und kriegt auch eine Anleitung wie man die Meta Tags aufbauen sollte.