<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
  <title>BotFu the Blog - a simple blog with lots of kick!</title>
  <link>http://blog.botfu.com/</link>
  <description>A simple blog about technology, sports, and random other things</description>
  <lastBuildDate>2008-05-09 21:49:41.950</lastBuildDate>
  <language>en-us</language>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/BotFu" type="application/rss+xml" /><feedburner:emailServiceId>1621853</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
      <title>If it's worth doing...</title>
      <link>http://feeds.feedburner.com/~r/BotFu/~3/287259777/</link>
      <guid isPermaLink="false">http://blog.botfu.com/?p=123</guid>
      <pubDate>May  9 2008</pubDate>
      <description>If it's worth doing, it's worth refactoring.
&lt;br&gt;
&lt;br&gt;I'm not sure if that's a real saying or not, but it seems to be my theme of the day...and so I'm adopting (or coining it).
&lt;br&gt;
&lt;br&gt;I spent some time adding in support for various last.fm feeds to the fubnub system.  As I did that, I found a lot of little parts of the code that I could move around and clean up.
&lt;br&gt;
&lt;br&gt;Hopefully all that refactoring will be worth it in the long term. But even in the short term it felt good to do the work, if for no other reason than to go through the experience of refactoring various Perl classes and making them more DRY (don't repeat yourself).
&lt;br&gt;
&lt;br&gt;Tomorrow I've got to spend some time writing a script to convert one XML format into another for reviews.com.  And soon I've got to get my player rankings together (since they are due to the magazine by next weekend).
&lt;br&gt;
&lt;br&gt;So I'm not sure how much time I'll have over the weekend to push forward on fubnub; but heading into the weekend, I'm hoping to push everything forward at least a little bit.  We'll see.
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/BotFu?a=svWX0e"&gt;&lt;img src="http://feeds.feedburner.com/~a/BotFu?i=svWX0e" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/BotFu?a=QJgNxH"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=QJgNxH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=Xq42jh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=Xq42jh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=JU9gJh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=JU9gJh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=oeA1Wh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=oeA1Wh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    <feedburner:origLink>http://blog.botfu.com/?p=123</feedburner:origLink></item>    <item>
      <title>It works! It works! Well, sort of.</title>
      <link>http://feeds.feedburner.com/~r/BotFu/~3/286471672/</link>
      <guid isPermaLink="false">http://blog.botfu.com/?p=122</guid>
      <pubDate>May  8 2008</pubDate>
      <description>I actually got the background stuff for fubnub'ing feeds working today!
&lt;br&gt;
&lt;br&gt;What that means is that I can now wrap my twitter feeds and rss feeds up into single posts and publish those posts to a blog or email via a twitter post.
&lt;br&gt;
&lt;br&gt;Say what?
&lt;br&gt;
&lt;br&gt;OK - it's a lot harder to explain than it is to actually use...and that's probably going to be my next challenge, putting together some screen shots, demos, and examples to make it easy to understand (and use) the whole idea.
&lt;br&gt;
&lt;br&gt;But since I don't have those together yet, let's see if I can break it down in bullet form for you.
&lt;br&gt;
&lt;br&gt;First the orig. problem that prompted me to build this:
&lt;br&gt;
&lt;br&gt;1. I want to use Twitter to send quick updates about the things I'm working on - basically as a checked off to-do list.  This way no matter where I am or what I'm doing, I can use Twitter to keep my list updated (since you can Tweet from via SMS, email, web, etc it's a nice way to piggyback off their services).
&lt;br&gt;
&lt;br&gt;2. Eventually I want to take those one-off Twitter postings and roll them up into one larger list...a "this is what I did today" kind of thing.
&lt;br&gt;
&lt;br&gt;3. Then I want that to be published on demand to my blog or sent to me via email as a single post/email.
&lt;br&gt;
&lt;br&gt;OK - so that was the initial idea.  Of course it expanded almost immediately into a number of 'cool' things I could/should probably do if I'm going to build a system that solves my above problem...all of which I'll share more details on later...for now though, let's talk about how the system actually helps me achieve my orig. goal:
&lt;br&gt;
&lt;br&gt;1. I created a template that each of my twitter posts will get applied to when I publish. (eventually you'll be able to pick templates from the fubnub.com web site as well as create your own - but right now I just manually entered a few into the database).
&lt;br&gt;
&lt;br&gt;2. I set up the delivery options I wanted for when I publish (ie. I associated my twitter username to one of the templates, said that I wanted the data delivered via email when I publish, and provided the email address I wanted it sent to.)  (again I did this by manually entering the information into the database, but real users will do this via the fubnub.com web site).
&lt;br&gt;
&lt;br&gt;3. I follow fubnub via twitter (and since fubnub is a twitter bot, it should then auto-follow me as well).  You follow fubnub by tweeting this from your Twitter account:
&lt;br&gt;
&lt;br&gt;&lt;p style="background: #eeeeee; border: thin dashed rgb(125,125,125); padding: 10px;"&gt;follow fubnub&lt;/p&gt;
&lt;br&gt;4. Now all I have to do is Tweet away and when I'm ready to 'publish', I just send a direct tweet to fubnub that looks something like this:
&lt;br&gt;
&lt;br&gt;&lt;p style="background: #eeeeee; border: thin dashed rgb(125,125,125); padding: 10px;"&gt;d fubnub #pt I'm publishing with fubnub!&lt;/p&gt;
&lt;br&gt;This command tells fubnub that it should grab my latest tweets (from my Twitter timeline), apply the template I choose to that data, and then send it via email to the address I specified.
&lt;br&gt;
&lt;br&gt;The subject of the email will be everything after the #pt in my tweet...so in this case "I'm publishing with fubnub!".
&lt;br&gt;
&lt;br&gt;Pretty cool eh?  But there's already a little more you can do (and lots more in the works).
&lt;br&gt;
&lt;br&gt;1. If I chose to publish to my blog instead, the stuff after the #pt would be used as my post title. (currently you can publish via xmlrpc to wordpress and other metaweblog supported xmlrpc clients)
&lt;br&gt;
&lt;br&gt;2. If I want to wrap up a series of RSS feeds into one post, I can go through the set up process like I mentioned above and the only thing that needs to change (besides the template because we will be using different fields) is the #pt command to something like this:
&lt;br&gt;
&lt;br&gt;&lt;p style="background: #eeeeee; border: thin dashed rgb(125,125,125); padding: 10px;"&gt;d fubnub #pr I'm publishing with fubnub!&lt;/p&gt;
&lt;br&gt;3. fubnub also keeps track of the latest Tweet and/or RSS link that was included when you published, so that the next time you say to publish, it will not repeat items. (there are a few gotchas in the system right now because of limitations on what you can get out of Twitter timelines and RSS feeds, but the basic idea is true that it will not repeat data that it has already published.)
&lt;br&gt;
&lt;br&gt;Of course all of this will hopefully be broken down with images and examples on the actual fubnub.com site (just as soon as I get time to do that).
&lt;br&gt;
&lt;br&gt;I'll probably also build in support so that you can publish via tools at the fubnub site or by sending a publish command via email directly to fubnub (for those that don't want to mess with Twitter).
&lt;br&gt;
&lt;br&gt;I'm also going to be working on adding in support for other feed related sources like Tumblr and audioscribbler (last.fm stuff).
&lt;br&gt;
&lt;br&gt;For now though, the back end is up and running.  So I'll be moving on to the front end (the fubnub.com web site)...once I get enough of that together, I can actually try and get a few other people out there trying/using it...and then we'll see where it takes us!
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/BotFu?a=9KO4fq"&gt;&lt;img src="http://feeds.feedburner.com/~a/BotFu?i=9KO4fq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/BotFu?a=K8Ds3H"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=K8Ds3H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=JnZmth"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=JnZmth" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=sWoVCh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=sWoVCh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=ijVDvh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=ijVDvh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    <feedburner:origLink>http://blog.botfu.com/?p=122</feedburner:origLink></item>    <item>
      <title>The Perl DBI and MS SQL text fields</title>
      <link>http://feeds.feedburner.com/~r/BotFu/~3/285747062/</link>
      <guid isPermaLink="false">http://blog.botfu.com/?p=121</guid>
      <pubDate>May  7 2008</pubDate>
      <description>So I'm putting in a crunch effort to get this latest fubnub idea together and, as is the case with most of these crunches, I'm hitting little problems at every corner.
&lt;br&gt;
&lt;br&gt;Nothing show stopping, but a few of them have taken me some serious time to track down solutions for.  So I thought, hey why not share solutions to some of the more annoying roadblocks I hit?
&lt;br&gt;
&lt;br&gt;Who knows, maybe I can save the next person a little time?
&lt;br&gt;
&lt;br&gt;Anyway, the first real problem I hit had to do with the Perl DBI, the DBD::ODBC driver, and MS SQL text fields.  Basically I was hitting an error like this when I tried to load records with text or ntext fields of any real size:
&lt;br&gt;
&lt;br&gt;&lt;p style="background: #eeeeee; border: thin dashed rgb(125,125,125); padding: 10px;"&gt;Error: DBD::ODBC::st fetchrow_array failed: [Microsoft][ODBC SQL Server Driver]String data, right truncation (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated DBI attribute LongTruncOk not set and/or LongReadLen too
&lt;br&gt;small) err=-1)&lt;/p&gt;
&lt;br&gt;Searching around online, I found a number of people suggesting that you set a few options so that your code looks something like this:
&lt;br&gt;
&lt;br&gt;&lt;p style="background: #eeeeee; border: thin dashed rgb(125,125,125); padding: 10px;"&gt;my $dbh = DBI-&amp;gt;connect("dbi:ODBC:$dsn", $username, $password);
&lt;br&gt;$dbh-&amp;gt;{'LongTruncOk'} = 1;
&lt;br&gt;$dbh-&amp;gt;{'LongReadLen'} = 255;&lt;/p&gt;
&lt;br&gt;The LongTruncOk tells the driver that it's OK to truncate text fields if it needs to. The LongReadLen sets the number of bytes a single select statement should grab from a text field.
&lt;br&gt;
&lt;br&gt;For the most part, this was the extent of the solutions I found, so I guess it worked well enough for most people. However, I still had a couple of small problems -- OK big problems.
&lt;br&gt;
&lt;br&gt;It really wasn't OK to truncate my data and I don't know how many bytes of data my text fields might end up holding (which is one of the reasons I'm using a text field in the first place).
&lt;br&gt;
&lt;br&gt;So what to do?  Well as it turns out, the ODBC driver for PHP that I use tends to have this same issue.  As luck would have it the solution to the problem in PHP turns out to also work for this Perl DBD::ODBC situation.
&lt;br&gt;
&lt;br&gt;You simply have to get the length in bytes of the data you are going to grab (using the datalength function in T-SQL) and then make multiple calls to the database grabbing a substring of your text field in byte chunks.
&lt;br&gt;
&lt;br&gt;You just do this until you've loaded all your data into a variable. A code example shows this concept in action:
&lt;br&gt;
&lt;br&gt;&lt;p style="background: #eeeeee; border: thin dashed rgb(125,125,125); padding: 10px;"&gt;my $dbh = DBI-&amp;gt;connect("dbi:ODBC:$dsn", $username, $password);
&lt;br&gt;$dbh-&amp;gt;{'LongTruncOk'} = 1;
&lt;br&gt;$dbh-&amp;gt;{'LongReadLen'} = 255;
&lt;br&gt;my $sth = $dbh-&amp;gt;prepare('SELECT datalength(mytextfield) dlength, mytextfield FROM tablewithtext WHERE id = ?') or die;
&lt;br&gt;$sth-&amp;gt;execute($id) or die;
&lt;br&gt;my $text = "";
&lt;br&gt;while (my @data = $sth-&amp;gt;fetchrow_array()) {
&lt;br&gt;&amp;nbsp;&amp;nbsp;my $dlength = $data[0];
&lt;br&gt;&amp;nbsp;&amp;nbsp;if ($dlength &amp;gt; 255) {
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my $offset = 1;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ($offset &amp;lt; $dlength) {
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my $newoffset;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ($offset + 255 &amp;lt; $dlength) {
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$newoffset = 255;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$newoffset = ($dlength - $offset) + 1;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my $query = "SELECT SUBSTRING(mytextfield, $offset, $newoffset) AS txt FROM tablewithtext where id = $id";
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;my $st1 = $dbh-&amp;gt;prepare($query) or die;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$st1-&gt;execute() or die;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while (my @d1 = $st1-&amp;gt;fetchrow_array()) {
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$text .= $d1[0];
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$offset += 255;
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;&amp;nbsp;} else {
&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$text = $data[1];
&lt;br&gt;&amp;nbsp;&amp;nbsp;}
&lt;br&gt;}&lt;/p&gt;
&lt;br&gt;So a couple of interesting things to note about the code above...
&lt;br&gt;
&lt;br&gt;First, I do actually use the two settings (LongTruncOK and LongReadLen) mentioned above.
&lt;br&gt;
&lt;br&gt;I picked the value of 255 bytes for my default text field size because it should grab most cases just fine for me...and the larger you make that block, the fewer times you have to do the additional query to get all your data.
&lt;br&gt;
&lt;br&gt;The downside of course is that you are using more memory the larger you set this value to.
&lt;br&gt;
&lt;br&gt;Second in my initial query I don't just get the datalength, I actually also grab the text field as well.
&lt;br&gt;
&lt;br&gt;This way, if my text field is smaller than the initial 255 byte chunk I told the driver to grab, I can just use the field directly like a normal select statement and avoid any extra database calls (remember database calls are ALWAYS expensive things you want to try and limit as much as possible).
&lt;br&gt;
&lt;br&gt;If the data in my text field is bigger than 255 bytes, I start doing my additional queries grabbing the next 255 bytes of the text field each time until I've got all the data for the text field loaded.
&lt;br&gt;
&lt;br&gt;Then I can finally move on without losing access to any of my data (I mean why would I put data into my database that I'm not actually going to need to get out and use in some way at some point?).
&lt;br&gt;
&lt;br&gt;Again, the downside to all of this is the number of database calls that you might end up making just to load your data into memory (so you can do whatever it is that you really want to do with that data).
&lt;br&gt;
&lt;br&gt;So just be mindful of how often you do this kind of thing, and try to design around having to do this as much as you can...especially in production and heavy load environments.
&lt;br&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/BotFu?a=pjdpWX"&gt;&lt;img src="http://feeds.feedburner.com/~a/BotFu?i=pjdpWX" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/BotFu?a=M0TTrH"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=M0TTrH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=4eciCh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=4eciCh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=ehFnTh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=ehFnTh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=OV0mHh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=OV0mHh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    <feedburner:origLink>http://blog.botfu.com/?p=121</feedburner:origLink></item>    <item>
      <title>Thought dump...</title>
      <link>http://feeds.feedburner.com/~r/BotFu/~3/285000604/</link>
      <guid isPermaLink="false">http://blog.botfu.com/?p=120</guid>
      <pubDate>May  6 2008</pubDate>
      <description>XML without a DTD or Schema is basically just a CSV file with slightly harder processing rules.  Sure you can get a little more out of the relationship of the data, but honestly not that much more than a well designed CSV.
&lt;br&gt;
&lt;br&gt;&lt;a href="http://hackety.org/2008/05/05/sneakingRubyThroughGoogleAppEngine.html"&gt;Creating Python byte code from Ruby&lt;/a&gt; is kind of cool...if for no other reason than the idea of it.
&lt;br&gt;
&lt;br&gt;I wish I had time to attend things like the Make Fair...at least &lt;a href="http://blog.guykawasaki.com/2008/05/maker-faire-stu.html"&gt;Guy posted some really cool pictures&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;Andy Lester &lt;a href="http://perlbuzz.com/2008/05/perl-decentralize-diversify-colonize.html"&gt;thinks about things the rest of us should&lt;/a&gt; - Perl is lucky to have a guy that cares so much.
&lt;br&gt;
&lt;br&gt;&lt;a href="http://www.botfu.com"&gt;BotFu fight&lt;/a&gt; is a lot of fun when you get even just a couple of people interested in it with you.
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/BotFu?a=NEAvTf"&gt;&lt;img src="http://feeds.feedburner.com/~a/BotFu?i=NEAvTf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/BotFu?a=mqUK1H"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=mqUK1H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=NCTiFh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=NCTiFh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=ljU7uh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=ljU7uh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=OfLvEh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=OfLvEh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    <feedburner:origLink>http://blog.botfu.com/?p=120</feedburner:origLink></item>    <item>
      <title>Ka'ching.</title>
      <link>http://feeds.feedburner.com/~r/BotFu/~3/284332450/</link>
      <guid isPermaLink="false">http://blog.botfu.com/?p=119</guid>
      <pubDate>May  5 2008</pubDate>
      <description>I put in some good time on the front end stuff of fubnub.com tonight...still nothing really worth chatting about or showing off, but it's one step closer to getting there &lt;img src='/images/emoticons/smiley.gif' align=bottom alt='Smiley' border='0'&gt;
&lt;br&gt;
&lt;br&gt;I also did a few fixes to some BotFu html so that it doesn't look like total poo on Internet Explorer...but I now have to sit down and go through all of the site with Internet Explorer when I have time (yippie).
&lt;br&gt;
&lt;br&gt;On other news, I got back in the pool tonight for the first time in many too many years...it's really fun...but it's also really sad how far my physical state has fallen.  Hopefully I can get a routine together and keep it up...but for now it's just fun doing something (rather than my usual nothing).
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/BotFu?a=GgBANV"&gt;&lt;img src="http://feeds.feedburner.com/~a/BotFu?i=GgBANV" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/BotFu?a=Yy5kbH"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=Yy5kbH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=YfA7Rh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=YfA7Rh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=9brhdh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=9brhdh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/BotFu?a=Y6d5qh"&gt;&lt;img src="http://feeds.feedburner.com/~f/BotFu?i=Y6d5qh" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
    <feedburner:origLink>http://blog.botfu.com/?p=119</feedburner:origLink></item></channel>
</rss>
