Windows PowerShell

Programmierung Keine Kommentare »

Um mittels NaturalDocs automatisch eine Dokumentation zu erstellen, muss auf der Kommandozeile eine ganze Latte an Argumenten übergeben werden: Das Verzeichnis, in dem der zu dokumentierende Quelltext steht, das Ausgabeverzeichnis für die Doku und ein Verzeichnis für die Konfiguration. Praktisch sieht ein Aufruf von NaturalDocs bei mir ungefähr so aus:

F:\Software\NaturalDoc\NaturalDocs.bat -i c:\xampp\htdocs\meinProjekt -o HTML c:\xampp\htdocs\meinProjekt\_dokumentation\output -p c:\xampp\htdocs\meinProjekt\_dokumentation\config -cs UTF-8

So einen Aufruf automatisiert man doch. Also mal schnell eine kleine .bat-Datei geschrieben - und dabei festgestellt, dass ich a) die Syntax gar nicht mehr drauf habe (unter DOS habe ich regelmäßig Batch-Dateien geschrieben) und b) die guten alten .bat-Dateien sowas von beschränkt sind…

Daher habe ich mir die Windows PowerShell 1.0 herunter geladen. Startet man die PowerShell, sieht sie auf den ersten Blick genau so aus, wie die gute alte cmd.exe in blau. Aber davon darf man sich nicht täuschen lassen - das Teil ist mächtig. Richtig mächtig.

Die integrierte Skriptsprache hat erstmal alle Basics an Bord - arithmetische Operationen, reguläre Ausdrücke, Schleifen, Fallunterscheidungen, … Wem das nicht reicht, kann immer noch analog zu WSH-Skripten sämtliche COM- und ActiveX-Objekte nutzen. Und wenn man dort an die Grenzen stößt - es stehen auch alle Klassen und Funktionen des .NET-Frameworks zur Verfügung. Es dürfte sich eigentlich keine Automatisierung finden, die nicht mittels Windows PowerShell gelöst werden könnte.

Ich werde mich jedenfalls mal so richtig intensiv mit der Shell beschäftigen. Ergebnisse hier ;)

Quellcode dokumentieren mit NaturalDocs

Programmierung Keine Kommentare »

Heute habe ich mich mal auf die Suche nach einem Software-Dokumentationswerkzeug gemacht, das aus Quellcodekommentaren automatisch eine Dokumentation erstellt. Da ich verschiedene Sprachen zum Entwickeln verwende (angefangen beim guten alten PHP bis hin zu den ersten Gehversuchen in C#) wäre ein Tool, das verschiedene Programmiersprachen unterstützt, sehr willkommen.

Gefunden habe ich zwei Kandidaten: Doxygen und Natural Docs. Hängen geblieben bin ich bei Natural Docs, das auf die sonst üblichen, von JavaDoc bekannten Dokumentationsdirektiven (@author etc) verzichtet und eher auf “natürliche” Sprache setzt:

  1. /*
  2.    Function: Multiply
  3.  
  4.    Multiplies two integers.
  5.  
  6.    Parameters:
  7.  
  8.       x - The first integer.
  9.       y - The second integer.
  10.  
  11.    Returns:
  12.  
  13.       The two integers multiplied together.
  14.  
  15.    See Also:
  16.  
  17.       <Divide>
  18. */
  19. int Multiply (int x, int y)
  20.    {  return x * y;  };

Mal schauen, wie es sich in der Praxis schlägt :)

Mobilitätsgarantie

Leben Keine Kommentare »

Seit dem 1. Januar 2009 bietet der Karlsruher Verkehrsverbund (KVV) eine “freiwillige Mobilitätsgarantie” an, die bei genauerer Betrachtung eigentlich ein (schlechter) Witz ist:

  • Sie gilt nur im Karlsruher Stadtgebiet
  • Sie gilt erst ab einer Verspätung von 20 Minuten
  • Sie gilt nicht bei “Verzögerungen, die beispielsweise durch Falschparker, Unfälle, Streiks, Unwetter oder andere von den VBK nicht beeinflussbare Ereignisse verursacht werden
  • Sie wird nur nach Einsendung oder Abgabe eines Garantieschecks spätestens 14 Tage nach dem “Vorfall” gewährt

Heute wurde meine Bahn ab dem Durlacher Tor über den Betriebshof umgeleitet. Nähere Informationen gab es nicht, aber ich vermute einfach mal, dass auf der Strecke zwischen Durlacher Tor und Tullastraße eine andere Bahn mal wieder einen Schuss gebaut hat - was dann ein Unfall wäre, der nicht von der Garantie abgedeckt wäre.

