Montag, September 11, 2006

new String(string) benutzen nur Anfänger?

Kann man sich in Java mit vielen 4 Zeichen langen Strings ein Speicherproblem schaffen?
Klar, wenn man ca. (Speichergröße in Byte / 4) Strings hat.

Weit gefehlt.
Es geht auch anders, wenn man nicht alles über Strings weiß.

Ein Beispiel, das uns ca. 3 Manntage Forschungsarbeit gekostet hat:
Man importiert eine mehrere GB große Datei Zeile für Zeile, parst die Zeilen in die Datenbank und merkt sich nur die 4 Zeichen langen Kennziffern der Zeilen, damit man doppelte Aktionen vermeiden kann.

Was gibt es da über Strings zu wissen? Und wo soll der Speicher verloren gehen, wenn man die Zeile nur innerhalb der Schleife kennt?

Ein String ist ein Objekt, das seinen Text als Auszug aus einem char[] speichert. Wenn man jetzt die ca. 2 KB langen Zeilen der Importdatei
mit substring() zerlegt, werden die Substrings nicht mit einem neuen char[] erzeugt, sondern zeigen auf den gleichen Array mit einem entsprechenden Offset. Eine super Idee, um Speichermüll zu vermeiden.
Aber wenn man - wie wir - einen der Substrings dauerhaft im Speicher hält (Map, etc.), behält man auch dauerhaft den dahinter hängenden char[]. Und das führt zu 2KB unnötigem Speicherverbrauch pro Zeile.

Die Lösung des Problems sieht dann aus wie Anfängercode:
String kennziffer = new String(zeile.substring(0,4));
Durch new String() wird tatsächlich auch ein neuer char[] für die 4 Zeichen erzeugt und schon hat man keine Probleme mehr.

new String(string) ist normalerweise vollkommen nutzlos, weil Strings unveränderlich sind, und sollte aus Speichergründen nicht verwendet werden. Aber wenn man große Strings mit substring() zerlegt, sollte man es in Erwägung ziehen.

rathergood B3ta Flash

Und heute mal ein paar musikalische Highlights aus den Flash-Schmieden von Rathergood und B3ta:

Hey hey 16k - Ode an die alten Homecomputer
We Like the Moon - mein Gutelaunelied (für die optimale Wirkung am besten drei mal laufen lassen)
Bukkake - mit diesem Lied im Ohr wird das Surfen auf Pornoseiten wenigstens erträglich
Sleepy Kittens - einer für den Morgen nach der Party

Mittwoch, August 30, 2006

Wir werden Weltmeister!

Hurra! Deutschland hat das Eröffnungsspiel der Fussball WM gewonnen! Also diesesmal der WM für Menschen mit Behinderungen.
Ich habe mich aber gewundert, warum da keine Lotsen auf dem Feld sind, die den Sehbehinderten sagen, wo's lang geht. Oder keine Leute mit künstlichen Beinen. Nein, das sind alles nur geistig behinderte. D.h. laut Heute hat keiner der Spieler einen IQ über 75.
Na, dann haben wir ja leichtes Spiel, wenn da Bundesligaspieler mitmachen dürfen...

Freitag, Juli 14, 2006

Die Wahrheit über George Bush

Nein, nicht wieder dieser dämliche Grabstein. Das hier ist investigativer Journalismus: Link

Mittwoch, Juli 12, 2006

Gibt es doch noch einen Gott?

Ich habe mir ja während der WM meine Kommentare verkniffen. Und dann haben auch noch die Italiener gewonnen.
Aber RTL hat mir gerade neue Hoffnung geschenkt.

Materazzi, der Spieler, der von Zidane im Endspiel umgeköpft wurde, hat ja ein paar Details über den Vorfall verlauten lassen:
Er habe Zidane zu Verteidigungszwecken festgehalten, woraufhin ihn Zidane "von oben herab" mit folgender Frechheit provoziert habe: "Wenn Du mein Trikot wirklich willst, bekommst Du es nachher." Ja, was erlaubt sich dieser Zidane eigentlich? Egal, jedenfalls hat ihn daraufhin Materazzi ganz cool mit ein paar Beleidigungen bedacht, wie man sie "ständig auf Fussballplätzen hört", aber nichts über islamistische Terroristen oder Mütter, oder so. Lippenleser denken da zwar anders, aber gut. Und vollkommen unverständlicherweise, ist Zidane dann der Kragen geplatzt und er ist vom Feld gestellt worden und hat keine Silbermedaille abbekommen.

Und jetzt kommt RTL: laut Artikel 55 der erst vor kurzem eingeführten FIFA Regeln wird bei rassistischen Äusserungen oder Vorkommnissen während eines Spieles, die sich eindeutig den Spielern einer Mannschaft zuordnen lassen, bei einem "nicht-Punktspiel" die betreffende Mannschaft disqualifiziert.

