<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Where there is a Will</title>
	<link>http://www.willmcgugan.com</link>
	<description>Blog of Will McGugan</description>
	<pubDate>Fri, 18 Jul 2008 06:43:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Food File on Ubuntu</title>
		<link>http://www.willmcgugan.com/2008/07/12/food-file-on-ubuntu/</link>
		<comments>http://www.willmcgugan.com/2008/07/12/food-file-on-ubuntu/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 15:22:39 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/07/12/food-file-on-ubuntu/</guid>
		<description><![CDATA[Since I&#8217;ve moved to Linux as my primary desktop (I know, about time), I&#8217;ve been motivated in porting some of my old software. This shouldn&#8217;t be too difficult, since I try to work in as platform agnostic manner as possible, and when I do use a platform specific API I keep it nice and modular. [...]]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;ve moved to Linux as my primary desktop (I know, about time), I&#8217;ve been motivated in porting some of my old software. This shouldn&#8217;t be too difficult, since I try to work in as platform agnostic manner as possible, and when I do use a platform specific API I keep it nice and modular. <a href="http://www.kelpiesoft.com/applib/foodfile/">Food File</a> is probably the most popular app I ever created, although only since I made it free. As a commercial app, it didn&#8217;t do to well, probably because it didn&#8217;t get noticed amongst all the diet / food applications for Windows out there, or possibly because I am lousy at marketing.</p>
<p>Food File on linux seems like a good fit, because it is a free <a href="http://www.wxpython.org">wxPython</a> interface to a publicly available data source (<a href="http://www.nal.usda.gov/fnic/foodcomp/search/">USDA Nutrient Database</a>). I was hoping it would run without modification, but it failed on a line that used Windows-style back-slashes in paths rather than forward slashses &#8212; as prefered by linux. After changing 4 such lines, it ran. I was surprised that the fancy OpenGL graphics didn&#8217;t cause any problems, but it did segfault on the About box, the simplest dialog in the entire app (go figure). I haven&#8217;t got to the bottom of that yet, but when I do, I will release a Linux version. Here&#8217;s a screenshot of Food File running under Ubuntu:</p>
<p><a href="http://www.flickr.com/photos/billowycoat/2661343758/" title="Screenshot by Billowycoat, on Flickr"><img src="http://farm4.static.flickr.com/3282/2661343758_5b645ebc93_m.jpg" alt="Screenshot" width="240" height="192" /></a></p>
<p>I don&#8217;t have any experience building a Linux package. If the <em>lazyweb</em> would like to help me with that, it would be appreciated!</p>
<p>I think it was this project that started my <a href="http://www.willmcgugan.com/2008/06/29/pretty-as-pie/">pie chart fetish</a>. I wonder if there is a support group or something&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/07/12/food-file-on-ubuntu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A CSS Mnemonic</title>
		<link>http://www.willmcgugan.com/2008/06/30/a-css-mnemonic/</link>
		<comments>http://www.willmcgugan.com/2008/06/30/a-css-mnemonic/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 15:09:46 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/06/30/a-css-mnemonic/</guid>
		<description><![CDATA[One of the things that used to annoy me about working with CSS, is that I had a mental block about margin and padding. I could never recall which was which, because the two terms mean pretty much the same thing; an arbitrary space around text. Frankly I think the creators of CSS should have [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things that used to annoy me about working with CSS, is that I had a mental block about <em>margin </em>and <em>padding</em>. I could never recall which was which, because the two terms mean pretty much the same thing; an arbitrary space around text. Frankly I think the creators of CSS should have used have called them <em>inner-margin</em> and <em>outer-margin</em>, or <em>inner-padding</em> and<em> outer-padding</em>. I&#8217;m sure there is a good reason for using the terms <em>margin </em>and <em>padding </em>(I&#8217;m guessing its from typesetting nomenclature), but to me they feel arbitrary and may have well have been called <em>bob </em>and <em>jane</em>.</p>
<p>Fortunately I came up with a mnemonic that made it click. Just remember the phrase &#8216;padded cell&#8217;. In a padded cell, the padding goes on the inside. So there you have it, you&#8217;ll never again forget that the box model is text -&gt; padding -&gt; border -&gt; margin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/06/30/a-css-mnemonic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pretty as Pie</title>
		<link>http://www.willmcgugan.com/2008/06/29/pretty-as-pie/</link>
		<comments>http://www.willmcgugan.com/2008/06/29/pretty-as-pie/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 18:28:43 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/06/29/pretty-as-pie/</guid>
		<description><![CDATA[I&#8217;ve just spend a couple of hours dusting off an old project of mine, that involved generating pretty 3D pie charts by combining Mako templates with the Povray scene description language. I improved the image quality by enabling radiosity, and the end result is quite appealing (see below).

Now I&#8217;m thinking that there may be some [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just spend a couple of hours dusting off an old project of mine, that involved generating pretty <a href="http://www.willmcgugan.com/2008/02/16/easy-as-pie/">3D pie charts</a> by combining <a href="http://www.makotemplates.org/">Mako templates </a>with the <a href="http://www.povray.org">Povray</a> scene description language. I improved the image quality by enabling <a href="http://en.wikipedia.org/wiki/Radiosity">radiosity</a>, and the end result is quite appealing (see below).</p>
<p><a href="http://www.flickr.com/photos/billowycoat/2621155203/" title="prettypie by Billowycoat, on Flickr"><img src="http://farm4.static.flickr.com/3160/2621155203_1c0e96fc9b_m.jpg" alt="prettypie" width="240" height="180" /></a></p>
<p>Now I&#8217;m thinking that there may be some people out there who would be prepared to pay to generate such images for websites or for print, and it wouldn&#8217;t be too hard to extend the idea to other forms of chart, such as bar graphs. So, dear lazyweb, is there a big enough market in such a thing to warrant sinking my valuable spare time into?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/06/29/pretty-as-pie/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Postmarkup on the block</title>
		<link>http://www.willmcgugan.com/2008/06/24/new-postmarkup-on-the-block/</link>
		<comments>http://www.willmcgugan.com/2008/06/24/new-postmarkup-on-the-block/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 16:55:31 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/06/24/new-postmarkup-on-the-block/</guid>
		<description><![CDATA[I&#8217;ve released version 1.1.0 of Postmarkup. The main improvements are that it generates cleaner html, that doesn&#8217;t include invisible div sections, and that it should also generate XHTML that validates (previous versions  could put block tags inside inline tags for some bbcode).
The basic interface is the same, so it should be a drop in replacement [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve released version 1.1.0 of <a href="http://code.google.com/p/postmarkup/">Postmarkup</a>. The main improvements are that it generates cleaner html, that doesn&#8217;t include invisible div sections, and that it should also generate XHTML that validates (previous versions  could put block tags inside inline tags for some bbcode).</p>
<p>The basic interface is the same, so it should be a drop in replacement for most people. The  base class for tags has changed (but not significantly), so if you have any custom tags, it will require a little work to get them functional again. See postmarkup.py for example tags.</p>
<p>I actually quite like bbcode as a light-weight markup. Possibly I&#8217;m rationalising, as I&#8217;ve spent a couple of days polishing it when I should be job-hunting! Its great for its original purpose, of letting forum users format text, but it could be used as a more friendly alternative to XML. It&#8217;s also higher level than (X)HTML in that a tag can generate intelligent content rather that simply applying a style.</p>
<p>Now I have to find some other project to keep me entertained before I re-join the rat race!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/06/24/new-postmarkup-on-the-block/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BBCode Ajax test server</title>
		<link>http://www.willmcgugan.com/2008/06/23/bbcode-ajax-test-server/</link>
		<comments>http://www.willmcgugan.com/2008/06/23/bbcode-ajax-test-server/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:24:29 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/06/23/bbcode-ajax-test-server/</guid>
		<description><![CDATA[Since I have some time on my hands, I&#8217;ve been doing a little work on Postmarkup - my BBCode module. I&#8217;ve made some significant improvements to the design which fixes a few issues and makes it easier to create new tags. To test it, I hacked together a simple web-app using CherryPy, which allows you [...]]]></description>
			<content:encoded><![CDATA[<p>Since I have some <a href="http://www.willmcgugan.com/2008/06/16/looking-for-a-python-role-in-london/">time on my hands</a>, I&#8217;ve been doing a little work on <a href="http://code.google.com/p/postmarkup/">Postmarkup</a> - my BBCode module. I&#8217;ve made some significant improvements to the design which fixes a few issues and makes it easier to create new tags. To test it, I hacked together a simple web-app using <a href="http://www.cherrypy.org">CherryPy</a>, which allows you to edit bbcode in the browser and see the resulting html update live &#8212; with a little Ajax magic.</p>
<p><a href="http://postmarkup.willmcgugan.com">Postmarkup test server</a></p>
<p>Please give it a try, and let me know if you can break it.</p>
<p>In building this, I&#8217;ve created a very rudimentary web service. I&#8217;m wondering if there is any practical use for such a thing&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/06/23/bbcode-ajax-test-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My CV / Resume</title>
		<link>http://www.willmcgugan.com/2008/06/19/my-cv-resume/</link>
		<comments>http://www.willmcgugan.com/2008/06/19/my-cv-resume/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 17:56:49 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/06/19/my-cv-resume/</guid>
		<description><![CDATA[It seems it is a good time to be a Python developer, after my last post I received a number of good leads. All before I had finished my CV.
]]></description>
			<content:encoded><![CDATA[<p>It seems it is a good time to be a Python developer, after my <a href="http://www.willmcgugan.com/2008/06/16/looking-for-a-python-role-in-london/">last post</a> I received a number of good leads. All before I had finished <a href="/files/willmcgugancv.pdf">my CV</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/06/19/my-cv-resume/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Looking for a Python Role In London</title>
		<link>http://www.willmcgugan.com/2008/06/16/looking-for-a-python-role-in-london/</link>
		<comments>http://www.willmcgugan.com/2008/06/16/looking-for-a-python-role-in-london/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 11:52:37 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/06/16/looking-for-a-python-role-in-london/</guid>
		<description><![CDATA[Its seems I&#8217;m on the job-market again.
I&#8217;m a software developer with over 10 years experience. I&#8217;m looking for a role working with Python, which has been the focus of my career for the last 18 months. Prior to that I worked with a mixture of C/C++ and Python. Ideally I&#8217;m looking for something in web [...]]]></description>
			<content:encoded><![CDATA[<p>Its seems I&#8217;m on the job-market again.</p>
<p>I&#8217;m a software developer with over 10 years experience. I&#8217;m looking for a role working with Python, which has been the focus of my career for the last 18 months. Prior to that I worked with a mixture of C/C++ and Python. Ideally I&#8217;m looking for something in web development as I enjoy working with HTML / CSS and Javascript,  but I&#8217;m open to other fields that may interest me. I have experience working with Turbogears and Django, as well as many other Python modules and technology.</p>
<p>I enjoy developing software outside of a work environment, and have created several games, <a href="http://www.kelpiesoft.com/applib/foodfile/">applications</a>, <a href="http://www.becontrary.com">web sites</a>, and open source <a href="http://code.google.com/p/netstring/">Python</a> <a href="http://code.google.com/p/postmarkup/">modules</a>. My blog is probably the best place to find out more about my spare time projects, see my <a href="http://www.willmcgugan.com/category/tech/python/">Python articles</a> for more information.</p>
<p>I&#8217;m also an author, having written a <a href="http://www.apress.com/book/view/1590598725">book about game development</a> with Python. So I like to think I am a good communicator.</p>
<p>I&#8217;d like a full-time position, but I would consider contract work. I&#8217;m based in London, so anything in central London would be ideal. Please get in touch if you have a suitable role or would like to know more. I&#8217;m available for immediate start.</p>
<p><img src="http://www.willmcgugan.com/email.gif" alt="my email" width="265" height="20" /></p>
<p>Mobile: 07722 531972</p>
<p>No recruiters please. And by no recruiters, I mean <em>no recruiters</em>.</p>
<p><strong>Update</strong>: I have updated my CV (<a href="/files/willmcgugancv.pdf">willmcgugancv.pdf)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/06/16/looking-for-a-python-role-in-london/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Career ponderings</title>
		<link>http://www.willmcgugan.com/2008/03/14/career-ponderings/</link>
		<comments>http://www.willmcgugan.com/2008/03/14/career-ponderings/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 13:19:26 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/03/14/career-ponderings/</guid>
		<description><![CDATA[I have a new job. I wasn&#8217;t even looking a new position, I was actually quite settled doing contract work for chessclub.com (working on a wxPython client for their Internet chess service). My new job is working for a startup, based in London, that is creating a big site with Django. I&#8217;m not sure if [...]]]></description>
			<content:encoded><![CDATA[<p>I have a new job. I wasn&#8217;t even looking a new position, I was actually quite settled doing contract work for <a href="http://www.chessclub.com">chessclub.com</a> (working on a <a href="http://www.wxpython.org">wxPython</a> client for their Internet chess service). My new job is working for a startup, based in London, that is creating a big site with <a href="http://www.django.com">Django</a>. I&#8217;m not sure if I can tell you much about the site itself yet, but I do think they have found a niche on the internet that isn&#8217;t fully catered for.</p>
<p>Starting a new job has made me consider, what I laughingly call, my <em>career</em>. I started out in games, writing really low level code in assembler and eventually moved in to 3D graphics. Working in games can be a lot of fun, but I found that I was solving the same kind of problems over and over again. Partially because even cutting edge games must perform the same kind of tasks as ancient (&gt; 10 years old) games, and partially because C++ doesn&#8217;t deliver what it promises in terms of re-use of code. I also found I disliked working on massive projects because its hard to feel any sense of ownership in the project when you know you are a small cog in a big machine. Fortunately I manged to change the direction of my career by getting in to <a href="http://www.python.org">Python</a>.</p>
<p>What I&#8217;ve realised recently is that my hobby projects drive my career. I got my first job in games by writing a <a href="http://www.willmcgugan.com/2008/02/20/degreelessness/">3D graphics demo</a>,  subsequent games jobs were off the back of an <a href="http://www.willmcgugan.com/2007/05/16/raising-little-monsters/">AI life demo</a> I wrote, and I&#8217;m sure that one of the reasons I got a job with <a href="http://www.chessclub.com">chessclub.com</a> was that I had already written a <a href="http://www.chesscommander.com">chess game</a> in my spare time. Even this new job was probably helped by my most recent <a href="http://www.becontrary.com">hobby project</a>. So I would encourage anyone to take up some hobby projects or work on open source. I would also encourage programmers to go in to some niche technology area, rather than whatever technology is the most commercial at the time. Sooner or later any skill will become mainstream and the job market will be saturated. Better to have less common skills so that you will always be in demand. Seems to have worked for me so far.</p>
<p>That my self-indulgent post for this year. Back to the usual geeky stuff next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/03/14/career-ponderings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Practicality versus Purity for Python Templates</title>
		<link>http://www.willmcgugan.com/2008/02/28/practicality-versus-purity-for-python-templates/</link>
		<comments>http://www.willmcgugan.com/2008/02/28/practicality-versus-purity-for-python-templates/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 19:40:15 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[BeContrary]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[TurboGears]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/02/28/practicality-versus-purity-for-python-templates/</guid>
		<description><![CDATA[There are a number of very powerful template languages available in Python. Some template languages, such as Genshi, allow complex Python statements and even full Python code within the template file. Others, such as Django templates, prefer to restrict templates to presentation only and do not allow general Python expressions within the body of the [...]]]></description>
			<content:encoded><![CDATA[<p>There are a number of very powerful template languages available in Python. Some template languages, such as <a href="http://genshi.edgewall.org/">Genshi</a>, allow complex Python statements and even full Python code within the template file. Others, such as <a href="http://www.djangoproject.com/">Django</a> templates, prefer to restrict templates to presentation only and do not allow general Python expressions within the body of the template.</p>
<p>In the context of a web framework, <a href="http://www.becontrary.com/debates/practicality_versus_purity_in_python_templates">is it better to have the full expressiveness of Python, or restrict templates to presentation only?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/02/28/practicality-versus-purity-for-python-templates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Away</title>
		<link>http://www.willmcgugan.com/2008/02/20/away/</link>
		<comments>http://www.willmcgugan.com/2008/02/20/away/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 14:58:37 +0000</pubDate>
		<dc:creator>Will</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.willmcgugan.com/2008/02/20/away/</guid>
		<description><![CDATA[I&#8217;m going to Miami for a few days, so mail will go unanswered until I get back on Tuesday. :-)
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to Miami for a few days, so mail will go unanswered until I get back on Tuesday. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.willmcgugan.com/2008/02/20/away/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
