Sonntag, 19. Oktober 2008

Weiterentwicklung in der dunklen Jahreszeit

Als Entwickler hat man sich, ob man will oder nicht, dem ständigen Lernen verpflichtet. Zwar bleibt man durch das tägliche Lesen von Rss-Feeds und Blogs auf dem Laufenden, manchmal möchte man aber einen nächsten Schritt tun. Dieser Zeitpunkt ist bei mir gerade erreicht und so fange ich an, mir ein tiefergehendes Verständnis mit Hilfe des Buches C# in Depth: What You Need to Master C# 2 and 3 anzueignen.

Das schöne ist: Ich weiß auch schon, wie es nach dem Buch weitergeht. Ich möchte Python lernen.  Warum? Ich habe entsprechende Fragen auf Stackoverflow gelesen und offenbar gibt es viele Gründe Python auszuprobieren und laut Tiobe eine aktive Python Community

Da ich mich im .Net Framework zu Hause fühle, habe ich die Wahl zwischen Python for .Net welches keine DLR Implementation ist, einer an Python angelehnten Sprache mit dem Namen Boo und dem Microsoft'schen IronPython.

 Alle drei Varianten scheinen auch unter Mono zu laufen. IronPython scheint nach meinen ersten Erkenntnissen recht nah an der originalen Syntax zu sein - also werde ich mir zunächst IronPython zu Gemüte führen und später einen Blick auf Boo werfen, auch wenn mir der erste Eindruck schon jetzt zusagt. Aber irgendwie fühle ich mich durch die Antworten auf die Frage "Boo vs. IronPython" bestätigt und werde mir demnächst wahrscheinlich durch die IronPython Tutorials wühlen und das Buch Ironpython in Action benutzen um mir die dunklen Jahreszeit zu vertreiben.

Sonntag, 12. Oktober 2008

Programmierer fragen Programmierer

Google, Foren und Newsgroups bieten zwar eine Fülle  an Informationen, doch manchmal gibt es konkrete Probleme die man nur durch Nachfragen lösen kann. Eine "Frage-und-Antwort" Community für Kodierer bietet Stackoverflow.com.

Interessant dabei: Hat man sich genügen Reputation durch das Schreiben von Fragen und Antworten sowie das Bewerten und Kommentieren verdient, ist man wie bei einem Wiki dazu in der Lage, fremde Beiträge zu editieren oder als passende Antwort zu deklarieren.

Dank OpenID entfällt das Anlegen eines neuen Benutzeraccounts, wenn man bereits bei einem OpenID Provider registriert ist (Yahoo und Blogger gehören auch dazu).

Someone is wrong on the internet

Freitag, 4. Juli 2008

Im stillen Kämmerlein

Wenn man "mal eben" einen längeren Text schreiben möchte, kommt grundsätzlich etwas dazwischen: den Webbrowser öffnen, den Instantmessenger benutzen oder andere Ablenkungen die einen vom eigentlichen Verfassen des Textes abhalten.  Gut, dass es da Abhilfe in Form von schlichten bzw. gar simplen Texteditoren gibt - ohne Schnickschnack einfach nur tippen.

Online kann man das prima mit Darkcopy ausprobieren. Wem das Offline-Arbeiten eher liegt (ohne Netz kann zumindest der Instantmessenger nicht mehr stören), sollte einen Blick auf den Editor Q10 und auf auf Dark Room werfen. Wer unter MacOS arbeitet kann WriteRoom benutzen. Linuxnutzer werden sich wahrscheinlich ins Fäustchen lachen, ihren Lynx beenden und vi starten...

...und ich komme in der nächsten Zeit vielleicht endlich dazu, den zweiten Teil zu SVN und .Net zu schreiben.

Sonntag, 4. Mai 2008

Subversion für weniger Reibung

Subversion (SVN) ist ein Versionsverwaltungssystem (der Hersteller spricht auch von "source control - change management"-System), welches ich noch nicht sehr lange Anstelle von CVS einsetze, aber schon recht liebgewonnen habe.

Während Wikipedia den formalen Unterschied zu CVS kennt, kostenlose Tools zum Wechsel von Beispielsweise PVCS zu SVN existieren, es sogar transparente  Brückenlösungen zum MS Team Foundation Server gibt und auch SVN-Neulinge dank kurzen Einführungen schnell im Boot sind, bin ich der Meinung, dass man einen Wechsel ruhig riskieren sollte.

Belohnt wird man nicht nur durch eventuell gesparten Lizenskosten, sondern auch durch eine, wie ich finde, reibungslosere Softwareentwicklung: Da das "locken" von Dateien und Verzeichnissen zwar möglich, zum ändern der Dateien aber nicht notwendig ist, bewegt man sich fast von allein in Richtung Collective Code Ownership und das ermuntert geradezu "Unschönheiten", auch über die Grenzen des vormals eigenen Moduls hinaus, zu verbessern.

