<?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>Andrew Birkett's blog</title>
	<atom:link href="http://www.nobugs.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nobugs.org/blog</link>
	<description>Thoughts of a software engineer</description>
	<lastBuildDate>Fri, 11 May 2012 21:08:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Eclipse equals/hashcode extension</title>
		<link>http://www.nobugs.org/blog/archives/2012/05/11/eclipse-equalshashcode-extension/</link>
		<comments>http://www.nobugs.org/blog/archives/2012/05/11/eclipse-equalshashcode-extension/#comments</comments>
		<pubDate>Fri, 11 May 2012 21:08:43 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.nobugs.org/blog/?p=492</guid>
		<description><![CDATA[Lately, I&#8217;ve been working on another eclipse extension. This one generates equals/hashcode methods which use the commons-lang HashcodeBuilder and EqualsBuilder (in non-reflection) mode. So, a single keypress will provide equals/hashcode methods which cover all non-static fields, plus sort out the import&#8217;s required. After writing this, I found commons4e, which has the same aim. Actually, I [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I&#8217;ve been working on another eclipse extension.  This one generates equals/hashcode methods which use the commons-lang HashcodeBuilder and EqualsBuilder (in non-reflection) mode.  So, a single keypress will provide equals/hashcode methods which cover all non-static fields, plus sort out the import&#8217;s required.</p>
<p>After writing this, I found <a href="http://wiki.jiayun.org/Commons4E">commons4e</a>, which has the same aim.  Actually, I still prefer my own because it&#8217;s optimized for the common case.  I don&#8217;t like fluffy dialog boxes which let you choose exactly which fields to include.  Just generate the code for all the fields, and use normal editing commands to get rid of the ones you don&#8217;t like.</p>
<p>Writing my own has helped me learn more about the eclipse api&#8217;s (and the lack of quasiquoting), and this should hopefully lead onto more complex things being possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nobugs.org/blog/archives/2012/05/11/eclipse-equalshashcode-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hilbert curves</title>
		<link>http://www.nobugs.org/blog/archives/2012/04/30/hilbert-curves/</link>
		<comments>http://www.nobugs.org/blog/archives/2012/04/30/hilbert-curves/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 19:54:33 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.nobugs.org/blog/?p=486</guid>
		<description><![CDATA[In an attempt to further harass postscript printers, I hacked the postscript l-system which I wrote, err, a long time ago, so that instead of trees it draws hilbert curves. Then it occured to me to animate it, starting from a straight-ish line, and gradually folding it in, increasing the turn angle until it reaches [...]]]></description>
			<content:encoded><![CDATA[<p>In an attempt to further harass postscript printers, I hacked the <a href="http://nobugs.org/developer/lsys/lsys.ps.txt">postscript l-system</a> which I wrote, err, a long time ago, so that instead of trees it draws <a href="http://nobugs.org/developer/lsys/hilbert.ps.txt">hilbert curves</a>.  Then it occured to me to animate it, starting from a straight-ish line, and gradually folding it in, increasing the turn angle until it reaches 90 degrees.  Kinda pretty.  Makes me wonder how long the piece of string gets when it&#8217;s straightened out; might hack the postscript file to tell me that later.</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/fdql4YYZo6A" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nobugs.org/blog/archives/2012/04/30/hilbert-curves/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CS question: calculus vs algebra</title>
		<link>http://www.nobugs.org/blog/archives/2012/04/20/cs-question-calculus-vs-algebra/</link>
		<comments>http://www.nobugs.org/blog/archives/2012/04/20/cs-question-calculus-vs-algebra/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 18:39:34 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.nobugs.org/blog/?p=484</guid>
		<description><![CDATA[I have never been sure if calling something a &#8220;calculus&#8221; as opposed to an &#8220;algebra&#8221; is intended to communicate something important in computer science. For example, people talk about the &#8220;lambda calculus&#8220;. But they also talk about &#8220;process algebras&#8220;. What&#8217;s the key property that would make some system a &#8216;calculus&#8217;? Or is it an arbitary [...]]]></description>
			<content:encoded><![CDATA[<p>I have never been sure if calling something a &#8220;calculus&#8221; as opposed to an &#8220;algebra&#8221; is intended to communicate something important in computer science.    For example, people talk about the &#8220;lambda <strong>calculus</strong>&#8220;.  But they also talk about &#8220;process <strong>algebras</strong>&#8220;.  What&#8217;s the key property that would make some system a &#8216;calculus&#8217;?  Or is it an arbitary naming choice, just indicating the personal preference of the creator?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nobugs.org/blog/archives/2012/04/20/cs-question-calculus-vs-algebra/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Notes from Milner Symposium</title>
		<link>http://www.nobugs.org/blog/archives/2012/04/20/notes-from-milner-symposium/</link>
		<comments>http://www.nobugs.org/blog/archives/2012/04/20/notes-from-milner-symposium/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 18:13:14 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.nobugs.org/blog/?p=480</guid>
		<description><![CDATA[First-hand anecodote on the naming of the pi-calculus, courtesy of John Power. Robin Milner viewed it as a successor to the lambda calculus. What comes after lambda in the greek alphabet? Mu, but there was already a mu-calculus. Nu comes next, but sounds too similiar to mu. Next up is omicron, but who&#8217;d want to [...]]]></description>
			<content:encoded><![CDATA[<p>First-hand anecodote on the naming of the pi-calculus, courtesy of John Power.  Robin Milner viewed it as a successor to the lambda calculus.  What comes after lambda in the greek alphabet?  Mu, but there was already a mu-calculus.  Nu comes next, but sounds too similiar to mu.  Next up is omicron, but who&#8217;d want to work on the &#8220;omicron calculus&#8221;?!  And so you get to pi.  PI CALCULUS.</p>
<p>Gérard Huet&#8217;s opening talk was amazing.  He talked flowingly for 40 minutes, entirely from memory.  He talked about the early days of ML, including the &#8216;split&#8217; between Standard ML and the INRIA caml/caml-light/ocaml.  He described being asked by Milner to rename the INRIA flavour of ML after the Standard ML effort, and then cheekily naming it CAML, ostensibly because of the Categorical Abstract Machine but usefully keeping ML in the name.</p>
<p>I really enjoyed Xavier Leroy&#8217;s talk about a future in which programming languages and theorem provers increasingly blend into one &#8211; an area which I keep meaning to get deeper into.  I also thought Benjamin Pierce&#8217;s talk was really appropriate for the occasion &#8211; taking the time to walk through the Hindley-Milner (or Milner, or Damas-Hindley-Milner) type inference algorithm in detail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nobugs.org/blog/archives/2012/04/20/notes-from-milner-symposium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another eclipse extension</title>
		<link>http://www.nobugs.org/blog/archives/2012/04/10/another-eclipse-extension/</link>
		<comments>http://www.nobugs.org/blog/archives/2012/04/10/another-eclipse-extension/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 19:57:31 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.nobugs.org/blog/?p=477</guid>
		<description><![CDATA[Like this person, I often want to surround the eclipse selection with parens. For example, &#8220;42&#8243; becomes &#8220;(42)&#8221; with the cursor before the first paren, ready to turn into &#8220;foo(42)&#8221;. Combined with eclipse&#8217;s structured selection, this is pretty handy. For the last while, I&#8217;ve used a template for this. It requires a few keystrokes though, [...]]]></description>
			<content:encoded><![CDATA[<p>Like <a href="http://stackoverflow.com/questions/66986/is-there-an-eclipse-command-to-surround-the-current-selection-with-parentheses">this person</a>, I often want to surround the eclipse selection with parens.  For example, &#8220;42&#8243; becomes &#8220;(42)&#8221; with the cursor before the first paren, ready to turn into &#8220;foo(42)&#8221;.  Combined with eclipse&#8217;s structured selection, this is pretty handy.  For the last while, I&#8217;ve used a template for this.  It requires a few keystrokes though, so was a prime target for optimization.</p>
<p>So tonight I threw together an extension called Parens which does it in a single keypress.  The surprising thing was that it worked perfectly first time I ran it.  This never happens!  </p>
<p>I&#8217;m starting to like customizing eclipse.  it&#8217;s not quite as &#8216;discoverable&#8217; as emacs is .. largely due to it&#8217;s modular nature and careful dependency tracking.  However, given that emacs&#8217;s lack of modularity and dependency tracking drive me mad, I can&#8217;t complain too much. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.nobugs.org/blog/archives/2012/04/10/another-eclipse-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

