Archiv f¨r 2007

Dez
24

Allen, die heute und die nächsten Tage noch hier vorbei schneien (oder regnen):

weihnachten00013.gif
Ein frohes & gesegnetes Weihnachtsfest!
weihnachten00012.gif

Dez
19

thering.jpg

Ich arbeite gelegentlich für eine Firma, die vermutlich genau den Code geschrieben hat ;-)

Hoffentlich wird da nie Open Source draus.

Dez
19

Auszug aus der Betriebsanleitung für Software-Entwickler:

WARNHINWEIS:
Es ist unzulässig, Entwickler ohne eine ausreichende Menge an Kaffee in Betrieb zu nehmen. Sollte die Kaffeemenge im Entwickler unter den vorgeschriebenen Mindestpegel sinken so füllen Sie unverzüglich ausreichend Kaffee nach oder legen Sie den Entwickler unverzüglich still.

Das Betreiben eines Entwicklers ohne ausreichende Kaffeemenge kann zu schweren Schäden am Entwickler sowie dem von ihm geschriebenen Programmcode führen. Der Hersteller übernimmt keinerlei Haftung für derartige Schäden.

Nachdem wir in unserer Firma mehrere nicht wirklich Office-taugliche Kaffee-Automaten von Jura verschlissen haben (bei einer Bezugsmenge von um die 100 Tassen pro Tag kein Wunder) haben wir nun seit einigen Wochen ein neues Spielzeug: Einen richtigen Kaffeeautomaten, der (immer noch) kostenfrei nicht nur diverse Kaffee-Spielarten brüht, sondern auch diverse Kakao- und -Mischgetränke.

Mjamm-Mjamm :-)

Nov
27

entwicklerfrust.jpg

Mitunter hat man mal so richtig Lust, es diesem blöden Visual Studio zu zeigen. Aber da steht es wohl drüber ;)

Könnte aber auch daran liegen, dass wir in der Firma mit einer deutschen Version arbeiten – wobei alleine das oftmals schon die Pest ist.)

Nov
24

Ich sitze hier, am Samstag morgen, und hacke (nach längerer Zeit) diese Zeilen in mein Blog. Was daran jetzt so außergewöhnlich sein soll?

Ich sitze an meinem Laptop, auf dem Linux läuft :-)

Nein, ich werde jetzt nicht der Microsoft-Welt abschwören (zumindest nicht komplett), und auch statt “richtigem” .NET nur noch Mono machen. Die Geschichte geht so:
“Paradigmenwechsel” weiter lesen…

Nov
18

Auf der Couch vor der Fernseher? In einer Cocktailbar? Im Kino?

Falsch.

Freunden beim Verlegen von Laminat zu helfen, dass ist die wahre Samstag-Abend-Beschäftigung für Männer :-) Und wir haben eine ganze Menge geschafft, abgesehen von ein paar Scheuerleisten ist der neue Bodenbelag so gut wie fertig.

Okt
23

Der Rechner läuf und ist im Netz. Sicheres Zeichen, dass der Umzug allmählich beendet ist. Die alte Wohnung ist komplett leer, die neue Küche steht zur Hälfte und mehr als 70% der Kisten sind schon ausgepackt – der Rest kommt dann in die Küche, wenn sie fertig ist.

Ich geh jetzt schlafen – gute Nacht!

Okt
18

Letztens in einer Bewerbung:

Ich kann sehr gut im Team abreiten.

Dazu ist zu sagen, dass der Empfänger nicht im Erotikbereich tätig ist. :-)

Okt
16

Mitten im Umzugs- und Renovierungs-Stress nach langer Zeit nun wieder mal ein Artikel aus dem .NET-Bereich. Über das Thema bin ich heute bei der Arbeit gestolpert.

