<?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>Desk Checked &#187; Software Development</title>
	<atom:link href="http://www.deskchecked.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deskchecked.com</link>
	<description>Thomas Lee's programming blog</description>
	<lastBuildDate>Sun, 29 Nov 2009 13:01:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>On Scala (or: Why Static Typing Doesn&#8217;t Have To Suck)</title>
		<link>http://www.deskchecked.com/2009/11/29/on-scala-or-why-static-typing-doesnt-have-to-suck/</link>
		<comments>http://www.deskchecked.com/2009/11/29/on-scala-or-why-static-typing-doesnt-have-to-suck/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 13:00:27 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=227</guid>
		<description><![CDATA[Last week Michael Neale and I gave a presentation at the 2009 Open Source Developer&#8217;s Conference. The topic was effectively a quick and dirty intro to the Scala language, along with some comparisons between Scala and other languages. I&#8217;m no Scala expert or even a day-to-day user but I&#8217;m a massive fan of what it [...]]]></description>
			<content:encoded><![CDATA[<p>Last week <a href="http://michaelneale.blogspot.com/">Michael Neale</a> and I gave a presentation at the 2009 <a href="http://www.osdc.com.au">Open Source Developer&#8217;s Conference</a>. The topic was effectively a quick and dirty intro to the Scala language, along with some comparisons between Scala and other languages. I&#8217;m no Scala expert or even a day-to-day user but I&#8217;m a massive fan of what it stands for, which is in Mike&#8217;s words &#8220;a better Java than Java&#8221;. Hopefully that came across in the presentation.</p>
<p>The conference was a lot of fun and there were a lot of familiar faces from last year. I&#8217;ll no doubt be back again next time around! </p>
<p>Anyway, now that the presentation is out of the way, you can see our original paper here: <a href="http://www.deskchecked.com/wp-content/uploads/2009/11/OSDC-2009-On-Scala.pdf">On Scala (or: Why Static Typing Doesn&#8217;t Have to Suck)</a>. The presentation itself was recorded and is due to be put up on the Internet somewhere at some point in time. Will update this post if/when the video becomes available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2009/11/29/on-scala-or-why-static-typing-doesnt-have-to-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clojure and MessageDigest</title>
		<link>http://www.deskchecked.com/2009/06/22/clojure-and-messagedigest/</link>
		<comments>http://www.deskchecked.com/2009/06/22/clojure-and-messagedigest/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 09:58:28 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=209</guid>
		<description><![CDATA[Last night I needed a quick and dirty SHA function for a clojure-based web application. MessageDigest to the rescue!

(ns com.deskchecked.utils
  (:use clojure.contrib.str-utils)
  (:import [java.security MessageDigest]))

(defn sha
  "Generates a SHA-256 hash of the given input plaintext."
  [input]
  (let [md (MessageDigest/getInstance "SHA-256")]
    (. md update (.getBytes input))
   [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I needed a quick and dirty SHA function for a clojure-based web application. MessageDigest to the rescue!</p>
<pre><code>
(ns com.deskchecked.utils
  (:use clojure.contrib.str-utils)
  (:import [java.security MessageDigest]))

(defn sha
  "Generates a SHA-256 hash of the given input plaintext."
  [input]
  (let [md (MessageDigest/getInstance "SHA-256")]
    (. md update (.getBytes input))
    (let [digest (.digest md)]
      (str-join "" (map #(Integer/toHexString (bit-and % 0xff)) digest)))))
</code></pre>
<p>There&#8217;s obviously a dependency on clojure-contrib here which you can do away with if you don&#8217;t need it. And of course, you can pick a hashing algorithm to suit your needs. </p>
<p>Nothing exciting, but I figure I can&#8217;t be the only person in need of this sort of stuff. <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2009/06/22/clojure-and-messagedigest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5 Canvas Stroke Coordinates</title>
		<link>http://www.deskchecked.com/2009/06/01/html-5-canvas-stroke-coordinates/</link>
		<comments>http://www.deskchecked.com/2009/06/01/html-5-canvas-stroke-coordinates/#comments</comments>
		<pubDate>Sun, 31 May 2009 14:14:53 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=197</guid>
		<description><![CDATA[So HTML 5 has been getting a lot of attention recently &#8212; in no small part thanks to Google and others. Indeed, reading some of the features planned for HTML 5 are very exciting from a web developer&#8217;s perspective. The video and audio elements for standardized web page multimedia, worker threads and of course the [...]]]></description>
			<content:encoded><![CDATA[<p>So <a href="http://dev.w3.org/html5/spec/Overview.html">HTML 5</a> has been getting a lot of attention recently &#8212; in no small part thanks to <a href="http://radar.oreilly.com/2009/05/google-bets-big-on-html-5.html">Google</a> and others. Indeed, reading some of the features planned for HTML 5 are <em>very</em> exciting from a web developer&#8217;s perspective. The video and audio elements for standardized web page multimedia, worker threads and of course the canvas element and API.</p>
<p>Since getting excited about HTML 5, it&#8217;s been the canvas element that has most immediately grabbed my attention &#8212; both for the possibility it opens for a standardized way to render custom user interface components in HTML and for the fact it&#8217;s already quite well supported in the more popular alternative browsers (Firefox, Opera, Safari). So instead of studying maths like I should be doing (exams in less than two weeks!), I&#8217;ve been tinkering. Nothing exciting except to say that it&#8217;s <em>fantastic</em> to be able to render arbitrary graphics without waiting for an applet or Flash to load up.</p>
<p>However, I&#8217;ve been bitten by my first quirk in the API &#8212; a difference between how coordinates are used for strokes vs fills. Let me explain.</p>
<p>To draw a line using the HTML 5 canvas element, you use code that looks something like this:</p>
<p><code>
<pre>
  var context = $("canvas").getContext("2d");
  context.strokeStyle = "#a00";
  context.beginPath();
  context.moveTo(5, 5);
  context.lineTo(100, 5);
  context.stroke();
</pre>
<p></code></p>
<p>The resulting line looks like this:</p>
<p><img src="http://www.deskchecked.com/wp-content/uploads/2009/06/canvas-bad.gif" alt="The line is too wide!" /></p>
<p>Hmm. The line appears to be two pixels wide. Why is that? I figure maybe it was presumptious of me to assume a default of 1 pixel for lines, so I checked the spec. Nope, the spec says the default is 1.0. I read a little about coordinate space vs. bitmap size, it still didn&#8217;t really explain the behaviour I was seeing. So I poked around on #whatwg, and was told this:</p>
<blockquote><p>
<strong>Philip`</strong>: thomaslee: Integer coordinates refer to the positions *between* pixels<br />
<strong>Philip`</strong>: thomaslee: If you want to draw a line through just a single column of pixels, you have to shift the coordinates by 0.5<br />
<em>snip</em><br />
<strong>thomaslee</strong>: Philip`: right, so that would explain why I&#8217;m still seeing two pixel lines when reducing line width. But why on earth do integer coordinates refer to the space in between pixels?<br />
<strong>Philip`</strong>: thomaslee: It&#8217;s that way so that fills work like you would expect (with sharp edges), but it has the consequence that strokes don&#8217;t quite work like you expect (so you have to shift them by 0.5 to the centers of pixels)
</p></blockquote>
<p>So I adjusted my code:</p>
<p><code>
<pre>
  var context = $("canvas").getContext("2d");
  context.strokeStyle = "#a00";
  context.beginPath();
  context.moveTo(5, 5.5);
  context.lineTo(100, 5.5);
  context.stroke();
</pre>
<p></code></p>
<p>Sure enough, it fixed the issue:</p>
<p><img src="http://www.deskchecked.com/wp-content/uploads/2009/06/canvas-good.gif" alt="Ah, that's better!" /></p>
<p>Philip` then went on to explain why this counter-intuitive behaviour is to keep other aspects of the API suffering from similar issues. If you change the stroke behaviour, it breaks fills and vice versa. Without knowing the API for more than the few hours I&#8217;ve spent with it, I can&#8217;t really comment on it much more than that. </p>
<p>My brain hurts already.</p>
<p>Despite this weird behaviour, the canvas API on the whole seems to be very easy to follow and logical. And HTML 5 is slowly restoring my faith in the future of web development. We&#8217;re <em>finally</em> starting to see a move away from the hacks, work-arounds and the mish-mash of technologies that are the norm for modern web applications. Here&#8217;s hoping we don&#8217;t have to wait too long.</p>
<p>Now, back to the maths &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2009/06/01/html-5-canvas-stroke-coordinates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ausroomies.com.au launched!</title>
		<link>http://www.deskchecked.com/2009/01/31/ausroomiescomau-launched/</link>
		<comments>http://www.deskchecked.com/2009/01/31/ausroomiescomau-launched/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 01:04:37 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=175</guid>
		<description><![CDATA[Over the past month or so I&#8217;ve been working on a site to enable people to find share accommodation here in Australia. I was a big fan of Gumtree&#8217;s simplicity but didn&#8217;t like how little control I had as a room seeker to really narrow down and organize the listings I&#8217;m interested in. I think [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past month or so I&#8217;ve been working on a site to enable people to find <a href="http://www.ausroomies.com.au">share accommodation</a> here in Australia. I was a big fan of <a href="http://www.gumtree.com.au">Gumtree&#8217;s</a> simplicity but didn&#8217;t like how little control I had as a room seeker to really narrow down and organize the listings I&#8217;m interested in. I think this is, in part, due to the fact Gumtree is a site for generic classifieds rather than specifically for room seekers &#8212; which is totally understandable. However, so far I&#8217;ve found other room mate finder services to be over-complicated either requiring me to sign up for a membership (which I hate doing) or to fill out a big scary form in order to find a room. No thanks!</p>
<p>The site was originally written using <a href="http://www.merbivore.org">Merb</a> but a nasty DataMapper bug combined with lacking documentation lead me back to <a href="http://www.php.net">PHP</a>, which sucked. On the plus side, this is my first project using the <a href="http://www.symfony-project.org">Symfony</a> framework which really is quite nice as far as PHP frameworks go. I&#8217;m a little dubious about the direction in which the framework is headed in the medium to long term, but for this little project it was great.</p>
<p>So that&#8217;s how ausroomies came to be. The site&#8217;s not perfect and I&#8217;m especially worried about whether people will actually stay long enough to play with the search engine to see what it can do. My logs from the first day are indicating the answer is a big, fat &#8220;no&#8221;. Somewhat predictable I guess. Maybe it&#8217;ll become more useful as we get more data. I think the dodgey programmer design currently leaves a lot to be desired, too. I hope to resolve that in a month or so. Outside of that, I can&#8217;t convey how much of a <em>relief</em> it is to finally get it live and to finally have something to show for it compared to all the usual throw-away experiments and prototypes I usually play around with.</p>
<p>Anyway, now that this has launched I should hopefully be able to return to a relatively normal sleeping pattern. <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;m keen to hear the good and bad, so please drop me a line if you have any feedback regarding the site.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2009/01/31/ausroomiescomau-launched/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Prepaid Three Mobile Broadband on Ubuntu Linux with Gnome NetworkManager</title>
		<link>http://www.deskchecked.com/2008/12/29/prepaid-three-mobile-broadband-and-gnome-networkmanager/</link>
		<comments>http://www.deskchecked.com/2008/12/29/prepaid-three-mobile-broadband-and-gnome-networkmanager/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 12:16:23 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=161</guid>
		<description><![CDATA[I received my shiny new Huawei E160G USB modem from 3 and was desperately hoping that I was just enough behind the curve that it would magically work out of the box with Ubuntu 8.10. 
Now, I&#8217;m on a prepaid plan because I think contracts are the devil. As you would expect (?), the configuration [...]]]></description>
			<content:encoded><![CDATA[<p>I received my shiny new Huawei E160G USB modem from <a href="http://www.three.com.au">3</a> and was desperately hoping that I was just enough behind the curve that it would magically work out of the box with Ubuntu 8.10. </p>
<p>Now, I&#8217;m on a prepaid plan because I think contracts are the devil. As you would expect (?), the configuration required for the prepaid accounts is <em>ever so slightly</em> different from the defaults used by Ubuntu. Instead of using <strong>3netaccess</strong> as the APN, you&#8217;ve got to use <strong>3services</strong>.</p>
<p>If you&#8217;re running Gnome/Ubuntu, you can set the APN via <strong>System &raquo; Preferences &raquo; Network Configuration &raquo; Mobile Broadband</strong>, then selecting your Three mobile broadband profile and clicking &#8220;Edit&#8221;. The field for changing your APN should be in the &#8220;Advanced&#8221; section. Aside from that, you shouldn&#8217;t need to change anything more to enjoy your prepad Three account.</p>
<p>I&#8217;ve just sent off a patch to the upstream provider of the service data included with Gnome. I hope this saves somebody out there the two hours I just lost! <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><strong>UPDATE:</strong> This patch was applied upstream on the 19/01/2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2008/12/29/prepaid-three-mobile-broadband-and-gnome-networkmanager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What do you most dislike about PHP?</title>
		<link>http://www.deskchecked.com/2008/12/17/what-do-you-most-dislike-about-php/</link>
		<comments>http://www.deskchecked.com/2008/12/17/what-do-you-most-dislike-about-php/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 08:45:33 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=153</guid>
		<description><![CDATA[The title of this post is probably a little bit flamebait-ish, but I&#8217;m actually genuinely interested to get the Internet&#8217;s opinion on the following:
Pick any three aspects of PHP that makes you feel dirty as a developer, and post them as a comment here.
For me it&#8217;s:

The standard library is a huge, monolithic mess. This has [...]]]></description>
			<content:encoded><![CDATA[<p>The title of this post is probably a little bit flamebait-ish, but I&#8217;m actually genuinely interested to get the Internet&#8217;s opinion on the following:</p>
<p><em>Pick any three aspects of PHP that makes you feel dirty as a developer, and post them as a comment here.</em></p>
<p>For me it&#8217;s:</p>
<ul>
<li><strong>The standard library is a huge, monolithic mess.</strong> This has been covered before, so I won&#8217;t beat a dead horse. I&#8217;d love to see the standard library reorganized and some sanity introduced around the naming of certain aspects.</li>
<li><strong>Superglobals</strong> because they behave weirdly in certain scenarios and make unit testing a pain in the ass.</li>
<li><strong>omg\namespace\separator\is\Backslash,</strong> which has effectively killed this long-awaited feature for me.</li>
</ul>
<p>Again, I don&#8217;t intend for this to be about hating on PHP or its developers (read: comments that don&#8217;t contribute anything meaningful to the discussion won&#8217;t see the light of day). Instead, I want to formalize what causes people pain when working with PHP today. Who knows &#8212; maybe somebody, somewhere will listen?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2008/12/17/what-do-you-most-dislike-about-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python Language Internals: From Source to Execution</title>
		<link>http://www.deskchecked.com/2008/12/10/python-language-internals-from-source-to-execution/</link>
		<comments>http://www.deskchecked.com/2008/12/10/python-language-internals-from-source-to-execution/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 14:19:24 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Compilers]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=145</guid>
		<description><![CDATA[Last week I gave a presentation in Sydney for the Open Source Developer&#8217;s Conference on the internals of the Python compiler. Now that the conference is over, I figure there&#8217;s no better place for the original paper than right here on my blog.
Thanks again to my employer, Shine for all their wonderful support with this. [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I gave a presentation in Sydney for the <a href="http://www.osdc.com.au">Open Source Developer&#8217;s Conference</a> on the internals of the Python compiler. Now that the conference is over, I figure there&#8217;s no better place for the original paper than right here on my blog.</p>
<p>Thanks again to my employer, <a href="http://www.shinetech.com">Shine</a> for all their wonderful support with this. Thanks too to the folks who reviewed my paper before it was submitted and my colleagues at Shine who endured a painful test run that ran well over time! <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>OSDC 2008 was a whole lot of fun. If you happened to miss the conference, I strongly recommend you make it along next year. It&#8217;s well worth the trip.</p>
<p>Download <a href="http://www.deskchecked.com/wp-content/uploads/2008/12/python-language-internals.pdf">Python Language Internals: From Source to Execution</a>, and a corresponding <a href="http://www.deskchecked.com/wp-content/uploads/2008/12/python-26-unless.patch">patch against Python 2.6 beta 3</a> implementing the &#8220;unless&#8221; statement. If you want to test the patch, you also be aware of the nasty little <a href="http://bugs.python.org/issue4347">circular dependency</a> that may cause you some grief &#8212; apply the latest (non-review) patch from the tracker before you start the build and you should be fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2008/12/10/python-language-internals-from-source-to-execution/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updated Code Section</title>
		<link>http://www.deskchecked.com/2008/11/25/updated-code-section/</link>
		<comments>http://www.deskchecked.com/2008/11/25/updated-code-section/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 07:29:19 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=136</guid>
		<description><![CDATA[The &#8220;code&#8221; section of the website has been updated to reference most of the code I&#8217;ve uploaded to this blog over the past year or so. Enjoy!
]]></description>
			<content:encoded><![CDATA[<p>The &#8220;code&#8221; section of the website has been updated to reference most of the code I&#8217;ve uploaded to this blog over the past year or so. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2008/11/25/updated-code-section/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new look (and a new domain!)</title>
		<link>http://www.deskchecked.com/2008/10/19/a-new-look/</link>
		<comments>http://www.deskchecked.com/2008/10/19/a-new-look/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 09:59:19 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.deskchecked.com/?p=130</guid>
		<description><![CDATA[As you may have noticed in the last week or two, the web site has undergone a bit of a rebranding process. deskchecked.com will still continue to work for at least another year, but I&#8217;ll slowly be moving everything over to this new domain: deskchecked.com.
It probably seems like a trivial issue, but I&#8217;ve longed to [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have noticed in the last week or two, the web site has undergone a bit of a rebranding process. deskchecked.com will still continue to work for at least another year, but I&#8217;ll slowly be moving everything over to this new domain: <a href="http://www.deskchecked.com">deskchecked.com</a>.</p>
<p>It probably seems like a trivial issue, but I&#8217;ve longed to get rid of the hyphen in the deskchecked domain. However, every time I went looking for a new domain name I was never happy with the alternatives I came up with. At long last, I&#8217;ve finally settled on this one. Unfortunately, this decision has already taken its toll on my Google rank but I&#8217;m sure as new content rolls in I&#8217;ll see that pick up again over time.</p>
<p>Again, I must apologise for the lack of posts. In addition to the <a href="http://www.osdc.com.au">OSDC</a> paper, I&#8217;ve been busy actually writing code rather than just writing about writing code. <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2008/10/19/a-new-look/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ubiquity Command for Google Code Search</title>
		<link>http://www.deskchecked.com/2008/09/10/ubiquity-command-for-google-code-search/</link>
		<comments>http://www.deskchecked.com/2008/09/10/ubiquity-command-for-google-code-search/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 09:40:29 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.vector-seven.com/?p=89</guid>
		<description><![CDATA[Apologies for the extended silence, I&#8217;ve been super busy writing my OSDC paper. The paper was submitted for review just a few days back, so hopefully I&#8217;ll have a bit more time for this blog now.  
Over the past day or two I&#8217;ve started taking a look at Mozilla Ubiquity, and have been quite [...]]]></description>
			<content:encoded><![CDATA[<p>Apologies for the extended silence, I&#8217;ve been super busy writing my OSDC paper. The paper was submitted for review just a few days back, so hopefully I&#8217;ll have a bit more time for this blog now. <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Over the past day or two I&#8217;ve started taking a look at <a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/">Mozilla Ubiquity</a>, and have been quite impressed. Mac heads might think of it as QuickSilver for the browser: a keyboard-driven interface to getting stuff done. However, the real power of Ubiquity lies in how easy it is to extend it with new commands. It&#8217;s a command-line geek&#8217;s dream.</p>
<p>Anyway &#8212; until I find the time to write a meaningful post, check out my Ubiquity <a href="http://www.deskchecked.com/ubiquity/code-search/">command</a> for Google Code Search. You will need to install the Ubiquity add-on in order to install this command, obviously <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.deskchecked.com/2008/09/10/ubiquity-command-for-google-code-search/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
