<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Schrade.Blog : </title>
    <link>http://kurt.karmalab.org/articles.rss</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Tech and Business Ramblings by Kurt Schrader</description>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Schradeblog" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
      <title>So I Wake Up and Merb is Rails?</title>
      <description>&lt;p&gt;If you haven't already heard, &lt;a href="http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3"&gt;Rails is now Merb&lt;/a&gt;, and &lt;a href="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/"&gt;Merb is now Rails&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'm a bit torn about how to feel about this, having dedicated a lot of time lately telling people to use Merb and why I think that it's superior to Rails. &lt;/p&gt;

&lt;p&gt;On the one hand, it'll be good for Merb usage, as people using Rails 3 in big projects will now essentially be using what Merb 2 would have been.&lt;/p&gt;

&lt;p&gt;On the other hand, I'm concerned with the technical hurdles that the core teams are going to have to deal with in order to make this actually work. There's a lot of old crufty code in Rails that needs to go, although I'm not sure what removing it would do as far as backwards compatibility is concerned.&lt;/p&gt;

&lt;p&gt;I've been talking in IRC all morning about this, and I'm sure I'll have more thoughts as things move forward, but for now I'll just post some of my favorite quotes from today's IRC session here:&lt;/p&gt;

&lt;pre&gt;
  &amp;lt;devjj&amp;gt; Modular meaning, what, not included by default, gem install rails-bad-ideas
  &amp;lt;gruntruk&amp;gt; this is like biggy n' pac hugging each other
  &amp;lt;bitbckt&amp;gt; so, I presume the quality of conversation in #merb will disintegrate into #rubyonrails :-/
&lt;/pre&gt;

&lt;p&gt;Certainly should be an exciting couple of months as this merge happens...&lt;/p&gt;

&lt;p&gt;(Credit goes to an IM from my friend &lt;a href="http://bitfission.com/"&gt;Will&lt;/a&gt; for the title of this post.)&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=2wmrO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=2wmrO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=AVBiO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=AVBiO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/493485407" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 23 Dec 2008 12:49:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:d6d7d8e1-957b-4ea0-a960-fc90e6bb0fe5</guid>
      <comments>http://kurt.karmalab.org/articles/2008/12/23/so-i-wake-up-and-merb-is-rails#comments</comments>
      <category>Ruby</category>
      <category>Tech</category>
      <category>Programming</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/493485407/so-i-wake-up-and-merb-is-rails</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/12/23/so-i-wake-up-and-merb-is-rails</feedburner:origLink></item>
    <item>
      <title>The Open Source Merb Book</title>
      <description>&lt;p&gt;Just a quick note to let people know that the Merb community is finally starting to address the lack of good documentation on Merb. I'm personally helping out with the open source Merb Book.&lt;/p&gt;

&lt;p&gt;A preview version can be found here: &lt;a href="http://book.merbist.com/"&gt;Open Source Merb Book&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source can be found here: &lt;a href="http://github.com/mattetti/merb-book/tree/master"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We've got 20 plus people working on it, and considering that it's only been up on GitHub for 12 days it's pretty amazing what we've already accomplished.&lt;/p&gt;

&lt;p&gt;If you want to learn more about Merb you should definitely check it out.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=Ui6PO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=Ui6PO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=DC2EO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=DC2EO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/482520555" height="1" width="1"/&gt;</description>
      <pubDate>Fri, 12 Dec 2008 01:25:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:05b51d4f-32b3-4d51-ae2d-f7d5e742f74f</guid>
      <comments>http://kurt.karmalab.org/articles/2008/12/12/the-open-source-merb-book#comments</comments>
      <category>Ruby</category>
      <category>Tech</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/482520555/the-open-source-merb-book</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/12/12/the-open-source-merb-book</feedburner:origLink></item>
    <item>
      <title>GitHub Takes the Pain Out Of Sharing Your Code</title>
      <description>&lt;p&gt;A long time ago, I did a more than a little bit of &lt;a href="http://people.apache.org/~kschrader/"&gt;open source work&lt;/a&gt;. Unfortunately, I always found the process of being a part of an open source project to be a pain.&lt;/p&gt;

