<?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><![CDATA[NuncaMind]]></title>
  
  <link href="http://dtschust.github.com/" />
  <updated>2013-02-04T22:45:12-06:00</updated>
  <id>http://dtschust.github.com/</id>
  <author>
    <name><![CDATA[Drew Schuster]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Nuncamind" /><feedburner:info uri="nuncamind" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title type="html"><![CDATA[DuckDuckGo...]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/KZUeyi7a92A/" />
    <updated>2012-01-30T20:25:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/30/duckduckgo-dot-dot-dot</id>
    <content type="html">&lt;p&gt;&lt;a href="http://dtschust.github.com/images/duckduckgo.PNG"&gt;&lt;img src="http://dtschust.github.com/images/duckduckgo.PNG" width="500"&gt;&lt;br&gt;&lt;/a&gt;
Not ready for primetime.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/KZUeyi7a92A" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/30/duckduckgo-dot-dot-dot/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Hashtag Generator]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/Wl7J0hDGNE4/" />
    <updated>2012-01-28T22:35:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/28/hashtag-generator</id>
    <content type="html">&lt;p&gt;&lt;em&gt;Let me preface this by saying that this is a pointless and ridiculous tool, but I did learn a few things while creating it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Lately my friends and I have been including #RidiculouslyLongHashtagsForNoParticularReason in our text messages as well as our tweets.  Many of my friends do not use &lt;a href="http://en.wikipedia.org/wiki/CamelCase"&gt;camel case&lt;/a&gt;, which pains me as a developer.  Camel case leads to much greater legibility:
#thishashtagismuchhardertoread, whereas #ThisHashtagIsActuallyPrettyLegible.  But typing out the hashtags can be a pain, especially on the iPhone.  So, using &lt;a href="http://javascriptsource.com/forms/name-capitalization.html"&gt;Will Bontrager&amp;#8217;s code&lt;/a&gt; as a jumping off point, I wrote my own &lt;a href="http://dtschust.github.com/assets/hashtag/"&gt;Hashtag Generator&lt;/a&gt;.  It&amp;#8217;s very simple, and can only make one hashtag at a time, but it gets the job done.  Also as an iPhone user I added a special exception to capitalize iPhone properly (I don&amp;#8217;t mention iPads or any other iProducts enough to justify adding exceptions for them as well, but the code is available and adding those exceptions is pretty simple).&lt;/p&gt;

&lt;!-- more --&gt;


&lt;script type="text/javascript" src="http://dtschust.github.com/assets/hashtag/hashtag.js"&gt;&lt;/script&gt;


&lt;p&gt;&lt;strong&gt;Type in a sentence with spaces and click submit.&lt;/strong&gt;
&lt;form name="myform"&gt;
  &lt;textarea rows="10" cols="30" name = "name"&gt;&lt;/textarea&gt;
  &lt;br&gt;&lt;br&gt;
  &lt;input type="button" value="Submit" onclick="return HashTag();"&gt;
  &lt;input type="reset" value="Reset"&gt;
&lt;/form&gt;&lt;/p&gt;

&lt;p&gt;This tool works quite well, but after listening to the &lt;a href="http://macpowerusers.com/2012/01/mpu-070-working-with-automator/"&gt;Mac Power Users episode about Automator&lt;/a&gt;, I decided to try and make a service to use on my computer that would have the same functionality but be a little quicker to access.  The service itself is quite simple, and as it is probably easier to recreate than download here&amp;#8217;s an image of it:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dtschust.github.com/images/hashtagService.png"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;The hashtag.py code is here:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;span class='line-number'&gt;9&lt;/span&gt;
&lt;span class='line-number'&gt;10&lt;/span&gt;
&lt;span class='line-number'&gt;11&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;#!/usr/bin/python
&lt;/span&gt;&lt;span class='line'&gt;import sys
&lt;/span&gt;&lt;span class='line'&gt;string = raw_input('')
&lt;/span&gt;&lt;span class='line'&gt;array = string.split(' ')
&lt;/span&gt;&lt;span class='line'&gt;sys.stdout.write("#")
&lt;/span&gt;&lt;span class='line'&gt;for word in array:
&lt;/span&gt;&lt;span class='line'&gt;  if word.lower() == "iphone":
&lt;/span&gt;&lt;span class='line'&gt;    sys.stdout.write("iPhone")
&lt;/span&gt;&lt;span class='line'&gt;  else:
&lt;/span&gt;&lt;span class='line'&gt;    sys.stdout.write(word.capitalize())
&lt;/span&gt;&lt;span class='line'&gt;print&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;This service will now convert any selected text into the hashtag camel case format, and then place that on your clipboard.  You can then paste it anywhere.  This also integrates well with Launchbar, which will prompt you for the text if you want to write your own phrase:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dtschust.github.com/images/hashtagLaunchbar.png"&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;#Enjoy&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/Wl7J0hDGNE4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/28/hashtag-generator/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[New Gadget Breakdown]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/VK2Nro4jyz4/" />
    <updated>2012-01-28T22:15:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/28/new-gadget-breakdown</id>
    <content type="html">&lt;p&gt;I&amp;#8217;ve recently received several holiday gifts and purchased a few items for myself.  Now that I&amp;#8217;ve had a chance to play with them, I figured I&amp;#8217;d post some short thoughts on the gifts I received that are relevant to geeks.&lt;/p&gt;

&lt;h2&gt;Cosmonaut iPad Stylus&lt;/h2&gt;

&lt;p&gt;The &lt;a href="http://www.studioneat.com/products/cosmonaut"&gt;Cosmonaut&lt;/a&gt; is a really great iPad stylus.  It feels like a dry erase marker and has the accuracy of one, so it&amp;#8217;s not for super detailed drawing but it&amp;#8217;s great for writing and quick sketches.  I had previously owned a &lt;a href="http://www.amazon.com/Ten-Design-Pogo-Stylus-iPhone/dp/B00174N3OI"&gt;Ten One Design Pogo Stylus&lt;/a&gt;, but it felt cheap, was too small for comfort, and was easy to lose.&lt;/p&gt;

&lt;p&gt;I tried out several apps for sketching and writing in, and settled between two: Penultimate and Noteshelf.  I thought Penultimate had a more appealing interface, but Noteshelf had great zoom functionality and more colors available.  As such, I tend to use Noteshelf more frequently, but find myself going back to Penultimate for more casual and less detailed sketching and doodling.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;h2&gt;Glif iPhone Stand&lt;/h2&gt;

&lt;p&gt;The &lt;a href="http://www.studioneat.com/products/glif-for-iphone-4"&gt;Glif&lt;/a&gt; is an iPhone stand.  While I do like it, it doesn&amp;#8217;t fit when using &lt;a href="http://store.apple.com/us/product/MC839ZM/B?fnode=MTY1NDA0NA"&gt;Apple&amp;#8217;s Bumper Case&lt;/a&gt; or my case of choice, the &lt;a href="http://www.amazon.com/Case-Mate-Barely-There-Slim-iPhone/dp/B003OQUD9A"&gt;Case-Mate Barely There Slim Case&lt;/a&gt;.  As such, I elected to take advantage of my &lt;a href="http://store.apple.com/us/product/S4575LL/A"&gt;AppleCare+&lt;/a&gt; and just leave my iPhone 4S naked.  I also can&amp;#8217;t use it with my iPad 1, which is obvious as they are completely different form factors, but I did find myself trying to do it once or twice.&lt;/p&gt;

&lt;h2&gt;Jawbone UP&lt;/h2&gt;

&lt;p&gt;Jawbone&amp;#8217;s &lt;a href="http://jawbone.com/up"&gt;UP&lt;/a&gt; is/was/will be a really cool device to get a better sense of your daily activity level.  I say that because it has been &lt;a href="http://www.theverge.com/2011/12/8/2621420/jawbone-up-refund-defective-fitness-band"&gt;recalled&lt;/a&gt; and does not have an official re-release date.  Since purchasing  mine it has failed, but while it did work I enjoyed it immensely.  My favorite feature is the activity reminders, which vibrate the wristband when you have been inactive for a set period of time.  I also like the alarm function, which will wake you up in a half hour window by vibrating when you are in a lighter part of your sleep schedule.  And of course, being able to keep track of how well I slept is pretty neat.  When it gets re-released I&amp;#8217;ll buy another right away.&lt;/p&gt;

&lt;h2&gt;Jawbone Jambox&lt;/h2&gt;

&lt;p&gt;I used my refund on the Jawbone UP to purchase a &lt;a href="http://jawbone.com/speakers/jambox/overview"&gt;Jambox&lt;/a&gt;.  After only a few days of use I am in love with it.  I use it to listen to podcasts at night before going to sleep, and greatly appreciate not having to chain my iPhone to speakers every night like I have been doing for years.  Also, for such a small device it can get amazingly loud, with quite good quality.&lt;/p&gt;

&lt;h2&gt;Puerto Rico (Board Game)&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.amazon.com/Rio-Grande-Games-195RGG-Puerto/dp/B00008URUT/ref=sr_1_cc_1?s=aps&amp;amp;ie=UTF8&amp;amp;qid=1327809251&amp;amp;sr=1-1-catcorr"&gt;Puerto Rico&lt;/a&gt; is a great game for 3 or more people.  It helps if you know someone who can teach it to you, as learning the game from the instructions alone can be quite intimidating (our first game started with 2 hours of setup because none of us knew how to play, but I&amp;#8217;ve since been able to teach people how to play in 10-15 minutes).&lt;/p&gt;

&lt;h2&gt;Puerto Rico (iPad app)&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://itunes.apple.com/us/app/puerto-rico-hd/id438437326?mt=8"&gt;Puerto Rico HD&lt;/a&gt; is cheaper than the actual board game and gets the job done, but I found the interface to be rather confusing.  And although you can play against A.I., they make moves far too quickly and I found myself completely lost as board pieces flew across the screen without any comprehension on my part.  Additionally, in the actual board game players are supposed to keep the number of Victory Points that they have a relative secret by placing them upside down.  For some reason in the app everyone&amp;#8217;s Victory Points are fully displayed during each player&amp;#8217;s turn.  On the bright side, I learned from this app that I was making a couple of mistakes playing the actual board game, so having an app like this might make it easier to learn the rules of the game.&lt;/p&gt;

&lt;h2&gt;Kindle 4&lt;/h2&gt;

&lt;p&gt;I love the &lt;a href="http://www.amazon.com/Kindle-Wi-Fi-Ink-Display-Screensavers/dp/B0051QVESA/ref=sr_1_1?ie=UTF8&amp;amp;qid=1327810384&amp;amp;sr=8-1"&gt;$79 Kindle&lt;/a&gt;.  I don&amp;#8217;t have much to say about it, other than that I really appreciate how light it is, how the e-ink doesn&amp;#8217;t strain my eyes, and that I can&amp;#8217;t get distracted by any twitter notifications while reading on the device.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/VK2Nro4jyz4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/28/new-gadget-breakdown/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Twitter Adds Tweet Embedding]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/y7HBNqHIUI4/" />
    <updated>2012-01-05T14:42:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/05/twitter-adds-tweet-embedding</id>
    <content type="html">&lt;p&gt;Twitter &lt;a href="https://dev.twitter.com/blog/tweets-and-buttons"&gt;announced today&lt;/a&gt; that they have added support for embedding of tweets on websites.  I think is the first actual useful and positive thing that they&amp;#8217;re rolled out in a while.  I&amp;#8217;ve embedded Matt Gemmell&amp;#8217;s tweet that alerted me to this below as an example.&lt;/p&gt;

&lt;blockquote class="twitter-tweet"&gt;&lt;p&gt;Bloggers/journos, you can now embed tweets in web pages, for the ultimate in attribution. All controls/links are live: &lt;a href="https://t.co/6oUOKjPJ" title="https://dev.twitter.com/blog/tweets-and-buttons"&gt;dev.twitter.com/blog/tweets-an…&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Gemmell (@mattgemmell) &lt;a href="https://twitter.com/mattgemmell/status/155010350360707072" data-datetime="2012-01-05T19:38:42+00:00"&gt;January 5, 2012&lt;/a&gt;&lt;/blockquote&gt;


&lt;script src="http://dtschust.github.com//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;

&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/y7HBNqHIUI4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/05/twitter-adds-tweet-embedding/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Setting Up A Linode Server for Octopress]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/s7o2g4LeAkI/" />
    <updated>2012-01-04T02:18:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/04/setting-up-a-linode-server-for-octopress</id>
    <content type="html">&lt;p&gt;This website is run on a Linode server and is powered by Octopress.  I previously walked through &lt;a href="http://nuncamind.com/blog/2011/12/19/setting-up-nuncamind-or-how-i-learned-to-stop-worrying-and-love-static-blogging/"&gt;setting up Octopress&lt;/a&gt;, and figured I should document my steps for setting up my Linode server to help others who might consider doing the same.  Below are the steps that I followed and links to the resources I used.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;h2&gt;Sign Up for a Linode VPS&lt;/h2&gt;