Hintergrund: Ich bastle gerade eine Multithreading-Anwendung, eigentlich eher eine Dualthread-Anwendung: Ein Thread für die eigentliche Arbeit, einer für die Benutzeroberfläche inklusive “Abbrechen”-Schaltfläche :-) Die Idee ist altbekannt: Der Workerthread läuft im Hintergrund und soll seine Arbeit abbrechen, wenn der User in der Oberfläche auf den entsprechenden Button klickt. Da die Teilergebnisse seiner Arbeit in meinem Fall bei einem Abbruch uninteressant sind kann der Thread also tatsächlich sofort aufhören zu arbeiten, wenn der User das will.
Die simpelste Möglichkeit, ohne irgendwelche Flags als synchronisierte Membervariablen o.ä. zu implementieren, ist ein Aufruf von Thread.Abort. Der Aufruf führt dazu, dass – sowohl im aufrufenden als auch im Workerthread – eine ThreadAbortException geworfen und der Thread (in der Regel) unverzüglich termniniert wird.

Die ThreadAbortException kann allerdings etwas lästig werden, sie ist nämlich nicht tot zu kriegen. Wie die MSDN dazu ausführt:

"ThreadAbortException is a special exception that can be caught, but it will automatically be raised again at the end of the catch block. "

.

Das kann zur Folge haben, dass die ThreadAbortException an mehreren Stellen in diversen Exception-Handlern hängen bleibt, und der Anwender z.B. in einer MessageBox darüber benachrichtigt wird. Folglich sind diverse Sonderbehandlungen notwendig.

Allerdings ergibt sich hier eine interessante Möglichkeit: Man kann die ThreadAbortException auch dazu benutzen, den WorkerThread davon zu benachrichtigen, dass er sich beenden soll. Möglich wird das, weil die Exception ja auch in ihm (also in seinem Thread) geworfen wird – und dort auch gefangen werden kann. So kann z.B. eine aufgerufene Methode sauber null zurückliefern. Wenn da nicht dass Problem wäre, dass die Exception immer erneut geworfen wird.

Abhilfe schafft hier die Methode Thread.ResetAbort . Diese bricht einen Abort-Request für einen Thread wieder ab, so dass dieser im Prinzip völlig desinteressiert weiterlaufen könnte – oder sich aber auch selbst beenden. In beiden Fällen verschwindet auch die ThreadAbortException wieder. Somit ließe sich ein "sauberer" Abbruch des WorkerThreads nach folgendem Muster realisieren:


class MainForm
{
  protected void btnCancelWorkerThread_Click(object sender, EventArgs e)
  {
    m_workerThread.Abort;
  }
}

class HeavyWorker
{
  public byte[] DoHeavyWork(string params)
  {
    try
    {
      return InternalHeavyWork(params);
    }
    catch (ThreadAbortExcpetion)
    {
      Thread.ResetAbort();
      return null;
    }
  }
}

Sep
04

September haben wir schon, stelle ich fest – und hier ist es immer noch verdammt ruhig. Man möge es mir nachsehen: Bei BlogFinanzen und auf dem 321Blog ist es nicht ganz so schlimm. Aber meine Freizeit ist momentan nicht wirklich größer geworden:

Projektdruck in der Firma, Umzug in eine neue Wohung Anfang Oktober – und zu allem Überfluss am nächste Woche noch zwei Wochen Urlaub in der Türkei, der zeitlich eigentlich gar nicht passt, aber was soll ich machen :-)

Also: Liebe Leser, liebes Blog – ich hab euch nicht vergessen.

Versprochen.

Aug
11

Gestern nach dem Fintness-Studio. Die Wege von mir und meiner Frau trennen sich, sie geht Richtung Fahrrad, ich Richtung Auto (ich bin nicht faul, ich fahre nur immer direkt nach der Arbeit zum Sport).

Sie: “Meine Güte, da sind wir heute ja mal vor 20:00 zu Hause!”

Ich: “Da kommt bestimmt noch was dazwischen…”

Was passiert: Ich fahre in die Tiefgarage. Vor mir am Park-/Bezahlautomaten steht bereits ein etwas unglücklich aussehender Mann. “Der Automat hat mein Geld gefressen – ich hab schon mehr ‘reingesteckt, als nötig.” “Ach was?”, sage ich. “Ja”, meint er, “aber Sie können ja gern Ihr Glück versuchen.” Was ich auch tat: Einen Euro sollte ich zahlen, einen Euro steckte ich in den Automaten, einen Euro verschluckte der.

