<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Thoughts</title>
        <link>http://spencerchristensen.com/blog/</link>
        <description></description>
        <language>en-US</language>
        <copyright>Copyright 2008</copyright>
        <lastBuildDate>Fri, 28 Nov 2008 12:44:23 -0700</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Light reading over the Holidays</title>
            <description><![CDATA[So, it's Thanksgiving weekend and I find myself online reading a few articles and blog posts.&nbsp; One of note that I wanted to comment on and point out:<br /><br /><a href="http://mark.stosberg.com/blog/2008/11/the-benefits-of-vanilla-cgi-vs-fastcgi-for-perl-apps.html">The benefits of vanilla CGI vs FastCGI for Perl apps</a><br /> <div>&nbsp;&nbsp; Interesting read from Mark Stosberg.&nbsp; I'm quite familiar with Mark from his work with CGI::Application,l as I've been a fan of that perl module for many years now.&nbsp; I think there is a bias here that I need to mention, and that I think Mark and I share.<br /><br />&nbsp;&nbsp; What people value in a web development process/toolkit is significantly weighted by the process and tools that web developer a) first learned, and b) is most confortable using.&nbsp; Meaning that a developer whose first experience programming web applications was with Catalyst and has since found Mojo more comfortable and uses it regularly, will have a different set of "values" (or criteria by which other things are compared) than a developer who started web development with straight CGI.pm and is now a Jifty user.&nbsp; (this bias should extend itself to any and all programmers, but I find it more appearant in web developers where there is more contention about which toolkit is better than another).<br /><br />&nbsp;&nbsp; Whew.&nbsp; OK, after all that, I have to say that I agree with Mark and feel that "vanilla CGI" is a great way to get things rolling as a developer without having (usually) to change a thing to a web server.&nbsp; Just write your code and go.&nbsp; I also feel that if people expect things to run slow in CGI and not in mod_perl or FastCGI because that is their biased environment of choice, then they will program accordingly.&nbsp; Meaning that they will write code that is slower, heavier, etc.&nbsp; because "oh, mod_perl will take care of it and it will be fast enough,"&nbsp; or something similar.<br /><br />&nbsp;&nbsp; I've never actualy heard anyone say that, but I hear things close to it from other developers (Java web developers mostly) who feel like everything is perfectly normal when you have to rely on huge complex tools and frameworks and middleware and dedicated containers and separation of tiers and abstracted everything and this and that and the kitchen sink too just to develop web applications.&nbsp; This "normal bloat" I'll call it, is where that bias I mentioned earlier really comes out.&nbsp; If people can't even see that their tools and process is overly complex, burdensome, and has a moderate to high degree of dependencies for normal development and opperation, than how can you persuade them that it is perfectly fine to live without that?&nbsp; How can you make them see that that is not "normal" for many, many other web developers?<br /><br />&nbsp;&nbsp; Living without FastCGI???&nbsp; Shudder.&nbsp; You're still using <b>perl</b> for web development?!?!?!?&nbsp; How can you live without Hibernate for data access (or replace with your favorite language specific tool here)?!?!&nbsp; Running perl CGI without mod_perl??? Are you stupid??<br /><br />&nbsp; Yes, stupid like a fox. Err... I mean, doh.<br /><br /></div>]]></description>
            <link>http://spencerchristensen.com/blog/2008/11/light-reading-over-the-holiday.html</link>
            <guid>http://spencerchristensen.com/blog/2008/11/light-reading-over-the-holiday.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web Development</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">CGI</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">web development</category>
            
            <pubDate>Fri, 28 Nov 2008 12:44:23 -0700</pubDate>
        </item>
        
        <item>
            <title>Sleep and the art of staying awake</title>
            <description><![CDATA[It has been far too long since my last post, so... here's one now.&nbsp; I recently had a new baby boy.&nbsp; That has&nbsp; been really cool, but my 2 year old daughter has been more difficult, at least when it comes to sleeping.<br /><br />Sleep is an interesting thing.&nbsp; For some people it is an absolute necessity for basic functioning from day to day.&nbsp; For others it is just a nice-to-have optional sort of thing.&nbsp; However, when you go for long periods of little-to-no sleep, anyone will feel the effects.<br /><br />I'm trying my best to keep my lack of sleep from affecting my day to day behavior and general happiness, but it's hard.&nbsp; One of the main things that helps is good food and a good shower.<br /> ]]></description>
            <link>http://spencerchristensen.com/blog/2008/11/sleep-and-the-art-of-staying-a.html</link>
            <guid>http://spencerchristensen.com/blog/2008/11/sleep-and-the-art-of-staying-a.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Grumblings</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">sleep</category>
            
            <pubDate>Thu, 13 Nov 2008 11:28:35 -0700</pubDate>
        </item>
        
        <item>
            <title>Software design patterns and excess</title>
            <description><![CDATA[So this will probably be a first in a series of posts related to software design patterns and all my inner strugglings regarding what is hype and what is real.&nbsp; There are probably lot of other people out there that may have similar strugglings, and more than likely there are some out there that are blissfully unaware of the concerns.&nbsp; So what am I talking about?&nbsp; Well let's start where I started a while ago, with ORMs.<br /><br />ORMs (Object Relational Mappers) are a basically a way to have a OO layer between your application code and your RMDBS.&nbsp; There are some basic "features" of an ORM, but not all ORMs support all of these.&nbsp; In any case here is a list of common features:<br /><br /><ol><li>OO interface to tables, rows, functions, etc, in your database.&nbsp; So you can use native application code and OOP to interact with your data.</li><li>A more elegant/simpler API to interact with your database.&nbsp; Many ORMs use some other database API under the hood, but add routines and interfaces (or simplifies calls) that the normal API lacks.</li><li>Object (data object) persistence.&nbsp; So that you can create an instance of some data you are modeling and then be able to store that object and revive it later with state preserved.</li><li>Abstract the interaction between your application code and your database such that in the future if/when you need to move to a different database you application code will require as little change as possible.&nbsp; Ultimately, changing databases should be a matter of configuration files, or perhaps even less work.&nbsp; And your app code wouldn't even know the difference between Postgres, MySQL, SQLite, or something else.</li></ol><br /> ]]></description>
            <link>http://spencerchristensen.com/blog/2008/05/software-design-patterns-and-e.html</link>
            <guid>http://spencerchristensen.com/blog/2008/05/software-design-patterns-and-e.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Grumblings</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Systems</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web Development</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">ORM</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">software design</category>
            
            <pubDate>Sun, 04 May 2008 10:05:59 -0700</pubDate>
        </item>
        
        <item>
            <title>Where&apos;s your cube again?</title>
            <description><![CDATA[So, I had an idea and wanted to capture it before I forget.&nbsp; A relatively simple tool to graph a floor plan map of office cubicles with info about each cube- person who sits there, department, extension, and any other info about them.&nbsp; It could be done really easily with the right database structure and using the Javascript graphing library wz_jsgraphics.js (<a href="http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm">http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm</a>).<br /><br />That way, all you would need is to maintain the data through an easy management tool, then your map is updated realtime online.&nbsp; And anyone can go to the map in their browser and mouse over a cube and get info, or do a search and get a highlighted cube within the map of what they are looking for.<br /><br /> ]]></description>
            <link>http://spencerchristensen.com/blog/2008/03/wheres-your-cube-again.html</link>
            <guid>http://spencerchristensen.com/blog/2008/03/wheres-your-cube-again.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Project Ideas</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web Development</category>
            
            
            <pubDate>Thu, 20 Mar 2008 12:03:33 -0700</pubDate>
        </item>
        
        <item>
            <title>Microsoft Exchange problems</title>
            <description><![CDATA[So a while ago at my work, "they" decided to move away from <a href="http://www.zimbra.com/">Zimbra</a> and go with Microsoft Exchange.&nbsp; The main points that made them want to switch were: 1) the calendaring/booking conference rooms/scheduling/sharing calendars didn't work very well in Zimbra and is "known to work in Exchange", and 2) email and calendaring for a large organization just needs to work.&nbsp; Now- I must admit that this is my take on what has been going on, and I may be wrong here.&nbsp; But, with that- my experience with Exchange has really sucked.&nbsp; The points for moving to exchange are one-sided.<br /><br />Exchange doesn't work well with free software.&nbsp; Exchange is designed to work with Outlook, and no other client is even considered important.&nbsp; They do claim to have IMAP support for other email clients, but Microsoft's IMAP seems to be unstable.&nbsp; It continually has problems freezing up.&nbsp; About 3-5 times per day the IMAP service on the Exchange server hangs and needs to be restarted!&nbsp; Lame!&nbsp; And so all Thunderbird users are stuck playing this "is my email working now?" game all the time.<br /><br />The other thing is calendaring only works with Outlook clients.&nbsp; Exchange doesn't support iCal/WebDAV or any other open standard.&nbsp; So for calendaring we pretty much are forced to use the web interface for Exchange.&nbsp; And the web interface for Exchange has two versions- a full featured one that only works on IE, and then a crippled one that is served to all other browsers.&nbsp; LAME again!&nbsp; So all the "features" of switching to Exchange are really only features for Windows users who use Outlook and IE.&nbsp; If you use anything else, then your email and calendaring just got a whole lot worse!!<br /><br />Zimbra did have some known bugs in their calendaring, especially in booking conference rooms for meetings.&nbsp; However, I believe the folks at Zimbra have been working on that for their next release.&nbsp; Email never was a problem with Zimbra for any user that I could tell- Outlook or Thunderbird or whatever.<br /><br />But I'm not bitter.... yet.<br /><br /> ]]></description>
            <link>http://spencerchristensen.com/blog/2008/03/microsoft-exchange-problems.html</link>
            <guid>http://spencerchristensen.com/blog/2008/03/microsoft-exchange-problems.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Grumblings</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Systems</category>
            
            
            <pubDate>Mon, 03 Mar 2008 00:05:17 -0700</pubDate>
        </item>
        
        <item>
            <title>Cover your bases (musically)</title>
            <description><![CDATA[So I have an idea that I think would be really interesting.&nbsp; I like music.&nbsp; I like to listen to music.&nbsp; I like hearing new songs and discovering new artists.&nbsp; I also have a weird desire to hear the same song done in different ways by different people- covers.<br /><br />I stumbled across <a href="http://www.secondhandsongs.com/">SecondHandSongs.com</a> and found that there is a database of cover songs (it only lists covers that were recorded and put out by a record label, no do-it-yourself or amateur covers allowed).&nbsp; Fascinating.<br /><br />Now I come to the idea part.&nbsp; I think it would be cool to have a plugin for your favorite music player (Banshee, iTunes, WInamp, etc) that looks up the song from your play list and lists covers of that song, with other info perhaps or links to find more info.&nbsp; It would be really cool to see a list of others that did that song and be able to click on them to hear a sample of their version, or a link to a music service (or store) to buy/download the other version(s).&nbsp; And perhaps a way to rate them too?&nbsp; Not sure about that one.<br /><br />Finally a way to build my own collection of nothing but covers of the song "Moon River"! (this is a joke, I actually hate that song).<br /> ]]></description>
            <link>http://spencerchristensen.com/blog/2008/01/cover-your-bases-musically.html</link>
            <guid>http://spencerchristensen.com/blog/2008/01/cover-your-bases-musically.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Project Ideas</category>
            
            
            <pubDate>Fri, 04 Jan 2008 12:12:18 -0700</pubDate>
        </item>
        
        <item>
            <title>Hot Dang.</title>
            <description><![CDATA[Well, I finally got Movable Type installed here and working.&nbsp; I'm using Postgres as my backend.&nbsp; I just wish my hosting service used a recent version (they are still on 7.4.x!).&nbsp; But Postrges is still the best open source RMDB so there you go.&nbsp; I would have probably chosen SQLite if I could just get the perl module installed (yet another issue with my hosting service).&nbsp; I think for any small - mid size database work SQLite is a better choice than MySQL, and for anything larger than that chose Postgres.<br /><br />I like Movable Type a lot.&nbsp; It seems to be more intuitive than a lot of the other ones I have looked at and tried.&nbsp; I will be moving my posts from my other blog to this one over the next little bit.<br /> ]]></description>
            <link>http://spencerchristensen.com/blog/2008/01/hot-dang.html</link>
            <guid>http://spencerchristensen.com/blog/2008/01/hot-dang.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Systems</category>
            
            
            <pubDate>Thu, 03 Jan 2008 08:21:52 -0700</pubDate>
        </item>
        
        <item>
            <title>Minimal AJAX toolkit</title>
            <description><![CDATA[<p>So there is a wide world of tools and methods for "web 2.0", and for
developers it is hard to know which one to chose to use and support.&nbsp; I
have tinkered with two AJAX toolkits and found things that I liked and
disliked with them.&nbsp; But overall I found that they were both too big
and too feature rich for simple use.</p><p>So it occured to me that for
some of my simple projects all I needed was bare-bone functionality,
meaning the ability to fetch the contents of a given url.&nbsp; Beyond that
I can do what I need in small simple javascript.&nbsp; I didn't need fancy
event handling, or animation, or auto-complete drop downs, or such.&nbsp;
And if I did, then I could probably do that my self later, as long as I
had the ability to easily fetch a URL.</p><p>&nbsp; <br /></p> ]]></description>
            <link>http://spencerchristensen.com/blog/2007/11/minimal-ajax-toolkit.html</link>
            <guid>http://spencerchristensen.com/blog/2007/11/minimal-ajax-toolkit.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Project Ideas</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Web Development</category>
            
            
            <pubDate>Wed, 14 Nov 2007 17:45:21 -0700</pubDate>
        </item>
        
        <item>
            <title>Celtx will make you a rock star screenwriter</title>
            <description><![CDATA[<p>If you are going to write a screenplay, then you really should look into Celtx (<a href="http://www.celtx.com/" mce_href="http://www.celtx.com">http://www.celtx.com</a> ).&nbsp; Hands<img src="http://spencerchristensen.com/images/stories/celtx.png" mce_src="/images/stories/celtx.png" alt="Celtx" align="right" height="128" width="128" />
down, this is the best tool you can have to begin your creative
process.&nbsp; There are many ways you can write a screenplay, and many
tools to help you do so.&nbsp; But Celtx combines all the best features, and
many that others don't have, into one product.&nbsp; And one of the best
things about it- it is Open Source!</p><p>It is based on Mozilla's FireFox web browser, and works on WIndows, Linux, and Mac OS X. <br /></p>]]></description>
            <link>http://spencerchristensen.com/blog/2007/09/celtx-will-make-you-a-rock-sta.html</link>
            <guid>http://spencerchristensen.com/blog/2007/09/celtx-will-make-you-a-rock-sta.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Filmmaking</category>
            
            
            <pubDate>Sun, 09 Sep 2007 17:15:44 -0700</pubDate>
        </item>
        
        <item>
            <title>Linux Server Hacks by Rob Flickenger (O&apos;Reilly)</title>
            <description><![CDATA[<p><img src="http://spencerchristensen.com/images/stories/linux_server_hacks.jpg" mce_src="/images/stories/linux_server_hacks.jpg" alt="book cover image" align="left" height="200" width="200" />This
book is awesome.&nbsp; I learned so much from it that I have placed it
second on my list of books every software engineer should read.&nbsp; There
are so many great topics covered in such a easy to read and understand
way that you can't help but want to try them out.&nbsp; And after trying a
few out, you start to wonder how on earth did you live without some of
these things.&nbsp;&nbsp; </p><p>There are a few books I have read that I really
got a lot out of, and this was one of them.&nbsp; I was familiar with a lot
of the things discussed in here, but not at any great detail (at least
with some of them).&nbsp; I even learned a thing or two with perl (imagine
that!). <br /></p> ]]></description>
            <link>http://spencerchristensen.com/blog/2007/09/linux-server-hacks-by-rob-flic.html</link>
            <guid>http://spencerchristensen.com/blog/2007/09/linux-server-hacks-by-rob-flic.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Book reviews</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Systems</category>
            
            
            <pubDate>Sun, 02 Sep 2007 17:41:42 -0700</pubDate>
        </item>
        
        <item>
            <title>new site</title>
            <description><![CDATA[<p>So I finally was able to get the domain spencerchristensen.com.&nbsp; It
was taken for a while by someone else, but when I check just a couple
of weeks ago, it was available.&nbsp; So I am setting up my personal site.</p><p>I have had a personal site for years at&nbsp; <a href="http://www.mecworks.com/%7Espencer" mce_href="http://www.mecworks.com/~spencer">http://www.mecworks.com/~spencer</a>
, but this has fallen dormant for a long time.&nbsp; I hope to get back into
maintaining a personal site with this one.&nbsp; I still don't have a lot of
free time to give to this, but hopefully I can at least give more that
what I have been doing. </p> ]]></description>
            <link>http://spencerchristensen.com/blog/2007/09/new-site.html</link>
            <guid>http://spencerchristensen.com/blog/2007/09/new-site.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">News</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Systems</category>
            
            
            <pubDate>Sun, 02 Sep 2007 17:38:34 -0700</pubDate>
        </item>
        
    </channel>
</rss>
