<?xml version="1.0" encoding="ISO-8859-1"?>

<feed xmlns="http://www.w3.org/2005/Atom">
    <title>quag.geek.nz</title>
    <link href="http://www.quag.geek.nz/"/>
    <link rel="self" href="http://www.quag.geek.nz/index.atom"/>
    <updated>2007-06-23T19:58:26+12:00</updated>
    <author>
        <name>Jonathan Wright</name>
        <email>quaggy@gmail.com</email>
        <uri>http://www.quag.geek.nz/</uri>
    </author>
    <id>urn:uuid:a7ad1f16-b623-4b64-908c-c7177f884924</id>
    <rights>Copyright (c) 2006-2007, Jonathan Wright</rights>

    <!--
    <entry>
        <title></title>
        <link type="text/html" href=""/>
        <id>urn:uuid:</id>
        <updated></updated>
        <summary>
        </summary>
    </entry>
    -->

    <entry>
        <title>Suck Less at Email</title>
        <link type="text/html" href="http://www.quag.geek.nz/suckless-at-email"/>
        <id>urn:uuid:76856d6e-d6aa-4b10-847b-8bc54ffe1533</id>
        <updated>2009-12-12T22:31:26+13:00</updated>
        <summary>
            A summary of Mark O'Sullivan's blog post, "Don't Suck at Email".
        </summary>
    </entry>

    <entry>
        <title>Funny pictures taking with a macbook</title>
        <link type="text/html" href="http://www.quag.geek.nz/funny/"/>
        <id>urn:uuid:94b65f42-3923-45d2-9bce-9064a964fa84</id>
        <updated>2007-06-23T19:58:26+12:00</updated>
        <summary>
            A few funny pictures taken with a macbook (pro?).
        </summary>
    </entry>

    <entry>
        <title>Why = and := ?</title>
        <link type="text/html" href="http://www.quag.geek.nz/io/getting-started/why-equals-and-colon-equals"/>
        <id>urn:uuid:dd43f4af-7656-409b-8548-ea577bdd3262</id>
        <updated>2007-06-16T18:18:19+12:00</updated>
        <summary>
            Explanation of why Io uses both := and =.
        </summary>
    </entry>

    <entry>
        <title>How can executable code be passed to a method?</title>
        <link type="text/html" href="http://www.quag.geek.nz/io/getting-started/executable-args"/>
        <id>urn:uuid:91b85697-220f-4b4f-a38a-8c082ed46a43</id>
        <updated>2007-06-16T18:15:33+12:00</updated>
        <summary>
            Overview of the different approaches blocks, methods and messages
            can be used for passing in executable code to methods.
        </summary>
    </entry>

    <entry>
        <title>Expectations of Io Users</title>
        <link type="text/html" href="http://www.quag.geek.nz/io/expectations"/>
        <id>urn:uuid:88c39b9b-3c7c-469e-ad7b-db537c973115</id>
        <updated>2007-05-15T08:53:36+12:00</updated>
        <summary>
            Quick brainstorm of expectations users have of Io. From frequently asked questions in the #io irc channel, I suspect Io currently falls short of many expectations. Maybe these expectations can inspire simple and easy improvements.
        </summary>
    </entry>

    <entry>
        <title>Diagram of Message Object</title>
        <link type="image/jpeg" href="http://quag.geek.nz/io/visual/message.jpg"/>
        <id>urn:uuid:f945df95-9766-4b11-b8fe-cfe9dee0bcc0</id>
        <updated>2007-05-07T12:49:22+12:00</updated>
        <summary>
            Added a new message diagram to http://quag.geek.nz/io/visual/
        </summary>
    </entry>

    <entry>
        <title>Io: Getting Started</title>
        <link type="text/html" href="http://quag.geek.nz/io/getting-started"/>
        <id>urn:uuid:45353944-7efc-47eb-ac19-4d0f3499ef85</id>
        <updated>2007-04-30T19:59:04+12:00</updated>
        <summary>
            Links that will be useful while learning Io.
        </summary>
    </entry>

    <entry>
        <title>Overview of files in Io's reorganised distribution</title>
        <link type="text/html" href="http://www.quag.geek.nz/io/structure.html"/>
        <id>urn:uuid:c648f760-29e2-11db-a98b-0800200c9a66</id>
        <updated>2006-08-12T21:25:53+12:00</updated>
        <summary type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">
                List of key changes in the Io distribution reorganisation and documents the new structure.
            </div>
        </summary>
        <content type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <style type="text/css" media="screen">
                /*<![CDATA[*/
                dl dt {
                  font-weight: bold;
                  font-family: sans-serif;
                  margin-top: 1ex;
                  margin-bottom: 0.25ex;
                }
                dl dd {
                  margin-left: 1.5em;
                }
                /*]]>*/
                </style>

                <h1>Overview of files in Io's reorganised distribution</h1>

                <p>
                Io's build system and file layout have been changed.
                Here are some notes I made while exploring the changes.
                </p>

                <div>Key changes</div>
                <ul>
                  <li>bindings are now called addons</li>
                  <li>libraries depended on by IoVM are now beside rather than under the IoVM directory</li>
                  <li><div>IoVM and dependent libraries are under the libs directory</div>
                  <pre>
            libs/iovm
            libs/basekit
            libs/coroutine
            libs/garbagecollector
            libs/skipdb
                  </pre>
                  </li>
                  <li>all build output is under _build directories</li>
                  <li>main.c is in the tools folder</li>
                </ul>

                <h2>Files at the top level</h2>

                <p>
                  Files in the Io tarball or darcs repo are part of Io's
                </p>
                <ul>
                  <li>source;</li>
                  <li>build system;</li>
                  <li>darcs repo; or</li>
                  <li>other files that you might find handy when using Io.</li>
                </ul>

                <h3>Source</h3>
                <p>Three folders hold the code for the Io interpreter and the addons.</p>
                <dl>
                  <dt>libs</dt>
                  <dd>libiovm, the core of Io, and the libs it depends on: basekit, coroutine, garbagecollector, and skipdb</dd>

                  <dt>tools</dt>
                  <dd>main.c files and scripts for building executables without addons</dd>

                  <dt>addons</dt>
                  <dd>
                  typically wrappers for C libraries.
                  Typical examples are: ZLib, OpenGL, Sockets and embedded Python
                  </dd>
                </dl>

                <h3>Building the vm and addons</h3>
                <p>
                  Io's build system is split into two parts.
                  The Makefiles build an Io interpreter without addons.
                  The interpreter then builds the addons using the build.io script.
                </p>
                <dl>
                  <dt>Makefile</dt>
                  <dd></dd>

                  <dt>Makefile.lib</dt>
                  <dd></dd>

                  <dt>build</dt>
                  <dd>Io's build system for addons and executables using addons</dd>

                  <dt>build.io</dt>
                  <dd>script for kicking off the building of the addons and executables using them</dd>

                  <dt>_build</dt>
                  <dd>build output</dd>
                </dl>

                <h3>Darcs's files</h3>
                <dl>
                  <dt>_darcs</dt>
                  <dd>
                  darcs repo.
                  Not in the tarball
                  </dd>

                  <dt>boring</dt>
                  <dd>
                  ignore list for darcs
                  </dd>
                </dl>

                <h3>Other things in the distribution</h3>
                <dl>
                  <dt>docs</dt>
                  <dd>html and pdf versions of the <a href="http://www.iolanguage.com/darcs/Io/docs/guide.html">Io guide</a></dd>

                  <dt>readme.txt</dt>
                  <dd>README file</dd>

                  <dt>projects</dt>
                  <dd>
                  a hodgepodge of handy stuff.
                  Contains syntax highlighting for editors
                  </dd>

                  <dt>samples</dt>
                  <dd>simple (old) examples of Io. Some may still work</dd>

                  <dt>tests</dt>
                  <dd>a few old tests which should no longer be here</dd>
                </dl>

                <h2>libs folder: IoVM and libraries it depends on</h2>

                <dl>
                  <dt>iovm</dt>
                  <dd>
                  The heart of Io.
                  libiovm contains the interpreter, parser and primitive objects.
                  IoVM is Io.
                  </dd>

                  <dt>basekit</dt>
                  <dd>
                  Utilities that are used to implement Io.
                  Utilities include lists, stack, byte array, perfect hashes, sorting, random number generator, command line argument parser, dates and durations and portable versions of common Unix functions. Will be released as a standalone library.
                  </dd>

                  <dt>garbagecollector</dt>
                  <dd>
                  Incremental garbage collector. Implemented using the tri-colour, Baker treadmill, write-barrier algorithm.
                  Available as a <a href="http://www.dekorte.com/projects/opensource/libGarbageCollector/">standalone library</a>.
                  </dd>

                  <dt>coroutine</dt>
                  <dd>
                  Simple stack switching coroutine implementation. Uses ucontext and windows fibers when available.
                  Available as a <a href="http://www.dekorte.com/projects/opensource/libCoroutine/">standalone library</a>.
                  </dd>

                  <dt>skipdb</dt>
                  <dd>
                  A BerkeleyDB style database.
                  Uses skip lists instead of b-trees.
                  Available as a <a href="http://www.dekorte.com/projects/opensource/SkipDB/">standalone library</a>.
                  </dd>
                </dl>

                <h2>tools folder: main.c for libiovm</h2>
                <p>Executables for Io.</p>
            </div>
        </content>
    </entry>

    <entry>
        <title>Revamped MightDo list for Io</title>
        <link type="text/html" href="http://www.quag.geek.nz/cgi-bin/io-maybe.cgi"/>
        <id>urn:uuid:5962a010-2587-11db-a98b-0800200c9a66</id>
        <updated>2006-08-07T08:11:36+12:00</updated>
        <summary type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Updated the look and number of items shown in the MightDo list. Items are now grouped better.
            </div>
        </summary>
        <content type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Updated the look and number of items shown in the MightDo list. Items are now grouped better.
            </div>
        </content>
    </entry>

    <entry>
        <title>Darcsweb</title>
        <link type="text/html" href="http://www.quag.geek.nz/cgi-bin/darcsweb.cgi"/>
        <id>urn:uuid:0f90bba0-2462-11db-a98b-0800200c9a66</id>
        <updated>2006-08-05T21:14:37+12:00</updated>
        <summary type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p><a href="http://auriga.wearlab.de/~alb/darcsweb/">Darcsweb</a> is now setup for Io and my little repos on <a href="http://www.quag.geek.nz/cgi-bin/darcsweb.cgi">http://www.quag.geek.nz/cgi-bin/darcsweb.cgi</a>.</p>
                <p>Darcsweb was dead simple to setup, so if you like the results give it a go.</p>
            </div>
        </summary>
        <content type="xhtml">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p><a href="http://auriga.wearlab.de/~alb/darcsweb/">Darcsweb</a> is now setup for Io and my little repos on <a href="http://www.quag.geek.nz/cgi-bin/darcsweb.cgi">http://www.quag.geek.nz/cgi-bin/darcsweb.cgi</a>.</p>
                <p>Darcsweb was dead simple to setup, so if you like the results give it a go.</p>
            </div>
        </content>
    </entry>

    <entry>
        <title>Schwartzian transform for List</title>
        <link type="text/html" href="http://www.quag.geek.nz/io/schwartzian"/>
        <id>urn:uuid:c7ff0fb0-34b5-4cca-b99a-6473522879a6</id>
        <updated>2006-08-05T14:57:46+12:00</updated>
        <summary>
            Directory with(".") files sortKey(lastInfoChangeDate) sort map(name)
            Directory with(".") files sortKey(lastInfoChangeDate) sort(&lt;) map(name)
            Directory with(".") files sortKey(x, lastInfoChangeDate) sort(x, y, x &lt; y) map(name)
        </summary>
    </entry>

    <entry>
        <title>libxml2 binding</title>
        <link type="text/html" href="http://www.quag.geek.nz/io/libxml2"/>
        <id>urn:uuid:9e3aa025-bff4-4892-9fac-c43786f6acb2c</id>
        <updated>2006-08-05T13:00:00+12:00</updated>
        <summary>
            Zorander kicked it off by creating an XmlReader which is available from, http://zorander.net/static/darcs/Xml/.
        </summary>
    </entry>
</feed>
