<?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; guile</title>
	<atom:link href="http://zedstar.org/blog/tag/guile/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>GNU Guile on a Ben NanoNote with command line history (readline support)</title>
		<link>http://zedstar.org/blog/2010/05/02/gnu-guile-on-a-ben-nanonote-with-command-line-history-readline-support/</link>
		<comments>http://zedstar.org/blog/2010/05/02/gnu-guile-on-a-ben-nanonote-with-command-line-history-readline-support/#comments</comments>
		<pubDate>Sun, 02 May 2010 21:20:40 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Handhelds]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[nanonote]]></category>
		<category><![CDATA[openwrt]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=191</guid>
		<description><![CDATA[I have been hacking at the OpenWrt Makefile and now have command line history working within the REPL. opkg install http://zedstar.org/guile/libgmp_4.3.1-2_xburst.ipk opkg install http://zedstar.org/guile/libltdl_1.5.26-1_xburst.ipk opkg install http://zedstar.org/guile/guile_1.8.7_xburst.ipk Once installed setup a .guile file: root@BenNanoNote:~# cat /root/.guile (use-modules (ice-9 readline)) (activate-readline) When you run guile now you should be able to use the up and down [...]]]></description>
			<content:encoded><![CDATA[<p>I have been hacking at the OpenWrt <a href="http://zedstar.org/guile/Makefile">Makefile</a> and now have command line history working within the REPL.<br />
<code><br />
opkg install <a href="http://zedstar.org/guile/libgmp_4.3.1-2_xburst.ipk">http://zedstar.org/guile/libgmp_4.3.1-2_xburst.ipk</a><br />
opkg install <a href="http://zedstar.org/guile/libltdl_1.5.26-1_xburst.ipk">http://zedstar.org/guile/libltdl_1.5.26-1_xburst.ipk</a><br />
opkg install <a href="http://zedstar.org/guile/guile_1.8.7_xburst.ipk">http://zedstar.org/guile/guile_1.8.7_xburst.ipk</a></code></p>
<p>Once installed setup a .guile file:<br />
<code><br />
root@BenNanoNote:~# cat /root/.guile<br />
(use-modules (ice-9 readline))<br />
(activate-readline)</code></p>
<p>When you run guile now you should be able to use the up and down cursor keys to go through your command history etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2010/05/02/gnu-guile-on-a-ben-nanonote-with-command-line-history-readline-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A minimal OpenWrt image for the Openmoko Freerunner containing GNU Guile</title>
		<link>http://zedstar.org/blog/2010/05/02/a-minimal-openwrt-image-for-the-openmoko-freerunner-containing-gnu-guile/</link>
		<comments>http://zedstar.org/blog/2010/05/02/a-minimal-openwrt-image-for-the-openmoko-freerunner-containing-gnu-guile/#comments</comments>
		<pubDate>Sun, 02 May 2010 17:10:29 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Handhelds]]></category>
		<category><![CDATA[freerunner]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[openwrt]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=189</guid>
		<description><![CDATA[To experiment some more with OpenWrt I dusted out a Freerunner and built a minimal image containing GNU Guile. The image is built with glibc and an IP 192.168.254.101 to match my Nanonote settings. ** UPDATE: GNU Guile now has readline support and root image now contains GLib ** Flash the following: http://zedstar.org/freerunner/openwrt-s3c24xx-2.6-uImage http://zedstar.org/freerunner/openwrt-s3c24xx-root.jffs2-128k Boot [...]]]></description>
			<content:encoded><![CDATA[<p>To experiment some more with OpenWrt I dusted out a Freerunner and built a minimal image containing GNU Guile. The image is built with glibc and an IP 192.168.254.101 to match my Nanonote settings.</p>
<p>** UPDATE: GNU Guile now has readline support and root image now contains GLib **</p>
<p>Flash the following:</p>
<p><a href="http://zedstar.org/freerunner/openwrt-s3c24xx-2.6-uImage">http://zedstar.org/freerunner/openwrt-s3c24xx-2.6-uImage</a></p>
<p><a href="http://zedstar.org/freerunner/openwrt-s3c24xx-root.jffs2-128k">http://zedstar.org/freerunner/openwrt-s3c24xx-root.jffs2-128k</a></p>
<p>Boot the device then:<br />
john@thinkpad:~$ telnet 192.168.254.101<br />
Trying 192.168.254.101&#8230;<br />
Connected to 192.168.254.101.<br />
Escape character is &#8216;^]&#8217;.</p>
<p>=== IMPORTANT ============================<br />
Use &#8216;passwd&#8217; to set your login password<br />
this will disable telnet and enable SSH<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>BusyBox v1.16.1 (2010-05-02 14:45:14 BST) built-in shell (ash)<br />
Enter &#8216;help&#8217; for a list of built-in commands.</p>
<p>_______                     ________        __<br />
|       |.&#8212;&#8211;.&#8212;&#8211;.&#8212;&#8211;.|  |  |  |.&#8212;-.|  |_<br />
|   &#8211;   ||  _  |  -__|     ||  |  |  ||   _||   _|<br />
|_______||   __|_____|__|__||________||__|  |____|<br />
|__| W I R E L E S S   F R E E D O M<br />
KAMIKAZE (bleeding edge, r21293) &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
* 10 oz Vodka       Shake well with ice and strain<br />
* 10 oz Triple sec  mixture into 10 shot glasses.<br />
* 10 oz lime juice  Salute!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
root@OpenWrt:/# uname -a<br />
Linux OpenWrt 2.6.30.10 #1 PREEMPT Sun May 2 14:59:31 BST 2010 armv4tl GNU/Linux<br />
root@OpenWrt:/# guile<br />
guile&gt; (string-tokenize &#8220;hello world&#8221;)<br />
(&#8220;hello&#8221; &#8220;world&#8221;)<br />
guile&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2010/05/02/a-minimal-openwrt-image-for-the-openmoko-freerunner-containing-gnu-guile/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>Guile on a Ben NanoNote</title>
		<link>http://zedstar.org/blog/2010/02/25/guile-on-a-ben-nanonote/</link>
		<comments>http://zedstar.org/blog/2010/02/25/guile-on-a-ben-nanonote/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 22:58:36 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Handhelds]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[nanonote]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=183</guid>
		<description><![CDATA[Received a Ben NanoNote today. It is a really natty little device with a lot of potential. My standard test on how hackable a device is involves getting Guile running. Anyway, it was pretty easy to accomplish this despite not using openWrt before. root@BenNanoNote:~# root@BenNanoNote:~# guile guile&#62; (map (lambda (x) (+ x 1)) '(1 2 [...]]]></description>
			<content:encoded><![CDATA[<p>Received a <a href="http://sharism.cc/products/ben-nanonote/">Ben NanoNote</a> today. It is a really natty little device with a lot of potential.</p>
<p>My standard test on how hackable a device is involves getting Guile running. Anyway, it was pretty easy to accomplish this despite not using <a href="http://www.openwrt.org/">openWrt</a> before.</p>
<p><code><br />
root@BenNanoNote:~#<br />
root@BenNanoNote:~# guile<br />
guile&gt; (map (lambda (x) (+ x 1)) '(1 2 3 4 5))<br />
(2 3 4 5 6)<br />
guile&gt;<br />
</code></p>
<p>To install get the 3 xburst packages from <a href="http://zedstar.org/guile/">here</a>.</p>
<p>Happy Scheming!</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2010/02/25/guile-on-a-ben-nanonote/feed/</wfw:commentRss>
		<slash:comments>2</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>Tweeting from an IRC bot</title>
		<link>http://zedstar.org/blog/2009/06/26/tweeting-from-an-irc-bot/</link>
		<comments>http://zedstar.org/blog/2009/06/26/tweeting-from-an-irc-bot/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 19:25:05 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[twitter]]></category>
		<category><![CDATA[bobot]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[irc]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=145</guid>
		<description><![CDATA[I have made a Guile module which is capable of being used by the IRC bot bobot++. The code is available here: http://zedstar.org/tarballs/sneektweet-0.1.tar.gz The readme: sneektweet 0.1: Wraps some C/GLib code which posts to Twitter. setup: Edit configure.ac to set twitter account details. from REPL: john@thinkpad:~/workspace/sneektweet$ guile guile> (use-modules (twitter sneektweet)) guile> (tweet "foobar") guile> [...]]]></description>
			<content:encoded><![CDATA[<p>I have made a Guile module which is capable of being used by the IRC bot <a href="http://unknownlamer.org/code/bobot.html">bobot++</a>. The code is available here:</p>
<p><a href="http://zedstar.org/tarballs/sneektweet-0.1.tar.gz">http://zedstar.org/tarballs/sneektweet-0.1.tar.gz</a></p>
<p>The readme:</p>
<pre>sneektweet 0.1:

Wraps some C/GLib code which posts to Twitter.

setup:

Edit configure.ac to set twitter account details.

from REPL:

john@thinkpad:~/workspace/sneektweet$ guile
guile> (use-modules (twitter sneektweet))
guile> (tweet "foobar")
guile> ** Message: posted update to Twitter

todo:

Add reading updates and posting back to IRC channel. 

bobot example code:

(use-modules (twitter sneektweet))

(define (sneektweet channel message)
  (if (> (string-length message) 140)
    (bot:say channel "Your message needs to be under 140 characters in length!")
    (tweet message)))

(bot:addcommand "tweet" sneektweet #t 2 0)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2009/06/26/tweeting-from-an-irc-bot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>geotwitta</title>
		<link>http://zedstar.org/blog/2009/05/02/geotwitta/</link>
		<comments>http://zedstar.org/blog/2009/05/02/geotwitta/#comments</comments>
		<pubDate>Sat, 02 May 2009 13:44:23 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[packedobjects]]></category>
		<category><![CDATA[thumbtribes]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=127</guid>
		<description><![CDATA[geotwitta lets you see how far you are from other twitter users running the program. It will post to your twitter account letting you know the distance in kilometers from those users. It is based on a bunch of technologies I wanted to try out. As a result it is somewhat over-engineered for what it [...]]]></description>
			<content:encoded><![CDATA[<p><strong>geotwitta</strong> lets you see how far you are from other twitter users running the program. It will post to your twitter account letting you know the distance in kilometers from those users. It is based on a bunch of technologies I wanted to try out. As a result it is somewhat over-engineered for what it does. For those that are interested it uses Guile to script a binary network protocol that happens to be encoded efficiently over UDP packets.</p>
<p>It is a command line program. An example of usage is:</p>
<p><code>geotwitta -u foo -p bar --lat=55.55 --long=-0.25</code></p>
<p>This would authenticate against the Twitter account &#8216;foo&#8217; with password &#8216;bar&#8217; and ping in those coordinates. These account details are only exchanged securely with Twitter and not sent over the network protocol. The protocol also does not provide coordinates back of other users. It simply shows a relative distance. The full source of the client is available. If there is an interest I will also tidy up the server code and release it.</p>
<p>To get started you need two packages: The program itself and the Guile module which does the network protocol work. The following tarballs are availble for those who want to build from source.</p>
<p><a href="http://zedstar.org/tarballs/packedobjects-0.1.tar.gz">http://zedstar.org/tarballs/packedobjects-0.1.tar.gz</a></p>
<p><span style="text-decoration: line-through;"><a href="http://zedstar.org/tarballs/geotwitta-0.1.tar.gz">http://zedstar.org/tarballs/geotwitta-0.1.tar.gz</a></span></p>
<p><a href="http://zedstar.org/tarballs/geotwitta-0.2.tar.gz">http://zedstar.org/tarballs/geotwitta-0.2.tar.gz</a></p>
<p>Untar and do the usual ./configure&#8230; routine. The configure script will let you know which dependencies are required to compile. If you don&#8217;t feel like building from source I have also built some Debian packages. I have tested these on Ubuntu (Intrepid Ibex).</p>
<p><a href="http://zedstar.org/deb/packedobjects_0.1-1_i386.deb">http://zedstar.org/deb/packedobjects_0.1-1_i386.deb</a></p>
<p><span style="text-decoration: line-through;"><a href="http://zedstar.org/deb/geotwitta_0.1-1_i386.deb">http://zedstar.org/deb/geotwitta_0.1-1_i386.deb</a></span></p>
<p><a href="http://zedstar.org/deb/geotwitta_0.2-1_i386.deb">http://zedstar.org/deb/geotwitta_0.2-1_i386.deb</a></p>
<p>If you manage to get the software running I will see you on Twitter!</p>
<p>All the usual disclaimers about the software apply.</p>
<p><strong>**update**</strong></p>
<p>Version 0.2 of geotwitta added: ignores UDP packet loss on pings</p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2009/05/02/geotwitta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building a Guile extension on an embedded device</title>
		<link>http://zedstar.org/blog/2009/01/25/building-a-guile-extension-on-an-embedded-device/</link>
		<comments>http://zedstar.org/blog/2009/01/25/building-a-guile-extension-on-an-embedded-device/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 16:45:56 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[packedobjects]]></category>
		<category><![CDATA[beagleboard]]></category>
		<category><![CDATA[guile]]></category>
		<category><![CDATA[openembedded]]></category>

		<guid isPermaLink="false">http://zedstar.org/blog/?p=113</guid>
		<description><![CDATA[Thanks to OpenEmbedded building extensions for Guile that run on embedded devices such as the BeagleBoard is fairly painless. As I have previously mentioned, Guile is already supported by OpenEmbedded. If you have an extension which is made up of some C code and some Scheme code you first should automate building it with autoconf. [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://openembedded.org">OpenEmbedded</a> building extensions for <a href="http://www.gnu.org/software/guile/">Guile</a> that run on embedded devices such as the <a href="http://beagleboard.org">BeagleBoard</a> is fairly painless. As I have previously mentioned, Guile is already supported by OpenEmbedded. If you have an extension which is made up of some C code and some Scheme code you first should automate building it with autoconf. This might install a shared library and install some Scheme files into Guile specific locations. The next step is to write a bitbake recipe which will work with this autoconf based project. Typically this recipe will download a tarball or checkout some code from version control and then begin its magic. The end product hopefully is a binary package which can be easily installed onto the device. As an example I built <a href="http://packedobjects.sourceforge.net/">packedobjects</a> as a Guile extension for my BeagleBoard. The bitbake recipe is availabe here:</p>
<p><a href="http://packedobjects.cvs.sourceforge.net/viewvc/packedobjects/packedobjects_project/openembedded/">http://packedobjects.cvs.sourceforge.net/viewvc/packedobjects/packedobjects_project/openembedded/</a></p>
<p>This works by getting the latest code from CVS. It builds the code and is told which files need to be part of the package. So if you have OpenEmbedded setup you just need to issue the command:<br />
<code><br />
bitbake packedobjects</code></p>
<p>This will build and package the lastest code as an ipk.</p>
<p>We should test the built ipk on the device to see if it works:</p>
<p><code>root@beagleboard:~# opkg install http://zedstar.org/ipk/libpackedobjects0_0.1-r0.1_armv7a.ipk<br />
Downloading http://zedstar.org/ipk/libpackedobjects0_0.1-r0.1_armv7a.ipk<br />
Installing libpackedobjects0 (0.1-r0.1) to root...<br />
Configuring libpackedobjects0<br />
root@beagleboard:~# guile<br />
guile&gt; (use-modules (packedobjects))<br />
guile&gt; (exit)</code></p>
]]></content:encoded>
			<wfw:commentRss>http://zedstar.org/blog/2009/01/25/building-a-guile-extension-on-an-embedded-device/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

