Posts mit dem Label CrazyMadInsane werden angezeigt. Alle Posts anzeigen
Posts mit dem Label CrazyMadInsane werden angezeigt. Alle Posts anzeigen

2010-10-21

Memory Leak ...

Heute hatte ich einen Gedächtniseffekt der ganz besonderen Art:

Ein Kollege erzählte mir, er habe eine ClassCastException im PreferencesXMLConverter.
Muss man jetzt nicht unbedingt vestehen, wesentlich ist meine Reaktion darauf:

"Wie kann das, den Fehler habe ich doch neulich gefixt!"

Der Kollege weiter: "Der SystemIndependentJFrame kann nicht gecastet werden".

Meine Antwort: "Klar, der Cast auf FrameContainer ist weder richtig noch nötig.
Aber den hatte ich doch entfernt!".

Klare Erinnerung mit Ansage, also keinesfalls ein Deja-vu Effekt!
Ich kann mich genau erinnern, dass vor einer Weile ein Kollege kam und mir diesen
Fehler (den ein übrigens damals abwesender Kollege eingebaut hatte) gemeldet hat.
Ich hatte ihn dann (eben wegen der Abwesenheit des besagten Kollegen) gefixt.
Ich konnte mich genau erinnern, den Fehler erst kommentieren und dann meinem
Kollegen mailen zu wollen, ihn dann aber eben schnell selbst behoben zu haben.
Nichts mehr von gehört, alles Bingo. Musste so circa 1,5 Monate her sein.

Heute tritt der Fehler also wieder in Erscheinung, und ich wundere mich.
Naja, kann ja mal passieren, dass jemand ungeschickt einen alten Stand über
einen neueren in die Versionsverwaltung einspielt.

Also gehe ich auf die Suche nach meiner damaligen Korrektur. Und siehe: Weder
im Versionsverwaltungssystem, noch in unserer Fehlerdokumentation, noch auf meiner
PC-Festplatte (auf der ich eine eigene Versionsverwaltung zusätzlich einsetze) ist
irgendeine Spur der von mir durchgeführten Änderung zu finden.

Kann Erinnerung so dermaßen trügen???? Ich habe über zwei Stunden immer wieder
versucht, irgendwo (auch in älteren Versionen) eine Spur dieser Fehlerkorrektur
zu finden.
Aber noch viel schlimmer: Der Fehler selbst kann erst 14 Tage alt sein!
Alle älteren Stände haben den fehlerhaften Code noch gar nicht enthalten.

Ich müsste innerhalb der letzten 14 Tage sowohl die Entdeckung des Fehlers als
auch seine Korrektur geträumt haben, und das ziemlich realitätsgetreu.

Nach langem, langem Nachgrübeln habe ich mich entschieden, ganz wissenschaftlich
exakt vorzugehen, gemäß dem Motto meines scharfsinnigen Vorbildes Sherlock Holmes:
"Wenn man das Unmögliche abzieht, dann muss das, was übrig bleibt, die Lösung sein,
wenn es auch noch so unwahrscheinlich klingt" (Für Star Trek Kinogänger: Nein, der Spruch
stammt nicht von einem Vorfahren des Mr. Spock !)

Und so kam ich auf die einzige plausible Lösung:

Es handelt sich um ein Memory Leak.

Ein Leck in der Erinnerung. Nicht zu verwechseln mit einer Gedächtnislücke, eher im Gegenteil.

Das Leck in der Erinnerung funktioniert ähnlich einem Wurmloch. Es ist ein Bruch im
normalen Raum-Zeit-Kontinuum, der dafür sorgt, dass Gedächtnisinhalte (Memories)
zwischen zwei Paralleluniversen ausgetauscht werden.
In einem anderen Universum hatte ich den Fehler tatsächlich gefunden und behoben, und
diese Erinnerung schlüpfte nun durch das Leak in mein diesseitiges Hirn.

Ja, so muss es sein! Und da ich nun endlich die Erklärung hatte, konnte ich mich wieder
beruhigt meiner Arbeit zuwenden ...

2008-05-16

Jou ...

Abk. ist die Abk. für Abk.

2008-05-13

Freudscher Verprogrammierer

Du weißt, dass es zu heiß in deinem Büro ist, wenn du dich beim Tippen von folgendem Code ertappst:

import java.util.logging.*

private final static sLogger = Nogger.getNogger(...);

2008-04-08

Der Geek am Abend ...

Wann weisst du, dass du dich zuviel mit Computern beschäftigst?

Wenn du das Wort "Hubschrauber" liest und es für einen Kosenamen für den Netzwerktechniker hältst!

2008-02-15