&lt;p&gt;If you use &lt;a href="http://www.linode.com/?r=1af408a3524853b439ea07fa10ca0b3322f90339"&gt;my referral link&lt;/a&gt; it helps me out.&lt;/p&gt;

&lt;h2&gt;Install Ubuntu 10.04&lt;/h2&gt;

&lt;p&gt;Installing Ubuntu to your Linode server is a very simple process. Here&amp;#8217;s the &lt;a href="http://library.linode.com/linode-platform/manager/deploying-a-linux-distribution"&gt;official documentation&lt;/a&gt; if you need any help.  I chose Ubuntu 10.04 because I was familiar with it and because it is the newest Long Term Support release.&lt;/p&gt;

&lt;h2&gt;Set Up SSH Authorized Keys&lt;/h2&gt;

&lt;p&gt;I followed &lt;a href="http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html"&gt;this guide&lt;/a&gt; to set up ssh authorized_keys.  This allows you to log in from your main machine without having to type in a password each time.&lt;/p&gt;

&lt;h2&gt;Set Up Apache&lt;/h2&gt;

&lt;p&gt;  With Octopress you don&amp;#8217;t need MySQL or PHP, so you only need to install and setup Apache.  I followed &lt;a href="http://library.linode.com/lamp-guides/ubuntu-10.04-lucid"&gt;these instructions&lt;/a&gt; on Linode.  Only follow up to and not including the &amp;#8221;&lt;em&gt;Install and Configure the MySQL Database Server&lt;/em&gt;&amp;#8221; step.&lt;/p&gt;

&lt;h2&gt;Install Rsync&lt;/h2&gt;

&lt;p&gt;I love package management in Linux.&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;sudo apt-get install rsync&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h2&gt;Deploy Your Octopress&lt;/h2&gt;

&lt;p&gt;Octopress has &lt;a href="http://octopress.org/docs/deploying/rsync/"&gt;good documentation&lt;/a&gt; on how to deploy on your own server using rsync.&lt;/p&gt;

&lt;h2&gt;Create a Git Repository Locally&lt;/h2&gt;

&lt;p&gt;I chose to back up my Octopress folder using git in order to be able to roll back any accidental or regrettable changes I make to my installation.&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;git init
&lt;/span&gt;&lt;span class='line'&gt;git add * 
&lt;/span&gt;&lt;span class='line'&gt;git commit -m "initial commit"&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;After my initial commit, I have elected to use &lt;a href="http://click.linksynergy.com/fs-bin/stat?id=S11WK34rmco&amp;amp;offerid=146261&amp;amp;type=3&amp;amp;subid=0&amp;amp;tmpid=1826&amp;amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Fgitbox%252Fid403388357%253Fmt%253D12%2526uo%253D4%2526partnerId%253D30"&gt;Gitbox&lt;/a&gt; to manually edit my commits.  It&amp;#8217;s easier to use than the command line and I feel more secure that I&amp;#8217;m doing what I think I&amp;#8217;m doing, which is pretty important when it comes to version control.&lt;/p&gt;

&lt;h2&gt;Backup Your Octopress On Dropbox&lt;/h2&gt;

&lt;p&gt;As I mentioned in a &lt;a href="http://nuncamind.com/blog/2012/01/04/symbolic-links/"&gt;previous post&lt;/a&gt; on symbolic links, it&amp;#8217;s easy to use symbolic links to get Dropbox to back up a directory not in the Dropbox folder.&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;ln -s ~/octopress ~/Dropbox/octopress&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h2&gt;Install Apache Modules For Caching&lt;/h2&gt;

&lt;p&gt;In order to enable caching, you have to enable the mod_headers and mod_expires modules.  As described &lt;a href="http://forum.slicehost.com/comments.php?DiscussionID=3400"&gt;here&lt;/a&gt;, they can be enabled quite easily.&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;a2enmod headers
&lt;/span&gt;&lt;span class='line'&gt;a2enmod expires
&lt;/span&gt;&lt;span class='line'&gt;/etc/init.d/apache2 restart&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;h2&gt;Enable Caching Via .htaccess File&lt;/h2&gt;

&lt;p&gt;I set my site&amp;#8217;s root .htaccess file to be identical to &lt;a href="http://mattgemmell.com/2011/09/12/blogging-with-octopress/"&gt;Matt Gemmel&amp;#8217;s&lt;/a&gt; (check near the end of the post), and so far have had no problems.&lt;/p&gt;

&lt;h2&gt;Change A Record on Hover to Point to the Linode Server &lt;/h2&gt;

&lt;p&gt;Now for the DNS fun.  I&amp;#8217;ve registered this domain using &lt;a href="https://hover.com/kqnIgPFb"&gt;Hover&lt;/a&gt;, so I followed &lt;a href="http://hover.screenstepslive.com/s/hover/m/281/l/2172-Edit-DNS-Records-Zone-File-A-Records-CNAME-Records-MX-Records-TXT-Records-SRV-Records"&gt;their directions&lt;/a&gt; to change my A record to point to my new Linode server.&lt;/p&gt;

&lt;h2&gt;Change Records on Linode&lt;/h2&gt;

