February 2012
2 posts
Feb 8th
4 notes
2 tags
Feb 7th
1 note
October 2011
1 post
7 tags
Oct 4th
13,539 notes
March 2011
1 post
Was wir eigentlich gemacht haben...
Wer sich die ganze Zeit fragt, was wir hier eigentlich tun, hier das Thema des letzten Sprints als Lyrik. Man singe es zur Melodie eines bekannten Songs von Deep Purple: We both came here for coding At the coast of Koserow Hacking some new features And refactoring where we go Our planning algorithm Is a tricky thing to rewrite But we are proud to announce that There are other goodies...
Mar 28th
February 2011
9 posts
Feb 11th
Stand der Dinge
Nach dem “Warmlaufen” (DB-Anpassung, …) am Wochenende haben wir für die erste Hälfte unsere Aufgaben gut 3 Tage benötigt. Gesten haben wir (nach einem erfrischenden Bad in der Ostsee) mit dem zweiten Teil begonnen. Also sind wir derzeit recht optimistisch, dass alles wie geplant fertig wird.
Feb 11th
WPF - Ein einziges Rätsel →
Feb 9th
Feb 8th
Feb 7th
Feb 6th
Kohlenhydrate
sind ja nun wirklich wichtig für uns Programmierer, weshalb wir gelegentlich mal eines der örtlichen Cafés aufsuchen. Aber irgendwie mache ich mir nun Gedanken über den Altersunterschied zwischen meinem Kollegen und mir. Ich habe nämlich gerade diese leckere Waffel verspeist: Und hier die Wahl meines Kollegen:
Feb 6th
Das Wetter
lässt sich fotografisch derzeit kaum dokumentieren, weil dabei Kamera und Mensch entschieden zu nass würden. Von der malerischen Schnee- und Eiswüste letzten Jahres ist leider nichts zu sehen. Dafür halt Dauerregen und Sturm. Vorteil (für unseren Arbeitgeber): wird trauen uns nicht raus. Und da wir die extra bestellten DVDs (IT Crowd, u.A.) leider im Büro liegengelassen haben, bleibt uns nichts...
Feb 5th
Feb 5th
January 2011
1 post
Es geht wieder los...
Wir stecken in den Vorbereitungen für einen weiteren “Inselcamp”-Einsatz. In einer Woche geht es los.
Jan 27th
November 2010
1 post
1 tag
Es geschah an einem Mittwoch...
Wenn man heutzutage eine neue Programmiersprache lernen will, ist in den meisten Fällen nicht die Sprache selbst das Problem, sondern die dazugehörigen Bibliotheken und Frameworks. Offenbar benötigte bei unserem Outsourcing Projekt einer der Entwickler den Dezimal-Separator. Entweder war nicht bekannt, dass das .NET Framework Klassen dazu bereitstellt, oder die Lösung wurde aus irgendeinem Grund...
Nov 2nd
June 2010
2 posts
1 tag
Genau das war mit unserem Programm passiert →
Wir haben die Nägel jetzt rausgezogen, wodurch es natürlich des öfteren in sich zusammensackt. Aber so langsam päppeln wir es wieder auf.
Jun 17th
Alles Sauber
Gestern Abend wurde der Raum, in dem wir seit 13 Wochen hausen, das erste Mal gereinigt. Ich bin zwar Programmierer, sehe aber trotzdem einen Unterschied :-) Ob sich das wohl im Velocity-Indicator im TFS niederschlägt?
Jun 9th
May 2010
1 post
Vor zwei Wochen sind wir von Subversion+Mantis nach TFS migriert. Das hat natürlich etwas Zeit gekostet, aber insgesamt ging es doch recht schnell und schmerzlos. Schnell allerdings auch, weil wir darauf verzichtet haben, die komplette Historie aus SVN zu übernehmen. Unser Vorteil jetzt: der TFS liefert ohne größeren Aufwand nette Statistiken und Grafiken, so dass man das Management damit gut...
May 17th
April 2010
2 posts
Aufräumarbeiten
Nachdem uns aus Zeitgründen nichts anderes übrig blieb, als den Großteil der dubiosen Fehlerbehandlungskonstrukte automatisch zu entfernen, gilt es nun, die Funktionen im Programm zu finden, die nur funktionierten, weil eigentliche Programmierfehler unter den Teppich gekehrt wurden. Hierzu haben wir (in Ermangelung automatisierter GUI-Tests) leider keine Möglichkeit zur Automatisierung. Will...
Apr 16th
2 tags
Und wieder mal Ausnahmen
Das Aufräumen der Try/Catch Blöcke ist wie schon erwähnt durch. An einer Stelle haben wir aber bisher sogar die “Old Style” Fehler-Nicht-Behandlung mittels On Error Resume Next dringelassen: in Dispose() Methoden. Der Grund, dass diese Anweisung dort benutzt wurde, ist, dass in unseren Fenstern viele Controls und Daten lazy - also erst wenn sie wirklich gebracht werden - initialisiert...
Apr 7th
March 2010
6 posts
3 tags
Oh, Du Sch... Sommerzeit
Der Wechsel zwischen Normal- auf Sommerzeit erinnert mich jedes mal an die Ärgernisse, das für die Softwareentwicklung mit sich bringt. Datumsfunktionen scheinen ja schon kompliziert genug zu sein - mit schöner Regelmäßigkeit wiederholen sich auch bei großen Herstellern immer die gleichen Bugs in echten Schaltjahren oder solchen, die entfernt danach aussehen. Ein Schaltjahr-Problem hatte unsere...
Mar 29th
Pasta
Hier mal ein Stück echter Quellcode aus dem Programm:     ''' <summary>     ''' Get PAVO Pasta     ''' </summary>     ''' <returns>ObservableCollection(Of ComboIntegerEntity)</returns>     ''' <remarks></remarks>     Public Function GetPAVOPasta() As ObservableCollection(Of ComboIntegerEntity)         Try             Dim listPavoPasta As New...
Mar 22nd
2 tags
Startup-Modus gegen Büro-Modus
In den ersten 1 1/2 Wochen haben wir in einem Ferienhaus einige hundert Kilometer vom Firmensitz entfernt gearbeitet. Jetzt sitzen wir in einem getrennten Büro in einem anderen Stockwerk des Bürohauses. Wie groß sind die Unterschiede in der Effektivität? Kurze Antwort: es kommt darauf an, um welche Tätigkeiten es sich handelt. Längere Antwort: Die Arbeitsweisen sind ziemlich unterschiedlich....
Mar 19th
1 tag
Ernüchternde Statistik
Das Programm ist gespickt mit überflüssigen bis gefährlichen, weil Ausnahmen verschluckenden, Try-Catch Statements. Praktisch alle mit Catch ex As Exception, so dass z.B. kein Unterschied zwischen Speicher voll und verschiedenen Formen von Programmierer hat Mist gebaut gemacht wird. Vor unserer Aktion gab es gut 11000 solcher Statements. Inzwischen sind es “nur” noch ca. 8000. Update...
Mar 17th
1 tag
Glasperlen der Programmierkunst
Diese Codezeile Dim isSave As Boolean = (_obj.RSave = "J") kann man auch so schreiben Dim isSave As Boolean = CBool(IIf(_obj.RSave = "J", True, False)) Wie man allerdings darauf kommen kann, das zu tun, erschließt sich mir nicht. Abgesehen von möglichen Performanceeinbußen empfinde ich es als Körperverletzung, solchen Code auch nur ansehen zu müssen (sollte ich eine Gefahrenzulage...
Mar 10th
Es geht weiter
Nach einer Woche Pause setzen wir das Projekt fort, allerdings in einem Büro etwas näher der Heimat.
Mar 9th
February 2010
32 posts
Wieder zuhause
Wir sind sicher, und trotz eines Staus recht schnell, wieder zuhause angekommen. Sehr seltsam hier: kein Schnee und +10°. Vielen Dank an alle, die diese Unternehmung logistisch oder sonstwie unterstützt haben!
Feb 27th
Geschafft!
Wir sind mit dem Ergebnis hochzufrieden. Fertig: Anpassungen an strukturelle Änderungen der Daten in Stammdaten, Logik, Druck. Stammdatenfenster für einige neue Hilfsdatentabellen. Migrationsskript direkt von der am häufigsten eingesetzten Version, unter Umgehung der Zwischenversionen. Skript zur optionalen Datenkonsolidierung. Diverse Performanceverbesserungen beim Datenbankzugriff. ...
Feb 26th
2 tags
Feb 26th
Die Antwort: Microsoft Visual Studio 2008. Ich hoffe doch, dass niemand an ein bestimmtes anderes Programm gedacht hat. Falls doch, Schande über Euch!
Feb 25th
Kleines Ratespiel
Was ist das: es ist ein Computerprogramm es läuft unter Windows es braucht ziemlich viel Speicher bei intensiver Benutzung steigt der Speicherverbrauch an, und das Programm wird langsamer irgendwann wird es dann unbenutzbar langsam, oder stürzt sogar ab Um welches Programm handelt es sich wohl?
Feb 25th
1 tag
Nebenbei das Problem gelöst, dass im Setup mal brauchbare Debug-Symbole enthalten waren, und mal nicht. Die Dateien mussten von Hand in ein bestimmtes Verzeichnis gelegt werden, bevor das Setup erstellt wurde! Dabei gibt es im Setup extra einen Menüeintrag, um die Debug-Symbole eines Projekts einzubeziehen. Das wurde jetzt korrigiert, so dass es ab jetzt immer Stack-Traces mit Zeilennummern geben...
Feb 24th
Man soll das Schicksal nicht herausfordern. Natürlich fing es kurz nach unserer Schneeschipp-Aktion an zu schneien. Bis jetzt hat es nicht wieder aufgehört…
Feb 24th
Feb 24th
Feb 23rd
2 tags
Die Rache des bösen ByRef
Eigentlich ist es ja ein nettes Feature, dass VB.NET (und C#), im Gegensatz zu Java, out Parameter erlaubt. Das kann den Code manchmal wirklich vereinfachen, z.B. wenn mehrere Werte zurückgegeben werden sollen (z.B. bei IDictionary.TryGetValue). Dummerweise hatte sich in der Anfangsphase der Entwicklung unserer Applikation (“damals”, so gegen Ende der 90’er) unter den VB6...
Feb 23rd
Tumblr vs. Posterous →
Feb 23rd
Programmierernahrung
So langsam kommen wir richtig in Fahrt, was sich unter anderem darin äußert, dass die mitgebrachten Süßigkeiten (danke, Ilka!) schnell zur Neige gehen. Was tun? Weitermachen bis der Blutzucker zu sehr abfällt, oder vorher zum nächsten Laden? Welch ein Dilemma…
Feb 22nd
Halbzeit
Nach 4 Tagen ist fast die Hälfte unserer Zeit um. Von den internen Änderungen an der Datenzugriffsschicht ist klar mehr als 50% fertig. Anpassungen an der Oberfläche haben wir noch nicht vorgenommen. Insgesamt ist also vorsichtiger Optimismus angesagt. Insgesamt arbeitet man hier deutlich produktiver und angenehmer als im Büro. Dafür aber auch länger ;-)
Feb 21st
2 tags
Feb 21st
1 tag
Bourne again
Inzwischen bin ich dazu übergegangen, einige Massenänderungen am Quellcode unserer Software mit UNIX Shell Skripten durchzuführen. Bei der Masse an Fenstern sehr praktisch (250 Geschäftslogik-Klassen in 1 Sek. geändert). Natürlich gibt es immer die Gefahr, dass das Skript nicht ganz das Richtige tut, aber wir Programmierer leben ja gerne gefährlich. Und außerdem werden die KundenTester die Fehler...
Feb 21st
1 tag
Oracle Features (not bugs)
Ab Oracle 11gR2 werden wir die alten exp und imp Befehle nicht mehr benutzen können. Aufgrund einer Optimierung werden leere Tabellen nicht mehr exportiert, und fehlen nach vollem export/import in der Datenbank. Klarerweise mag unsere Applikation das nicht sonderlich. Kein Problem, sagt Oracle: es gibt ja expdp und impdp - das sind seit Jahren die empfohlenen Tools und haben dieses Problem nicht.
Feb 20th
Der Application Server benötigte auch noch ein paar Anpassungen. Jetzt ist er zumindest soweit, dass das gute alte Benchmark-Skript wieder läuft.
Feb 20th
Ich hasse Events. Echt jetzt. Wer hat sich das ausgedacht? Warum kommen sie entweder, wenn man sie nicht gebrauchen kann, oder nicht, wenn man sie eigentlich erwartet? Und vor allem, warum kommt das Event plötzlich nicht mehr, obwohl ich nichts geändert habe?
Feb 20th
On Error Goto Work
Das Programm wurde im letzten Jahr von VB6 nach VB.NET portiert. Von Hand natürlich, da bei einem Projekt dieser Größe die automatische Migration völlig versagt. Zu den unangenehmeren, aber für die Qualität absolut nötigen, Änderungen an dem Programm gehört daher jetzt auch die Entfernung von VB6-ismen, wie die Verwendung der untypisierten Microsoft.VisualBasic.Collection und insbesondere...
Feb 19th
Nach viel Arbeit funktioniert jetzt auch der Druck im erwähnten Fenster. Es gibt lediglich noch ein kleines Performanceproblem (hüstel…)
Feb 19th
Fortschritt
Sieht ganz gut aus: ein beliebtes Fenster (PXXX) zeigt korrekte Daten; Neuanlage und Speichern funktionieren. Migrationsskripte sind ebenfalls schon recht weit.
Feb 19th
1 tag
Feb 19th
Feierabend
Das rumstochern in den SQL Statements, die unsere SW ach so dynamisch zusammenbastelt, ist reichlich zäh. Selbst wenn’s nur darum geht, simple Kundeninformationen anzuzeigen. Aber genug für heute - jetzt ist erst mal Feierabend.
Feb 18th
Datenbanken klar - Leinen los
Endlich haben wir ein paar Datenbanken auf die neuen Strukturen gebracht. War vielleicht etwas sportlich, gleich eine der größeren Kunden-Datenbanken zu benutzen, aber wir wollen ja mit realistischen Datenmengen arbeiten.
Feb 18th