<?xml version="1.0"?>
<!DOCTYPE content [ <!ENTITY nbsp " "> ]>
<rdf:RDF xml:base="http://snarfed.org/rdf"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="http://snarfed.org">
  <dc:title> snarfed.org  </dc:title>
  <dc:description> draw group stream of consciousness </dc:description>
  <dc:creator> Ryan Barrett &lt;snarfed at ryanb dot org&gt; </dc:creator>
  <dc:language> en </dc:language>
  <dc:format> text/html </dc:format>
  <dc:rights> Copyright 2002-2007 Ryan Barrett </dc:rights>
</rdf:Description>

<rdf:Description rdf:about="http://snarfed.org/space/software">
  <dc:title> software </dc:title>
  <dc:creator> Ryan Barrett &lt;snarfed at ryanb dot org&gt; </dc:creator>
  <dc:date> 2003-01-01T05:00:00Z </dc:date>
  <dc:language> en </dc:language>
  <dc:format> text/html </dc:format>
  <dc:rights> Copyright 2002-2007 Ryan Barrett </dc:rights>

  <content>
    <p><img src="/space/bolthead.png" alt="/space/bolthead.png" title="" /><img src="/space/maze.png" alt="/space/maze.png" title="" /><img src="/space/computer.png" alt="/space/computer.png" title="" /></p>

<p>Open source software I've <a href="/space/software#projects">written</a> and
<a href="/space/software#patches">contributed to</a>. Unless otherwise noted, everything
is <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>ed.</p>

<p><a name="projects"></a></p>

<h3>Projects  <a href="/space/software#projects"><img src="/Icon-Permalink.png" alt="Icon-Permalink.png" title="" /></a></h3>

