<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>

I’m Ben Brinckerhoff.

emailTwitterdel.icio.usGitHubLinkedIn</description><title>nerdy + lanky</title><generator>Tumblr (3.0; @bbrinck)</generator><link>http://bbrinck.com/</link><item><title>Just saw Inception again. I can confirm that Tom Hardy is still the man. If in doubt, see Inception...</title><description>&lt;p&gt;Just saw Inception again. I can confirm that Tom Hardy is still the man. If in doubt, see Inception + Bronson.&lt;/p&gt;</description><link>http://bbrinck.com/post/878244072</link><guid>http://bbrinck.com/post/878244072</guid><pubDate>Thu, 29 Jul 2010 22:40:19 -0600</pubDate></item><item><title>LOL: An intelligent designer might have stopped at systematic infection. Not evolution, though....</title><description>&lt;p&gt;LOL: An intelligent designer might have stopped at systematic infection. Not evolution, though. Evolution goes up to 11 &lt;a href="http://bit.ly/algGQ9"&gt;http://bit.ly/algGQ9&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/872077617</link><guid>http://bbrinck.com/post/872077617</guid><pubDate>Wed, 28 Jul 2010 14:39:05 -0600</pubDate></item><item><title>Man, we’re really, really small (via...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_l61d1cW83n1qzu43to1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Man, we’re really, really small (via &lt;a href="http://farm5.static.flickr.com/4138/4820647230_faba1c9f3b_o.jpg"&gt;farm5.static.flickr.com&lt;/a&gt;).&lt;/p&gt;</description><link>http://bbrinck.com/post/851632306</link><guid>http://bbrinck.com/post/851632306</guid><pubDate>Fri, 23 Jul 2010 18:22:20 -0600</pubDate></item><item><title>Writing middleware to detect test dependencies in Tack...</title><description>&lt;p&gt;Writing middleware to detect test dependencies in Tack &lt;a href="http://bbrinck.com/post/850090134/test-dependency-detection-in-tack"&gt;http://bbrinck.com/post/850090134/test-dependency-detection-in-tack&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/851032963</link><guid>http://bbrinck.com/post/851032963</guid><pubDate>Fri, 23 Jul 2010 15:20:49 -0600</pubDate></item><item><title>Test dependency detection in Tack</title><description>&lt;p&gt;&lt;a href="http://github.com/bhb/tack"&gt;Tack&lt;/a&gt; is a Ruby &lt;a href="http://jamesarosen.com/post/783132142/on-interface-gems"&gt;interface gem&lt;/a&gt; I’ve been working on. It’s like Rack for testing: it provides a single API for querying and running tests, regardless of what framework you write your tests in (well, as long as you use one of the supported frameworks - currently RSpec, Test::Unit, and Shoulda).&lt;/p&gt;
&lt;p&gt;Also, like Rack, it supports middleware. Tack middleware is just any object that implements two methods: ‘run_suite’ and ‘run_test’. Here’s some example middleware that conforms to the spec (although it doesn’t actually do anything useful in this case).&lt;/p&gt;
&lt;script src="http://gist.github.com/486717.js"&gt; &lt;/script&gt;&lt;p&gt;Using the middleware API, I was able to quickly write some features that help with a common problem: test dependency detection.&lt;/p&gt;
&lt;p&gt;As everyone knows, test dependencies are a bad thing. If running one test can affect the results of another test, then you can have strange and difficult-to-diagnose test failures if you move, delete or change tests (or even just run them in a different order).&lt;/p&gt;
&lt;p&gt;Let’s say that you have a test suite that you suspect contains a test dependency. One simple way to potentially detect it is to run the tests in reverse. Here’s some middleware that does just that:&lt;/p&gt;
&lt;script src="http://gist.github.com/486756.js"&gt; &lt;/script&gt;&lt;p&gt;Well, that was easy. Another strategy would be to run the tests in a random order and see if they still pass or fail as expected. That’s almost as simple:&lt;/p&gt;
&lt;script src="http://gist.github.com/486759.js"&gt; &lt;/script&gt;&lt;p&gt;Or let’s say you’ve got a failing test and you suspect that one test is polluting your Ruby object space somehow (say, monkey-patching a common class in a way that breaks another test). Solution: use #fork to run each test in a separate process (thanks goes to Ryan Tomayko for his awesome &lt;a href="http://github.com/rtomayko/shotgun"&gt;Shotgun&lt;/a&gt; gem, from which I took the forking code):&lt;/p&gt;
&lt;script src="http://gist.github.com/486775.js"&gt; &lt;/script&gt;&lt;p&gt;Of course, because these features are written as Tack middlewares, these features just work with test suites written in any of the supported test frameworks.&lt;/p&gt;</description><link>http://bbrinck.com/post/850090134</link><guid>http://bbrinck.com/post/850090134</guid><pubDate>Fri, 23 Jul 2010 10:27:00 -0600</pubDate></item><item><title>Experiments in shaving http://bit.ly/cLZWGO</title><description>&lt;p&gt;Experiments in shaving &lt;a href="http://bit.ly/cLZWGO"&gt;http://bit.ly/cLZWGO&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/844359024</link><guid>http://bbrinck.com/post/844359024</guid><pubDate>Thu, 22 Jul 2010 02:18:46 -0600</pubDate></item><item><title>Experiments in shaving</title><description>&lt;p&gt;&lt;em&gt;TL;DR: If you suffer from razor burn/bumps, try to shave without ever stretching your skin taut. This might mean you need to shave over the same area repeatedly to get a close shave, but it’ll still be a win. YMMV.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Shaving has always been a struggle for me because I have sensitive skin and I’ve always been prone to irritation.&lt;/p&gt;
&lt;p&gt;For years, I shaved in the shower with a Mach 3. I had a fair amount of irritation, especially along my neckline, but never thought I could do much about it.&lt;/p&gt;
&lt;p&gt;A few years ago, I switched to a &lt;a href="http://www.google.com/products?q=merkur+safety+razor&amp;aq=f"&gt;Merkur safety razor&lt;/a&gt; after reading encouraging testimonials online. The irritation on my neck disappeared, but unfortunately, it was replaced by irritation on my chin, under my chin, and at the corners of my mouth.&lt;/p&gt;
&lt;p&gt;For reasons I haven’t pinned down (or maybe just a bad memory), the irritation has seemed to get worse since I moved to Colorado. I frequently started getting &lt;a href="http://en.wikipedia.org/wiki/Pseudofolliculitis_barbae"&gt;razor bumps&lt;/a&gt; (even grosser than razor burn) on my chin.&lt;/p&gt;
&lt;p&gt;Eventually I got fed up and just started using a beard trimmer, but quickly realized that having several days of scruff wasn’t going to cut it at formal events like weddings, graduations, etc. Also, if you know me, you know that I have the worst, most uneven beard ever. Needless to say, my girlfriend wasn’t a fan of the patchy perma-beard.&lt;/p&gt;
&lt;p&gt;So a few months ago, I started a set of experiments to see if I could eliminate the irritation. I decided to include several variables in my experiments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Razor type: Merkur safety razor, Mach 3, &lt;a href="http://www.google.com/products?q=Phillips+Norelco+7300&amp;aq=f"&gt;Phillips Norelco 7300 electric razor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Timing: Shaving before shower (electric), during shower, or after shower&lt;/li&gt;
&lt;li&gt;Shaving cream: &lt;a href="http://www.google.com/products?q=proraso+shaving+cream&amp;aq=f"&gt;Proraso shaving cream&lt;/a&gt;, &lt;a href="http://www.google.com/products?q=alba+moisturizing+cream+shave+mango+vanilla&amp;aq=f"&gt;Alba Moisturing cream shave&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Aftershave: None or &lt;a href="http://www.google.com/products?q=proraso+after+shave&amp;aq=f"&gt;Proraso&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Various shaving techniques&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some results:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Mach 3 still gives me extreme irritation on my neck&lt;/li&gt;
&lt;li&gt;The electric razor missed lots of hairs, requiring a lot of shaving time, and in turn causes light irritation on my chin and nick. I also had more ingrown hairs&lt;/li&gt;
&lt;li&gt;Shaving in the shower vs after a shower didn’t have an effect (but I had a harder time missing parts of my face in shower)&lt;/li&gt;
&lt;li&gt;Shaving creams didn’t affect irritation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After a lot of frustration, I finally stumbled upon the key factor. I had thought for years that the cause of irritation was shaving over the same area too many times. However, I recently read that razor bumps are caused when the hair is cut slightly below the skin, which happens when you shave on stretched out skin (i.e. when you contort your face to get your skin taut). The trick for me was to just purse my lips and then to go over the same area over and over with small, short strokes.&lt;/p&gt;
&lt;p&gt;Here is the recipe that’s working for me. I’m sure that not all the steps are necessary (I bet I could swap out shaving creams without ill effect), but now that I’ve finally found something that works, I’m not inclined to change it.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Leave a ceramic bowl submerged in hot water in a sink. Leave a shaving brush in the hot water as well.&lt;/li&gt;
&lt;li&gt;Shower&lt;/li&gt;
&lt;li&gt;Empty the bowl of water. Use the brush to mix a lather using Proraso shaving cream. Apply lather to face. Set the bowl back in the hot water to keep lather warm (making sure that no water gets into bowl)&lt;/li&gt;
&lt;li&gt;Using the safety razor, shave your face using small, light strokes. On any area that gets irritated (in my case, my chin), do NOT stretch the skin. Instead, go over the area several times with short, light strokes. Only shave with the grain, never against. Don’t worry if you don’t get a super close shave this first pass.&lt;/li&gt;
&lt;li&gt;Rinse your face with hot water&lt;/li&gt;
&lt;li&gt;Apply another coat of later. Shave face again, again with short strokes.&lt;/li&gt;
&lt;li&gt;Rinse with hot water&lt;/li&gt;
&lt;li&gt;Once lather is all gone, rinse face with cold water&lt;/li&gt;
&lt;li&gt;Apply Proraso aftershave&lt;/li&gt;
&lt;li&gt;Let face air-dry. Don’t dry with a towel.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of course, YMMV. Good luck!&lt;/p&gt;</description><link>http://bbrinck.com/post/842924870</link><guid>http://bbrinck.com/post/842924870</guid><pubDate>Wed, 21 Jul 2010 19:23:00 -0600</pubDate></item><item><title>RT @danmayer, @techstars congrats to @TechStars 2008 company @occipital on their inc magazie 30...</title><description>&lt;p&gt;RT @danmayer, @techstars congrats to @TechStars 2008 company @occipital on their inc magazie 30 under 30 selection. &lt;a href="http://bit.ly/bpo77m"&gt;http://bit.ly/bpo77m&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/837054815</link><guid>http://bbrinck.com/post/837054815</guid><pubDate>Tue, 20 Jul 2010 11:26:15 -0600</pubDate></item><item><title>&amp; Google sending me a text to a number I provide isn’t secure. If attacker had my old...</title><description>&lt;p&gt;&amp; Google sending me a text to a number I provide isn’t secure. If attacker had my old pass, they could just provide their num &amp; unlok acct&lt;/p&gt;</description><link>http://bbrinck.com/post/837054818</link><guid>http://bbrinck.com/post/837054818</guid><pubDate>Tue, 20 Jul 2010 11:26:15 -0600</pubDate></item><item><title>Um, my gmail account was disabled? Not cool, Google, not cool!</title><description>&lt;p&gt;Um, my gmail account was disabled? Not cool, Google, not cool!&lt;/p&gt;</description><link>http://bbrinck.com/post/837054822</link><guid>http://bbrinck.com/post/837054822</guid><pubDate>Tue, 20 Jul 2010 11:26:15 -0600</pubDate></item><item><title>Sigh. Yet again, I carefully pick what I want to stage (‘git add -i’) and then undo my...</title><description>&lt;p&gt;Sigh. Yet again, I carefully pick what I want to stage (‘git add -i’) and then undo my hard work because ‘git commit -am’ is my default&lt;/p&gt;</description><link>http://bbrinck.com/post/836105777</link><guid>http://bbrinck.com/post/836105777</guid><pubDate>Tue, 20 Jul 2010 05:45:20 -0600</pubDate></item><item><title>I dreamed about Inception last night. How appropriate.</title><description>&lt;p&gt;I dreamed about Inception last night. How appropriate.&lt;/p&gt;</description><link>http://bbrinck.com/post/832497607</link><guid>http://bbrinck.com/post/832497607</guid><pubDate>Mon, 19 Jul 2010 10:28:45 -0600</pubDate></item><item><title>Oh, Mitch. http://i.imgur.com/TSRaR.jpg</title><description>&lt;p&gt;Oh, Mitch. &lt;a href="http://i.imgur.com/TSRaR.jpg"&gt;http://i.imgur.com/TSRaR.jpg&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/830661581</link><guid>http://bbrinck.com/post/830661581</guid><pubDate>Sun, 18 Jul 2010 23:03:08 -0600</pubDate></item><item><title>I need to take time every day to thank Joe Hewitt for Firebug. Seriously, I can’t imagine life...</title><description>&lt;p&gt;I need to take time every day to thank Joe Hewitt for Firebug. Seriously, I can’t imagine life without it.&lt;/p&gt;</description><link>http://bbrinck.com/post/820431013</link><guid>http://bbrinck.com/post/820431013</guid><pubDate>Fri, 16 Jul 2010 13:16:23 -0600</pubDate></item><item><title>I knew ‘git add -i’ and ‘git rebase -i’ were both crazy powerful, but I just...</title><description>&lt;p&gt;I knew ‘git add -i’ and ‘git rebase -i’ were both crazy powerful, but I just discovered how useful ‘git checkout -p’ is. Blown away.&lt;/p&gt;</description><link>http://bbrinck.com/post/820431135</link><guid>http://bbrinck.com/post/820431135</guid><pubDate>Fri, 16 Jul 2010 13:16:23 -0600</pubDate></item><item><title>Tried to make a Presenter object to DRY up code. I think I made it too declarative …...</title><description>&lt;p&gt;Tried to make a Presenter object to DRY up code. I think I made it too declarative … it’s getting too complex.&lt;/p&gt;</description><link>http://bbrinck.com/post/817668752</link><guid>http://bbrinck.com/post/817668752</guid><pubDate>Thu, 15 Jul 2010 20:52:57 -0600</pubDate></item><item><title>“If you watch a horror movie backwards, it’s about a white couple that makes...</title><description>&lt;p&gt;“If you watch a horror movie backwards, it’s about a white couple that makes increasingly multicultural friends” &lt;a href="http://bit.ly/aCt0BM"&gt;http://bit.ly/aCt0BM&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/816571642</link><guid>http://bbrinck.com/post/816571642</guid><pubDate>Thu, 15 Jul 2010 15:07:05 -0600</pubDate></item><item><title>Added Calendar About Nothing http://bit.ly/dvvXm5 to my Dashboard using Safari Web clips. Hopefully...</title><description>&lt;p&gt;Added Calendar About Nothing &lt;a href="http://bit.ly/dvvXm5"&gt;http://bit.ly/dvvXm5&lt;/a&gt; to my Dashboard using Safari Web clips. Hopefully it’ll keep me contributing daily.&lt;/p&gt;</description><link>http://bbrinck.com/post/816571652</link><guid>http://bbrinck.com/post/816571652</guid><pubDate>Thu, 15 Jul 2010 15:07:05 -0600</pubDate></item><item><title>Writing some Tack code to (optionally) run each test in a separate process. Stealing tons of good...</title><description>&lt;p&gt;Writing some Tack code to (optionally) run each test in a separate process. Stealing tons of good code from Shotgun &lt;a href="http://bit.ly/4OfCpY"&gt;http://bit.ly/4OfCpY&lt;/a&gt;&lt;/p&gt;</description><link>http://bbrinck.com/post/812469934</link><guid>http://bbrinck.com/post/812469934</guid><pubDate>Wed, 14 Jul 2010 16:08:36 -0600</pubDate></item><item><title>If you are an Apple user, you need to watch this @theonion video http://onion.com/ayqVCW (via...</title><description>&lt;p&gt;If you are an Apple user, you need to watch this @theonion video &lt;a href="http://onion.com/ayqVCW"&gt;http://onion.com/ayqVCW&lt;/a&gt; (via @kevinowocki)&lt;/p&gt;</description><link>http://bbrinck.com/post/788378804</link><guid>http://bbrinck.com/post/788378804</guid><pubDate>Fri, 09 Jul 2010 00:04:22 -0600</pubDate></item></channel></rss>
