<?xml version='1.0'?><feed xml:lang='en' xmlns:dc='http://purl.org/dc/elements/1.1/' xml:base='http://toothrot.net/index.atom' xmlns='http://www.w3.org/2005/Atom'>
    <title>toothrot</title>
    <link href='http://toothrot.net' rel='alternate' type='text/html'/>
    <link href='http://toothrot.net/index.atom' rel='self' type='application/atom+xml'/>
    <updated>2009-04-24T00:31:23Z</updated>
    <subtitle>delicious</subtitle>
    <id>tag:toothrot.net,2009:blog</id>
    <generator uri='http://hobix.com/' version='0.5'>Hobix</generator>
    <rights>None</rights>
<entry xml:base='http://toothrot.net/blahg/Gutter135IsOut.html'><title xml:space='preserve'>Gutter r135 Is Out</title><link href='http://toothrot.net/blahg/Gutter135IsOut.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FGutter135IsOut</id><published xml:space='preserve'>2009-04-11T22:28:15Z</published><updated xml:space='preserve'>2009-04-11T22:28:15Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;As a hack a while back, I put together a Twitter client, Gutter, written in &lt;a href=&quot;http://www.shoooes.net&quot;&gt;Shoes&lt;/a&gt; for Ruby.  Well, a lot has happened since my last release, so here it is again:&lt;/p&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;/images/gutter-135.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&amp;#8217;s new?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Ignoring people (anti-social networking)&lt;/li&gt;
	&lt;li&gt;Filtering out posts by regular expression (Thanks, Josh Davison!)&lt;/li&gt;
	&lt;li&gt;Theming support&lt;/li&gt;
	&lt;li&gt;Built-in Twitpic viewing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Along with everything else amazing it does.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not going to lie. The settings screen looks like &lt;strong&gt;hell&lt;/strong&gt;.  Really, it&amp;#8217;s &lt;strong&gt;atrocious&lt;/strong&gt;.  It works though, but you&amp;#8217;re not going to like it.&lt;/p&gt;
&lt;p&gt;Anyway, I hope you like it.  Send me a message with comments, concerns, ideas, whatnots.&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://wiki.github.com/toothrot/gutter&quot;&gt;Download Gutter&lt;/a&gt;&lt;/h3&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/Inquisition.html'><title xml:space='preserve'>Inquisition Cleanses the Taint from your Strings</title><link href='http://toothrot.net/blahg/Inquisition.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FInquisition</id><published xml:space='preserve'>2009-04-10T15:20:08Z</published><updated xml:space='preserve'>2009-04-10T15:20:08Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;There are a couple of really great options for protecting against &lt;span class=&quot;caps&quot;&gt;XSS&lt;/span&gt;-style attacks in Ruby on Rails.  &lt;a href=&quot;http://github.com/ninajansen/acts_as_sanitized/&quot;&gt;Acts_as_sanitized&lt;/a&gt; is pretty great, but it uses the Rails Sanitizer, which isn&amp;#8217;t perfect.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://github.com/look/xss_terminate&quot;&gt;&lt;span class=&quot;caps&quot;&gt;XSS&lt;/span&gt;-Terminate&lt;/a&gt; has an awesome built-in &lt;a href=&quot;http://rubyforge.org/projects/html5/&quot;&gt;HTML5&lt;/a&gt; sanitizer, but xss-terminate automatically tries to clean every field on every model, which is a bit much for my needs.&lt;/p&gt;
&lt;p&gt;But now, you have &lt;a href=&quot;http://github.com/thumblemonks/inquisition&quot;&gt;Inquisition&lt;/a&gt;.  Inquisition is easy enough:&lt;/p&gt;
&lt;pre&gt;
  class Post &amp;lt; ActiveRecord::Base
    cleanse_attr :title, :body
    cleanse_attr_writer :email
    cleanse_attr_reader :author
  end

  class PostTest &amp;lt; ActiveSupport::TestCase
    should_sanitize_attributes :title, body
    should_sanitize_attribute_writers :email
    should_sanitize_attribute_readers :author
  end
