<?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>dave's blog of art and programming</title>
	<atom:link href="http://www.pawfal.org/dave/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pawfal.org/dave/blog</link>
	<description>user generated content</description>
	<lastBuildDate>Thu, 11 Mar 2010 11:33:17 +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>Scheme bricks livecoding at chmod +x art</title>
		<link>http://www.pawfal.org/dave/blog/2010/03/scheme-bricks-livecoding-at-chmod-x-art/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/03/scheme-bricks-livecoding-at-chmod-x-art/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 11:33:17 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[gig]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1111</guid>
		<description><![CDATA[Here&#8217;s the first full solo performance I&#8217;ve tried with scheme bricks &#8211; I missed Alex&#8217;s sounds but it&#8217;s great footage, thanks go to the goto10 streaming/recording crew.

]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the first full solo performance I&#8217;ve tried with scheme bricks &#8211; I missed Alex&#8217;s sounds but it&#8217;s great footage, thanks go to the goto10 streaming/recording crew.</p>
<p><embed src="http://blip.tv/play/AYHMuAcC" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/03/scheme-bricks-livecoding-at-chmod-x-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The hidden history of the Monopoly board game</title>
		<link>http://www.pawfal.org/dave/blog/2010/03/the-hidden-history-of-the-monopoly-board-game/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/03/the-hidden-history-of-the-monopoly-board-game/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 07:14:21 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[random thoughts]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1105</guid>
		<description><![CDATA[As I&#8217;ve been researching the ideas of Jane McGonigal lately, I was interested to find out the real history of the Monopoly board game from Dmytri Kleiner at the weekend. From wikipedia, thanks to the research of Ralph Anspach:
In 1903, the Georgist Lizzie Magie applied for a patent on a game called The Landlord&#8217;s Game [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve been researching the ideas of <a href="http://www.avantgame.com/">Jane McGonigal</a> lately, I was interested to find out the real history of the Monopoly board game from <a href="http://www.telekommunisten.net/">Dmytri Kleiner</a> at the weekend. From <a href="http://en.wikipedia.org/wiki/History_of_the_board_game_Monopoly">wikipedia</a>, thanks to the research of <a href="http://en.wikipedia.org/wiki/Ralph_Anspach">Ralph Anspach</a>:</p>
<p><em>In 1903, the Georgist Lizzie Magie applied for a patent on a game called The Landlord&#8217;s Game with the object of showing that rents enriched property owners and impoverished tenants. She knew that some people would find it hard to understand the logic behind the idea, and she thought that if the rent problem and the Georgist solution to it were put into the concrete form of a game, it might be easier to demonstrate. She was granted the patent for the game in January 1904. The Landlord&#8217;s Game became one of the first board games to use a &#8220;continuous path,&#8221; without clearly defined start and end spaces on its board. A copy of Magie&#8217;s game, dating from 1903–1904, was discovered for the PBS series History Detectives. This copy featured property groups, organized by letters, later a major feature of Monopoly as published by Parker Brothers.</em></p>
<p>While the official history on the <a href="http://www.hasbro.com/monopoly">Hasbro monopoly website</a> picks up the story a little bit later on, and leaves off all details of its original, critical nature:</p>
<p><em>It was 1934, the height of the Great Depression, when Charles B. Darrow of Germantown, Pennsylvania, showed what he called the MONOPOLY game to the executives at Parker Brothers. Can you believe it, they rejected the game due to &#8220;52 design errors&#8221;! But Mr. Darrow wasn&#8217;t daunted. Like many other Americans, he was unemployed at the time, and the game&#8217;s exciting promise of fame and fortune inspired him to produce the game on his own.</em></p>
<p>Heres an image from Lizzie&#8217;s original patent:</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/BoardGamePatentMagie.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/BoardGamePatentMagie-201x300.png" alt="" title="BoardGamePatentMagie" width="201" height="300" class="alignnone size-medium wp-image-1106" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/03/the-hidden-history-of-the-monopoly-board-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wind shapes</title>
		<link>http://www.pawfal.org/dave/blog/2010/03/wind-shapes/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/03/wind-shapes/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 15:07:25 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[fluxus hacking]]></category>
		<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1103</guid>
		<description><![CDATA[A simple test filling arbitrary shapes with particles:

Code here
]]></description>
			<content:encoded><![CDATA[<p>A simple test filling arbitrary shapes with particles:</p>
<p><embed src="http://blip.tv/play/AYHKnVwC" type="application/x-shockwave-flash" width="480" height="414" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p><a href="http://www.pawfal.org/flotsam/wind-shape/wind.scm">Code here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/03/wind-shapes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>post chmod +x art</title>
		<link>http://www.pawfal.org/dave/blog/2010/03/post-chmod-x-art/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/03/post-chmod-x-art/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 13:22:12 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[gig]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[random thoughts]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1080</guid>
		<description><![CDATA[Back from Groningen, and my mind is full of all sorts of crazy ideas after GOTO10&#8217;s mini festival. Although mini in size, the quality of this event was very high.
The day after arriving, Gabor and I did our best to introduce our workshop participants to livecoding and fluxus, from the basics of scheme to some [...]]]></description>
			<content:encoded><![CDATA[<p>Back from Groningen, and my mind is full of all sorts of crazy ideas after <a href="http://makeart.goto10.org/chmod+x/">GOTO10&#8217;s mini festival</a>. Although mini in size, the quality of this event was very high.</p>
<p>The day after arriving, Gabor and I did our best to introduce our workshop participants to livecoding and fluxus, from the basics of scheme to some more visually juicy aspects:</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00288.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00288-300x225.jpg" alt="" title="DSC00288" width="300" height="225" class="alignnone size-medium wp-image-1081" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00290.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00290-300x225.jpg" alt="" title="DSC00290" width="300" height="225" class="alignnone size-medium wp-image-1082" /></a></p>
<p>The next day the roles were reversed as we took part in workshops lead by some of the previous day&#8217;s participants. This was the &#8217;speed geeking&#8217; event, we had 30 minutes to learn about a new project and contribute something towards it before moving on to the next. We looked at games as explorations of the struggle between supermarkets and open markets, by playing and helping to refine the rules of a boardgame prototype designed by <a href="http://www.kucjica.org/">Selena Savic</a>. There was also a creative strategy involving recycling digital trash by <a href="http://www.parcodiyellowstone.it/">Loredana Bontempi</a> called <a href="http://www.gitorious.net/ddump">ddump</a>. I recycled a presentation using open office into a glorious piece of digital art. Then <a href="http://pzwart.wdka.nl/networked-media/2010/01/03/emanuele-bonetti/">Emanuele Bonetti</a> showed us a new way of sharing image references called <a href="http://www.pickpic.timoklok.com/">pickpic</a> which promoted online collaboration. This was a good format for fast presentation of ideas &#8211; I think the time was short enough to keep it slightly chaotic and therefore giving it a fresh, informal feeling.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00293.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00293-300x225.jpg" alt="" title="DSC00293" width="300" height="225" class="alignnone size-medium wp-image-1083" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00294.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00294-300x225.jpg" alt="" title="DSC00294" width="300" height="225" class="alignnone size-medium wp-image-1084" /></a> </p>
<p>The evening ended with &#8216;Petcha Gnucha&#8217; mixing up presentations of work from the <a href="http://pzwart.wdka.nl/home/">Piet Zwart Institute</a> with Groningen&#8217;s <a href="http://www.mohr-i.nl/">Frank Mohr Institute</a>.</p>
<p>On Saturday there were talks themed around &#8216;Hocus Pocus&#8217;. Martin Howse discussed the concepts surrounding his <a href="http://www.1010.co.uk/org/island2.html">island2</a> installation which was being shown in the <a href="http://www.sign2.nl/">sign gallery</a>. He took us on a journey through ideas of protected or hidden spaces including stenography, kernel security rings and software design tied to themes of vampirism, pornography, plague and classical concepts of concealment. Dmytri Kleiner gave a talk looking at how political ideologies tend to attach to different network topologies, what it could mean to be a <a href="http://www.telekommunisten.net/">venture communist</a> and why the world needs them. Finally <a href="http://pzwart.wdka.nl/networked-media/2010/01/02/florian-cramer/">Florian Cramer</a> made a passionate call for digital art to return to the critical, comparing the work of <a href="http://www.youtube.com/watch?v=yGvWL7Vb7I8">Constant Dullaart</a> (superb name for an artist, can&#8217;t be real) with Heath Bunting&#8217;s <a href="http://www.rhizome.org/artbase/1680/index.html">Own, Be Owned, or Remain Invisible</a>.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00305.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00305-300x225.jpg" alt="" title="DSC00305" width="300" height="225" class="alignnone size-medium wp-image-1086" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00307.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00307-300x225.jpg" alt="" title="DSC00307" width="300" height="225" class="alignnone size-medium wp-image-1087" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00308.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00308-300x225.jpg" alt="" title="DSC00308" width="300" height="225" class="alignnone size-medium wp-image-1088" /></a></p>
<p>In the evening it was our turn (<a href="http://umlaeute.mur.at/">IOhannes Zmölnig</a>, <a href="http://ncp.kibu.hu/">no copy paste</a> and I) to livecode for the enjoyment of those equipped with headphones at the placard concert. </p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00309.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00309-300x225.jpg" alt="" title="DSC00309" width="300" height="225" class="alignnone size-medium wp-image-1089" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00312.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00312-300x225.jpg" alt="" title="DSC00312" width="300" height="225" class="alignnone size-medium wp-image-1091" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00317.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00317-300x225.jpg" alt="" title="DSC00317" width="300" height="225" class="alignnone size-medium wp-image-1092" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00321.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/DSC00321-300x225.jpg" alt="" title="DSC00321" width="300" height="225" class="alignnone size-medium wp-image-1093" /></a></p>
<p>I have some footage of my performance, but it&#8217;ll have to wait for the moment. I should also mention Breakfast club &#8211; which was an approach to try and document discussions about the previous day&#8217;s events the morning after. The theory being that you can lure people into a situation involving cameras and microphones by the deployment of freshly baked croissants first thing in the morning. This worked well to get discussion going between the different groups, and is something I&#8217;d like to see used more at other events.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/03/post-chmod-x-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>chmod +x art</title>
		<link>http://www.pawfal.org/dave/blog/2010/03/chmod-x-art/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/03/chmod-x-art/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:14:17 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[gig]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1071</guid>
		<description><![CDATA[This week it&#8217;s finally time for:

At Sign gallery Groningen, the Netherlands. I&#8217;m going to be doing a fluxus workshop with Gabor and a scheme bricks placard performance &#8211; the first one I&#8217;ve tried solo, I think!
chmod +x art The computer as theatre, as writer of love letters, the computer as world, a place for revolution, [...]]]></description>
			<content:encoded><![CDATA[<p>This week it&#8217;s finally time for:</p>
<p><a href="http://makeart.goto10.org/chmod+x/"><img class="alignnone size-full wp-image-1072" title="makeartchmod+x" src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/makeartchmod+x.png" alt="" width="200" height="185" /></a></p>
<p>At <a href="http://www.sign2.nl/">Sign gallery</a> Groningen, the Netherlands. I&#8217;m going to be doing a <a href="http://makeart.goto10.org/chmod+x/?page=hello_world-fluxus&amp;lang=en">fluxus workshop with Gabor</a> and a <a href="http://makeart.goto10.org/chmod+x/?page=dave_griffiths&amp;lang=en">scheme bricks placard performance</a> &#8211; the first one I&#8217;ve tried solo, I think!</p>
<p><em>chmod +x art The computer as theatre, as writer of love letters, the computer as world, a place for revolution, art as executable. chmod +x art presents artists that turn our ideas, dreams and fantasies about machines and code up side down and show programming as an infinitely intriguing way of creating. Code is a medium. Whether it is used to formulate instructions for a machine, ideas for people or both. The writing of it influences and shapes the creative process of the artist. For that reason, ghost programmers may be left at home. Besides the importance of writing code yourself, it is essential to show that code. Without source, software art remains a magic trick. Do It Yourself and show us your sh*t!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/03/chmod-x-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More fluxus windows work</title>
		<link>http://www.pawfal.org/dave/blog/2010/03/more-fluxus-windows-work/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/03/more-fluxus-windows-work/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:06:52 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[fluxus hacking]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1073</guid>
		<description><![CDATA[I&#8217;m amazed when I have to do any windows programming now how much you can do using GNU software &#8211; the whole lot is available these days. I&#8217;ve been sorting out the windows version of fluxus so it actually releasable, and using MinGW and emacs (which I&#8217;m a recent convert to).
I&#8217;ve managed to get the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m amazed when I have to do any windows programming now how much you can do using GNU software &#8211; the whole lot is available these days. I&#8217;ve been sorting out the windows version of fluxus so it actually releasable, and using <a href="http://www.mingw.org/">MinGW</a> and <a href="http://www.gnu.org/software/emacs/">emacs</a> (which I&#8217;m a recent convert to).</p>
<p>I&#8217;ve managed to get the script loading gui working, fix a load of crash bugs and most importantly get the more advanced rendering code working &#8211; here&#8217;s a screenshot of the GLSL shader example script running:</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/scr.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/03/scr-300x169.png" alt="" title="scr" width="300" height="169" class="alignnone size-medium wp-image-1075" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/03/more-fluxus-windows-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>exquisite code pictures</title>
		<link>http://www.pawfal.org/dave/blog/2010/02/exquisite-code-pictures/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/02/exquisite-code-pictures/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 13:30:02 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[exquisite_code]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1062</guid>
		<description><![CDATA[    
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00269.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00269-300x225.jpg" alt="" title="dsc00269" width="300" height="225" class="alignnone size-medium wp-image-1063" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00270.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00270-225x300.jpg" alt="" title="dsc00270" width="225" height="300" class="alignnone size-medium wp-image-1064" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00272.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00272-300x225.jpg" alt="" title="dsc00272" width="300" height="225" class="alignnone size-medium wp-image-1065" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00273.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00273-225x300.jpg" alt="" title="dsc00273" width="225" height="300" class="alignnone size-medium wp-image-1066" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00274.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/dsc00274-225x300.jpg" alt="" title="dsc00274" width="225" height="300" class="alignnone size-medium wp-image-1067" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/02/exquisite-code-pictures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Groworld research report</title>
		<link>http://www.pawfal.org/dave/blog/2010/02/groworld-research-report/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/02/groworld-research-report/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 11:25:39 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[groworld]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1059</guid>
		<description><![CDATA[One of the things you have to do if you work with foam is to write research reports. These are done at the end of a phase of work, and give a personal record of the decisions and path you took for an individual project. This is a good way to accumulate knowledge and compare [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things you have to do if you work with foam is to write <a href="http://libarynth.org/foam_research_reports">research reports</a>. These are done at the end of a phase of work, and give a personal record of the decisions and path you took for an individual project. This is a good way to accumulate knowledge and compare different ways of working. This is <a href="http://libarynth.org/research_report_groworld_dave">my one for the groworld project</a> and mostly comes from this blog actually, as well as a bit more detail about what was going on at the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/02/groworld-research-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>exquisite code</title>
		<link>http://www.pawfal.org/dave/blog/2010/02/exquisite-code-2/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/02/exquisite-code-2/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 10:47:30 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[exquisite_code]]></category>
		<category><![CDATA[fluxus hacking]]></category>
		<category><![CDATA[livecoding]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1054</guid>
		<description><![CDATA[A script that uses some material from last weeks intensive writing sweatshop. We generated a huge amount of nonsense of varying degrees, most of which didn&#8217;t make it into the novel and went into a &#8220;waste dump&#8221;. This text was exploited for the performances in various ways, my attempt picks words from the text and [...]]]></description>
			<content:encoded><![CDATA[<p>A script that uses some material from last weeks <a href="http://exquisite-code.com/">intensive writing sweatshop</a>. We generated a huge amount of nonsense of varying degrees, most of which didn&#8217;t make it into the novel and went into a &#8220;waste dump&#8221;. This text was exploited for the performances in various ways, my attempt picks words from the text and connects them together with a 3D spring model graph &#8211; a sort of parallel to what my mind was doing while taking part. The <a href="http://www.pawfal.org/flotsam/ex_code/">code is here</a>.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/ex_code1.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/ex_code1-300x225.png" alt="" title="ex_code1" width="300" height="225" class="alignnone size-medium wp-image-1055" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/ex_code2.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/ex_code2-300x225.png" alt="" title="ex_code2" width="300" height="225" class="alignnone size-medium wp-image-1056" /></a></p>
<p>Edit &#8211; finally managed to upload a video of this&#8230;</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/e4wOJQJPVxw&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/e4wOJQJPVxw&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/02/exquisite-code-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>i18n</title>
		<link>http://www.pawfal.org/dave/blog/2010/02/i18n/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/02/i18n/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 14:38:29 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[fluxus hacking]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1049</guid>
		<description><![CDATA[I&#8217;ve spent a lot of time this week concentrating on internationalisation (shortened to i18n in coder speak) for the fluxus scratchpad editor. I didn&#8217;t have much luck finding comprehensible help online, most of this was done from memory of porting Evolva to Japanese years ago. I thought a blog post about it might be good [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent a lot of time this week concentrating on internationalisation (shortened to i18n in coder speak) for the fluxus scratchpad editor. I didn&#8217;t have much luck finding comprehensible help online, most of this was done from memory of porting <a href="http://en.wikipedia.org/wiki/Evolva">Evolva</a> to Japanese years ago. I thought a blog post about it might be good for anyone treading this path in the future.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/unicode.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/unicode-300x288.png" alt="" title="unicode" width="300" height="288" class="alignnone size-medium wp-image-1050" /></a></p>
<p>The gnome character map was very useful, as was <a href="http://www.fileformat.info/info/unicode/">this website</a> which includes a bit more information.</p>
<p>Firstly the history of how text is dealt with is a rather shameful mess of assumptions and out of date compromises. With higher level programming languages this is almost a solved problem, but in C++ it&#8217;s not at all. It would also possibly be less of an issue if we could use an editor widget from a normal windowing toolkit, but we can&#8217;t as we need to render text in OpenGL with all sorts of whizzbang livecoding zooming effects.</p>
<p>It&#8217;s an often told story, first there was ascii, and assumptions of everyone speaking english, and 8bit having to be enough (actually 7bits) for all characters needed in text. Then a whole host of ascii extensions for different parts of the world, using the unused top 127 values of ascii for special characters, while the Japanese for example having their own system entirely called Shift_JIS. </p>
<p>Then in an effort to sort out this mess, lots of committees were formed and <a href="http://www.unicode.org/standard/WhatIsUnicode.html">Unicode</a> was the result &#8211; with the following aim: &#8220;Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language.&#8221; </p>
<p>In order to do this, unicode needs to support 107,000 possible characters &#8211; enough for all the languages ever spoken (including exotic scripts such as ancient Egyptian hieroglyphics, <a href="http://en.wikipedia.org/wiki/Canadian_Aboriginal_syllabics">Canadian Aboriginal syllabics</a> and <a href="http://en.wikipedia.org/wiki/Byzantine_music">Byzantine music scripts</a>) and lots of room for new ones too. In order to do this, you need at least 32 bits, on their own 16, and obviously 8 bits are not enough. </p>
<p>The problem is that ascii is so prevalent, and 32bits per character is a lot for embedded devices, so unicode comprises multiple encoding formats. utf-32 is the easy, but memory eating one, where all characters are the same size, and there is utf-16 and utf-8 which encode variable length characters to save space. utf-8 has the interesting extra property of being compatible with ascii, it reserves the single byte ascii codes and uses the upper 128 values as control codes to signify multibyte chars. For this reason, utf-8 has become the text encoding of the internet, and therefore a standard for plain text files pretty much everywhere. </p>
<p>In the fluxus scratchpad, I decided to use utf-32 for all internal strings &#8211; using the std::wstring class, and encode from and to utf-8 at all points of input and output. The reason for this is that fairly simple operations like finding the length of a string, or moving back a single character is complicated with utf-8 &#8211; you need to detect the multibyte characters at each point. Using utf-32 it&#8217;s much simpler, but you also need to be able to read and write utf8/ascii files.</p>
<p>Ok, that&#8217;s the strategy, and you&#8217;d think there would be lots of code online to do conversions between these formats &#8211; or even standard libraries in C++ to do this. No. The only code I found was buggy (a &#8216;>&#8217; instead of a &#8216;>>&#8217; which took me too long to find) but some working code <a href="http://git.savannah.gnu.org/gitweb/?p=fluxus.git;a=blob;f=src/Unicode.cpp;h=2991331dc54bc7d09632a5463e2975d77c54fcfe;hb=HEAD">is here</a>. In those functions string is assumed to contain ascii or utf-8 and wstrings are assumed to be utf-32 (even this is going to have to change on the windows version where wstrings are 16bit, sigh).</p>
<p>So, a big search replace for string to wstring in the scratchpad code with conversions in the loading, saving and entry and exit points for the PLT Scheme interpreter, and all was good&#8230;</p>
<p>Except keyboard input. I&#8217;m still trying to get to the bottom of this and find out what is an artifact of using GLUT and what is the underlying operating system, but at the moment it looks like the mac sends utf-8 keyboard codes, so multiple calls to the glutKeyboardFunc callback per keypress for multibyte chars. On Linux it seems like just the first utf-8 byte gets through, I can&#8217;t find where the others get stashed. The minimal information online seems to indicate that this is stretching the abilities of the GLUT toolkit somewhat so I&#8217;ve given up for now at least.</p>
<p>The last thing to do was switch the fluxus editor font from the minimal Bitstream Vera Sans Mono to the more characterful Deja Vu Sans Mono which other than having many more glyphs looks exactly the same.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/pt-help.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/02/pt-help-300x225.png" alt="" title="pt-help" width="300" height="225" class="alignnone size-medium wp-image-1052" /></a></p>
<p>Portuguese help in fluxus &#8211; from utf-8 in the code doc comments, to a utf-8 helpstrings file, read in by the scheme interpreter, converted by the scratchpad to utf-32 and rendered by fluxus&#8217;s OpenGL glyph renderer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/02/i18n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
