<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="codelove.xsl"?>
<!DOCTYPE codelove SYSTEM "http://www.codelove.org/codelove.dtd">

<codelove>
   <title>codelove</title>
   <linkbar>
      <link href="index.html"   label="[main]"/> 
      [code]
      <link href="about.xml"   label="[about]"/>
      <link href="contact.xml" label="[contact]"/>
      <link href="links.xml"   label="[links]"/>
      <link href="resume.xml"  label="[résumé]"/>
   </linkbar>
   <linkbar>
      <link href="#bitfield"   label="[bitfield]"/>
      <link href="#libbot"     label="[libbot]"/>
      <link href="#litheserve" label="[litheserve]"/>
      <link href="#mkchroot"   label="[mkchroot]"/>
      <link href="#tokenize"   label="[tokenize]"/>
   </linkbar>
   <entry>
      <subtitle name="bitfield">bitfield</subtitle>
      <author>toraton</author>
      <date>5/19/2006</date>
      <post>
         This project is very simple; it was created in order to teach a 
         friend about utilizing bitfields as a boolean storage medium.
         However, when another
         <link href="http://justinbox.aresgate.net/" label="friend"/>
         mentioned how classes are nothing more than C structures, I decided
         to write up this proof-of-concept. This small archive demonstrates
         the use of bitfields, structs, and function pointers to create
         'classes' in C. Enjoy.<br/><br/>

         Language: C<br/>
         Current version: v0.1<br/>
         <link href="code/c/bitfield.tar.bz2" label="[source]"/>
      </post>
   </entry>
   <entry>
      <subtitle name="libbot">libbot</subtitle>
      <author>toraton</author>
      <date>6/29/2006</date>
      <post>
         This project is a small library for irc bot creation. It simplifies
         the dirty parts (connection management and input translation), but
         does not pretend to come with a slew of pre-programmed functions.
         <br/><br/>
         
         Language: C<br/>
         Current version: v0.1<br/>
         <link href="code/c/libbot/libbot-v0.1.tar.bz2" label="[source]"/><br/>
         <link href="code/c/libbot" label="[source listing]"/>
      </post>
   </entry>
   <entry>
      <subtitle name="litheserve">litheserve</subtitle>
      <author>toraton</author>
      <date>5/24/2006</date>
      <post>
         This is my (newly rewritten) webserver code. It's very simple and
         minimalistic, though it should be pretty secure. It can handle any
         mimetype listed in the db file, and I have had very few problems
         using it for light use. Litheserve was written for embedded
         application primarily, so it does not utilize forking or threading.
         While this slows down heavy use, it makes the most of less powerful
         embedded processors. Lacking CGI and PHP support, this server is 
         very much a work in progress.<br/><br/>

         Language: C<br/>
         Current version: 0.5<br/>
         <link href="code/c/litheserve/litheserve-v0.5.tar.gz" label="[source]"/><br/>
         <link href="code/c/litheserve" label="[source listing]"/>
      </post>
   </entry>
   <entry>
      <subtitle name="mkchroot">mkchroot</subtitle>
      <author>toraton</author>
      <date>6/13/2006</date>
      <post>
         mkchroot is a little program I wrote awhile back for someone else.
         Basically, this little script creates an environment suitable for
         simple chroot. It copies over a list of binaries and their
         respective libraries. Also, it can copy device nodes in order to
         provide device access from within the chroot.<br/><br/>

         Language: PERL<br/>
         Current version: v0.2<br/>
         <link href="code/perl/mkchroot-v0.2.tar.bz2" label="[source]"/>
      </post>
   </entry>
   <entry>
      <subtitle name="tokenize">tokenize</subtitle>
      <author>toraton</author>
      <date>5/16/2006</date>
      <post>
         Tokenize is a trivial bit of string manipulation code. I've used it
         in place of strtok() due to the safety when utilizing threads.
         However, it does eat up more memory because it reserves memory for
         every token at once. Eventually, I'll rewrite tokenize() with
         semaphores to allow for threading, but not today.<br/><br/>

         Language: C<br/>
         Current version: v0.1<br/>
         <link href="code/c/tokenize.tar.bz2" label="[source]"/>
      </post>
   </entry>
</codelove>
