Wednesday, January 9, 2013

Detail Formatter erleichtern das Debuggen in Eclipse

Wer kennt nicht diese ärgerlichen Klassen, die toString() nicht überschreiben und deshalb im Debugger keine vernünftigen Informationen zu Objekten dieser Klassen angezeigt werden.


Man sieht hier auf den ersten Blick nur, dass das eine Objekt die id 18 hat und das andere die id 31. Erst wenn man das Objekt aufklappt, wird einem eine unter Umständen lange und unübersichtliche Liste aller Felder dieses Objekts angezeigt.  Bei eigenen Klassen kann man die fehlende toString() Methode ja noch nachrüsten, aber bei fremden Klassen wäre man verloren wenn es nicht die "Detail Formatter" Funktion von Eclipse geben würde.

Einfach einen Rechtsklick auf das Objekt für den man einen Formater erstellen und die Funktion "New Detail Formatter" aufrufen.


Jetzt kann man den Javacode angeben, der den String berechnet, den man gerne als Anzeige für diese Klasse im Debugger haben möchte. In meinen Fall hätte ich gerne für jedes Person Objekt den Vor und Nachname angezeigt.


Schon haben wir in der Detailanzeige des Debuggers nicht mehr die Objektid sondern schon unseren schönen aussagekräftigen Inhalt.



Immer noch nicht ganz ideal, den viel schöner wäre wenn man nicht auf eine Zeile klicken müsste, sondern wenn gleich unter Value der berechnete Wert stehen würde. Aber auch dafür bietet Eclipse eine Lösung. Unter Preferences->Java->Debug->Detail Formatters kann man die Option "As the label for variables with detail formatters" auswählen und schon wird der berechnete Text auch in der Value Spalte angezeigt.



Die Detail Formatters bleiben persistent, das heißt sobald ich mir diesen einmal für eine Klasse erstellt habe, wird dieser in jeder Debugsession von Eclipse verwendet. Ich muss also jeden "Detail Formater" nur einmal definieren.


Sunday, January 6, 2013

Notes 9 Volltextsuche kleine Änderung große Usability Verbesserung

Oft sind es die Kleinigkeiten die einen großen Sprung in der Verwendbarkeit einer Anwendung bewirken. Genauso eine Kleinigkeit wurde in Notes 9 endlich verbessert. Welcher Betreuer kennt nicht das Problem, Anwendern zu erklären wie sie Suchergebnisse der Volltextsuche anders als nach Relevanz sortieren können. Selbst Anwender die darauf geschult wurden, scheitern immer wieder daran auf mehr zu klicken und dann in der großen Anzahl der "Mehr Optionen" die richtige für die Ergebnissortierung zu finden. Mit Notes 9 hat die IBM endlich zumindest in diesem Bereich reagiert und diese absolut essentielle Auswahlbox aus den Tiefen der Optionen geholt und prominent platziert.


Bei der Implementierung der Funktion hat die IBM sogar daran gedacht, dass bei einer Änderung in der Auswahlbox die Sortierung sofort geändert wird. Das heißt man muss nicht wie bisher nach der Änderung noch einmal auf Suche klicken.

Wie wichtig die IBM dieses Feature nun nimmt sieht man daran, dass jetzt sogar Tooltips in die Spaltenköpfe von den Java Ansichten (in den klassischen Notes Ansichten fehlen diese) integriert wurden. Das heißt wenn man mit der Maus auf einen Spaltenkopf zum sortieren positioniert, dann bekommt man vorgeschlagen über den Auswahldropdown die Ergebnissortierung zu ändern.


Soviel Liebe zum Detail würde ich mir an mehr Stellen im Client wünschen.

Für weitere Infos zur neuen Version schauen Sie auch auf meine Übersicht über alle Postings zum Thema Notes/Domino 9

Neues Redbook zum Thema IBM Traveler Deployment

Ein neues Redbook "Lotus Notes Traveler hints and tips for a successful deployment"wurde vom IBM Redbook Team publiziert. Es enthält jetzt nicht wirklich viel neues für einen erfahrenen Domino Admin, aber trotzdem ist es gut an einem Ort die Best Practice Empfehlungen für den Traveler zu haben.

Saturday, January 5, 2013

Notes 9 Suche in Ansichten wurde vereinheitlicht und verbessert.