&lt;p&gt;The process usually went something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix a bug in the code.&lt;/li&gt;
&lt;li&gt;Post patches to the dev list.&lt;/li&gt;
&lt;li&gt;Bug people to get your patches accepted and committed.&lt;/li&gt;
&lt;li&gt;By the time they are accepted, someone else has committed something that breaks them.&lt;/li&gt;
&lt;li&gt;Wash, rinse, repeat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you do this enough times, you get commit rights and you don't have to deal with the process anymore.&lt;/p&gt;

&lt;p&gt;I've never enjoyed it. Far too much overhead and bullshit.&lt;sup&gt;&lt;a href="#fn1-2008-12-11"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;So for the last (more than a) couple of years I've taken to forking code when I needed to and then never bothering to give the patches that I wrote back to the maintainers.&lt;/p&gt;

&lt;p&gt;Clearly not the best situation, but it worked for me.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.github.com"&gt;GitHub&lt;/a&gt; changes all of that.&lt;/p&gt;

&lt;p&gt;On GitHub, I can fork anyone's code, patch it, push my changes back, send a pull request, and then not worry about it.  &lt;/p&gt;

&lt;p&gt;I can share my code with no overhead.&lt;/p&gt;

&lt;p&gt;Example: I fixed a bug in the &lt;a href="http://github.com/kschrader/merb_cucumber/tree/master"&gt;merb cucumber bindings&lt;/a&gt; last week. I pushed my changes to GitHub and sent a pull request to the maintainer. My changes haven't been pulled into the main tree yet, but I don't really care.&lt;/p&gt;

&lt;p&gt;One look at the &lt;a href="http://github.com/david/merb_cucumber/network"&gt;GitHub merb cucumber network graph&lt;/a&gt; should show any prospective users of the library that development has happened on my tree beyond that of the original tree.  Hopefully they'll take the time to look at it and use the most up-to-date code.&lt;/p&gt;

&lt;p&gt;Either way, I don't have to worry about it anymore.&lt;/p&gt;

&lt;p&gt;Also, I love that &lt;a href="http://www.github.com"&gt;GitHub&lt;/a&gt; lets me share my half finished projects. &lt;/p&gt;

&lt;p&gt;I recently posted a partially done &lt;a href="http://github.com/kschrader/gutenberg/tree/master"&gt;Merb based blog called Gutenberg&lt;/a&gt; on GitHub.&lt;/p&gt;

&lt;p&gt;Will I ever finish it?  Who knows. &lt;/p&gt;

&lt;p&gt;At the very least it's a simple Merb example project for people to learn from, and I already know people who have looked at it to learn more about how Merb works. That already makes it worthwhile to me.&lt;/p&gt;

&lt;p&gt;Again, no overhead. &lt;/p&gt;

&lt;p&gt;Just push code onto GitHub and it's live to the world. &lt;/p&gt;

&lt;p&gt;No pain. No overhead. Just code.&lt;/p&gt;

&lt;hr/&gt;

&lt;ol&gt;
&lt;li id="fn1-2008-12-11"&gt;
As an aside, I really like commit policies like &lt;a href="http://rubini.us/contribute/"&gt;one that Rubinius has&lt;/a&gt;, namely, "anyone who submits a patch for some part of the Rubinius project and has the patch accepted will be given commit rights to the mainline repository." We need more projects with commit policies like that.
&lt;/li&gt;
&lt;/ol&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=mGbDO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=mGbDO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=FZ4CO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=FZ4CO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/481516503" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 11 Dec 2008 01:07:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:5b47d1da-85a9-415f-865e-70d141e1073f</guid>
      <comments>http://kurt.karmalab.org/articles/2008/12/11/github-takes-the-pain-out-of-sharing-your-code#comments</comments>
      <category>Java</category>
      <category>Ruby</category>
      <category>Tech</category>
      <category>Programming</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/481516503/github-takes-the-pain-out-of-sharing-your-code</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/12/11/github-takes-the-pain-out-of-sharing-your-code</feedburner:origLink></item>
    <item>
      <title>The Simplicity of Merb</title>
      <description>&lt;p&gt;As some of you know, we're building our new startup on top of Merb. One of my favorite things about Merb is how much easier it is to understand than Rails is when you need to hack on something that's outside the realm of what the framework expects you to use it for.  I think that Ezra Zygmuntowicz put it best in his &lt;a href="http://uk.youtube.com/watch?v=TcMklv40YMY"&gt;recent tech talk on Merb&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;A lot of people tend to end up treating Rails as a blackbox because it is eighty thousand or so lines of code and it's a little bit hard to step into and figure out what's going on because there's so much advanced Ruby meta-programming going on inside of there. I kind of feel like the place for meta-programming and that kind of stuff is in your own application code. I'd rather have the foundation that you're building on top of be as simple and as easy to understand as possible so that when you do hit the wall and you need to look inside the framework you don't get grossed out and you can get in there and actually do stuff with it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Amen.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=XE0SM"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=XE0SM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=NgSKM"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=NgSKM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/428796352" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 22 Oct 2008 10:39:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:3389b6c2-4b54-4ddb-ad44-790dd94e1091</guid>
      <comments>http://kurt.karmalab.org/articles/2008/10/22/the-simplicity-of-merb#comments</comments>
      <category>Agile</category>
      <category>Ruby</category>
      <category>Tech</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/428796352/the-simplicity-of-merb</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/10/22/the-simplicity-of-merb</feedburner:origLink></item>
    <item>
      <title>Datamapper (or Just Say No to Active Record)</title>
      <description>&lt;p&gt;I was having a conversation with a friend the other day who said something along the lines of "lately at work, we've pretty much just been rewriting Active Record to make it not suck as much".  &lt;/p&gt;

