<?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" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title type="text" xml:lang="en">Max Masnick ~ blog on public health and technology</title>
  
  <link type="text" href="http://www.maxmasnick.com/" rel="alternate" />
  <updated>2012-02-12T13:59:27-05:00</updated>
  <id>http://www.maxmasnick.com</id>
  <author>
    <name>Max Masnick</name>
  </author>
  <rights>Copyright (c) 2011, Max Masnick; all rights reserved.</rights>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/maxmasnick" /><feedburner:info uri="maxmasnick" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>maxmasnick</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
    <title>Stop the paranoia: it doesn't matter if Google reads our email
</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/nVZoeYhfSjU/" />
    <updated>2012-02-12T11:00:00-05:00</updated>
    <id>http://www.maxmasnick.com.com/2012/02/12/gmail_paranoia</id>
    <content type="html">
      &lt;p&gt;There&amp;#8217;s been some &lt;a href='http://www.winbeta.org/news/microsoft-makes-fun-google-gmail-man-video-again'&gt;recent&lt;/a&gt; &lt;a href='http://news.ycombinator.com/item?id=3581613'&gt;buzz&lt;/a&gt; about how it&amp;#8217;s bad that Google is &amp;#8220;reading&amp;#8221; the email of Gmail users. Google &lt;a href='http://support.google.com/mail/bin/answer.py?hl=en&amp;amp;answer=1304609'&gt;examines email algorithmically&lt;/a&gt; to power its targeted advertising in Gmail.&lt;/p&gt;

