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...

Rhino.Mocks 3.3

Schon am 25.10. hat Ayende eine neue Version vom Mocking-Framework "Rhino Mocks" herausgebracht. Meiner Meinung nach ist das Framework ein must have für die testgetriebene Entwicklung unter .Net, denn endlich kann man Erwartungen an das Verhalten seiner zu (Unit-)testenden Komponenten stellen.

Wohl wichtigste Neuerung in der neuen Version 3.3: Expect.Call für Methoden ohne Rückgabewert. Ich möchte kurz erläutern worum es dabei geht: Ich brauche nicht mehr zu erläutern worum es bei diesem neuen Feature geht, Ayende selbst klärt in seinem Weblog auf.

Mittwoch, 3. Oktober 2007

Schnelltippen

Heynemann berichtet in seinem Blog, dass er schnell tippen kann:

Number of words typed: 200
Test duration: 3 min
Speed: 66.6 words/min. (333 keystrokes/min.)
Error penalty: 10
Accuracy: 95.0%

Auch ich habe es drauf ankommen lassen und habe drauf los getippt - mit eher mäßigem Erfolg was die Geschwindigkeit angeht:

Number of words typed: 130
Test duration: 3 min
Speed: 43.3 words/min. (216 keystrokes/min.)
Error penalty: 0
Accuracy: 100.0%

Vielleicht sollte ich doch einen 10-Finger-Kurs belegen, obwohl ich dachte, das ich mit meiner 8,5 Finger Methode relativ schnell bin.

Vielleicht hilft es auch, wenn man auf "Spielerische Weise" dazulernt? QWERTY-Warriors und Words to the rescue ;-)

Gelungene Meetings

Ich bin gerade beim "Feiertagssurfen" über diesen Folien Satz von Herrn Horbach gestolpert. Er beschreibt witzig, wie ein Meeting garantiert misslingt. Aber wahrscheinlich lassen sich einige Besprechungs-Ingenieure selbst durch diese Tipps die Lust an (überflüssigen) Sitzungen nicht nehmen.

Mittwoch, 19. September 2007

VS 2005 Codesnippets

Codesnippets sind Schablone die einem vordefinierte Code-Gerüste erzeugen und damit ein wenig der lästigen Tipparbeit ersparen. Man muss lediglich das entstandene Code-Skelett ausfüllen und das geht bei guten Snippets meist relativ komfortabel. Persönlich benutze ich mit wachsender Begeisterung eine abgewandelte Form der TestFirstSnippets. Trägt man im Visual Studio beispielsweise ntfull ein, entsteht so eine komplette Klasse mit den entsprechenden (leeren) TestFixture-, Setup-, TearDown und Test-Attributen und Methoden. Weitere Testmethoden lassen sich mit ntmethod hinzufügen, wobei das den Charme hat, das die Testmethoden gleich halbwegs sprechende Namen bekommen, wenn man denn das angebotene Template ausfüllt.

Wer mehr über Codesnippets erfahren möchte, kann sich seit heute die bei Roland Weigelt bedienen: Der kommt gerade von der BASTA Konferenz und hat dort ein paar Folien präsentiert die genauer über Code Snippets, Item Templates und Wizards informieren.

Donnerstag, 13. September 2007

Hello blogger.com from Windows Live Writer

Schon seit einiger Zeit suche ich nach einem vernünftigen Desktop Blog-Editor. Warum? Weil's komfortabler ist und Opera noch immer keine vernünftigen Spaces in Rich-Text-Boxen einfügen kann. Zu allem Überfluss habe ich bemerkt, dass es in Opera einen Fehler gibt, der mich erfolgreich daran hindert, die just erschienene Demo des Action-Krachers "Enemy Territory - Quake Wars" zu spielen.

Beim Windows Live Writer (WLW) fallen mir mehrere Dinge auf:

  1. es arbeitet prima mit blogger.com zusammen
  2. die aktuelle englische Version verfügt nur über eine englische Rechtschreibprüfung
  3. Der eigenwillige Installer sorgt auch dafür, dass der MSN-Messenger auf die aktuelle Version gepatcht wird
  4. Es gibt Plugins und ein SDK
  5. WLW möchte Bilder für Blogger.com bei Picasa hosten - irgendwie funktioniert das nicht, obwohl es eigentlich sollte.

