System failed, CPU test (2)

Gutes Ende in der “System failed, CPU test” Geschichte, heute kam das Mainboard von Alternate zurück. Läuft wieder wie gewohnt, weitere Kosten fielen auch nicht an. :^

Spezielle Einstellungen (2)

Uwe gab mir die Empfehlung, für die speziellen Einstellungen das Xtreme PropertyGrid von Codejock zu verwenden. Der Einbau verlief dank des verständlichen Quellcodes und der umfangreichen Beispiele problemlos. Durch eine kleine Erweiterung im Konstruktor von CXTPPropertyGridItem konnte ich noch Einstellungs- und Hilfetext in der Stringressource zusammenlegen, was die Übersicht im Dialogquelltext und in der Ressourcendatei erhöht.

Spezielle Einstellungen

Damit sieht der Dialog nun um Klassen besser aus und ist auch sehr viel bedienerfreundlicher geworden. Vielleicht bekommt ja Ramirez bei Gelegenheit auch noch seine gewünschte Sektion für AddIn-Programmierer.

Vista über NTDLR und BOOT.INI starten

Auf meinem Vista-Rechner sind drei Systeme (Windows XP, Windows XP x64 und Vista) installiert. Jedes System befindet sich auf einer primären Partition, vor der Installation werden die beiden anderen primären Partitionen ausgeblendet. So ist sichergestellt, dass die Laufwerke in der erweiterten Partition unter jedem System gleich sind (D, E und F). Im normalen Betrieb sind dann wieder alle drei primären Partitionen sichtbar und sollten über das NTLDR-Bootmenü der ersten Partition (x64) gestartet werden.

Mit Vista hat sich Microsoft leider vom NTLDR-Konzept verabschiedet und benutzt stattdessen nun einen Boot Configuration Data Store. Dieser Speicher ist nicht mehr so ohne weiteres editierbar. Die Konfiguration lässt sich nur noch mit dem Kommandozeilenprogramm “bcdedit.exe” bearbeiten, dessen Syntax ist aber nicht ganz so einfach zu verstehen.

Nach der Installation von Vista habe ich nun versucht, die beiden XP-Systeme in das Bootmenü mit aufzunehmen. Während der Installation waren sie versteckt, ansonsten hätte Vista ihnen automatisch die Laufwerksbuchstaben “D” und “E” zugeteilt. Die Laufwerke in der erweiterten Partition wären dann zu “F”, “G” und “H” geworden – ein nicht gewollter Zustand. Über Google sind zwar einige Tips zur Verwendung von bcdedit.exe zu finden, viel Erfolg hatte ich aber nicht.

Blieb also nur noch der Ansatz, über den NTLDR zu gehen. Ich erinnerte mich daran, dass man ja auch Linux über den NTLDR starten kann, wenn man den Bootsektor der Linuxpartition in eine Datei speichert und den Dateinamen dann in die Boot.ini einträgt. Mit Hilfe von Tiny Hexer habe ich den ersten Sektor der Vista-Partition als BOOTSECT.VIS gespeichert und in das Hauptverzeichnis kopiert, in dem sich auch NTDLR befindet. Nun musste ich nur noch die neue Option eintragen und beim nächsten Bootvorgang hatte ich dann die Wahl zwischen allen drei Systemen. Vista lief nach dem Start über die Bootsektor-Datei ganz normal hoch.

Die Boot.ini sieht nach der Anpassung dann so aus:

[boot loader]
timeout=3
default=C:\BOOTSECT.VIS
[operating systems]
C:\BOOTSECT.VIS=”Windows Vista”
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=”Windows XP Professional” /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Windows XP Professional x64 Edition” /noexecute=optin /fastdetect

Windows SDK für Vista (Beta 2)

Microsoft hat nun auch das Windows SDK (früher Platform SDK) für die Beta 2 von Vista veröffentlicht. Leider ist immer noch keine angepasste Installation möglich, d.h. das Zielverzeichnis kann nicht geändert werden. Es wird immer in das Windows-Programmverzeichnis installiert. Man sollte also sicherstellen, dass man hier noch das eine oder andere Gigabyte Platz hat.

Erste Erfahrungen mit Vista (Beta 2)