&lt;p&gt;This practice would be worth worrying about only if email was otherwise secure (it&amp;#8217;s not) and if it was likely to hurt users (it isn&amp;#8217;t). Ironically, switching away from Gmail could reduce, not enhance, email security.&lt;/p&gt;
&lt;div style='margin-top: 1em; text-align: center;'&gt;&lt;iframe frameborder='0' height='315' src='http://www.youtube.com/embed/TDbrX5U75dk' width='560'&gt; &lt;/iframe&gt;&lt;/div&gt;&lt;span class='small'&gt;
&lt;strong&gt;Microsoft pans Google for "reading" your email in this ad.&lt;/strong&gt; But does Hotmail/Office 365 offer the features that actually make email safe, like two-factor authentication?
&lt;/span&gt;
&lt;h2 id='secure_email_is_a_myth'&gt;Secure email is a myth&lt;/h2&gt;

&lt;p&gt;Email is simply not secure. Messages &lt;a href='http://luxsci.com/blog/the-case-for-email-security.html'&gt;are not secure in transit&lt;/a&gt;: the protocol used for sending email (&lt;a href='http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol'&gt;SMTP&lt;/a&gt;) does not require encrypted connections, so it could easily be intercepted by a third party as travels over the internet. You also have no guarantees about the security of a recipient&amp;#8217;s email client or server. A hacker could have surreptitious access to a recipient&amp;#8217;s inbox, or curious IT guy could be reading through email on the server.&lt;/p&gt;

&lt;p&gt;You also have no control over what someone does when they receive an email. One of the biggest realistic risks for email security is &lt;a href='http://gawker.com/5780335/how-to-recover-from-an-email-disaster'&gt;human error&lt;/a&gt;: accidentally sending or forwarding to the wrong person, inappropriately replying-all, etc. A sensitive email could be inadvertently left on the office printer.&lt;/p&gt;

&lt;p&gt;Given all these insecurities, Google&amp;#8217;s algorithmic email reading is the least of my concerns. I simply assume that any email I send could be read by a third party, and when I need to communicate about a sensitive topic, I pick up the phone.*&lt;/p&gt;

&lt;h2 id='focus_on_the_realistic_threats'&gt;Focus on the realistic threats&lt;/h2&gt;

&lt;p&gt;It&amp;#8217;s easy to see how a single email could fall into the wrong hands, but what&amp;#8217;s the most likely scenario for your entire email account being compromised? There are a bunch of plausible options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;a href='http://en.wikipedia.org/wiki/Sarah_Palin_email_hack'&gt;targeted attack on your account&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;A &lt;a href='http://en.wikipedia.org/wiki/Phishing'&gt;phishing scam&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;A stolen laptop.&lt;/li&gt;

&lt;li&gt;A massive security breach at your email provider.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Google becomes evil and steals all your email to do X&lt;/em&gt; is not on this list because it seems absurd by comparison. Google&amp;#8217;s business model relies on analyzing user data in order to target ads. It&amp;#8217;s in Google&amp;#8217;s best interest to maintain the trust of its users so they will keep giving Google their data.&lt;/p&gt;

&lt;p&gt;Also, I can&amp;#8217;t even think of what &lt;em&gt;X&lt;/em&gt; is &amp;#8211; what nefarious thing Google could do with my email that is in its interest &lt;em&gt;and&lt;/em&gt; that would cause me harm? Google&amp;#8217;s business model is not a &lt;a href='http://en.wikipedia.org/wiki/Zero_sum_game'&gt;zero sum game&lt;/a&gt;: they can use my data to target ads without hurting me. Contrast this to all the plausible scenarios above, where a malicious entity is trying to get access to email for personal gain (e.g. stealing from bank accounts or credit cards). That is a zero sum game.&lt;/p&gt;

&lt;p&gt;Google is actually probably one of the &lt;em&gt;most&lt;/em&gt; secure places to keep your email because it is in their best interest to keep your data safe, and they have tons of resources and good engineers to do this. They also provide tools like &lt;a href='http://googleblog.blogspot.com/2011/02/advanced-sign-in-security-for-your.html'&gt;two factor authentication&lt;/a&gt;, &lt;a href='http://support.google.com/mail/bin/answer.py?hl=en&amp;amp;answer=8155'&gt;default HTTPS access&lt;/a&gt;, and &lt;a href='http://billmullins.wordpress.com/2011/07/23/gmail-last-account-activity-monitors-suspicious-actions/'&gt;suspicious activity monitoring&lt;/a&gt; that make individual accounts more secure. Few, if any alternative providers offer all these features.&lt;/p&gt;

&lt;h2 id='paranoia_is_part_of_human_nature'&gt;Paranoia is part of human nature&lt;/h2&gt;

&lt;p&gt;Human brains &lt;a href='http://www.psychologytoday.com/blog/how-risky-is-it-really/201008/the-psychology-risk-perception-are-we-doomed-because-we-get-risk-0'&gt;are not wired to respond logically to risk&lt;/a&gt;. For example, we are often more concerned about low-risk, high-consequence risks than more common dangers. The classic example of this is &lt;a href='http://www.pbs.org/wgbh/nova/space/how-risky-is-flying.html'&gt;being afraid of airplanes but not being afraid of driving in a car&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Paranoia about Google turning evil and ruining its users lives by reading their email may be human nature, but the net result of worrying about this extremely unlikely (but admittedly very scary) scenario is probably &lt;em&gt;worse&lt;/em&gt; email security.&lt;/p&gt;

&lt;p&gt;Moving from Gmail to a different email service could result in your messages being stored on a less secure server with fewer security-related features. And the time spent getting your email set up on this new service would probably be better-spent mitigating more realistic dangers, like your laptop being stolen.&lt;/p&gt;

&lt;h2 id='never_use_gmailcom'&gt;Never use gmail.com&lt;/h2&gt;

&lt;p&gt;With that said, I think it&amp;#8217;s a bad idea to use a &lt;code&gt;@gmail.com&lt;/code&gt; address (or any other domain name you don&amp;#8217;t own). If Google &amp;#8211; or your email service of choice &amp;#8211; does turn evil or shuts down, at best you have to change your email address, and at worst they own a critical part of your online identity.&lt;/p&gt;

&lt;p&gt;&lt;a href='http://www.google.com/apps/intl/en/group/index.html'&gt;Google Apps&lt;/a&gt; is an easy, free way of using your own domain name with Gmail&amp;#8217;s interface. This makes switching to a new email provider transparent to the people you correspond with.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;* Phones aren't perfectly secure either, but I'd argue they are substantially more secure than email.&lt;/small&gt;&lt;/p&gt;
      
        &lt;p&gt;&lt;img src='http://www.maxmasnick.com/assets/images/hn.gif' alt='Hacker News logo' /&gt; Comment on this post at &lt;a href=''&gt;Hacker News&lt;/a&gt;.
      
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/nVZoeYhfSjU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2012/02/12/gmail_paranoia/</feedburner:origLink></entry>
  
  <entry>
    <title>Blogging with Jekyll + S3 + CloudFront
</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/N_WBHNZleKI/" />
    <updated>2012-01-21T18:35:32-05:00</updated>
    <id>http://www.maxmasnick.com.com/2012/01/21/jekyll_s3_cloudfront</id>
    <content type="html">
      &lt;p&gt;When I decided to power this blog with Jekyll, it took me a while to figure out a good way to host and configure it. I thought explaining my setup might be helpful for others who are getting started with Jekyll.&lt;/p&gt;

&lt;p&gt;If you have a blog but haven&amp;#8217;t heard of Jekyll, &lt;a href='http://jekyllrb.com'&gt;you should check it out&lt;/a&gt;. It&amp;#8217;s great for anyone who likes writing in the text editor of their choice instead of some web interface, wants to store their work in Dropbox or version control, and is comfortable running a few Terminal commands.&lt;/p&gt;

&lt;h2 id='why_s3'&gt;Why S3?&lt;/h2&gt;

&lt;p&gt;I initially started out hosting my blog on &lt;a href='http://pages.github.com/'&gt;GitHub Pages&lt;/a&gt;, which is a free service offered by GitHub for hosting a Jekyll blog stored in Git. The price is certainly right, but there were a couple problems.&lt;/p&gt;

&lt;p&gt;First, GitHub Pages experienced some downtime while I was setting up my blog, and I &lt;a href='/guides/bulletproof_your_blog'&gt;feel strongly about having good blog uptime&lt;/a&gt;. Second, if you don&amp;#8217;t have a paid GitHub account ($7/month+) the repository containing your blog is accessible to the world, including drafts and unpublished posts.&lt;/p&gt;

&lt;p&gt;An alternative is using &lt;a href='http://aws.amazon.com/s3/'&gt;Amazon S3&lt;/a&gt;, Amazon&amp;#8217;s cloud file storage service. Amazon lets you &lt;a href='http://aws.typepad.com/aws/2011/02/host-your-static-website-on-amazon-s3.html'&gt;host a static website on S3&lt;/a&gt; with your own domain name. You can also easily use &lt;a href='http://aws.amazon.com/cloudfront/'&gt;Amazon CloudFront&lt;/a&gt; with S3. CloudFront is a &lt;a href='http://en.wikipedia.org/wiki/Content_delivery_network'&gt;CDN&lt;/a&gt; (content distribution network) that serves your content from a worldwide server network and helps to make your website faster.&lt;/p&gt;

&lt;h2 id='setting_up_s3_and_cloudfront'&gt;Setting up S3 and CloudFront&lt;/h2&gt;

&lt;p&gt;If you&amp;#8217;ve never used Amazon Web Services before, it can be a little confusing to get started. First, you need to sign up for an &lt;a href='http://aws.amazon.com/'&gt;AWS&lt;/a&gt; account. When you have your account, log into the &lt;a href='https://console.aws.amazon.com/console/home'&gt;AWS Management Console&lt;/a&gt; and head to the S3 tab. Then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a bucket called &lt;code&gt;www.yourdomain.com&lt;/code&gt;. One minor downside to S3 is you can&amp;#8217;t use &lt;code&gt;yourdomain.com&lt;/code&gt; &amp;#8211; you have to use some subdomain like &lt;code&gt;www&lt;/code&gt; or &lt;code&gt;blog&lt;/code&gt;. I&amp;#8217;ll talk about this more below.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Under the properties for this bucket, you&amp;#8217;ll need to go to the Website tab, check the box to enable static web hosting, and set your index and error documents. Your index document should probably be &lt;code&gt;index.html&lt;/code&gt;. Your error document is another HTML page for file not found (404) errors.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;Make a note of your endpoint (mine is &lt;code&gt;http://www.maxmasnick.com.s3-website-us-east-1.amazonaws.com/&lt;/code&gt;). You&amp;#8217;ll need it below.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;On the permissions tab, create a bucket policy. You can &lt;a href='https://gist.github.com/1654182'&gt;copy mine&lt;/a&gt; and just change the bucket name.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can go ahead and enable CloudFront now too. Head over to the CloudFront tab, and create a new Distribution for the S3 bucket you just created. This will mirror your S3 bucket on CloudFront &amp;#8211; for example, &lt;a href='http://d2lazzs3blj336.cloudfront.net/index.html'&gt;http://d2lazzs3blj336.cloudfront.net/index.html&lt;/a&gt; shows the home page of my website exactly&amp;#42; as it appears on S3.&lt;/p&gt;

&lt;p&gt;&amp;#42; CloudFront will cache the contents of your S3 bucket for up to 24 hours. This cache is created from S3 the first time someone hits an asset under your CloudFront URL. This means that CloudFront won&amp;#8217;t necessarily reflect changes on S3 immediately. You can manually expire objects in CloudFront, but it&amp;#8217;s easier to just not use it for anything that will change frequently.&lt;/p&gt;

&lt;h2 id='setting_up_your_dns'&gt;Setting up your DNS&lt;/h2&gt;

&lt;p&gt;You&amp;#8217;ll need to create some DNS records to use your own domain with S3. The way you do this depends on your DNS provider (I use &lt;a href='http://www.zerigo.com/managed-dns'&gt;Zerigo&lt;/a&gt;, which is cheap, reliable, and easy to use). At a minimum, you&amp;#8217;ll need to follow your DNS provider&amp;#8217;s instructions to create a &lt;code&gt;CNAME&lt;/code&gt; pointing &lt;code&gt;www.yourdomain.com&lt;/code&gt; at your S3 endpoint.&lt;/p&gt;

&lt;p&gt;Zerigo lets you create a redirect from &lt;code&gt;yourdomain.com&lt;/code&gt; to &lt;code&gt;www.yourdomain.com&lt;/code&gt; &amp;#8211; you can&amp;#8217;t use a &lt;code&gt;CNAME&lt;/code&gt; on a bare domain. You can &lt;a href='http://blog.nearlyfreespeech.net/2006/11/17/forwarding-sites-url-rewriting/'&gt;set up a redirect with Apache&lt;/a&gt; if your DNS provider doesn&amp;#8217;t do redirects.&lt;/p&gt;

&lt;p&gt;You can also create a &lt;code&gt;CNAME&lt;/code&gt; for your CloudFront endpoint. I use &lt;code&gt;cdn.maxmasnick.com&lt;/code&gt; for this.&lt;/p&gt;

&lt;h2 id='getting_your_jekyll_site_onto_s3'&gt;Getting your Jekyll site onto S3&lt;/h2&gt;

&lt;p&gt;There&amp;#8217;s a great command line tool called &lt;code&gt;s3cmd&lt;/code&gt; that acts like &lt;code&gt;rsync&lt;/code&gt; for S3. It makes it easy to upload your Jekyll site onto S3, and after your initial upload &lt;code&gt;s3cmd&lt;/code&gt; will only upload file that have changed. If you&amp;#8217;re on Mac, you can use &lt;a href='https://github.com/mxcl/homebrew'&gt;Homebrew&lt;/a&gt; to install &lt;code&gt;s3cmd&lt;/code&gt; by running &lt;code&gt;brew install s3cmd&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I created a file called &lt;code&gt;publish.sh&lt;/code&gt; in my Jekyll folder so I can run &lt;code&gt;jekyll &amp;amp;&amp;amp; ./publish.sh&lt;/code&gt; to publish to S3. &lt;code&gt;publish.sh&lt;/code&gt; only has one line in it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;s3cmd sync --delete-removed _site/ s3://www.maxmasnick.com/ --verbose&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you haven&amp;#8217;t used &lt;code&gt;s3cmd&lt;/code&gt; before, you can set it up with your access keys by running &lt;code&gt;s3cmd --configure&lt;/code&gt;. You can get these access keys off the Security Credentials portion of the &lt;a href='http://aws.amazon.com'&gt;AWS website&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id='jekyll_configuration_for_cloudfront'&gt;Jekyll configuration for CloudFront&lt;/h2&gt;

&lt;p&gt;To make it easy to serve my assets from CloudFront, I set up a custom Liquid filter:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;module Jekyll
  module AssetFilter
    def cdn(input)
      &amp;quot;#{@context.registers[:site].config[&amp;#39;cdn&amp;#39;]}/#{input}&amp;quot;
    end
  end
end

Liquid::Template.register_filter(Jekyll::AssetFilter)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then I added a CDN entry to my &lt;code&gt;_config.yml&lt;/code&gt; file. If I comment this line out, my assets will be served off of S3 (or &lt;code&gt;localhost&lt;/code&gt; if I&amp;#8217;m running Jekyll locally).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cdn: http://cdn.maxmasnick.com&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Whenever I want an asset to be served by the CDN, I pass it through this Liquid filter. For example, in my layout file I have:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;&amp;amp;#123;&amp;amp;#123; &amp;#39;assets/css/frameless.css&amp;#39; | cdn &amp;amp;#125;&amp;amp;#125;&amp;quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='alternatives'&gt;Alternatives&lt;/h2&gt;

&lt;p&gt;I like hosting on S3 because it&amp;#8217;s reliable (S3 is &amp;#8221;&lt;a href='http://aws.amazon.com/s3/#protecting'&gt;designed to provide 99.999999999% durability and 99.99% availability of objects over a given year&lt;/a&gt;&amp;#8221;) and cheap (I served more than 20,000 pageviews for less than $1 this January).&lt;/p&gt;

&lt;p&gt;However, there are alternatives for hosting static sites. As I mentioned above, &lt;a href='http://pages.github.com'&gt;GitHub Pages&lt;/a&gt; is free and works pretty well. You can also host a static site on Heroku (for example, see this great post on &lt;a href='http://bionicspirit.com/blog/2012/01/05/blogging-for-hackers.html'&gt;hosting a static blog on Heroku + Google App Engine&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re looking for alternatives to Jekyll, I &lt;a href='/guides/bulletproof_your_blog'&gt;wrote about the different options&lt;/a&gt;.&lt;/p&gt;
      
      
        &lt;p&gt;&lt;b&gt;&lt;a href=''&gt;Comment on this post on Google+&lt;/a&gt;.&lt;/b&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/N_WBHNZleKI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2012/01/21/jekyll_s3_cloudfront/</feedburner:origLink></entry>
  
  <entry>
    <title>Ultimate webdev/power user tools for Mac (2011 edition)
</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/_nteZCGm39o/" />
    <updated>2011-12-29T14:15:19-05:00</updated>
    <id>http://www.maxmasnick.com.com/2011/12/29/developer_tools_for_mac_2011</id>
    <content type="html">
      &lt;h2 id='hardware'&gt;Hardware&lt;/h2&gt;
&lt;figure style='float: right; margin: 1em;'&gt;
  &lt;img alt='Evoluent VerticalMouse 4' src='http://www.maxmasnick.com/media/2011-12-28_developer_tools_for_mac_2011/mouse.jpg' /&gt;
  &lt;figcaption&gt;&lt;strong&gt;Evoluent VerticalMouse 4.&lt;/strong&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.apple.com/macbookair/specs.html'&gt;11&amp;#8221; MacBook Air&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;I have the 2010 model and it&amp;#8217;s pretty much fast enough for everything I do; the new model is even better. The only thing I&amp;#8217;ve noticed that is really slow is loading the Rails stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://amzn.com/B00427TAIK'&gt;Evoluent VerticalMouse 4&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;I find this more comfortable than any normally-shaped mouse, and it has a super accurate laser sensor and a ton of buttons. It&amp;#8217;s also a, uh, conversation piece.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;24&amp;#8221; screen&lt;/strong&gt;&lt;br /&gt;I have a Dell work and home, and this great &lt;a href='http://amzn.com/B003FP7OYM'&gt;$170 24&amp;#8221; ViewSonic&lt;/a&gt; in Montana. I would love to have one of the &lt;a href='http://www.apple.com/displays/'&gt;27&amp;#8221; Apple displays&lt;/a&gt;, but they&amp;#8217;re way out of my price range.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sennheiser PXC 350 Active Noise Cancellation Headphones&lt;/strong&gt;&lt;br /&gt;These are discontinued but there&amp;#8217;s a &lt;a href='http://amzn.com/B000R2PC2M'&gt;newer model&lt;/a&gt;. I got them for airplanes but ended up using them a lot. They sound ok with and without the noise cancellation on and collapse down into a sturdy, flat case.&lt;/p&gt;

&lt;p&gt;I recently saw some of my friends using their laptops/external monitors in the configuration below. I don&amp;#8217;t know why I didn&amp;#8217;t think of this before, I really like it &amp;#8211; it lets you use your laptop screen for email or Terminal without the awkwardness of a horizontal layout (it&amp;#8217;s hard to get an 11&amp;#8221; laptop to the right height next to a 24&amp;#8221; screen).&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt='Montana desk' src='http://www.maxmasnick.com/media/2011-12-28_developer_tools_for_mac_2011/desk.jpg' /&gt;
  &lt;figcaption&gt;&lt;strong&gt;Stacked screens in Montana.&lt;/strong&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I was inspired by &lt;a href='http://www.hanselman.com/blog/ScottHanselmans2011UltimateDeveloperAndPowerUsersToolListForWindows.aspx'&gt;Scott Hanselman&amp;#8217;s&lt;/a&gt; &lt;a href='http://carpeaqua.com/2011/12/19/my-ultimate-developer-and-power-users-tool-list-for-mac-os-x-2011-edition-/'&gt;Justin William&amp;#8217;s&lt;/a&gt; ultimate developer/power user tool lists, so I decided to share my own. Scott is on Windows and Justin is a Mac/iOS developer, while I do mostly web development &amp;#8211; so my list has a somewhat different focus.&lt;/p&gt;

&lt;h2 id='top_5_developer_tools'&gt;Top 5 developer tools&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.sublimetext.com/2'&gt;Sublime Text 2&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Like many, I got tired of waiting for TextMate 2 and started looking for alternatives. I tried &lt;a href='http://code.google.com/p/macvim/'&gt;MacVim&lt;/a&gt; for a while, but eventually ended up switching to Sublime Text as my primary editor. It supports TextMate syntax highlighting bundles and has some really convenient features, such as live previews of files selected with the quick open (Cmd-T) dialog and Vim keyboard bindings. I&amp;#8217;ve tried the &lt;a href='http://blog.macromates.com/2011/textmate-2-0-alpha/'&gt;TextMate 2 Alpha&lt;/a&gt;, but I still thing Sublime Text is better.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.zsh.org/'&gt;Zsh&lt;/a&gt; + &lt;a href='https://github.com/robbyrussell/oh-my-zsh'&gt;oh-my-zsh&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt; The Z shell (zsh) is a replacement for bash. It is greatly enhanced by &lt;a href='http://planetargon.com/who-we-are/robby-russell'&gt;Robby Russell&amp;#8217;s&lt;/a&gt; oh-my-zsh. Together, these give you a highly customizable prompt (see the screenshot below), tab completion for Git branches, and some great plugins like the &lt;a href='https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/bundler'&gt;bundler plugin&lt;/a&gt; that automatically runs rails-related commands with &lt;code&gt;bundler exec&lt;/code&gt;. &lt;figure&gt;
  &lt;img alt='oh-my-zsh' class='no-border' src='http://www.maxmasnick.com/media/2011-12-28_developer_tools_for_mac_2011/zsh_shadow2.jpg' /&gt;
  &lt;figcaption&gt;&lt;strong&gt;oh-my-zsh with my own &lt;a href='https://github.com/robbyrussell/oh-my-zsh/blob/master/themes/fino.zsh-theme'&gt;theme&lt;/a&gt;.&lt;/strong&gt; It shows the user and computer name, the current folder, Git branch and working directory status for repositories, and the active version of Ruby via rbenv.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://git-scm.com/'&gt;Git&lt;/a&gt; and &lt;a href='http://gitboxapp.com/'&gt;Gitbox&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;I use Git for version control. I generally use the command line interface, but sometimes it&amp;#8217;s faster to use a GUI (e.g. staging a subset of changed files from a bunch of different folders). Gitbox has a clean, extremely simple UI without sacrificing functionality. I actually recommend Gitbox to Mac users who are new to Git: it allows you to learn the Git workflow and terminology without mucking around with the CLI.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='https://github.com'&gt;Github&lt;/a&gt; and &lt;a href='http://bitbucket.org'&gt;Bitbucket&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;One of the best things about Git is how easy it makes collaborating on code. Github (and Bitbucket) make this even easier. Both are web-based hosting for Git repositories with social features like pull requests for reviewing submitted changes and issue tracking. Github is by far my favorite of the two, but the pricing structure makes having lots of private repositories prohibitively expensive. Bitbucket has most of Github&amp;#8217;s features and is essentially free for personal use.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://rubular.com/'&gt;Rubular&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;If you write complicated regular expressions, Rubular will change your life. It makes it extremely simple to text regexps and keep track of captures.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id='honorable_mentions'&gt;Honorable mentions&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='https://www.google.com/chrome/'&gt;Google Chrome&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Specifically, the inspector is invaluable for front-end development. It has almost completely replaced &lt;a href='http://getfirebug.com/'&gt;Firebug&lt;/a&gt; for me. I mostly use the elements inspector to manipulate HTML element styles in real time (without having to refresh) and the console for JavaScript debugging. The Network tab is also useful (see below).&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt='Google Chrome Inspector' src='http://www.maxmasnick.com/media/2011-12-28_developer_tools_for_mac_2011/inspector.png' /&gt;
  &lt;figcaption&gt;&lt;strong&gt;Google Chrome Inspector.&lt;/strong&gt;The Network tab shows the time it takes for your assets to load.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.kaleidoscopeapp.com/'&gt;Kaleidoscope&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;This program can be used to display side-by-side or inline diffs. It works with Gitbox and with the &lt;code&gt;git difftool&lt;/code&gt; command, and is way more readable than standard diffs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://panic.com/transmit/'&gt;Transmit&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Transmit is the swiss army knife for connecting to remote file systems. I use it mainly for sftp and &lt;a href='http://aws.amazon.com/s3/'&gt;Amazon S3&lt;/a&gt;, but it supports lots of different protocols. It has the best UI of any file transfer app I&amp;#8217;ve seen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://pow.cx'&gt;pow.cx&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;If you run local servers for Rack apps (including Rails), pow.cx can save you some keystrokes and Terminal windows. It will run local servers in the background for any Rack app and it makes them accessible at &lt;code&gt;http://something.dev&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='https://github.com/sstephenson/rbenv'&gt;rbenv&lt;/a&gt; and &lt;a href='https://github.com/sstephenson/ruby-build'&gt;ruby-build&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;&lt;code&gt;rbenv&lt;/code&gt; is a cleaner implementation of &lt;code&gt;rvm&lt;/code&gt;&amp;#8217;s functionality. &lt;code&gt;ruby-build&lt;/code&gt; is the companion tool that handles installation of multiple versions of Ruby.&lt;/p&gt;

&lt;h2 id='top_5_power_user_tools'&gt;Top 5 power user tools&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://db.tt/tfFIosU'&gt;Dropbox&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;This is must-have for every computer user with an internet connection. It&amp;#8217;s incredibly simple, extremely robust cloud storage. I use Dropbox literally every day both for backups and for sharing files. Their mobile apps make everything in your Dropbox accessible on the go. This might be the only programs I would recommend for anyone on any platform.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://sparrowmailapp.com/'&gt;Sparrow&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;This is a desktop client for gmail. I&amp;#8217;ve found it much faster for everything than browser-based gmail except for search. It&amp;#8217;s especially helpful if you have multiple gmail accounts. Sparrow recognizes a bunch of the standard gmail keyboard shortcuts so you don&amp;#8217;t have to retrain your fingers.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='https://agilebits.com/onepassword'&gt;1Password&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Password management is a pain, but 1Password makes it as easy as it can be. They have good browser plugins for Chrome and Safari (and presumably Firefox, though I haven&amp;#8217;t used it), and great iOS apps. Your passwords are encrypted locally with a master password, and can be synced between devices over Dropbox.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://getcloudapp.com/'&gt;CloudApp&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;CloudApp makes one-off file sharing easy. You can drag any file to its menu bar icon, and CloudApp will upload the file and automatically copy the URL to your clipboard. It&amp;#8217;s free for light use.&lt;/p&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.haystacksoftware.com/arq/'&gt;Arq&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Arq encrypts and backs your files up on &lt;a href='http://aws.amazon.com/s3/'&gt;Amazon S3&lt;/a&gt;. I also use &lt;a href='http://www.tarsnap.com/'&gt;tarsnap&lt;/a&gt; on servers, but I like having a graphical interface on my laptop. There are a bunch of other cloud backup utilities out there, but Arq has several advantages.&lt;/p&gt;

&lt;p&gt;First, S3 is extremely reliable so you don&amp;#8217;t have to worry about data loss. Second, Arq encrypts your files locally so there&amp;#8217;s no way for a third party to gain access (this is a problem with Dropbox and other cloud backup providers that give you access to your files through a web interface). Third, the format Arq uses for storing your files is open source, so you will still be able to access your backups if Arq disappears. Finally, the only recurring fee is S3 usage, so it can be cheaper month-to-month than the alternatives (I pay less than $2/month).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id='honorable_mentions'&gt;Honorable mentions&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://skitch.com/'&gt;Skitch&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Skitch is my go-to tool for quickly annotating screenshots. You can share Skitch screenshots directly on CloudApp by dragging the thumbnail at the bottom of the Skitch window to the CloudApp icon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.techsmith.com/download/jing/'&gt;Jing&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Jing is an easy, free screencasting tool. The free version limits your recording time (5 minutes, I think), but it&amp;#8217;s really easy to use and you can&amp;#8217;t beat the price.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.spotify.com/'&gt;Spotify&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Spotify has essentially replaced iTunes for me. The new &lt;a href='http://www.spotify.com/us/download/previews/'&gt;beta&lt;/a&gt; has third-party apps &amp;#8211; for example there&amp;#8217;s a Pitchfork app that lets you directly play their best new albums and tracks. I have some gripes about the interface and their mobile app isn&amp;#8217;t very full-featured, but they seem to have a fairly complete collection. If you know what you want to listen to it works pretty well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://8tracks.com'&gt;8tracks&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;When I don&amp;#8217;t know what I want to listen to, 8tracks is great. It&amp;#8217;s basically the mixtape of the 21st century: you can create a mix (8 or more tracks) and share it with the world. It&amp;#8217;s good for discovering new music.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://greplin.com'&gt;Greplin&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Greplin is Google for your personal cloud. It can search a ton of online apps, including gmail, Dropbox, Google Docs, Facebook messages, Twitter, 37signals products, and more. It&amp;#8217;s indispensable when you&amp;#8217;re looking for something but you can&amp;#8217;t remember if it was in a Facebook message or an email or in Dropbox or in&amp;#8230; I have 136,107 documents currently indexed by Greplin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://views.fm'&gt;Views.fm&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Views.fm makes it easy to share &lt;a href='http://db.tt/tfFIosU'&gt;Dropbox&lt;/a&gt; folders over the web. They have a great lightbox mode for photos that I like better than flickr or 500px. &lt;a href='http://views.fm/masnick/test'&gt;Here&amp;#8217;s an example&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='https://mobile.twitter.com/'&gt;Twitter Mobile&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;I didn&amp;#8217;t realize new new Twitter had been released for about a week because I use http://mobile.twitter.com on my laptop. If you&amp;#8217;re overwhelmed by Twitter proper, give this a try.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href='http://www.mekentosj.com/papers/'&gt;Papers2&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;If you do anything with scientific papers, Papers2 helps keep everything organized. It also does citations like Endnote, but is way easier to use.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;ve made it this far, you should &lt;strong&gt;&lt;a href='http://twitter.com/masnick'&gt;follow me on Twitter&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
      
        &lt;p&gt;&lt;img src='http://www.maxmasnick.com/assets/images/hn.gif' alt='Hacker News logo' /&gt; Comment on this post at &lt;a href=''&gt;Hacker News&lt;/a&gt;.
      
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/_nteZCGm39o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2011/12/29/developer_tools_for_mac_2011/</feedburner:origLink></entry>
  
  <entry>
    <title>New Kindle first impressions</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/lmF6KYEofmk/" />
    <updated>2011-11-22T09:00:00-05:00</updated>
    <id>http://www.maxmasnick.com.com/2011/11/22/kindle_first_impressions</id>
    <content type="html">
      &lt;figure&gt;
  &lt;img alt='New Kindle vs. first generation Kindle DX' src='http://www.maxmasnick.com/media/2011-11-22-kindle/kindle.jpg' /&gt;
  &lt;figcaption&gt;&lt;strong&gt;New Kindle 4 vs. original Kindle DX.&lt;/strong&gt; Apologies for the crappy iPhone photo.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Amazon delivered my &lt;a href='http://amzn.com/B0051QVESA'&gt;new Kindle 4&lt;/a&gt; a day early &amp;#8211; a nice Monday afternoon surprise. The new Kindle is replacing my &lt;a href='http://www.amazon.com/dp/B0015TCML0'&gt;first generation Kindle DX&lt;/a&gt;, which seems absurdly large by comparison.&lt;/p&gt;

&lt;p&gt;I decided to go for small, light and cheap this time. The DX is great for reading, but it&amp;#8217;s a pain to lug around and it&amp;#8217;s expensive enough that I&amp;#8217;m worried about losing or breaking it.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve read that Amazon&amp;#8217;s goal with the most recent refresh to the Kindle line is to make the devices themselves less important while emphasizing the great content you can access on them. With this in mind, going cheap makes sense. When Amazon releases a new version of the Kindle, it will be much less painful to upgrade from a $79 Kindle than a $250 Kindle.&lt;/p&gt;

&lt;h2 id='kindle_vs_kindle_touch'&gt;Kindle vs. Kindle Touch&lt;/h2&gt;

&lt;p&gt;I decided not to get the Kindle Touch because I really didn&amp;#8217;t want the extra weight and the speakers. I also rarely type on my Kindle DX, so I thought I probably wouldn&amp;#8217;t mind the &amp;#8220;keyboard&amp;#8221; on the non-Touch Kindle.&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt='On-screen keyboard of the Kindle 4' src='http://www.maxmasnick.com/media/2011-11-22-kindle/kindle_keyboard.jpg' /&gt;
  &lt;figcaption&gt;&lt;strong&gt;Kindle 4 on-screen keyboard.&lt;/strong&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The &amp;#8220;keyboard&amp;#8221; on this Kindle is controlled with the four-way selector. You have to select one character at a time, but it actually works surprisingly well &amp;#8211; as long as you only use it for entering wifi passwords and the occasional search. If you ever use the Kindle&amp;#8217;s notes feature or do a lot of searching on the Kindle Store, I would imagine the Touch or the Kindle with the physical keyboard would be the better choice.&lt;/p&gt;

&lt;h2 id='using_the_kindle'&gt;Using the Kindle&lt;/h2&gt;

&lt;p&gt;The new Kindle is incredibly small and light. It is very comfortable to hold in one hand while reading. There are page turn buttons on both sides of the device. They essentially make up the middle 50% of both the left and right edges. They don&amp;#8217;t extend very far onto the front of the device, which can make them hard to push initially, but I adjusted quickly. They are hard enough to push that I didn&amp;#8217;t have any trouble with inadvertent page turns.&lt;/p&gt;

&lt;p&gt;The refresh time has improved significantly since the DX. The Kindle only refreshes the entire screen (this causes the Kindle&amp;#8217;s screen to flash black for a moment) about every six page turns, which makes page turns more seamless and faster. There&amp;#8217;s been some speculation about how this would affect the clarity of the text as this theoretically degrades with each page turn that doesn&amp;#8217;t trigger a full refresh, but I can&amp;#8217;t notice any difference under normal reading.&lt;/p&gt;

&lt;h2 id='the_price_point'&gt;The price point&lt;/h2&gt;

&lt;p&gt;With a charger and a case, my order came in at $115. This is approaching the point where for many people, the Kindle will be more of an impulse buy instead than a carefully considered purchase. For me, I think think this point is closer to $60 &amp;#8211; I thought about this purchase for almost two months before I pulled the trigger.&lt;/p&gt;

&lt;p&gt;Getting to the &amp;#8220;impulse buy&amp;#8221; price is critical for Amazon to succeed with their device-only-as-interface strategy. People will not want to pay a lot of money for a device that is meant to be replaced frequently and doesn&amp;#8217;t offer the same functionality as other expensive devices.&lt;/p&gt;

&lt;p&gt;The Kindle Fire is moving towards the &amp;#8220;impulse buy&amp;#8221; price point in the tablet market &amp;#8211; despite &lt;a href='http://www.marco.org/2011/11/17/kindle-fire-review'&gt;suffering from some pretty serious usability issues&lt;/a&gt;, they are &lt;a href='http://money.cnn.com/2011/11/15/technology/kindle_fire_sales/index.htm'&gt;selling like hotcakes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I think this device-as-interface philosophy will help Amazon to lead the digital content market for books and video. By lowering the barrier to entry for consumers by making fairly good devices at low prices (&lt;a href='http://abcnews.go.com/Technology/amazon-kindle-fire-announced-jeff-bezos-beat-apple/story?id=14623497'&gt;Jeff Bezos likes to call&lt;/a&gt; them &amp;#8220;premium products at non-premium prices&amp;#8221;) I would imagine Amazon will pick up a lot of business selling content.&lt;/p&gt;
      
      
        &lt;p&gt;&lt;b&gt;&lt;a href=''&gt;Comment on this post on Google+&lt;/a&gt;.&lt;/b&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/lmF6KYEofmk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2011/11/22/kindle_first_impressions/</feedburner:origLink></entry>
  
  <entry>
    <title>Mapping U.S. obesity rates at the county level</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/SLhTVD_MVWA/" />
    <updated>2011-11-15T21:00:00-05:00</updated>
    <id>http://www.maxmasnick.com.com/2011/11/15/obesity_by_county</id>
    <content type="html">
      &lt;div style='margin-top: 1em;'&gt;&lt;a href='http://www.maxmasnick.com/media/2011-11-15-obesity_map/obesity_by_county_large.png' target='_blank'&gt;&lt;img alt='United States obesity rates by county' src='http://www.maxmasnick.com/media/2011-11-15-obesity_map/obesity_by_county.png' style='border: 1px solid #ddd;' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class='small'&gt;
&lt;strong&gt;Age-adjusted obesity rates by U.S. county (2008).&lt;/strong&gt; Click to enlarge, or view the large &lt;a href='http://www.maxmasnick.com//media/2011-11-15-obesity_map/obesity_by_county_large.png' target='_blank'&gt;PNG&lt;/a&gt; or &lt;a href='http://www.maxmasnick.com//media/2011-11-15-obesity_map/obesity_by_county.svg' target='_blank'&gt;SVG&lt;/a&gt;. Higher obesity rates are darker.
&lt;/span&gt;
&lt;p&gt;I thought it would be interesting to see how obesity rates were distributed geographically in the U.S., so I did some searching. The CDC has &lt;a href='http://www.cdc.gov/obesity/data/trends.html'&gt;a great time-lapse map of state obesity rates&lt;/a&gt;, but I was curious how this would look at the county level. For example, there are huge differences between the western and eastern parts of Montana (my home state), or between the areas around big cities and the rural counties in North Carolina (my current state).&lt;/p&gt;

&lt;p&gt;There is &lt;a href='http://apps.nccd.cdc.gov/DDT_STRS2/CountyPrevalenceData.aspx'&gt;county-level data available&lt;/a&gt;, but it&amp;#8217;s separated by state. I wanted to see the entire country at once, so I made my own map (see above).&lt;/p&gt;

&lt;p&gt;Probably the most striking thing about this map is that it looks like the South is in trouble. Obesity-related chronic disease is costly to treat, affects worker productivity, and generally reduces quality of life. Not surprisingly, the states with the highest obesity rates have the worst overall health &lt;a href='http://statehealthstats.americashealthrankings.org/#/country/US/2008/Overall-State-Ranking'&gt;according to at least one ranking&lt;/a&gt;. I&amp;#8217;m curious how this relates to health insurance expenditures &amp;#8211; I&amp;#8217;m looking at what data are available on this for a follow-up post.&lt;/p&gt;

&lt;p&gt;There are also some striking differences within states. Look at North Carolina, for example:&lt;/p&gt;
&lt;p&gt;&lt;img alt='2008 obesity map by county for North Carolina only' src='http://www.maxmasnick.com/media/2011-11-15-obesity_map/north_carolina_obesity.png' style='border: 1px solid #ddd;' /&gt;&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s a pretty striking difference between the eastern and western halves of the state. &lt;a href='http://en.wikipedia.org/wiki/File:North_Carolina_population_map.png'&gt;Visually&lt;/a&gt;, it looks like this difference might be correlated with population.&lt;/p&gt;

&lt;p&gt;Speaking of correlations, I wanted to see how obesity rates correlated with socioeconomic status. Using median household income in each county as an estimate of this, I made this map:&lt;/p&gt;
&lt;div style='margin-top: 1em;'&gt;&lt;a href='http://www.maxmasnick.com/media/2011-11-15-obesity_map/income_by_county_large.png' target='_blank'&gt;&lt;img alt='United States median income rates by county' src='http://www.maxmasnick.com/media/2011-11-15-obesity_map/income_by_county.png' style='border: 1px solid #ddd;' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class='small'&gt;
&lt;strong&gt;Median income by U.S. county (2008).&lt;/strong&gt; Click to enlarge, or view the large &lt;a href='http://www.maxmasnick.com/media/2011-11-15-obesity_map/income_by_county_large.png' target='_blank'&gt;PNG&lt;/a&gt; or &lt;a href='http://www.maxmasnick.com/media/2011-11-15-obesity_map/income_by_county.svg' target='_blank'&gt;SVG&lt;/a&gt;. Lower income is darker.
&lt;/span&gt;
&lt;p&gt;Here are the two maps next to each other (obesity on the left, income on the right):&lt;/p&gt;
&lt;p&gt;&lt;img alt='both maps' src='http://www.maxmasnick.com/media/2011-11-15-obesity_map/income_obesity.png' style='border: 1px solid #ddd;' /&gt;&lt;/p&gt;
&lt;p&gt;Visually, there are some macro-level similarities between these maps, especially low-income high-obesity regions in the South, and high-income low-obesity regions in the Northeast and the West. However, &lt;a href='http://www.nature.com/oby/journal/v12/n10/abs/oby2004202a.html'&gt;the association between socioeconomic status and obesity appears to be weakening&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, take a close look at the key of the obesity rate map:&lt;/p&gt;
&lt;p&gt;&lt;img alt='both maps' src='http://www.maxmasnick.com/media/2011-11-15-obesity_map/key.png' style='border: 1px solid #ddd;' /&gt;&lt;/p&gt;
&lt;p&gt;This means that about 5/6ths (83%) of U.S. counties have obesity rates &lt;em&gt;over&lt;/em&gt; 25%.&lt;/p&gt;

&lt;h2 id='source_materials_and_methods'&gt;Source materials and methods&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Map coloring.&lt;/strong&gt; I used code from an &lt;a href='http://flowingdata.com/2009/11/12/how-to-make-a-us-county-thematic-map-using-free-tools/'&gt;excellent tutorial at FlowingData&lt;/a&gt;. Both maps were colored by splitting the counties into &lt;a href='http://en.wikipedia.org/wiki/Quantile'&gt;sextiles&lt;/a&gt; (six roughly equally-sized groups by obesity rate or median income), giving the best variability in color across the map.&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;2008 county-level obesity rates.&lt;/strong&gt; From the &lt;a href='http://apps.nccd.cdc.gov/DDT_STRS2/CountyPrevalenceData.aspx'&gt;CDC Diabetes Data &amp;amp; Trends website&lt;/a&gt;. But the data download interface on this website is awful. There was no way to download all the U.S. data at once &amp;#8211; each state had to be downloaded individually. It was also impossible to scrape the site to automatically download the data, so I had to click &amp;#8220;download&amp;#8221; 50 times. Except that because of a bug in the interface, it didn&amp;#8217;t work the first time, so I had to click &amp;#8220;donwload&amp;#8221; 50 more times.&lt;br /&gt;&lt;br /&gt;This download interface is so bad that I&amp;#8217;m making a &lt;a href='/media/2011-11-15-obesity_map/2008_estimated_obesity_by_us_county.csv'&gt;combined CSV dataset of county-level obesity data for all 50 states available here&lt;/a&gt; so no one has to repeat this pain. Please verify the correctness of these data before you use them for anything important.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;2008 county-level median income.&lt;/strong&gt; From the &lt;a href='http://www.census.gov/did/www/saipe/data/statecounty/data/2008.html'&gt;US Census&lt;/a&gt;. Much more accessible than the CDC data.&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Source map.&lt;/strong&gt; I used this excellent &lt;a href='http://commons.wikimedia.org/wiki/File:USA_Counties_with_FIPS_and_names.svg'&gt;pubic domain SVG map&lt;/a&gt; from Wikipedia.&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Color scheme.&lt;/strong&gt; I used &lt;a href='http://colorbrewer2.org/'&gt;http://colorbrewer2.org/&lt;/a&gt; to generate the color scheme for the maps.&lt;/li&gt;
&lt;/ul&gt;
      
      
        &lt;p&gt;&lt;b&gt;&lt;a href=''&gt;Comment on this post on Google+&lt;/a&gt;.&lt;/b&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/SLhTVD_MVWA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2011/11/15/obesity_by_county/</feedburner:origLink></entry>
  
  <entry>
    <title>Usability &amp; UX: forgotten in obesity web intervention?
</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/rTUBgahzZ5o/" />
    <updated>2011-11-09T09:00:00-05:00</updated>
    <id>http://www.maxmasnick.com.com/2011/11/09/obesity_intervention_ux</id>
    <content type="html">
      &lt;p&gt;A group of researchers in the Netherlands just &lt;a href='http://www.ncbi.nlm.nih.gov/pubmed?term=22064878'&gt;published the results&lt;/a&gt; of their web-based adolescent obesity intervention. This kind of intervention is promising because it scales well: more users on a website are essentially free, while adding people to an intervention that requires doctor visits would be much more expensive.&lt;/p&gt;

&lt;p&gt;Scaling is important because reaching a significant portion of the large number of obese people (e.g. &lt;a href='http://www.cdc.gov/obesity/data/trends.html'&gt;1/3 of US adults&lt;/a&gt;) will be cost-prohibitive with an intervention that is expensive to scale.&lt;/p&gt;

&lt;p&gt;But scaling well only matters if the intervention is effective. Unfortunately for the Netherlands intervention, after two years there was no positive effect on the physical activity, diet, or BMI of the children who participated.&lt;/p&gt;

&lt;h2 id='wheres_the_usability_testing'&gt;Where&amp;#8217;s the usability testing?&lt;/h2&gt;

&lt;p&gt;Why wasn&amp;#8217;t the intervention effective? The authors offer some possible explanations, such as its short duration (&amp;#8220;8 sessions of 15 minutes each within 10 weeks&amp;#8221;). However, there was no mention of any usability testing, and poor usability could torpedo a web-based intervention just as easily as any other website.&lt;/p&gt;

&lt;h2 id='tools_for_improving_intervention_websites'&gt;Tools for improving intervention websites&lt;/h2&gt;

&lt;p&gt;There are a number of tools used especially by web startups that could be beneficial to web-based interventions for obesity and other diseases.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href='http://en.wikipedia.org/wiki/A/B_Testing'&gt;A/B testing&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt; This is essentially a usability mini-study: visitors to your site see either site A or site B. Ideally, you want site A and site B to differ only a little bit (e.g. color of the &amp;#8220;sign up&amp;#8221; button).&lt;br /&gt;&lt;br /&gt; Business track response rate (e.g. signing up for a free trial); researchers could do this in focus groups and track responses to feedback questions.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Usage statistics&lt;/strong&gt;&lt;br /&gt; There are a bunch of great tools for collecting usage statistics. &lt;a href='http://www.google.com/analytics/'&gt;Google Analytics&lt;/a&gt; is widely used for collecting all kind of statistics about your website&amp;#8217;s users (e.g. time spent on pages, search terms used to find your site, etc.).&lt;br /&gt;&lt;br /&gt; One kind of usage information that could be extremely useful are heatmaps that shows where users click on a page: &lt;br /&gt;&lt;br /&gt;&lt;img alt='image' src='http://www.maxmasnick.com/media/2011-11-09-obesity_intervention_ux/heatmap.jpg' /&gt;&lt;br /&gt; (Image from &lt;a href='http://www.flickr.com/photos/amit-agarwal/2052668047/'&gt;Flickr/labnol&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt; Analytics companies such as &lt;a href='http://www.clicktale.com/'&gt;ClickTale&lt;/a&gt; and &lt;a href='http://www.clickdensity.com/'&gt;Clickdensity&lt;/a&gt; can generate click heatmaps from any website.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;

&lt;li&gt;&lt;strong&gt;Session tracking&lt;/strong&gt;&lt;br /&gt; There are some services that can help you do more in-depth tracking of what a user does on a website. For example, &lt;a href='http://www.openhallway.com/'&gt;OpenHallway&lt;/a&gt; and &lt;a href='http://silverbackapp.com/'&gt;Silverback&lt;/a&gt; let you record a user&amp;#8217;s screen and voice (and face, in the case of Silverback) while they test your website and play the recordings back later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id='user_experience_really_matters'&gt;User experience really matters&lt;/h2&gt;

&lt;p&gt;Users form first impressions of a website &lt;a href='http://www.nature.com/news/2006/060109/full/news060109-13.html'&gt;in only 50 milliseconds&lt;/a&gt;, and this first impression matters:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The lasting effect of first impressions is known to psychologists as the &amp;#8216;halo effect&amp;#8217;: if you can snare people with an attractive design, they are more likely to overlook other minor faults with the site, and may rate its actual content (such as this article, for example) more favourably.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Especially with self-directed web-based interventions, the intervention&amp;#8217;s website is directly competing with the other media available to the participant, i.e. everything else on the internet. It&amp;#8217;s not surprising that &lt;a href='http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1550631'&gt;dropout rates are high&lt;/a&gt; for web-based interventions.&lt;/p&gt;

&lt;p&gt;It seems that good design and usability are necessary, though certainly not sufficient, for long-term success with web-based chronic disease interventions. I&amp;#8217;m going to be on the lookout for studies that include rigorous usability testing.&lt;/p&gt;

&lt;p&gt;Citation for the Netherlands study:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ezendam, N. P. M., Brug, J., &amp;amp; Oenema, A. (2011). Evaluation of the Web-Based Computer-Tailored FATaintPHAT Intervention to Promote Energy Balance Among Adolescents: Results From a School Cluster Randomized Trial Archives of pediatrics &amp;amp; adolescent medicine. doi:10.1001/archpediatrics.2011.204&lt;/p&gt;
&lt;/blockquote&gt;
      
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/rTUBgahzZ5o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2011/11/09/obesity_intervention_ux/</feedburner:origLink></entry>
  
  <entry>
    <title>Trello Icon</title>
    <link href="http://feedproxy.google.com/~r/maxmasnick/~3/kaNFks1VJ4U/" />
    <updated>2011-09-15T12:20:00-04:00</updated>
    <id>http://www.maxmasnick.com.com/2011/09/15/trello_icon</id>
    <content type="html">
      &lt;p&gt;I just spent 15 minutes putting together a (mediocre) &lt;a href='https://trello.com/'&gt;Trello&lt;/a&gt; icon for use with &lt;a href='http://fluidapp.com/'&gt;Fluid&lt;/a&gt;. I am not a designer so, I&amp;#8217;m sure someone could improve on this.&lt;/p&gt;

&lt;p&gt;&lt;img alt='Trello icon for Fluid' src='http://www.maxmasnick.com/media/2011-09-15-trello_icon/trello.png' /&gt;&lt;/p&gt;

&lt;p&gt;Here it is in my Dock:&lt;/p&gt;

&lt;p&gt;&lt;img alt='Screenshot of Trello icon for Fluid in OS X Dock' src='http://www.maxmasnick.com/media/2011-09-15-trello_icon/screenshot.png' /&gt;&lt;/p&gt;

&lt;p&gt;You might want the &lt;a href='http://www.maxmasnick.com//media/2011-09-15-trello_icon/trello.icns'&gt;ICNS version&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I used &lt;a href='http://www.bohemiancoding.com/drawit'&gt;DrawIt&lt;/a&gt;, which I got as part of some software bundle a while ago. Here&amp;#8217;s &lt;a href='http://www.maxmasnick.com//media/2011-09-15-trello_icon/trello.drawit.zip'&gt;trello.drawit&lt;/a&gt; if you want it.&lt;/p&gt;

&lt;p&gt;This logo is presumably a &lt;a href='https://trello.com/legal'&gt;trademark&lt;/a&gt; of Fog Creek Software. Please &lt;a href='http://twitter.com/masnick'&gt;let me know&lt;/a&gt; if it&amp;#8217;s a problem to post this here.&lt;/p&gt;

&lt;h2 id='update'&gt;Update&lt;/h2&gt;

&lt;p&gt;&lt;a href='https://twitter.com/innovati'&gt;@innovati&lt;/a&gt; has &lt;a href='https://twitter.com/innovati/status/144988569243615235'&gt;graciously provided&lt;/a&gt; a prettier Trello icon:&lt;/p&gt;
&lt;figure&gt;
  &lt;img alt='Better Trello icon for Fluid' class='no-border' src='http://www.maxmasnick.com/media/2011-09-15-trello_icon/trello-icon2.png' /&gt;
&lt;/figure&gt;
&lt;p&gt;I&amp;#8217;ve mirrored it here just in case: &lt;a href='http://www.maxmasnick.com/media/2011-09-15-trello_icon/trello-icon2.zip'&gt;download .zip&lt;/a&gt;. The .zip includes both a PNG and a Photoshop file.&lt;/p&gt;
      
      
    &lt;img src="http://feeds.feedburner.com/~r/maxmasnick/~4/kaNFks1VJ4U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.maxmasnick.com/2011/09/15/trello_icon/</feedburner:origLink></entry>
  
</feed>

