Freitag, 23. Mai 2008

Thunderbird und Suchen nach EMails

Technorati-Tags: ,,

Wieder einmal eine spannende Geschichte aus dem Hause Mozilla:

Wer Thunderbird vor Version 2.0 benutzt hat kennt sie noch, die Mailtoolbar. Dort konnte man bequem nach Mails suchen die ein bestimmtes Kriterium erfüllen, beispielsweise:

Zeige mir alles Mails von Maria Muster an.

Sehr schön zu benutzen weil kein eigenes Suchfenster nötig ist, welches i.A auch für komplexere Suchabfragen gedacht ist.

So sah das ganze aus:

mail_toolbar_tb15

Das Problem war, dass man keine Tags zum Suchen definieren konnte um seine Mails selber zu taggen.

Dieser Missstand wurde mit Thunderbird 2.0 behoben, nun konnte man Tags selber definieren und seine Mails wie man wollte taggen, kann wichtig sein wenn man eine globale Inbox nutzt.

Aber ein schlauer user interface designer hat eben die, von TB 1.5 her bekannte, Mailtoolbar, die auch nach Tags suchen kann, entfernt ;-).

Was soviel bedeutet wie:

Ja du kannst jetzt super toll selber Tags für deine Mails definieren, kannst auch nach diesn Tags suchen, aber den Schnellzugriff darauf verstecken wir per default.

Man kann diese Mailtoolbar wieder hinzufügen, das Problem ist nur, dass kein Plaz mehr dafür da ist, nur neben dem Menü, und nein man kann keine neues Symbolleisten an die bestehenden anhängen, wie man es von anderen Anwendungen her gewohnt ist.

Also man hat zwei Optionen:

1) Man entfernt Buttons aus der bestehenden Symbolleiste, oder

2) Man fügt die Mailtoolbar, zu mindest den interessanten Teil davon, in das Menü ein.

Ich habe mich mit Variante 2 begnügt :-)

Montag, 19. Mai 2008

ANTLR API

Technorati-Tags: ,,

 

Heute mal wieder etwas übers Programmieren, und wie seltsam manche APIs sein können ;-)

Wir (Wir heißt ich und der Rest meiner Gruppe) machen gerade die Übung für Compilerbau.

Wir müssen für das Erstellen von Lexer und Parser ANTLR als Generatortool benutzen. Das Tool selber ist recht nett, und mit antlr-works als GUI Frontend auch recht komfortabel zu benutzen.

So wir sind mittlerweile beim Generieren von intermediate code angelangt.

 

Unser Gedanke war, dass wir den abstract syntax tree [Link zu Wikipedia] in einen neunen Baum umwandeln, der den Baum des intermediate code repräsentiert.

 

So weit das Design.

Um einen Baum basteln zu können muss man einen TreeAdaptor [Link zur API Dokumentation] benutzen, der folgende Methode zum Anhängen eines neuen Baumes zum bestehenden bereitstellt:

void 
addChild (Object t, Object child)

Jeder der so eine Signatur liest, und Java gewohnt ist (und es trotzdem nicht mag, aber das ist eine andere Geschichte ;-) )

Dent sich, dass der Parameter t wohl zwangsläufig in einen Tree gekap[selt sein muss und gecastet wird, und dass mit dem Parameter child ein neuer Tree gebastelt wird, denkste.

Beide Parameter (auch child!) werden in der betreffenden Implementation in einen Tree gecastet!

Und nein die Dokumentation (zu finden unter

http://www.antlr.org/api/Java/interfaceorg_1_1antlr_1_1runtime_1_1tree_1_1_tree_adaptor.html#f28fb8a893c689bb8c032d971ae553f8

steht auch nichts dazu, dazu muss man erst den Source lesen.

Wenn schon beide Parameter sowieso in Trees gecastet werden, warum, erwartet die Methode nicht gleich zwei Parameter vom Typ Tree ;-)

Nicht nur Software muss intuitiv zu benutzen sein, auch APIs, sollten diesem Grundsatz genügen ;-)

Sonntag, 18. Mai 2008

Mozilla und Betaversionen

Technorati-Tags: ,

 

So nach einiger Zeit geb ich mal wieder etwas von mir :-)

Eigentlich hat dieses Posting zwei Gründe,

1) Hab ich mir heute Windows Live Writer installiert und wollte mal sehen wie der mit blogspot zusammen kommt

2) Eben jener der in der Überschrift steht ;-)

Ich habe am Notebook schon länger die Beta von Firefox 3 installiert. Vor kurzem habe ich auf heise gelesen, dass die erste offizielle Alpha von Thunderbird 3 auch heraus gekommen ist. Mit der üblichen Warnung, dass sie nur für Testzwecke gedacht sei.

Nun gut, denk ich mir, schauen wir uns das Ganze mal an.

Um dann gleich mal sehr veblüfft zu werden, dass sich TB3 Alpha in den selben Ordner installieren will wie die aktuelle Releaseversion TB2, spannend, denke mir sicherheitshalber installieren wir wo anders hin :-)

Und bevor ich die Installation nocheinmal starte denke ich mir auch, kopieren wir sicherheitshalber das Profil in ein Backup rein, wer weiß, vielleicht liest TB 3 Alpha ja auch das Profil raus :-).

Und siehe da, der tut das wirklich, übrigens auch FF 3 Beta liest das Profile der aktuellen Releaseversion. Es mag ja sein dass wohl kaum was passieren wird mir den Daten, da sich diese Code hoffentlich nicht mehr ändern wird, zu midnest nicht gravierend, aber wenn man schon davor warnt, dass es sich um Testversionen ahdnelt, die nicht für den Produktivbetrieb gedacht sind, warum liest man dann bestehende Profile ein? Was kann den sonst kaputt werden, vielleicht die Extensions :-D ?

Abgesehen davon, wo ist die gute alte Politik, Betas als feritges Zip auszuliefer, die man nicht installieren muss, warum muss ich für Vorabversionen ein Setup durchlaufen? Dinge für die MS normalerweise getatdelt wird, auch wenn es bei ihnen nicht anders geht, außer vielleicht beim IE :-), wobei der ist eine andere Geshichte :-)

Ein kleine Kommentar zu Windows Live Writer auch gleich: Warum kann man da nicht zoomen ;-) ?