Heute morgen habe ich gleich mal die Beta 2 installiert und war gespannt, was sich seit der letzten CTP alles zum Positiven geändert hat. Der Installationsfortschritt ist nun sehr viel besser zu sehen, man muss nicht mehr rätseln, ob der Rechner noch lebt. Lediglich beim ersten Einloggen bleibt der Bildschirm eine längere Zeit dunkel, nur das Flackern der Festplatten-LED verrät, dass etwas passiert.

Im Gegensatz zur letzten Version ließ sich Visual C++ 6 zzgl. SP6 vollständig installieren und starten. Nach dem Übertragen der Einstellungen wollte es aber plötzlich nicht mehr so richtig, Windows entdeckte während des Startens der IDE ein Problem. Ich habe leider nicht herausfinden können, wie man Vista bei einer Schutzverletzung wieder zur Anzeige der W2K-Meldungen bewegen kann. So blieb zum Finden der Ursache nur “Versuch und Irrtum”. Am Ende zeigte sich, dass das Developer Studio durch das Laden einer Makrodatei (.dsm) zur Aufgabe gezwungen wurde. Auch eine leere Makrodatei brachte keine Abhilfe, so muss ich eben erst einmal auf Makros verzichten. Das ist im Moment aber nicht ganz so tragisch, da ich mich unter Vista wohl größtenteils nur zur Suche von Fehlern und Inkompatibilitäten aufhalten werde.

Die “User Account Protection” nervt auf Dauer doch sehr, sie lässt sich aber sehr leicht über MSConfig.exe deaktivieren. Die Effekte beim Öffnen und Schließen von Dialogboxen und Hinweisfenstern sind noch gewöhnungsbedürftig und erzeugen eine gewisse Unruhe. Die Programmsymbole auf dem Desktop werden in 48×48 Punkten angezeigt, lassen sich aber durch Rechtsklick auf den Desktop auch wieder in gewohnter Größe darstellen.

SpeedCommander läuft nach ersten Tests nun ohne größere Probleme. Beim Aktivieren und Markieren von Einträgen in der Dateiliste werden die fokussierten Dateien in einer leicht anderen Farbe gezeichnet. Der Grund liegt wohl in einem geänderten Verhalten der Listenansicht für Einträge unterhalb des Mauszeigers, das lässt sich aber leicht korrigieren. Der Befehl zum Anlegen einer Verknüpfung wurde unter Vista wieder einmal geändert, hier ist auch eine Anpassung nötig. Während des Navigierens sind mir viele Ordner mit Verknüpfungen aufgefallen, beim Wechsel landete ich immer in einem leeren Ordner. Hier wird der Debugger aber sicherlich weiterhelfen.

In The Windows Vista Developer Story: Application Compatibility Cookbook zeigt Microsoft übrigens wesentliche Änderungen in Vista und gibt eine Reihe von Tips zur Anpassung von Anwendungen für Vista.

Vista Beta 2 verfügbar

MSDN-Abonnenten können ab sofort die Beta 2 von Vista für x86 und x64 herunterladen. Die ISO-Dateien sind 3200 MB bzw. 4110 MB groß und enthalten folgende Versionen:

  • Windows Vista Ultimate Beta 2
  • Windows Vista Business Beta 2
  • Windows Vista Home Premium Beta 2
  • Windows Vista Home Basic Beta 2

Welche Version installiert wird, entscheidet der Produktkey. Ebenfalls angeboten wird die Beta 2 von Windows “Longhorn” Server (2016 MB bzw. 2588 MB). Nicht-MSDN-Abonnenten sollen die Beta 2 von Vista in den nächsten Wochen über das Windows Vista Customer Preview Programm erhalten können.

Produktivitätsstudie für Visual Studio 2005

Microsoft hat Veritest beauftragt, einen Produktivitätsvergleich zwischen ASP.NET und ASP.NET 2.0 zu erstellen. Zwei Entwicklerteams (ASP.NET und ASP.NET 2.0) wurde eine Projektaufgabe gestellt, die vorgegebene Zeit betrug fünf Tage. Der Auftrag war so formuliert, dass es schwer bzw. unmöglich war, ihn in dieser Zeit zu erfüllen.

