<?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>Jamie's Weblog &#187; Projects</title>
	<atom:link href="http://jamie.ideasasylum.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://jamie.ideasasylum.com</link>
	<description>Jamie's thoughts, ideas, musings and utter drivel.  Procrastination with a purpose!</description>
	<lastBuildDate>Sat, 28 Jan 2012 23:35:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Price Difference Distribution</title>
		<link>http://jamie.ideasasylum.com/2009/01/price-difference-distribution/</link>
		<comments>http://jamie.ideasasylum.com/2009/01/price-difference-distribution/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 10:29:25 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[dualpricing.ie]]></category>

		<guid isPermaLink="false">http://jamie.ideasasylum.com/?p=1033</guid>
		<description><![CDATA[A quick post of a graph I knocked up showing the distribution of price difference from dualpricing.ie: It seems that 35% price difference (after VAT and currency are already accounted for) is the sweet spot for most retailers. I wonder if this is based on economic fact or just because Irish consumers are trained to [...]]]></description>
			<content:encoded><![CDATA[<p>A quick post of a graph I knocked up showing the distribution of price difference from <a title="Dual Pricing" href="http://dualpricing.ie">dualpricing.ie</a>:</p>
<div id="attachment_1034" class="wp-caption alignnone" style="width: 502px"><a href="http://jamie.ideasasylum.com/wordpress/wp-content/uploads/chart.png"><img class="size-full wp-image-1034" title="Price Difference Distribution" src="http://jamie.ideasasylum.com/wordpress/wp-content/uploads/chart.png" alt="Price Difference Distribution" width="492" height="199" /></a><p class="wp-caption-text">Price Difference Distribution</p></div>
<p>It seems that 35% price difference (after VAT and currency are already accounted for) is the sweet spot for most retailers. I wonder if this is based on economic fact or just because Irish consumers are trained to accept a 30% increase in prices?</p>
<p>I was interviewed on the Neil Prenderville show on 96fm this morning, which is repeated at 0200-0500 tomorrow morning. I should be on around 0230 — not that anyone should stay up to listen to me!</p>
<p>The Irish Times has <a href="http://www.irishtimes.com/newspaper/ireland/2009/0128/1232923369655.html?via=mr">a piece today with more facts about dual pricing</a>, conclusing that Irish consumers are paying up to 50% more for non-grocery goods than in UK.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2009/01/price-difference-distribution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marketing Experiences from dualpricing.ie</title>
		<link>http://jamie.ideasasylum.com/2009/01/marketing-experiences-from-dualpricingie/</link>
		<comments>http://jamie.ideasasylum.com/2009/01/marketing-experiences-from-dualpricingie/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 11:44:50 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[dualpricing.ie]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jamie.ideasasylum.com/?p=1019</guid>
		<description><![CDATA[Firstly, I should mention that I wasn&#8217;t trying to push dualpricing.ie too hard. It&#8217;s just a side project and, frankly, thousands of visitors is probably going to cause me problems that I don&#8217;t want to spend money or time fixing. However, I was quietly hoping that the site would be useful and interesting to someone. [...]]]></description>
			<content:encoded><![CDATA[<p>Firstly, I should mention that I wasn&#8217;t trying to push <a href="http://dualpricing.ie">dualpricing.ie</a> too hard. It&#8217;s just a side project and, frankly, thousands of visitors is probably going to cause me problems that I don&#8217;t want to spend money or time fixing.  However, I was quietly hoping that the site would be useful and interesting to <i>someone</i>.  In terms of a commercial website, I haven&#8217;t achieved any sort of decent visitor numbers but for a non-<a href="http://www.mulley.net/">Mulley</a>, I think I&#8217;ve done pretty well.  At the time of writing (a little over a month since launch), I&#8217;ve had over 2000 unique visitors and the site ranks #1 for &#8216;dual pricing ireland&#8217; in Google.</p>
<p>I did only two proactive marketing activities: I twittered and I blogged about it. And nothing happened. Of course, I did this on Christmas Eve (hint: not the best time to start your marketing &#8220;campaign&#8221;) and I literally got 12 visitors. Over the next week I picked up ~1 vistor a day. On 30th December, someone posted a link in <a href="http://www.politics.ie/economy/39103-when-will-prices-uk-imports-fall-shops-2.html#post1339358">a politics.ie discussion</a> (thanks Danny!) and I got 23 visitors. Then it was back to 1-10 vistors a day until 12th January when I twittered about dualpricing.ie in relation to an Irish Times article.  In the meantime, Diarmuid MacShane of <a href="http://valueireland.com">ValueIreland.com</a> had picked up on dualpricing.ie because I&#8217;d linked to his blog from the about page.  He asked me to write <a href="http://www.valueireland.com/2009/01/sterling-to-euro-price-differences-a-new-resource-for-consumers/">a guest post about dualpricing.ie</a> and this was published on 13th January. I received 9 visitors referred from that blog on the 13th, but 110 overall since then. At the same time, Conor Pope of the Irish Times <a href="http://www.irishtimes.com/blogs/pricewatch/2009/01/15/natty-new-sterlingeuro-site/">wrote about dualpricing.ie on their PriceWatch blog</a> &mdash; this has gathered me 263 visitors since 15th January.  On the 16th January, there was a little Twitter activity as people started tweeting about the site and <a href="http://www.mulley.net/2009/01/16/fluffy-links-friday-january-16th-2009/">Damian Mulley picked up on it</a> (thanks!).</p>
<p>Since then, I&#8217;ve been consistently getting 50-100 uniques per day, with occasional spikes in the 150 range (mostly I suspect coming from twitter or perhaps email &mdash; it&#8217;s a shame that web analytics don&#8217;t extend to Twitter clients.</p>
<p>One other interesting aspect has been my contact with journalists: I&#8217;ve been contacted by an Irish Independent journalist but the subsequent article hasn&#8217;t appeared (update below); a Roscommon radio station wanted to interview me but I&#8217;ve never heard from them again; 96fm in Cork still wants to interview me but I&#8217;ve now spent 3 mornings waiting for them to call me back. It&#8217;s frustrating but not half as bad as if I really cared about promoting this site. I can&#8217;t imagine how hard it is when you really want to push a product or issue and are met by this sort of apathy. And this interest by journalists is no doubt helped by the subject of the site which is of current nation interest &mdash; God help you if you&#8217;re trying to push something that is not already on their radar.</p>
<p><strong>Update</strong>: It seems I spoke too soon, as John Cradden published <a href="http://www.independent.ie/business/personal-finance/latest-news/shoppers-here-are-still-being-hit-by-retail-ripoff-1615590.html">a story about dual pricing in today&#8217;s Independent newspaper</a>.  Hmmm&#8230; let&#8217;s see what that does to the stats!  I&#8217;ve also had another radio station contact me. Perhaps soon you&#8217;ll hear my boring voice broadcast over the air!</p>
<div id="attachment_1021" class="wp-caption alignnone" style="width: 310px"><a href="http://jamie.ideasasylum.com/wordpress/wp-content/uploads/dashboard.png"><img src="http://jamie.ideasasylum.com/wordpress/wp-content/uploads/dashboard-300x197.png" alt="dualpricing.ie stats" title="dualpricing.ie stats" width="300" height="197" class="size-medium wp-image-1021" /></a><p class="wp-caption-text">dualpricing.ie stats</p></div>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2009/01/marketing-experiences-from-dualpricingie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dual Pricing</title>
		<link>http://jamie.ideasasylum.com/2008/12/dual-pricing/</link>
		<comments>http://jamie.ideasasylum.com/2008/12/dual-pricing/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 09:00:37 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dual pricing]]></category>

		<guid isPermaLink="false">http://jamie.ideasasylum.com/?p=1000</guid>
		<description><![CDATA[About 2 weeks ago I was thinking about the dual pricing issue in Ireland (whereby UK stores/brands markup their prices for the Irish market). There are many reasons given for this dual pricing (tax, wages, rent, transportation and most often, currency). It occurred to me that some of the major price differences can easily be [...]]]></description>
			<content:encoded><![CDATA[<p>About 2 weeks ago I was thinking about the dual pricing issue in Ireland (whereby UK stores/brands markup their prices for the Irish market). There are many reasons given for this dual pricing (tax, wages, rent, transportation and most often, currency). It occurred to me that some of the major price differences can easily be accounted for: VAT rates and currency conversions.</p>
<p>That night I coded up a basic ruby on rails application which did just that. I waited a week whilst the .ie registration was processed and then spent another 2 evenings working on the theme. Another few more hours here and I present to you:</p>
<p><a title="Dual Pricing dot ie" href="http://dualpricing.ie">dualpricing.ie</a></p>
<p>It&#8217;s a simple little site that lets you enter a store, an item and the UK £ and Irish € prices. It does the simple calculations to remove the appropriate VAT and then converts the £ to €. The items and stores are tabulated so you can see who the worst offenders are. Give it a go with the price tags you&#8217;ve taken off the Christmas presents (you <em>did</em> remember to remove the prices before wrapping, didn&#8217;t you?). I&#8217;m morbidly curious to see how the tiny server it&#8217;s running on will handle the load.</p>
<p><strong>I&#8217;m trying not to be too judgemental with this site</strong>. There are obviously cost differences between UK and Ireland, and I&#8217;m sure Irish prices will always be a little bit more expensive, but I&#8217;m also convinced that many of these retailers are exploiting the Irish consumer. After all, if the retailers were just converting from UK prices and adding in a little Irish cost factor, why would our € prices be such neat numbers? Surely £10 should convert to something like €13.37 not €15? Anyway, it is not my intention to understand, criticise or justify these price differences — just expose them.</p>
<p><strong>Didn&#8217;t all the stores remove their UK prices?</strong> Actually, some did. Here&#8217;s my notes from a morning in Mahon point shopping centre:</p>
<ul>
<li>Next: places a label over the UK £ price (but you can easily see through or around it)</li>
<li>Ladybird: detaches the £ price (no doubt, to &#8220;prevent confusion&#8221;)</li>
<li>Debenhams: dual priced labels except on fragrances</li>
<li>Zara: No UK prices</li>
<li>Ecco: No UK prices</li>
<li>Principles: detached the UK prices</li>
<li>River Island: places a thick label over the UK price (can&#8217;t see through it, or easily remove it like in Next)</li>
</ul>
<p>Where stores have removed their dual prices it&#8217;s still easy to look them up on their UK shopping sites. I only wish I could make this happen automatically.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2008/12/dual-pricing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I&#8217;ve been up to</title>
		<link>http://jamie.ideasasylum.com/2008/04/what-ive-been-up-to/</link>
		<comments>http://jamie.ideasasylum.com/2008/04/what-ive-been-up-to/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 20:47:43 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://jamie.ideasasylum.com/?p=939</guid>
		<description><![CDATA[So, I&#8217;ve been out of work for the past 3 months since the accident but recently I haven&#8217;t been entirely idle.  I&#8217;ve finished off the personal finance site I first talked about almost a year ago and I&#8217;ve also written 2 other Ruby-on-Rails websites and got them deployed.  These aren&#8217;t fancy sites but they fill [...]]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been out of work for the past 3 months since the accident but recently I haven&#8217;t been entirely idle.  I&#8217;ve finished off the personal finance site I first talked about almost a year ago and I&#8217;ve also written 2 other Ruby-on-Rails websites and got them deployed.  These aren&#8217;t fancy sites but they fill various personal needs.  I&#8217;ll announce each site when I&#8217;m happy to let others play with them.</p>
<p>Ruby is actually a pretty cool language and Rails is certainly a reasonably quick framework to use (once you figure out the documentation and various magic incantations).  It took a lot longer than I was hoping to learn the Ruby language and understand the Rails framework, but then I was only working on it occasionally and I&#8217;m not a web developer.  It&#8217;s certainly better than writing Java code and adds another feather to my l33t programming skillz <img src='http://jamie.ideasasylum.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   Java for work; Ruby for pleasure.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2008/04/what-ive-been-up-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional Validation in Rails</title>
		<link>http://jamie.ideasasylum.com/2007/07/conditional-validation-in-rails/</link>
		<comments>http://jamie.ideasasylum.com/2007/07/conditional-validation-in-rails/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 00:52:39 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[BalanceTrackr]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://jamie.ideasasylum.com/2007/07/conditional-validation-in-rails/</guid>
		<description><![CDATA[I was implementing the Strategy pattern presented here to avoid the limitations of Single-Type Inheritance but I wanted to implement some conditional validations based on the type: If it&#8217;s a &#8220;MonthDay-based&#8221; recurring event (e.g. 23rd of every month), then the monthday field must be present If it&#8217;s a &#8220;Date-based&#8221; recurring event (e.g. 1st August, repeating [...]]]></description>
			<content:encoded><![CDATA[<p>I was implementing the Strategy pattern <a href="http://www.last100meters.com/2007/6/1/clean-code-tutorial-use-a-strategy-pattern-instead-of-inheritance" title="Strategy pattern in Rails instead of STI">presented here</a> to avoid the limitations of Single-Type Inheritance but I wanted to implement some conditional validations based on the type:</p>
<ul>
<li>If it&#8217;s a &#8220;MonthDay-based&#8221; recurring event (e.g. 23rd of every month), then the monthday field must be present</li>
<li>If it&#8217;s a &#8220;Date-based&#8221; recurring event (e.g. 1st August, repeating every year), then the frequency and unit fiels must be present</li>
</ul>
<p>It turns out that the validates_XXX methods can be an &#8216;if&#8217; parameter but it didn&#8217;t seem to work as expected.  You can&#8217;t just do</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">validates_presence_of <span style="color:#ff3333; font-weight:bold;">:count</span>, 
  :<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> recurring_strategy == <span style="color:#996600;">&quot;WeekDay&quot;</span></pre></div></div>

<p>but a quick <a href="http://www.google.com/codesearch?hl=en&amp;lr=&amp;q=lang%3Aruby+validates_.*%2C+%3Aif+%3D%3E+%3A.*%3D%3D&amp;btnG=Search">Google codesearch</a> revealed a more standard pattern:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">validates_numericality_of <span style="color:#ff3333; font-weight:bold;">:count</span>, 
  :<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#CC0066; font-weight:bold;">Proc</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>s<span style="color:#006600; font-weight:bold;">|</span> s.<span style="color:#9900CC;">recurring_strategy</span> == <span style="color:#996600;">&quot;WeekDay&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>

<p>A more experienced ruby&#8217;er could tell you exactly what this is doing but I&#8217;ll hazard a guess that <code>Proc.new</code> creates a new procedure that&#8217;s called with the parameter <code>s</code> to test the if condition.  Anyway, it seems to work.  The only hassle I had it that in <a href="http://www.last100meters.com/2007/6/1/clean-code-tutorial-use-a-strategy-pattern-instead-of-inheritance">the strategy example</a> they overrode the payment_strategy accessor which isn&#8217;t really necessary and makes accessing the &#8216;type&#8217; of strategy quite difficult.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2007/07/conditional-validation-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BalanceTracker: Introduction</title>
		<link>http://jamie.ideasasylum.com/2007/06/balancetracker-introduction/</link>
		<comments>http://jamie.ideasasylum.com/2007/06/balancetracker-introduction/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 23:06:17 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[BalanceTrackr]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://jamie.ideasasylum.com/2007/06/balancetracker-introduction/</guid>
		<description><![CDATA[I previously used an Excel spreadsheet to budget my quarterly student stipend and ensure that rent was paid, known expenses were accounted for and Visa cards paid off. This worked reasonably well but marriage and moving back to Ireland has made the personal finances a little more complicated: We each get paid at different times [...]]]></description>
			<content:encoded><![CDATA[<p>I previously used an Excel spreadsheet to budget my quarterly student stipend and ensure that rent was paid, known expenses were accounted for and Visa cards paid off.  This worked reasonably well but marriage and moving back to Ireland has made the personal finances a little more complicated: We each get paid at different times of the month, there are a lot more bills and we&#8217;re trying to live beyond just survival.  This means that my little spreadsheet isn&#8217;t as useful as it used to be.</p>
<p>Years ago I&#8217;d tried to use Microsoft Money but no UK/Irish banks support automated transaction downloading so I&#8217;d spend 2-3 hours a month inputting the transaction data, correcting it and fudging it to make the balances match.  Then I&#8217;d spend some time trying to categorise things so I could track my spending in certain areas.  It turned out that most of the time I was just getting cash out of the ATM.  And I when I started my PhD, I couldn&#8217;t even make Money understand that I was only paid quarterly &#8212; so I&#8217;d apparently spend 2 out of 3 months in serious poverty.  Personal finance applications like Money are designed by accountants, for accountants or for non-accountants trying to be accountants or who need to communicate with real accountants.  They&#8217;re just not designed for real usage.</p>
<p>Like a good software developer, I decided that this problem needed some programming and the idea was simple: keep it simple.  All I need to answer is a few basic question:</p>
<ul>
<li>Can I pay the known expenses this month (Rent, loans, etc)?</li>
<li>Given my current rate of spending, will my account ever go below zero, and when?</li>
<li>Given my current rate of saving, when will I have X amount?</li>
</ul>
<p>Instead of entering, tracking and tagging <em>transactions</em> all I need to enter is the account <em>balance</em> at a particular time.  If my balance was €2000 a week ago and is now €1000 but that included €750 in rent, I know that my untracked spending is running at ~€250/week and, unless I get paid, I&#8217;ll hit zero in about 4 weeks.  This is the basics of financial survival.</p>
<p>About two months ago I started coding the application as a C# WinForms application using lots of nice looking GUI controls, an embedded Firebird database and some base ADO.NET statements (yuk!).  Development slowed but the need didn&#8217;t, so last week I started looking at <a href="http://rubyonrails.org/" title="Ruby on Rails">Ruby on Rails</a>.  You see, I&#8217;ve recently noticed that the applications myself and Hilary need are all online: Gmail, Google Calandar, <a href="http://www.rememberthemilk.com" title="Remember the Milk">Remember The Milk</a>, etc.  On Wednesday I asked Hilary if she could give me 1 week of &#8220;us&#8221; time to work on a RoR implementation so that we&#8217;d have a functional version which we could start using.  I&#8217;d might tinker with it, and possibly open it up to public use, but it gave me a defined slot of time to get things done and Hilary knew she wasn&#8217;t losing me indefinitely.</p>
<p>By Day 3 I had: the database tables written, Rails scaffolding providing the basic CRUD forms, user authentication working, accounts associated with particular users and balances with particular accounts.  I also had some basic charts working with <a href="http://ziya.liquidrail.com/" title="Ziya chart plugin for Rails">Ziya</a> and account overviews provided by <a href="http://nubyonrails.com/pages/sparklines" title="Sparklines plugin for Rails">Sparklines</a>.</p>
<p>Unfortunately my block of time idea didn&#8217;t really work out.  It&#8217;s Tuesday night and I haven&#8217;t worked on it since Friday night.  There&#8217;s a lot more to do, including most of the date manipulation and recurring events etc, but so far I&#8217;m pretty happy (although my eyes are aching from computer-ing morning, noon and night).  It might have been easier with Python/Django (since I&#8217;m already familiar with Python) but I felt that was more info/tutorials around about Ruby on Rails (and learning yet another language can&#8217;t hurt).</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2007/06/balancetracker-introduction/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TaskMonifier Released!</title>
		<link>http://jamie.ideasasylum.com/2007/02/taskmonifier-released/</link>
		<comments>http://jamie.ideasasylum.com/2007/02/taskmonifier-released/#comments</comments>
		<pubDate>Tue, 27 Feb 2007 01:13:00 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Taskmonifier]]></category>

		<guid isPermaLink="false">http://www.jamie.ideasasylum.com/testblog/?p=870</guid>
		<description><![CDATA[Sometime ago I wrote about a little utility called Sigh that monitored processor usage and performed certain tasks when it drops. Well, I&#8217;ve expanded on Sigh and released TaskMonifier (yeah, daft name). TaskMonifier will now also monitor disk and network usage, and it now has the ability to send you an email or SMS message.]]></description>
			<content:encoded><![CDATA[<p>Sometime ago I wrote about a little utility called <a href="http://jamie.ideasasylum.com/2006/11/sigh.php">Sigh</a> that monitored processor usage and performed certain tasks when it drops.  Well, I&#8217;ve expanded on Sigh and released <a href="http://taskmonifier.ideasasylum.com">TaskMonifier</a> (yeah, daft name).  TaskMonifier will now also monitor disk and network usage, and it now has the ability to send you an email or SMS message.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2007/02/taskmonifier-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PhotoPlanet.py</title>
		<link>http://jamie.ideasasylum.com/2006/08/photoplanet/</link>
		<comments>http://jamie.ideasasylum.com/2006/08/photoplanet/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 17:44:00 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jamie.ideasasylum.com/testblog/2006/08/photoplanet/</guid>
		<description><![CDATA[h1. PhotoPlanet.py README Jamie Lawrence, 4th August, 2006 *This is a small script to &#8220;locate&#8221; your photos in &#8220;Google Earth&#8221;:http://earth.google.com/. It takes a GPS tracklog and a collection of photos, and generated a KML or KMZ file that allows Google Earth to pin thumbnails of your photos at the location where they were taken* !http://jamie.ideasasylum.com/notebook/images/35.jpg! [...]]]></description>
			<content:encoded><![CDATA[<p>h1. PhotoPlanet.py README</p>
<p>Jamie Lawrence, 4th August, 2006</p>
<p>*This is a small script to &#8220;locate&#8221; your photos in &#8220;Google Earth&#8221;:http://earth.google.com/.  It takes a GPS tracklog and a collection of photos, and generated a KML or KMZ file that allows Google Earth to pin thumbnails of your photos at the location where they were taken*</p>
<p>!http://jamie.ideasasylum.com/notebook/images/35.jpg!</p>
<p><span id="more-889"></span>h2. Requirements</p>
<p>* Python 2.4 (tested on &#8220;ActiveState Python 2.4 for Windows&#8221;:http://www.activestate.com/Products/ActivePython/)<br />
* Google Earth (v3 works fine, v4 should also work)<br />
* &#8220;EasyGPS&#8221;:http://www.topografix.com/ (for generating .gpx files).  Free.<br />
* A GPS device (most work with EasyGPS, I used a Garmin 60C)</p>
<p>h2. Installation</p>
<p>Unzip this directory to any location.  Done.</p>
<p>h2. Operation</p>
<p>* Make sure that your camera and GPS device are synchronised to exactly the same time<br />
* Make sure that your GPS device is recording a track log whilst you are taking photos<br />
* Load the tracklog into EasyGPS and save it as a GPX file<br />
* From a command prompt, call PhotoPlanet as:</p>
<p><code>python PhotoPlanet.py -g &lt;.gpx file&gt; -p &lt;photo dir&gt; -o &lt;output file&gt; -z</code></p>
<p>e.g.<br />
<code>python PhotoPlanet.py -g test2.gpx -p "E:\Documents and Settings\Jamie\Desktop\Test\test2" -o test2.kmz -z</code><br />
* Omit the -z switch if you just want a KML file (which link to the photos on your hard drive).<br />
* Open the generated KML/KMZ file in Google Earth and your photos will be added<br />
* An example .kmz file is included so you can see what the output is like</p>
<p>h2. Notes</p>
<p>* This script makes use of, and includes, the excellent &#8220;EXIF.py&#8221;:http://home.cfl.rr.com/genecash/digital_camera/EXIF.py.  I didn&#8217;t write it.<br />
* The script does NOT write to the photos, so it should be quite safe<br />
* Having said that, I&#8217;m not responsible if it doesn&#8217;t work or breaks something</p>
<p>h2. Code</p>
<p>The code is reproduced below for information purposes only.  You should download &#8220;the full archive&#8221;:http://jamie.ideasasylum.com/notebook/file_download/7 which includes all the necessary files, a README (mostly this document), and &#8220;example .KMZ file&#8221;:http://jamie.ideasasylum.com/notebook/file_download/8.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2006/08/photoplanet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trimming MoinMoin</title>
		<link>http://jamie.ideasasylum.com/2005/07/trimming-moinmoin/</link>
		<comments>http://jamie.ideasasylum.com/2005/07/trimming-moinmoin/#comments</comments>
		<pubDate>Wed, 13 Jul 2005 12:49:00 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jamie.ideasasylum.com/testblog/2005/07/trimming-moinmoin/</guid>
		<description><![CDATA[A small script to remove the extra language files from MoinMoin (probably now out-of-date) I use &#8220;MoinMoin&#8221;:http://moinmoin.wikiwikiweb.de as a personal notebook but I&#8217;ve found that it&#8217;s a little hard to manage the backups/merges when it comes with some many default pages. Upon investigation I&#8217;ve discovered that most of these redundant pages are not even in [...]]]></description>
			<content:encoded><![CDATA[<p>A small script to remove the extra language files from MoinMoin (probably now out-of-date)<br />
<span id="more-885"></span>I use &#8220;MoinMoin&#8221;:http://moinmoin.wikiwikiweb.de as a personal notebook but I&#8217;ve found that it&#8217;s a little hard to manage the backups/merges when it comes with some many default pages.  Upon investigation I&#8217;ve discovered that most of these redundant pages are not even in English.  Since I&#8217;m the only person using the wiki, and my human-language capabilities are limited to English, I thought I&#8217;d delete the spare, foreign language, pages.  Of course, since I&#8217;m a programmer, I&#8217;d rather let the computer do this tedious task for me!</p>
<p>Here&#8217;s a python script that iterates through a MoinMoin directory (e.g. c:\\Moin\\notebook\\data\\pages), then reads the current version for each page directory, loads the current revision of that page, checks for &#8220;#language XX&#8221;, and if XX != en (i.e., this is not an English page), it deletes the whole page directory.  This is a *very* dangerous script to use.  *Always backup first!*  There are no command-line options, so you have to hand-edit the paths but, hopefully, this means that you will also read the script, understand what it&#8217;s doing, and then you won&#8217;t blame me when it deletes everything on your PC!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2005/07/trimming-moinmoin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using a Wiki as a Research Notebook</title>
		<link>http://jamie.ideasasylum.com/2005/03/using-a-wiki-as-a-research-notebook/</link>
		<comments>http://jamie.ideasasylum.com/2005/03/using-a-wiki-as-a-research-notebook/#comments</comments>
		<pubDate>Fri, 04 Mar 2005 15:47:00 +0000</pubDate>
		<dc:creator>Jamie Lawrence</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jamie.ideasasylum.com/testblog/2005/03/using-a-wiki-as-a-research-notebook/</guid>
		<description><![CDATA[Using MoinMoin to keep track of research notes and references as part of my PhD. h2. Introduction I started a PhD in January 2005 and needed a way to keep track of all my notes, the papers I&#8217;d read, the quotes I&#8217;d like to remember etc. Initially, I spend (far too long) writing a Java [...]]]></description>
			<content:encoded><![CDATA[<p>Using MoinMoin to keep track of research notes and references as part of my PhD.</p>
<p><span id="more-883"></span>h2. Introduction</p>
<p>I started a PhD in January 2005 and needed a way to keep track of all my notes, the papers I&#8217;d read, the quotes I&#8217;d like to remember etc.  Initially, I spend (far too long) writing a Java outliner to keep track of my thoughts.  This quickly snowballed into a complicated project but wasn&#8217;t giving me what I wanted, so I abandoned it.  Next, I thought an existing framework would help me to concentrate on the real issues &#8211; I tried using &#8220;NetBeans&#8221;:http://www.netbeans.org as a base but it was, again, far too complicated for a quick project.  Recently, I&#8217;ve been using a &#8220;moleskine notebook&#8221;:http://www.moleskine.com (and nothing is ever going to make me stop using it) but this isn&#8217;t particularly searchable etc.  So, I&#8217;ve been looking for a reasonably easy Wiki I could use on my laptop, work PC and this website.  I chose MoinMoin but others may also be suitable.</p>
<p>MoinMoin is written in Python, which I am discovering makes it ideal for a little hacking.  Until last week, I&#8217;d never written any Python scripts but then I started playing around with Python and the Amazon API.  This gave me enough confidence to write two macros for MoinMoin.</p>
<p>h2. Installation</p>
<p>Download the two macros &#8220;BibKeys.txt&#8221;:/research/BibKeys.txt and &#8220;BibEntry.txt&#8221;:/research/BibEntry.txt and their dependant libraries (described at the end of this page).  Install the libraries using their instructions.  Copy the macros to your MoinMoin macros directory and change the extension from .txt to .py.  Both of the macros need to know the location of your BibTeX file so open them up and edit the following line to reflect your configuration:<br />
<code><br />
file = 'c:/Documents and Settings/jel03r/Desktop/PhD/reports/9mth Report/bibtex/references.bib'</code></p>
<p>h3. BibKeys.py</p>
<p>The first macro, BibKeys, creates a list of WikiNames from the keys in a BibTeX file.  Insert this macro into your page like this<br />
<code><br />
[[BibKeys]]<br />
</code></p>
<p>and you&#8217;ll get a list of the bibtex keys in your file.  You can now go and write comments/quotes etc about each paper</p>
<p>[[BibKeys]]</p>
<p>h3. BibEntry.py</p>
<p>This macro, BibEntry inserts the BibTeX entry into the page like such:<br />
<code><br />
[[BibEntry(Lawrence2004a)]]<br />
[[BibEntry]]<br />
</code></p>
<p>The first line will insert the bibtex entry for the key &#8220;Lawrence2004a&#8221;:<br />
<code>@ARTICLE{Lawrence2004a,<br />
author  = {Jamie Lawrence and Terry Payne},<br />
title   = {Making use of Insignificant Interactions},<br />
journal = {Equator All-hands Meeting},<br />
year    = {2004},<br />
month   = {February},<br />
owner   = {jamie},<br />
pdf     = {Lawrence2004a.pdf},<br />
}</code></p>
<p>The second line is useful if you create pages from a BibKeys macro: It inserts the bibtex entry using the current pagename as the key.  So, if the current page is called &#8220;Lawrence2004a&#8221; then is will have the same output as [[BibEntry(Lawrence2004a)]]</p>
<p>h2. Dependancies</p>
<p>These macros depend on &#8220;bibstuff&#8221;:http://www.pricklysoft.org/software/bibstuff.html, &#8220;seqdict&#8221;:http://home.germany.net/100-366919/Python/Modules/Modules.html, &#8220;Simple Parser&#8221;:http://simpleparse.sourceforge.net/ and &#8220;mxTextTools&#8221;:http://www.egenix.com/files/python/mxTextTools.html.  These must be installed first.  I&#8217;ve tested this on Apache/Apache2, Python 2.2/2.3 and MoinMoin 1.2.2/1.3.3, on both Linux and Windows.</p>
<p>Contact me via this website if you want more details, or leave a comment below</p>
]]></content:encoded>
			<wfw:commentRss>http://jamie.ideasasylum.com/2005/03/using-a-wiki-as-a-research-notebook/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