<ul>
<li><p><a href="http://shell.appspot.com/">shell</a> and
<a href="http://openid-provider.appspot.com/">openid-provider</a>, two
<a href="http://code.google.com/appengine/">Google App Engine</a>
<a href="http://code.google.com/p/google-app-engine-samples/">sample apps</a>. See
<a href="/space/2008-04-07_google_app_engine_launched">my announcement</a> for details.</p></li>
<li><p><a href="http://code.google.com/p/openid-test/">openid-test</a> is an
interoperability test suite for <a href="http://openid.net/">OpenID</a>.</p></li>
<li><p><a href="/space/download_picasa_album">download_picasa_album.sh</a> downloads entire
<a href="http://picasaweb.google.com/">Picasa Web</a> photo albums.</p></li>
<li><p><a href="http://pyblosxom.sourceforge.net/">PyBlosxom</a> is a lightweight weblog
platform, based on <a href="http://blosxom.com/">Blosxom</a> and written in Python.</p></li>
<li><p><a href="/space/simonitor">simonitor</a> screen scrapes <a href="http://simon.com/">simon.com</a>
to fetch the available balance on one or more Simon gift cards.</p></li>
<li><p>An <a href="/space/pyblosxom+openid+comments">OpenID comments plugin for PyBlosxom</a>.</p></li>
<li><p>An <a href="/space/pyblosxom+openid+server">OpenID server plugin for PyBlosxom</a>.</p></li>
<li><p><a href="/space/site+search+with+the+Google+AJAX+Search+API">AJAX site search with the Google AJAX Search API</a>.</p></li>
<li><p><a href="/space/pyblosxom+index">index</a> is a <a href="http://pyblosxom.sf.net/">PyBlosxom</a>
plugin that displays an alphabetical index of all entries.</p></li>
<li><p><a href="/space/snipsnap2svn">snipsnap2svn</a> is an
<a href="http://www.w3.org/TR/xslt">XSLT</a> script that converts
<a href="http://snipsnap.org/">SnipSnap</a> XML database exports into
<a href="http://svn.collab.net/viewvc/*checkout*/svn/trunk/notes/fs_dumprestore.txt">Subversion dumpfiles</a>.</p></li>
<li><p><a href="/space/pyblosxom+history">history</a> is a <a href="http://pyblosxom.sf.net/">PyBlosxom</a>
plugin that displays change history for entries.</p></li>
<li><p><a href="/space/photogallery">photogallery</a> is a <a href="http://pyblosxom.sf.net/">PyBlosxom</a>
plugin that displays photo galleries.</p></li>
<li><p><a href="/space/hardcodedates">hardcodedates</a> is a <a href="http://pyblosxom.sf.net/">PyBlosxom</a>
plugin that stores mtimes in a file.</p></li>
<li><p>An <a href="/space/pyblosxom+rdf+flavour">RDF flavour</a> for Pyblosxom.</p></li>
<li><p><a href="/space/filekicker">Filekicker</a> is a <a href="http://pyblosxom.sf.net/">PyBlosxom</a>
plugin that serves static files.</p></li>
<li><p><a href="/space/fillcode">Fillcode</a> is an <a href="http://gnu.org/software/emacs/">Emacs</a>
minor mode that fills, or wraps, some parts of source code.</p></li>
<li><p><a href="/space/ditrit">Ditrit</a> is a programmable application launcher that tries to
"do the right thing" for any input it's given.</p></li>
<li><p><a href="/space/bigbrother">BigBrother</a> generates statistics and graphs from your
away message history. See my <a href="http://ryan.barrett.name/bigbrother/">personal
example</a>.</p></li>
<li><p><a href="/space/p4">P4</a> is a compact, lightweight overlay network library, similar
to <a href="http://rfc-gnutella.sourceforge.net/">Gnutella</a> and
<a href="http://www.pdos.lcs.mit.edu/chord/">Chord</a>.</p></li>
<li><p><a href="/space/libmsntp">libmsntp</a> is a compact, portable <a href="/space/libmsntp">SNTP
library</a>. It provides both client and server functionality.</p></li>
<li><p><a href="/space/snipsnap macros">Snipsnap macros</a> is a collection of macros for
<a href="http://snipsnap.org">SnipSnap</a>, the web server that runs this site.</p></li>
<li><p><a href="/space/tictactoe">Tictactoe</a> is an OpenGL engine that provides realistic
procedural modelling and rendering of water.</p></li>
<li><p><a href="/space/voxel">Voxel</a> is a high-resolution voxel terrain rendering engine.</p></li>
<li><p><a href="/space/palo+alto+library+amazon+greasemonkey">Palo Alto Library</a> is a
<a href="http://greasemonkey.mozdev.org">Greasemonkey</a> script that shows whether a book
on Amazon is available in any of the <a href="http://cityofpaloalto.org/library/">Palo Alto
Libraries</a>.</p></li>
<li><p><a href="/space/MAlbum">MAlbum</a> is a quick and easy graphical interface for creating
a web album. (Maulik has a <a href="http://maulik.freeshell.net/software/malbum-release/malbumSample">sample
album</a>.)</p></li>
<li><p><a href="/space/snipscrape">snipscrape</a> transforms SnipSnap-generated HTML into XML
that can be imported back into SnipSnap.</p></li>
<li><p><a href="/space/cdname.py">cdname.py</a> names MP3 files according to
<a href="http://cddb.com/">CDDB</a>/<a href="http://freedb.org/">freedb</a> INF files.</p></li>
<li><p><a href="/space/nullprpl: pidgin null protocol plugin">Nullprpl</a> is a mock
protocol plugin that lets you use <a href="http://pidgin.sf.net/">Pidgin</a> without
connecting to a server.
(<a href="http://developer.pidgin.im/viewmtn/revision/info/17c1e71f633d40fd14e46c08a17a500605d793c8">Added to Pidgin</a>
on 5/30/2007.)</p></li>
<li><p><a href="/space/remote">Remote</a> is a client for
<a href="http://httpq.sourceforge.net/">httpQ</a>, a network server plugin for
<a href="http://winamp.com">Winamp</a>.</p></li>
<li><p><a href="/space/scavenger">Scavenger</a> extracts
<a href="http://zvon.org/tmRFC/RFC2822/Output/index.html">RFC2822</a> email addresses from
text and binary files.</p></li>
<li><p><a href="/space/folderstat">Folderstat</a> retrieves the size of the folders in an IMAP
email account.</p></li>
</ul>

<p><a name="patches"></a></p>

