Kevin Nelson Marshall
Other entries:
« I'm still alive...I think.

Today I was notified about some fubnub problems - for some reason del.icio.us feeds weren't publishing, and last.fm feeds were ignoring their schedule and over publishing. This def. needed some investigation.

After a few quick tests, I narrowed the problem down to two things:

1. The Perl script that handles the scheduled posting was crashing on the first del.icio.us feed it was getting to...so it never updated the database to note what had been published. It was just a coincidence that the last.fm feeds were being published first.

Fixing this problem was very simple as I just needed to wrap the publish command with a eval block (Perl's version of a try/catch block).

2. The del.icio.us feed was crashing when attempting to publish to a blog. The cause turned out to be that the del.icio.us feeds often contain no standard ASCII characters (who knows why) and the XMLRPC module I'm using didn't handle that well.

Fixing this issue took a little more effort, but in the end it was really as simple as intelligently implementing CGI::escape. What I mean by intelligently implementing is that I had to pick the right spots in the overall process to escape the data and that itself took a little bit of reflective thinking about the overall steps a feed goes through in the system.

Now you might be wondering why I didn't have these fixes in from the very start. I mean with very little thought you can forsee these type of problems and be proactive about avoiding them.

Well that brings me back to the title of this post...you see by default I'm much more of a reactive than proactive coder. In my defense I do try to think of potential problems when hacking things together (though it's very hard with personal projects because I generally don't design then build...no for my own projects I tend to build then design or at best build and design).

Really it all falls back to my overall development philosophy:

1. Make it work.
2. Make it good.
3. Make it fast.

Right now fubnub is still in phase 1. For the sake of getting things working I often knowingly leave a long list of 'to-do' or 'to-fix' later issues. (and sometimes even I just overlook or miss obvious coding or logic flaws -- but hey I never said I was really all that smart!)

Besides, my follow up philosophy involves being a very active reactive developer...that is, a problem isn't a problem until it's a problem...and once it's a problem, it's a BIG problem that needs to be addressed immediately (or as immediately as my schedule will allow).

I feel like I've stuck to that so far with fubnub...but I still have a LONG LONG way to go (trust me you don't want to see the list of known 'to-do' and 'to-fix' issues I already have for fubnub)!

posted by Kevin Marshall on 2008-07-02 00:00:00+00


Subscribe to my RSS feed »

BotFu feed with RSS reader

BotFu feed by Email


Search All Posts »


Kevin Marshall - Who's That?

I'm just your basic programmer. I can't spell to save my life, I'm not the greatest story teller, and I often ramble on about nothing. This blog showcases all of that!

If you're bored drop me an email at info at falicon.com or view my outdated resume.


Stalk Kevin on »

bit.ly
Delicious
Digg
Disqus
Facebook
Flickr
FriendFeed
Github
Last.fm
LinkedIn
StumbleUpon
Twitter (@falicon)

Archives by Category »

(28) Code »
(8) ColdFusion »
(15) Database »
(10) Factor »
(3) Falcons »
(321) General »
(13) JavaScript »
(18) Perl »
(17) PHP »
(20) Ruby »

Archives by Month »

(1) September 2010 »
(2) August 2010 »
(3) July 2010 »
(13) June 2010 »
(8) May 2010 »
(2) April 2010 »
(2) March 2010 »
(5) January 2010 »
(2) October 2009 »
(6) August 2009 »
(11) July 2009 »
(2) May 2009 »
(3) April 2009 »
(2) March 2009 »
(7) February 2009 »
(9) January 2009 »
(14) December 2008 »
(5) November 2008 »
(12) October 2008 »
(13) September 2008 »
(16) August 2008 »
(23) July 2008 »
(20) June 2008 »
(24) May 2008 »
(23) April 2008 »
(27) March 2008 »
(28) February 2008 »
(26) January 2008 »
(7) December 2007 »

Published Works »

Beginning Amazon's SimpleDB (Apress in dev.)
Pro Active Record (Apress 2007)
Web Services with Rails (O'Reilly 2006).

Contributed To »

Ruby Cookbook (O'Reilly 2006)
SQL Cookbook (O'Reilly 2005)
Various Reviews published in Computing Reviews

Free Code I've Created »

SimpleDB library in Python 3.0



This blog is powered by KickAssCode.