<?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>zedstar dot org &#187; scheme</title>
	<atom:link href="http://zedstar.org/blog/tag/scheme/feed/" rel="self" type="application/rss+xml" />
	<link>http://zedstar.org/blog</link>
	<description></description>
	<lastBuildDate>Mon, 19 Mar 2012 07:28:23 +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>The Clashing Rocks</title>
		<link>http://zedstar.org/blog/2011/08/19/the-clashing-rocks/</link>
		<comments>http://zedstar.org/blog/2011/08/19/the-clashing-rocks/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 17:12:18 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[nanonote]]></category>
		<category><![CDATA[packedobjects]]></category>
		<category><![CDATA[The Clashing Rocks]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=232</guid>
		<description><![CDATA[This project is about using embedded Linux devices to detect, record and react to seismic events. The idea is to use accelerometers to detect shaking and then communicate this event to all other devices connected to the same broadcast group. We are developing the technology using OpenWrt which allows us to use a range of [...]]]></description>
			<content:encoded><![CDATA[<p>This project is about using embedded Linux devices to detect, record and react to seismic events. The idea is to use accelerometers to detect shaking and then communicate this event to all other devices connected to the same broadcast group. We are developing the technology using <a title="OpenWrt" href="https://openwrt.org/">OpenWrt</a> which allows us to use a range of hardware including routers and pocket computing devices. We really like the idea of exploring emerging low-powered, low-bandwidth mesh networks in developing countries. In this <a title="Video" href="http://www.vimeo.com/27924004">video</a> you can see some early work using a network of <a title="Ben NanoNote" href="http://en.qi-hardware.com/wiki/Ben_NanoNote">Ben NanoNote</a> computers fitted with <a title="WPAN" href="http://en.qi-hardware.com/wiki/Ben_WPAN">WPAN</a> hardware. Three devices are connected to a <a title="Spread" href="http://spread.org">Spread</a> daemon running on a co-ordinating device. Because our current hardware lacks accelerometers we run a program on one device to send fake accelerometer data onto the network. Each device should then pick up this data across our wireless network. We are currently able to get some basic support for IP networking using a <a title="dirtpan" href="http://projects.qi-hardware.com/index.php/p/ben-wpan/source/tree/master/tools/dirtpan">hack</a> by Werner Almesberger who also developed the WPAN hardware.  In the <a title="Video" href="http://www.vimeo.com/27924004">video</a> you can see the devices display a bar graph indicating it received data. Only one bar is registered as only one device is transmitting. This bar graph could act as a finger print for deciding the scale of seismic activity in a larger network. We intend to add some more intelligence to this part by building a some kind of knowledge system. Currently the project is at a very early stage with some basic infrastructure developed in C. The aim is to extend this infrastructure by embedding <a title="GNU Guile" href="http://www.gnu.org/s/guile/">GNU Guile</a>. This will allow us to dynamically control how we communicate, store and process the structured data shared amongst devices. Part of this system will involve trying to minimise the quantity of structured data exchanged on the network by serialising to bit-level using <a title="Packedobjects" href="http://zedstar.org/packedobjects/">Packedobjects</a>.</p>
<p>Further details of the project can be found at <a title="TCR" href="http://theclashingrocks.org">The Clashing Rocks wiki.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2011/08/19/the-clashing-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A dynamic data encoder for embedded systems</title>
		<link>http://zedstar.org/blog/2010/04/03/a-dynamic-data-encoder-for-embedded-systems/</link>
		<comments>http://zedstar.org/blog/2010/04/03/a-dynamic-data-encoder-for-embedded-systems/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 15:41:26 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[packedobjects]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=186</guid>
		<description><![CDATA[I personally view Scheme as a good extension language. Something that can be embedded into C code to ease the pain of doing everything in C. I am interested in exploiting this concept on embedded systems where there is a lot of fooling about to make a binary. I still intend to produce binaries and [...]]]></description>
			<content:encoded><![CDATA[<p>I personally view <a href="http://en.wikipedia.org/wiki/Scheme_%28programming_language%29">Scheme</a> as a good extension language. Something that can be embedded into C code to ease the pain of doing everything in C. I am interested in exploiting this concept on embedded systems where there is a lot of fooling about to make a binary. I still intend to produce binaries and reuse the large amount of existing C code out there. However, I want to script the network communication and in particular the structure of the network packets. I have periodically been working on a tool that attempts to support this. This summer I intend to get rid of the old C code in this project and rewrite it entirely in Scheme apart from the low-level encoder/decoder which will remain in C. In this <span style="text-decoration: line-through;"><a href="http://zedstar.org/papers/packedobjects-white-paper.pdf">white paper</a></span> I attempt to describe the work.</p>
<p>**update**</p>
<p>This white paper has now be superseded by the paper &#8220;<a href="http://zedstar.org/papers/everythingcounts.pdf">Everything counts in small amounts</a>&#8220;.</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2010/04/03/a-dynamic-data-encoder-for-embedded-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripting with Guile on Openmoko</title>
		<link>http://zedstar.org/blog/2009/12/05/scripting-with-guile-on-openmoko/</link>
		<comments>http://zedstar.org/blog/2009/12/05/scripting-with-guile-on-openmoko/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 12:56:41 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Handhelds]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[openmoko]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=177</guid>
		<description><![CDATA[Having Guile running on an embedded device is very powerful. You can add scripting capabilities to a C program and avoid some of the cross compilation -&#62; deploy cycles by simply editing the script to change some functionality. As an example I have taken the code from the excellent introductory article Scripting with Guile. I [...]]]></description>
			<content:encoded><![CDATA[<p>Having Guile running on an embedded device is very powerful. You can add scripting capabilities to a C program and avoid some of the cross compilation -&gt; deploy cycles by simply editing the script to change some functionality. As an example I have taken the code from the excellent introductory article <a href="http://www.ibm.com/developerworks/linux/library/l-guile/index.html">Scripting with Guile</a>. I packaged the code so that if you install the tarball or the ipk it will install both the binary and script to a suitable place.</p>
<p>Tarball: <a href="http://zedstar.org/tarballs/square-0.1.tar.gz">http://zedstar.org/tarballs/square-0.1.tar.gz</a></p>
<p>ipk: <a href="http://zedstar.org/ipk/square_0.1-r0_armv4t.ipk">http://zedstar.org/ipk/square_0.1-r0_armv4t.ipk</a></p>
<p>After installing Guile do:</p>
<p><code>root@om-gta02 ~/ipks $ opkg install square_0.1-r0_armv4t.ipk<br />
Installing square (0.1-r0) to root...<br />
Configuring square<br />
root@om-gta02 ~/ipks $ square<br />
result of square is 49<br />
result of square2 is 81<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2009/12/05/scripting-with-guile-on-openmoko/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guile on an Openmoko Freerunner</title>
		<link>http://zedstar.org/blog/2009/12/04/guile-on-an-openmoko-freerunner/</link>
		<comments>http://zedstar.org/blog/2009/12/04/guile-on-an-openmoko-freerunner/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 10:09:54 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Handhelds]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[openmoko]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=173</guid>
		<description><![CDATA[I recently got hold of a bunch of Openmoko Freerunners. I needed a distribution which installs to Flash (NAND) so I chose SHR. I am very impressed how things have progressed especially in terms of being a phone! Anyway, this gave me a chance to try out some Guile packages I built. If you have [...]]]></description>
			<content:encoded><![CDATA[<p>I recently got hold of a bunch of Openmoko Freerunners. I needed a distribution which installs to Flash (NAND) so I chose <a href="http://www.shr-project.org/trac">SHR.</a></p>
<p>I am very impressed how things have progressed especially in terms of being a phone!</p>
<p>Anyway, this gave me a chance to try out some Guile packages I built. If you have a recent version of SHR unstable the following should work:</p>
<p><a href="http://zedstar.org/guile/">http://zedstar.org/guile/</a></p>
<p>Happy Scheming!</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2009/12/04/guile-on-an-openmoko-freerunner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Groking Guile&#8217;s FFI</title>
		<link>http://zedstar.org/blog/2008/11/09/groking-guile/</link>
		<comments>http://zedstar.org/blog/2008/11/09/groking-guile/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 15:38:49 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[packedobjects]]></category>
		<category><![CDATA[chicken]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=83</guid>
		<description><![CDATA[I have lately been very busy with work, life and the universe and subsequently have done little hacking. I have recently been examining Guile. Guile has been part of OpenEmbedded for a while so should be easy to get running on numerous embedded devices. Chicken was very recently added to OpenEmbedded, however, lacks support for [...]]]></description>
			<content:encoded><![CDATA[<p>I have lately been very busy with work, life and the universe and subsequently have done little hacking. I have recently been examining <a href="http://www.gnu.org/software/guile/guile.html">Guile</a>. Guile has been part of <a href="http://wiki.openembedded.net/index.php/Main_Page">OpenEmbedded</a> for a while so should be easy to get running on numerous embedded devices. <a href="http://www.call-with-current-continuation.org/">Chicken</a> was very recently added to OpenEmbedded, however, lacks support for building <a href="http://chicken.wiki.br/Eggs%20Unlimited%203">eggs</a> in this environment. One thing I really love about Chicken is its very easy to use foreign function interface (FFI). After spending the odd hour over various weekends I have finally begun to grok Guile&#8217;s FFI. I plan to build <a href="http://packedobjects.com">packedobjects</a> for Guile and possibility extend its features.</p>
<p>I really like the idea of <a href="http://en.wikipedia.org/wiki/Scripting_language#Extension.2Fembeddable_languages">extension languages</a> ever since I did some work with <a href="http://en.wikipedia.org/wiki/Tcl">Tcl</a> a number of years ago. A great example application was <a href="http://en.wikipedia.org/wiki/Eggdrop">Eggdrop</a> the IRC bot. Lots of kids at the time would program their eggdrop bots using the simple Tcl interface. I think a lot can be said about this approach in terms of learning/teaching programming. I hope to explore this further with my education hat on.</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2008/11/09/groking-guile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

