<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Economy of Effort</title>
	<atom:link href="http://economyofeffort.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://economyofeffort.com</link>
	<description>Programmer. Gamer. Technophile. Amateur NFL pundit. Awesome dude.</description>
	<lastBuildDate>Thu, 10 May 2012 22:26:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Error building Ruby 1.8.7 with rbenv/ruby-install on Linux with glibc &gt;= 2.14</title>
		<link>http://economyofeffort.com/2012/05/10/error-building-ruby-1-8-7-with-rbenvruby-install-on-linux-with-glibc-2-14/</link>
		<comments>http://economyofeffort.com/2012/05/10/error-building-ruby-1-8-7-with-rbenvruby-install-on-linux-with-glibc-2-14/#comments</comments>
		<pubDate>Thu, 10 May 2012 22:26:47 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=1151</guid>
		<description><![CDATA[If you&#8217;re using rbenv and ruby-build on a Linux that has updated to glibc 2.14 or newer, you may have encountered an error like this when attempting to build an older version of MRI: $ rbenv install 1.8.7-p357 rbenv: 1.9.3-p194 Downloading http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p357.tar.gz... Installing ruby-1.8.7-p357... BUILD FAILED Inspect or clean up the working tree at /tmp/ruby-build.20120508145707.21228 [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using rbenv and ruby-build on a Linux that has updated to glibc 2.14 or newer, you may have encountered an error like this when attempting to build an older version of MRI:</p>
<pre>$ rbenv install 1.8.7-p357 rbenv: 1.9.3-p194
Downloading http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p357.tar.gz...
Installing ruby-1.8.7-p357...

BUILD FAILED

Inspect or clean up the working tree at /tmp/ruby-build.20120508145707.21228
Results logged to /tmp/ruby-build.20120508145707.21228.log

Last 10 log lines:
callback.func:79:24: error: ‘proc’ undeclared here (not in a function)
callback.func:79:39: error: ‘argc’ undeclared here (not in a function)
callback.func:79:45: error: ‘argv’ undeclared here (not in a function)
callback.func:82:1: error: expected identifier or ‘(’ before ‘}’ token
dl.c:106:1: error: expected ‘;’, ‘,’ or ‘)’ before ‘static’
cp ../.././ext/dl/lib/dl/import.rb ../../.ext/common/dl
make[1]: *** [dl.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/tmp/ruby-build.20120508145707.21228/ruby-1.8.7-p357/ext/dl'
make: *** [all] Error 1</pre>
<p>The issue isn&#8217;t specific to ruby-build or rbenv, but rather is an issue with <a href="http://bugs.ruby-lang.org/issues/5108">building Ruby after upgrading glibc to 2.14</a>:</p>
<blockquote><p>This is caused by the fact that the generated file callback.func is corrupt. The corruption is triggered by a recent glibc change:</p>
<p><a href="http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=glibc-2.13-161-gfcabc0f">http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=glibc-2.13-161-gfcabc0f</a></p>
<p>which was to fix a POSIX compatibility issue:</p>
<p><a href="http://sourceware.org/bugzilla/show_bug.cgi?id=12724">http://sourceware.org/bugzilla/show_bug.cgi?id=12724</a></p></blockquote>
<p>Patches are provided to manually patch the Ruby source before building, but what if you&#8217;re using something like rbenv and ruby-install, instead of building Ruby manually?</p>
<p><a href="https://gist.github.com/2159108">This Gist</a>, from GitHub user kungfoo, provides a ruby-build definition for building Ruby 1.8.7-p358 with the required patch for building on a system with the updated glibc.</p>
<p>To date, I had only used rbenv and ruby-build to build Rubies from ruby-build&#8217;s included definitions. Turns out, it&#8217;s quite easy to use this definition, once I realized that that&#8217;s what this was.</p>
<p>Simply do the following:</p>
<pre>$ vim /tmp/1.8.7-p358-with-rogue-stdout-patch
... paste contents of Gist into file, save and exit ...
$ rbenv install /tmp/1.8.7-p358-with-rogue-stdout-patch</pre>
<p>Note, the filename will be the name that rbenv uses to identify this Ruby, so if you don&#8217;t want the name to be &#8220;1.8.7-p358-with-rogue-stdout-patch&#8221;, name the file to match the name you prefer.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2012/05/10/error-building-ruby-1-8-7-with-rbenvruby-install-on-linux-with-glibc-2-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pauses/hanging in Thunderbird in Linux with Lightning</title>
		<link>http://economyofeffort.com/2012/04/09/pauses-hanging-in-thunderbird-in-linux-with-lightning/</link>
		<comments>http://economyofeffort.com/2012/04/09/pauses-hanging-in-thunderbird-in-linux-with-lightning/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 21:30:31 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=1144</guid>
		<description><![CDATA[I was experiencing some very annoying pauses &#038; hangs in Thunderbird in Linux. The application would hang when launching, and periodically while open as well. CPU and RAM usage were not spiking, but the process status would show up in top as D (uninterruptible sleep - usually IO, according to the ps manpage).]]></description>
			<content:encoded><![CDATA[<p>I was experiencing some very annoying pauses &amp; hangs in Thunderbird in Linux. The application would hang when launching, and periodically while open as well. CPU and RAM usage were not spiking, but the process status would show up in <em>top</em> as D (uninterruptible sleep &#8211; usually IO, according to the <em>ps</em> manpage).</p>
<p>I tracked down the issue as being related to the Lightning calendaring extension. Lightning has an option for caching calendar entries for remote calendars. This <em>seems</em> like it would be a feature that improves performance, but as it turned out, it caused a lot of app-stalling IO. Each remote calendar has a Cache checkbox in its settings. Unchecking this immediately put an end to the pausing issues.</p>
<p>What clued me in was <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=576017">this bug report</a>, which is almost 2 years old and still &#8220;unconfirmed&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2012/04/09/pauses-hanging-in-thunderbird-in-linux-with-lightning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing slow Vim auto-completion with Ruby files</title>
		<link>http://economyofeffort.com/2012/03/01/fixing-slow-vim-auto-completion-with-ruby-files/</link>
		<comments>http://economyofeffort.com/2012/03/01/fixing-slow-vim-auto-completion-with-ruby-files/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 04:48:30 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=1115</guid>
		<description><![CDATA[I&#8217;ve been a happy Vim user for a little while now. With the exception of Objective-C for iOS development (too much of a pain without Xcode&#8217;s completion), I&#8217;ve been writing all of my code in Vim. However, I have not been making use of Vim&#8217;s auto-completion features, due to a serious performance issue when used [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a happy Vim user for a little while now. With the exception of Objective-C for iOS development (too much of a pain without Xcode&#8217;s completion), I&#8217;ve been writing all of my code in Vim.</p>
<p>However, I have not been making use of Vim&#8217;s auto-completion features, due to a serious performance issue when used with Ruby files. Completion was painfully slow. It was annoying when triggering completion manually, but it was a complete show-stopper when used with an automatic completion plugin like NeoComplCache.</p>
<p>Finally, I got a clue from <a href="http://stackoverflow.com/questions/2169645/vims-autocomplete-is-excruciatingly-slow/4277400#4277400">this StackOverflow response</a>:</p>
<blockquote><p>Had a very similar problem since upgrading to Vim 7.3 (from 7.2): I was using the (excellent) ACP plugin and in longer source files (C-files, 1700 LOC), the popup took ages to jump through the suggestions when I was editing near the bottom of the file.</p>
<p>Using the PerformanceValidator (from Softwareverify), I found out that some fold methods were called again and again and lead to very high processor load and slow completion.</p>
<p>My workaround was to set the foldmethod (fdm) to manual. And this solved it&#8230;</p></blockquote>
<p>Now, I was having issues with fairly short Ruby files, as opposed to the large C files that this responder was editing. However, it clued me in to the fact that foldmethod was getting called a lot during auto-completion, and led me to experiment.</p>
<p>Finally, I found the issue:</p>
<p><strong>foldmethod=syntax is dog-ass slow when editing Ruby syntax files.</strong></p>
<p>As soon as I switch to any other foldmethod, Ruby auto-completion becomes instant. I&#8217;ve been using foldmethod=indent, which creates folds based on code indent levels. This seems to work as well for me as syntax-aware folding did.</p>
<p>Hopefully that tip helps out anyone else who found Vim auto-completion strangely non-performant while working with Ruby files.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2012/03/01/fixing-slow-vim-auto-completion-with-ruby-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Battlefield 3: Get out of my way!</title>
		<link>http://economyofeffort.com/2011/11/03/battlefield-3-get-out-of-my-way/</link>
		<comments>http://economyofeffort.com/2011/11/03/battlefield-3-get-out-of-my-way/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 20:02:29 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=1068</guid>
		<description><![CDATA[Dear Battlefield 3, Yes, I know I&#8217;m in a Conquest checkpoint&#8217;s capture radius! The little map in the corner that&#8217;s got a big box next to me kind of gave that fact away. Now will you please get the mother-fudge out of the way? I am trying to look at things where you&#8217;ve got your big obnoxious [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Battlefield 3,</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1069" title="bf3" src="http://economyofeffort.com/wp-content/uploads/2011/11/bf3.jpg" alt="bf3 Battlefield 3: Get out of my way!" width="592" height="311" /></p>
<p style="text-align: left;"><strong>Yes, I know I&#8217;m in a Conquest checkpoint&#8217;s capture radius!</strong> The little map in the corner that&#8217;s got a big box next to me kind of gave that fact away.</p>
<p style="text-align: left;">Now will you please <strong>get the mother-fudge out of the way?</strong> I am trying to look at things where you&#8217;ve got your big obnoxious indicator.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/11/03/battlefield-3-get-out-of-my-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The (Wifi) Bridge to Nowhere</title>
		<link>http://economyofeffort.com/2011/09/06/the-wifi-bridge-to-nowhere/</link>
		<comments>http://economyofeffort.com/2011/09/06/the-wifi-bridge-to-nowhere/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 21:35:28 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=1052</guid>
		<description><![CDATA[At a restaurant I often go to for lunch, I recently noticed that connecting my iPad to the wifi network resulted in a strong signal, but no usable Internet. When I spied the router, high up on the wall, I soon discovered why.]]></description>
			<content:encoded><![CDATA[<p>At a restaurant I often go to for lunch, I recently noticed that connecting my iPad to the wifi network resulted in a strong signal, but no usable Internet.</p>
<p>When I spied the router, high up on the wall, I soon discovered why.</p>
<p><img class="aligncenter size-full wp-image-1053" title="router-to-nowhere" src="http://economyofeffort.com/wp-content/uploads/2011/09/router-to-nowhere.jpg" alt="router to nowhere The (Wifi) Bridge to Nowhere" width="500" height="340" /></p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/09/06/the-wifi-bridge-to-nowhere/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>YubiKey: Inexpensive Two-Factor Authentication</title>
		<link>http://economyofeffort.com/2011/06/10/yubikey/</link>
		<comments>http://economyofeffort.com/2011/06/10/yubikey/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 20:10:27 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[InfoSec]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=907</guid>
		<description><![CDATA[What is Two-Factor Authentication? Normally, when you log onto a computer-based service, you enter a username to tell the system who you are, and a password to authenticate (prove that you are who you say you are) with the system. That is one-factor authentication: you are providing only one thing to prove your identity. Two-factor [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_981" class="wp-caption aligncenter" style="width: 458px"><a href="http://www.info.gov.hk/hkma/eng/consumer/two_factor_auth_index.htm"><img class="size-full wp-image-981" title="two-factor" src="http://economyofeffort.com/wp-content/uploads/2011/06/two-factor.gif" alt="two factor YubiKey: Inexpensive Two Factor Authentication" width="448" height="166" /></a><p class="wp-caption-text">Pointless trivia: This image, nicely depicting the concept of two-factor authentication, was taken from the Hong Kong central bank&#39;s website</p></div>
<h2>What is Two-Factor Authentication?</h2>
<p>Normally, when you log onto a computer-based service, you enter a username to tell the system who you are, and a password to <em>authenticate</em> (prove that you are who you say you are) with the system.</p>
<p>That is one-factor authentication: you are providing only one thing to prove your identity.</p>
<p>Two-factor authentication is a setup where you have to provide more than one thing to authenticate yourself. In most cases, this means your password in addition with some physical device, a hardware-based <em>token</em>. (It is possible to create authentication systems that require even more than two factors. Systems that require two or more factors are more generally called <em>multi-factor authentication</em>).</p>
<p>The YubiKey is an inexpensive ($25) device that provides this sort of additional authentication factor.</p>
<p><img class="aligncenter size-full wp-image-971" rel="image_src" title="yubikey" src="http://economyofeffort.com/wp-content/uploads/2011/06/yubikey.jpg" alt="yubikey YubiKey: Inexpensive Two Factor Authentication" width="219" height="147" /></p>
<h2>How does it work?</h2>
<p>The YubiKey is a simple device that plugs into any USB port on your computer. The device has a single button, which, when you press it, spits out a One Time Password (OTP). In the eyes of the computer, the YubiKey is literally just a USB keyboard, and when you press the button, it enters text as if a person is typing (very fast) on that keyboard. Most operating systems support USB keyboards without any additional software, which means that at least on <strong>Windows, Mac OS X, and Linux</strong>, you can stick the YubiKey into the computer and press the button without having to install any additional software. Needless to say, this makes it incredibly convenient.</p>
<p><img class="aligncenter size-full wp-image-978" title="yubikey-lastpass" src="http://economyofeffort.com/wp-content/uploads/2011/06/yubikey-lastpass.png" alt="yubikey lastpass YubiKey: Inexpensive Two Factor Authentication" width="400" height="196" /></p>
<p>So, when you log into a service that supports YubiKey authentication, you&#8217;ll enter your username and password as usual, but you&#8217;ll also be presented with a text box for the YubiKey itself to &#8220;type&#8221; into. You&#8217;ll click in the text box as if you&#8217;re going to type in it yourself, but instead, you&#8217;ll press the YubiKey&#8217;s button and it will &#8220;type in&#8221; a very long password. Then you&#8217;ll click to log in like normal, and assuming both your password and YubiKey are valid, you&#8217;ll log in.</p>
<h2>What makes this more secure?</h2>
<div id="attachment_998" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-998" title="nikolai" src="http://economyofeffort.com/wp-content/uploads/2011/06/nikolai-300x225.jpg" alt="nikolai 300x225 YubiKey: Inexpensive Two Factor Authentication" width="300" height="225" /><p class="wp-caption-text">I book flight for Sergei to come take key</p></div>
<p>The idea behind a one-time password is that, as the name states, the password can only be used once. Even if someone is sniffing your network traffic and grabs a copy of the OTP you just used, he can&#8217;t turn around and re-use the password itself, as it&#8217;s been used and is no longer valid.</p>
<p>The idea being multi-factor authentication is that anyone who wishes to login to services as you has to be able to provide all factors. Stealing your password or stealing your YubiKey isn&#8217;t enough &#8211; they&#8217;d need to have both. That requirement of getting ahold of something that&#8217;s physically in your possession dramatically reduces the number of people with opportunity to take your digital identity. A hacker in Russia might be able to set up a website to trick me into giving up my password, but it&#8217;s a long flight for him to come get my YubiKey too.</p>
<h2>How do I make services &#8220;use&#8221; my YubiKey?</h2>
<p><img class="size-full wp-image-984 alignright" title="lastpass-logo" src="http://economyofeffort.com/wp-content/uploads/2011/06/lastpass-logo.gif" alt="lastpass logo YubiKey: Inexpensive Two Factor Authentication" width="236" height="29" /></p>
<p>First of all, to use the YubiKey, the service itself has to support YubiKey authentication. This won&#8217;t be common with your average website, but it will be more common with more security-minded services, like <a href="http://www.lastpass.com">LastPass</a> or <a href="http://www.passpack.com">PassPack</a>.</p>
<p>Secondly, before you can use your YubiKey to authenticate with a service, you have to associate your YubiKey with your account on that service. How this is done depends entirely on how that service has that feature set up. <a href="http://helpdesk.lastpass.com/security-options/yubikey-authentication/">Here, for example, is LastPass&#8217;s instruction page</a> for associating YubiKeys with your account on their service.</p>
<h2>What about services that don&#8217;t support YubiKey?</h2>
<p>If a service doesn&#8217;t support the YubiKey directly, but does support OpenID authentication, you can use your YubiKey for two-factor authentication by using an OpenID service which supports the YubiKey itself.</p>
<p><a href="http://www.clavid.com"><img class="size-full wp-image-979 alignright" title="Clavid_logo" src="http://economyofeffort.com/wp-content/uploads/2011/06/Clavid_logo.gif" alt="Clavid logo YubiKey: Inexpensive Two Factor Authentication" width="154" height="60" /></a></p>
<p><a href="http://www.clavid.com">Clavid.com</a> is such a service. With a properly set-up Clavid.com OpenID identity, you can have two-factor authentication for any service that does OpenID.</p>
<p>However, outside of those options, there&#8217;s nothing you can do to add YubiKey support to a service that doesn&#8217;t have it, besides emailing them and bugging them to add it.</p>
<h2>What if those services get hacked? Is my YubiKey compromised?</h2>
<p>When you register your YubiKey with a service like LastPass, that service does not have your Yubico encrypted identity. All they store is the 12-character Yubico ID. When you tap your YubiKey&#8217;s button and send a One-Time Password to that service, they don&#8217;t have the means of processing the password and verifying your identity. Instead, they send that password (which contains your 12-character ID) to the Yubico servers, which responds back with a &#8220;yes&#8221; or &#8220;no&#8221; to that service. Yubico acts as an authentication gateway for that factor.</p>
<p>So, only Yubico has the information necessary to process the passwords that your YubiKey creates. So, that leads to the question: what if Yubico is hacked? That is the scenario where your YubiKey&#8217;s identity may be compromised. Indeed, this happened with another token authentication system recently, <a href="http://www.extremetech.com/article2/0,2845,2386541,00.asp">RSA&#8217;s SecurID</a>. However, as long as you are using YubiKeys for multi-factor authentication, and not as a replacement for passwords, then the result of this would be that your accounts are still protected by your passwords. In other words, you&#8217;d be in the exact same place as if you weren&#8217;t using YubiKeys to begin with.</p>
<h2>The YubiKey website says this thing supports a bunch of different authentication systems. What&#8217;s the story there?</h2>
<p>The YubiKey is quite a flexible little device, and can indeed be used with a number of different authentication systems.</p>
<p>The most common of these, the thing that people are generally referring to when talking about YubiKey authentication, is Yubico&#8217;s YubiKey OTP authentication service. This is what standard YubiKeys come ready to work with right out-of-the-box, and this is what services like LastPass are referring to when stating that they support YubiKey.</p>
<p>However, you can program YubiKeys to support different systems. One thing you can do is program the YubiKey to store a single <a href="http://www.yubico.com/static-password">static password</a>. You press the button, and the YubiKey types in this password. This is a way to be able to create a and use a long, complex password that you can&#8217;t possibly memorize. And because it&#8217;s just a plain password, you can use it with any password-based system. This isn&#8217;t multi-factor authentication (since you&#8217;re back to using just a password, not something in addition to a password), but it can be very useful in certain circumstances. Yubico mentions an ideal use case: <a href="http://static.yubico.com/var/uploads/pdfs/TrueCrypt%202011-03-23.pdf">long passwords for encrypting TrueCrypt vaults</a>.</p>
<p><img class="size-full wp-image-975 alignright" title="oath" src="http://economyofeffort.com/wp-content/uploads/2011/06/oath.png" alt="oath YubiKey: Inexpensive Two Factor Authentication" width="230" height="77" /></p>
<p>YubiKeys can be programmed to work with Open Authentication (OATH). Now, read that closely. That is OATH, a system developed by VeriSign, and not OAuth, a system developed by Twitter. It took me a while before I noticed this, as I had only ever heard of OAuth before. <a href="http://blogs.verisign.com/identity-emea/2008/07/oauth_and_oath_confusing_1.php">Here&#8217;s a post from a VeriSign blogger</a> describing the difference between these two unfortunately similarly-named projects. OATH is used in (formerly VeriSign&#8217;s, now Symantec&#8217;s) VIP authentication system, which we&#8217;ll talk about later. Yubico does not run any OATH services themselves.</p>
<p>YubiKeys can also be programmed to work with SAML authentication systems. SAML is used by Google Apps&#8217; Single Sign On feature, and Yubico provides a SAML server which can be used to set up SAML-based Single Sign On for your Google Apps domain. <a href="http://wiki.yubico.com/wiki/index.php/SAMLServerStepByStep">Here are Yubico&#8217;s step by step instructions</a> for doing that.</p>
<p>In general, these other non-Yubico systems are things you would use with a specific purpose in mind, not for generally-available web services.</p>
<h2>Can you use all these services on the same YubiKey?</h2>
<p>Originally, YubiKeys supported only one &#8220;identity&#8221;, meaning you had to pick and choose only one of these authentication systems to use your YubiKey with.</p>
<p>Newer YubiKeys support two identities, so you make one YubiKey work with two different authentication systems. Naturally, most users will have a Yubico identity as one of their two. By default, the second identity is blank, so setting a key up to work with another authentication system requires using one of the <a href="http://www.yubico.com/personalization-tool">free personalization software tools</a> to program the second identity. It can be a little tricky if you haven&#8217;t done it before, so be patient and find good instructions (I may write some of my own in another post).</p>
<p>The way that you use a YubiKey with two different services is pretty clever. If you press the YubiKey button for 0 to 1.5 seconds, it outputs the results for the programmed identity in the first slot. Hold the button longer &#8211; 2.5 to 5 seconds &#8211; and it does the output for the second identity instead. There is a &#8220;dead zone&#8221; gap in the (approximately) 1.5-2.5 second range so that you can&#8217;t accidentally end up at the &#8220;border&#8221; between the two. Any tap at all is sufficient for triggering slot 1, so you&#8217;ll tap for slot 1 and hold the button down for slot 2, and you&#8217;ll get nothing at all if you try to let go in no man&#8217;s land.</p>
<h2>What about the Symantec VIP service?</h2>
<div id="attachment_973" class="wp-caption alignright" style="width: 170px"><img class="size-full wp-image-973 " title="VIP-Access" src="http://economyofeffort.com/wp-content/uploads/2011/06/VIP-Access.png" alt="VIP Access YubiKey: Inexpensive Two Factor Authentication" width="160" height="160" /><p class="wp-caption-text">The &quot;V&quot; still stands for VeriSign</p></div>
<p>Symantec&#8217;s VIP service uses OATH. However, there is a catch. While you can create an OATH-compatible identity, end users like us have no way of getting that identity into the VIP service. They do not provide a means of uploading your own created identity, as Yubico does with their service.</p>
<p>As such, Yubico has created the <a href="http://yubico.com/VIP">Symantec VIP YubiKey</a>. It&#8217;s a normal YubiKey, except with slot 1 pre-programmed with a Symantec VIP identity, which was entered in to the VIP service at the time of manufacturing, per Symantec&#8217;s rules, as explained by the YubiKey YouTube user <a href="http://www.youtube.com/comment?lc=_MHd7s7c6pOoAzr_CTkpfIPzE-8HKVXNNZPVXZ_SbFk">in this YouTube comment reply</a>:</p>
<blockquote><p>The [Symantec VIP] YubiKey is the same standard YubiKey &#8211; it already supported OATH. The problem is loading secrets and Symantec&#8217;s rules are that they can only be loaded at the time of manufacture. Hence the need for a new SKU.</p></blockquote>
<p>So, if you wish to use a YubiKey with the VIP service, you need to buy the &#8220;VIP&#8221;-specific model. Note that this model does <em>not</em> come pre-programmed with a Yubico identity, but you are of course free to create one on own for slot 2. Also, the VIP credential is hard-coded into slot 1 and can&#8217;t be removed, so you only want to get the VIP model if you do intend on using VIP.</p>
<h2>And what if you lose it, or it breaks?</h2>
<div id="attachment_989" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-989" title="lost" src="http://economyofeffort.com/wp-content/uploads/2011/06/lost-300x169.jpg" alt="lost 300x169 YubiKey: Inexpensive Two Factor Authentication" width="300" height="169" /><p class="wp-caption-text">The smoke monster took it</p></div>
<p>One big issue with multi-factor authentication is, what happens if you lose or damage one of the factors?</p>
<p>Many services have a recovery process for this, where you have to jump through hoops to prove that you&#8217;re who you claim to be. It&#8217;s also possible to order an identical replacement YubiKey that contains the same identity as the one you lost. Again, here you have to jump through hoops to prove your identity.</p>
<p>But there is a better, more forward-thinking way of protecting yourself from losing or damaging YubiKeys &#8211; more YubiKeys! Every YubiKey-compatible service I&#8217;ve run into so far allows you to associate multiple YubiKeys to your account, allowing you to authenticate using any one of them.</p>
<p>Thus, I own three YubiKeys:<br />
&#8230; one on my keyring,<br />
&#8230; one locked up somewhere safe in my house,<br />
&#8230; and one locked up in my bank safe deposit box.</p>
<p>Should I lose or break the one on my keyring, I have backups available.</p>
<p>It does mean, however, that for every new YubiKey-compatible service I start using, I need to round up all my keys to associate each of them with the new account. But in practice, this is exceedingly rare &#8211; I only have a few things I use YubiKeys with, but they&#8217;re important things.</p>
<h2>&#8220;Would you like to know more?&#8221;</h2>
<p>I&#8217;ll be writing some more posts as I go dig deeper into what you can do with the YubiKey. LastPass and OpenID are certainly cool and sufficient for picking up some YubiKeys, but I think the ability to integrate it with your own services is more interesting.</p>
<p>There is a PAM module for YubiKey authentication, allowing it to be used with things like SSH and VPN. There are also plugins for web-based CMSs like WordPress. I&#8217;m going to dig around and I&#8217;ll share what I find.</p>
<p>If you have any questions, please ask them and I&#8217;ll try to answer them, maybe in my next post. Also, if anything in this post is incorrect, please let me know and I will correct it. I am simply a consumer and do not work for Yubico or have any stake in their product other than the ~$75 I&#8217;ve invested in the three keys I own.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/06/10/yubikey/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Stuff I Like That You Should Too: Homebrew for Mac OS X</title>
		<link>http://economyofeffort.com/2011/06/07/stuff-i-like-that-you-should-too-homebrew-for-mac-os-x/</link>
		<comments>http://economyofeffort.com/2011/06/07/stuff-i-like-that-you-should-too-homebrew-for-mac-os-x/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 20:51:51 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[Stuff I Like]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=935</guid>
		<description><![CDATA[Mac OS X is a UNIX-based operating system. Apple proudly states that fact whenever they&#8217;re pitching OS X. A lot of people &#8211; myself included &#8211; like OS X in part because of this fact. I am primarily a Linux user, but for my personal laptop, it&#8217;s nice to have a system with all the [...]]]></description>
			<content:encoded><![CDATA[<p>Mac OS X is a UNIX-based operating system. Apple proudly states that fact whenever they&#8217;re pitching OS X.</p>
<div id="attachment_936" class="wp-caption aligncenter" style="width: 643px"><img class="aligncenter size-full wp-image-936" title="apple-unix" src="http://economyofeffort.com/wp-content/uploads/2011/06/apple-unix.png" alt="apple unix Stuff I Like That You Should Too: Homebrew for Mac OS X" width="633" height="365" /><p class="wp-caption-text">UNIX logo and terminal picture from Apple.com site</p></div>
<p>A lot of people &#8211; myself included &#8211; like OS X in part because of this fact. I am primarily a Linux user, but for my personal laptop, it&#8217;s nice to have a system with all the friendly-out-of-the-box UI trappings of a general consumer product, while still having UNIX at my fingertips.</p>
<p>As a UNIX system, though, Mac OS X has some limiting factors. One of the big ones is that the base system (the set of core tools that make up the OS, named Darwin on the Mac) is not really updatable. Updates come from Apple packaged as part of general operating system updates, but even when Apple does push out updates, it usually not all that up-to-date.</p>
<p>What&#8217;s more, the base system doesn&#8217;t necessarily come with everything you might want. You can always compile from source, but this is 2011 and package management is a good thing.</p>
<p>There are three main community projects which bring package management for UNIX programs to Mac OS X. They are <a href="http://finkproject.org/">Fink</a>, <a href="http://www.macports.org/">MacPorts</a>, and <a href="http://mxcl.github.com/homebrew/">Homebrew</a>.</p>
<p><a href="http://mxcl.github.com/homebrew/"><img class="aligncenter size-full wp-image-937" title="homebrew" src="http://economyofeffort.com/wp-content/uploads/2011/06/homebrew.png" alt="homebrew Stuff I Like That You Should Too: Homebrew for Mac OS X" width="370" height="140" /></a></p>
<p>Of these, my favorite is Homebrew. Homebrew is very light and lean, and ideal for people who just want to install some select packages to augment the Darwin base system.</p>
<p>Both Fink and MacPorts work around Darwin by existing in their own little ecosystems. When installing something that depends on another tool that already exists in Darwin, these package managers tend to install their own copies of those tools instead of using the one already on the system. There are some compatibility advantages to this, but at the same time, there is some confusion when there are multiple copies of libraries and binaries on the same system.</p>
<p>Homebrew takes the other approach, relying on what is provided in the Darwin base system instead of replicating everything itself. It augments Darwin instead of treating it as unreliable and building its own little world.</p>
<p>Homebrew in general &#8220;feels&#8221; nicer than Fink or MacPorts. In <a href="http://news.ycombinator.com/item?id=1096177">the words</a> of HackerNews commenter dschobel: &#8220;There is so much less friction than using macports or fink that I dropped them immediately.&#8221; That&#8217;s a good way of putting it. Homebrew is just less noisy and less intrusive.</p>
<p>There are other advantages to Homebrew. The scripts (or &#8220;formula&#8221; in Homebrew nomenclature) for building and installing packages are simple Ruby scripts. Combine the ease of creating formula with the ease of submitting them to the project &#8211; as it <a href="https://github.com/mxcl/homebrew">lives on Github</a> and anyone can contribute with a simple fork and a pull request &#8211; and you&#8217;ve got an environment for rapid crowdsourced updates.</p>
<p>And update it has. Originally I ran Homebrew with MacPorts as a backup for things that weren&#8217;t yet in Homebrew, but the number of such packages has decreased dramatically. The 1587 formulas (as of this writing) in Homebrew is still much less than the 8100 packages in MacPorts or the 12000 packages in Fink, but the important stuff is well represented (and part of the difference is due to Homebrew intentionally excluding things already in Darwin). Still, it is perfectly fine to run more than one package manager to get the package coverage you need.</p>
<p>Homebrew is very easy to use &#8211; I won&#8217;t bother replicating the explanation of basic commands here, as the <a href="http://mxcl.github.com/homebrew/">home page</a> and the <a href="https://github.com/mxcl/homebrew/wiki/Installation">instructions on the wiki</a> cover them nicely. But I will share one little BASH alias that I use. There is no single Homebrew command for upgrading all of your installed Homebrew packages to their latest versions, the way you might in a Debian-based OS with an &#8220;apt-get upgrade&#8221;. But a handy little BASH alias takes care of that:</p>
<pre class="brush: bash; title: ; notranslate"># Homebrew - upgrade all installed packages
alias brew-upgrade='brew update &amp;&amp; brew list | xargs brew install'</pre>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/06/07/stuff-i-like-that-you-should-too-homebrew-for-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS X Homebrew &#8211; gnutls build failure fix</title>
		<link>http://economyofeffort.com/2011/06/06/os-x-homebrew-gnutls-build-failure-fix/</link>
		<comments>http://economyofeffort.com/2011/06/06/os-x-homebrew-gnutls-build-failure-fix/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 21:21:18 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=926</guid>
		<description><![CDATA[When trying to update my Homebrew install, I was getting this error when building gnutls: Error: Failed executing: make install Please report this bug: https://github.com/mxcl/homebrew/wiki/new-issue These existing issues may help you:https://github.com/mxcl/homebrew/issues/#issue/4236 The Github page linked does have the answer, but I missed it for a while because I didn&#8217;t scroll down to the money post. [...]]]></description>
			<content:encoded><![CDATA[<p>When trying to update my Homebrew install, I was getting this error when building <em>gnutls</em>:</p>
<blockquote><p>Error: Failed executing: make install<br />
<span style="color: #ff99cc;">Please report this bug: https://github.com/mxcl/homebrew/wiki/new-issue</span><br />
These existing issues may help you:<br />https://github.com/mxcl/homebrew/issues/#issue/4236</p></blockquote>
<p>The Github page linked does have the answer, but I missed it for a while because I didn&#8217;t scroll down to <a href="https://github.com/mxcl/homebrew/issues/4236#issuecomment-1045448">the money post</a>. The answer is to paste the following into your terminal:</p>
<blockquote>
<div><span style="font-family: monospace; font-size: 12px; line-height: 18px; white-space: pre;">for dep in $(brew deps gnutls); do brew remove &#8211;force $dep; done<br />brew install gnutls</span></div>
</blockquote>
<p>Thank you, <a href="https://github.com/jabley">jabley</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/06/06/os-x-homebrew-gnutls-build-failure-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stuff I Like That You Should Too: Moleskine Notebooks</title>
		<link>http://economyofeffort.com/2011/06/06/stuff-i-like-that-you-should-too-moleskine-notebooks/</link>
		<comments>http://economyofeffort.com/2011/06/06/stuff-i-like-that-you-should-too-moleskine-notebooks/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 20:55:11 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[Stuff I Like]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=919</guid>
		<description><![CDATA[Yes, I know they&#8217;re the hipster&#8217;s notebook and that they have a cultish following. Yes, I know that their posturing as the notebook of Hemingway and Picasso is a healthy dose of creative license. Yes, I know that they&#8217;re overpriced and that for all the talk of Italian design and French paper, they&#8217;re bound together [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I know they&#8217;re the hipster&#8217;s notebook and that they have a cultish following. Yes, I know that their posturing as the <a href="http://www.moleskine.com/moleskine_world/_the_legendary_notebook_moleskine.php">notebook of Hemingway and Picasso</a> is a healthy dose of creative license. Yes, I know that they&#8217;re overpriced and that for all the talk of Italian design and French paper, they&#8217;re <a href="http://www.moleskine.com/catalogue/moleskine_quality.php">bound together by cheap Chinese labor</a>.</p>
<p>But frankly, none of that speaks to the quality of the notebook. And as I nearly fill my first one with a year&#8217;s worth of work notes, I must say that mine has been a durable, reliable tool.</p>
<p><img class="aligncenter size-full wp-image-920" title="moleskine" src="http://economyofeffort.com/wp-content/uploads/2011/06/moleskine.jpg" alt="moleskine Stuff I Like That You Should Too: Moleskine Notebooks" width="287" height="300" />I&#8217;ve never been completely happy with computer-based note-taking solutions (though I have come closer with Evernote on the iPad and iPhone). And like many geek brains &#8211; constantly preoccupied with the last technical problem it was trying to solve &#8211; mine is a forgetful one.</p>
<p>So, a year ago, I invested in my first Moleskine notebook. I had, of course, heard all of the praise from the true believers. I decided to give them a shot myself.</p>
<p>My writing needs are not like those of, say, actual <em>writers</em>. But I needed a good, compact notebook that I could take everywhere, and one that would be able to hold its own on the inside of a laptop bag, being smashed up against larger and heavier objects.</p>
<p>The Moleskine is beautifully and simply designed. The importance of the little strap that holds the book closed cannot be easily overstated. Unlike every other paper-based thing that is subjected to the interior of my laptop bag, the Moleskine pages stay intact and unmolested, locked away behind an impenetrable shell held closed by that handy little strap.</p>
<p>As much as I like the idea of going completely paperless (as I am with magazines and books), the &#8220;best tool for the job&#8221; mindset wins out. I will continue to use Evernote for certain things, but for my daily work notes, I will keep reaching for my Moleskine.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/06/06/stuff-i-like-that-you-should-too-moleskine-notebooks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe Reader X(XXL)</title>
		<link>http://economyofeffort.com/2011/05/20/adobe-reader-xxxl/</link>
		<comments>http://economyofeffort.com/2011/05/20/adobe-reader-xxxl/#comments</comments>
		<pubDate>Fri, 20 May 2011 21:00:42 +0000</pubDate>
		<dc:creator>*Legion*</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://economyofeffort.com/?p=912</guid>
		<description><![CDATA[There&#8217;s &#8220;bloat&#8221;, and then there&#8217;s BLOAT. &#8220;Bloat&#8221; is spending 5% of your CPU cycles and RAM to have a nice-looking user interface. &#8220;Bloat&#8221; is having the nerve to  create a desktop environment that might not run well on a computer that&#8217;s 15 years old. BLOAT is a PDF reader that is a 70 MB download, [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s &#8220;bloat&#8221;, and then there&#8217;s BLOAT.</p>
<p>&#8220;Bloat&#8221; is spending 5% of your CPU cycles and RAM to have a nice-looking user interface. &#8220;Bloat&#8221; is having the nerve to  create a desktop environment that <em>might</em> not run well on a computer that&#8217;s 15 years old.</p>
<p>BLOAT is a PDF reader that is a 70 MB download, and (according to the installer) takes up 418 MB of space in total once extracted.</p>
<p><img class="aligncenter size-full wp-image-914" title="adobe-reader-x" src="http://economyofeffort.com/wp-content/uploads/2011/05/adobe-reader-x.jpg" alt="adobe reader x Adobe Reader X(XXL)" width="350" height="254" /></p>
<p>If Adobe software were people, they&#8217;d be dead from <a href="http://knowyourmeme.com/memes/diabeetus">DIABEETUS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://economyofeffort.com/2011/05/20/adobe-reader-xxxl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

