<?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>neuronlight</title>
	<atom:link href="http://www.neuronlight.co.uk/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neuronlight.co.uk/blog</link>
	<description>blog of Simon Buckwell</description>
	<lastBuildDate>Thu, 22 Dec 2011 17:39:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Electronics Prototyper</title>
		<link>http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=electronics-prototyper</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 14:01:52 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=124</guid>
		<description><![CDATA[Having a good prototyping system can radically reduce the time and frustration involved in creating an electronic device, and in the past I used the traditional &#8220;breadboard&#8221; system that allows a quick solderless build to be constructed and tested. While a &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having a good prototyping system can radically reduce the time and frustration involved in creating an electronic device, and in the past I used the traditional &#8220;breadboard&#8221; system that allows a quick solderless build to be constructed and tested. While a great help, I constantly found myself building the same simple sub-circuits over and over again for each device &#8211; power regulators, LED indicators, switch inputs, etc., so I decided to build all of those elements into a single unit.</p>

<a href='http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/konica-minolta-digital-camera-14/' title='Completed prototyper'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/11/prototyper03-150x150.jpg" class="attachment-thumbnail" alt="Completed prototyper" title="Completed prototyper" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/konica-minolta-digital-camera-12/' title='Back of front panel and shell'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/11/prototyper01-150x150.jpg" class="attachment-thumbnail" alt="Device internals" title="Back of front panel and shell" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/konica-minolta-digital-camera-13/' title='Back of front panel'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/11/prototyper02-150x150.jpg" class="attachment-thumbnail" alt="Panel rear" title="Back of front panel" /></a>

<p>The prototyper consists of a small piece of standard breadboard attached to one half of the front panel of a desktop-style project box. A large header at the bottom of the board connects the breadboard to the input and output devices on the other side of the panel.</p>
<p>The switches are dual-mode toggle switches that have a momentary action in the &#8220;up&#8221; position and latch in the &#8220;down&#8221; position. When activated, the switches pull their outputs from +5V (via a 10k pull-up) to GND.</p>
<p>The three potentiometers vary their output from 0v (fully anti-clockwise) to 5v (fully clockwise).</p>
<p>The LED indicators have two modes. They can (individually) be configured to either be &#8220;off&#8221; for a logic-high and &#8220;on-red&#8221; for a logic-low, or &#8220;on-green&#8221; for a logic-high and &#8220;off&#8221; for a logic-low.</p>
<p>Power is derived from either the internal battery or an external PSU (7-35v). The internal voltage regulator supplies 5v at up to 1A, and is connected to the red/black posts on the breadboard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/11/electronics-prototyper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADHD Prosthesis</title>
		<link>http://www.neuronlight.co.uk/blog/2009/07/adhd-prosthesis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=adhd-prosthesis</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/07/adhd-prosthesis/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 18:15:53 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[picmicro]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=118</guid>
		<description><![CDATA[Like many technically minded people, I have a bit of a distractible nature (bit of an understatement, really!), and sometimes completing tasks can be a genuine problem. I once read in a book about ADHD that some sufferers use the &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/07/adhd-prosthesis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Like many technically minded people, I have a bit of a distractible nature (bit of an understatement, really!), and sometimes completing tasks can be a genuine problem. I once read in a book about ADHD that some sufferers use the technique of setting an alarm clock to go off at regular intervals to draw attention to the task at hand. Sounded like a technique I could use, but I was sure I could do better than using an alarm clock&#8230;</p>
<p>The device is pretty simple &#8211; it is basically a timer that can be configured to sound an alert after either 5, 10, 15, or 20 minutes. The alert can either be audible (buzzer) plus visual (flashing LEDs), or just visual. I find it useful to clip the timer to a pad of paper with a &#8220;to-do&#8221; list written on it, so that I know what task the alert is supposed to be reminding me of!</p>
<p>In a rare period of intense focus I managed to complete this project over a weekend &#8211; only a few hours in total, but spread over Saturday (hardware design and construction), and Sunday (microcontroller code). The hardware consists of a PICmicro microcontroller, voltage regulator, switches, a buzzer from an old PC, plus a few other bits I had lying about.</p>

<a href='http://www.neuronlight.co.uk/blog/2009/07/adhd-prosthesis/konica-minolta-digital-camera-11/' title='Device and &quot;to-do&quot; list!'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/07/timer02-150x150.jpg" class="attachment-thumbnail" alt="Completed device" title="Device and &quot;to-do&quot; list!" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/07/adhd-prosthesis/konica-minolta-digital-camera-10/' title='Internals'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/07/timer01-150x150.jpg" class="attachment-thumbnail" alt="Device internals" title="Internals" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/07/adhd-prosthesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X-10 Home Automation</title>
		<link>http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=x-10-home-automation</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 20:56:04 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[bs2-ic]]></category>
		<category><![CDATA[siteplayer]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=82</guid>
		<description><![CDATA[There comes a time in a man&#8217;s life when he pauses and thinks: &#8220;I wish I could control mains appliances and lighting around the house via a web based interface&#8221;. This is usually followed by the thought: &#8220;I&#8217;d need to &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There comes a time in a man&#8217;s life when he pauses and thinks: &#8220;I wish I could control mains appliances and lighting around the house via a web based interface&#8221;. This is usually followed by the thought: &#8220;I&#8217;d need to do it without laying yet more cables around the house because that simply wouldn&#8217;t go down well with the Mrs&#8221;.</p>
<p>The WebX10 system utilises (surprise, surprise) X10 mains-wiring control signals. If you don&#8217;t know what X10 is then Wikipedia has a good article <a title="Wikipedia entry on X10" href="http://en.wikipedia.org/wiki/X10_%28industry_standard%29" target="_blank">here</a>.</p>
<p>The WebX10 system was quick(ish) to build thanks to several ready-made modules:</p>
<ul>
<li>Siteplayer Embedded Webserver</li>
<li>Basic Stamp 2 (BS2-IC) Microcontroller</li>
<li>XM10U TTL-X10 Interface</li>
</ul>
<p>The Siteplayer and BS2-IC, along with a handful of passive components are mounted on a piece of stripboard. A bracket from an old network card was attached so the device could be mounted in my Linux server. Power is provided by the standby power line from the server&#8217;s ATX PSU (i.e. the WebX10 receives power whether the server is either on or off).</p>

<a href='http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/homeautomation01/' title='Behold: FRANKENCARD! (bracket from old network card)'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/homeautomation01-150x150.jpg" class="attachment-thumbnail" alt="Completed device" title="Behold: FRANKENCARD! (bracket from old network card)" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/homeautomation02/' title='Mysterious glowing box in my loft (1.6GHz Sempron, 1GB RAM, 80GB HDD)'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/homeautomation02-150x150.jpg" class="attachment-thumbnail" alt="Server housing" title="Mysterious glowing box in my loft (1.6GHz Sempron, 1GB RAM, 80GB HDD)" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/konica-minolta-digital-camera-8/' title='XM10U - TTL-X10 interface'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/homeautomation03-150x150.jpg" class="attachment-thumbnail" alt="Interface" title="XM10U - TTL-X10 interface" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/konica-minolta-digital-camera-9/' title='Plug-in X10 module'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/homeautomation04-150x150.jpg" class="attachment-thumbnail" alt="X10 module" title="Plug-in X10 module" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/06/x-10-home-automation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Laser Guns</title>
		<link>http://www.neuronlight.co.uk/blog/2009/06/laser-guns/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=laser-guns</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/06/laser-guns/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 20:23:37 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[guns]]></category>
		<category><![CDATA[laser]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[picmicro]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=77</guid>
		<description><![CDATA[&#8220;We don&#8217;t stop playing because we grow old; we grow old because we stop playing.&#8221; This project is taking far longer than I originally thought. Still, I&#8217;ve started so I&#8217;ll finish (eventually!). To be fair to myself my sum total &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/06/laser-guns/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>&#8220;We don&#8217;t stop playing because we grow old; we grow old because we stop playing.&#8221;</em></p>
<p>This project is taking far longer than I originally thought. Still, I&#8217;ve started so I&#8217;ll finish (eventually!). To be fair to myself my sum total of electronics experience before starting the project was building an electronic doorbell at school – at that didn&#8217;t even work.</p>
<h2>Laser Tag</h2>
<p>Be it Paintball, Airsoft, Laser-tag or Nerf, running around an arena playing guns with a group of friends is absolutely fantastic fun no matter what age you are (be honest!). The advantages of the Laser-tag type game are three-fold:</p>
<ul>
<li>It cuts down on cheating (you can&#8217;t argue with a computer)</li>
<li>Zero ammo cost</li>
<li>Being shot-at doesn&#8217;t hurt</li>
</ul>
<p>Decent equipment can difficult to get hold of, so I decided to design and build my own.</p>
<h2>Guns</h2>
<p>Surprisingly, the actual laser on a Laser-tag gun is only cosmetic – coded focused infrared beams are used to register hits, etc. This is good news for the home constructor as modulatable lasers can cost in excess of £100, whereas infrared diodes cost a few pence.</p>
<p>Kudos must go to <a title="Website of Dave Bodger" href="http://www.cix.co.uk/~lasertag/lasertag.htm" target="_blank">Dave Bodger</a>, whose website provided invaluable info.</p>
<h2>Packs</h2>
<p>The packs will house infrared sensors and the batteries to power the pack and gun. The electronics in the pack are quite simple, but mounting it within a wearable harness is another matter. To do.</p>
<h2>Target Units</h2>
<p>A target unit will be kept in each team&#8217;s &#8220;base&#8221; and will keep a count of each time a member of the opposing team<br />
manages to shoot it. Still at the &#8220;bare circuit board&#8221; stage.</p>
<h2>Emitter Units</h2>
<p>The function of these units is to periodically emit infrared codes to give players extra ammo, more lives, etc. (they are<br />
configurable). So far, 4 have been built.</p>

<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera/' title='Tagging gun'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_guns01-e1323728541481-150x150.jpg" class="attachment-thumbnail" alt="Tagging gun" title="Tagging gun" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera-2/' title='Circuit boards'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_guns02-e1323728595150-150x150.jpg" class="attachment-thumbnail" alt="Circuit boards" title="Circuit boards" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera-3/' title='Lens assemblies'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_guns03-e1323728608800-150x150.jpg" class="attachment-thumbnail" alt="Lens assemblies" title="Lens assemblies" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera-4/' title='Tagging gun chassis'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_guns04-e1323728621328-150x150.jpg" class="attachment-thumbnail" alt="Tagging gun chassis" title="Tagging gun chassis" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera-5/' title='Target units'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_targets01-e1323728581881-150x150.jpg" class="attachment-thumbnail" alt="Target units" title="Target units" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera-6/' title='Completed emiter unit'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_emitters01-e1323728637538-150x150.jpg" class="attachment-thumbnail" alt="Completed emitter unit" title="Completed emiter unit" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/laser-guns/konica-minolta-digital-camera-7/' title='Emitter unit internals'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/laserguns_emitters02-e1323728650997-150x150.jpg" class="attachment-thumbnail" alt="Emitter unit internals" title="Emitter unit internals" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/06/laser-guns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cryptography</title>
		<link>http://www.neuronlight.co.uk/blog/2009/06/cryptography/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cryptography</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/06/cryptography/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 20:15:55 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Cryptography]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[tea]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=66</guid>
		<description><![CDATA[sCrypto and fCrypto are two progams that can help keep your data private. They are both based on the Tiny Encryption Algorithm (TEA) that was devised by David Wheeler and Roger Needham at Cambridge University&#8217;s Computer Laboratory. The MD5 implementation &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/06/cryptography/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>sCrypto and fCrypto are two progams that can help keep your data private. They are both based on the <a title="Wikipedia entry on TEA" href="http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm" target="_blank">Tiny Encryption Algorithm (TEA)</a> that was devised by <a title="Wikipedia entry on David Wheeler" href="http://en.wikipedia.org/wiki/David_Wheeler_%28computer_scientist%29" target="_blank">David Wheeler</a> and <a title="Wikipedia entry on Roger Needham" href="http://en.wikipedia.org/wiki/Roger_Needham" target="_blank">Roger Needham</a> at <a title="Cambridge University Website" href="http://www.cam.ac.uk/" target="_blank">Cambridge University&#8217;s</a> <a title="Cambridge University Computer Laboratory Website" href="http://www.cl.cam.ac.uk/" target="_blank">Computer Laboratory</a>.</p>
<p>The <a title="Wikipedia entry on MD5 Hash Algorithm" href="http://en.wikipedia.org/wiki/Md5" target="_blank">MD5</a> implementation in sCrypto was coded by <a title="Website of Paul Johnston" href="http://pajhome.org.uk" target="_blank">Paul Johnston</a>, and the code for the TEA was written by <a title="Website of Donald Binder" href="http://limestone.truman.edu/~dbindner/" target="_blank">Donald Bindner</a>. Thomas Dixon wrote the Java TEA implementation used in fCrypto. All other code (glue, GUI, etc.) was written by me.</p>
<p>sCrypto and fCrypto are distrbuted as Free/Libre Open-Source Software (FLOSS) &#8211; Share and enjoy: <a title="Crypto" href="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/crypto.zip" onClick="_gaq.push(['_trackEvent', 'File', 'Download', 'Cryptography Software']);">crytpo.zip</a></p>
<h2>sCrypto</h2>
<p>SCrypto is a simple encryption program implemented in Javascript/XHTML/CSS. Consisting of a single 29K html file (8K when compressed!), it can be easily stored on a USB &#8216;thumb drive&#8217;, and has been tested with Internet Explorer on Windows and with Firefox on both Windows and Linux.</p>
<p>To encrypt a message simply type the text in the message area, enter a passphrase, and click &#8216;encrypt&#8217;. The message plain-text will be converted to unreadable cypher-text. Copy and paste the cypher-text into an email, word-processing document, or whatever.</p>
<p>To decrypt the cypher-text paste it into the message area, enter the same passphrase used to encrypt it and click &#8216;decrypt&#8217;.</p>
<h2>fCrypto</h2>
<p>Whereas sCrypto works on copy &amp; pasted text, fCrypto works on files. It is a simple command-line program written in Java, and therefore requires a Java Runtime Environment (JRE) to be present on your machine.</p>
<p>fCrypto is used thus:</p>
<div class="code">java -jar fCrypto.jar [key] [file]</div>
<p>For example, if you wanted to encrypt a file called <span class="code">photo.jpg</span> with the key<br />
<span class="code">snowman</span>, then you&#8217;d use the following:</p>
<div class="code">java -jar fCrypto.jar snowman photo.jpg</div>
<p>This would create a new, encrypted file: <span class="code">photo.jpg.fcrypto</span></p>
<p>To decrypt the new file the following is used:</p>
<div class="code">java -jar fCrypto.jar snowman photo.jpg.fcrypto</div>
<p>The would re-create the original file: <span class="code">photo.jpg</span></p>
<p>Of course it would be more useful if fCrypto could encrypt a directory into a single secure file, but I really don&#8217;t have the time to add the functionality. As a work-around, I archive collections of files and then encrypt the zip.</p>
<p><span style="font-weight: bold; color: #ff0000;">Warning!</span></p>
<ul>
<li> This software is provided &#8220;as is&#8221; &#8211; I use this program myself without any trouble, but if it exposes and/or corrupts your data due to a bug I&#8217;ve missed then you&#8217;re on your own!</li>
<li> fCrypto is a very simple program and lacks some of the safeguards of more sophisticated software. Be aware that fCrypto will not stop to ask you if it is about to create a file with the same name as an existing one &#8211; it will just write over the existing one (deleting it in the process).</li>
<li> Keep your keys safe! If you forget the key(s) you encypted your files with you will not be able to read them.</li>
<li> Some countries have restrictions on the use of strong encryption &#8211; you might want to check to see if you&#8217;re violating any local laws by downloading and using this software.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/06/cryptography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self-Built Summerhouse</title>
		<link>http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=self-built-summerhouse</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 19:21:50 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Construction & DIY]]></category>
		<category><![CDATA[construction]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[summerhouse]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=23</guid>
		<description><![CDATA[We&#8217;d always intended that the finishing touch to our garden would be a summerhouse, but none of the &#8220;off the shelf&#8221; products suited our needs; the designs were poorly thought-out, the materials were cheap, and the build quality of most &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;d always intended that the finishing touch to our garden would be a summerhouse, but none of the &#8220;off the shelf&#8221; products suited our needs; the designs were poorly thought-out, the materials were cheap, and the build quality of most of them left a lot to be desired. It became clear that the only way we&#8217;d get a building to our specifications was to design and build it ourselves.</p>
<p>Our design criteria included the following:</p>
<ul>
<li>Insulated for year-round use</li>
<li>A <em>usable</em> veranda (many commercial summerhouses feature impractically narrow verandas)</li>
<li>The entire front of the structure must open out</li>
<li>Large enough to take a two-seat fold-out sofa-bed</li>
</ul>
<div>

<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/olympus-digital-camera/' title='Early stage of the construction'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse01-150x150.jpg" class="attachment-thumbnail" alt="Early stage" title="Early stage of the construction" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/olympus-digital-camera-2/' title='Risking life-and-limb putting the roof on!'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse02-150x150.jpg" class="attachment-thumbnail" alt="Attaching roof" title="Risking life-and-limb putting the roof on!" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/olympus-digital-camera-3/' title='50mm of insulation in the walls and roof (100mm in the floor)'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse03-150x150.jpg" class="attachment-thumbnail" alt="Insulation" title="50mm of insulation in the walls and roof (100mm in the floor)" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/summerhouse04/' title='The completed structure'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse04-150x150.jpg" class="attachment-thumbnail" alt="Completed" title="The completed structure" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/summerhouse05/' title='Doors opened out'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse05-150x150.jpg" class="attachment-thumbnail" alt="Doors opened" title="Doors opened out" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/summerhouse06/' title='Built-in corner cabinet - this is where the electricity, network, and TV antenna cables enter the summerhouse.'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse06-150x150.jpg" class="attachment-thumbnail" alt="Built-in cabinet" title="Built-in corner cabinet - this is where the electricity, network, and TV antenna cables enter the summerhouse." /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/summerhouse07/' title='Summerhouse by night'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse07-150x150.jpg" class="attachment-thumbnail" alt="By night" title="Summerhouse by night" /></a>
<a href='http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/summerhouse08/' title='Hatch removed and bar-top installed'><img width="150" height="150" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/06/summerhouse08-150x150.jpg" class="attachment-thumbnail" alt="Bar top" title="Hatch removed and bar-top installed" /></a>

</div>
<p>The images on this page pretty much show how the structure was built, and also show some of the special touches that we added during construction. Of particular note is the window that can be easily removed and replaced with a bar-top for those long summer evenings. Other features include: built-in lighting, mains electrical sockets, 100BaseTX network, and a stereo system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/06/self-built-summerhouse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java Applets</title>
		<link>http://www.neuronlight.co.uk/blog/2009/06/java-applets/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-applets</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/06/java-applets/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 01:00:03 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[applets]]></category>
		<category><![CDATA[artificial-life]]></category>
		<category><![CDATA[flock]]></category>
		<category><![CDATA[fractal]]></category>
		<category><![CDATA[genetic-algorithm]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=87</guid>
		<description><![CDATA[Being my first foray into Object Oriented Programming (OOP), these applets were written quite a while ago. They&#8217;re nothing earth-shattering, but I did learn a lot about Java (and OOP in general) by writing them. Flock Back in the late &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/06/java-applets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Being my first foray into Object Oriented Programming (OOP), these applets were written quite a while ago. They&#8217;re nothing earth-shattering, but I did learn a lot about Java (and OOP in general) by writing them.</p>
<h2>Flock</h2>
<p>Back in the late eighties, when I was studying for my degree, I recall being in a spectacularly dull maths lecture. As was usual, my attention turned to what I could see through the window &#8211; a flock of what must have been several thousand birds flying over Plymouth harbour. In the distance I couldn&#8217;t make out individual birds, but the large waves and other dynamic structures produced by the collective movements in the flock looked amazing.<br />
Around that time I would make regular visits to the library to search out material on artificial intelligence. Among the usual stuff about computer vision, chess playing, natural language processing, etc, I came across a recording of a documentary which featured a piece on a program called &#8220;Boids&#8221; by Craig Reynolds. It made a deep impression on me.<br />
Craig Reynolds wrote &#8220;Boids&#8221; while working as a computer animator at the Symbolics Computer Company. The idea behind the program is to simulate the flocking behaviour of birds (or schooling behaviour of fish) by making each individual bird follow a few simple rules:</p>
<ul>
<li>a tendency to fly towards the centre of the flock</li>
<li>an ability to match the velocity of birds in the rest of the flock</li>
<li>an ability to avoid getting too close to nearby birds</li>
</ul>
<p>My &#8220;Flock&#8221; applet is a variation on this approach. The main difference is that in my program the &#8220;Boids&#8221; only move in two dimensions. Reynolds&#8217; original was in full 3D.</p>
<input onclick="window.open('/java/java_flock.php', 'Flock','status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=0,scrollbars=0,width=450,height=340');" type="button" value="Click to launch Flock" />
<h2>Genetic Algorithm</h2>
<p>Melanie Mitchell&#8217;s book &#8220;<a href="http://www.amazon.co.uk/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.co.uk%2FIntroduction-Genetic-Algorithms-Complex-Adaptive%2Fdp%2F0262631857%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1185223497%26sr%3D1-1&amp;tag=neuronlight-21&amp;linkCode=ur2&amp;camp=1634&amp;creative=6738" target="_blank">An Introduction to Genetic Algorithms</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.co.uk/e/ir?t=neuronlight-21&amp;l=ur2&amp;o=2" alt="" width="1" height="1" border="0" />&#8221; provides an excellent primer to the field of genetic algorithms (GA&#8217;s). Section 1.6 of the book describes a very simple example, and my applet is an implementation and visualisation of an almost identical GA.</p>
<input onclick="window.open('/java/java_ga.php', 'Genetic Algorithm','status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=0,scrollbars=1,,width=600,height=320');" type="button" value="Click to launch Genetic Algorithm" />
<h2>Fractal Tree</h2>
<p>Recursion based algorithm to render a simple tree image</p>
<input onclick="window.open('/java/java_tree.php', 'Tree','status=0,toolbar=0,location=0,menubar=0,directories=0,resizable=0,scrollbars=1,width=600,height=320');" type="button" value="Click to launch Tree" />
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/06/java-applets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring-Damper</title>
		<link>http://www.neuronlight.co.uk/blog/2009/05/spring-damper/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spring-damper</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/05/spring-damper/#comments</comments>
		<pubDate>Wed, 27 May 2009 19:09:53 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[blitzbasic]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=8</guid>
		<description><![CDATA[This work is the result of part of a project I undertook in the early 1990s to devise software that would let me &#8220;paint a machine&#8221; onto my computer screen and then see it working. It was based on a &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/05/spring-damper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This work is the result of part of a project I undertook in the early 1990s to devise software that would let me &#8220;paint a machine&#8221; onto my computer screen and then see it working. It was based on a system of particles connected with rods with various optional devices attached (rocket motors, wheels, parachutes, etc.), and was implemented on an <a title="Wikipedia entry on the Amiga 1200" href="http://en.wikipedia.org/wiki/Amiga_1200" target="_blank">Amiga 1200 </a>using <a title="Wikipedia entry on Blitz Basic" href="http://en.wikipedia.org/wiki/Blitz_Basic" target="_blank">BlitzBasic2.1</a>.</p>
<p>The physics simulation in modern games is much more sophisticated &#8211; check out <a title="Crysis" href="http://www.ea.com/crysis/index.jsp" target="_blank">Crysis</a> (PC) and <a title="MediaMolecule - developers of LittleBigPlanet" href="http://www.mediamolecule.com/games.html" target="_blank">LittleBigPlanet</a> (Playstation 3).</p>
<p>Download <a title="sprdmp.zip" onclick="_gaq.push(['_trackEvent', 'File', 'Download', 'Spring-Damper Simulation']);" href="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/05/sprdmp.zip">sprdmp.zip</a> for a (much simpler) program written in <a title="BlitzBasic" href="http://www.blitzbasic.com" target="_blank">Blitz3D</a> (the PC version of Blitz2.1) that demonstrates how the equations are used (source code included &#8211; GNU GPL open source licence).</p>
<h2>Overview</h2>
<p>Two particles P<sub>1</sub> &amp; P<sub>2</sub> moving with velocites V<sub>1</sub> &amp; V<sub>2</sub> respectively are connected by a spring with natural length n and stiffness k, and a damper with resistence r.</p>
<p><img class="aligncenter size-full wp-image-59" title="springdamper" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2009/05/springdamper.png" alt="springdamper" width="660" height="414" /></p>
<p>Let us say that the particles&#8217; position and velocity vectors are represented in the <a title="Wikipedia entry on the Cartesian coordinate system" href="http://en.wikipedia.org/wiki/Cartesian_coordinate_system" target="_blank">Cartesian coordinate system</a> thus:</p>
<div class="maths">P<sub>1</sub> (P<sub>x<sub>1</sub></sub> , P<sub>y<sub>1</sub></sub>)<br />
P<sub>2</sub> (P<sub>x<sub>2</sub></sub> , P<sub>y<sub>2</sub></sub>)<br />
V<sub>1</sub> (V<sub>x<sub>1</sub></sub> , V<sub>y<sub>1</sub></sub>)<br />
V<sub>2</sub> (V<sub>x<sub>2</sub></sub> , V<sub>y<sub>2</sub></sub>)</div>
<p>Now let us define:</p>
<div class="maths">P<sub>x</sub> = P<sub>x<sub>1</sub></sub> &#8211; P<sub>x<sub>2</sub></sub><br />
P<sub>y</sub> = P<sub>y<sub>1</sub></sub> &#8211; P<sub>y<sub>2</sub></sub><br />
V<sub>x</sub> = V<sub>x<sub>1</sub></sub> &#8211; V<sub>x<sub>2</sub></sub><br />
V<sub>y</sub> = V<sub>y<sub>1</sub></sub> &#8211; V<sub>y<sub>2</sub></sub></div>
<h2>Spring force</h2>
<p>The force due to the spring is equal to the difference between the expanded/contracted spring&#8217;s length and its natural length multiplied by the spring&#8217;s stiffness divided by spring&#8217;s natural length:</p>
<div class="maths">
<table border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td rowspan="2">f<sub>spring</sub> =</td>
<td class="num">k(n &#8211; √(P<sub>x</sub><sup>2</sup> + P<sub>y</sub><sup>2</sup>))</td>
</tr>
<tr>
<td class="den">n</td>
</tr>
</tbody>
</table>
</div>
<h2>Damper force</h2>
<p>The force due to the damper is equal to the rate of expansion of the damper multiplied by the damper&#8217;s resistence.</p>
<p>The distance between P<sub>1</sub> and P<sub>2</sub> as a function of time t is:</p>
<div class="maths">d(t) = √((P<sub>x</sub> + V<sub>x</sub>t)<sup>2</sup> + (P<sub>y</sub> + V<sub>y</sub>t)<sup>2</sup>)</div>
<p>Which expands to:</p>
<div class="maths">d(t) = ((P<sub>x</sub><sup>2</sup> + P<sub>y</sub><sup>2</sup>) + 2(P<sub>x</sub>V<sub>x</sub> + P<sub>y</sub>V<sub>y</sub>)t + (V<sub>x</sub><sup>2</sup> + V<sub>y</sub><sup>2</sup>)t<sup>2</sup>)<sup>½</sup></div>
<p>To get the rate of exansion we differentiate with respect to t:</p>
<div class="maths">
<table border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td class="num">d</td>
<td rowspan="2">(d(t)) = ½((P<sub>x</sub><sup>2</sup> + P<sub>y</sub><sup>2</sup>) + 2(P<sub>x</sub>V<sub>x</sub> + P<sub>y</sub>V<sub>y</sub>)t + (V<sub>x</sub><sup>2</sup> + V<sub>y</sub><sup>2</sup>)t<sup>2</sup>)<sup>-½</sup>(2(P<sub>x</sub>V<sub>x</sub> + P<sub>y</sub>V<sub>y</sub>) + 2(V<sub>x</sub><sup>2</sup> + V<sub>y</sub><sup>2</sup>)t)</td>
</tr>
<tr>
<td class="den">dt</td>
</tr>
</tbody>
</table>
</div>
<p>We evaluate this at t=0:</p>
<div class="maths">
<table border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td class="num">d</td>
<td rowspan="2">(d(0)) = ½(P<sub>x</sub><sup>2</sup> + P<sub>y</sub><sup>2</sup>)<sup>-½</sup>(2(P<sub>x</sub>V<sub>x</sub> + P<sub>y</sub>V<sub>y</sub>))</td>
</tr>
<tr>
<td class="den">dt</td>
</tr>
</tbody>
</table>
</div>
<p>Which simplifies to:</p>
<div class="maths">
<table border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td class="num">d</td>
<td rowspan="2">(d(0)) =</td>
<td class="num">P<sub>x</sub>V<sub>x</sub> + P<sub>y</sub>V<sub>y</sub></td>
</tr>
<tr>
<td class="den">dt</td>
<td class="den">√(P<sub>x</sub><sup>2</sup> + P<sub>y</sub><sup>2</sup>)</td>
</tr>
</tbody>
</table>
</div>
<p>Finally, multiply by the resistence to get the force:</p>
<div class="maths">
<table border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td rowspan="2">f<sub>damper</sub> =</td>
<td class="num">r(P<sub>x</sub>V<sub>x</sub> + P<sub>y</sub>V<sub>y</sub>)</td>
</tr>
<tr>
<td class="den">√(P<sub>x</sub><sup>2</sup> + P<sub>y</sub><sup>2</sup>)</td>
</tr>
</tbody>
</table>
</div>
<style type="text/css">
  div div.maths
  {
    margin-left: 20px;
    margin-right: 20px;
    margin-top: 20px;
    margin-bottom: 20px;
    padding: 2px;
    line-height: 150%;
    text-align: left;
    font-size: 0.7em;
    font-family: times;
    font-weight: bold;
    color: #000000;
  }
  div.maths table { width: auto; }
  div.maths td
  {
    font-family: times;
    font-weight: bold;
    color: #000000;    vertical-align: middle;
    text-align: center;
    width: auto;
    padding-right: 2px;
  }
  div.maths td.num { border-bottom: 1px solid #000000; }
  div.maths td.den { border-top: 1px solid #000000; }
</style>
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/05/spring-damper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Democratic Publishing &#8211; Right On!!!</title>
		<link>http://www.neuronlight.co.uk/blog/2009/04/democratic-publishing-right-on/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=democratic-publishing-right-on</link>
		<comments>http://www.neuronlight.co.uk/blog/2009/04/democratic-publishing-right-on/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 20:27:19 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/blog/?p=3</guid>
		<description><![CDATA[Got some subversive information to share? Need to spread a suppressed viewpoint?  Stick it to &#8220;the establishment&#8221; by publishing on the Web &#8211; Right On! With that, here&#8217;s a video I made about how to fold a crisp-packet into a &#8230; <a href="http://www.neuronlight.co.uk/blog/2009/04/democratic-publishing-right-on/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Got some subversive information to share? Need to spread a suppressed viewpoint?  Stick it to &#8220;the establishment&#8221; by publishing on the Web &#8211; Right On!</p>
<p>With that, here&#8217;s a video I made about how to fold a crisp-packet into a triangle:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/HbRpXm7zkqA&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/HbRpXm7zkqA&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Many thanks to my cousin, Susan, for passing on this particular piece of  &#8220;pub lore&#8221; many years ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/2009/04/democratic-publishing-right-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going home</title>
		<link>http://www.neuronlight.co.uk/blog/1995/08/going-home/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=going-home</link>
		<comments>http://www.neuronlight.co.uk/blog/1995/08/going-home/#comments</comments>
		<pubDate>Wed, 16 Aug 1995 20:00:00 +0000</pubDate>
		<dc:creator>simonb</dc:creator>
				<category><![CDATA[Travel]]></category>
		<category><![CDATA[Los Angeles]]></category>

		<guid isPermaLink="false">http://www.neuronlight.co.uk/arch/?p=386</guid>
		<description><![CDATA[Journey&#8217;s end. My flight back to London Heathrow wasn&#8217;t until the afternoon, so I had time to savour my last morning as a backpacker. Curiously, as I packed my rucksack one last time I can only remember thinking: &#8220;At least &#8230; <a href="http://www.neuronlight.co.uk/blog/1995/08/going-home/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Journey&#8217;s end.</p></blockquote>
<p>My flight back to London Heathrow wasn&#8217;t until the afternoon, so I had time to savour my last morning as a backpacker. Curiously, as I packed my rucksack one last time I can only remember thinking: &#8220;At least I wont have to listen to other people&#8217;s snoring anymore!&#8221;. In the time following my return I really missed that sound!</p>
<div id="attachment_388" class="wp-caption alignnone" style="width: 160px"><a href="http://www.neuronlight.co.uk/blog/wp-content/uploads/2011/12/laveniphA5.jpg" rel="lightbox[386]"><img class="size-thumbnail wp-image-388" title="LAX" src="http://www.neuronlight.co.uk/blog/wp-content/uploads/2011/12/laveniphA5-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">LAX</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.neuronlight.co.uk/blog/1995/08/going-home/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

