tag:blogger.com,1999:blog-18114161859104782732024-03-05T17:46:20.182+11:00Hisso Hathaircogitans alta voce Unknownnoreply@blogger.comBlogger41125tag:blogger.com,1999:blog-1811416185910478273.post-41984293890418359342013-05-17T22:31:00.002+10:002013-05-17T22:33:28.992+10:00A brief history of registered designs<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
Oh man, I clearly did <b>not</b> want to write this post.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
This one has been a long time coming. Part of the problem is that Registered Designs are relentlessly boring. From the point of view of a philosophy of IP it doesn't get more utilitarian than RDs.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Designs evolved in parallel with Copyright. In fact Designs were <a href="http://www.ipo.gov.uk/types/design/d-about/d-whatis/d-history.htm">originally protected as a special class of copyrights</a> for patterns on linen. Hang on to your hats incredulous readers because it only gets more exciting from here. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Sorry. No it doesn't.</div>
<blockquote class="tr_bq" style="text-align: left;">
<span style="background-color: white; color: #333333; font-family: sans-serif; font-size: 14px; line-height: 21px;">A design is the overall appearance of a product. This includes the shape, configuration, pattern and ornamentation which, when applied to a product, give it a unique visual appearance. [<a href="http://www.ipaustralia.gov.au/get-the-right-ip/designs/about-designs/">Source</a>]</span></blockquote>
<div style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Holden_Monaro" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" target="_blank"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/1971-1974_Holden_HQ_Monaro_GTS_sedan_01.jpg/220px-1971-1974_Holden_HQ_Monaro_GTS_sedan_01.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The shape of the Holden Monaro:<br />
a Registered Design(!)</td></tr>
</tbody></table>
What <b>is</b> a (little bit) interesting is why Designs are separate from copyrights these days<a href="http://blog.hissohathair.com/2013/05/a-brief-history-of-registered-designs.html#more" rel="nofollow">[1]</a>. Copyrights in an artwork can be lost if the design is "industrially applied." In Australia that happens if 50 copies are made. So a cup may be a copyrighted work of art (specifically a sculpture I guess) until you make 50 of them and then it's... yet another cup. If you wanted to prevent people from making exact copies of that cup you'd need to<a href="http://www.ipaustralia.gov.au/get-the-right-ip/designs/"> register the design with IP Australia</a>. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
But why make this distinction? Why would a unique and distinctive design be copyrighted 49 times but then magically lose that protection once the 50th copy is made? Could it be because copyright is there to promote the higher ideals: science, art and learning? And if all you're doing is making lots of cups then clearly you aren't doing any of those things? And therefore... the state isn't prepared to lend the full weight of copyright law to something as ignoble as cup making or linen printing?</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I don't know. I think I should know... I probably once <b>did</b> know... but finding out again would probably involve looking up <a href="http://www.thomsonreuters.com.au/law-of-intellectual-property-online/productdetail/37222">Ricketson</a> and $6,285.09 exceeds my budget. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
</div>
<a name='more'></a><b>Notes:</b><br />
<ol style="text-align: left;">
<li>The Arts Law Centre has a fairly readable summary of the <a href="http://www.artslaw.com.au/info-sheets/info-sheet/protecting-your-designs/">differences between Design & Copyright</a>. </li>
</ol>
<br />
In researching this post I came across "<a href="http://copyright-australia.com/" rel="nofollow" target="_blank">Copyright-Australia.com</a>." Such an odd site. I can't understand why <i>anything</i> that they're selling would be necessary. I'm particularly perplexed by this quote:<br />
<blockquote class="tr_bq" style="text-align: left;">
The solution : "patent" your creative works and innovations by an official copyright deposit in 163 countries !</blockquote>
Ummm... no. No these are two different things. And of course, "registering" copyrights has not been necessary since the Berne Convention (1887 I believe... although the US didn't sign on until 1988). I guess what they're really trying to offer is to establish some kind of evidence that you're the original author of a work, because they offer to timestamp digital files. I just find this... so odd.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-83359008471917047672013-03-15T21:23:00.003+11:002013-03-15T22:22:30.824+11:00Re-introducing... Mumpsimus.<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="http://blog.hissohathair.com/2008/11/idea-for-teeny-tiny-web-developers.html">A while ago</a> I started playing around with a new way of debugging web apps. I basically piped the HTTP stream through UNIX pipes, using a combination of Perl scripts and other commands to modify HTTP headers and bodies on their way to and from the browser.<br />
<br />
I've just started playing with the concept again and this time I've <a href="https://github.com/hissohathair/mumpsimus">put the code on GitHub</a>.<br />
<br />
It's still in its really early days and I really only ever have time these days to pick at it occasionally.<br />
<br />
Anyway, here's the relevant introduction from the <a href="https://github.com/hissohathair/mumpsimus#mumpsimus">README</a>.<br />
<br />
<br />
<h3 style="text-align: left;">
Introducing Mumpsimus: An experiment</h3>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; padding: 0px;">
A mumpsimus is a person who obstinately adheres to a custom or notion, even after it's been shown to be unreasonable (alternatively, the word may be used to describe the custom or notion itself).</div>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
It is said to have come from an illiterate 16th century priest, who was mispronouncing the Latin word "sumpsimus". When told of the error, he replied:</div>
<blockquote style="border-left-color: rgb(221, 221, 221); border-left-style: solid; border-width: 0px 0px 0px 4px; color: #777777; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin: 15px 0px; padding: 0px 15px; quotes: none;">
<div style="border: 0px; margin-bottom: 15px; padding: 0px;">
I will not change my old mumpsimus for your new sumpsimus</div>
<ul style="border: 0px; margin: 15px 0px 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;"><a href="http://oxforddictionaries.com/definition/english/mumpsimus" style="border: 0px; color: #4183c4; margin: 0px; padding: 0px; text-decoration: none;">Oxford Dictionaries</a></li>
</ul>
</blockquote>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
This Mumpsimus is a tool set for re-writing HTTP messages before they reach your browser or device. It will stubbornly mis-state both requests and responses -- even when someone thinks that's a bad idea.</div>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
For example, we might use Mumpsimus to stubbornly insist that all assets are cacheable. Or that none are. Or we might serve a local file when a remote one is requested. Or we might randomly scramble the Google Analytics tracking code, or strip out our Facebook cookie when visiting third party sites. <a href="http://homepages.ius.edu/HARRISLA/places.htm">Oh the places we'll go!</a></div>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
The original idea was a tool for debugging during web development. If that's your thing then check out the <a href="http://www.charlesproxy.com/">Charles Web Development Proxy</a>. It's very handy. Mumpsimus is still a toy.</div>
<h1 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 28px; margin: 20px 0px 10px; padding: 0px; position: relative;">
<a class="anchor" href="https://github.com/hissohathair/mumpsimus#how-it-works" name="how-it-works" style="border: 0px; bottom: 0px; color: #4183c4; cursor: pointer; display: block; left: 0px; margin: 0px 0px 0px -30px; padding: 0px 0px 0px 30px; position: absolute; text-decoration: none; top: 0px;"></a>How it Works</h1>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; padding: 0px;">
The toolset is designed to work as a set of UNIX command-line programs that will co-operate using <em style="border: 0px; margin: 0px; padding: 0px;"><a href="http://en.wikipedia.org/wiki/Pipeline_(Unix)">UNIX pipes</a></em>. The basic idea is to feed in HTTP messages (requests or responses) via <em style="border: 0px; margin: 0px; padding: 0px;">stdin</em>, and have the (potentially) modified output printed on <em style="border: 0px; margin: 0px; padding: 0px;">stdout</em>. This in turn can be fed to another command and so on.</div>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Here's a simple example:</div>
<pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"><code style="background-color: transparent; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px; padding: 0px;">$ mkfifo backpipe
$ nc -l 8080 < backpipe | log | nc proxy 3128 | log -v > backpipe
</code></pre>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Or, if you have <a href="http://nmap.org/ncat/" style="border: 0px; color: #4183c4; margin: 0px; padding: 0px; text-decoration: none;">Mmap.org's Ncat tool</a>:</div>
<pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"><code style="background-color: transparent; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px; padding: 0px;">$ ncat -l -k localhost 8080 -c "log | ncat proxy 3128 | log -v"
</code></pre>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
<em style="border: 0px; margin: 0px; padding: 0px;">Log</em> is part of Mumpsimus. It prints information about HTTP messages it sees on stderr. So these commands (the two blocks above are functionally equivalent):</div>
<ul style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin: 15px 0px; padding: 0px 0px 0px 30px;">
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Listens on port 8080 for browser requests (therefore set your proxy to localhost:8080)</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Pipes the browser request through the <em style="border: 0px; margin: 0px; padding: 0px;">log</em> command, which will print one line on stderr per request</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Pipes the request through another netcat instance which will forward it to a real proxy running on port 3128 (assumes the proxy's hostname is "proxy")</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
Pipes the response through another <em style="border: 0px; margin: 0px; padding: 0px;">log</em> command, this time also printing HTTP headers (-v turns this on)</div>
</li>
<li style="border: 0px; margin: 0px; padding: 0px;"><div style="border: 0px; margin-bottom: 15px; padding: 0px;">
The resulting output will be sent back to the browser.</div>
</li>
</ul>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Let's play with the Cache-Control header!</div>
<pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"><code style="background-color: transparent; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px; padding: 0px;">$ mkfifo backpipe
$ nc -l 8080 < backpipe | nc proxy 3128 \
| sed -e 's/^Cache-Control: .*/Cache-Control: private/' \
| log -v > backpipe
</code></pre>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
This will mean that all requests going back to the browser will have their Cache-Control header re-written to say "private", allowing our browser to cache locally.</div>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Actually, all we're doing above we could do already without Mumpsimus. The problem with it is that any line beginning "Cache-Control" will be re-written, not just headers. The <em style="border: 0px; margin: 0px; padding: 0px;">pipeif</em> tool can help, since it knows HTTP:</div>
<pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"><code style="background-color: transparent; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px; padding: 0px;">$ nc -l 8080 < backpipe | nc proxy 3128 \
| pipeif -h -c "sed -e 's/^Cache-Control: .*/Cache-Control: private/'" \
| log -v > backpipe
</code></pre>
<div style="border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px; padding: 0px;">
Now that <em style="border: 0px; margin: 0px; padding: 0px;">sed</em> command will only apply to HTTP headers, because that's what <em style="border: 0px; margin: 0px; padding: 0px;">pipeif</em> does.</div>
<h3 style="text-align: left;">
Download</h3>
<div>
For now you'll need to grab the code from GitHub and <a href="https://github.com/hissohathair/mumpsimus#installation">compile it yourself</a>:</div>
<div>
<pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"><code style="background-color: transparent; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: none; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 12px; margin: 0px; padding: 0px;">$ ./configure --prefix=~/mumpsimus
$ make check && make install
</code></pre>
<h1 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 28px; margin: 20px 0px 10px; padding: 0px; position: relative;">
<a class="anchor" href="https://github.com/hissohathair/mumpsimus#using-the-tools" name="using-the-tools" style="border: 0px; bottom: 0px; color: #4183c4; cursor: pointer; display: block; left: 0px; margin: 0px 0px 0px -30px; padding: 0px 0px 0px 30px; position: absolute; text-decoration: none; top: 0px;"></a></h1>
</div>
<h1 style="-webkit-font-smoothing: antialiased; border: 0px; cursor: text; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 28px; margin: 20px 0px 10px; padding: 0px; position: relative;">
<a class="anchor" href="https://github.com/hissohathair/mumpsimus#installation" name="installation" style="border: 0px; bottom: 0px; color: #4183c4; cursor: pointer; display: block; left: 0px; margin: 0px 0px 0px -30px; padding: 0px 0px 0px 30px; position: absolute; text-decoration: none; top: 0px;"></a></h1>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-12739107589644860852012-12-28T07:00:00.000+11:002012-12-28T07:00:03.008+11:00How to Read a Software Patent<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<i>[The article below originally appeared in another publication -- I think I wrote it about 10 years ago. I've made some updates and decided to republish here. I've omitted the original introductory texts that explained the differences between patents, copyrights and trade secret protection -- I think that's pretty well understood these days.]</i></div>
<div class="MsoNormal">
<br /></div>
<h3 style="text-align: left;">
Background</h3>
<div class="MsoNormal">
<div style="text-align: left;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBbnotXS6ASEryXXeeHhMqzDGJqCdxlCZ3wTbKqkkPMV4ogeanv36qnEoXjorWxdwscIYUIBD51or2PtyLe-D-Xe3VOV1MVHzH6bvz2arL90d5EfmY22FOlfp-PzXaeqW5f4Ul1Igqkc4/s1600/cute-pups-random-30754021-320-304.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="304" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBbnotXS6ASEryXXeeHhMqzDGJqCdxlCZ3wTbKqkkPMV4ogeanv36qnEoXjorWxdwscIYUIBD51or2PtyLe-D-Xe3VOV1MVHzH6bvz2arL90d5EfmY22FOlfp-PzXaeqW5f4Ul1Igqkc4/s320/cute-pups-random-30754021-320-304.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Puppies help when dealing with patents.</td></tr>
</tbody></table>
This post describes what I've learned during "patent reviews" -- times when I've been approached to advise on the likelihood that a system we're developing infringes on a specific patent, or to assist with a patent search to look for "potentially infringed" patents.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The monopoly power conferred by a patent, the embarrassingly low standards of novelty applied by the US Patent Office, and the enormous cost of defending litigation has made patents an extremely attractive business tactic to harass or shut down competitors. It used to be the case that I would advise development teams to undertake a patent search to assess the need to "invent around" potential patent complications. However this is no longer good advice: </div>
<div class="MsoNormal">
</div>
<ul style="text-align: left;">
<li>Many
patents in the field are maddeningly obvious. It soon becomes clear to anyone
researching a particular technology for applicable patents that far too many
software patents offer nothing more than an obvious, incremental adaptation of
well known software techniques or algorithms. <a href="http://news.ycombinator.com/item?id=4664243">The worst of them do not even do that</a>.</li>
<li>Software
patents are poorly written, at least from a technical perspective. It is difficult to understand the technical architecture that the patent is trying to
describe (in fact, I personally think this is a deliberate obfuscation strategy).</li>
<li>Patents
take effect from the date of filing – however they do not become public until
after the patent is granted. For example, <a href="http://www.google.com/patents/US5960411">US Patent 5,960,411</a> (Amazon’s infamous
“One-Click ordering” patent) was filed in September 1997, but was not made
public until two years later. This poses a problem because, at the time of an
architectural review, a designer cannot be confident that they have covered all
applicable patents. As the volume of patent applications increases the lag time between initial filing and final public notification is stretching to many years.</li>
</ul>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
So it's doubtful whether a patent search is an economically sensible choice. Consult your IP lawyers of course. What is more likely to happen now is a business owner becoming aware of an alleged or potential infringement and asking for a opinion on likely exposure. </div>
<div>
<br /></div>
<h3 style="text-align: left;">
Reviewing a Patent</h3>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://the-cute-animal-pictures.blogspot.com.au/2012/04/cute-puppies-pictures.html" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvQ7RMDdnaxQdRs1Sy9vvRf7l10QcOj5ua0shQgmKVVE83RRtOsnFWrS3dv6P6R38XnH-cBgm7GbDk4wmkK-MYhkRQRaLWf4NSXrc7n0cYJ8unqy8ZOLxnZdKH_EbKP4czLnuaIaCKOk/s320/cute-puppy-on-chair-picture.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Keep a puppy handy in case of stress</td></tr>
</tbody></table>
If you've been given a list of patents to review you will
need to quickly scan them for relevance. <b>Be careful here. </b>You are sorting the patents into two lists: </div>
<div class="MsoNormal">
</div>
<ol style="text-align: left;">
<li>The list of "obviously completely irrelevant patents that have no overlap with what we're doing."</li>
<li>Or the "pending review" list.</li>
</ol>
<div>
See what we did there? There is only "irrelevant / not infringed" and "considering". You will never, <b>never</b>, write that you think "we might be infringing this one." And you will also put the words "legal in confidence" on your emails. But your lawyer will tell you all this I'm sure. :)</div>
<br />
<div class="MsoNormal">
You'll notice that all patents have certain standard sections. Care must be taken
<b>not</b> to rely on either the patent title, nor the patent abstract. These can be misleading and are more or less irrelevant to a question of infringement. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
As an example,
<a href="http://en.wikipedia.org/wiki/1-Click">Amazon’s US patent 5,960,411</a> has as its title:</div>
<blockquote class="tr_bq">
Method and system for placing a purchase order via a
communications network</blockquote>
<div class="MsoNormal">
So yes, the title indicates a patent that potentially covers <i>every system of trade in the world</i>. From the point of view of clarity, the abstract is little better:</div>
<blockquote class="tr_bq">
A method and system for placing an order to purchase an item
via the Internet. The order is placed by a purchaser at a client system and
received by a server system. The server system receives purchaser information
including identification of the purchaser, payment information, and shipment
information from the client system. The server system then assigns a client
identifier to the client system and associates the assigned client identifier
with the received purhcaser information. The server system sends to the client
system the assigned client identifier and an HTML document identifying the item
and including an order button. The client system receives and stores the
assigned client identifier and receives and displayes the HTML document. In
response to the selection of the order button, the client system sends to the
server system a request to purchase the identified item. The server system
receives the request and combines the purchaser information associated with the
client identifier of the client system to generate an order to purchase the
item in accordance with the billing and shipment information whereby the
purchaser effects the ordering of the product by selection of the order button.</blockquote>
<div class="MsoNormal">
I still get headaches when I read that.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
What matters in a patent application is the section titled
<b>Claims</b>. The abstract and the title have little legal significance beyond
shedding light on the claims. <a href="http://www.google.com/patents/US5960411?printsec=claims#v=onepage&q&f=false">Note that in this case</a> (and many others), <b>neither
the title nor the abstract accurately capture the essential nature of
Amazon.com’s patent</b>: that the ordering process can be completed in <b>one step</b>
(hence “One-click ordering”). </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Bear in mind when reading a patent abstract that
it was not necessarily drafted by someone with any technical knowledge. Or, for that matter, actual writing skills.<br />
<br /></div>
<h3 style="text-align: left;">
Analysing the
Claims</h3>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://wallpapersallin.blogspot.com.au/2012/06/cute-puppies-wallpaper.html" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjymJ05jOLs3oYFUXo0D7eb_qvaALUrk-DS1aIfsowkzLTiDrixHDcqdUzdkFtx8GbH29gW2EdIBqWd-dnZ2pVR9slqP1xRsy7gyZtl1sZD-YCis9ncMtlLVoIAizbsH98WGf-5_A5GHLEu/s320/4-cute-puppies-wallpaper-640x480_large.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This is a Four-Puppy-Job</td></tr>
</tbody></table>
Having discarded the obviously irrelevant patents you will next need to work with the patent lawyer to analyse the remainder a little more closely. The outcome of your analysis will be either:</div>
<div class="MsoNormal">
</div>
<ol style="text-align: left;">
<li>The patent
is not relevant because your software system can be distinguished from what the
patent claims for its own. For example "our system always requires two clicks to purchase so this Amazon one-click patent isn't relevant."</li>
<li>The patent <b>might</b> be relevant, but some changes can be made to make your system obviously quite different (for example, by adding that second click).</li>
<li>The patent <b>might</b> be relevant. There's no easy way to make it clear that it's not. You might feel that the patent is so obvious that it should never have been granted in the first place. You'll probably be right. It won't matter though -- you'll ultimately decide what to do based on business tactics.</li>
</ol>
To arrive at the conclusions above you will be concentrating on the section titled Claims. The other sections (for example "Description") can
be important (primarily as an aid to a court in interpreting the claims) -- but focus primarily on the claims.<br />
<br />
<div class="MsoNormal">
The claims usually take the form of one or more "base" claims
which cover the inventive steps. These are then supplemented by zero or more
additional claims, which "inherit" from the base claim and then aim to extend and target the claims. Usually, the addition is an application of the base claim using certain
specified technologies.<br />
<br /></div>
<div class="MsoNormal">
The <a href="http://www.google.com/patents/US5960411#patent_claims_anchor">Amazon patent used earlier is a good example</a>:</div>
<div class="MsoNormal">
<blockquote class="tr_bq">
<ol style="text-align: left;">
<li>A method of
placing an order for an item comprising:
<ul>
<li>under control of a client system</li>
<li>displaying information identifying the item; and</li>
<li>in response to only a single action being performed, sending
a request to order the item along with an identifier of a purchaser of the item
to a server system;</li>
<li>under control of a single-action ordering component of the
server system;</li>
<li>receiving the request;</li>
<li>retrieving additional information previously stored for the
purchaser identified by the identifier in the received request; and</li>
<li>generating an order to purchase the requested item for the
purchaser identified by the identifier in the received request using the
retrieved additional information; and</li>
<li>fulfilling the generated order to complete purchase of the
item</li>
<li>whereby the item is ordered without using a shopping cart
ordering model.</li>
</ul>
</li>
<li>The method
of claim 1 wherein displaying of information includes displaying information
indicating the single action.</li>
<li>The method
of claim 1 wherein the single action is clicking a button.</li>
</ol>
[etc...]
</blockquote>
</div>
<div class="MsoNormal">
Claims 4 –5 are also a “method of claim 1”. Claim 6 is a
base claim that attempts to restate claim 1 in a wider, more generic manner and
incorporates a “shopping cart ordering component.” Claims 9 and 11 are also
base claims, with claims 12 to 26 being derivative of claim 11 – the widest,
and most generic claim. (Note: After being granted in September 1999 there was <a href="http://en.wikipedia.org/wiki/1-Click#Patent">a period of over 10 years</a> during which the patent was challenged and re-examined.)<br />
<br /></div>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://xitefun.com/birds-animals/cute-puppies-and-kittens-t1284.html" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://xitefun.com/users/2011/04/3599,xitefun-so-cute-puppies-and-kittens06.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">For the treatment of extra-patent stress, add one kitty.</td></tr>
</tbody></table>
This is typical of most patent applications. If a
court rules, for example, that claim 11 contains no inventive step, then claims
1, 6 or 9 (or their derivatives) may still be used to pursue an infringer. The
patent application will go for an intellectual property “land grab”,
attempting to have as wide and as generic an application as possible, to make
it more difficult to invent around the patent or distinguish any of the claims.<br />
<br /></div>
<div class="MsoNormal">
The language itself will also
be a barrier to understanding. The Amazon patent example I'm using is comparatively lucid. Others appear to be deliberately designed to be impossible to understand.</div>
<div class="MsoNormal">
<br />
When conducting your analysis you will naturally focus on
the base claims, since if you can distinguish your invention from each of these
then the other, derivative claims will be automatically disqualified. It’s also
common for each of the base claims to have some common element – get around the
common element and you can get around the entire patent.<br />
<br /></div>
<div class="MsoNormal">
In the example used in this tutorial, Amazon.com’s common
element is to respond to an order with only a single action being performed. This is the
inventive step repeated in claims 6, 9 and 11. Putting to one side the argument
about wether or not this is actually inventive you can see that by simply
adding a second required action you can distinguish (that is, invent around)
the patent. This is exactly what <a href="http://en.wikipedia.org/wiki/1-Click#Barnes_.26_Noble">Barnes and Noble did</a> when they were sued by
Amazon.com in 1999. <br />
<br /></div>
<div class="MsoNormal">
<h3 style="text-align: left;">
Conclusion</h3>
</div>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.omgsocute.com/2009/03/01/sorry-puppy-eyes/" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="303" src="http://www.omgsocute.com/wp-content/uploads/2009/03/3298_00030262-copy.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I'm sorry for that past advice.</td></tr>
</tbody></table>
The original version of this essay concluded thus:<br />
<blockquote class="tr_bq">
Irrespective of the debate over the legal merits of software
patents, they are a reality that must be dealt with in the design and
construction of any software system. This is particularly true in e-commerce, a
highly valued area where competitors seek to raise the barriers to entry
through prolific patenting.</blockquote>
</div>
<div class="MsoNormal">
<blockquote class="tr_bq">
A patent search should be conducted early in the design
phases, and conducted a second time prior to launch to catch any additional
patents and to double check architectural decisions. For the patent analysis to
be conducted properly, it is important that it is conducted by a patent lawyer
or intellectual property specialist.</blockquote>
</div>
<div class="MsoNormal">
I have to say now that this is rubbish. The volume of patents, the excessive lag between filing dates and public disclosure, and the uninspiring performance of patent examiners the world over have simply made this approach uneconomical. <br />
<br />
In the meantime, if you're ever asked to provide an opinion on a patent, cut to the chase and look at the claims. Focus on the root claims first to find the cheapest argument out of there. If actual cease-and-desist letters are being sent though, call in the lawyers.<br />
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-10641089238257041952012-12-23T23:49:00.001+11:002012-12-23T23:53:15.528+11:00A Brief History of Trademarks<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Of all the regulatory systems that get lumbered with the umbrella of “intellectual property”, <a href="http://en.wikipedia.org/wiki/Trademarks">Trademarks</a> is the one with the oldest history.<br />
<br />
Popular accounts date trademarks back to the <a href="http://en.wikipedia.org/wiki/Lascaux">troglodytes</a>. Troglodytes <a href="http://www.infoplease.com/spot/trademarks1.html">loved their trademarks</a> apparently. Cave paintings demonstrate the importance of leaving one’s mark on things, in much the same way as Coca-Cola likes to leave its mark on bottles of fizzy sugar water.<br />
<br />
You can probably tell that I’m a bit skeptical.<br />
<br />
Personally, I think the cave paintings show a deeper need. An expression of identity, a questioning of “who am I?” An attempt to leave a mark upon the Earth to say “I was here” that will last longer than the <a href="http://en.wikipedia.org/wiki/Impermanence">brief flash of life</a> would otherwise have us stay.<br />
<br />
Other authors see a desire to establish a brand presence. Well oh-kay…<br />
<br />
Trademark history is also lacking a character. <a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html">Copyright has its characters</a>, as does <a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html">Patent Law</a>. However trademark history seems to lack anyone of any real character or interest.<br />
<br />
Well, except perhaps Thomas Jefferson.<br />
<br />
<h3 style="text-align: left;">
Pre-Jefferson Trademarks</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Trademark#History" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Bass_logo.svg/200px-Bass_logo.svg.png" width="165" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Bass Brewery's logo 1875</td></tr>
</tbody></table>
<div>
Trademarks are old (I just don't think they're <a href="http://en.wikipedia.org/wiki/Paleolithic">Palaeolithic</a> old). Evidence of their use exists in both medieval Europe and Ancient Rome<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-trademarks.html#more">[1]</a>. The first registered UK trademark is that of the Bass Brewery, a simple red triangle registered in 1876. The first US registered mark was for <a href="http://www.samsonrope.com/">Samson Rope</a> in 1884. The logo is still used today.</div>
<div>
<br /></div>
<div>
Earlier examples also exist, for example in <a href="http://www.clickandcopyright.com/blog/a-brief-history-of-trademarks/">Ancient Egypt & China</a>. The marks are generally taken to be an indication of origin, to both take credit for the quality of the work but also perhaps to indicate who to blame if there was a defect.</div>
<div>
<br /></div>
<div>
<a href="http://www.faculty.uci.edu/profile.cfm?faculty_id=4750">Gary Richardson</a> has argued that subtler systems of product differentiation may have served a larger purpose than simply indicating the origin of the product. To quote the abstract from the relevant paper:</div>
<blockquote class="tr_bq">
"In medieval Europe, manufacturers sold durable goods to anonymous consumers in distant markets [...] by making products with <b>conspicuous characteristics</b>. Examples of these unique, observable traits included cloth of distinctive colors, fabric with unmistakable weaves, and pewter that resonated at a particular pitch. These attributes <b>identified merchandise</b> because consumers could observe them readily, but counterfeiters could copy them only at great cost, if at all. Conspicuous characteristics fulfilled many of the functions that patents, trademarks, and brand names do today. The <b>words that referred to products with conspicuous characteristics served as brand names</b> in the Middle Ages." <i>[See <a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-trademarks.html#more">[1]</a>, below. Emphasis added.]</i></blockquote>
Trademark law really got cracking however after the industrial revolution (and that's turning out to be an interesting inflection point in the history of IP but I digress...). And that's where Thomas Jefferson comes in.<br />
<br />
<h3 style="text-align: left;">
Thomas Jefferson</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Thomas_Jefferson" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1e/Thomas_Jefferson_by_Rembrandt_Peale,_1800.jpg/201px-Thomas_Jefferson_by_Rembrandt_Peale,_1800.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Thomas Jefferson.</td></tr>
</tbody></table>
In 1791, a group of Boston sailcloth makers petitioned Congress to be allowed to register their marks. <a href="http://inventors.about.com/library/inventors/blkidprimer6_12finger.htm">The matter was referred to Thomas Jefferson</a><a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-trademarks.html#more">[2]</a>, then Secretary of State, who decided:<br />
<blockquote class="tr_bq">
That it would, in his opinion, contribute to fidelity in the execution of manufacturing, to secure every manufactory, an exclusive right to some mark on its ware, proper to itself.</blockquote>
<blockquote class="tr_bq">
That it will, therefore, be reasonable for the general government to provide in this behalf by law for those cases of manufacture generally, and those only which relate to commerce with foreign nations, and among the several States, and with Indian tribes.</blockquote>
The sailcloth makers were concerned that they would be undercut by makers of inferior quality sails, who would misuse the Boston marks to mislead customers. Customers would buy the cheaper sailcloths and develop a poor view of the Boston makers whose marks had been used on them.<br />
<br />
Until the government legislated for the exclusive use of registered marks, the most common remedy from the law would have been to sue for damages. This however was probably ineffective -- counterfeiters continued at will. A letter printed in the Columbian Sentinel was fulsome in its praise of Jefferson's decision:<br />
<blockquote class="tr_bq">
[I]t is of the greatest importance to the rising prosperity...[and greatness] of this country, that the manufacturer should be secured in the benefit and profit of his ingenuity, labour and industry, being an incitement...to carry on, persevere in, and bring to the greatest possible perfection the various goods and articles [they make].</blockquote>
<blockquote class="tr_bq">
There is no greater check to this laudable spirit of enterprise...than that of impostors fraudulently counterfeiting of marks...and selling bad and spurious articles for good, real, and genuine [goods]. It effectively cools the ambition of selling...and is highly prejudicial to the good repute of our manufacturers in foreign parts, [lessening our countries commerce].<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-trademarks.html#more">[4]</a></blockquote>
TJ took a much more positive position towards trademark protection than he did for <a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html">copyright</a> or <a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html">patents</a>. The restrictions on liberties that were threatened by those systems were still there -- however this time there were no serious arguments that such liberties had to be guarded. For <i>copyright and patents</i>, the argument was that the restraint on trade was outweighed by the need for limited monopolies in order to create incentives to work. <b>For trademarks, no such trade-off exists</b>. That's because trademarks were seen <b>as incentives for everyone</b> to work. There was nothing to stop honest manufacturers creating their own marks and practicing the same trade. The only prohibition was that they could not represent their goods as originating from somewhere else.<br />
<br />
<h3 style="text-align: left;">
Justification for Trademarks</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.flickr.com/photos/hissohathair/" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://farm9.staticflickr.com/8501/8299752778_c0c2832a95.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
So a system of registered trademarks was good because:<br />
<br />
<ul style="text-align: left;">
<li>It encouraged pride in workmanship, since it linked manufactured goods with a manufacturer's reputation.</li>
<li>It protected the national economy from having the reputation of its industry undermined by poorly made knock-offs.</li>
<li>It protected the public consumers from being deceived by counterfeiters. </li>
</ul>
<div>
Recall that, in the development of patent law, the right and ability to work was part of God's Law. Therefore, patents had to be limited so as to not interfere with the will of God. Trademarks also supported this concept of God's Law, since protecting ones reputation (and isn't reputation everything?) was critical to safeguard the right and ability to work. Trademarks were not seen as potentially unjust encroachments on liberty... not even by the likes of TJ himself.</div>
<br />
<br />
<div>
These developments in trademark law were post the industrial revolution. The arguments justifying the changes were entirely instrumentalist and economic in nature. No metaphor used at all.<br />
<br />
Finally, I think I might wrap up <a href="http://blog.hissohathair.com/search/label/metaphor">this series</a> with a quick look at Designs, Plant Breeder Rights and other <i>sui generis</i> protection systems.</div>
<br />
<br />
<br />
<a name='more'></a><br />
<br />
Footnotes:<br />
<br />
<ol style="text-align: left;">
<li>See Richardson G, <a href="http://www.nber.org/papers/w13930">Brand Names Before the Industrial Revolution</a>, NBER Working Paper No. 13930 (downloaded 18 Dec 2012).</li>
<li><a href="http://inventors.about.com/library/inventors/blkidprimer6_12finger.htm">Trademarks : Fingerprints of Commerce</a>, About.com (downloaded 22 Dec 2012).</li>
<li>Johnson D, <a href="http://www.infoplease.com/spot/trademarks1.html">Trademarks: A history of a billion-dollar business</a>, InfoPlease (downloaded 22 Dec 2012)</li>
<li>Schechter F, <a href="http://books.google.com.au/books/about/The_Historical_Foundations_of_the_Law_Re.html?id=5S8v535AwSoC&redir_esc=y">The Historical Foundations of the Law Relating to Trade-Marks</a>, 1925.</li>
</ol>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-27486262577759160962012-12-12T02:44:00.000+11:002012-12-12T02:47:08.702+11:00It's Beginning to Look a Lot Like Christmas...<div dir="ltr" style="text-align: left;" trbidi="on">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Paget%E2%80%93Schroetter_disease" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Image of subclavian and axillary veins in arm" border="0" height="256" src="http://upload.wikimedia.org/wikipedia/commons/e/e9/Gray576.png" title="Veins involved in Paget-Schroetter Disease" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Veins of the Upper Arm</td></tr>
</tbody></table>
Yes, it's that time of year when I like to go into hospital and <a href="http://www.youtube.com/watch?v=EIzjBcI2CUU">have a rib removed</a>.<br />
<br />
For the curious:<br />
<br />
<ul style="text-align: left;">
<li><a href="http://en.wikipedia.org/wiki/Paget%E2%80%93Schroetter_disease">Paget-Schroetter Disease</a> is when a blood clot (thrombus) forms in the arm due to the first rib and clavicle and the muscles in the area squeezing the vein that runs out of the arm and causing it to "kink" (a bit like a hose). This causes the blood flow to slow which leads to a clot forming, which causes the blood flow to slow...</li>
<li>The rib-clavicle-muscle issue is known as <a href="http://morphopedics.wikidot.com/thoracic-outlet-syndrome">Thoracic Outlet Syndrome</a> (TOS) and is a compression of the outlet pathway between the arm and chest. There are multiple causes for this. Mine is the "poorly designed rib & clavicle" kind.</li>
<li><a href="http://www.hanson.net/">Isaac Hanson</a> had a pulmonary embolism as a result of TOS. </li>
</ul>
<div>
When it first happened to me in October 2010 I was in ICU for 10 days while the clot was disolved using thrombolytics. It's not so much the clot that's dangerous at that stage as the drugs used to treat it. You're in ICU so that they can monitor it. After a stent was inserted in the subclavian vein (veins have a "shape memory") I had my first rib "resected" -- cut up into little pieces and removed. The TV series RPA featured the procedure (by the same surgeon treating me) in that <a href="http://www.throng.com.au/2010/09/rpa-s10e15/">aired in September 2010</a> (a few weeks before I presented at RPA with the same problem). <a href="http://catchup.ninemsn.com.au/rpa/16/8084958/episode-15">Watch it, it's fascinating</a>. :)</div>
</div>
Unknownnoreply@blogger.com0RPA Hospital Gloucester House, Missenden Rd, Camperdown NSW 2050, Australia-33.890011 151.183725-33.903192000000004 151.163984 -33.87683 151.20346600000002tag:blogger.com,1999:blog-1811416185910478273.post-16860648242176496182012-12-10T00:20:00.002+11:002012-12-24T00:10:20.373+11:00A Brief History of Patents<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
You have to feel a little sad for Filippo. He was an amazing <a href="http://en.wikipedia.org/wiki/Perspective_(graphical)#Renaissance_:_Mathematical_basis">artistic</a>, <a href="http://en.wikipedia.org/wiki/Filippo_Brunelleschi#Santa_Maria_del_Fiore:_The_Florence_Cathedral">engineering</a> and <a href="http://en.wikipedia.org/wiki/Filippo_Brunelleschi#As_an_architect">architectural</a> genius. He was revered in his own lifetime. He had convinced his government that he had an amazing and revolutionary invention that needed an extraordinary protection if he were to go ahead and build it...</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
But mere hours after its launch his creation, his pride, and a sizeable part of his fortune lay at the bottom of the Arno river.</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
Brunelleschi</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Filippo_Brunelleschi" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Portrait of Filippo Brunelleschi" border="0" height="320" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Masaccio,_cappella_brancacci,_san_pietro_in_cattedra._ritratto_di_filippo_brunelleschi.jpg/340px-Masaccio,_cappella_brancacci,_san_pietro_in_cattedra._ritratto_di_filippo_brunelleschi.jpg" title="Filippo Brunelleschi" width="226" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dude</td></tr>
</tbody></table>
<div style="text-align: left;">
<a href="http://en.wikipedia.org/wiki/Filippo_Brunelleschi">Filippo Brunelleschi</a> was a dude. I think he'd be quite popular today. He was a talented and gifted architect, artist, and engineer. He was commissioned to build the dome for the incomplete <a href="http://www.duomofirenze.it/index-eng.htm">Santa Maria del Fiore</a>, the Florentine cathedral, after he won a competition which involved standing an egg on its end on top of a piece of marble.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
He won the competition by flattening one end of the egg by breaking it slightly. It sat quite easily after that. When the other competitors complained that they could have done the same thing, he reportedly laughed that if they could have done that then they would have built the dome already.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
See? <a href="http://www.youtube.com/watch?v=cd-go0oBF4Y">Dude</a>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
To complete the dome Filippo had to invent new hoist systems to lift marble blocks to the height required. He also had to rediscover how to build domes that large, since no-one had been able to do so since the Romans. Finally, he had to ship a mind-boggling shitload<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[1]</a> of marble into Florence.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
To do this, he invented a new kind of ship: <a href="http://www.cpaglobal.com/newlegalreview/widgets/notes_quotes/more/2002/brunelleschis_monster_patent_il_badalone">Il Badalone</a> (The Monster). Frankly just naming the thing ought to have cemented his reputation as a marketing genius as well. However, Filippo was concerned that others would simply copy his ideas, so before building it he petitioned the State of Florence for a three year monopoly on the concept, after which he would build the ship and hoists and so reveal his secrets.<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[2]</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Filippo was so influential that he didn't even need to reveal the design beforehand. The authorities trusted that he was onto a winner -- after all, he had form. The <a href="http://www.cpaglobal.com/newlegalreview/widgets/notes_quotes/more/2002/brunelleschis_monster_patent_il_badalone">document is extraordinary</a> by modern standards. It basically freezes the state of the art of ship building for three years, saying that only Filippo Brunelleschi may sail ships of a new design. Anyone else sailing any kind of ship on any kind of water that was not already in existence before Filippo's design would have their vessel burned. Only Filippo himself could design, build and sail new types of craft.<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[3]</a></div>
<div style="text-align: left;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://stories-in-stone.blogspot.com.au/2008/11/sea-going-monster.html" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Drawing of ship suspected to be Il Badalone" border="0" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMm2bUujhIhsKHqPtz2_zNBxC3061WSQilMi4Dw94gsrHS2j-g0XqCT-m5BBNEdgAHCjM9vnLk7iqfj1LX8rRPmh3V_v6l00RLPU2WB50JLLo0Sw_oGSNhdTA68pwXI3TSHvrpZzI9ns8/s200/patent+boat.jpg" title=""The Monster"" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Il Badalone</td></tr>
</tbody></table>
<div style="text-align: left;">
When the ship finally set off on its maiden voyage in 1428 <a href="http://stories-in-stone.blogspot.com.au/2008/11/sea-going-monster.html">it sank</a>, taking 50 tonnes of marble to the bottom of the Arpo river. It had sailed only 40 kms.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
From everyone's perspective, this was surely not a great bargain. The state imposed a monopoly cost on its citizens, in exchange for which, it gained knowledge on how to build a vessel that could sink very efficiently. It won't be the last time however that the patent <i>quid pro quo </i>turns out to be a lousy deal.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
The monopoly on new ship designs granted by Florence was an informal exercise of the state's <a href="http://en.wiktionary.org/wiki/prerogative#Noun">prerogative</a>. The Republic of Venice <a href="http://www.wired.com/science/discoveries/news/2008/03/dayintech_0319">codified the principles</a> under which such monopolies would be granted in 1474. This time, it was expected that inventors would reveal their inventions once perfected, and then enjoy monopoly rights over it for ten years.<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[4]</a><br />
<br />
Meanwhile, in England...</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
The Royal Prerogative to Do as Thou Will</h3>
<div style="text-align: left;">
A prerogative is a special right or privilege. The word seems a little out of place when talking about monarchies (after all, isn't that what monarchies are all about? I mean, is there another <i>kind </i>of royal privilege?). Nevertheless, the history of democracy is basically about the gradual restrictions imposed by parliaments on <a href="http://en.wikipedia.org/wiki/Royal_Prerogative">Royal Prerogative</a>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Typically the granting of this right was done in writing, by way of a royal letter. The letter was addressed to all the subjects of the realm and was therefore an open letter. "Patent" (as most med-students or people with stents<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[5]</a> would know) means "open". Hence there were "letters patent" -- an open letter to the public at large that granted a special right or privilege to another.</div>
<div style="text-align: left;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/James_I_of_England" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Portrait of King James the first" border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/72/James_I_of_England_by_Daniel_Mytens.jpg/166px-James_I_of_England_by_Daniel_Mytens.jpg" title="King James I of England" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">King James I</td></tr>
</tbody></table>
<div style="text-align: left;">
In mediaeval England, the monarch could grant citizens a monopoly over pretty much anything. Monopolies tend to be enormously profitable and so were very helpful in raising taxes while deflecting blame. For example, <a href="http://en.wikipedia.org/wiki/James_I_of_England">James I</a> granted exclusive rights to "export calfskins; ...import cod and ling; [and] make farthing tokens of copper."<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[6]</a> The monopoly holder could charge very high prices because of the monopoly, but would also be expected to pay a large tax on the revenue. Even commodities like salt were restricted in this way for a time. The monopolist got the blame -- the crown got the revenue.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Prerogative based monopolies were very powerful. Royal prerogative is subject to both the Magna Carta and the common law courts. The courts eventually got their chance to set out the requirements for a valid monopoly in <a href="http://oll.libertyfund.org/?option=com_staticxt&staticfile=show.php%3Ftitle=911&chapter=106358&layout=html&Itemid=27">the Case of the Monopolies</a>.</div>
<div style="text-align: left;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Elizabeth_I_of_England" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Portrait of Queen Elizabeth the first" border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Darnley_stage_3.jpg/164px-Darnley_stage_3.jpg" title="Queen Elizabeth I of England" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Queen Elizabeth I</td></tr>
</tbody></table>
<div style="text-align: left;">
<a href="http://en.wikipedia.org/wiki/Elizabeth_I_of_England">Queen Elizabeth I</a> had granted an exclusive license to make and sell playing cards to one Edward Darcy. The case suggests this was out of concern that the lower classes ("servants and apprentices and poor Artificers") were spending too much time playing cards and not enough time learning a trade. A monopoly on printing and distributing playing cards was issued to one Ralph Bowes for twelve years, after which it was then granted to Darcy. The grant allowed Bowes and Darcy to restrict the distribution of cards, and also involved the payment of fees to the Crown.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Thomas Allen must not have seen the memo. He was <a href="http://oll.libertyfund.org/?option=com_staticxt&staticfile=show.php%3Ftitle=911&chapter=106358&layout=html&Itemid=27">sued by Darcy</a> for selling playing cards without his permission<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[7]</a>. Ultimately Allen prevailed -- the Queen's Bench found that Darcy's monopoly was invalid. It was not a proper exercise of the royal prerogative, because:</div>
<ul style="text-align: left;">
<li>Every citizen had <b>a right to a lawful trade</b>. A monopoly restricted this right, and was therefore not in the interests of the commonwealth. The prerogative right to issue <b>monopolies could not be used if it harmed the citizens</b>. But of course that's exactly what a monopoly does: it raises prices; restricts livelihoods; and impoverishes people who were trading prior to the monopoly existing.</li>
<li>It was argued that it was part of God's Law that men must labour to support their families. Therefore to restrict this ability was to go against God. This was consistent with Church teaching "which had condemned monopolies in the strongest possible terms."<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[8]</a> A <b>monarch could not use the royal prerogative to injure their subjects</b>, for they themselves must obey God.</li>
</ul>
<div style="text-align: left;">
There was one exception allowed for by Allen's counsel. If a person invented something new, or was offering to bring foreign inventions to England and to teach their proper use to others, then a monopoly right could be lawfully given. This was because the whole realm benefited from new trades and technologies. There was a corollary: once learned, a monarch could not renew the monopoly, because the benefit was no longer available (since the knowledge was now available to everyone).</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
The abuses of prerogative was one of the focal points of the struggle between the crown and parliament. This particular battle was finally resolved by the <a href="http://en.wikipedia.org/wiki/Statute_of_Monopolies">Statute of Monopolies</a> in 1624.</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
Statute of Monopolies</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-left: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/3/33/Edward_coke.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://upload.wikimedia.org/wikipedia/commons/3/33/Edward_coke.jpg" width="155" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sir Edward Coke</td></tr>
</tbody></table>
<div style="text-align: left;">
The arguments against the establishment of prerogative monopolies, including the exception for inventions, was codified in 1624 in the <a href="http://www.legislation.gov.uk/aep/Ja1/21/3">Statute of Monopolies</a>. The statute first revoked all monopoly privileges then in existence, since they were not in the public interest. Only one exception was allowed: patents for inventions for new methods of manufacture. However even these had an expiry date, being 14 years after issue.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Parliament rejected a "<a href="http://en.wikipedia.org/wiki/Natural_law">natural law</a>" justification. These patents for inventions were justified purely on economic incentives. Even in America and France, where there was no history of royal abuses of the privilege system, the justifications for monopolies on inventions was based on instrumentalist arguments and economic incentives. This was despite the fact that in both countries, the concept of natural rights, liberties whose <a href="http://en.wikipedia.org/wiki/United_States_Declaration_of_Independence">existence where held to be self-evident</a>, had no such restrictions.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
The statute was quite short and broad -- it was up to the courts to interpret its application. Sir Edward Coke, writing in the <a href="http://en.wikipedia.org/wiki/Institutes_of_the_Lawes_of_England">Institutes of the Lawes of England</a>, summarised the requirements for a valid patent:</div>
<blockquote class="tr_bq" style="text-align: left;">
[N]ew manufacture must have seven properties. First, it must be for twenty-one years or under. Secondly, it must be granted to the first and true inventor. Thirdly, it must be of such manufactures, which any other at the making of such letters patent did not use ... Fourthly, the privilege must not be contrary to law ... Fifthly, nor mischievous to the state, by raising the prices of commodities at home. In every such new manufacture that deserves a privilege, there must be urgens necessitas et evidens utilitas. Sixthly, nor to the hurt of trade ... Seventhly, nor generally inconvenient.</blockquote>
<div style="text-align: left;">
In modern terms, we might say that a valid patent:</div>
<ol style="text-align: left;">
<li>Is a <b>temporary privilege</b>, never a perpetual right.</li>
<li>Must be granted to the <b>first</b> inventor.</li>
<li>Must be <b>new</b>, and not cover the existing state of the art.</li>
<li>Must <b>not</b> be for an invention that would be otherwise <b>against the law</b>.</li>
<li><b>Nor</b> can it be something that <b>harms the state</b> (for example, by raising the prices of commodities).</li>
<li>The invention must be for something <b>useful</b> or the patent <b>urgent and necessary</b>.</li>
<li>The patent must <b>not</b> be generally <b>inconvenient</b>.</li>
</ol>
<br />
<ol style="text-align: left;">
</ol>
<h3 style="text-align: left;">
Modern Patent Justifications</h3>
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://en.wikipedia.org/wiki/Software_patent" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="Graph showing steady increase in software patents from 1985 to 2000" border="0" height="253" src="http://upload.wikimedia.org/wikipedia/commons/5/57/Software_patents2.JPG" title="US Patents on Computer Implemented Inventions" width="320" /></a></div>
The fact that the formula for a valid patent has <a href="http://en.wikipedia.org/wiki/Statute_of_Monopolies#Significance">remained virtually unchanged for almost 400 years</a> is interesting in itself. There does seem to have been a subtle shift though in the arguments for the existence of patents. Whereas the early English cases speak of increasing the "knowledge capital" for the public good, modern justifications emphasise the need to ensure adequate returns on investments in research and development. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Also in the early history of patents, the use of <i>physical</i> property as a metaphor to guide the law does not exist. The issuing of a patent is given in almost reluctant terms: that the state would really rather not issue these temporary monopolies, but will grudgingly do so to improve the knowledge of the nation. To do this, inventors may be granted temporary monopolies, as long as they disclose an invention that is new, useful, and does no harm.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Does that sound like the system we have today?</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
A thought occurred to me while reading Drahos and writing this post: that metaphor is powerful <b>precisely</b> because it constrains. It creates a <b>framework which contains</b> the subject being described. If the language of IP was still about privileges to promote the creation and sharing of new knowledge for the public benefit, would patent maximilists have been as successful in expanding and extending patent law?<a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html#more">[9]</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I've spent too long on this post already! The next thing to look at will be <a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-trademarks.html">trademarks</a>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<a name='more'></a><div style="text-align: left;">
<br />
<h4 style="text-align: left;">
Notes</h4>
</div>
<div style="text-align: left;">
Acknowledgement: My research for this post relied heavily on <a href="http://www.anu.edu.au/fellows/pdrahos/">Prof Peter Drahos</a> writing in <i><a href="http://www.anu.edu.au/fellows/pdrahos/books/1996philosophyIP.pdf" target="_blank">A Philosophy of Intellectual Property</a></i> (1996).</div>
<ol style="text-align: left;"></ol>
<div style="text-align: left;">
Footnotes:</div>
<ol style="text-align: left;">
<li>In metric terms, that's <a href="http://en.wikipedia.org/wiki/Filippo_Brunelleschi#Santa_Maria_del_Fiore:_The_Florence_Cathedral">4 million marble blocks</a>. </li>
<li><a href="http://www.cpaglobal.com/newlegalreview/widgets/notes_quotes/more/2002/brunelleschis_monster_patent_il_badalone">Brunelleschi's Monster Patent: Il Badalone</a>, New Legal Review, Linked 1 December 2012.</li>
<li>For a modern equivalent, we'd have to imagine Pfizer being granted the exclusive right to research and produce blood pressure medication, or Apple being allowed to be the sole producer of tablets for three years. More than that, the patent owners would not have to reveal a word of what they were working on.</li>
<li>See also Erik J Heel's <a href="http://www.erikjheels.com/2627.html">Men Of Great Genius: Venetian Senate, Patent Act of 1474</a>.</li>
<li>Yes, <a href="http://blog.hissohathair.com/2012/12/its-beginning-to-look-lot-like-christmas.html">that would be me</a>.</li>
<li>WS Holdsworth, 'The Commons Debates 1621', 52 <i>Law Quarterly Review, </i>481, 487 (1936), quoted in P Drahos, 'A Philosophy of Intellectual Property', 1996, p 29.</li>
<li>At one level the whole case is utterly banal. I mean, <i>playing cards</i>? <i><b>This</b></i> is the thing that will shape the evolution of patent law for over 400 years? But this is actually not all that uncommon in common law countries -- that the highest ideals aren't discussed until enough stars align that a case reaches the highest courts. And so it was that the basic principles of patent law in England were decided in a case about cards.</li>
<li>Briefly, because they interfered with just prices being set; were speculative and therefore usury; ones that related to food created artificial scarcity which was not in public interest. See Drahos, <i>Ibid</i>.</li>
<li><div>
Because maybe what we have today is a property-based justification. And property is generally acquired, accrued and hoarded. It also has the unfortunate property of depreciating in value almost as soon as it is acquired. Which motivates the acquisition of more property.</div>
<div>
</div>
</li>
</ol>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-67109848797803163032012-11-21T09:00:00.000+11:002012-11-21T09:00:04.661+11:00The Top 5 Things You Will Forget to do This Morning<div dir="ltr" style="text-align: left;" trbidi="on">
<ol style="text-align: left;">
<li>You will forget that you promised yourself you'd do <b>real work</b> this morning <b>before</b> checking your dozens of inboxes.</li>
<li>You will forget <i>that thing</i> that you needed to do... you know... the one... with the thing. For the colleague with the other thing. Remember? Ah, dagnabbit.</li>
<li>(I'm hoping) you'll forget to unsubscribe or unfollow moi. </li>
<li>You will forget to stop being sucked in by posts that start "Top [number] <i>somethings</i>." It's clichéd link-bait.</li>
<li>You will forget the fifth thing. </li>
</ol>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-90041849919483292562012-11-17T17:21:00.000+11:002012-12-10T00:44:19.074+11:00A Brief History of Copyright<div dir="ltr" style="text-align: left;" trbidi="on">
It feels like it's becoming <a href="http://marilynmanson.com/" target="_blank">impossible to shock anyone</a> any more, although <a href="http://www.dailymail.co.uk/news/article-2172277/Daniel-Tosh-tells-female-heckler-funny-bunch-guys-just-raped-her.html" target="_blank">not from lack of trying</a>. Even the Catholic Church is slow to let loose its wrath and fury. But in 1517, a single, scholarly monk managed to do exactly that, setting off a chain of events that plunged Europe into war for over a hundred years.<br />
<br />
It was a lesson in the power of networks, and it was the origin of copyright.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Martin_Luther_by_Cranach-restoration.tif/lossy-page1-223px-Martin_Luther_by_Cranach-restoration.tif.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Martin_Luther_by_Cranach-restoration.tif/lossy-page1-223px-Martin_Luther_by_Cranach-restoration.tif.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Martin Luther</td></tr>
</tbody></table>
Martin Luther, a German monk, wrote a document titled “<a href="http://en.wikipedia.org/wiki/The_Ninety-Five_Theses">Ninety-Five Theses on the Power and Efficacy of Indulgences</a>.” It was a scholarly critique of certain Roman Catholic Church's practices at the time. In particular, it attacked the corrupted practice of <a href="http://en.wikipedia.org/wiki/Indulgences">indulgences</a>, where "<a href="http://en.wikipedia.org/wiki/Indulgence#Abuses">pardoners</a>" had started to aggressively market and sell salvation from Hell in exchange for money<a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html#more">[1]</a>.<br />
<br />
There was something else Martin Luther did in that document. He appeared to question the pope's authority. He asked why the pope needed to raise money from the poor when he had so much already. He actually questioned the legitimacy of papal policy.<br />
<br />
Naturally, <a href="http://en.wikipedia.org/wiki/Protestant_Reformation">all hell broke loose</a>.<br />
<br />
There was an <a href="http://en.wikipedia.org/wiki/Protestant_Reformation">historical context</a> of course. A match that small doesn't set off a fire storm without a lot of tinder and fuel lying about. There was also an accelerant, a change in the environment that meant subversive ideas could spread, rally support, and threaten states. That change had two parts: an increasingly literate peasantry and the printing press. <br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Johannes_Gutenberg.jpg/194px-Johannes_Gutenberg.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Johannes_Gutenberg.jpg/194px-Johannes_Gutenberg.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Johannes Gutenberg</td></tr>
</tbody></table>
Johannes Gutenberg had invented a system of "moveable type" printing in 1439. Together with other inventions of his own, he created a practical system for the mass production of books, at marginal costs for publisher and reader alike. By the end of the 15th century, his printing press had spread throughout almost all of Europe.<br />
<br />
Luther's 95 Theses was the match. When his friends translated it into German and began printing copies, the match was lit and dropped on the dried-out frustrations, alliances, and accumulated discontent from hundreds of years. The ruling elites noticed that they too were standing on mountains of tinder and sawdust. Knowledge and ideas were no longer tools of the well-off: a literate, affluent peasantry were discussing new ideas amongst themselves.<br />
<br />
Clearly, something needed to be done.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Maria_Tudor1.jpg/181px-Maria_Tudor1.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Maria_Tudor1.jpg/181px-Maria_Tudor1.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Queen Mary, aka "Bloody Mary"</td></tr>
</tbody></table>
Forty years later, <a href="http://en.wikipedia.org/wiki/Mary_I_of_England">Queen Mary I</a> was trying to restore Catholicism to a briefly Protestant England. The "menace" of the printing press and its use in fermenting opposition and revolt had already been well noted in many ruling courts. What a happy coincidence it was then, when the Stationers' Company, a guild of printers, approached the Royal Crown with a brilliant idea to control the copying and reproduction of documents. <br />
<br />
The idea was copyright.<br />
<br />
In 1557, Queen "Bloody" Mary issued a Royal Charter to the <a href="http://en.wikipedia.org/wiki/Stationers%27_Company">Stationers' Company</a>. In return for a monopoly on book production, Stationers were empowered to seize books that
violated the standards set down by the Church and State, and guild members would not print books that were seditious or heretical. <br />
<br />
Of course it didn’t work. By the time she died in 1558 her heavy handed tactics, which had grown to include <a href="http://en.wikipedia.org/wiki/Marian_Persecutions">burning protestants at the stake</a>, had made her deeply unpopular. Her successor, <a href="http://en.wikipedia.org/wiki/Queen_Elizabeth_I">Queen Elizabeth I</a>, restored Protestantism to England.<br />
<br />
Still, this concept of “copying rights” was a useful thing. And useful things are not easily surrendered by governments. Thirty years later the Star Chamber was chartered to curb the "contentious and disorderly" people "professing the art or mystery of printing books." <br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/John-milton.jpg/252px-John-milton.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/John-milton.jpg/252px-John-milton.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">John Milton</td></tr>
</tbody></table>
However these excessive, heavy-handed and ultimately futile attempts to limit dissent led to a shift in attitudes towards "subversive" literature. The notion of "freedom of speech", that the expression of dissent should be tolerated had begun emerge, alongside the rise of newspapers and the press. John Milton for example <a href="http://en.wikipedia.org/wiki/Areopagitica">argued for a new freedom of expression</a>, and that pre-censorship should not be a function of government<a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html#more">[4]</a>.<br />
<br />
In 1694, the Stationers' Company monopoly on printing rights expired, and was not renewed by the British Parliament. This was potentially fatal to their business model. Unable to convince the legislature to create a new monopoly on censorship grounds, the publishing companies <a href="http://en.wikipedia.org/wiki/Statute_of_Anne#Attempts_at_replacement">set about lobbying</a> for a new way to ensure the viability of their business. They hit upon the idea of joining forces with authors (such as Jonathan Swift) to argue for essentially the same monopoly controls, but for the benefit of authors rather than the preservation of their business model.<br />
<br />
In 1710, the Statute of Anne, the world's first copyright statute, came into force. <br />
<br />
The justification for copyrights had changed however. It was no longer about controlling the distribution of subversive information (although copyright law has been used repeatedly for precisely that purpose ever since<a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html#more">[5]</a>). The justification now was that these rights were necessary in order to encourage learning. On the one hand, to encourage "the learned men" to commit their knowledge to books, and on the other, to allow booksellers and publishers a limited time to exclusively reproduce and sell those books so that the public could benefit from them.<br />
<br />
The central tenet then was a <i>quid pro quo</i>. In exchange for a government-enforced, limited-time monopoly, the public would benefit from greater learning, the advancement of science, and the enrichment of culture. This value of reciprocity (the public benefits, the rights-holder benefits) is a recurring theme in the patent system as well, as we shall see.<br />
<br />
That is where I will leave this history of copyright<a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html#more">[2]</a>. Let me explain. <a href="http://www.youtube.com/watch?feature=player_detailpage&v=yokQ0_8__ts#t=26s">No, there is too much</a>. Let me sum-up:<br />
<ul style="text-align: left;">
<li>Copyright evolved in tandem with literacy, the cheap distribution of ideas, and a desire to control the distribution of information.</li>
<li>Modern notions of freedom of speech tempered the censorious nature of copyright, but added a publisher-centric (not author centric) set of copying rights.</li>
<li>At the heart of the first modern copyright acts, is the idea that there is a "pragmatic bargain", a mutually beneficial deal between the people and the publishers: that in order to improve the world, knowledge must be shared. And that this involves both the incentive to create the knowledge and write it down, as well as the right to copy and share it.</li>
</ul>
There is some use of metaphorical reasoning throughout the history of copyright<a href="http://blog.hissohathair.com/2012/11/a-brief-history-of-copyright_17.html#more">[3]</a>. However the Statute of Anne and the statutes that followed it did not rely on metaphor for their justifications. It was understood in its own terms. The stretch to metaphor as justification is a relatively recent invention it seems.<br />
<br />
Next step: the <a href="http://blog.hissohathair.com/2012/12/a-brief-history-of-patents.html" target="_blank">origins of patent law</a>.<br />
<br />
<br />
<a name='more'></a><br />
<ol style="text-align: left;">
<li>I've oversimplified here. The practice of indulgences is part of modern Catholic canon, although it does not bear much relation to what was being practised and sold in the middle ages. Martin Luther's statements against the corrupted practice of selling "eternal salvation" for cash was not actually controversial -- the Roman Catholic Church (RCC) itself had attempted reform earlier. Unfortunately, the RCC had become fairly dependent on raising money in this way for its own projects, and had sent Johan Tetzel to Germany to raise money to rebuild St Peter's Basilica in Rome. <br />
Luther's objections, which he first sent to his bishop, was a protest against the sale of indulgences and probably wasn't intended to spark the fire-storm that followed. However there is an undercurrent of challenge, particularly in Thesis 86, which asks why the pope should be financing St Basilica's reconstruction with money raised from the poor, rather than with RCC's own vast fortune.<br />
<br />
By the way, the history of indulgences is actually very interesting (if you're into that sort of thing). As is the life of Martin Luther, although his antisemitism towards the end of his life does take a considerable shine off the man.<br />
</li>
<li>There is one other wrinkle in our brief history: the emergence of
"common law copyright." Whereas the Statute of Anne was a pragmatic
bargain between authors and the general public, common law copyright
emerged as an attempt to establish a perpetual copyright. Proponents of
common law copyright (mainly the London booksellers who were lobbying
for an extension to the 14 year copyright term in the Statute of Anne)
argued that the limited terms in statute were not sufficient incentive
for scholars to create lasting works, since their children could not
inherit the copyrights. Their opponents argued more in favour of the
general public, arguing that the copyright acts had effectively
extinguished common law copyright, and that the parliament had got the
balance right.<br />
That argument between rights holders and readers still rages today.<br />
</li>
<li>For example, "To every cow belongs her calf, therefore to every book belongs its copy", from one of the <a href="http://en.wikipedia.org/wiki/History_of_copyright#Early_developments">earliest recorded examples of a copying right</a>. Also Mansfield CJ, from his judgement in <a href="http://en.wikipedia.org/wiki/Millar_v_Taylor" target="_blank">Millar v Taylor</a> (1769): "it is just, than an author should reap the...profits of his own...labour." The word "reap", I think, points to a "sweat of the brow" metaphor at work.<br />
</li>
<li>See also, <a href="http://en.wikipedia.org/wiki/John_Locke">John Locke</a>'s <i><a href="http://en.wikipedia.org/wiki/Two_Treatises_of_Government">Two Treatsies on Government</a></i> (<a href="http://www.lonang.com/exlibris/locke/loc-205.htm">Book 2, Chapter 5</a>).</li>
<li>For example: by private organisations such as the <a href="http://en.wikipedia.org/wiki/Fishman_Affidavit">Church of Scientology</a>, and also by <a href="http://www.iposgoode.ca/2010/02/copyright-as-a-tool-for-censorship/">governments around the world</a>.</li>
</ol>
Acknowledgement: I was fortunate to have one of those truly inspiring lecturers at ANU, <a href="http://www.anu.edu.au/fellows/pdrahos/">Professor Peter Drahos</a>. Interested people (I know there's at least 3 of you) who want to know more can do no better than read his books and articles. I've also been influenced by Professor <span class="titlepage"><a href="http://www.law.virginia.edu/lawweb/faculty.nsf/prfhpbw/sv2r">Siva Vaidhyanathan's</a> </span>book, <i><a href="http://www.amazon.com/Copyrights-Copywrongs-Intellectual-Threatens-Creativity/dp/0814788076" target="_blank">Copyrights and Copywrongs: The Rise of Intellectual Property and How it Threatens Creativity.</a></i></div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-1811416185910478273.post-83289919438653893852012-11-14T23:28:00.000+11:002012-12-16T15:24:56.369+11:00Rough Cuts: Cut<div dir="ltr" style="text-align: left;" trbidi="on">
I had a few posts here titled "rough cuts." They were essentially unstructured drafts that were just brain dumps. As such they seldom made much sense.<br />
<br />
So I've removed them from here (really I just marked them as "revert to draft").<br />
<br />
Update: I've moved them over to <a href="http://hissohathair.tumblr.com/tagged/draft" target="_blank">my Tumblr page</a>.<br />
<br />
<br />
<h4>
What's a Rough Cut?</h4>
<div>
"Rough Cut" is the term used on Safari Books to indicate a draft book. I like the idea -- authors get feedback on early drafts prior to publication and readers get an early look at a coming book.</div>
<div>
<br /></div>
<div>
But here "rough cut" means "unfinished thought or unpolished post" -- it's thinking out loud and really only meant to help me sort out things in my head.</div>
<div>
<br /></div>
<div>
[This posted published 14 November was edited 26 November to add the "What's a Rough Cut?" text. Edited again to remove the actual text as well as the 2 other "rough cut" posts. Updated 16 December to point to Tumblr tagged pages.]</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-84951152832170001952012-11-09T13:31:00.000+11:002012-12-10T23:36:39.550+11:00The Intellectual Property Metaphor<div dir="ltr" style="text-align: left;" trbidi="on">
There is no such thing as intellectual property.<br />
<br />
<a href="http://www.stallman.org/">Richard Stallman</a> is probably the best known person who has made this argument. <a href="http://www.gnu.org/philosophy/not-ipr.html">Stallman wrote</a>:<br />
<blockquote class="tr_bq">
It has become fashionable to toss copyright, patents, and
trademarks—three separate and different entities involving three
separate and different sets of laws—plus a dozen other laws into
one pot and call it “intellectual property”. The
distorting and confusing term did not become common by accident.
Companies that gain from the confusion promoted it. The clearest way
out of the confusion is to reject the term entirely. <a href="http://blog.hissohathair.com/2012/11/the-intellectual-property-metaphor.html#more">[1]</a></blockquote>
Stallman's argument is technically correct. There really is, legally at least, no such thing as "intellectual property" (IP) in its own right. Rather, the term is an umbrella term, which brings together copyright, patents, trade secrets, trade marks, design rights, plant breeders rights and possibly others (depending on the jurisdiction).<br />
<br />
Those items are brought together because they have similarities: they deal with proprietary rights (rights that can be enforced "against the world") over intangible things. Apart from this, these areas of law are largely unrelated. They do not share a common jurisprudence, historical origin or even a common purpose. However, <a href="http://books.google.com/ngrams/graph?content=intellectual+property&year_start=1800&year_end=2008&corpus=0&smoothing=1">this is changing</a>, as more and more of a nation's economy becomes invested in these rights over intangible things, forcing both a rethink of how we manage such rights in parallel with an increasingly vocal effort to cement "intellectual property" into place.<br />
<br />
Despite the arguments that "IP does not exist", most people seem to support the notion that it is not fair for others to benefit from someone's hard work. This idea of "unjust enrichment"<a href="http://blog.hissohathair.com/2012/11/the-intellectual-property-metaphor.html#more">[2]</a> is arguably the one thing that does link all forms of intellectual property. It is unjust, it is argued, that someone should be able to profit from another's "sweat of the brow." <br />
<br />
The <i>sweat of the brow</i>. It is a powerful metaphor, conjuring as it does the very real effort that is physically expended when we do physical labour. The metaphor easily lends itself to comparisons of another person reaping a farmer's crops, or stealing their cattle, or draining the water from their dam. When viewed in this way, we feel an emotional outrage at the idea that there are people who freely take an author's intellectual property for their own use and profit, with no benefit flowing back to the originator.<br />
<br />
However -- it was just a metaphor. I've started to wonder if the unacknowledged use of metaphorical thinking is at the heart of our struggles with intellectual property. Apparently, <a href="http://fsfe.org/activities/wipo/wiwo.en.html">I am not the first</a>. Some very cursory searching (I refuse to call it "googling", for that is not a real word) has turned up some interesting reading<a href="http://blog.hissohathair.com/2012/11/the-intellectual-property-metaphor.html#more">[3]</a>.<br />
<br />
The ultimate metaphor behind all of this of course, is the word "property" itself. To treat intellectual property ("IP") as property requires both an act of imagination and a suspension of disbelief (very similar to how we need to approach money in order for it to work). It also seems to require increasingly constrictive and aggressively enforced laws. As if they are trying to hold back a tide with just the hands of a million lawyers.<br />
<br />
Acts of imagination are not inherently wrong. We do not complain about having to suspend our disbelief when someone hands us a scrap of paper that claims to be worth "100 dollars". We just call that a bank note and trust that it will hold some value. We also do not complain when our employer moves some imaginary numbers from their account to our account (which are also figments of our imagination and that of the banks), because we know and trust that something of value has been passed.<br />
<br />
However, these acts of imagination and belief can cause problems when they are fundamentally at odds with reality. A very large amount of government intervention and social consent is required for the money system to operate. Crises in confidence (a collapsing of belief) in the money system are invariably catastrophic to their societies, at least in the medium term until belief in the system can be rebuilt. Consequently, the "creation" and distribution of money is heavily regulated (not as heavily as some people would like). Consequences for stepping outside this system (for example, printing counterfeit bank notes) is dealt with harshly.<br />
<br />
What's interesting about money for me is that it does not rely on metaphor to work. We understand money in its own right. We have physical manifestations of it (notes and coins) which make it easy to learn as children. We understand the historical evolution of it, and why societies have evolved from using things of genuine direct value (eg grain) to proxies for value (eg cash) and finally to acts of mutually agreed imagination (bank accounts, cheques, credit cards and electronic transfers).<br />
<br />
This is not so for IP. We continually rely on metaphors to define it, argue about it and enforce its existance. We speak of "theft" and draw <a href="http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1120585" target="_blank">direct analogies to car stealing and shop lifting</a>. Even the use of the very word "property", with all the legal baggage that word carries, is using a metaphor (albeit, one with a sophisticated legal jurisprudence behind it). I suspect that most of our concepts from copyrights and patents have metaphorical origins.<br />
<br />
Is it possible to understand IP "in its own right?" Is it possible to define a legal framework that matches both our instincts to protect peoples hard work, as well as our needs to share and exchange information to both improve our societies and enrich our cultures?<br />
<br />
What I'd like to do next is explore the origins and stated aims of three kinds of intellectual property: copyright, patents and trade marks. I don't intend these to be to a scholarly standard (there's an alibi for you!). This is, after all, just a blog to dump some thoughts. Looking at the origins and stated aims of these distinct areas of law might help me to articulate a way to approach IP with a common thread. A theory of law (jurisprudence) to support our instinctive reaction against free riders.<br />
<br />
<br />
<a name='more'></a><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: x-small;"><a href="http://blog.hissohathair.com/2012/11/the-intellectual-property-metaphor.html" name="footnotes">Footnotes:</a></span></span><br />
<ol style="text-align: left;">
<li><span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">Source: <a href="http://www.gnu.org/philosophy/not-ipr.html">Did You Say "Intellectual Property"? It's a Seductive Mirage</a>, Stallman R, online. </span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">I'm using the term "unjust enrichment" here in a lay sense, and not in the <a href="http://www.findlaw.com.au/articles/2163/equity-and-trusts-8211-unjust-enrichment.aspx">equity sense</a>, although that might be a useful place to look for a new approach to IP. </span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">Indeed, it's been discussed for some time. See for example, <span style="font-family: "Trebuchet MS",sans-serif;">Philosophy of Intellectual Property, The; Hughes J,
</span></span><span style="font-family: "Trebuchet MS",sans-serif; font-size: small;"><a href="http://heinonline.org/HOL/LandingPage?collection=journals&handle=hein.journals/glj77&div=19&id=&page=" rel="nofollow" target="_blank">77 Geo. L. J. 287</a> (1988-1989). See also Pirates, Parasites, Reapers, Sowers, Fruits, Foxes... The Metaphors of Intellectual Property, Loughlan P, <a href="http://heinonline.org/HOL/LandingPage?collection=journals&handle=hein.journals/sydney28&div=14&id=&page=" rel="nofollow" target="_blank">28 Sydney L. Rev. 211</a> (2006). </span><span style="font-family: "Trebuchet MS",sans-serif; font-size: small;"><span style="font-family: "Trebuchet MS",sans-serif;">(subscription required, links open in new windows.)</span> </span></li>
</ol>
<span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">[This post was edited (minor changes) after it was first posted.] </span></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-64723498684675738852012-11-05T22:43:00.003+11:002012-11-05T22:43:54.797+11:00So here's some code then...<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit;">Well, as "reboots" go that was extraordinarily short-lived.</span><br />
<span style="font-family: inherit;"><br /></span>
So a while ago I wrote a post about <a href="http://blog.hissohathair.com/2009/01/using-bloggers-new-import-blog-function.html">converting RSS to Atom</a> to feed into Blogger. A few people have left comments over the years, asking for the code. For a while there I wanted to clean it up first, then I forgot about it, then I lost it, and now that I've found it I remember why I wanted to clean it up first!<br />
<br />
Note to future employers: this code was just for testing. I have much better code for you to judge me on!<br />
<br />
Since I'm not going to get to cleaning it up any time soon, here is the code that will <a href="https://gist.github.com/4016817">convert an RSS feed to Atom for importing into Blogger</a>.<br />
<br />
Enjoy.<br />
<br />
This worked once upon a time. I haven't tested it with Blogger since I wrote it a few years ago. Such perverse XML formatting hijinks may no longer be required.<br />
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-73056629804874485592012-09-27T19:50:00.000+10:002012-09-27T19:50:21.905+10:00Never Freeze Brie<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="http://www.ochef.com/86.htm">Ever</a>.</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1811416185910478273.post-79592815523648657422012-09-24T00:11:00.001+10:002012-09-27T23:13:15.066+10:00Blog Reboot<div dir="ltr" style="text-align: left;" trbidi="on">
I've neglected this blog for a lot of reasons. The main one being that I didn't feel I had anything to say.<br />
<br />
I still feel that way.<br />
<br />
But there are some things it will be helpful to write down, and this place is as good as any. So I'm rebooting the blog.<br />
<br />
I'm moving from being a "villain" to a "super villain." It's all in the presentation you see... :)</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1811416185910478273.post-23646619509946349462011-02-02T17:13:00.001+11:002012-09-27T23:13:47.424+10:00The "Super" Difference<div dir="ltr" style="text-align: left;" trbidi="on">
<iframe allowfullscreen="" frameborder="0" height="295" src="http://www.youtube.com/embed/diOWLKwxsv8?fs=1" width="480"></iframe><br />
<br />
<blockquote>
<i>Megamind:</i> You dare challenge Megamind?<br />
<i>Villain:</i> This town isn't big enough for two super-villains!<br />
<i>Megamind:</i> Oh, you're a villain alright. Just not a super one.<br />
<i>Villain: </i>Yeah? What's the difference?<br />
<i>[music reaches its crescendo, the enormous flying Megamind head opens wide, spits out its tongue to reveal Megamind himself]</i><br />
<i>Megamind: </i><b>Presentation!</b></blockquote>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1811416185910478273.post-42470159631451777412009-09-25T17:47:00.001+10:002009-11-30T23:30:53.150+11:00The Real Mr His So Hat HairAwesome.<br />
<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Avx-Y9MMm3c&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Avx-Y9MMm3c&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1811416185910478273.post-65116495597344985302009-06-03T10:58:00.001+10:002010-08-15T00:24:29.771+10:00Using CruiseControl.rb to manage a Perl Catalyst project<span style="font-family: Arial; font-size: 13px;">We're working with the <a href="http://www.catalystframework.org/">Catalyst framework</a> again, porting an old Perl 5 <a href="http://www.masonhq.com/">HTML::Mason</a> site to Catalyst and introducing some modern Perl coding standards to a fairly old stack.</span><br />
<div><span style="font-family: Arial; font-size: 13px;"><br />
</span></div><div><span style="font-family: Arial; font-size: 13px;">One of the things we needed was a Continuous Integration tool for the project. Since we're already using <a href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl.rb</a> for the Rails projects I thought it should be pretty easy to incorporate the Perl project into it.</span></div><div><span style="font-family: Arial; font-size: 13px;"><br />
</span></div><div><span style="font-family: Arial; font-size: 13px;">And indeed it was:</span></div><div><div class="command-line"><div class="command-line command-line-prompt">$ ./cruise add CatalystProject --url https://svn.work.com/svn/catalystproject/trunk/</div></div><span style="font-family: Arial; font-size: 13px;"><br />
</span></div><div><span style="font-family: Arial; font-size: 13px;">CruiseControl will run a "rake" task whenever a commit is made. So we need a small Rakefile with just enough code in it to run the standard Perl tools:</span></div><div><span style="font-family: Arial; font-size: 13px;"><br />
</span></div><div><span style="font-family: Arial; font-size: 13px;">$ cat Rakefile</span></div><div><div class="command-line command-line-output">require 'rake'<br />
<br />
task :default => :test<br />
<br />
desc "Runs make test"<br />
task :test do<br />
t = system("eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib) && perl Makefile.PL && make test")<br />
rc = $?<br />
puts "\nMake finished with t=#{t} rc=#{rc.exitstatus}"<br />
raise "Perl make failed (rc=#{rc.exitstatus})" unless t<br />
end<br />
<br />
</div></div><div><span style="font-family: Arial; font-size: 13px;">The eval line in the system call is there because we're using local::lib to manage our Perl library dependencies and we need to set the environment variables so that they can be found. To propagate any "make test" errors back out to rake we throw an exception on non-zero exit codes.</span></div><div><span style="font-family: Arial; font-size: 13px;"><br />
</span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-70901143045984380292009-05-12T01:36:00.003+10:002009-05-12T02:01:16.343+10:00How to set your DNS search list in OSXHere's how to set your <span class="blsp-spelling-error" id="SPELLING_ERROR_0">DNS</span> search path in <span class="blsp-spelling-error" id="SPELLING_ERROR_1">OSX</span>, which is something you'll want to do if you're getting <a href="http://hissohathair.blogspot.com/2009/05/search-path-fix-for-aszcomau-is-only.html">redirected to eBay when you try to go to Google</a>, or are experiencing other odd behaviour from your browser.<br /><ol><li>Open System Preferences.</li><li>Open Network settings.</li><li>Your active network connection should be selected on the left. Select it if it is not. Click the "Advanced" button towards the bottom right hand corner.</li><li>Select the <span class="blsp-spelling-error" id="SPELLING_ERROR_2">DNS</span> tab.</li><li>On the right hand side is a column "<span class="blsp-spelling-corrected" id="SPELLING_ERROR_3">Search</span> Domains." It will probably already have your domain name listed, but it will be "greyed" out so that you can't remove it. That's OK. Click the "+" sign at the bottom of the column, and type the domain name again.</li><li>You should now have the domain name listed twice. One will be grey, the other black. This is good, <span class="blsp-spelling-corrected" id="SPELLING_ERROR_4">believe</span> it or not. :-)</li><li>Click OK.</li><li>Click Apply.</li></ol>Here's a screen capture that steps through it.<br /><br /><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dz6qlpntUWgFXBaekSg1GF0VTNA5EFVJdTPynagiSqURzBZejN4p2cYmq0quCM-Bu7xohD5u_S0UL_5ocTJyA' class='b-hbp-video b-uploaded' frameborder='0'></iframe>Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-1811416185910478273.post-67720164849869154712009-05-07T14:28:00.000+10:002009-05-07T14:28:21.881+10:00The "search path fix" for ASZ.COm.Au is only a partial fixFeel I need to clarify my fix to the <a href="http://hissohathair.blogspot.com/2009/04/welcome-to-aszcomau-or-resolver-library.html">"eBay/ASZ redirection problem" discussed in my last post</a>.<br />
<br />
Adding your domain name to your DNS search path will stop your DNS resolver from asking the "au.com.au" and "com.com.au" name servers for "google.com.au.com.au". So you shouldn't get "Welcome to ASZ.COm.Au" or be redirected to eBay or other unexpected behaviour.<br />
<br />
What you'll get instead is "site not found". That's what I mean by a partial fix. If your ISPs name server is losing DNS responses (or is too slow to return them) then you'll still have problems: namely you'll get an error message when you try and visit some sites. However clicking "Refresh" or "Reload" will generally solve that problem. Once your at the site the address will be in your resolver's cache so things will be stable for a while.<br />
<br />
Meanwhile I've written to the <a href="http://www.auda.org.au/">auDA</a> guys asking for their opinion on defining DNS entries for other peoples domain names as sub-domains of yours.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-65527519017365307962009-04-30T17:43:00.087+10:002009-05-01T12:20:03.335+10:00Welcome to ASZ.COm.Au (Or, The Resolver Library is Broken)A few days ago, I did a Google search and <a href="https://twitter.com/hissohathair/status/1603388672">got the strangest error</a>: a 404 (File Not Found) page that claimed to be from Apache with PHP and Frontpage extensions loaded. Google doesn't run Apache.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj50pXEC-ZcTUhSBtK2wSWIMvPum5xJ0IPOSgrjwysfKBF0rJH0nHyDiZb0j3dnUPWdYKODWZ9VzaA_HOU2YRW1Z8uS3WaoPsstYwVOl0yMfGWY3vuDdIKHuvQj9nmmPGzSbNKZ5P7UUs8/s1600-h/Picture+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj50pXEC-ZcTUhSBtK2wSWIMvPum5xJ0IPOSgrjwysfKBF0rJH0nHyDiZb0j3dnUPWdYKODWZ9VzaA_HOU2YRW1Z8uS3WaoPsstYwVOl0yMfGWY3vuDdIKHuvQj9nmmPGzSbNKZ5P7UUs8/s400/Picture+1.png" /></a></div><br />
Since that was A Very Odd Thing Indeed I went to the Google home page. This time <a href="https://twitter.com/hissohathair/status/1603417959">I got a new message</a>: "Welcome to ASZ.COm.Au" (for some reason, I feel it's important to preserve the capitalisation).<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9PEKhTJHETtfUhxWgvLW0ugz3_zKj8x9YbuZqjixQhWG8WfB8DpRP6D4vfaGEC5Xv0ubH9xyfAuBY9S6zJ0y4mW5nsg-2DCkUm-yfpRs6GCZWp3AvKXQyJEUTPSTremZbj9naBI1h-0w/s1600-h/Picture+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9PEKhTJHETtfUhxWgvLW0ugz3_zKj8x9YbuZqjixQhWG8WfB8DpRP6D4vfaGEC5Xv0ubH9xyfAuBY9S6zJ0y4mW5nsg-2DCkUm-yfpRs6GCZWp3AvKXQyJEUTPSTremZbj9naBI1h-0w/s400/Picture+2.png" /></a></div>My first guess was that my <a href="http://en.wikipedia.org/wiki/DNS_cache_poisoning">DNS cache had been poisoned</a>. Or that I'd picked up a virus somehow. When I looked on Twitter I saw that <a href="http://search.twitter.com/search?q=ASZ.com.au">I was not alone</a>: a few people were reporting similar problems trying to access <a href="http://www.facebook.com/">Facebook</a>, <a href="http://www.youtube.com/">YouTube</a>, <a href="http://www.google.com.au/">Google</a> and even <a href="http://www.ebay.com.au/">eBay</a>. A <a href="http://forums.whirlpool.net.au/forum-replies.cfm?t=1184992">discussion about the issue</a> had started on <a href="http://whirlpool.net.au/">Whirlpool</a>. In most cases, the issue appeared to resolve itself eventually, or after a DNS cache flush.<br />
<br />
In my case, the issue persisted for a little while and then stopped. I was able to access Google again.<br />
<br />
It took some time for me to figure out what was going on (hey -- I'm <a href="http://science.slashdot.org/article.pl?sid=09/03/17/148217">over 27</a>). The intermittent nature of the issue made debugging difficult. It wasn't until my partner mentioned that she'd seen the same screen when she'd tried to access the <a href="http://www.bom.gov.au/">Bureau of Meteorology</a> that I was able to make progress. Visiting <a href="http://bom.gov.au/">http://bom.gov.au/</a> (but not <a href="http://www.bom.gov.au/">http://www.bom.gov.au/</a>) consistently reproduced the problem.<br />
<br />
I chased down a few theories: malware, cache-poisoning, an "optus issue". But I finally worked out that this was the result of a documented feature of the common UNIX resolver library.<br />
<br />
When you visit a web page your computer needs to "resolve" the <a href="http://en.wikipedia.org/wiki/Hostname">host name</a> (eg "google.com.au") to an Internet address. That's the job of the <a href="http://en.wikipedia.org/wiki/Resolver_%28DNS%29#DNS_resolvers"><i>resolver</i></a>, which in turn uses something called a <a href="http://en.wikipedia.org/wiki/Name_server">domain name server</a>. Your browser asks the resolver "what's the address of Google.com.au" and the resolver answers. Either the resolver already knows the answer because it's looked it up before and kept a copy (a cache), or it doesn't know, and so it asks the domain name server. The domain name server in turn may ask other domain name servers, until someone, somewhere, knows the answer. The answer is then sent back through the chain, ultimately to your resolver (called the "client").<br />
<br />
So if the resolver doesn't know an address it asks the domain name server and waits for an answer. But it will not wait forever. In fact, it typically won't wait longer than several seconds. It's an impatient little thing and if it hasn't heard back quickly enough it assumes that maybe the hostname is wrong -- maybe the user just typed <b>part</b> of the hostname. Or maybe the domain name server <b>does</b> answer in time but the resolver cannot use the answer -- the domain name server may reply with "no one knows that hostname." Either way, the resolver will start to guess what the real (or "fully qualified") hostname might be.<br />
<br />
There are two strategies a resolver can use when it starts searching for the fully qualified hostname.<br />
<br />
The first is to use an explicit list of search paths. You usually provide this list yourself when configuring your network settings. If you haven't set such a list, then it will employ the second strategy. (That's going to turn out to be quite handy...)<br />
<br />
The second thing your resolver can do is a "domain name search". It takes your domain name, prepends the hostname you're looking for and does a lookup on that. I'm with Optusnet, so my domain name is "optusnet.com.au". My reslover then might lookup "bom.gov.au.optusnet.com.au" if it doesn't get a useful answer for "bom.gov.au". If it <b>still</b> doesn't get a useful answer (and it this case, it won't) then it starts searching "up" the domain name -- it removes the first part of the domain name and repeats the search. So its second search is for "bom.gov.au.com.au". See what it did there? It deleted "optusnet" and tried again. (Technical note: the behaviour is documented in the <a href="http://www.manpagez.com/man/3/resolver/">resolver man page</a> -- see RES_DNSRCH)<br />
<br />
That right there is the flaw and the root cause of the problem.<br />
<br />
Someone owns the domain names "au.com.au" and "com.com.au". And they have name servers. And they've set them up to answer queries for a whole host of things, among them, bom.gov.au.com.au, google.com.au.com.au and facebook.com.com.au. And our resolvers are querying them and merrily sending our browsers there <b>if</b> the real name servers for those domains don't get their answers back in time.<br />
<br />
Now we know enough to say what's going on:<br />
<ol><li>You try and visit Google, Facebook, Twitter (or the BoM). It's been a while so the address isn't in your resolver's cache. So it does a lookup by asking your domain name server -- this is usually provided by your ISP.</li>
<li>For whatever reason, your ISP's name server is either too slow to respond or the response is lost altogether. So your resolver "times out" and starts to "search". Your domain name ends in ".com.au" and so eventually, your resolver looks up "google.com.au.com.au" (or whatever site you're trying to visit, with ".com.au" added to the end). The name servers at "au.com.au" (or "com.com.au" depending on what you're looking up) <b>do respond</b> and do so in time.</li>
<li>Your resolver gives the bogus address to the browser <b>and stores it in the DNS cache</b>. The "TTL" (time to live) for those addresses is 4 hours, so you're going to be stuck with that address in your cache for at most 4 hours.</li>
<li>Eventually, your cache times out. Or maybe you know how to flush it. Either way, a second attempt by the resolver to get the right IP address works and the problem appears to be resolved.</li>
</ol>Multiple things are going wrong here:<br />
<ul><li> The ISPs name server is either too slow to respond or perhaps "dropping" packets (DNS packets are typically using <a href="http://en.wikipedia.org/wiki/User_Datagram_Protocol">UDP</a> which is <a href="http://en.wikipedia.org/wiki/User_Datagram_Protocol#Comparison_of_UDP_and_TCP">not a guaranteed delivery mechanism like TCP</a>). I've seen this with Optusnet before but in the past I just got a "site not found". Such responses aren't cached so if you hit "Refresh" in your browser you typically find the site just fine the second time.</li>
<li>The name servers for "com.com.au" and "au.com.au" have records that match other peoples sites. They shouldn't. Right now, it's just confusing and annoying but its potential for <a href="http://en.wikipedia.org/wiki/Phishing">phishing</a> is obvious. It's not necessarily malicious but it should be changed.<br />
</li>
<li>The algorithm used by the resolver in both UNIX and Windows has a security flaw: it should not search all the way back to ".com.au". </li>
</ul>To me the ultimate problem is that last one: UDP packets, and hence DNS responses, are not guaranteed to be delivered. It should be expected that sometimes, things will get busy and responses will be lost. The resolver is in error by searching the domain name all the way back to ".com.au" -- IMHO that's a security hole similar to the <a href="http://homepages.paradise.net.nz/%7Eglineham/cookiemonster.html">old "cookie monster" bug</a>.<br />
<br />
<b>There's a fix</b> though, which at least works on OSX (Mac). If you <b>set an explicit search path</b>, then the resolver won't use the second strategy described above. It will search the search path(s) and then stop there. I've set my search path to "optusnet.com.au", the same as my domain name, and can no longer reproduce the problem.<br />
<br />
There are other things that can help:<br />
<ul><li>If your ISP's domain name server is not reliable use <a href="http://www.opendns.com/">OpenDNS</a>. There is some anecdotal evidence that the possibility of DNS replies being late or dropped is lower. Getting the "Welcome to ASZ.COm.Au" page for Google or Facebook depended on your computer not getting the DNS response in time (or at all) so having a reliable domain name server will stop the problem happening.<br />
</li>
<li>Add a "." to the end of your hostnames when typing into the browser (for example, "google.com.au."). The trailing "." prevents the domain name searching from kicking in.</li>
<li>If you're able, configure firewalls to drop packets from the name servers at "com.com.au" and "au.com.au".</li>
</ul>Oh, if you're wondering why "bom.gov.au" could reproduce the problem every time: Their name server <b>does</b> respond quickly but not with an "A" record for that domain. Which is to say, it's not a response that the resolver can use to answer the question "what's bom.gov.au's IP address". So even though the resolver gets an answer it still embarks on its domain name search until it looks up "bom.gov.au.com.au" and gets an answer (an "A" record). To reproduce the proglem with Google etc, you need to wait for the DNS response packet to go missing in order to trigger the domain search by your resolver.<br />
<br />
Other things can be explained:<br />
<ul><li>It appeared to be an "Optus problem" at one stage because their domain name servers are occasionally overloaded and therefore slow. The Optus domain ends in "com.au" and so the domain name search would go all the way back to ".com.au". TPG seems to have similar issues.<br />
</li>
<li>I couldn't reproduce the problem at work because my domain name there is "work.com". The resolver is smart enough not to search as far back as ".com" -- it just missed the case where a country domain has subclassifications (such as ".com.au", ".co.nz" or ".co.uk"). That's the limitation to the "counting dots" method of deciding how far to walk back.<br />
</li>
<li>Switching to OpenDNS would appear to solve the problem because the resolver didn't need to start a domain name search if it got the right answer right away.</li>
<li> Flushing the DNS cache would appear to solve the problem because it's only occasionally that DNS replies get lost. You have a good chance on your second attempt of getting the right address.</li>
</ul>Thanks to <b></b><b><a class="screen-name" href="https://twitter.com/objects" title="Mick Barry">objects</a></b>, <b></b><b><a class="screen-name" href="https://twitter.com/pixelgroup" title="Stephen Marovitch">pixelgroup</a></b> and <b></b><b><a class="screen-name" href="https://twitter.com/3buffalogirls" title="Renee">3buffalogirls</a></b> for responding to my Twitter enquiries with additional information, and the posters on the Whirlpool forums.Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-1811416185910478273.post-87787835846612048952009-03-13T08:00:00.001+11:002009-03-13T08:00:00.809+11:00Monitoring Rails builds with CruiseControl.rb and CCTrayMore for my own memory than anything else...<br />
<br />
<a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.NET</a> comes with a tool called <a href="http://confluence.public.thoughtworks.org/display/CCNET/CCTray">CCTray </a> that gives you a handy way of monitoring the build status of multiple CruiseControl environments. It works out of the box with other CruiseControl.NET installations but needs a little trick to monitor the <a href="http://cruisecontrolrb.thoughtworks.com/">Ruby </a> and <a href="http://cruisecontrol.sourceforge.net/">Java </a> versions (why we need the same app implemented three times is a subject for a rant one day I'm sure...).<br />
<br />
For Ruby on Rails projects, set the monitoring URL in CCTray to this:<br />
<blockquote>http://hostname.of.cruisecontrol.rb:3333/XmlStatusReport.aspx</blockquote>It's not a real ASPX page but it returns XML that CCTray is expecting.<br />
<br />
Cruise Control for Java is similar, but different ('natch):<br />
<blockquote>http://hostname.of.cruisecontrol:3333/dashboard/cctray.xml</blockquote> Had trouble Googling that. :-)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-35761176636222256062009-03-09T10:10:00.005+11:002013-03-15T21:12:08.562+11:00Keep yourself logged in to a website with anti-idleAt $work I need to use a time sheet application which has a session timeout feature. I want a way to stay "logged in". So I've conceived a little plug-in for my personal web developer's proxy that will re-load certain web pages periodically in the background.<br />
<br />
Could work like this:<br />
<ol><li>Start your personal proxy with the anti-idle plug-in in the chain (below).</li>
<li>In your browser, go to the page you want to periodically re-load.</li>
<li>At the end of the URL, append a CGI argument. For example you could append "?ttt_anti_idle=300" to reload the page every 5 minutes. If there are already CGI arguments in the URL just append: "&ttt_anti_idle=300".</li>
<li>Load the new URL you've just typed. The anti-idle plug-in will strip out the extra argument you've appended prior to giving the URL to the "real" server.</li>
<li>The anti-idle plug-in monitors its stream for "ttt_anti_idle" arguments and builds a list of pages to reload at certain intervals. It discards the result of course.</li>
</ol><div>Here's how I imagine I'd set up the pipeline:</div><br />
<div class="command-line"><div class="command-line command-line-prompt">$ proxy | anti_idle --use_cgi=ttt_anti_idle | respond</div><div class="command-line command-line-output"><br />
[...]</div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-88492730379140672822009-03-06T14:51:00.000+11:002009-03-06T14:51:00.499+11:00Initial Load Values for Nagios Load Checks (Cheat Sheet)I've put together a cheat sheet to show how you might want to initially configure your Nagios load checks. The thinking behind these initial values is set out in <a href="http://hissohathair.blogspot.com/2008/07/tuning-nagios-load-checks.html">Tuning Nagios Load Checks</a>.<br />
<br />
<table><thead>
<tr> <th>Use</th> <th>OS</th> <th>Cores</th> <th>Warning</th> <th>Critical</th> <th>Notes</th> </tr>
</thead> <tbody>
<tr> <td>CMS (Teamsite)</td> <td>Solaris</td> <td>1</td> <td>10,7,5</td> <td>20,15,10</td> <td>Testing shows this app to be responsive up until these loads.</td> </tr>
<tr> <td>Web Server</td> <td>Linux</td> <td>2 x 4</td> <td>16,10,4</td> <td>32,24,20</td> <td>Web servers are paired, so want to know if reaching 50% capacity regularly. Testing shows performance degradation from a load of 20.</td> </tr>
<tr> <td>DB Server</td> <td>Linux</td> <td>2 x 4</td> <td>16,10,4</td> <td>32,24,20</td> <td>Same hardware, different use. Nevertheless, using same thresholds.</td> </tr>
<tr> <td>Nagios</td> <td>Linux</td> <td>1 x 2</td> <td>6,4,2</td> <td>12,10,7</td> <td>Small box, paired with backup.</td> </tr>
</tbody> <tfoot> </tfoot> </table><br />
General notes:<br />
<ul><li>The UNIX servers (particularly the Sun SPARC ones) seem to be able to stay up and responsive even under heavy load. And they don't count processes waiting for I/O in their load counts the way Linux does. I have no explanation for this. :-)</li>
<li>We track these loads over time to predict demand growth for capacity planning -- the thresholds are not a long term goal but rather a short term alert threshold.</li>
<li>Transaction or revenue-earning web servers might have lower thresholds because of the different commercial implications of performance degradation. YMMV.</li>
</ul><div>For more information on the Nagios check_load command, see <a href="http://hissohathair.blogspot.com/2008/07/tuning-nagios-load-checks.html">Tuning Nagios Load Checks</a>.</div><div><br />
</div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1811416185910478273.post-32912351356235731212009-03-06T10:06:00.005+11:002013-03-15T21:12:08.560+11:00No more stupid YouTube commentsPrompted by Mark Damon Hughes' <a href="http://kuoi.com/~kamikaze/read.php?topic=Web&id=223">Stupid Comments Be Gone</a> I wrote a small script that took YouTube HTML in on stdin, stripped out the comments, and spat the remainder out on stdout (Mark's trick uses CSS to hide them).<br />
<br />
Now I can do this:<br />
<br />
<div class="command-line"><div class="command-line command-line-prompt">$ proxy | connect | kill_youtube_comments | respond<br />
</div><div class="command-line command-line-output">[...]</div></div><br />
And lo! Works in all browsers. :-)<br />
<br />
Breaking it down:<br />
<ol><li>The <b>proxy</b> command listens on port 8080 (I configure my browser to proxy to localhost:8080). It spits all requests it sees to stdout.</li>
<li>The <b>connect</b> command reads a HTTP request on stdin, connects to the remote server, fetches the content, and spits a HTTP request on stdout.</li>
<li>The <b>kill_youtube_comments</b> command reads in HTML and strips out the div that contains YouTube comments.</li>
<li>The <b>respond</b> command reads a HTTP response and sends that (via named pipe) back to the <b>proxy</b> command so that it can return it to the browser.</li>
</ol><br />
I sometimes wonder if anyone else in the world would find a personal, hackable proxy useful.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1811416185910478273.post-72996869403026326892009-01-16T14:31:00.010+11:002012-11-05T22:47:06.381+11:00Using Blogger's new Import Blog function to import an RSS-based blog<div dir="ltr" style="text-align: left;" trbidi="on">
[UPDATE: I've <a href="http://blog.hissohathair.com/2012/11/so-heres-some-code-then.html">released the code</a> that I referred to below as a GitHub Gist.] <br />
<br />
I've been playing with <a href="http://bloggerindraft.blogspot.com/2008/06/new-feature-import-and-export.html">Blogger's Import Blog feature</a> , made available in <a href="http://draft.blogger.com/">Blogger in Draft</a> last year.<br />
<br />
Google explicitly state that only Blogger exported blogs are supported. Blogger exports its blogs in Atom format. I thought perhaps that I could convert an RSS feed to Atom and then import that into Blogger and thereby move some old non-Blogger blogs over to Blogger.<br />
<br />
Alas, no joy! The Blogger Import tool is quite fussy about its Atom. For example, if you export a blog in Atom format, and then run that through an XML formatting tool and re-import, you'll find that Blogger complains about the uploaded file.<br />
<br />
However, I've kept at it, and now have a simple script that can take an RSS feed and convert it to an Atom format that Blogger seems happy with. It's not quite there -- a few posts are silently dropped for reasons I haven't figured out yet. I'm toying with the idea of eventually releasing it. Of course, <a href="http://code.google.com/p/lj2blogger/">I'm not the only one</a> .<br />
<br />
via hissohathair.blogspot.com</div>
Unknownnoreply@blogger.com7tag:blogger.com,1999:blog-1811416185910478273.post-1357998655332192612009-01-15T16:06:00.000+11:002009-01-15T16:08:44.730+11:00Oh! Look! Time_t party coming!At 10:30:31 on Friday the 14th of February this year (Sydney time) the UNIX epoch time will be "1234567890".<br />
<br />
Time for a <a href="http://en.wikipedia.org/wiki/Time_t#time_t_parties">time_t party</a> !<br />
<br />
via hissohathair.blogspot.comUnknownnoreply@blogger.com0Australia-33.9433599465788 151.171875-43.036343446578805 136.2304685 -24.8503764465788 166.1132815