Ein Kollege entwickelt Software für den Infotainmentprozessor Jacinto von Texas Instruments. Er hat eine sehr tiefe und sonore Stimme und ist bekannt und gefürchtet für seine stundenlangen Monologe am Telefon. Außerdem streut er mehr "ähs" uns "mmmhs" ein als Worte mit Inhalt.
Er telefoniert mit einem Kollegen und diskutiert über unterschiedliche Gründe, warum der Prozessor aus dem Ruhezustand aufwachen kann. Also über Wakeup-Reasons. Nach gefühlten drei Stunden Telefongespräch träume ich von einem kleinen, verwegenen Helden: Jacinto. Er kämpft sich durch den Wald der gefürchteten Wakeupriesen um die holde Prinzessin zu retten. Dabei trennt er dem größten und lautesten Riesen, also dem mit der tiefen Stimme, mit seinem Zauberschwert die Stimmbänder durch. Himmlisch diese Ruhe. Leider nur ein Traum….
Der gute Programmierer kommentiert seinen Code in Englisch. Das gilt auch für Variablennamen, Funktionen und Steuerelemente. Ob der Kollege bei der Benennung der Textbox an Whitesnake oder an Snake Plissken gedacht hat ist nicht klar:
((CFunnyApp*)AfxGetApp())->m_pDlg->SetTextBox(strCount,"WAITSNAKE");
Einer unserer Geschäftsführer weilt in Israel. Er hat Urlaub. Es gibt ein größeres Problem und er hat ausdrücklich darum gebeten in solch einem Fall informiert zu werden. Mein Kollege ruft ihn an und begrüßt ihn mit den Worten:
"Schalömchen Hans-Dieter"
In eine Datei mit Kalibrierwerten wird ein Zeitstempel geschrieben. Beim Starten der SW wird der Zeitstempel ausgelesen. Ist er älter wie 48 Stunden soll neu kalibriert werden. Auf dem Testsystem, einem deutschen Windows 7 tat es der folgende Code:
DateTime.ParseExact(strDatCalibrate,"dd.MM.yyyy_hh:mm", CultureInfo.CurrentCulture);
Bei anderen Sprachen/Regionen bzw. anders eingestelltem Datumsformat krachte es, da kein gültiger Datumsstring vorliegt. Die Lösung bringen hier die in der System.Globalization.CultureInfo definierten Patterns:
DateTime.TryParseExact(strDatCalibrate,
string.Format("{0:s}_{1:s}",
CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern,
CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern),
CultureInfo.CurrentCulture,
DateTimeStyles.None,
out dt));