<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unmanaged Things &#187; Entwicklung</title>
	<atom:link href="http://blog.speedproject.de/category/entwicklung/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.speedproject.de</link>
	<description>Mehr .core als .nett</description>
	<lastBuildDate>Tue, 27 Jul 2010 10:30:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SpeedCommander 13.30.6165 (Beta)</title>
		<link>http://blog.speedproject.de/2010/07/27/speedcommander-13-30-6165-beta/</link>
		<comments>http://blog.speedproject.de/2010/07/27/speedcommander-13-30-6165-beta/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 10:30:34 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/?p=1476</guid>
		<description><![CDATA[Mit SpeedCommander 13.30 gibt es einige Änderungen hinter den Kulissen. Die wohl größte ist die Umstellung auf die CRT/MFC sowie den Compiler/Linker von Visual Studio 2010. Dazu wurden die Komponenten Scintilla, OpenSSL und UnRar auf die aktuellen Versionen aktualisiert.
In den Registerkarten können nun auf Wunsch nur die Laufwerksbezeichner anstatt der Ordnernamen angezeigt werden. Durch einen [...]]]></description>
			<content:encoded><![CDATA[<p>Mit SpeedCommander 13.30 gibt es einige Änderungen hinter den Kulissen. Die wohl größte ist die Umstellung auf die CRT/MFC sowie den Compiler/Linker von Visual Studio 2010. Dazu wurden die Komponenten Scintilla, OpenSSL und UnRar auf die aktuellen Versionen aktualisiert.</p>
<p>In den Registerkarten können nun auf Wunsch nur die Laufwerksbezeichner anstatt der Ordnernamen angezeigt werden. Durch einen Doppelklick in den freien Bereich wird eine neue Registerkarte erstellt. Beim Kopieren von Dateien größer als 4 GiB auf einen FAT32-Datenträger erscheint nun eine aussagekräftigere Fehlermeldung.</p>
<p>Mit SpeedCommander 13.00 wurden die Dateien beim Doppelklick in der Listenansicht mit Hilfe des Kontextmenüs gestartet. Dazu wurde mit den markierten Dateien ein Kontextmenüobjekt initialisiert und mit dessen Methoden die Dateien geöffnet. Seitdem war auf meinem System aber zu beobachten, dass beim Öffnen von Mediendateien mit dem Media Player ab und zu mal die Meldung <strong>Starten des Servers fehlgeschlagen</strong> angezeigt wurde, die ich in den vorherigen Versionen nie zu sehen bekam. Aus diesem Grund öffnet SpeedCommander 13.30 die Dateien wieder mit der bewährten Windows-Funktion <strong>ShellExecuteEx</strong>. Über einen Schalter in der SpeedCommander.ini lässt sich die gewünschte Methode anpassen:</p>
<pre class="brush: plain;">
[FolderWndShell]
OpenWithContextMenu=0
</pre>
<p><strong>0</strong> ist Standard und steht für <strong>ShellExecuteEx</strong>, mit <strong>1</strong> werden die Kontextmenü-Methoden verwendet.</p>
<p>Dazu gibt es noch einen Schalter, mit dem sich die Verzögerung bei der Anzeige des InfoTip-Fensters beim Überfahren der Laufwerkssymbole mit der Maus einstellen lässt. In den ersten Betaversionen von SpeedCommander 13.00 gab es unter Umständen kleine Hänger, wenn der Mauszeiger bei der Laufwerksauswahl eine kurze Zeit über einem Netzlaufwerk verweilte und die Anzeige der Speicherplatzanzeige für die Laufwerkssymbole aktiviert ist. Mit dem folgenden Schalter lässt sich der Mindestaufenthalt des Mauszeigers über einem Laufwerkssymbol nun anpassen:</p>
<pre class="brush: plain;">
[DriveWnd]
InfoTipDelayInitial=0
</pre>
<p>Mit dem Wert <strong>0</strong> wird die in Windows eingestellte Verzögerung für die Anzeige von InfoTips verwendet, ansonsten erfolgt die Angabe in Millisekunden. Der Wert <strong>2000</strong> bedeutet also, dass man mit dem Mauszeiger zwei Sekunden über einem Laufwerkssymbol verweilen muss, damit das InfoTip-Fenster angezeigt wird.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">﻿</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2010/07/27/speedcommander-13-30-6165-beta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Updates und neue Funktionen</title>
		<link>http://blog.speedproject.de/2010/04/29/updates-und-neue-funktionen/</link>
		<comments>http://blog.speedproject.de/2010/04/29/updates-und-neue-funktionen/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 07:15:30 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/?p=1175</guid>
		<description><![CDATA[Seit der Umstellung auf den TFS arbeite ich mit den drei Quellcodesträngen Dev, Main und Release. In Dev spielt sich alles für die nächste Hauptversion ab, Main enthält die aktuelle Hauptversion mit neuen Funktionen und Fehlerbehebungen. Unter Release werden alle veröffentlichten Versionen abgelegt.
Bisher war es immer so, dass mit der anstehenden Veröffentlichung eines Updates unterhalb [...]]]></description>
			<content:encoded><![CDATA[<p>Seit der Umstellung auf den TFS arbeite ich mit den drei Quellcodesträngen <strong>Dev</strong>, <strong>Main</strong> und <strong>Release</strong>. In <strong>Dev</strong> spielt sich alles für die nächste Hauptversion ab, <strong>Main</strong> enthält die aktuelle Hauptversion mit neuen Funktionen und Fehlerbehebungen. Unter <strong>Release</strong> werden alle veröffentlichten Versionen abgelegt.</p>
<p>Bisher war es immer so, dass mit der anstehenden Veröffentlichung eines Updates unterhalb von <strong>Release</strong> ein neuer Zweig mit dem aktuellen Stand von <strong>Main</strong> erstellt wurde. Größere Änderungen während des öffentlichen Betastest muss ich mir möglichst verkneifen, da sie nicht mehr ausreichend getestet werden konnten. Das schränkt aber für einen gewissen Zeitraum auch die Weiterentwicklung der aktuellen Hauptversion ein.</p>
<p>Die Veröffentlichung von Visual Studio 2010  und der damit aktualisierten und an Windows 7 angepassten MFC passierte nun zu einem für das nächste SpeedCommander-Update ungünstigen Zeitpunkt. 30 Tage sind zum Abklopfen von möglichen Nebenwirkungen zu kurz, allerdings wollte ich auch nicht wieder einen Monat verlieren.</p>
<p>Der sehr interessante Bericht in der <a href="http://www.heise.de/kiosk/archiv/ct/2010/7/164_kiosk">c&#8217;t 7/2010 über die Linux-Entwicklung</a> brachte mich dann auf eine Idee. Durch das Abspalten des Release-Zweigs gleich mit der ersten öffentlichen Betaversion wird dieser automatisch vor größeren Änderungen geschützt. Gleichzeitig kann die Entwicklung unter <strong>Main</strong> für das darauf folgende Update ganz normal weitergehen. Einzelne Fehlerbehebungen unter <strong>Main</strong> können trotzdem per Mausklick nach <strong>Release</strong> übertragen werden.</p>
<p>Auf diese Weise lässt sich ein gewisser Stillstand bei der Entwicklung vermeiden, ohne jedoch in Gefahr zu laufen, kurz vor der Veröffentlichung eines Updates wieder Fehler einzubauen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2010/04/29/updates-und-neue-funktionen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VA X für VS 2010 ist auf dem Weg</title>
		<link>http://blog.speedproject.de/2009/10/29/va-x-fuer-vs-2010-ist-auf-dem-weg/</link>
		<comments>http://blog.speedproject.de/2009/10/29/va-x-fuer-vs-2010-ist-auf-dem-weg/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 16:30:23 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/?p=1017</guid>
		<description><![CDATA[Visual Studio ohne Visual Assist ist wie Windows ohne SpeedCommander. Im Blog von Whole Tomato ist nun zu lesen, dass mit einer Version für Visual Studio 2010 in den nächsten ein bis zwei Wochen gerechnet werden kann.
]]></description>
			<content:encoded><![CDATA[<p>Visual Studio ohne <a href="http://www.wholetomato.com/">Visual Assist</a> ist wie Windows ohne SpeedCommander. Im Blog von Whole Tomato ist nun zu lesen, dass mit einer Version für Visual Studio 2010 in den <a href="http://blog.wholetomato.com/2009/10/27/va-x-in-vs2010-update/">nächsten ein bis zwei Wochen</a> gerechnet werden kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2009/10/29/va-x-fuer-vs-2010-ist-auf-dem-weg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stingray gibt&#8217;s immer noch</title>
		<link>http://blog.speedproject.de/2009/10/28/stingray-gibts-immer-noch/</link>
		<comments>http://blog.speedproject.de/2009/10/28/stingray-gibts-immer-noch/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 13:45:39 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/?p=712</guid>
		<description><![CDATA[Stingray war Mitte/Ende der neunziger Jahre zusammen mit Dundas einer der führenden Anbieter für MFC-Komponenten. Ich kann mich noch genau daran erinnern, wie perplex ich damals war, als mich unmittelbar nach einer Bestellung Scott Wingo (Mitbegründer von Stingray und MFC-Experte) anrief und mir für die Bestellung dankte.
Im Januar 1998 wurde Stingray dann von Rogue Wave [...]]]></description>
			<content:encoded><![CDATA[<p>Stingray war Mitte/Ende der neunziger Jahre zusammen mit Dundas einer der führenden Anbieter für MFC-Komponenten. Ich kann mich noch genau daran erinnern, wie perplex ich damals war, als mich unmittelbar nach einer Bestellung Scott Wingo (Mitbegründer von Stingray und MFC-Experte) anrief und mir für die Bestellung dankte.</p>
<p>Im Januar 1998 wurde Stingray dann von <a href="http://www.roguewave.com/">Rogue Wave</a> übernommen. Anfangs lief alles wie gewohnt weiter, aber nach einem Jahr wurden die Strukturveränderungen dann sichtbar. Die Stingray-Produktreihe war  plötzlich nur noch eine unter vielen, die Preise stiegen an und auch die Aktualisierung der Komponenten verlangsamte sich spürbar. Das war dann der Moment, in dem ich mich nach anderen Alternativen umgeschaut und bis 2003 die <a href="http://www.bcgsoft.com/">BCGControlBar</a> verwendet habe.</p>
<p>Heute kam wieder ein Newsletter von Rogue Wave, in dem die <a href="http://www.roguewave.com/products/stingray.php">Verfügbarkeit von Objective Studio 10.2</a> angekündigt wird. Beim Anschauen der Demos fand ich mich in der Vergangenheit wieder. Im Vergleich zu der letzten von mir gekauften Version 6 vor 10 Jahren hat sich kaum etwas geändert. Alles scheint auf dem Stand von Office 2000 stehengeblieben zu sein.</p>
<p>Kurz nach dem Erscheinen von Windows 7 ermöglicht die Preview von Objective Studio 11, dass sich Symbolleisten, Menüs und Bedienelemente wie die von nativen Vista-Applikationen verhalten. Bei Erscheinen von Windows 8 kommt dann sicher auch Unterstützung für Windows 7.</p>
<p>Mein Interesse an einem Produkt lässt auch spürbar nach, wenn Preisinformationen nicht öffentlich sichtbar sind und diese erst nach einer Registrierung angefragt werden können. Wenn ich mir die in der eMail aufgelisteten Preise anschaue, dann erschließt sich auch, warum Rogue Wave das so handhabt.</p>
<p>Objective Toolkit kostet in der 32-bit Ausführung 1.045 €, die 32/64-bit Variante ist für 1495 € erhältlich. Für das ganze Studio (Toolkit, Edit, Views, Chart, Grid) zahlt man 2495 € in der 32-bit Ausführung und 3395 € für die 32/64-bit Kombination. Die Preise verstehen sich netto zzgl. der entsprechenden Mehrwertsteuer. Das braucht man wohl nicht mehr zu kommentieren, wenn man sich mal die Preise von <a href="http://www.codejock.com/">Codejock</a> und <a href="http://www.bcgsoft.com/">BCGSoft</a> anschaut. Das Produkt des damaligen Mitbewerbers Dundas gibt es übrigens <a href="http://www.codeproject.com/KB/MFC/UltimateToolbox.aspx">mittlerweile für lau</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2009/10/28/stingray-gibts-immer-noch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MSSQL-Datenbanken sichern</title>
		<link>http://blog.speedproject.de/2009/10/23/mssql-datenbanken-sichern/</link>
		<comments>http://blog.speedproject.de/2009/10/23/mssql-datenbanken-sichern/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 08:30:37 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/?p=641</guid>
		<description><![CDATA[Mit Datenbankprogrammierung hatte ich bisher weniger zu tun. Einzige Ausnahme war das kleine Programm SpeedCD, welches seine Daten in einer dBase-Datenbank abgelegt hat. Aber das ist schon lange her, damals war ich noch glücklich mit Turbo Pascal für Windows.
Meine Erfahrungen mit dem MSSQL-Server beschränken sich daher auf das Ausführen eines Installationsprogramms sowie das Installieren eines [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Datenbankprogrammierung hatte ich bisher weniger zu tun. Einzige Ausnahme war das kleine Programm SpeedCD, welches seine Daten in einer dBase-Datenbank abgelegt hat. Aber das ist schon lange her, damals war ich noch glücklich mit Turbo Pascal für Windows.</p>
<p>Meine Erfahrungen mit dem MSSQL-Server beschränken sich daher auf das Ausführen eines Installationsprogramms sowie das Installieren eines Servicepacks. Mehr war für das Aufsetzen des TFS vor einem Jahr auch nicht nötig. Ich hatte aber keinen blassen Schimmer, wie man die Datenbankdateien mit Boardmitteln sichert und wiederherstellt. Ab und zu soll es ja mal passieren, dass einen die Daten aus unerfindlichen Gründen verlassen oder man im TFS etwas macht, was man hinterher tief bereut. Sicherungen sollen da helfen.</p>
<p>Glücklicherweise fand ich in der <a href="http://www.heise.de/ct/">c&#8217;t</a> einen Hinweis auf das Programm <a href="http://www.dd-medsoft.de/produkte/dbsave/">DBSave</a>. Die der Zeitschrift beiliegende ältere Vollversion war leider etwas eingeschränkt, sie sicherte nur eine Datenbank. Eine Lizenz der aktuellen uneingeschränkten Version kostet 49 Euro. Wenn man aber nur eine Serverinstanz hat und auf automatische oder inkrementelle Sicherungen verzichtet, dann kann man DBSave auch als <a href="http://www.dd-medsoft.de/produkte/dbsave/download.aspx">Freeware einsetzen</a> (kommerziell und privat). Beim ersten Start muss dann die Eingabe des Freischaltcodes abgebrochen werden.</p>
<p>DBSave präsentiert sich als Formularanwendung mit mehreren Registerkarten. Auf der ersten Seite wird der Name des SQL-Servers eingetragen. Nach erfolgreicher Verbindungsaufnahme werden die Datenbanken angezeigt:</p>
<blockquote><p><img title="SQL-Server" src="http://blog.speedproject.de/wp-content/uploads/2009/10/dbsave1.png" alt="SQL-Server" width="608" height="673" /></p></blockquote>
<p>Die dritte Seite fragt das Ziel der Sicherung ab. Unterhalb des Ordners wird dann für jede Datenbank ein eigener Ordner erstellt, in dem die Sicherungsdaten abgelegt werden:</p>
<blockquote><p><img title="Sicherungspfad" src="http://blog.speedproject.de/wp-content/uploads/2009/10/dbsave2.png" alt="Sicherungspfad" width="608" height="673" /></p></blockquote>
<p>Ist alles eingetragen, dann kann man die Konfiguration über die Symbolleiste speichern. Der Start der manuellen Sicherung ist etwas schwer zu finden, da er über das Kontextmenü des Symbols im Infobereich erfolgt:</p>
<blockquote><p><img title="Sicherung starten" src="http://blog.speedproject.de/wp-content/uploads/2009/10/dbsave3.png" alt="Sicherung starten" width="326" height="256" /></p></blockquote>
<p>Der Abschluss der Sicherung wird über eine Statusmeldung mitgeteilt:</p>
<blockquote><p><img title="Statusmeldung" src="http://blog.speedproject.de/wp-content/uploads/2009/10/dbsave4.png" alt="Statusmeldung" width="608" height="673" /></p></blockquote>
<p>Die Sicherung erfolgt im laufenden Betrieb, am SQL-Server muss nicht herumgespielt werden. Also genau das richtige für einen, der sich nicht weiter auskennt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2009/10/23/mssql-datenbanken-sichern/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Screenshots unter Vista</title>
		<link>http://blog.speedproject.de/2008/06/11/screenshots-unter-vista/</link>
		<comments>http://blog.speedproject.de/2008/06/11/screenshots-unter-vista/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 09:00:59 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/2008/06/11/screenshots-unter-vista/</guid>
		<description><![CDATA[z42 fragte gestern in einem Kommentar zu Projektspezifischen Umgebungsvariablen, mit welchem Programm ich die Screenshots unter Vista mache. Bis einschließlich Windows XP habe ich immer SnagIt v6 verwendet, was auch schon etwas älter ist. Mit Vista hatte SnagIt aber so seine Probleme, auch die neueren Versionen haben bei Dialogen nicht immer 100%ig funktioniert.
Während den Anfängen [...]]]></description>
			<content:encoded><![CDATA[<p>z42 fragte gestern in einem Kommentar zu <a href="http://blog.speedproject.de/2008/05/30/vs-2008-projektspezifische-umgebungsvariablen/">Projektspezifischen Umgebungsvariablen</a>, mit welchem Programm ich die Screenshots unter Vista mache. Bis einschließlich Windows XP habe ich immer SnagIt v6 verwendet, was auch schon etwas älter ist. Mit Vista hatte SnagIt aber so seine Probleme, auch die neueren Versionen haben bei Dialogen nicht immer 100%ig funktioniert.</p>
<p>Während den Anfängen der Vista-Programmierung habe ich oft im Blog von <a href="http://weblogs.asp.net/kennykerr/">Kenny Kerr</a> gelesen und somit auch die Entwicklung seines Screenshot-Tools <a href="http://www.windowclippings.com/">Window Clippings</a> mitverfolgt. Im Gegensatz zu anderen Programmen entfernt Window Clippings den durchscheinenden Hintergrund unter Vista (z.B. bei Titelzeilen) automatisch, so dass auf den Screenshots keine Unschönheiten auftauchen. Das Programm kann natürlich auch eine ganze Menge mehr, aber das ist alles auf der Webseite beschrieben.</p>
<p>Mit der Version 2.0 wurde die Software kostenpflichtig, $18 sind aber ein fairer Preis.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2008/06/11/screenshots-unter-vista/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wir sind ja nicht von der Post</title>
		<link>http://blog.speedproject.de/2008/06/06/wir-sind-ja-nicht-von-der-post/</link>
		<comments>http://blog.speedproject.de/2008/06/06/wir-sind-ja-nicht-von-der-post/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 09:00:27 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/2008/06/06/wir-sind-ja-nicht-von-der-post/</guid>
		<description><![CDATA[Das sagte gestern früh der UPS-Mensch, als er mir ein am Dienstag bei Intel Press bestelltes und am Mittwoch verschicktes Bücherpaket in die Hand drückte und ich es einfach nicht glauben konnte, dass die Auslieferung so schnell erfolgte.
Wer das bis zum 30. Juni geltende Angebot auch noch wahrnehmen möchte: Zu den $69,95 für die beiden [...]]]></description>
			<content:encoded><![CDATA[<p>Das sagte gestern früh der UPS-Mensch, als er mir ein am Dienstag bei <a href="http://www.intel.com/intelpress/">Intel Press</a> bestelltes und am Mittwoch verschicktes Bücherpaket in die Hand drückte und ich es einfach nicht glauben konnte, dass die Auslieferung so schnell erfolgte.</p>
<p>Wer das bis zum 30. Juni <a href="http://shop.intel.com/shop/product.aspx?pid=SIBK3614&amp;pfid=17&amp;pindex=1">geltende Angebot</a> auch noch wahrnehmen möchte: Zu den $69,95 für die beiden Bücher kommen noch einmal $26,00 für die UPS-Expresszustellung (einzige Versandoption) sowie knapp 15 Euro Zollgebühren (bei Übergabe fällig). Eins der beiden Bücher (Multi-Core Programming) gibt es ab Mitte Juni auch in Deutsch, bei Amazon wird es bereits für 54,90 Euro <a href="http://www.amazon.de/Multi-Core-Programmierung-Intel-Shameem-Akhter/dp/3939084700/">gelistet</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2008/06/06/wir-sind-ja-nicht-von-der-post/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Erster Treffer</title>
		<link>http://blog.speedproject.de/2008/06/04/erster-treffer/</link>
		<comments>http://blog.speedproject.de/2008/06/04/erster-treffer/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 08:00:08 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/2008/06/04/erster-treffer/</guid>
		<description><![CDATA[Letzte Woche hatte Ralf mir von einem Absturz in SpeedCommander berichtet, der während der Deinstallation eines Windows-Updates auftrat. Anhand des mitgelieferten Mini-Speicherabbilds konnte ich erkennen, dass der Absturz während einer Dateisystemaktualisierung auftrat, und zwar während der Bearbeitung der Datei &#8216;ntldr&#8217;. Der eigentliche Absturz erfolgte in der Windows-Funktion StrCmpI beim Test auf eine bestimmte Erweiterung.
Erst kam mir [...]]]></description>
			<content:encoded><![CDATA[<p>Letzte Woche hatte Ralf mir von einem Absturz in SpeedCommander berichtet, der während der Deinstallation eines Windows-Updates auftrat. Anhand des mitgelieferten Mini-Speicherabbilds konnte ich erkennen, dass der Absturz während einer Dateisystemaktualisierung auftrat, und zwar während der Bearbeitung der Datei &#8216;ntldr&#8217;. Der eigentliche Absturz erfolgte in der Windows-Funktion <a href="http://msdn.microsoft.com/en-us/library/bb759942(VS.85).aspx">StrCmpI</a> beim Test auf eine bestimmte Erweiterung.</p>
<p>Erst kam mir das etwas merkwürdig vor, da diese Funktion zum Erweiterungstest ja sehr häufig verwendet wird. Beim anschließenden manuellen Aufruf mit dem Dateinamen &#8216;ntldr&#8217; erkannte ich dann das Problem. Ich hatte die Dokumentation zu <a href="http://msdn.microsoft.com/en-us/library/bb773587.aspx">PathFindExtension</a> nicht korrekt gelesen und den Rückgabewert nur auf einen NULL-Zeiger geprüft und nicht auch noch auf einen leeren String.</p>
<p>Damit wurde der zurückgegebene Zeiger auch bei einer nicht vorhandenen Erweiterung um eins erhöht (um den Punkt zu überspringen) und fleißig gegen eine Liste mit bekannten Erweiterungen verglichen. Im normalen Betrieb war der nachfolgende Speicherbereich wohl immer gut gefüllt und damit gültig. Im minimierten Zustand räumt Windows aber immer wieder Speicher frei, was dann zur Zugriffsverletzung führte.</p>
<p>Ohne Mini-Speicherabbild wäre die Fehlersuche sehr viel schwieriger geworden, weil die wichtigen Begleitumstände unbekannt bleiben. <a href="http://blog.speedproject.de/2008/04/16/saubere-abstuerze/">Die neue Funktion</a> hat sich also schon gelohnt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2008/06/04/erster-treffer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TortoiseSVN: Kontextmenü ohne Icons</title>
		<link>http://blog.speedproject.de/2008/06/02/tortoisesvn-kontextmenue-ohne-icons/</link>
		<comments>http://blog.speedproject.de/2008/06/02/tortoisesvn-kontextmenue-ohne-icons/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 09:00:34 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/2008/06/02/tortoisesvn-kontextmenue-ohne-icons/</guid>
		<description><![CDATA[Ich habe schon immer eine Abneigung gegen die Anzeige von Symbolen im Explorer-Kontextmenü. Das hatte anfangs damit zu tun, dass dieses Menü dafür einfach nicht vorgesehen war und diese Symbole aufgrund der beschränkten Möglichkeiten in der Regel nur 14 Punkte groß waren und mit maximal 16 Farben angezeigt wurden. Meistens brauchte man also viel Phantasie, [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe schon immer eine Abneigung gegen die Anzeige von Symbolen im Explorer-Kontextmenü. Das hatte anfangs damit zu tun, dass dieses Menü dafür einfach nicht vorgesehen war und diese Symbole aufgrund der beschränkten Möglichkeiten in der Regel nur 14 Punkte groß waren und mit maximal 16 Farben angezeigt wurden. Meistens brauchte man also viel Phantasie, um eine mögliche Information erkennen zu können.</p>
<p>Mit der Zeit waren aber immer mehr Programmierer der Meinung, mit einem entsprechenden Symbol punkten zu können. Ein Farbklecks mag ja bei einem Menü ohne weitere Symbole noch herausragen, aber bei vielen Farbklecksen fällt die Auswahl schon schwerer.</p>
<p>Unter Vista sind die einzelnen Kontextmenü-Einträge etwas größer, was vermutlich mit dem Befehl <strong>Als Administrator ausführen</strong> zusammenhängt. Dieser Befehl enthält als einziger ein Symbol, was wohl mit seiner besonderen Bedeutung zusammenhängt. Anfangs war das etwas ungewohnt, aber mit der Zeit empfand ich die Menüs aufgrund der größeren Abstände auch als besser lesbar.</p>
<p>Nach der <a href="http://blog.speedproject.de/2008/05/28/von-sourcesafe-zu-subversion/">Installation von TortoiseSVN</a> sah das Kontextmenü aber plötzlich ganz anders aus. Die Abstände zwischen den Einträgen waren extrem verkürzt, zudem ist das <del datetime="2008-06-04T17:50:24+00:00">Schneckensymbol</del> Schildkrötensymbol (Korrektur) in meinen Augen nicht wirklich eine Augenweide, vom fehlenden Abstand zwischen Symbol und Text mal ganz abgesehen:</p>
<blockquote><p><img title="Kontextmenü mit Symbolen" src="http://blog.speedproject.de/wp-content/uploads/2008/06/kontextmenue.png" alt="Kontextmenü mit Symbolen" width="246" height="354" /></p></blockquote>
<p>Beim Stöbern im Quellcode von TortoiseSVN fand ich glücklicherweise eine Option, über die man das Verhalten im Kontextmenü steuern kann:</p>
<blockquote><p>REGEDIT4</p>
<p>[HKEY_CURRENT_USER\Software\TortoiseSVN]<br />
&#8220;OwnerdrawnMenus&#8221;=dword:00000002</p></blockquote>
<p>Damit unterlässt es TortoiseSVN, die Proportionen vom Kontextmenü zu verändern und fügt keine eigenen Symbole hinzu. So gefällt mir es dann wieder.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2008/06/02/tortoisesvn-kontextmenue-ohne-icons/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Von SourceSafe zu Subversion</title>
		<link>http://blog.speedproject.de/2008/05/28/von-sourcesafe-zu-subversion/</link>
		<comments>http://blog.speedproject.de/2008/05/28/von-sourcesafe-zu-subversion/#comments</comments>
		<pubDate>Wed, 28 May 2008 09:00:19 +0000</pubDate>
		<dc:creator>Sven</dc:creator>
				<category><![CDATA[Tools & Bibliotheken]]></category>

		<guid isPermaLink="false">http://blog.speedproject.de/2008/05/28/von-sourcesafe-zu-subversion/</guid>
		<description><![CDATA[Seit mehr als 11 Jahren nutze ich Visual SourceSafe als Quellcodeverwaltung, letzte Woche habe ich meine Projekte auf Subversion umgestellt. Als SourceSafe-Geschädigter muss man sich aber erst einmal an das neue Modell gewöhnen. Unter SourceSafe checkt man die zu bearbeitenden Dateien einzeln oder in Gruppen aus, editiert sie und checkt sie dann wieder ein. Eingecheckte [...]]]></description>
			<content:encoded><![CDATA[<p>Seit mehr als 11 Jahren nutze ich <a href="http://msdn.microsoft.com/en-us/library/ms181038(VS.80).aspx">Visual SourceSafe</a> als Quellcodeverwaltung, letzte Woche habe ich meine Projekte auf <a href="http://subversion.tigris.org/">Subversion</a> umgestellt. Als <a href="http://www.highprogrammer.com/alan/windev/sourcesafe.html">SourceSafe-Geschädigter</a> muss man sich aber erst einmal an das neue Modell gewöhnen. Unter SourceSafe checkt man die zu bearbeitenden Dateien einzeln oder in Gruppen aus, editiert sie und checkt sie dann wieder ein. Eingecheckte Dateien werden mit einem Schreibschutz-Attribut versehen und können daher nicht einfach so bearbeitet werden. Damit das Auschecken funktioniert, muss Visual Studio eine ständige Verbindung zum Server mit der Quellcodeverwaltung haben. Arbeitet man mal unterwegs, dann simuliert Visual Studio ein Auschecken, indem es das Schreibschutz-Attribut der lokalen Datei entfernt. Beim nächsten Andocken an den Server werden die Dateien dann richtig ausgescheckt.</p>
<p>Mit Subversion ist das alles ein wenig anders. Nach dem Abruf einer Arbeitskopie vom Subversion-Server kann man Dateien beliebig editieren. Sind die Änderungen abgeschlossen, werden die Dateien wieder auf den Subversion-Server übertragen. Dieser speichert dann nur die Unterschiede und hält so seine Datenbank möglichst klein. Eine Verbindung zum Subversion-Server muss nur während des Abrufens/Aktualisierens der Arbeitskopie und des Übertragens zurück bestehen. Damit lässt es sich auch problemlos unterwegs arbeiten.</p>
<p>Die Unterstützung von mehreren Entwicklungszweigen (Branches) ist in SourceSafe quasi gar nicht vorhanden. Zudem wird die Verbindung eines Projekts zur Quellcodeverwaltung direkt in der Projektdatei gespeichert, was die Ablage von Projektkopien in anderen Ordnern (z.B. bei einem neuen Release) sehr erschwert. Wenn man dann die Verbindung nicht löst, möchte Visual Studio immer die Verbindung zum Originalprojekt herstellen.</p>
<p>Mit Subversion gibt es diese Probleme nicht. Verschiedene Entwicklungszweige sind einfach zu verwalten, auch die Übernahme von Änderungen in andere Zweige ist problemlos möglich. Die Projektdateien sind anderen Dateien gleichgestellt und enthalten keine datenbankspezifischen Informationen mehr.</p>
<p>Das ermöglicht es mir jetzt endlich, ein paar Wochen vor der Veröffentlichung eines Updates einen separaten Zweig dafür zu erstellen, die aktive Entwicklung dafür einzustellen und wirklich nur noch nötige Korrekturen vorzunehmen. Die normale Entwicklung an der nächsten Version kann dann schon weitergehen, ohne auf das geplante Update Einfluss zu nehmen.  Damit entfällt nun auch die <a href="http://blog.speedproject.de/2006/04/24/releasezeiten/">Wohlverhaltensperiode vor und nach dem Release</a>, in der ich mich zwingen musste, meine Finger im Zaum zu halten. Treten nach dem Update doch noch unerwartete Fehler auf, so können diese im separaten Zweig behoben und schneller als Fix zur Verfügung gestellt werden.</p>
<p>Die Einrichtung von Subversion ist sehr einfach. Nach der Installation wechselt man in der Kommandozeile in das <strong>bin</strong>-Verzeichnis und richtet <strong>svnserver.exe</strong> als Dienst ein:</p>
<blockquote><p>sc create svnserve binPath= &#8220;C:\Programme\Subversion\bin\svnserve.exe &#8211;service -r D:\Projekte\Subversion&#8221; DisplayName= &#8220;Subversion&#8221; depend= tcpip start= auto</p></blockquote>
<p>Anschließend muss nur noch ein <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_de/tsvn-repository.html#tsvn-repository-create">neues Projektarchiv</a> erstellt werden. Alternativ kann man sich auch das Rundum-Sorglos-Paket <a href="http://www.visualsvn.com/server/">VisualSVN Server</a> herunterladen. Dieses installiert einen Apache-Server samt Subversion-Integration und erstellt auch gleich das Projektarchiv. Damit hatte ich meine ersten Gehversuche gemacht, bin aber anschließend auf die performantere Dienst-Methode umgestiegen.</p>
<p>Auf dem Client-Rechner wird <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> installiert, damit erfolgt der Zugriff auf die Quellcodeverwaltung bequem aus SpeedCommander (oder dem Explorer) heraus. Für die Integration in Visual Studio empfiehlt sich <a href="http://www.visualsvn.com/">VisualSVN</a>. Die Einzellizenz kostet $49 und macht sich schnell bezahlt.</p>
<p>Letztlich kann ich jedem SourceSafe-Anwender nur empfehlen, auf Subversion zu wechseln. Beim Einstieg beantwortet die <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_de/">umfangreiche Dokumentation</a> viele Fragen, für die ersten Gehversuche kann man sich ein Projektarchiv zum Spielen einrichten. Mit einer möglichen Konvertierung der SourceSafe-Datenbank habe ich mich nicht beschäftigt, ich wollte einen frischen Start ohne Altlasten.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.speedproject.de/2008/05/28/von-sourcesafe-zu-subversion/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