Das Programm erkennt sogar, welches Layout benutzt wird und stellt den Text entsprechend da. Dafür notwendig ist allerdings, dass sich der WLW einen nach der Installation einen temporären Eintrag erstellt. Der sieht dann so aus:temporary wlw post

Das Problem mit der Rechtschreibprüfung kann übrigens umgangen werden, dazu muss nur ein entsprechendes Wörtbuch vorhanden sein, den richtigen Namen tragen und im korrekten Verzeichnis sein. Wie man das macht und wo es die Datei gibt, steht hier. Das hat bei mir nur mit den Dateien von German (new spelling?) TextPad funktioniert, beim ersten Versuch gab es prompt eine Fehlermeldung.

Donnerstag, 6. September 2007

zyklomatische Komplexität

Ein Refactoring lohnt sich besonders bei komplexen Klassen und Methoden. Was aber ist komplex? McCabe hat seine Methode das herauszufinden und dank diesem Blog bin ich über ein Kommandozeilentool gestolpert, dass genau diese zyklomatische Komplexität ermitteln kann. Und das beste: es lässt sich in den Buildprozess einbinden und kann XML-Reports zu den untersuchten Quellen erstellt.

Samstag, 25. August 2007

Was man beim Surfen so findet

Gerade habe ich herausgefunden, das gestern mein zweit liebstes Bier zum Bier des Tages gekührt wurde. Worüber man so stolpert, wenn man einfach nur rumsurft... Dabei fällt mir das Wort "Schnitzengiggle" ein und ich fühle mich schon fast an den wohl stumpfesten Film aller Zeiten erinnert.

Wohnzimmer vernetzt

Da ich weder willens war ein Kabel durch das Wohnzimmer hin zum Router zu ziehen, noch dazu bereit bin das nötige Kleingeld für einen neuen HomeTheater-PC der über WLan verfügt zu verprassen (die alte Xbox der ersten Generation reicht als MediaCenter bislang aus - verfügt jedoch nur über Lan ohne W), habe ich mir eine Lan-WLan-Bridge von SMC gekauft. Dieses schmucke Kästchen mit dem Namen "SMCWEBT-G" soll in der Bridgefunktion dafür sorgen, einen Lan-Client in ein WLan einzubinden. Darüber hinaus kann es als Accesspoint oder Repeater konfiguriert werden. Da sich das Teil nicht ohne Weiteres dazu überreden lassen wollte mit meinem Router zusammen zu arbeiten (AVM Fritzbox und SMCWEBT-G funktionieren nicht auf Anhieb...) habe ich mir gedacht, ich fasse mal kurz zusammen, mit welchen Einstellungen es dann schlussendlich klappt:

  • Als Verschlüsselung hat bei mir WEP2 (AES) funktioniert
  • SSID muss beim ersten "Kennenlernen" der Geräte aktiviert sein, kann dann aber wieder versteckt werden
  • Sendemodus der Fritzbox 802.11g (mode g+b funktioniert nicht)
  • Sendemodus des SMCWEBT-G 802.11 b/g auto mode
  • Der MAC-Address-Filter der Fritzbox muss deaktiviert sein, sonst ist die SMCWEBT-G-Kiste nicht dazu in der Lage sich an der Fritzbox anzumelden (auch dann nicht, wenn die MAC-Adresse aller anzuschließenden Geräte einschließlich der MAC-Adresse des SMCWEBT-G der Fritzbox bekannt sind)

Wissenswertes zur SMCWEBT-G EU:

  • Default-IP (Auslieferzustand, nach Reset): 192.168.2.2
  • Default-Passwort (Auslieferzustand, nach Reset): smcadmin
  • Web-Konfiguration funktioniert bei mir nur über den InternetExplorer vernünftig
  • Nach dem Einschalten des Gerätes kann es bis zu 5 Minuten dauern, bis das Gerät betriebsbereit ist
  • Die aktuelle Firmware (zur Zeit "V1.09.2") lohnt sich

Freitag, 24. August 2007

Strato's Antwort