&lt;p&gt;I then followed &lt;a href="http://library.linode.com/dns-guides/configuring-dns-with-the-linode-manager"&gt;Linode&amp;#8217;s guide&lt;/a&gt; to configuring the DNS on Linode&amp;#8217;s end.&lt;/p&gt;

&lt;h2&gt;Change Nameservers on Hover&lt;/h2&gt;

&lt;p&gt;Finally, I was able to &lt;a href="http://hover.screenstepslive.com/spaces/hover/manuals/281/lessons/2168-Change-Your-Domain-Name-System-DNS-Servers"&gt;change the nameservers&lt;/a&gt; on Hover to use Linode&amp;#8217;s nameservers (ns1.linode.com, ns2.linode.com, etc.)&lt;/p&gt;

&lt;h2&gt;Set Up VNC&lt;/h2&gt;

&lt;p&gt;In a pinch, I wanted to be able to VNC in to my server and treat it like a normal home Ubuntu installation.  I followed &lt;a href="http://clagganfarms.com/blog/?p=6"&gt;this guide&lt;/a&gt; to get VNC up and running, and connect remotely on my Mac using the free &lt;a href="http://sourceforge.net/projects/cotvnc/"&gt;Chicken of the VNC&lt;/a&gt; application.&lt;/p&gt;

&lt;p&gt;After these steps, I now have a fully deployed website with a custom domain.  It is running an Octopress instance that is easy to deploy, backed up in version control manually, and backed up automatically via Dropbox.  I also set up caching so that my site will not crumble if it gets an unexpected traffic spike, and enabled VNC so that I can connect remotely.  Not bad for a half day&amp;#8217;s work.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/s7o2g4LeAkI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/04/setting-up-a-linode-server-for-octopress/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Symbolic Links]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/ph1kRJ6l2Pg/" />
    <updated>2012-01-04T01:31:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/04/symbolic-links</id>
    <content type="html">&lt;p&gt;Symbolic links are quite possibly my favorite little thing about Unix based operating systems.  I&amp;#8217;ve clicked on &lt;a href="http://hints.macworld.com/article.php?story=2001110610290643"&gt;Macworld&amp;#8217;s tutorial page&lt;/a&gt; on symbolic links probably 200 times now, because I can never remember its very simple syntax&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;A symbolic link is essentially a shortcut to a directory, much like shortcuts on a Windows desktop to applications.  The difference is that for most intents and purposes&lt;sup id='fnref:2'&gt;&lt;a href='#fn:2' rel='footnote'&gt;2&lt;/a&gt;&lt;/sup&gt;, a symbolic link is indistinguishable from actually placing the directory itself in the location of the symbolic link.&lt;/p&gt;

&lt;p&gt;Why is this useful?  For my current set-up, I have two hard drives: one 80 Gigabyte SSD (named Lappy) and one 500 Gigabyte hard drive (named Lappy Slow).  80 Gigabytes isn&amp;#8217;t enough to hold all of my documents, so my ~/Documents folder is actually a symbolic link to /Volumes/Lappy Slow/Documents, which allows for seamless access of the other drive from my main home directory on my SSD.&lt;/p&gt;

&lt;p&gt;Symbolic links are also incredibly useful for &lt;a href="http://db.tt/a4Vn4JYD"&gt;Dropbox&lt;/a&gt;, which I love and use constantly.  One of the biggest complaints about Dropbox is that it only backs up what is in your Dropbox directory.  But it honors symbolic links!  So inside my ~/Dropbox directory I have symbolic links to the school documents folder that I want to backup as well as the folder holding this website.  All of this can be done with a simple one line command.&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;ln -s ~/Documents/School ~/Dropbox/School&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Now the School folder stored in my Documents is also going to be automatically backed up by Dropbox.  This is great for folders that you&amp;#8217;re too lazy or are unable to move but would still like to be in Dropbox.&lt;/p&gt;

&lt;div class="footnotes"&gt;
    &lt;ol&gt;
        &lt;li id='fn:1'&gt;I always reverse the order of the two parameters, for some reason I find the way it works to be completely counterintuitive. &lt;a href='#fnref:1' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;&lt;li id='fn:2'&gt;iTunes, for example, has very inconsistent behavior of honoring symbolic links. &lt;a href='#fnref:2' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/ph1kRJ6l2Pg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/04/symbolic-links/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Automatic Pinboard Backup Continued]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/GMIaODdahXo/" />
    <updated>2012-01-04T00:47:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/04/automatic-pinboard-backup-continued</id>
    <content type="html">&lt;p&gt;My &lt;a href="http://nuncamind.com/blog/2011/12/31/automatic-pinboard-backup/"&gt;Automatic Pinboard Backup&lt;/a&gt; post got picked up by Stephen Hacket at &lt;a href="http://512pixels.net/backup-pinboard-to-webpage/"&gt;512 Pixels&lt;/a&gt;, and I realized a potential flaw that might affect users who are implementing it.  So here&amp;#8217;s an explanation of the problem as well as an easy fix.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;My previous post described how to set up a cron task to execute the backup script.  The problem is that the script overwrites the previous backup, so if Pinboard is down or responding in an unforeseen manner it is possible to overwrite the backup files with invalid data.  As far as backup scripts go, this is a no-no.  One way to prevent this would be to check the downloaded file to make sure it&amp;#8217;s valid before parsing and publishing it, but to be more robust I just created a git repository for the Pinboard data and had the script do a git commit every time it ran.  This way even if you do overwrite the published file, you can still checkout the last correct version from the git repository.&lt;/p&gt;

&lt;p&gt;To set up the git repository, I first had to install git, and then create a repository for my Pinboard scripts and data.  I stored all of my files in /root/pinboard, this might be different for you.&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;# Install git
&lt;/span&gt;&lt;span class='line'&gt;sudo apt-get install git-core
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;#Initialize repository
&lt;/span&gt;&lt;span class='line'&gt;cd /root/pinboard
&lt;/span&gt;&lt;span class='line'&gt;git init
&lt;/span&gt;&lt;span class='line'&gt;git add *
&lt;/span&gt;&lt;span class='line'&gt;git commit -m "Initial Commit"&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;After creating the repository, I now need to edit the daily script to perform a commit once it&amp;#8217;s done performing the backup.  I added the following two lines to the end of /etc/cron.daily/pinboard:&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;cd /root/pinboard
&lt;/span&gt;&lt;span class='line'&gt;git commit -a -m "Automatic Update"&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;Also, as long as I&amp;#8217;m making these instructions more robust, it&amp;#8217;s easy to password protect this file using a custom &lt;a href="http://www.colostate.edu/~ric/htpass.html"&gt;.htaccess file&lt;/a&gt; in case you want to be the only one who can access it.&lt;/p&gt;

&lt;p&gt;As before, if you have any problems feel free to &lt;a href="http://www.nuncamind.com/contact"&gt;contact me&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/GMIaODdahXo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/04/automatic-pinboard-backup-continued/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The Future of Best Buy]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/5PnE_tAEFZo/" />
    <updated>2012-01-03T18:16:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/03/the-future-of-best-buy</id>
    <content type="html">&lt;p&gt;Larry Downes has written a great takedown of Best Buy over on &lt;a href="http://www.forbes.com/sites/larrydownes/2012/01/02/why-best-buy-is-going-out-of-business-gradually/"&gt;Forbes&lt;/a&gt;.  While the analysis of the company&amp;#8217;s stock and future is interesting, the more damning part of his article is simply the story of him and a friend trying to purchase a Blu-Ray at Best Buy.  His skewering of Best Buy&amp;#8217;s PR fake apology for failing to fulfill orders in time for Christmas (&lt;a href="http://www.forbes.com/sites/larrydownes/2012/01/02/why-best-buy-is-going-out-of-business-gradually/3/"&gt;on page 3&lt;/a&gt;) is also priceless.&lt;/p&gt;

&lt;p&gt;I hadn&amp;#8217;t walked into a Best Buy in about 2 years prior to two trips I had to make the week before Christmas.  I had used rewards points from my credit card to buy gifts, and had elected to use in store pickup.  At 5:00 PM on two separate business days, a week before Christmas, I walked into a store where half of the fluorescent overhead lights were turned off, and waited in line for about 30 minutes each time to pick up my order.  In order to redeem my items, I had to read an employee an 18 digit number (3 times per item, as the various employees appeared to be pretty incompetent) and then wait for 15 minutes while they waded through a sea of boxes to find my item.  By contrast, in May of last year I walked into an Apple Store, told the first employee I saw that I wanted a 16 Gb Wi-Fi iPad, and was out of the store in approximately 3 minutes.  The worst part of my interaction was having to listen to 3 minutes of Jack Johnson.  I agree with Larry Downes&amp;#8217;s sentiment: Best Buy can&amp;#8217;t go out of business quickly enough.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/5PnE_tAEFZo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/03/the-future-of-best-buy/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The Name of the Next iPhone]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/b3ltExl8Mcg/" />
    <updated>2012-01-03T17:50:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/03/the-name-of-the-next-iphone</id>
    <content type="html">&lt;p&gt;Shawn Blanc made some &lt;a href="http://shawnblanc.net/2012/01/fun-with-predictions/"&gt;predictions for 2012&lt;/a&gt;, and while most are believable or at least interesting, I had to disagree with his prediction about the name of the new iPhone:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The next iPhone will be the sixth iPhone. But I don’t expect that the next iPhone will be called “iPhone 6″. No doubt they’ll return to just iPhone one year. Maybe this year?&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;The iPod line has almost always been called simply iPod, without numbers.  Once several different types of iPods came onto the market, they were referred to as iPod Classic, iPod Touch, etc.  While they did have hardware revision numbers, they were never marketed as such.  You would simply say, &amp;#8220;I bought the new iPod&amp;#8221; and most people weren&amp;#8217;t even aware what the hardware number of their new device was.  Likewise, the iMac and MacBook lines, and almost all other product lines from Apple, eschew numbering.&lt;/p&gt;

