Computer – was tut er? //1601

Zur Abwechslung mal wieder drei kleine Computergeschichtchen.

Einer meiner Mitarbeiter schreibt derzeit an einer Windows-Anwendung, mit der bestimmte Daten ausgewertet werden sollen.
Als ich ihn auf seine Fortschritte ansprach, berichtete er mir von einem Problem. Und zwar geht es um ein Kontrollelement, das die Daten auf bestimmte Weise tabellarisch darstellen soll. Das funktioniert soweit auch recht schön.
Sobald aber der Anwender die Daten auf bestimmte, reproduzierbare Weise umsortieren will, zeigt das Kontrollelement nichts mehr an (bzw. erst wenn man händisch darin herum die Spaltenbreiten ändert).
Es handelt sich um ein reines Darstellungsproblem, denn im Debugger erkennt man, dass die Daten durchaus korrekt vorhanden sind, sie werden nur nicht angezeigt.
Das gehört zu diesen Fehlern, bei denen man selbst als erfahrener Entwickler denken würde: So etwas gibt’s nicht.
Gibt es doch. Ich singlesteppte einen Teil des Codes gemeinsam mit meinem Mitarbeiter, und es war exakt so, wie er es beschrieben hatte.
Wir probierten dann ein paar bewährte Methoden, um das Kontrollelement zu zwingen, sich neu zu zeichnen, aber alles ohne Erfolg.
Die Ursache des Problems könnte bei Windows direkt liegen, ich vermute aber, dass die Kapselung des Frameworks irgendwelche Messages nur unzureichend umgesetzt hat, bzw. die Implemplementierung nicht unterstützt.
Wenn nichts mehr nützt, dann muss ein Workaround her, und sei er auch noch so unelegant.
Wir machen also unter bestimmten Bedingungen das Kontrollelement komplett nieder und setzen es neu auf. Funktioniert bislang einwandfrei, und der Endnutzer muss ja nicht wissen, welche Brachialgorithmen dabei eingesetzt werden.

Ein anderer Mitarbeiter hatte bei einem anderen Programm beim Beenden Probleme mit Speicherlecks und Exceptions wegen Zugriffsverletzungen. Ich setzte mich über eine Stunde mit ihm hin, um seinen Code durchzugehen, fand aber auch nichts auffälliges, so dass ich ihn wieder sich selbst überlassen musste, da ich noch andere Tasks auf meiner Agenda hatte.
Er meldete sich dann am nächsten Tag, dass er den Fehler gefunden hätte. Beim Copy’n’Pasten einer ähnlichen Routine, die er nur an eine andere hatte anpassen wollen, hatte er übersehen, eine Variablendeklaration zu entfernen. So meldete ihm der Compiler nicht, dass das Objekt, auf das die Variable zeigte, gar nicht existierte. Es war nie erzeugt worden. Trotzdem gab es der alte Code frei, was das fehlerhafte Verhalten nach sich zog.

Bei meinen VMs kann ich den Vollbildmodus nicht ausstehen, vor allem, weil ich mir nicht merken kann, welches die Host-Taste ist.
Aber genauso, wie ich probeweise das Datumsformat auf „YMMD“ (man gewöhnt sich tatsächlich daran) gestellt habe, versuchte ich jetzt einmal, eine andere Hosttaste zu benutzen.
Da ich derzeit bei diesem Host eine englische Tastatur hängen hatte (fragt nicht, warum), konfigurierte ich Virtualbox, die rechte ALT-Taste als Host-Taste zu nehmen.
Nun ja – ich nutzte den Vollbildmodus trotzdem nicht, und bald darauf hatte ich auch wieder eine normale deutsche Tastatur.
Nun wollte ich von meiner VM aus auf einen Netzwerkshare zugreifen. Aber es ließ sich kein Backslash eingeben. Nach einigem Herumprobieren und Fluchen, fiel mir dann ein, dass \ ja ALT GR ß ist, und dass ALT RIGHT ja als Host-Taste eingestellt war.
Nachdem ich wieder CTRL RIGHT als Host-Taste konfiguriert hatte, klappte es auch wieder mit dem Backslash in der VM.

Advertisements

Über breakpoint AKA Anne Nühm

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

20 Antworten zu Computer – was tut er? //1601

  1. claudius2016 schreibt:

    „Implemplementierung“, nettes Wort….

    Gefällt mir

  2. Dieter schreibt:

    Das vermisse ich manchmal, Fehlersuche im Quellcode 🙂 besonders schön in fremden schlecht oder nicht dokumentierten.
    Da fallen mir ein paar schöne Erlebnisse ein, die sich gut auf meinem Blog machen würden.
    Ist doch immer wieder sehr anregend bei dir zu lesen.
    VG Dieter

    Gefällt mir

  3. Bombe 20 schreibt:

    Old-Sack-Splaining des Tages: Die Älteren unter uns erinnern sich noch, daß man AltGr fast immer durch Ctrl+Alt substituieren kann und ein ß notfalls auch per Alt-225 bekommt. Beides allerdings nicht in einer Linux-VM unter Win10, wie ich gerade feststelle.

    Verdammter Fortschritt! Als nächstes muß ich noch meine IBM Model M wegwerfen, weil man nicht mehr ohne Windowstasten auskommt. Dabei hat die noch keine 30 Jahre auf den Tastenkappen…

    (Tatsächlich ist es aber auch bei mir so, daß ich mir die Benutzung der rechten Ctrl-Taste fast vollkommen abgewöhnt habe, damit ich nicht immer nachdenken muß, ob ich gerade in einer VM bin oder nicht.)

    SCNR,
    B20

    Gefällt mir

  4. RAID schreibt:

    Das US-Tastaturlayout ist großartig! Endlich sind []{}\;/ mal an wirklich sinnvollen Stellen!

    Gefällt mir

  5. Plietsche Jung schreibt:

    Tastaturen und Codepages … immer wieder eine Falle wert.

    Gefällt mir

  6. ednong schreibt:

    Die rechte ALT-Taste – tsts. Das Ding heißt „ALT GR“.

    Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s