&lt;/pre&gt;
&lt;p&gt;That is it.  Installation is great too:&lt;/p&gt;
&lt;pre&gt;
  gem sources -a http://gems.github.com
  gem install thumblemonks-inquisition
&lt;/pre&gt;
&lt;p&gt;If you&amp;#8217;re using rails and you want the shoulda macros, you&amp;#8217;ll have to &lt;a href=&quot;http://dev.thoughtbot.com/shoulda/files/README_rdoc.html&quot;&gt;freeze the gem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, there you have it.  &lt;a href=&quot;http://github.com/thumblemonks/inquisition&quot;&gt;Inquisition&lt;/a&gt; uses the same html5lib_sanitize from xss-terminate, so you get the best protection against even somewhat-invalid html.  It also doesn&amp;#8217;t assume you want everything sanitized everywhere.&lt;/p&gt;
&lt;p&gt;I hope you like it.  If you&amp;#8217;re wondering about the name, &lt;a href=&quot;http://github.com/thumblemonks/inquisition&quot;&gt;Inquisition&lt;/a&gt; removes the &lt;strong&gt;heresy&lt;/strong&gt; and &lt;strong&gt;taint&lt;/strong&gt; from your strings.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/ArtAndCode2009.html'><title xml:space='preserve'>Art and Code 2009</title><link href='http://toothrot.net/blahg/ArtAndCode2009.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FArtAndCode2009</id><published xml:space='preserve'>2009-03-09T22:49:56Z</published><updated xml:space='preserve'>2009-03-09T22:49:56Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;This weekend, I travelled with Evan of &lt;a href=&quot;http://www.opensprints.org&quot;&gt;OpenSprints.org&lt;/a&gt; and JonP to &lt;a href=&quot;http://artandcode.ning.com&quot;&gt;Art and Code&lt;/a&gt;.  The experience, overall, was fantastic.  We had an opportunity to sit through two classes with the venerable &lt;a href=&quot;http://whytheluckystiff.net&quot;&gt;_why&lt;/a&gt; of such internet fame.&lt;/p&gt;
&lt;p&gt;Why&amp;#8217;s online persona completely matches his in-person persona.  It was incredibly refreshing to walk into a class at 10AM on a Saturday and have it begin to the sound of an autoharp, listening with people from the age of eight and up.  Installing and using &lt;a href=&quot;http://hacketyhack.net&quot;&gt;HacketyHack&lt;/a&gt; was a breeze, of course.&lt;/p&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;a href=&quot;http://flickr.com/photos/23856408@N02/3339805005/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3562/3339805005_03b979c58f.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://shoooes.net&quot;&gt;Shoes&lt;/a&gt;, the liquified horse that powers HacketyHack, has brought complete joy to my hacking experience and allowed Evan and I to crank out what used to be multi-month learning curves of graphical kits, to a multi-hour hacking session.  _why certainly solved the problem of graphical toolkits, fulfilling all of the points of &lt;a href=&quot;http://whytheluckystiff.net/articles/theLittleCodersPredicament.html&quot;&gt;The Little Coder&amp;#8217;s Predicament&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Art and Code itself was an interesting crowd compared to most programming events.  It avoids the hoo-ha, boasts a $25 entry fee, and allows all sorts of people to enjoy it, as I said above, people from the age of 8 to 60, male and female, artist and programmer.&lt;/p&gt;
&lt;p&gt;The best part of the conference was the tiny crowd.  It was to talk to an excellent group of people who seem to understand that programming is hacking, and hacking is art.&lt;/p&gt;
&lt;p&gt;Many &amp;#8220;enterprise&amp;#8221; software engineers will argue you to no end about how you are doing it wrong.  How do they know what I am doing, anyway?&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s an example:&lt;/p&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;/images/bear-attack-code.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This gives you, of course:&lt;/p&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;/images/bear-attack.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ok, maybe this isn&amp;#8217;t simple enough for a child, but it&amp;#8217;s certainly something that could be achieved within a week or two.  We&amp;#8217;re not talking shopping carts and Flash here, we&amp;#8217;re talking everything from Commodore to Processing as possible.&lt;/p&gt;
&lt;p&gt;Meanwhile, you should be awaiting the release of Hackety Hack and the next Shoes.  It brings out the kid in you.  The kid that powers the hacker, who will make a singing game of bears dancing and attacking you, helicopters that shoot down dinosaurs, or talking to aliens that are trying to kidnap all of the good meatloafs.  HacketyHack is a tool for hacks, in the most beautiful and exciting sense.&lt;/p&gt;
&lt;p&gt;I want to go into some of the awesome features of Hackety Hack this week, right there on your laptop on your lap.&lt;/p&gt;
&lt;p&gt;Also, check out some of the photos at &lt;a href=&quot;http://flickr.com/photos/toothrot/sets/72157614957307515/&quot;&gt;my flickr set&lt;/a&gt;, as well as &lt;a href=&quot;http://flickr.com/photos/23856408@N02/&quot;&gt;Jon&amp;#8217;s flickr&lt;/a&gt;.  These are really more for us, but hopefully it will inspire more to seek Potatchos.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/WelcomeTheTwitterShitter.html'><title xml:space='preserve'>Welcome the Twitter Rails Exception Notifier</title><link href='http://toothrot.net/blahg/WelcomeTheTwitterShitter.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FWelcomeTheTwitterShitter</id><published xml:space='preserve'>2009-02-26T20:56:35Z</published><updated xml:space='preserve'>2009-02-26T20:56:35Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;So you&amp;#8217;re probably looking for some visibility into your exceptions in Ruby on Rails.  Sure, everyone is.  There are some great things out there, like &lt;a href=&quot;http://www.hoptoadapp.com&quot;&gt;hoptoad&lt;/a&gt;, that we use and are fantastic.&lt;/p&gt;
&lt;p&gt;Really, it&amp;#8217;s great enterprise software.  I, for one, do enterprise software development for a living.  It&amp;#8217;s circumstance, sure, not necessarily a passion.  I am not a huge fan of the codebase of our app. Still, the app itself kind of takes on a personality over time.&lt;/p&gt;
&lt;p&gt;Combined with similar feelings from &lt;a href=&quot;http://annealer.org&quot;&gt;annealer&lt;/a&gt; and V, we give you TwitterShitter:&lt;/p&gt;
&lt;pre&gt;
module TwitterShitter
  def self.included(base)
    if base.instance_methods.include?(&quot;rescue_action_in_public&quot;)
      base.module_eval { alias_method_chain :rescue_action_in_public, :twitter }
    end
  end

  def rescue_action_in_public_with_twitter(exception)
    Bed.crap
    rescue_action_in_public_without_twitter(exception)
  end

  class Bed
    require &quot;httparty&quot;
    include HTTParty
    format :json
    base_uri 'twitter.com'

    def self.crap
      query = {:status =&amp;gt; &quot;EXCEPTION TIME: Oh man. I just crapped the bed.&quot;, :source =&amp;gt; &quot;TwitterShitter&quot;}
      credentials = {:username =&amp;gt; &quot;&quot;, :password =&amp;gt; &quot;&quot;}
      post('/statuses/update.json', :query =&amp;gt; query, :basic_auth =&amp;gt; credentials)
    end
  end
