<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Joel Hughes's Blog</title>
	
	<link>http://www.joelhughes.co.uk/blog</link>
	<description />
	<lastBuildDate>Fri, 02 Oct 2009 12:05:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/joelhughes" /><feedburner:info uri="joelhughes" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>joelhughes</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Vim is a great text editor</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/9yb14WzvSsw/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/10/vim-is-a-great-text-editor/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 11:13:19 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[IDEs]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=299</guid>
		<description><![CDATA[Vim is a text editor (evolved from Vi) that originated on the Amiga. Starting out as a command line only tool, all text editing was carried out via key strokes rather than via mouse and GUI. I first came across Vim on Linux servers, it was confusing and I struggled with the simplest editing tasks.
Today [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Vim_(text_editor)" target="_blank">Vim is a text editor (evolved from Vi) that originated on the Amiga</a>. Starting out as a command line only tool, all text editing was carried out via key strokes rather than via mouse and GUI. I first came across Vim on Linux servers, it was confusing and I struggled with the simplest editing tasks.</p>
<p>Today Vim has become my primary text editor. I love it. I use it on Windows and Linux as a standalone app and <a href="http://eclim.sourceforge.net/" target="_blank">embedded into the Eclipse IDE</a>.</p>
<p>What makes it so good? In short, once you have mastered a few basic commands (similar to shortcuts) you find yourself working with text in a more efficient/involved way. Your hands rarely leave the keyboard, you can complete complicated tasks in fewer steps resulting in a greater feeling of involvement with the code. The physical task of writing code hasn&#8217;t changed a great deal over the years and Vim has been refined, over the last 18 years, to suit this task. Basically: &#8220;it doesn&#8217;t get in the way&#8221;.</p>
<p>If you want to get to know vim a little better here are a few links that I have found really helpful:</p>
<ul>
<li>Find the appropriate version of <a href="http://www.vim.org/download.php" target="_blank">Vim for your OS and install</a>.</li>
<li>Start learning the ropes with these tutorials:
<ul>
<li><a href="http://www.eecs.harvard.edu/~cduan/technical/vi/vi-1.shtml" target="_blank">Using Vi/Vim: A Brief Tutorial</a></li>
<li><a href="http://jmcpherson.org/editing.html" target="_blank">Efficient Editing With vim</a></li>
<li><a href="http://jmcpherson.org/windows.html" target="_blank">Splits and multi-file editing</a></li>
<li><a href="http://www.tuxfiles.org/linuxhelp/vimcheat.html" target="_blank">The Vim commands cheat sheet &#8211; 1.2</a></li>
<li><a href="http://vim.wikia.com/wiki/Best_Vim_Tips" target="_blank">Vim Tips wiki</a></li>
</ul>
</li>
<li>Vim is very customisable, the settings are stored in the <em>vimrc</em> file which resides in the install&#8217;s directory (<em>C:\Program Files\Vim\_vimrc</em> on my version of windows). These links helped me out:
<ul>
<li><a href="http://groups.google.com/group/vim_use/msg/355844152db8fcb3" target="_blank">Select colour scheme and font</a></li>
<li><a href="http://tedlogan.com/techblog3.html" target="_blank">Secrets of tabs in vim (set indent type and depth)</a></li>
<li><a href="http://jmcpherson.org/vimrc.html" target="_blank">vimrc tips</a></li>
<li><a href="http://www.vi-improved.org/vimrc.php" target="_blank">Example .vimrc</a></li>
<li><a href="http://news.ycombinator.com/item?id=856051" target="_blank">Favourite tips (Hacker News)</a></li>
</ul>
</li>
</ul>
<p>There may be a steep learning curve but the rewards are well worth it!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=9yb14WzvSsw:3Se_BM3lRoM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=9yb14WzvSsw:3Se_BM3lRoM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=9yb14WzvSsw:3Se_BM3lRoM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=9yb14WzvSsw:3Se_BM3lRoM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=9yb14WzvSsw:3Se_BM3lRoM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/9yb14WzvSsw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/10/vim-is-a-great-text-editor/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/10/vim-is-a-great-text-editor/</feedburner:origLink></item>
		<item>
		<title>Web development is changing to meet mobile needs</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/6-RkCVMaIUs/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/09/web-development-is-changing-to-meet-mobile-needs/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 10:59:41 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[web-apps]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=288</guid>
		<description><![CDATA[Since the I-Phone&#8217;s release, the &#8220;general public&#8221; has been switched on to mobile computing in a new way. Previously expensive, high end, &#8220;smart phones&#8221;/mobile-devices were marketed to business users and geeks. Now the landscape has changed: devices are springing up from many manufacturers and Apple’s App Store model is popular across the board.
It seems logical [...]]]></description>
			<content:encoded><![CDATA[<p>Since the I-Phone&#8217;s release, the &#8220;general public&#8221; has been switched on to mobile computing in a new way. Previously expensive, high end, &#8220;smart phones&#8221;/mobile-devices were marketed to business users and geeks. Now the landscape has changed: devices are springing up from many manufacturers and Apple’s App Store model is popular across the board.</p>
<p>It seems logical that, as these devices become more widely used, the way users interact with web services will incorporate the mobile platform as a core method of interaction.</p>
<p>Next time I&#8217;m building a new service that needs to be accessible on multiple platforms I think it would make sense to build an API before a website. Until recently I&#8217;ve planned projects around browser based distribution, now <a href="http://www.joelhughes.co.uk/blog/2009/06/goodbye-browsers-what-next/" target="blanks">the browser may become less dominant</a>.</p>
<p>Having useful services open to many developers over an API will aid proliferation of the tool. Developers would be free to provide the applications for the various platforms (as Twitter have done, I suppose that&#8217;s why the next step on from &#8220;hello world&#8221; is becoming the Twitter client on many SDK tutorials). I know this is nothing new, but as mobile becomes more embedded into daily life: the way developers build services on the web will need to shift to accommodate it.</p>
<p>This isn&#8217;t really a &#8220;proper post&#8221; more of a stream of consciousness; I&#8217;m about to make the shift from Web Developer to Mobile Developer and am very excited about the new possibilities.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=6-RkCVMaIUs:qSK_dhbm8ec:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=6-RkCVMaIUs:qSK_dhbm8ec:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=6-RkCVMaIUs:qSK_dhbm8ec:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=6-RkCVMaIUs:qSK_dhbm8ec:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=6-RkCVMaIUs:qSK_dhbm8ec:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/6-RkCVMaIUs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/09/web-development-is-changing-to-meet-mobile-needs/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/09/web-development-is-changing-to-meet-mobile-needs/</feedburner:origLink></item>
		<item>
		<title>“The more people do, the more society develops, the more problems arise.”</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/FvHNqBleeD4/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/07/the-more-people-do-the-more-society-develops-the-more-problems-arise/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 09:06:29 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[concept]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[running]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=257</guid>
		<description><![CDATA[The title of this post is an excerpt (from an excerpt) of a quote by Masanobu Fukuoka (posted by Tom Hodgkinson on The Idler blog). Masanobu Fukuoka was a soil scientist who turned his back on the perceived wisdom of modern agricultural practices to develop a technique of &#8220;natural farming&#8221; that more closely mimics nature.
This [...]]]></description>
			<content:encoded><![CDATA[<p>The title of this post is an excerpt (from an excerpt) of a <a href="http://idler.co.uk/news/quote-for-the-day/" target="blank">quote by Masanobu Fukuoka</a> (posted by <a href="http://en.wikipedia.org/wiki/Tom_Hodgkinson" target="blank">Tom Hodgkinson</a> on <a href="http://idler.co.uk" target="blank">The Idler blog</a>). <a href="http://en.wikipedia.org/wiki/Masanobu_Fukuoka" target="blank">Masanobu Fukuoka</a> was a soil scientist who turned his back on the perceived wisdom of modern agricultural practices to develop a technique of &#8220;natural farming&#8221; that more closely mimics nature.</p>
<p>This approach appeals to me. As a developer it is a core skill to innovate and find solutions to problems. Often these are solutions built on top of other solutions. By taking a step back and viewing the developments from a broader perspective the solution may be to cut away &#8220;innovations&#8221; rather than adding to them.</p>
<h3>Running Shoe Technology Goes Full Circle</h3>
<p>I have recently become the owner of a pair of <a href="http://www.vibramfivefingers.com/" target="blank">Vibram FiveFingers shoes</a>. These are basically a thin covering for the soles of my feet allowing me to walk and run &#8220;barefoot&#8221; (the actual soles of my feet are far too soft to be practical).</p>
<p>I came across FiveFingers in the comments for this article about how <a href="http://www.dailymail.co.uk/home/moslive/article-1170253/The-painful-truth-trainers-Are-expensive-running-shoes-waste-money.html" target="blank">the invention of cushioned shoes has changed the way humans walk and run</a>. Sports shoes have lead to many humans walking and running in a fashion that differs from the way the foot evolved to be used. As a result many runners (tired of injuries associated with landing on the heel of the foot) are using &#8220;barefoot&#8221; training methods to keep their bodies healthy.</p>
<p>Here&#8217;s a rough illustration of how barefoot running has come back around:</p>
<ul>
<li>Humans evolved to walk on their hind legs, their feet acting a a shock absorber along with the ankles an knees</li>
<li>Shoes similar to <a href="http://barefootted.com/shop/" target="blank">huarache sandals</a> arrive allowing the wearer to withstand uncomfortable surfaces</li>
<li>Fashion and innovation combine leading the majority of the developed world to wear shoes with some sort of heal</li>
<li>Around 1972 modern athletic shoes are invented, coinciding with the growth of sports sciences</li>
<li>Today more people than ever suffer from sport and posture related injuries which need corrective orthopedic treatments. Shoes like the <a href="http://www.swissmasai.com" target="blank">MBT</a> are invented to &#8220;correct&#8221; the foot and allow us to walk &#8220;naturally&#8221;</li>
</ul>
<p>It seems that many of the claims that are made for the benefits of orthopedic insoles and MBT shoes are mirrored by simply wearing no shoes at all.</p>
<h3>How about software and programming?</h3>
<p>One example of the over-engineering that goes on in software development industry might be: <a href="http://www.smarty.net/" target="blank">templateing engines</a> creeping into PHP.</p>
<p>PHP started life as a way to customise static web pages (e.g. adding today&#8217;s date or simple hit counters), it then evolved into a way to manage page layouts and behaviour, effectively an interactive templating language. Further evolution has lead to PHP becoming a full blown Object Oriented Language, and with this development have come various frameworks that improve code reuse and working practices.</p>
<p>Then came an innovation that (in my eyes) went too far, templating languages were introduced to make them manageability of page layout and data representation easier. This meant more code to interpret them and therefore further load on the system running it.</p>
<p>One of PHP&#8217;s core appeals is its ability to mesh directly with HTML, a language truly intertwined with the web; templating seemed an unnecessary step away from that.</p>
<p>For some applications abstraction layers may be a step too far especially when it is an abstraction based on an abstraction.</p>
<p>In a broader sense this could apply to software in the form of <a href="http://en.wikipedia.org/wiki/Feature_creep" target="blank">feature creep</a>.</p>
<p>I&#8217;m not saying that innovation is a bad thing, far from it. But, it may make sense to look at the whole process and in some cases whittle it back down to provide the best solution.</p>
<h3>To conclude the rambling</h3>
<p>It is a paradox. If you define the success of a species by ability to bend the environment around to their will, then humans most productive trait is the desire to innovate.</p>
<p>However, innovation upon innovation can lead to imperfections and further problems (which in turn will need further solutions).</p>
<p>A valuable skill, to those who&#8217;s vocation it is to innovate (software developers especially), may be to recognise when a problem can be solved by removing a layer of complication rather than adding yet another &#8220;solution&#8221;.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=FvHNqBleeD4:FQz7F5DteP0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=FvHNqBleeD4:FQz7F5DteP0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=FvHNqBleeD4:FQz7F5DteP0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=FvHNqBleeD4:FQz7F5DteP0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=FvHNqBleeD4:FQz7F5DteP0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/FvHNqBleeD4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/07/the-more-people-do-the-more-society-develops-the-more-problems-arise/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/07/the-more-people-do-the-more-society-develops-the-more-problems-arise/</feedburner:origLink></item>
		<item>
		<title>Pocket Programming: Learning New Skills Anywhere</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/emfGn6hReOo/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/06/pocket-programming-learning-new-skills-anywhere/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 12:11:54 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[katas]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=237</guid>
		<description><![CDATA[Summer is here, and in a few days I&#8217;m off on holiday. Aside from the eating, drinking, sleeping, sight-seeing and reading: it may be a good chance to hone my problem solving and Python skills.
I&#8217;ll be travelling light, taking in the east coast of Spain. So, any coding has to be done in the most [...]]]></description>
			<content:encoded><![CDATA[<p>Summer is here, and in a few days I&#8217;m off on holiday. Aside from the eating, drinking, sleeping, sight-seeing and reading: it may be a good chance to hone my problem solving and Python skills.</p>
<p>I&#8217;ll be travelling light, taking in the east coast of Spain. So, any coding has to be done in the most portable/light-weight fashion.</p>
<p><img src="http://www.joelhughes.co.uk/pocket-programming-kit.jpg" alt="Joel's Pocket Programming Kit" /></p>
<p>Here is my pocket sized kit list for an ultra-portable programming environment:</p>
<ul>
<li>
<h3>Hardware:</h3>
<ul>
<li><a href="http://europe.nokia.com/find-products/devices/nokia-e71" target="blank">Nokia E71</a>, which uses Symbian&#8217;s S60 OS</li>
<li>Mini notebook, <a href="http://www.moleskine.co.uk/styles/" target="blank">Moleskin Cahier</a> style are my current favourite, small and scruffy but very handy</li>
<li>Pen</li>
</ul>
</li>
<li>
<h3>Software:</h3>
<ul>
<li><a href="http://opensource.nokia.com/projects/pythonfors60/" target="blank">Python S60</a></li>
<li><a href="http://code.google.com/p/ped-s60/" target="blank">Ped</a>, pocket Python IDE</li>
<li><a href="http://pdis.hiit.fi/pdis/download/miso/" target="blank">Miso</a>, fun python library with access to the phone&#8217;s hardware (vibrate, lights etc&#8230;)</li>
<li><a href="http://www.opera.com/mobile/download/" target="blank">Opera Mobile</a>, for browsing HTML E-books</li>
</ul>
</li>
<li>
<h3>Documentation:</h3>
<ul>
<li><a href="http://oreilly.com/catalog/9780596001896/" target="blank">O&#8217;Reilly Pocket Python</a></li>
<li><a href="http://diveintopython.org/" target="blank">Dive into Python</a> E-Book, HTML version</li>
</ul>
</li>
<li>
<h3>Problems to solve:</h3>
<ul>
<li><a href="http://codekata.pragprog.com/2007/01/code_kata_backg.html" target="blank">Code Katers</a>, exercises that aim to improve programming technique</li>
<li><a href="http://projecteuler.net/" target="blank">Project Euler</a>, &#8220;challenging mathematical/computer programming problems&#8221;</li>
</ul>
</li>
</ul>
<p>This list is weighted towards to those of you with Symbian phones, but most smart phones have some sort of access to a programming language.</p>
<p>The one of the most appealing aspects of this kit: it is super cheap. The phone was &#8220;free&#8221; on a 1 year &pound;25 p/m contract, the O&#8217;Reilly Book is about &pound;6, pen and notebook another three quid: that&#8217;s a cheap way to learn some valuable skills.</p>
<p>I&#8217;m sure there are a ton of alternative setups (<a href="http://www.talkandroid.com/1225-android-scripting-environment/" target="blank">Android</a>, <a href="http://stackoverflow.com/questions/275436/are-there-any-good-programming-environments-ides-for-windows-mobile-devices" target="blank">Windows Mobile</a>, <a href="http://smallbasic.sourceforge.net/" target="blank">Palm</a>, I-Phone?). A bare minimum set of requirements could be: a text editor and a web browser capable of parsing JavaScript (this may be possible on not so &#8220;smart phones&#8221;).</p>
<p>If you&#8217;re using an alternative setup, or have <a href="http://www.educalc.net/146663.page" target="blank">another way</a> to program on the move, please add it to the comments.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=emfGn6hReOo:qkkl3Q2WshA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=emfGn6hReOo:qkkl3Q2WshA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=emfGn6hReOo:qkkl3Q2WshA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=emfGn6hReOo:qkkl3Q2WshA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=emfGn6hReOo:qkkl3Q2WshA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/emfGn6hReOo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/06/pocket-programming-learning-new-skills-anywhere/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/06/pocket-programming-learning-new-skills-anywhere/</feedburner:origLink></item>
		<item>
		<title>Which Language Combination?</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/iHfSTLa0TsI/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/06/which-language-combination/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 13:34:20 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[functional-programming]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=212</guid>
		<description><![CDATA[I&#8217;m trying to be a better programmer. I have been writing and learning as much code as I can, the benefits are a threefold positive feedback loop:

Learning is, in itself, very pleasurable (it makes you feel clever, which is nice)
New knowledge transfers to, and enhances, existing skills
New tools and skills provide a greater resource for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to be a better programmer. I have been writing and learning as much code as I can, the benefits are a threefold positive feedback loop:</p>
<ul>
<li>Learning is, in itself, very pleasurable (it makes you feel clever, which is nice)</li>
<li>New knowledge transfers to, and enhances, existing skills</li>
<li>New tools and skills provide a greater resource for providing solutions</li>
</ul>
<p>But, how does a developer know which skills to learn and which languages are best to learn with? (<em>Assuming that you&#8217;re learning for fun rather than as a work requirement</em>.)</p>
<p>If Google is a good bench mark (assuming that they can take their pick of the best developers), one requirement (taken from an ad for a Software Engineer) asks for:</p>
<blockquote><p>Fluency in two or more of C, C++, Java, Shell, PHP, Perl or Python.</p>
</blockquote>
<p>If you are specifically aiming for a career at Google then making sure you are fluent in two major languages is probably the way to go, and there is certainly no downside to a developer broadening their skill set. In my experience, each foray into new languages has improved my PHP, and in turn, I feel pretty comfortable in Ruby and Python.</p>
<p>When deciding to learn something new: you could argue that PHP, Ruby, Python, Perl etc&#8230; are pretty much different brands of the same tool (procedural, interpreted languages). It&#8217;s great to have the option to use each, but these languages are not necessarily complimentary. It is unlikely that you would write a system with a combination of PHP, Python and Ruby. But, it is conceivable that you could have a project requiring C, PHP and Erlang skills.</p>
<p>Rather than learning interchangable skills, complementary languages might offer the opportunity to become a more rounded developer:</p>
<ul>
<li>Interpreted, procedural (PHP, Ruby, Python, JS)</li>
<li>Compiled, procedural (C/C++, Java)</li>
<li>Functional, concurrent (Erlang, Scala, F#)</li>
</ul>
<p>Assuming that side stepping between similar languages is easier than picking up a completely new concept: it would seem learning these varied skills opens up more possibilities.</p>
<p>Sometimes I worry that by learning a particular, none mainstream, language (like Erlang) I could be backing the &#8220;wrong horse&#8221;. However, bearing in mind my earlier ramblings, there&#8217;s little downside to picking up a new way of doing things, for example Elang may not prove popular, but the functional approach will give me a head start learning F# or Scala.</p>
<p>This slide from <a href="http://www.erlang-factory.com/upload/presentations/7/erlang_in_ecommerce_no_anim-erikstenman.pdf" target="blank">Painless Payment Processing by Erik Stenman</a> points out other benefits of learning more &#8220;unusual&#8221; languages:</p>
<blockquote>
<h3>Nice paradox:</h3>
<p>The lack of Erlang programmers makes it easier for us to find great programmers.</p>
<ul>
<li>There are many great C and Java programmers, I&#8217;m sure, but they are hidden by hordes of mediocre programmers.</li>
<li>Programmers who know a functional programming language are often passionate about programming.</li>
<li>Passionate programmers makes Great Programmers</li>
</ul>
</blockquote>
<p>Or am I talking nonsense?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=iHfSTLa0TsI:Rwvux30xtsM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=iHfSTLa0TsI:Rwvux30xtsM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=iHfSTLa0TsI:Rwvux30xtsM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=iHfSTLa0TsI:Rwvux30xtsM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=iHfSTLa0TsI:Rwvux30xtsM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/iHfSTLa0TsI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/06/which-language-combination/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/06/which-language-combination/</feedburner:origLink></item>
		<item>
		<title>What I’ve been reading/learning this week</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/CrhIeYxGVrI/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/06/what-ive-been-readinglearning-this-week/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 13:06:56 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[crime]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=194</guid>
		<description><![CDATA[I&#8217;ve been too busy this week to form a proper blog post, so instead I thought I&#8217;d mention some good content I&#8217;ve consumed.
Functions + Messages + Concurrency = Erlang : Joe Armstrong
This talk from Joe Armstrong (author of Programming Erlang) gives a really clear breakdown of the reasons concurrent languages (like Erlang) are becoming more [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been too busy this week to form a proper blog post, so instead I thought I&#8217;d mention some good content I&#8217;ve consumed.</p>
<h3><a href="http://www.infoq.com/presentations/joe-armstrong-erlang-qcon08" target="blank">Functions + Messages + Concurrency = Erlang : Joe Armstrong</a></h3>
<p>This talk from <a href="http://armstrongonsoftware.blogspot.com/" target="blank">Joe Armstrong</a> (author of <a href="http://www.pragprog.com/titles/jaerlang/programming-erlang" target="blank">Programming Erlang</a>) gives a really clear breakdown of the reasons concurrent languages (like Erlang) are becoming more important as processors gain more cores. The following quite gives good flavour:</p>
<p>
    <em>Due to hardware changes:</em></p>
<ul>
<li><em>Each year your sequential programs will go slower</em></li>
<li><em>Each year your concurrent programs will go faster</em></li>
</ul>
<p>Although Joe focuses on Erlang, this applies to all languages tackling concurrency (Scala, F# etc&#8230;), thoroughly recommended to developers wanting to know more.</p>
<h3><a href="http://www.guardian.co.uk/books/2008/apr/06/society" target="blank">McMafia, Seriously Organised Crime : Misha Glenny</a></h3>
<p>This book has nothing to do with programming (directly), and it may appear at first glance to be some sort of &#8220;aren&#8217;t gangsters cool&#8221; book for macho teenagers. Far from it.</p>
<p><a href="">Misha Glenny</a> has been a BBC correspondent covering eastern Europe&#8217;s wars, politics and then crime (if you&#8217;ve ever heard or read his reports and articles you&#8217;ll know he&#8217;s a very clued up chap). This interest lead him to investigate organised crime around the world. The resulting book is unbelievable (in the literal sense), it reveals how deeply organised crime is intertwined with our day-to-day lives.</p>
<p>The entire book is fascinating, and highlights they way organised crime can eventually gain so much power it becomes a part of the establishment and has influence over global politics (not just as an issue but as an instigator). It literally effects the lives of everyone on the planet.</p>
<p>Perhaps one of the areas that gets the least coverage is &#8220;digital crime&#8221;. This is not due to it&#8217;s insignificance, quite the reverse. It is huge and vastly profitable, the problem seems to be that researching it is almost impossible. Police forces simply don&#8217;t have the funding and resources to gain enough understanding of the way the cyber criminals operate. It&#8217;s a subject I&#8217;d love to know more about, and one that I&#8217;m sure will become more and more important over the coming years.</p>
<p>I can&#8217;t recomend it highly enough.</p>
<h3><a href="http://www.cc2e.com/" target="blank">Code Complete 2 : Steve McConnell</a></h3>
<p>People have been <a href="http://www.codinghorror.com/blog/archives/000020.html" target="blank" title="Jeff Atwood's Recomendations">banging on</a> about this book for ages, so I caved in and started reading it (especially as I found it in the work bookshelf, saving me 30 quid).</p>
<p>I&#8217;m only 1/3 in but it already lives up to the hype. Clear, humorous and very well written. One misconception I had was that it is a straight manual to writing code. In many ways it is, but it goes much further into the thinking processes developers use. It highlights familiar problems and explains the solutions in a way that &#8220;just works&#8221;.</p>
<p>Basically, if you heard about it and thought it might be worth a read: it is. Read it sooner rather than later, two chapters in I felt like I understood my trade better and that I was on the right track.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=CrhIeYxGVrI:8gXZGFkskRA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=CrhIeYxGVrI:8gXZGFkskRA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=CrhIeYxGVrI:8gXZGFkskRA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=CrhIeYxGVrI:8gXZGFkskRA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=CrhIeYxGVrI:8gXZGFkskRA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/CrhIeYxGVrI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/06/what-ive-been-readinglearning-this-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/06/what-ive-been-readinglearning-this-week/</feedburner:origLink></item>
		<item>
		<title>Goodbye Browsers: What Next?</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/CDiCwP1x5Z4/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/06/goodbye-browsers-what-next/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 13:16:16 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=169</guid>
		<description><![CDATA[It has been mooted fairly often: that the web may be breaking free from the browser, and I&#8217;m enclined to agree. So what does this mean to developers and how will this effect the web development process (and my first Erlang Web App)?
I&#8217;m currently upgrading a site that will need dynamic elements and interactivety intertwined [...]]]></description>
			<content:encoded><![CDATA[<p>It has been mooted <a target="blank" href="http://www.carsonified.com/future-predictions/the-future-is-one-ubiquitous-interface-to-the-web">fairly often</a>: that the web may be breaking free from the browser, and I&#8217;m enclined to agree. So what does this mean to developers and how will this effect the web development process (and my first Erlang Web App)?</p>
<p>I&#8217;m currently upgrading a site that will need dynamic elements and interactivety intertwined with flat HTML files in a standard directory structure. During the technical design process it is also becomming apparent that these dynamic features will need to be distributed over various media and platforms.</p>
<p>None of these are unusual requirements and I&#8217;ve been developing similar projects for a number of years. However, my approach is beggining to change. Previously I would have built the whole system with my PHP framework of choice (<a href="http://cakephp.org/" target="blank">CakePHP</a>) and used it&#8217;s inbuilt Views to publish the content in various formats (e.g. HTML and RSS), I&#8217;m now rethinking.</p>
<p>Our content needs to spread onto the ever widening array of platforms and media, so our publishing methods need to become more flexible. The solution I&#8217;m favouring is to publish content over some sort of web service or API and have the client platform, what ever it may be, interpret (and possibly redistribute) it. The <a href="http://www.w3.org/RDF/" target="blank">RDF Standard</a> is one format that is gaining popularity, especially as <a target="blank" href="http://www.w3.org/2001/sw/" target="blank"> semantic technologies</a> become more mainstream.</p>
<p>These principals are probably further advanced in the realm of Web Applications: it is becoming common place to produce an API allowing other platforms to interact with them. Turning the app into a platform (via an API) allows other&#8217;s to build on top in turn engraining it into their business model (For example <a target="blank" href="http://www.goodbaad.com" title="Good Baad: The Definitive Record of Public Oppinion">Good Baad</a> relies on 5 or 6 different APIs). Google have been providing useful APIs for years and the results are plain to see.</p>
<p>It seem likely to me that the development process may change as a result. Currently an web app or content is built first as a website and then expanded into and API or feed. It seems more practical to build the API first and then this can be adapted to other platforms.</p>
<p>For example: I moved my blog consumption to <a href="http://www.google.co.uk/reader" target="blank">Google Reader</a>, now I rarely see the sites that the content originates from; I interact with blogs entirely via their RSS feed over the platform of my choosing. With web applications it seems like the same is becoming true, very few people interact with Twitter directly, but prefer to interact via the API (3rd party apps is one key to their phenomenal growth). And, if concepts like <a target="blank" href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a> take hold: the web may break free of the browser entirely.</p>
<p>And this brings me around to my Erlang project: I&#8217;m still mulling over ideas, but it seems to me that a real-time app that is purely an API would be a very good first project. Also, Erlang seems very well suited to the Web API building task, e.g: from a data distribution view point <a href="http://couchdb.apache.org/" target="blank">Couch DB</a> is pretty much all you need.</p>
<p>Over the next few weeks I&#8217;ll build a simple Erlang app that interacts with the web over an API, it&#8217;s possible I won&#8217;t need to worry about building a client at all.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=CDiCwP1x5Z4:-t0V8-VHtlE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=CDiCwP1x5Z4:-t0V8-VHtlE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=CDiCwP1x5Z4:-t0V8-VHtlE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=CDiCwP1x5Z4:-t0V8-VHtlE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=CDiCwP1x5Z4:-t0V8-VHtlE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/CDiCwP1x5Z4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/06/goodbye-browsers-what-next/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/06/goodbye-browsers-what-next/</feedburner:origLink></item>
		<item>
		<title>Notepad-Plus-Plus Plus Erlang</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/5FGCzSoOH8w/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/05/notepad-plus-plus-plus-erlang/#comments</comments>
		<pubDate>Thu, 28 May 2009 16:35:02 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[IDEs]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=156</guid>
		<description><![CDATA[My primary dev environment is Windows, my main IDE is Eclipse or Aptana (leaning slightly towards Aptana&#8217;s flavour of Eclipse lately, especially for PHP and Ruby on Rails), and for quick code edits, messing about and text editing I use Notepad++.
Notepad++ has served me well over the years: it&#8217;s free, loads up fast (unlike the [...]]]></description>
			<content:encoded><![CDATA[<p>My primary dev environment is Windows, my main IDE is <a href="http://www.eclipse.org/" target="blank">Eclipse</a> or <a href="http://www.aptana.com/" target="blank">Aptana</a> (leaning slightly towards Aptana&#8217;s flavour of Eclipse lately, especially for PHP and Ruby on Rails), and for quick code edits, messing about and text editing I use <a href="http://notepad-plus.sourceforge.net/uk/site.htm" target="blank">Notepad++</a>.</p>
<p>Notepad++ has served me well over the years: it&#8217;s free, loads up fast (unlike the big IDEs) and gets the job done. I know that there are <a href="http://net.tutsplus.com/articles/web-roundups/22-neat-code-editors-for-windows/" title="NetTutes Code Editor Round Up" target="blank">quite a few alternatives</a> (<a href="http://intype.info/home/index.php" target="blank">In Type</a> looks particularly appealing), but NP++ does what I need nicely.</p>
<p><strong>However</strong>, I was quite surprised and disappointed that there was no inbuilt support for my new favourite language: Erlang! A quick Google around revealed that I&#8217;d have to add a <em>user defined language</em> to my installation, less quick was tracking down an example file for Erlang. I eventually discovered this <a href="http://www.mailinglistarchive.com/notepad-plus-plus@lists.sourceforge.net/msg00024.html" target="blank">old mailing list post</a>. I then built my own variation that suites dark backgrounds, you can download it below.</p>
<p>To install you will need to replace or merge with the <em>*path-to-AppData*/Notepad++/userDefineLang.xml</p>
<p> file. If you don&#8217;t use a dark background alter the <em>WordStyle</em> tag properties: <em>fgColor</em> and <em>bgColor</em> to suit.</p>
<p>Download the <a href="http://www.joelhughes.co.uk/userDefineLang.xml" title="Notepad++ Erlang userDefinedLang.xml download">userDefinedLang.xml</a></p>
<p>Let me know if you know of any better versions or edits, I&#8217;m sure mine is incomplete.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=5FGCzSoOH8w:RhT9TxVcBe0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=5FGCzSoOH8w:RhT9TxVcBe0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=5FGCzSoOH8w:RhT9TxVcBe0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=5FGCzSoOH8w:RhT9TxVcBe0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=5FGCzSoOH8w:RhT9TxVcBe0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/5FGCzSoOH8w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/05/notepad-plus-plus-plus-erlang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/05/notepad-plus-plus-plus-erlang/</feedburner:origLink></item>
		<item>
		<title>Hear my voice (on the Guardian Tech PodCast)</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/zq0RNtlr-xI/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/05/hear-my-voice-on-the-guardian-tech-podcast/#comments</comments>
		<pubDate>Wed, 27 May 2009 09:06:00 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[joel]]></category>
		<category><![CDATA[start-ups]]></category>
		<category><![CDATA[web-apps]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=150</guid>
		<description><![CDATA[Last Friday I went along to the Guardian Tech Weekly Tour&#8217;s visit to Bristol (in case you didn&#8217;t know I mostly grew up and now live in Bristol).
I thought it&#8217;d be a good chance to meet up with a few faces from the local start-ups and web-development scene. So, I was pleasantly supprised to be [...]]]></description>
			<content:encoded><![CDATA[<p>Last Friday I went along to the <a href="http://www.guardian.co.uk/technology/series/techweekly" target="blank">Guardian Tech Weekly</a> Tour&#8217;s visit to <a href="http://maps.google.co.uk/maps?f=q&#038;source=s_q&#038;hl=en&#038;q=Bristol,+United+Kingdom&#038;sll=53.800651,-4.064941&#038;sspn=17.916772,46.582031&#038;ie=UTF8&#038;cd=1&#038;geocode=FVElEQMdYnPY_w&#038;split=0&#038;t=h&#038;z=11&#038;iwloc=A" target="blank">Bristol</a> (in case you didn&#8217;t know I mostly grew up and now live in Bristol).</p>
<p>I thought it&#8217;d be a good chance to meet up with a few faces from the local start-ups and web-development scene. So, I was pleasantly supprised to be able to have a chat with <a href="http://jemimakiss.com/" target="blank">Jemima Kiss</a> and get a bit of advice/insight into the projects I&#8217;m working on, I assumed that she&#8217;d be mobbed and too busy. She gave some really constructive and positive feedback on the web apps I&#8217;m building; it was a pleasant end to the week.</p>
<p>While there I was also interviewed for the podcast about what makes Bristol a good location for web development and starting a business (not that I know a great deal about the latter). I was slightly drunk on one and a half pints (it happens that way sometimes) so didn&#8217;t expect to make it into the show&#8230; But, I did &#8211; so if you want to hear my weird high-pitched voice listen to <a href="http://www.guardian.co.uk/technology/blog/audio/2009/may/26/tech-weekly-podcast-bristol-digital" target="blank">Tech Weekly: On the road in Bristol</a> (I pop up at 22:38).</p>
<p><strong>PS:</strong> <em>If you&#8217;re bored of posts about my day-to-day existence: fear not, there&#8217;s some solid programming fun coming up later this week&#8230;</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=zq0RNtlr-xI:DoxUHhTLUG4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=zq0RNtlr-xI:DoxUHhTLUG4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=zq0RNtlr-xI:DoxUHhTLUG4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=zq0RNtlr-xI:DoxUHhTLUG4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=zq0RNtlr-xI:DoxUHhTLUG4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/zq0RNtlr-xI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/05/hear-my-voice-on-the-guardian-tech-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/05/hear-my-voice-on-the-guardian-tech-podcast/</feedburner:origLink></item>
		<item>
		<title>This week’s fun</title>
		<link>http://feedproxy.google.com/~r/joelhughes/~3/JNLzJ8NfxvQ/</link>
		<comments>http://www.joelhughes.co.uk/blog/2009/05/this-weeks-fun/#comments</comments>
		<pubDate>Fri, 22 May 2009 11:03:42 +0000</pubDate>
		<dc:creator>Joel Hughes</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[roundup]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.joelhughes.co.uk/blog/?p=140</guid>
		<description><![CDATA[No big post this week, due to being pretty busy, so instead I&#8217;ll round up some of the bits and pieces that have occupied my mind this week.
Erlang:
On the Erlang front I&#8217;m wading through some slightly less blog-worthy chapters of Programming Erlang: Software for a Concurrent World, getting to grips with error handling and exeptions. [...]]]></description>
			<content:encoded><![CDATA[<p>No big post this week, due to being pretty busy, so instead I&#8217;ll round up some of the bits and pieces that have occupied my mind this week.</p>
<h3>Erlang:</h3>
<p>On the Erlang front I&#8217;m wading through some slightly less blog-worthy chapters of <a href="http://www.pragprog.com/titles/jaerlang/programming-erlang" target="blank">Programming Erlang: Software for a Concurrent World</a>, getting to grips with error handling and exeptions. I&#8217;m going to try and tackle a more unusual task next week.</p>
<h3>At work:</h3>
<p>I&#8217;ve been wresteling with Servers. One site is flat HTML, and should therefore run super fast &#8211; however, due to a huge quantity of internal redirects and a sudden upsurge in traffic the server was grinding to a halt! Solution: move the redirects from <em>.htaccess</em> files over to <em>vhost.conf</em>, but I think they are going to have to be whittled down very soon.</p>
<p>I also set up a CentOS Virtual Machine as a staging/testing environment and was pretty pleased by how much I can get done from memory using <em>the shell</em>. It&#8217;s a while since I realy played with Linux for more than a couple of hours and I could definitely envisage moving over to it on a more permanent basis. Quite a few dev tasks are easier there.</p>
<h3>Personal Projects:</h3>
<p>Development on my second web app (the first being <a href="http://www.goodbaad.com" target="blank" title="Good Baad: the definitive record of public opinion">Good Baad</a>) is coming together nicely. The working prototype is built with my &#8220;ultra-lightweight&#8221; PHP MVC framework, which I&#8217;ll write about some time soon. Although I&#8217;m wondering about porting to Erlang as it&#8217;s a heavily realtime system that could take advantage of Erlang&#8217;s concurrency.</p>
<h3>Random Thought:</h3>
<p>I&#8217;ve been worrying about the environmental impact of the web, and most discussions focus on the huge server farms used by mega-sites like Google and Facebook. However, I&#8217;m sure that individual developers and small companies could be working more actively on these problems too.</p>
<p>What a dull post! I&#8217;ll step it up next time, promise. Just to spice things up here&#8217;s a video of a nutty robot:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/W1czBcnX1Ww&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/W1czBcnX1Ww&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/joelhughes?a=JNLzJ8NfxvQ:XBwTHJU5AqA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=JNLzJ8NfxvQ:XBwTHJU5AqA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=JNLzJ8NfxvQ:XBwTHJU5AqA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/joelhughes?i=JNLzJ8NfxvQ:XBwTHJU5AqA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/joelhughes?a=JNLzJ8NfxvQ:XBwTHJU5AqA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/joelhughes?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/joelhughes/~4/JNLzJ8NfxvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.joelhughes.co.uk/blog/2009/05/this-weeks-fun/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.joelhughes.co.uk/blog/2009/05/this-weeks-fun/</feedburner:origLink></item>
	</channel>
</rss>