Esoteric Programming Language: CopyNPaste

Well, there is just a good bunch of Esoteric Programming Languages on the market, some really serious (means: causing serious damage to your brain), some meant as a joke .

Sigh, would I have more time, I could contribute with an idea for a new one.

What makes modern PLs so successful? It is that they express common programming patterns and paradigms directly on the code level.
A good example is Scala, which incorporates e.g. the singleton pattern with the keyword 'object', or implicit getter/setter generation for a property (you find that in Groovy too).

And here is the new idea, here is one pattern which was never implemented on language level:
Copy and Paste.

Really, a such often used pattern, and no language designed for it ....

And it would be so easy!

Simply take a base language, say: Java.

There you could have a class with a method, say:


1 public class MyTest {
2 ...
3 public Collection doSomething(Collection input) {
4 Collection newcoll = new SomeCollectionType();
5 Iterator iter = input.iterator();
6 while (iter.hasNext()) {
7 Element elem = (Element) iter.next();
8 Object someNewElem = somethingReallyImpressingDoneWith( elem );
9 newcoll.add( someNewElem );
10 }
11 }
12 }


In Java, adding a new method which also iterates over its input, but does some other impressing stuff with the elements and does not return a collection would be very annoying. You would copy and paste the above method and change the parts which shall differ from the original version per hand.

But why doing it yourself if your computer can do it for you? So it would be much better to simply tell your computer what to do, and the best way is to make this an integral part of the language itsself.

So the job could be done very easy with CopyNPaste, a language based on Java, but with additional features:


1 public class MyTest {
2 ...
3 public Collection doSomething(Collection input) {
4 Collection newcoll = new SomeCollectionType();
5 Iterator iter = input.iterator();
6 while (iter.hasNext()) {
7 Element elem = (Element) iter.next();
8 Object someNewElem = somethingReallyImpressingDoneWith( elem );
9 newcoll.add( someNewElem );
10 }
11 }
12
13 paste:: copy(L:{3-11}) -> {
14 onLine(1): s/Collection/void/ s/doSomething/doSomeOtherThing/ ;
15 delLine(2);
16 delLine(6);
17 onLine(5): delChar({1-21}) ; s/thingReallyImpressing/OtherThing/ ;
18 }
19 }


It will indeed become more interesting if the second method will be used as template for a third one ...

The advantages are obvious: You have to think only once about the way the first method doSomething() shall work. Then you are free to concentrate on how the method doSomeOtherThing() differs from that method.
You are free to think in your copy and paste paradigm without leaving this context when doing the new coding.

Thinks can be so easy ...

2007-08-21

Freier Artikel



Dieser Artikel ist absichtlich frei und enthält lediglich Text der erklärt, dass dieser Artikel absichtlich frei ist und lediglich Text enthält, der dies erklärt und ansonsten leer wäre und wäre ansonsten leer

2007-03-20

DreamTimeException

Für Java-Kenner ...


[FATAL] Fatal system error: End of virtuality reached,
falling back to real world
StackTrace:
au.inhabit.DreamtimeExeption: Broken dreamtime
at Office
at 08:15
at Monday
aborigined by:
org.det.absent.VirtualityException
at org.det.Brain.dream() (Brain.human: 42)
at org.det.Me.awareness()(Me.human: 0)
caused by:
org.det.body.OutOfBrainException


2006-11-29

Abmahn-Bahn

Deutsche Bahn startet Abmahn-Lawine

Eine neue Welle von Abmahn-Schreiben erreichte im Laufe dieser Woche mehrere Tausend Betreiber von Webseiten, darunter insbesondere Blogger und Forenbetreiber, aber auch Flugunternehmen und Betreiber von Ratgeberseiten.

Die Abmahnung begründete sich auf die Tatsache, dass die Betreiber der angemahnten Seiten unrechtmäßig das Wort "Verspätung"® benutzt haben. Dieses Wort sei in allen Abwandlungen aber ein für die Deutsche Bahn registrierter und geschützter Begriff und dürfe daher ohne vorherige Genehmigung und kostenpflichtiger Nutzungslizenz nicht von anderer Seite verwendet werden.

Auf Druckware sei, egal in welchem Kontext, bei Verwendung des Wortes "Verspätung"® das Registrierungszeichen ® und eine Fußnote anzugeben, welche eindeutig den Zusammenhang zur Deutschen Bahn AG herstellt.

Insbesondere aber auch die Verwendung auf Webseiten ohne Angabe des Registrierungszeichens und direkter Verlinkung zu den entsprechenden Themenseiten der Deutschen Bahn sei unzulässig.