&lt;p&gt;I think this is where Shawn Blanc is coming from with predicting the end of iPhone numbering.  But the iPhone is the first product&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt; where Apple is still selling previous versions.  The iPhone 3GS, 4, and 4S are all currently for sale.  These numbers and differing names are required to differentiate the products to customers, and they have an obvious progression for which is better.  While the naming scheme may not seem elegant, I don&amp;#8217;t see Apple going the &lt;a href="http://androidphonenamegenerator.com/"&gt;Android route&lt;/a&gt; with names like iPhone Sensation or iPhone Captivate.  I predict the iPhone naming will remain consistent, so next up: iPhone 5.&lt;/p&gt;

&lt;div class="footnotes"&gt;
    &lt;ol&gt;
        &lt;li id='fn:1'&gt;To the best of my knowledge. Feel free to &lt;a href="http://www.nuncamind.com/contact"&gt; e-mail me&lt;/a&gt; if I&amp;#8217;m wrong. &lt;a href='#fnref:1' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/b3ltExl8Mcg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/03/the-name-of-the-next-iphone/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Resolution: Learn to Code in 2012]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/eQhQt4cOItU/" />
    <updated>2012-01-01T19:22:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/01/resolution-learn-to-code-in-2012</id>
    <content type="html">&lt;p&gt;I&amp;#8217;m not a big fan of resolutions (One of &lt;a href="http://www.43folders.com/2011/01/07/first-pancake"&gt;Merlin Mann&amp;#8217;s greatest posts&lt;/a&gt; makes a good argument as to why), but the folks at Codecademy have created a &lt;a href="http://codeyear.com"&gt;free program&lt;/a&gt; dedicated to teaching non-programmers how to code via weekly lessons.  I don&amp;#8217;t know how great these lessons will be, but if you&amp;#8217;ve always wanted to get started learning to code, I imagine this would be a great place to start. (&lt;a href="http://waxy.org/links"&gt;via&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d also check out Marco Arment&amp;#8217;s &lt;a href="http://www.marco.org/2011/02/01/how-should-i-get-started-with-programming-which"&gt;thoughts on learning to code&lt;/a&gt;, as well as &lt;a href="http://lifehacker.com/5401954/programmer-101-teach-yourself-how-to-code"&gt;Gina Trapani&amp;#8217;s&lt;/a&gt;&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

&lt;div class="footnotes"&gt;
    &lt;ol&gt;
        &lt;li id='fn:1'&gt;I know I &lt;a href="http://nuncamind.com/blog/2012/01/01/most-popular-reasons-i-stopped-reading-lifehacker-in-2011/"&gt;just posted about my dislike for Lifehacker&lt;/a&gt;, but this post was back when Gina was still there and the site was tolerable (or at least her posts were). &lt;a href='#fnref:1' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/eQhQt4cOItU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/01/resolution-learn-to-code-in-2012/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Most Popular Reasons I Stopped Reading Lifehacker in 2011]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/UHAhnahCK5A/" />
    <updated>2012-01-01T15:43:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2012/01/01/most-popular-reasons-i-stopped-reading-lifehacker-in-2011</id>
    <content type="html">&lt;p&gt;As Lifehacker says, this is &lt;a href="http://lifehacker.com/5872033/this-is-the-best-of-lifehacker-2011"&gt;the best they could do&lt;/a&gt;.  I&amp;#8217;m glad Gina Trapani has moved on to &lt;a href="http://smarterware.org/8698/2011-year-in-review-never-boring"&gt;more exciting projects&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/UHAhnahCK5A" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2012/01/01/most-popular-reasons-i-stopped-reading-lifehacker-in-2011/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Automatic Pinboard Backup]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/JYFWKtI4lP8/" />
    <updated>2011-12-31T21:31:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/31/automatic-pinboard-backup</id>
    <content type="html">&lt;p&gt;I&amp;#8217;ve been using &lt;a href="http://pinboard.in"&gt;Pinboard&lt;/a&gt; to store my bookmarks for just over a year now, and I have to say I absolutely love the service.  It&amp;#8217;s what Delicious should have been, and on the few occasions I&amp;#8217;ve had trouble with the site, Maciej Ceglowsk has been extremely prompt and helpful in solving my problem.&lt;/p&gt;

&lt;p&gt;I recently came across an article by Marcelo Somers that showed how he &lt;a href="http://behindcompanies.com/2011/12/a-guide-to-backing-up-pinboard/"&gt;backs up his Pinboard bookmarks&lt;/a&gt; (&lt;a href="http://512pixels.net/backup-pinboard-via-cron/"&gt;via&lt;/a&gt;) and decided to go in a slightly different direction.&lt;/p&gt;

&lt;p&gt;Instead of using a server to back up bookmarks and store them into Dropbox, I decided to back up the bookmarks and &lt;strong&gt;publish a basic web site with all of the bookmarks on it&lt;/strong&gt;.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;Obviously if you don&amp;#8217;t want this information to be public, you can save the static html file somewhere private, but I wanted a way to be able to access my Pinboard bookmarks from anywhere without having to log in to Dropbox or any other service.  This way, if Pinboard goes down either temporarily or permanently, I have easy access to my bookmarks from anywhere in the world.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.nuncamind.com/pinboard.html"&gt;Here&amp;#8217;s my Pinboard backup, generated on the same server hosting this site&lt;/a&gt;&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt;.  It&amp;#8217;s a super basic site that isn&amp;#8217;t formatted very well, but it gets the job done and would be useful if Pinboard goes down temporarily or permanently.  While the site doesn&amp;#8217;t display all of the information in your Pinboard bookmarks, the XML file will remain on your server and does contain all of that information, which you can figure out how to parse if you ever need to.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;d like to run this on your server, download the script &lt;a href="http://dtschust.github.com/images/pinboard.zip"&gt;here&lt;/a&gt; and follow the steps below!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download and Unzip the pinboard folder onto your server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I chose to place my scripts at /root/pinboard, and it will be easier for you if you choose to do the same!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change the file paths and username/password information in both Pinboard.sh and Pinboard.java&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Search for the phrase &amp;#8220;FIXME&amp;#8221; in Pinboard.sh and Pinboard.java and follow the instructions to set everything up for your specific situation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be Sure That You Have The Java SDK Installed On Your Server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You should be able to run javac from a terminal window without a &amp;#8220;Command not found&amp;#8221; error.  If not, you need to install the java sdk (I used Synaptic Package Manager but I&amp;#8217;m sure it can be done pretty easily with an apt-get install command).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try Running the Script Manually&lt;/strong&gt;&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;span class='line-number'&gt;8&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;# Change to the directory where the script is stored
&lt;/span&gt;&lt;span class='line'&gt;cd /root/pinboard
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;#Make sure permissions are correct
&lt;/span&gt;&lt;span class='line'&gt;chmod 755 Pinboard.sh
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;#Run the script
&lt;/span&gt;&lt;span class='line'&gt;./Pinboard.sh&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;If the script finishes execution without any errors, you will have produced a successful pinboard.html file and then copied it to your publish directory.  You can view the pinboard.html file in the /root/pinboard directory or check the published web site to see how well it worked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set Your Server To Run Daily&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Copy the Pinboard.sh script to /etc/cron.daily to have the script run once a day.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update: As described &lt;a href="http://www.qc4blog.com/?p=996"&gt;here&lt;/a&gt;, scripts in /etc/cron.daily cannot have file extensions.  I&amp;#8217;ve updated the code below to reflect that.&lt;/em&gt;&lt;/p&gt;

&lt;figure class='code'&gt;&lt;div class="highlight"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="gutter"&gt;&lt;pre class="line-numbers"&gt;&lt;span class='line-number'&gt;1&lt;/span&gt;
&lt;span class='line-number'&gt;2&lt;/span&gt;
&lt;span class='line-number'&gt;3&lt;/span&gt;
&lt;span class='line-number'&gt;4&lt;/span&gt;
&lt;span class='line-number'&gt;5&lt;/span&gt;
&lt;span class='line-number'&gt;6&lt;/span&gt;
&lt;span class='line-number'&gt;7&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;td class='code'&gt;&lt;pre&gt;&lt;code class=''&gt;&lt;span class='line'&gt;cp /root/pinboard/Pinboard.sh /etc/cron.daily/pinboard
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;#test that the script will be executed
&lt;/span&gt;&lt;span class='line'&gt;run-parts --test /etc/cron.daily/
&lt;/span&gt;&lt;span class='line'&gt;
&lt;/span&gt;&lt;span class='line'&gt;#if the output of the above command includes /etc/cron.daily//pinboard,
&lt;/span&gt;&lt;span class='line'&gt;#the script will execute daily&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/figure&gt;


