<?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>Flight of the BryCoBat &#187; Software Engineering</title>
	<atom:link href="http://www.brycobat.net/category/software-engineering/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brycobat.net</link>
	<description>Things an Amateur Computer Scientist Rarely Talks About</description>
	<lastBuildDate>Sun, 28 Nov 2010 21:44:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TIL: Calling MSBuild with arguments from PSake</title>
		<link>http://www.brycobat.net/2010/11/18/til-calling-msbuild-with-arguments-from-psake/</link>
		<comments>http://www.brycobat.net/2010/11/18/til-calling-msbuild-with-arguments-from-psake/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 17:22:20 +0000</pubDate>
		<dc:creator>brycobat</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.brycobat.net/?p=38</guid>
		<description><![CDATA[If you want to call msbuild with arguments from psake without getting errors like &#8220;MSB1008: Only one project can be specified&#8221;, you&#8217;ll have to do some quoting: exec &#123;msbuild &#34;/verbosity:quiet&#34; &#34;/p:WarningLevel=4;OutDir=$build\\&#34; &#34;/t:Clean,Build&#34; MySolution.sln &#125;]]></description>
			<content:encoded><![CDATA[<p>If you want to call msbuild with arguments from psake without getting errors like &#8220;MSB1008: Only one project can be specified&#8221;, you&#8217;ll have to do some quoting:</p>

<div class="wp_syntax"><div class="code"><pre class="powershell" style="font-family:monospace;">exec <span style="color: #000000;">&#123;</span>msbuild <span style="color: #800000;">&quot;/verbosity:quiet&quot;</span> <span style="color: #800000;">&quot;/p:WarningLevel=4;OutDir=$build\\&quot;</span> <span style="color: #800000;">&quot;/t:Clean,Build&quot;</span> MySolution.sln <span style="color: #000000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.brycobat.net/2010/11/18/til-calling-msbuild-with-arguments-from-psake/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIL: Powershell ISE, Text Encoding, and Mercurial.</title>
		<link>http://www.brycobat.net/2010/11/18/til-powershell-ise-text-encoding-and-mercurial/</link>
		<comments>http://www.brycobat.net/2010/11/18/til-powershell-ise-text-encoding-and-mercurial/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 17:15:49 +0000</pubDate>
		<dc:creator>brycobat</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.brycobat.net/?p=32</guid>
		<description><![CDATA[By default, PowerShell ISE uses a 16-bit Unicode text encoding, if you let it create your script. Mercurial, specifically TortoiseHg, says a file is binary if it contains any NUL bytes. ASCII-compatible text, encoded as UTF-16, or a variant thereof, will contain *plenty* of NUL bytes for Mercurial to find, thus you can&#8217;t see diffs [...]]]></description>
			<content:encoded><![CDATA[<p>By default, PowerShell ISE uses a 16-bit Unicode text encoding, if you let it create your script. Mercurial, specifically TortoiseHg, says a file is binary if it contains any NUL bytes.</p>
<p>ASCII-compatible text, encoded as UTF-16, or a variant thereof, will contain *plenty* of NUL bytes for Mercurial to find, thus you can&#8217;t see diffs for scripts you create with Powershell ISE in your Commit window.</p>
<p>To create UTF-8 versions of your scripts, you can run:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008080; font-weight: bold;">gci</span> <span style="color: #008080; font-style: italic;">-recurse</span> <span style="color: #008080; font-style: italic;">-include</span> <span style="color: pink;">*</span>.ps1<span style="color: pink;">,*</span>.psm1 <span style="color: pink;">|</span> <span style="color: pink;">%</span><span style="color: #000000;">&#123;</span><span style="color: #800080;">$foo</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">gc</span> <span style="color: #000080;">$_</span>; <span style="color: #800080;">$foo</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">out-file</span> <span style="color: pink;">-</span>en utf8 <span style="color: #000080;">$_</span><span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Of course, if you actually *need* UTF-16 characters in your scripts/modules, this would be a Bad Idea.</p>
<p>Other workarounds include using a different text editor to create your script, then edit in Powershell ISE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brycobat.net/2010/11/18/til-powershell-ise-text-encoding-and-mercurial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serving Mercurial from Windows, Part 2: Maybe I don&#8217;t have to after all&#8230;</title>
		<link>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-2-maybe-i-dont-have-to-after-all/</link>
		<comments>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-2-maybe-i-dont-have-to-after-all/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 16:32:25 +0000</pubDate>
		<dc:creator>brycobat</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[dscm]]></category>
		<category><![CDATA[dvcs]]></category>
		<category><![CDATA[hg]]></category>
		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://www.brycobat.net/?p=16</guid>
		<description><![CDATA[Perhaps this is a bit short-sighted of me, but it looks like we could actually make use of network shares to get to repositories on other machines. A &#8220;developers&#8221; share is already set up on our machines, and everybody knows how to get to it from project machines. If this is a viable solution, I [...]]]></description>
			<content:encoded><![CDATA[<p>Perhaps this is a bit short-sighted of me, but it looks like we could actually make use of network shares to get to repositories on other machines. A &#8220;developers&#8221; share is already set up on our machines, and everybody knows how to get to it from project machines. If this is a viable solution, I wouldn&#8217;t need anything special to A) serve up a mercurial repo or ten or B) get IT to back it up, since they already take good care of our existing shares. This would totally eliminate the need to install copSSH or LightTPD, or train people on how to use them, or convince IT (both ours and our clients) that &#8220;yes, you really do want me to install this extra server.&#8221;</p>
<p>I <strong>like</strong> potential solutions that are actually easier than what we&#8217;re doing now.</p>
<p>That leaves the code review cases, where I have a changeset I want someone else to review, but it doesn&#8217;t belong in the &#8220;central&#8221; repo until after it&#8217;s passed.</p>
<p>Perhaps if everybody had a share set up as \\MyMachineName\hg that pointed to wherever their local repos were kept, that would simplify finding shares.</p>
<p>Progress! I love it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-2-maybe-i-dont-have-to-after-all/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Serving Mercurial from Windows, Part 1: Finding LightTPD</title>
		<link>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-1-finding-lighttpd/</link>
		<comments>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-1-finding-lighttpd/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 14:39:01 +0000</pubDate>
		<dc:creator>brycobat</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dscm]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://www.brycobat.net/?p=14</guid>
		<description><![CDATA[This may seem simple and/or obvious, but LightTPD for Windows can be had at http://en.wlmp-project.net/. I&#8217;m currently trying just the server package, called &#8220;LightTPD for Windows&#8221; on the downloads page. They also have a WLMP Webserver Package that has other stuff built in. I don&#8217;t think I&#8217;ll need MySQL and such, but hey, if I [...]]]></description>
			<content:encoded><![CDATA[<p>This may seem simple and/or obvious, but LightTPD for Windows can be had at <a title="http://en.wlmp-project.net/" href="http://en.wlmp-project.net/">http://en.wlmp-project.net/</a>.</p>
<p>I&#8217;m currently trying just the server package, called &#8220;LightTPD for Windows&#8221; on the downloads page. They also have a WLMP Webserver Package that has other stuff built in. I don&#8217;t <strong>think</strong> I&#8217;ll need MySQL and such, but hey, if I do, it&#8217;s out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-1-finding-lighttpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serving Mercurial from Windows, Part 0</title>
		<link>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-0/</link>
		<comments>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-0/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 14:35:10 +0000</pubDate>
		<dc:creator>brycobat</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[dscm]]></category>
		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://www.brycobat.net/?p=13</guid>
		<description><![CDATA[Ok, I&#8217;ve drunk the distributed source code control kool-aid. I&#8217;m convinced. I want it. Unfortunately, for various reasons, if I want to use it at work right now, it has to run on Windows. That is, I need to be able to *serve* the repositories from Windows. I don&#8217;t have the luxury of slapping a [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I&#8217;ve drunk the distributed source code control kool-aid. I&#8217;m convinced. I want it. Unfortunately, for various reasons, if I want to use it at work right now, it has to run on Windows.</p>
<p>That is, I need to be able to *serve* the repositories from Windows. I don&#8217;t have the luxury of slapping a Linux box or two in our server room for this purpose (yet), and so I have to be able to do it from Windows.</p>
<p>Mercurial seems to have the best client support on Windows, so that&#8217;s the one I&#8217;m going to try first. It looks like there&#8217;s three ways to serve up a repository:</p>
<p><strong>hg serve</strong></p>
<p>This is only meant for small groups, on controlled networks, and it only handles clone and pull ops. We are a relatively small group, 8-10 people, and the network is controlled. If clone/pull is all most people need to serve up, then this may be the way to go for the 80% case.</p>
<p><strong>hg over SSH</strong></p>
<p>If you have an SSH server, you can do hg over ssh. This means installing Cygwin, which is overkill, I think, or using something like copSSH. I think I&#8217;d also have to manually manage users, or get permission from IT to hook in to the domain authentication stuff. That&#8217;s theoretically possible, but wouldn&#8217;t be easy for them or me.</p>
<p><strong>hg over HTTP using CGI</strong></p>
<p>If you have a web server, you can use that instead. There&#8217;s Apache, LightTPD, and IIS. I haven&#8217;t seen any success stories for hg on IIS, and I&#8217;m not really in this to break new ground if I don&#8217;t have to, so that leaves Apache and LightTPD. Of those two, I&#8217;m going to try LightTPD first, it&#8217;s a smaller install.</p>
<p>Not everybody will need push support, of course. I may be able to get away with only setting this up on a few key machines, and letting everybody else just do hg serve. They would still be able to pull changes from other repositories, and with hg serve we could pull changes from theirs. This would support the <a title="KernelPractice" href="http://www.selenic.com/mercurial/wiki/index.cgi/KernelPractice">KernelPractice</a> style, which is where I&#8217;d like to be when this is set up and working.</p>
<p>(edit: removed a trailing sentence fragment, what I get for not proofreading&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brycobat.net/2008/07/09/serving-mercurial-from-windows-part-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modifying app.config from nant using </title>
		<link>http://www.brycobat.net/2008/02/28/outrageous-silliness-or-silly-outrage/</link>
		<comments>http://www.brycobat.net/2008/02/28/outrageous-silliness-or-silly-outrage/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 23:14:35 +0000</pubDate>
		<dc:creator>brycobat</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.brycobat.net/2008/02/28/outrageous-silliness-or-silly-outrage/</guid>
		<description><![CDATA[If you&#8217;re trying to modify app.config files for a .Net app from a nant build script using the &#60;xmlpoke&#62; task, the namespace you need to use switches part-way through. If you&#8217;ve set prefix &#8220;x&#8221; as &#8220;urn:schemas-microsoft-com:asm.v1&#8243; in the namespaces, then a full path for assembly redirection may include the following: /configuration/runtime/x:assemblyBinding/x:dependentAssembly/&#8230; Note the lack of [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re trying to modify app.config files for a .Net app from a nant build script using the &lt;xmlpoke&gt; task, the namespace you need to use switches part-way through. If you&#8217;ve set prefix &#8220;x&#8221; as &#8220;urn:schemas-microsoft-com:asm.v1&#8243; in the namespaces, then a full path for assembly redirection may include the following:</p>
<p>/configuration/runtime/<strong>x:</strong>assemblyBinding/<strong>x:</strong>dependentAssembly/&#8230;</p>
<p>Note the lack of x&#8217;s on configuration and runtime, yet their presence on assemblyBinding (and all child nodes).</p>
<p>I feel both silly and outraged. Silly because I probably should&#8217;ve caught this sooner than I did. Outraged because it&#8217;s not mentioned anywhere, and the examples given for &lt;xmlpoke&gt; don&#8217;t go deep enough to uncover this particular xml-newbie gotcha.</p>
<p>*sigh*</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brycobat.net/2008/02/28/outrageous-silliness-or-silly-outrage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

