<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>Kevin Marsh</title>
  
  <link href="http://kevinmarsh.com/" />
  <updated>2009-04-11T13:39:42-07:00</updated>
  <id>http://kevinmarsh.com/</id>
  <author>
    <name>Kevin Marsh</name>
    <email>kevin.marsh@gmail.com</email>
  </author>
 
 
 <link rel="self" href="http://feeds.feedburner.com/kevinmarsh" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
   <title>Jekyll</title>
   <link href="http://kevinmarsh.com/articles/2009/02/12/jekyll.html" />
   <updated>2009-02-12T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2009/02/12/jekyll</id>
   <content type="html">&lt;h3&gt;Source Code&lt;/h3&gt;
&lt;p&gt;First up, feel free to check out the full source code that Jekyll uses to build all this html: http://github.com/willcodeforfoo/willcodeforfoo.github.com/tree/master&lt;/p&gt;
&lt;h3&gt;Importing from Mephisto&lt;/h3&gt;
&lt;p&gt;Here&amp;#8217;s a hacky, super-simple, one-liner script that I threw together at the Mephisto Rails console:&lt;/p&gt;
&lt;pre&gt;
Content.find_by_sql("SELECT id, permalink, body, published_at, title FROM contents WHERE type = 'Article' AND published_at IS NOT NULL ORDER BY published_at").each {|c| File.open("#{c.published_at.strftime('%Y-%m-%d')}-#{c.permalink}.textile", "w+"){|f| f.puts "---\nlayout: post\ntitle: #{c.title}\n---\n\n"; f.puts c.body }}
&lt;/pre&gt;