<h3>Patches  <a href="/space/software#patches"><img src="/Icon-Permalink.png" alt="Icon-Permalink.png" title="" /></a></h3>

<ul>
<li><p>Two minor patches
(<a href="http://pythonpaste.org/archives/message/20080210.035948.3e0d6399.en.html">one</a>,
<a href="http://pythonpaste.org/archives/message/20080210.185854.234c983e.en.html">two</a>) to
<a href="http://pythonpaste.org/webob/">paste.webob</a>
that fix character set handling bugs.
(<a href="http://trac.pythonpaste.org/pythonpaste/changeset/7234">Both</a>
<a href="http://trac.pythonpaste.org/pythonpaste/changeset/7235">applied</a>
on 2/17/2008).</p></li>
<li><p>A <a href="/space/opml2markdown_linkify.patch">patch</a> for
<a href="http://fletcher.freeshell.org/wiki/Markdown_and_XML">opml2markdown.xslt</a> that
adds links to each item's web site and feed.</p></li>
<li><p>A <a href="/space/comments_openid.patch">patch</a> that updates the
<a href="http://www.openidenabled.com/software/pyblosxom/release-announcement">PyBlosxom OpenId comments plugin</a>
to work with versions 1.x of the
<a href="http://www.openidenabled.com/openid/libraries/python">Python OpenId libraries</a>.
(<a href="/space/pyblosxom+openid+comments">Applied</a> on 9/6/2007.)</p></li>
<li><p>A <a href="/space/cryptutil_ioerror.patch">minor bugfix for cryptutil.py</a> in the
<a href="http://www.openidenabled.com/openid/libraries/python">Python OpenId libraries</a>.
The patch is against version 2.0.0-rc3b.</p></li>
<li><p>A <a href="/space/tkdiff_quote_filenames_svn.patch">tkdiff patch that quotes filenames</a>
(<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1672284&amp;group_id=64960&amp;atid=509274">tracker</a>)
for files in Subversion repositories.</p></li>
<li><p><a href="/space/pyblosxom+ajax+comments">AJAX commenting</a> in Pyblosxom.
(<a href="http://pyblosxom.svn.sourceforge.net/viewvc/pyblosxom?view=rev&amp;revision=973">Applied</a>
on 1/24/2007.)</p></li>
<li><p>A <a href="/space/tcsh highlighting patch">tcsh highlighting patch</a> that highlights
the match during incremental search, and in emacs mode, the region between the
mark and cursor.
(<a href="http://mx.gw.com/pipermail/tcsh/2006-August/003724.html">Applied</a> on 8/23/2006.)</p></li>
<li><p>A patch to <a href="/space/remove tcsh
globbing in history search">remove tcsh globbing in history search</a>.
(<a href="http://mx.gw.com/pipermail/tcsh/2006-August/003726.html">Applied</a> on 8/23/2006.)</p></li>
<li><p>A <a href="/space/tcsh
delete moves mark bug fix">fix for a tcsh bug that moves the mark after deletions</a>. (Applied on 8/23/2006.)</p></li>
<li><p>An <a href="/space/acoc.conf for context diffs">acoc rule for coloring context diffs</a>.</p></li>
<li><p>A <a href="/space/emacs minibuffer-complete-and-exit bug fix">fix for an Emacs bug in minibuffer code</a>, specifically in
<em>minibuffer-complete-and-exit</em>. (Fixed in Emacs 22.)</p></li>
<li><p><a href="/space/port_pine_patch">port_pine_patch</a> is a shell script that automates
porting Pine patches between versions.</p></li>
<li><p><a href="/space/pine reply-all patch">Pine reply-all patch</a> adds a reply-all command
to the <a href="http://www.washington.edu/pine">Pine</a> email client.</p></li>
<li><p><a href="/space/pine flowed-text patch">Pine flowed-text patch</a> adds an option to
<a href="http://www.washington.edu/pine">Pine</a> to turn off displaying flowed text.</p></li>
<li><p><a href="/space/pine remove trailing quote patch">Pine remove trailing quote patch</a>
adds an option to automatically remove trailing quotes from outgoing emails.</p></li>
<li><p><a href="/space/pine delete attachments on save patch">Pine delete attachments on save patch</a> adds an option to delete attachments from messages when you save
them.</p></li>
<li><p><a href="/space/gaim_2_chat_invite_reverse_params.patch">Gaim chat_invite patch</a>
fixes a
<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1595828&amp;group_id=235&amp;atid=100235">parameter ordering bug</a>
in <a href="http://gaim.sf.net/">Gaim 2.x</a>'s
<a href="http://gaim.sourceforge.net/api/struct__GaimPluginProtocolInfo.html#a3ea6e94a223c32ba8814aec326f02a5">GaimPluginProtocolInfo::chat_invite</a>
callback member.
(<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1595831&amp;group_id=235&amp;atid=300235">Applied</a>
on 11/15/2006.)</p></li>
<li><p><a href="/space/gaim_1_away_menu_accelerators.patch">Gaim accelerators in away menus patch</a>
(<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1031098&amp;group_id=235&amp;atid=300235">tracker</a>)
fixes <a href="http://gaim.sf.net/">Gaim 1.x</a>'s GTK menu code to allow accelerators in
dynamically created menus, such as away message menus.</p></li>
<li><p>Similarly, <a href="/space/gaim_2_accounts_menu_accels.patch">Gaim accelerators in accounts submenus patch</a>
fixes <a href="http://gaim.sf.net/">Gaim 2.x</a>'s GTK menu code to allow accelerators in
the dynamically created submenus of the Accounts menu.
(<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1597271&amp;group_id=235&amp;atid=300235">Applied</a>
on 11/19/2006.)</p></li>
<li><p><a href="/space/snipsnap comment without login patch">SnipSnap comment without login patch</a> allows visitors to post comments without logging in.</p></li>
<li><p><a href="/space/snipsnap recent-changes snip name patch">SnipSnap recent-changes snip name patch</a> fixes a <a href="http://bugs.snipsnap.org/browse/SNIPSNAP-392">bug</a> in
SnipSnap that causes recent-changes to show blog posts incorrectly.</p></li>
<li><p><a href="/space/snipsnap 1.0b1 virtual hostname patch">SnipSnap 1.0b1 virtual hostname patch</a> fixes a <a href="http://bugs.snipsnap.org/browse/SNIPSNAP-387">bug</a> in
SnipSnap that prevents <a href="/space/virtual host redirection">virtual host redirection</a>.</p></li>
<li><p><a href="/space/autocutsel+clipboard+and+primary+patch">Autocutsel clipboard and primary patch</a>
extends <a href="http://www.nongnu.org/autocutsel/">autocutsel</a> to
synchronize both the clipboard and the primary selection in X Windows.</p></li>
<li><p><a href="/space/libwebserver shutdown patch">Libwebserver shutdown patch</a>
(<a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1146074&amp;group_id=50164&amp;atid=458797">tracker</a>)
adds a call to <a href="http://libwebserver.sourceforge.net/">libwebserver</a> to stop a
running server and close its socket(s).</p></li>
<li><p><a href="/space/webalizer nofollow patch">Webalizer nofollow patch</a> adds
<a href="http://www.google.com/googleblog/2005/01/preventing-comment-spam.html">nofollow</a>
support to the popular web server log analyzer
<a href="http://webalizer.com/">Webalizer</a>.</p></li>
</ul>

  </content>

  <rdf:Seq>

<rdf:li>
<rdf:Description rdf:about="#1175448164.47">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> software </dc:title>
  <dc:creator> Site Search with the Google AJAX Search API </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    The best <a href="http://snarfed.org/space/site search with the Google AJAX Search API">site search with the Google AJAX Search API</a>
  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1177292584.23">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> software </dc:title>
  <dc:creator> Vomicae AJAX is Google Code </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    Ajax is Google Code the Power
<a href="http://snarfed.org">http://snarfed.org</a> article 10 :P
  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1178720487.54">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> software </dc:title>
  <dc:creator>  </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    The <a href="http://snarfed.org/space/site search with the Google AJAX Search API">AJAX site search with the Google AJAX Search API. Good</a> Snarfed - lol excelent.
  </content>
</rdf:Description>
</rdf:li>

  </rdf:Seq>
</rdf:Description>
</rdf:RDF>
