<?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>Pesches Schlauch &#187; Hug-Witschi</title>
	<atom:link href="http://pesche.schlau.ch/category/hug-witschi/feed/" rel="self" type="application/rss+xml" />
	<link>http://pesche.schlau.ch</link>
	<description>Sind Schläuche schlau?</description>
	<lastBuildDate>Thu, 01 Apr 2010 06:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Merge down, copy up</title>
		<link>http://pesche.schlau.ch/2007/07/03/merge-down-copy-up/</link>
		<comments>http://pesche.schlau.ch/2007/07/03/merge-down-copy-up/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 17:06:15 +0000</pubDate>
		<dc:creator>Pesche</dc:creator>
				<category><![CDATA[Hug-Witschi]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pesche.schlau.ch/2007/07/03/merge-down-copy-up/</guid>
		<description><![CDATA[If you are using any SCM that allows cheap branches (like  Perforce) and are following the advices from the High-level Best Practices document, you might be interested in (or already know) Laura Wingerd&#8217;s presentation Convergence vs. Divergence: Purposeful Merging with Perforce about how to converge to codelines using Merge Down, Copy Up [PDF]. I [...]]]></description>
			<content:encoded><![CDATA[<p>If you are using any SCM that allows cheap branches (like  <a href="http://www.perforce.com/">Perforce</a>) and are following the advices from the <a href="http://www.perforce.com/perforce/bestpractices.html">High-level Best Practices</a> document, you might be interested in (or already know) Laura Wingerd&#8217;s presentation <a href="http://www.perforce.com/perforce/conferences/eu/2006/presentations/laura_wingerd/ConvergenceVsDivergence.html">Convergence vs. Divergence: Purposeful Merging with Perforce</a> about how to converge to codelines using <a href="http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf">Merge Down, Copy Up [PDF]</a>. I have seen it many times that a main codeline got broken because the Merge Down, Copy Up idiom was ignored.</p>
<p>The detailed procedure of Merge Down, Copy Up is explained on <a href="http://www.perforce.com/perforce/conferences/eu/2006/presentations/laura_wingerd/ConvergenceVsDivergence.html#ConvergenceVsDivergence.section.22">Slide 22</a> of the talk. Unfortunately it doesn&#8217;t work in the presence of files with expanded <a href="http://www.perforce.com/perforce/doc.072/manuals/cmdref/o.ftypes.html#1042691">keywords</a> (type <code>text+k</code>). All these files don&#8217;t get reverted in step 4 (<code>p4 diff -sr | p4 -x - revert</code>), although they differ only in keyword expansion.</p>
<p>There is currently no direct way using <a href="http://www.perforce.com/">Perforce</a> commands to work around this problem. However, the <code>p4 diff</code> commands to plug in a different diff tool. My solution on Windows therefore consists of two scripts, one to set up <code>P4DIFF</code> and call <code>p4 diff</code> (<a href="http://public.perforce.com:8080/guest/peter_steiner/merge-down-copy-up/revert_unchanged.bat"><code>revert_unchanged.bat</code></a>), the other as the plug in diff tool (<a href="http://public.perforce.com:8080/guest/peter_steiner/merge-down-copy-up/diff_no_keywords.bat"><code>diff_no_keywords.bat</code></a>). The scripts need a couple of additional filters like <code>diff</code>, <code>grep</code> and <code>cut</code>. While the <a href="http://cygwin.com/">cygwin</a> <code>grep</code> is fine, you must not use its <code>diff</code> and <code>cut</code> binaries, because these are too much unixish and have problems with the backslash path delimiters that <code>p4 diff</code> is handing out (or you could perhaps use the <a href="http://www.perforce.com/perforce/downloads/cygwinx86.html">cygwin variant of p4</a>, if you have a current one). I have used the binaries from <a href="http://unxutils.sourceforge.net/">http://unxutils.sourceforge.net/</a>.</p>
<p>Both scripts are available from the <a href="http://public.perforce.com/public/index.html">Perforce Public Depot</a>: <a href="http://public.perforce.com:8080/guest/peter_steiner/merge-down-copy-up/revert_unchanged.bat"><code>revert_unchanged.bat</code></a>, <a href="http://public.perforce.com:8080/guest/peter_steiner/merge-down-copy-up/diff_no_keywords.bat"><code>diff_no_keywords.bat</code></a>. You use them as additional step 4a after the <code>p4 diff -sr</code> step.</p>
]]></content:encoded>
			<wfw:commentRss>http://pesche.schlau.ch/2007/07/03/merge-down-copy-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>envvc</title>
		<link>http://pesche.schlau.ch/2007/04/05/envvc/</link>
		<comments>http://pesche.schlau.ch/2007/04/05/envvc/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 11:34:14 +0000</pubDate>
		<dc:creator>Pesche</dc:creator>
				<category><![CDATA[Hug-Witschi]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pesche.schlau.ch/2007/04/05/envvc/</guid>
		<description><![CDATA[Did you ever have the need to use different versions of Microsofts Visual C++ compiler from the command line? Did you wish you wouldn&#8217;t have to constantly call vcvars32.bat or change your environment (PATH, INCLUDE and LIB variables)?
In comes a little tool called envvc.exe. It sets the environment for the chosen version and then calls [...]]]></description>
			<content:encoded><![CDATA[<p>Did you ever have the need to use different versions of Microsofts Visual C++ compiler from the command line? Did you wish you wouldn&#8217;t have to constantly call vcvars32.bat or change your environment (PATH, INCLUDE and LIB variables)?</p>
<p>In comes a little tool called <tt>envvc.exe</tt>. It sets the environment for the chosen version and then calls any chosen executable. As additional feature it verifies that you have installed the latest service pack for the chosen version.</p>
<p>Supported configurations:</p>
<ul>
<li>VC 6, example:<br />
<pre><code>envvc 60 cl ...
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80</code></pre><pre><code>x86
...</code></pre></li>
<li>VC 7.1 (VS 2003). Example (without the current SP1, simulating an error message):<br />
<pre><code>envvc -f 71 cl ...
C:\Program Files\Microsoft Visual Studio .NET 2003\install.htm(1) : error SP: there&#039;s a newer service pack available!
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80</code></pre><pre><code>x86
...</code></pre></li>
<li>VC 8 (VS 2005) Example:<br />
<pre><code>envvc 80 cl ...
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80</code></pre><pre><code>x86
...</code></pre></li>
<li>VC 8 with the .NET 3 SDK. Example:<br />
<pre><code>envvc fx 80 svcutil ...
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.30]
...</code></pre></li>
</ul>
<p>No configuration is needed for envvc; all informations about where the compilers are installed and which service packs have been applied are read from the Windows Registry. But the known service packs are hard coded, so you have to patch envvc whenever Microsoft releases another service pack.</p>
<p>The source to envvc is available under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License</a> (<a href="/files/LICENSE_1_0.txt">local copy</a>): <a href="/files/envvc.cpp">envvc.cpp</a>. Feedback is appreciated!</p>
]]></content:encoded>
			<wfw:commentRss>http://pesche.schlau.ch/2007/04/05/envvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gratulation nach Schwarzenburg!</title>
		<link>http://pesche.schlau.ch/2007/03/07/kaba-platform-screen-doors/</link>
		<comments>http://pesche.schlau.ch/2007/03/07/kaba-platform-screen-doors/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 22:28:45 +0000</pubDate>
		<dc:creator>Pesche</dc:creator>
				<category><![CDATA[Hug-Witschi]]></category>

		<guid isPermaLink="false">http://pesche.schlau.ch/2007/03/07/kaba-platform-screen-doors/</guid>
		<description><![CDATA[Wie diese Woche bekannt wurde, gewann Kaba-Gilgen AG aus Schwarzenburg nach einem sechsmonatigen Pilotbetrieb die internationale Ausschreibung der Pariser Métro (RATP), zwei Linien mit halbhohen Bahnsteigtüren (Platform Screen Doors PSD half-height, PDF) auszurüsten.
Ich gratuliere dem ADP-Team von Kaba-Gilgen für diesen Erfolg und freue mich, dass damit auch die Arbeit von Hug-Witschi den Weg nach Paris [...]]]></description>
			<content:encoded><![CDATA[<p>Wie diese Woche <a href="http://www.kaba-gilgen.ch/de/infos/news/pariser-metro/">bekannt</a> <a href="http://www.kaba.com/d/presse/presse2007-03-051-d.html">wurde</a>, gewann <a href="http://kaba-gilgen.ch/">Kaba-Gilgen AG</a> aus Schwarzenburg nach einem <a href="http://www.metro-pole.net/actu/article791.html">sechsmonatigen Pilotbetrieb</a> die internationale Ausschreibung der Pariser Métro (<a href="http://ratp.fr/">RATP</a>), zwei Linien mit <a href="http://www.kaba-gilgen.ch/de/produkte/bahnsteigtueren/">halbhohen Bahnsteigtüren</a> (Platform Screen Doors PSD half-height, <a href="http://www.kaba-gilgen.ch/fileadmin/user_upload/Dokumente/PSD/Bahnsteigt%FCren%20PSD%20Systembeschrieb.pdf">PDF</a>) auszurüsten.</p>
<p>Ich gratuliere dem <a href="http://www.kaba-gilgen.ch/de/produkte/bahnsteigtueren/kontakt/">ADP</a>-Team von Kaba-Gilgen für diesen Erfolg und freue mich, dass damit auch die Arbeit von <a href="http://www.hugwi.ch/">Hug-Witschi</a> den Weg nach Paris findet. Hug-Witschi hat im Auftrag von Kaba-Gilgen die Steuerung (Hardware und erste Version der Software) der einzelnen Türeinheiten entwickelt.</p>
]]></content:encoded>
			<wfw:commentRss>http://pesche.schlau.ch/2007/03/07/kaba-platform-screen-doors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dmake Stories</title>
		<link>http://pesche.schlau.ch/2006/04/17/dmake-stories/</link>
		<comments>http://pesche.schlau.ch/2006/04/17/dmake-stories/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 17:16:14 +0000</pubDate>
		<dc:creator>Pesche</dc:creator>
				<category><![CDATA[Hug-Witschi]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pesche.schlau.ch/2006/04/17/dmake-stories/</guid>
		<description><![CDATA[At work, we started using dmake in 1991 (or even earlier) for building the firmware for the Vending Machine Controller Euro&#8217;90. The firmware consisted mostly of PL/M and C code and the compilers suffered from the DOS limitation of 127 characters per command line. Dennis Vadura&#8217;s dmake 3.70 (hosted by the University of Waterloo and [...]]]></description>
			<content:encoded><![CDATA[<p>At <a title="Hug-Witschi" href="http://www.hugwi.ch/">work</a>, we started using <a href="http://tools.openoffice.org/dmake/index.html">dmake</a> in 1991 (or even earlier) for building the firmware for the Vending Machine Controller <a href="http://www.hugwi.ch/german/prod-main-ctrl.html#euro90">Euro&#8217;90</a>. The firmware consisted mostly of PL/M and C code and the compilers suffered from the DOS limitation of 127 characters per command line. Dennis Vadura&#8217;s dmake 3.70 (hosted by the <a href="http://www.uwaterloo.ca/">University of Waterloo</a> and available as DOS version) featured the <tt>$(mktmp )</tt> macro that let me create any needed temporary config and response files.</p>
<p>Later we kept using dmake for the software for our <a href="http://www.diva-interface.com/">DIVA</a> and <a href="http://www.cci-csi-interface.com/">CCI/CSI</a> interface families. The build system had grown quite complex and the makefiles made heavy use of the percent pattern rules and delegation to makefiles in other directories.</p>
<p>A couple of years ago, when I first tried to define a target that builds everything (several firmware variants, debug and release builds), I encountered a strange error from dmake:</p>
<p><pre>dmake.exe:&nbsp;&nbsp;Error: -- Unable to change to directory `xy?&#039;, target is [sub-b]</pre></p>
<p>The latest release then (dmake 4.1) was labeled as &#8220;final free release&#8221;; the last dmake homepage from Dennis Vadura (dmake.wticorp.com, online ca. 2001), once tried to sell &#8220;dmake Gold&#8221;, but was already unreachable at this time. As the days of open source dmake seemed over, I was hesitating to invest time finding bugs and thought that we would move soon to another build system anyway.</p>
<p>Recently (we&#8217;re still using dmake&#8230;) I have learned that <a href="http://tools.openoffice.org/dmake/index.html">OpenOffice.org has &#8220;adopted&#8221; dmake</a> and resumed its development. This gave me the energy to finally hunt down this bug: a dangling pointer.</p>
<p>Until my fix is integrated into a future dmake release, you can get the patch from the <a href="http://www.openoffice.org/issues/show_bug.cgi?id=64431">OpenOffice Issue Tracker</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pesche.schlau.ch/2006/04/17/dmake-stories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