&lt;p&gt;I was thinking about it, and I've never really heard anyone say anything good about Active Record.  It's slow, it uses a ton of memory, it's not thread-safe, etc.&lt;/p&gt;

&lt;p&gt;Luckily, the community is starting to tackle those problems with a couple of new projects aimed at doing a better job of OR mapping.&lt;/p&gt;

&lt;p&gt;The one that I've used the most, and that we're building the software for my new company on, is &lt;a href="http://datamapper.org/"&gt;Datamapper&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The development philosophy behind Datamapper tries to keep everything as fast and as lightweight as possible.  It does this by being as lazy as possible in what it loads to keep memory usage down, and by breaking out as much functionality as possible into plugins, so that you only need to include what you're really using in your application.&lt;/p&gt;

&lt;p&gt;In my stress tests here using my new application, I've seen significant speed increases across the board compared to ActiveRecord. (I'm writing a Merb app, and it's relatively easy to switch back and forth between the two of them at this early stage in development.)&lt;/p&gt;

&lt;p&gt;Datamapper also has most of the &lt;a href="http://datamapper.org/docs/dm_more/index.html"&gt;major ActiveRecord plugins&lt;/a&gt; ported to it (as well as a CouchDB adaptor that we're using for some of our models).  &lt;/p&gt;

&lt;p&gt;If you're starting a new Ruby web application, I strongly suggest checking it out instead of just settling for the default choice of Active Record.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=IvnjM"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=IvnjM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=wcCjM"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=wcCjM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/416358709" height="1" width="1"/&gt;</description>
      <pubDate>Thu, 09 Oct 2008 18:24:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:a82c94fa-f175-44ac-b53c-5ebe8bdaa1f0</guid>
      <comments>http://kurt.karmalab.org/articles/2008/10/09/datamapper-or-just-say-no-to-active-record#comments</comments>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/416358709/datamapper-or-just-say-no-to-active-record</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/10/09/datamapper-or-just-say-no-to-active-record</feedburner:origLink></item>
    <item>
      <title>Running Merb on Edge</title>
      <description>&lt;p&gt;The easiest way to run Merb from edge:&lt;/p&gt;

&lt;pre&gt;
$ sudo gem install sake
$ sake -i http://github.com/wycats/merb-more/tree/master%2Ftools%2Fmerb-dev.rake?raw=true
$ sake merb:clone
$ sake merb:install:all
&lt;/pre&gt;

&lt;p&gt;This will install the edge versions of all of the merb gems.&lt;/p&gt;

&lt;p&gt;To keep things up to date, navigate to the directory that you ran the commands in and do:&lt;/p&gt;

&lt;pre&gt;
$ sake merb:update
$ sake merb:install:all
&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=4l9MO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=4l9MO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=k2lbO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=k2lbO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/367553813" height="1" width="1"/&gt;</description>
      <pubDate>Sun, 17 Aug 2008 14:29:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:ea9d6233-065a-4caa-a9c8-c545500e7d98</guid>
      <comments>http://kurt.karmalab.org/articles/2008/08/17/running-merb-on-edge#comments</comments>
      <category>Ruby</category>
      <category>Tech</category>
      <category>Programming</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/367553813/running-merb-on-edge</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/08/17/running-merb-on-edge</feedburner:origLink></item>
    <item>
      <title>Why Not Just Fire All Of Your Programmers?</title>
      <description>&lt;p&gt;Then no software would get written, but at least we wouldn't have any crap software...&lt;/p&gt;

&lt;p&gt;My friend Jay posted two &lt;a href="http://blog.jayfields.com/2008/08/elephant-in-server-room.html"&gt;blog&lt;/a&gt; &lt;a href="http://blog.jayfields.com/2008/08/elitist-or-optimist.html"&gt;entries&lt;/a&gt; yesterday on the subject of raising the standard for programmers in our industry. I left &lt;a href="https://www.blogger.com/comment.g?blogID=12467669&amp;amp;postID=2427762782957269871"&gt;a comment&lt;/a&gt; about it on his blog and talked with him about it on IM, but I figured I'd expand a bit on my thoughts on it here.&lt;/p&gt;

&lt;p&gt;First things first, I completely disagree with him.&lt;/p&gt;

&lt;p&gt;I don't think that 50% of programmers should leave the profession.  I've worked on a lot of projects with a lot of different teams and I can't ever remember thinking "man, this project would be a lot easier if I got rid of half of this team."&lt;/p&gt;

&lt;p&gt;I can also only think of few &lt;a href="http://en.wikipedia.org/wiki/NNPP"&gt;Net Negative Producing Programmers&lt;/a&gt; that I've worked with and most of them usually leave pretty quickly.&lt;/p&gt;

&lt;p&gt;Most of the time, I've found that when a person isn't performing up to par, it's because of a management failure.  I think that it's up to the development leads to analyze their teams and figure out how everyone can best contribute and make sure that people are performing at the top of their game.&lt;/p&gt;

&lt;p&gt;Too often I've seen people fall into the trap of always being assigned to, or always choosing to work on, the easiest features in the project. They then do a half-assed job because they're always working on the boring part of the project and don't feel like a valued part of the team.&lt;/p&gt;

&lt;p&gt;Maybe, for a change, we should assign those people the hardest part of the project for a few weeks. Sure, they might not so the best job, but they will work harder because, for once, what they're working on is challenging and exciting. Plus they know that the entire team is depending on them and is there to help them. That's how you bring people back into the fold and make them a productive, happy member of the team.&lt;/p&gt;

&lt;p&gt;The point that's neglected in Jay's arguments is that experienced programmers shouldn't just be responsible for writing code. It should also be the job of experienced programmers to take those who are less experienced or interested and pull them up to our level. &lt;/p&gt;

&lt;p&gt;Forcing them out of the profession is just as much of a failure on our part as it is on theirs.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=G6oNO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=G6oNO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=xiWnO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=xiWnO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/357638607" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 06 Aug 2008 10:49:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:fb6329da-1a64-44a9-9abd-f3cd2c0d5cc3</guid>
      <comments>http://kurt.karmalab.org/articles/2008/08/06/why-not-just-fire-all-your-programmers#comments</comments>
      <category>Business</category>
      <category>Tech</category>
      <category>Programming</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/357638607/why-not-just-fire-all-your-programmers</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/08/06/why-not-just-fire-all-your-programmers</feedburner:origLink></item>
    <item>
      <title>Moving On</title>
      <description>&lt;p&gt;Things sure have been quiet around here...&lt;/p&gt;

&lt;p&gt;As some of you may already know, I've left the relative safety of my job at &lt;a href="http://www.collaborativedrug.com/"&gt;Collaborative Drug Discovery&lt;/a&gt; to have another go at starting a company. &lt;/p&gt;

&lt;p&gt;I'm currently working with a friend to once again create something out of nothing and bring yet another crazy idea into the world. Therefore, if you see me and I look like I just got finished working for 18 hours straight, please buy me a beer and put me to bed.&lt;/p&gt;

&lt;p&gt;As for the new company, I'm not ready to talk about what we're doing yet, but I'm sure that I'll be writing about it here as it comes together.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=xczVO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=xczVO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=oGMXO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=oGMXO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/356634542" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 05 Aug 2008 11:46:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:06660c3b-b7be-4b37-ac34-5e14c96d713b</guid>
      <comments>http://kurt.karmalab.org/articles/2008/08/05/moving-on#comments</comments>
      <category>Business</category>
      <category>General</category>
      <category>Tech</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/356634542/moving-on</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/08/05/moving-on</feedburner:origLink></item>
    <item>
      <title>Don't Forget to Clear Out Your Rails Session Data</title>
      <description>&lt;p&gt;For the last year or so, this blog has been running slow, &lt;em&gt;slow&lt;/em&gt;, &lt;strong&gt;slow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;From time to time, I tried to figure out what was going on, but I figured that Typo upgrades were just causing things to slow down and use more and more memory.&lt;/p&gt;

&lt;p&gt;Until tonight.&lt;/p&gt;

&lt;p&gt;Tonight I did a database dump and it came to 44 MB. &lt;/p&gt;

&lt;p&gt;There is no way I have 44 MB of content in this blog.  &lt;/p&gt;

&lt;p&gt;So I had a look at the dump and realized that I had close to 100000 sessions in the sessions table, and that there was a table for Sitealizer plugin that's no longer part of typo.&lt;/p&gt;

&lt;p&gt;So after a drop of the Sitealizer table and a&lt;/p&gt;

&lt;pre&gt;rake db:sessions:clear&lt;/pre&gt;

&lt;p&gt;Typo is now using 20% of the memory it was using before, running much, much faster, and the database dump comes to a slim 476 KB in size.&lt;/p&gt;

&lt;p&gt;So this is my reminder to myself (and everyone else) to be sure to clear out your sessions table from time to time.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=sawcO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=sawcO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=RsPwO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=RsPwO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/323846217" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 01 Jul 2008 00:01:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:f4d333e4-78fb-4763-98f9-61a415eed50f</guid>
      <comments>http://kurt.karmalab.org/articles/2008/07/01/dont-forget-to-clear-your-rails-sessions-data#comments</comments>
      <category>Ruby</category>
      <category>Tech</category>
      <category>Blogging</category>
      <category>Programming</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/323846217/dont-forget-to-clear-your-rails-sessions-data</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/07/01/dont-forget-to-clear-your-rails-sessions-data</feedburner:origLink></item>
    <item>
      <title>Omnifocus Interface == Fail</title>
      <description>&lt;p&gt;I use Omnifocus everyday to track what I'm doing, and I love it, but there are tons of UI problems with it that drive me absolutely crazy.  There's a good article about some of the failings of the interface design &lt;a href="http://db.tidbits.com/article/9594"&gt;here&lt;/a&gt; (with a &lt;a href="http://www.apeth.com/omnifocus/omnifocus.html"&gt;video&lt;/a&gt; showing some of them), but there's one interface decision that's been absolutely driving me nuts lately.&lt;/p&gt;

&lt;p&gt;Look at this picture:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3071/2625870492_0e2b0e6747_o.jpg" alt="omnicalendar"/&gt;&lt;/p&gt;

&lt;p&gt;See anything wrong with it?&lt;/p&gt;

&lt;p&gt;If you said, "There's no way to set the due date for a project to Tuesday without clicking the little arrow at the top left to go to next month" then you're right.&lt;/p&gt;

&lt;p&gt;What a horrible failure of UI design. I end up up dealing with this at the end of every month, and everytime it's a pain in the ass.  Compare it to the iCal day chooser:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3171/2625900694_c43e00c4d7_o.jpg" alt="ical"/&gt;&lt;/p&gt;

&lt;p&gt;See that? Much better. They just grey out the days in the upcoming month. (They even go above and beyond the call of duty and show two upcoming weeks.) This is what the Omnifocus date chooser should be.&lt;/p&gt;

&lt;p&gt;Hopefully there will be an Omnifocus update soon that addresses most of the problems with the interface. I expect more at the price point ($89) that they've positioned it at.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=y3EJO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=y3EJO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/Schradeblog?a=eJaJO"&gt;&lt;img src="http://feeds.feedburner.com/~f/Schradeblog?i=eJaJO" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Schradeblog/~4/323524561" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 30 Jun 2008 12:40:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:85c1f8a0-9d0d-404c-9f0d-406c79662bc8</guid>
      <comments>http://kurt.karmalab.org/articles/2008/06/30/omnifocus-interface-fail#comments</comments>
      <category>General</category>
      <category>Tech</category>
      <category>Programming</category>
      <link>http://feeds.feedburner.com/~r/Schradeblog/~3/323524561/omnifocus-interface-fail</link>
    <feedburner:origLink>http://kurt.karmalab.org/articles/2008/06/30/omnifocus-interface-fail</feedburner:origLink></item>
  </channel>
</rss>