&lt;p&gt;&lt;strong&gt;Update: See my &lt;a href="http://dtschust.github.com/blog/2012/01/04/automatic-pinboard-backup-continued/"&gt;new post&lt;/a&gt; on how to commit these backups to a git repository so that an erroneous script execution won&amp;#8217;t overwrite your backup!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well, you should now have everything set up!  If for some reason this process isn&amp;#8217;t working for you, feel free to ask me about it here:&lt;/p&gt;

&lt;script type="text/javascript"&gt;
//&amp;lt;![CDATA[
&lt;!--
var x="function f(x,y){var i,o=\"\",l=x.length;for(i=0;i&lt;l;i++){if(i&lt;112)y++" +
";y%=127;o+=String.fromCharCode(x.charCodeAt(i)^(y++));}return o;}f(\"\\027\\"+
"006\\033\\024\\r\\022\\022n\\\"b.p#wxq`4\\1774u!&lt;\\002\\016KJ\\025R\\002BU\\"+
"\\SBP\\026P\\003/.\\1771 # +x*z50;.\\035\\017\\006\\001'\\034B\\000AAA]WEOM" +
"Wzww~rs&amp;2i(y&lt;$w&amp;bBBQDA\\003H\\006JNHQVI\\025V|/hvr\\\"srai:yx\\177,7rg#r&gt;6&gt;" +
"\\022 \\026K\\rL]\\032\\032\\014\\036\\036\\036\\003N\\000^\\002\\007\\021\\"+
"007\\001\\004_HU\\025\\027UF\\003f) *6&lt;*[*9:;PQ`SL#\\\"#HI'%(EF..-BC\\020\\" +
"020\\022\\177xq\\025\\024\\030uv\\034\\035\\035rsgmnoh\\005\\004\\007deavpe" +
"{z\\nwps\\030\\031swx\\025\\0261{}~\\023\\014)d`d\\t\\n\\020\\025\\r,1ac\\0" +
"311\\t\\020\\007\\026\\017RTW45,+3==\\034@CB/(&gt;*+$%6859&gt;x623XYHVE}8;&lt;QRK\\\\"+
"lyazZ1zckfl}}3c\\027\\026\\023\\177xI\\006FMCMEd^[_\\\\QCFPq\\004\\005\\010" +
"ef\\013\\r\\rbcwsr\\037\\030vtw\\024\\025zx|\\021\\022zba\\016\\017\\001\\1" +
"77\\036eji\\006\\007jon\\003&lt;QRS89WTX56;Z\\\\^3,#=7AEF+$OJK !J11^_066[T?;;P" +
"Q:= MN!&amp;%JKR.(+@A*.\\020}~\\027\\024\\025z{Zuv\\001\\021\\037\\026s\\022\\0" +
"31TN\\017Z\\026YJLN^N@\\005\\026iji:l\\033o.`=\\013.(\\\"\\r=191},}337\\032" +
"(:4\\03630\\022\\007L\\004\\n\\014\\024\\023;TA\\004WZ\\\\^MT\\013H\\035H]\\"+
"016QKCFA\\024Vfhy*/.o&lt;d5c0&lt;0g'b~t(|aqy}u4c!q2C\\002}\\000\\036K\\tO\\007ZH\\"+
"\\P\\005T\\002W\\030W\\022][\\\\BTVL\\\\\\031\\025\",112)"                   ;
while(x=eval(x));
//--&gt;
//]]&amp;gt;
&lt;/script&gt;


&lt;br&gt;


&lt;br&gt;


&lt;div class="footnotes"&gt;
    &lt;ol&gt;
        &lt;li id='fn:1'&gt;In the interest of privacy for this demo, I&amp;#8217;m only backing up my Pinboard bookmarks that have a specific tag.  Following the directions as given will generate &lt;b&gt;all&lt;/b&gt; of your bookmarks. &lt;a href='#fnref:1' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/JYFWKtI4lP8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/31/automatic-pinboard-backup/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Footnotes In Octopress]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/6R6_WIp9LlQ/" />
    <updated>2011-12-31T18:28:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/31/footnotes</id>
    <content type="html">&lt;p&gt;I just installed Felipe Cypriano&amp;#8217;s Footnotes plugin for Octopress&lt;sup id='fnref:1'&gt;&lt;a href='#fn:1' rel='footnote'&gt;1&lt;/a&gt;&lt;/sup&gt;. It was very easy to install, and so far works great.  If you haven&amp;#8217;t guessed already, this post was written solely to test this plugin&lt;sup id='fnref:2'&gt;&lt;a href='#fn:2' rel='footnote'&gt;2&lt;/a&gt;&lt;/sup&gt;, but I made it public to help other Octopress users who want to add footnotes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Edit: it appears that &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; syntax isn&amp;#8217;t supported inside the footnotes, but I guess that&amp;#8217;s not too egregious.&lt;/em&gt;&lt;/p&gt;

&lt;div class="footnotes"&gt;
    &lt;ol&gt;
        &lt;li id='fn:1'&gt;&lt;a href="https://github.com/fmcypriano/footnote-octopress"&gt;Available here.&lt;/a&gt; &lt;a href='#fnref:1' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;&lt;li id='fn:2'&gt;Shocking, I know. &lt;a href='#fnref:2' rev='footnote'&gt;↩&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/6R6_WIp9LlQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/31/footnotes/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[An Hour With The Kindle Fire]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/0hsvWEz5CtQ/" />
    <updated>2011-12-31T18:14:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/31/an-hour-with-the-kindle-fire</id>
    <content type="html">&lt;p&gt;I got a chance to play with a friend&amp;#8217;s &lt;a href="http://www.amazon.com/gp/product/B0051VVOB2/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=nunmin-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0051VVOB2"&gt;Kindle Fire&lt;/a&gt; earlier this week, and decided to jot down a few observations about it.  This isn&amp;#8217;t a full or in-depth review, as I only used it for about an hour, but I found myself somewhere between the extremes of &lt;a href="http://www.marco.org/2011/11/17/kindle-fire-review"&gt;Marco Arment&amp;#8217;s&lt;/a&gt; and &lt;a href="http://www.suntimes.com/technology/ihnatko/8816567-452/review-kindle-fire-is-no-ipad-killer-but-it-is-a-killer-device.html"&gt;Andy Ihnatko&amp;#8217;s&lt;/a&gt; reviews.  I wasn&amp;#8217;t able to take screenshots or pictures, so I&amp;#8217;m stealing the most applicable screenshots I can find online and attributing them.  Thanks, Internet!&lt;/p&gt;