Und dann ist da noch die Geschichte mit den verschobenen Spielen. Da fordern italienische Politiker eine Amnestie, weil man ja die WM gewonnen hat. Der zuständige Sportminister winkt aber ab. Aber Moment - wieso überhaupt ein Sportminister? Entscheidet der darüber, wer demnächst in der Championsleague spielt? Hat die FIFA nicht gerade erst Griechenland rausgeschmissen, weil die ihre Gesetze nicht so ändern wollten, daß die Politiker der FIFA nicht reinreden können?

Also, Italien wird auf unbestimmte Zeit aus der FIFA ausgeschlossen und
der WM Titel wird noch mal ordentlich zwischen Deutschland und Frankreich ausgespielt. (Was uns leicht fallen dürfte, weil die halbe französische Mannschaft jetzt den Ruhestand genießt, Zidane ohnehin gesperrt ist und Jens Nowotny gar nicht daran denkt aufzuhören.)
Und Materazzi und der Rest der Baggage spielen demnächst in der dritten Liga.
Happy End.

Dienstag, Juli 04, 2006

Problembär versteht keinen Spaß

Da dachte ich schon, alles geht, wenn RTL jeden Freitag plumpe Ausländerwitze unters Volk bringt.
Und plötzlich verhindert eine einstweilige Verfügung, daß ich mein Lieblingssatiremagazin bestellen kann. Da fühlte sich nämlich der SPD-Oberjockel durch den Satz "
Problembär außer Rand und Band - Knallt die Bestie ab!
" persönlich angegriffen oder genauer zum Abschuss freigegeben. Dabei wollte die Titanic doch nur die Tragik des wilden, fehlerzogenen Bären mit dem Bild eines wohlgenährten, grandios verdienenden Gesichtsflaumträgers kontrapunktieren. Perlen vor die Säue.
Und als vollendeter Jurist vergißt man natürlich auch nicht ein Ordnungsgeld anzudrohen, weil das Cover danach noch im Internet zu sehen war.
Jetzt wird dort Robert Gernhardts gedacht. Das ist sowieso ein Ereignis mit höherem Nachrichtenwert.

Also Herr Beck, die Regierungsbilanz sieht ja nicht so überzeugend aus - und dann auch noch kein Humor? Immerhin hat er schon graue Haare, das heißt der Vorruhestand wird nicht mehr weit sein.

Donnerstag, Juni 29, 2006

Gedankenfraß

In den letzten Jahren lege ich vor dem Schlafengehen manchmal ein Hörspiel aus meiner Kindheit in meinen PDA. Das ist nicht immer entspannend, hilft aber um das Aggitationslevel auf ein schlafbares Niveau zu senken.
Und nachdem ich meine ??? Kassetten alle durch hatte, habe ich mich nach anderem Stoff umgesehen. Das nächstbeste waren die TKKG Kassetten. Die konnte ich damals schon nicht ausstehen, weil die Titelmelodie so unerträglich war. Das hat mich vermutlich vor großem Schaden bewahrt. Denn jetzt im Abstand von 20 Jahren wird mir schon fast physisch übel bei den bieder-reaktionären Ansichten, die in jeder Folge vermittelt werden.

Kinder von Verbrechern sind grundsätzlich Strolche und Klassenrüpel. Punker, Rocker, Vegetarier und anderes suspektes Pack, einfach jeder, der nicht normal ist, muss verhaftet werden. Das macht die Ermittlungen einfacher, weil man immer nur den auffälligsten Leuten nachspionieren muss, und schon erfährt man über irgendwelche kriminellen Machenschaften.
Und wenn man mit Scharfsinn nicht weiterkommt, lösen angedrohte Prügel jedes Problem.

Und der Faden der Indoktrinierung zieht sich sogar bis in halbwegs aktuelle Folgen. In der neuesten Folge, die ich gehört habe, gab es folgende Highlights:
  • Zum Thema Aborigines: "die reiten auf Känguruhs und werfen mit Boomerangs."
  • Beim Radfahren wurde telephoniert. Das wiederspricht geltendem Recht und wurde kurz thematisiert. Aber scheiss drauf. "Ich hatte ja den Verkehr im Blick."
  • Einem angetrunkenen Verdächtigen hat Bandenmitgleid Carsten die Brieftasche geklaut, weil man sonst den Namen und die Adresse nicht rausbekommen hätte.
Merke: ein Hobbydetektiv muss sich nicht an alle Gesetze halten. Nur Kapitaldelikte sind verboten - der Rest ist diskutabel.

Ich kann nur eindringlich vor diesen Machwerken warnen!