“Ich hab auch schon seit fünf Minuten die Notruftaste am Automaten gedrückt, passiert aber nichts.”, sagt mein Mitgefangener. “Dann rufen Sie doch mal die Notrufnummer an, die da am Automaten steht!”, schlage ich vor. Mein Mitgefangener tut es. “Wir sollen zur Schranke vorfahren, hat er [der Notruf-Mann] vorgeschlagen, dann könnte er sie öffnen und uns ‘raus lassen. Ich hab aber gesagt, dass ich erst mein zuviel gezahltes Geld wiederbekommen will – ich schenke denen doch nichts, und wenn es nur ein Euro ist! Jedenfalls kommt demnächst wer.”

Wir warten. Einer der Security-Männer des Centers erscheint, grüßt und verschwindet wieder. Die haben also nichts mit der Tiefgarage und deren Problemen zu tun. War ja irgendwie klar, schließlich ist die Garage an einen Drittbetreiber verpachtet. Wir warten weiter. Andere Leute erscheinen, wollen bezahlen, suchen sich auf unser Anraten einen anderen Automaten und verlassen die Garage. Wir warten immer noch.

Nach fünfzehn Minuten ruft mein Mitgefangener nochmal beim Notruf an. Ergebnis: “Er ist irgendwo in Berlin, sein Kollege in Neustrelitz. Die können also nicht herkommen, sondern uns nur ‘raus lassen. Wenn wir demnächst hier sind und der Schalter in der Garage besetzt ist können wir uns nochmal nach unserem zu viel bezahlten Geld erkundigen.”

Also fuhren wir – notgedrungen – zur Schranke und verließen die Tiefgarage, nach dem die Notfallstelle diese geöffnet hatte. Für mich ja eigentlich kein Problem – ich hatte nur den geschuldeten, einen Euro bezahlt und lediglich Zeit verloren. Der nette andere Herr hatte jedoch schon zuviel bezahlt.

Und: Es ist ja auch davon auszugehen, dass noch weitere Leute versuchen werden, zu bezahlen, evtl. auch zu viel, und ihr Geld dann weg ist. Ohne, dass jemand kommt und sich darum kümmert. Geschweige denn den Automaten außer Betrieb setzt. Der Zweitautomat steht infrastrukturell betrachtet deutlich ungünstiger, dort bezahlt kaum jemand auf Anhieb.

Fazit: Irgendwie ist es keine gute Idee, eine Tiefgarage an einen Anbieter zu verpachten, dessen Notfallbereitschaft stundenlang entfernt sitzt.

Aug
06

Heute beim Quiztaxi. Zwei Frauen, Mutter und Tocher vermutlich, oder Tante und Nichte. Die eine um die 40, die andere etwa 16. Beide sehen für ihr alter ziemlich gut aus.

Frage: “Wie heißt die Krimibuchreihe, in der die vier Kinderdetektive Tim, Karl, Klößchen und Gabi die Hauptrolle spielen?”

Frau 1: “Ich glaub, das waren die Anfangsbuchstaben…”

Frau 2: “Aha.. Gabi, Tom… Karl… Hm…”

Die beiden nehmen einen Telefonjoker und rufen Leute an, die die Antwort auch nicht kennen. “Achso – Tim, Karl, Klößchen und Gabi?” – “Ja, genau!” – “Keene Ahnung…”

Als die Zeit um ist kommt die Rate-Antwort: “Tack?”

Falsch, wer hätte es gedacht. Wenn ich mich nicht irre steht die Frage im Quiztaxi doch immer auch nochmal auf den Monitoren im Sitz – oder man kann den Moderator/Fahrer fragen. Mein Gott!

Aber es kommt noch besser:

“Buchstabieren Sie das Wort PSEUDONYM”

