Kategorien

Weblog Liste

Archiv

Administration

Sign In
 Tuesday, June 26, 2007
Tuesday, June 26, 2007 5:58:29 PM (Mitteleuropäische Sommerzeit, UTC+02:00) #
Comments [1]

Heute ist dann das Nokia E61i aus der Vertragserlängerung angekommen.

Der erste Eindruck:
Das E61i ist sehr gut verarbeitet. Die Metalloptik wirkt sehr gediegen und macht schon was her. Nachdem ich jedoch das Samsung i-600 und den Treo 750 in der Hand hatte, beide besitzen eine Softtouch-Oberfläche, bin ich davon so überzeugt, dass es mir fast ungenehm war, ein Telefon mit Metallgehäuse in der Hand zu halten.

Beeindruckend ist das Display, besonders im Vergleich mit dem Treo 750. Dieser besitzt eine Auflösung von 240x240 Bildpunkten. Im Gegensatz dazu glänzt das Nokia mit 320x240 Bildpunkten. Im Kräftemessen mit dem Samsung i-600 kann das E61i, beide besitzen die gleiche Auflösung, nur durch das größere Display punkten. Dies ist aber sehr subjektiv zu sehen.

Die Größe des Gerätes ist als zweckmässig zu bezeichnen. Die Höhe erinnert mich stark an das Samsung i-600, trennen beide doch nur 1mm in ihren Abmaßen. Die Länge ist in den Dimensionen sowohl dem Treo 750 als auch dem Samsung i-600 vergleichbar. Ungewöhnlich ist die Breite. Mit 7cm gehört das Nokia zu den Giganten und dies merkt man auch bei der Bedienung. Es lässt sich gut in der Hand halten und auch die Einhandbedienung gelingt gut. Ich hatte jedoch das Gefühl, dass das Gerät für mich etwas zu breit ist - zumindest nach längerer Verwendung.

Bedienung und Einrichtung:
Da ich ein Nokia 9300 besitze und dieses seit zwei Jahren intensiv
verwende, war der Wiedererkennungseffekt sehr groß. Einstellungen,
Browser, Kontakte, etc. alles fand ich mittels erlernter Reflexe sehr
schnell. Der Umstieg auf Windows Mobile viel mir da um Größenordnungen
schwerer. Im Vergleich mit dem Nokia 9300 ist das E61i als Sprinter zu
bezeichnen. Es reagiert angenehm schnell und scheint nicht solche
Probleme zu haben wie dieses.

Die WLAN-Verbindung klappte auf Anhieb. Das E61i hat gleich auf dem Startbildschirm die Möglichkeit nach WLAN-Netzen zu suchen und es erkannte den Router auch sofort. Die Verbindung per WPA2 verlief problemlos. Innerhalb von 30sek, inkl. Einrichtung, sah ich die google-Seite und konnte mit der Recherche beginnen.

Die Tastatur hat zwei Gesichter. Durch die Breite des Gerätes, 7cm, sind die Tasten angenehm groß und gut zu treffen. Leider ist der Druckpunkt unglücklich gewählt. Dieser ist sind für mich zu weich und das Feedback der Tasten ist dadurch unzureichend. Obwohl die Tasten des Treo 750 und des Samsung i-600 kleiner sind, lassen diese sich durch ihren satten Druckpunkt wesentlich besser bedienen.

Fazit nach einer halben Stunde:
Ein sehr schönes Gerät. Hätten nicht die Umstände mir ein Samsung i-600 und ein Treo 750 beschehrt, wäre ich wahrscheinlich sehr glücklich mit dem Gerät geworden. Jetzt bin ich bei Windows Mobile gelandet. Dieses ist nicht perfekt aber es besitzt Vorzüge, welche ich vorerst nicht mehr missen möchte.

 Friday, June 22, 2007
Friday, June 22, 2007 4:40:32 PM (Mitteleuropäische Sommerzeit, UTC+02:00) #
Comments [2]

Der heutige Tag stand unter dem Motto:

Maximale Performance und Akku-Laufzeit.

Um die Möglichkeiten zu testen, habe ich mir die Testversion des Programms Pocket Hack Master installiert.

Die Einstellungen gingen leicht von der Hand und waren in weiten Teilen selbsterklärend. Ich konnte in dem Test das Smartphone mit Einstellungen zwischen 251 - 400 Mhz betreiben. Die PDA Funktionen verrichteten problemlos ihren Dienst. Sehr angenehm war die Möglichkeit des Programms, dass Smartphone grundsätzlich mit einer niedrigen Taktrate laufen zu lassen und nur bei Bedarf, bei hoher CPU Auslastung, den Takt zu erhöhen. Die entsprechenden Schwellenwerte waren frei konfigurierbar.

Soweit zu den positiven Nachrichten bzgl. Treo und Software. Leider erfuhr ich einen herben Rückschlag, welcher meine Hoffnungen bzgl. obiger Zielstellung in Luft auflöste.

