# Thursday, April 23, 2009

Die lustigsten Kommentare

Gerade fand ich auf The Moth einen Link zu den lustigsten Kommentaren im Source, ausgetragen von stackoverflow.com. Wirklich sehr lesenswert.

Thursday, April 23, 2009 6:59:00 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Wednesday, April 22, 2009

GarbageCollection mit halbinstanziierten Objekten

Im Buch Framework Design Guidelines bin ich auf einen interessanten Aspekt gestoßen, der bei der Implementierung von Kon- und Destruktoren beachtet werden muss. Man stelle sich folgende Szenario vor: In einem Konstruktor wird durch einen falschen oder fehlerhaften Parameter ein Zustand erreicht, der es erfordert, eine Exception zu werfen. Dies wird nun getan. Der Aufrufer behandelt nun die Exception. Allerdings ist das Objekt zu diesem Zeitpunkt bereits instanziiert, wenn auch nicht zwangsläufig vollständig initialisiert. Der Initialisierungszustand hängt hier von der Stelle im Konstruktor ab, in dem die Exception geworfen wurde.

Interessant an diesem Szenario ist nun, dass das instanziierte Objekt ja auch durch den Garbage Collector freigegeben wird. Es wird also die Finalize-Methode und die Dispose-Methode mit false aufgerufen. Bei der Implementierung dieser Zweige sollte man daher im Hinterkopf haben, dass sich unter Umständen das freizugebende Objekt in einem undefinierten Zustand befindet.

Eigentlich ist dies ein Sachverhalt, der bei genauer Betrachtung vollkommen logisch ist. Allerdings muss man sich dessen erst einmal bewusst sein.

Wednesday, April 22, 2009 7:52:00 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback

Stromspartricks Dell Latitude D830

Beruflich nutze ich ein Dell Latitude D830. Über Dells QuickSet-Software ist es möglich, die Option zu aktivieren, bei abgezogenem Netzgerät und abgezogenem Netzwerkkabel die interne Netzwerkkarte abzuschalten, um Strom zu sparen. Diese Option war bis heute auf meinem Laptop aktiviert.

Gestern war ich bei einem Kundentermin und habe dort meinen Laptop in oben beschriebener Weise verwendet. Als ich nun heute morgen den Rechner auf dem Schreibtisch wieder an die Peripherie angeschlossen hatte und die Mails des vergangenen Tages lesen wollte, stellte ich fest, dass ich keine Netzwerkverbindung hatte. Nach einiger Suche stellte sich heraus, dass eben die interne Netzwerkkarte abgeschaltet war. Leider gibt es keinen Button, um sie wieder zum Leben zu erwecken. Aus das Anschließen der für diesen Zustand verantwortlichen Peripherie in jeglicher Reihenfolge brachte keine Besserung. Beheben ließ sich das Problem nur durch die Deinstallation und anschließende Neuinstallation der Netzwerkkarte im DeviceManager. Im Anschluss an diese Prozedur empfiehlt es sich, die Stromsparfunktion abzuschalten.

Wednesday, April 22, 2009 7:20:00 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Tuesday, April 14, 2009

Ist die Welt noch zu retten?

Manchmal frage ich mich tatsächlich, ob die Welt wirklich so ist, wie man es lesen oder sehen kann. Irgendwas in mir weigert sich immer, dies zu glauben. Aber es scheint etwas wahres daran zu sein.

Boston College Campus Police: "Using Prompt Commands" May Be a Sign of Criminal Activity

Tuesday, April 14, 2009 11:04:22 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Tuesday, April 07, 2009

Sprachumstellung der System.Windows.Forms.FileDialog-Erben

