Saturday, January 27, 2007

Singleton-Pattern and Lazy Loading

Als Ergänzung zu meinem alten Artikel zur Implementierung des Singleton-Patterns in Java verweise ich hier auf den Artikel "Singletons and lazy loading" auf OnJava.com in dem eine Möglichkeit dargestellt wird, wie man die Zugriffsmethode "getInstance()" bei der Lazy-Initialisierung sychnroniziert, ohne jeden einzelnen Aufruf der Zugriffsmethode ebenfalls mit "sychnronized" zu markieren.

The usual example, goes something like this:

public class Singleton {

static Singleton instance;

public static synchronized Singleton getInstance() { if (instance == null) instance == new Singleton(); return instance; }

}

The problem with this solution is that synchronized method getInstance() is called every time, while synchronization is actually needed only for the first call of the method (which introduces performance overhead in your application)

Wobei ich den Kommentar "If you can avoid singletons, do it" natürlich nur unterstreichen kann.

Thursday, January 11, 2007

ZFS

Das ZFS-Dateisystem von Sun Microsofts wird im Solaris 10 Betriebssystem eingesetzt und wurde vor einiger Zeit auch als Open Source veröffentlicht.

Interessant (besonders wenn man diese Vorlesung gerade hört) ist ZFS vor allem deshalb, weil es alte Annahmen, die vor 15 Jahren ihre Berechtigung hatten, über Bord wirft.

Die Liste der Features wäre zu lang um sie hier aufzuzählen, aber u.a. bietet ZFS

  • Ende-zu-Ende-Datenintegrität durch Transaktionen und Checksums
  • Pooled Storage, dass Ende der festen Größenteilung von Dateisystemen (Dateisystem wächst und schrumpft je nach Bedarf)

Mehr Informationen zu ZFS allgemein gibt es in dieser Präsentation von Sun", die ganz unbescheiden ZFS als "The Last Word in File Systems" bezeichnet.
Einen kleinen Einblick in die Entwicklungsarbeiten an ZFS bietet dieser Bericht auf den Forschungsseiten von SUN.
Eine Anleitung wie man ZFS als "Filesystem in Userspace" betreibt findet sich im node-0-Blog.

Tuesday, January 09, 2007

Eine unendliche Geschichte

Am 13. September habe ich meinen Bachelorprüfung bestanden.

Mit vielen Umwegen und Neudrucken sind nach und nach auch alle Zeugnisse und Urkunden eingetroffen.

Heute habe ich alles zum Neudrucken zurückgegeben. Jedes einzelne Blatt war immer noch fehlerhaft gedruckt. Die Gesamtnote stimmte nur auf einem einzigen Blatt.

Das Problem: Offensichtlich werden die Zeugnisse automatisch aus den Noten generiert, aber das System hat Fehler und gibt meine Gesamtnote stets falsch aus.

Ich will ja nicht sarkastisch werden, aber dies bei der "Universität der Informationsgesellschaft".
Meine Mutter hat schon recht, wenn sie sagt, dass es einfach in Word (oder natürlich OO oder Pages) getippt schneller gegangen wäre.

Monday, January 08, 2007

Neu in der Sidebar

Wie schon lange im B.L.O.G. gibt es nun auch auf dirkmeister.de in der Sidebar mit eine aktuelle Buchempfehlung von mir.

Ich beginne mit "Programming Pearls" (amazon.de, ub.upb.de) von Jon Bentley, dass ich schon in dem Artikel über binäre Suche erwähnt habe.
In diesem Buch, dass eine Sammlung von Beiträen aus der gleichnamigen Kolumne der "Communications of the ACM" ist, stellt in verschiedenen Abschnitten immer Programmierprobleme und Tipps zur Programmierung (allgemein wie für konkrete Probleme) vor.

Zum Beispiel aus dem ersten Abschnitt: "How could you generate a file of k unique random integers between 0 and n - 1 in random order? Strive for a short programm that is also efficient.". Im weiteren Verlauf des Buches geht es auch noch um Testen, Performanceabschätzung sowie verschiedene Standardprobleme wie Sortierung, Suchen und Heaps.
Wenn es interessiert MuA in Code umzusetzen, der wird auch dieses Buch mögen.