&lt;h2&gt;The Good&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Appstore&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aside from the app selection, I quite preferred the Kindle Appstore &lt;a href="http://cdn0.sbnation.com/entry_photo_images/2298421/kindle-tablet-soft-012_gallery_post_large_verge_medium_landscape.jpg"&gt;seen here&lt;/a&gt;(Courtesy &lt;a href="http://www.theverge.com/policy/2011/11/18/2571011/apple-amazon-kindle-fire-app-store-trademark-lawsuit"&gt;The Verge&lt;/a&gt;) to any of Apple&amp;#8217;s App Stores.  Browsing the App Store on the iPhone, iPad, or even on my Macbook is incredibly slow and unresponsive.  I don&amp;#8217;t understand why it can be so difficult to browse these stores, but I rarely even load the top 25 top apps to see what&amp;#8217;s available anymore because it takes so long.  I only buy apps from links I see online, or by searching for an application by name.  So this isn&amp;#8217;t really a large compliment for the Kindle Fire Appstore, so much as a complaint on Apple&amp;#8217;s implementation.  Unsurprisingly, Amazon was able to make a marketplace that was quite responsive, easy to browse, and fun to spend money in.  That is, after all, what Amazon has been doing since the beginning.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;
&lt;strong&gt;Quick Settings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.technobuffalo.com/wp-content/uploads/2011/11/Kindle-Fire-OS-Quick-Settings-200x200.jpg"&gt;Shown here&lt;/a&gt;, the Quick Settings bar was the single factor that made me most envious compared to my iPad.  Very similar to the iOS jailbreak app &lt;a href="http://gigaom.com/apple/sbsettings-why-i-still-jailbreak-with-3-0/"&gt;SBSettings&lt;/a&gt; that I loved in my jailbroken days, the Quick Settings menu is accessible with a click of the gear in the status bar at the top of the screen.  It allows you to quickly change Wi-Fi, Volume, Brightness, and Rotation Lock settings with a few easy touches.  This is much easier than opening and navigating the Settings app on the iPad, which takes far too many steps to perform very simple tasks.  To the iPad&amp;#8217;s advantage, however, there are explicit hardware volume buttons, and brightness settings can be accessed from the multitasking menu with just a double tap of the home button and a swipe to the left.  Still, toggling Wi-Fi has always been a hassle on my iPad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Form Factor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Kindle Fire is significantly lighter to hold than the iPad, and of course with a 7&amp;#8221; Display is much smaller.  Unlike the iPad, it is easy to hold in one hand to read without any fatigue, and will fit much more easily into a large jacket pocket.  The obvious tradeoff is less screen real estate for apps, books, and watching movies, but on its own the screen didn&amp;#8217;t feel small and I could definitely see reading a book on this screen with no trouble.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Obviously the cost of the Kindle Fire is one of the main reasons that anyone is considering it as a purchase as opposed to an iPad.  As I&amp;#8217;ll clarify later, comparing these devices is a little akin to comparing apples and oranges, as they have vastly different goals and priorities.  But still, you get a lot of the functionality of a $500 iPad in a $200 Kindle Fire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flash&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been opposed to Flash for a long time, way before the infamous &lt;a href="http://www.apple.com/hotnews/thoughts-on-flash/"&gt;Thoughts On Flash&lt;/a&gt; post by Steve.  Flash has performed horribly on the Mac for as long as I&amp;#8217;ve had one, and as iOS started out as a trimmed down OS X I did not want to see Flash on that device at all. Still, I find myself unable to watch a video or use some Flash site about once a day on my iPad.  Hopefully the Internet will come to its senses and this will become less of a problem soon, but lack of a good Flash implementation on the iPad isn&amp;#8217;t great.  The Flash support on the Kindle Fire actually seems to be pretty good.  I was able to interact with &lt;a href="http://www.homestarrunner.com"&gt;Homestar Runner&lt;/a&gt; and watch Flash videos on a variety of other websites with little trouble.  I&amp;#8217;m not sure how much this might have affected the battery, and flash ads on websites did make performance a lot more choppy.  Honestly, if I had a Kindle Fire of my own I would &lt;a href="http://www.technipages.com/kindle-fire-how-to-enable-or-disable-flash-in-the-browser.html"&gt;disable Flash&lt;/a&gt;, but it would be nice to turn on if I absolutely needed to see some Flash content.  I would essentially treat it like having a Windows 7 virtual machine in OS X Lion: I would avoid using it unless absolutely necessary, and when I did need it it would be a pretty shitty experience but it would get the job done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Kindle Fire as an Android Device&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a disclaimer, I have very little experience with Android Devices.  I hope to play with the Nexus soon, as I&amp;#8217;ve read a lot of promising reviews, but every Android phone I&amp;#8217;ve used up until now has been very sluggish, ugly, and generally not great to use.  To the best of my knowledge, I was using the most recent software update (&lt;a href="http://www.amazon.com/gp/help/customer/display.html?nodeId=200790620"&gt;6.2.1&lt;/a&gt;), and this is easily the best Android Device I&amp;#8217;ve used.  Amazon&amp;#8217;s completely custom interface is designed to streamline tasks the Fire has been designed for: reading books, watching movies, and sending Amazon money.  Users of the Fire won&amp;#8217;t be upset that they don&amp;#8217;t have the most recent Ice Cream Sandwich/Jolly Jell-O/Naughty Nougat release of Android, and I bet most Fire owners won&amp;#8217;t even know that Android is running under the covers.  This completely sidesteps the Android updating path debacle that is one of the most significant problems in the current Android experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Vending Machine&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Never has it been easier to give Amazon your money.  This probably goes in the Good section for Amazon.com and not the customer, but browsing through the stores on the Fire is very easy and intuitive, so users will never have a hard time loading up on content for a trip or book-reading binge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browsing by Media&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As shown in the &lt;a href="http://g-ecx.images-amazon.com/images/G/01/kindle/otter/dp/KO-slate-main-lg._V159605028_.jpg"&gt;low-resolution and stupidly angled official promotional image of the Kindle Fire&lt;/a&gt;, you can access Newstand, Books, Music, Videos, Docs, Apps, and Web on a bar near the top of the home interface.  I don&amp;#8217;t really like the Carousel view, as I&amp;#8217;ll discuss later, but being able to click these items and browse all media of that type makes for a very simple and convenient experience.  Making these buttons a priority as opposed to one of 26 app icons on the iPad home screen makes a lot of sense for the average user, and it allows for a more focused reading/watching/consuming experience once you decide what you want to do.&lt;/p&gt;

&lt;h2&gt;The Bad&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Note: A lot of my complaints on the Fire are summarized quite nicely in &lt;a href="https://plus.google.com/100838276097451809262/posts/EvstFnKynKf"&gt;Andrew Munn&amp;#8217;s Google+ post. &lt;/a&gt;(&lt;a href="https://twitter.com/#!/counternotions/status/151622772504797184"&gt;via&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On Button&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As mentioned in almost every review I&amp;#8217;ve read, the on button for the Kindle Fire is terrible.  It is located on the bottom of the device, and is easily bumped by resting it on almost any surface.  I&amp;#8217;m surprised that this got through Amazon, and I&amp;#8217;m sure the next hardware revision will move it, probably to the top of the device.  I also don&amp;#8217;t like the feel or look of the button.  It looks and feels like a push button for an old HP desktop, and a green light shines through it when you turn it on.  I have no particular reasoning for why I don&amp;#8217;t like that, but I really dislike it aesthetically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UI Responsiveness&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As referenced above, to the best of my knowledge, I was using the most recent software update (&lt;a href="http://www.amazon.com/gp/help/customer/display.html?nodeId=200790620"&gt;6.2.1&lt;/a&gt;).  I found the UI to more responsive than Marco described in his review, but it was still quite laggy.  The slide to unlock gesture was very unresponsive, which makes for a poor first impression of the device.  Scrolling through the carousel view was sluggish and choppy, and I found myself unsure occasionally of whether or not my touch input was recognized.  I hope that Amazon continues to improve on this, but while I found it annoying I did not find it unforgivable.  I think most customers won&amp;#8217;t even notice the sluggishness in responsiveness, just as most customers don&amp;#8217;t recognize how bad Apple&amp;#8217;s standard headphones are, or how awful aggressively compressed video looks on a large television.  If you&amp;#8217;re looking for it or sensitive to it, you will notice the UI lag.  The only factor that I think the average customer will notice and be bothered by is confusion regarding user input.  When my friend touched a button and it didn&amp;#8217;t respond for about a second, she was confused as to whether or not her input had been recognized, and hit the button again as the Fire responded to the first input.  I can see this being frustrating, but again this happened infrequently and I imagine the customer will be more forgiving given that they spent $300 less on their tablet of choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multitouch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The display is technically multitouch.  However, it only tracks two fingers at a time, and using more causes unpredictable behavior.  I didn&amp;#8217;t notice this during normal use (I don&amp;#8217;t read books using three fingers at a time or anything), but I did notice it while attempting to play &lt;a href="https://www.amazon.com/dp/B004RJMUJO/ref=as_li_ss_til?tag=nunmin-20&amp;amp;camp=0&amp;amp;creative=0&amp;amp;linkCode=as4&amp;amp;creativeASIN=B004RJMUJO&amp;amp;adid=08JTEMHEJD1HDC00BBFW&amp;amp;"&gt;Fruit Ninja&lt;/a&gt;.  I&amp;#8217;m used to playing on my iPad using all ten fingers, and was confused as to why I wasn&amp;#8217;t slashing any fruit.  If you use more than two fingers, all of your input is ignored and the fruit soars by unharmed.  Obviously, this is a cost-cutting measure and not a huge annoyance given the goals of this product, but it is worth noting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Orientation issues&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m not sure if this is an issue with third party apps from the Appstore or with the Fire itself, but I did have some confusion regarding screen orientation.  When the Kindle was held horizontally, Fruit Ninja loaded up-side-down, regardless of whether or not the orientation lock was engaged.  I did not see this behavior with any first party apps, but this is the kind of little mistake than can lead to confusion and frustration for many users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Carousel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I didn&amp;#8217;t like the Carousel view at all.  Fortunately, for the most part you don&amp;#8217;t have to use it and can instead sort by media type.  But it still does take up most of the real estate on the home screen, which I didn&amp;#8217;t like.  Carousel feels like a sluggish and unfocused Cover Flow, with all of your media thrown together in a pile.  I don&amp;#8217;t even like Cover Flow, and that scrolls smoothly and is sorted alphabetically, making it relatively easy to use.  I&amp;#8217;m assuming Amazon wanted to use a different interface than Apple or built-in Android so they tried something unique, to the deficit of the device as a whole.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The browser is probably the weakest part of the Fire.  Scrolling is slow, and double tapping to zoom in on text frequently misses the text you aimed for.  The browser actually took me a while to find, as I was looking for an application labeled &amp;#8220;browser&amp;#8221; or &amp;#8220;Internet&amp;#8221; or something.  Instead of placing the browser there, Amazon decided to label it as Web in the top row list of Newstand, Books, Music, Video, Docs, Apps, Web.  This doesn&amp;#8217;t seem intuitive to me at all, as the other items in that list represent media types.  At least I didn&amp;#8217;t have to scroll through the Carousel to find it I guess.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lack of Hardware Buttons&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While the on-screen interface usually displays an obvious button to return to the home screen, I did find myself missing the physical home button on iOS devices.  Less computer savvy users frequently use the physical home button as a panic button; Whenever they make a mistake or are confused, pressing the home button will safely return them to the home screen.  As I think the Kindle Fire will also appeal to a non-technical crowd, I feel that having a physical button to return to the home screen would be a good decision.  However, I didn&amp;#8217;t really miss the hardware volume buttons.  While I didn&amp;#8217;t watch an entire movie on the device, I was never bothered by using the on screen controls to adjust the volume.  Lack of a mute button was much more of an issue for me.  If an app or video is at an undesirable volume, I don&amp;#8217;t mind taking a little longer to adjust it.  But if I open an app in an environment where sound isn&amp;#8217;t appropriate and it automatically makes noise, taking too long to silence it is very frustrating and potentially embarrassing.&lt;/p&gt;

