<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>EscApologist</title>
	<atom:link href="http://escapologist.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://escapologist.wordpress.com</link>
	<description>Geeky Techy Shiny Toys</description>
	<lastBuildDate>Fri, 31 Jul 2009 09:21:30 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='escapologist.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/1e523255853649c25fb2dd291a7cc3ac?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>EscApologist</title>
		<link>http://escapologist.wordpress.com</link>
	</image>
			<item>
		<title>MSBuildCommunityTasks and Versioning</title>
		<link>http://escapologist.wordpress.com/2009/07/30/autogenerate-version-numbers/</link>
		<comments>http://escapologist.wordpress.com/2009/07/30/autogenerate-version-numbers/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 10:51:11 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[TeamCity]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2009/07/30/autogenerate-version-numbers/</guid>
		<description><![CDATA[Auto-versioning our assemblies in TeamCity using MSBuild was more fiddly than I expected but ultimately a very clean implementation.
I&#8217;m using TeamCity for continuous integration and MSBuild to run our project&#8217;s solution file (.sln) as the build script. I wanted each of our builds to have a version number on the assembly (.exe) so that testers [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=87&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Auto-versioning our assemblies in TeamCity using MSBuild was more fiddly than I expected but ultimately a very clean implementation.</p>
<p>I&#8217;m using TeamCity for continuous integration and MSBuild to run our project&#8217;s solution file (.sln) as the build script. I wanted each of our builds to have a version number on the assembly (.exe) so that testers would know what they were dealing with. The format for the version number is the familiar dotted quad of Major.Minor.Build.Revision where the Build would be the build number from TeamCity and the Revision would be our version control system (VCS) revision number (our VCS is Perforce). </p>
<p>I use Scrum for Agile software construction, in an OpenUP project management process, so I&#8217;ve decided our Major number is the number of the release to the customer and the Minor is the iteration (Sprint) that produced the build. For example, my first build with this system was 0.8.282.11066 which means: we&#8217;ve yet to make a release to the customer (0); the build was from the eighth two-week Sprint (8); TeamCity has completed 282 builds; and Perforce is up to revision 11066.</p>
<p>MSBuildCommunityTasks includes an AssemblyInfo task. These are the steps I used to get this working:<br />(1) added MSBuildCommunityTasks to our &#8220;ExternalTools&#8221; folder in Perforce and submitted the MSBuild.Community.Tasks.dll and MSBuild.Community.Tasks.Targets files.<br />(2) integrated the MSBuildCommunityTasks items from step 1 into the solution&#8217;s &#8220;tools&#8221; folder.<br />(3) updated the MSBuild.Community.Tasks.Targets file to the correct path to the MSBuildCommunityTasksLib (in our &#8220;tools&#8221; folder from step 2).<br />(4) imported the Targets file from step 3 into the project file (.csproj).</p>
<p><code>&lt;MSBuildCommunityTasksTargets&gt;..\tools\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets&lt;/MSBuildCommunityTasksTargets&gt;<br />&lt;Import Project="$(MSBuildCommunityTasksTargets)" /&gt;<br /></code><br />(5) created the properties for the parts of the version number so it is easy to update for releases and works both on the developer&#8217;s machine, where the Build number and Revision number are set to 0, and on TeamCity which provides environment variables for the TeamCity build number and the VCS revision number.</p>
<p><code>&nbsp; &lt;PropertyGroup&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!-- Release --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Major&gt;0&lt;/Major&gt;<br />&nbsp;&nbsp;&nbsp; &lt;!-- Iteration --&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Minor&gt;9&lt;/Minor&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Build&gt;0&lt;/Build&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Build Condition="'$(BUILD_NUMBER)' != ''"&gt;$(BUILD_NUMBER)&lt;/Build&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Revision&gt;0&lt;/Revision&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Revision Condition="'$(BUILD_VCS_NUMBER)' != ''"&gt;$(BUILD_VCS_NUMBER)&lt;/Revision&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Version&gt;$(Major).$(Minor).$(Build).$(Revision)&lt;/Version&gt;<br />&nbsp; &lt;/PropertyGroup&gt;<br /></code><br />(6) deleted the current AssemblyInfo.cs from the source and the VCS.<br />(6) add the AssemblyInfo task that will autogenerate the AssemblyInfo.cs for each build</p>
<p><code>&nbsp; &lt;Target Name="BeforeBuild"&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&lt;AssemblyInfo CodeLanguage="CS"&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OutputFile="$(MSBuildProjectDirectory)\Properties\AssemblyInfo.cs" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyTitle="MyProduct" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyDescription="My Product"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyConfiguration=""<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyCompany="MyCompany Ltd"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyProduct="MyProduct"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyCopyright="Copyright © MyCompany  Ltd 2009"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyTrademark=""<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ComVisible="false"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLSCompliant="true"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Guid="884276aa-6859-4318-8bb9-073f68a66057"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AssemblyVersion="$(Version)" /&gt;<br />&nbsp; &lt;/Target&gt;<br /></code><br />Now I need to create a WiX project to build a release version and expose it as an artifact in TeamCity so our testers can easily pick up a build themselves.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/MSBuildCommunityTasks%20AssemblyInfo%20TeamCity%20MSBuild" rel="tag">MSBuildCommunityTasks AssemblyInfo TeamCity MSBuild</a></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=48d54cad-f072-876c-8889-6b6c28670183" /></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=87&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2009/07/30/autogenerate-version-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>

		<media:content url="http://img.zemanta.com/pixy.gif?x-id=48d54cad-f072-876c-8889-6b6c28670183" medium="image" />
	</item>
		<item>
		<title>When is a Task &#8216;Complete&#8217;?</title>
		<link>http://escapologist.wordpress.com/2009/07/28/when-is-a-task-done/</link>
		<comments>http://escapologist.wordpress.com/2009/07/28/when-is-a-task-done/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:38:56 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/?p=82</guid>
		<description><![CDATA[In Agile you have to define when a task may be considered &#8216;Complete&#8217;.
&#8216;Complete&#8217; is when: 

the unit tests are all passing
the automated acceptance tests are all passing
the task&#8217;s user acceptance test is passed
all supporting chores are completed, i.e. updating user guides, design documentation, etc..

If all the tasks are complete the workitem may be marked &#8216;Done&#8217;. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=82&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In Agile you have to define when a task may be considered &#8216;Complete&#8217;.</p>
<p>&#8216;Complete&#8217; is when: </p>
<ul>
<li>the unit tests are all passing</li>
<li>the automated acceptance tests are all passing</li>
<li>the task&#8217;s user acceptance test is passed</li>
<li>all supporting chores are completed, i.e. updating user guides, design documentation, etc..</li>
</ul>
<p>If all the tasks are complete the workitem may be marked &#8216;Done&#8217;. The Product Owner should be marking &#8216;Accepted&#8217; any workitem marked &#8216;Done&#8217;. He should be reviewing workitems daily if possible. If it cannot be accepted then he can throw it back into the iteration&#8217;s backlog.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=82&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2009/07/28/when-is-a-task-done/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>Development Impediments</title>
		<link>http://escapologist.wordpress.com/2009/07/28/developers-control-of-their-work/</link>
		<comments>http://escapologist.wordpress.com/2009/07/28/developers-control-of-their-work/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 15:19:17 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2009/07/28/developers-control-of-their-work/</guid>
		<description><![CDATA[
The environment at the place I&#8217;m currently working is structured to impede development. This can be divided into  certain types:
(1) Quality of tools.
The workstations that the developers have are poorly specified for user  interface development tasks. The machines are underpowered, resulting in  frequent, long timeouts. 
The machines cannot be easily upgraded as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=78&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span class=" ValueLabel">
<p>The environment at the place I&#8217;m currently working is structured to impede development. This can be divided into  certain types:</p>
<p>(1) Quality of tools.</p>
<p>The workstations that the developers have are poorly specified for user  interface development tasks. The machines are underpowered, resulting in  frequent, long timeouts. </p>
<p>The machines cannot be easily upgraded as it is their CPUs that are too long  in the tooth. A cost needs to be defined for upgrading machines and when there  is the finance available&nbsp;this should be budgeted for. Unfortunately, the company are not big on setting budgets.</p>
<p><span class=" ValueLabel">It is also difficult to obtain the necessary licences  for software.</span></p>
<p>(2) Control of environment.</p>
<p>The lack of Local Admin rights on the developers&#8217; machines significantly slows the uptake of new  technology and the crippled web access severely&nbsp;limits access to  information.</p>
<p>The workstation is the developer&#8217;s tool of the trade. Restricting the  developers&#8217; access to&nbsp;their toolboxes is preventing them from working well.  Policies that have been made to prevent abuse of the company&#8217;s assets should be  enforced through instructions and disciplinary action against offenders; there  is no need to treat everyone as if they can&#8217;t be trusted to use a computer.</p>
<p>I cannot understate how important this issue is. A software engineer is an  expert computer user and there&#8217;s no excuse for treating them as anything  else.</p>
<p>(3) Specification of projects.</p>
<p>The current projects have no specifications. This means no realistic  estimates can be made of when a project will be completed and how much effort  will be required. A lot of effort is wasted as the work is developed ad hoc and  often requires rework. </p>
<p>Requirements change&nbsp;is to be expected. Indeed, where it provides for a&nbsp;system  better aligned with users needs they are to be welcomed.&nbsp;Management,  however,&nbsp;must understand and accept&nbsp;the extra costs involved in rework or extra  work.</p>
<p>(4) Distrust of developers.</p>
<p>There have been failings from the developers that have resulted, in the past,  in misuse of company assets and timewasting.&nbsp;More recently there have been  delays in&nbsp;project completion.</p>
<p>To help alleviate this mistrust&nbsp;the developers would like management to be  regularly updated on progress. Attention will be drawn to project burndowns and  management will be provided with regular demonstrations of the applications.</p>
<p>A company handbook would be useful to state the company&#8217;s  policies.</p>
<p></span></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=b4866f10-548a-8bd7-90f8-6301d8eb286a" /></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=78&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2009/07/28/developers-control-of-their-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>

		<media:content url="http://img.zemanta.com/pixy.gif?x-id=b4866f10-548a-8bd7-90f8-6301d8eb286a" medium="image" />
	</item>
		<item>
		<title>Installing Aptana Studio 1.2 on Ubuntu 8.10 x86</title>
		<link>http://escapologist.wordpress.com/2009/02/05/installing-aptana-studio-12-on-ubuntu-810-x86/</link>
		<comments>http://escapologist.wordpress.com/2009/02/05/installing-aptana-studio-12-on-ubuntu-810-x86/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 11:24:45 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2009/02/05/installing-aptana-studio-12-on-ubuntu-810-x86/</guid>
		<description><![CDATA[I&#8217;m using Aptana Studio for some PHP/RoR/Python web development and I have Win XP x64 on a Rock xtreme64 D900K but my Sony Vaio TX3 uses Ubuntu (Compiz Fusion is irresistible). To keep the development environments the same I&#8217;ve created an Ubuntu guest virtual machine (VM) for PHP work on the Win XP host machine. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=65&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m using <a href="http://www.aptana.com/">Aptana Studio</a> for some PHP/RoR/Python web development and I have Win XP x64 on a Rock xtreme64 D900K but my Sony Vaio TX3 uses Ubuntu (Compiz Fusion is irresistible). To keep the development environments the same I&#8217;ve created an Ubuntu guest virtual machine (VM) for PHP work on the Win XP host machine. Aptana is easy to install under Windows but it&#8217;s less easy under Linux so it&#8217;s worth documenting how this can be done with the current releases. </p>
<p><a href="http://www.virtualbox.org/">VirtualBox</a> VM with Windows XP x64 Host and Ubuntu 8.10 Desktop x86 Guest (procedure should work for any Ubuntu 8.10 install).</p>
<ol>
<li>download and unarchive Aptana Studio Standalone for Linux (v.1.2)</li>
<li>place the aptana folder under /usr/local/aptana
<p><code>sudo mv ./aptana/ /usr/local/</code></li>
<li>install Java v.1.6
<p><code>sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts</code></li>
<li>install xulrunner 1.8.*  with the Synaptic Package Manager</li>
<li>save the following script as /usr/local/aptana/runAptana.sh
<p><code>#!/bin/bash<br />
export MOZILLA_FIVE_HOME=/usr/lib/xulrunner<br />
/usr/local/aptana/AptanaStudio</code></li>
<li>Make your script executable
<p><code>chmod +x runAptana.sh</code></li>
<li>download and unarchive the Aptana icons: <a href="http://support.aptana.com/asap/secure/attachment/10398/aptana_icons.zip">http://support.aptana.com/asap/secure/attachment/10398/aptana_icons.zip</a></li>
<li>move the aptana_icons folder to under the aptana folder</li>
<li>create a desktop and/or panel launcher
<p>name: Aptana Studio<br />
command: browse to /usr/local/aptana/runAptana.sh<br />
icon: use aptana48&#215;48.png for the desktop launcher<br />
comment: web development</li>
<li>click on launcher <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</li>
</ol>
<p>Note: I didn&#8217;t need to install Firefox v.2. The current version of FF is 3.0.5.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Ubuntu" rel="tag">Ubuntu</a>, <a class="performancingtags" href="http://technorati.com/tag/Aptana" rel="tag">Aptana</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=65&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2009/02/05/installing-aptana-studio-12-on-ubuntu-810-x86/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>Geocode accuracy with UK postcodes and Google APIs</title>
		<link>http://escapologist.wordpress.com/2009/01/30/geocode-accuracy-with-uk-postcodes-and-google-apis/</link>
		<comments>http://escapologist.wordpress.com/2009/01/30/geocode-accuracy-with-uk-postcodes-and-google-apis/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 17:17:33 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[GoogleAPIs]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2009/01/30/geocode-accuracy-with-uk-postcodes-and-google-apis/</guid>
		<description><![CDATA[Using the Google APIs is entirely painless so if I need a map in a web app that&#8217;s where I&#8217;ll start. 
I had a list of hotels I wanted to display and instead of looking up the latitude and longitude of each of them by hand I thought I&#8217;d use the google.maps.ClientGeocoder functionality. A bit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=61&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Using the Google APIs is entirely painless so if I need a map in a web app that&#8217;s where I&#8217;ll start. </p>
<p>I had a list of hotels I wanted to display and instead of looking up the latitude and longitude of each of them by hand I thought I&#8217;d use the google.maps.ClientGeocoder functionality. A bit of quick, scruffy code later and it&#8217;s looking them all up and putting the markers on the map but not where I expected. </p>
<p>I discovered that the postcodes are being truncated in the search, cutting off the last two letters. This seriously degrades the accuracy of each marker&#8217;s placement and many of the markers ended up on top of each other. The reason is probably the cost to Google of licensing the data from the Post Office. Fair enough but I was most of the way to my solution. There&#8217;s a simple workaround, however, do your lookup through the Google Search API&#8217;s LocalSearch class and pull the lat and lng from that. Bonzer. </p>
<p>In the code below look for the reference to localSearch in the newMarker function.</p>
<p><code>&lt;html&gt;<br />&lt;head&gt;<br />&nbsp;&nbsp;&nbsp; &lt;script src=”http://www.google.com/jsapi?key=&lt;&lt;INSERT API KEY HERE&gt;&gt;”&gt;&lt;/script&gt;<br />&nbsp;&nbsp;&nbsp; &lt;script type=”text/javascript”&gt;<br />&nbsp;&nbsp;&nbsp; google.load(”maps”, “2″,{”other_params”:”sensor=false”});<br />&nbsp;&nbsp;&nbsp; google.load(”search”, “1″);<br />&nbsp;&nbsp;&nbsp; &lt;/script&gt;<br />&nbsp;&nbsp;&nbsp; &lt;script type=”text/javascript”&gt;<br />&nbsp;&nbsp;&nbsp; var map;<br />&nbsp;&nbsp;&nbsp; function loadMap() {<br />&nbsp;&nbsp;&nbsp; &nbsp; if (google.maps.BrowserIsCompatible()) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; map = new google.maps.Map2(document.getElementById(”map”));<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var house = new google.maps.LatLng(52.742844, -0.406194);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; map.setCenter(house, 10);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var marker = new google.maps.Marker(house, { title: “Venue” });<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; map.addOverlay(marker);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; map.addControl(new google.maps.SmallMapControl());<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; addBeds();<br />&nbsp;&nbsp;&nbsp; &nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; function addBeds() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ch = [ 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U' ];<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var name = [ 'The George Hotel', 'Bridge House', 'Dormy House', 'Mill House', 'Maycroft Cottage', 'The Wishing Well Inn', 'Willoughby Arms', 'The Royal Oak Inn', 'The Baskervilles Hotel', 'Lady Annes Hotel', 'The Garden House Hotel', 'The Crown Hotel', 'The Bull and Swan', 'The Griffin Inn', 'The Oak Inn', 'Rock Lodge', 'The Royal Oak Inn', 'Travelodge Hotel', 'The Dolphin Guest House', 'Lindsey Cottage' ];<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var address = [ 'PE9 2LB', 'PE10 0JT', 'PE10 9EZ', 'PE10 9BU', 'PE10 0RB', 'PE10 0AF', 'NG33 4RA', 'NG33', 'Baston', 'PE9 2LJ', 'PE9 2LP', 'PE9 2AG', 'Stamford', 'NG33 4JG', 'pe9 3pa', 'PE9 2RH', 'Duddington, Stamford', 'NG33 5JR', 'PE9 1QD', 'Uffington, Stamford' ];<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var base = “http://www.google.com/mapfiles/marker”;<br />&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; for (var i = 0; i &lt; ch.length; ++i) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var icon = new google.maps.Icon(G_DEFAULT_ICON);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; icon.image = base + ch[i] + “.png”;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; newMarker(address[i], name[i], icon);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; function newMarker(address, name, icon) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // ref: http://www.tomanthony.co.uk/blog/geocoding-uk-postcodes-with-google-map-api/<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var localSearch = new GlocalSearch();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; localSearch.setSearchCompleteCallback(null, function() {&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (localSearch.results[0]) {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var lat = localSearch.results[0].lat;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var lng = localSearch.results[0].lng;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; console.info( address + ” = ” + lat + “, ” + lng );<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var point = new google.maps.LatLng( lat, lng );<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var marker = new google.maps.Marker(point, { icon: icon, title: name });<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; map.addOverlay(marker);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; console.warn( address + ” not found” );<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; localSearch.execute( address + “, UK” );<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; google.setOnLoadCallback(loadMap);<br />&nbsp;&nbsp;&nbsp; &lt;/script&gt;<br />&lt;/head&gt;<br />&lt;body onunload=”google.maps.Unload()”&gt;<br />&nbsp;&nbsp;&nbsp; &lt;div id=”map” style=”width:300px; height:420px;”&gt;Loading…&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</code></p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/GoogleMaps" rel="tag">GoogleMaps</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=61&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2009/01/30/geocode-accuracy-with-uk-postcodes-and-google-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>VoIP on Orange Nokia N82</title>
		<link>http://escapologist.wordpress.com/2008/09/09/voip-on-orange-nokia-n82/</link>
		<comments>http://escapologist.wordpress.com/2008/09/09/voip-on-orange-nokia-n82/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 10:25:00 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[debrand]]></category>
		<category><![CDATA[N82]]></category>
		<category><![CDATA[Orange]]></category>
		<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2008/09/09/voip-on-orange-nokia-n82/</guid>
		<description><![CDATA[Orange have disabled the Internet Telephone menu on the Nokia N82 to prevent their subscribers setting up VoIP accounts using the built in SIP stack. You can still use Fring but you can&#8217;t use Truphone, Gizmo, etc.. Also, Orange customer support are clueless as are Nokia customer support. I&#8217;m being generous here, my opinion is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=57&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Orange have disabled the Internet Telephone menu on the Nokia N82 to prevent their subscribers setting up VoIP accounts using the built in SIP stack. You can still use Fring but you can&#8217;t use Truphone, Gizmo, <u>etc</u>.. Also, Orange customer support are clueless as are Nokia customer support. I&#8217;m being generous here, my opinion is they were directly lying to me. Only Carphone Warehouse were honest about the problem.</p>
<p>To get a working phone you have to debrand it. I managed this with the Nemesis Service Suite (NSS), the EURO 1 product code, the Nokia Software Updater (NSU) and a hard reset.</p>
<p>With NSS (Beta 1.0.38.14) I did the following:<br />1. Installed choosing Virtual USB device.<br />2. Started in PC Suite mode (N82 set to PC Suite mode throughout).<br />3. Clicked on the magnifying glass.<br />4. Phone Info &gt; Scan<br />5. Product Code &gt; Enable &gt; Read<br />6. Entered the EURO 1 product code (0549174)<br />7. Write<br />8. Tools &gt; Full Factory &gt; Reset</p>
<p>I restarted my phone just to make sure this hadn&#8217;t bricked the device.</p>
<p>With NSU I had to set up Comodo Firewall just so as NSU uses some odd ports, amongst other, less than sensible, programming decisions by Nokia. I was then able to reflash the firmware (v.20.0.062).</p>
<p>Next you have to reset the device so it uses the new firmware. I tried the reset using * + 3 + &#8220;Call button&#8221; simultaneously while turning on (aka Vulcan nerve pinch) but that didn&#8217;t seem to help so I used Ezra&#8217;s instructions for a <a target="_blank" href="http://n82blog.wordpress.com/2008/02/25/hard-reset-your-n82/">hard reset</a>. Now all the menu options are enabled!</p>
<p>I restored just my contacts list from PC Suite and nothing else. Now I have Truphone and Gizmo working no problem at all and I&#8217;ll try to set up Sipgate next.</p>
<p>Here are some other folks experiences: <a target="_blank" href="http://www.esato.com/board/viewtopic.php?topic=164114">Nokia N82 Debrand &amp; Update</a>, <a target="_blank" href="http://ericscorner.blogspot.com/2008/04/n95-n82-turn-off-camera-sound.html">Eric&#8217;s Corner</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escapologist.wordpress.com/57/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escapologist.wordpress.com/57/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=57&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2008/09/09/voip-on-orange-nokia-n82/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>USB drive portable apps</title>
		<link>http://escapologist.wordpress.com/2008/09/08/usb-drive-portable-apps/</link>
		<comments>http://escapologist.wordpress.com/2008/09/08/usb-drive-portable-apps/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 10:33:48 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2008/09/08/usb-drive-portable-apps/</guid>
		<description><![CDATA[My 1GB USB thumb drive (or flash drive) is over two years old and it&#8217;s seen a lot of action. In fact, too much, as it&#8217;s cooked. I mean this quite literally &#8211; it runs very hot and misreports itself, completely dropping off the other day. It&#8217;s being a bit quirky now but I have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=51&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My 1GB USB thumb drive (or flash drive) is over two years old and it&#8217;s seen a lot of action. In fact, too much, as it&#8217;s cooked. I mean this quite literally &#8211; it runs very hot and misreports itself, completely dropping off the other day. It&#8217;s being a bit quirky now but I have a replacement, a SanDisk Cruzer Micro Skin 8GB. This seems like a good time to record how it&#8217;s set up as it&#8217;s had a lot of tweaks over the last couple of years. I ran with a 256MB thumb drive before that so there&#8217;s been quite a bit of expansion in how I use my usb stick. The main thing that&#8217;s changed is that it now has exclusively free software on it.</p>
<p>I&#8217;ve created three top-level folders: Data, Downloads and Program Files. The only files at the root are a ReturnIfLost.txt, a launch.bat and an AutoRun.inf. As the drive sits on my keyring the ReturnIfLost file has anonymous details in it (and the offer of a small reward)!</p>
<p><code>xxx@yahoo.co.uk<br />
+44xxxxxxxxxx<br />
20UKP reward for safe return!</code></p>
<p>The launch.bat is:</p>
<p><code>@echo off<br />
REM Launch portable apps<br />
cd "Program Files\PStart"<br />
start PStart.exe</code></p>
<p>The AutoRun.inf is:</p>
<p><code>[AutoRun]<br />
open=Launch.bat<br />
action=Launch</code></p>
<p>Obviously, some app called PStart is required. This an extremely useful utility from Pegtop Software that puts a panel into your system tray from which you can launch any of the programs you&#8217;ve set up on your thumb drive. Within this panel I&#8217;ve created four top-level folders: Development; Internet; OpenOffice and Utilities (which could do with some sub-folders as it runs to over thirty apps now). Where these have &#8216;Portable&#8217; in their names I&#8217;ve removed it as that gets tired, quick.</p>
<p><u><b>Development</b></u></p>
<p>CassiniWebServer<br />
CSVed<br />
GIMP<br />
Notepad++<br />
NVU<br />
QueryExpress<br />
SQLiteSpy<br />
UPX executable packer</p>
<p><u><b>Internet</b></u></p>
<p>AM-DeadLink<br />
FileZilla<br />
Firefox<br />
GoogleEarth<br />
Pidgin<br />
ProxyGet<br />
Skype<br />
Tor<br />
utorrent<br />
WinSCP</p>
<p><u><b>OpenOffice</b></u></p>
<p>(no need to list these, it&#8217;s the whole sheebang)</p>
<p><u><b>Utilities</b></u></p>
<p>7-Zip<br />
Audacity<br />
BonkEnc<br />
CCleaner<br />
DeepBurner<br />
ClamWin<br />
CloneSpy<br />
Driver Magician<br />
Floola<br />
Foxit Reader<br />
FSViewer<br />
GnuCash<br />
KeePass<br />
Launchy<br />
MagicDVDRipper<br />
MD5 check sums<br />
PhotoRec<br />
ProduKey<br />
RemoveDrive<br />
Restoration<br />
ShellMenuView<br />
Stellarium<br />
SyncToy<br />
TestDisk<br />
TightVNC<br />
TrueCrypt<br />
VirtuaWin<br />
VirtualDub<br />
VLC Media Player<br />
WinDirStat<br />
WipeDisk</p>
<p>Also SDelete and PsTools which I just use from the command line. That&#8217;s some 600MB of software! The only one of these which isn&#8217;t a straight download is Skype where I took the skype.exe from the desktop install, ran it through the UPX executable packer, and dumped it on the thumb drive. It&#8217;s 12MB and it&#8217;s version 3.0.0.198 but it works fine. It requires the following command line parameters:</p>
<p><code>/datapath:"Data" /removable</code> </p>
<p>so that folder needs setting up &#8230;</p>
<p>All of the above programs are installed to the Program Files directory.</p>
<p>The Data folder has a few sub-folders: Backup; KeePass; misc; music; avatars; pictures; scripts; and work. It also has a .tc TrueCrypt file of approximately 128MB. The TrueCrypt file has a folder structure below it that, once mounted as another drive, can hold anything that should be encrypted. You can also have a Program Files directory here for any programs that may have a lot of write cycles to the flash memory, the advantage being that they will be run exclusively from memory once the TrueCrypt drive is mounted. As it works as a drive you could even have an SVN repository here. In theory I could put everything into a TrueCrypt file but then I&#8217;d <i>always</i> need admin rights on a machine before I could use my thumb drive <i>and</i> I&#8217;d have to enter that really long, complicated passphrase every time I plugged it in.</p>
<p>The music, pictures and work folders are usually empty, only being used for occasional transport duties. Backup is used almost exclusvely for my FEBE backups to transport Firefox extensions from one machine to another. Downloads tends to have just a couple of small utilities that I want on any machine, like GNotify, and otherwise works as another temporary transport folder.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escapologist.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escapologist.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=51&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2008/09/08/usb-drive-portable-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>Multiple partitions on a USB key drive</title>
		<link>http://escapologist.wordpress.com/2008/09/08/multiple-partitions-on-a-usb-key-drive/</link>
		<comments>http://escapologist.wordpress.com/2008/09/08/multiple-partitions-on-a-usb-key-drive/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 09:56:45 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2008/09/08/multiple-partitions-on-a-usb-key-drive/</guid>
		<description><![CDATA[I&#8217;m creating multiple partitions on a USB Key  (or Flash or Thumb) Drive. Data is shared between partitions and I&#8217;ll be able to boot any partition from the drive.
The drive in question is a SanDisk Cruzer Micro Skin 8GB. SanDisk don&#8217;t have a utility for flipping the removable bit on the drive and without [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=45&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m creating multiple partitions on a USB Key  (or Flash or Thumb) Drive. Data is shared between partitions and I&#8217;ll be able to boot any partition from the drive.</p>
<p>The drive in question is a SanDisk Cruzer Micro Skin 8GB. SanDisk don&#8217;t have a utility for flipping the removable bit on the drive and without that XP will not allow the drive to be partitioned. After much reading (the following threads were extremely useful: <a target="_blank" href="http://www.911cd.net/forums//index.php?showtopic=14292&amp;st=0&amp;p=91223&amp;#entry91223">911cd.net</a>, <a target="_blank" href="http://www.msfn.org/board/lofiversion/index.php/t69211.html">msfn.org</a>) and experimenting I&#8217;ve finally managed using the Hitachi Microdrive Filter (xpfildrvr1224_320) and adding the correct registry entry to the cfadisk.inf (USBSTOR\Disk&amp;Ven_SanDisk&amp;Prod_Cruzer&amp;Rev_7.01). I then updated the driver (Device Manager &gt; Disk Drives &gt; &#8220;USB Drive&#8221; &gt; Update Driver) and was able to use Disk Management to create four FAT32 primary partitions.</p>
<p>I used UNetbootin, the Universal Netboot Installer, to install Puppy Linux, UBCD, and Xubuntu. The Portable Apps are described in another blog post. I need to get WinGrub working and then I&#8217;ll update this post.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escapologist.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escapologist.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=45&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2008/09/08/multiple-partitions-on-a-usb-key-drive/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>Separate the ‘what’ and the ‘how’ with xsd.exe</title>
		<link>http://escapologist.wordpress.com/2008/07/23/separate-the-what-and-the-how-with-xsd/</link>
		<comments>http://escapologist.wordpress.com/2008/07/23/separate-the-what-and-the-how-with-xsd/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 10:41:29 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2008/07/23/separate-the-%e2%80%98what%e2%80%99-and-the-%e2%80%98how%e2%80%99-with-xsdexe-2/</guid>
		<description><![CDATA[In case you&#8217;ve not come across it there&#8217;s an extremely useful command line utility in the Visual Studio tools, the XML Schema  Definition Tool xsd.exe. It&#8217;s particularly important in  separating the ‘what’, the system requirements, and the ‘how’, the system  architecture.
An example of using it would be defining your application&#8217;s FooStatus XSD [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=40&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In case you&#8217;ve not come across it there&#8217;s an extremely useful command line utility in the Visual Studio tools, the <a href="http://msdn.microsoft.com/en-us/library/x6c1kb0s.aspx"><acronym title="Extensible Markup Language">XML</acronym> Schema  Definition Tool <code>xsd.exe</code></a>. It&#8217;s particularly important in  separating the ‘what’, the system requirements, and the ‘how’, the system  architecture.</p>
<p>An example of using it would be defining your application&#8217;s FooStatus <acronym title="XML Schema Definition">XSD</acronym> using Altova&#8217;s XMLSpy and then generating your FooStatus class. The class can be generated with the  following command line:<br /><code>C:\&gt;xsd FooStatus.xsd  /classes</code>.</p>
<p>This is a painless way of quickly getting a usable business object. The best part of using <code>xsd</code>? The  process is completely reversible. If you want to start by generating your class and then create a schema from it you can. Take a look at what else  <code>xsd</code> can do for you when you&#8217;ve a spare moment &#8211; it&#8217;ll save you a  lot of effort!</p>
<p><a class="performancingtags" href="http://technorati.com/tag/xsd.exe%20Microsoft" rel="tag"></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escapologist.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escapologist.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=40&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2008/07/23/separate-the-what-and-the-how-with-xsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
		<item>
		<title>Robocopy</title>
		<link>http://escapologist.wordpress.com/2008/07/04/robocopy/</link>
		<comments>http://escapologist.wordpress.com/2008/07/04/robocopy/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 13:16:08 +0000</pubDate>
		<dc:creator>boggin</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://escapologist.wordpress.com/2008/07/04/robocopy/</guid>
		<description><![CDATA[If you&#8217;ve a large piece of un-branched code you&#8217;re working on but you can&#8217;t  check in to source control then you&#8217;ll be worried about losing your changes. You  need a backup. Here&#8217;s a way of mirroring your working copy.
Robocopy came as part of  the Windows Server 2003 Resource Kit Tools. Robocopy can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=37&subd=escapologist&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>If you&#8217;ve a large piece of un-branched code you&#8217;re working on but you can&#8217;t  check in to source control then you&#8217;ll be worried about losing your changes. You  need a backup. Here&#8217;s a way of mirroring your working copy.<br />
<a href="http://en.wikipedia.org/wiki/Robocopy">Robocopy</a> came as part of  the Windows Server 2003 Resource Kit Tools. Robocopy can perform mirrors of any  directory tree and can monitor that tree for changes, mirroring only the changed  files. I&#8217;ve set up mine as a scheduled task (Run: robocopy /JOB:SVNBACKUP) (cf:  <a href="http://kjellsj.blogspot.com/2007/09/managed-file-transfer-robocopy-sheduled.html">Managed  File Transfer, RoboCopy, Sheduled Tasks</a>). A useful  <a href="http://technet.microsoft.com/en-gb/magazine/cc160891.aspx">Microsoft  Robocopy GUI</a> for learning the Robocopy switches is available. When you first  create the destination directory with robocopy use the /CREATE switch (see the  Robocopy Help file) to minimise directory fragmentation.</p>
<p>The following is my current job file:<br />
<code>::<br />
:: Source Directory :<br />
::<br />
	/SD:C:\svn\	:: Source Directory.<br />
::<br />
:: Destination Directory :<br />
::<br />
	/DD:G:\svn\	:: Destination Directory.<br />
::<br />
:: Exclude These Directories :<br />
::<br />
	/XD		:: eXclude Directories matching these names<br />
		.svn<br />
		bin<br />
		obj<br />
::<br />
:: Copy options :<br />
::<br />
	/S		:: copy Subdirectories, but not empty ones.<br />
	/E		:: copy subdirectories, including Empty ones.<br />
	/MON:1		:: MONitor source; run again when more than n changes seen.<br />
	/MOT:5		:: MOnitor source; run again in m minutes Time, if changed.<br />
	/PURGE		:: delete dest files/dirs that no longer exist in source.<br />
	/MIR		:: MIRror a directory tree (equivalent to /E plus /PURGE).<br />
::<br />
:: Retry Options :<br />
::<br />
	/R:10		:: number of Retries on failed copies: default 1 million.<br />
	/W:30		:: Wait time between retries: default is 30 seconds.<br />
::<br />
:: Logging Options :<br />
::<br />
	/V		:: produce Verbose output, showing skipped files.<br />
	/NDL	:: No Directory List - don't log directory names.<br />
	/NFL		:: No File List - don't log file names.<br />
	/NP		:: No Progress - don't display % copied.<br />
	/LOG+:C:\Documents and Settings\Placeholder\Application Data\Microsoft Robocopy GUI\Logs\robocopy.log	:: output status to LOG file (append to existing log).<br />
	/TEE		:: output to console window, as well as the log file.<br />
</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/escapologist.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/escapologist.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/escapologist.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/escapologist.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/escapologist.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/escapologist.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/escapologist.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/escapologist.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/escapologist.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/escapologist.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/escapologist.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/escapologist.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=escapologist.wordpress.com&blog=1258163&post=37&subd=escapologist&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://escapologist.wordpress.com/2008/07/04/robocopy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/209578f272a544554e637340a32816d0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">boggin</media:title>
		</media:content>
	</item>
	</channel>
</rss>