<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4067961554521320265</id><updated>2011-09-02T01:57:55.848+10:00</updated><category term='bittorrent'/><category term='dreadlocks'/><category term='etymotic research'/><category term='motorbike gear'/><category term='n82'/><category term='senheiser'/><category term='wifi'/><category term='sony'/><category term='maven'/><category term='github'/><category term='jetty django jython fail'/><category term='srb'/><category term='file storage'/><category term='802.1x'/><category term='django'/><category term='photos'/><category term='headphones'/><category term='nokia'/><category term='git'/><category term='python'/><category term='flickr'/><category term='jetty'/><category term='ipod'/><category term='twitter'/><category term='sports'/><category term='ssl'/><category term='https'/><category term='jython'/><category term='ipod touch'/><category term='subversion'/><title type='text'>Totally maladroit!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-6555112930941107803</id><published>2010-01-26T09:17:00.004+10:00</published><updated>2010-01-26T10:10:54.978+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jetty django jython fail'/><title type='text'>Re: jetty+django+jython</title><content type='html'>Today I recieved an email querying me about the missing servlet.py in my jetty+django+jython post, and upon looking for it, i was suprised I could not find it. I linked to it, and I assume I would have copy+pasted the link from a browser's address bar, but it does not show in the commit history in github, or on my old work repository. I assume I've done something bizzare with the repository and overwritten it with a different one after moving the code around and forgot about it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Either way, I noticed a comment in the post from a few months ago (amongst all the spam!) so i figured i'd make an update post for others who stumble apon this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before I start, disclaimer time: this work is 2 years old, and as I am no longer working on the project I used this for I don't have the time/desire to check if it's still valid work or  even if it still works. Jython and Django have both progressed a long way since I built this and i've not been keeping tabs on either community so it may be worth doing some searching to see if there's a more recent alternative to this (I seem to remember some similar work to this involving GlassFish).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since I don't have time to put together detailed examples, what I will do is link to parts of the project I used this on and a breif explaination of what you "should" find in them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.hpc.jcu.edu.au/projects/kepler/wiki/Hydrant"&gt;http://www.hpc.jcu.edu.au/projects/kepler/wiki/Hydrant&lt;/a&gt; My dev page, nothing important here. Link to demo is dead as my demo server has been shut down since I no longer work there.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.hpc.jcu.edu.au/projects/kepler/wiki/HydrantInstallInstructions"&gt;http://www.hpc.jcu.edu.au/projects/kepler/wiki/HydrantInstallInstructions&lt;/a&gt; Install instructions, which you don't want to follow (unless you like wasting your own time, or have particular interest in running kepler workflows [www.kepler-project.org] in a web environment) but what you do want to get from here is the details on how to modify the web.xml and pom.xml that i will link below. There are also some notes about the settings.py that may be of value. Notice that for my jython/django requirements I link to specific versions of each one. These were the versions that I had running when I did this work, It is most likely broken on newer versions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=summary"&gt;http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=summary&lt;/a&gt; web view of source repository.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=blob;f=pom.xml;h=b77e7ab1fc2cb9a7481cfcfadc8a9e0830172949;hb=master"&gt;http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=blob;f=pom.xml;h=b77e7ab1fc2cb9a7481cfcfadc8a9e0830172949;hb=master&lt;/a&gt; the pom.xml. see the install instructions for relivent parts&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=blob;f=src/main/webapp/WEB-INF/web.xml;h=e3b336db94521628e5599add46e8578aa5094ef5;hb=master"&gt;http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=blob;f=src/main/webapp/WEB-INF/web.xml;h=e3b336db94521628e5599add46e8578aa5094ef5;hb=master&lt;/a&gt; a more up-to-date web.xml (similar to the one on github, but pointing to a "django.handler" local to this project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and this brings us to the missing servlet.py i moved this to jython/middleware, but it seems it never occured to me to move it into django-servlet project. my bad! &lt;a href="http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=tree;f=src/main/jython/middleware;h=3a448871c8a97a97078aa298b89687f2ce1cf302;hb=master"&gt;http://www.hpc.jcu.edu.au/git/?p=jc124742/hydrant.git;a=tree;f=src/main/jython/middleware;h=3a448871c8a97a97078aa298b89687f2ce1cf302;hb=master&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This should give you enough to get things up and running (assuming things haven't changed too much in django/jython in the past 2 years). The only thing left to say is "Good Luck!".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.Tristan&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-6555112930941107803?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/6555112930941107803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=6555112930941107803' title='44 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/6555112930941107803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/6555112930941107803'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2010/01/re-jettydjangojython.html' title='Re: jetty+django+jython'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>44</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-2202045206615569390</id><published>2008-09-03T09:18:00.001+10:00</published><updated>2008-09-03T09:18:09.249+10:00</updated><title type='text'></title><content type='html'>is checking out http://ping.fm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-2202045206615569390?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/2202045206615569390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=2202045206615569390' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/2202045206615569390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/2202045206615569390'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/09/is-checking-out-httpping.html' title=''/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-1629805911318854080</id><published>2008-04-28T17:51:00.005+10:00</published><updated>2010-01-26T10:13:13.497+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='jetty'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><title type='text'>secure django+jetty+jython</title><content type='html'>&lt;div&gt;UPDATE: since this is now 2 years old, and one of my key links is broken i've written a quick update here: &lt;a href="http://tristanking.blogspot.com/2010/01/re-jettydjangojython.html"&gt;http://tristanking.blogspot.com/2010/01/re-jettydjangojython.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Today I enabled a ssl connector in jetty to run my django app securely. I then spent most of the day trying to figure out why HttpResponseRedirect's didn't work.&lt;br /&gt;&lt;br /&gt;Turns out all I had to do was implement is_secure in my django handler.&lt;br /&gt;&lt;br /&gt;updated servlet.py can be viewed &lt;a href="http://github.com/tristan/django-jython/tree/master/django/core/handlers/servlet.py"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-1629805911318854080?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/1629805911318854080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=1629805911318854080' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/1629805911318854080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/1629805911318854080'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/04/secure-djangojettyjython.html' title='secure django+jetty+jython'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-7376406825714025740</id><published>2008-04-02T14:23:00.003+10:00</published><updated>2008-04-02T14:35:56.037+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ipod touch'/><category scheme='http://www.blogger.com/atom/ns#' term='ipod'/><title type='text'>iPod Touch On-The-Go FTW!</title><content type='html'>One thing that has always annoyed me about my iPod Touch is the inability to play all of an artists albums, album by album. You from the artist list, you can select a single album, or all songs for which you can play them in alphabetical order or shuffle mode.&lt;br /&gt;&lt;br /&gt;I just figure this out! The trick is to use the On-The-Go playlist. Go to playlists and select the On-The-Go playlist. If there is stuff in it already you will have to hit the edit button (or clear it and start again). From there you navigate to your desired artist, and the button with is normally All Songs is now Add All Albums. click that, and then click done and play your playlist.&lt;br /&gt;&lt;br /&gt;I don't know why i didn't look into this earlier. I guess i figurered i'd have to add all the songs one by one, but Apple has made it very simple. Still, a play all albums button in the standard menus would be much simpler!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-7376406825714025740?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/7376406825714025740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=7376406825714025740' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/7376406825714025740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/7376406825714025740'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/04/ipod-touch-on-go-ftw.html' title='iPod Touch On-The-Go FTW!'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-853670399251033777</id><published>2008-04-01T22:10:00.005+10:00</published><updated>2008-04-02T14:37:27.714+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dreadlocks'/><title type='text'>One week old!</title><content type='html'>My dreadlocks have reached one week. They're all over the place! I re-backcombed a few of them over the week, mainly the ones that didn't hold together after a shower. I'm resisting the urge to redo the few on my left side, they're really loose but still keeping to their own distinct groups so I want to leave them to see what they do themselves. If there's no progress with them after a month I'll look at redoing them. I'm not sure what's going on with the very back ones. There are a lot of loose hairs getting around, but again, i'm gonna leave them to their own devices.&lt;br /&gt;&lt;br /&gt;For now I don't go anywhere without a headband!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/24981466@N08/sets/72157604339458842/"&gt;Photos&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-853670399251033777?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/853670399251033777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=853670399251033777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/853670399251033777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/853670399251033777'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/04/dreadlocks-are-one-week-old.html' title='One week old!'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-1561374621008917100</id><published>2008-03-26T14:32:00.007+10:00</published><updated>2008-04-01T15:45:28.201+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><title type='text'>fixing dcommit maddness</title><content type='html'>when pushing changes from git back to the svn dcommit by default does a rebase afterwards, which causes all the time stamps of the checkins in the git log to change to the dcommit time, which is really annoying. reset can be used to get the times back, but then dcommit wont work since they're not synced. To get around this you have to use rebase before the dcommit, then reset again.&lt;br /&gt;&lt;pre style="border: 1px solid rgb(153, 153, 153); padding: 0.5em; background-color: rgb(221, 221, 221);"&gt;git commit&lt;br /&gt;git svn rebase&lt;br /&gt;git svn dcommit --no-rebase&lt;br /&gt;git reflog&lt;br /&gt;git reset --hard HEAD@{5}&lt;/pre&gt;reflog is used to list all the changes to a branch and find out the number to use between the braces in the reset command. The number you're looking for is the one of the last commit.&lt;br /&gt;&lt;br /&gt;Unfortunately this needs to be done every time I want to push back to svn now. I would hope that using --no-rebase on every dcommit would have avoided this, but I can't test it now without messing up my repos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-1561374621008917100?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/1561374621008917100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=1561374621008917100' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/1561374621008917100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/1561374621008917100'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/fixing-dcommit-maddness.html' title='fixing dcommit maddness'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-4070040296285962396</id><published>2008-03-23T17:31:00.003+10:00</published><updated>2008-03-23T17:37:23.969+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sports'/><category scheme='http://www.blogger.com/atom/ns#' term='flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='headphones'/><category scheme='http://www.blogger.com/atom/ns#' term='senheiser'/><title type='text'>shitty senheiser cables</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/24981466@N08/2354140982/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2195/2354140982_c38a319ffd_m.jpg" alt="" style="border: 2px solid rgb(0, 0, 0);" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="margin-top: 0px;font-size:0;" &gt;  &lt;a href="http://www.flickr.com/photos/24981466@N08/2354140982/"&gt;shitty senheiser cables&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/24981466@N08/"&gt;tristan.king&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;god damn it! they're not even a year old. And from the black tape around the jack, you can see it started to fray ages ago.&lt;br /&gt;&lt;br /&gt;Apart from that, they're very comfortable headphones, which I was perfectly happy with whilst running and riding. They're still good, except i have to keep the cables at specific angles to get the full sound.&lt;br /&gt;&lt;br /&gt;I shall have to find myself some new sports headphones now.&lt;br /&gt;&lt;br /&gt;On another note: this picture was uploaded from my n82, and the post was made from flickr. very cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-4070040296285962396?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/4070040296285962396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=4070040296285962396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/4070040296285962396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/4070040296285962396'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/shitty-senheiser-cables.html' title='shitty senheiser cables'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2195/2354140982_c38a319ffd_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-3504846619464159107</id><published>2008-03-23T12:45:00.003+10:00</published><updated>2008-03-23T17:36:04.776+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>twitter status messages as an image</title><content type='html'>I love twitter, and I like to have my status message everywhere possible. Unfortunately most forums and such don't allow having the flash or javascript badges in signatures etc. What was needed was an image generater which could create a dynamic image based from the current twitter status message. After some quick googling I cam across &lt;a href="http://bunnyherolabs.com/twitter/create.php"&gt;this site&lt;/a&gt; which generates an image similar to the flash based twitter badge. I'm not very fond of this badge tho. It's ugly. I much prefer the facebook badge for the official twitter facebook app. So I decided to build an app which generated an image similar to the facebook badge. After a few hours of pluggin away with &lt;a href="http://www.blogger.com/www.djangoproject.com"&gt;django&lt;/a&gt; and the &lt;a href="http://www.pythonware.com/products/pil/"&gt;pil&lt;/a&gt; I had done it!&lt;br /&gt;&lt;br /&gt;the source can be found on &lt;a href="http://www.blogger.com/github.com/tristan/twimage"&gt;github&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The app currently grabs the status message from twitter every time the image is requested. Thus I don't think this app would scale very well (altho if it was run by twitter themselves, and connected directly to their databases it probably would). But for the forum or two that I have it on, it should be fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-3504846619464159107?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/3504846619464159107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=3504846619464159107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/3504846619464159107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/3504846619464159107'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/twitter-status-messages-as-image.html' title='twitter status messages as an image'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-8862317067817128357</id><published>2008-03-23T12:21:00.003+10:00</published><updated>2008-03-23T12:29:05.980+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><category scheme='http://www.blogger.com/atom/ns#' term='dreadlocks'/><title type='text'>dreadlocked!</title><content type='html'>Seeing that I had nothing much to do on the 4 day Easter weekend, I decided to try dreading my hair myself.&lt;br /&gt;&lt;br /&gt;After the first minute of attempting to section the hair myself, I realised it was not gonna work. So I convinced Hai to section it for me, then went onto the backcombing myself and managed to do it all over 2 days. My left arm is still sore! It's amazing how much work it is to hold your hands above your head for an extended period of time.&lt;br /&gt;&lt;br /&gt;I ended up with 30 dreads, some small some fat (and one extra fat one that wont sit flat at all!). &lt;a href="http://www.flickr.com/photos/24981466@N08/sets/72157604200893785/"&gt;Photos here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It feels good to be back on the path to dreads! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-8862317067817128357?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/8862317067817128357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=8862317067817128357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/8862317067817128357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/8862317067817128357'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/dreadlocked.html' title='dreadlocked!'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-3310283151972409587</id><published>2008-03-19T13:50:00.006+10:00</published><updated>2010-01-26T10:12:36.896+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jython'/><category scheme='http://www.blogger.com/atom/ns#' term='jetty'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>django+jython+jetty</title><content type='html'>&lt;div&gt;UPDATE: since this is now 2 years old, and one of my key links is broken i've written a quick update here: &lt;a href="http://tristanking.blogspot.com/2010/01/re-jettydjangojython.html"&gt;http://tristanking.blogspot.com/2010/01/re-jettydjangojython.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Yep, you read that right. Django, running ontop of jython, running inside jetty.&lt;br /&gt;&lt;br /&gt;Why? The idea just popped into my head while in a meeting discussing our project's deployment strategy. I thought "hey, we already have a tomcat server running for other people's projects, I wonder if i can get django+jython running inside a servlet container". Seeing that jython already came with a PyServlet class, i figured the base work was already there and decided to give it a go.&lt;br /&gt;&lt;br /&gt;So I started off looking at the PyServlet class that ships with Jython. PyServlet allows you to write servlets from python code, implementing the standard doPost, doPost, etc functions, from which you access by going to a URL which matches the path name of you .py file. This doesn't match the REST method django uses, so the PyServlet needed some work. It turned out to almost be an entire rewrite, the only things remaining from PyServlet being the PySystemState initialisation.&lt;br /&gt;&lt;br /&gt;As well as the DjangoServlet, a django handler module had to be created to bridge the gap between the java servlet request and response objects and the django python request and response objects. The already existing modpython handler provided a great guideline to make this, and it turned out to be a breeze.&lt;br /&gt;&lt;br /&gt;Currently, I build the DjangoServlet on it's own using maven and install it into my local maven repo (for people who have not used maven before, this involves a single command line call). The servlet handler module is put straight into django in the same location as the other handlers (django.core.handlers.servlet). I then have another maven project with a dependency on the DjangoServlet project, and a web.xml. The web.xml requires a few init-params: one for the jython home, one for the django handler class and one for the django app location.&lt;br /&gt;&lt;br /&gt;With everything set up, using the maven jetty plugins, i fire jetty up, which loads the DjangoServlet and BAM! django running in a servlet container.&lt;br /&gt;&lt;br /&gt;So far I've not noticed any difference in performance, but one nice 'feature' is being able to use maven's dependency management to set up the classpath with the jars required to run your app (it definitely beats having the edit the $CLASSPATH before starting jython and my settings.LIB_DIRECTORY method).&lt;br /&gt;&lt;br /&gt;A few things still need to be done to make this really easy to setup and use, It may be best to try move the handler module out of the core django code, so that once jython is up to the task of running django without any modifications it is possible to deploy this on a pure django+jython install. I also need to write scripts to build the pom.xml and web.xml files.&lt;br /&gt;&lt;br /&gt;If you want to have a look at this, or deploy it yourself, you can grab the projects from &lt;a href="http://github.com/"&gt;github&lt;/a&gt;. &lt;a href="http://github.com/tristan/django-servlet/"&gt;Here&lt;/a&gt; for the DjangoServlet project, &lt;a href="http://github.com/tristan/django-jython/tree/master/django/core/handlers/servlet.py"&gt;servlet.py&lt;/a&gt; for the django handler module and &lt;a href="http://github.com/tristan/hydrant/"&gt;hydrant&lt;/a&gt; is my django app which has example pom.xml and web.xmls for you to use as a reference for your own (until i have proper scripts/docs to build them).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-3310283151972409587?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/3310283151972409587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=3310283151972409587' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/3310283151972409587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/3310283151972409587'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/djangojythonjetty.html' title='django+jython+jetty'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-3198569008034760064</id><published>2008-03-05T21:08:00.005+10:00</published><updated>2008-03-05T21:47:49.220+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sony'/><category scheme='http://www.blogger.com/atom/ns#' term='etymotic research'/><category scheme='http://www.blogger.com/atom/ns#' term='headphones'/><category scheme='http://www.blogger.com/atom/ns#' term='motorbike gear'/><category scheme='http://www.blogger.com/atom/ns#' term='ipod'/><title type='text'>Music and motobikes, solved!</title><content type='html'>I went for a motorbike ride out to Charters Towers on sunday, which gave me a chance to try out the &lt;a href="http://www.etymotic.com/ephp/er6.aspx"&gt;Etymotic Research ER-6 Isolator&lt;/a&gt; headphones that I bought specifically for highway riding.&lt;br /&gt;&lt;br /&gt;When riding a motorbike there is a lot of noise. There's the noise of the engine, the road noise, the sound of the wind rushing past your head, and it's all very loud. This is easily pointed out by the fact that to listen to music using standard headphones i have to crank my iPod to full volume just to hear it. This is annoying for two reasons. One: The quality of the music is greatly reduced when turned up that loud, and two: the damage it is doing to my ears at that volume. But it's not only my headphones, what damage am I doing to my ears just riding the bike with all that other noise? Hence, I decided to invest in a pair of headphones to try combat these problems.&lt;br /&gt;&lt;br /&gt;First I tried a pair of &lt;a href="http://www.sony.com.au/pe/catalog/product.jsp;jsessionid=RLGERMC4UGKL2CWSCFCSFEQK0IIUIIV0?id=MDREX52SLB"&gt;Sony MDREX52SLB&lt;/a&gt; in-ear headphones, which didn't work out too well. They were better then my standard iPod headphones, but not by much. The only real advantage was that the in-ear model made it easier to get my helmet on without pulling them out. So I decided to look for a noise-canceling set of Sony headphones, and in my searches instead came across the ER-6.&lt;br /&gt;&lt;br /&gt;The ER-6 is a set of in-ear noise-isolating headphones, for which Etymotic Research claim it's noise-isolating design "&lt;span id="Content"&gt;far surpasses that of active noise-canceling       earphones". My opinion? pretty damn good. I plugged in the headphones, cranked the iPod up to half way (which is what I put it at if i want to block most other noise out) threw my helmet on away I went. I was instantly impressed. 100km/h and i could still hear the music. 110km/h, music was fine. 140km/h, still singing along! Of course it wasn't perfectly clear. The other sounds were still there (which is a good thing, for safety reasons), they were just a lot quieter. When driving through the city, I could hear the other bikes and the cars, which is impossible with normal headphones without stopping (or fumbling around while riding) to turn the music down or off.&lt;br /&gt;&lt;br /&gt;These headphones are exactly what I wanted. I hope my ears will thank me. And as for Etymotic Research's claim about it's noise-isolation, I've got a pair of &lt;a href="http://www.sony.co.uk/view/ShowProduct.action?product=MDR-NC22&amp;amp;productsku=MDRNC22B.CE7&amp;amp;site=odw_en_GB&amp;amp;pageType=TechnicalSpecs&amp;amp;imageType=Main&amp;amp;category=HED+Travel"&gt;Sony MDR-NC22&lt;/a&gt; noise-canceling headphones just waiting to be tested out on my next long highway ride. They've got a lot of impressing to do though!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-3198569008034760064?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/3198569008034760064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=3198569008034760064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/3198569008034760064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/3198569008034760064'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/music-and-motobikes-solved.html' title='Music and motobikes, solved!'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-2222776154400048974</id><published>2008-03-05T10:55:00.003+10:00</published><updated>2008-03-05T21:48:35.381+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='802.1x'/><category scheme='http://www.blogger.com/atom/ns#' term='n82'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>Connecting my n82 to uni wifi</title><content type='html'>I got a &lt;a href="http://en.wikipedia.org/wiki/N82"&gt;N82&lt;/a&gt; yesterday, and have finally figured out how to connect it to the Wifi (ssid: walkabout) at JCU. So here's a quick run down on how I did it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Get CA certificates&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I used the Keychain access app on my MacBook to export the certificate authority that JCU uses (CACert.org), then sent the cert to the phone using bluetooth. My phone has already been paired with my mac when i set up iSync, so you may have to do that before continuing.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start "Keychain Access"&lt;/li&gt;&lt;li&gt;Find the cert named "CAcert Class 3 Root"&lt;/li&gt;&lt;li&gt;Right click on it, and select "Export "CAcert Class 3 Root"..."&lt;/li&gt;&lt;li&gt;Select the directory you wish to save the file to, and click Save (make sure the file format is .cer).&lt;/li&gt;&lt;li&gt;Find the file in Finder, Right click on it, go to: More -&gt; Send "file name" to -&gt; Phone name. This will send the file in a message to the phone.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open the message on the phone, it will detect that it's a cert file automatically.&lt;/li&gt;&lt;li&gt;Select "Save" to save the cert file.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Set up WLAN&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Goto: Tools -&gt; Settings -&gt; Connection -&gt; Access points&lt;/li&gt;&lt;li&gt;Open the options and select New access point&lt;/li&gt;&lt;li&gt;Set Connectiong name to "Walkabout"&lt;/li&gt;&lt;li&gt;Set Data bearer to "Wireless LAN"&lt;/li&gt;&lt;li&gt;Set WLAN network name to "walkabout"&lt;/li&gt;&lt;li&gt;Set WLAN security mode to "802.1X"&lt;/li&gt;&lt;li&gt;Enter WLAN security settings&lt;/li&gt;&lt;li&gt;Set WPA/WPA2 to EAP&lt;/li&gt;&lt;li&gt;Enter EAP plug-in settings&lt;/li&gt;&lt;li&gt;Highlight EAP-PEAP, hit options, and select Enable&lt;/li&gt;&lt;li&gt;Enter EAP-PEAP&lt;/li&gt;&lt;li&gt;Set Authority certificate to "CAcert Class 3 Root"&lt;/li&gt;&lt;li&gt;Set User name in use to "User defined"&lt;/li&gt;&lt;li&gt;Set User name to jc number&lt;/li&gt;&lt;li&gt;Set Realm in use to "User defined"&lt;/li&gt;&lt;li&gt;Leave Realm blank&lt;/li&gt;&lt;li&gt;Set Allow PEAPv2 to Yes&lt;/li&gt;&lt;li&gt;Go to the EAPs settings (click the right button on the nav control)&lt;/li&gt;&lt;li&gt;Highlight EAP-MSCHAPv2, hit options and select Enable&lt;/li&gt;&lt;li&gt;Enter EAP-MSCHAPv2&lt;/li&gt;&lt;li&gt;Set Username to jc number&lt;/li&gt;&lt;li&gt;Set Password&lt;/li&gt;&lt;li&gt;DONE!&lt;/li&gt;&lt;/ol&gt;Now when you open up the web browser, and it asks for a connection, select Walkabout and everything should work fine! The auth server will ask for your jc number and password again to auth you to the firewall, and after that everything runs smoothly.&lt;br /&gt;&lt;br /&gt;I'll do a quick write up on what i think about the N82 in a week or two when i've played with it some more.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-2222776154400048974?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/2222776154400048974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=2222776154400048974' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/2222776154400048974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/2222776154400048974'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/03/connecting-my-n82-to-uni-wifi.html' title='Connecting my n82 to uni wifi'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4067961554521320265.post-1923100919605921740</id><published>2008-02-18T10:13:00.000+10:00</published><updated>2008-02-18T11:20:52.974+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='srb'/><category scheme='http://www.blogger.com/atom/ns#' term='bittorrent'/><category scheme='http://www.blogger.com/atom/ns#' term='file storage'/><title type='text'>Bittorrent for file storage and replication</title><content type='html'>After a lengthy hallway discussion this morning, the idea for a Bittorrent based file storage and replication to replace the need for SRB/gridftp popped into my head. Here is my current musings for such a system.&lt;br /&gt;&lt;br /&gt;Note: i'm using similar terms to bittorrent, when i refer to the actual bittorrent concepts, i will prefix the terms with BT-.&lt;br /&gt;&lt;br /&gt;The "tracker":&lt;br /&gt;&lt;br /&gt;Each institution will set up a tracker. The tracker would have a list of all the other institution's trackers which it replicates with. When a user starts uploading a new file to the tracker, the tracker notifies the other trackers of the new file, and starts sending the file to them using the bittorrent protocol. The idea is that all the trackers perform the tasks of a BT-tracker as well as a BT-peer. Thus replication is an ongoing process and is achieved automatically without having to specify specific replication times.&lt;br /&gt;&lt;br /&gt;File access for users:&lt;br /&gt;&lt;br /&gt;Because each institution is notified about a new file, all users can see the files instantly, regardless of which institution they're at. The users would download files in the same way bittorrent does. The user's institution's tracker would provide the user with a list of peers that are available, which may contain other users at their institution, or even other institution's trackers and users. The user's client would then download the file from all available sources, providing the maximum throughput. Uploading a file may work in a similar way, the user may upload the file to all peers, which would include other users and other institution's trackers. Of course, these things would have to be explored to find an optimal process.&lt;br /&gt;&lt;br /&gt;AAA:&lt;br /&gt;&lt;br /&gt;certificate based authentication, same as gridftp.&lt;br /&gt;&lt;br /&gt;File sharing:&lt;br /&gt;&lt;br /&gt;This will be a tricky section. I'm thinking the best idea might be groups. So when a user uploads a file they specify which group they wish to make the file(s) available to specific groups. All users of that group can see all the files for any groups they belong to.&lt;br /&gt;&lt;br /&gt;Metadata:&lt;br /&gt;&lt;br /&gt;Another tricky section that needs to be sorted out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4067961554521320265-1923100919605921740?l=tristanking.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tristanking.blogspot.com/feeds/1923100919605921740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4067961554521320265&amp;postID=1923100919605921740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/1923100919605921740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4067961554521320265/posts/default/1923100919605921740'/><link rel='alternate' type='text/html' href='http://tristanking.blogspot.com/2008/02/bittorrent-for-file-storage-and.html' title='Bittorrent for file storage and replication'/><author><name>Tristan</name><uri>http://www.blogger.com/profile/16892115358256351482</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.gravatar.com/avatar.php?gravatar_id=72bd41dba02093f7190b6a033c2ee9e1&amp;s=512'/></author><thr:total>0</thr:total></entry></feed>