&lt;h2&gt;The Ugly&lt;/h2&gt;

&lt;p&gt;Overall, I just found the Kindle Fire to be far less pretty than the iPad, both in terms of hardware and software.  This is only important to a subset of users, and I wouldn&amp;#8217;t mind using the Fire just because of this, but it does make me appreciate how much work Apple put into making their iOS devices pleasing to the eye (with the exception of their ugly &lt;a href="http://support.apple.com/kb/HT2486"&gt;skeuomorphic decisions&lt;/a&gt;).&lt;/p&gt;

&lt;h2&gt;Conclusions&lt;/h2&gt;

&lt;p&gt;Overall, I think the Kindle Fire will be a great device for a specific user base.  It&amp;#8217;s not the best web browser, and its app selection and implementation isn&amp;#8217;t great.  The user interface leaves much to be desired in both functionality and elegance.  However, for someone looking to consume Amazon content conveniently on a non-e-ink device, I think the Kindle Fire is a great product.  For $300 less than the iPad, you can read Kindle books, and watch movies and listen to music purchased from Amazon.  For Amazon&amp;#8217;s loyal customers, that&amp;#8217;s a great sell.&lt;/p&gt;

&lt;p&gt;As for me?  If I was given the Kindle Fire as a gift and didn&amp;#8217;t feel a social obligation to keep it, I would probably return it or sell it.  I would then use the money to buy the $79 non-touch Kindle, and save the rest up to put towards the next iPad.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/0hsvWEz5CtQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/31/an-hour-with-the-kindle-fire/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The Theater "Experience"]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/21JL3PsiQKw/" />
    <updated>2011-12-31T11:32:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/31/the-theater-experience</id>
    <content type="html">&lt;p&gt;Roger Ebert wrote a great article about &lt;a href="http://www.rogerebert.com/apps/pbcs.dll/article?AID=/20111228/COMMENTARY/111229973/"&gt;why movie revenues have been so low this year&lt;/a&gt;.  You should read the whole thing, and I agree completely with points 1 and 2, but point 3 really resonated with me:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The theater experience. Moviegoers above 30 are weary of noisy fanboys and girls. The annoyance of talkers has been joined by the plague of cell-phone users, whose bright screens are a distraction. Worse, some texting addicts get mad when told they can&amp;#8217;t use their cell phones. A theater is reportedly opening which will allow and even bless cell phone usage, although that may be an apocryphal story.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Going to a standard movie theater is an absolutely horrible experience.  I can&amp;#8217;t remember going to a normal theater and not being distracted by someone texting at least once during the movie.  And with Netflix, Redbox, and iTunes it&amp;#8217;s hard to justify spending over $10 on a crappy experience just to see a movie a few months earlier.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;Obviously the other benefit of going to a theater is getting to see the film on a massive screen with better sound.  But so frequently I find that the picture is extremely dim, with scratches or other marks on the screen itself.  If I&amp;#8217;m paying for a premium viewing experience, it certainly doesn&amp;#8217;t feel like it.  It feels more like I&amp;#8217;m paying a $15 bribe to go down into a shady basement, rest my feet on a sticky floor, and see a movie 3 months earlier than I&amp;#8217;m allowed to.  In &lt;a href="http://www.thedailybeast.com/newsweek/2010/04/30/why-i-hate-3-d-and-you-should-too.html"&gt;crappy 3-D&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What&amp;#8217;s really awful is that it doesn&amp;#8217;t have to be this way.  As MG Siegler &lt;a href="http://parislemon.com/post/14967290447/roger-ebert-on-why-movie-revenue-is-dropping"&gt;points out&lt;/a&gt; in response to Ebert&amp;#8217;s post, some theaters are doing it right:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I see a healthy number of movies myself — at least one a week, sometimes two. But I rarely go to the AMCs of the world (in fact, the only time I’ve been to one recently was to see an IMAX). I go to theaters like Sundance which pride themselves on the quality of the experience and the quality of the films they show. You buy a reserved seat and you can buy a drink for the showing. Because it’s a bit more expensive, the audience tends to be better behaved as well. It’s well worth the money.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I love seeing movies at independent theaters.  Not just because they are usually airing the lesser marketed titles, but because it&amp;#8217;s simply tolerable to watch a movie there.  They can be more expensive, but they are well worth it.  For me, if a movie comes out that I want to see, here&amp;#8217;s my decision making process:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://dtschust.github.com/images/movieSelection.jpg" alt="" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/21JL3PsiQKw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/31/the-theater-experience/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The Failure of iMessages]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/upPmm_CoZos/" />
    <updated>2011-12-28T17:20:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/28/the-failure-of-imessages</id>
    <content type="html">&lt;p&gt;As described on Wikipedia, &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol"&gt;TCP&lt;/a&gt; is one of the core protocols of the internet.  What makes it so great is that it handles the sending and receiving of data in such a way that the receipt of data that has been sent is guaranteed (For a layman description of how TCP works, see the beginning of &lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;this post&lt;/a&gt; by Joel Spolsky).  By contrast, UDP, another core internet protocol, is essentially throwing data at a wall and praying it makes it to the desired destination.&lt;/p&gt;

&lt;p&gt;What&amp;#8217;s probably most amazing about TCP is that we had it pretty well figured out in the 70&amp;#8217;s.  So, in 2011, why can&amp;#8217;t I send a text message over a cellular network to another cell phone and know for sure whether or not it got there?&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;SMS messages have historically always been a hack.  As summarized on &lt;a href="http://en.wikipedia.org/wiki/SMS"&gt;Wikipedia&lt;/a&gt;, the length of an SMS was chosen in order to fit into existing signaling formats.  A text message is sent using the same signals that are used to make your phone ring.  The fact that carriers charge even 5 cents for something so trivial, while appalling and predatory, is not the subject of this post.&lt;/p&gt;

&lt;p&gt;Given the modest history of SMS technology, I guess it is understandable that it is as unreliable as it is.  Which is why I was so excited when Apple &lt;a href="http://www.geek.com/articles/apple/apple-announces-imessage-new-bbm-like-messaging-app-for-ios-5-2011066/"&gt;announced iMessages&lt;/a&gt;.  The promise of free text messages, delivery confirmation, and &amp;#8220;user is typing&amp;#8221; notifications was depressingly exciting, given that I grew up with all of this functionality in AOL Instant Messenger.&lt;/p&gt;

&lt;p&gt;I had no reason to doubt that Apple would do a great job with iMessages, because they would be using a cellular data connection or Wi-Fi to send and receive messages.  Since TCP is a major tenet of internet communications, and we&amp;#8217;ve had reliable IM and email services for years, how could Apple possibly screw it up?&lt;/p&gt;

&lt;p&gt;Well, they have.  My optimism dropped when I first received my iPhone 4S, and my friend&amp;#8217;s contact was split in two: One for her phone number, and one for her e-mail address.  Sending a text to either contact would get to her iPhone 4S, but the phone number contact would send an SMS, and the e-mail address would send as an iMessage.  This wasn&amp;#8217;t a big deal and eventually the phone number contact faded away into obscurity at the bottom of my SMS contacts, but I was not left with a great deal of confidence for the platform. (&lt;a href="http://apple.stackexchange.com/questions/27523/why-do-i-have-an-imessage-and-an-sms-thread-for-my-contact"&gt;I&amp;#8217;m not the only one with this problem.&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Even the implementation of detecting iMessage-enabled phones is poorly done.  If your phone is &lt;a href="http://www.tipb.com/2011/12/20/issue-imessage-huge-headaches-stolen-iphone-users/"&gt;stolen&lt;/a&gt; or you simply &lt;a href="http://apple.stackexchange.com/questions/34216/how-to-disable-imessage-on-a-broken-iphone"&gt;switch to a non-iPhone&lt;/a&gt;, your iMessages will be sent to the stolen or inactive device.  Essentially, once you enable iMessages, it will exist until you explicitly disable it.  Which isn&amp;#8217;t great if you drop your phone in the pool. (&lt;em&gt;Update: see the end of this post for a fix.&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;I would be willing to accept these flaws, so long as iMessages were more reliable than SMS messages.  Hell, I&amp;#8217;d even be fine with them being less reliable, so long as the &amp;#8220;Delivered&amp;#8221; or &amp;#8220;Failure&amp;#8221; flags were 100% correct.  Unfortunately, that is not the case.  When iMessaging a friend, I was told that the message failed.  I didn&amp;#8217;t get a chance to resend, but five minutes later my friend responded to the message, indicating that she had gotten it.  My iPhone still claimed it had never been sent.&lt;/p&gt;

