Monthly Archive for May, 2009

Chemie mach Spass

Oxygen from Christopher Hendryx on Vimeo.

Wandertag

Was ist nur aus dem guten alten Wandertag geworden? Früher sind noch alle gewandert… Heute fahren ganze Horden von Schulklassen mit dem Zug. Vorzugsweise von Mannheim nach Heidelberg. :-)

Indiana Jones und die Suche nach dem verlorenen Speicher

Ein bisschen Suche nach passenden Tools für mein Memory Leak Problem brachte ein paar Interessante Seiten und Tools zum Vorschein.

“Your pager hasn’t been sleeping well. It periodically wakes you up in the middle of the night to tell you that your server is firing off “OutOfMemoryError” messages. Worse still, your significant other forcibly relocated you to the couch and told you not to return until your pager stops buzzing.

Sound familiar? If so, you may have a case of memory leak induced insomnia, but fortunately we’ve got a cure for what ails you. This tutorial will teach you everything you need to know to ease your suffering, including what memory leaks are, why they happen, and how to diagnose and fix ‘em.[...]“

Nützlich sind hierbei der gcviewer um das Java GC-Log zu visualisieren und der Memory Analyzer (MAT) um Java Heap Dumps zu analysieren.

Das GC-Log kann man mit folgenden Java-Parametern erstellen:

-verbose:gc
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-Xloggc:<logfile>

Alles weitere, und wie man Heap-Dumps erzeugt, wird in obigem Artikel sehr anschaulich erklärt.

Java Memory Leaks

Ich bin zwar gerade auf der Suche nach einem anderen Memory Leak, aber das klingt ja auch interessant… besonders wenn man noch mit Java 1.4 arbeitet.

“Why is my Java program leaking memory when I call run() on a Thread object?”

The issue is that at construction time, a Thread is added to a list of references in an internal thread table. It won’t get removed from that list until its start() method has completed. As long as that reference is there, it won’t get garbage collected.

So, never create a thread unless you’re definitely going to call its start() method. A Thread object’s run() method should not be called directly.

A better way to code it is to implement the Runnable interface rather than subclass Thread. When you don’t need a thread, call

myRunnable.run()

When you do need a thread:

myThread = new Thread(myRunnable);
myThread.start();

[via stackoverflow.com]

Tilt-Shift

Bathtub IV from Keith Loutit on Vimeo.

Ziemlich geniales Tilt-Shift Video von Keith Loutit. Auf flickr findet man auch allerhand nette Tilt-Shift Bilder.

Processing

Irgendwie habe ich in letzter Zeit so viel von Processing gehört, dass ich auch mal was damit visualisieren wollte. Und da sich Fraktale als Fingerübung doch recht gut eignen habe ich mal schnell den Pythagoras-Baum zusammen gehackt. Wahrscheinlich nicht sehr elegant, aber als zehn vor zwölf Lösung doch zu gebrauchen.

ptree
Mein Baum. Erhöhen und Verringern der Baumtiefe mittels Links- bzw. Rechtsklick.

Ich muss sagen, es war überraschend einfach den Algorithmus mit Processing zu visualisieren… mal sehen, vielleicht fällt mir ja in Zukunft noch was sinnvolleres ein. :-)

Jack Reacher

Jack Reacher erinnert mit so ein bisschen an Jack Bauer und ist die Hauptfigur in Lee Child’s Romanreihe. Ich lese z.z. recht viel im Zug auf dem Weg zu Arbeit und habe mir vor ein paar Monaten zufällig einen Band aus der Reihe im Bahnhof gekauft. Der war dann nach zwei Tagen ausgelesen und die restlichen elf Bände haben auch nicht besonders lange gehalten. Bis Band 13 “Gone Tomorrow” in den USA in den Handel kommt, kann man sich hier Band Sieben “Persuader”, kostenlos runterladen und mal reinlesen. Generell würde ich aber empfehlen, sie in der richtigen Reihenfolge zu lesen…