<?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>Angus Thinks... &#187; Writing Software</title>
	<atom:link href="http://www.malcolmhardie.com/weblogs/angus/category/writing-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.malcolmhardie.com/weblogs/angus</link>
	<description>SQLEditor for Mac OS X, Life and general thoughts</description>
	<lastBuildDate>Fri, 30 Jul 2010 00:32:19 +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>Apple WWDC videos</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2010/06/30/apple-wwdc-videos/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2010/06/30/apple-wwdc-videos/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 22:23:07 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Writing Software]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/?p=570</guid>
		<description><![CDATA[Brilliant work on Apple&#8217;s part in releasing all of the WWDC videos to registered developers. In previous years these were only available for a fee (I seem to remember $500), so including them is very nice.]]></description>
			<content:encoded><![CDATA[<p>Brilliant work on Apple&#8217;s part in releasing all of the WWDC videos to registered developers. In previous years these were only available for a fee (I seem to remember $500), so including them is very nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2010/06/30/apple-wwdc-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Big changes to Mac Developer Program</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2010/03/05/big-changes-to-mac-developer-program/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2010/03/05/big-changes-to-mac-developer-program/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 03:50:01 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Writing Software]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/?p=508</guid>
		<description><![CDATA[Apple have rearranged their Mac developer program so that it now costs only $99 and seems to have only one paid variant rather than the three previously available. (Student, Select, Premier). The online only variant is still available and still &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2010/03/05/big-changes-to-mac-developer-program/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Apple have rearranged their Mac developer program so that it now costs only $99 and seems to have only one paid variant rather than the three previously available. (Student, Select, Premier). The online only variant is still available and still free of charge.</p>
<p>It appears that this is possibly influenced by the amazing success of the iPhone developer program, which is also $99.</p>
<p>Anything that makes it easier and cheaper for developers to develop applications is probably a good thing. Although obviously you only need this developer program if you need access to pre-releases of Mac OS X and the other benefits it provides. It isn&#8217;t now and never has been a required purchase.</p>
<p>They&#8217;re still upgrading the sites as I write this, so I haven&#8217;t seen all of the details yet, but definitely looking good.</p>
<p>[edited to correct information about the free online program]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2010/03/05/big-changes-to-mac-developer-program/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Migrations and Schemas</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2010/02/26/rails-migrations-and-schemas/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2010/02/26/rails-migrations-and-schemas/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 19:05:44 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Writing Software]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[SQLEditor]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/?p=503</guid>
		<description><![CDATA[A schema.rb file is typically a ruby script containing a call to the ActiveRecord::Schema.define method. A rails migration is a ruby class which inherits from ActiveRecord::Migration and contains a method called up The useful fact that I realized only after &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2010/02/26/rails-migrations-and-schemas/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>A schema.rb file is typically a ruby script containing a call to the <tt>ActiveRecord::Schema.define</tt> method.</li>
</ul>
<ul>
<li> A rails migration is a ruby class which inherits from <tt>ActiveRecord::Migration</tt> and contains a method called up</li>
</ul>
<p>The useful fact that I realized only after doing some ultimately unnecessary work today is that because the schema file contains a method call, it&#8217;s actually easier to extract the information from it than with a migration (which needs SQLEditor to figure out a class name and then call the up method)</p>
<p>Hopefully this new work will appear soon in SQLEditor</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2010/02/26/rails-migrations-and-schemas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCode function popup</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2008/10/16/xcode-function-popup/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2008/10/16/xcode-function-popup/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 21:38:48 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Writing Software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/?p=295</guid>
		<description><![CDATA[I love the XCode function popup, particularly in Objective C, because I can add #pragma mark comments to divide up the list. Unfortunately languages that aren&#8217;t C derived don&#8217;t offer #pragma, so I missed these little dividers Then I noticed &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2008/10/16/xcode-function-popup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I love the XCode function popup, particularly in Objective C, because I can add <strong>#pragma mark</strong> comments to divide up the list.</p>
<p>Unfortunately languages that aren&#8217;t C derived don&#8217;t offer <strong>#pragma</strong>, so I missed these little dividers</p>
<p>Then I noticed that a comment that contained <strong>FIXME</strong> had appeared in the list too, looking just as if it were a #pragma mark entry</p>
<p>Looking at the XCode documentation reveals that XCode will also search code comments for a range of keywords and use them to control entries in the function popup. And it will do this for  Java, Perl, Python, and Ruby (as well as the C based C, Objective-C and C++).</p>
<p>This means I can write in other interesting languages and still get my function popup dividers.</p>
<p>Just prefix the comment line with one of the following:</p>
<ul class="nested">
<li class="nested li"><code>MARK:</code></li>
<li class="nested li"><code>TODO:</code></li>
<li class="nested li"><code>FIXME:</code></li>
<li class="nested li"><code>!!!:</code></li>
<li class="nested li"><code>???</code></li>
</ul>
<p>and the remainder of that line will appear in the list.</p>
<p>There is more in the <a href="http://developer.apple.com/documentation/developertools/Conceptual/XcodeWorkspace/600-The_Text_Editor/chapter_6_section_2.html#//apple_ref/doc/uid/TP40002679-SW10">Apple Xcode tools documentation</a></p>
<p>(It looks like there has been some discussion of this already (<a href="http://www.nabble.com/pragma-mark-with-python-in-xcode--td18879370.html">1</a>,<a href="http://www.tomonagatokuyama.com/txt/2008/xcode-special-comment-keywords/">2</a>,<a href="http://tungchingkai.blogspot.com/2008/05/xcode-workspace.html">3</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2008/10/16/xcode-function-popup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reggy for regular expression testing</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2008/06/07/reggy-for-regular-expression-testing/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2008/06/07/reggy-for-regular-expression-testing/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 21:32:58 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Writing Software]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/2008/06/07/reggy-for-regular-expression-testing/</guid>
		<description><![CDATA[Handy new tool I came across today which allows you to test regular expressions and see what they select. Reggy]]></description>
			<content:encoded><![CDATA[<p>Handy new tool I came across today which allows you to test regular expressions and see what they select.</p>
<p><a href="http://code.google.com/p/reggy/">Reggy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2008/06/07/reggy-for-regular-expression-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash CS3 &#8211; Trace not producing output?</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2008/03/14/flash-cs3-trace-not-producing-output/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2008/03/14/flash-cs3-trace-not-producing-output/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 01:52:56 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Writing Software]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/2008/03/14/flash-cs3-trace-not-producing-output/</guid>
		<description><![CDATA[Found an odd problem with Flash CS3 today. I was working away and I realised that I wasn&#8217;t getting anything in the output window from calls to trace(). Just a completely empty output panel. The answer is simple, make sure &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2008/03/14/flash-cs3-trace-not-producing-output/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Found an odd problem with Flash CS3 today. I was working away and I realised that I wasn&#8217;t getting anything in the output window from calls to <code>trace()</code>.</p>
<p>Just a completely empty output panel.</p>
<p>The answer is simple, make sure <code>Filter Level</code> is set to <code>verbose</code> in the menu on the output panel. If you have it set to <code>None</code> then you won&#8217;t get any output.</p>
<p>I&#8217;m not quite sure if this is something that I changed or if it is the default, but it isn&#8217;t exactly obvious.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2008/03/14/flash-cs3-trace-not-producing-output/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>XML, UTF-8 and Java</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2007/08/27/xml-utf-8-and-java/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2007/08/27/xml-utf-8-and-java/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 06:52:57 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Writing Software]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/2007/08/27/xml-utf-8-and-java/</guid>
		<description><![CDATA[Apparently, valid UTF-8 strings aren&#8217;t necessarily valid XML. You can get a situation where you have valid UTF-8 strings which fail xml parsing. Fortunately Mark McLaren offers a solution.]]></description>
			<content:encoded><![CDATA[<p>Apparently, valid UTF-8 strings aren&#8217;t necessarily valid XML. You can get a situation where you have valid UTF-8 strings which fail xml parsing.</p>
<p>Fortunately <span /><a href="http://cse-mjmcl.cse.bris.ac.uk/blog/">Mark McLaren</a> offers a <a href="http://cse-mjmcl.cse.bris.ac.uk/blog/2007/02/14/1171465494443.html">solution</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2007/08/27/xml-utf-8-and-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTMLValidator 1.0</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2007/08/07/htmlvalidator-10/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2007/08/07/htmlvalidator-10/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 06:57:06 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Company News]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Writing Software]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/2007/08/07/htmlvalidator-10/</guid>
		<description><![CDATA[HTMLValidator 1.0 is finally released. As I write this, it&#8217;s been out since Friday, so I guess I&#8217;m a bit late in writing this. HTMLValidator 1.0 is identical to HTMLValidator 1.0b8, except of course that it 1) doesn&#8217;t expire and &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2007/08/07/htmlvalidator-10/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>HTMLValidator 1.0 is finally released.</p>
<p>As I write this, it&#8217;s been out since Friday, so I guess I&#8217;m a bit late in writing this. HTMLValidator 1.0 is identical to HTMLValidator 1.0b8, except of course that it 1) doesn&#8217;t expire and 2) asks for registration.</p>
<p>The first non-beta release seems to have gone reasonably well. People are downloading it, trying it and some are starting to buy it. (If you&#8217;re reading this, then thank you!).</p>
<p>Oddly enough the most difficult thing about the whole thing was making sure that the order processing system could correctly deal with more than one product. We have a system that interfaces with our payment provider and it handles logging orders and generating serial codes. When it was originally written, HTMLValidator didn&#8217;t exist, we sold only one product and there wasn&#8217;t really a plan to develop others; So there were several areas that assumed that was <em>only</em> one product. The lesson here is to assume that you&#8217;re going to expand and plan accordingly.</p>
<p>Work has already started on the next release of HTMLValidator. The main areas for improvement are speed and memory usage. Plus there are some improvements to validation that the W3C released in their version 0.80 code release that would be nice to have in HTMLValidator. (Which is of course based on the W3C validator).</p>
<p>If you want to try HTMLValidator then we have a page that tells you all about it.</p>
<p>[<a href="http://www.malcolmhardie.com/htmlvalidator/">HTMLValidator</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2007/08/07/htmlvalidator-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>building antlr 2.7.7 on Mac OS X</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2007/04/28/building-antlr-277-on-mac-os-x/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2007/04/28/building-antlr-277-on-mac-os-x/#comments</comments>
		<pubDate>Sat, 28 Apr 2007 17:12:57 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Writing Software]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/2007/04/28/building-antlr-277-on-mac-os-x/</guid>
		<description><![CDATA[It appears that antlr on Mac os x doesn&#8217;t like the jikes compiler, at least when I tried building antlr it gave lots of weird compile errors like this: Found 2 semantic errors compiling "ANTLRException.java": While it would be a &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2007/04/28/building-antlr-277-on-mac-os-x/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It appears that antlr on Mac os x doesn&#8217;t like the jikes compiler, at least when I tried building antlr it gave lots of weird compile errors like this:<br />
<code> Found 2 semantic errors compiling "ANTLRException.java": </code></p>
<p>While it would be a good thing to try to fix the actual code, it&#8217;s easier to see if the solution is already available.</p>
<p>The answer came in <a href="http://www.antlr.org:8080/pipermail/antlr-interest/2005-November/014435.html">this posting</a> which suggests renaming jikes before building. Which works, but there is an easier way. Just declare an environment variable before starting the build.</p>
<p><code><br />
export JAVAC=javac<br />
./configure<br />
make<br />
</code></p>
<p>Changing the java compiler that gets used is documented in the configure script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2007/04/28/building-antlr-277-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java class file version numbering</title>
		<link>http://www.malcolmhardie.com/weblogs/angus/2007/04/21/java-class-file-version-numbering/</link>
		<comments>http://www.malcolmhardie.com/weblogs/angus/2007/04/21/java-class-file-version-numbering/#comments</comments>
		<pubDate>Sat, 21 Apr 2007 03:36:16 +0000</pubDate>
		<dc:creator>Angus Hardie</dc:creator>
				<category><![CDATA[Writing Software]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.malcolmhardie.com/weblogs/angus/2007/04/21/java-class-file-version-numbering/</guid>
		<description><![CDATA[http://alumnus.caltech.edu/~leif/opensource/bcver/BcVerApp.html This page has a list which shows how java class version numbers relate to java platform version numbering. It&#8217;s useful if you get one of those UnsupportedClassVersionError errors. This relates to the Java ClassFile structure which defines how classes &#8230; <a href="http://www.malcolmhardie.com/weblogs/angus/2007/04/21/java-class-file-version-numbering/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://alumnus.caltech.edu/~leif/opensource/bcver/BcVerApp.html">http://alumnus.caltech.edu/~leif/opensource/bcver/BcVerApp.html</a></p>
<p>This page has a list which shows how java class version numbers relate to java platform version numbering. It&#8217;s useful if you get one of those <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/UnsupportedClassVersionError.html">UnsupportedClassVersionError</a> errors.</p>
<p>This relates to the Java <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#75883">ClassFile structure</a> which defines how classes are represented.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.malcolmhardie.com/weblogs/angus/2007/04/21/java-class-file-version-numbering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