Gestern trat ein Kollege mit einer interessanten Frage an mich heran. Er hatte folgendes Problem: Die Standardsprache (invariant culture) einer Anwendung ist deutsch. Diese Anwendung soll auf einem englischen Betriebssystem laufen. Wird ein Erbe der FileDialog-Klasse aufgerufen (OpenFileDialog etc.), erscheint dieser in englisch. Wie können diese Dialoge auch lokalisiert werden?
Mein erster Gedanke war, dass dies ohne weiteres nicht möglih sei, da die Dialoge nicht .NET-spezifisch, sondern betriebssystemspezifisch seien. Bei genauerer Recherche wurde aber klar, dass dies nicht der Fall ist. Wenn man über die Eigenschaft CurrentUICulture der Thread-Klasse die Sprache auch für die graphische Overfläche festlegt, werden auch die FileDialoge lokalisiert.

Mir ist dieses Problem bisher nie untergekommen, da ich Lokalisierung noch nie in dieser Richtung betrieben habe. Meine Anwendungen wurden in andere Sprachen übersetzt. Und für diesen Fall verwenden wir eine Sprachauswahlkomponente, die die entsprechenden Einstellungen zum Wechsel der Kultur selbstständig vornimmt. Bekannt war mir diese Eigenschaft, aber die genaue Bedeutung tatsächlich unklar. Mal wieder ein Tag, an dem man etwas über eine Eigenschaft lernt, die man schon ewig kennt :)

Tuesday, April 07, 2009 10:17:42 PM (W. Europe Daylight Time, UTC+02:00) #  Comments [0] | Trackback
# Friday, March 27, 2009

Persönliche Erfahrungen mit RFID

Dienstag bin ich von einer Inbetriebnahme aus einem ehemaligen Ostblockland zurückgekehrt. Dort wurde eine Lebensmittelanlage mit RFID-Technik ausgestattet. Die von meiner Firma beigesteuerte Software übernimmt dabei die Sammlung und Auswertung der anfallenden Daten. Ziel ist es, die Abläufe innerhalb der Anlage zu optimieren. Die Lebensmittel werden mit Formen hergestellt. Es gibt für unterschiedliche Produkte unterschiedliche Formen. Diese unterschiedlichen Formen können unterschiedlich schnell verschmutzen. Mit Hilfe der RFID-Technik soll nun zum einen ermittelt werden, wie lange es für einen bestimmten Typ Form dauert, bis er soweit verschmutzt ist, dass keine einwandfreien Produkte mehr gefertigt werden können und die Form somit gereinigt werden muss, und zum anderen, wie viele Umläufe eine Form bereits hinter sich hat und somit eventuell gereinigt werden muss. In diesem Fall würde die Form dann automatisch aus der Anlage ausgehoben. Bisher sah ich bei dem ganzen Projekt nichts verwerfliches, geht es doch um die Optimierung von Produktionsabläufen.

Als ich aber nun vor Ort war, kamen mir doch einige Zweifel. Die eigentliche Steuerung der Anlage wird von einer SPS durchgeführt. Die SPS führt intern ein Errorlog, in dem verzeichnet ist, wann eine Störung aufgetreten ist und wann der Anlagebediener sie quittiert hat. Auch daran allein kann nichts Verwerfliches festgestellt werden.

Problematisch wird es allerdings, wenn man die Daten der beiden Systeme kumuliert. Dann kann man nämlich sehen, wann wie schnell produziert wurde und ob in den Fällen, in denen langsam oder gar nicht produziert wurde, eine Störung der Anlage vorlag. Die Anlagebediener sind also unter ständiger Überwachung.

Ich möchte nun allerdings nicht den Eindruck erwecken, dass ich einem Unternehmen untersagen möchte, darauf zu achten, dass die eigenen Mitarbeiter nicht den ganzen Tag auf der faulen Haut liegen. Aber ich stehe der Möglichkeit skeptisch gegenüber, dass der Arbeitgeber jede nicht produzierte Sekunde erkennen kann. Zieht man nun noch in Betracht, dass es in den meisten Ländern des ehemaligen Ostblocks mit dem Kündigungsschutz nicht so weit her ist, wird es nicht unbedingt besser. Allerdings scheinst es mir in diesen Regionen doch auch sehr unwahrscheinlich, einen Angestellten zu finden, der diese Kumulation der Daten vornehmen kann, da dort bereits eine Fortbildung eines Mitarbeiters zum Thema SQL-Abfragen ein Unding ist.