Schweigen. Etwa 30 Sekunden. Dann eine gemurmelte Antwort von der älterin Beifahrerin: “In Deutsch war ich noch nie gut…”

“Sie haben ja noch einen Passantenjoker…”

“Ja – stimmt – den nehmen wir!” … “Hallo – kommen Sie mal alle her! Wir sitzen hier im Quiztaxi! Wie buchstabiert man PSEUDONYM?”

Schlimmer gehts ja wohl nicht mehr… “Hallo – wir sitzen hier im Quiztaxi! Wie buchstabiert man Wasser?”

Hilfe!

Jul
29

Mitunter stolpert man im Netz ganz zufällig über ziemlich gute Texte. Zweifellos einer davon: "Schrott – Bilder aus der Geschwindigkeitsfabrik" von Matthias Bickenbach und Michael Stolzke.

"Schrott" bietet "Eine fragmentarische Kulturgeschichte des Autounfalls" und geht dabei zurück bis zum Beginn der Automobilisierung Ende des 19. Jahrhunderts. Wer also gern einmal Texte liest – zumal lehrreiche -, die Themen abseits des Alltäglichen beleuchten, dem sei dieses Online-Buch empfohlen.

Jul
28

Das Fernsehprogramm wird immer schlechter, das ist kein Geheimnis. Deswegen lief gestern beim Abendbrot bei uns in Ermangelung anderer Alternativen die RTL-Show "Entern oder Kentern", die – zugegebener Maßen – vom Spielkonzept her nicht ganz unlustig ist. Erinnert halt ein wenig an "Takeshi’s Castle".

Wie auch immer: Plötzlich sah ich IHN, als Kapitän der gelben Mannschaft: Daniel Küblböck. Erinnert sich noch wer? Bestimmt: Das war die froschquäkige Nervensäge einer der vergangenen Staffeln von DSDS, der mit der dicken Brille und der Bombenleger-Matte auf dem Kopf. Ja, genau der, dem man es echt gegönnt hat, in den Gurkenlaster gefahren zu sein.

ABER: Gestern dachte ich, ich werd nicht mehr! Der Küblböck sah tatsächlich aus wie ein Mann! Und nicht mal wie ein häßlicher: Kurze Haare mit blonden Spitzen, keine Brille mehr, markante Gesichtszüge – unglaublich…

PS: Ich würd ja auch gern ein paar Vorher-Nachher-Bilder anbieten, aber ich bin da lieber ein bisschen vorsichtig… Thema Copyright und so.

Jul
26

Man stelle sich vor, man habe eine Menge, sagen wir 15, Dateien nach einen Begriff zu durchsuchen. Manuell, weil aus verschiedenen Gründen eine automatisierte Suche nicht möglich ist. Das Öffnen einer Datei dauert dabei gute 20 Sekunden. Also öffnet man die ersten drei Dateien, um festzustellen, dass der Begriff hier nicht enthalten ist. Dann die letzten drei, hier ist er natürlich auch nicht zu finden. Resignierend durchsucht man darauf von vorn angefangen alle verbleibenden Dateien.

Quizfrage: In welcher versteckt sich der Begriff?

Antwort: Richtig, in der viertletzten…

Jul
16

Nach der Trauung

Nun hat auch bei uns die "Kleinste Handschelle der Welt" endgültig zugeschnappt :-)

Update: Bei der Tanja"Tamara" gibt’s die ersten Fotos zu sehen: http://www.flickr.com/photos/86648985@N00/

Jul
07

Die Google Language Tools stecken, wie ich letztens feststellen konnte, im tiefsten Herzen voller Poesie:

Man nehme folgenden, knochentrocknen Satz aus einer wissenschaftlichen Abhandlung über Dokument-Formatierung:

A document to be formatted is a stream of text and symbols.

Übersetzt man diesen von Englisch nach Deutsch, so wird daraus:

Ein formatiert zu werden Dokument ist ein Strom des Textes und der Symbole.

Höret, höret! Wenn das nicht schon fast große Literatur ist! Zurück nach Englisch schmücken wir das ganze noch mit einer Metapher:

