<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>

        <title>jtolds.com - Projects</title>
        <link>http://www.jtolds.com/projects/rss.xml</link>
        <description>JT Olds' RSS Feed for Projects</description>

		<language>en-us</language>
		<copyright>Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License</copyright>

<item>
	<title><![CDATA[JT FileSafe]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/jtfilesafe]]></link>

	<guid>1246754986</guid>
	<pubDate>Sun, 5 Jul 2009 00:49:46 +0000</pubDate>
	<description><![CDATA[<p>I don't really trust email security. Email is hardly ever delivered over SSL
with end-to-end verification. :) So, when sending someone some important
document, I tend to end up printing out and faxing things. Not much better.</p>
<p>But I suck at printing and faxing. Hardcore. It takes me hours to figure out
either, not to mention both at once. Weird.</p>
<p>So, I wrote a FileSafe service.
<a href="https://jtfilesafe.appspot.com/">JT FileSafe</a> is a simple Google
App Engine hosted tool that allows you to upload files over SSL. Once the file
is uploaded, both a URL and password are automatically generated for you. You
send someone the URL, and then you can call them or do something else you trust
to deliver the password. Then only they (well, and Google) have your file.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="https://jtfilesafe.appspot.com/"/>JT FileSafe</a><br/>

</li>

<li><a href="http://jtfilesafe.googlecode.com/"/>Code Repository</a><br/>

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


No dependencies are listed for this project. Hooray!


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[SHA1 Javascript Tool]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/sha1-javascript-tool]]></link>

	<guid>1238267871</guid>
	<pubDate>Sat, 28 Mar 2009 19:17:51 +0000</pubDate>
	<description><![CDATA[<p>Occasionally, I need a SHA1 hash of something, and I'm not in a convenient place to get one. For instance, it is hard to open up a terminal to run <i>sha1sum</i> on public internet kiosks. It's also obnoxious to have to SSH anywhere from my phone to get access to a SHA1 algorithm.</p>
<p>So, I took Paul Johnston's <a href="http://pajhome.org.uk/crypt/md5/sha1src.html">Javascript implementation</a> and made <a href="/sha1/">a simple webform</a>. Trivial, I know. But I took out unnecessary HMAC calculation code, so it should be relatively easy to examine the source if you're worried about using something secure. The webdesign is, hah, optimized for mobile devices.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="/sha1/"/>SHA1 Webform</a><br/>

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


No dependencies are listed for this project. Hooray!


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[AI 2 Algorithms]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/ai-2-algorithms]]></link>

	<guid>1236672686</guid>
	<pubDate>Tue, 10 Mar 2009 08:11:26 +0000</pubDate>
	<description><![CDATA[<p>In Spring of 2008, I took Artificial Intelligence II at the University of Minnesota. I, unfortunately in many ways, am not one who is very consistent on class attendance, and, as a result, I was forced to find alternate ways to learn the missed material. One of the best ways to learn an algorithm is to implement it, so, I implemented general solutions to a few of the topics we covered.</p><p>I had completely forgotten about this stuff until I recently Googled myself, and I was surprised at how unmessy the code was, so I'm posting it here. :)</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://www-users.itlabs.umn.edu/classes/Spring-2008/csci5512/index.php?page=resources"/>AI2 algorithms</a><br/>

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://www.python.org/"/>Python</a><br/>

Python is like pseudocode

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[PyNarcissus]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/pynarcissus]]></link>

	<guid>1235103926</guid>
	<pubDate>Fri, 20 Feb 2009 04:25:26 +0000</pubDate>
	<description><![CDATA[<p>So, I haven't actually just been watching TV recently, as my newsletter might
currently suggest. I'm trying to be productive in a few ways, and one of them is
the release of PyNarcissus here.</p>

<p><a href="http://pynarcissus.googlecode.com/">PyNarcissus</a> is a direct port
of the <a href="http://en.wikipedia.org/wiki/Narcissus_(JavaScript_engine)">Narcissus Javascript engine</a> by Brendan Eich. Narcissus
is Javascript implemented in Javascript, and, while the evaluator does a few
things <a href="http://en.wikipedia.org/wiki/Metacircular_Interpreter">metacircularly</a>, the parser was pretty much a piece of cake to write in Python.</p>

<p>PyNarcissus does not introduce any new features whatsoever. Correctness using
the original Narcissus as a baseline was an important priority, so even the pretty-printed string-converted output of the PyNarcissus parse tree is identical to the Javascript version. Using this feature, I simply ran both parsers on all of the <a href="http://www.mozilla.org/js/spidermonkey/">Spidermonkey</a> Javascript tests to make sure that the output was the same.</p>

<p>Because the port was so easy, I am considering going all the way and making a full on Javascript interpreter, but that wasn't my main goal for this port, so I'm not sure I'll get there soon, if at all.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://pynarcissus.googlecode.com/"/>Google Code PyNarcissus page</a><br/>

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://www.python.org/"/>Python 2.5</a><br/>

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[To-Dlo!]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/to-dlo]]></link>

	<guid>1225568754</guid>
	<pubDate>Sat, 1 Nov 2008 19:45:54 +0000</pubDate>
	<description><![CDATA[<p>Back when I had a plain Nokia cellphone, I had this need to keep track of notes and todo lists. What I wanted was simply a service to which I could text message reminders and todo items that would store them for me on the internet. There were a few services that did similar things, but none scratched my particular itch. So, I wrote <a href="http://todlo.appspot.com/">the service I wanted</a>.</p>

<p>Please see <a href="http://todlo.appspot.com/about">To-Dlo's about page</a> for a more detailed explanation.</p>

<p><i>Note:</i> I just got my <a href="http://en.wikipedia.org/wiki/T-Mobile_G1">G1</a>, so I don't know how much more I'll be working on this. Perhaps I'll end up making an Android/iPhone interface.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://todlo.appspot.com/"/>To-Dlo!</a><br/>

To-Dlo's main website.

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://google.com/accounts/"/>Google Account</a><br/>

A Google Account is needed to use To-Dlo.

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[OLPC shortcuts]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/olpc-shortcuts]]></link>

	<guid>1202855815</guid>
	<pubDate>Tue, 12 Feb 2008 22:36:55 +0000</pubDate>
	<description><![CDATA[<p>I wanted a way to start native Linux applications on my <a href="http://www.laptop.org/">XO Laptop</a> without having to open a terminal. In other words, I wanted to create a shortcut activity that would execute arbitrary Unix commands, and then go away.</p>

<p>So, I did, and posted it to the XO wiki.<br /><a href="http://wiki.laptop.org/go/ExecCommand">http://wiki.laptop.org/go/ExecCommand</a></p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://files.getdropbox.com/u/129990/googlepages/Xmms.xo"/>Xmms.xo</a><br/>

Modified ExecCommand that just starts XMMS. 

</li>

<li><a href="http://files.getdropbox.com/u/129990/googlepages/ExecCommand.xo"/>ExecCommand.xo</a><br/>

The ExecCommand package 

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://www.laptop.org/"/>XO Laptop</a><br/>

A very cool laptop.

</li>

<li><a href="http://wiki.laptop.org/go/XMMS"/>XMMS</a><br/>

Only required for Xmms.xo

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[Viricide]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/viricide]]></link>

	<guid>1181979973</guid>
	<pubDate>Sat, 16 Jun 2007 07:46:13 +0000</pubDate>
	<description><![CDATA[<p>I'm currently working on a clone of a falling-pieces, Tetris-style game. My version is a networked implementation of a popular game that often features an Italian plumber masquerading as a physician.</p>

<p>I've been working on this project in various respects for over a year, as it was originally a way to teach myself Python. However, the project has since matured a bit and now features a client/server architecture, among other things.</p>

<p>I've open-sourced the project and put it up for development at Google Code. For more information, please see <a href="http://viricide.googlecode.com/">the official Viricide website</a>.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://viricide.googlecode.com/"/>Viricide Website</a><br/>

Includes help, source code, and downloadables 

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://www.pygame.org/"/>Pygame</a><br/>

A Python library that eases the use of videogame creation.

</li>

<li><a href="http://www.python.org/"/>Python</a><br/>

The Python programming language is required to interpret Python code.

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[Horseshoe Implementation]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/horseshoe-implementation]]></link>

	<guid>1176592953</guid>
	<pubDate>Sat, 14 Apr 2007 23:22:33 +0000</pubDate>
	<description><![CDATA[<p>A while back I wrote about a game I was thinking about that I called 'horseshoe'. You can find more information on <a href="/newsletter/3/5/">its entry on my newsletter</a>. I'm considering researching various aspects of the game more, including strategies and such, and it occurred to me that having an environment in which to write artificial intelligences for the game would be incredibly useful. I suspect that it is a <a href="http://en.wikipedia.org/wiki/Solved_game">solvable game</a> given a significant amount of computing power, but to show that I would need to actually solve it.<br />To facilitate this, I've written a very bare-bones Python game of Horseshoe. There is now an AI. It's pretty naive, but you can now play against your computer. In the immortal words of Donald Knuth, I have only proved it correct, not tried it. I think its win detection is right, which is the part that matters.<br />To run it, execute main.py.</p>

<p><b>Updated</b> to include a reference to <a href="/newsletter/3/8/">my poster I presented</a> on Horseshoe.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://www.jtolds.com/sandbox/horseshoe/horseshoe.tgz"/>Code tarball</a><br/>

the code

</li>

<li><a href="http://files.getdropbox.com/u/129990/googlepages/JTsHorseshoeGame-AI.exe"/>Standalone Windows Snapshot</a><br/>

Windows executable

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://www.python.org/"/>Python</a><br/>

The Python programming language is required to interpret Python code.

</li>

<li><a href="http://www.pygame.org/"/>Pygame</a><br/>

A Python library that eases the use of videogame creation.

</li>

<li><a href="http://www.vpython.org/"/>VPython</a><br/>

A Python library that makes 3D programming really easy.

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[DDR Pad Window Manager hooks]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/ddr-pad-window-manager-hooks]]></link>

	<guid>1164106100</guid>
	<pubDate>Tue, 21 Nov 2006 10:48:20 +0000</pubDate>
	<description><![CDATA[<p>This summer I had the idea of hooking up a DDR pad to the computer, and using it as window-manager modifier keys for workspace switching, etc. I thought it'd be pretty cool to rotate my <a href="http://en.wikipedia.org/wiki/Xgl">XGL</a> cube by hitting a button with my foot. Anyway, <a href="http://en.wikipedia.org/wiki/Compiz">Compiz</a> didn't support all of the EWMH calls I was making, so development has currently stalled. Furthermore, the prototype I got working was not as productivity-increasing as I had hoped.</p>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

There are no project links available for this project. If you think there should be, please <a href="/contact/">contact me</a>.


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html"/>EWMH compliant window manager</a><br/>

Most current window managers work. Metacity is an example.

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

<item>
	<title><![CDATA[Zaurus Apps]]></title>
	<author>JT Olds</author>

    <link><![CDATA[http://www.jtolds.com/projects/p/zaurus-apps]]></link>

	<guid>1136536811</guid>
	<pubDate>Fri, 6 Jan 2006 08:40:11 +0000</pubDate>
	<description><![CDATA[<p>Before I broke it, stupidly, I had a Linux-based Sharp Zaurus. I wrote some useful if not trivial applications for it, some of which are featured in Japanese books about the Zaurus (I got emailed by a Japanese tech writer). I put all two of my online Zaurus programs on this page.</p><p><i>These applications are horribly out of date and are really only here for historical purposes.</i>

<table style="width:700px;">

<tr><td>
<b>Project links</b>
</td><td style="padding-left: 20px;">
<b>Dependencies</b>
</td></tr>

<tr><td>

<ul>

<li><a href="http://web.jtolds.com/zaurus/shell_latest_arm.ipk"/>shell_0.2_arm.ipk</a><br/>

A Qtopia-menu program that runs console commands. Similar to the run command in the start menu of Windows. Asks for a single line input of the command and then spits out the command's output through a message box.
The "Run" icon appears in the Q menu at the bottom-left of your Zaurus' screen.

</li>

<li><a href="http://web.jtolds.com/zaurus/blanker_latest_arm.ipk"/>blanker_0.3_arm.ipk</a><br/>

A program that turns off the screen for music playing or server work. Includes a console program. Note: I fixed the stupid dependencies. May need to have the "execute with root privilege" option set. Still, remember, once the screen is blanked the Zaurus is still fully on.

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td><td style="padding-left: 20px;">


<ul>

<li><a href="http://web.jtolds.com/zaurus/opie-sh_0.5.1-20020527_arm.ipk"/>opie-sh_0.5.1-20020527_arm.ipk</a><br/>

Only needed for Shell

</li>

</ul>


<img src="/images/blank.gif" alt="" width="300" height="1"/>
</td></tr></table>
]]></description>
</item>

	</channel>
</rss>