Zur eben erwähnten "Reibungslosigkeit" trägt Tortoise erheblich bei: Der SVN-Client sorgt dafür, dass Subversion-Symbole fortan im Explorer sichtbar werden und commits, updates und Co nur einen Rechtsklick entfernt sind.

Aus der Entwicklungsumgebung VisualStudio heraus helfen Add-Ins wie Ankh oder auch das nicht kostenlose aber nützliche VisualSVN. Ebenso gibt es weitere Plugins für Eclipse, JDeveloper und NetBeans.

Wer die Kopplung in den Explorer oder die Integration in die Entwicklungsumgebung scheut kann ebenfalls mit der Kommandozeile oder einem GUI-gestützen SVN-Klienten wie beispielsweise RapidSVN auf die Repositories zugreifen.

Wer aus eigenen Applikationen auf Subversion-Repositories zugreifen möchte kann auch dieses tun: Während es für Java und Python entsprechende Bindings direkt vom Herstell gibt, müssen C# Entwickler einen kleinen Umweg, aber trotzdem gangbaren Umweg in Kauf nehmen: mit Hilfe der Java Implementation IKVM.NET für Mono/MS.NET können die SVN Java-Bindings auch unter .NET benutzt werden. Wie das funktioniert, beschreibt hungryforknowledge in seinem Blog.

Mehr zum thema Subversion, Hooks und C# werde ich in einem nächsten Beitrag schreiben.

Montag, 11. Februar 2008

WindowsMobile kostet nerven

Mein Dell Axim X50 leistet gute Dienste und ich möchte das Ding nicht missen - auch wenn man damit nicht telefonieren kann. Neuerdings ist mir aufgefallen, dass die Uhr, die sonst in der Titleleiste in digitaler oder analoger Form zu sehen war einfach verschwunden ist.

Endloses googlen brachte mich schließlich auf diesen Trick und diese tolle Tweak-Zusammenfassung:

Uhr in Titelleiste wieder anzeigen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\
Vorhandenen Binären Wert löschen:
Binary Value "TBOpt" "00 00 00 00"

Gesagt getan (ich habe den PocketPC TotalCommander benutzt um die Registry zu editieren) und nach einem Soft-Reset erscheint die Uhr.

Sonntag, 2. Dezember 2007

Bluescreen bei Logitech und Cherry

Die letzten Wochen ärgerte ich mich über sporadische Bluescreens beim Start von Windows XP. Vor allem traten diese dann auf, wenn der Anmeldebildschirm eine Zeit lang nicht benutzt wurde - man also vor dem Login einfach eine Zeit wartete und sich erst dann den User aussuchte und einloggte.

Lange hat's gedauert aber nachdem ich mit Hilfe von Systernal's AutoRuns sämtliche Variationen durchgespielt hatte bin ich mir nun sicher: die Kombination von Logitech Maussoftware und Cherry Tastatursoftware verträgt sich nicht.

Wird der Logitech-Maustreiber (Version 4.0.101.0 vom 11.04.2007) bzw. die SetPoint Software (Version  4.00.121) meiner MX518-Maus zuerst geladen und erst dann der Cherry Keyboard Manager (Version 3.2.0.11, Treiber: Version 1.2.27.12 vom 11.12.2006)  geladen gibt's einen Bluescreen.

Mittlerweile habe ich herausbekommen warum der vormals einwandfreie Systemstart "aus heiterem Himmel" nicht mehr funktionierte: Schuld war das automatische SetPoint-Update welches wohl die "Start-Up"-Reihenfoge nach einem Update geändert hat.

Nachdem ich diesen Fehler nun erkannt habe, bleibt vielleicht ein wenig Zeit die neuen Features des .Net Frameworks 3.5 zu erkunden - wie gut, dass es die wichtigsten Änderungen der Klassenbibliothek als Poster gibt. Ebenso gibt's die neuen Tastaturkommandos im Visual Studio 2008 als CheatSheet.

Sonntag, 11. November 2007

Noch schneller tippen

Vor einiger Zeit habe ich mir überlegt, meine Tippgeschwindigkeit zu verbessern und prompt lese ich in der aktuellen C'T eine Link-Rezession mit dem Namen "Tippschule".

In dem Artikel ist zu lesen, dass man sich durch die gennante Zeitangabe von 3 Stunden bis zur 10-Finger Perfektion nicht verunsichern lassen solle. Gesagt getan und mittlerweile steht auf der Schnellschreib-Homepage auch eine Zeitangabe von zehn Stunden.

Mal sehen wie lange ich brauchen werde um die beiden unbenutzten Finger auch endlich über die Tastatur fliegen zu lassen - in Lektion 2 kann ich sie zu mindestens schon für Shift, ö und a einsetzen...