To be formatted a document is a river of the text and the symbols.

Und wenn es dann wieder gen Deutsch geht sind wir bei Meister Yoda angekommen:

Formatiert zu werden einem Dokument soll ein Fluß des Textes und der Symbole.

Das ist übrigens auch die letzte Stufe der Übersetzungsmöglichkeiten – von hier aus gelangt man wieder zur letzten Englischen Übersetzung.

PS: Nur noch 7 Tage bis zur Hochzeit…

Jun
21

Trotzdem ich ja momentan nicht wirklich viel schreibe läuft hier momentan eine (zumindest für die Verhältnisse meines Blogs) wahre Spamflut auf:

Etwa alle 2-3 Minuten ein Trackback-Spam.

Zum Glück bleiben die alle im Filter hängen, aber nervig ist das trotzdem… Deshalb habe ich mich dann mal an meinen Alten Tipp gehalten, den auch Robert bereits veröffentlicht hat. Per SQL-Statement habe ich die Kommentarfunktion für sämtliche alten Beiträge deaktiviert. Für all diejenigen, die es interessiert, hier noch einmal das Statement:

UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE post_date < 'yyyy-MM-dd'

Wobei 'yyyy-MM-dd' das Datum des ältesten, nicht mehr zu sperrenden Beitrags ist. Um also alle Beiträge vor 2007 zu sperren müsste dort '2007-01-01' stehen.

Jun
01

… wenn man so will lege ich momentan eine kleine, kreative Pause ein. Allerdings nicht nur so aus Spaß – auch Zeitmangel ist ein bisschen das Problem. Aber auch bei anderen Leuten wie Helmut oder Tom, bei denen es auch etwas ruhiger geworden ist. Allerdings sehe ich das bloggen eher als “kann” und nicht als “muss” – und keine Sorge, aufgeben werd ich es nicht so schnell :-)

Ein Hauptgrund für die längeren Pausen: Am 14.07.2007 werden Christina und ich uns in der katholischen Kirche St. Joseph, Werneuchen, das “Ja-Wort” geben. Die standesamtliche Prozedur haben wir schon – still und heimlich – am 06.12.2006 vollzogen. Und wer schon das eine oder andere Mal geheiratet hat, der weiß Bescheid: Gute Organisation frisst Zeit und gerade, wenn sich der Termin in den letzten Wochen davor rasend schnell nähert, fallen einem noch sooooooooo viele Kleinigkeiten ein – unglaublich.

Weiterhin blogge ich fleißig auf dem 321Blog über meine Abnehm-Erfolge, zusammen z.B. mit Oli, Matthias und Robert (obwohl der eher “zurückhaltend” ist :-) ).

Und als letztes nicht zu vergessen die berufliche Belastung. Die Arbeit macht zwar Spaß – nichts desto Trotz habe ich in letzter Zeit doch erhöhten Projektdruck. Und meine Entwicklungsabteilung wird mittelfristig auch noch wachsen.

Nun aber erstmal genug. Ich vergess euch nicht und werde spätestens ab Mitte Juli wieder “präsenter” sein. Zu der Zeit wird hoffentlich auch die geplante Blogrenovierung abgeschlossen sein.

Mai
10

Telerik bietet eine Suite von ziemlich schicken Controls für ASP.NET an. Dazu gibt es online natürlich auch Beispiele zu sehen. Unter anderem das Folgende:

Rad ComboBox

Das lustige daran: Hier soll so eine Art Online-Konfigurator für Autos nachgebildet werden. Die Datenquelle für die Auswahl des Händlers ist allerdings die gute, alte “Northwind”-Datenbank. So kann ich meinen neuen Golf dann in “Ottilies Käseladen” erwerben.

Allerdings scheint das Ganze nicht völlig realitätsfremd zu sein: Gegenüber meiner Firma ist ein Laden mit der Überschrift “D.G. Punjabi – Imbiss & Autohandel”. Das nenne ich doch mal “Cross-Selling” :-)

vBulletin statistics