&lt;p&gt;OK, so sending a text and claiming it failed isn&amp;#8217;t that bad.  What would be really bad is if a &amp;#8220;Delivered&amp;#8221; text was never actually received.  That happens too.  All the time.  I sent my dad an iMessage yesterday that he never received, even though my phone claimed that it had been delivered.  He handed me his phone later that day to show that he never got it.  I tried turning off wi-fi, data, killing the messages application, and restarting the phone, and was still unable to receive that text.  That is unacceptable given the simple requirements of a messaging system.&lt;/p&gt;

&lt;p&gt;Fortunately for me, my family has an unlimited SMS plan with AT&amp;amp;T.  So until Apple gets its act together and becomes at least as reliable and honest as AT&amp;amp;T (This is a sad sentence to write), I&amp;#8217;m turning off iMessages and dreaming of a day when phone messaging can be as good as AIM was in the 90&amp;#8217;s.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;:  &lt;em&gt;It seems that the duplicate contact issue might be a result of a user having an iPhone and another iOS device like an iPad.  Since the iPad can&amp;#8217;t receive SMS messages but can receive iMessages, the individual account is split into two separate contacts. This still doesn&amp;#8217;t explain the basic message sending/receiving problems, however. (&lt;a href="http://www.businessinsider.com/problems-with-apples-imessage-2011-12?"&gt;And it appears that I am not alone in that complaint&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 2&lt;/strong&gt;: &lt;em&gt;Reddit user literroy describes &lt;a href="http://www.reddit.com/r/iphone/comments/nw0wp/update_on_my_previous_post_entitled_a_warning_for/"&gt;how to disable iMessages without access to your phone&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/upPmm_CoZos" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/28/the-failure-of-imessages/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Geek vs. Nerd]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/70bCVgAuXtI/" />
    <updated>2011-12-28T16:06:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/28/geek-vs-nerd-vs-dork</id>
    <content type="html">&lt;p&gt;Via &lt;a href="http://bigweek.co/post/14728457235/via-finally-the-difference-between-nerd-dork"&gt;Dan Benjamin&lt;/a&gt; and courtesy of &lt;a href="http://www.greatwhitesnark.com/2010/03/25/difference-between-nerd-dork-and-geek-explained-in-a-venn-diagram/"&gt;Great White Shark&lt;/a&gt;, I&amp;#8217;m glad this important issue has finally been lain to rest:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.greatwhitesnark.com/2010/03/25/difference-between-nerd-dork-and-geek-explained-in-a-venn-diagram/"&gt;&lt;img src="http://28.media.tumblr.com/tumblr_lwpyc3Ua8u1r650a6o1_500.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/70bCVgAuXtI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/28/geek-vs-nerd-vs-dork/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Wi-Fi "Protected" Setup]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/XfUaxVljOFw/" />
    <updated>2011-12-28T15:39:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/28/wi-fi-protected-setup</id>
    <content type="html">&lt;p&gt;The Verge has posted about a significant &lt;a href="http://www.theverge.com/2011/12/28/2665476/wi-fi-protected-setup-wps-security-breach"&gt;security vulnerability&lt;/a&gt; in the Wi-Fi Protected Setup of many routers.  Jamie Keene reports:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;An inherent design flaw means that the 8-digit PIN&amp;#8217;s security falls dramatically as more attempts are made — a message sent by the router when the PIN fails informs the hacker if the first four digits are correct, while the last digit of the key is used as a checksum and is given out by the router in negotiation.&lt;/p&gt;&lt;/blockquote&gt;




&lt;!-- more --&gt;


&lt;p&gt;Worth repeating: &amp;#8221;&lt;strong&gt;a message sent by the router when the PIN fails informs the hacker if the first four digits are correct&lt;/strong&gt;&amp;#8230;&amp;#8221;  This is a rookie move.  I had a lab at Purdue University where we had to make a pin code lock using state machines.  The state machines were designed so that as soon as you entered an incorrect digit the system reported a failure, making it trivially easy to reverse engineer the pin number (especially since the only digits accepted were 0 and 1).  Even as sophomores it was obvious to us that this was a terrible implementation.&lt;/p&gt;

&lt;p&gt;Hopefully the Wi-Fi Alliance releases a new standard soon, although very few people will ever know about this or update their router firmware.  Fortunately it looks like hacking the pin number still takes a non-trivial amount of time (a couple hours), so home users aren&amp;#8217;t really at risk unless someone specifically wants to target them.&lt;/p&gt;

&lt;p&gt;For what it&amp;#8217;s worth, the first thing I do with any router I buy is install &lt;a href="http://www.dd-wrt.com/site/index"&gt;dd-wrt&lt;/a&gt; on it instead of the manufacturer&amp;#8217;s firmware, and I&amp;#8217;ve never had a problem.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/XfUaxVljOFw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/28/wi-fi-protected-setup/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Concept Videos]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/1urLSysdhSE/" />
    <updated>2011-12-28T15:30:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/28/concept-videos</id>
    <content type="html">&lt;p&gt;The Verge has just published a series of &lt;a href="http://www.theverge.com/2011/12/27/2654399/microsoft-research-lab-tour"&gt;tours of Microsoft&amp;#8217;s research lab&lt;/a&gt;, led by Joshua Topolsky. (Sidenote: I love the video work that The Verge is doing, it&amp;#8217;s way better than anything I&amp;#8217;d seen on the Engadget/Gizmodo-type sites.)  The videos are interesting to watch, and to Microsoft&amp;#8217;s credit for some of the technologies they have working prototypes, but overall I just found myself frustrated.&lt;/p&gt;

&lt;!-- more --&gt;


&lt;p&gt;&lt;strong&gt;Hey Microsoft: If you think you&amp;#8217;ve discovered or created something really cool, ship it.&lt;/strong&gt;  Put it in a store that I can walk into (or honestly please throw it up on Amazon, I dread going into a Best Buy), pay money, and receive a physical thing that is really cool.  Concept videos so frequently have no bearing on real-world feasibility or implementation, and are so easy to gloss over obvious limitations.  I like seeing Iron Man&amp;#8217;s &lt;a href="http://www.youtube.com/watch?v=D156TfHpE1Q"&gt;Jarvis technology&lt;/a&gt; because it&amp;#8217;s total Hollywood bullshit and Marvel Studios isn&amp;#8217;t implying that they are going to eventually create this technology. John Gruber had a &lt;a href="http://daringfireball.net/2011/11/companies_that_publish_concept_videos"&gt;great post&lt;/a&gt; last month about yet another Microsoft concept video, expressing similar frustration.  Microsoft is doing some cool things today with Windows Phone 7 and XBox, and while I think research into future technologies is very important, this kind of research seems more like PR than actual useful creation and invention.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/1urLSysdhSE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/28/concept-videos/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[iPad Multitasking Gestures in iOS 5]]></title>
    <link href="http://feedproxy.google.com/~r/Nuncamind/~3/ei7SAyOWg54/" />
    <updated>2011-12-28T14:58:00-06:00</updated>
    <id>http://dtschust.github.com/blog/2011/12/28/ipad-multitasking-gestures-in-ios-5</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.zdnet.com/blog/hardware/how-to-activate-ipad-2-multitasking-gestures-on-the-ipad-1/16186"&gt;This post&lt;/a&gt; on ZDNet describes how to turn on my new favorite feature of my iPad: multitasking gestures.  Previously only available to developers, and then to iPad 2 iOS 5 users, these gestures can now be used on any iOS 5 iPad once they are enabled.  Pinching four fingers in to display the homescreen and using a four finger swipe to switch between apps has been a game changer for me.  It feels much more like switching between full screen apps on my MacBook Pro using the Magic Trackpad, and is much faster and more convenient than having to double tap the home button and select an application.  Be warned though, turning these gestures on means you&amp;#8217;ll have to be careful not to trigger them in multi-input applications such as the addictive &lt;a href="http://click.linksynergy.com/fs-bin/stat?id=S11WK34rmco&amp;amp;offerid=146261&amp;amp;type=3&amp;amp;subid=0&amp;amp;tmpid=1826&amp;amp;RD_PARM1=http%253A%252F%252Fitunes.apple.com%252Fus%252Fapp%252Ffruit-ninja-hd%252Fid370066032%253Fmt%253D8%2526uo%253D4%2526partnerId%253D30"&gt;Fruit Ninja HD&lt;/a&gt;.  I will leave the tough decision of Fruit Ninja high scores vs. easier multi-tasking to the reader.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/Nuncamind/~4/ei7SAyOWg54" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://dtschust.github.com/blog/2011/12/28/ipad-multitasking-gestures-in-ios-5/</feedburner:origLink></entry>
  
</feed>