Webseitenbetreiber gaben daraufhin an, dass es auf den Webseiten der Deutschen Bahn AG ja gar keine Seiten zum Thema "Verspätung" gäbe, auf die verlinkt werden könne.
Als Antwort wiesen die Anwälte der Deutschen Bahn AG jedoch darauf hin, dass die Seite Uhren und Zeit der richtige Verlinkungsort wäre, da diese mit ihren Überschriften "Zeigersprung", "Reisezeit ist Nutzzeit" und dem Zusammenhang zwischen dem Wort "Verspätung" ® und der Aussage: "S-Bahnzüge, die nur innerhalb dieser Stunde unterwegs wären, fallen -unbemerkt- aus" eindeutig den Sachverhalt im Rahmen eines üblichen 24-Stunden-Arbeitstages beschreiben würden. Ausserdem sei diese Seite problemlos über die webseiteninterne Suche mit dem Begriff "Verspätung" zu finden.

Leider sei die Seite nicht ganz aktuell, das würde aber in Kürze korrigiert. So befände sich fälschlicherweise noch die Aussage: "In kaum einem anderen Lebensbereich kommt es so auf die Zeit an wie bei der Bahn. Die Züge müssen nach einem Fahrplan fahren, damit der Bahnbetrieb reibungslos durchgeführt werden kann" auf dieser Seite, welche ja nun wirklich überholt wäre. Auch die Überschrift "Genaue Uhr" sei nur aufgrund eines Versehens auf dieser Seite gelandet.

Bestürzt über das Abmahnschreiben zeigte sich vor allem der Betreiber der Internet-Enzyklopädie "Wikipedia", der nun eine Forderung von mehreren Millionen Euro auf sich zu kommen sieht, weil er es auf der Seite Wikipedia:Verspätung nicht nur versäumt hat, auf die Deutsche Bahn AG hinzuweisen, sondern auch noch in geschäftsschädigender Weise ein Bild eines deutschen Flughafens anstatt einer Bahnhofshalle verwendet hat.

Es gibt jedoch auch Bewunderer der Deutschen Bahn AG, die sich immer wieder fragen, wie sie das mit den Verspätungen® eigentlich in bisher ungekannter und ungeahnter Weise erreicht. Auch diese wurden auf o.a. Webseite verwiesen, denn der Satz "Das alles kann nur funktionieren, wenn es eine Konstante gibt, an die sich alle halten: die Uhrzeit." sei, richtig verstanden, die Antwort auf genau diese Frage.


Nachtrag: Dieser Text wurde im November 2006 verfasst. Aktuell (September 2007) hat Wikipedia auf die genannten Vorwürfe reagiert und auf ihrer Seite Wikipedia:Verspätung sowohl einen Link zur Deutschen Bahn sowie als Zeichen der Ironie zur Seite Wikipedia:Pünktlichkeit(Bahn) eingerichtet. Auch das Bild des Flughafens wurde gegen ein Foto der Standard-Zug-Verspätungsanzeigen ausgetauscht.

2006-08-17

Gewitter

Ich sitze hier in meinem Büro und schaue mir draussen das Gewitter an. Schon das X-te in diesem Sommer. Globale Klimaveränderung macht sich breit. Wo soll das bloss hinführen? Was wird aus uns werden? Was geht da eigentlich ab?

Wenn ich bedenke, dass ich gestern noch über die Evolution des Menschen und des Universums nachgedacht habe scheint mir, hier sind wir Back-To-The-Roots.

"Am Anfang gab es auf der Erde nur Ozeane und darin gelöste Kohlenwasserstoff-Moleküle. Ständig gab es überall Gewitter. Gewaltige Blitze entluden ihre Energie ins Meer".

Offensichtlich scheint sich erneut die gewaltige Kraft aus den Wolken über mir zu entladen. Nur das die Ursuppe eher draussen an meinem Fenster herunterläuft oder meine Klammotten durchfeuchtet.

Wenn das so weitergeht, können die Forscher bald wirklich das Entstehen neuen Lebens beobachten. Vielleicht sind ja Aminosäuren in meinen nassen Socken gerade dabei, sich zu urwüchsigen Lebewesen auszubilden. Gemütlicher Gedanke ...

Schon wieder ein Blitz. Mist. Wer weiss in welcher Kanalisation gerade Ratten zu bisher unbekannten Lebewesen mutieren.

Oh, gerade ruft die Realität an meinem Telefon an um mir zu sagen, ich soll den Rechner runterfahren, denn es könnte möglicherweise zu einem Stromausf

2005-06-03

Ich hack dich ...

Eine der besten Stories seit langem.
Wir im Kollegenkreis haben herzhaft gelacht ...

Ich hack dich ...