<?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>Sodaware::Blog &#187; Useful Tools</title>
	<atom:link href="http://www.sodaware.net/blog/category/useful-tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sodaware.net/blog</link>
	<description>Adventures in shareware.</description>
	<lastBuildDate>Mon, 12 Dec 2011 14:15:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to sync Thunderbird with Remember The Milk</title>
		<link>http://www.sodaware.net/blog/2011/04/how-to-sync-thunderbird-with-remember-the-milk/</link>
		<comments>http://www.sodaware.net/blog/2011/04/how-to-sync-thunderbird-with-remember-the-milk/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 01:39:00 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Useful Tools]]></category>

		<guid isPermaLink="false">http://www.sodaware.net/blog/?p=207</guid>
		<description><![CDATA[Lightning is one of the most powerful extensions for Mozilla Thunderbird. The standard calendar and task list are handy enough, but with a little bit of tweaking it can sync with a number of online services which makes it even more powerful. There are a handful of tutorials for syncing with Remember the Milk, but the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://addons.mozilla.org/af/thunderbird/addon/lightning/">Lightning</a> is one of the most powerful extensions for Mozilla Thunderbird. The standard calendar and task list are handy enough, but with a little bit of tweaking it can sync with a number of online services which makes it even more powerful. </p>
<p>There are a handful of tutorials for syncing with <a href="http://www.rememberthemilk.com/">Remember the Milk</a>, but the extension listed is no longer maintained and is unavailable on the Thunderbird extensions site (the old cache is available <a href="http://webcache.googleusercontent.com/search?q=cache:b0fLyrbIHFcJ:https://addons.mozilla.org/af/thunderbird/addon/remember-the-milk-provider">here</a>).</p>
<p>Thankfully there is a slightly updated version of the plugin that works with the latest version of Thunderbird.</p>
<p><strong>Please note: </strong> I didn&#8217;t write this plugin, but found it on the cached page and am sharing it here as I found it useful.</p>
<h4>Install the extensions</h4>
<p>Before you can start you&#8217;ll need to install <a href="https://addons.mozilla.org/af/thunderbird/addon/lightning/">Lightning</a> and the updated sync plugin which can be downloaded <a href="http://www.webpresencedesignlab.com/files/remember_the_milk_provider-0.0.16-sb+tb.xpi">here</a> (<a href="http://downloads.sodaware.net/tools/misc/remember_the_milk_provider-0.0.16-sb+tb.xpi">mirror</a>). </p>
<p>Once it&#8217;s installed, setting everything up is a breeze.</p>
<h4>Subscribing to the calendar</h4>
<p>Open a calendar tab in Thunderbird and add a new calendar (right click on the sidebar and select &#8220;new calendar&#8221;). Add a network calendar, select the &#8220;Remember The Milk&#8221; provider, and enter a few details.</p>
<p style="text-align: center;"><a href="http://www.sodaware.net/blog/wp-content/uploads/2011/04/thunderbird-remember-the-milk-sync-1.png"><img src="http://www.sodaware.net/blog/wp-content/uploads/2011/04/thunderbird-remember-the-milk-sync-1.png" alt="Thunderbird and Remember The Milk Synchronization - Screen 1" title="Thunderbird and Remember The Milk Synchronization - Screen 1" width="501" height="406" class="aligncenter size-full wp-image-208" /></a></p>
<p style="text-align: center;"><a href="http://www.sodaware.net/blog/wp-content/uploads/2011/04/thunderbird-remember-the-milk-sync-2.png"><img src="http://www.sodaware.net/blog/wp-content/uploads/2011/04/thunderbird-remember-the-milk-sync-2.png" alt="" title="Thunderbird and Remember the Milk Sync - Screenshot 2" width="501" height="406" class="aligncenter size-full wp-image-209" /></a></p>
<p>Once this is set up, you&#8217;ll have a single task that contains details on how to authorize the plugin. Go to the URL in this message and allow the plugin to access your account. Once you see the confirmation screen, head back to Thunderbird and mark the task as complete.</p>
<p style="text-align: center;"><a href="http://www.sodaware.net/blog/wp-content/uploads/2011/04/thunderbird-rtm-3.png"><img src="http://www.sodaware.net/blog/wp-content/uploads/2011/04/thunderbird-rtm-3-300x77.png" alt="" title="Remember the Milk Sync - Success!" width="300" height="77" class="aligncenter size-medium wp-image-210" /></a></p>
<p>If everything worked, you&#8217;ll receive a welcome popup in Thunderbird and your tasks will start to sync!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2011/04/how-to-sync-thunderbird-with-remember-the-milk/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How to make Thunderbird filters play custom sounds</title>
		<link>http://www.sodaware.net/blog/2011/03/how-to-make-thunderbird-filters-play-custom-sounds/</link>
		<comments>http://www.sodaware.net/blog/2011/03/how-to-make-thunderbird-filters-play-custom-sounds/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 14:26:11 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Useful Tools]]></category>

		<guid isPermaLink="false">http://www.sodaware.net/blog/?p=170</guid>
		<description><![CDATA[There was a thread on Hacker News lately from someone that made their first sale. I mentioned that my email client was set up to play a sound when a sale is made. This was easy to set up in Outlook 2007, but the default installation of Mozilla Thunderbird doesn&#8217;t support playing sounds for filters. [...]]]></description>
			<content:encoded><![CDATA[<p>There was a thread on Hacker News lately from someone that made their first sale. I mentioned that my email client was set up to play a sound when a sale is made. This was easy to set up in Outlook 2007, but the default installation of Mozilla Thunderbird doesn&#8217;t support playing sounds for filters. </p>
<p>All is not lost though. There&#8217;s an addon called &#8220;<a href="https://addons.mozilla.org/af/thunderbird/addon/tonequilla/">ToneQuilla</a>&#8221; which fixes this problem, so you can play all the sounds you want!</p>
<p>Here&#8217;s an example of how to set up a simple filter that plays a custom sound when a BMT Micro affiliate sale is made.</p>
<h4>Creating the filter</h4>
<p>Look under Tools -> Message Filters. Click &#8220;New&#8221; button to open the filter creation dialog.</p>
<p style="text-align: center;"><a href="http://www.sodaware.net/blog/wp-content/uploads/2011/03/thunderbird-filter-play-custom-sound.png"><img src="http://www.sodaware.net/blog/wp-content/uploads/2011/03/thunderbird-filter-play-custom-sound-300x211.png" alt="Thunderbird Filter - Play a Custom Sound" title="Thunderbird Filter - Play a Custom Sound" width="300" height="211" class="aligncenter size-medium wp-image-171" /></a><br /><small>Click image to view full size</small></p>
<p>Set the filter to run on messages that have a subject with &#8220;BMT Micro Affiliate Order&#8221; in them. You can also add extra conditions for other sales emails, depending on who emails you.</p>
<p>Under &#8220;Perform these actions&#8221;, add a &#8220;Play Sound&#8221; action and link to your favourite sound. There&#8217;s plenty of <a href="http://www.freesound.org/tagsViewSingle.php?id=892">cash register sounds</a> at <a href="http://www.freesound.org/">freesound.org</a>, although personally I prefer the cash register noise from Sonic the Hedgehog :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2011/03/how-to-make-thunderbird-filters-play-custom-sounds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shrink Your Software</title>
		<link>http://www.sodaware.net/blog/2007/04/shrink-your-software/</link>
		<comments>http://www.sodaware.net/blog/2007/04/shrink-your-software/#comments</comments>
		<pubDate>Tue, 10 Apr 2007 01:30:55 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Useful Tools]]></category>
<category>software development</category><category>useful tools</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2007/04/shrink-your-software/</guid>
		<description><![CDATA[A collection of tools to help you shrink the size of your software release and increase downloads. ]]></description>
			<content:encoded><![CDATA[<p>Even though hard drives are getting bigger and Internet connection speeds are increasing at a dizzying rate, not everyone has access to the latest technology. The smaller you can make your software, the more you increase the amount of people that can play it – thus increasing downloads.</p>
<h3>Use the Right Tool for the Right Job</h3>
<p>If you&#8217;re compressing images, choose the right format for the right job. PNG is a lossless format that is much better at compressing pixel art images than photographs. JPG can leave a lot of “artifacts” on these kinds of images, and is better suited for compressing photos or painted artwork. Choosing the right format not only shrinks the size of your application, but helps to maintain the quality of the final product.</p>
<h3>Shrink Executables and Libraries</h3>
<p>You can generally shrink you .exe and .dll files by around 50% by using UPX, with no discernible change in performance.</p>
<p><b>Note:</b> Always compress executables after icons and resources have been added, as adding resources to a compressed executable can result in programs working strangely (or not at all).</p>
<p>» <a href="http://upx.sourceforge.net/">Get <strong>UPX</strong></a></p>
<h3>Shrink Images</h3>
<p>If you&#8217;re using PNG images, pngcrush is an essential application to have installed. It has many different levels of compression available and can generate considerable space savings. Perhaps the most useful feature is the “brute force” option, which will try over 100 different combinations to create the smallest possible image file.</p>
<p>» <a href="http://pmt.sourceforge.net/pngcrush/">Get <strong>pngcrush</strong></a></p>
<h3>Shrink Music and Audio</h3>
<p>Using OGG or OXM for music can generate large savings when compared to raw formats such as WAV and XM. OGG is well suited to sound samples and music, and can make a huge difference if the correct quality settings are chosen. It&#8217;s usually best to try a few settings and listen to the results to see which quality to use, as some qualities work better for different kinds of sounds.</p>
<p>OXM is a compressed version of the XM music format, a MIDI like format that uses its own samples. The OXM format compresses the samples using the OGG codec, and can easily shrink a track by 70% or more with virtually no audible differences.  </p>
<p>OggEnc is a command line tool for encoding OGG files, whereas OggDrop is a GUI application that supports drag and drop. OggMod is a tool for&nbsp;compressing&nbsp;XM files into OXM. </p>
<p>» <a href="http://www.rarewares.org/ogg.html">Get <strong>OggEnc</strong> / <strong>OggDrop</strong></a> | <a href="http://www.fmod.org/fmoddownload.html#secb"><strong>OggMod</strong></a><br />
<h3>Pack Your Data</h3>
</p>
<p>If your game uses any kind of custom data definitions, such as text or xml level definitions, you can generate extra savings by compressing them. There are many different compression algorithms, and some are more suited than others. Run Length Encoding (RLE) works well for data that has large areas of sequential data values, but isn&#8217;t as effective for other formats such as XML. There are plenty of freely available compression libraries, and including zlib and unrar, and most languages have a wealth of examples to look at.</p>
<h3>Automate the Process</h3>
<p>Manually compressing all of your media can be a slow and tedious process, and can generally be left until the game&#8217;s release. At the simplest level, you can place all of the commands into a Windows batch file and run it once you&#8217;ve compiled your software. Other options include using build software, which is covered in more detail&nbsp;in the recent&nbsp;<a href="http://www.sodaware.net/blog/2007/04/build-tools/">build tools article</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2007/04/shrink-your-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Apps to the Windows PATH</title>
		<link>http://www.sodaware.net/blog/2007/04/quick-tip-adding-apps-to-the-windows-path/</link>
		<comments>http://www.sodaware.net/blog/2007/04/quick-tip-adding-apps-to-the-windows-path/#comments</comments>
		<pubDate>Tue, 10 Apr 2007 01:30:16 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Useful Tools]]></category>
<category>useful tips</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2007/04/quick-tip-adding-apps-to-the-windows-path/</guid>
		<description><![CDATA[Save typing by adding tool directories to the Windows PATH.]]></description>
			<content:encoded><![CDATA[<p>This is a simple change that can make using the Windows command line much easier. Adding a directory to the Windows PATH will mean Windows will search the directory when a command is entered. The main reason for doing this is that it acts as a shortcut for common applications you may run.  </p>
<p>For example, instead of typing : <code>"C:\Program Files\SomeProgram\Bin\MyProg.exe" --some-arg</code> to launch an application, you can type <code>MyProg.exe –some-arg</code>. This has three main advantages:
<ol>
<li><b>Looks Neater</b> – This can be important if you&#8217;re using batch files. Long lines are hard to read, so shortening things is a good idea.  </li>
<li><b>Less Typing</b> – Speaks for itself. If you use the command line or batch files for any amount of time, you&#8217;ll appreciate how much easier it is to use if you&#8217;re not typing full paths for your tools.  </li>
<li><b>Portable</b> – Perhaps the most important detail. Not using hard-coded paths makes it easier to port your batch files to other machines.</li>
</ol>
<p><strong>Note: </strong>Be careful when editing your path variable, as you could render some programs unusable if you make a mistake. Also remember that changes won&#8217;t take effect until you restart the console.<br />
<h3>Editing the Windows Path Variable</h3>
</p>
<p>1) Right click “My Computer” and select “Properties” OR goto Control Panel and select “System”. This will open the &#8220;System Properties&#8221; window.  </p>
<p>2) Switch to the “Advanced” tab, and select “Environment Variables”.  </p>
<p><a href="http://www.sodaware.net/blog/wp-uploads/QuickTipAddingAppstotheWindowsPATH_11DC2/env18.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="System Properties Dialog" src="http://www.sodaware.net/blog/wp-uploads/QuickTipAddingAppstotheWindowsPATH_11DC2/env1_thumb6.png" width="209" border="0"/></a>&nbsp; </p>
<p>3) There are now two options. You can modify the global path variable, or add your own to your personal profile.&nbsp;If you want all users on the machine to&nbsp;have the same&nbsp;shortcut, add it to the global path, otherwise&nbsp;use the local one.&nbsp;
<div class="textIndent">
<p>a. To modify the global path variable – Find &#8220;Path&#8221; or &#8220;PATH&#8221; in the lower window (marked Global variables). Select Edit. Add the path to your application. Separate paths with a semi-colon (;). Add trailing slashes if you wish.  </p>
<p>b. Either modify an existing one using the tutorial above, or select &#8220;new&#8221;, then enter &#8220;PATH&#8221; as the name of the variable and enter the path value in the environment value section.</p>
</div>
<p><a href="http://www.sodaware.net/blog/wp-uploads/QuickTipAddingAppstotheWindowsPATH_11DC2/env21.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="Environment Variables Dialog" src="http://www.sodaware.net/blog/wp-uploads/QuickTipAddingAppstotheWindowsPATH_11DC2/env2.png" width="217" border="0"/></a><br />
<h3>Modifying the Path Using the Command Line</h3>
</p>
<p>If you&#8217;d like to do this using the command line, you can use the &#8220;setx&#8221; command included with Windows XP service pack two. To add the directory &#8220;c:\program files\SomeProgram\Bin&#8221; to your path, use the following:</p>
<p><code>setx path "%PATH%;C:\Program Files\SomeProgram\Bin"</code></p>
<p>Remember to include the <code>%PATH%</code> variable at the start of your <code>setx</code> command so that you&#8217;ll keep existing path names.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2007/04/quick-tip-adding-apps-to-the-windows-path/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating the Build Process</title>
		<link>http://www.sodaware.net/blog/2007/04/automating-the-build-process/</link>
		<comments>http://www.sodaware.net/blog/2007/04/automating-the-build-process/#comments</comments>
		<pubDate>Tue, 10 Apr 2007 01:30:01 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Useful Tools]]></category>
<category>software development</category><category>useful tools</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2007/04/automating-the-build-process/</guid>
		<description><![CDATA[Creating software is a time consuming business, and it&#8217;s important to always be on the lookout for ways to reduce the amount of time spent on less important tasks. The process of actually building software (creating the finished distributable binary) is one such area that can be optimised. Opening up your IDE and hitting “compile” [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>Creating software is a time consuming business, and it&#8217;s important to always be on the lookout for ways to reduce the amount of time spent on less important tasks. The process of actually building software (creating the finished distributable binary) is one such area that can be optimised. Opening up your IDE and hitting “compile” might not seem particularly time consuming, but it&#8217;s only one part of the build process. </p>
<p>To get you started, here&#8217;s a short list of tasks that can be automated:
<ul>
<li>Compiling the executables and dependent libraries</li>
<li>Packing media</li>
<li>Creating an installer</li>
<li>Uploading files to an FTP site</li>
<li>Checking out files from a repository to be built</li>
<li>Sending an email about a finished build to other developers</li>
<li>Creating the application documentation / Converting it to HTML</li>
<li>Testing the software</li>
</ul>
<p>The benefits of using an automated build system include:
<ul>
<li><b>Saves time</b> – Run a build and leave the computer to do the work whilst you take care of other tasks.</li>
<li><b>Documents the build process </b>– If a build requires several steps before being completed, a build file will document this process for you. This is useful if templates need to be generated or options need to be set before a build is ready.</li>
<li><b>Improves quality</b> – As well as automating the creation of a binary package, tests can be automated. This saves a lot of time on the development end, as tests can be constantly run so you&#8217;ll quickly find out if the software&#8217;s behaviour has changed. </li>
</ul>
<h3>Simple Automation – Batch Files</h3>
</p>
<p>The simplest way to automate many of these tasks is to use batch files. A batch file is a list of tasks to be run, usually in the form of a list of applications with some command line parameters. Using a few simple commands it&#8217;s possible to run many tasks in succession without any user input, leaving you to do more important things. Microsoft.com has a is a <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true">simple guide to batch files</a> which is a good place to start.  </p>
<p>As useful as batch files are, there is only so much they can accomplish, and there may come a time when something more complex is required for your project. Thankfully there are many build systems available<br />
<h3>Build Tools</h3>
</p>
<p>There are plenty of build systems available, and several of them are targeted at certain platforms or languages. It may take a while to become comfortable with a platform, but the savings are worth it.
<ul>
<li><a href="http://www.gnu.org/software/make/">GNU make</a> – A standard system used by many Linux projects. It consists of a plain text file that lists targets and dependencies, and features many advanced features such as automatically determining which files require rebuilding.</li>
<li><a href="http://ant.apache.org/">Apache Ant</a> – Ant is designed as a replacement for make, and uses XML files to describe the build process instead of text files. It&#8217;s written in JAVA, and is completely portable. </li>
<li><a href="http://nant.sourceforge.net">nAnt</a> – nAnt is a .NET based version of Ant, and although it is not exclusively for .NET developers it has many features that make it useful for building .NET apps.</li>
<li><a href="http://www.a-a-p.org/">A-A-P</a> – A-A-P is a portable build tool that uses text-based “recipes” to compile and distribute software, but it can also be used for other tasks such as publishing websites and generating files from templates.</li>
<li><a href="http://www.kinook.com/VisBuildPro/">Visual Build Professional</a> – VBP is a commercial build tool that takes a more visual approach to creating build scripts. It integrates well into many Microsoft IDEs, but also supports other languages such as Delphi and Java.</li>
<li><a href="http://www.sodaware.net/dev/tools/blitzbuild/">BlitzBuild</a> – A free build tool aimed at BlitzPlus and Blitz3D developers. </li>
</ul>
<h3>Breaking the Task Down</h3>
</p>
<p>Most build scripts will contain more than a single command, so it is useful to break the build script into different groups or “targets” that can be executed individually. This is particularly useful if building of data files is included, as it can be used for art or music to be built independently of the main application. Many build platforms also allow targets to be called from other targets, which effectively breaks a build script into a set of functions that can be executed in any order. </p>
<p>Common targets include compilation, installation and cleanup, but the choice is entirely up to the developer. It may also prove beneficial to include a separate target for generating debug versions of the application which can be distributed as a troubleshooting option.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2007/04/automating-the-build-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started with Subversion</title>
		<link>http://www.sodaware.net/blog/2007/02/getting-started-with-subversion/</link>
		<comments>http://www.sodaware.net/blog/2007/02/getting-started-with-subversion/#comments</comments>
		<pubDate>Wed, 14 Feb 2007 23:13:47 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Useful Tools]]></category>
<category>software development</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2007/02/getting-started-with-subversion/</guid>
		<description><![CDATA[An introduction to using Subversion to manage your source code.]]></description>
			<content:encoded><![CDATA[<p>Subversion is an open-source version control system. That doesn’t sound particularly interesting, and at face value it isn’t, but you only need it to save your skin once to realise how useful it can be.</p>
<p>Version control is a method of storing different revisions of the same file, usually source code or documents. This allows developers to see when changes to a file have been made, which can be useful for isolating bugs, and can also be used to “roll-back” a file to a time before a bug was introduced.</p>
<p>Along with these features, version control allows developers to merge two versions of a file, which is very useful for projects with more than one person.  </p>
<p>This article covers the following:
<ol>
<li>What software you need  </li>
<li>Creating a new repository  </li>
<li>How to set up a Subversion server  </li>
<li>Adding password protection to a Subversion repository  </li>
<li>Laying out your repository and importing files  </li>
<li>Checking out and checking in  </li>
<li>Using tags and branches </li>
</ol>
<h3>What you’ll need</h3>
</p>
<p><b><a href="http://subversion.tigris.org/">Subversion</a></b> – The primary download is source code, but there are binary versions available for different operating systems, including Windows, Mac OS and most common flavours of Linux.</p>
<p>If you intend to use Subversion mostly from the command line, you might want to add the Subversion binaries directory to your Windows PATH variable.</p>
<h4>Optional Downloads</h4>
<p><b><img style="margin: 0px 0px 5px 5px" src="http://www.sodaware.net/rsc/blog/issue-001/tortoise-svn.png" align="right"/> <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a></b> – If you’re using Subversion with Windows, I highly recommend installing TortoiseSVN. It integrates with the Windows explorer shell, so you can see an icon if a file has been changed. You can and also check in items, commit changes and perform other common operations with a few clicks of the mouse instead of using the command line.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2007/02/getting-started-with-subversion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tweaking the Sociable plugin</title>
		<link>http://www.sodaware.net/blog/2006/12/tweaking-the-sociable-plugin/</link>
		<comments>http://www.sodaware.net/blog/2006/12/tweaking-the-sociable-plugin/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 10:11:00 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Useful Tools]]></category>
		<category><![CDATA[Web Programming]]></category>
<category>useful tools</category><category>web programming</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/1970/01/tweaking-the-sociable-plugin/</guid>
		<description><![CDATA[I use the &#8220;Sociable&#8221; WordPress plugin to add social bookmarking links to the bottom of every post. There are a tonne of social bookmarking sites around, so I&#8217;ve kept things light to avoid the icon overload that can be seen on some blogs. I&#8217;ve made two updates over the last few days, one was adding [...]]]></description>
			<content:encoded><![CDATA[<p>I use the &#8220;<a href="http://push.cx/sociable">Sociable</a>&#8221; WordPress plugin to add social bookmarking links to the bottom of every post. There are a tonne of social bookmarking sites around, so I&#8217;ve kept things light to avoid the icon overload that can be seen on some blogs. I&#8217;ve made two updates over the last few days, one was adding <a title="devbump - cool game development stuff" href="http://www.devbump.com/">devbump</a> and the other was adding CSS image rollovers. </p>
<p>If you&#8217;re not sure about adding a few bookmarking buttons, you might want to check out the <a title="&quot;Sociable WordPress Plugin Brings Good Blog Traffic&quot;" href="http://webloghits.com/index.php/tips-and-techniques/sociable-wordpress-plugin-brings-good-blog-traffic/">traffic increase</a> at webloghits.com. That&#8217;s the kind of increase that is worth a few minutes of your time.</p>
<h3>Adding devbump.com</h3>
<p>There are a lot of digg style sites out there, but <a title="devbump - cool game development stuff" href="http://www.devbump.com/">devbump</a> caught my eye because it&#8217;s aimed squarely at game developers. Submitting your posts to places that are actually interested in the subject is always more useful, so devbump was a natural choice.&nbsp;</p>
<p>To add new sites to sociable, open up &#8220;sociable.php&#8221; and find the following line:</p>
<div class="codeWindow"><code>$sociable_builtin_known_sites = Array(</code></div>
<p>Once you&#8217;d found it, add the following after the &#8220;Del.irio.us&#8221; definition:</p>
<div class="codeWindow"><code>'devbump' =&gt; Array(<br />&nbsp; &nbsp; 'favicon' =&gt; 'devbump.png',<br />&nbsp; &nbsp; 'url' =&gt; 'http://devbump.com/submit.php?url=PERMALINK&amp;title=TITLE',<br />), </code></div>
<p>You&#8217;ll have rebuild the list of available sites by logging in to your blog, and selecting &#8220;Restore Built-in Defaults&#8221; from the sociable page (Options -&gt; Sociable). &#8220;devbump&#8221; should now be available to use on your site.</p>
<h3>Adding CSS image rollovers</h3>
<p>Now for the fun part. I used some code from&nbsp;Present Tense (<a href="http://dyers.org/blog/archives/2006/03/10/hacking-the-sociable-wordpress-plugin-for-image-rollovers/">Hacking the Sociable WordPress Plugin for Image Rollovers</a>), but it didn&#8217;t quite hit the spot so&nbsp;I did quite a lot of tweaking to get things looking nice. I&#8217;ve stuck it all in a zip at the end of this post. </p>
<p>Before you skip ahead to the freebies, there are a few important things to note.</p>
<p><strong>Tweaked &#8220;sociable.php&#8221;</strong> &#8212; I made two main tweaks to sociable.php. One was because some sites have &#8220;.&#8221; characters in their name, so it wouldn&#8217;t work with CSS class names. The other tweak was to change the way that the HTML was generated. Instead of standard images, it&#8217;s a list.</p>
<p><strong>Internet Explorer</strong> &#8212; Naturally IE messes things up a little bit, so you might have to experiment a little bit to get things looking the way you want them. Removing the CSS tooltip may help.</p>
<p><strong>16 x 16 Images</strong> &#8212; I like to have text next to my images, so each one has a different width. If you open &#8220;sociable.css&#8221;, you&#8217;ll see I&#8217;ve defined each networking site with a pair of definitions:</p>
<div class="codeWindow"><code>.sociable li.delicious a { width: 69px; background-image: url(images/delicious-hover.gif)}<br />.sociable li.delicious a:hover { background-position: 0 -16px;}</code></div>
<p>If you&#8217;re using 16 x 16 images, you can move the width statement into the &#8220;.sociable li&#8221; definition.</p>
<p><strong>Adding New Rollovers</strong></p>
<p>To add a new image, you need to add a class with the name of the site, and then set its image. It&#8217;s really just a matter of copying an existing class definition and changing the names. I&#8217;ll add new sites as time goes on, but at the moment I&#8217;ve only defined: del.icio.us, digg, devbump, Reddit and Furl.</p>
<h3>Free Stuff!</h3>
<p>Everyone likes free stuff, so I&#8217;ve zipped up all of the files I modified for your downloading pleasure. There are still a few bugs to iron out, so I&#8217;ll be modifying this post as and when things change.</p>
<p>To install the changes, just copy the files into your &#8220;wp-content/plugins/sociable&#8221; directory &#8212; you&#8217;ll need to have sociable already installed (<a href="http://push.cx/sociable">download here</a>).</p>
<div class="latestRelease">
<h4>Download Latest Release (1.0)</h4>
<p><img src="http://www.sodaware.net/blog/wp-content/themes/sodaware/images/greenArrow.gif" align="left"/>&nbsp;<a title="Download zip distribution" href="http://downloads.sodaware.net/tools/misc/sociable-tweak/sociable-tweak-1.0.zip">sociable-tweak-1.0.zip</a> (11.0KB)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2006/12/tweaking-the-sociable-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Issue Tracking for Indie Developers</title>
		<link>http://www.sodaware.net/blog/2006/08/issue-tracking-for-indie-developers/</link>
		<comments>http://www.sodaware.net/blog/2006/08/issue-tracking-for-indie-developers/#comments</comments>
		<pubDate>Fri, 25 Aug 2006 10:13:46 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Useful Tools]]></category>

		<guid isPermaLink="false">http://www.sodaware.net/blog/2006/08/issue-tracking-for-indie-developers/</guid>
		<description><![CDATA[I&#8217;ve looked at a lot of bug trackers over the years, and I even had a crack at writing my own as part of my final year university project.&#160;It was certainly an experience, and it taught me the value of &#8220;eating your own dog food&#8221;. There are hundreds of bug trackers in the wild, and [...]]]></description>
			<content:encoded><![CDATA[<p><img height="218" src="http://www.sodaware.net/blog/wp-uploads/IssueTrackingforIndies_14180/happyant5.png" width="214" align="right"/>I&#8217;ve looked at a lot of bug trackers over the years, and I even had a crack at writing my own as part of my final year university project.&nbsp;It was certainly an experience, and it taught me the value of &#8220;eating your own dog food&#8221;. </p>
<p>There are hundreds of bug trackers in the wild, and they range in quality and functionality. Some are in-depth packages that really ease the process and were clearly designed with developers in mind. Others are not so good.</p>
<p>With so much choice available, it&#8217;s good to look at the pros and cons of various systems. It&#8217;s also important to make a list of your requirements, and as indies we often have a different set of criteria from larger companies. </p>
<h3>Why Bother?</h3>
<p>There are plenty of reasons to use a dedicated issue tracker:</p>
<ul>
<li><strong>Organisation</strong> &#8212; Problems with the software are recorded in a central place, so you don&#8217;t have to worry about losing that post-it note with an issue&#8217;s details scrawled on it.  </li>
<li><strong>Transparency</strong> &#8212; Although it can seem&nbsp;counter-intuitive, letting your potential customers see your bug database can have a positive effect because it lets them see that you&#8217;re actively fixing problems. It also lets them know that there&#8217;s a place they can send problems, and that they&#8217;ll be dealt with efficiently and not swept under the rug.  </li>
<li><strong>Distributed Teams</strong> &#8212; If there are several developers involved with a project, having a central system where tasks are assigned is a Good Thing. It saves multiple people solving the same problem, and helps to share the workload.  </li>
<li><strong>Documenting the Process</strong> &#8212; You know what was fixed, when it was fixed and who fixed it. In some systems, you can also find out where the problem occurred in the source code&nbsp;and use this information to improve the quality of code.  </li>
<li><strong>Feedback&nbsp;and Support</strong>&nbsp;&#8211; Some systems also allow users to submit feature requests as well as support queries. Again, this helps with keeping things organised and preventing things from getting lost.</li>
</ul>
<h3>Do Indies Have Different Requirements?</h3>
<p>Everyone has their own set of requirements, but as a general rule indie developers will not have the same requirements as a larger company. For a start, we&#8217;ll want it to be as cheap as possible! Thankfully there are a lot of open-source projects available that will run on most web servers.</p>
<h4>My List of Requirements</h4>
<p>I&#8217;ve put together my own list of requirements for an issue tracker. They&#8217;re by no means a definitive list, but they&#8217;re a good starting point for your own list.</p>
<p><strong>Minimum Requirements:</strong></p>
<ul>
<li><strong>Easy to Use</strong> &#8212; Not everyone is technically minded,&nbsp;and I want the system to be accessible by as&nbsp;many people as possible.  </li>
<li><strong>Support for Multiple Projects</strong> &#8212; I want something that can manage several projects, as it will be a central place for all my work.  </li>
<li><strong>Access Levels For Projects, Issues And Fields</strong> &#8212; Although transparency is good, I still want a certain level of privacy with issues. The ability to set projects as private is important, as they might be WIP or not ready to be announced.  </li>
<li><strong>Anonymous Viewing</strong> &#8212; I don&#8217;t want people to have to register just to view the list of bugs.</li>
</ul>
<p><strong>Nice Extras:</strong></p>
<ul>
<li><strong>Templates</strong> &#8212; I&#8217;d like the bug database to fit in with the rest of the site. If templates aren&#8217;t available, it should at least have a clean interface.  </li>
<li><strong>Web Service API</strong> &#8212; An API is nice so that applications can submit their bug reports. This can be kludged if not available, but it&#8217;s nice if it&#8217;s built in.  </li>
<li><strong>Project Overviews</strong> &#8212; I&#8217;d like to see overviews of projects, either with graphs or just a configurable list.  </li>
<li><strong>Subversion Integration</strong> &#8212; As mentioned in my previous post, I use Subversion to track changes in my projects. I&#8217;d like a bug tracker that integrates with SVN so I can see what files&nbsp;were changed to fix an issue.</li>
</ul>
<h3>What Solutions Are Available?</h3>
<p>Here are some of the better solutions I&#8217;ve looked at. I can&#8217;t really do them justice in a few paragraphs, and most issue trackers have the same core features so I&#8217;ve tried to pick out some of their more interesting aspects.&nbsp;</p>
<h4><a href="http://dev.mysql.com/downloads/other/eventum/features.html">Eventum</a></h4>
<p>Eventum is an issue tracker from the MySQL team.&nbsp;Features include support for multiple projects,&nbsp;web-based and command line interfaces, and full CVS integration (<a href="http://eventum.mysql.org/wiki/index.php/Subversion_integration">Subversion integration</a> is&nbsp;available at the <a href="http://eventum.mysql.org/wiki/index.php">Eventum Wiki</a>).&nbsp;It also features XML-RPC&nbsp;and SOAP web services, as well as an <a href="http://eventum.mysql.org/wiki/index.php/Using_the_IRC_bot">IRC Bot</a>&nbsp;which&nbsp;looks useful for distributed teams.</p>
<h4><a href="http://www.mantisbt.org/">Mantis</a></h4>
<p>Mantis is an open-source, PHP/MySQL based bug tracker. It&#8217;s simple and lightweight, but is designed to be easily extendable for people who want a little bit more. If you&#8217;re not after anything complex, Mantis is a good place to start.</p>
<h4><a href="http://bugs-bug-genie.sourceforge.net/">BUGS &#8211; The Bug Genie</a></h4>
<p>A very slick looking, open-source&nbsp;issue tracker. It supports attachments for issues,&nbsp;as well as multiple products, editions and milestones. You can also set it up to email you whenever an issue is posted. It&#8217;s very customisable, and you can alter the built in help as well as alter the appearance using themes.</p>
<h4><a href="http://www.atlassian.com/software/jira/">JIRA</a></h4>
<p>A feature packed, highly extendable piece of kit. The search features in particular are worth noting, as searches can be saved, shared and subscribed to. It can be extended to integrate with source control, and it features&nbsp;XML-RPC, SOAP and REST&nbsp;web service interfaces.</p>
<h4><a href="http://www.fogcreek.com/FogBugz/">FogBugz</a></h4>
<p>A comprehensive bug tracker, tailored toward making the workflow as smooth as possible. Issues are always assigned to a single person, and this person becomes responsible for fixing the problem (or delegating it). The interface is very clean and clearly&nbsp;tailored towards ease of use.&nbsp;</p>
<p>One particularly nice feature is its ability to add customer emails directly to the system. For example, a customer email to &#8220;support@example.com&#8221;&nbsp;can be automatically entered into the system and become a new case. This case can then&nbsp;be assigned appropriately. The customer also receives an email with their case number, allowing them to see exactly what&#8217;s going on.</p>
<h4><a href="http://www.axosoft.com/Products/OnTime.aspx">Axosoft OnTime</a></h4>
<p>OnTime features a web-based interface, as well as Windows and Visual Studio clients. It can be integrated with several source control systems, including Subversion and Perforce. You can also define and use&nbsp;your own workflow, such as XP or Scrum.</p>
<h3>There&#8217;s Plenty More&#8230;</h3>
<p>Most of the&nbsp;issue trackers listed&nbsp;have demos that you can play around with to get a feel&nbsp;for the software, and I recommend trying a few out before settling down. I&#8217;ve tried several of the ones listed, and I&#8217;ve still found it hard to pick one. Although any system is better than none, it&#8217;s still important to choose one that &#8220;feels&#8221; right.</p>
<p>I&#8217;m always interested to see what other developers use for issue tracking, whether it&#8217;s a pen and paper, an Access database or something more complex. Feel free to let me know what you&#8217;re using, and why.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2006/08/issue-tracking-for-indie-developers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My Super-Happy Development Setup</title>
		<link>http://www.sodaware.net/blog/2006/08/my-super-happy-development-setup/</link>
		<comments>http://www.sodaware.net/blog/2006/08/my-super-happy-development-setup/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 08:10:49 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Sodaware News]]></category>
		<category><![CDATA[Useful Tools]]></category>

		<guid isPermaLink="false">http://www.sodaware.net/blog/2006/08/my-super-happy-development-setup/</guid>
		<description><![CDATA[As I&#8217;ve previously mentioned, software development is divided into two very distinct parts. The fun part that everyone loves, and the tedious&#160;bits that suck away your energy. You can think of it like an iceberg. There&#8217;s the top that everyone sees, where penguins frolic and hold parties. Then there&#8217;s the sub-surface part. A dark and [...]]]></description>
			<content:encoded><![CDATA[<p><img height="218" alt="An iceberg, yesterday." src="http://www.sodaware.net/blog/wp-uploads/MySuperHappyBuildSetup_FB3F/iceberg18.png" width="214" align="right"/>As <a href="http://www.sodaware.net/blog/2006/08/the-boring-parts-of-game-development/">I&#8217;ve previously mentioned</a>, software development is divided into two very distinct parts. The fun part that everyone loves, and the tedious&nbsp;bits that suck away your energy.</p>
<p>You can think of it like an iceberg. There&#8217;s the top that everyone sees, where penguins frolic and hold parties. Then there&#8217;s the sub-surface part. A dark and dreary place that people try to ignore. You can thank that part for the sinking of the&nbsp;titanic.</p>
<p>Today I&#8217;ll be talking about the 90% you wish wasn&#8217;t there. Sorry about that.</p>
<h3>It&#8217;s not all boring!</h3>
<p>OK, so maybe it is, but if you&#8217;re a programmer you&#8217;ll know there&#8217;s a certain satisfaction you can only get by automating some part of the development process. As Steve McConnell puts it in &#8220;<a href="http://www.amazon.com/exec/obidos/ASIN/0735619670/sodaware-20/104-6021570-8095131">Code Complete</a>&#8220;, if a programmer can do a job comfortably in five hours, or spend four hours and 45 minutes writing a tool to do it in 15 minutes, they&#8217;ll choose to write the tool every time.</p>
<p>My tools directory is littered with quick, one off scripts I&#8217;ve written to get a job done, or other small applications I&#8217;ve downloaded. Today we&#8217;ll be taking a brief look at my setup.</p>
<h3>The IDE</h3>
<p><a href="http://www.sodaware.net/blog/wp-uploads/dev-screen1.png" atomicselection="true"><img style="margin-right: 5px" height="194" src="http://www.sodaware.net/blog/wp-uploads/MySuperHappyBuildSetup_FB3F/devscreen1thumb7.png" width="254" align="left" border="0"/></a> The language I use most frequently is <a href="http://www.blitzbasic.com/">Blitz Plus</a>, so my development environment is tuned to making me more productive in it. My IDE of choice is <a href="http://www.proteanide.co.uk/">Protean</a>, which became a free product earlier this year.</p>
<p>The main reason I chose Protean was the excellent code completion support, as well as the project support. These two features alone have probably saved me hours worth of work. The standard Blitz IDE is a little clumsy for larger projects, and it was quite a hindrance.</p>
<p>I keep the Windows taskbar auto-minimised on the left of the screen. This helps when I have several windows open, and also maximises the amount of space the IDE gets. It&#8217;s not a huge gain, but every little helps.</p>
<p>I also like the colour green.</p>
<h3>Plenty O&#8217;Tools</h3>
<p>My tools directory contains dozens of applications, ranging in size and complexity. There are far too many to list in detail here, so I&#8217;ll stick to the ones I use most often.</p>
<ul>
<li><strong><a href="http://www.php.net/">PHP</a></strong> &#8211; I use PHP for a lot of &#8220;glue&#8221; scripts, because it&#8217;s quite easy to knock up a simple script to do something useful. My original build scripts were written in PHP, but I&#8217;m slowly migrating them to BlitzBuild. I&#8217;ve used PHP for all kinds of things, from generating code distributions to parsing source files for variables. I considered using Python for these tasks, but I felt more comfortable using PHP. It&#8217;s not just for websites!&nbsp;  </li>
<li><strong><a href="http://pmt.sourceforge.net/pngcrush/">pngcrush</a></strong> &#8211; A simple tool to compress png files a little further. Not really essential, but I&#8217;m still stuck in &#8220;this has to fit on a floppy&#8221; world so every saved byte counts.  </li>
<li><strong><a href="http://www.angusj.com/resourcehacker/">ResHacker</a>&nbsp;</strong>- Blitz doesn&#8217;t add much information to executables, so I use ResHacker to add a fancy exe icon, as well as resource information. It can be used from the command line, so it&#8217;s part of my post-build script.  </li>
<li><strong><a href="http://subversion.tigris.org/">Subversion</a></strong> &#8211; I run a Subversion server on another machine, and it&#8217;s saved my bacon on several occasions. I use <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>&nbsp;for the front end, because it makes life so much simpler.  </li>
<li><strong><a href="http://xmlsoft.org/XSLT/">xsltproc</a> </strong>- I&#8217;ve recently started using DocBook for documentation, and I use xsltproc to convert it into something pretty. I prefer running it on Linux, as it seems to run much faster.  </li>
<li><strong><a href="http://kate.kde.org/">Kate</a></strong> &#8211; I use this for editing DocBook XML files, and it supports code completion and code folding. I sometimes dabble with <a href="http://www.xmlmind.com/xmleditor/">XXE</a> for DocBook work, but I find it to be overkill for most of the documents I work on.</li>
</ul>
<h3>Putting It All Together</h3>
<p>As powerful as these tools are on their own, they really shine when joined together in a build script. At the moment, my Blitz projects have three batch files: &#8220;pre-build&#8221;, &#8220;post-build&#8221; and &#8220;build-resources&#8221;. The pre-build script is for auto-generating&nbsp;source files, and the post-build script takes care of adding resources to the exe and compressing it. The resource builder compresses sounds and graphics, processes any extra files (such as XML files that need converting) and creates all of the data files.</p>
<p>In the future, I want to move all of this into a single BlitzBuild script, as I feel the three batch files are a weak link in the build chain. I&#8217;d much rather run a single command and have the whole process&nbsp;work automatically, than run different batch files. I also want to add support for different configurations. This will allow for quick builds that don&#8217;t create resources, as well as special debug builds that add extra information to the exe.</p>
<p>What tools do you use in your development process? Do you have any novel uses for existing tools? What single application saves you the most development time?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2006/08/my-super-happy-development-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My favourite WordPress plugins</title>
		<link>http://www.sodaware.net/blog/2006/07/my-favourite-wordpress-plugins/</link>
		<comments>http://www.sodaware.net/blog/2006/07/my-favourite-wordpress-plugins/#comments</comments>
		<pubDate>Mon, 03 Jul 2006 09:00:00 +0000</pubDate>
		<dc:creator>Phil Newton</dc:creator>
				<category><![CDATA[Useful Tools]]></category>
<category>useful tools</category>
		<guid isPermaLink="false">http://www.sodaware.net/blog/2006/07/my-favourite-wordpress-plugins/</guid>
		<description><![CDATA[A look at my favourite plugins for <a href="http://www.wordpress.org/">WordPress</a>.]]></description>
			<content:encoded><![CDATA[<p>One of my favourite things about <a href="http://www.wordpress.org/">WordPress</a> is its extendibility. It&#8217;s very easy to add new functionality with the plugin system, and it makes for a really powerful application. Here are a few of my favourite WordPress plugins:
</p>
<ul>
<li>
<div><a href="http://akismet.com/">Akismet</a> – If it wasn’t for Akismet, I would have turned comments off a long time ago. I’ve been running it on this blog for about three weeks, and it’s caught nearly 400 spam comments. That’s a lot of spam for a small blog like this, and it was a major time consumer before I installed Akismet.
</div>
</li>
<li>
<div><a href="http://www.lesterchan.net/portfolio/programming.php">WP-PageNavi</a> – This manages the navigation between pages at the bottom of each page. I find it a lot easier to navigate sites that use this as opposed to the default WordPress “Next Page / Previous Page” setup.
</div>
</li>
<li>
<div><a href="http://www.w-a-s-a-b-i.com/archives/2006/02/02/wordpress-related-entries-20/">Related Posts</a> – Shows the related posts at the bottom of each page. It’s almost essential for any blog that has more than a handful of posts, as it allows readers to find a lot of older posts that may have remained hidden to them.
</div>
</li>
<li>
<div><a href="http://justinblanton.com/projects/smartarchives/">Smart Archives</a> – Used in conjunction with “<a href="http://www.soeren-weber.net/post/2005/08/18/50/">Exec-PHP</a>”, it produces the <a href="http://www.sodaware.net/blog/archives/">archives</a> I use on this blog. It’s another “must have” for anyone with more than a few posts.
</div>
</li>
<li>
<div><a href="http://www.randypeterman.com/StatTraq/index.php">StatTraq</a> – Shows me where people are visiting from, and what they’re reading. It’s not particularly heavy duty, but it gives a good overview of what’s happening.
</div>
</li>
</ul>
<p>You can find plenty more plugins at <a href="http://wp-plugins.net/">http://wp-plugins.net/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sodaware.net/blog/2006/07/my-favourite-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 1/51 queries in 0.027 seconds using disk
Object Caching 609/714 objects using disk

Served from: www.sodaware.net @ 2012-02-09 17:17:32 -->