Vor kurzem habe ich an meinen Provider Strato eine Mail geschickt mit der Bitte mir zu erklären, wie ich den CName RessourceRecord zu dieser Subdomain hinzufüge. Gestern kam die Antwort:

Wir bedauern, dieses Feature unterstützen wir nicht. Wir empfehlen Ihnen alternativ z.B. eine Weiterleitung per Meta Refresh Angaben in der Startdatei "index.html" Ihres Webspaces - Beispiel: <head> <meta http-equiv="refresh" content="5; url=http://de.selfhtml.org/"> <!-- ... andere Angaben im Dateikopf ... --> </head> Statt de.selfhtml.org geben Sie die URL Ihres Blogs an. Der Nachteil ist, dass nach der Weiterleitung Ihre Blogger URL in der Adresszeile angezeigt wird. Eine weitere Lösung wäre ein iFrame: Beispielcode aus http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=iFrame <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Eingebettete Frames definieren</title> </head> <body> <h1>Fenstergucker</h1> <p>Gucken Sie mal SELFHTML im Fenster an:</p> <iframe src="../../../index.htm" width="90%" height="400" name="SELFHTML_in_a_box"> <p>Ihr Browser kann leider keine eingebetteten Frames anzeigen: Sie können die eingebettete Seite über den folgenden Verweis aufrufen: <a href="../../../index.htm">SELFHTML</a></p> </iframe> </body> </html>
Schade, aber immerhin wußte der Support worum es geht und hat mögliche Lösungen angeboten. Ich denke ich werde trotzdem bis auf weiteres bei dem statischen A-Eintrag (und bei Strato) bleiben - mal sehen wie lange noch.

Mittwoch, 22. August 2007

Frisches aus der .net Welt

Dienste wie Digg.com und andere sind nützlich um auf dem Laufenden zu bleiben und täglich frische Links konsumieren zu können. Das was eben genannter Dienst für alles mögliche ist, ist DotNetKicks für die englischsprachige .net Welt. Angemeldet habe ich mich dort schon vor einiger Zeit und möchte die diversen Themenbereiche auf DotNetKicks nicht mehr missen. Ach ja, es gibt auch Trittbrettfahrer - ich bleibe aber beim Original.

Dienstag, 21. August 2007

Does and Don'ts

Auf Codinghorror gibt es gerade 13 Sachen die in Blogs nerven. Nachdem ich die Liste überflogen habe, bin ich am grübeln, ob dieses "Snapr-ich-zeige-die-Previews-der-Links"-Plugin überflüssig ist... Ich schreib demächst 13 Sachen die in Opera nerven. Eine hab ich schon.

Montag, 20. August 2007

Scrum und so...

Bin gerade auf diesen (bislang) lohnenswerten Artikel zum Thema Scrum gestossen. Die angehängten Dateien habe ich zwar noch nicht angeschaut, sieht aber, wie ich finde, vielversprechend aus. Wem das zu trocken ist kann ja einen Kommentar in dieser Art hinterlassen:

Sonntag, 19. August 2007

Icons für's Web und Software

Erst durch die passenden Grafiken auf den Buttons wird die Applikation ansprechend und vermittelt das gewisse Etwas. Über folgende Seiten bin ich gestolpert und war mit der Auswahl der dort vorgestellten Iconsammlungen recht zufrieden:

Dependency Injection nur Mittel zum Test?

Zur Zeit diskutiert Ayende mit einigen Kritikern darüber, ob DI wirklich nur ein Mittel zum Zweck ist, also nur dazu dient die Programmteile testbar zu machen. Persönlich denke ich, dass Ayende recht hat, wenn er sagt, dass DI erst die lose Kopplung der Komponenten ermöglicht. Neben der Testbarkeit einzelner Teile wird auch dem Open-Close-Prinzip genüge getan und die Erweiterbarkeit einer Applikation auf eine robuste Art ermöglicht. An dieser Stelle möchte ich gerne zitieren:

Dependency Injection isn't (just) for testing, it is to Enable Change.

Samstag, 18. August 2007

Zeilenumbruch in längeren Posts