Friday, March 27, 2009 9:27:23 PM (W. Europe Standard Time, UTC+01:00) #  Comments [0] | Trackback
# Tuesday, February 17, 2009

Und noch ein bisschen creative commons stuff

Dies mal visuell, nicht akustisch - Responsible Behavior von xkcd, veröffentlicht unter cc-by-nc



@Christoph: Danke für den netten, kleinen und überhaupt nicht prominenten Hinweis auf xkcd auf deiner Homepage.
Tuesday, February 17, 2009 11:34:17 PM (W. Europe Standard Time, UTC+01:00) #  Comments [0] | Trackback

"Open Source"-Musik

Das sich der Gedanke "Open Source" nicht nur in der Welt der Software verbreitet, war eigentlich schon relativ früh klar. Was allerdings die meisten nicht wissen, ist, dass es auch "Open Source"-Musik gibt. Wobei hier der Begriff "Open Source" nicht wortwörtlich zu nehmen ist. Vielmehr handelt es sich um Musik, die unter einer der Creative-Commons-Lizenzen veröffentlicht wurde. Darunter versteht man verschiedene allgemeingültige  Lizenzen, die bereits einen Großteil der Lizenzwünsche von Erstellern freier Ware abdecken. Dieser Blog hier zum Beispiel ist unter der Creative Commons Attribution Non-Commercial Share Alike Lizenz veröffentlicht. Und so, wie es viele Software-Entwickler mit ihrem Code praktizieren, machen es nun auch immer mehr Musiker. Darauf gestoßen bin ich durch einen Freund, der eine Creative-Commons-Party in einer Kneipe in der Stadt veranstaltet hat. Eine entsprechende Ankündigung gab es auch hier im Blog. Dort gab es den ganzen Abend freie Musik, ausgesucht und "aufgelegt" durch einen CC-DJ. Wer mochte, konnte sich die Musik des Abends direkt auf USB-Stick mit nach Hause nehmen oder auch dem Live-Stream im Internet folgen. Um mein so gewecktes Interesse zu befriedigen, begab ich mich auch umgehend auf die Suche nach dieser CC-Musikszene im Netz. Auch wenn es dort noch nicht von freier Musik wimmelt, so kann man doch bereits einiges entdecken. Ein paar Anlaufpunkte möchte ich euch daher hier geben, wobei der Schwerpunkt auf elektronischer Musik liegt.

Tuesday, February 17, 2009 10:08:06 PM (W. Europe Standard Time, UTC+01:00) #  Comments [2] | Trackback
# Tuesday, February 10, 2009

G1

Google bringt auch ein Handy auf den Markt. Und falls ihr noch nicht wisst, was ich davon halte, dann schaut euch mal den Zeit-Artikel über das G1 an.

Wo wir gerade beim Thema sind. Gibt es für ASP.NET ein brauchbares OpenSource-Pendant zu Google Analytics?

Tuesday, February 10, 2009 9:39:44 PM (W. Europe Standard Time, UTC+01:00) #  Comments [0] | Trackback
# Saturday, January 31, 2009

Nintendo Wii

Ich schaue gerade aus dem Fenster und sehe das hell erleuchtete Wohnzimmerfenster unserer Nachbarn (kann man da auch zweiten Grades sagen?), welches ca 50 Meter entfernt ist. Das ist ein großes Fenster vom Boden bis fast zur Decke, und recht breit ist es auch, man kann also einen Menschen komplett sehen. Und die, die ich dort sehe, tun sehr seltsame Dinge. Sie laufen durch das Zimmer und werfen ihren Arm nach vorn. Aber nach zwei Sekunden dämmert mir, dass sie wohl eine Wii haben.

Was würden Menschen denken, die die Wii nicht kennen???

Saturday, January 31, 2009 10:22:46 PM (W. Europe Standard Time, UTC+01:00) #  Comments [1] | Trackback