Trotzdem habe ich mir das Formular herunter geladen, ausgefüllt und werde es morgen im Kundenzentrum am Europaplatz abgeben. Mal schauen, ob sich die Verkehrsbetriebe herablassen, mir 5 € zu überweisen oder die Schuld von sich schieben.

(Witziges Detail am Rande: Eigentlich muss man die verwendete Fahrkarte als Original oder Kopie befügen; bei Abo-Inhabern reicht gnädigerweise auch die Abo-Nummer. Leider ist die einzige Nummer auf meiner Jahres-Abo-Karte zwei Ziffern länger als das vorgesehene Feld und enthält keinen Bindestrich. Ich kann mir gut vorstellen, dass deswegen die Zahlung verweigert wird - vielleicht darf ich ja sogar 60 € zahlen, da ich ohne gültigen Fahrausweis unterwegs war? Zuzutrauen wäre es dem KVV…)

Sparen im Gesundheitswesen

Leben Keine Kommentare »

Am Montag war ich beim Arzt - zunächst beim Dermatologen, der mich dann aber an einen HNO-Arzt “weitergegeben” hat. Dort im Behandlungszimmer war ich mir ziemlich sicher auf einem der Schränke - neben offensichtlich medizinischen Instrumenten - ein Päckchen OCB (das Zigarettenpapier) gesehen zu haben. Leider stand ein kleines Fläschen davor, so dass ich es nicht genau sehen konnte und umräumen, nur um meine Neugierde zu befriedigen, wollte ich dann auch nicht.

Heute war ich nochmal dort zur Kontrolle - in einem anderen Behandlungszimmer. Und hier sah ich ganz eindeutig ein ein Päckchen OCB liegen. Die Frage am Schluss konnte ich mir dann nicht verkneifen - wozu braucht man in einer Arztpraxis Zigarettenpapierchen?

Die Ärztin sah mich dann einen kleinen Moment verwirrt an, um mir dann zu erklären: Wird das Trommelfell behandelt, wird auch einfach ein bisschen von dem Papier drauf gelegt - dabei gibt es keine Abstoßungsreaktion und es hilft.

Ich finde das einfach klasse. Wenn die absolut gleichen Blättchen von einem Pharmakonzern kämen, würden sie wahrscheinlich mindestens 5 € / Stück kosten. So lange es hilft - warum nicht eine pragmatische Lösung nutzen?

(In die gleiche Kerbe schlagend und einfach pragmatisch war der Tipp mit der Alkoholtherapie meiner Entzündung - einfach einen billigen Cognac auf ein Geschirrhandtuch und drauf. Einfach, wirksam, gut)

Besser nicht 1. Klasse fahren

Leben Keine Kommentare »

Gestern die Durchsage im ICE von Karlsruhe nach Frankfurt:

Passengers in the first class will become snacks and drinks directly at their seat.

Böses Foul.

Rote Armee Fraktion

Bücher Keine Kommentare »

Am 25. September lief in den Kinos Der Baader-Meinhof-Komplex an. Wie für viele Menschen übt die Geschichte der RAF eine gewisse Faszination auf mich aus - ohne dass ich sagen könnte, warum.

Ursprung, Gründung und die Eskalation im Deutschen Herbst 1977 waren vor meiner Zeit. Bestenfalls die dritte Generation ist mir halbwegs bewusst im Gedächtnis. Fahndungsplakate an der örtlichen Postfiliale - ja, daran kann ich mich dunkel erinnern. Die Anschläge auf Herrhausen und Rohwedder habe ich ungefähr im Gedächtnis, wie sie abends in der Tagesschau liefen - ohne dass es mich jedoch wirklich sonderlich betroffen hätte. Der Einsatz in Bad Kleinen war für mich (als 12jährigen) so ein erster “Bruch” mit meinem kindlichen Glauben an die Polizei - wie konnten die nur so dämlich sein und mit zig Polizisten nicht einmal zwei Leute ordentlich festnehmen können? (Übrigens denke ich heute kaum anders - fast 100 Beamer von Polizei, MEK und GSG 9 sollen zwei Terroristen festnehmen - das Ergbnis ist bekannt. Das ist wahrlich kein Ruhmesfleck der deutschen Polizei.)

Trotzdem - wie konnte eine stets verhältnismäßig kleine Gruppe die Bundesrepublik Deutschland in Atem halten? Was war geschehen, dass für vier Angeklagte ein eigenes Gefängnis gebaut wurde? Warum ist Deutschland heute so, wie es ist?

