<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>If everyone understands what you’re doing
you’re not building the future.

tweeting @spinosa
building shelby</description><title>Stay Hungry</title><generator>Tumblr (3.0; @danspinosa)</generator><link>http://danspinosa.com/</link><item><title>"Spent the last 24 hours battling xxxxxx xxxxxx xxxxxx and another weird bug I exposed in the hunt...."</title><description>“&lt;p&gt;Spent the last 24 hours battling xxxxxx xxxxxx xxxxxx and another weird bug I exposed in the hunt. The amount and style of xxxx xxxx xxxx we’re doing made this a bit of a tricky bitch, but I made that bitch my bitch.  Bitch.&lt;/p&gt;

&lt;p&gt;You should not get xxxx xxxx xxxx xxxx in your dashboard.  Please bring it to my attention if you do. (Please also bring whiskey. I’ll be pissed).&lt;/p&gt;”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;blockquote&gt;
&lt;p&gt;Email update from &lt;a href="http://danspinosa.com/" target="_blank"&gt;our beloved CTO&lt;/a&gt;.  (via &lt;a class="tumblr_blog" href="http://reecepacheco.com/" target="_blank"&gt;reecepacheco&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Is it weird/narcissistic/conceited/self-centered to reblog a quote of yourself?  Doesn’t matter, I’ll always do it.  Bitch.&lt;/p&gt;&lt;/em&gt;</description><link>http://danspinosa.com/post/23671478507</link><guid>http://danspinosa.com/post/23671478507</guid><pubDate>Thu, 24 May 2012 10:18:42 -0400</pubDate></item><item><title>Fuck Inbox Zero</title><description>&lt;p&gt;&lt;span&gt;&lt;img height="332" src="http://1.bp.blogspot.com/-IZ0iyWZ_Sw8/T2JekbrGt9I/AAAAAAAAALE/sEAFmiWnOEA/s1600/inbox.jpg" width="500"/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Maker&amp;#8217;s don&amp;#8217;t use inbox zero.  We don&amp;#8217;t have time for that.  Each email in my inbox represents some claim against me.  Maybe it&amp;#8217;s a bug I have to fix, an issue that needs my input, a blog post that you&amp;#8217;ve already read and want my opinion on&amp;#8230; see a problem here?  I care about me.  But when I&amp;#8217;m doing shit for you, I&amp;#8217;m not doing shit for me.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;I shoot for Inbox Good Enough.  There are many emails I want and/or need to respond to.  Most of the time it directly or indirectly helps me to take action on an email.  So I&amp;#8217;ll figure out what looks important (maybe time-sensitive) or interesting and take care of those emails.  Then I&amp;#8217;ll delete (not archive, delete) the junk (ie. stuff where the sender didn&amp;#8217;t think much about my time).  And finally I&amp;#8217;ll declare &amp;#8220;Inbox Good Enough&amp;#8221; - literally shout it like &lt;a href="http://www.youtube.com/watch?v=HuGIgf-ICHM" target="_blank"&gt;Michael Scott declaring bankruptcy&lt;/a&gt;.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Now it&amp;#8217;s time for fun stuff.  That usually means building, digging into &lt;a href="http://shelby.tv" target="_blank"&gt;Shelby&lt;/a&gt;, pair programming, working out, watching Nerd TV on my DVR, reading or just relaxing with family (shout out to @nevspins).&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Inbox Zero is a fitting name.  Your inbox will leave you with zero time.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;tl;dr: Good for you!  Go build something and ship it.&lt;/span&gt;&lt;/p&gt;</description><link>http://danspinosa.com/post/23290678098</link><guid>http://danspinosa.com/post/23290678098</guid><pubDate>Fri, 18 May 2012 10:26:19 -0400</pubDate><category>inbox zero</category><category>maker</category><category>dev</category><category>shelby</category></item><item><title>If Randall Munroe were in a old-school career, I think he would...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m3reedkAE71qa3g6vo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;If Randall Munroe were in a old-school career, I think he would have made a great Simpsons writer.  The Simpsons pioneered (at least for me) the combination of life lessons, social/political commentary and moral issues with humor to make them accesible and actionable.&lt;/p&gt;
&lt;p&gt;I’m probably an ass sometimes when somebody says they don’t know something.  This xkcd feels like a lesson written directly at me.&lt;/p&gt;</description><link>http://danspinosa.com/post/22715688458</link><guid>http://danspinosa.com/post/22715688458</guid><pubDate>Wed, 09 May 2012 10:18:13 -0400</pubDate><category>xkcd</category><category>life hacking</category><category>improvement</category></item><item><title>DRY Rails App Settings</title><description>&lt;p&gt;We&amp;#8217;ve starting using &lt;a href="https://github.com/binarylogic/settingslogic" target="_blank"&gt;settingslogic&lt;/a&gt; here at Shelby for the rebuild of our API and I must say, it&amp;#8217;s pretty fine.  It&amp;#8217;s simple to define constants in yaml and have them available in a namespaced, settings specific manner.  &lt;/p&gt;
&lt;p&gt;The simple and direct way to use setingslogic is to put all of your settings into a single .yml file and just nest the crap out of them.  Well, if we did that, we&amp;#8217;d end up with (lots of) code that looked like this:&lt;/p&gt;
&lt;script src="https://gist.github.com/2639717.js?file=not_what_we_wanted.rb" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
 
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;&lt;p&gt;But we thought it would be cleaner to use Settings as a module and create a new class for each top-level namespace so we could do stuff like this:&lt;/p&gt;
&lt;script src="https://gist.github.com/2639717.js?file=what_we_wanted.rb" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
 
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;&lt;p&gt;At first, our initializer was fairly small:&lt;/p&gt;
&lt;script src="https://gist.github.com/2639717.js?file=bad_settings.rb" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
 
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;&lt;p&gt;But that started growing quickly.  For each new settings namespace we added a .yml file and had to add a new Class definition inside settings.rb.  It was clear we needed to DRY (Don&amp;#8217;t Repeat Yourself) it up.  &lt;/p&gt;
&lt;p&gt;So I dusted off the Ruby meta-programming toolkit (a very powerful one that I don&amp;#8217;t get to use day to day) and had a crack at it.  What I wanted was to just add a .yml file with settings and have it be available to me based on the name of that file.  If I created dan.yml I could now use Settings::Dan.whatever.&lt;/p&gt;
&lt;p&gt;So, I loop through all the .yml files in my settings directory, create a new settings Class (which subclasses form Settingslogic) and initialize it just like before.  But here&amp;#8217;s the rub: this new class is not available via a constant like classes normally are when you define them with the class keyword.  So we use the method const_set which adds a constant to the Settings module and sets it to our new settings Class.  Not too shabby:&lt;/p&gt;
&lt;script src="https://gist.github.com/2639717.js?file=dry_settings.rb" type="text/javascript"&gt;&lt;![CDATA[// &lt;![CDATA[
// &lt;![CDATA[
 
// ]]]]]]&gt;&lt;![CDATA[&gt;&lt;![CDATA[&gt;
// ]]]]&gt;&lt;![CDATA[&gt;]]&gt;&lt;/script&gt;</description><link>http://danspinosa.com/post/22674749109</link><guid>http://danspinosa.com/post/22674749109</guid><pubDate>Tue, 08 May 2012 18:15:00 -0400</pubDate></item><item><title>Photo</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m3l704F5fx1qzmisto1_500.gif"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://danspinosa.com/post/22673052587</link><guid>http://danspinosa.com/post/22673052587</guid><pubDate>Tue, 08 May 2012 17:47:49 -0400</pubDate></item><item><title>Do you know why I pulled you over, hacker?</title><description>&lt;p&gt;&lt;strong&gt;Or: Slow Down to Speed Up&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When it comes to programming languages, I haven&amp;#8217;t lived in the same place for more than a few years.  This is good, fun, and keeps me sharp.  But I means I&amp;#8217;ve never *really* mastered any particular language.&lt;/p&gt;
&lt;p&gt;So, when I code, I tend to write it like an author writing prose.  That is, I rewrite my draft a couple of times.  After the code (including tests, though not usually 100% TDD) is written, I go over it, looking at the `git diff` and looking at the entire files with an understanding of the full program in my head.  I&amp;#8217;m generally doing two things as I go over it:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One: Critical Analysis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Does the code do what it should, and do my tests fully express the purpose of the code?  They don&amp;#8217;t have to test every line and detail, but one should be able to re-write my code from scratch by looking at just the tests.&lt;/p&gt;
&lt;p&gt;Can the code be more verbose, less verbose, faster, easier to read or more consistent?  There are only three tough problems in computer science (naming variables and off by one errors); I check for those, too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Two: What Can I Learn?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I can generally accomplish everything I need with techniques I already know.  But that&amp;#8217;s no fun and it doesn&amp;#8217;t make me a better engineer/hacker/person.  So I try to find code (either the stuff I&amp;#8217;ve just written or stuff related to it) that can be implemented with a new technique.  &lt;/p&gt;
&lt;p&gt;Maybe I can learn more of Ruby&amp;#8217;s meta-programming and create an extension (that will probably help me in the future).  Maybe I want to learn how to drop some C code into my Ruby and make this critical path super quick.  Whatever it is, it should be something I haven&amp;#8217;t done before that challenges my knowledge of the language (ps. open source is a great place to find inspiration).  Sometimes I just question the status quo.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s easy to solve a problem, crank out some good code, and call it.  But that&amp;#8217;s sub-optimal.  The moral/trick is that efficiency is not always about solving problems quickly and correctly.  Over the long haul, you need to be continuously improving to reach maximum efficiency.  Hopefully I can remember that.&lt;/p&gt;</description><link>http://danspinosa.com/post/22002157252</link><guid>http://danspinosa.com/post/22002157252</guid><pubDate>Sat, 28 Apr 2012 17:10:44 -0400</pubDate><category>ruby</category><category>hacking</category><category>improvement</category></item><item><title>onetinyhand:

arnold schwarzenegger.
</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m36wkcOF281rodz1bo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://onetinyhand.com/post/21973077268/arnold-schwarzenegger" target="_blank"&gt;onetinyhand&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;arnold schwarzenegger.&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://danspinosa.com/post/21976045459</link><guid>http://danspinosa.com/post/21976045459</guid><pubDate>Sat, 28 Apr 2012 10:00:16 -0400</pubDate></item><item><title>Jack Welch knows what he’s doing.  My favorite part about...</title><description>&lt;iframe width="400" height="299" src="http://www.youtube.com/embed/PaXO9Uab6K0?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Jack Welch knows what he’s doing.  My favorite part about the guy is that he’s nothing special.  I don’t mean that in a negative way.  I mean that he’s a regular guy, like Buffet, and I feel like I could do what he’s done.  I didn’t really know much about him until I watched this video - which was in my shelby.tv watch later queue for months - and I’m glad I finally did.&lt;/p&gt;
&lt;p&gt;He talks about building a team and the importance of that.  It’s how Jobs built an amazing company at Apple and the reason they didn’t just topple when he died.  It’s something Reece and I are working on diligently.  The idea that HR is about birthdays and parties is something I (like many others) picked up while working at Cisco.  Jack gave me the other perspective that HR should be #2 in the company because that’s how you build an amazing team.  That really changed my perspective on how to organize a company.&lt;/p&gt;
&lt;p&gt;In another bit of common-sense wisdom, Jack says that the kindest form of management is to let people know where they stand; what they’re doing well and what they suck at.  It’s cruel to fire somebody without having give them a chance to improve via regular honest appraisals of their standing.  Makes sense.&lt;/p&gt;
&lt;p&gt;“Enjoy the success of those who work for you.”  Again, it seems like common sense, but I can see how manager forget this.&lt;/p&gt;
&lt;p&gt;“Be outspoken.”  This is probably the hardest to work on.  I think your personality has developed and been shaped by your early years, but it’s not like you can’t move the needle on this one.&lt;/p&gt;
&lt;p&gt;“I would move faster on instinct.  Can’t wait for perfect data.”  Learned this with HomeField and practicing it with Shelby.  Doesn’t hurt to remind yourself often and critically examine your own performance in this respect.&lt;/p&gt;
&lt;p&gt;Welch also says mentorship is a dumb idea (what if your mentor is a dick?); you should have a thirst for knowledge, reading everything on the best ideas and digging into the leaders your respect.  I slightly disagree.  Though I haven’t had one, I think a mentor can be a great thing.  But they should only be a single data point and shouldn’t replace a broad knowledge.  We’d probably see eye to eye on that.&lt;/p&gt;
&lt;p&gt;I think I’ll be digging deeper into Jack Welch.&lt;/p&gt;</description><link>http://danspinosa.com/post/21783648103</link><guid>http://danspinosa.com/post/21783648103</guid><pubDate>Wed, 25 Apr 2012 10:50:24 -0400</pubDate><category>jack welch</category><category>management</category><category>shelby.tv</category></item><item><title>"Bottom of the barrel?  I’d rather be at the bottom of the empty barrel than the top of the..."</title><description>“Bottom of the barrel?  I’d rather be at the bottom of the empty barrel than the top of the barrel full of shit.”</description><link>http://danspinosa.com/post/21214055515</link><guid>http://danspinosa.com/post/21214055515</guid><pubDate>Mon, 16 Apr 2012 12:12:52 -0400</pubDate></item><item><title>NASDAQ on Tumblr: SXSW Guest Blog: Shelby.Tv Brand Director Lauren Appelwick On Making A Splash At SXSW</title><description>&lt;a href="http://nasdaq.tumblr.com/post/19154799298/sxsw-guest-blog-shelby-tv-brand-director-lauren"&gt;NASDAQ on Tumblr: SXSW Guest Blog: Shelby.Tv Brand Director Lauren Appelwick On Making A Splash At SXSW&lt;/a&gt;: &lt;p&gt;Vincent van Goat was eating Goatsy’s shirt.  She had to be corrected.  This hurt me more than it hurt her.&lt;/p&gt;
&lt;p&gt;&lt;a class="tumblr_blog" href="http://nasdaq.tumblr.com/post/19154799298/sxsw-guest-blog-shelby-tv-brand-director-lauren" target="_blank"&gt;nasdaq&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Lauren Appelwick is Brand Director at Shelby.tv.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m0qqajXGkV1qjyhn0.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;When we began thinking about SXSW a few months ago, we realized that many people seemed to think that the proper (if not only) way to “do” SX is to plaster a huge space with banners and logos, give out a lot of swag and food, and keep the open…&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://danspinosa.com/post/19186070294</link><guid>http://danspinosa.com/post/19186070294</guid><pubDate>Mon, 12 Mar 2012 13:50:44 -0400</pubDate></item><item><title>hey look, it’s mark! “3/3 Video-Per-Day...</title><description>&lt;iframe src="http://shelby.tv/#!/channels/4d7a882df6db246de0000004/broadcasts/4f5326e17a18a20b4b000008" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;hey look, it’s mark! “3/3 Video-Per-Day Experiment” on &lt;a href="http://shel.tv/zCTY3t" target="_blank"&gt;http://shel.tv/zCTY3t&lt;/a&gt; via @markerrj&lt;/p&gt;</description><link>http://danspinosa.com/post/18738521829</link><guid>http://danspinosa.com/post/18738521829</guid><pubDate>Sun, 04 Mar 2012 13:42:20 -0500</pubDate><category>shelby.tv</category></item><item><title>GMail can handle MAILTO links, it's simple</title><description>&lt;p&gt;It&amp;#8217;s extremely frustrating when I click a mailto link and Mail.app starts to open. This is one of the most annoying things on my Mac (which I otherwise adore).&lt;/p&gt;
&lt;p&gt;But I just found a way to make GMail in Chrome handle mail links&amp;#8230;&lt;/p&gt;
&lt;div&gt;&lt;ol&gt;&lt;li&gt;Open a GMail tab&lt;/li&gt;
&lt;li&gt;[from that GMail tab] Open a javascript console with CMD-OPTION-J and paste in the following:     
&lt;ul&gt;&lt;li&gt;
&lt;pre&gt;navigator.registerProtocolHandler('mailto', 'https://mail.google.com/mail/?extsrc=mailto&amp;amp;url=%s', 'Gmail');&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Hit enter and accept the popup in your browser.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;:-]&lt;/p&gt;
&lt;p&gt;Will you be my code-valentine, Chrome?&lt;/p&gt;</description><link>http://danspinosa.com/post/17609122170</link><guid>http://danspinosa.com/post/17609122170</guid><pubDate>Tue, 14 Feb 2012 10:48:00 -0500</pubDate><category>mailto</category><category>chrome</category></item><item><title>Jobs, IBM, middle finger.
Good for him.</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lyry7oZiga1qzmisto1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Jobs, IBM, middle finger.&lt;/p&gt;
&lt;p&gt;Good for him.&lt;/p&gt;</description><link>http://danspinosa.com/post/17218375896</link><guid>http://danspinosa.com/post/17218375896</guid><pubDate>Tue, 07 Feb 2012 14:05:33 -0500</pubDate><category>steve jobs</category></item><item><title>Photo</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lxkm07XSxJ1qzmisto1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://danspinosa.com/post/16835123197</link><guid>http://danspinosa.com/post/16835123197</guid><pubDate>Tue, 31 Jan 2012 16:35:38 -0500</pubDate></item><item><title>"[8:26pm] • doyleRules this is the part of the day where we communicate by changing our nicks in..."</title><description>“[8:26pm] • doyleRules this is the part of the day where we communicate by changing our nicks in irc&lt;br/&gt;
[8:28pm] wick: I am going to tell you all a beautiful story.&lt;br/&gt;
[8:28pm] wick is now known as Sean_John_Combs.&lt;br/&gt;
[8:28pm] Sean_John_Combs is now known as Puff_Daddy.&lt;br/&gt;
[8:29pm] Puff_Daddy is now known as P_Diddy.&lt;br/&gt;
[8:29pm] P_Diddy is now known as Diddy.&lt;br/&gt;
[8:29pm] • Diddy and that is the story of my name&lt;br/&gt;
[8:29pm] Diddy is now known as wick.&lt;br/&gt;
[8:30pm] • doyleRules wishes Tumblr had an IRC post option”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;I love this team.  Was going to write a longer post &lt;a href="http://techcrunch.com/2012/01/06/shelby-tv-to-launch-touch-play-feature-an-airplay-based-gesture-remote" target="_blank"&gt;about&lt;/a&gt; &lt;a href="http://mashable.com/2012/01/06/shelby-tv-remote-2/" target="_blank"&gt;our&lt;/a&gt; &lt;a href="http://www.betabeat.com/2012/01/06/shelby-tv-unveiling-first-of-its-kind-gesture-remote-at-ces/" target="_blank"&gt;launch&lt;/a&gt; of &lt;a href="http://blog.shelby.tv/post/15403438553/introducing-touchplay" target="_blank"&gt;TouchPlay&lt;/a&gt; today and how awesome the team is that put it together.  Instead, you get a little glimpse into our IRC.&lt;/p&gt;
&lt;p&gt;If you find that snippet funny and want to code and/or design Shelby.tv, please get in touch.  If you don’t find it funny, you’re normal.  If you don’t find it funny, but you want to, come join one of the greatest teams on Earth.&lt;/p&gt;&lt;/em&gt;</description><link>http://danspinosa.com/post/15411210501</link><guid>http://danspinosa.com/post/15411210501</guid><pubDate>Fri, 06 Jan 2012 15:39:32 -0500</pubDate></item><item><title>Getting Rails SSL right on Nginx w/ Passenger</title><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;400 Bad Request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The plain HTTP request was sent to HTTPS port&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It bugged me for an entire day.  &amp;#8221;Please send HTTPS stuff to HTTPS and I&amp;#8217;ll be perfectly happy,&amp;#8221; said nginx.  &amp;#8221;Fuck you, I do what I want,&amp;#8221; said the oAuth callback from Twitter.  So I started digging&amp;#8230;&lt;/p&gt;
&lt;p&gt;Maybe I could just tell nginx to re-direct the request.  It knows what it wants; it should be able to satisfy itself&amp;#8230;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;error_page 497 https://$host$request_uri;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nope.  But if this did work, it would only treat a symptom, not the problem itself.&lt;/p&gt;
&lt;p&gt;So I needed to find out *why* the oAuth callback_url was being set to &amp;#8220;http://shelby.tv:443&amp;#8221; instead of &amp;#8220;https://shelby.tv&amp;#8221;.  A little digging into OmniAuth and I found the &lt;em&gt;full_host&lt;/em&gt; method which ultimately makes this determination based on &lt;em&gt;request.url&lt;/em&gt;.  An additional line of logging and I discovered that &lt;em&gt;reqeust.url&lt;/em&gt; had the http scheme, not https.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m running Rails w/ Passenger on nginx.  But nginx likes to keeps secrets from Rails (specifically, it doesn&amp;#8217;t let on about SSL).  So you just ask nginx to let Rails in on the secret and boom, everything &amp;#8220;just works&amp;#8221; (thanks to the excellent work on the Rails core team and OmniAuth, behind the scenes).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https;&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;That&amp;#8217;s it.  Threw that one liner into my ssl-enabled server{} block and Rails&amp;#8217; request.url was fixed, allowing OmniAuth correctly built the callback_url.  :-]&lt;/p&gt;
&lt;p&gt;&amp;#8212;-&lt;/p&gt;
&lt;p&gt;FYI: I spent almost a full day researching this problem (to no avail), during which time I learned a shit tonne about these technologies and code bases.  I then made a smart move: document my progress and go home.  Came in the next morning and hit the fix in 20 minutes.  &lt;/p&gt;
&lt;p&gt;Work is a much better version of school.&lt;/p&gt;</description><link>http://danspinosa.com/post/15360995969</link><guid>http://danspinosa.com/post/15360995969</guid><pubDate>Thu, 05 Jan 2012 16:32:37 -0500</pubDate><category>nginx</category><category>ssl</category><category>passenger</category><category>omniauth</category></item><item><title>An Engineers Laptop</title><description>&lt;p&gt;I&amp;#8217;m bringing a new lappy online completely fresh (as my last one was stolen) and setting up my dev environment.  It&amp;#8217;s nice to get a clean start, a blank system, without all the crud that builds up around apps you&amp;#8217;ve stopped using.  So, here&amp;#8217;s a running list of the bigger things I set up:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.chromium.org/getting-involved/dev-channel" target="_blank"&gt;Chrome Dev Channel&lt;/a&gt; - I&amp;#8217;m not stable, why would I want a browser that is?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://itunes.apple.com/us/app/xcode/id448457090?mt=12" target="_blank"&gt;XCode&lt;/a&gt; - Apple should install this by default.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://beginrescueend.com/" target="_blank"&gt;rvm&lt;/a&gt; - The lightweight and perfectly powerful Ruby Version Manager.  Don&amp;#8217;t run Ruby without it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://git-scm.com/" target="_blank"&gt;git&lt;/a&gt; - I&amp;#8217;ve gotten into a good habit of habitually branching and pushing my branches to github regularly.  This means ~0 lines of code were lost in the burglary.&lt;/p&gt;
&lt;p&gt;Spice up your shell prompt for git (~/.bash_profile):&lt;/p&gt;
&lt;script src="https://gist.github.com/1522194.js?file=gistfile1.sh"&gt;&lt;/script&gt;&lt;p&gt;And why not add some color (~/.gitconfig):&lt;/p&gt;
&lt;script src="https://gist.github.com/1522202.js?file=.gitconfig"&gt;&lt;/script&gt;&lt;p&gt;&lt;a href="http://macromates.com/" target="_blank"&gt;TextMate&lt;/a&gt; - Although vim doesn&amp;#8217;t kill you, it doesn&amp;#8217;t make you stronger.  TextMate works really well, makes it easy to read/write/navigate code, and it&amp;#8217;s keyboard shortcuts are now muscle memory for me.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/protocool/AckMate" target="_blank"&gt;AckMate&lt;/a&gt; - Better full-project search than TextMate&amp;#8217;s built in grep.  Also updated my ~/.ackrc file for some additional filetypes I want searched.&lt;/p&gt;
&lt;script src="https://gist.github.com/1530003.js?file=.ackrc"&gt;&lt;/script&gt;&lt;p&gt;&lt;a href="http://fgnass.posterous.com/jslint-in-textmate" target="_blank"&gt;Javascript Lint&lt;/a&gt; - Automatically link my js files on save in TextMate.  This isn&amp;#8217;t the bundle I used to use, but so far it seems okay (does require you to install node.js).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://bjango.com/mac/istatmenus/" target="_blank"&gt;iStat Menus&lt;/a&gt; - To know what my system is doing with a quick glance.  Love this thing (and glad I was able to find my old serial number).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://colloquy.info/" target="_blank"&gt;Colloquy&lt;/a&gt; - b/c Shelby &amp;lt;3 IRC&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stereopsis.com/flux/" target="_blank"&gt;F.lux&lt;/a&gt; - Warms up my screens at night.  The cool blue of my anti-glare screen is fine during the day.  But at night it seriously causes eye/brain hurt.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.backblaze.com/" target="_blank"&gt;Backblaze&lt;/a&gt; - Yep, I&amp;#8217;ve been backing up for years, rationalizing that &amp;#8220;$50/year will seem super cheap when I lose all my data.&amp;#8221;  Most of my work is in the cloud, but most of my personal stuff is on Backblaze.  It helped take the sting out of the loss.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dropbox.com" target="_blank"&gt;Dropbox&lt;/a&gt; - Pretty good for communicating with consultants.  I would prefer github for everything like this, but git isn&amp;#8217;t for everybody.  And in theory, I can use dropbox on my iPhone/iPad to view some stuff (I haven&amp;#8217;t, yet).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OS X Settings&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Trackpad: tap-to-click&lt;/li&gt;
&lt;li&gt;Keyboard: fast key repeat w/ short delay (I get really annoyed using computers that don&amp;#8217;t have this set)&lt;/li&gt;
&lt;li&gt;Terminal: &amp;#8220;pro&amp;#8221; scheme&lt;/li&gt;
&lt;li&gt;N.B. holding down the command key, you can drag items in the menu bar.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;And finally, &lt;a href="http://vagrantup.com/" target="_blank"&gt;Vagrant&lt;/a&gt;, for a virtualized Shelby dev environment.  It&amp;#8217;s really nice to just download a box, run a couple of scripts, and Shelby is up and ready for hacking.  &lt;/p&gt;
&lt;p&gt;Beware; vagrant has more than it&amp;#8217;s fair share of land mines.  One of our newest engineers recently tackled this project, so watch the &lt;a href="http://blog.shelby.tv" target="_blank"&gt;Shelby blog&lt;/a&gt; for an informative and useful guide to vagrant in the coming weeks.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s all for now.  I&amp;#8217;ll update this if I left anything important out.&lt;/p&gt;</description><link>http://danspinosa.com/post/14863221722</link><guid>http://danspinosa.com/post/14863221722</guid><pubDate>Tue, 27 Dec 2011 10:13:00 -0500</pubDate></item><item><title>i would take such good care of a loch ness pet monster</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lwnwqsaaHx1qb97o8o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;i would take such good care of a loch ness pet monster&lt;/p&gt;</description><link>http://danspinosa.com/post/14837737002</link><guid>http://danspinosa.com/post/14837737002</guid><pubDate>Mon, 26 Dec 2011 20:47:46 -0500</pubDate></item><item><title>"I don’t often fight the status quo, but I always ignore it."</title><description>“I don’t often fight the status quo, but I always ignore it.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Spinoza&lt;/em&gt;</description><link>http://danspinosa.com/post/12926118181</link><guid>http://danspinosa.com/post/12926118181</guid><pubDate>Thu, 17 Nov 2011 10:14:08 -0500</pubDate></item><item><title>The Count on #censoredshelby is amazing…  /via onshelby...</title><description>&lt;iframe src="http://shelby.tv/#!/spinosa/broadcasts/4ec3027aad9f114b320001a0" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The Count on #censoredshelby is amazing…  /via onshelby Nick Ruffilo &lt;a href="http://shel.tv/tN2GCz" target="_blank"&gt;http://shel.tv/tN2GCz&lt;/a&gt;&lt;/p&gt;</description><link>http://danspinosa.com/post/12857641212</link><guid>http://danspinosa.com/post/12857641212</guid><pubDate>Tue, 15 Nov 2011 19:23:34 -0500</pubDate><category>shelby.tv</category></item></channel></rss>

