<?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" xml:lang="en-US">
  <id>tag:www.davesouth.org,2005:/topics/blog</id>
  <link rel="alternate" type="text/html" href="http://www.davesouth.org" />
  
  <title>Look South - Blog</title>
  <update>2011-12-08T15:00:00Z</update>
  <icon>http://www.davesouth.org/assets/looksouth/favicon-fcdd7b593f490b4c7eec1dec6c0c6e14.ico</icon>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/davesouth-blog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="davesouth-blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <id>tag:www.davesouth.org,2005:Story/4ee0e45ac29e068212000002</id>
    <published>2011-12-08T16:22:50Z</published>
    <updated>2011-12-08T15:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/tips-for-managing-your-money" />
    <title>Tips for managing your money</title>
    <content type="html">&lt;p&gt;Managing money is challenging and important. Banks and credit card companies earn their fortunes from people who don&amp;#8217;t understand where there money goes. Bank fees and high interest rates are much easier to avoid if you understand exactly where you are spending money. Here are some tips from hard won lessons in managing money.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/tips-for-managing-your-money" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4e97137ac29e06368d000002</id>
    <published>2011-10-13T16:36:10Z</published>
    <updated>2011-10-13T16:41:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/switching-from-gmail-and-mobileme-mashup-to-icloud-and-gmail-on-ios-5" />
    <title>Switching from Gmail and MobileMe mashup to iCloud and Gmail on iOS 5</title>
    <content type="html">&lt;p&gt;&lt;a href="http://www.davesouth.org/stories/switching-from-gmail-and-mobileme-mashup-to-icloud-and-gmail-on-ios-5"&gt;&lt;img align="right" alt="Image: Turn off systems labels (except Inbox) from ..." height="231" hspace="8" src="http://www.davesouth.org/vault/img/2011/11/12/4ebea51ac29e060aaa000003/small_labels.png" width="320" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;A month ago I received an email about my GmailMe mashup of Gmail and MobileMe. This is the set up I&amp;#8217;ve used for years to forward Gmail to my MobileMe account so it can handle IMAP duties. Apparently iOS 5 beta won&amp;#8217;t allow custom SMTP servers for outgoing mail. This letter spooked me into holding off migrating MobileMe to iCloud. After a lot of messing around I finalized a new set up to use iCloud services and use Gmail as a lightweight (yes, really lightweight) email service.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/switching-from-gmail-and-mobileme-mashup-to-icloud-and-gmail-on-ios-5" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4e210969c29e063772000003</id>
    <published>2011-07-16T03:45:45Z</published>
    <updated>2011-07-16T03:47:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/stop-guard-from-automatically-running-all-tests" />
    <title>Stop guard from automatically running all tests</title>
    <content type="html">&lt;p&gt;Ruby guard is an excellent replacement for ZenTest&amp;#8217;s autotest. Originally guard would not run all tests unless you told it to. I liked this behavior because it meant running just the test I&amp;#8217;m working on until I&amp;#8217;m ready to run the whole suite.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/stop-guard-from-automatically-running-all-tests" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004b2</id>
    <published>2010-07-15T17:19:03Z</published>
    <updated>2010-07-15T17:33:39Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/how-to-set-up-dnsmasq-on-snow-leopard-for-local-wildcard-domains" />
    <title>How to set up dnsmasq on Snow Leopard for local wildcard domains</title>
    <content type="html">&lt;p&gt;We had a working solution to use wildcard domains on the localhost. Using a proxy.pac file and a tiny rack application we could pass any domain into the development environment. It was working great, until we tried switching to Rails3 beta. Whenever we specified a non-standard local domain, the Rails router would strip the query string off the URL.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/how-to-set-up-dnsmasq-on-snow-leopard-for-local-wildcard-domains" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004b1</id>
    <published>2010-06-19T16:56:11Z</published>
    <updated>2010-06-19T16:57:37Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/create-a-textmate-application" />
    <title>Create a TextMate application</title>
    <content type="html">&lt;p&gt;To create an application where TextMate opens a directory as a project.  Create a simple Apple Script with one line:&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/create-a-textmate-application" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004b0</id>
    <published>2010-06-04T02:47:03Z</published>
    <updated>2010-06-04T03:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/rules-by-jim-lehrer-of-pbs-the-newshour" />
    <title>Rules by Jim Lehrer of PBS The NewsHour</title>
    <content type="html">&lt;p&gt;I found an article discussing Jim Lehrer&amp;#8217;s &amp;#8212; as in &lt;em&gt;The Newshour with Jim Lehrer&lt;/em&gt; &amp;#8212; rules for journalism. The PBS Column, &lt;a href="http://www.pbs.org/ombudsman/2009/12/lehrers_rules.html"&gt;Lehrer&amp;#8217;s Rules&lt;/a&gt; discusses the voracity of these rules in today&amp;#8217;s pile of mass media. It&amp;#8217;s good reading, but the best part are the rules themselves. Every journalist should study these rules.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/rules-by-jim-lehrer-of-pbs-the-newshour" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004af</id>
    <published>2010-06-02T07:05:40Z</published>
    <updated>2010-06-02T07:12:59Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/eliminate-subdomains-and-cnames-in-rails-development-1" />
    <title>Eliminate subdomains and CNAMEs in Rails development</title>
    <content type="html">&lt;p&gt;Having two methods of identifying the same edition on a CMS &amp;#8212; subdomains and CNAMEs &amp;#8212; is painful. Yet many websites have advocated this approach. Every request to the application requires multiple checks on the domain to correctly identify the edition. I believe this process developed from the difficulties of dealing with subdomains and domains in the development environment. Recently we found the answer that simplifies the whole system.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/eliminate-subdomains-and-cnames-in-rails-development-1" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004ae</id>
    <published>2010-06-02T05:29:35Z</published>
    <updated>2010-06-02T05:30:56Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/rack-customdomain-converts-cname-hosts-to-subdomains" />
    <title>Rack CustomDomain converts CNAME hosts to subdomains</title>
    <content type="html">&lt;p&gt;When we created our CMS we used tried-and-true subdomains to separate editions. &lt;a href="http://github.com/mbleigh/subdomain-fu"&gt;SubdomainFu&lt;/a&gt; handled the logic of separating editions and it was easy &amp;#8212; until we added custom domains. The standard method is to point &amp;#8212; via CNAME &amp;#8212; the custom domain (&lt;a href="http://www.davesouth.org"&gt;www.davesouth.org&lt;/a&gt;) to the subdomain (davesouth.example.com). Unfortunately the rails app can&amp;#8217;t use SubdomainFu routing.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/rack-customdomain-converts-cname-hosts-to-subdomains" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004ad</id>
    <published>2010-04-05T23:17:58Z</published>
    <updated>2010-04-05T23:21:36Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/subdomains-and-local-development-using-proxy-pac" />
    <title>Subdomains and local development using proxy.pac</title>
    <content type="html">&lt;p&gt;The NeolithicCMS we are writing separates editions by using subdomains. It works great in production. A single entry of *.neotrib.com in the DNS points all subdomains to the same server. But for local development we have to manually edit the /etc/hosts file for each subdomain. After adding a few editions it becomes a royal pain. Short of installing a DNS server, we needed a better solution.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/subdomains-and-local-development-using-proxy-pac" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004ac</id>
    <published>2010-03-26T21:08:01Z</published>
    <updated>2010-03-26T21:08:18Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/trying-to-connect-blog-facebook-twitter" />
    <title>Trying to connect Blog + Facebook + Twitter</title>
    <content type="html">&lt;p&gt;I&amp;#8217;ve had my blog linked to Facebook where it would import my blog posts as Notes. I&amp;#8217;m not a big fan of this. For one thing, it can&amp;#8217;t show all the photographs that I attach to blog posts — not that I&amp;#8217;ve been posting a lot, but still. I&amp;#8217;d rather have it post my blog post as a link with the title and abstract text and then link to the actual blog post.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/trying-to-connect-blog-facebook-twitter" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004ab</id>
    <published>2010-03-03T19:47:34Z</published>
    <updated>2010-03-03T19:48:07Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/finally-found-the-best-iphone-note-taking-application" />
    <title>Finally found the best iPhone note taking application</title>
    <content type="html">&lt;p&gt;The Notes app on the iPhone has a lot to be desired. My contacts, calendar and email seamlessly sync through the Internet via MobileMe. But not my notes. That requires a cable and manually syncing with iTunes. Oh, and forget about easy syncing between two computers because it won&amp;#8217;t happen.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/finally-found-the-best-iphone-note-taking-application" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004aa</id>
    <published>2010-02-25T23:44:11Z</published>
    <updated>2010-02-25T23:46:59Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/what-size-to-i-set-my-browser-for-web-design" />
    <title>What size to I set my browser for web design?</title>
    <content type="html">&lt;p&gt;The short answer &amp;#8212; 1000&amp;#215;600. The long answer. I recently reinstalled my computer and lost the settings in &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/60"&gt;Web Developer&lt;/a&gt; for the carefully crafted window resizing I use when developing websites. I had to go back and retrace my research. So this post is about &lt;strong&gt;writing down the result&lt;/strong&gt; so I won&amp;#8217;t forget again.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/what-size-to-i-set-my-browser-for-web-design" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a9</id>
    <published>2009-12-24T19:38:57Z</published>
    <updated>2009-12-24T19:40:54Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/speed-up-find-in-project-in-textmate" />
    <title>Speed up “Find in Project” in TextMate</title>
    <content type="html">&lt;p&gt;TextMate&amp;#8217;s very useful &amp;#8220;Find in Project&amp;#8221; is super slow for any decent Ruby on Rails application. The problem turns out to be very simple. TextMate searches the entire project tree including the &lt;em&gt;tmp&lt;/em&gt; and &lt;em&gt;log&lt;/em&gt; directories. It takes a lot of time to dig through those directories — especially the &lt;em&gt;log&lt;/em&gt; directory which can quickly become many megabytes in size. Not only that, rarely do we want &amp;#8220;Find in Project&amp;#8221; to return results from these directories. The solution is simple.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/speed-up-find-in-project-in-textmate" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a8</id>
    <published>2009-11-09T16:11:18Z</published>
    <updated>2009-11-09T16:14:31Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/tips-for-reporting-bored-meetings" />
    <title>Tips for reporting “bored” meetings</title>
    <content type="html">&lt;p&gt;Reporting a meeting has to be one of the most boring assignments a reporter will ever have. It&amp;#8217;s ironic because it&amp;#8217;s also one of the most important jobs, too. City councils, school boards, state legislatures, congress all make decisions that affect our lives and spend our — the people&amp;#8217;s — money. They make these decisions in meetings wrapped by agendas, filled with tedious procedure and painted in sermons of officialese. The reporter&amp;#8217;s job is to distill these official riddles into plain English that everyone can understand.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/tips-for-reporting-bored-meetings" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a7</id>
    <published>2009-10-20T20:21:53Z</published>
    <updated>2009-10-20T18:23:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/paperclip-upgrade-breaks-amazon-s3-upload-and-how-to-fix-it" />
    <title>Paperclip upgrade breaks Amazon S3 upload and how to fix it</title>
    <content type="html">&lt;p&gt;My content management system uses &lt;a href="http://www.thoughtbot.com/projects/paperclip/"&gt;Thoughbot&amp;#8217;s Paperclip&lt;/a&gt; gem to attach photographs to the stories. Photos are uploaded first to the local server. Then the server will later upload the photographs to Amazon S3. The process is transparent and silent — too silent it turned out.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/paperclip-upgrade-breaks-amazon-s3-upload-and-how-to-fix-it" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a6</id>
    <published>2009-10-10T20:38:40Z</published>
    <updated>2009-10-10T18:39:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/my-cancer" />
    <title>My Cancer</title>
    <content type="html">&lt;p&gt;Dr. Michael Callister finished a quick — yet surprisingly painful — exam, he pushed back the wheeled stool, peered up at me over his glasses and said, &amp;#8220;Dave, you have testicular cancer.&amp;#8221; My worst fear was realized. It was only the Saturday before when I noticed a difference — one side was harder than the other. Now it was Thursday, September 3 and my life has changed.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/my-cancer" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a5</id>
    <published>2009-07-05T02:28:33Z</published>
    <updated>2009-07-05T00:29:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/the-voices-in-my-head-speak-english" />
    <title>The voices in my head speak English</title>
    <content type="html">&lt;p&gt;I have two pet peeves about voicemail systems. Scratch that. I have about a hundred pet peeves but I just want to point out two. The first is why am I asked to press 1 for English and 2 for Spanish?&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/the-voices-in-my-head-speak-english" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a4</id>
    <published>2009-06-23T16:48:28Z</published>
    <updated>2009-06-23T16:50:16Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/the-absolute-failure-of-banner-advertising" />
    <title>The absolute failure of banner advertising</title>
    <content type="html">&lt;p&gt;Banner advertising is a complete failure. It is a paradox of diminishing returns that traps a web publisher into treading water — never making progress and always struggling to stay afloat. What&amp;#8217;s worse is how web publishers will flail around with &lt;a href="http://pcworld.about.com/od/adsvisitortracking/The-Top-10-Most-Annoying-Frus.htm"&gt;bad idea&lt;/a&gt; after &lt;a href="http://en.wikipedia.org/wiki/Pop-up"&gt;bad idea&lt;/a&gt; to get ahead. Yet these insane advertisements do more harm than good, cause readers to leave and sink the publisher even more. It&amp;#8217;s time to end the madness and recognize that the banner advertising model itself is broken.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/the-absolute-failure-of-banner-advertising" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a3</id>
    <published>2009-06-10T19:21:26Z</published>
    <updated>2009-06-10T19:52:19Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/manually-change-top-sites-in-safari-4" />
    <title>Manually change Top Sites in Safari 4</title>
    <content type="html">&lt;p&gt;&lt;a href="http://www.davesouth.org/stories/manually-change-top-sites-in-safari-4"&gt;&lt;img align="right" alt="Image: Safari 4 Top Sites -- The new ..." height="320" hspace="8" src="http://www.davesouth.org/vault/img/2011/05/10/4dc92bc5c29e068473000f6a/small_safari01.png" width="289" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In the Safari 4 beta, the only way to add websites to the Top Sites page was to visit the website a bunch of times until it showed up or you edited a configuration file by hand. It was frustrating because I&amp;#8217;d rather specify exactly what pages to show on Top Sites. I felt there had to be an easier way. With the final release of Safari 4, there is. Any website can be manually added to Top Sites. It&amp;#8217;s quick and easy.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/manually-change-top-sites-in-safari-4" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a2</id>
    <published>2009-06-09T17:30:37Z</published>
    <updated>2009-06-09T17:30:56Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/make-url-friendly-filenames-in-paperclip-attachments" />
    <title>Make URL friendly filenames in paperclip attachments</title>
    <content type="html">&lt;p&gt;We use &lt;a href="http://thoughtbot.com/"&gt;Thoughtbot&amp;#8217;s&lt;/a&gt; &lt;a href="http://www.thoughtbot.com/projects/paperclip"&gt;Paperclip&lt;/a&gt; gem to attach images and other media to our Ruby on Rails models. When we save documents to a model object, we wanted to make sure the filenames were URL friendly — lowercase with only letters, numbers or hyphens. Paperclip&amp;#8217;s processing chain makes it easy to insert this behavior before saving the file or running it through the thumbnail re-sizer.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/make-url-friendly-filenames-in-paperclip-attachments" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a1</id>
    <published>2009-06-02T22:57:09Z</published>
    <updated>2009-06-02T22:59:23Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/our-cover-is-blown" />
    <title>Our cover is blown</title>
    <content type="html">&lt;p&gt;For several years, Loy and I have worked under the company name of Apped Design. It was a cover name Loy came up with when we attended the first &lt;a href="http://mtnwestrubyconf.org/2007/"&gt;Mountain West Ruby Conference&lt;/a&gt; in 2007. The Neotribune was on the back burner and we were working on a couple of Ruby on Rails projects. We decided that it would be easier to go as independent consultants than try to explain a long, convoluted startup story no would be interested in anyway.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/our-cover-is-blown" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e0684730004a0</id>
    <published>2009-05-29T17:59:53Z</published>
    <updated>2009-05-29T18:07:35Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/newspapers-dont-get-it-online-users-already-pay-for-content" />
    <title>Newspapers don’t get it, online users already pay for content</title>
    <content type="html">&lt;p&gt;The newspaper industry is trying to build &lt;a href="http://www.niemanlab.org/2009/05/newspaper-execs-treading-carefully-on-antitrust-laws/"&gt;pay walls&lt;/a&gt; around their online content. The idea is that &lt;a href="http://www.guardian.co.uk/media/2009/may/11/rupert-murdoch-charging-online-news"&gt;readers need to pay for content&lt;/a&gt;. This is a big problem because newspaper executives don&amp;#8217;t understand how much their readers already pay to be online. In fact, they pay more than any newspaper subscription in history.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/newspapers-dont-get-it-online-users-already-pay-for-content" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e06847300049f</id>
    <published>2009-05-26T17:59:39Z</published>
    <updated>2009-05-26T18:25:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/finally-the-neotribune" />
    <title>Finally, the Neotribune</title>
    <content type="html">&lt;p&gt;It started as a lark and grew into a passion. Something that consumed my mind day and night. After years of tinkering and testing we figured out how to do it — how to deliver the news, without the paper.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/finally-the-neotribune" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e06847300049e</id>
    <published>2009-05-23T23:32:47Z</published>
    <updated>2009-05-23T23:34:38Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/newsprint-will-die" />
    <title>Newsprint will die</title>
    <content type="html">&lt;p&gt;An ad by the &lt;a href="http://www.naa.org"&gt;Newspaper Association of America&lt;/a&gt; states that &amp;#8220;No amount of effort from local bloggers, non-profit news entities or TV news sources could match the depth and breadth of newspaper-produced content.&amp;#8221; Wow! That&amp;#8217;s insulting. What&amp;#8217;s worse, it completely misunderstands what&amp;#8217;s happening to the newspaper industry and why the printed page is destined to fail.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/newsprint-will-die" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e06847300049d</id>
    <published>2009-05-18T19:18:51Z</published>
    <updated>2009-05-18T19:19:29Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/off-beat-reasons-to-save-newspapers" />
    <title>Off beat reasons to save newspapers</title>
    <content type="html">&lt;p&gt;A wonderful story about why we need to &lt;a href="http://www.boston.com/bostonglobe/magazine/articles/2009/05/17/save_the_presses/"&gt;Save The Presses!&lt;/a&gt; I think the best one is &amp;#8220;You can shed a tear right now for the iconic ransom note, with letters clipped from newspaper headlines. What&amp;#8217;s a kidnapper to do? Print out letters at home using different fonts and point sizes?&amp;#8221;&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/off-beat-reasons-to-save-newspapers" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e06847300049c</id>
    <published>2009-05-17T04:29:46Z</published>
    <updated>2008-08-21T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/gmailme-a-mashup-of-gmail-and-mobileme" />
    <title>GmailMe — A mashup of Gmail and MobileMe</title>
    <content type="html">&lt;p&gt;&lt;a href="http://www.davesouth.org/stories/gmailme-a-mashup-of-gmail-and-mobileme"&gt;&lt;img align="right" alt="Image: GmailMe Receive ..." height="320" hspace="8" src="http://www.davesouth.org/vault/img/2011/05/10/4dc92bc5c29e068473000f71/small_email-receive.jpg" width="234" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Managing email is a royal pain. Especially if you read email on more than one device. After buying iPhones last year, Mike and I worked up an &lt;a href="/stories/gmail-dotmac-iphone-mashup"&gt;excellent system&lt;/a&gt; of managing our email on the iPhone, computer and web.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/gmailme-a-mashup-of-gmail-and-mobileme" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e06847300049b</id>
    <published>2009-05-17T04:22:04Z</published>
    <updated>2008-04-14T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/test-spec-and-the-double-r" />
    <title>Test Spec and the Double-R</title>
    <content type="html">&lt;p&gt;Last year we did a project with substantial business logic requirements. The Rails testing framework saved us. We could create tests for all the different uses of the system and ensure that these rules were always followed. As wonderful as it was, there was a bitter aspect to Rails testing &amp;#8212; fixtures.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/test-spec-and-the-double-r" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e06847300049a</id>
    <published>2009-05-17T04:02:05Z</published>
    <updated>2008-03-27T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/install-ruby-on-rails-using-macports" />
    <title>Install Ruby on Rails using MacPorts</title>
    <content type="html">&lt;p&gt;There are several ways to set up a system for Ruby on Rails development. Leopard comes pre-installed with Ruby and Rails and is perfectly fine for most users. For me, however, I kept running into troubles. Trying to do a free standing install of graphic libraries (FreeImage or ImageMagick) proved too painful. I switched back to using MacPorts.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/install-ruby-on-rails-using-macports" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000499</id>
    <published>2009-05-17T03:30:59Z</published>
    <updated>2008-02-26T19:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/you-never-save-money-when-you-spend" />
    <title>You never save money when you spend</title>
    <content type="html">&lt;p&gt;I was sightseeing around San Francisco one very rainy day. It was 1990 and I wanted a CD player. I was also broke. CD players were still rather expensive. So I&amp;#8217;d been shopping around for a while. I knew the prices, but they were just barely out of my reach. So I was biding my time, checking every electronics store I saw.&lt;/p&gt;