Gerade die Antwort auf die letzte Frage hat mit vielem, vielem mehr zu tun als nur mit der Baader-Meinhof-Gruppe bzw. der Roten Armee Fraktion. Aber einige Tatsachen, die heute selbstverständlich sind, wären ohne den Terrorismus vielleicht nicht gekommen, gerade in Hinsicht auf die Strafprozessordnung.

Jedenfalls gönnte ich mir nach dem Film auch das Buch, Stefan Austs “Der Baader Meinhof Komplex
. Um dieses Buch habe ich mich jahrelang gedrückt - ich fürchtete, das “Standardwerk” sei eine kopflastige, wissenschaftliche, trockene, theoretische Abhandlung. Ich irrte - auch wenn (oder weil?!) Aust “nur” die Chronik zeichnet, ist das Buch sehr gut zu lesen, sogar packend. Theoretisch verschwurbelt sind nur die (wenigen) Passagen, in denen aus RAF-Schriften (zumeist von Meinhof oder Ensslin) zitiert wird. Einziges “Manko” am 900-Seiten-Werk: Es endet im Prinzip mit dem Deutschen Herbst 1977. Die weiteren Geschehnisse danach, das weitere Vorgehen der zweiten und dritten Generation und das Ende des irrigen “Konzeptes Stadtguerilla” werden in einem kurzen Kapitel am Ende abgerissen. Nun gut, der Titel ist nun mal “Baader Meinhof Komplex”, und mit der Todesnacht von Stammheim waren die Gründer der RAF tot.

Warum ich das alles erzähle? Heute kam Butz Peters Buch “Tödlicher Irrtum: Die Geschichte der RAF mit der Post. Ein bisschen angelesen habe ich es schon, ich bin gespannt, wie es a) in der Zeit bis 1977 im Vergleich zu Aust abschneidet und b) wie die Zeit ab 1977 geschildert wird.

Basic4PPC

Programmierung Keine Kommentare »

Am Samstag lag die Jubiläumsausgabe der c’t im Briefkasten - mit dabei eine DVD mit 86 Vollversionen und 39 Spezialversionen. Ein Programm erregte meine besondere Aufmerksamkeit - Basic4PPC, ein BASIC-Dialekt inklusive IDE für Windows Mobile Handys.

Schon länger haben wir das Problem, dass es keinen brauchbaren Wecker für Win Mobile Smartphones gibt. Die eingebaute Erinnerung ist zwar ganz nett, aber auf drei Einträge und eine Auswahl von System-Sounds beschränkt. Die Applikation meiner Frau (Name vergessen [der Applikation, nicht von Simone!], sorry) spielt zwar ein frei wählbares Musikstück ab, ist jedoch Shareware. Also klingelt jeden Mittwoch und Donnerstag um 23 Uhr das Handy, um uns an Harald Schmidt zu erinnern. Ebenfalls nicht das Wahre.

Eigentlich kann es doch nicht so schwer sein, einen Wecker selbst zu schreiben… denkste!

Erster Ansatz war, das Programm einfach unter .NET selbst zu schreiben. Immerhin ist beruflich C# die Sprache der Wahl. Doch sowohl mit Visual C# Express als auch mit #Develop brachten mich an den Rand der Verzweiflung - wollte es mir doch einfach nicht gelingen, das .NET Compact Framework als Ziel-Framework zu bestimmen.

In der Hoffnung, dass ich mit Basic4PPC einfacher eine Mobilapplikation zum Laufen bringe, habe ich mir das Programm installiert. Der Einstieg ist wirklich einfach und schnell zu schaffen - Basic sei dank. Wie praktisch - es gibt sogar im Hardware-Objekt eine Methode “RunAppAtTime”. Die führt ein Programm zu einem bestimmten Datum aus. Perfekt für einen Wecker, mag man meinen. Der Haken: es funktioniert nicht. Zumindest nicht auf meinem HTC Touch Vodafone VPA Touch.

Also muss ich wohl doch schauen, dass ich mit C# voran komme. Zumal mir die Performance der Basic4PPC-Applikation ohnehin nicht sonderlich gut erschien. Zum Glück hat ein Kollege schon Erfahrung mit .NET Compact. Muss ich den mal anhauen.

Reboot

Allgemein Keine Kommentare »

Nach längerer Abstinenz wird es Zeit, endlich mal das Blog zu rebooten und neue Einträge zu verfassen. Immer wieder gab es in letzter Zeit Situationen, bei denen ich gedacht habe, “Mensch, das wär doch jetzt was fürs Blog” - Faulheit und das lange Nicht-Schreiben haben mich jedoch davon abgehalten.

Nun also in neuem Layout, aktualisiertem Wordpress und dem festen Willen, wenigstens einen Eintrag pro Tag zu schaffen, der Neubeginn.