Gerade ist mir aufgefallen, dass vorallem in längeren Posts der Zeilenumbruch in diesem Blogger.com-Blog nicht mehr funktioniert (vorallem ist das merkwürdiger Weise bei meinem geliebten Operabrowser der Fall, im IE ist alles lesbar). Eigentlich bin ich zu Blogger.com gekommen, weil ich mich möglichst wenig mit CSS und Webseitenerstellung befassen wollte, sondern eigentlich einfach nur loslegen wollte. Nachdem ich nun doch noch das Template zu dieser Seite durchstöbert habe stieß mir diese Zeile ins Auge:

word-wrap: break-word; /* fix for long text breaking sidebar float in IE */ overflow: hidden; /* fix for long non-text content breaking IE sidebar float
Googlei brachte mich nicht weiter, ich bin immernoch auf der Suche nach einem ähnlichen Fix für Opera. Bei einer Idee bitte einen Kommentar hinterlassen. Edit: ich habe die zeile "overflow: hidden" mal auskommentiert, damit man wenigstens lesen kann, was ich hier schreibe... Edit2: ich hab die Zeile wieder reingepackt und habe mir sagen lassen das es wohl eine Unzulänglichkeit von Opera ist. Ich werde daher neue Posts bis auf weiteres in einem anderen Browser schreiben und täglich Beschwerdemails an Opera schicken.

Logging Bibliotheken

Ein Post von Stefan Macke zum Thema Logging hat mich dazu bewogen mich mal mit logging in der .net-Welt auseinander zu setzen. Logging ist etwas, was relativ schnell Einzug in neue Klasse hält und meist als
System.Console.Write("Meine Loggingmeldung");
anfängt und sich später als nicht mehr handhabbar erweist. Es muss also möglichst von vornherein eine geeignete Logginglösung her, am besten eine einheitliche Lösung für's jeweilige Projekt. Entscheidet man sich für gängige Logginglösungen, kann es ggf. clever sein diese durch ein Interface zu kapseln. Dann haben Teammitgliedern trotzdem die Möglichkeit "auf ihre bewährte Art" zu loggen. Die können sich dann ja einen SimpleLogger schmieden. Folgende Logginglösungen sehen für meinen Geschmack auf den ersten Blick sehr vielversprechend aus:

Freitag, 17. August 2007

"Up-to-date" bleiben

Bei der Menge an Informationen und täglich neuen Artikeln möchte man meist trotzdem irgendwie up-to-date sein und möglichst auch bleiben. Um über neue Posts informiert zu werden nutzt man seit web2.0 meist RSS anstelle von Mail-Newslettern. Komfortable können diese mit Hilfe von RSS-Readern und Webservices gelesen, abonniert und verwaltet werden. Hier meine unsortierte Top 5 der RSS-Tools:

  • Technorati (Blogs finden und abonnieren, RSS aggregieren)
  • Grazr (RSS Verwalten, opml Im-/Export)
  • xFruits ("RSS zu irgendwas" - beispielsweise RSS zu Web, RSS zu PDF)
  • Feedblitz (Feed-zu-Mail Service, erzeugt übersichtliche Mails)
  • Opera-Browser (ich benutze built-in-RSS-Reader)

Donnerstag, 16. August 2007

Comics

Normalerweise bin ich kein Comicleser. Bei Programmierer-Comics (Dillbert läßt grüßen) mache ich aber eine Ausnahme, denn die zeigen wie es wirklich zugeht:

Gute Entwickler...

... machen laut SharpDeveloper folgendes:

  • verbessern ihre Kommunikationsfähigkeiten (schriftlich und mündlich)
  • lernen stetig und verbessern sich selbst und ihre Fähigkeiten
  • teilen ihr Wissen und ihre Erfahrungen
  • lernen aus ihren Fehlern
Hinzufügen würde ich persönlich noch folgende Eigenschaften eines guten Programmierers. Er ist:
  • auf dem laufenden
  • bereit sich auf neue Methoden, Ansichten und Vorgehensweisen einzulassen
  • bereit sich von altem (Sourcecode, Vorgehensweisen, ...) zu lösen.
Das Thema scheint aktuell zu sein, gerade lese ich in Dan's Archive weitere Schritte auf dem Weg zum guten Coder.

Obfuscator - Verschleiern oder nicht?

Fady bezweifelt in seinem Blog, dass die alleinige Obfuscation (+Controlflow obfuscation und Stringencryption), also das Verschleiern des Intermediate Codes, zweckmäßig ist, da die Assemblies weiterhin modifiziert werden können. Ich glaube vielmehr, dass der erhöhte Aufwand nach einer Obfuscation abschreckt und die benötigte Zeit und Kosten für ein Reverse Engineering deutlich erhöht.  Durch die Verschleierung kann zwar nicht verhindert werden, dass beispielsweise Password-Abfragen übersprungen werden, jedoch erschwert es etwaiigen Angreifern die Softwareinterna zu verstehen - und das ist m.E. der Sinn einer Verschleierung, oder?

... und noch mehr Tools

Zu den Tools eines .Net Entwicklers gehören Anwendungen, Frameworks und Codebibliotheken sowie Plugins für die Entwicklungsumgebung. Dieser Post von Derik Whittaker fasst auch für diese Bereiche gängige Software zusammen.

Mittwoch, 15. August 2007

Agile Toolset

Einen fast komplette Liste mit Tools für die agile .Net Entwicklung hat Chris Woodill auf seinem Blog veröffentlich. Ich würde noch folgendes Hinzufügen:

Dienstag, 14. August 2007

CNAME, RessourceRecord, Strato und Blogger.com

Ich warte mittlerweile schon 48 Stunden sehnsüchtig darauf, das dieses Blog unter http://blog.tobsen.de/ zu erreichen ist - bislang vergebens. Ich kann mir eigentlich kaum vorstellen, dass ich der einzige bin, dem es so geht. Habe aber erstaunlich wenig informationen dazu ergooglen können, daher warte ich noch kurz... Edit: Nun hab ich's. Hinzufügen eines CNAMEs geht beim Hoster Strato nicht. Lediglich einen A-Record in Form einer IP kann gesetzt werden. Eigentlich sehr unschön von Strato, denn ich gehe davon aus, dass ghs.google.com auch eine Lastverteilung auf diverse blogspot-Server vornimmt. Dieses Feature wird durch das Eintragen einer statischen IP im A Resource Record natürlich ausgehebelt. Ich werd mal eine Mail an Strato schreiben...

Samstag, 11. August 2007

Guides in die .net Welt

Aller Anfang ist schwer.  Auch wenn es darum geht neue Kniffe im Umgang mit der .net Welt zu erlernen. Da kommen Hilfen wie Guides2C# von Golo Rodeon  oder Referenzen wie dieses openbook von Galileo Computing sehr gelegen - zumindestens geht es mir bisweilen immernoch so.

Labels

Nachdem ich nun endlich verstanden habe, wie das mit den Tags funktioniert und ich diese auch noch sichtbar in die Sidebar bekomme, kann ich mich sogar mit diesem "Blogger.com" anfreunden. Jetzt muss ich nur noch darauf warten, dass die namensauflösung zu blog.tobsen.de wieder funktioniert.

Baker's Dutzend: Statements from an Agile subculture

Ich bin gerade über folgenden Link gestolpert: Agile in Action: Baker's Dozen: Statements from an Agile subculture. Passend dazu gibt's ein Poster für's bislang karge Büro. Wie Schön wäre es doch, würde die Agilität auf dem Fusse folgen...

Googlen mit Vorschau

Ein nettes Feature hat sich Exalead.de, eine mehr oder weniger neue Suchmaschine, einfallen lassen: Vorschaubilder für die Suchergebnisse wie man sie z.B. von Websnapr her kennt.  Finde ich persönlich ziemlich klasse und bin so begeister, dass ich die Suche sogar in dieses Blog integriert habe - vorerst heißt es also exalead statt google. Exalead

Freitag, 10. August 2007

Nun ist es soweit

Auch ich konnte mich nicht länger wehren, also blogge ich jetzt. Ich habe mich dazu entschlossen zu blogger zu gehen und habe dabei bewusst die Liste der 10 besten Bloganbieter ignoriert. Mal sehen, was ich und der geneigte Leser davon haben. Kurz zum Inhalt dieses Blogs: ich möchte hier das posten,  was mir im täglichen Leben bei Hobby und Beruf weiterhilft. Von besonders trickreichen Tastenkürzeln über pfiffige Websites  bis hin zu schicken (C#) Codesnippets.