&lt;p&gt;That day, as I wandered around downtown, I found a small shop at the base of a skyscraper. It had a window front on the street with electronics from top to bottom. Inside, it was packed. I&amp;#8217;ve never seen so many electronics in such a small space. It felt like a sardine can of circuits, chrome and black plastic.&lt;/p&gt;
&lt;p&gt;I made my way over to the CD players and found the exact portable CD player I wanted to buy.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/you-never-save-money-when-you-spend" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000498</id>
    <published>2009-05-17T03:22:27Z</published>
    <updated>2008-02-13T19:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/get-your-credit-report-every-four-months-for-free" />
    <title>Get your credit report every four months — for free</title>
    <content type="html">&lt;p&gt;Having a current copy of your credit record is vital to protect yourself from credit errors and identity theft. And, thanks to Congress, getting a copy is extremely easy. By law, everyone is allowed to download an annual copy of their report. But be warned. The website advertised on TV, freecreditreport.com, is &lt;strong&gt;not&lt;/strong&gt; the right place to go. It is a scam run by Experian to get people to sign up for an unnecessary yearly service. The correct website is &lt;a href="http://annualcreditreport.com"&gt;annualcreditreport.com&lt;/a&gt;.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/get-your-credit-report-every-four-months-for-free" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000497</id>
    <published>2009-05-17T03:19:14Z</published>
    <updated>2008-01-08T19:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/multiple-uploads-using-rails-swfupload-and-attachmentfu" />
    <title>Multiple uploads using Rails, SWFUpload and AttachmentFu</title>
    <content type="html">&lt;p&gt;&lt;em&gt;UPDATE: August 27, 2010. The SWFUpload.org website is clearly hacked and displaying spam entries all down the home page. The last beta was months ago with no apparent progress since then. Some users report being unable to upload files any more. I cannot recommend the project any more. We are evaluating &lt;a href="http://www.uploadify.com/"&gt;uploadify&lt;/a&gt; and &lt;a href="http://www.plupload.com/"&gt;plupload&lt;/a&gt;. Also, we no longer use AttachmentFu for new projects. I highly recommend &lt;a href="http://github.com/jnicklas/carrierwave"&gt;Carrierwave&lt;/a&gt; or &lt;a href="http://thoughtbot.com/community/"&gt;Paperclip&lt;/a&gt;.&lt;/em&gt;&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/multiple-uploads-using-rails-swfupload-and-attachmentfu" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000496</id>
    <published>2009-05-17T03:15:36Z</published>
    <updated>2007-11-06T19:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/dvorak-keyboard" />
    <title>Quit typing like a spider</title>
    <content type="html">&lt;p&gt;In 1994 I took a Sharpie and wrote out the alphabet on my computer keyboard. Then I took little pieces of clear tape and carefully covered each key to keep from rubbing off the newly written letters. Why would I do this? Because my hands were starting to hurt and I needed a better way to type. Dvorak was the key. Not the &lt;a href="http://www.pcmag.com/category2/0,1738,3574,00.asp"&gt;columnist&lt;/a&gt; but the researcher who created the &lt;a href="http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard"&gt;world&amp;#8217;s greatest keyboard layout&lt;/a&gt; &amp;#8212; &lt;a href="http://en.wikipedia.org/wiki/August_Dvorak"&gt;August Dvorak&lt;/a&gt;.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/dvorak-keyboard" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000495</id>
    <published>2009-05-17T03:10:47Z</published>
    <updated>2007-08-06T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/security-is-a-pain" />
    <title>Total Security is a Total Pain</title>
    <content type="html">&lt;p&gt;Security is a pain. Too much security gets in the way of productivity. Too little and the world owns your bank account. Finding the right balance is difficult. For me, securing my laptop has proven to be a challenge. Sure, I can lock it down so it requires a drop of blood every time I wake it up, but that&amp;#8217;s too painful (and I need the blood). So I found a decent balance that you may want to try.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/security-is-a-pain" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000494</id>
    <published>2009-05-17T03:02:58Z</published>
    <updated>2007-07-20T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/rag-fixes-garage-door" />
    <title>A Wet Rag Fixes The Garage Door</title>
    <content type="html">&lt;p&gt;Our garage door wouldn&amp;#8217;t close. We&amp;#8217;d hit the button, it would start closing, then stop, then roll the door back the little bit it had moved down, and the light on the opener would flash 10 times. I think it was trying to say something. After careful research over the next few weeks, a lot of thought, and a clean wet rag &amp;#8212; we fixed it.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/rag-fixes-garage-door" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000493</id>
    <published>2009-05-17T02:58:19Z</published>
    <updated>2007-07-10T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/gmail-dotmac-iphone-mashup" />
    <title>Gmail, .Mac Mashup for the iPhone</title>
    <content type="html">&lt;p&gt;The new iPhone has the best mail client I&amp;#8217;ve ever used on a smartphone. When I first got my iPhone, I immediately connected it to my Gmail account. Unfortunately, Gmail uses POP to download messages. It started sending every single message from my archive &amp;#8212; thousands of messages.&lt;/p&gt;
