<?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>Jonathan Hedley</title>
	<atom:link href="http://jonathanhedley.com/feed" rel="self" type="application/rss+xml" />
	<link>http://jonathanhedley.com</link>
	<description>Winning at everything so that you don&#039;t have to.</description>
	<lastBuildDate>Sat, 20 Feb 2010 05:46:35 +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>jsoup 0.3.1 released</title>
		<link>http://jonathanhedley.com/links/2010/02/jsoup-0-3-1-released</link>
		<comments>http://jonathanhedley.com/links/2010/02/jsoup-0-3-1-released#comments</comments>
		<pubDate>Sat, 20 Feb 2010 05:46:35 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsoup]]></category>
		<category><![CDATA[parser]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=246</guid>
		<description><![CDATA[I&#8217;ve just released version 0.3.1 of jsoup, the Java library for working with real-world HTML.
This version adds bulk HTML methods to the Elements collection, supports easy form validation of HTML user input, improves bulk attribute matching, and includes fixes for some minor bugs.
A hearty thanks to everyone that has tried jsoup and written in to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released version 0.3.1 of <a href="http://jsoup.org/">jsoup</a>, the Java library for working with real-world HTML.</p>
<p>This version adds bulk HTML methods to the <a href="http://jsoup.org/apidocs/org/jsoup/select/Elements.html#html()">Elements</a> collection, supports easy form validation of HTML user input, improves bulk attribute matching, and includes fixes for some minor bugs.</p>
<p>A hearty thanks to everyone that has tried jsoup and written in to me or to the mailing list with their experiences. Your input is directly shaping jsoup for the better.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2010/02/jsoup-0-3-1-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Federal Court rules Sensis has no copyright on directories</title>
		<link>http://jonathanhedley.com/articles/2010/02/sensis-database-copyright</link>
		<comments>http://jonathanhedley.com/articles/2010/02/sensis-database-copyright#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:03:39 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[copyright law]]></category>
		<category><![CDATA[intellectual property]]></category>
		<category><![CDATA[legal]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=237</guid>
		<description><![CDATA[The Federal Court of Australia has ruled that Sensis holds no copyright to its White Pages and Yellow Pages directories.]]></description>
			<content:encoded><![CDATA[<p>The Federal Court of Australia has <a href="http://www.austlii.edu.au/au/cases/cth/FCA/2010/44.html">ruled</a> that Sensis holds no copyright to its <a href="http://whitepages.com.au/wp/">White Pages</a> and <a href="http://yellowpages.com.au/">Yellow Pages</a> directories (or, at least, the ones Sensis tendered in evidence to prove that they do).</p>
<blockquote class="side-ruling"><p><em>Catchwords:</em> <strong>INTELLECTUAL PROPERTY</strong> – whether copyright subsists in White Pages and Yellow Pages directories as original literary works – central concepts under the <em><a href="http://www.austlii.edu.au/au/legis/cth/consol_act/ca1968133/">Copyright Act 1968</a></em> (Cth) – centrality of authorship – whether the contributions to the directories involved the necessary independent intellectual effort or sufficient effort of a literary nature</p>
<p><em>340:</em> None of the Works were original. None of the people said to be authors of the Works exercised “independent intellectual effort” or “sufficient effort of a literary nature” in creating the Works. Further, if necessary, the creation of the Works did not involve some “creative spark” or the exercise of the requisite “skill and judgment”.</p>
<p><em>347:</em> For those reasons, I do not consider that copyright subsists in any of the WPDs listed in Annexure A or any of the YPDs listed in Annexure B. I will direct the parties to bring in a proposed minute of orders to give effect to these reasons for decision by 4:00pm on 12 February 2010.</p></blockquote>
<p>This finding raises some large questions around how companies can protect their own works that are created by a diverse workforce that this interpretation of copyright law does not consider to be &#8220;authors&#8221;: the programers, business analysts, managers, customer representatives, and the company as a whole that collectively creates large works.</p>
<p>The answer may be to sit tight and wait for parliament to introduce legislation similar to the EU&#8217;s 1996 Legal Protection of Databases Directive:</p>
<blockquote><p><em>30:</em> As the High Court observes, there is no counterpart in Australian law. It is not open to me to ignore the express words of the Copyright Act to expand protection consistent with that set out in the Directive as summarised by the High Court. That is a matter for Parliament and, in my view, a matter which they should address without delay.</p></blockquote>
<div class="rhs">
<div class="side-ruling"><a href="http://www.austlii.edu.au/au/cases/cth/FCA/2010/44.html">Telstra Corporation Limited v Phone Directories Company Pty Ltd</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/articles/2010/02/sensis-database-copyright/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A rant about PHP compilers in general and HipHop in particular</title>
		<link>http://jonathanhedley.com/links/2010/02/a-rant-about-php-compilers-in-general-and-hiphop-in-particular</link>
		<comments>http://jonathanhedley.com/links/2010/02/a-rant-about-php-compilers-in-general-and-hiphop-in-particular#comments</comments>
		<pubDate>Mon, 08 Feb 2010 21:58:26 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[enterprise architecture]]></category>
		<category><![CDATA[hiphop]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=234</guid>
		<description><![CDATA[I’ve heard the argument &#8220;you don’t need a compiler, since PHP is rarely the bottleneck&#8221; for many years. I think its complete bollox. But I wrote a compiler for PHP, so I would say that.
Unless your PHP server is sitting there idling (which is probably the case for many PHP servers out there), then you [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>I’ve heard the argument &#8220;you don’t need a compiler, since PHP is rarely the bottleneck&#8221; for many years. I think its complete bollox. But I wrote a compiler for PHP, so I would say that.</p>
<p>Unless your PHP server is sitting there idling (which is probably the case for many PHP servers out there), then you could make use of a PHP compiler. For small timers, all components of your application are going to be sitting on the same box, contending for the same resources. Even if you assume the DB is the bottleneck, the resources the interpreter consumes could be more profitably spent on the DB.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2010/02/a-rant-about-php-compilers-in-general-and-hiphop-in-particular/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New version of jsoup released</title>
		<link>http://jonathanhedley.com/links/2010/02/new-version-of-jsoup-released</link>
		<comments>http://jonathanhedley.com/links/2010/02/new-version-of-jsoup-released#comments</comments>
		<pubDate>Sun, 07 Feb 2010 11:18:50 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsoup]]></category>
		<category><![CDATA[parser]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=229</guid>
		<description><![CDATA[I&#8217;ve just released version 0.2.2 of jsoup. This release adds some new class name and HTML manipulation methods, improved document normalisation, and nicer HTML pretty-printing.
jsoup is now also available on the Maven central repository, so getting started is easier. See the details on the download page.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released version 0.2.2 of <a title="Java HTML parser" href="http://jsoup.org/"><strong>jsoup</strong></a>. This release adds some new class name and HTML manipulation methods, improved document normalisation, and nicer HTML pretty-printing.</p>
<p>jsoup is now also available on the Maven central repository, so getting started is easier. See the details on the <a href="http://jsoup.org/download">download</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2010/02/new-version-of-jsoup-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jsoup HTML parser launches</title>
		<link>http://jonathanhedley.com/articles/2010/01/jsoup-html-parser-launches</link>
		<comments>http://jonathanhedley.com/articles/2010/01/jsoup-html-parser-launches#comments</comments>
		<pubDate>Sun, 31 Jan 2010 06:44:36 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsoup]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=218</guid>
		<description><![CDATA[Today, I am announcing the public beta launch of jsoup, an open source Java HTML parser for dealing with real-world HTML.]]></description>
			<content:encoded><![CDATA[<p><a href="http://jsoup.org/"><img src="http://static.jonathanhedley.com/2010/01/jsoup-html-parser.png" alt="jsoup HTML parser screenshot"width="430" height="240" style="border: 1px solid black; margin-bottom: 5px" class="side-cookbook" /></a><br />
Today, I am <a href="http://jsoup.org/news/jsoup-launches">announcing</a> the public beta launch of <code><strong><a href="http://jsoup.org/" title="jsoup Java HTML parser">jsoup</a></strong></code>, an open source Java HTML parser that I have been working on recently.</p>
<p><code>jsoup</code> is a Java library for working with real-world HTML:</p>
<ul>
<li>parse HTML from a URL, file, or string</li>
<li>find and extract data, using DOM traversal or CSS selectors</li>
<li>manipulate the HTML elements, attributes, and text</li>
<li>clean user-submitted content against a safe white-list</li>
</ul>
<p>jsoup is designed to deal with all varieties of HTML found in the wild; from pristine and validating, to invalid tag-soup; jsoup will create a sensible parse tree.</p>
<p>jsoup is an <strong>open source project</strong> distributed under the liberal <a href="http://jsoup.org/license">MIT license</a>. Source code is available at <a href="http://github.com/jhy/jsoup/">GitHub</a>.</p>
<p>As of this initial launch, jsoup is immediately useful, and it is in use in several internal projects. But of course it can be made more useful: so please, send me your suggestions and thoughts; either to the project&#8217;s <a href="http://jsoup.org/discussion">mailing list</a>, or to <a href="http://jonathanhedley.com/contact">me directly</a>.</p>
<p>If you would like to contribute code that would also be welcomed.</p>
<p>For more information, and to get started using jsoup, visit the <a href="http://jsoup.org/">project&#8217;s website</a>.</p>
<div class="rhs">
<div class="side-cookbook">
<p><a href="http://jsoup.org/cookbook/extracting-data/selector-syntax">Use selector-syntax to find elements</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/articles/2010/01/jsoup-html-parser-launches/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API design matters</title>
		<link>http://jonathanhedley.com/links/2010/01/api-design-matters</link>
		<comments>http://jonathanhedley.com/links/2010/01/api-design-matters#comments</comments>
		<pubDate>Thu, 07 Jan 2010 22:23:33 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=212</guid>
		<description><![CDATA[Michi Henning writes about the cost of bad APIs, and how to design good interfaces:

A great way to get usable APIs is to let the customer (namely, the caller) write the function signature, and to give that signature to a programmer to implement. This step alone eliminates at least half of poor APIs: too often, [...]]]></description>
			<content:encoded><![CDATA[<p>Michi Henning writes about the cost of bad APIs, and how to design good interfaces:</p>
<blockquote class="sb-api"><p>
A great way to get usable APIs is to let the customer (namely, the caller) write the function signature, and to give that signature to a programmer to implement. This step alone eliminates at least half of poor APIs: too often, the implementers of APIs never use their own creations, with disastrous consequences for usability. Moreover, an API is not about programming, data structures, or algorithms—an API is a user interface, just as much as a GUI. The user at the using end of the API is a programmer—that is, a human being. Even though we tend to think of APIs as machine interfaces, they are not: they are human-machine interfaces.
</p></blockquote>
<div class="sidebar">
<p class="sb-api">See also:<br /><b><a href="http://chaos.troll.no/~shausman/api-design/api-design.pdf">The Little Manual of API&nbsp;Design</a></b>, by Jasmin Blanchette.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2010/01/api-design-matters/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Event-driven webserver Tornado is now open source</title>
		<link>http://jonathanhedley.com/links/2009/09/tornado-webserver</link>
		<comments>http://jonathanhedley.com/links/2009/09/tornado-webserver#comments</comments>
		<pubDate>Sat, 12 Sep 2009 02:37:49 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tornado]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=207</guid>
		<description><![CDATA[FriendFeed has released Tornado, a Python non-blocking event-driven webserver and framework, as open source.

The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast. Because it is non-blocking and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal [...]]]></description>
			<content:encoded><![CDATA[<p>FriendFeed has released <a href="http://www.tornadoweb.org/">Tornado</a>, a Python non-blocking event-driven webserver and framework, as open source.</p>
<blockquote><p>
The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast. Because it is <span class="sb-non-blocking">non-blocking</span> and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services. We built the web server specifically to handle FriendFeed&#8217;s real-time features — every active user maintains an open connection to the FriendFeed servers.
</p></blockquote>
<div class="sidebar">
<p class="sb-non-blocking"><a href="http://en.wikipedia.org/wiki/Non-blocking_synchronization">Non-blocking synchronization</a> ensures that threads competing for a shared resource do not have their execution indefinitely postponed by mutual exclusion.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2009/09/tornado-webserver/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucene 2.9 Release Imminent</title>
		<link>http://jonathanhedley.com/links/2009/09/lucene-2-9-release</link>
		<comments>http://jonathanhedley.com/links/2009/09/lucene-2-9-release#comments</comments>
		<pubDate>Mon, 07 Sep 2009 04:19:26 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[enterprise architecture]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[solr]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=183</guid>
		<description><![CDATA[





Mark Miller reports that:
The third release candidate for Lucene 2.9 is about to hit and the final release is likely to be only days behind. Almost one year in the making, Lucene 2.9 is feature packed and progressively faster. With Solr 1.4 planning to release very shortly after 2.9, things are shaping up very nicely [...]]]></description>
			<content:encoded><![CDATA[<div class="left-pull plain-bg">
<a href="http://www.amazon.com/gp/product/1847195881?ie=UTF8&#038;tag=904351-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1847195881" class="side-book"><br />
<img src="http://static.jonathanhedley.com/2009/09/solr-enterprise-search.jpg" alt="SOLR Enterprise Search book" width="130" height="160" /><br />
</a><br />
<img src="http://www.assoc-amazon.com/e/ir?t=904351-20&#038;l=as2&#038;o=1&#038;a=1847195881" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</div>
<p><cite><a title="Posts by Mark Miller" href="http://www.lucidimagination.com/blog/author/markmiller/">Mark Miller</a></cite> reports that:</p>
<blockquote><p>The third release candidate for <a href="http://lucene.apache.org/">Lucene</a> 2.9 is about to hit and the final release is likely to be only days behind. Almost one year in the making, Lucene 2.9 is feature packed and progressively faster. With <a href="http://lucene.apache.org/solr/">Solr</a> 1.4 planning to release very shortly after 2.9, things are shaping up very nicely in Lucene land.</p></blockquote>
<p>In anticipation of the Solr 1.4 release, <a href="http://www.opensourceconnections.com/2009/08/19/solr-1.4-enterprise-search-server-book-is-released/">Eric Pugh</a> has announced that the first book on Solr, <a href="http://www.amazon.com/gp/product/1847195881?ie=UTF8&#038;tag=904351-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=1847195881">Solr 1.4 Enterprise Search Server</a>, has been published and is available for purchase.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2009/09/lucene-2-9-release/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Unicode Lookup</title>
		<link>http://jonathanhedley.com/articles/2009/04/announcing-unicode-lookup</link>
		<comments>http://jonathanhedley.com/articles/2009/04/announcing-unicode-lookup#comments</comments>
		<pubDate>Thu, 16 Apr 2009 11:40:46 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[file formats]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unicode]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=177</guid>
		<description><![CDATA[Over the weekend I built <a href="http://unicodelookup.com/"><strong>Unicode Lookup</strong></a>, a tool that lets you search for any Unicode character by name, or by codepoint number. A table of the characters with their decimal, octal, hex, and HTML entity representations is shown as results.]]></description>
			<content:encoded><![CDATA[<p><a href='http://unicodelookup.com/'><img src="http://static.jonathanhedley.com/2009/04/unicode-lookup-table.png" alt="Unicode character result table" title="Unicode Lookup" width="430" height="240" style="border: 1px solid black" /></a></p>
<p>Over the weekend I built <a href="http://unicodelookup.com/"><strong>Unicode Lookup</strong></a>, a tool that lets you search for any Unicode character by name, or by codepoint number. A table of the characters with their decimal, octal, hex, and HTML entity representations is shown as results.</p>
<p>The core purpose of the tool is to aid web-development by making it easy to find the HTML entity for any character. It&#8217;s also useful for finding a character by class (e.g. math symbols) for copy &#038; paste into documents.</p>
<p>As ASCII is a subset of Unicode, the tool also serves as a full ASCII (and Latin-1 etc) character reference.</p>
<p><a href="http://unicodelookup.com/">Unicode Lookup</a> is based on John Walker&#8217;s command-line tool <a href="http://www.fourmilab.ch/webtools/unum/"><code>unum</code></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/articles/2009/04/announcing-unicode-lookup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE 6 and 7 to auto-update to IE8</title>
		<link>http://jonathanhedley.com/links/2009/04/ie8-automatic-update</link>
		<comments>http://jonathanhedley.com/links/2009/04/ie8-automatic-update#comments</comments>
		<pubDate>Mon, 13 Apr 2009 00:07:35 +0000</pubDate>
		<dc:creator>Jonathan Hedley</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://jonathanhedley.com/?p=176</guid>
		<description><![CDATA[Starting on or about the third week of April, users still running IE6 or IE7 on Windows XP, Windows Vista, Windows Server 2003, or Windows Server 2008 will get will get a notification through Automatic Update about IE8. This rollout will start with a narrow audience and expand over time to the entire user base. [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Starting on or about the third week of April, users still running IE6 or IE7 on Windows XP, Windows Vista, Windows Server 2003, or Windows Server 2008 will get will get a notification through Automatic Update about IE8. This rollout will start with a narrow audience and expand over time to the entire user base. On Windows XP and Server 2003, the update will be High-Priority.</p></blockquote>
<p>Users can decline the update, and Corporate IT groups can block it, but this is a promising move to bring users up to date, and so to increase web-development efficiency.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonathanhedley.com/links/2009/04/ie8-automatic-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