Funktionierten die PDA-Funktionen: Kalender, Aufgaben, Pocket Word, etc. problemlos, gab die Telefonschnittstelle gänzlich den Geist auf. Sowohl das Anrufen als auch das angerufen werden funktionierten nicht korrekt. Während bei ersterem wahlweise der Wahlbildschirm ohne Ruftun oder gleich die Fehlermeldung: Telefon funktioniert nicht korrekt erschien begrüsste mich beim Anrufen meines Telefons sofort mein Anrufbeantworter, mit meiner wohlklingenden Stimme. Besonders unangenehm war die Tatsache, das die Statusanzeige des Smartphones mir eine korrekte Funktion vorgaukelte.

Alle Versuche, z.B. Einstellung des ursprünglichen Taktes, Softreset oder Neustart des Telefons blieben erfolglos. Die Telefonschnittstelle versagte weiterhin seinen Dienst. Letzlich half nur noch ein Hardreset, welcher sowohl mein Telefon als auch mein Herz wieder in Takt brachte.

Fazit:
Die Software funktioniert einwandfrei und verrichtet seinen Dienst, nur der Treo möchte nicht so wie ich das gern hätte. Ich vermute, dass es am umschalten der Prozessorspannung für Samsung-Prozessoren liegt. Ich werde mir das Programm noch etwas genauer anschauen und ja, wahrscheinlich auch mal die Dokumentation lesen. Vielleicht lässt sich ja noch etwas machen.

 Friday, March 02, 2007
Friday, March 02, 2007 3:33:31 PM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [1]

Warum dieser Beitrag

Exceptionhandling ist zum Teil eine Frage der Philosophie und der Einstellung. Einige behandeln Ausnahmen überhaupt nicht und andere Verfahren nach der catch all Philosophie. Beides ist suboptimal.

Wie sieht vernünftige Ausnahmebehandlung aus

Grundsätzlich verfahre ich immer nach folgendenden Merksätzen:

Merksatz 2.0
Behandle nur Ausnahmen, welche du auch lösen kannst.

Dieses Verfahren gaukelt dem Benutzer einer Bibliothek nicht vor, dass sie sich im Normbereich bewegt. Weiterhin kann er für seinen Anwendungsfall geeignete Lösungsstrategien implementieren. Handelt es sich nicht um eine Bibliothek, sondern um das eigentliche Programm, erleichtert es das Testen und das Ermitteln von Grenzbereichen, welches dann wiederrum die Ableitung von geeigneten Lösungsstrategien ermöglicht. Sowohl für die Bibliotheken als auch für die Anwendung.

Merksatz 2.1
Ausnahmen sind bei der Entwicklung eines Produktes notwendig und willkommen. Sie verbessern die Qualität des Produktes, wenn sie frühzeitig auftreten können/dürfen.


Macht eine Anwendung von Log-Mechanismen Gebrauch, so ist nichts dagegen einzuwenden, wenn Codeblöcke existieren, welche der catch all Philosophie folgen, um die Ausnahme zu protokollieren. Wichtig ist nur, dass der Fehler an übergeordnete Schichten weitergeleitet wird. Hierzu ein Beispiel:

try
{
...
}
catch( ... )
{
...
}
catch( Exception ex )
{
log.Error("Unbehandelte Ausnahme", ex );
throw;
}


Im konkreten Beispiel wurde log4net verwendet. Wichtig für das Thema ist jedoch, das der rethrow-Mechanismus von .NET verwendet wird.


Wann sollen eigene Ausnahmen erzeugt werden

Eigene Ausnahmen sind sinnvoll, wenn diese ausserhalb eines Exception-Blocks geworfen werden. Sie testen beispielsweise ob die Parameter eines Methodenaufrufs innerhalb eines gültigen Wertebereiches liegen. Dann können und sollten Sie bibliotheks- und programmspezifische Ausnahmen werfen. Gern darf hier von vorhandenen Exceptions abgeleitet werden. Im konkreten Fall und unter .NET von einer ArgumentException.

Das Erzeugen einer eigenen Ausnahme innerhalb eines Exceptionblocks sollte wohl überlegt sein. Es erzeugt auf seiten des Nutzers zusätzlichen Aufwand, auslesen der InnerException, und macht somit den Grund der Ausnahme nicht vollends klar. Es ermutigt den Entwickler, die Programmsteuerung auf Basis von Ausnahmen vorzunehmen.

Sollte man sich dennoch für eigene Exceptiontypen innerhalb eines Exceptionblocks entscheiden, so muß unbedingt die eigentliche Exception, als InnerException, weitergeleitet werden. Andernfalls kann eine Fehlersuche sehr aufwändig werden.

Fazit

Die Ausnahmebehandlung ist ein wichtiger Bestandteil der Softwareentwicklung. Es bietet sich an, zu Beginn des Entwicklungsprozesses, nur wenige Ausnahmen zu behandeln. Im Verlauf der  Entwicklung, durch Testen, werden die Gründe für Fehler klarer und können effektiver behandelt werden. Das Verstecken von  Fehlverhalten nützt niemanden etwas, sondern führt zu nicht nachvollziehbaren Programmverhalten. Im schlechtesten Fall nach der Auslieferung eines Produktes.

 Saturday, February 24, 2007