In Notes 8.x gab es neben der Volltextsuche noch zwei andere Suchen um Dokumente in Ansichten zu finden. Dies war in meinen Endbenutzerschulungen immer ein Thema warum es mehrere Suchen gab und wann man welche verwendet. Vor allem warum man vor der Schnellsuche immer nach der zu durchsuchenden Spalte sortieren muss, war für unsere Benutzer schwierig zu verstehen. In Notes 9 SE hat man nun die Suche mit "STRG+E" und die Schnellsuche die durch beliebigen Tastendruck aufgerufen wurde in eine Suche zusammengefasst.

Je nachdem ob man die neue Suche mit "STRG+F" oder einen beliebige Tastendruck aufgerufen hat wird das Suchfenster mit unterschiedlicher Vorauswahl angezeigt.

Mit "STRG+F" bekommt man die Suche im Modus, dass in allen Spalten gesucht wird.


Man kann aber jederzeit über die Drop Down box die Suche auf eine Spalte einschränken, was dann der Schnellsuche (Vorauswahl wenn man in der Ansicht eine Taste drückt) entspricht. Dabei wird die Ansicht automatisch nach der ausgewählten Spalte sortiert. Super ist, dass das Suchfeld je nach Spaltentyp Hilfen für die Eingabe anbietet. z.B. bei Personenfeldern wird Typeahead und bei Datumsspalten ein Datumsauswahl dropdown angeboten.

Was weniger gut ist, dass vom Wechsel von any column zu einer Spalte kein Hinweis angezeigt wird, dass bei der Spaltensuche immer vom Anfang der Spalte weg gesucht wird. Das heißt, bei der "Any Column" Version kann ich einen Teilbegriff der an belibiger Stelle vorkommt eingeben und bei der Spaltensuche muss der Suchbegriff mit dem Beginn der Spalte ident sein. Das hätte man leicht anders lösen können in dem man auch bei der Spaltensuche eine Option "nach Teilbegriffen suchen" anbieten würde.

2 Bugs hat die Suche in der Public Beta auch noch. Beim Typeahaed in der Personenspalte werden nur lokale Kontakte vorgeschlagen, obwohl in der Hilfe eindeutig dokumentiert ist, dass auch das Domino Directory durchsucht wird. Ausserdem haben die Hilfebuttons neben den Feldern keine Funktion. Update 6.1.2013: Die Fragezeichen sind wie ich aus dem Beta Forum erfahren habe gar keine Buttons, sondern nur ein Bereich an dem beim hovern ein Tooltip angezeigt wird. Dies ist aber erstens nicht konsistent mit dem Rest von Notes, da sich in den classic Notesbereichen teilweise das selbe Icon befindet, dass man aber klicken muss um den Tooltip anzuzeigen. Ausserdem erfolgt das Anzeigen des Tooltips sehr langsam, dass man schon genau wissen muss, dass hier ein Tooltip versteckt ist.



Prinzipiell muß ich anmerken, dass solche Dialog immer in der Grösse angepasst werden können sollten.

Fazit: Tolle Verbesserung gegenüber Notes 8.x die aber noch perfektioniert werden könnte.


Übersicht Beiträge zu Notes 9 Beta:
  
Notes 9 Volltextsuche kleine Änderung große Usability Verbesserung
Notes 9 Suche in Ansichten wurde vereinheitlicht und verbessert. 
Neues Feature Database Maintenance in Domino 9
Coole neue notes.ini Variable in Domino 9 für Copy style compact
Notes 9 SE erste Eindrücke aus Sicht des Plugin Entwicklers 
Erste Eindrücke vom Browserplugin und iNotes 
Notes 9 als Anwender; erster Blick Hui, zweiter Blick leider Pfui. 
Notes 9 Verbesserung beim e-mail typeahead 

Friday, January 4, 2013

Neues Feature Database Maintenance in Domino 9

In Domino 9 Social Edition gibt es ein neues Feature, dass die Datenbankwartung erleichtern soll. Bisher musste man dafür mehrere verschiedene Tasks (Updall, compact, fixup) über Programmdokumente aufrufen. Dies alles sollte nun durch den Datenbank Maintenance Task zusammgengefasst werden. Der Datenbank Maintenance Task bietet dabei den Vorteil, dass man die Maintenancetasks auf mehrere gleichzeitig laufende Threads aufsplitten kann. Das heißt, wenn man über entsprechend leistungsfähige Hardware verfüge, kann der DBMT Task mehrere Compact oder Updall gleichzeitig ausführen. Dies war bisher nur umständlich über .ind Dateien möglich.

Man kann den DBMT Task entweder beim Serverstart über ein Programmdokument aufrufen und ihm als Parameter mitgeben, dass er zu bestimmten Zeiten arbeiten soll, oder man ruft den DBMT Task über ein Programmdokument regelmäßig auf, wobei man dann eine Stopzeit mitgeben kann.

