<?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>The Ramblings of a Hatter &#187; Programming</title>
	<atom:link href="http://www.joshual.me.uk/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joshual.me.uk</link>
	<description>Joshua Lock&#039;s Blog</description>
	<lastBuildDate>Mon, 19 Jul 2010 17:01:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Blunderground</title>
		<link>http://www.joshual.me.uk/2010/06/blunderground/</link>
		<comments>http://www.joshual.me.uk/2010/06/blunderground/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 08:18:25 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[WebOS]]></category>

		<guid isPermaLink="false">http://www.joshual.me.uk/?p=318</guid>
		<description><![CDATA[Recently I wrote about doing some hacking for the Palm WebOS to create a tube app for K. It&#8217;s now in a reasonably usable form so I&#8217;ve put up a noddy website and a clone of my repository is available on GitHub. As it&#8217;s at a stage where it works for the person I wrote [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I <a href="http://www.joshual.me.uk/2010/05/mojo-hacking/">wrote about</a> doing some hacking for the Palm WebOS to create a tube app for K. It&#8217;s now in a reasonably usable form so I&#8217;ve put up a noddy <a href="http://www.incandescant.co.uk/blunderground">website</a> and a clone of my <a href="http://github.com/incandescant/Blunderground">repository</a> is available on GitHub.</p>
<p style="text-align: center;"><img title="Tube Line Status" src="http://incandescant.co.uk/blunderground/images/blunderground-status.png" alt="" width="334" height="541" /></p>
<p>As it&#8217;s at a stage where it works for the person I wrote it for (and a bonus user) it&#8217;s unlikely to be developed with any sort of pace, too many other fun things to hack on!</p>
<p>I&#8217;ve decided against trying to get it in to Palms app store as I&#8217;m fairly certain TFL won&#8217;t be too happy with me redistributing their map. There are ways around this but I don&#8217;t feel it&#8217;s worth it at this time, at the very least I&#8217;d need to support rotation and likely a couple of other features before submitting it to the app store otherwise Blunderground will just be a target for flames.</p>
<p>Writing apps for the Web OS is really easy, it&#8217;s just HTML and Javascript. I kept falling over the lack of static typing and my ability to create a large typo to LOC ratio but not everyone uses the compiler as a crutch like I do.</p>
<p>The develop/deploy/test cycle, even with the emulator, is a touch clunky. Seems to me a lot of the testing could have been done in a browser with a suitable harness but I didn&#8217;t have the inclination to develop that, I shall check out <a href="http://ares.palm.com/Ares/about.html">Ares</a> if I write another WebOS application.</p>
<p>Finally interacting with web services wasn&#8217;t as rosy as the cloud pushers would have me believe, a significant bulk of the development time so far was spent on trying to figure out how to parse the JSON data <a href="http://tubeupdates.com/">TubeUpdates</a> was returning. In the end I gave up and switched to using XML which I manipulated with JavaScript DOM methods and had the functionality running in minutes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshual.me.uk/2010/06/blunderground/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mojo Hacking</title>
		<link>http://www.joshual.me.uk/2010/05/mojo-hacking/</link>
		<comments>http://www.joshual.me.uk/2010/05/mojo-hacking/#comments</comments>
		<pubDate>Thu, 06 May 2010 22:21:39 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[WebOS]]></category>

		<guid isPermaLink="false">http://www.joshual.me.uk/?p=289</guid>
		<description><![CDATA[Recently K had a software update on her Palm Pre, following this we decided to checkout the state of the app store. The conversation was brief: &#8220;Is there a tube map yet?&#8221; &#8220;Nope, I&#8217;m afraid not. Still nothing.&#8221; &#8220;Can&#8217;t you write me one? You like programming &#8230;.&#8221; &#8220;Well, yes. I do. I can &#8230;&#8221; Irrefutable [...]]]></description>
			<content:encoded><![CDATA[<p>Recently K had a software update on her Palm Pre, following this we decided to checkout the state of the app store. The conversation was brief:</p>
<p>&#8220;Is there a tube map yet?&#8221;<br />
&#8220;Nope, I&#8217;m afraid not. Still nothing.&#8221;<br />
&#8220;Can&#8217;t you write me one? You like programming &#8230;.&#8221;<br />
&#8220;Well, yes. I do. I can &#8230;&#8221;</p>
<p>Irrefutable logic! I do like programming and I can write one. I&#8217;m no JavaScript developer but heck, time to learn it and give it a try!</p>
<p>Thus I set about poking around on the <a href="http://developer.palm.com/">WebOS developer site</a>, installing the SDK and following the Hello World tutorial. I&#8217;ve got to hand it to Palm, this is a *really* nice developer experience.</p>
<p>They have a decent emulator (by wrapping VirtualBox in a little launcher UI, <em>palm-emulator</em>), a rails like project generator (<em>palm-generate</em>), a simple packager and installer for getting things onto the (emulated) device (<em>palm-package</em> and <em>palm-install</em>) and there are a bunch more programs they provide which I assume are equally useful. I&#8217;ve yet to try out their IDE support yet, as I&#8217;m not an IDE person and just wanted to get stuck in and I already have js2-mode enabled in my editor of choice.<br />
One criticism I have against the developer experience is that API docs, the sample code and the tutorials seem to use different coding styles. This is confusing to a new developer, especially one who doesn&#8217;t know JavaScript! Of course style doesn&#8217;t make the code, and one assumes that all of the demo/sample/documentation code is functional, but it would make things much easier to learn if there where a consistent style so that paradigms are more easily recognisable.</p>
<p>Once I&#8217;d finished fudging through Hello World I <em>palm-generate</em>d a new project and hacked together the start of a tube app.</p>
<p>After <em>several</em> iterations I realised that the easiest way to have a pannable map was just to load the map into an &lt;img&gt; and have that inside a Mojo Scroller widget. This after an evening trying to make ImageView do things it can&#8217;t&#8230; I quickly loaded this 3 lines of HTML &#8220;app&#8221; onto K&#8217;s phone to prevent her having to carry a paper tube map, now I can take my time playing around with the WebOS API&#8217;s and hacking together a more full featured tube application for the WebOS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshual.me.uk/2010/05/mojo-hacking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Functionally and parenthetically curious</title>
		<link>http://www.joshual.me.uk/2010/04/functionally-and-parenthetically-curious/</link>
		<comments>http://www.joshual.me.uk/2010/04/functionally-and-parenthetically-curious/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 09:11:20 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[PL]]></category>
		<category><![CDATA[PubTalk]]></category>

		<guid isPermaLink="false">http://www.joshual.me.uk/?p=276</guid>
		<description><![CDATA[As geeks are want to do I oft end up in the pub talking programming, philosophy, etc. In the course of these conversations things are said which people disagree with, that&#8217;s just to be expected. I have a habit of going home following such a discussion and researching the answers to any questions which are [...]]]></description>
			<content:encoded><![CDATA[<p>As geeks are want to do I oft end up in the pub talking programming, philosophy, etc. In the course of these conversations things are said which people disagree with, that&#8217;s just to be expected.</p>
<p>I have a habit of going home following such a discussion and researching the answers to any questions which are still bothering me and then emailing the conversations parties.</p>
<p>This morning it occurred that this information might be remotely interesting to my reader (my future self) so I thought I&#8217;d post them here and send the parties a link. Here goes:</p>
<p>While talking Scheme, ML, etc. <a href="http://busydoingnothing.co.uk/">Neil</a> asked &#8220;What is the definition of Functional Programming?&#8221;. So I reach for my (largely unread) <a title="Programming in Haskell" href="http://www.cs.nott.ac.uk/~gmh/book.html">Hutton book</a>:</p>
<blockquote><p>&#8220;What is functional programming? Opinions differ, and it is difficult to give a precise definition. Generally speaking, however, functional programming can be viewed as a <em>style</em> of programming in which the basic method of computation is the application of functions to arguments. In turn, a functional programming language is one that <em>supports</em> and <em>encourages</em> the functional style.&#8221;</p></blockquote>
<p>A question which was first triggered by my statement &#8220;Scheme is a functional programming language&#8221;. For which I <a title="R6RS Summary" href="http://docs.plt-scheme.org/r6rs-std/r6rs-Z-H-1.html">quote</a> the Scheme language definition (<a title="Revised^6 Report on the Algorithmic Language  Scheme" href="http://docs.plt-scheme.org/r6rs-std/index.html">R6RS</a>):</p>
<blockquote><p>&#8220;Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman.  It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions.  A wide variety of programming paradigms, including functional, imperative, and message passing styles, find convenient expression in Scheme.&#8221;</p></blockquote>
<p>That settles that, then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshual.me.uk/2010/04/functionally-and-parenthetically-curious/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Switch</title>
		<link>http://www.joshual.me.uk/2009/11/switch/</link>
		<comments>http://www.joshual.me.uk/2009/11/switch/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 09:46:02 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[Moblin]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.joshual.me.uk/?p=194</guid>
		<description><![CDATA[I moved teams at work; I&#8217;m no longer writing connectivity oriented UI&#8217;s for Moblin. I&#8217;ve joined the fledgling Moblin SDK team and have a goal of making Moblin the best gosh darn development experience out there! Which I realise is *quite* the lofty goal, so let&#8217;s reel it in a bit. I&#8217;m making the rest [...]]]></description>
			<content:encoded><![CDATA[<p>I moved teams at work; I&#8217;m no longer writing connectivity oriented UI&#8217;s for Moblin. I&#8217;ve joined the fledgling Moblin SDK team and have a goal of making Moblin the best gosh darn development experience out there!</p>
<p>Which I realise is *quite* the lofty goal, so let&#8217;s reel it in a bit. I&#8217;m making the rest of this year &#8220;Make Moblin Development Not Suck&#8221; time.</p>
<p>Right now we have a pretty poor offering for third party developers; as with many such projects we&#8217;ve been hugely user-oriented up until now.<br />
Our little team is working on making this right, we&#8217;ll hopefully have some useful stuff to show soon.</p>
<p>For myself, I&#8217;m trying to address the Moblin Foundations and make them more approachable. We have some sweet libraries in there but they are largely a black box to developers due to low Gtk-doc annotation coverage outside of the core UI toolkits (Nbtk &#038; Clutter).</p>
<p>Over the coming weeks I aim to address this; I&#8217;m looking through the code and trying to understand the APIs enough to get slightly better than skeletal Gtk-doc annotations added to our platform.</p>
<p>As a bonus prize with Gtk-doc annotations come almost free introspection metadata!</p>
<p>So, you&#8217;ve read this far and for that I thank you, as a reward here are the two lessons I&#8217;ve learnt so far this week:</p>
<ol>
<li>Makefiles care about tabs, you can&#8217;t align with spaces</li>
<li>Building GObject-Introspection metadata outside of the standard, system, prefix. Tweak your environment!<br />
<b>GI_TYPELIB_PATH</b> is where the gobject-introspection module looks for typelib files (perhaps add /usr/local/lib/girepository-1.0) and the giscanner looks in <b>XDG_DATA_DIRS</b> for gir-1.0 directories chock full of .gir files (maybe add /usr/local/share)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.joshual.me.uk/2009/11/switch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>We&#8217;ve gone into Beta</title>
		<link>http://www.joshual.me.uk/2009/05/weve-gone-into-beta/</link>
		<comments>http://www.joshual.me.uk/2009/05/weve-gone-into-beta/#comments</comments>
		<pubDate>Tue, 19 May 2009 16:30:28 +0000</pubDate>
		<dc:creator>Joshua</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Moblin]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.joshual.me.uk/?p=124</guid>
		<description><![CDATA[This is what I have been working on for the last several months. More specifically, I&#8217;ve been working on this component &#8230; Now we&#8217;re open I will hopefully blog some more about my work]]></description>
			<content:encoded><![CDATA[<p>This is what I have been working on for the last several months.</p>
<p><a title="Moblin 2.0 beta announced&gt;Moblin 2.0 Has been announced!!&lt;/a&gt;&lt;br /&gt; &lt;span class=" href="http://moblin.org/community/blogs/imad/2009/moblin-v20-beta-netbooks-and-nettops-its-here"><object width="560" height="340" data="http://www.youtube.com/v/vsCpIeLLoT8&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/vsCpIeLLoT8&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></a></p>
<p><a href="http://moblin.org/documentation/moblin-netbook-intro/show-me-how-connect-stuff/connecting-internet">More specifically, I&#8217;ve been working on this component &#8230;</a></p>
<p><a title="Moblin 2.0 beta announced&gt;Moblin 2.0 Has been announced!!&lt;/a&gt;&lt;br /&gt; &lt;span class=" href="http://moblin.org/community/blogs/imad/2009/moblin-v20-beta-netbooks-and-nettops-its-here"><img class="alignnone" title="Moblin Connection Panel" src="http://www.joshual.me.uk/work/connection.png" alt="" width="550" height="322" /></a></p>
<p>Now we&#8217;re open I will hopefully blog some more about my work <img src='http://www.joshual.me.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshual.me.uk/2009/05/weve-gone-into-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
