<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hbr</title>
	<atom:link href="http://brnz.org/hbr/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://brnz.org/hbr</link>
	<description>Hint for Branch (r-form)</description>
	<lastBuildDate>Thu, 12 Aug 2010 12:35:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;Layers are Leaking&#8221;</title>
		<link>http://brnz.org/hbr/?p=491</link>
		<comments>http://brnz.org/hbr/?p=491#comments</comments>
		<pubDate>Thu, 12 Aug 2010 01:20:01 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=491</guid>
		<description><![CDATA[Andrew Richards (@codeandrew), the CEO of Codeplay posted an article &#8220;Layers are Leaking&#8221;, which inspired some thoughts &#8211; tangential and perpendicular &#8211;  beyond what I could reasonably fit into a stream of tweets (not that that stopped me trying).
From the article:
If you look at any computer system architecture diagram (and there are many) you [...]]]></description>
			<content:encoded><![CDATA[<p>Andrew Richards (<a href="http://twitter.com/codeandrew">@codeandrew</a>), the CEO of Codeplay posted an article <a href="http://www.codeplay.com/en/resources/technical-articles/226-layers-are-leaking">&#8220;Layers are Leaking&#8221;</a>, which inspired some thoughts &#8211; tangential and perpendicular &#8211;  beyond what I could reasonably fit into a stream of tweets (not that that stopped me trying).</p>
<p>From the article:</p>
<blockquote><p>If you look at any computer system architecture diagram (and there are many) you will almost always see a series of &#8220;layers&#8221; on top of each other. Each layer is based on a layer underneath. It is a very common pattern in computers, and I believe that it is fundamental to the success of the development of computer technology. What layers allow you to do, is let individual people concentrate on only one part of a problem.</p></blockquote>
<p>This brought to mind the <a href="http://research.microsoft.com/en-us/um/people/gbell/Computer_Structures__Readings_and_Examples/00000023.htm">first chapter</a> of Bell &amp; Newell&#8217;s Computer Structures book from 1971, which illustrates this kind of layering idea.  Additionally, I was reminded of Jeannette Wing&#8217;s excellent <a href="http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdf">Computational Thinking</a> article which (amongst other things) makes the case that this type of thinking, associated with computer science, is something that is worth teaching and applying more widely.</p>
<blockquote><p>But, recently, the layers have started leaking.</p></blockquote>
<p>I don&#8217;t really agree that this is a recent thing (layers leak, abstractions change &#8211; some leaks are more obvious than others), but the article refers to the significant changes that have come about in the eternal quest for faster computation, and the difficulties involved in replacing established abstractions. Renegotiating the interface between two layers is difficult when the people responsible for each layer don&#8217;t speak the same technical language. What&#8217;s worse is trying to change the interface to one layer without adequately considering the consequences to other layers in the system. I think time-consuming discussion and debate is inevitable, and it is not inherently a reason to avoid changing an otherwise broken abstraction.</p>
<p>A number of the problems (or &#8211; dare I cliché it &#8211; opportunities) that are appearing with regard to increasingly parallel computation are not new. Consider Peter Denning&#8217;s <a href="http://cacm.acm.org/magazines/2010/6/92479-the-resurgence-of-parallelism/fulltext">recent article</a>. I find it interesting that a number of the suggested solutions involve changes to deeply ingrained abstractions (like programming languages) for which there would be (is) significant resistance to change.</p>
<p>I read an <a href="http://www.wired.com/magazine/2010/07/ff_fred_brooks/">interview</a> with Fred Brooks recently, and the following quote stood out:</p>
<blockquote><p>Software is not the exception; hardware is the exception. No technology in history has had the kind of rapid cost/performance gains that computer hardware has enjoyed. Progress in software is more like progress in automobiles or airplanes: We see steady gains, but they’re incremental.</p></blockquote>
<p>Which echoes something that Andrew said in another article (&#8220;Why Intel Larrabee Really Stumbled&#8221; &#8211; google cache is <a href="http://webcache.googleusercontent.com/search?q=cache:YRV_rqy6i6kJ:www.brightsideofnews.com/print/2010/5/27/why-intel-larrabee-really-stumbled-developer-analysis.aspx">here</a>)</p>
<blockquote><p>Infinite Truth: Software takes longer to develop than Hardware</p></blockquote>
<p>A lot of time has been spent on steady, incremental gains for software that attempts to work around the limitations of many common layer abstractions &#8211; examples that spring to mind include compiling general purpose programs for small register sets, converting scalar programs to utilise vector instructions, and trying to make parallelism out of inherently single threaded code. We can&#8217;t necessarily redesign our systems to make these problems go away, but I think we can strive to address these problems in the best way possible &#8211; which will likely involve reshuffling some layers in the process. It&#8217;s likely to be messy, time consuming, and require a lot of hard work.</p>
<p>Sounds like fun :)</p>
<p>My thanks to Andrew for his thought-provoking article.</p>
<p><em>Additional:</em><br />
Stephen Hill (<a href="http://twitter.com/self_shadow">@self_shadow</a>) <a href="http://twitter.com/self_shadow/status/20935841301">tweeted</a> links to wikipedia on <a href="http://en.wikipedia.org/wiki/Leaky_abstraction">Leaky abstractions</a>, and <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">a related article</a> by Joel Spolsky.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">But, recently, the layers have started leaking.</div>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=491</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>spu_µopt[0] // shifting and arrays</title>
		<link>http://brnz.org/hbr/?p=468</link>
		<comments>http://brnz.org/hbr/?p=468#comments</comments>
		<pubDate>Fri, 07 May 2010 02:08:21 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[spu]]></category>
		<category><![CDATA[µopt]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=468</guid>
		<description><![CDATA[There are a couple of mostly-obvious SPU micro-optimisation tricks that I&#8217;ve learned.  Here&#8217;s one.

qword a[128];
qword f(int i) {
    return a[i&#62;&#62;4];
}


Simple enough code. spu-gcc -O3 produces

f:                                                                                                                                                                                                                                                                                                                          
    ila     $2,a                                                                                                                                                                                                                                                                                                        
    andi    $3,$3,-16                                                                                                                                                                                                                                                                                                   
    lqx     $3,$2,$3                                                                                                                                                                                                                                                                                                    
    bi      $lr


And it&#8217;s worse [...]]]></description>
			<content:encoded><![CDATA[<p>There are a couple of mostly-obvious SPU micro-optimisation tricks that I&#8217;ve learned.  Here&#8217;s one.</p>
<blockquote>
<pre>qword a[128];
qword f(int i) {
    return a[i&gt;&gt;4];
}
</pre>
</blockquote>
<p>Simple enough code. spu-gcc -O3 produces</p>
<blockquote>
<pre>f:                                                                                                                                                                                                                                                                                                                          
    ila     $2,a                                                                                                                                                                                                                                                                                                        
    andi    $3,$3,-16                                                                                                                                                                                                                                                                                                   
    lqx     $3,$2,$3                                                                                                                                                                                                                                                                                                    
    bi      $lr
</pre>
</blockquote>
<p>And it&#8217;s worse if the shift is not 4 &#8211; here&#8217;s the result of using 5:</p>
<blockquote>
<pre>f:
    rotmai  $4,$3,-5
    ila     $2,a
    shli    $3,$4,4
    lqx     $3,$2,$3
    bi      $lr</pre>
</blockquote>
<p>Which is pretty ugly.</p>
<p>The compiler is doing what it has been asked to do, but doesn&#8217;t appear to know that SPU load and store instructions force the four rightmost bits of the calculated address to zero.  Which means the andi masking can be removed from the first case, and in the second the shift right and shift left instructions could be replaced with a single shift right &#8211; without changing the result.</p>
<p>How to avoid it?  I&#8217;ve used manual pointer arithmetic to get around this compiler feature, e.g.</p>
<blockquote>
<pre>return *(qword*)((uint)a+i)
</pre>
</blockquote>
<p>Which is pretty ugly.</p>
<p>I don&#8217;t know what that sort of thing does for the compiler&#8217;s alias analysis. Probably nothing good (judicious use of restrict might help&#8230;).  si_lqx() would also work, but my  experience &#8211; without in-depth  examination &#8211; is that measured performance  gets worse when using load  and store intrinsics. I&#8217;m not sure if it&#8217;s something to do with  scheduling, aliasing or programmer competence.</p>
<p>When would this ever matter? I&#8217;ve run into this in some very hot lookup table access. Two or four less cycles can make a big difference. Sometimes. (If it really matters, rewriting the whole thing in assembly can work, too)</p>
<p>It&#8217;s a micro-optimisation &#8211; measure often, use with care.</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=468</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building gdb for Cell/B.E.</title>
		<link>http://brnz.org/hbr/?p=465</link>
		<comments>http://brnz.org/hbr/?p=465#comments</comments>
		<pubDate>Mon, 05 Apr 2010 02:35:03 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[ps3]]></category>
		<category><![CDATA[spu]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=465</guid>
		<description><![CDATA[Trying to debug a bus error on my PS3, I realised that the version of GDB I have installed doesn&#8217;t support debugging of SPU programs. There doesn&#8217;t seem to be a Debian packaged version available that does, so I built my own.
Because I found no obvious google result, I share this with the zero other [...]]]></description>
			<content:encoded><![CDATA[<p>Trying to debug a bus error on my PS3, I realised that the version of GDB I have installed doesn&#8217;t support debugging of SPU programs. There doesn&#8217;t seem to be a Debian packaged version available that does, so I built my own.</p>
<p>Because I found no obvious google result, I share this with the zero other people that I expect may one day be interested : the key option for configure appears to be</p>
<blockquote>
<pre>--enable-targets=spu
</pre>
</blockquote>
<p>This information was brought to you via the <a href="http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk3.1/sources/toolchain/gdb.spec">gdb.spec  file</a>, and <a href="http://gcc.gnu.org/ml/gcc-testresults/2010-04/msg00121.html">a  post to the gcc-testresults mailing list</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=465</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>20100319 photographs</title>
		<link>http://brnz.org/hbr/?p=447</link>
		<comments>http://brnz.org/hbr/?p=447#comments</comments>
		<pubDate>Thu, 18 Mar 2010 13:09:51 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[imagery]]></category>
		<category><![CDATA[Cradle Mountain]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=447</guid>
		<description><![CDATA[On Australia Day this year I climbed to the summit of Cradle Mountain with some friends.  Here are some of the photos that I took before the clouds rolled in and the rain came down.
It&#8217;s a great place to take a long walk  :)
Photos taken on 20100126. Click any image for a giant version.


&#8220;Wombat Pool&#8221;
The [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">On Australia Day this year I climbed to the summit of <a href="http://maps.google.com.au/maps/place?oe=utf-8&amp;rls=org.gentoo:en-US:unofficial&amp;client=firefox-a&amp;um=1&amp;ie=UTF-8&amp;q=cradle+mountain&amp;fb=1&amp;gl=au&amp;ftid=0xaa7ae84c88b830f9:0xefe9e09237d3c4fb&amp;ei=TyKiS4C_FcyLkAWO_LC6CA&amp;sa=X&amp;oi=geocode_result&amp;ct=title&amp;resnum=1&amp;ved=0CBEQ8gEwAA">Cradle Mountain</a> with some friends.  Here are some of the photos that I took before the clouds rolled in and the rain came down.</p>
<p style="text-align: left;">It&#8217;s a great place to take a long walk  :)</p>
<p style="text-align: left;">Photos taken on 20100126. Click any image for a giant version.<a href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/"><br />
</a></p>
<p style="text-align: center;"><a href="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35800.jpg"><img class="aligncenter size-large wp-image-449" style="border: 1px solid black;" title="CRW_35800" src="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35800-540x359.jpg" alt="" width="540" height="359" /></a></p>
<p style="text-align: center;"><a href="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35807.jpg"><img class="aligncenter size-large wp-image-450" style="border: 1px solid black;" title="CRW_35807" src="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35807-540x303.jpg" alt="" width="540" height="303" /></a>&#8220;Wombat Pool&#8221;</p>
<p style="text-align: center;"><a href="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35823.jpg"><img class="aligncenter size-large wp-image-451" style="border: 1px solid black;" title="CRW_35823" src="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35823-540x359.jpg" alt="" width="540" height="359" /></a>The mountain. You could see the top at this stage in the day.</p>
<p style="text-align: right;"><a href="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35855.jpg"><img class="aligncenter size-large wp-image-452" style="border: 1px solid black;" title="CRW_35855" src="http://brnz.org/hbr/wp-content/uploads/2010/03/CRW_35855-533x800.jpg" alt="" width="533" height="800" /></a></p>
<p style="text-align: right;">
<p style="text-align: right;">
<p style="text-align: center;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/"><img src="http://i.creativecommons.org/l/by-nc-sa/2.5/au/88x31.png" alt="Creative Commons License" /></a><br />
All  photos are licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/">Creative  Commons Attribution-Noncommercial-Share Alike 2.5 Australia License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=447</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;premature optimization&#8221;</title>
		<link>http://brnz.org/hbr/?p=437</link>
		<comments>http://brnz.org/hbr/?p=437#comments</comments>
		<pubDate>Tue, 24 Nov 2009 14:12:42 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[goto]]></category>
		<category><![CDATA[Knuth]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[optimization]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=437</guid>
		<description><![CDATA[Here is an except from Donald Knuth&#8217;s 1974 paper &#8220;Structured Programming with go to Statements&#8221;.  There is a well known quote at the end of the second paragraph :
The improvement in speed from Example 2 to Example 2a is only about 12%, and many people would pronounce that insignificant.  The conventional wisdom shared by many [...]]]></description>
			<content:encoded><![CDATA[<p>Here is an except from Donald Knuth&#8217;s 1974 paper &#8220;Structured Programming with go to Statements&#8221;.  There is a well known quote at the end of the second paragraph :</p>
<blockquote><p>The improvement in speed from Example 2 to Example 2a is only about 12%, and many people would pronounce that insignificant.  The conventional wisdom shared by many of today&#8217;s software engineers calls for ignoring efficiency in the small; but I believe this is simply an overreaction to the abuses they see being practiced by penny-wise-and-pound-foolish programmers, who can&#8217;t debug or maintain their &#8220;optimized&#8221; programs. In established engineering disciplines a 12% improvement, easily obtained, is never considered marginal; and I believe the same viewpoint should prevail in software engineering. Of course I wouldn&#8217;t bother making such optimizations on a one-shot job, but when it&#8217;s a question of preparing quality programs, I don&#8217;t want to restrict myself to tools that deny me such efficiencies.</p>
<p>There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We <em>should</em> forget about <em>small</em> efficiencies, say about 97% of the time: premature optimization is the root of all evil.</p>
<p>Yet we should no pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only <em>after</em> that code has been identified. It is often a mistake to make a priori judgments about what parts of a program are really critical, since the universal experience of programmers who have been using measurement tools has been that their intuitive guesses fail. After working with such tools for seven years, I&#8217;ve become convinced that all compilers written from now on should be designed to provide all programmers with feedback indicating what parts of their programs are costing the most; indeed, this feedback should be supplied automatically unless it has been specifically turned off.</p></blockquote>
<p>The quote to which I am referring &#8211; that &#8220;premature optimization is the root of all evil&#8221; &#8211; is, from time to time, used fait accompli to assert that any time spent optimising is time wasted &#8211; something that is clearly not the case when considering the quote in context.</p>
<p>There are a lot of other good ideas in Knuth&#8217;s article, many still quite relevant to software engineering. The full article (which can be obtained via <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.6084&amp;rep=rep1&amp;type=pdf">citeseerx</a>) is, primarily, a contribution to a  discussion of the time on the use of go to statements &#8211; another topic often reduced to a simple, extreme position, attributed to Edsger Dijkstra.  Knuth&#8217;s paper makes it clear that Dijkstra did not hold so tightly to that position himself.</p>
<p>This is the sort of paper that I find to be a fascinating read, with  both historical and technical value.</p>
<p>The final page of the article contains the following quote :</p>
<blockquote><p>A disturbingly large percentage of the students ran into situations that require <strong>go to</strong>&#8217;s, and sure enough, it was often because <strong>while</strong> didn&#8217;t work well to their plan, but almost invariably because their plan was poorly thought out.</p></blockquote>
<p>Which brought to mind another quote that I had seen recently, this one from George Orwell :</p>
<blockquote><p>A man may take to drink because he feels himself to be a failure, and then fail all the more completely because he drinks. It is rather the same thing that is happening to the English language. It becomes ugly and inaccurate because our thoughts are foolish, but the slovenliness of our language makes it easier for us to have foolish thoughts.</p></blockquote>
<p>It seems quite valid to say that there is a connection between our language and our expression (in terms of ideas, spoken word, programs, and more).</p>
<p>When trying to find a source for Orwell&#8217;s words (which you can find <a href="http://www.george-orwell.org/Politics_and_the_English_Language/0.html">here</a>), I was heartened to find these sentences follow those quoted above :</p>
<blockquote><p>The point is that the process is reversible.   Modern English, especially written English, is full of bad habits  which spread by imitation and which can be avoided if one is willing to  take the necessary trouble.</p></blockquote>
<p>Which I believe is also applicable to the expression and optimisation of computer programs.</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=437</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Some Linux on PS3 updates</title>
		<link>http://brnz.org/hbr/?p=430</link>
		<comments>http://brnz.org/hbr/?p=430#comments</comments>
		<pubDate>Sun, 22 Nov 2009 11:32:08 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[iView]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=430</guid>
		<description><![CDATA[I&#8217;ve updated the Linux distros page with links to articles about installing Ubuntu 9.10 [Joep Cremers Weblog] and Fedora 12 [Geoff Levand, Ken Werner] on the Playstation 3.
In mosty unrelated news,

IBM will not be releasing a previously planned successor to the PowerXCell 8i [heise online, Playstation University]
(neither article conveys particularly clear information to me &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated the <a href="http://brnz.org/hbr/?page_id=346">Linux distros page</a> with links to articles about installing Ubuntu 9.10 [<a href="http://joepcremers.nl/wordpress/?p=1595">Joep Cremers Weblog</a>] and Fedora 12 [<a href="http://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-howto/ps3-fedora-install-howto.txt">Geoff Levand</a>, <a href="http://www.elliptique.net/wiki/doku.php?id=fedora12-ps3">Ken Werner</a>] on the Playstation 3.</p>
<p>In mosty unrelated news,</p>
<ul>
<li>IBM will not be releasing a previously planned successor to the PowerXCell 8i [<a href="http://www.heise.de/newsticker/meldung/SC09-IBM-laesst-Cell-Prozessor-auslaufen-864497.html">heise online</a>,<a href="http://www.playstationuniversity.com/ibm-cancels-cell-processor-development-1295/"> Playstation University</a>]<br />
(neither article conveys particularly clear information to me &#8211; not least because I have only a machine translation of the first one)</li>
<li>Playstation 3 firmware version 3.10 seems to have added ABC iView and BBC iPlayer support to the XMB (the presence of which *may* be related to your PSN region, geographical restrictions to accessing video content still seem to apply). If you can&#8217;t see it in the TV column of your XMB, try rebooting&#8230;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=430</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PS3, Fedora 11 and OpenCL</title>
		<link>http://brnz.org/hbr/?p=423</link>
		<comments>http://brnz.org/hbr/?p=423#comments</comments>
		<pubDate>Tue, 03 Nov 2009 13:06:04 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[OpenCL]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=423</guid>
		<description><![CDATA[Ken Werner has written a nice guide to installing Fedora 11 on the PS3.  (And I&#8217;ve added the link to the Linux distro page).
Inside Ken&#8217;s page is some details on installing and running demos from the recent &#8220;OpenCL Development Kit for Linux on Power&#8221;, which is something I&#8217;m now even more keen to try :)
(It [...]]]></description>
			<content:encoded><![CDATA[<p>Ken Werner has written a nice guide to <a href="http://www.elliptique.net/wiki/doku.php?id=ps3linux">installing Fedora 11 on the PS3</a>.  (And I&#8217;ve added the link to the <a href="http://brnz.org/hbr/?page_id=346">Linux distro page</a>).</p>
<p>Inside Ken&#8217;s page is some details on installing and running demos from the recent <a href="http://www.alphaworks.ibm.com/tech/opencl">&#8220;OpenCL Development Kit for Linux on Power&#8221;</a>, which is something I&#8217;m now even more keen to try :)</p>
<p>(It seems a little odd that the only place that OpenCL SPE acceleration is mentioned is in one of the FAQs&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=423</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>20091025 photographs</title>
		<link>http://brnz.org/hbr/?p=399</link>
		<comments>http://brnz.org/hbr/?p=399#comments</comments>
		<pubDate>Sun, 25 Oct 2009 03:49:40 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[imagery]]></category>
		<category><![CDATA[Fern Glade]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=399</guid>
		<description><![CDATA[Over my back fence is a little patch of greenery that I&#8217;m quite certain doesn&#8217;t look as consistently green as this any more.

View Larger Map
The were some heavy winds across the state a couple of weeks back &#8211; we experienced a small amount of superficial damage to the house, but the trees down the hill [...]]]></description>
			<content:encoded><![CDATA[<p>Over my back fence is a little patch of greenery that I&#8217;m quite certain doesn&#8217;t look as consistently green as this any more.</p>
<p style="text-align: center;">
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/?ie=UTF8&amp;hq=&amp;hnear=19+Old+Surrey+Rd,+Emu+Heights+TAS+7320,+Australia&amp;ll=-41.078902,145.921376&amp;spn=0.009883,0.017713&amp;t=k&amp;z=17&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/?ie=UTF8&amp;hq=&amp;hnear=19+Old+Surrey+Rd,+Emu+Heights+TAS+7320,+Australia&amp;ll=-41.078902,145.921376&amp;spn=0.009883,0.017713&amp;t=k&amp;z=17&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<p>The were some heavy winds across the state a couple of weeks back &#8211; we experienced a small amount of superficial damage to the house, but the trees down the hill (leading down to <strong>Fern Glade</strong>) suffered a great deal.  There are a lot of broken branches, some trees snapped in half, while some of the largest have been tipped over.</p>
<p>Last week I wandered down the hill with the rest of the family to take a closer look at the extent of what had happened.  Unfortunately, I don&#8217;t have any &#8216;before&#8217; shots to give a better context for the photos, but in part it feels like a sizable section has been clear-felled by the wind.</p>
<p>(Photos were taken on 20091017)</p>
<p>Click images for larger version.</p>
<p><a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34108.jpg"><img class="aligncenter size-large wp-image-388" style="border: 1px solid black;" title="CRW_34108" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34108-540x359.jpg" alt="CRW_34108" width="540" height="359" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34122.jpg"><img class="aligncenter size-large wp-image-389" style="border: 1px solid black;" title="CRW_34122" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34122-533x800.jpg" alt="CRW_34122" width="533" height="800" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34123.jpg"><img class="aligncenter size-large wp-image-390" style="border: 1px solid black;" title="CRW_34123" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34123-540x359.jpg" alt="CRW_34123" width="540" height="359" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34130.jpg"><img class="aligncenter size-large wp-image-391" style="border: 1px solid black;" title="CRW_34130" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34130-533x800.jpg" alt="CRW_34130" width="533" height="800" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34135.jpg"><img class="aligncenter size-large wp-image-392" style="border: 1px solid black;" title="CRW_34135" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34135-540x359.jpg" alt="CRW_34135" width="540" height="359" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34143.jpg"><img class="aligncenter size-large wp-image-393" style="border: 1px solid black;" title="CRW_34143" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34143-533x800.jpg" alt="CRW_34143" width="533" height="800" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34161.jpg"><img class="aligncenter size-large wp-image-394" style="border: 1px solid black;" title="CRW_34161" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34161-540x359.jpg" alt="CRW_34161" width="540" height="359" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34162.jpg"><img class="aligncenter size-large wp-image-395" style="border: 1px solid black;" title="CRW_34162" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34162-533x800.jpg" alt="CRW_34162" width="533" height="800" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34203.jpg"><img class="aligncenter size-large wp-image-397" style="border: 1px solid black;" title="CRW_34203" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34203-540x359.jpg" alt="CRW_34203" width="540" height="359" /></a><br />
<a href="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34172.jpg"><img class="aligncenter size-large wp-image-396" style="border: 1px solid black;" title="CRW_34172" src="http://brnz.org/hbr/wp-content/uploads/2009/10/CRW_34172-533x800.jpg" alt="CRW_34172" width="533" height="800" /></a></p>
<p style="text-align: center;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/au/88x31.png" /></a><br />All photos are licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/">Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=399</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sixaxisd and N900? Perhaps&#8230;</title>
		<link>http://brnz.org/hbr/?p=378</link>
		<comments>http://brnz.org/hbr/?p=378#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:48:00 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[N900]]></category>
		<category><![CDATA[sixaxis]]></category>
		<category><![CDATA[sixaxisd]]></category>
		<category><![CDATA[sixpair]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=378</guid>
		<description><![CDATA[My previous post was mentioned over at maemo.org, with some speculation as to whether sixaxisd might work on the Nokia N900.
My initial thought was that with a small modification to sixpair, it would be possible to feed it an arbitrary BD address, so I started poking around in the source &#8211; and found that the [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://brnz.org/hbr/?p=363">previous post</a> was mentioned over at <a href="http://talk.maemo.org/showthread.php?t=32887&amp;page=2">maemo.org</a>, with some speculation as to whether sixaxisd might work on the Nokia N900.</p>
<p>My initial thought was that with a small modification to sixpair, it would be possible to feed it an arbitrary BD address, so I started poking around in the source &#8211; and found that the feature is already there :D</p>
<p>You need the BD address of <strong>the device that you want to pair with the sixaxis</strong> &#8211; get this with hciconfig &#8211; run it (on the N900 &#8211; or whatever system) and you&#8217;ll hopefully see something like this (I don&#8217;t have an N900) :</p>
<pre># hciconfig
hci0:   Type: USB
        BD Address: 00:1A:80:2C:BE:D0 ACL MTU: 384:8 SCO MTU: 64:8
        DOWN
        RX bytes:87170 acl:1503 sco:0 events:62 errors:0
        TX bytes:574 acl:22 sco:0 commands:21 errors:0</pre>
<p>Plug your sixaxis into some other machine via USB, grab (and compile) <a href="http://www.pabr.org/sixlinux/sixlinux.en.html">sixpair.c</a> and run it with the BD address</p>
<pre>wget http://www.pabr.org/sixlinux/sixpair.c
gcc sixpair.c -lusb -o sixpair
./sixpair 00:1A:80:2C:BF:D3 # use your own BD addr here</pre>
<p>And that should be about it &#8211; unplug the sixaxis, continue with the instructions from the <a href="../?p=363">previous post</a> and when you press the PS button, everything should work as if by magic.</p>
<p>If it does not, get more magic.  Either way, leave a comment and let me know how it goes :)</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=378</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>A summary of Linux distros for the PS3</title>
		<link>http://brnz.org/hbr/?p=372</link>
		<comments>http://brnz.org/hbr/?p=372#comments</comments>
		<pubDate>Wed, 21 Oct 2009 11:52:39 +0000</pubDate>
		<dc:creator>jonathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[ps3]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://brnz.org/hbr/?p=372</guid>
		<description><![CDATA[I&#8217;ve been asked about selecting a Linux distro for use on the Playstation 3 a few times recently, so I&#8217;ve put together a page summarising some of the options which has mentions of pdaXrom, Debian, Ubuntu, Yellow Dog, Fedora, RHEL and Gentoo.
It&#8217;s all based on my own knowledge and experience &#8211; if there&#8217;s something you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been asked about selecting a Linux distro for use on the Playstation 3 a few times recently, so I&#8217;ve put together <a href="http://brnz.org/hbr/?page_id=346">a page summarising some of the options</a> which has mentions of pdaXrom, Debian, Ubuntu, Yellow Dog, Fedora, RHEL and Gentoo.</p>
<p>It&#8217;s all based on my own knowledge and experience &#8211; if there&#8217;s something you think is worth adding (or correcting, or improving) let me know.</p>
<p>[Update 20091021: Expanded the entry for Gentoo based on suggestions from unsolo &amp; cheriff, and added a link to <a href="http://sourceforge.net/projects/cellwindowssdk/">Windows-Hosted Cell SDK</a> which I saw mentioned by <a href="http://twitter.com/domipheus">@domipheus</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://brnz.org/hbr/?feed=rss2&amp;p=372</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