Ein Beispielprogrammdokument für den Aufruf beim Dominoserverstart:


Die Parameter bedeuten, dass 3 Compacts und Updalls gleichzeitig laufen dürfen. Die Datenbankmaintenance wird zwischen 2:00 und 7:00 morgens durchgeführt. Compact soll aber nur alle 3 Tage gemacht werden. Der "-force 1" Parameter bedeutet, dass Fixup am Sonntag (1. Tag der Woche) ausgeführt wird. Der DBMT bleibt in diesem Fall immer aktiv, arbeitet aber nur in den angegebenen Zeiten.

Beispiel für die regelmäßige einmalige Ausführung von DBMT mit einer Stoppzeit mittels eines Programmdokuments.


Hier wird der DBMT Task jeden Tag um 2:00 in der Früh durch das Programmdokument mit 3 Compact und 3 UpdateallThreads gestartet. Spätestens um 6:00  in der Früh wird der DBMT abgebrochen bis zum nächsten Start durch das Programmdokument.

Bei beiden Varianten wird ein abgebrochener Compact beim nächsten Durchlauf an der Abbruchstelle fortgesetzt. Es werden somit also nach mehreren Durchläufen auch wenn die Zeit nicht ausreicht alle Datenbanken mittels copy style compact komprimiert.

Achtung! Bei Verwendung des DBMT Tasks sollte man in der notes.ini des Servers den UPDALL Task entfernen, da er sonst doppelt läuft.

Mit "show stats dbmt" kann man sich diverse Informationen über die Ergebnisse des "DBMT" Task anzeigen:




Es gibt noch ein paar zusätzliche Parameter und notes.ini Einträge die dbmt betreffen, die man in der Doku nachlesen kann.

Mein Fazit: Für alle die Datenbankquotas auf Ihren Maildatenbanken verwenden, ist der DBMT vor allem im Zusammenspiel mit der neuen notes.ini Variable "MailFileDisableCompactAbort" ein riesen Fortschritt, weil man damit die Verkleinerung der mail Datenbanken sehr gut automatisieren kann und durch die Verwendung von mehreren Threads die Compacts auch sehr gut performen. Für alle die keine Datenbankquotas verwenden, wäre meiner Meinung nach ein Parameter für die Auswahl des Compact styles sinnvoll gewesen. Da copy style compacts die Datenbanken im Filesystem extrem fragementieren und ohne quotas nicht so oft notwendig sind.

Wünschenswert wäre es wenn der compact Task und auch der Fixup Task eine Option für mehrere Thread bekommen würden.


Für weitere Infos zur neuen Version schauen Sie auch auf meine Übersicht über alle Postings zum Thema Notes/Domino 9

Thursday, January 3, 2013

Coole neue notes.ini Variable in Domino 9 für Copy style compact

Bisher hatte man bei einem copy style compact von mail Datenbanken oft das Problem, dass der Copy style compact abgebrochen wurde, weil der Router eine e-mail in die zu komprimierende mail Datenbank zustellt. Deshalb war es oft notwendig, dass man vor der Datenbankmaintenance den Router Task stoppen musste, damit nicht Datenbanken beim Copystyle Compact übergangen werden. Mit Domino 9 wurde eine neue INI Variable "MailFileDisableCompactAbort=1" eingeführt, die genau dieses Problem löst. Sobald man die INI Variable am Server eingetragen hat, liefert der Router keine e-mails mehr an mail Datenbanken aus, für die gerade ein Compact läuft. Sobald der Compact fertig ist, werden die wartenden mails zugestellt.

Das ist einmal eine wirklich gute Neuerung obwohl erst die Praxis zeigen muss, ob es so gut funktioniert wie in der Doku versprochen ;-)

Für weitere Infos zur neuen Version schauen Sie auch auf meine Übersicht über alle Postings zum Thema Notes/Domino 9

Wednesday, January 2, 2013

Notes 9 SE erste Eindrücke aus Sicht des Plugin Entwicklers

Nach dem ich mir ein wenig den neuen Client, iNotes und das Browserplugin angeschaut habe, möchte ich mir heute den neuen Client aus der Sicht eines Plugin Entwicklers ansehen.

Die Einrichtung von Eclipse zur Entwicklung von Plugins für Notes 9 Social Edition hat schon Mikkel Heisterberg in einem sehr guten Howto (Eclipse 3.x, Eclipse 4.2) beschrieben. Deshalb kann ich mir dies hier sparen.