&lt;p&gt;This will not work 100%, though. It doesn&amp;#8217;t do anything fancy like output real &lt;span class="caps"&gt;YAML&lt;/span&gt;, with escaped characters. So if you have funky characters in your titles, things could blow up.&lt;/p&gt;
&lt;h3&gt;&lt;code&gt;uninitialized constant Classifier::LSI::Matrix (NameError)&lt;/code&gt; when running with &lt;code&gt;--lsi&lt;/code&gt; option&lt;/h3&gt;
&lt;p&gt;Applying &lt;a href="http://rubyforge.org/tracker/index.php?func=detail&amp;amp;aid=17839&amp;amp;group_id=655&amp;amp;atid=2587"&gt;this patch&lt;/a&gt; to Classifier&amp;#8217;s lsi.rb file seemed to do the trick.&lt;/p&gt;
&lt;p&gt;As an aside: I&amp;#8217;m truly impressed with the Classifier gem. I&amp;#8217;ve seen its Bayesian stuff before, but Jekyll was my first exposure to &lt;a href="http://en.wikipedia.org/wiki/Latent_Semantic_Indexing"&gt;&lt;span class="caps"&gt;LSI&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Categories&lt;/h3&gt;
&lt;p&gt;I was thinking about adding other &amp;#8220;types&amp;#8221; of posts to my site, something along the lines of books I&amp;#8217;m reading, music I&amp;#8217;m enjoying, etc.&lt;/p&gt;
&lt;p&gt;I decided I could use Categories to pull this off, so my structure looks something like this:&lt;/p&gt;
&lt;pre&gt;
|-- CNAME
|-- _layouts
|   |-- book.html
|   |-- master.html
|   |-- music.html
|   `-- post.html
|-- about.textile
|-- articles
|   `-- _posts
|       |-- 2009-02-10-reducing-the-noise.textile
|       `-- 2009-02-12-jekyll.textile
|-- atom.xml
|-- books
|   `-- _posts
|       `-- 2009-02-12-click.textile
|-- images
|   `-- feed.png
|-- index.html
|-- movies
|   `-- _posts
|-- music
|   `-- _posts
|       `-- 2009-02-12-ray-lamontagne-gossip-in-the-grain.textile
`-- stylesheets
    `-- styles.css
&lt;/pre&gt;
&lt;p&gt;Then on my homepage, for example, I can pull all the music entries with album art from Amazon by doing:&lt;/p&gt;
&lt;pre&gt;
{ % for music in site.categories.music % }
  &amp;lt;a href=""&amp;gt;&amp;lt;img alt="" src="http://ec1.images-amazon.com/images/P/.01.MZZZZZZZ.jpg"&amp;gt;&amp;lt;/a&amp;gt;
{ % endfor % }    
&lt;/pre&gt;
&lt;p&gt;(I added an &lt;code&gt;asin&lt;/code&gt; key to the post&amp;#8217;s metadata header.) Slick!&lt;/p&gt;
&lt;h3&gt;Excerpts&lt;/h3&gt;
&lt;p&gt;Thankfully thanks to Jekyll&amp;#8217;s slick metadata feature for posts, all I had to do was add a &lt;code&gt;excerpt&lt;/code&gt; key to the header of a post and throw my excerpt there:&lt;/p&gt;
&lt;pre&gt;
---
layout: post
title: Jekyll
excerpt: |-
  I've taken the plunge to a static-HTML blog with Jekyll. I'm impressed so far. I love having the whole she-bang in git, but then again the whole idea of a "datastore in git":/2008/04/13/git-as-a-data-store.html has fascinated me from the start.

  And pushing to GitHub pages (willcodeforfoo.github.com) just _worked_. A few minutes after pushing, I hit the URL. Half expecting an error page and half expecting just nothing I found the site. Just the way I hoped it would work.

  Big ups to "Michael Bleigh":http://mbleigh.com for making his whole blog available on "GitHub":http://github.com/mbleigh/mbleigh.github.com/tree/master. I didn't take much design-wise, but seeing how things were structured was a huge help. I did nick his Atom feed template.  
---

h3. Importing from Mephisto

Here's a hacky, super-simple, one-liner script that I threw together at the Mephisto Rails console:
&lt;/pre&gt;
&lt;p&gt;The next gotcha was that I couldn&amp;#8217;t get Jekyll to Textilize anything other than the content, and since my excerpt needed to be rendered as Textile, this was a problem.&lt;/p&gt;
&lt;p&gt;So I submitted &lt;a href="http://github.com/willcodeforfoo/jekyll/commit/ee65dadc9a5ae5fc8f19848754f7175ebd630375"&gt;a patch&lt;/a&gt; that creates a filter called &lt;code&gt;textilize&lt;/code&gt; that I can pass my excerpt into for formatting. Hopefully it gets applied to the master branch that GitHub Pages uses.&lt;/p&gt;
&lt;h3&gt;Inspiration&lt;/h3&gt;
&lt;p&gt;Big ups to &lt;a href="tom.preston-werner.com/"&gt;Tom Preston-Werner&lt;/a&gt; for writing Jekyll and &lt;a href="http://mbleigh.com"&gt;Michael Bleigh&lt;/a&gt; for making his whole blog&amp;#8217;s source available on &lt;a href="http://github.com/mbleigh/mbleigh.github.com/tree/master"&gt;GitHub&lt;/a&gt;. I didn&amp;#8217;t take much design-wise, but seeing how things were structured was a huge help. (I did nick his Atom feed template.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/TQj38pEVEyU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Reducing the Noise</title>
   <link href="http://kevinmarsh.com/articles/2009/02/10/reducing-the-noise.html" />
   <updated>2009-02-10T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2009/02/10/reducing-the-noise</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m spending some time tonight to try and reduce some of the noise in my life. From a practical standpoint, this means I&amp;#8217;m:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Unsubscribing from a few &lt;span class="caps"&gt;RSS&lt;/span&gt; feeds that I end up just reading past anyway&lt;/li&gt;
	&lt;li&gt;Deleting some iTunes tracks that I usually end skipping, both at my desk and in my car (the Skip Count in iTunes is great for this)&lt;/li&gt;
	&lt;li&gt;Unsubscribing from a few mailing lists I rarely read, are definitely not active in, and end up just Google searching when I need a topical answer&lt;/li&gt;
	&lt;li&gt;Taking steps to reduce blog spam&lt;/li&gt;
	&lt;li&gt;Creating server-side and client-side rules to move bulk e-mail from companies like Dell to their own folder or tag, and skipping the inbox altogether. Even better, unsubscribing from most of these completely.&lt;/li&gt;
	&lt;li&gt;Deleting rarely used Apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While these minor things seem really trivial piece-by-piece, I think the sum of them cause a lot of distraction and cloud meaningful activities. As such, I plan to do this de-lousing on a periodic basis.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/SsLKKYps1Js" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Your Rails Apps Changelog in git
</title>
   <link href="http://kevinmarsh.com/articles/2008/05/19/your-rails-apps-changelog-in-git.html" />
   <updated>2008-05-19T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2008/05/19/your-rails-apps-changelog-in-git</id>
   <content type="html">&lt;p&gt;OK, this one is almost too hacky and simple to share, but I wanted to get it out there. Want to show your site&amp;#8217;s users what&amp;#8217;s changed? Just show them your git changelog:&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://farm4.static.flickr.com/3029/2506333450_007637e7fa.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s a bit dorky, and definately not as pretty as a &lt;a href="http://github.com/changelog"&gt;properly parsed and formatted changelog&lt;/a&gt;, but for showing stakeholders what&amp;#8217;s changed it&amp;#8217;s been useful.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s how it&amp;#8217;s done (again, kind of a hack):&lt;/p&gt;
&lt;h3&gt;Controller&lt;/h3&gt;
&lt;pre&gt;
@code = `cd /var/www/vintageaerial.com/htdocs/shared/cached-copy &amp;amp;&amp;amp; git-log --max-count=20 --no-merges`
&lt;/pre&gt;
&lt;h3&gt;View&lt;/h3&gt;
&lt;pre&gt;
&amp;lt;pre class="changelog"&amp;gt;&amp;lt;%= @changes %&amp;gt;&amp;lt;/pre&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;Stylesheet&lt;/h3&gt;
&lt;pre&gt;
pre.changelog { overflow: scroll; }
&lt;/pre&gt;
&lt;p&gt;I definitely wouldn&amp;#8217;t use this in high-traffic production areas without some caching. It&amp;#8217;s also enforcing me to write better, more communicative changeset descriptions, because I know someone can read them.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/LxoeGrQ3CUo" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>rake db:production:clone
</title>
   <link href="http://kevinmarsh.com/articles/2008/04/17/rake-db-production-clone.html" />
   <updated>2008-04-17T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2008/04/17/rake-db-production-clone</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve been using this little &lt;code&gt;rake&lt;/code&gt; ditty for awhile, to refresh my current development database with data from the production server:&lt;/p&gt;
&lt;pre&gt;
namespace :db do
  namespace :production do
    desc "Recreate the local development database as a clone of the remote production database"
    task :clone do
      system %Q(ssh [db_host] "rm /tmp/out.sql.bz2; mysqldump -uroot -p [production_database_name] &amp;gt; /tmp/out.sql; bzip2 /tmp/out.sql")
      system %Q(scp [db_host]:/tmp/out.sql.bz2 .)
      system %Q(bzcat out.sql.bz2 | mysql -uroot -D[development_database_name])
      system %Q(rm out.sql.bz2)
    end
  end
end
&lt;/pre&gt;
&lt;p&gt;Of course, you&amp;#8217;ll have to change the bits in brackets to fit your particular situation.&lt;/p&gt;
&lt;p&gt;Now, this obviously isn&amp;#8217;t for everyone, but for small-to-medium sized databases it works pretty well and  helps you work with real data.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/OUfrmRrsM_s" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Git as a Data Store</title>
   <link href="http://kevinmarsh.com/articles/2008/04/13/git-as-a-data-store.html" />
   <updated>2008-04-13T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2008/04/13/git-as-a-data-store</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m fascinated with the idea of git not just as a version control system for source code, but a redundant, version controlled filesystem for &lt;strong&gt;anything&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Take &lt;a href="http://github.com/sr/git-wiki/tree/master"&gt;git-wiki&lt;/a&gt; for example. It uses plain text Textile/Markdown files in a git repository as its database. You get all the benefits git users have for source code, but for wiki content. &lt;a href="http://github.com/willcodeforfoo/git-wiki/wikis"&gt;I&amp;#8217;ve written a little scenario&lt;/a&gt; demonstrating some of the strengths of the platform.&lt;/p&gt;
&lt;p&gt;Just by using git, you get:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;version control&lt;/strong&gt;: with past revision rollbacks, diffs, the whole lot&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;redundancy&lt;/strong&gt;: you can push up your entire wiki, with all changeset history, in seconds to multiple locations for backup&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;security&lt;/strong&gt;: since each blob is referenced by a cryptographically-secure SHA1 hash, as is each commit, you can be sure your wiki hasn&amp;#8217;t been tampered with&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;offline access&lt;/strong&gt;: you can pull your entire wiki, again with all changeset history, to edit and interact with offline&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;branching&lt;/strong&gt;: make radical changes without affecting the mainline&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The concept seems to apply well to a wiki, but I think they&amp;#8217;d work as well in a &lt;span class="caps"&gt;CMS&lt;/span&gt;. Imagine being able to pull down an entire site&amp;#8217;s content, create an experimental branch of content, refine it, then push it back up to your site: all while having the freedom to go back to any point in time in seconds.&lt;/p&gt;
&lt;p&gt;The &lt;span class="caps"&gt;CMS&lt;/span&gt; backend (&lt;em&gt;if there even is one&lt;/em&gt;) would still allow you to make changes online, but would check them in the git repository to be tracked. Stylesheets, images, original assets, and so on could be versioned along with the text, since git is so efficient even with binary files.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/2T0mjCPZ1mM" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>sitesmetric Progress</title>
   <link href="http://kevinmarsh.com/articles/2008/01/24/sitesmetric-progress.html" />
   <updated>2008-01-24T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2008/01/24/sitesmetric-progress</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve gotten a respectable amount of work done on sitesmetric, insofar that it actually downloads data (intelligently) and displays it (somewhere intelligently)&lt;/p&gt;
&lt;p&gt;Sneak a peek:&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;a href="http://www.flickr.com/photos/kevinmarsh/2216706193/"&gt;&lt;img src="http://farm3.static.flickr.com/2206/2216706193_65a39f2274.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Head on over to &lt;a href="http://sitesmetric.com/"&gt;sitesmetric&lt;/a&gt; to signup and be notified of the beta program, opening soon!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/dyLHsbiC5X8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Another Project, or, Introducing sitesmetric
</title>
   <link href="http://kevinmarsh.com/articles/2008/01/22/another-project-or-introducing-sitesmetric.html" />
   <updated>2008-01-22T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2008/01/22/another-project-or-introducing-sitesmetric</id>
   <content type="html">&lt;p&gt;Yes, I&amp;#8217;ve started yet another project. I&amp;#8217;ve got tons of cycles spent on this, so I hope to be able to execute a really simple v1.0 and get it launched &lt;span class="caps"&gt;ASAP&lt;/span&gt;. The splash page is up. &lt;a href="http://sitesmetric.com"&gt;Go check it out in another tab&lt;/a&gt;&amp;#8230; I&amp;#8217;ll wait.&lt;/p&gt;
&lt;p&gt;One interesting aspect of this project has been the planning. The really early conceptual stuff I did on &lt;a href="http://www.mindmeister.com"&gt;MindMeister&lt;/a&gt;. What a great way to hammer out all the aspects of an idea you have kicking around your head. MindMeister allows you to be as broad (I started with a quick elevator pitch) or as deep (schema, models, controllers) as you want.&lt;/p&gt;
&lt;p style="float:right;"&gt;&lt;img src="http://farm4.static.flickr.com/3386/3424606793_6c05266a45_o.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;After this step, I used Fireworks CS3 to mockup some screens. Now, I thought Fireworks was just Macromedia&amp;#8217;s wimpy Photoshop clone but since Adobe swallowed it, I think it&amp;#8217;s trying to be a rapid prototyping tool. Which is fine by be, it worked great. I&amp;#8217;ve never really worked with anything at this stage that let me mold pixels as easily as putty:&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://farm4.static.flickr.com/3559/3424607129_4465eb88e6_o.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Without divulging too much, of course, here&amp;#8217;s the pitch. (There are still some legal issues I&amp;#8217;m working out with the largest search engine company.) It grew out of my frustration of trying to keep track of all the loose ends of various sites. dotfiles, lifemetric, taglol, this blog; they go on and on. All the information I needed wasn&amp;#8217;t all together, so stuff randomly fell through the cracks and I didn&amp;#8217;t know about some of the things I probably should have. I hope sitesmetric will fill this gap.&lt;/p&gt;
&lt;p&gt;So imagine sitesmetric as being the one place you can go to see the latest traffic trends; mentions on sites like Digg, Slashdot, reddit, etc.; keyword positions; domain registrations; hosting details; and so on.&lt;/p&gt;
&lt;p&gt;In the coming days I hope to share some more mock ups and comps.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/MGLay9d_0fU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Merb Asset Helpers
</title>
   <link href="http://kevinmarsh.com/articles/2008/01/15/merb-asset-helpers.html" />
   <updated>2008-01-15T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2008/01/15/merb-asset-helpers</id>
   <content type="html">&lt;p&gt;&lt;a href="http://merbivore.com/"&gt;Merb&lt;/a&gt;, like Rails 2.0, sports some very flexible asset helpers. But Merb&amp;#8217;s asset helpers bring a whole lot more to the table in terms of flexibility, speed, and features. Kinda like Merb itself.&lt;/p&gt;
&lt;p&gt;Take &lt;code&gt;js_include_tag&lt;/code&gt;. Sure, you can just throw it in your application layout and include some Javascript on every page like you would with Rails. You can even &amp;#8220;bundle&amp;#8221; all your Javascript assets. No, not manually. Merb is smart enough to give you the flexibility of separate files in development mode, but give you the extra speed boost in production mode. This is probably old news to a lot of Rails developers that haven&amp;#8217;t been under rocks for the past year.&lt;/p&gt;
&lt;p&gt;But, Merb gives us even more flexibility. What if you want to minify your Javascript? Merb supports asset bundler callbacks, which let you run some code after a bundle is created:&lt;/p&gt;
&lt;pre&gt;
Merb::Assets::JavascriptAssetBundler.add_callback do |filename|
  system("/usr/local/bin/yui-compress #{filename}")
end
&lt;/pre&gt;
&lt;p&gt;Pretty cool huh? Now, you could come close to this in Rails with something like &lt;a href="http://blog.jcoglan.com/packr/"&gt;PackR&lt;/a&gt; but it gets better:&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re the kind of web ninja who keeps their Javascript or &lt;span class="caps"&gt;CSS&lt;/span&gt; separated, it may be kind of cumbersome to figure out which assets you should be including and when. Not with Merb. Enter &lt;code&gt;include_required_js&lt;/code&gt; and &lt;code&gt;include_required_css&lt;/code&gt;. Throw these two methods in your application layout and you now have the flexibility to specify what Javascript or &lt;span class="caps"&gt;CSS&lt;/span&gt; files to include for what view. In the view. Where it makes the most sense:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;!-- application.html.erb --&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;%= include_required_js %&amp;gt;
    &amp;lt;%= include_required_css %&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;!-- SNIP! --&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;

&lt;pre&gt;
&amp;lt;!-- list.html.erb (or any view or partial, really) --&amp;gt;
&amp;lt;% require_js 'auto-complete' -%&amp;gt;
&lt;/pre&gt;
&lt;p&gt;I can see this making a lot of sense for including something like Javascript auto-completion or calendar popups &lt;em&gt;only on pages that actually require them&lt;/em&gt;. Which is a huge win for the other, say 90%, of your pages that don&amp;#8217;t require the Javascript file to be present.&lt;/p&gt;
&lt;p&gt;P.S. Props to the Merb team for creating clean and well-documented code that makes finding gems like this easy (and maybe even a little fun) to find.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Sw9W0rdXnyM" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Minor Leopard Rails Wrinkle
</title>
   <link href="http://kevinmarsh.com/articles/2007/10/30/minor-leopard-rails-wrinkle.html" />
   <updated>2007-10-30T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2007/10/30/minor-leopard-rails-wrinkle</id>
   <content type="html">&lt;p&gt;If you encounter this issue booting up a Mongrel:&lt;/p&gt;
&lt;pre&gt;
$ ./script/server 
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- builder/blankslate (LoadError)
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in `require'
from /Users/kmarsh/Sites/sampleboardportal/vendor/rails/activesupport/lib/active_support/basic_object.rb:3
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in `require'
from /Users/kmarsh/Sites/sampleboardportal/vendor/rails/activesupport/lib/active_support.rb:29
from /Users/kmarsh/Sites/sampleboardportal/vendor/rails/railties/lib/commands/server.rb:1:in `require'
from /Users/kmarsh/Sites/sampleboardportal/vendor/rails/railties/lib/commands/server.rb:1
from ./script/server:3:in `require'
from ./script/server:3
&lt;/pre&gt;
&lt;p&gt;&amp;#8230;it&amp;#8217;s because you&amp;#8217;re missing Builder. Try &lt;code&gt;sudo gem install builder&lt;/code&gt;. Fixed the issue for me!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/y_GF8BTdC6A" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>My Rails Stack Setup Notes</title>
   <link href="http://kevinmarsh.com/articles/2007/10/02/my-rails-stack-setup-notes.html" />
   <updated>2007-10-02T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2007/10/02/my-rails-stack-setup-notes</id>
   <content type="html">&lt;p&gt;It really is a no brainer to setup Linux, MySQL, Ruby, RubyGems, RMagick, Rails, etc. the 45th time you&amp;#8217;ve done it. But it takes a bit of time to go through those 44 other times. So I decided to write down all my steps so I can consistently setup a box at will with little fuss. Take a look, it probably is very close to what you&amp;#8217;re looking for:&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;a href="http://svn.kevinmarsh.com/upload/etc/Ubuntu%20Rails%20Stack%20Guide.txt"&gt;Ubuntu / MySQL / Rails Stack Install Guide&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/9y8Wc2uLZ4I" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>The Only Way Digg Can Redeem Itself</title>
   <link href="http://kevinmarsh.com/articles/2007/05/02/digg-aacs.html" />
   <updated>2007-05-02T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2007/05/02/digg-aacs</id>
   <content type="html">&lt;p&gt;Kevin Rose &lt;a href="http://blog.digg.com/?p=74"&gt;has stated&lt;/a&gt; he intends to stop the censorship of the &lt;a href="http://kevinmarsh.com/assets/2007/5/2/Digg_-_News__20070502_.png"&gt;posting&lt;/a&gt; of the (now) infamous &lt;span class="caps"&gt;AACS&lt;/span&gt; code.&lt;/p&gt;
&lt;p&gt;The only way Digg can redeem itself now in the minds of its followers is to be sued by the &lt;span class="caps"&gt;MPAA&lt;/span&gt;, fight it, take the case all the way to the Supreme Court, and have the &lt;span class="caps"&gt;DMCA&lt;/span&gt; deemed unconstitutional and overturned.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/PJ6hTodO52U" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Coda
</title>
   <link href="http://kevinmarsh.com/articles/2007/04/24/coda.html" />
   <updated>2007-04-24T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2007/04/24/coda</id>
   <content type="html">&lt;p style="float:right;"&gt;&lt;img src="http://farm4.static.flickr.com/3299/3425420780_639e63e854_o.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;So, &lt;a href="http://www.panic.com/coda/"&gt;Coda&lt;/a&gt; is out and it has been pretty well received. For good reason. It&amp;#8217;s a very elegant-looking app, with nice touches all over the place. Panic really knows how to exploit the look and feel of OS X and the core technologies beneath. Put simply: it oozes Mac goodness from every corner.&lt;/p&gt;
&lt;p&gt;I want to use it, I really do. However. I don&amp;#8217;t need it.&lt;/p&gt;
&lt;p&gt;You see, ever since I switched from &lt;span class="caps"&gt;PHP&lt;/span&gt; to Rails I only touch the server for &lt;a href="http://manuals.rubyonrails.com/read/book/17"&gt;little increments&lt;/a&gt; at a time, and no longer work directly on it (man, those were[n&amp;#8217;t] the days!) Even when developing comps from Photoshop to &lt;span class="caps"&gt;XHTML&lt;/span&gt;/&lt;span class="caps"&gt;CSS&lt;/span&gt;, I mainly stay within my &lt;a href="http://macromates.com/"&gt;current editor&lt;/a&gt; and switch back and forth between &lt;a href="http://webkit.org/"&gt;Webkit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;(As an aside, I really like the bundled Panic Sans font. Appears to be some variation of Bitstream Vera Mono, possibly with the underscores tweaked.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/LM9b8KI7IJs" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Rails Scalability Problems Solved
</title>
   <link href="http://kevinmarsh.com/articles/2007/04/23/rails-scalability-problems-solved.html" />
   <updated>2007-04-23T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2007/04/23/rails-scalability-problems-solved</id>
   <content type="html">&lt;p&gt;So all &lt;a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/"&gt;this&lt;/a&gt; &lt;a href="http://www.loudthinking.com/arc/000608.html"&gt;talk&lt;/a&gt; about Rails (not) &lt;a href="http://gettingreal.37signals.com/ch04_Scale_Later.php"&gt;scaling&lt;/a&gt; got me thinking. If the database is the next bottleneck after you&amp;#8217;ve beefed up your pack of Mongrels, just remove it&amp;#8212;and replace it with Twitter!&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s right. A Twitter-based ActiveRecord store.&lt;/p&gt;
&lt;p&gt;I expect the plugin to work something like this:&lt;/p&gt;
&lt;pre&gt;
development:
  adapter: mysql
  database: sockr_development
  username: root
  password:
  host: localhost

test:
  adapter: mysql
  database: sockr_test
  username: root
  password:
  host: localhost

production:
  adapter: twitter
  username: sockr_production
  password: web2point0h
&lt;/pre&gt;
&lt;p&gt;(Note here how I&amp;#8217;m still using a traditional &lt;span class="caps"&gt;RDBMS&lt;/span&gt; for development and test environments. Kicking in Twitter here would be quite silly, as we don&amp;#8217;t need the scalability for just our local user as we&amp;#8217;re developing. We really need it for production!)&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s it! The plugin would take care of marshaling your ActiveRecord objects into 140 byte chunks and sending it off to Twitter HQ for cold storage.&lt;/p&gt;
&lt;p&gt;Keep your eyes peeled for the plugin, coming soon!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/fuYEvQ-A1wk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>When To Say Yes to Feature Requests
</title>
   <link href="http://kevinmarsh.com/articles/2007/03/19/when-to-say-yes-to-feature-requests.html" />
   <updated>2007-03-19T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2007/03/19/when-to-say-yes-to-feature-requests</id>
   <content type="html">&lt;p&gt;As the only web developer for a small company, I get a lot feature requests for our apps and because time is limited (for everyone) I have to prioritize these requests. My job sure would be easier if I could &lt;a href="http://www.37signals.com/svn/archives2/getting_real_forget_feature_requests.php"&gt;just say no to everyone&lt;/a&gt; but management probably wouldn&amp;#8217;t have much of a use for me after awhile. So we need some rationale for turning one down and giving the other the thumbs up.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s my little rule of thumb:&lt;/p&gt;
&lt;pre&gt;
(time savings per day/time to implement) * number of users
&lt;/pre&gt;
&lt;p&gt;or if you like terse variable names,&lt;/p&gt;
&lt;pre&gt;
s/i * u
&lt;/pre&gt;

&lt;h3&gt;Case I: The Quick Win&lt;/h3&gt;
&lt;p&gt;Bob spends about 30 minutes a day sorting through a list of orders, paginating through and selecting ones that match a given range. He submits a request:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;Kevin, it&amp;#8217;d be great if I could use the existing search tool to search for a range of order numbers.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A quick estimate yields about 15 minutes for writing a few test cases, and coding up the feature. We have all the variables we need, so lets fill in our equation, sticking to hours:&lt;/p&gt;
&lt;pre&gt;
(.5/0.25) * 1 = 2
&lt;/pre&gt;
&lt;p&gt;Hmm, seems sort of arbitrary. We&amp;#8217;ll leave this on the whiteboard, and tell Bob we&amp;#8217;ll get back to him.&lt;/p&gt;
&lt;h3&gt;Case II: Productivity, Multiplied (or divided)&lt;/h3&gt;
&lt;p&gt;Just then, Sue comes in:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;Kevin, the other 4 customer service representatives and I are spending about 2 hours every day handling orders with invalid credit card numbers. Could we give our customers some more information during checkout if their card was rejected? It sure would reduce our call volume.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Adding some more validation and error handling to the order processing steps would take a couple hours, but it looks like it would save 5 CSR&amp;#8217;s 2 hours every day. How does this fill into our equation?&lt;/p&gt;
&lt;pre&gt;
(2/2) * 5 = 5
&lt;/pre&gt;
&lt;p&gt;We can see right away this looks like a huge difference, keeping in mind of course that it&amp;#8217;s just a rule of thumb.&lt;/p&gt;
&lt;p&gt;While it isn&amp;#8217;t a hard and fast rule (I don&amp;#8217;t think you could come up rules like &amp;#8220;&amp;lt; x = no&amp;#8221; and &amp;#8220;&amp;gt; y = yes&amp;#8221;) I&amp;#8217;ve found this technique can help prioritize requests in a way that your users can appreciate. It also forces your users to think a little about how much time they really spend doing things, and how much time it takes you to do your job.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Qq1LR61Re3A" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>dotfiles.org Now Has Search</title>
   <link href="http://kevinmarsh.com/articles/2007/02/06/dotfiles-org-now-has-search.html" />
   <updated>2007-02-06T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2007/02/06/dotfiles-org-now-has-search</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m pleased to announce &lt;a href="http://dotfiles.org"&gt;dotfiles.org&lt;/a&gt; now has search capabilities. This feature was born out of my desire to quickly see common features in everyone&amp;#8217;s dotfiles, specifically &lt;a href="http://dotfiles.org/search?q=alias"&gt;shell aliases&lt;/a&gt;. That being said, matching lines from each dotfile will be displayed one right after the other.&lt;/p&gt;
&lt;p&gt;Give it a try and if you haven&amp;#8217;t yet signed up, &lt;a href="http://dotfiles.org/signup"&gt;go ahead and do so&lt;/a&gt;. It&amp;#8217;s free!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/z_83EI_NFBA" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>reddit, digg, and Slashdot</title>
   <link href="http://kevinmarsh.com/articles/2007/01/30/digg-reddit-and-slashdot.html" />
   <updated>2007-01-30T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2007/01/30/digg-reddit-and-slashdot</id>
   <content type="html">&lt;ul&gt;
	&lt;li&gt;reddit: for computer science students&lt;/li&gt;
	&lt;li&gt;digg: for computer science drop-outs&lt;/li&gt;
	&lt;li&gt;Slashdot: for computer science graduates, circa 1980&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/fgNTV40jEPg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Best of 2006 Playlist
</title>
   <link href="http://kevinmarsh.com/articles/2006/12/31/best-of-2006-playlist.html" />
   <updated>2006-12-31T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2006/12/31/best-of-2006-playlist</id>
   <content type="html">&lt;p&gt;I had a great time listening to my favorite releases of 2006, as defined by this smart playlist:&lt;/p&gt;
&lt;pre&gt;
Match [all]:
  * Year is 2006
  * My Rating is &amp;gt; 2
&lt;/pre&gt;
&lt;ol&gt;
	&lt;li&gt;John Mayer &amp;#8211; Stop This Train&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; The Heart Of Life&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; Vultures&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; Gravity&lt;/li&gt;
	&lt;li&gt;Teddy Geiger &amp;#8211; Look Where We Are Now&lt;/li&gt;
	&lt;li&gt;Teddy Geiger &amp;#8211; Thinking Underage&lt;/li&gt;
	&lt;li&gt;Daniel Powter &amp;#8211; Bad Day&lt;/li&gt;
	&lt;li&gt;Jewel &amp;#8211; Again And Again&lt;/li&gt;
	&lt;li&gt;Guster &amp;#8211; Empire State&lt;/li&gt;
	&lt;li&gt;Corinne Bailey Rae &amp;#8211; Put Your Records On&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; Waiting On The World To Change&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; In Repair&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; Slow Dancing In A Burning Room&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; Belief&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; I&amp;#8217;m Gonna Find Another You&lt;/li&gt;
	&lt;li&gt;John Mayer &amp;#8211; I Don&amp;#8217;t Trust Myself (With Loving You)&lt;/li&gt;
	&lt;li&gt;Teddy Geiger &amp;#8211; For You I Will (Confidence)&lt;/li&gt;
	&lt;li&gt;Teddy Geiger &amp;#8211; Love Is A Marathon&lt;/li&gt;
	&lt;li&gt;Teddy Geiger &amp;#8211; Try Too Hard&lt;/li&gt;
	&lt;li&gt;Gnarls Barkley &amp;#8211; Crazy&lt;/li&gt;
	&lt;li&gt;Jewel &amp;#8211; Good Day&lt;/li&gt;
	&lt;li&gt;Chris Thile &amp;#8211; Wayside Back In Time&lt;/li&gt;
	&lt;li&gt;Daniel Powter &amp;#8211; Song 6&lt;/li&gt;
	&lt;li&gt;Jewel &amp;#8211; Goodbye Alice In Wonderland&lt;/li&gt;
	&lt;li&gt;Amos Lee &amp;#8211; supply and demand&lt;/li&gt;
	&lt;li&gt;The Click Five &amp;#8211; Just The Girl&lt;/li&gt;
	&lt;li&gt;Guster &amp;#8211; Lightning Rod&lt;/li&gt;
	&lt;li&gt;Jewel &amp;#8211; Stephenville, TX&lt;/li&gt;
	&lt;li&gt;Sanctus Real &amp;#8211; Fly&lt;/li&gt;
	&lt;li&gt;Sheryl Crow &amp;#8211; Real Gone&lt;/li&gt;
	&lt;li&gt;Train &amp;#8211; Explanation&lt;/li&gt;
	&lt;li&gt;Chris Thile &amp;#8211; You&amp;#8217;re An Angel, And I&amp;#8217;m Gonna Cry&lt;/li&gt;
	&lt;li&gt;Katharine McPhee &amp;#8211; Somewhere Over The Rainbow&lt;/li&gt;
	&lt;li&gt;Keane &amp;#8211; Nothing In My Way&lt;/li&gt;
	&lt;li&gt;Train &amp;#8211; Cab&lt;/li&gt;
	&lt;li&gt;Daniel Powter &amp;#8211; Lie To Me&lt;/li&gt;
	&lt;li&gt;Guster &amp;#8211; Dear Valentine&lt;/li&gt;
	&lt;li&gt;Thom Yorke &amp;#8211; The Eraser&lt;/li&gt;
	&lt;li&gt;Train &amp;#8211; Always Remember&lt;/li&gt;
	&lt;li&gt;Ben Kweller &amp;#8211; Thirteen&lt;/li&gt;
	&lt;li&gt;Ben Kweller &amp;#8211; This Is War&lt;/li&gt;
	&lt;li&gt;Kate Havnevik &amp;#8211; New Day&lt;/li&gt;
	&lt;li&gt;Train &amp;#8211; Shelter Me&lt;/li&gt;
	&lt;li&gt;Ben Folds &amp;#8211; Still&lt;/li&gt;
	&lt;li&gt;Hellogoodbye &amp;#8211; Here (In Your Arms)&lt;/li&gt;
	&lt;li&gt;The Knife &amp;#8211; Silent Shout&lt;/li&gt;
	&lt;li&gt;Ray LaMontagne &amp;#8211; Empty&lt;/li&gt;
	&lt;li&gt;James Taylor &amp;#8211; Jingle Bells&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I think I&amp;#8217;ll make it a New Years Eve tradition!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/t5ac_Sk4KjA" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>My Dream App
</title>
   <link href="http://kevinmarsh.com/articles/2006/12/28/my-dream-app.html" />
   <updated>2006-12-28T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2006/12/28/my-dream-app</id>
   <content type="html">&lt;p&gt;No, not &lt;a href="http://mydreamapp.com/"&gt;that&lt;/a&gt; dream app, but &lt;em&gt;mine&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d like an app that I can use to document my computing experiences. You know, like when I&amp;#8217;m on a &lt;a href="http://www.apple.com/macosx/features/safari/"&gt;Safari&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I currently do this with screenshots that automatically get uploaded to Flickr and tagged &amp;#8216;screenshot&amp;#8217; and/or del.icio.us. However, I&amp;#8217;d just like one button that I push, and a svelte &lt;span class="caps"&gt;HUD&lt;/span&gt; pops up, asks me for some tags and maybe a description, then pushes it up on the web somewhere. If I&amp;#8217;m on a webpage, it&amp;#8217;ll cache the site&amp;#8217;s text (which I can then search), take a screenshot and then get out of the way.&lt;/p&gt;
&lt;p&gt;Paul uses screenshots and Keynote, but that doesn&amp;#8217;t work so well with multiple computers&amp;#8230; and I don&amp;#8217;t like the idea of accumulating 200 MiB files.&lt;/p&gt;
&lt;p&gt;(Hmmm, maybe this is &lt;a href="http://rediscovr.com"&gt;rediscovr&lt;/a&gt;?)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://farm4.static.flickr.com/3608/3425425652_ce6ccfe2db_o.png" alt="" /&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/P1UcRAatZ7Y" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Junebug and Nginx
</title>
   <link href="http://kevinmarsh.com/articles/2006/11/15/junebug-and-nginx.html" />
   <updated>2006-11-15T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2006/11/15/junebug-and-nginx</id>
   <content type="html">&lt;p&gt;So I came across &lt;a href="http://www.junebugwiki.com"&gt;Junebug&lt;/a&gt; today, which is a slick wiki engine that harnesses the power of &lt;a href="http://redhanded.hobix.com/bits/campingAMicroframework.html"&gt;Camping&lt;/a&gt; and gives you a nice-looking wiki that&amp;#8217;s contained in one directory.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what I did to get it setup and running and proxied through nginx:&lt;/p&gt;
&lt;p&gt;1. Install &lt;a href="http://www.junebugwiki.com"&gt;Junebug&lt;/a&gt; (you&amp;#8217;ll need Ruby Gems for this to work):&lt;br /&gt;
  &lt;br /&gt;
&lt;pre&gt;$ sudo gem install junebug&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;2. Create the wiki:&lt;br /&gt;
    &lt;br /&gt;
&lt;pre&gt;$ junebug wiki&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;3. Edit the config.yml file&amp;#8217;s &lt;code&gt;url&lt;/code&gt; and &lt;code&gt;feed&lt;/code&gt; parameters to the location we&amp;#8217;ll proxy it to, say &lt;code&gt;http://example.com/wiki&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;4. Edit your nginx.conf and add the following entries:&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
upstream junebug {&lt;br /&gt;
  server 127.0.0.1:3301;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;location /wiki {&lt;br /&gt;
  proxy_pass http://mongrel-kmw/wiki;&lt;br /&gt;
  proxy_redirect     off;&lt;br /&gt;
  proxy_set_header   Host   $host;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;location /wiki/static { &lt;br /&gt;
  root /home/kmarsh;&lt;br /&gt;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;5. Fire it up!: &lt;code&gt;./wiki start&lt;/code&gt; (this daemonizes automatically)&lt;/p&gt;
&lt;p&gt;6. Restart nginx (send it &lt;span class="caps"&gt;HUP&lt;/span&gt; &lt;code&gt;kill -HUP [nginx pid]&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;7. Visit your wiki at the &lt;span class="caps"&gt;URL&lt;/span&gt; you specified above, maybe http://example.com/wiki&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/lJ8gmdSaNms" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Toward a more Republic Democracy</title>
   <link href="http://kevinmarsh.com/articles/2006/10/25/toward-a-more-republic-democracy.html" />
   <updated>2006-10-25T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/10/25/toward-a-more-republic-democracy</id>
   <content type="html">&lt;p&gt;The House of Representatives (and to a lesser extent, the Senate) were established out of the desire for the nation to be led by the people; realizing that not everyone could travel to the capital on a regular basis and voice their opinions.&lt;/p&gt;
&lt;p&gt;So the founding fathers setup a republic, where citizens vote once a year for representatives that share the same ideals as them. Which is usually (poorly) determined by party affiliation.&lt;/p&gt;
&lt;p&gt;However, how do we know that who we elect are actually voting in our favor? And, more importantly, how do our elected representatives know how their constituents would vote?&lt;/p&gt;
&lt;p&gt;As a web developer, I am always looking for ways in which the web can be used to improve our lives. Here is one such way:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A list of upcoming issues before the House could be put on the Representative&amp;#8217;s website;&lt;/li&gt;
	&lt;li&gt;constituents could log in and cast a vote for each issue as if they were before the House themselves;&lt;/li&gt;
	&lt;li&gt;a Representative could log in and see a tally of the votes so far for each issue. They would then take this to Congress, armed with the opinions of their constituents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This also makes election time much easier. Rather than listening to party-incited backbiting and dirt-digging, you would know that you differ on, for example, 89% of the issues in the previous term and, in this case, it might be time to vote for a candidate whose opinions are more aligned with yours.&lt;/p&gt;
&lt;p&gt;Because after all, shouldn&amp;#8217;t a government &lt;a href="http://en.wikipedia.org/wiki/Gettysburg_Address"&gt;&amp;#8220;of the people, by the people, and for the people&amp;#8221;&lt;/a&gt; include more of the peoples&amp;#8217; opinions?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/AC46lo4UCII" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Dotfiles</title>
   <link href="http://kevinmarsh.com/articles/2006/10/21/dotfiles.html" />
   <updated>2006-10-21T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/10/21/dotfiles</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m proud to announce the grand opening of &lt;a href="http://dotfiles.org"&gt;dotfiles.org&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;From the site&amp;#8217;s homepage:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;dotfiles.org is a place to upload, share, and synchronize your dotfiles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you don&amp;#8217;t know what a dotfile is, you probably don&amp;#8217;t need it. And if you don&amp;#8217;t know, &lt;a href="http://en.wikipedia.org/wiki/Dotfile"&gt;learn up&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s my first app written in &lt;a href="http://redhanded.hobix.com/bits/campingAMicroframework.html"&gt;Camping&lt;/a&gt;, which has been a trip I&amp;#8217;m confident to say I hope I&amp;#8217;ll take again.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Zc0t39tyfJU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Mephisto
</title>
   <link href="http://kevinmarsh.com/articles/2006/10/16/mephisto.html" />
   <updated>2006-10-16T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/10/16/mephisto</id>
   <content type="html">&lt;p&gt;It&amp;#8217;s official, this blog is now running &lt;a href="http://www.mephistoblog.com/"&gt;Mephisto&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;There a few bugs and things missing, which&amp;#8217;ll get cleaned up in due time.&lt;/p&gt;
&lt;p&gt;Also, feeds have now been moved to FeedBurner:&lt;/p&gt;
&lt;pre&gt;http://feeds.feedburner.com/kevinmarsh&lt;/pre&gt;

&lt;p&gt;Update (or subscribe!) today!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/olLB-V-Mf4w" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Tab-completion for Ruby Cheat Sheets</title>
   <link href="http://kevinmarsh.com/articles/2006/10/15/tab-completion-for-ruby-cheat-sheets.html" />
   <updated>2006-10-15T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/10/15/tab-completion-for-ruby-cheat-sheets</id>
   <content type="html">&lt;p&gt;Add this to your &lt;code&gt;.bashrc&lt;/code&gt; or &lt;code&gt;.bash_profile&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;complete -W "$(cheat sheets | egrep '^ ' | awk {'print $1'})" cheat&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/3VIV9lk4pag" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Bracket accessors for your Rails models
</title>
   <link href="http://kevinmarsh.com/articles/2006/10/11/bracket-accessors-for-your-rails-models.html" />
   <updated>2006-10-11T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/10/11/bracket-accessors-for-your-rails-models</id>
   <content type="html">&lt;p&gt;Here&amp;#8217;s an interesting hack. Tag this on the end of &lt;code&gt;environment.rb&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
module ActiveRecord
  class Base
    def self.[](id)
      self.find(id)
    end
  end
end
&lt;/pre&gt;
&lt;p&gt;Now you can do fun things like:&lt;/p&gt;
&lt;pre&gt;&amp;gt;&amp;gt; Person[1]
=&amp;gt; #&amp;lt;Person:0x23c7a00 @attributes={"name"=&amp;gt;"Alice", "id"=&amp;gt;"1"}&amp;gt;
&amp;gt;&amp;gt; Person[1].name
=&amp;gt; "Alice"&lt;/pre&gt;
&lt;p&gt;Which is equivalent to:&lt;/p&gt;
&lt;pre&gt;&amp;gt;&amp;gt; Person.find(1)
=&amp;gt; #&amp;lt;Person:0x23c7a00 @attributes={"name"=&amp;gt;"Alice", "id"=&amp;gt;"1"}&amp;gt;
&amp;gt;&amp;gt; Person.find(1).name
=&amp;gt; "Alice"&lt;/pre&gt;
&lt;p&gt;&amp;#8230;but far cooler.&lt;/p&gt;
&lt;p&gt;In other news, I really need to upgrade to Mephisto &amp;#8211; just as soon as they add &lt;span class="caps"&gt;XML&lt;/span&gt;-&lt;span class="caps"&gt;RPC&lt;/span&gt; support.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/7xSATL1-ccw" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>iTunes Visual Refresh</title>
   <link href="http://kevinmarsh.com/articles/2006/09/12/itunes-visual-refresh.html" />
   <updated>2006-09-12T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/09/12/itunes-visual-refresh</id>
   <content type="html">&lt;p&gt;iTunes 7, released today, sports some new UI tweaks (cf. &lt;a href="http://www.apple.com/itunes/jukebox/sourcelist.html"&gt;source list preview&lt;/a&gt;). Now, being one for consistency, I have to believe the rest of Aqua will change along with it (right? right!?), but it&amp;#8217;s odd we didn&amp;#8217;t see anything different in the latest Leopard preview. Although, iTunes has consistently been the earliest adopter of most UI trends.&lt;/p&gt;
&lt;p&gt;While I haven&amp;#8217;t seen the new UI enough yet to gauge whether or not I like it, I hope this isn&amp;#8217;t just another &amp;#8220;visual fork&amp;#8221; but rather a preview of a new, consistent look for OS X.&lt;/p&gt;
&lt;p&gt;(Oh, and I hope Apple hired or gave the author of &lt;a href="http://www.steelskies.com/coverflow/"&gt;CoverFlow&lt;/a&gt; some cash for integrating his app&amp;mdash;including the name&amp;mdash;into iTunes proper.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/rlYVfJ1FBMU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Ruby Web Fetching Options Benchmarked
</title>
   <link href="http://kevinmarsh.com/articles/2006/08/19/ruby-web-fetching-options-benchmarked.html" />
   <updated>2006-08-19T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/08/19/ruby-web-fetching-options-benchmarked</id>
   <content type="html">&lt;p&gt;My latest project requires a web crawler of sorts (technically, it just needs to grab the &lt;span class="caps"&gt;HTML&lt;/span&gt; and index it, not following any links), so fetching web pages very fast will be important. I&amp;#8217;ve whipped up a quick script using stdlib&amp;#8217;s &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/benchmark/rdoc/index.html"&gt;Benchmark&lt;/a&gt; to pit several options against each other: &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/"&gt;open-uri&lt;/a&gt;, &lt;a href="http://rio.rubyforge.org/"&gt;rio&lt;/a&gt;, &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/index.html"&gt;net/http&lt;/a&gt;, and Zed Shaw&amp;#8217;s &lt;a href="http://www.zedshaw.com/projects/rfuzz/"&gt;RFuzz&lt;/a&gt;. (If I&amp;#8217;m leaving any out, please let me know.)&lt;/p&gt;
&lt;h3&gt;The Test&lt;/h3&gt;
&lt;p&gt;Briefly, the test fetches the Google search results for &lt;a href="http://google.com/search?q=testing&amp;amp;hl=en&amp;amp;btnG=Google%20Search"&gt;testing&lt;/a&gt; 5 times each.&lt;/p&gt;
&lt;h3&gt;The Results&lt;/h3&gt;
&lt;pre&gt;                user     system      total        real
RFuzz       0.010000   0.000000   0.010000 (  2.486962)
net/http    0.040000   0.020000   0.060000 (  2.880106)  
open-uri    0.070000   0.040000   0.110000 (  3.203510)
rio         0.140000   0.060000   0.200000 (  3.674174)&lt;/pre&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;It appears as though RFuzz cranks through &lt;span class="caps"&gt;HTTP&lt;/span&gt; the fastest, with net/http coming in a close second. It appears as through both open-uri&amp;#8217;s and rio&amp;#8217;s prettiness in syntax also slows them down quite a bit earning them 3rd and 4th place, respectively.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/b46gl6JvGq4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Terra got the bat!</title>
   <link href="http://kevinmarsh.com/articles/2006/07/31/terra-got-the-bat.html" />
   <updated>2006-07-31T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/07/31/terra-got-the-bat</id>
   <content type="html">&lt;div style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/deadnutz/203372034/"&gt;&lt;img src="http://static.flickr.com/59/203372034_68340c879d_m.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;(The photo not mine, but found on Flickr. It pretty much looked like that, though.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/VlB9YhmXw9U" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Wireless Mighty Mouse Observations</title>
   <link href="http://kevinmarsh.com/articles/2006/07/28/wireless-mighty-mouse-observations.html" />
   <updated>2006-07-28T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/07/28/wireless-mighty-mouse-observations</id>
   <content type="html">&lt;div style="float: right; padding-left: 5px; padding-bottom: 5px;"&gt;&lt;a href="http://www.flickr.com/photos/kevinmarsh/200448442/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/67/200448442_27b1a0fcdb_m.jpg" width="240" height="164" alt="Wireless Mighty Mouse Shut-eye" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;The &lt;span class="caps"&gt;UPS&lt;/span&gt; man just came today and delivered my new Wireless Mighty Mouse (I know, I know&amp;#8230; it&amp;#8217;s pricey for a mouse but I still had the $50 iPod Settlement promo code kicking around). Here are some observations:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The On-Off switch is merely a shutter to the laser, pretty clever!&lt;/li&gt;
	&lt;li&gt;Two AA batteries are included&lt;/li&gt;
	&lt;li&gt;The included software was a required install, even on Mac OS X 10.4.7&lt;/li&gt;
	&lt;li&gt;It&amp;#8217;s quite a bit heavier than the wired Mighty Mouse, due to the batteries (duh)&lt;/li&gt;
	&lt;li&gt;You can choose to include one or two batteries at a time&lt;/li&gt;
	&lt;li&gt;There is a nice battery level gauge in the Bluetooth tab of the Keyboard and Mouse System Preferences panel&lt;/li&gt;
	&lt;li&gt;I think it samples less frequently than the wired version, as mousing seems to stutter ever-so-slightly. This has the potential to get very annoying!&lt;/li&gt;
	&lt;li&gt;The new software adds a slick Zoom feature, wherein holding a modifier key while scrolling with the ball will actually zoom the screen in. Problem is, it&amp;#8217;s pretty disorienting and doesn&amp;#8217;t really work all that well, but it just might take some practice.&lt;/li&gt;
	&lt;li&gt;The two side buttons are equally as annoying as the original Mighty Mouse. Their hard pressing requirement coupled with little tactile feedback render them practically unusable.&lt;/li&gt;
	&lt;li&gt;It&amp;#8217;s nice not having to deal with the (too) short cord, especially with my MacBook&lt;/li&gt;
	&lt;li&gt;The laser will track on my glass-topped wooden desk, unlike the optical&lt;/li&gt;
	&lt;li&gt;No more &lt;span class="caps"&gt;LED&lt;/span&gt; means no more &lt;a href="http://flickr.com/photos/kevinmarsh/70640186/"&gt;weird mouse-like projection&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/WxxMH6IQOUo" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Dead Simple Full-text Searching with Rails
</title>
   <link href="http://kevinmarsh.com/articles/2006/07/17/dead-simple-full-text-searching-with-rails.html" />
   <updated>2006-07-17T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/07/17/dead-simple-full-text-searching-with-rails</id>
   <content type="html">&lt;p&gt;Using MySQL&amp;#8217;s built-in &lt;span class="caps"&gt;FULLTEXT&lt;/span&gt; searching capabilities, you can add full-text searching to your Rails app&amp;#8217;s pretty easily. It&amp;#8217;s not quite as sexy as &lt;a href="http://poocs.net/articles/2006/04/06/introducing-acts_as_searchable"&gt;acts_as_searchable&lt;/a&gt; but implementation is pretty trivial and no dependencies are required. One caveat: your tables need to be MyISAM.&lt;/p&gt;
&lt;p&gt;First, make sure you add a &lt;span class="caps"&gt;FULLTEXT&lt;/span&gt; index to your MySQL table like so:&lt;/p&gt;
&lt;pre&gt;ALTER TABLE articles ADD FULLTEXT (title, content);&lt;/pre&gt;
&lt;p&gt;Then, just use ActiveRecord&amp;#8217;s &lt;code&gt;find()&lt;/code&gt; method, but pass in a &lt;code&gt;:conditions&lt;/code&gt; parameter:&lt;/p&gt;
&lt;pre&gt;@articles = Article.find(:all, :conditions =&amp;gt; ['MATCH(title, content) AGAINST (?)', params[:query]])&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/DReGJJQtcLk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Clickity Clack--whine--Clickity Clack</title>
   <link href="http://kevinmarsh.com/articles/2006/07/13/clickity-clack-whine-clickity-clack.html" />
   <updated>2006-07-13T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/07/13/clickity-clack-whine-clickity-clack</id>
   <content type="html">&lt;p&gt;So I&amp;#8217;ve just confirmed that my MacBook exudes similar whining problems as the  MacBook Pro. The whine&amp;#8217;s pitch varies with &lt;span class="caps"&gt;CPU&lt;/span&gt; usage, such as scrolling or dragging windows.&lt;/p&gt;
&lt;p&gt;&lt;del&gt;Solution&lt;/del&gt; Hack: Turn off the second core using the Processor System Preference panel.&lt;/p&gt;
&lt;p&gt;Now I just have the clickity-clack sound of my vintage Apple Extended II keyboard (oh, and only one core).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/fnRQLUDoOME" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>BarnRaisr and Knowledge Markets</title>
   <link href="http://kevinmarsh.com/articles/2006/06/26/barnraisr-and-knowledge-markets.html" />
   <updated>2006-06-26T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/06/26/barnraisr-and-knowledge-markets</id>
   <content type="html">&lt;p&gt;This idea comes from two separate events at &lt;a href="http://railsconf.com"&gt;RailsConf&lt;/a&gt;: a conversation and a keynote.&lt;/p&gt;
&lt;p&gt;A conversation at &lt;a href="http://railsconf.com"&gt;RailsConf&lt;/a&gt; started up between a group sitting at a table, some of which turned out to be pretty knowledgeable on the subject of &lt;a href="http://www.skyrme.com/insights/28kmkt.htm"&gt;knowledge markets&lt;/a&gt;. The gentleman sitting next to me (forgive me, I didn&amp;#8217;t catch your name!) brought up a good point about the idea of collective knowledge markets and the opportunity for people to &amp;#8220;game the system&amp;#8221; if there was any personal benefit involved.&lt;/p&gt;
&lt;p&gt;Another RailsConf extraction, if you will, is &lt;a href="http://barnraisr.com/"&gt;BarnRaisr&lt;/a&gt; (which is another testament to this community: a call to action was made during &lt;a href="http://terralien.com/"&gt;Nathaniel Talbott&lt;/a&gt; &amp;#8216;s RailsConf 2006 talk _Homesteading: A Thriver&amp;#8217;s Guide_ and someone came up with a name and site less than a day later). The basic idea is this: present a project and have members of the community help it along by contributing testing, coding, design, and time to help this idea along.&lt;/p&gt;
&lt;p&gt;On the ride home, these two separate ideas came together: when enough code and hours start to be volunteered on projects you suddenly have a decent indicator of the merit of a particular idea. People &amp;#8220;game&amp;#8221; the system by committing hours and hard work to the project, which I think anyone would agree is a pretty good thing.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/7R8BACiTzL8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>RailsConf</title>
   <link href="http://kevinmarsh.com/articles/2006/06/23/railsconf.html" />
   <updated>2006-06-23T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/06/23/railsconf</id>
   <content type="html">&lt;p&gt;Live from RailsConf&amp;#8230; no real content to offer, just bragging.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/5QBJ7TqZajg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>RSS Aggregation</title>
   <link href="http://kevinmarsh.com/articles/2006/06/20/rss-aggregation.html" />
   <updated>2006-06-20T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/06/20/rss-aggregation</id>
   <content type="html">&lt;p&gt;After years and years of manually checking each of my 75 or so favorite websites for updates I&amp;#8217;ve decided to give an &lt;span class="caps"&gt;RSS&lt;/span&gt; aggregator a shot.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve tried several in the past, namely &lt;a href="http://www.newsfirerss.com/"&gt;NewsFire&lt;/a&gt; and NetNewsWire, but I&amp;#8217;ve always felt like they robbed me of the &amp;#8216;experience&amp;#8217; of visiting a website.&lt;/p&gt;
&lt;p&gt;A lot of the sites I frequent are design related and naturally have quite exquisite designs (cf. &lt;a href="http://www.bartelme.at/"&gt;Bartelme Design&lt;/a&gt; and &lt;a href="http://www.maniacalrage.net/"&gt;Maniacal Rage&lt;/a&gt;, among others). Why would I want to forgo this pleasant viewing experience and have all the updates shown to me in a homogenized container? Mostly &amp;#8217;cause its easier.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m currently using &lt;a href="http://www.newsgator.com/NGOLProduct.aspx?ProdId=NetNewsWire&amp;amp;ProdView=lite"&gt;NetNewsWire Lite&lt;/a&gt; to track about 100 feeds which is, so far, working well. I credit most of my pleasant experience to its NewsGator synchronization (which actually works!), which is a must-have feature for someone with a home and work Mac or desktop and portable Mac.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/qhOWCmZZjsE" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>TextMate and WordPress</title>
   <link href="http://kevinmarsh.com/articles/2006/06/20/textmate-and-wordpress.html" />
   <updated>2006-06-20T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/06/20/textmate-and-wordpress</id>
   <content type="html">&lt;p&gt;&lt;a href="http://macromates.com&amp;#39;s"&gt;TextMate&lt;/a&gt; latest new feature, the Blogging bundle, has prompted me to (finally) ditch TextPattern and switch to a blogging package with better &lt;span class="caps"&gt;XML&lt;/span&gt;-&lt;span class="caps"&gt;RPC&lt;/span&gt; support. So here we are: Kevin Marsh on &lt;a href="http://wordpress.com"&gt;WordPress&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Stuff is still a bit&amp;#8230; &lt;em&gt;broken&lt;/em&gt;. But on the plus side, comments now work! And we have search.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/75Wryi2_cac" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>January!?</title>
   <link href="http://kevinmarsh.com/articles/2006/05/08/january.html" />
   <updated>2006-05-08T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2006/05/08/january</id>
   <content type="html">&lt;p&gt;That can&amp;#8217;t be right&amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/WOsoGRWVGRk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Everything old is new again, or, Embrace and extend</title>
   <link href="http://kevinmarsh.com/articles/2006/01/06/everything-old-is-new-again-or-embrace-and-extend.html" />
   <updated>2006-01-06T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2006/01/06/everything-old-is-new-again-or-embrace-and-extend</id>
   <content type="html">&lt;p&gt;So, Microsoft has released some more details of what they have in store for Vista. Let&amp;#8217;s do a quick rundown of the features, shall we? I think I&amp;#8217;ve seen them somewhere before&amp;#8230;&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s start off with the major features, &lt;a href="http://www.microsoft.com/windowsvista/features/default.aspx"&gt;as listed here&lt;/a&gt;, and work our way down (because of some lame Javascript on the page, I can&amp;#8217;t directly link to each section.)&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Virtual Folders&lt;/strong&gt;, looks like a Smart Folder to me&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Quick Search&lt;/strong&gt;, find anything right from a unified search bar! Oh yeah&amp;#8230; Apple did something like this in Tiger&amp;#8230; I think it was called Spotlight. Next!&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Aero&lt;/strong&gt;, use the &lt;span class="caps"&gt;GPU&lt;/span&gt; to render fancy graphical &lt;span class="caps"&gt;GUI&lt;/span&gt; elements! Oh yeah&amp;#8230; Apple did something like this in Tiger&amp;#8230; pretty sure it was called Quartz (Extreme)&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Live taskbar thumbnails&lt;/strong&gt;, previews of minimized windows while hovering over their icon in the taskbar. Looks pretty similar to the Dock&amp;#8217;s minimized windows to me, but the Dock&amp;#8217;s are visible even if you don&amp;#8217;t hover over them (read: more than one at a time)&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Windows Flip&lt;/strong&gt; and &lt;strong&gt;Windows Flip 3D&lt;/strong&gt;&amp;#8230; use the awesome power of Aero to show each window all at once, so you can pick from a miniaturized version rather than just an icon. Hey! I know this one. Exposé!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;#8217;s move on to Security, surely Microsoft has done something innovative here, I mean&amp;#8230; Microsoft is known for great security, right? Right?&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;User Account Control (&lt;span class="caps"&gt;UAC&lt;/span&gt;)&lt;/strong&gt;, so basically while using a &amp;#8220;normal&amp;#8221; account and doing something that requires administrative privileges, a box will pop up asking for the administrator password. Uuuh, OS X has been doing this forever.&lt;/li&gt;
	&lt;li&gt;Better protection from malware, ok&amp;#8230; so we got &lt;strong&gt;Automatic Updates&lt;/strong&gt; (should be standard for any operating environment), &lt;strong&gt;firewall&lt;/strong&gt;, &lt;strong&gt;Windows Defender&lt;/strong&gt; and the &lt;strong&gt;Malicious Software Removal Tool&lt;/strong&gt; (OK, I&amp;#8217;ll admit&amp;#8230; OS X does not have the Malicious Software Removal Tool. But, in its defense, it does not require it either.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How about Internet Explorer? Surely there is some room for some innovative improvements, no? Hey, where ya going? Come back&amp;#8230;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Tabbed browsing&lt;/strong&gt;, just like we&amp;#8217;ve seen in Firefox and Safari for years&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Built-in &lt;span class="caps"&gt;RSS&lt;/span&gt; reader&lt;/strong&gt;, more catching up to Firefox and Safari&amp;#8230;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Live Preview&lt;/strong&gt; view tab&amp;#8217;s contents in a thumbnail preview, just like &lt;a href="http://www.omnigroup.com/applications/omniweb/"&gt;Omniweb&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point, it&amp;#8217;s getting pretty ridiculous, but I trudge on&amp;#8230;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Gadgets and Sidebar&lt;/strong&gt;, ya know&amp;#8230; small applications that connect to the web and a place to put said apps. Just like Widgets and Dashboard&amp;#8230; But&amp;#8212;the Sidebar &lt;em&gt;will&lt;/em&gt; take up about 20% of the side of your screen! Even when you don&amp;#8217;t want it&amp;#8230;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Windows Calendar&lt;/strong&gt;, ok&amp;#8230; the thing that gets me about this one is the rounded event box. Totally screams iCal ripoff. But you can share calendars! Ya know, like iCal.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Windows Photo Gallery&lt;/strong&gt; iPhoto.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Windows Movie Maker&lt;/strong&gt; iMovie.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Performance is an area where I&amp;#8217;m sure we having something of merit&amp;#8230; Really.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Sleep&lt;/strong&gt; Damnit. Guess not.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;SuperFetch&lt;/strong&gt;, ya know. Memory caching. Like any modern operating system has done for the past, 10 years.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;External memory devices&lt;/strong&gt;, cool! Now I can connect a &lt;span class="caps"&gt;USB&lt;/span&gt; flash drive and have it add to my system memory! Except it will be about 15% of the speed&amp;#8230;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Windows Backup&lt;/strong&gt; and &lt;strong&gt;System Restore&lt;/strong&gt;&amp;#8230; nothing new to see here, either.&lt;/p&gt;
&lt;p&gt;In short, Vista is nothing but a late facsimile of Tiger.  Some features are a bit more obscure, while others are glaring and its really unnerving how Microsoft can get away with it.&lt;/p&gt;
&lt;p&gt;Embrace, yes. Extend? Not so much.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/YS6E2S1-U24" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>New Features Galore!
</title>
   <link href="http://kevinmarsh.com/articles/2006/01/05/new-features-galore.html" />
   <updated>2006-01-05T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2006/01/05/new-features-galore</id>
   <content type="html">&lt;p&gt;After realizing I spend entirely too much time neglecting this site, I&amp;#8217;ve worked a bit over the past couple days to add:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.flickr.com"&gt;Flickr&lt;/a&gt; integration, in the &lt;a href="gallery/"&gt;Gallery&lt;/a&gt; (which prompted me to become a Flickr pro member, too)&lt;/li&gt;
	&lt;li&gt;Last 3 pictures from the Treo on the right (it&amp;#8217;s pretty amazing that in 1 minute and 20 seconds I can snap a picture and have it show up here!)&lt;/li&gt;
	&lt;li&gt;del.icio.us integration, in the &lt;a href="links/"&gt;Links&lt;/a&gt; section&lt;/li&gt;
	&lt;li&gt;Updated &lt;a href="resume/"&gt;r&amp;eacute;sum&amp;eacute;&lt;/a&gt; to reflect my new job and to sound not as needy&lt;/li&gt;
	&lt;li&gt;Updated the &lt;a href="portfolio/"&gt;Portfolio&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Various markup changes to make the site plumb with &lt;span class="caps"&gt;XHTML&lt;/span&gt; standards (what a shame to link to the validator and have it not even give you the green light!)&lt;/li&gt;
	&lt;li&gt;Updated the &lt;span class="caps"&gt;RSS&lt;/span&gt; feed icon to the new &lt;a href="http://www.feedicons.com/"&gt;standard&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Re-discovered love for &lt;a href="http://www.textpattern.com"&gt;TextPattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/B1SuiV6j5Fg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Commenting Fixed</title>
   <link href="http://kevinmarsh.com/articles/2006/01/02/commenting-fixed.html" />
   <updated>2006-01-02T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2006/01/02/commenting-fixed</id>
   <content type="html">&lt;p&gt;D&amp;#8217;oh! So &lt;em&gt;that&amp;#8217;s&lt;/em&gt; why I haven&amp;#8217;t been getting many comments lately. Here I thought it was just because no one visited me&amp;#8230;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/MOEQlSSd2mA" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Creating Mobile or Lite Versions of Rails Apps
</title>
   <link href="http://kevinmarsh.com/articles/2005/11/05/creating-mobile-or-lite-versions-of-rails-apps.html" />
   <updated>2005-11-05T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2005/11/05/creating-mobile-or-lite-versions-of-rails-apps</id>
   <content type="html">&lt;p&gt;For my latest web project using Ruby on Rails, the idea of a mobile version arose.&lt;/p&gt;
&lt;p&gt;Is it worth it? Well, how much more code would I have to write? 1,000 lines? Pages? Try 10. That&amp;#8217;s right: 10.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the magic, first add the lines around the Mobile/lite version bit to &lt;code&gt;config/routes.rb&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
ActionController::Routing::Routes.draw do |map|
  # Default page is the dashboard
  map.connect '', :controller =&amp;gt; "dashboard", :action =&amp;gt; 'show'

  # Mobile/lite version
  map.connect ':mobile/', :controller =&amp;gt; "dashboard", :action =&amp;gt; 'show'
  map.connect ':mobile/:controller/:action/:id'

  # Install the default route as the lowest priority.
  map.connect ':controller/:action/:id'
end
&lt;/pre&gt;
&lt;p&gt;Then edit &lt;code&gt;app/controllers/application.rb&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
require_dependency "login_system"

class ApplicationController &amp;lt; ActionController::Base
    include LoginSystem
      
    helper :debug
    helper :date_picker
    
    layout :determine_layout
    
    private
    
    def determine_layout
      if @params[:mobile]
        "mobile"
      else
        "application"
      end
    end
end
&lt;/pre&gt;
&lt;p&gt;And finally, create &lt;code&gt;app/views/layouts/mobile.rhtml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
&amp;lt;%= yield %&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Surf on over to &lt;code&gt;yourserver/yourapp/mobile/&lt;/code&gt; And voila! You have a lite version of your site perfect for viewing on a smartphone or &lt;span class="caps"&gt;PDA&lt;/span&gt;. As a bonus, when you start using a mobile page, your preference will &amp;#8220;stick&amp;#8221; and follow you, thanks to Rail&amp;#8217;s routing.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/KpFxH6HwUlo" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>How to Succeed In The Web 2.0 Days</title>
   <link href="http://kevinmarsh.com/articles/2005/08/18/how-to-succeed-in-the-web-2-0-days.html" />
   <updated>2005-08-18T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/08/18/how-to-succeed-in-the-web-2-0-days</id>
   <content type="html">&lt;p&gt;It&amp;#8217;s easy, &lt;em&gt;really&lt;/em&gt;, to have a successful web app these days. Just follow these easy steps* and you too will be on your way to fame and fortune:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Think of &lt;strong&gt;one&lt;/strong&gt; function that doesn&amp;#8217;t already have a web interface. Anything. How about a web inventory of your socks?&lt;/li&gt;
	&lt;li&gt;Register a hip &lt;a href="http://en.wikipedia.org/wiki/List_of_Internet_TLDs"&gt;ccTLD&lt;/a&gt; from another country in combination with a subdomain. http://m.ysock.it, for instance?&lt;/li&gt;
	&lt;li&gt;Write your app using Ruby on Rails&lt;/li&gt;
	&lt;li&gt;Have a clean, efficient design, don&amp;#8217;t forget huge text input boxes&lt;/li&gt;
	&lt;li&gt;Don&amp;#8217;t forget Ajax! You&amp;#8217;ll need lots of script.aculo.us effects all over. Drag and drop icons of socks to a laundry bin perhaps?&lt;/li&gt;
	&lt;li&gt;Weeks, nay, months before your app launches, offer a teaser page that allows folks to enter their e-mail address to be notified when the app launches. Don&amp;#8217;t forget to remind them that you won&amp;#8217;t tell their info, cause you&amp;#8217;re a nice company ;)&lt;/li&gt;
	&lt;li&gt;Weeks before your app ships, pick a few e-mails from the list and invite them to beta test. If they provide useful feedback, give them a discount when you launch&lt;/li&gt;
	&lt;li&gt;Offer a tiered subscription model, but it is imperative that the first tier be a free trial. For free you can track 20 socks (10 pair), but pay just $4 a month and track 100 socks (50 pair), $7 a month will let you inventory 1000 socks (500 pair)&amp;#8230; what a great value!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;*Dramatization: Individual results may vary.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/ABcwynn74qY" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Ajax on the Desktop</title>
   <link href="http://kevinmarsh.com/articles/2005/08/14/ajax-on-the-desktop.html" />
   <updated>2005-08-14T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/08/14/ajax-on-the-desktop</id>
   <content type="html">&lt;p&gt;Ajax is making great strides in bringing desktop-like, low latency apps to the browser. What if we take it all the way and bring Ajax to the desktop? Nay, &lt;em&gt;make it the desktop&lt;/em&gt;. The next logical step for Ajax, the Web, and computing is the so-called &amp;#8220;Web OS.&amp;#8221;&lt;/p&gt;
&lt;p&gt;The Web OS would be an extremely stripped down kernel (i.e., Linux) simply running a web browser (i.e., Firefox) in full screen mode.&lt;/p&gt;
&lt;p&gt;The traditional &amp;#8220;start page&amp;#8221; is becomes your desktop. The web page would be customized much like your Start or Apple menu to load pre-defined shortcuts (i.e., Webmail, or even another browser). You could even run things like word processors or &lt;a href="http://124.railsday.rufy.com/"&gt;spreadsheets&lt;/a&gt;, without the fear of being without your data when you travel.&lt;/p&gt;
&lt;p&gt;Think about it: all of your &amp;#8220;desktop&amp;#8217;s&amp;#8221; settings are stored on a central server (ahem, Google), making data accessible from anywhere. If you are using a machine without the OS, a web browser would suffice to access the same data in the same way (ala &lt;span class="caps"&gt;VNC&lt;/span&gt;.)&lt;/p&gt;
&lt;p&gt;From a development standpoint, it gets even better. You no longer have to worry about users performing (or not performing) software updates because updates to the code are seen in real time. Versions are thrown out the window because everyone is using the latest version (no more &amp;#8220;Have you updated to 2.0 yet?&amp;#8221;) Simple bug fixes can be performed with no hassle in shipping another product.&lt;/p&gt;
&lt;p&gt;So who wants to start?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10/2/2005: Update:&lt;/strong&gt; It&amp;#8217;s &lt;a href="http://www.eyeos.org/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Osn1x8oqR4w" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Don't Compare Ruby on Rails with PHP</title>
   <link href="http://kevinmarsh.com/articles/2005/08/03/don-t-compare-ruby-on-rails-with-php.html" />
   <updated>2005-08-03T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/08/03/don-t-compare-ruby-on-rails-with-php</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve made this mistake myself on many occasions but it recently dawned on me: comparing Ruby on Rails with &lt;span class="caps"&gt;PHP&lt;/span&gt; is impossible, because &lt;span class="caps"&gt;PHP&lt;/span&gt; is not an &lt;em&gt;application framework&lt;/em&gt; but a &lt;em&gt;scripting language&lt;/em&gt;. If you want to compare anything to &lt;span class="caps"&gt;PHP&lt;/span&gt;, compare it to Ruby.&lt;/p&gt;
&lt;p&gt;With Rails you have Active Record, Action View and all these other cool technologies and with &lt;span class="caps"&gt;PHP&lt;/span&gt; you have &lt;code&gt;mysql_connect()&lt;/code&gt; and &lt;code&gt;echo&lt;/code&gt;. With &lt;span class="caps"&gt;PHP&lt;/span&gt;, you have to write code for all the heavy lifting yourself. Rails does it for you.&lt;/p&gt;
&lt;p&gt;That was a big draw for me coming from &lt;span class="caps"&gt;PHP&lt;/span&gt; where for each app you have to write &lt;em&gt;another&lt;/em&gt; form-verification script or try to integrate a previous one with your new app. This stuff tends to get tedius after awhile and draws you away from more important stuff like, you know, UI design, usability, thinking about your data, and &lt;em&gt;actually creating the app&lt;/em&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/WBRSGKtIC9Y" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>On Presenting Software</title>
   <link href="http://kevinmarsh.com/articles/2005/07/29/on-presenting-software.html" />
   <updated>2005-07-29T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/07/29/on-presenting-software</id>
   <content type="html">&lt;p&gt;Today, I had my first &amp;#8216;Steve Jobs&amp;#8217; moment: I presented software I wrote to an actual audience, keynote-style, complete with water bottle (but sans black turtleneck.)&lt;/p&gt;
&lt;p&gt;It was an awesome experience and I learned a lot about presenting.&lt;/p&gt;
&lt;p&gt;You have to take a real sense of pride in your work when you present it, but not too much so you don&amp;#8217;t come off as being full of yourself.  It also takes a lot of faith working with a &lt;em&gt;live&lt;/em&gt; copy, hoping everything works as it should. But everything went smoothly and I think I impressed a few in the audience (one of which requested I present to a larger group soon.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/ULjyXUTLGLI" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Site Fixes</title>
   <link href="http://kevinmarsh.com/articles/2005/07/19/site-fixes.html" />
   <updated>2005-07-19T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/07/19/site-fixes</id>
   <content type="html">&lt;p&gt;Well, it&amp;#8217;s been a long time since I&amp;#8217;ve given this any attention. I finally fixed some nagging issues with this blog related to a Textpattern upgrade, so you can go back to viewing nothing (relatively) bug free. :x&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/0-9pF5NEbhg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Unix Geeks Wanted!</title>
   <link href="http://kevinmarsh.com/articles/2005/04/20/unix-geeks-wanted.html" />
   <updated>2005-04-20T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/04/20/unix-geeks-wanted</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m excited to announce I am starting a new project. It&amp;#8217;s still in the early phases but I need your help! If you would consider yourself a &amp;#8220;Unix-geek&amp;#8221; (this includes Mac OS X users) and would like to help beta test, please either comment here or &lt;a href="mailto:kevin@kevinmarsh.com"&gt;e-mail me&lt;/a&gt;.  Thanks.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/u8gJvOah7T8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Tiger: April 29th</title>
   <link href="http://kevinmarsh.com/articles/2005/04/12/tiger-april-29th.html" />
   <updated>2005-04-12T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/04/12/tiger-april-29th</id>
   <content type="html">&lt;p&gt;Apple officially announced Tiger&amp;#8217;s release date: April 29, 2005. Yay!&lt;/p&gt;
&lt;p&gt;They&amp;#8217;ve also updated their &lt;a href="http://www.apple.com/macosx/"&gt;Mac OS X&lt;/a&gt; page with spiffy Tiger graphics and content.&lt;/p&gt;
&lt;p&gt;From the &lt;a href="http://www.apple.com/macosx/newfeatures/newfeatures.html"&gt;new features&lt;/a&gt; page, things I&amp;#8217;m most looking forward to:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Spotlight (even across network shares!, &lt;span class="caps"&gt;CLI&lt;/span&gt; tools)&lt;/li&gt;
	&lt;li&gt;Dashboard&lt;/li&gt;
	&lt;li&gt;Quartz Composer&lt;/li&gt;
	&lt;li&gt;Xcode 2&lt;/li&gt;
	&lt;li&gt;Finder Slideshow (slideshows from selected images directly within Finder)&lt;/li&gt;
	&lt;li&gt;Smart Folders, Smart Contacts, Smart Mailboxes (Smart-anything, really)&lt;/li&gt;
	&lt;li&gt;Birthday Calendar&lt;/li&gt;
	&lt;li&gt;iChat (Buddy Groups, multiple accounts)&lt;/li&gt;
	&lt;li&gt;WebDAV improvements (Kerberos-enabled)&lt;/li&gt;
	&lt;li&gt;Preview (&lt;span class="caps"&gt;PDF&lt;/span&gt; forms, slideshow)&lt;/li&gt;
	&lt;li&gt;Quicktime 7&lt;/li&gt;
	&lt;li&gt;Safari &lt;span class="caps"&gt;RSS&lt;/span&gt; (&lt;span class="caps"&gt;RSS&lt;/span&gt; reader, web-page archiving, inline &lt;span class="caps"&gt;PDF&lt;/span&gt; viewing&lt;/li&gt;
	&lt;li&gt;Safe Launch (re-launch after a crash)&lt;/li&gt;
	&lt;li&gt;Automator&lt;/li&gt;
	&lt;li&gt;&lt;span class="caps"&gt;RSS&lt;/span&gt; Visualizer Screen Saver&lt;/li&gt;
	&lt;li&gt;New default desktop (looks very similiar to Panther&amp;#8217;s, which isn&amp;#8217;t all bad)&lt;/li&gt;
	&lt;li&gt;Access Control Lists (&lt;span class="caps"&gt;ACL&lt;/span&gt;)&lt;/li&gt;
	&lt;li&gt;Remappable Modifier Keys (&amp;#8220;Remap modifiers such as control and caps lock to be super elite.&amp;#8221;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short, a lot.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/fR-uu2POYN8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Rails Tip: Plan your Database</title>
   <link href="http://kevinmarsh.com/articles/2005/04/11/rails-tip-plan-your-database.html" />
   <updated>2005-04-11T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/04/11/rails-tip-plan-your-database</id>
   <content type="html">&lt;p&gt;This is probably obvious to most of you, but if you&amp;#8217;re coming from a &lt;span class="caps"&gt;PHP&lt;/span&gt; background to Rails, you probably don&amp;#8217;t know much about database structure (or think its something you can make up on the fly).&lt;/p&gt;
&lt;p&gt;With Rails, its extremely important to plan out your database structure before you start coding.  But the good thing about Rails is its language is simple to understand. &lt;code&gt;has_one&lt;/code&gt;, &lt;code&gt;belongs_to&lt;/code&gt; and such.&lt;/p&gt;
&lt;p&gt;Taking time to think about your data models will save you tons of time down the road.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/9hfn3XwcUpw" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>RubyOnRails</title>
   <link href="http://kevinmarsh.com/articles/2005/04/09/rubyonrails.html" />
   <updated>2005-04-09T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2005/04/09/rubyonrails</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve jumped on the RubyOnRails bandwagon by starting to write a simple app.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m just getting started, but it seems very nice thus far. It solves some of the problems (ok, not really problems&amp;#8230; pet peeves) I have with web development using &lt;span class="caps"&gt;PHP&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The big one is forms. They are essential to any web app and they are such a &lt;span class="caps"&gt;PITA&lt;/span&gt; to code properly. Especially validation. The great thing about Rails is this is all done for you, so setting up a validation rule in your data model scales all the way down to form submission.  Its smooth.&lt;/p&gt;
&lt;p&gt;Updates forthcoming.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/QTbHJtzDnt4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Frustration</title>
   <link href="http://kevinmarsh.com/articles/2005/03/16/frustration.html" />
   <updated>2005-03-16T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2005/03/16/frustration</id>
   <content type="html">&lt;p&gt;I don&amp;#8217;t know how all the beer-guzzling, pot-smoking frat boys do it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Bx1iNc0qu_g" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Free Cheat Sheets</title>
   <link href="http://kevinmarsh.com/articles/2005/02/01/free-cheat-sheets.html" />
   <updated>2005-02-01T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2005/02/01/free-cheat-sheets</id>
   <content type="html">&lt;p&gt;While searching for a good LaTeX cheat sheet I came across &lt;a href="http://www.stdout.org/~winston/latex/"&gt;this gem&lt;/a&gt; made in, you guessed it, LaTeX and available in &lt;span class="caps"&gt;PDF&lt;/span&gt; format.  It is 3-column, and meant to be printed double-sided.&lt;/p&gt;
&lt;p&gt;When I needed to make cheat sheets for my &lt;a href="pdf/cheat-sheet-physics.pdf"&gt;Physics&lt;/a&gt; and &lt;a href="pdf/cheat-sheet-algorithms.pdf"&gt;Algorithms&lt;/a&gt; exams, I used &lt;a href="http://www.stdout.org/~winston/latex/latexsheet.tex"&gt;Mr. Chang&amp;#8217;s LaTeX sourcecode&lt;/a&gt; with, what I think are pretty good results.&lt;/p&gt;
&lt;p&gt;Then I stumbled upon even more cheat sheets in a similar style, for topics varying from &lt;a href="http://www.cs.dal.ca/studentservices/refcards/cref.pdf"&gt;C&lt;/a&gt; to &lt;a href="http://tnerual.eriogerg.free.fr/vimqrc.pdf"&gt;Vim&lt;/a&gt; and even &lt;a href="http://www.stdout.org/~winston/latex/latexsheet.pdf"&gt;LaTeX&lt;/a&gt; itself.&lt;/p&gt;
&lt;p&gt;A great exercise in information density. I wish I had the time to do one of these for every course I take.  They&amp;#8217;re also a great alternative to the &lt;a href="http://www.barcharts.com/"&gt;expensive sheets&lt;/a&gt; you can find in your college&amp;#8217;s bookstore.&lt;/p&gt;
&lt;p&gt;In the spirit of open source, I plan to release the source to my humble cheat sheets and see what others can do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; After posting this, I discovered &lt;a href="http://refcards.com/"&gt;refcards.com&lt;/a&gt; and &lt;a href="http://www.digilife.be/quickreferences/quickrefs.htm"&gt;this site&lt;/a&gt;, two great resources for these so-called cheat sheets.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/n9_GZtN0ft8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Waiting for the Bus</title>
   <link href="http://kevinmarsh.com/articles/2005/01/24/waiting-for-the-bus.html" />
   <updated>2005-01-24T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2005/01/24/waiting-for-the-bus</id>
   <content type="html">&lt;p&gt;At 1:30, a half-an-hour before my circuits class starts at Nitschke Hall, I head over to the Student Union bus loop to catch the Blue Loop to Engineering as I&amp;#8217;ve done for the past two weeks now.  The wait is longer than normal, but I am marginally earlier.  Fifteen minutes later, no bus. The waiting area is filling up.  In The Waiting Line by Zero 7 plays on the iPod, how apropos.  Another 10 minutes passes.&lt;/p&gt;
&lt;p&gt;Now 1:55, five minutes before class, the bus arrives. I venture into the blistering cold to join the ranks waiting to board the bus. I&amp;#8217;m toward the end of the line and after a quick gauge of the line it appears as though I&amp;#8217;ll be lucky to get a seat.  The riders get off the bus and the line starts to move.&lt;/p&gt;
&lt;p&gt;The bus quickly fills and by the time I&amp;#8217;m on it, there are 5 or so people standing, holding onto the rails for stability.  I join them and find a spot to grip the bars.  The bus departs and I try hard to keep holding on and not hit anyone sitting around me.  How easy the ride seems for them.&lt;/p&gt;
&lt;p&gt;Several stops pass, the load getting smaller each time as people get off.  We get to the Transportation Center and everyone except for me gets off. I take a seat.&lt;/p&gt;
&lt;p&gt;The bus loops around the Transportation Center and instead of heading left for Nitschke, it turns right. Right back to the path we just traveled, back to the Student Union. Back to where I had been waiting to leave from.  2:05: I am late to class.&lt;/p&gt;
&lt;p&gt;2:15, the bus finally arrives back at the Union. I get up to leave, acknowledge the odd look from the driver who is wondering why I took a joyride around campus, and get off.  I forget about showing up late to class and just don&amp;#8217;t show up at all.&lt;/p&gt;
&lt;p&gt;Then it hits me. What if, after waiting all this time for the bus I was so sure was going where I wanted it to, doesn&amp;#8217;t?  Even worse, what if it just takes me back to where I started?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/agnAgSP68xU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Slacking</title>
   <link href="http://kevinmarsh.com/articles/2005/01/21/slacking.html" />
   <updated>2005-01-21T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2005/01/21/slacking</id>
   <content type="html">&lt;p&gt;Another year begins, and its been almost 2 months since this has been updated.  I&amp;#8217;m such a slacker.&lt;/p&gt;
&lt;p&gt;I guess I don&amp;#8217;t have anything interesting to say&amp;#8230; I don&amp;#8217;t want to bore you with self-serving &amp;#8220;I did this, then that, then this&amp;#8221;-type of thing so I&amp;#8217;ll let you take solitude in the quiet.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/w_awrpaQFdY" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Vim Tips</title>
   <link href="http://kevinmarsh.com/articles/2004/11/23/vim-tips.html" />
   <updated>2004-11-23T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/11/23/vim-tips</id>
   <content type="html">&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;kbd&gt;&lt;span class="caps"&gt;CTRL&lt;/span&gt;&lt;/kbd&gt; + &lt;kbd&gt;A&lt;/kbd&gt;&lt;/td&gt;
		&lt;td&gt;Increment number under cursor&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;kbd&gt;&lt;span class="caps"&gt;CTRL&lt;/span&gt;&lt;/kbd&gt; + &lt;kbd&gt;X&lt;/kbd&gt;&lt;/td&gt;
		&lt;td&gt;Decrement number under cursor&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;kbd&gt;&lt;span class="caps"&gt;CTRL&lt;/span&gt;&lt;/kbd&gt; + &lt;kbd&gt;Y&lt;/kbd&gt;&lt;/td&gt;
		&lt;td&gt;Duplicate character above cursor&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;kbd&gt;&lt;span class="caps"&gt;CTRL&lt;/span&gt;&lt;/kbd&gt; + &lt;kbd&gt;X&lt;/kbd&gt; &lt;kbd&gt;&lt;span class="caps"&gt;CTRL&lt;/span&gt;&lt;/kbd&gt; + &lt;kbd&gt;L&lt;/kbd&gt;&lt;/td&gt;
		&lt;td&gt;Complete line&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;kbd&gt;&amp;#39;&lt;/kbd&gt; &lt;kbd&gt;.&lt;/kbd&gt;&lt;/td&gt;
		&lt;td&gt;Jump to last modified line&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;kbd&gt;`&lt;/kbd&gt; &lt;kbd&gt;.&lt;/kbd&gt;&lt;/td&gt;
		&lt;td&gt;Jump to last modified character&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/dpHcGD88KPo" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Speeding up Textpattern