end
&lt;/pre&gt;
&lt;p&gt;Go ahead and include TwitterShitter in your base controller, and add your username and password to the file.  It will notify every time you get a non-local exception (see rails&amp;#8217; local_request?).&lt;/p&gt;
&lt;p&gt;Succinct, no?  Sure the HTTParty is entirely excessive, you may as well just use Net::&lt;span class=&quot;caps&quot;&gt;HTTP&lt;/span&gt;, but I like plugging HTTParty wherever I can.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/TryGutter111.html'><title xml:space='preserve'>Try Gutter r111</title><link href='http://toothrot.net/blahg/TryGutter111.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FTryGutter111</id><published xml:space='preserve'>2009-02-21T13:08:22Z</published><updated xml:space='preserve'>2009-02-21T13:08:22Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;GOOD&lt;/span&gt; &lt;span class=&quot;caps&quot;&gt;NEWS&lt;/span&gt;!&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s a new release of &lt;a href=&quot;http://github.com/toothrot/gutter/wikis&quot;&gt;Gutter&lt;/a&gt;, your favorite twitter client.  This release is &lt;strong&gt;revision 111&lt;/strong&gt;, so give it a shot. Here are some new things:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A &lt;a href=&quot;http://toothrot.net/images/gutter-111-settings.png&quot;&gt;better settings interface&lt;/a&gt;
	&lt;ul&gt;
		&lt;li&gt;Now you can ignore people! &lt;span class=&quot;caps&quot;&gt;FINALLY&lt;/span&gt;.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;A &lt;a href=&quot;http://toothrot.net/images/gutter-111-more.png&quot;&gt;load more tweets&lt;/a&gt; button.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Installation is easy for &lt;strong&gt;Mac/Windows/Linux&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Download &lt;a href=&quot;http://shoooes.net/&quot;&gt;Shoes&lt;/a&gt; for your platform&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://toothrot.net/garbage/gutter-111.shy&quot;&gt;Download the latest Gutter&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Double click Shoes and then open gutter-111.shy!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Alternatively, there is a &lt;strong&gt;one-click-installer&lt;/strong&gt; for Linux (Mac and Windows one-click coming soon!): &lt;a href=&quot;http://toothrot.net/garbage/gutter-111.run&quot;&gt;Linux One-Click&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As always, please send me bugs and feature requests.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/LearnCToUnderstandRuby.html'><title xml:space='preserve'>Learn C To Understand Ruby</title><link href='http://toothrot.net/blahg/LearnCToUnderstandRuby.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FLearnCToUnderstandRuby</id><published xml:space='preserve'>2009-02-15T21:45:40Z</published><updated xml:space='preserve'>2009-02-15T21:45:40Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;My learn-C-to-understand-ruby project is working out fantastically.  Thanks to great amounts of help from things like the Ruby Hacker&amp;#8217;s Guide, hacking in Shoes, and Programming Ruby, I have learned a fantastic amount about the &amp;#8220;why&amp;#8221; and &amp;#8220;how&amp;#8221; of ruby.  I think I will expand my project to include, later, learn-Smalltalk-to-understand-ruby.&lt;/p&gt;
&lt;p&gt;I highly recommend it, and will begin posting interesting things that I have picked up along the way.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/Gutter88IsOut.html'><title xml:space='preserve'>Gutter88 Is Out</title><link href='http://toothrot.net/blahg/Gutter88IsOut.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FGutter88IsOut</id><published xml:space='preserve'>2009-01-23T14:28:02Z</published><updated xml:space='preserve'>2009-01-23T14:28:02Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;There is a new version of your favorite shoes twitter client,&lt;br /&gt;
&lt;a href=&quot;/projects/Gutter.html&quot;&gt;Gutter!&lt;/a&gt;  Not a whole lot has changed, but&lt;br /&gt;
importantly, there is an interface for logging in with another account.&lt;br /&gt;
Also, login failures are handeled &lt;strong&gt;much nicer&lt;/strong&gt; now.&lt;/p&gt;
&lt;p&gt;So, enjoy:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://toothrot.nfshost.com/gutter/gutter-88.shy&quot;&gt;Gutter-88&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;http://toothrot.nfshost.com/gutter/gutter-88.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/GutterIsEasy.html'><title xml:space='preserve'>Gutter Is Easy</title><link href='http://toothrot.net/blahg/GutterIsEasy.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FGutterIsEasy</id><published xml:space='preserve'>2009-01-21T11:24:33Z</published><updated xml:space='preserve'>2009-01-21T11:24:33Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;Thanks to an awesome feature in Shoes, installing &lt;a href=&quot;/projects/Gutter.html&quot;&gt;Gutter&lt;/a&gt; is only a three step process now:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Download Shoes from &lt;a href=&quot;http://shoooes.net&quot;&gt;shoooes.net&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://toothrot.nfshost.com/gutter/gutter-83.shy&quot;&gt;Download Gutter&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Open Shoes, and pick out gutter-83.shy!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This should get rid of the trouble getting started with Gutter.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/ShoesInTheGutter.html'><title xml:space='preserve'>Shoes In The Gutter</title><link href='http://toothrot.net/blahg/ShoesInTheGutter.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FShoesInTheGutter</id><published xml:space='preserve'>2009-01-20T15:51:43Z</published><updated xml:space='preserve'>2009-01-20T15:51:43Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;A while ago I began messing with Shoes.  Shoes is an excellent, tiny graphics&lt;br /&gt;
toolkit. Learn something about it at&lt;br /&gt;
&lt;a href=&quot;http://shoooes.net/about&quot;&gt;Shoooes.net/about.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Anyway, Gutter was designed as a quick hack to make a decent twitter client&lt;br /&gt;
for linux, mac, and windows (maybe).&lt;/p&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;http://toothrot.nfshost.com/gutter/gutter-82.png&quot; title=&quot;Gutter&quot; alt=&quot;Gutter&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So, it&amp;#8217;s basic and a hack, but check out the code, and give it a shot.  Lemme&lt;br /&gt;
know what you really want to happen in it, and I will try to make it happen.&lt;/p&gt;
&lt;p&gt;To try it out:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Firstly, go to http://shoooes.net and get Shoes for your platform.&lt;/li&gt;
	&lt;li&gt;Then checkout the code from github.com at:
	&lt;ul&gt;
		&lt;li&gt;http://github.com/toothrot/gutter/tree/master&lt;/li&gt;
		&lt;li&gt;If you do not have git, do not worry!  Simply click the download button on github.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Then, start Shoes, open up gutter.rb from wherever you put the code, and enjoy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please, let me know what features you want.  Here&amp;#8217;s what I&amp;#8217;m planning:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Options&lt;/li&gt;
	&lt;li&gt;Multiple Accounts&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://identi.ca&quot;&gt;Identi.ca&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Windows Support&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://twitpic.com&quot;&gt;Twitpic&lt;/a&gt; support&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can&amp;#8217;t think of what else a twitter client needs, so let me know.&lt;/p&gt;</content></entry><entry xml:base='http://toothrot.net/blahg/Short.html'><title xml:space='preserve'>Short</title><link href='http://toothrot.net/blahg/Short.html' rel='alternate' type='text/html' xml:space='preserve'/><id xml:space='preserve'>tag:toothrot.net,2009:blogentry%2Fblahg%2FShort</id><published xml:space='preserve'>2008-10-30T09:29:40Z</published><updated xml:space='preserve'>2008-10-30T09:29:40Z</updated><dc:subject xml:space='preserve'>blahg</dc:subject><category term='blahg' xml:space='preserve' scheme='http://hobix.com/tags'></category><author><name xml:space='preserve'>toothrot</name><uri xml:space='preserve'>http://toothrot.net</uri><email xml:space='preserve'>scissorjammer@gmail.com</email></author><content type='html' xml:space='preserve'>&lt;p&gt;The rights of women and the poor have been ignored long enough.  If you think otherwise, you&amp;#8217;re wrong.&lt;/p&gt;</content></entry></feed>
