<?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>Alex McLean &#187; misc</title>
	<atom:link href="http://yaxu.org/category/misc/feed/" rel="self" type="application/rss+xml" />
	<link>http://yaxu.org</link>
	<description>Making music with text</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:18:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Quick custom Linux live CDs for workshops</title>
		<link>http://yaxu.org/quick-custom-linux-live-cds-for-workshops/</link>
		<comments>http://yaxu.org/quick-custom-linux-live-cds-for-workshops/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 21:55:58 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=807</guid>
		<description><![CDATA[People bring all kinds of laptops to workshops, and installing your software on them might take hours.  So it&#8217;s nice to just give everyone a bootable USB stick or CD, containing a live linux distribution (i.e. one that runs straight from the USB stick/CD) and the software.  This can get a room full of people [...]]]></description>
			<content:encoded><![CDATA[<p>People bring all kinds of laptops to workshops, and installing your software on them might take hours.  So it&#8217;s nice to just give everyone a bootable USB stick or CD, containing a live linux distribution (i.e. one that runs straight from the USB stick/CD) and the software.  This can get a room full of people up booting into an identical system in a matter of minutes.  Here&#8217;s an easy way that I&#8217;ve found to do it:</p>
<h4>Choose your base distribution</h4>
<p>For workshops, I like <a href="http://www.linuxmint.com/download.php">Linux Mint LXDE edition</a>. It&#8217;s lightweight so works with less powerful machines that people might bring, and is based on Ubuntu.  There&#8217;s also a debian based edition of Linux Mint which is great, but it only comes in DVD size which doesn&#8217;t fit on cheaper USB sticks, and the customisation process takes long enough compressing a CD&#8217;s worth of OS.</p>
<p>Whatever version of linux you choose, download the .iso file of the installation CD or DVD.</p>
<p><span class="Apple-style-span" style="font-weight: bold;">Load the .iso file in a virtual machine</span></p>
<p>Install <a href="https://www.virtualbox.org/">VirtualBox</a> OSE, create a virtual machine with enough disk space for what you want to do, and set the CD of the virtual machine to point at the .iso you downloaded.  Then start the virtual machine, install the distribution to it, and boot into it.</p>
<h4>Customise the OS</h4>
<p>Install everything you need for the workshop.  You might want to remove some stuff too, especially if you want everything to fit back onto a CD.</p>
<h4>Create a new .iso</h4>
<p>Install <a href="http://www.geekconnection.org/remastersys/">remastersys</a> and run this command:</p>
<blockquote><p>sudo remastersys backup</p></blockquote>
<p>This takes a fair few minutes to run, but is fully automated.  You end up with an .iso that is a live CD of the system you&#8217;ve customised.  Remastersys is really the hero there, I&#8217;ve gone through a manual process before and it was painful.</p>
<p>I have had one strange problem with running this under linux mint lxde &#8212; failed boots due to lack of ubninit.  For USB keys this is easily fixable by grabbing the initrd file from /boot in the virtual machine, and copying it into /ubninit on the USB key.  Not sure how you&#8217;d do it for CDs and DVDs, I guess you&#8217;d have to edit the .iso somehow.</p>
<h4>Burn to CD or USB keys</h4>
<p>I really recommend USB keys, I&#8217;ve found booting from CDs really slow on some machines, especially those apple mac laptops for some reason&#8230;  Plus a lot of laptops and netbooks don&#8217;t have CD drives these days.  To burn an .iso to USB I recommend <a href="http://unetbootin.sourceforge.net/">unetbootin</a>.  Be sure to unmount/eject/&#8221;safely remove&#8221; the USB key properly before removing it. <strong>**update** It seems Macs can&#8217;t boot from a USB key without <a href="https://help.ubuntu.com/community/How%20to%20install%20Ubuntu%20on%20MacBook%20using%20USB%20Stick">hassle</a>, so you have to burn CDs for mac people, or get them to buy a better computer.</strong></p>
<h4>TL;DR</h4>
<p>Install an .iso distro into a virtualbox, get it right there, then use remastersys to make a new iso and burn to CD, or preferably write to USB keys with unetbootin.</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=807&amp;md5=74e6fec06b70cc485428aab5a06e5c75" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/quick-custom-linux-live-cds-for-workshops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social network time</title>
		<link>http://yaxu.org/social-network-time/</link>
		<comments>http://yaxu.org/social-network-time/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 17:20:10 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=797</guid>
		<description><![CDATA[I&#8217;m privileged to be able to hear my grandmother Billie Campbell singing The Old Lamplighter in the 1940s, even though I was born after her death.  I&#8217;m also privileged to be able to see (but not hear) my great-grandfather John Ross Campbell on his release from being a political prisoner for incitement to mutiny in 1924. I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m privileged to be able to hear my grandmother <a href="http://yaxu.org/tmp/the_old_lamplighter.mp3">Billie Campbell singing The Old Lamplighter</a> in the 1940s, even though I was born after her death.  I&#8217;m also privileged to be able to see (but not hear) my great-grandfather <a href="http://www.britishpathe.com/record.php?id=21305">John Ross Campbell on his release from being a political prisoner</a> for <a href="http://en.wikipedia.org/wiki/Campbell_Case">incitement to mutiny</a> in 1924.</p>
<p>I&#8217;m privileged because I&#8217;m in my 30s, and recordings were comparatively rare in my foremother and forefathers&#8217; days &#8212; these singular glimpses are treasured as extraordinary, I feel very lucky to have them.  I really have no feeling of what it would be like to be a child born now, growing up with access to the  minutiae of my parents&#8217; social networking timelines.  Overall probably positive, I think, but perhaps it could be more positive if we were made to be more mindful of what we say there.  Timelines are not just about a linear sequence of stray moments, but of the cycles of life, including the flashes of emotion around the birth and death of stages of life and of the lives of people.  Personal history is not just about projection from the past to the future, but also about the alignment of the lives of those we touch with our own.</p>
<p>I think that if the phrase &#8220;social network&#8221; is to live up to the meaning it had <em>before</em> the dawn of firefly, friendster, facebook and whatever comes next, then the programmers of these systems have to start taking a longer, more structured view of time.</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=797&amp;md5=746379f593366a4e30561ef9f13b4f14" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/social-network-time/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://yaxu.org/tmp/the_old_lamplighter.mp3" length="4750252" type="audio/mpeg" />
		</item>
		<item>
		<title>ChordPunch</title>
		<link>http://yaxu.org/chordpunch/</link>
		<comments>http://yaxu.org/chordpunch/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 23:21:04 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=734</guid>
		<description><![CDATA[Rumour has it that I may be something to do with the new ChordPunch label, which is promoting algorithmic music for ears and feet. Be careful not to get emotionally attached to any of the chordpunch output, their music, artist roster and administrative staff have algorithmic components in certain cases.]]></description>
			<content:encoded><![CDATA[<p>Rumour has it that I may be something to do with the new <a href="http://chordpunch.com/">ChordPunch</a> label, which is promoting algorithmic music for ears and feet.  Be careful not to get emotionally attached to any of the chordpunch output, their music, artist roster and administrative staff have algorithmic components in certain cases.</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=734&amp;md5=b55d5947705ac17331cc890ca56a396a" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/chordpunch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attending to presentation slides</title>
		<link>http://yaxu.org/attending-to-presentation-slides/</link>
		<comments>http://yaxu.org/attending-to-presentation-slides/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 13:24:21 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[papers]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=714</guid>
		<description><![CDATA[I had some fun with my talk at ICMC earlier this month. I started in the usual way with an outline slide, going through bullet points one by one outlining the structure of my talk.  Importantly, I tried to talk continuously while the slide was up. On the next slide was a picture of a [...]]]></description>
			<content:encoded><![CDATA[<p>I had some fun with <a href="http://yaxu.org/writing/texture-icmc-preprint.pdf">my talk</a> at <a href="http://icmc2011.org.uk/">ICMC</a> earlier this month.</p>
<p>I started in the usual way with an outline slide, going through bullet points one by one outlining the structure of my talk.  Importantly, I tried to talk continuously while the slide was up.</p>
<p>On the next slide was a picture of a boy throwing a stone into the sea, I talked about it for a while, making the point that it was easy to perceive the image while listening to my voice.  The audience hopefully found they could attend simultaneously to the visual scene and my linguistic speech.</p>
<p><a href="http://yaxu.org/wp-content/uploads/2011/08/h.jpg"><img class="aligncenter size-medium wp-image-715" title="h" src="http://yaxu.org/wp-content/uploads/2011/08/h-300x179.jpg" alt="" width="300" height="179" /></a></p>
<p>I then skipped back to the previous slide and pointed out that the outline slide actually had little to do with what I had been saying.  Here&#8217;s the contents of that first slide:</p>
<ul>
<li>A live coding talk towards the end of the conference</li>
<li>Some strange programming languages were shown</li>
<li>He made a point about cognition that I didn&#8217;t quite get</li>
<li>The demo didn&#8217;t work out too well</li>
<li>I was a bit tired but he seemed to be trying to say something about syntax</li>
</ul>
<p>This got some laughs.  There were quite a lot of people in the room, and the slide had been up for a while, but as far as I could gather no-one had managed to read any of it.  My contention was that they <em>couldn&#8217;t</em> read it while listening to my voice, it&#8217;s too difficult to attend to two streams of language at once.  I didn&#8217;t really know what would happen, but from talking to audience members afterwards it seems at least some people got a sense that something was wrong, but couldn&#8217;t work out what it was until I told them.</p>
<p>This was a nice practical demonstration of Dual Coding theory, and lead into my argument for greater integration between visual and linguistic elements of computer languages.  However there&#8217;s probably a point in there about the design of presentation slides.  If you want people to listen to what you&#8217;re saying, put short prompts on your slides, but not real sentences, because the audience won&#8217;t be able read them while listening to your voice.</p>
<p>&nbsp;</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=714&amp;md5=70032e14037bb84fcab1a1bdb5d2fbc9" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/attending-to-presentation-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bricolage programming example</title>
		<link>http://yaxu.org/bricolage-programming-example/</link>
		<comments>http://yaxu.org/bricolage-programming-example/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 20:45:56 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=711</guid>
		<description><![CDATA[I wrote this for the PPIG newsletter last year, but as there has been a hold-up in publishing the newsletter, I&#8217;ve put it here: My paper for PPIG 2010 was about bricolage programmers, in particular artists who write software without any clear plan, but just reacting to the results of each edit. From feedback it [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this for the <a href="http://www.ppig.org/">PPIG</a> newsletter last year, but as there has been a hold-up in publishing the newsletter, I&#8217;ve put it here:</p>
<style type="text/css">/**
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
 * (http://qbnz.com/highlighter/ and http://geshi.org/)
 */
.java .de1, .java .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.java  {font-family:monospace;}
.java .imp {font-weight: bold; color: red;}
.java li, .java .li1 {background: #ffffff;}
.java .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.java .li2 {background: #f8f8f8;}
.java .kw1 {color: #000000; font-weight: bold;}
.java .kw2 {color: #000066; font-weight: bold;}
.java .kw3 {color: #003399;}
.java .kw4 {color: #000066; font-weight: bold;}
.java .co1 {color: #666666; font-style: italic;}
.java .co2 {color: #006699;}
.java .co3 {color: #008000; font-style: italic; font-weight: bold;}
.java .coMULTI {color: #666666; font-style: italic;}
.java .es0 {color: #000099; font-weight: bold;}
.java .br0 {color: #009900;}
.java .sy0 {color: #339933;}
.java .st0 {color: #0000ff;}
.java .nu0 {color: #cc66cc;}
.java .me1 {color: #006633;}
.java .me2 {color: #006633;}
.java span.xtra { display:block; }
</style>
<p><a href="http://yaxu.org/bricolage-programming-2/">My paper</a> for <a href="http://www.ppig.org/workshops/22nd-programme.html">PPIG 2010</a> was about bricolage programmers, in<br />
particular artists who write software without any clear plan, but just<br />
reacting to the results of each edit.  From feedback it is clear that<br />
the paper could have done with a decent case study, so I thought I&#8217;d<br />
contribute the following example to this newsletter.  This is not<br />
meant to illustrate great art, or indeed great programming, but just<br />
to act as a talking point when discussing alternative approaches of<br />
programming.  Full versions of the examples are available<br />
on <a href="http://www.sketchpatch.net/byUploader/lxyxpx-2cihIJOtwHfP/">sketchpatch</a>.</p>
<p>Imagine a visual artist, programming their work using the Processing<br />
environment, a language based on Java.  They begin with an urge to<br />
draw superimposed curved lines, and come up with the following<br />
program, shown with its output:</p>
<table>
<tr>
<td valign="top"><img src="/images/processA.png" height="150" width="150"  /></td>
<td valign="top">
<div class="java">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">float</span> rx<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span><span class="br0">&#40;</span>random<span class="br0">&#40;</span>width<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">float</span> ry<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span><span class="br0">&#40;</span>random<span class="br0">&#40;</span>height<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">void</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; background<span class="br0">&#40;</span><span class="nu0">255</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">20</span><span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; bezier<span class="br0">&#40;</span>rx<span class="br0">&#40;</span><span class="br0">&#41;</span>, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, rx<span class="br0">&#40;</span><span class="br0">&#41;</span>, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, rx<span class="br0">&#40;</span><span class="br0">&#41;</span>, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, rx<span class="br0">&#40;</span><span class="br0">&#41;</span>, ry<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</td>
</tr>
</table>
<p>On seeing the output, they are struck first by how hairy it looks,<br />
but then by the suggestion of a scribble.  They decide that they are<br />
interested in the latter, and change their program to join the curves<br />
together, removing the hairiness and accentuating the scribble:</p>
<table>
<tr>
<td valign="top"><img src="/images/processB.png" height="150" width="150"  /></td>
<td valign="top">
<div class="java">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">void</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; background<span class="br0">&#40;</span><span class="nu0">255</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw4">float</span> x <span class="sy0">=</span> rx<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw4">float</span> y <span class="sy0">=</span> ry<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">5</span><span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">float</span> x1 <span class="sy0">=</span> rx<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw4">float</span> y1 <span class="sy0">=</span> ry<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; bezier<span class="br0">&#40;</span>x, y, rx<span class="br0">&#40;</span><span class="br0">&#41;</span>, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, rx<span class="br0">&#40;</span><span class="br0">&#41;</span>, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, x1, y1<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; x <span class="sy0">=</span> x1<span class="sy0">;</span> y <span class="sy0">=</span> y1<span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</td>
</tr>
</table>
<p>The artist reflects upon the letter-like quality of the scribble<br />
forms, and decides to try writing letters across the page, grouped<br />
into word-like forms:</p>
<div class="java">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">float</span> letterSpace <span class="sy0">=</span> <span class="nu0">30</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">float</span> rx<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span><span class="br0">&#40;</span>random<span class="br0">&#40;</span>letterSpace <span class="sy0">+</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">float</span> ry<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span><span class="br0">&#40;</span>random<span class="br0">&#40;</span>height <span class="sy0">-</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> rWordlen<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span><span class="br0">&#40;</span><span class="nu0">3</span> <span class="sy0">+</span> <span class="kw4">int</span><span class="br0">&#40;</span>random<span class="br0">&#40;</span><span class="nu0">4</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">void</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; background<span class="br0">&#40;</span><span class="nu0">255</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw4">int</span> letters <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span> <span class="br0">&#40;</span>width <span class="sy0">/</span> letterSpace<span class="br0">&#41;</span> <span class="sy0">-</span> <span class="nu0">4</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw4">int</span> wordLen <span class="sy0">=</span> rWordlen<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw4">int</span> word <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw4">float</span> x <span class="sy0">=</span> rx<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw4">float</span> y <span class="sy0">=</span> ry<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> letter <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> letter <span class="sy0">&lt;</span> letters<span class="sy0">;</span> <span class="sy0">++</span>letter<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw4">float</span> ox <span class="sy0">=</span> letter <span class="sy0">*</span> letterSpace <span class="sy0">+</span> word <span class="sy0">*</span> letterSpace<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>wordLen<span class="sy0">&#8211;</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; wordLen <span class="sy0">=</span> rWordlen<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; word<span class="sy0">++;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">3</span><span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw4">float</span> x1 <span class="sy0">=</span> rx<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> ox<span class="sy0">;</span> <span class="kw4">float</span> y1 <span class="sy0">=</span> ry<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; bezier<span class="br0">&#40;</span>x, y, rx<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> ox, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, rx<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> ox, ry<span class="br0">&#40;</span><span class="br0">&#41;</span>, x1, y1<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; x <span class="sy0">=</span> x1<span class="sy0">;</span> y <span class="sy0">=</span> y1<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><img src="/images/processC.png" height="100" width="800" /></p>
<p>The output has a handwritten quality, almost appearing to be readable,<br />
a quality of `automatic writing&#8217; used by mystics to supposedly channel<br />
the spirit world.  This may bring further conceptual development in<br />
our artist&#8217;s mind, but at this point we leave will them pondering.</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=711&amp;md5=bd0575f3c90c2416224d20a6c8c2164b" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/bricolage-programming-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming of the Art Computer</title>
		<link>http://yaxu.org/programming-of-the-art-computer/</link>
		<comments>http://yaxu.org/programming-of-the-art-computer/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 22:39:11 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=706</guid>
		<description><![CDATA[After getting frustrated with trying to have a discussion about programming languages within the confines of twitter, I made a mailing list, mentioned it to a few people and suddenly 100 people appeared.  It&#8217;s called potac, Programming of the Art Computer, with the topic being the design of (rather than the use of) programming languages [...]]]></description>
			<content:encoded><![CDATA[<p>After getting frustrated with trying to have a discussion about programming languages within the confines of twitter, I made a mailing list, mentioned it to a few people and suddenly 100 people appeared.  It&#8217;s called <em><a href="http://lists.lurk.org/mailman/listinfo/potac">potac</a>, </em>Programming of the Art Computer, with the topic being the design of (rather than the use of) programming languages for the arts.  It&#8217;s unmoderated, but it&#8217;s well worth browsing the archives to get a feel for the topic before diving in.</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=706&amp;md5=60500fa32dbb146e8b670bc71e41b34e" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/programming-of-the-art-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New job + thesis progress</title>
		<link>http://yaxu.org/new-job-thesis-progress/</link>
		<comments>http://yaxu.org/new-job-thesis-progress/#comments</comments>
		<pubDate>Thu, 12 May 2011 15:02:11 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=682</guid>
		<description><![CDATA[I&#8217;m looking forward to getting started as a research assistant (or associate, not sure) with the OAK group at Sheffield University, working with Simon Tucker on a linked data project for the next six months.  Well 80% of me will be doing that, the other 20% will be getting my thesis finished&#8230;  Speaking of which, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking forward to getting started as a research assistant (or associate, not sure) with the <a href="http://oak.dcs.shef.ac.uk/">OAK group</a> at Sheffield University, working with <a href="http://staffwww.dcs.shef.ac.uk/people/S.Tucker/">Simon Tucker</a> on a <a href="http://staffwww.dcs.shef.ac.uk/people/S.Tucker/blog/jisc/">linked data project</a> for the next six months.  Well 80% of me will be doing that, the other 20% will be getting my thesis finished&#8230;  Speaking of which, feedback on my first thesis draft has been very helpful so far and generally positive, although I need to work on the more traditional elements (introduction, conclusion, methodology&#8230;).</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=682&amp;md5=48b572f015d22dcb4d90b1f32f31aa7c" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/new-job-thesis-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitter split</title>
		<link>http://yaxu.org/pitter-split-2/</link>
		<comments>http://yaxu.org/pitter-split-2/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 19:12:02 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=667</guid>
		<description><![CDATA[More live coding, this time multitrack (oops added wrong one earlier, fixed now): Some glitches, with audio and video falling out of sync at times&#8230; I quite like the results though, as it goes back in again somehow. UPDATE, here&#8217;s another one, with tight time sync this time:]]></description>
			<content:encoded><![CDATA[<p>More live coding, this time multitrack (oops added wrong one earlier, fixed now):</p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/4Pe8oFDYx2U" frameborder="0" allowfullscreen></iframe></p>
<p>Some glitches, with audio and video falling out of sync at times&#8230;  I quite like the results though, as it goes back in again somehow.</p>
<p>UPDATE, here&#8217;s another one, with tight time sync this time:</p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/QOoj2a14Zeg" frameborder="0" allowfullscreen></iframe></p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=667&amp;md5=e263eca4067244d394713f76168959c7" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/pitter-split-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some videos</title>
		<link>http://yaxu.org/some-videos/</link>
		<comments>http://yaxu.org/some-videos/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 10:26:54 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=535</guid>
		<description><![CDATA[First a quick screencast of my new live coding environment called Text, which is I think a good proof of concept but crashes quite often (including at the end of this video). It&#8217;s basically Haskell but with syntax based on proximity in 2D space, rather than adjacency. Type compatible things connect automatically, made possible though [...]]]></description>
			<content:encoded><![CDATA[<p>First a quick screencast of my new live coding environment called Text, which is I think a good proof of concept but crashes quite often (including at the end of this video).</p>
<p><embed src="http://blip.tv/play/AYKOkxcC" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed>It&#8217;s basically Haskell but with syntax based on proximity in 2D space, rather than adjacency.  Type compatible things connect automatically, made possible though Haskell&#8217;s strong types and currying.  I implemented the interface in C, using clutter, and ended up implementing a lot of Haskell&#8217;s type system.  Whenever something changes it compiles the graph into Haskell code, which gets piped to ghci.  The different colours are the different types.  Lots more to do, but I think this could be a really useful system for live performance.</p>
<p>Secondly here&#8217;s some nice video from an event at <a href="http://access-space.org">access space</a>, including live coding from a duet by <a href="http://www.scotthewitt.co.uk/">Scott Hewitt</a> and I, and beatbox livecoding from <a href="http://www.mcld.co.uk/">MCLD</a>:</p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/1zZfSWjcWAI?fs=1&amp;hl=en_GB&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1zZfSWjcWAI?fs=1&amp;hl=en_GB&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>Thirdly here&#8217;s video from a <a href="http://slub.org">slub</a> performance at <a href="http://www.piksel.no/">piksel fest</a>.  </p>
<p><embed src="http://blip.tv/play/gaVHgpWNXwI" type="application/x-shockwave-flash" width="480" height="385" allowscriptaccess="always" allowfullscreen="true"></embed>The sound and video are out of sync at some points, and I think the camera falls over and cuts out towards the end because the camerawoman was off dancing to our code&#8230;  Was a fun night!  An ogg file is also available <a href="http://giss.tv/dmmdb//incdl.php?ID=1450&#038;file=http%3A%2F%2Fgiss.tv%2Fdmmdb%2F%2Fcontents%2Fpiksel10-slub-dl.ogg">here</a>.</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=535&amp;md5=af35c5770561123bb9578cc9dc874575" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/some-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New text editor</title>
		<link>http://yaxu.org/new-text-editor/</link>
		<comments>http://yaxu.org/new-text-editor/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 13:39:20 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[texture]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=530</guid>
		<description><![CDATA[I stopped using feedback.pl, a self-modifying live code editor written in Perl, some time ago, in favour of editing Haskell in emacs.  It&#8217;s about time I made a specialised editor for the pattern stuff I&#8217;ve been doing with Haskell.  Actually I have been dreaming of a visual programming language editor for some time, which for [...]]]></description>
			<content:encoded><![CDATA[<p>I stopped using <a href="http://www.perl.com/pub/2004/08/31/livecode.html">feedback.pl,</a> a self-modifying live code editor written in Perl, some time ago, in favour of editing <a href="http://yaxu.org/flash-on-eval/">Haskell in emacs</a>.  It&#8217;s about time I made a specialised editor for the pattern stuff I&#8217;ve been doing with Haskell.  Actually I have been dreaming of a visual programming language editor for some time, which for the moment I&#8217;m just calling `Text&#8217;.  Here&#8217;s a screen shot of its current state:</p>
<p><a href="http://yaxu.org/wp-content/uploads/2010/11/Screenshot-Edit.png"><img class="alignnone size-full wp-image-531" title="Screenshot-Edit" src="http://yaxu.org/wp-content/uploads/2010/11/Screenshot-Edit.png" alt="" width="482" height="376" /></a></p>
<p style="text-align: left;">I&#8217;ve noticed that Visual Programming Languages like Max and PD are still based around text, using e.g. distance as secondary notation, not actually part of the language syntax.  In Text, words that are closest together are automatically connected if their types are compatible.  You can see that I haven&#8217;t quite got the &#8216;closest together&#8217; algorithm nailed yet, I&#8217;ve no idea why its decided to parse this as three separate, overlapping statements.  However I have got <a href="http://en.wikipedia.org/wiki/Currying">currying</a> working, which I&#8217;m happy with.  At the moment it&#8217;s written in C using the <a href="http://www.clutter-project.org/">clutter</a> library, which I&#8217;m finding fun.  Anyway just a quick update, I&#8217;ve got a lot more ideas to implement before I know whether this idea has legs or not&#8230;</p>
 <p><a href="http://yaxu.org/?flattrss_redirect&amp;id=530&amp;md5=7f1a80f57ff9f0c27ea325a69bb7598a" title="Flattr" target="_blank"><img src="http://yaxu.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/new-text-editor/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