</title>
   <link href="http://kevinmarsh.com/articles/2004/11/17/speeding-up-textpattern.html" />
   <updated>2004-11-17T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/11/17/speeding-up-textpattern</id>
   <content type="html">&lt;p&gt;To speed up Textpattern&amp;#8217;s loading of pages, edit the file&lt;/p&gt;
&lt;p&gt;Replace:&lt;/p&gt;
&lt;pre&gt;$out['ip'] = @gethostbyaddr($_SERVER['REMOTE_ADDR']);&lt;/pre&gt;
&lt;p&gt;With:&lt;/p&gt;
&lt;pre&gt;$out['ip'] = ($_SERVER['REMOTE_ADDR']);&lt;/pre&gt;
&lt;p&gt;On line 18 of &lt;code&gt;textpattern/publish/log.php&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Log entries will only display an IP now, instead of a hostname. But if you use another package to generate statistics (i.e., Urchin on &lt;a href="http://www.textdrive.com"&gt;Textdrive&lt;/a&gt;) you can still view that information there.&lt;/p&gt;
&lt;p&gt;(This disables a &lt;span class="caps"&gt;DNS&lt;/span&gt; lookup for every IP that hits your site. Seems to work pretty well here&amp;#8230; pages load up much quicker, for me anyways.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/ZazgZXHsToA" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>SongMeanings Improvements</title>
   <link href="http://kevinmarsh.com/articles/2004/11/13/songmeanings-improvements.html" />
   <updated>2004-11-13T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/11/13/songmeanings-improvements</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m not sure how active &lt;a href="http://www.songmeanings.net/whoweare.php"&gt;the guys&lt;/a&gt; are with development, but now that &lt;a href="http://www.songmeanings.net"&gt;SongMeanings&lt;/a&gt; is back and (relatively) stable, I got to some solo-brainstorming about some things.  Mostly ideas of features, but also some improvements and suggestions.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;An open, &lt;span class="caps"&gt;XML&lt;/span&gt;-based &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;Artist/lyric recommendations&lt;/li&gt;
	&lt;li&gt;Collaborative discography&lt;/li&gt;
	&lt;li&gt;Better commenting
	&lt;ul&gt;
		&lt;li&gt;How useful is a page with 600 comments?&lt;/li&gt;
		&lt;li&gt;Separate &amp;#8216;meaning&amp;#8217;-comments from &amp;#8216;I like this song&amp;#8217;-comments&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;More schemes
	&lt;ul&gt;
		&lt;li&gt;Collaborative&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Push journals more&lt;/li&gt;
	&lt;li&gt;Clean URLs&lt;/li&gt;
	&lt;li&gt;Better user &amp;#8216;homepages&amp;#8217;
	&lt;ul&gt;
		&lt;li&gt;Incorporate journal&lt;/li&gt;
		&lt;li&gt;http://www.songmeanings.net/~username could work&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/IHP_Xi3zqn0" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Ben Folds</title>
   <link href="http://kevinmarsh.com/articles/2004/10/31/ben-folds.html" />
   <updated>2004-10-31T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/10/31/ben-folds</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m pretty excited to be going to see Ben Folds live, in concert, next Saturday.  Even though he&amp;#8217;ll be performing at &lt;a href="http://www.bgsu.edu"&gt;our rival&amp;#8217;s&lt;/a&gt; auditorium, it still should be a pretty good show.  This will only be the second concert I&amp;#8217;ve been to, and I couldn&amp;#8217;t think of anyone else I&amp;#8217;d rather see.&lt;/p&gt;
&lt;p&gt;Ben Folds is one of my favorite performers.  I think his lyrics are what draws me most to his music (and incidentally, is what led me to start &lt;a href="http://www.songmeanings.net"&gt;SongMeanings&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;Maybe after the show I can go talk to him, then mention SongMeanings.  Upon immediate recognition of the name, he will proceed to tell me that he is a big fan and regale me with tales of how SongMeanings inspired his solo-music career.&lt;/p&gt;
&lt;p&gt;OK, enough of the annoying fan-girl crap, already. ::faints::&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Ben hospitalized for respiratory infection. Show cancelled. Sucks.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/jVdM18xgo1s" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>FreeBSD r0x</title>
   <link href="http://kevinmarsh.com/articles/2004/10/20/freebsd-r0x.html" />
   <updated>2004-10-20T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/10/20/freebsd-r0x</id>
   <content type="html">&lt;p&gt;Coming from someone who runs a Debian &lt;span class="caps"&gt;GNU&lt;/span&gt;/Linux server at home: &amp;#8220;FreeBSD r0x!&amp;#8221;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m diving into the world of FreeBSD. I installed 5.2.1-&lt;span class="caps"&gt;RELEASE&lt;/span&gt; on an old Dell GX1 at work and am playing around configuring and whatnot.&lt;/p&gt;
&lt;p&gt;The concept of ports are pretty impressive, and they seem to work well. I am continually impressed at the ease-of-use of the system as a whole.&lt;/p&gt;
&lt;p&gt;(Going to be replacing that Debian install with a FreeBSD one soon.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/kzFeiHtOrB4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Why Less is More, and Simple is Complex (Draft)</title>
   <link href="http://kevinmarsh.com/articles/2004/09/29/why-less-is-more-and-simple-is-complex-draft.html" />
   <updated>2004-09-29T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/09/29/why-less-is-more-and-simple-is-complex-draft</id>
   <content type="html">&lt;p style="text-align:center;"&gt;&lt;em&gt;I&amp;#8217;ve been doing a bit of &amp;#8220;solo brainstorming&amp;#8221; about my philosophy/theory of minimalist web design.  It is by no means final and still has a lot of work to be done before it can be considered a final document. I just wanted to post it to see what people thought.&lt;/em&gt;&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;strong&gt;Why Less is More, and Simple is Complex&lt;/strong&gt;&lt;br /&gt;
a web development theory&lt;/p&gt;
&lt;p style="text-align:center;"&gt;by Kevin Marsh&lt;/p&gt;
&lt;p&gt;Abstract: Presenting content in a simple and elegant way is complex.&lt;/p&gt;
&lt;p&gt;Main Ideas:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The term &amp;#8220;web design&amp;#8221; is misleading. There are really more facets to producing an effective web site.&lt;/li&gt;
	&lt;li&gt;Two elements to web &amp;#8220;design&amp;#8221;: content and presentation (design).&lt;/li&gt;
	&lt;li&gt;Content and presentation as two separate entities are not necessarily difficult.&lt;/li&gt;
	&lt;li&gt;The fusion of the two is more complicated than both combined.&lt;/li&gt;
	&lt;li&gt;When creating one or the other, they both must be kept in mind.&lt;/li&gt;
	&lt;li&gt;Presenting accessible (navigable) content without distraction is crucial.&lt;/li&gt;
	&lt;li&gt;Sometimes some of the most complex solutions are the easiest.&lt;/li&gt;
	&lt;li&gt;Presenting content in a simple, easy-to-understand way is complex.&lt;/li&gt;
	&lt;li&gt;A static web site presents content (content/presentation)&lt;/li&gt;
	&lt;li&gt;A dynamic web site presents content and provides interaction (content/presentation/logic)&lt;/li&gt;
	&lt;li&gt;Simple does not have to be boring.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Web Applications&lt;/strong&gt;&lt;br /&gt;
Content (text/images) &amp;#8211; database&lt;br /&gt;
Presentation (&lt;span class="caps"&gt;HTML&lt;/span&gt;, &lt;span class="caps"&gt;CSS&lt;/span&gt;)&lt;br /&gt;
Logic (&lt;span class="caps"&gt;PHP&lt;/span&gt;/Perl/&lt;span class="caps"&gt;ASP&lt;/span&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is Distracting? (a.k.a. Worst Practices or &amp;#8220;1999 Design&amp;#8221;)&lt;/strong&gt;&lt;br /&gt;
Large, superfluous images (i.e., animated GIFs of chrome @ signs)&lt;br /&gt;
Annoying tags (blink, marquee)&lt;br /&gt;
Too many colors&lt;br /&gt;
Slow-loading&lt;br /&gt;
Poor typography (i.e., too many different typefaces, unreadable typefaces, poor contrast)&lt;br /&gt;
Ungraceful degradation/browser bugs&lt;br /&gt;
Poor navigation&lt;br /&gt;
&amp;#8220;Messy&amp;#8221; URLs (i.e., http://www.example.com/pg.php?site=products&amp;amp;id=932433&amp;amp;=&amp;amp;=&amp;#8230;)&lt;br /&gt;
Proprietary plugins (Flash, Java&amp;#8230;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is Elegant? (a.k.a. Best Practices)&lt;/strong&gt;&lt;br /&gt;
Good typography (one or two readable fonts)&lt;br /&gt;
A few, solid (or gradient) colors that go well together&lt;br /&gt;
Straight-forward navigation&lt;br /&gt;
Quick-loading&lt;br /&gt;
Few (or no) images, efficiently compressed&lt;br /&gt;
Clean, semantic markup&lt;br /&gt;
Clean URLs (i.e., http://www.example.com/products/category/item)&lt;br /&gt;
No proprietary plugins (i.e., no Flash or Java)&lt;br /&gt;
Adheres and validates to web standards (&lt;span class="caps"&gt;XHTML&lt;/span&gt; and &lt;span class="caps"&gt;CSS&lt;/span&gt;)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/7MUXx1bTqzg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>FavoriteSearch</title>
   <link href="http://kevinmarsh.com/articles/2004/09/27/favoritesearch.html" />
   <updated>2004-09-27T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/09/27/favoritesearch</id>
   <content type="html">&lt;p&gt;A bookmark management service (ala &lt;a href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt;) meets a search engine (ala &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;) to form&amp;#8212;FavoriteSearch (name subject to change).&lt;/p&gt;
&lt;p&gt;Details forthcoming.  Beta testers inquire within.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/teHiNl3kzDM" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Odds and Ends</title>
   <link href="http://kevinmarsh.com/articles/2004/09/23/odds-and-ends.html" />
   <updated>2004-09-23T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/09/23/odds-and-ends</id>
   <content type="html">&lt;p&gt;In case you&amp;#8217;re interested, here&amp;#8217;s what I&amp;#8217;ve been up to for the past few weeks:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Learning Objective-C and Cocoa&lt;/li&gt;
	&lt;li&gt;Learning x86 Assembly language&lt;/li&gt;
	&lt;li&gt;Learning Ruby&lt;/li&gt;
	&lt;li&gt;Brushing up on my LaTeX skills&lt;/li&gt;
	&lt;li&gt;Doing Physics and Calculus homework&lt;/li&gt;
	&lt;li&gt;Learning more and more about Mac OS X every day&lt;/li&gt;
	&lt;li&gt;Learning about algorithms&lt;/li&gt;
	&lt;li&gt;Troubleshooting printer/Windows/user errors&lt;/li&gt;
	&lt;li&gt;Spending time with my lovely girlfriend. (I&amp;#8217;ve realized that I probably don&amp;#8217;t mention her much here, but I really should.  She is the most important thing in my life and she rarely gets a mention beside all the geekery here.)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/hEw678DbrMU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>SongMeanings is Back!</title>
   <link href="http://kevinmarsh.com/articles/2004/09/17/songmeanings-is-back.html" />
   <updated>2004-09-17T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/09/17/songmeanings-is-back</id>
   <content type="html">&lt;p&gt;In case you haven&amp;#8217;t heard (or seen), &lt;a href="http://www.songmeanings.net"&gt;SongMeanings&lt;/a&gt; is back up again.  Congrats to the team for getting it back up.  There are thousands of people (myself included) that are extremely grateful.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/6xE2-_XDlfg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Class, Gmail</title>
   <link href="http://kevinmarsh.com/articles/2004/09/04/class-gmail.html" />
   <updated>2004-09-04T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/09/04/class-gmail</id>
   <content type="html">&lt;p&gt;In between having Physics 5 days a week, doing Calculus homework, and fixing Macs on campus, I found 7 Gmail invitations in my Inbox.&lt;/p&gt;
&lt;p&gt;Does anyone even want any of these anymore?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/d9iZpFINt0I" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Fall Mac Imaging</title>
   <link href="http://kevinmarsh.com/articles/2004/08/19/fall-mac-imaging.html" />
   <updated>2004-08-19T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/08/19/fall-mac-imaging</id>
   <content type="html">&lt;p&gt;We are in the process of imaging the Macs at the University of Toledo&amp;#8217;s two open labs, comprising a total of 30 Apple (Quicksilver) G4&amp;#8217;s.&lt;/p&gt;
&lt;p&gt;The absence of a sufficient network requires us to visit each machine individually and boot from a Firewire hard drive (or iPod) containing a basic install of Mac OS X, &lt;a href="http://www.bombich.com/software/netrestore.html"&gt;NetRestore&lt;/a&gt;, and our image.  After the machine is imaged, NetRestore is setup to rename the machine, set the Open Firmware password, and finally reboot the machine from the freshly-imaged drive.&lt;/p&gt;
&lt;p&gt;We then have to perform some configuration manually.  The machine must be bound to the Active Directory and printers must be installed before it is ready to be used.  In total, each machine takes about 6-10 minutes.&lt;/p&gt;
&lt;p&gt;While this isn&amp;#8217;t much of a chore for the small amount of machines the University has, it would be nice to further automate the process to make deployment even easier: my goal is to use some shell-scripts, both home-brewed and from excellent resources like &lt;a href="http://www.macosxlabs.org"&gt;macosxlabs.org&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/UbtMs78ZT74" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Lack of Updates</title>
   <link href="http://kevinmarsh.com/articles/2004/08/11/lack-of-updates.html" />
   <updated>2004-08-11T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/08/11/lack-of-updates</id>
   <content type="html">&lt;p&gt;Wow, I haven&amp;#8217;t been blogging very frequently.  I&amp;#8217;ve been quite busy at work and at home and really don&amp;#8217;t have anything cool to talk about.&lt;/p&gt;
&lt;p&gt;However, I have done a couple geeky things of note lately:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Burned a Knoppix &lt;span class="caps"&gt;ISO&lt;/span&gt; image from my Linux box directly onto my iBook G4 wirelessly (aka directly to Toast, through 802.11b, without copying the &lt;span class="caps"&gt;ISO&lt;/span&gt; to the hard drive first) after I started downloading the &lt;span class="caps"&gt;ISO&lt;/span&gt; remotely earlier in the day&lt;/li&gt;
	&lt;li&gt;Without any broadband to speak of, I connected to the Internet using my T616 phone via &lt;span class="caps"&gt;GPRS&lt;/span&gt; using Bluetooth. I then preceded to &lt;span class="caps"&gt;SSH&lt;/span&gt; into my Linux box.  &lt;span class="caps"&gt;SSH&lt;/span&gt; over Bluetooth through &lt;span class="caps"&gt;GPRS&lt;/span&gt;&amp;#8212;nuthin&amp;#8217; but &amp;#8217;net.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&amp;#8217;s about it.  Oh, I&amp;#8217;m learning &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, too.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/RN2gBDcwwE4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Greatest Accomplishment?</title>
   <link href="http://kevinmarsh.com/articles/2004/08/05/greatest-accomplishment.html" />
   <updated>2004-08-05T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/08/05/greatest-accomplishment</id>
   <content type="html">&lt;p&gt;I feel SongMeanings has quite possibly been one of my greatest achievements technically.  It was a great idea at the right time, mixed with technology and design combined with a real following: it was successful and I learned a lot from it.&lt;/p&gt;
&lt;p&gt;But the sad thing is, in its current state I am almost ashamed of it.  I feel so frustrated that I can&amp;#8217;t tell people, &amp;#8220;Yeah, I&amp;#8217;m capable and can  do a lot, just check out SongMeanings.net!&amp;#8221;&lt;/p&gt;
&lt;p&gt;Well, I suppose I &lt;em&gt;could&lt;/em&gt; tell people that.  But they will think I am only skilled at writing &amp;#8220;We&amp;#8217;ll-be-back-real-soon-we-promise&amp;#8221; pages.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/ycvj1JcaqFc" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Knoppix STD Saves the Day!</title>
   <link href="http://kevinmarsh.com/articles/2004/07/14/knoppix-std-saves-the-day.html" />
   <updated>2004-07-14T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/07/14/knoppix-std-saves-the-day</id>
   <content type="html">&lt;p&gt;Our good friend, &lt;a href="http://www.knoppix-std.org/"&gt;Knoppix &lt;span class="caps"&gt;STD&lt;/span&gt;&lt;/a&gt; proved to be a great asset to any PC-troubleshooter&amp;#8217;s toolbox the other day.&lt;/p&gt;
&lt;p&gt;Jenn&amp;#8217;s aunt&amp;#8217;s Windows XP machine wouldn&amp;#8217;t boot to anything but a lovely BSoD with an UNMOUNTABLE_BOOT_VOLUME error and scores of numbers strewn about the screen.  I was worried a bit at first that the disk was corrupted and all the data was gone, because I had never seen this particular error before.&lt;/p&gt;
&lt;p&gt;Armed with my trusty Knoppix &lt;span class="caps"&gt;STD&lt;/span&gt; disk, I booted into Linux and first tried mounting the problem-drive to see just how bad the problem was.  It mounted, and all the files showed up with what seemed like no problem.  So I got to a Fluxbox shell, fired up Firefox, and &lt;a href="http://www.google.com/search?hl=en&amp;amp;amp;lr=&amp;amp;amp;ie=UTF-8&amp;amp;amp;q=%22UNMOUNTABLE_BOOT_VOLUME%22+XP&amp;amp;amp;btnG=Search"&gt;Googled the problem&lt;/a&gt; (hint: this means the network card was autodetected and &lt;span class="caps"&gt;DHCP&lt;/span&gt; got me on the router with nary-a-command).  I got to a &lt;a href="http://support.microsoft.com:80/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q297/1/85.asp&amp;amp;amp;NoWebContent=1&amp;amp;amp;NoWebContent=1"&gt;Microsoft page&lt;/a&gt; that offered a possible solution: boot from the XP disc, drop to the Recovery Console (by pressing &amp;#8216;R&amp;#8217;), run &lt;code&gt;chkdsk /r&lt;/code&gt;, and reboot.  I did so.  Lo-and-behold, the glorious (blech!) Windows XP boot screen came up and the system booted normally.&lt;/p&gt;
&lt;p&gt;OK, so maybe I owe some credit to the Windows XP disc but Knoppix certainly was useful!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/XjKpqoHiYUU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Cedar Point III</title>
   <link href="http://kevinmarsh.com/articles/2004/07/08/cedar-point-iii.html" />
   <updated>2004-07-08T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/07/08/cedar-point-iii</id>
   <content type="html">&lt;p&gt;Jenn, Fred, and I went to Cedar Point today.  It was fun as always&amp;#8230; we rode:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;White Water Landing&lt;/li&gt;
	&lt;li&gt;Millennium Force&lt;/li&gt;
	&lt;li&gt;Witches&amp;#8217; Wheel&lt;/li&gt;
	&lt;li&gt;Blue Streak&lt;/li&gt;
	&lt;li&gt;Giant Wheel&lt;/li&gt;
	&lt;li&gt;Magnum XL-200&lt;/li&gt;
	&lt;li&gt;Gemini&lt;/li&gt;
	&lt;li&gt;Raptor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We ate at Johnny Rocket&amp;#8217;s and had sundaes before we left, Mmmm!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/VWRp0p8Ono0" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>SongMeanings is Down</title>
   <link href="http://kevinmarsh.com/articles/2004/07/08/songmeanings-is-down.html" />
   <updated>2004-07-08T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/07/08/songmeanings-is-down</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m not sure why, or for how long, but &lt;a href="http://www.songmeanings.net"&gt;SongMeanings&lt;/a&gt; is indeed down and has been down for several days.  Apparently, a new link is being installed.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll keep this updated as/if/when I hear more.&lt;/p&gt;
&lt;p&gt;(This should provide an answer to the recent flood of traffic coming from &amp;#8220;SongMeanings&amp;#8221; Googlers.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/BDzjTYRjR6M" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Vacation</title>
   <link href="http://kevinmarsh.com/articles/2004/07/02/vacation.html" />
   <updated>2004-07-02T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/07/02/vacation</id>
   <content type="html">&lt;p&gt;Today I start my vacation, until Monday, July 12!  I&amp;#8217;m not sure how much I&amp;#8217;ll do, but time off should be good. I haven&amp;#8217;t taken more than a few days off since I started working in August of 2002.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;ll probably get wasted along with my Summer vacation.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/WBORuhwcBBQ" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Pieces</title>
   <link href="http://kevinmarsh.com/articles/2004/06/30/pieces.html" />
   <updated>2004-06-30T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/30/pieces</id>
   <content type="html">&lt;p&gt;There are tons of little things that don&amp;#8217;t currently have implementations or don&amp;#8217;t seem to have clean enough ones. I am toying around with solutions for:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Getting multiple POP3 accounts to aggregate to one &lt;span class="caps"&gt;IMAP&lt;/span&gt; account, with a folder for each account.&lt;/li&gt;
	&lt;li&gt;Filing/synchronizing/accessing bookmarks both remotely and on the client-side (I&amp;#8217;m thinking of doing a linkblog-type thing on kevinmarsh.com, then creating bookmarklets to &amp;#8216;bookmark&amp;#8217; to the remote server.)&lt;/li&gt;
	&lt;li&gt;Getting all my contacts and appointments in one place, easily accessible from anywhere, including iCal and Apple&amp;#8217;s Address Book as well as via the web&lt;/li&gt;
	&lt;li&gt;Music. I need my music accessible from anywhere. The iPod is a good start, but I should do something like &lt;code&gt;rsync&lt;/code&gt; my MP3s to my Linux box every night and setup some kind of streaming solution.  I also need to get tunes in my car somehow&amp;#8230;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;ll be working on these things, maybe, and posting solutions here.  If you have any ideas, please let me know.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/p9bxCgrSINs" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Giving Blood</title>
   <link href="http://kevinmarsh.com/articles/2004/06/29/giving-blood.html" />
   <updated>2004-06-29T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/29/giving-blood</id>
   <content type="html">&lt;p&gt;I headed over to the &lt;a href="http://www.redcross.org"&gt;Red Cross&lt;/a&gt; donor center this evening to give blood.  I&amp;#8217;ve never done it before, and wasn&amp;#8217;t quite sure what to expect, other than leaving with a pint or so less of my ever-so-vital, lifegiving, red fluid.&lt;/p&gt;
&lt;p&gt;I began by filling out a lengthly survey asking various personal questions like if I had done drugs, had sex for money, had anal sex within the last 7 years, lived in Africa, and so on. (Which of course I answered &amp;#8220;yes&amp;#8221; to). Then after a period of waiting, I got in the chair.  As soon as I sat down, I saw Jenn next to me getting poked with the needle and quickly after, streams of blood flowing into a clear plastic package.  I began to get a little nervous.&lt;/p&gt;
&lt;p&gt;One of the biggest mistakes I made was to watch them poke the needle in, which was a bit larger than I was used to.  It felt quite odd going in, but not especially painful.  As the blood began to run from my body, I was feeling fine.  But as more and more blood made the trip from my vains to the bag, I was feeling a bit lightheaded and warm.  My hand, trying to maintain grasp on a foam ball, was starting to become numb and the rest of my arm was quickly following.&lt;/p&gt;
&lt;p&gt;Apparently, I looked pale, because the nurse asked me if I was alright.  &amp;#8220;Do you feel like your about to pass out?&amp;#8221; She asked. &amp;#8220;I don&amp;#8217;t know, I&amp;#8217;ve never passed out before,&amp;#8221; I replied.  She took that as a yes, and after I said it I felt more and more like I might want to.  She layed me down, and put two cold towels on more forehead and neck, which felt great.&lt;/p&gt;
&lt;p&gt;Meanwhile, I was still continuing.  I started seeing things a little blurry, and heard the nurses talking about how I was almost done.  One of them came up and asked me if I was feeling okay, and if I wanted to switch to the other arm for the &amp;#8220;other three vials&amp;#8221;.  My thoughts at this time were mostly &amp;#8220;Heck no, just do it in the arm you already poked and get it over with&amp;#8221;.  So she did, and I was done.&lt;/p&gt;
&lt;p&gt;I laid in the chair for about 30-45 minutes, then when I felt strong enough to get up, I sat up and walked over to the &amp;#8220;canteen area&amp;#8221; and got a piece of apple pie and 7-Up.  I was beginning to feel a little more normal, and after about 10 minutes, we left.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not too sure if I&amp;#8217;d give blood again, but according to studies, every time you donate blood, you save three lives.  So think of it this way, every time you &lt;strong&gt;don&amp;#8217;t&lt;/strong&gt; give blood, you kill three people.  That&amp;#8217;s a pretty strong statement.  If I do decide do give again, I will definately eat something before hand to avoid my biggest mistake: not eating all day before I gave.&lt;/p&gt;
&lt;p&gt;On the positive side (or negative&amp;#8212;hah!), I&amp;#8217;ll soon get to find out what my blood type is!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/l0g64Y4uxUk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Mac OS X Tiger</title>
   <link href="http://kevinmarsh.com/articles/2004/06/28/mac-os-x-tiger.html" />
   <updated>2004-06-28T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/28/mac-os-x-tiger</id>
   <content type="html">&lt;p&gt;I love &lt;a href="http://www.apple.com"&gt;Apple&lt;/a&gt; as much as the next guy, but it seems to me that Apple&amp;#8217;s latest upgrade to OS X, &lt;a href="http://www.apple.com/macosx/tiger/"&gt;Tiger&lt;/a&gt;, isn&amp;#8217;t filled with as much innovation as we&amp;#8217;ve come to expect (especially since Apple was bashing Microsoft in banners posted throughout &lt;a href="http://developer.apple.com/wwdc/index.html"&gt;&lt;span class="caps"&gt;WWDC&lt;/span&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s new features basically copy some third-party utilities that have been around for awhile.  Granted, the implementation might be a little cleaner, since it is built into the OS (hello bloat!), but the actual ideas have been around awhile.&lt;/p&gt;
&lt;p&gt;Two of the greatest &amp;#8220;features&amp;#8221; in Tiger include:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.apple.com/macosx/tiger/spotlight.html"&gt;Spotlight&lt;/a&gt; a.k.a. &lt;a href="http://www.obdev.at/products/launchbar/"&gt;Launchbar&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.apple.com/macosx/tiger/dashboard.html"&gt;Dashboard&lt;/a&gt; a.k.a. &lt;a href="http://www.konfabulator.com/"&gt;Konfabulator&lt;/a&gt; (who takes a nice stab at Apple on their front page)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, XCode 2 looks good, and the &lt;span class="caps"&gt;RSS&lt;/span&gt; reader integration in Safari also looks pretty clean.&lt;/p&gt;
&lt;p&gt;I am also digging the refinements to the menu bar and classic &amp;#8216;Pinstripe&amp;#8217; &lt;span class="caps"&gt;GUI&lt;/span&gt; elements (not metal).  They look a bit more smooth.&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.apple.com/displays/"&gt;new displays&lt;/a&gt; look very nice, though.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/L0XFzVsRz08" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Cedar Point II</title>
   <link href="http://kevinmarsh.com/articles/2004/06/26/cedar-point-ii.html" />
   <updated>2004-06-26T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/26/cedar-point-ii</id>
   <content type="html">&lt;p&gt;Well, Jenn and I got another trip to Cedar Point under our belt, bringing the grand total to 2 for this season.&lt;/p&gt;
&lt;p&gt;We rode:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Gemini&lt;/li&gt;
	&lt;li&gt;Witches&amp;#8217; Wheel&lt;/li&gt;
	&lt;li&gt;Corkscrew&lt;/li&gt;
	&lt;li&gt;Sky Ride&lt;/li&gt;
	&lt;li&gt;Johnny Rocket&amp;#8217;s (lunch)&lt;/li&gt;
	&lt;li&gt;CP &amp;amp; LE Railroad&lt;/li&gt;
	&lt;li&gt;Antique Cars&lt;/li&gt;
	&lt;li&gt;Wave Swinger&lt;/li&gt;
	&lt;li&gt;CP &amp;amp; LE Railroad&lt;/li&gt;
	&lt;li&gt;Iron Dragon&lt;/li&gt;
	&lt;li&gt;Wicked Twister&lt;/li&gt;
	&lt;li&gt;Chaos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Compliments to &lt;a href="http://phpkittie.mindsay.com"&gt;Jenn&lt;/a&gt;, who did all the hard work of remembering what we rode in in what order we rode it.)&lt;/p&gt;
&lt;p&gt;I had a blast and I&amp;#8217;m pretty sure Jenn did too.  We will be going again the week of the fourth to further maximize our Season Passes&amp;#8217; value.  Yay!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Eq-1KXDXIF0" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>LSG</title>
   <link href="http://kevinmarsh.com/articles/2004/06/25/lsg.html" />
   <updated>2004-06-25T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/25/lsg</id>
   <content type="html">&lt;p&gt;I just finished my first full week working at UT&amp;#8217;s Lab Support Group.  So far, its a pretty good job.  The people are cool and knowledgable, and the position looks like it will be a good learning opportunity for me.&lt;/p&gt;
&lt;p&gt;I worked on creating images for the Universities&amp;#8217; 40-some G4&amp;#8217;s.  It was pretty routine stuff, but in the future I will be working on some user-management and deployment shell scripts.&lt;/p&gt;
&lt;p&gt;Next week I will work several full days, and then after my week vacation I will begin working 9-5, all week.&lt;/p&gt;
&lt;p&gt;Oh, I get a Faculty parking pass too!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/vgshX5RQhFI" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Things to Remember When Upgrading your Linux Kernel
</title>
   <link href="http://kevinmarsh.com/articles/2004/06/20/things-to-remember-when-upgrading-your-linux-kernel.html" />
   <updated>2004-06-20T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/20/things-to-remember-when-upgrading-your-linux-kernel</id>
   <content type="html">&lt;p&gt;I tried to upgrade the Linux kernel on my desktop Linux machine the other day to 2.6.7 (the &amp;#8220;latest-and-greatest&amp;#8221;).&lt;/p&gt;
&lt;p&gt;The operative word here being: &lt;em&gt;tried&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I used the &lt;code&gt;menuconfig&lt;/code&gt; utility to go through and select (what I thought were) the correct options.  And compiling (&lt;code&gt;make &amp;amp;&amp;amp; make install&lt;/code&gt;) went without a hitch.&lt;/p&gt;
&lt;p&gt;The kicker came when I tried to reboot the machine and boot into my shiny new kernel.  It wouldn&amp;#8217;t boot.&lt;/p&gt;
&lt;p&gt;It only got so far when it comes up with the message:&lt;/p&gt;
&lt;pre&gt;
UFS: Cannot open root device "303" or unknown-block(3,3)
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on unknown-block(3,3)
&lt;/pre&gt;
&lt;p&gt;Uh oh.&lt;/p&gt;
&lt;p&gt;Apparently, the problem stems from not building ext2 support (or whatever format your root partition is in) into the kernel (as a &amp;#8216;*&amp;#8217;, not a module &amp;#8216;M&amp;#8217;).  Even if you do compile ext2 support in as a module, it is never loaded because it needs the module to load it! (headache yet?)&lt;/p&gt;
&lt;p&gt;So, I have to make a Linux boot disk and try to boot from it, access my partition, reconfigure the kernel (this time making doubly sure ext2 is selected!), recompile, and reinstall.&lt;/p&gt;
&lt;p&gt;The Joys of Linux&amp;#8482;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/FPH2yqomKaE" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Promotions
</title>
   <link href="http://kevinmarsh.com/articles/2004/06/17/promotions.html" />
   <updated>2004-06-17T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/17/promotions</id>
   <content type="html">&lt;p&gt;I was just informed by the head of the Lab Support Group at UT that I will be starting a new position on Monday!  As it turns out, I will be the University&amp;#8217;s head Mac guy 35 hours a week.&lt;/p&gt;
&lt;p&gt;What does that mean?  It means no more computer-lab-sitting and more computer-fixing! Yay!&lt;/p&gt;
&lt;p&gt;Unfortunately, this also means I&amp;#8217;m going to scale back my hours at Savage Consulting quite a bit.  I feel bad doing so.  My boss assured me that I was an integral part of the operation and I have some fairly important duties here.  I have learned a lot at this job, and have been here awhile (I started at the start of my senior year of high school.)  But I feel I will be an overall better fit over at UT.&lt;/p&gt;
&lt;p&gt;I feel I&amp;#8217;ll be able to apply some of the things I know a bit more there.  They will need me to do all sorts of fun things like shell scripting and writing some AppleScript (among other things.)&lt;/p&gt;
&lt;p&gt;Am I up to the challenge?  I think so.  But only time will tell.  Reports from the front lines, as always, will be forthcoming.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/ZxFxghFcaTI" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Pretty Pictures</title>
   <link href="http://kevinmarsh.com/articles/2004/06/17/pretty-pictures.html" />
   <updated>2004-06-17T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/17/pretty-pictures</id>
   <content type="html">&lt;p&gt;Design and photography isn&amp;#8217;t a full-time gig for me by any means, but it is a hobby that lets me creatively express myself that I do enjoy.  I really wish I could do more designing and take more pictures, but the time isn&amp;#8217;t always there.&lt;/p&gt;
&lt;p&gt;However, I am announcing that some of the work I have done has been uploaded and is now available for your inspection.  There is a lot more where that came from, it just takes awhile to prepare it for the web.  The work that is here is separated into two sections: the &lt;a href="/portfolio"&gt;portfolio&lt;/a&gt; (design) and the &lt;a href="/gallery"&gt;gallery&lt;/a&gt; (photography).&lt;/p&gt;
&lt;p&gt;The design work is mostly logos and web stuff.  The logos were created in Adobe Illustrator and Photoshop and the web stuff is all hand-rolled &lt;span class="caps"&gt;XHTML&lt;/span&gt; and &lt;span class="caps"&gt;CSS&lt;/span&gt;.  (No FrontPage here!)&lt;/p&gt;
&lt;p&gt;For the photos, I use a Sony Cybershot &lt;span class="caps"&gt;DSC&lt;/span&gt;-S30.  On my wish list is a nice, prosumer digital &lt;span class="caps"&gt;SLR&lt;/span&gt;&amp;#8212;If I could ever afford it.&lt;/p&gt;
&lt;p&gt;I am still trying to come up with a better solution for the gallery.  The current method is clunky, at best, as it doesn&amp;#8217;t offer thumbnails.  I need to whip up a nice script with ImageMagick&amp;#8217;s &lt;code&gt;convert&lt;/code&gt; utility to automatically generate thumbnails and lay them out on the page, along with a link to the full version (possibly in a popup window).  But I wanted to get some stuff up as soon as possible.&lt;/p&gt;
&lt;p&gt;Nevertheless, I hope you enjoy my work.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/aZM-R02GGsA" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>E-mail addresses</title>
   <link href="http://kevinmarsh.com/articles/2004/06/15/e-mail-addresses.html" />
   <updated>2004-06-15T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/15/e-mail-addresses</id>
   <content type="html">&lt;p&gt;Commonly you know someone&amp;#8217;s name and company they work at, but don&amp;#8217;t know their e-mail address.  Sometimes if you know other e-mail addresses within the company you can decipher their particular naming scheme (i.e., firstlast@company.com, flast@company.com, etc.)&lt;/p&gt;
&lt;p&gt;It should be possible to send an email to simply: &amp;#8220;joe shmoe&amp;#8221;@company.com and have the &lt;span class="caps"&gt;MTA&lt;/span&gt; automatically forward it to Joe using an internal corporate database.&lt;/p&gt;
&lt;p&gt;Of course, spaces and quotes are not valid for e-mail addresses.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/wuhw3Es0yB4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Cool Thing to Do With A Linux Box I - Text-Based Games
</title>
   <link href="http://kevinmarsh.com/articles/2004/06/14/cool-thing-to-do-with-a-linux-box-i-text-based-games.html" />
   <updated>2004-06-14T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/14/cool-thing-to-do-with-a-linux-box-i-text-based-games</id>
   <content type="html">&lt;p&gt;To play some old-fashioned (but fun!) text-based adventure (or &amp;#8220;interactive fiction&amp;#8221;) games, use &lt;a href="http://www.cs.csubak.edu/~dgriffi/proj/frotz/"&gt;Frotz&lt;/a&gt; and grab some old data files from your favorite games.  My favorite is the &lt;a href="http://www.infocom-if.org/downloads/downloads.html"&gt;Zork series&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you aren&amp;#8217;t sure what a text-based adventure game is, or why you&amp;#8217;d want to play one, check out the &lt;a href="http://www.tads.org/if.htm"&gt;Brief Introduction to Interactive Fiction&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installing Frotz&lt;/strong&gt;&lt;br /&gt;
To install Frotz, simply download the .tar.gz file to your linux box (perhaps using &lt;code&gt;wget&lt;/code&gt;), issue the command &lt;code&gt;tar -zxvf [name of frotz].tar.gz&lt;/code&gt; then run &lt;code&gt;make&lt;/code&gt;, then &lt;code&gt;make install&lt;/code&gt; as root.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Running Frotz&lt;/strong&gt;&lt;br /&gt;
To play Frotz after it has been installed, use the command &lt;code&gt;frotz&lt;/code&gt; then the name of the image (i.e., &lt;code&gt;frotz /etc/games/zork/zork1.dat&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;To save the progress of your game, type &lt;code&gt;save&lt;/code&gt; while running the game.  It will ask for a filename.  You can then load the save-state later by using the &lt;code&gt;restore&lt;/code&gt; command.&lt;/p&gt;
&lt;p&gt;Hours of console-based fun&amp;#8212;but watch out for the grues!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/PQR5RT46B0w" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Weekend</title>
   <link href="http://kevinmarsh.com/articles/2004/06/13/weekend.html" />
   <updated>2004-06-13T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/13/weekend</id>
   <content type="html">&lt;p&gt;Wow, what a busy weekend.&lt;/p&gt;
&lt;p&gt;Jenn was dog/housesitting for her co-worker so I spent some time over there.  It was nice to get away for a little while.  We watched &lt;a href="http://imdb.com/title/tt0348836/"&gt;Gothika&lt;/a&gt; and &lt;a href="http://imdb.com/title/tt0125439/"&gt;Notting Hill&lt;/a&gt; which actually was pretty good.&lt;/p&gt;
&lt;p&gt;Then on Sunday we went to church, had dinner, went to my house, and then back to church.  A &lt;a href="http://www.bbfimissions.com/"&gt;missionary&lt;/a&gt; from Kenya spoke at the morning service, and one from Mexico spoke at the evening service.  It was quite interesting hearing about the adventures a missionary faces in &amp;#8220;the field.&amp;#8221;&lt;/p&gt;
&lt;p&gt;After church, we went to El Camino Real.  It was the first time I&amp;#8217;d ever been there.  I got the Taco Salad, and it was good, but after seeing the fajitas I wish I would&amp;#8217;ve gotten them.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll be at Scott Park from 8:30am &amp;#8211; noon tomorrow and then at Savage Consulting until 5pm.&lt;/p&gt;
&lt;p&gt;Who said summers are for relaxing?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/B7n7eVJBPGg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Gmail Invites</title>
   <link href="http://kevinmarsh.com/articles/2004/06/08/gmail-invites.html" />
   <updated>2004-06-08T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/08/gmail-invites</id>
   <content type="html">&lt;p&gt;Well, well, well.  It finally comes around for a begger like myself.  I&amp;#8217;ve had Gmail for about a month now and I was just notified that I have three &amp;#8212; count &amp;#8217;em &amp;#8212; three invitations to send to people! yay!&lt;/p&gt;
&lt;p&gt;The first one went to my lovely girlfriend, Jennifer (of course), but that leaves two up for grabs.&lt;/p&gt;
&lt;p&gt;Does anyone even want these things anymore?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/9vjkc47Ssic" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Back!</title>
   <link href="http://kevinmarsh.com/articles/2004/06/07/back.html" />
   <updated>2004-06-07T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/07/back</id>
   <content type="html">&lt;p&gt;Well, after what I think should be the last period of downtime, KevinMarsh.com is up and running again.  I have finally gotten most of the issues with the new TextDrive service ironed out and things appear to be running smoothly.&lt;/p&gt;
&lt;p&gt;Thanks to Dean and Jason for providing all the VC200, me included, with such a wonderful experience (even if it did take awhile. &amp;#60;g&amp;#62;)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/PjRfuZUlzUg" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Cedar Point I</title>
   <link href="http://kevinmarsh.com/articles/2004/06/05/cedar-point-i.html" />
   <updated>2004-06-05T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/06/05/cedar-point-i</id>
   <content type="html">&lt;p&gt;Our first trip to Cedar Point for the season was today.  Jenn and I rode:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Gemini&lt;/li&gt;
	&lt;li&gt;Snake River Falls&lt;/li&gt;
	&lt;li&gt;Wave Swinger&lt;/li&gt;
	&lt;li&gt;White Water Landing&lt;/li&gt;
	&lt;li&gt;Thunder Canyon&lt;/li&gt;
	&lt;li&gt;Mine Ride (which got stuck on the 2nd hill)&lt;/li&gt;
	&lt;li&gt;Iron Dragon&lt;/li&gt;
	&lt;li&gt;Disaster Transport&lt;/li&gt;
	&lt;li&gt;Space Spiral&lt;/li&gt;
	&lt;li&gt;Cedar Downs&lt;/li&gt;
	&lt;li&gt;Ocean Motion&lt;/li&gt;
	&lt;li&gt;Midway Carousel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Seeing as how we just got our season passes today as well, there will be many more trips to come!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Cp3qJ65oKUk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Computer Lab Attendent Kevin</title>
   <link href="http://kevinmarsh.com/articles/2004/05/30/computer-lab-attendent-kevin.html" />
   <updated>2004-05-30T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/30/computer-lab-attendent-kevin</id>
   <content type="html">&lt;p&gt;Today was my first official day of my new job at &lt;a href="http://www.utoledo.edu--Computer"&gt;The University of Toledo&lt;/a&gt; Lab Attendent for the &lt;a href="http://www.eit.utoledo.edu/"&gt;&lt;span class="caps"&gt;EIT&lt;/span&gt;&lt;/a&gt; department.&lt;/p&gt;
&lt;p&gt;I was scheduled from 3 &amp;#8212; 5pm in Carlson Library Lab B2.  Yes, 2 hours is pretty pointless and a waste of gas, but with &lt;a href="http://www.toledogasprices.com/"&gt;gas as low as $1.859&lt;/a&gt;, why not?&lt;/p&gt;
&lt;p&gt;Anyways, I was ready for duty, but unfortunately duty was not ready for me.  I didn&amp;#8217;t have login information for EIT&amp;#8217;s &amp;#8220;Headcount&amp;#8221; system, so I wasn&amp;#8217;t able to &amp;#8220;clock-in&amp;#8221; and &amp;#8220;clock out&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I met a fellow lab attendent, who was on duty the same time I was, and her brother.  They were very nice in showing me some of the things I had to do, and some of the experiences they&amp;#8217;ve had.  It seems as though people can get pretty beligerent, like when they are asked to put away their beverages or when Word crashes and their work is lost.  Something to look forward to.&lt;/p&gt;
&lt;p&gt;I only ended up doing two major things in my 2 hour shift, which should net me around $9, after taxes:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Refilling a ream of paper in the laser printer, and&lt;/li&gt;
	&lt;li&gt;Calling &amp;#8220;This lab closes in fifteen minutes&amp;#8221; at 4:45pm&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I never thought I&amp;#8217;d work in a technical support position but this is really just a springboard to the Lab Support position I interviewed for earlier: they require experience on the front lines.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/G6C0n0tZlp4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Preparing for Cedar Point...</title>
   <link href="http://kevinmarsh.com/articles/2004/05/30/preparing-for-cedar-point.html" />
   <updated>2004-05-30T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/30/preparing-for-cedar-point</id>
   <content type="html">&lt;p&gt;Well, the summer is here and most (Northern) Ohioian&amp;#8217;s minds turn to thoughts of &lt;a href="http://www.cedarpoint.com"&gt;Cedar Point&lt;/a&gt;.  I am no exception, I am really looking forward to going this year, as I wasn&amp;#8217;t able to make it last summer.&lt;/p&gt;
&lt;p&gt;Anticipating going at least 3 &amp;#8211; 4 times this year, Jennifer and I splurged and bought two season passes tonight at &lt;a href="http://www.meijer.com"&gt;Meijer&lt;/a&gt;.  For $89 we get to go as many times as we want.  It may sound expensive, but considering tickets are normally $40/ea. going three times pays for them easily.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m excited!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/5VZvL2fgXDU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>RIP TechTV</title>
   <link href="http://kevinmarsh.com/articles/2004/05/28/rip-techtv.html" />
   <updated>2004-05-28T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/28/rip-techtv</id>
   <content type="html">&lt;p&gt;Well, the final nail in TechTV&amp;#8217;s coffin was driven in today, as TechTV and G4 offically merged to form G4techTV.  My DirecTV already shows Channel 354 as &amp;#8220;G4TV&amp;#8221; and the TechTV website, www.techtv.com, now redirects to g4techtv.com, the new network&amp;#8217;s &amp;#8220;official website&amp;#8221; (which is all G4-ish and shows no traces of the TechTV website&amp;#8217;s look).  Also, all the great content from the past years of The Screen Savers and Call For Help that lived on the web, is gone (except for in the Google cache.)&lt;/p&gt;
&lt;p&gt;As a long time fan of shows like The Screen Savers and Call For Help, and people like Leo Laporte, this is a pretty sad day.  The only remnants to survive the tragedy are The Screen Savers and while Patrick and Kevin are pretty great, they will probably not be around for much longer (they&amp;#8217;re already been fired.)&lt;/p&gt;
&lt;p&gt;I still remember TechTV back when it was called &lt;span class="caps"&gt;ZDTV&lt;/span&gt; and The Screen Savers were Leo Laporte and Kate Botello (I can still hear them chanting &amp;#8220;DirectTV Channel 273!&amp;#8221;) and there were shows like Internet Tonight and The Money Machine.&lt;/p&gt;
&lt;p&gt;Lets have a moment of silence for the once great network.  (Shuts off TV.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/L8GllgL2CmQ" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Updates</title>
   <link href="http://kevinmarsh.com/articles/2004/05/25/updates.html" />
   <updated>2004-05-25T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/25/updates</id>
   <content type="html">&lt;p&gt;Wow, a lot has been going on in regards to this site and I&amp;#8217;ve been so busy with them, I&amp;#8217;ve neglected to write an actual post about them.  I&amp;#8217;m sure you&amp;#8217;ve noticed the working links at the top and other things, keep your eyes open&amp;#8212;there will be more to come.  My head has been racing with neat things to put up here, I hope I can make it happen.&lt;/p&gt;
&lt;p&gt;I am quite excited about this whole blog thing, which is odd because of the numerous times I&amp;#8217;ve tried it, I never really was.  I think it&amp;#8217;s partly due to &lt;a href="http://www.textpattern.com"&gt;Textpattern&lt;/a&gt; and some extra free time I&amp;#8217;ve been ejoying.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m also proud to announce that I am one of the &lt;a href="http://forum.textpattern.com/viewtopic.php?id=1827"&gt;&amp;#8216;VC200&amp;#8217;&lt;/a&gt; member&amp;#8217;s that has invested in Textpattern (a great deal consisting of what is essentially top-notch hosting for life, for $200).&lt;/p&gt;
&lt;p&gt;So, on June 1st this site will be moving to a new space, off my Linux box and out of my attic.  I&amp;#8217;m going to miss doing it, it has been really fun keeping up the server.  I am planning on still using it for some things though, just not the main kevinmarsh.com page (that sound you just heard was the sigh of relief coming from Buckeye Cablesystem&amp;#8217;s &lt;span class="caps"&gt;NOC&lt;/span&gt;).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/UDBBBK2jvfk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Imports</title>
   <link href="http://kevinmarsh.com/articles/2004/05/24/imports.html" />
   <updated>2004-05-24T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/24/imports</id>
   <content type="html">&lt;p&gt;Most of the old content from KevinMarsh.com has been imported into Texpattern.  There are now a grand total of 23 entries here, including this one.  I really need to write more (frequently).&lt;/p&gt;
&lt;p&gt;The good thing about not updating your blog a lot is that importing is not such a chore.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/eju-QMMsEbI" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>I'm Back!</title>
   <link href="http://kevinmarsh.com/articles/2004/05/24/i-m-back.html" />
   <updated>2004-05-24T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/24/i-m-back</id>
   <content type="html">&lt;p&gt;After a short hiatus, KevinMarsh.com is back and better than ever!  I&amp;#8217;m now running the great &lt;a href="http://www.textpattern.com"&gt;TextPattern&lt;/a&gt; blog software.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m still adding some stuff and changing bits around, but I thought I&amp;#8217;d let my 2 fans continue to read the site while I do so. :)&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m still working on importing all my posts from my old system to the new one, so all the history may not be there (yet.)&lt;/p&gt;
&lt;p&gt;If you see any bugs, please drop me a line and let me know.  I am aware of the broken links at the top, however.  Thanks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Fixed some of the glaring bugs that I haven&amp;#8217;t been able to nail down, thanks to the &lt;code&gt;base&lt;/code&gt; tag and more!  Yay Permalinks!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/5bmpy2t8bdo" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Textpattern</title>
   <link href="http://kevinmarsh.com/articles/2004/05/20/textpattern.html" />
   <updated>2004-05-20T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/20/textpattern</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m working a little on getting &lt;a href="http://www.textpattern.com"&gt;TextPattern&lt;/a&gt; going.  Yeah, I know.  I was working on my own homebrewed &lt;span class="caps"&gt;PHP&lt;/span&gt; scripts but it just got so boring, cause I&amp;#8217;ve done it all about a million times.  And Dean has really done some great work here.  The whole system is really great.  MovableType, watch out!&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll keep you posted on the progress of the switch-over.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/tQDSLbNEua0" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Now With RSS!</title>
   <link href="http://kevinmarsh.com/articles/2004/05/19/now-with-rss.html" />
   <updated>2004-05-19T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/19/now-with-rss</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m glad to announce that KevinMarsh.com now offers an &lt;a href="http://www.kevinmarsh.com/index.xml"&gt;&lt;span class="caps"&gt;RSS&lt;/span&gt; feed&lt;/a&gt; of full blog posts.  The &lt;span class="caps"&gt;RSS&lt;/span&gt; feed is perfect for those users of &lt;a href="http://blogspace.com/rss/readers"&gt;great &lt;span class="caps"&gt;RSS&lt;/span&gt; readers&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/q7yCOk9hEr8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Grades</title>
   <link href="http://kevinmarsh.com/articles/2004/05/10/grades.html" />
   <updated>2004-05-10T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/10/grades</id>
   <content type="html">&lt;p&gt;I think there is a problem with my Discrete Math and Linear Data Structures grade.  It is way lower than I expected.  I got a perfect score on 3/4 projects, did reasonably well on the tests, and thought I did a good job on the final.  The professor has been quite distracted lately so I think a mistake might have been made.  I emailed him but it is really making me wonder about how I approach school (that coupled with a very low grade in Calculus).&lt;/p&gt;
&lt;p&gt;Next semester, I have to work about 5x as hard to bring my &lt;span class="caps"&gt;GPA&lt;/span&gt; up.  I also have to prove to myself, I think, that when I put my mind to it I can do well.  I think my biggest problem is procrastination.&lt;/p&gt;
&lt;p&gt;While it may seem like an excuse, working while going to school is extremely hard.  Too much time is demanded of the college student and working takes away valuable study time.  But what else can you do about it?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/HJjTTrEbXZ0" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Gmail!</title>
   <link href="http://kevinmarsh.com/articles/2004/05/07/gmail.html" />
   <updated>2004-05-07T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/07/gmail</id>
   <content type="html">&lt;p&gt;I am starting to think everyone in the world is not greedy and &lt;a href="http://search.ebay.com/gmail_W0QQfromZR8QQhtZ1QQsokeywordredirectZ1QQsosortpropertyZ1"&gt;looking to make a buck&lt;/a&gt;&amp;#8212;that there are actually &lt;a href="http://mikao.blogspot.com/"&gt;nice people&lt;/a&gt; around!&lt;/p&gt;
&lt;p&gt;Update: &lt;a href="mailto:kevin.marsh at gmail.com"&gt;kevin.marsh at gmail.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/qn9j84UgbAk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Summertime</title>
   <link href="http://kevinmarsh.com/articles/2004/05/07/summertime.html" />
   <updated>2004-05-07T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/07/summertime</id>
   <content type="html">&lt;p&gt;Well, exams are over and while I await the backlash of grades, I am thinking about what I&amp;#8217;m going to try to do/accomplish this summer.  I&amp;#8217;ll be working, of course, but I also want to try to do some other things, including:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Spend time with my &lt;a href="http://phpkittie.mindsay.com/"&gt;lovely girlfriend&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Clean up/organize my room&lt;/li&gt;
	&lt;li&gt;Read up/practice some programming stuff&lt;/li&gt;
	&lt;li&gt;Get outside more (bikeriding)&lt;/li&gt;
	&lt;li&gt;Take lots of pictures (see above)&lt;/li&gt;
	&lt;li&gt;Get motivated for a successful Fall semester&lt;/li&gt;
	&lt;li&gt;Brush up on things I probably &lt;em&gt;should&amp;#8217;ve&lt;/em&gt; learned this semester&lt;/li&gt;
	&lt;li&gt;Organize the files on my computers (both laptop and Linux box)&lt;/li&gt;
	&lt;li&gt;Work on this more (add portfolio, resume, archives, searching, and some other random features)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Tzik6R7C3Oc" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Gmail</title>
   <link href="http://kevinmarsh.com/articles/2004/05/05/gmail.html" />
   <updated>2004-05-05T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/05/05/gmail</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m really trying hard to get a &lt;a href="http://www.gmail.com"&gt;GMail&lt;/a&gt; account.  I got no love from Blogger (guess I&amp;#8217;m not &amp;#8220;active&amp;#8221; enough) and I tried contacting some people who were fresh out of invites.&lt;/p&gt;
&lt;p&gt;It looks so cool and I want it so bad.  :(&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/rHGLmNubsLA" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Dotgeek</title>
   <link href="http://kevinmarsh.com/articles/2004/04/26/dotgeek.html" />
   <updated>2004-04-26T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/04/26/dotgeek</id>
   <content type="html">&lt;p&gt;I signed up for an account over at &lt;a href="http://dotgeek.org"&gt;Dotgeek&lt;/a&gt;, they have free PHP5 hosting and PostgreSQL.  I&amp;#8217;m just using it to explore some of what is to come in &lt;span class="caps"&gt;PHP&lt;/span&gt;, but SQLite caught my attention.  It looks like a great addition for the small &lt;span class="caps"&gt;PHP&lt;/span&gt; site that needs some dynamic content (probably 75% of them) but doesn&amp;#8217;t need a full-blown database like MySQL.&lt;/p&gt;
&lt;p&gt;So check me out over at &lt;a href="http://kevin.dotgeek.org"&gt;kevin.dotgeek.org&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/j9dLUIc2J1M" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>How Does It Feel</title>
   <link href="http://kevinmarsh.com/articles/2004/04/13/how-does-it-feel.html" />
   <updated>2004-04-13T00:00:00-07:00</updated>
   <id>http://kevinmarsh.com/articles/2004/04/13/how-does-it-feel</id>
   <content type="html">&lt;p&gt;How does it feel to be pushed out of something you created, your vision, your &amp;#8220;baby?&amp;#8221;  Pretty awful.  But then again, when you never gave it the time it deserved who are you to complain?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/U0f_P3lM41g" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Project Stamina</title>
   <link href="http://kevinmarsh.com/articles/2004/03/30/project-stamina.html" />
   <updated>2004-03-30T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/03/30/project-stamina</id>
   <content type="html">&lt;p&gt;Whenever I start a new project, I am incredibly motivated.  I&amp;#8217;ll get so much done in so little time.  But then, after awhile, I start to get in a lull.  I won&amp;#8217;t feel like working on it at all.  I&amp;#8217;m not sure if I get bored with it so much as that I am burned out by all the work I did when I first started.  I think I should probably not work so hard at the beginning, and maintain focus throughout the project instead of working all at the beginning and giving up.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/wvUTDeooquc" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>C++ Perversion</title>
   <link href="http://kevinmarsh.com/articles/2004/03/23/c-perversion.html" />
   <updated>2004-03-23T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/03/23/c-perversion</id>
   <content type="html">&lt;p&gt;One time, in a EECS1530 lecture about classes and object-oriented programming in C++, Dr. Miller said this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8220;If I call foobar on you, I can access your private members.&amp;#8221;&lt;br /&gt;
-Dr. Lawrence Miller, University of Toledo&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/RPseswAK10I" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>You'll Think of Me</title>
   <link href="http://kevinmarsh.com/articles/2004/03/16/you-ll-think-of-me.html" />
   <updated>2004-03-16T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/03/16/you-ll-think-of-me</id>
   <content type="html">&lt;p&gt;I think the music director at 102.9 is out to get me.&lt;/p&gt;
&lt;p&gt;Driving home, they played the three songs that hit me most in a row and I realized something.  The only thing harder than trying to drive with her in the car and holding back tears is trying to drive home with tears flooding your eyes alone.&lt;/p&gt;
&lt;p&gt;But why would someone who was so struck&amp;#8212;tortured even&amp;#8212;by those three songs, play them over and over again when they finally do get home?  Love.&lt;/p&gt;
&lt;p&gt;It happens every time we&amp;#8217;re about to break up.  I&amp;#8217;ll think how much better things will be.  How much more time I&amp;#8217;ll have to concentrate on other things like school, work, and (selfishly) myself&amp;#8212;how much more I&amp;#8217;ll be able to do, how much more free time I&amp;#8217;ll have to do whatever I want, and so on.  But then, it&amp;#8217;ll hit me.  I&amp;#8217;ll &lt;strong&gt;lose her&lt;/strong&gt;.  And in a moment, all these concrete plans you had laid out for your free self are tossed into a mixer with those treasured memories you once shared.&lt;/p&gt;
&lt;p&gt;The thought of breaking up doesn&amp;#8217;t seem so bad when you&amp;#8217;re sitting alone, or talking on the phone, or online, or even with her in an argument or a time of particular stress.  It&amp;#8217;s when you look at her, and think of the pain you&amp;#8217;re causing her, that you crack.  And something inside your throat aches&amp;#8230; and the tears flow from your eyes.  You begin to see yourself as the big jackass she&amp;#8217;s seen you as for days.&lt;/p&gt;
&lt;p&gt;But we don&amp;#8217;t see eye to eye.  Is it just better to cut your losses and move on, no matter how hard that will be/already is?  Sometimes it seems like it can&amp;#8217;t be, and other times it seems so easy.&lt;/p&gt;
&lt;p&gt;(I know you&amp;#8217;ll probably read this. And maybe a part of me wishes you did. I just needed to say this, and not directly at you.)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/AtZtusPoaSU" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Frequency</title>
   <link href="http://kevinmarsh.com/articles/2004/03/01/frequency.html" />
   <updated>2004-03-01T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/03/01/frequency</id>
   <content type="html">&lt;p&gt;My girlfriend, Jenn, has informed me that the reason she doesn&amp;#8217;t visit more often is because I don&amp;#8217;t post enough.&lt;/p&gt;
&lt;p&gt;I try to post whenever possible, and whenever I have a brilliant thought, but it seems as though I have to try to post more.&lt;/p&gt;
&lt;p&gt;I will post at least once a day&amp;#8212;maybe even every few hours&amp;#8212;just for her.  I can&amp;#8217;t have her keep going to other blogs, can I?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/Ub_vx4Lo_i4" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Blog Cheating</title>
   <link href="http://kevinmarsh.com/articles/2004/03/01/blog-cheating.html" />
   <updated>2004-03-01T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/03/01/blog-cheating</id>
   <content type="html">&lt;p&gt;What does one do when their girlfriend visits &lt;a href="http://www.michaelschiano.com"&gt;some other guy&amp;#8217;s blog&lt;/a&gt; more then they visit their boyfriend&amp;#8217;s?&lt;/p&gt;
&lt;p&gt;They probably shouldn&amp;#8217;t link to it, for starters.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/b-4swgevw_8" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>40 GB</title>
   <link href="http://kevinmarsh.com/articles/2004/03/01/40-gb.html" />
   <updated>2004-03-01T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/03/01/40-gb</id>
   <content type="html">&lt;p&gt;Yay for 40gb hard drives for $20!&lt;/p&gt;
&lt;p&gt;Boo on old &lt;span class="caps"&gt;BIOS&lt;/span&gt; that don&amp;#8217;t see them, freeze up when trying to detect them, and make the user think they have a dead hard drive on their hands.&lt;/p&gt;
&lt;p&gt;Yay for &lt;span class="caps"&gt;BIOS&lt;/span&gt; flash updates!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/6vLU1QRvVkM" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Linux Box</title>
   <link href="http://kevinmarsh.com/articles/2004/02/23/linux-box.html" />
   <updated>2004-02-23T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/02/23/linux-box</id>
   <content type="html">&lt;p&gt;I recently got a Debian &lt;span class="caps"&gt;GNU&lt;/span&gt;/Linux box up, and connected to the Internet with my router (In fact, it&amp;#8217;s serving this!)  Anyways, when I started to put it together from some old spare parts, I was at a loss for what I&amp;#8217;d actually &lt;strong&gt;do&lt;/strong&gt; with it.  I&amp;#8217;ve had Linux boxes set up before but with no router, and therefore no Internet to them, they seemed worthless.&lt;/p&gt;
&lt;p&gt;Well, I&amp;#8217;ve compiled a list of things I&amp;#8217;ve been doing with my Linux box, currently (and uncreatively) named &lt;em&gt;linux&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Apache serving kevinmarsh.com (with Perl and &lt;span class="caps"&gt;PHP&lt;/span&gt;)&lt;/li&gt;
	&lt;li&gt;MySQL database server&lt;/li&gt;
	&lt;li&gt;&lt;span class="caps"&gt;SSHD&lt;/span&gt; for remote logins&lt;/li&gt;
	&lt;li&gt;MP3 Server (very limited until new hard drive is installed)&lt;/li&gt;
	&lt;li&gt;Alert Server (SMS&amp;#8217;s cell phone occasionally)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I still have a few more ideas for what I want to do with this thing, but I&amp;#8217;m waiting for my new hard drive to implement them.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/HVYh2JnqjLk" height="1" width="1"/&gt;</content>
 </entry>
 
 <entry>
   <title>Uptime</title>
   <link href="http://kevinmarsh.com/articles/2004/02/18/uptime.html" />
   <updated>2004-02-18T00:00:00-08:00</updated>
   <id>http://kevinmarsh.com/articles/2004/02/18/uptime</id>
   <content type="html">&lt;p&gt;To display how long your Linux box has been running, how much cpu is being used, and how many users are logged in, use the &lt;pre&gt;uptime&lt;/pre&gt; command.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/kevinmarsh/~4/ac-E_2YYzeg" height="1" width="1"/&gt;</content>
 </entry>
 
 
</feed>