Saturday, February 24, 2007 2:17:10 PM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [0]

Seit dem 12.02.2007 bin ich nun selbständig. Das mag ein kleiner Schritt für die Menschheit sein, für mich war es ein Großer. Verzeiht mir diesen Spruch aber ich konnte nicht widerstehen. :)

Ich biete Leistungen rund um die Softwareentwicklung an. Unter anderem zu Softwarearchitektur und -design. Schwerpunkte sind .NET und Java. C++ ist bei Bedarf auch kein Problem. Alles in allem der klassische Freelancer.

 Friday, February 23, 2007
Friday, February 23, 2007 6:34:03 PM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [0]

Nach langem hin und her und mehr oder weniger konstruktiven Beiträgen, habe ich mir jetzt ein neues Notebook gekauft. Obwohl ich mit dem alten R50p immer zufrieden war, hatte dieses einen großen Mangel, die Auflösung. Auf einem 15 Zoller sind 1600x1200 einfach zuviel.

Der auserkorene Kandidat ist ein T60 mit einfacher WXGA Auflösung. Ich bin damit, bisher, hoch zufrieden, da ich nicht mehr blind werde. Durch den Widescreen hat man dennoch genügend Platz in der horizontalen.

Weitere Details findet ihr unter: ThinkPad T60 8744HCG

 Saturday, January 27, 2007
Saturday, January 27, 2007 5:26:27 PM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [0]

Der Fernseher dudelt so vor sich hin und fungiert als Hintergrundbeschallung. Ein kurzer Kontrollblick: eingestellt ARD, es läuft Handball. Gut, ich bin jetzt nicht soo der Handball Fan aber auf meiner persönlichen Skala liegt es noch meilenweit über Fußball. Also lass ich den Sender und widme mich den wichtigen Dingen des Lebens.


Kurz vor 18 Uhr wird der Kommentar immer drängender, so dass ich mich fast genötigt fühle, bei der ARD anzurufen. Zur Beweisaufnahme - die werden mich sicher Fragen, was ich zu beanstanden habe - wende mich mich dem Geschehen auf zu.


Jetzt sitze ich völlig durchgeschwitzt vor meinem Rechner und bin froh, dass ich den richtigen Sender zur richten Zeit eingestellt habe. Mein Gott, war das spannend.

Saturday, January 27, 2007 3:02:18 PM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [0]

Die Ausgangslage:



  1. Ein IBM Thinkpad ohne CD-Laufwerk Einschub, da dieses nicht mehr korrekt funktionert. Dafür ein Festplatteneinschub mit einer 120GB Festplatte drin. Da ist, bei installiertem System, nutzbringender.
  2. Auf dem Laptop ist ein vmware Server installiert.
  3. Diese vmware enthält eine Windows Server 2003 Installation. (ISO Image auf Festplatte, per Laufwerksfreigabe vom Desktop-Rechner gezogen)
  4. Wenn ich zu Hause arbeite, möchte ich gern am Schreibtisch sitzen und meinen großen Monitor benutzen.

Das Problem:


Jetzt muß noch die Software drauf. Jedesmal eine ISO auf die Festplatte legen ist:



  1. nervig
  2. hat man nicht immer eine ISO zur Hand

Die Lösung:



  1. Freigabe auf CD-Laufwerk am Desktop-Rechner.
  2. Einloggen in der vmware per Remotedesktop.
  3. Einbinden der Freigabe.
  4. Installationen starten.
 Thursday, January 11, 2007
Thursday, January 11, 2007 8:13:30 AM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [0]

Um NAnt mitzuteilen, welche Version des .NET Frameworks beim Kompilieren verwendet werden soll, muss einfach nur das Property "nant.settings.currentframework" entsprechend gesetzt werden. Sollen die Sourcen mit Framework 1.1 übersetzt werden, so ist im Buildscript folgendes zu notieren:


<property name="nant.settings.currentframework" value="net-1.1" />


Das Framework kann allerdings auch über die Kommandozeile angegeben werden mittels:


nant.exe -t:net-1.1

 | 
 Tuesday, January 09, 2007
Tuesday, January 09, 2007 10:42:38 AM (Mitteleuropäische Zeit, UTC+01:00) #
Comments [1]

Karsten Samaschke ruft mit dem Portal ASPXperts eine Community ins Leben, welche sich u.a. mit den Themen ASP.NET, XML und XML-Webdienste beschäftigt. Ein Bereich, welcher mich persönlich sehr interessiert, ist die Software-Architektur.

Es wird immer wichtiger, seinen Projekten eine strukturierte und durchdachte Architektur zu Grunde zu legen. Häufige Anforderungsänderungen können in Projekten ohne klar definierte Architektur schnell zu Chaos führen. Deshalb fällt es mir sehr positiv auf, dass ASPXperts diesem Thema einen eigenen Bereich spendiert.

Erwartungsgemäß sind derzeit wenige Inhalte zu finden, das Projekt befindet sich in der Enstehungsphase. Mit der Zeit werden sicher interessante und lehrreiche Beiträge aufschlagen.

Ich für meinen Teil habe mich heute registriert.