Category Archives: Software Development

Softreferenzen gehen jederzeit

Softreferenzen (soft references) in Java sind eine tolle Sache, denn es lassen sich tolle Caches und Notfallszenarien damit bauen. Was kaum jemand weiß, dass Softreferenzen nicht nur im Falle von akuter Speicherknappheit freigegeben werden, sondern durchaus auch früher. Letzteres kann zu unerwarteten Nebenwirkungen führen, speziell mit Blick auf Caching.

Soft references are kept alive longer in the server virtual machine than in the client. The rate of clearing can be controlled with the command line option -XX:SoftRefLRUPolicyMSPerMB=<N>, which specifies the number of milliseconds a soft reference will be kept alive (once it is no longer strongly reachable) for each megabyte of free space in the heap.

The default value is 1000 ms per megabyte, which means that a soft reference will survive (after the last strong reference to the object has been collected) for 1 second for each megabyte of free space in the heap. Note that this is an approximate figure since soft references are cleared only during garbage collection, which may occur sporadically.

Quelle: JDK 6 Garbage Collection Tuning Guide

Nachtrag: Erwähnenswert ist auch dieser Blogeintrag von Jeremy Manson.

Testedby

Heute habe ich einen interessanten Ansatz für eine Verbesserung von JUnit gefunden – TestedBy.

In a nutshell TestedBy aims to change the point of view regarding test classes and classes under test. What we would obtain is to put class under test (the most important classes of your projects) on the centre and link from there your test class and test method.

Ist einen Blick wert, da es scheinbar erstmal das Management der Tests verbessert.

Poetische Programmierer

Eben haben wir bei der Durchsicht der HtmlUnit-Änderungen im Subversion den folgenden Checkin-Kommentar gefunden.

– I have a dream, few tests to pass
– To help me cope with any class
– If you see the wonder of a fairy tale
– You can take next version even if you fail

– I believe in Java
– Something good in everything I see
– But sometimes hot as Lava
– When I know the time is right for me
– Ill cross the steam – I have a dream

Da scheint jemand seine Berufung nicht gehört zu haben ;)

Ein Zitat zum Lieben

Es gibt Zitate, die sind so erschreckend wahr, dass man sie einfach nur lieben muss und ihnen 100% Recht gibt. Das hier stammt von Bruce Schneier aus dem Crypto-Gram 1999/09/15 und gefunden habe ich es via  KeePass.

As a cryptography and computer security expert, I have never understood the current fuss about the open source software movement. In the cryptography world, we consider open source necessary for good security; we have for decades. Public security is always more secure than proprietary security. It’s true for cryptographic algorithms, security protocols, and security source code. For us, open source isn’t just a business model; it’s smart engineering practice.

Korrekte Telefonnummern sind nicht falsch

Ich finde es immer wieder sehr nervig, wenn Programmierer einfach nicht mit Telefonnummern und ihren korrekten Ausprägungen umgehen können. +491727900000 ist nun mal eine 100% korrekte Nummer, aber die meisten Internetläden nehmen sowas nicht an und nerven mit Korrekturaufforderungen.

Bitte klicken Sie auf zurück und geben Sie eine korrekte Telefonnummer ohne Sonderzeichen ein.

Die Nullen sind von mir fürs Posting eingesetzt. Soll mich ja nicht jeder gleich anrufen.

UUID gefällig?

Wenn jemand mal Bedarf an UUIDs hat und gerade keinen Generator zur Hand hat bzw. etwas mehr über das Thema wissen will, dann ist www.uuidgenerator.com ein Anlaufpunkt, um sich zumindest einiger UUIDs zu bemächtigen.

A Universally Unique Identifier is an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of the Distributed Computing Environment (DCE). The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination.

Thus, anyone can create a UUID and use it to identify something with reasonable confidence that the identifier will never be unintentionally used by anyone for anything else. Information labelled with UUIDs can therefore be later combined into a single database without needing to resolve name conflicts.

(Wikipedia.com)

Docbook – der Beginn einer Liebe?

Wenn man Dokumentation schreiben muss, dann überlegt man sich zweimal, welches Format man nimmt. Na klar, am Ende ist es wohl fast immer ein PDF, aber ein PDF schreibt man nicht direkt.

MS Word? Hoher Frustrationsfaktor und man kann schlecht gemeinsam daran arbeiten, vor allem im Sinne einer Versionsverwaltung. Vom Ausschluss der Linux-Fans mal ganz schweigen.

OpenOffice? Schon besser, aber das mit der gemeinsamen Arbeit und der Versionverwaltung ist da noch nicht so perfekt, zudem quälen sich viele Leute mit Layoutfragen und weniger mit dem Inhalt. Das ist aber kein OO-Problem, sondern ein Verständnisproblem der Arbeit mit strukturierten Dokumenten. Ein visuelles Tool verführt einfach dazu, nicht über Struktur nachzudenken, sondern sich im Design zu verlieren.

LaTeX? TeX ist cool und produziert super Dokumente, wenn man es denn mal im Griff hat und eine gute Vorlage mit Paragrafen und Absätzen, die ausgezeichnet sind, sein eigen nennt. Pure LaTEX hilft nicht viel, weil alle wieder zum manuellen Formatieren neigen… auch wenn das Ergebnis super aussieht. Dafür lassen sich aber Dokumente sehr einfach gemeinsam schreiben und in einer Versionsverwaltung gut hinterlegen und pflegen.

Wenn man den Markt eine Weile studiert, dann findet man DocBook, quasi die konsequente Weiterführung der TeX-Idee mit den Mitteln von XML und XSL. Viele Linux-Projekte schreiben bereits ihre Dokumentation in DocBook.

Leider gibt es kaum vernünftige Editoren am Markt, die das Schreiben unterstützen und gleichzeitig etwas Luxus bieten, um zum Beispiel die Rechtschreibung zu prüfen. Ich als Programmierer mag auf jeden Fall schon mal das Format, die Klarheit und die Möglichkeiten, die sich durch XML/XSL ergeben. Gleichzeitig läuft die Sache auf allen Plattformen, da die Tools zur Produktion des finalen PDF in Java geschrieben sind.

Bin gespannt, ob DocBook eine große Liebe wird oder eine herbe Enttäuschung.

P.S. Nicht zu vergessen, dass O’Reilly DocBook als offizielles Anlieferungsformat für Bücher auserkoren hat. Ich wollte schon immer mal ein Buch schreiben.