Das Ergebnis der Studie zeigt, dass mit ASP.NET 2.0 deutliche Produktivitätssteigerungen möglich sind, die vor allem auch auf die neue Entwicklungsumgebung zurückzuführen sind. ASP.NET 2.0-Entwickler erledigen in der gleichen Zeit etwa 113% mehr Aufgaben als ASP.NET-Entwickler. Bei einigen Teilen der Aufgabe wurden einzelne Webseiten sogar bis zu 357% schneller erstellt.

Ob eine Studie für C++-Programmierer zwischen Visual Studio 6 und 2005 auch so ausgehen würde? ;)

Spezielle Einstellungen

Einstellungsdialoge sind immer ein Kompromiss zwischen möglichst hoher Anpassungsfähigkeit der Software und der Übersichtlichkeit für den Anwender. Je mehr Einstellungen untergebracht werden, umso verlorener kommt sich der Anwender am Ende vor. Ein Beispiel dafür ist Directory Opus, das zwar eine sehr hohe Funktionsvielfalt besitzt, allerdings muss ich bei der Suche nach einer Einstellung meistens alle Dialogfelder durchklicken. Gerade als ungeübter Anwender fühlt man sich damit immer gleich erschlagen.

Eine andere Möglichkeit besteht darin, viele Einstellungen gar nicht in den Dialog aufzunehmen, sondern dem Anwender die Möglichkeit zu geben, diese manuell in den Einstellungsdateien zu bearbeiten. Durch die Verwendung von XML-Dateien im SpeedCommander gestaltet sich das aber recht schwierig, da es schwer ist, die genaue Position verständlich zu formulieren. Weiterhin sind XML-Dateien auch ziemlich sensibel, ein Syntaxfehler reicht schon aus, um den Parser zur Aufgabe zu zwingen.

In µTorrent habe ich eine interessante Implementation von besonderen Einstellungen für Experten gesehen, die vielen sicher auch von Firefox (about:config) bekannt ist. Die Einstellungen werden in einer Liste angezeigt und können je nach Typ aktiviert/deaktiviert werden oder bieten eine Eingabemöglichkeit für eine Zahl.

Eine solche Seite wäre wohl auch für mich recht pflegeleicht, da sich das zeitintensive Design eines Dialogs quasi auf Null reduziert. Aussehen würde das ganze übrigens so:

Spezielle Einstellungen

Kein Fehler aufgetreten

Henrik hat festgestellt, dass SpeedEdit beim Öffnen einer leeren Datei mit der Erweiterung .url die Meldung “Kein Fehler aufgetreten.” ausgibt. Beim Debuggen habe ich dann auch recht schnell den Grund dafür gefunden.

In der Funktion OpenDocumentFile des CDocManager-Objektes wird die Funktion AfxResolveShortcut aufgerufen, mit deren Hilfe Verknüpfungen aufgelöst werden sollen. AfxResolveShortcut verwendet dafür die Schnittstelle IShellLink und gibt im Erfolgsfall den aufgelösten Pfadnamen zurück. Bei einer leeren .url-Datei vermeldet IShellLink::Resolve zwar Erfolg, IShellLink::GetPath gibt aber einen leeren String zurück. AfxResolveShortcut meldet den Erfolg weiter und die MFC verwendet nun statt des Dateinamens für die .url-Datei den leeren String, um die Datei zu öffnen.

Abhilfe schafft die zusätzliche Prüfung auf einen leeren aufgelösten Pfadnamen in der Datei docmgr.cpp (Zeile 928):

if (AfxResolveShortcut(AfxGetMainWnd(), szPath, szLinkName, _MAX_PATH) && szLinkName[0])
{
   Checked::tcscpy_s(szPath, _countof(szPath), szLinkName);
}

PCM Keuze

PCM KeuzeIn einem Test der holländischen Computerzeitschrift PCM erhielt SpeedCommander 11 die Empfehlung der Redaktion. Getestet wurden sechs Dateimanager (Directory Opus, EF-Commander, Power Desk, SpeedCommander, Total Commander und WinNC.net).

Wieder ein Grund zur Freude. :)