&lt;p&gt;What&amp;#8217;s worse is the lack of synchronization between my iPhone and the Mail program on my MacBook because of POP. If I delete a message on the iPhone, the message remains on Mail. I needed a better solution and it was Mike who came up with the answer. He suggested using .Mac and Gmail as a Mashup. Here is how it works for me.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/gmail-dotmac-iphone-mashup" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South and Mike South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000492</id>
    <published>2009-05-16T02:59:58Z</published>
    <updated>2007-06-25T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/conflict" />
    <title>Conflict</title>
    <content type="html">&lt;p&gt;Conflict. It is the heart and soul of reality television &amp;#8212; of all television, really. Without conflict there is no story, no ratings, and no show. Take &lt;em&gt;Survivor&lt;/em&gt; (please?). In real life, if 12 random strangers were stranded on a deserted island, would they plot against each other? I doubt it. They would need to learn to get along, to work together, or else they would die.&lt;/p&gt;
&lt;p&gt;To make a television show, you would need to find personalities that thrive on conflict, have extremely differing opinions, and then create an artificial situation where backstabbing is required to win. Now you have a prime-time show. That&amp;#8217;s what counts as good television in the 21st century.&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/conflict" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
  <entry>
    <id>tag:www.davesouth.org,2005:Story/4dc92b31c29e068473000491</id>
    <published>2009-05-16T02:55:29Z</published>
    <updated>2007-06-05T18:00:00Z</updated>
    <link rel="alternate" type="text/html" href="http://www.davesouth.org/stories/how-to-archive-a-gmail-account-using-thunderbird" />
    <title>How to archive a Gmail account using Thunderbird</title>
    <content type="html">&lt;p&gt;I never use the GMail web interface unless I&amp;#8217;m on the road. Instead I POP my email into my Apple Mail program. The downloaded email is not erased from GMail (like traditional POP servers). Instead it is stored in the &amp;#8220;All Mail&amp;#8221; archive along with all my sent messages, too. After a year and a half, I&amp;#8217;ve used 2600 MB of my 2800 MB email box (thank you Google).&amp;nbsp;&lt;span class="continued"&gt;(&lt;a href="http://www.davesouth.org/stories/how-to-archive-a-gmail-account-using-thunderbird" rel="nofollow"&gt;Continued…&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;</content>
    <author>
      <name>Dave South</name>
    </author>
  </entry>
</feed>