Ich habe dann also mal in meine neue Notesumgebung sämtliche Features und Plugins, die wir für den Notes Client entwickelt haben eingespielt und erfreulicherweise laufen alle Plugins ohne Probleme und Einschränkungen in Notes 9 Social Edition. Aber auch hier zeigt sich, dass sich die IBM wenig Mühe gegeben hat, ein konsistentes UI zu erreichen. Notes 8.x war sehr gut an das Farbschema (blau weiße Farbverläufe) von Eclipse angepasst. Deshalb haben sich Plugins die das Standarddesign der Platform übernommen haben sehr gut in den Notes Client eingefügt. Als kleines Beispiel wie das aussieht hier ein Screenshot aus unserem Hardwareinventoryplugin unter Notes 8.5.3:


Die Blautöne der Eclipsebereiche harmonieren relativ gut mit den Blautönen die in Lotus Notes 8.x verwendet wurden.

Leider passen die blauen Farbverläufe nicht mehr zu den grauen Farbverläufen von Notes 9


Dabei sollte es für die IBM ein leichtes sein, die Eclipseplugins dahingehend anzupassen, dass zum ausgewählten Theme passende Farben zurückgegeben werden, wenn ein Plugin Defaultfarben abruft. Ich habe mal Quick and Dirty das "org.eclipse.ui.forms" Plugin von Notes gepatched und schon sehen alle Plugins etwas mehr nach der Farbgebung von Notes aus.


Mit etwas Mühe hätte man da jeden Pluginprogrammierer viel Arbeit ersparen können und selbst erstellte Plugins würden sich automatisch ohne viel Aufwand in den neuen Notesclient einfügen.

Leider gibt es ausser den Änderungen beim Design praktisch kaum etwas neues für Plugin Entwickler. Für eine 8.5.4 wäre es ja auch durchaus in Ordnung gewesen, dass die IBM keine Updates an den Frameworks gemacht hat. Aber wenn man schon mit Notes 9 eine komplett neue Version akündigt kann ich nicht verstehen, warum man den Eclipse RCP Basiscode nicht aktualisiert hat. Wenn man bedenkt, dass jedes Jahr eine neue Version von Eclipse erscheint, dann ist relativ klar, dass viele aktuelle Plugins nicht mehr die uralte 3.4.2 Version von Notes 9 unterstützen. Hier würde ich mir wünschen, dass die IBM so rasch wie möglich zumindest auf die neueste 3.x Version updated. Derzeit ist ja schon 4.2 aktuell. Auch dass noch immer auf Java 1.6 statt 1.7 gesetzt wird, finde ich persönlich sehr schade. Ein echtes Highlight wäre für mich, wenn die IBM hier noch nachbessert und vielleicht bei nächster Gelegenheit Java FX integriert.

Auch die Domino Java API's haben kein Update erfahren. Hier wäre wirklich schon dringender Handlungsbedarf, da sich die Java API von Domino vom Design her sich immer noch wie Java 1.1 anfühlt. z.B. wird noch immer Vector verwendet, statt den mit 1.2 verbesserten Collectionsklassen. Auch Generics werden nach wie vor nicht unterstützt. Nicht einmal die neuen Calendarklassen werden offiziell unterstützt, wenn Sie auch in der Betaversion scheinbar drinnen sind.

Als Fazit kann man nur sagen, dass die IBM alle Leute die sich mit 8.x stark in der Pluginentwicklung engagiert haben mit Version 9 hängen lässt. Bei uns in der Firma geht der Trend dahin, dass wir unsere Plugins die wir für den Notesclient entwickelt haben, nach Vanilla Eclipse portieren und den Notes nur noch da verwenden, wo es gar nicht anders geht.


Für weitere Infos zur neuen Version schauen Sie auch auf meine Übersicht über alle Postings zum Thema Notes/Domino 9

Monday, December 31, 2012

Einen guten Rutsch und ein gutes neues Jahr

Ein arbeitsreiches und spannendes Jahr mit vielen neuen Entwicklungen im Bereich der IT liegt hinter uns. Ein Jahr in dem ich sehr viel neues von vielen Leuten in der "Yellowbubble" lernen durfte und hoffe, dass auch der eine oder andere aus meinen Blog etwas lernen konnte.

Daher bedanke ich mich bei allen Lesern meines Blogs für das Interesse und die guten Kommentare und wünsche allen meinen Lesern eine schöne Silvesterfeier, Gesundheit und viel Glück und Erfolg im neuen Jahr.
Quelle Openclipart.org
ad