<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Cloudbacon | Musings by Software Engineer: Braden Douglass</title>
  <subtitle>Thoughts transposed to octal from the mind of perpetual software engineer in training: Braden Douglass</subtitle>
  <link href="https://cloudbacon.com/feed.xml" rel="self"/>
  <link href="https://cloudbacon.com/"/>
  <updated>2025-06-14T00:00:00Z</updated>
  <id>https://cloudbacon.com/</id>
  <author>
    <name>Braden Douglass</name>
    <email>me@braidn.com</email>
  </author>
  
  <entry>
    <title>Shit Is Moving</title>
    <link href="https://cloudbacon.com/posts/2011-03-08-shit-is-moving/"/>
    <updated>2011-03-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-08-shit-is-moving/</id>
    <content type="html">&lt;img class=&quot;centered&quot; src=&quot;http://c522735.r35.cf2.rackcdn.com/5107420450_b0210464b2-300x199.jpg&quot; alt=&quot;Run For your Life&quot; /&gt;
&lt;p&gt;Yeah everyone, this isn&#39;t &lt;a href=&quot;https://posterous.com/&quot;&gt;Posterous&lt;/a&gt;.
Although I am deeply in love with that amazing little blogging platform, I
will no longer be using it for my main blog. That means Cloudbacon is on the
move to something special, just give me a second...it really is close.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>SXSW 2011 Intro</title>
    <link href="https://cloudbacon.com/posts/2011-03-09-sxsw-2011-intro/"/>
    <updated>2011-03-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-09-sxsw-2011-intro/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://sxsw.com/&quot;&gt;SXSW&lt;/a&gt; is right around the corner and anyone who
has ever been before knows that they spend an inordinate amount of time getting
ready. Probably a considerable amount of time more, than let&#39;s say, Keisha
trying to figure out how to spell her name at the DMV. If by chance you have no
fucking clue what &amp;quot;South By South West&amp;quot; (duh, the &amp;quot;X&amp;quot; is in place of the &amp;quot;B&amp;quot;)
is, please take the time out of your day from &amp;quot;Youtub-ing&amp;quot; Justin Bieber and do
some research. Anyway, sudo-funny dude &lt;a href=&quot;http://sxsw.com/&quot;&gt;Alex Blagg&lt;/a&gt; has compiled this video to
help you out:&lt;/p&gt;
&lt;iframe title=&quot;YouTube video player&quot; width=&quot;550&quot; height=&quot;390&quot; src=&quot;http://www.youtube.com/embed/hx3FC_DWsGQ&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  
  <entry>
    <title>On Starting New</title>
    <link href="https://cloudbacon.com/posts/2011-03-10-on-starting-new/"/>
    <updated>2011-03-10T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-10-on-starting-new/</id>
    <content type="html">&lt;p&gt;Many people have asked me, well...not really asked inasmuch as wondered why I
would simply jump &lt;a href=&quot;http://kcclaveria.com/2010/07/wordpress-vs-posterous-vs-tumblr/&quot;&gt;publishing platforms&lt;/a&gt; and start 100% new. Well to you good
sir and doubtfully, mam, this guy has really no idea. It probably has something
to do with a high probability that there is some &amp;quot;aydeeachdee&amp;quot; in them there
genes, or maybe there was some unknown (but now known) monetary ponzie scheme
that I have going on with my one reader. Maybe... one reader? Anyway, the point of
all this is to formally say that there won&#39;t be any importing of
&lt;a href=&quot;http://cloudbacon.posterous.com/&quot;&gt;my old material&lt;/a&gt;. We started new, and
dammit, we are going to finish new! With that, here is your tech moment
of...catz5.&lt;/p&gt;
&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/gVyPH.png&quot; alt=&quot;Cats on Google&quot; width=&quot;660&quot; height=&quot;220&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <title>Memories...Social Ones I Guess</title>
    <link href="https://cloudbacon.com/posts/2011-03-11-memories-social-ones-i-guess/"/>
    <updated>2011-03-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-11-memories-social-ones-i-guess/</id>
    <content type="html">&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/Social-Media-300x249.jpeg&quot; alt=&quot;Social Media Cluster Fuck&quot; class=&quot;centered&quot; /&gt;
&lt;p&gt;Social media managers are by far the lamest, most influential, sweatiest, noobs
in the work force. Don&#39;t get me wrong, I was one and this very post is an
interesting bit of reminiscing on my part. Sure, the setting wasn&#39;t the best,
and often times people would point out how copious some folks derriere&#39;s were
compared to the rest of the male population but, who really cares when your job
is actually kinda fun? However, there exist many a folk who think the job of a
Social Media &amp;quot;b-yatch&amp;quot; is a walk in a breezy park.&lt;/p&gt;
&lt;p&gt;The wonderful...maybe, people at &lt;a href=&quot;http://blog.socialcast.com/&quot;&gt;Socialcast&lt;/a&gt; created an &lt;a href=&quot;http://blog.socialcast.com/e2sday-the-hectic-schedule-of-a-social-media-manager/&quot;&gt;infographic&lt;/a&gt;
(grr, everyone knows infographics &lt;a href=&quot;https://cloudbacon.com/posts/2011-03-11-memories-social-ones-i-guess/#&quot;&gt;BLOW&lt;/a&gt;)
that outlines the day of a Social Media Maven, or MMVENS for shorts. Do you
have some serious chops when it comes to culling what could be prescribed as
ADHD? Well, a job of this caliber might be right up your alley.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Table Tennis Creativity</title>
    <link href="https://cloudbacon.com/posts/2011-03-14-table-tennis-creativity/"/>
    <updated>2011-03-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-14-table-tennis-creativity/</id>
    <content type="html">&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/chalk-ping-pong-table.jpeg&quot; alt=&quot;Ping Pong Table&quot; /&gt;
&lt;p&gt;Creativity is fairly hard to come by when you are surrounded by brown,
faux-wood walls and everyone simply slaves away in their respected rooms.
Company culture is a key factor when it comes to retaining some of the best and
brightest employees, so why do many companies throw this incredible need on
their &amp;quot;backburner?&amp;quot; Well, maybe something like this chalk board table tennis
table will give your culture the shot of speed it so desires. Warning, 4k isn&#39;t
cheap for anything; however, can you really put a price on creativity? I mean,
come&#39;on!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Why Is Twitter Scared Again? Oh Right</title>
    <link href="https://cloudbacon.com/posts/2011-03-15-why-is-twitter-scared-again-oh-right/"/>
    <updated>2011-03-15T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-15-why-is-twitter-scared-again-oh-right/</id>
    <content type="html">&lt;p&gt;Late last week, &lt;a href=&quot;http://twitter.com/rsarver&quot;&gt;Ryan Sarver&lt;/a&gt; (head of
API and platform at Twitter) came out and announced that they would like it a
lot if developers would &lt;a href=&quot;http://groups.google.com/group/twitter-development-talk/browse_thread/thread/c82cd59c7a87216a?pli=1&quot;&gt;focus more on stats and less on clients&lt;/a&gt;. Many people don&#39;t know this but,
Twitter was basically jump - started into popularity by the myriad of clients
that could access the API. In the early days, Twitter.com (
&lt;a href=&quot;http://blog.sentientmonkey.com/post/470450184/ruby-cant-scale-dont-listen-to-john-metta&quot;&gt;Ruby sometimes has scaling issues&lt;/a&gt;) was so unbelievably buggy that many of us early adopters relied
heavily on these 3rd party clients just to access our tweets.&lt;/p&gt;
&lt;p&gt;Now the folks at Twitter are asking these devs to stop? Something doesn&#39;t sound
right...and here&#39;s why! Protect and defend instead of innovate and kick ass.
Some strategy yah got there &lt;a href=&quot;http://twitter.com/dickc&quot;&gt;Dick&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/client_ss.jpeg&quot; alt=&quot;Twitter Client Usage Pie Chart&quot; /&gt;&lt;/p&gt;
&lt;p&gt;What are the 3rd party clients you guys and gals are using or perhaps jazzed
about at the moment? Anything cool coming down the pipeline that might be
railroaded by this decision?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Duck Stepping Around Privacy in My Underwear</title>
    <link href="https://cloudbacon.com/posts/2011-03-16-duck-stepping-around-privacy-in-my-underwear/"/>
    <updated>2011-03-16T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-16-duck-stepping-around-privacy-in-my-underwear/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/facebook-facebook-funny-unemployment-demotivational-poster-12507291711.jpeg&quot; alt=&quot;Facebook Scratched Out&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In this single case, please feel free to think of me walking around this issue
while only wearing a hot pink thong...and there goes my two readers. Any-who,
the idea of privacy is a HUGE issue plaguing and potentially clogging up our
inter-webs. Mr. &lt;a href=&quot;http://www.outsidethebeltway.com/most_influential_person_is_moot/&quot;&gt;Moot&lt;/a&gt;
Poole has recently flung a &lt;a href=&quot;http://venturebeat.com/2011/03/13/4chan-moot-christopher-poole-sxsw/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+Venturebeat+%28VentureBeat%29&quot;&gt;curve
ball&lt;/a&gt; at Facebook&#39;s founder and chief: Mark Zuckerberg over this very
issue. Before we get there, let&#39;s juice some of the clueless readers up to
speed.&lt;/p&gt;
&lt;p&gt;Zuckerberg, almost all of Google (whether they like it or not), and &lt;a href=&quot;http://twitter.com/jeffjarvis&quot;&gt;Jeff Jarvis&lt;/a&gt; have been beating a drum
filled with anything but anonymity. They believe that the web needs to be
inhabited with people identified as themselves, not some obscure name that
means nothing to the rest of us. By identifying everyone with their first and
last names, people are more apt to act like humans instead of ass-hats when it
comes to interacting with each other. This is a stark contrast from what
&lt;a href=&quot;http://www.4chan.org/&quot;&gt;4chan&lt;/a&gt; founder Chris Poole holds to be true.&lt;/p&gt;
&lt;p&gt;Chris believes that this very anonymity leads to sparks of creativity,
awesomeness, or anything potentially better than what could come about from
openness. Poole was quoted this week in a &lt;a href=&quot;http://venturebeat.com/2011/03/13/4chan-moot-christopher-poole-sxsw/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+Venturebeat+%28VentureBeat%29&quot;&gt;SocialBeat&lt;/a&gt; article saying:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The cost of failure is really high when you are contributing as yourself&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The gist of this being that Chris finds the Zuckerberg way to be a little suspect and perhaps stifling.&lt;/p&gt;
&lt;p&gt;Let&#39;s ask someone who really matters in this little scuffle. This &amp;quot;person&amp;quot; is
someone who everyone knows quite well but, might not be aware of. That someone
is your &lt;a href=&quot;http://sethgodin.typepad.com/seths_blog/2010/01/quieting-the-lizard-brain.html&quot;&gt;lizard brain&lt;/a&gt;. Your &amp;quot;lizard brain&amp;quot; (for the lazy people who read this) is the part
of your brain that makes your life simple, easy and extremely boring. It is the
part of the brain that slows us down, it makes us think twice in every matter,
and allows us to do &amp;quot;just enough.&amp;quot; In short, being anonymous is feeding that
lizard brain, and being open isn&#39;t.&lt;/p&gt;
&lt;p&gt;If our identities are shrouded in secrecy, we are more willing to post random,
obscene, and sometimes offensive shit. And why not? All of us have
an innate hankering to do so. We are just always a tinge scared that we will be
found by our employers, our family or whomever. This fear causes us to hold
back, think twice, and ultimately decide against the action overall. Plug in
that lizard powered anonymity and BOOM! It is easy to share that picture
because it is likely to never be linked back to its&#39; originator. The hard part
and ultimately the part that goes directly against your lizard brain, is
sharing that article with your name plastered all over it.&lt;/p&gt;
&lt;p&gt;This idea can be easily linked to the real world. Our brains never produce
retorts during an actual situation. We always have amazing epiphanies after our
coworker tells us off or that idiot &lt;a href=&quot;http://en.wiktionary.org/wiki/kife&quot;&gt;kifes&lt;/a&gt; our amazing parking spot.
Moreover, you don&#39;t want to create a scene because you are not entirely sure if
the person could kick your ass or not. Pure Lizard Brain.&lt;/p&gt;
&lt;p&gt;Am I a proponent of a completely open web? Well, yes quite frankly. However, I
have walked around the Baltimore Inner Harbor in just my underwear (I lost a
bet). So I might not be the best person in the world to consult with when it
comes to the power of being clandestine; however, I do understand there is a
need for it (at times). I will admit that I deeply enjoyed the idiot magnet
that was &lt;a href=&quot;http://techcrunch.com/&quot;&gt;Techcrunch&#39;s&lt;/a&gt; comments before they
went to Facebook and ultimately to a completely open system. Then again, I love
seeing people make complete asses of themselves on the net. Call me crazy.&lt;/p&gt;
&lt;p&gt;Does this Article or the SocialBeat&#39; lead us down a better understanding
concerning this privacy standoff? Doubtful. If ever a phrase embodied this
conundrum it is: &lt;a href=&quot;http://knowyourmeme.com/memes/haters-gonna-hate&quot;&gt;Hater&#39;s gonna hate&lt;/a&gt;.&amp;quot;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Professionalism At Its</title>
    <link href="https://cloudbacon.com/posts/2011-03-18-professionalism-at-its/"/>
    <updated>2011-03-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-18-professionalism-at-its/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/professionalism.jpg&quot; alt=&quot;Pro&#39;s looking like MoMos&quot; /&gt;&lt;/p&gt;
&lt;p&gt;...&lt;del&gt;worst&lt;/del&gt; best. Well nursing a food comma from lunch this afternoon,
I stumbled onto &lt;a href=&quot;http://thenextweb.com/entrepreneur/2011/03/18/professionalism-is-for-amateurs/&quot;&gt;this post about &amp;quot;professionalism&amp;quot;&lt;/a&gt; from the editor / owner
of &lt;a href=&quot;http://thenextweb.com/&quot;&gt;The Next Web&lt;/a&gt;. The
epidemic issue underlying the idea of professionalism is the fact that people
hide behind it. They might initially think it is the correct way to act in a
business situation; however, as they evolve it becomes a shield and eventually
a crutch. I implore everyone to read the article, it is quick, easy and written
oh so much better than what I could produce. Afterward, think long and hard why
you may weight the idea of &amp;quot;professionalism&amp;quot; so highly.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Fixing MYSQL in Homebrew</title>
    <link href="https://cloudbacon.com/posts/2011-03-20-fixing-mysql-in-homebrew/"/>
    <updated>2011-03-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-20-fixing-mysql-in-homebrew/</id>
    <content type="html">&lt;p&gt;&lt;em&gt;EDIT&lt;/em&gt;: Sometimes this doesn&#39;t happen. It seems to be a random occurrence on a random smattering of systems.&lt;/p&gt;
&lt;p&gt;If you are even thinking about a career or just having some fun with software development, I recommend a handy little company named Apple and a package manager called &lt;a href=&quot;http://mxcl.github.com/homebrew/&quot;&gt;Homebrew&lt;/a&gt;. Mac OS X (pronounced O-S 10) is basically a prettier shell of &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix&quot;&gt;Unix&lt;/a&gt;, minus all the kick ass packet managers (APT, MiKTex, YUM, etc). These &amp;quot;package managers&amp;quot; allow the user to install and uninstall applications via the terminal without having to do all that &lt;a href=&quot;http://www.codecoffee.com/tipsforlinux/articles/27.html&quot;&gt;make, make install bullshit&lt;/a&gt;. I have been using Homebrew without a problem up until yesterday when I attempted to install MySQL.&lt;/p&gt;
&lt;p&gt;Most people don&#39;t need to worry about these things because there is an application called &lt;a href=&quot;http://www.mamp.info/en/index.html&quot;&gt;MAMP&lt;/a&gt; that takes all the legwork out of dealing with Apache, MySQL, and PHP on your Mac. If you want something fairly robust and plan only on doing HTML, CSS, and PHP then this little application should be fine for your needs. If you decide you want to branch out into Ruby, Rails, Django, etc you might find the need to install these items via source. However, this brings me to another point. &lt;a href=&quot;http://dev.mysql.com/&quot;&gt;The MySQL dev page&lt;/a&gt; has a simple .dmg that you can use to download and install MySQL on your Mac.  So wait...why on earth would I pull my hair out for six plus hours trying to get MySQL to function properly with Homebrew?&lt;/p&gt;
&lt;p&gt;Homebrew creates a simple repository for all your package needs and &lt;a href=&quot;http://en.wikipedia.org/wiki/Symbolic_link&quot;&gt;symlinks&lt;/a&gt; the files into their required locations. This makes updating packages ridiculously easy as well as installing said packages. No needing to guess if you removed all those pesky files sitting around your system. Simply type:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=brew%20install&quot;&gt;&lt;/script&gt;
&lt;p&gt;and you are golden. Golden until you try to grab the MySQL formula. Without further ado, let&#39;s fire up &lt;a href=&quot;http://code.google.com/p/iterm2/&quot;&gt;ITerm2&lt;/a&gt; or Terminal and get this functioning:&lt;/p&gt;
&lt;p&gt;First make damn sure that /usr/local is rocking the correct permissions required by Homebrew. After a major OS X upgrade (from 10.6.5 to 10.6.6) this folder can revert back to its&#39; default permissions. To solve this we:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=chown&quot;&gt;&lt;/script&gt;
&lt;p&gt;NOTE: The correct snippet uses primes (`) (the mark beside the number one on a US Keyboard), not single quotes. For some reason these don&#39;t parse well with Wordpress. This just gives you ownership under /usr/local so you don&#39;t have to install every formula with the sudo command. Some people have &amp;quot;security&amp;quot; issues with doing this but, they are just really just crybabies. Next tell Homebrew that you really want the MySQL formula:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=brew%20mysql&quot;&gt;&lt;/script&gt;
&lt;p&gt;This should take some time, don&#39;t worry. When it finishes it will regurgitate some commands to finish the installation. Here is what we need to do:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=build%20mysql&quot;&gt;&lt;/script&gt;
&lt;p&gt;Some people have issues with this without prepending &amp;quot;sudo.&amp;quot; If the chown -R command worked successfully, it should build all the default tables and the root user. Normally the root user is created without a password but, through this installation, the MySQL instance is actually created without any dummy tables or users (even root!). Before we go any further let&#39;s make sure that the server is off:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=launch_ctl&quot;&gt;&lt;/script&gt;
&lt;p&gt;Next, lets force the server (mysqld) to startup regardless of permissions:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=grant-tables&quot;&gt;&lt;/script&gt;
&lt;p&gt;Now that the server is running open a separate window or tab (in Terminal/iTerm) and login to the server with:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=u%20root&quot;&gt;&lt;/script&gt;
&lt;p&gt;If everything worked out, you should be presented with a mysql&amp;gt; prompt and full access to the database. Next up on the chopping block, we need to create some users. When issuing the next couple of commands the server should tell you that 0 tables were changed. Don&#39;t fret, we aren&#39;t changing tables, just permissions; MySQL is obligated to tell you every little thing it does...it is boring like that. In addition, all of the below is case-sensitive (For peeps who don&#39;t work with strait MySQL queries)&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=gistfile1.sql&quot;&gt;&lt;/script&gt;
&lt;p&gt;Change the &amp;quot;YOUR_PASSWORD&amp;quot; field to whatever you like and DONE! Yep, that is it. Now you can start and stop the MySQL server at will with:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711119.js?file=server%20stop%20start&quot;&gt;&lt;/script&gt;
&lt;p&gt;After figuring out all of this around 3am this Sunday morning, I realized that my life is nothing but a bag of awesome-problem solving door knobs. Go forth and install MySQL not through MAMP or the dev .dmg but, through a fully featured, and sometimes broken (there will always be trade offs) package manager.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>2011 MacBooks Can&#39;t Take It</title>
    <link href="https://cloudbacon.com/posts/2011-03-21-2011-macbooks-cant-take-it/"/>
    <updated>2011-03-21T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-21-2011-macbooks-cant-take-it/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/overheating-laptop.jpeg&quot; alt=&quot;Fry an egg on a mac&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yes, I know it is a Sunday night and there are much &amp;quot;cooler&amp;quot; things going on
like &lt;a href=&quot;http://www.marco.org/3991237704&quot;&gt;@Marco&#39;s&lt;/a&gt; &lt;a href=&quot;https://cloudbacon.com/posts/2011-03-21-2011-macbooks-cant-take-it/#&quot;&gt;#dickbar&lt;/a&gt; post. Or
perhaps the &lt;a href=&quot;http://gigaom.com/2011/03/20/in-att-t-mobile-merger-everybody-loses/&quot;&gt;shit going down between AT$T and T-Mobile&lt;/a&gt;? So why focus on something as trivial
as a bunch of overheating Macs?&lt;/p&gt;
&lt;p&gt;Buying a MacBook Pro, at least for the past 5 years, and a PowerBook before
that meant that you were paying a little extra money to get your grubby mits on
a machine of potentially insane power. With this quad-core
&lt;a href=&quot;http://www.apple.com/macbookpro/&quot;&gt;Macbook Pro&lt;/a&gt; refresh, consumers have
access to amazing portable computers. However, said computers aren&#39;t devoid of
a few serious bugs. First to appear was the &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;ominous flicker&lt;/a&gt;
when one of Apple&#39;s very own Apple Cinema Displays was plugged into the new
&lt;a href=&quot;http://www.apple.com/thunderbolt/&quot;&gt;thunderbolt / mini display port&lt;/a&gt;.
Now, people are seeing their powerhouses &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;hard freeze under load&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A bleeding-edge technology like Thunderbolt (how the fuck do you write that
btw? is it Thunderbolt, Thunderbolt port, the thunderbolt?) is bound to exhibit
some kinks but, a computer that is given an insane amount of raw processing
power (I am serious jealous and I have a first gen unibody 17 which is no
slouch) faltering when you throw something complex at it? Something definitely
is wrong. If anyone has purchased one of these little beasties and you are
experiencing some of the issues mentioned
&lt;a href=&quot;http://cloudbacon.com/&quot;&gt;in this thread&lt;/a&gt; you are in luck. What you may or may not realize is, you purchased
the right computer.&lt;/p&gt;
&lt;p&gt;Take it back. Apple, knows these issues are occurring and will swap out your
computer or attempt to get it fixed within a few days. Some people are even
reporting a 24 hour turn around. My computer has developed an odd flicker and
because I purchased AppleCare, 2 years later I am still receiving amazing
customer service from the boys and girls at 1 Infinite Loop. These issues can
definitely be classified as &amp;quot;no fun&amp;quot; and the hard freeze issue is a
productivity sponge; however, arm yourself with a video of the issue and go see
an Apple Genius. Moreover, have fun, you spent 2k on a machine that will last a
good long time and dominate most applications during it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Some of the thread links here no longer work... thanks Apple.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Live With Kick Ass People</title>
    <link href="https://cloudbacon.com/posts/2011-03-22-live-with-kick-ass-people/"/>
    <updated>2011-03-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-22-live-with-kick-ass-people/</id>
    <content type="html">&lt;p&gt;Surrounding yourself with cool people should be an
integral part of your work and personal life. Your&#39;s truly happens to be
married and still lives with people. Community kicks ass and these guys in the
Craigslist post below definitely have something special going on. Moreover,
maybe there really are some cool people in the south. Click through for a
picture of the posting.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://i.imgur.com/DqG4x.jpg&quot; alt=&quot;Best Roomate Ad Ever&quot; /&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Write Something Awesome</title>
    <link href="https://cloudbacon.com/posts/2011-03-25-write-something-awesome/"/>
    <updated>2011-03-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-25-write-something-awesome/</id>
    <content type="html">&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/badHaikuHeader.png&quot; alt=&quot;Bad Haiku Poster&quot; /&gt;
&lt;p&gt;Having always been a bit of a shitty writer, one often times looks for ways to better their situation. However, not me. I remember distinctively taking an agency (marketing, social to be specific) job with the very minimal amount of &amp;quot;writing skillz&amp;quot;... not misspelled, don&#39;t fuck with me on this one.&lt;/p&gt;
&lt;p&gt;Marketing is balls easy if you think about it. You are trying to entice people to spend their money, which down deep inside they really are already ok parting with. Again, marketing isn&#39;t hard for most of us but, one might need to be able to write or at least be able to piece coherent thoughts together into prose. Que me sucking.&lt;/p&gt;
&lt;p&gt;I recommend some type of short typing challenge if you happen to be plagued by this very issue. Anything should do, 350 word pure regurgitation, poems, haikus yes, I know this is a poem, just a hell of a lot cooler or anything fuck, just write something. Being relatively drunk and tired, this is all I&#39;s got:&lt;/p&gt;
&lt;blockquote&gt;symphony of the mind&lt;/blockquote&gt;
&lt;blockquote&gt;coalesce&amp;nbsp;forever young&lt;/blockquote&gt;
&lt;blockquote&gt;retweet by will&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>Makeshift Desk In Any Chair</title>
    <link href="https://cloudbacon.com/posts/2011-03-26-makeshift-desks-in-chairs/"/>
    <updated>2011-03-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-26-makeshift-desks-in-chairs/</id>
    <content type="html">&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/levenger-lap-desk.jpeg&quot; alt=&quot;Levanger Lap Desk&quot; class=&quot;centered&quot; /&gt;
&lt;p&gt;The boys (I am guessing from the tone of &lt;a href=&quot;http://minimalmac.com/enough&quot;&gt;their podcasting voice&lt;/a&gt;) behind the &lt;a href=&quot;http://minimalmac.com/post/4047476100/lap-desk-levenger&quot;&gt;Minimal Mac blog shared&lt;/a&gt; a sexy little tool for converting a simple chair into a desk. In a shared living environment, a hacker house, or some other &amp;quot;complicated&amp;quot; living situation people are always fighting for laptop room. With this &lt;a href=&quot;http://www.levenger.com/PAGETEMPLATES/PRODUCT/Product.asp?Params=Category=5-344%7CLevel=2-3%7Cpageid=614&quot;&gt;lap desk from Lavenger&lt;/a&gt;, you pave your own path...fuck, that was corny.&lt;/p&gt;
&lt;p&gt;Sorry for the crotch shot above, apparently these things aren&#39;t openly photographed in the wild. The result? Many small and useless pictures roaming around the web.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>SSH Like a Linux Pro You Dawg</title>
    <link href="https://cloudbacon.com/posts/2011-03-27-ssh-like-a-linux-pro-you-dawg/"/>
    <updated>2011-03-27T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-27-ssh-like-a-linux-pro-you-dawg/</id>
    <content type="html">&lt;p&gt;Neck beards rejoice! No longer must you feel trapped to use $cat commands to
awkwardly get your &lt;a href=&quot;http://en.wikipedia.org/wiki/Secure_Shell&quot;&gt;SSH&lt;/a&gt; key from
your Mac to your Linux server...with its&#39; ridiculous up-time. Since this
network admin rarely believes in using Windohs in a server environment, the
below trick might not work for Windows knuckle draggers. For everyone else,
give it a whirl, fire up terminal and connect to your favorite server and copy
your SSH / rsa keys the old-fashioned way:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711060.js?file=ssh%201&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;https://gist.github.com/2711060.js?file=copy-id&quot;&gt;&lt;/script&gt;
&lt;p&gt;You should get some crazy error explaining that your Unix powered Mac is
missing this command. Huh? Because most &amp;quot;normal people&amp;quot; (sadly Macs are getting
more and more simplified due to the influx of iOS people hopping on board)
refuse to try to understand what a server is, let a lone SSH, Apple doesn&#39;t
need this rather integral command? Everyone else, you are in luck. Fire up my
favorite Mac OS X packet manager: &lt;a href=&quot;http://mxcl.github.com/homebrew/&quot;&gt;Homebrew&lt;/a&gt; and type the following command&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711060.js?file=brew%20ssh&quot;&gt;&lt;/script&gt;
&lt;p&gt;Give it a few minutes while the magic finishes, log back into your server
and give the command a whirl again. However, the above snippet only works if
SSH is listening on the default port (port 22). If you were smart and changed
the defaults, this command should throw less fail flags:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2711060.js?file=ssh%20copy&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>Productivity High</title>
    <link href="https://cloudbacon.com/posts/2011-03-29-productivity-high/"/>
    <updated>2011-03-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-29-productivity-high/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/merlin-mann.jpeg&quot; alt=&quot;Merlin Mann&#39;s Epic Mug&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.merlinmann.com/&quot;&gt;Merlin Mann&lt;/a&gt; - an absolute fucking beautiful human.&lt;/p&gt;
&lt;p&gt;Not only are they, in this human&#39;s mind, one of the single most
smart-assery people in the field of productivity.
Their clever use of &lt;a href=&quot;http://twitter.com/hotdogsladies&quot;&gt;humor&lt;/a&gt; is matched by no one.
Merlin recently got together
with the wonderful team behind
&lt;a href=&quot;http://macpowerusers.com/2011/03/mpu-046-workflows-with-merlin-mann-ii/&quot;&gt;Mac Power Users Podcast&lt;/a&gt; and produced an epic (2 1/2 hours) tome of meandering,
shiny ramblings.&lt;/p&gt;
&lt;p&gt;This recording is a valuable resource for anyone seeking to enhance their time management skills,
write with intense focus, or simply learn something new.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.relay.fm/mpu/46&quot;&gt;MP3 Download&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Social Media Penises</title>
    <link href="https://cloudbacon.com/posts/2011-03-30-social-media-penises/"/>
    <updated>2011-03-30T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-03-30-social-media-penises/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/media_httpimagesinsta_GfxnA.jpg.scaled1000.jpeg&quot; alt=&quot;Hugh&#39;s Amazing Work&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://twitter.com/gapingvoid&quot;&gt;Hugh MacLeod&lt;/a&gt; and &lt;a href=&quot;http://gapingvoid.com/&quot;&gt;Gaping Void&lt;/a&gt; spitting hot fire&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Griddled Cheese</title>
    <link href="https://cloudbacon.com/posts/2011-04-04-griddled-cheese/"/>
    <updated>2011-04-04T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-04-04-griddled-cheese/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/wireframeresource20a.jpg&quot; alt=&quot;Web Grid, a thing of beauty&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A clean and simple way to help align your layouts? 100% worth checking out because it kicks ass.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://griddle.it/&quot;&gt;Griddle.it&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Color Me Castrated</title>
    <link href="https://cloudbacon.com/posts/2011-04-05-color-me-castrated/"/>
    <updated>2011-04-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-04-05-color-me-castrated/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/Color-iPhone-App.jpg&quot; alt=&quot;Color Application Actually in Use&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You probably have never heard of it but,
&lt;a href=&quot;http://www.color.com/&quot;&gt;Color&lt;/a&gt; is a new photo sharing app for the
iPhone. Although it might be fairly unknown, this app has already garnished a
healthy 41 million dollars in venture capital from the fabled Valley firm:
&lt;a href=&quot;https://cloudbacon.com/posts/2011-04-05-color-me-castrated/#&quot;&gt;Sequoia Captial&lt;/a&gt;. To put that number into perspective, that is &lt;strong&gt;more&lt;/strong&gt;
than Sequoia gave Google in the early days. Let&#39;s start with what the haters
are saying and move into something more positive.&lt;/p&gt;
&lt;p&gt;Uncle Leo Laporte on his fabled &lt;a href=&quot;http://twit.tv/twit&quot;&gt;TwiT&lt;/a&gt; radio
show called Color a waste of money and an immediate failure.
&lt;a href=&quot;http://scobleizer.com/&quot;&gt;Robert Scoble&lt;/a&gt; picked up a few pieces but, in
general was echoed out by a wonderfully large group of people on Leo&#39;s side.
This sentiment seems to be transcending throughout the &lt;a href=&quot;http://www.google.com/search?q=color+41+million&amp;amp;tbm=blg&quot;&gt;blogosphere&lt;/a&gt;,
with very few positive voices squeaking through. Much of this mashing of teeth
derives from these people seeing no real value in the product, certainly not
the pro-ported 100+ million dollar evaluation.&lt;/p&gt;
&lt;p&gt;At its core, Color is just another photo sharing application that is currently
stuck on the iOS platform. Its functionality might be reminiscent of
&lt;a href=&quot;http://picplz.com/&quot;&gt;Picplz&lt;/a&gt; or &lt;a href=&quot;http://instagram.com/&quot;&gt;Instagram&lt;/a&gt; but, this is where the
generalizations stop. The kick-ass function baked into Color is its ability to
create ad-hoc social photo networks (streams) on the fly. The application uses
the phone&#39;s built-in GPS along with an audio key to pair users together. There
is no friending people, no you follow someone; however, just being near each
other create the essence of &amp;quot;following.&amp;quot; Pretty fucking cool.&lt;/p&gt;
&lt;p&gt;I have fiddled with the app for a bit and since I live with some iPhone touting
nerds, it is easy to see the value in the technology. It is incredibly fun to
see photos taken by friends pop into the local feed. People perceive this
mostly hilarious world in such different ways and I believe this app grasps
this better than anything currently available. You are able to see what people
are focused on, what they care about, and what they think (comments are baked
in) all in real-time. It gives the user the ability to experience every
situation in a party where before he/she was trapped to what was directly in
front of him/her. Not to worry though, there are some definite rough spots.&lt;/p&gt;
&lt;p&gt;Unless you live around people who have access to an iPhone you are pretty much
out of luck unless you happen to be checking the application while at the park
and pair up with random folk. It is doubtful that this pitfall will ever go
away since this is really what the entirety of the application hinges on.
Moreover and before a much-needed update, the interface was extremely bizarre.
Icons didn&#39;t really make much sense and you had to stumble your way through the
experience until you grasped what was really going on.&lt;/p&gt;
&lt;p&gt;Sure there are a few shortcomings but, the technology is new, it&#39;s being used
in a chat application called &lt;a href=&quot;http://yobongo.com/&quot;&gt;Yobongo&lt;/a&gt; and
really nothing else that I am aware of at this very moment. With the
high potential for failure(not exactly true when you have 41 million burning a
whole in your pocket) I believe that the Color team has made something truly
interesting in a sea of &amp;quot;meh&amp;quot; experiences. And let&#39;s be honest, why the fuck
are all these &amp;quot;tech elites and taste makers&amp;quot; hating on a modicum of innovation
in the Valley? Get out from behind your ancient blogs and podcasts and make
something disruptive!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A Triumphant Return to Cloudbacon</title>
    <link href="https://cloudbacon.com/posts/2011-04-18-wordpress_to_ruby/"/>
    <updated>2011-04-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-04-18-wordpress_to_ruby/</id>
    <content type="html">&lt;p&gt;And we are BACK!. That&#39;s right, I haven&#39;t really been gone, vacationing, or
really anything else more glamorous than sitting around on my duff. However,
what is really changed...again...is the blog. In less, than 2 months Cloudbacon
has migrated from Posterous, to
&lt;a href=&quot;https://wordpress.org/&quot;&gt;Wordpress&lt;/a&gt;, and now resides in flat text files.&lt;/p&gt;
&lt;p&gt;You are absolutely wrong, wait what did you guess that we are using as a CMS
now? I would put some serious money down to deny that you guessed
&lt;a href=&quot;http://nanoc.stoneship.org/&quot;&gt;Nanoc&lt;/a&gt;. Nanoc is actually a &lt;a href=&quot;http://blog.guestlistapp.com/post/2304152860/five-reasons-to-use-a-static-site-generator-instead-of&quot;&gt;static site
generator&lt;/a&gt;
that has some nifty features baked in to provide anyone with a simple blogging
process. Why on earth would Cloudbacon make such a drastic change (from PHP to
Ruby) in the course of a Month? You asked...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;No security issues: Less to be exact. MYSQL, which is &lt;strong&gt;STILL&lt;/strong&gt; the only way
to enjoy Wordpress can be somewhat unstable and prone to &lt;a href=&quot;http://unixwiz.net/techtips/sql-injection.html&quot;&gt;injection
attacks&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Text files: Anyone who has ever met me knows how much I adore the simplicity
apparent in text files. They are versatile, captivating, and incredibly
small. Actually, who here doesn&#39;t know about text files? I am not talking
about &amp;quot;Word documents.&amp;quot; I am belaboring about those weird, little files that
have a &amp;quot;txt&amp;quot; at the end of them. Please...take the time to do some research
on why they kick ass.&lt;/li&gt;
&lt;li&gt;Git: Now that MYSQL has been removed from the backbone of Cloudbacon, this
editor is now able to use Github and Git as a &lt;a href=&quot;http://en.wikipedia.org/wiki/Revision_control&quot;&gt;revision control
system&lt;/a&gt;...HUZZAH! Do a little
research here as well if you are lost.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There is definitely quite a few rough edges laying around but I wanted to get a
MVB (Minimum Viable Blog) rolling and leave iteration for later. As always, the
scope of things around here won&#39;t change too much. If you are into Apple,
beautiful code, the sexy Web, or just into community; this place should be
pretty fucking cool to hang out. For now, here is a good start to rid yourself
of that Wordpress site (I really love the guys behind Wordpress, they kick a
lot of ass).&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/526571.js&quot;&gt; &lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>Something New and An App</title>
    <link href="https://cloudbacon.com/posts/2011-04-26-an-update-and-app/"/>
    <updated>2011-04-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-04-26-an-update-and-app/</id>
    <content type="html">&lt;p&gt;Ok, so to be fair there hasn&#39;t been all that much going on around here lately.
There was some obscure update about moving things away from a database type
system on to flat files yet, no further updates. Yep well, don&#39;t get your
hearts in a tizzy because this is &lt;em&gt;far&lt;/em&gt; from a formal post.&lt;/p&gt;
&lt;p&gt;Some plans moving forward though are as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Update the css to something far moah sexier these days, lets say
&lt;a href=&quot;http://sass-lang.com/&quot;&gt;sass&lt;/a&gt;. I write in SCSS (because it&#39;s new bitches!),
none of that old .sass stuff...well sometimes.&lt;/li&gt;
&lt;li&gt;Fix this home page bullshit. Maybe I will kick the blog into it&#39;s own world
and have some type of awesome, fairly un-ballsy welcome page for you all to
sift through.&lt;/li&gt;
&lt;li&gt;Get &lt;a href=&quot;http://disqus.com/&quot;&gt;Disqus&lt;/a&gt; fired up and working. If you work your way
back through some past articles, Disqus pops up and seems to function here
and there...I just need to lock it down.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yep, that&#39;s it really. Oh the app, right! The boys (and presumably girls) from
&lt;a href=&quot;http://blog.tweetdeck.com/new-ios&quot;&gt;Tweetdeck&lt;/a&gt; have released a welcome update
to their iPhone app. They claim it to be a complete re-write which, take it as
you will, may or may-not be true. I spent a few minutes playing with it this
afternoon and am quite impressed. The original app wasn&#39;t a deal breaker for
the iPhone like it was the iPad, and apparently they are on track with updating
the iPad version very soon. I wonder if they got the memo from Apple a couple
of years ago describing the universal app availability?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Ruby Job of The Week</title>
    <link href="https://cloudbacon.com/posts/2011-05-04-engine-yard-job/"/>
    <updated>2011-05-04T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-04-engine-yard-job/</id>
    <content type="html">&lt;p&gt;Ruby, Rails, and &amp;quot;micro-builders&amp;quot; like Sinatra are seeing a boon these days in
the engineering world. Just a few days ago (er last night I guess) we had a
going away party for a prominent Rails dev in town who is on their way to
&lt;a href=&quot;http://livingsocial.com/&quot;&gt;Living Social&lt;/a&gt;. As I was perusing through
&lt;a href=&quot;http://www.taskrabbit.com/&quot;&gt;taskrabbit&lt;/a&gt; today I happened to see a rather cute
sticky note that said they are &lt;a href=&quot;https://cloudbacon.com/posts/2011-05-04-engine-yard-job/#&quot;&gt;hiring&lt;/a&gt;
for a senior Rails engineer with 5k as a signing bonus! And to top off all this
hiring madness, One of my favorite rails based companies: &lt;a href=&quot;http://engineyard.com/&quot;&gt;Engine
Yard&lt;/a&gt; is on the
&lt;a href=&quot;http://hire.jobvite.com/Jobvite/jobvite.aspx?b=nTGPvgwE&quot;&gt;lookout&lt;/a&gt; for an App
Support Engineer with a heaping amount of Rails power.&lt;/p&gt;
&lt;p&gt;The moral of all this money being thrown around the Rails community? Well, for
anyone just getting into RoR and the Ruby world, there is plenty to look
forward to. At the moment, I wish there was a way to supercharge my Rails
ability so I could fit in at one of these places. Engine Yard would be
incredible, the guys there are just plain insanely smart, Taskrabbit seems like
a great place to work in SF (although they do seem to have a lot of Biz dev
guys and gals over there), and LivingSocial is on a rocket ride with their
recent &lt;a href=&quot;http://www.portfolio.com/views/blogs/the-tech-observer/2010/12/02/amazon-eyes-investment-in-living-social-as-counter-to-google-groupon-play&quot;&gt;capital from Amazon&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Go out there, learn some Rails and get yourself hired.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Why Environment Matters</title>
    <link href="https://cloudbacon.com/posts/2011-05-09-It-Is-Just-Environmental/"/>
    <updated>2011-05-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-09-It-Is-Just-Environmental/</id>
    <content type="html">&lt;p&gt;I have a friend, and bless his heart, he loves to hold over my head, my once
intolerant mood towards OS X. It&#39;s true, Tiger (again in my mind) was horrible,
PPC&#39;s were incredibly expensive, and most Mac portables during the early 2000&#39;s
were unreliable and not worth my money. So what did the &lt;del&gt;fashion&lt;/del&gt; OS
conscious hipster use back then? For me, it was Linux, and mainly because I had
been using it since around 2000 or when I hit 16.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://twitter.com/al3x&quot;&gt;Alex Payne&lt;/a&gt; wrote a wonderfully eloquent and &lt;a href=&quot;http://al3x.net/2008/09/08/al3xs-rules-for-computing-happiness.html&quot;&gt;simple
piece&lt;/a&gt;
concerning rules for optimal &amp;quot;computing happiness&amp;quot; (something
I care deeply about). The recommendation on
running Mac or Linux in a home and server environment should be a no brainer
for all of us; however, this quote is something that so many of us struggle
with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Use hosted services in lieu of hosting on your own hardware (or virtual hardware) for all but the most custom applications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Please, think twice before investing money in bare metal, as well as training
someone on how to run it unless you ABSOLUTELY need it. Think about it and
please &lt;a href=&quot;http://al3x.net/2008/09/08/al3xs-rules-for-computing-happiness.html&quot;&gt;read Alex&#39;s
post&lt;/a&gt;, it
really is worth it.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Favorite Why The Lucky Stiff Quote</title>
    <link href="https://cloudbacon.com/posts/2011-05-10-why-the-lucky-stiff-quote/"/>
    <updated>2011-05-10T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-10-why-the-lucky-stiff-quote/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&amp;quot;when you don&#39;t create things, you become defined by your tastes rather than
ability. your tastes only narrow &amp;amp; exclude people. so create.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;--Why The Lucky Stiff&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Thursday Borefest</title>
    <link href="https://cloudbacon.com/posts/2011-05-12-facebook-fucks-with-google/"/>
    <updated>2011-05-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-12-facebook-fucks-with-google/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.usatoday.com/&quot;&gt;USA Today&lt;/a&gt;...today brought forth a story of well,
borific preportions. The wonderful and apparently always sane PR team at
Facebook thought that it would be smart to pitch anti-Google stories to online
newspapers and blogs. The problem was, one of those bloggers didn&#39;t feel like
going along with the whole idea. A few emails later and everyone knows a major
player in the tech industry is hating on Google. Eventually, dealing with
mounting evidence, Facebook issued a statement claiming it was their cockup.&lt;/p&gt;
&lt;p&gt;Blogs began picking up the story and before anyone knew it, it was everywhere.
The issue is...who cares? So Facebook happens to hire a PR firm to slander
Google, maybe a little competition is a good thing. Then again, I played rugby
for several years and playing dirty is the only way that game is fun. Facebook
was in the wrong, they got caught, snoring really. Bring on the cooler shit!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Google Shakes It Up With Chromebooks</title>
    <link href="https://cloudbacon.com/posts/2011-05-15-companies-are-scared-of-chromebooks/"/>
    <updated>2011-05-15T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-15-companies-are-scared-of-chromebooks/</id>
    <content type="html">&lt;p&gt;It&#39;s true, I have been known to put a lot of faith into the humungoid churning
Internet-driver that is &amp;quot;Google.&amp;quot; Gmail is by far the best email app out there,
Google Docs, amazing and even little things like Google powered phone numbers
are wonderful gems. However, I realize that many people don&#39;t feel this way.
They believe that Google is watching over all of their porn emails, selling
advertising to their friends, and listening in on every conversation that you
make to your call girl while using Voice. With all this, I wonder what everyone
is saying about Google&#39;s recent &lt;a href=&quot;http://www.google.com/chromebook/&quot;&gt;Chromebook
announcement&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tim Simonte (can&#39;t seem to find much on him or I would link) wrote a very
&lt;a href=&quot;http://www.technologyreview.com/blog/editors/26756/&quot;&gt;interesting piece&lt;/a&gt; for
&lt;a href=&quot;http://www.technologyreview.com/&quot;&gt;MIT&#39;s Technology Review&lt;/a&gt; focusing on six
reasons why these new notebooks from Google are a &amp;quot;bad idea.&amp;quot;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tom thinks that because the Chromebook doesn&#39;t support iPod integration (I
believe Tom means overall Apple integration, ala iTunes) many people will
waiver on the purchase. Did Google say that there wouldn&#39;t be iPod
integration? Nope. Sure, you can put a lot of money on the fact; however, it
simply isn&#39;t one...yet. If it were true and if
&lt;a href=&quot;http://www.macstories.net/news/the-ipod-is-still-strong-grips-76-percent-of-market/&quot;&gt;Macstories&lt;/a&gt;
were to correctly slug their posts, or just add a year to the date, the iPod
commands 76 percent of the market. Wait, lets scrap the numbers game, there
has been a sizeable crowd spreading rumors about cloud syncing in the next
iOS. Why couldn&#39;t we connect to our Apple music locker through webdav and
place mp3&#39;s in it, then sync them back to our iDevice family?&lt;/li&gt;
&lt;li&gt;At 349-430$ these guys are simply too expensive. Tom&#39;s right, those are some
expensive numbers; however, Google also said that they would lease them at
20$ for students and 28$ for businesses on a per monthly basis. Wow, 20
measily bones a month for a laptop when I was in college would have been
awesome. Plus, after a certain amount of time, Google could send the user a
brand new laptop and the user would send their old one back to Google. This
is unconfirmed however, most PC leasing programs reflect this already. 20$ a
month plus access to new and better hardware when it becomes available?
Sounds pretty sweet to these ears.&lt;/li&gt;
&lt;li&gt;Ok he has a point here: people aren&#39;t ready for the cloud. Mainly because
they are pansies, scared that their illegitimate children&#39;s ssn might make
it back to their current family, or got burned by the recent &lt;a href=&quot;http://www.computerworld.com/s/article/9216098/Amazon_outage_sparks_frustration_doubts_about_cloud&quot;&gt;Amazon
outage&lt;/a&gt;.
The fact is, a cloud OS doesn&#39;t mirror the same functionality we are used to
in our current computer OSs. It lives somewhere else, on someone else&#39;s
servers, under someone else&#39;s control. You don&#39;t have to worry about
updates, bugs (Tom thinks different), migrating data to new computers,
etc...really the list is too long and warrants it&#39;s own post. Just think of
all the cool stuff you could accomplish if viruses, malware, and updates
weren&#39;t top of mind?&lt;/li&gt;
&lt;li&gt;Tom thinks the security in ChromeOS is &amp;quot;better, but much worse.&amp;quot; &lt;a href=&quot;http://en.wikipedia.org/wiki/Two-factor_authentication&quot;&gt;Two factor
authentication&lt;/a&gt; is
where you have a username and password along with a separate numerical
number that is constantly changing. Once the user imputs a correct username
and password, they need to imput the random number that is currently marked
as &amp;quot;valid.&amp;quot; These numbers are usually handed to the user through an app on
your phone or in the form of a small
&lt;a href=&quot;http://en.wikipedia.org/wiki/Key_fob&quot;&gt;fob&lt;/a&gt;. There are only two applications
that I use that have this kind of authentication built in: World of Worcraft
and my &lt;a href=&quot;http://googleblog.blogspot.com/2011/02/advanced-sign-in-security-for-your.html&quot;&gt;Google
account&lt;/a&gt;.
Right Tom...&lt;/li&gt;
&lt;li&gt;&amp;quot;Google can&#39;t do hardware and support.&amp;quot; Yep, this is Tom&#39;s only striking
point. Does anyone remember the 3g issues that were apparent with the Nexus
1? Yeah, the big G had a hell of a time getting their &lt;a href=&quot;http://mashable.com/2010/01/09/google-nexus-one-support-forums/&quot;&gt;support figured
out&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&amp;quot;Google gets too much control.&amp;quot; This was taken care of several paragraphs
before with the words: pansie and porn. Actually, I should just rename this
whole post to: &amp;quot;Pansies and Porn.&amp;quot;&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>It Skillz Test</title>
    <link href="https://cloudbacon.com/posts/2011-05-17-test-your-it-skillz/"/>
    <updated>2011-05-17T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-17-test-your-it-skillz/</id>
    <content type="html">&lt;p&gt;The &amp;quot;information technology&amp;quot; field (it&#39;s encapsulated in quotes due to the insane amount of &amp;quot;broadness&amp;quot; that the phrase IT embodies) is a constantly changing,
challenging, and often times exhausting swim.
A swim in one of those pools that force water against you, so no matter how hard you &lt;a href=&quot;http://www.survivaltrainingpool.com/&quot;&gt;swim, you still remain in the same place&lt;/a&gt;.
Hmm, that sentence wasn&#39;t any good.
Anyway, &lt;a href=&quot;https://cloudbacon.com/posts/2011-05-17-test-your-it-skillz/#&quot;&gt;ReadWriteWeb posted&lt;/a&gt; an interesting article today asking its community how they &lt;a href=&quot;https://cloudbacon.com/posts/2011-05-17-test-your-it-skillz/#&quot;&gt;felt about their IT skillz&lt;/a&gt;.
The funny thing being, RRW never mentioned what skills that we need to feel good about.
I guess if you ask, you aren&#39;t doing so hot.&lt;/p&gt;
&lt;p&gt;The issue with IT isn&#39;t the speed that it is moving;
frankly it has always been a fairly agile job field.
What is occurring is a dynamic shift in the the need of each individual.
However, most of us are refusing to pivot.
In the past we have needed to be hands on with hardware,
maintaining images for our client&#39;s computers,
and the big one, making all the decisions.
IT pros were the nerds who discovered and ultimately steered the &amp;quot;boat.&amp;quot;
Not anymore.&lt;/p&gt;
&lt;p&gt;CEOs are demanding that their iPhones work perfectly over the corporate VPN,
they crave access to their files wherever they are,
and they want all of this at the speed of light.
It would appear that the client has yanked control out from underneath the snoozing IT&#39;s arm.
Without their power to be the top of the decision chain,
the IT professional is helpless,
caught in a never ending stream of reaction,
and actually quite useless. So what can we do?&lt;/p&gt;
&lt;p&gt;Accept it. Quit looking for meaningless certifications,
start a blog, wiki or collaborative project,
learn how to sling some code, and focus on implementing open source projects on offsite hardware.
The last one is a huge part of my psyche these days.
Local hardware is going the way of the dodo
(I realize that there are those specific instances where it is an ABSOLUTE need)
and there is nothing anyone can do to fight it...except by spending wads of cash.
Not interested? Well the Government always needs people but watch yourself,
even they are moving fairly quickly these days.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Cheap People = Craptacular</title>
    <link href="https://cloudbacon.com/posts/2011-05-18-cheap-people-suck/"/>
    <updated>2011-05-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-18-cheap-people-suck/</id>
    <content type="html">&lt;p&gt;Being a proponent of expensive, yet long lasting items is often tough in a
world where everything is built to be disposable. Rarely ever do you get to be
apart of a conversation that focuses around &amp;quot;build quality&amp;quot; or obsolescence (a
word that many Americans fear more than the end of American Idol). However, it
is always refreshing when someone &lt;a href=&quot;http://www.ajkesslerblog.com/being-frugal-makes-you-a-loser/&quot;&gt;pokes the bee&#39;s
nest&lt;/a&gt; and starts
up a rather interesting conversation.&lt;/p&gt;
&lt;p&gt;The one thing that is problematic in the article, is his usage of the word &amp;quot;frugal.&amp;quot; Frugal is
a word that should be used to describe the &amp;quot;hacker-money-saver&amp;quot; not the person
that buys loads of cheap shit. Aside from this, the post is spot on.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Malware Inside my Apple</title>
    <link href="https://cloudbacon.com/posts/2011-05-19-apple-malware-warrants-idiots-opinion/"/>
    <updated>2011-05-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-19-apple-malware-warrants-idiots-opinion/</id>
    <content type="html">&lt;p&gt;Feel free to take a gander at this &lt;a href=&quot;http://www.zdnet.com/blog/bott/crying-wolf-apple-support-forums-confirm-malware-explosion/3351&quot;&gt;Cnet
article&lt;/a&gt;
before continuing...&lt;/p&gt;
&lt;p&gt;Yes, it appears that Apple desktops, not iPads and iPhones have become so
ubiquitous that they are now the target of &lt;em&gt;porn&lt;/em&gt; malware. There are a few key
issues with this article that any Apple neophite can throw away (up?) as being
utter rubbish. Ed&#39;s blog is called the &amp;quot;Microsoft Report&amp;quot; and said blog is
hosted on a humungoid network like Cnet. He probably is a little biased and
perhaps doesn&#39;t use an Apple computer, the item he is blogging about, all that
often (hear-say, I don&#39;t know for sure). In addition, you need to approve
&lt;strong&gt;everything&lt;/strong&gt; that is installed on a Mac. This would mean that people are
OKing the malware to run, it isn&#39;t &amp;quot;just running on its own.&amp;quot;&lt;/p&gt;
&lt;p&gt;There just isn&#39;t any way to spin this. There are a lot more people owning Apple
computers today compared with even a few years ago. You are bound to have
a couple more &amp;quot;&lt;a href=&quot;http://yfrog.com/h06wreoxj&quot;&gt;computer literate&lt;/a&gt;&amp;quot; people in the
ecosystem now vs then. Want to stay safe? Take a good look at what you are
authorizing to run, every time your Mac bugs you. It takes 2 seconds, fur-real.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>MacBook Air and Five Apps</title>
    <link href="https://cloudbacon.com/posts/2011-05-28-macbook-air-fives/"/>
    <updated>2011-05-28T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-05-28-macbook-air-fives/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://patrickrhone.com/&quot;&gt;Patrick Rhone&lt;/a&gt; has a wonderful podcast and website
known as &lt;a href=&quot;http://minimalmac.com/&quot;&gt;Minimal Mac&lt;/a&gt;. When he interviews guests he
asks, what he likes to call the &amp;quot;MacBook Air question.&amp;quot; The gist of the
question breaks down to: you are given the base &lt;a href=&quot;https://cloudbacon.com/posts/2011-05-28-macbook-air-fives/#&quot;&gt;11-inch MacBook
Air&lt;/a&gt; model and
you need to choose the five most important applications you would install on
it.&lt;/p&gt;
&lt;p&gt;The idea is rather brilliantly minimal and definitely a fun and constricting
way to look at computer ownership. Most of us litter our computers with
applications that we hope, one day, might come of use. Anyway, here is my list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; - All of my application launching (all
five of them) goes through Alfred. In addition, you can fire off
applescripts, command line arguments, open files in specific apps, move
files around, control iTunes, and do just about anything...all without ever
touching the mouse or trackpad.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://agilebits.com/products/1Password&quot;&gt;1Password&lt;/a&gt; - Easily the go-to
password manager(software) for the Mac. Within the last year, I moved all my
passwords here and haven&#39;t worried once because a web service may have
leaked my password into the open. Completely indispensable in my mind.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/b4winckler/macvim&quot;&gt;Vim&lt;/a&gt; - I have been a long time
&lt;a href=&quot;http://www.vim.org/&quot;&gt;vi/vim&lt;/a&gt; user and there is no way I could find myself on a
Mac without the ability to jump into the the best &lt;a href=&quot;http://texteditors.org/cgi-bin/wiki.pl&quot;&gt;text
editor&lt;/a&gt; &lt;em&gt;ever&lt;/em&gt; created. Yeah I said
it, deal.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.dropbox.com/&quot;&gt;Dropbox&lt;/a&gt; - Dropbox paired with the Mac App Store
is the only way to set up a new machine. In addition, Dropbox is great for
keeping dot files, books I am reading, and other projects in sync across a
myriad of different computers. Sure there might be some security issues of
late but, who puts their credit card numbers in plain text files...named
&amp;quot;credit card numbers&amp;quot; in their dropbox?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.omnigroup.com/products/omnifocus/&quot;&gt;Omnifocus&lt;/a&gt; - Fuck iCal,
Things, and every other lame calendar or &amp;quot;todo&amp;quot; application. Omnifocus is
the grandaddy of
&lt;a href=&quot;http://www.43folders.com/2004/09/08/getting-started-with-getting-things-done&quot;&gt;GTD&lt;/a&gt;
and will always be a staple on any Mac, iPhone, or iPad now and in the
future. Let&#39;s be honest, computers need to be more about getting complex
stuff done over watching Youtube videos and trolling our friends &amp;quot;wicked
awesome lives&amp;quot; on Facebook.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If we were allowed 2 &lt;a href=&quot;http://en.wikipedia.org/wiki/Dark_horse&quot;&gt;dark horses&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://smilesoftware.com/TextExpander/&quot;&gt;Textexpander&lt;/a&gt; - Textexpander allows
me to have a bank of snippets that get &amp;quot;expanded&amp;quot; into anything when a
certain key stroke is completed. I have snippets for blogging, dates, email
signatures, words I consistently misspell, and just about anything else.
This application is definitely integral in my everyday work flow but, if
push come to shove, it doesn&#39;t make the top five.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sites.google.com/site/yorufukurou/&quot;&gt;Yorufukoru&lt;/a&gt; - Yorufukoru is the
best Twitter application that no one has ever heard of or can say. It might
not look as slick as the official Twitter client; however, it follows
&lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/XHIGIntro.html#//apple_ref/doc/uid/20000957&quot;&gt;Apple&#39;s HIG
guidelines&lt;/a&gt;
and embodies the simple yet, insanely powerful mentality.&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>Epic Twitter Conversation</title>
    <link href="https://cloudbacon.com/posts/2011-06-09-Twitter-and-Beer-Haters/"/>
    <updated>2011-06-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-06-09-Twitter-and-Beer-Haters/</id>
    <content type="html">&lt;p&gt;Twitter is always a good time(fact = NonDisputableItem.new). If you have ever
thought, just for a moment, that all you will hear is about people&#39;s bowel
movements, you have emotional issues. Take this wonderful example from last
night...pure fucking genius!&lt;/p&gt;
&lt;p&gt;1&lt;a href=&quot;http://c522735.r35.cf2.rackcdn.com/Mentions.jpg&quot;&gt;Beer on twitter&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>On Being Opinionated</title>
    <link href="https://cloudbacon.com/posts/2011-06-18-Opinions-Dont-Suck/"/>
    <updated>2011-06-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-06-18-Opinions-Dont-Suck/</id>
    <content type="html">&lt;p&gt;Winning eh (look at the tags at the bottom)? Remember the saying? The one that
everyone who who has ever dubbed themselves &amp;quot;nice&amp;quot; use when they feel
uncomfortable in conversations? Yeah it goes something like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Opinionated people suck&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;well here is a better one&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nothing exists except atoms and empty space; everything else is opinion&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The last was quoted from Democritus. He might have just been some offbeat Greek
philosopher; however, he had a point. We can go through life worrying about the
opinions of others or we can be purposeful and understanding of the fact that
opinions are ubiquitous.&lt;/p&gt;
&lt;p&gt;The people who choose the latter will be cursed with opinions that upset
people. And people are afraid of this, genuinely and honestly...ruffled.
Seriously, ask people.&lt;/p&gt;
&lt;p&gt;If by chance you are remotely agitated about what someone has said, you have
one of two options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Stand up and say something at that very moment. Don&#39;t let it fester and hope
that you have a chance to raise it in the future.&lt;/li&gt;
&lt;li&gt;Do nothing. Throw it over your shoulder and forget about it. You lose
nothing from just letting it go.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Opinions are not evil, being overwrought with emotion about them, is.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Syntax Highlighters in Nanoc</title>
    <link href="https://cloudbacon.com/posts/2011-07-07-Syntax-Hightlighting-in-Nanoc/"/>
    <updated>2011-07-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-07-07-Syntax-Hightlighting-in-Nanoc/</id>
    <content type="html">&lt;p&gt;Code highlighting with say, Wordpress is an absolute breeze. All that is
required is finding the &lt;a href=&quot;http://wordpress.org/extend/plugins/search.php?q=code+highlighting&quot;&gt;plugin&lt;/a&gt; that suits your fancy. This isn&#39;t quite as
easy when using a solution like &lt;a href=&quot;http://nanoc.stoneship.org/&quot;&gt;nanoc&lt;/a&gt; or any other Ruby based static site
generator. This is due to the fact that all of your files are compiled on the
fly into html, instead of being held in a database and being &amp;quot;served&amp;quot; every
time someone visits your site (ala Wordpress/Drupal). For the person who is
smart enough to run a static site, don&#39;t fret. You have several great options
that are dying for implementation.&lt;/p&gt;
&lt;p&gt;The two that come to mind are &lt;a href=&quot;http://pygments.org/&quot;&gt;Pygments&lt;/a&gt; and &lt;a href=&quot;http://coderay.rubychan.de/&quot;&gt;CodeRay&lt;/a&gt;. CodeRay is built
with Ruby so it is as easy as:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2710950.js?file=gem%20install&quot;&gt;&lt;/script&gt;
&lt;p&gt;However, since Pygments is Python specific, we need a little wrapper to make it
work in our Ruby environment. A quick search on &lt;a href=&quot;https://github.com/&quot;&gt;Github&lt;/a&gt; leads us to
&lt;a href=&quot;https://github.com/github/albino&quot;&gt;Albino&lt;/a&gt;...a wrapper for Pygments. Since it is a wrapper we need to nab
Pygments by invoking:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2710950.js?file=pygmrents&quot;&gt;&lt;/script&gt;
&lt;p&gt;and then:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2710950.js?file=gem%20albino&quot;&gt;&lt;/script&gt;
&lt;p&gt;For Cloudbacon, I have decided to stick with the Albino gem. The syntax is
easier to write and much more svelte overall. In addition, another Github (I
hang out there a lot) user has a wonderful set of &lt;a href=&quot;https://github.com/richleland/pygments-css&quot;&gt;css stylesheets&lt;/a&gt; that
work flawlessly with Albino and Pygments. Simply include the gem in Nanoc&#39;s
Rules file, right before the routes, and add the css file (named &#39;default.css&#39;)
into the output directory. Easy - code highlighting.&lt;/p&gt;
&lt;p&gt;Some people might ask why I didn&#39;t use the &lt;a href=&quot;https://cloudbacon.com/posts/2011-07-07-Syntax-Hightlighting-in-Nanoc/#&quot;&gt;colorize_syntax filter&lt;/a&gt; offered
by Nanoc itself? Well I did get it to work; however, you need to break down the
css output and create your own stylesheet. I love writing &lt;a href=&quot;http://sass-lang.com/&quot;&gt;Sass&lt;/a&gt; as much as
the next person but, automation is just that much cooler. Get your Nanoc site
under version control and try all three methods, see which one works best, and
get your code out of block quotes. Since the above several lines are bash, and
bash has no color, here is a simple ruby test:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2710950.js?file=hello%20world&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Funny thing being, I now rely on gist code snippets to get the job done.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Official Anti-Powerpoint Party</title>
    <link href="https://cloudbacon.com/posts/2011-07-19-Anti-Powerpoint-Party/"/>
    <updated>2011-07-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-07-19-Anti-Powerpoint-Party/</id>
    <content type="html">&lt;p&gt;We all know and hate looking at our calendars and seeing a huge block of time
dedicated to a meeting where you KNOW there will be a Powerpoint presentation
involved. The meeting starts and voila! You wake up 50 minutes later swimming
in a pool of your own drool. Not to mention, some angry coworkers commenting on
how you talk in your sleep.&lt;/p&gt;
&lt;p&gt;Sweden, in their infinite dislike for automotive speeding have come up with
something truly brilliant: &lt;a href=&quot;http://www.anti-powerpoint-party.com/en&quot;&gt;The Anti Powerpoint Party&lt;/a&gt;. We all dislike them,
so why hasn&#39;t anyone come up with this before now? Oh well, here is a very
informative video...&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;349&quot; src=&quot;http://www.youtube.com/embed/qIB-5fts7-k&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  
  <entry>
    <title>Three Finger Swipe In Lion</title>
    <link href="https://cloudbacon.com/posts/2011-07-22-Lion-Three-Finger-Fix/"/>
    <updated>2011-07-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-07-22-Lion-Three-Finger-Fix/</id>
    <content type="html">&lt;p&gt;If you haven&#39;t heard, there was quite a major update to some random &lt;a href=&quot;http://www.apple.com/macosx/&quot;&gt;OS&lt;/a&gt;
this week. With every update, and one done through digital means, there is
bound to be a few &amp;quot;hickups&amp;quot; here-and-there. One of Lion&#39;s most prominent issues
is the 3 finger space switching. This one, somewhat insignificant item seems to
have &lt;a href=&quot;http://esolangs.org/wiki/Brainfuck&quot;&gt;brainfucked&lt;/a&gt; many people when it comes to certain applications.&lt;/p&gt;
&lt;p&gt;Swiping left and right with three fingers used to navigate back and forth in
browsers, flipped through sections in Twitter for Mac, along with bringing up
the application switcher(I believe this was a four finger swipe option). Now,
this gesture seems to jump from one desktop space, to another. Well with a
little help from an application called &lt;a href=&quot;http://www.bettertouchtool.net/&quot;&gt;BetterTouchTool&lt;/a&gt; there is a possible
solution:&lt;/p&gt;
&lt;p&gt;Keyboard shortcuts have been around for years, and many gestures (old and new)
can be fired off by simply touching the correct keys in an awesome order. One
could, if they had the self control to rip themselves away from bitching about
the new Mac OS X, map the cmd + ] and [ keys to mimic the lost features of Snow
Leopard. In addition, BetterTouchTool can take modifier keys, unlike the base
gesture list. This, roughly translated, means that it is possible to gain those
three finger gestures back if you include the option key along for the
ride...Rambling managed:&lt;/p&gt;
&lt;p&gt;cmd + ] =&amp;gt; this will mimic a snow leopard three finger swipe right
cmd + [ =&amp;gt; the opposite. I hope you don&#39;t think the hashrocket is included...&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Laptop Super Juice</title>
    <link href="https://cloudbacon.com/posts/2011-08-02-Breath-Life-Into-A-Laptop/"/>
    <updated>2011-08-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-08-02-Breath-Life-Into-A-Laptop/</id>
    <content type="html">&lt;p&gt;Like the rest of the intelligent world, I run all of my development life on a
Mac laptop. The Unix underneath is exactly what the doctor ordered. However, my
February 2009 17inch Macbook Pro is beginning to show it&#39;s age . This model
roughly translates to a Core2Duo shoved into Apple&#39;s newly updated 17&#39; unibody
for anyone who doesn&#39;t have Apple&#39;s processor usage
&lt;a href=&quot;http://www.mactracker.ca/&quot;&gt;memorized&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hemming-and-hawing over the brand new Air&#39;s was extremely difficult because
they are insanely fast, however; are still probably not the best choice for a
single computer setup. In addition, there wasn&#39;t much of a chance that I would
be buying a brand new MBP this year. Especially with the &lt;a href=&quot;http://www.macrumors.com/2011/07/26/apple-finishing-up-work-on-an-ultra-thin-15-notebook/&quot;&gt;heavy
rumors&lt;/a&gt;
that the entire line might be updated in late 2011/2012 (If you are looking for
a computer and need one, don&#39;t wait, nothing is definite).&lt;/p&gt;
&lt;p&gt;The choice fell on upgrading my current machine, so where to start for anyone
in the same place?  Maxing out your ram never hurts (8 gigs in most MBPs) but,
by far the best upgrade for money is jumping on the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Solid-state_drive&quot;&gt;SSD&lt;/a&gt; wagon. Most of the
latency that is witnessed in every-day computing is built around how fast you
can access your files and an SSD will drastically lower said latency. A final
and somewhat, hardware-hacker route is to add a secondary hard drive in the
place of the internal SuperDrive.&lt;/p&gt;
&lt;p&gt;Since there is no new hardware in my near future, the decision was simple:
upgrade all 3. 8 gigs of ram, &lt;a href=&quot;http://www.newegg.com/Product/Product.aspx?Item=N82E16820167052&quot;&gt;120gig
SSD&lt;/a&gt;, an
&lt;a href=&quot;http://www.mcetech.com/optibay/&quot;&gt;optibay drive&lt;/a&gt;, and a
&lt;a href=&quot;http://www.newegg.com/Product/Product.aspx?Item=N82E16822148591&amp;amp;Tpk=momentus%20xt&quot;&gt;hybrid&lt;/a&gt;
500gig secondary drive.  A word of warning for people pining to move out their
SuperDrive, use the manuals at &lt;a href=&quot;http://www.ifixit.com/Browse/Mac&quot;&gt;iFixit&lt;/a&gt;. With
all unibody MacBook Pros you need to move the bluetooth module from the
internal SuperDrive onto the new optibay. This can be a little tricky due to
the fact that the holes in the optibay are NOT pre-threaded. In addition, the
bluetooth module has small screws, cramped angles, and is just a PIA for anyone
with fingers larger than a 3 year old.&lt;/p&gt;
&lt;p&gt;The result is a worthwhile upgrade and a computer that handles Lion with
blazing speed. Below are a couple of tweaks that I recommend if going down the
SSD route OR buying an optibay.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Obtibay&lt;/em&gt;: Two hard drives spinning at the same time will definitely reduce
your battery life. In addition, people frequently complain that there isn&#39;t
much cooling going on in the optibay. The fix is to spin the drive up and
down &lt;a href=&quot;http://forums.macrumors.com/showthread.php?p=9596575#post9596575&quot;&gt;when
needed&lt;/a&gt;. I
connected the scripts to &lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; so the drive
can be easily managed. &lt;a href=&quot;http://qsapp.com/&quot;&gt;Quicksilver&lt;/a&gt; would also work
here.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;SSD&lt;/em&gt;: OS X and even Lion fail to be truly built for SSDs(from the ground up).
Hot File Clustering, which basically tracks frequently used files and moves
them into the outer-rim is still enabled at the kernel level.  Aww...last
time I checked SSDs don&#39;t have &amp;quot;outer-rims&amp;quot; like their spinning platter slow
cousins from the north. Anyway, here are a few
&lt;a href=&quot;http://www.ocztechnologyforum.com/forum/showthread.php?52845-Mac-OSX-Speed-Tweaks&amp;amp;highlight=osx%20tweaks&quot;&gt;tweaks&lt;/a&gt;
that can be used to improve your SSD experience on OS X.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;SSD/Trim&lt;/em&gt;: Trim support is still only supported for Apple branded SSDs. Not
to worry, there is an easy way to &lt;a href=&quot;http://gdgt.com/question/in-os-x-lion-how-do-you-enable-trim-support-for-ssds-f16/&quot;&gt;get it
functioning&lt;/a&gt;
with 3rd party drives.  Please, don&#39;t use Trim Enabler on Lion! The patch is
based on the 10.6.8 kernel and has yet to be updated (as of 2011.08.02).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;SSD&lt;/em&gt;: Install a fresh version of Lion, from a USB key or CD. Imaging an old,
spinning drive doesn&#39;t make sense if you are migrating to a much quicker
SSD. Moreover, it is likely that there are a ton of unused files and junk
&amp;quot;cruft&amp;quot; sitting on your hard drive.  Install fresh, rebuild and be happy
that everything is clean and as new as possible.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>Mac App Store and Bootable Images</title>
    <link href="https://cloudbacon.com/posts/2011-08-03-bootable-images-and-the-app-store/"/>
    <updated>2011-08-03T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-08-03-bootable-images-and-the-app-store/</id>
    <content type="html">&lt;p&gt;Anyone worth their Mac loving salt knows how hardware agnostic the OS is. Need
to send your main computer in for repair because of a faulty batch of
harddrives but, want to avoid being out a machine for a couple of important
days?&lt;/p&gt;
&lt;p&gt;A bootable image is a &amp;quot;snapshot&amp;quot; of everything that is going on at the &lt;a href=&quot;https://en.wikipedia.org/wiki/Block_%28data_storage%29&quot;&gt;block
level&lt;/a&gt; of your OS. In most
cases, these images are captured using a firewire drive (hopefully soon to be
Thunderbold drive) and can be used to run any other piece of Apple
hardware(computers, not iPads). Well sort of.&lt;/p&gt;
&lt;p&gt;PPC architecture images can ONLY be booted with PPC Macs and the same goes for
Intel. In addition, a Lion image won&#39;t even boot on an old coreDuo machine
(anyone seen a workaround?). Downtime is reduced to nothing with this
method...or usually. For some reason, several of the apps that were purchased
from the App Store, annoy the user on startup for a username and password.
However when entered, the app simply dissapears. Wonder if anyone else is
seeing odd behavior like this?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Seagate Hybrid Drive Solution</title>
    <link href="https://cloudbacon.com/posts/2011-08-07-Momentus-XT-Spindown-Solution/"/>
    <updated>2011-08-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-08-07-Momentus-XT-Spindown-Solution/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/hybridhd.jpeg&quot; alt=&quot;ssd hybrid drive&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In this past
&lt;a href=&quot;http://cloudbacon.com/2011/08/02/Breath-Life-Into-A-Laptop/&quot;&gt;post&lt;/a&gt; I
mentioned using a &lt;a href=&quot;http://en.wikipedia.org/wiki/Hybrid_drive&quot;&gt;&amp;quot;hybrid hard
drive&amp;quot;&lt;/a&gt; for secondary storage. In
this case, the hybrid part means that there is a very small, 4 gigs to be
exact, amount of space set aside for caching purposes. If the drive was being
used for boot purposes, it would use those 4 gigs to allocate popular
applications and files that were used frequently. This would speed up the app
launching process and give the allure of having a much faster, SSD.&lt;/p&gt;
&lt;p&gt;This specific drive has been under fire for some time by the Mac crowd for
disabling, or completely ignoring the internal power management settings. One
of the larger problems being, that the drive blatantly refused to spin down
when not in use. For the forum lover there is quite an extensive amount of
knowledge posted
&lt;a href=&quot;http://cloudbacon.com/&quot;&gt;here&lt;/a&gt;.
However, it doesn&#39;t seem like Seagate has found a fix...yet?&lt;/p&gt;
&lt;p&gt;Since upgrading the drive to it&#39;s newest firmware (SD25), my drive was
exhibiting some of these odd behaviors. Everything seemed fine during spin-up;
however, after the system ejected the disk, it would fail to spin-down. At
first, I thought that spotlight indexing was causing problems. Wrong, this was
disabled. The culprit seemed to be a previously deleted file or folder sitting
around in the .trash folder.&lt;/p&gt;
&lt;p&gt;Deleting BOTH the .spotlightv100** hidden folder along with .trash solved the
issue in a heartbeat. Apparently, there are some
&lt;a href=&quot;http://superuser.com/questions/89556/how-disable-mac-snow-leopard-creating-spotlight-v100-and-trash-folders-in-usb-f#116879&quot;&gt;methods&lt;/a&gt;
to force these folders from being created; however, I have yet to try them. In
addition, this is a fix for the people using these drives as storage, and not
for their main boot partition. If anyone has any other nifty solutions, I would
love to hear about them&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Quicksilver Still Can&#39;t Make The Cut</title>
    <link href="https://cloudbacon.com/posts/2011-08-23-QuickSilver-For-A-Weekend/"/>
    <updated>2011-08-23T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-08-23-QuickSilver-For-A-Weekend/</id>
    <content type="html">&lt;p&gt;It&#39;s true, I have never really been much of a fan of the ancient productivity
guru known as &amp;quot;Quicksilver&amp;quot;. It was adopted by all my Mac loving brethren and
even, after several ad-hoc presentations, I continued to obstain. Launchbar was
too small and Spotlight, if mastered couldn&#39;t come close to both the 3rd party
applications. In addition, everytime Quicksilver was left to rot due to an
ambitious developer(s) realizing the size of the project, I was content knowing
there was no need to lament.&lt;/p&gt;
&lt;p&gt;Recently the Quicksilver Project was &lt;a href=&quot;http://www.qsapp.com/&quot;&gt;picked up&lt;/a&gt; by a
group of very talented and driven developers who have a laundry list of grand
plans for the ailing product. With Quicksilver making a rapid comeback, I
decided to drop my current productivity love affair:
&lt;a href=&quot;http://alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; and give the beast a whirl for the span of a long
weekend(4-5 days).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;User Experience&lt;/strong&gt;  Quicksilver still has one of the best looking UXs for its
&lt;a href=&quot;https://en.wikipedia.org/wiki/Quicksilver_%28software%29&quot;&gt;time&lt;/a&gt;. It jumps into
view with big blocks that are easy to see and clearly show the user what they
are doing at the very moment. Launchbar, with its tiny &amp;quot;unibar&amp;quot; easily fails
hard in this category. Quicksilver&#39;s simple select what you want to do(noun),
tab over to select an action(verb), and if needed, a location approach to doing
things is truly brilliant! If a mistake is made, the user just tabs back to the
problem, fixes it and goes about their merry way. Alfred and Launchbar both
prescribe to a &amp;quot;unibar&amp;quot; philosophy which can be confusing if the user forgets
where they are in their launching process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Functionality&lt;/strong&gt;  These applications construct a higher amount of
functionality over Spotlight(OS X default), hence why many of us use them.
Alfred isn&#39;t more than a few years old which means 99% of its functionality
works great on a new, Intel powered, Lion running Mac. Lock, Shutdown, and
other system commands function beautifully (NOT true with Quicksilver) along
with the clipboard, file navigation, etc. Quicksilver continues to be burdened
with the cruft from its days being build on and for the PPC architecture and
man, does it show:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The app doesn&#39;t run in 64bit mode&lt;/li&gt;
&lt;li&gt;Many of the plugins haven&#39;t been updated in 4+ years (they are working on
it)&lt;/li&gt;
&lt;li&gt;Several of the apps rely on the PPC architecture which isn&#39;t supported in
Snow Leopard or Lion (SL was released in August 2009)&lt;/li&gt;
&lt;li&gt;The app itself continues to be flaky with several crashes per day under
heavy use&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Extensibility&lt;/strong&gt;  Quicksilver is known for having an incredibly robust plugin
structure.
1Password, Bbedit, Vim, Photos, FlickrUploads, and etc are just a few that are
at the user&#39;s fingertip. As a self proclaimed &amp;quot;power-user&amp;quot; this excites me.
However, several weeks ago Alfred implemented the ability to run applescripts,
shell scripts, and automator workflows. Although Qucksilver has a leg up with
the raw amount of extensions, many of them need updating because of their age.
I am genuinly excited to see what kind of plugins are developed by Alfred&#39;s
robust and seeminly clever community. Here are just a few so far: &lt;a href=&quot;http://blog.alfredapp.com/2011/08/02/alfred-extensions/&quot;&gt;Alfred
Extensions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusions&lt;/strong&gt;  At the end of the weekend I simply couldn&#39;t wait to fire back
up Alfred and get back to work. Sure there is always a problem of knowing how
to access similar functions in new applications, however; this wasn&#39;t specific
to my case. I spent a good portion of time tweaking and &amp;quot;groking&amp;quot; the
Quicksilver way (a good 2-5 hours). However, was ultimately unimpressed with
its high crash rate (running on a 1st gen 17inch(2.66C2D/8gigs) Unibody w/ SSD&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Optibay), inconsistent plugin compatibility, and the amount of time it took
to rescan for new items(fairly sure Quicksilver continues to use its own index,
not Spotlight&#39;s). For the immediate future, this nerd is sticking with Alfred.
In addition, I have a powerpack licences for Alfred so if you &lt;a href=&quot;https://cloudbacon.com/posts/2011-08-23-QuickSilver-For-A-Weekend/#&quot;&gt;don&#39;t feel like
assisting really cool developers&lt;/a&gt;, yet want
some of the functionality mentioned above, stick with Quicksilver as a free
solution.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Omega Lion Time Saver</title>
    <link href="https://cloudbacon.com/posts/2011-09-04-One-Of-The-Best-Lion-Features/"/>
    <updated>2011-09-04T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-09-04-One-Of-The-Best-Lion-Features/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://c522735.r35.cf2.rackcdn.com/Finder1.png&quot; alt=&quot;folder by selection&quot; /&gt;&lt;/p&gt;
&lt;p&gt;There doesn&#39;t seem to be too many time-saving commands you can initiate with
the mouse these days; however, this one trick goes way beyond priceless.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>An American in 2011</title>
    <link href="https://cloudbacon.com/posts/2011-09-06-To-Be-An-American/"/>
    <updated>2011-09-06T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-09-06-To-Be-An-American/</id>
    <content type="html">&lt;p&gt;Please refrain from thinking of this post as some kind of jab or &#39;attack&#39; on
America. This is quite simply a collection of attitudes, ideas, and values that
many of my fellow Americans hold too close.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I don&#39;t want to try and do something new, it&#39;s scary.&lt;/li&gt;
&lt;li&gt;Little things about people annoy me, therefore I write them off as immediately &amp;quot;wrong&amp;quot;.&lt;/li&gt;
&lt;li&gt;Learn something at home? While I am away from work? FUCK that.&lt;/li&gt;
&lt;li&gt;Write? I barely read an entire book (fiction or technical) in a year, why write?&lt;/li&gt;
&lt;li&gt;Think critically? Hmm...that sounds like it goes hand and hand with number 4.&lt;/li&gt;
&lt;li&gt;My concentration has been butchered by Youtube so I can&#39;t focus for more then 3 minutes.&lt;/li&gt;
&lt;li&gt;I plan on doing nothing to alleviate number 6 or any other numbers...remember number 2?&lt;/li&gt;
&lt;li&gt;My work ethic stops at 5pm...on the dot.&lt;/li&gt;
&lt;li&gt;I am entitled to job X because I have completed X amount of education.&lt;/li&gt;
&lt;li&gt;...but I want to be successfull so shortcuts and eventually my parent&#39;s money will see me through.&lt;/li&gt;
&lt;li&gt;I don&#39;t understand other cultures although I may have graduated with a religious studies / women studies / anthropology / european government studies major.&lt;/li&gt;
&lt;li&gt;I want to make my &amp;quot;own way&amp;quot;.&lt;/li&gt;
&lt;li&gt;That work ethic thing, yeah that stuff also ceases on Friday.&lt;/li&gt;
&lt;li&gt;I know all I need to know about subject X, especially if I do it as a job.&lt;/li&gt;
&lt;li&gt;I am too scared to travel because of 1, 2, 3, 7, 11...&lt;/li&gt;
&lt;li&gt;I compare myself to my siblings, everything they get, I deserve.&lt;/li&gt;
&lt;li&gt;I spend money on things, items, stuff instead of buying tools.&lt;/li&gt;
&lt;li&gt;And above all else: I am bored.&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>Unreasonable People Win</title>
    <link href="https://cloudbacon.com/posts/2011-09-09-Unreasonable-People-Win/"/>
    <updated>2011-09-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-09-09-Unreasonable-People-Win/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Reasonable people adapt themselves to the world. Unreasonable people attempt
to adapt the world to themselves. All progress, therefore, depends on
unreasonable people.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thanks go out to George Bernard Shaw (who said the above) and &lt;a href=&quot;http://www.swiss-miss.com/&quot;&gt;swiss
miss&lt;/a&gt; for bringing it to my attention. In addition,
did everyone know that they have a better &lt;a href=&quot;http://duckduckgo.com/?q=swiss+miss&quot;&gt;SEO
ranking&lt;/a&gt; than the hot chocolate? Crazy
what content can do.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>On Demanding Free Awesome-Software</title>
    <link href="https://cloudbacon.com/posts/2011-10-04-Morons-Demand-Free-Software/"/>
    <updated>2011-10-04T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-10-04-Morons-Demand-Free-Software/</id>
    <content type="html">&lt;p&gt;If...perhaps you had been sitting under a chair hiding from your
coffin-death-sled this week (Oct 3), the peeps behind the wonderful app
&lt;a href=&quot;http://growl.info/&quot;&gt;Growl&lt;/a&gt; released their new itteration on the &lt;a href=&quot;http://itunes.apple.com/us/app/growl/id467939042?mt=12&quot;&gt;Mac App
Store&lt;/a&gt;. If you happened
to click on the previous link, you would have realized that Growl has
transitioned itself from something free to something worth $1.99. With most
transitions of this manner, there has been a
&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;metric-shit-ton&lt;/a&gt; of user outcry.&lt;/p&gt;
&lt;p&gt;Growl(an extremely short history) has been the defacto OS X(it does function on
windows), that&#39;s &amp;quot;Macz&amp;quot; for all you &lt;a href=&quot;http://youtu.be/migIVbzPW5U&quot;&gt;nubs&lt;/a&gt;,
notification software since August of 2004. Most people forget that the app was
a preference pane tucked away in system preferences. In many cases, Growl came
packaged with other applications that installed it to handle their own
notifications. Thereby relieving the user from ever having to worry about
whether it(Growl) was installed or not.&lt;/p&gt;
&lt;p&gt;However, now we need to download it from the Mac App Store or MAS if you like
acronyms...and you need to PAY FOR IT! Holy SHIT, like for realz? Pay for it?
For all of you who feel like you are entitled to awesome software, and Growl
falls under this moniker, for free...you&#39;re not. Not-Sorry.&lt;/p&gt;
&lt;p&gt;These moochers are the same asshats who jailbreak their iPhones to simply
download apps without paying. Although, there are plenty of really great paid
apps on the &lt;a href=&quot;http://youtu.be/migIVbzPW5U&quot;&gt;Cydia&lt;/a&gt; store. They spend hours of
their time searching for free versions of applications that cost them 2.99. The
real problem, before I go over the deep end, is: these developers are not
Adobe.&lt;/p&gt;
&lt;p&gt;They are a small team of good friends who have banded together and spent a lot
of time, sweat, and tears to build something that they hope can turn into a
miniture business. They might have shitty jobs, hard families, or whatever but,
they are there to make an attempt at bettering their overall living situation.
You consistently stealing their apps isn&#39;t assisting them in any way.&lt;/p&gt;
&lt;p&gt;In addition, people should be pining to pay for this software, especially
Growl, because it truly is kick ass. It should be your honor and
&lt;a href=&quot;https://en.wikipedia.org/wiki/Giri_%28Japanese%29&quot;&gt;giri&lt;/a&gt; to pay for these great
products. The minimal payment helps feed the developers and allows them to
focus on the software that you have paid for and love.&lt;/p&gt;
&lt;p&gt;Make a budget per week, pay for the software that you love, revel in the fact
that you have helped someone reach their dream and someone might reciprocate on
it when you near yours.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>SysAdmins On The Rise?</title>
    <link href="https://cloudbacon.com/posts/2011-10-16-SysAdmin-I-Told-Yah-So/"/>
    <updated>2011-10-16T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-10-16-SysAdmin-I-Told-Yah-So/</id>
    <content type="html">&lt;p&gt;A great &lt;a href=&quot;http://peebs.org/2011/10/16/ill-probably-never-hire-another-pure-sysadmin/&quot;&gt;article&lt;/a&gt; about the iminent decline of the sysadmin. It is exactly
why I believe all current sysadmins should drop their certifiably mad rush
towards certifications and learn a programming language. In addition, it is
also why I love &lt;a href=&quot;http://cloudbacon.com/2011/05/09/It-Is-Just-Environmental/&quot;&gt;Alex Payne&lt;/a&gt; so damn much. Worth the read:&lt;/p&gt;
&lt;p&gt;Article: &lt;a href=&quot;http://peebs.org/2011/10/16/ill-probably-never-hire-another-pure-sysadmin/&quot;&gt;&amp;quot;I&#39;ll Probably Never Hire Another Pure SysAdmin&amp;quot;&lt;/a&gt;
-- Author: &lt;a href=&quot;http://twitter.com/johnjpeebles&quot;&gt;John Peebles&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Thoughts On Reason</title>
    <link href="https://cloudbacon.com/posts/2011-11-07-Thoughts-On-Reason/"/>
    <updated>2011-11-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-11-07-Thoughts-On-Reason/</id>
    <content type="html">&lt;p&gt;Most people with any type of BS or BA degree from a mid sized liberal arts
college, adore banging their own logic drum in some form or another. Often
considered logic&#39;s dipolar brother: emotions are rebelious, temultuous and
overal something that many of us in the technical world strive to avoid.
Although the object in question might resemble a drum, what is actually being
played is something far more &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;phalic&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Reason, in it&#39;s simplest form, the one read from the dictionary, is the power
of the mind to think, understand and form a judgement. However, reason, in the
words of Raiden is akin to: &amp;quot;&lt;a href=&quot;http://www.youtube.com/watch?v=OJeQ6ZKPxyw&quot;&gt;Finish
him&lt;/a&gt;&amp;quot;! That&#39;s right, it is what
occurs at the very end of a train, not at the beginning.&lt;/p&gt;
&lt;p&gt;No one has ever entered a situation and through processing NOTHING, come up
with a sound and logical answer. Our brains, like computers are meant to
internalize, process, bias against and, eventually come up with something that
sounds &amp;quot;correct&amp;quot;. The idea of correctnesss will be taken with a grain of salt
for the remainder of this rant, it deserves its own post later down the road.&lt;/p&gt;
&lt;p&gt;This idea is often tested in some control group, something that won&#39;t harm or
potentially destroy the situation. Afterwards, and really only if a desired
outcome is apparent is the logical answer put forth into action. Logic…appears
to come very last. Except many of us fall into the trap of using it first.&lt;/p&gt;
&lt;p&gt;Well wait? How is that possible? Real thinkers, Einstein, Tesla, Plato, you
name it used their observations and their peers to come to a solution. They
took the surrounding ideas, along with their own and mashed them together much
like today&#39;s meemes. Their logic was a framework built from listening and
observing the masses. They didn&#39;t claim to have every answer at their
fingertips (thank you Jimmy Whales), they relied on empirical studies.&lt;/p&gt;
&lt;p&gt;What is seen today is a country full of people who are attempting to fill
everyone&#39;s glass jars with their own version of untested logic. This is
&lt;em&gt;mind-bleeding&lt;/em&gt;! Instead, why not sit back and make conscious attempts to learn
from each human interaction, every day.&lt;/p&gt;
&lt;p&gt;Give it a whirl, you will be surprised how much you learn and how much humility
you exude.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Git Powered Blog Drafts</title>
    <link href="https://cloudbacon.com/posts/2011-11-10-Git-Powered-Blog-Drafts/"/>
    <updated>2011-11-10T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-11-10-Git-Powered-Blog-Drafts/</id>
    <content type="html">&lt;p&gt;Ok, I don&#39;t personally care how you build/host/hump your blog, although in
general, it is probably, wait...for it &lt;a href=&quot;http://wordpress.com/&quot;&gt;wrong&lt;/a&gt;. Now that we got that
out of the way, here is a nifty idea to think about:&lt;/p&gt;
&lt;p&gt;Use the simplistic yet elegant power behind &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; to keep a robust and
burgeoning amount of blog posts and drafts. Why? Well Git is able to track
changes across a system fairly well..shit it&#39;s actually the only thing it does.
Being able to track diffrent blog posts, when they were completed and being
able to rewind to them, seems like something a powerful blogger might like to
have at his or her fingertips. To get going you need 2 things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt;, the powerful (some would say the best…and or the &amp;quot;bomb&amp;quot;)
&lt;s&gt;source&lt;/s&gt; version control management system.&lt;/li&gt;
&lt;li&gt;A static generated site. This means, that all of your files are flat in
nature and rely on no database to produce the overall content. Not only does
this solve a nasty &lt;a href=&quot;http://en.wikipedia.org/wiki/SQL_injection&quot;&gt;injection&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=-JFfN5pKzFU&quot;&gt;problem&lt;/a&gt;, but it can
withstand high amounts of traffic. Here are a &lt;a href=&quot;https://cloudbacon.com/posts/2011-11-10-Git-Powered-Blog-Drafts/#&quot;&gt;few
options&lt;/a&gt;(mostly Python and Ruby variants) if you are completely
lost to this concept. Don&#39;t worry about choosing one that is &amp;quot;wrong&amp;quot;. Most
of the posts can be moved from one system to another.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Navigate to the root folder of your newly built static site blog and invoke:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2710866.js?file=git%20init&quot;&gt;&lt;/script&gt;
&lt;p&gt;This will create a brand spanking new git repo, surrounding your code in a
wonderous pillow of fluffy safety. From here it is really simple:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/2710866.js?file=git%20branch&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;https://gist.github.com/2710866.js?file=git%20checkout&quot;&gt;&lt;/script&gt;
&lt;p&gt;Now you are free to modify your new post to your hearts content. By using
&amp;quot;post&amp;quot; at the beginning of the branch name, it is easy to see what branches are
posts and what are other, structural changes. This concept is ridiculously easy
however, it works well for one reason: nil == friction. One of Git&#39;s most
amazing features is its ability to handle branches and merging said branches
with ease. This &amp;quot;freedom&amp;quot; cuts down on the constant anxiety of &amp;quot;lost work&amp;quot;. If
you aren&#39;t worried about losing work, causing problems, or breaking something
you are free to use 100% of your creative juices to…well create!&lt;/p&gt;
&lt;p&gt;Elegant solutions will always trample their off-the-shelf, boxed, rural cousins.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>On Steve Jobs Bio</title>
    <link href="https://cloudbacon.com/posts/2011-11-14-On-Steve-Jobs-Biography/"/>
    <updated>2011-11-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-11-14-On-Steve-Jobs-Biography/</id>
    <content type="html">&lt;p&gt;This week on &lt;a href=&quot;http://5by5.tv/hypercritical/42&quot;&gt;Hypercritical&lt;/a&gt; (a web show
hosted by &lt;a href=&quot;http://twitter.com/#!/siracusa&quot;&gt;Jon Siracusa&lt;/a&gt; and aired on the &lt;a href=&quot;http://5by5.tv/&quot;&gt;5by5
podcasting network&lt;/a&gt;), Jon talks at length about the
&amp;quot;shodd-i-ness&amp;quot; behind &lt;a href=&quot;http://www.amazon.com/Steve-Jobs-ebook/dp/B004W2UBYW/ref=sr_1_1?s=digital-text&amp;amp;ie=UTF8&amp;amp;qid=1321327391&amp;amp;sr=1-1&quot;&gt;Steve&#39;s new
biography&lt;/a&gt;.
The real issue seems to stem from Isaacson&#39;s lack of domain specific knowledge
and unwillingness to learn.&lt;/p&gt;
&lt;p&gt;This idea is something that has been on my mind as of late. Who brings in a
team of individuals to accomplish a task who have zero experience? Would you
turn to a marketer who writes copy all day to solve a UX problem? Unless the
individual has domain specific knowledge of the subject, or they are willing to
learn, they don&#39;t belong in the room, conversation or the decision process.&lt;/p&gt;
&lt;p&gt;It is just sad that Isaacson didn&#39;t do Steve the justice he deserved. The
episode is well worth the hour and 20 minutes of your time.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Make Never A Date To Stop Learning</title>
    <link href="https://cloudbacon.com/posts/2011-11-28-Toes-For-Programmers/"/>
    <updated>2011-11-28T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-11-28-Toes-For-Programmers/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;The programmer who refuses to keep
exploring will surely stagnate, forget his joy, lose the will to program (and
become a manager)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It appears to be specifically pointing its finger at the programming crowd;
however, it is easily translated into any field.  &lt;a href=&quot;http://autotelicum.github.com/Smooth-CoffeeScript/SmoothCoffeeScript.html&quot;&gt;Smooth
Coffeescript&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>People Can&#39;t Read</title>
    <link href="https://cloudbacon.com/posts/2011-12-19-People-Can-Not-Read/"/>
    <updated>2011-12-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-12-19-People-Can-Not-Read/</id>
    <content type="html">&lt;p&gt;If you happened to stumble across Cloudbacon this morning, you have witnessed
a slight change to the sidebar. Before, it simply read &amp;quot;CB&amp;quot; (CloudBacon for
the peeps who had yet to figure it out) and a relatively cruddy icon for the RSS
feed. Now, you are greeted with three separate icons. One, a cloud, Two, a piece of
8-bit bacon, and lastly, a punch out of the weird RSS thing.&lt;/p&gt;
&lt;p&gt;There are a couple of reasons for this change:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I was kinda bored, ok? It happens.&lt;/li&gt;
&lt;li&gt;There is a high likelyhood that people can&#39;t read:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://detroit.cbslocal.com/2011/05/04/report-nearly-half-of-detroiters-cant-read/&quot;&gt;Here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.life360.com/blog/rich-americans-cant-read-peoples-emotions/&quot;&gt;Here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://thestir.cafemom.com/food_party/129526/white_coke_cans_pulled_because&quot;&gt;And Here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Really these are just a few, it&#39;s ridiculous actually.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you can&#39;t read, THUMBS UP, you know where you are, yet you might not be able
to do too much else from here...including reading this. Anyway, if you absolutely
dislike the whole &lt;a href=&quot;http://en.wikipedia.org/wiki/Iconography&quot;&gt;iconographic&lt;/a&gt; thing,
feel free to send me some FUD at braden{at}buyurifemme{dot}com.&lt;/p&gt;
&lt;p&gt;In finishing this up, there are a lot of articles built into my backlog, so they
might be on their way out but, really no one knows. At most, don&#39;t hold your breath.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Get Rid Of Command T</title>
    <link href="https://cloudbacon.com/posts/2011-12-20-Command-T-Sucks/"/>
    <updated>2011-12-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-12-20-Command-T-Sucks/</id>
    <content type="html">&lt;p&gt;Hardcore text editors always seem to make a concerted effort to actually ease
the opening of different files. Perhaps the most elegant solution was
implemented by &lt;a href=&quot;http://macromates.com/&quot;&gt;Textmate&lt;/a&gt; by hitting Command-T. A drawer would open
from the top of the window, the user could begin typing in the name of a file
and eventually hit enter to open it. Other editors have exibited this
functionality and the guys and gals at &lt;a href=&quot;http://peepcode.com/products/peepopen&quot;&gt;PeepCode&lt;/a&gt; even built a handy
app that sits in your menu bar to do the same thing.&lt;/p&gt;
&lt;p&gt;If you were a Vim/MacVim/GVim user you had one of two choices to mimic this
functionality.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use the PeepOpen application which is pretty cool and definitely worth the
money, although it requires a plugin to function with Vim&lt;/li&gt;
&lt;li&gt;Use a plugin (&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1502&quot;&gt;Vimball&lt;/a&gt; in this case) named Command-T&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The issue with Command-T came down to the fact that it needed to be compiled
with the system Ruby and so did your version of MacVim. Well, that&#39;s cool, most
people are ok with using OS X&#39;s version of Ruby because it is up-to-date…wait,
nope! For the intelligent person using &lt;a href=&quot;https://rvm.beginrescueend.com/&quot;&gt;RVM&lt;/a&gt; or
&lt;a href=&quot;https://github.com/sstephenson/rbenv&quot;&gt;RBENV&lt;/a&gt;, you needed to make sure to switch off from Ruby 1.9.2 and back
to the system ruby when updating MacVim via &lt;a href=&quot;http://mxcl.github.com/homebrew/&quot;&gt;Homebrew&lt;/a&gt; or compiling
the &lt;a href=&quot;https://github.com/b4winckler/macvim&quot;&gt;source&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All of this was a serious pain in the ass, trip-plicated by the fact that
MacVim is yet to see a golden, stable release for 10.7. In the most simple of
cases, plugins can be installed by throwing a couple of files and a doc
file(help text) into their respected folders. This action is what makes using
&lt;a href=&quot;https://github.com/carlhuda/janus&quot;&gt;Janus&lt;/a&gt;(Yes I know it is somewhat frowned upon but I don&#39;t happen to
care, &lt;a href=&quot;http://1.bp.blogspot.com/_wb8bAl1P-N0/R_5tFHW0prI/AAAAAAAAB-4/YWb6ZKvtFTY/s1600/haters-1.jpg&quot;&gt;sorry&lt;/a&gt;) such an easy package manager. However, if you look how &lt;a href=&quot;https://github.com/carlhuda/janus/blob/master/Rakefile&quot;&gt;it
handles&lt;/a&gt; Command-t you should be instantly filled with complex waves
of hatred or…at least &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enter &lt;a href=&quot;https://github.com/kien/ctrlp.vim&quot;&gt;CTRLP&lt;/a&gt;! An elegant and easily installable solution that could
care less about your Ruby implementation. After just a day and a half of random
playing, I am thoroughly impressed and suspect that Command-T won&#39;t make it&#39;s
way back into my &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;Vim belt&lt;/a&gt;. Although, I have massive respect for
the Vim user who keeps trying to wrestle the beast.&lt;/p&gt;
&lt;p&gt;Download CTRLP from the &lt;a href=&quot;https://github.com/kien/ctrlp.vim&quot;&gt;githubs&lt;/a&gt;, add it to your .janus.rake file
with:  &lt;script src=&quot;https://gist.github.com/2644583.js?file=oldstyle&quot;&gt;&lt;/script&gt; ...or use your Vim package manager of choice.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Angry NYC Ruby Devs</title>
    <link href="https://cloudbacon.com/posts/2011-12-28-Ruby-Developers-In-An-Uproar/"/>
    <updated>2011-12-28T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2011-12-28-Ruby-Developers-In-An-Uproar/</id>
    <content type="html">&lt;p&gt;The interesting blog: &lt;a href=&quot;http://www.betabeat.com/&quot;&gt;Betabeat&lt;/a&gt; highlighted a
wonderful
&lt;a href=&quot;http://www.betabeat.com/2011/12/27/ruby-developers-offended-by-2800-ruby-class/&quot;&gt;cockup&lt;/a&gt;
by &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;Art.sy&lt;/a&gt;&#39;s main programming squeeze, &lt;a href=&quot;https://twitter.com/dblockdotorg&quot;&gt;Daniel
Doubrovkine&lt;/a&gt;. In short, he began a thread on
the &lt;a href=&quot;http://www.meetup.com/NYC-rb/messages/archive/&quot;&gt;NYC-rb&lt;/a&gt; mailing list and
like any other &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;Internetz shit storm&lt;/a&gt;, things got
bad fast.&lt;/p&gt;
&lt;p&gt;Feel free to look at the whole thread by visiting NYC-rb mailing list
&lt;a href=&quot;http://www.meetup.com/NYC-rb/messages/archive/&quot;&gt;here&lt;/a&gt;. The replys seem to be
under the heading &amp;quot;RoR class for developers @GA in January&amp;quot;. Just search for
the heading and an amass of articles should show themselves.&lt;/p&gt;
&lt;p&gt;My thoughts on the whole kurfuffle is as follows. Developers learn by testing
and trying thousands of different platforms. Some of us learn languages better
by grabbing several books off the shelf, others excel much quicker in a
classroom/team setting (I usually fall under the latter). This &lt;a href=&quot;https://generalassemb.ly/ruby-on-rails-for-developers&quot;&gt;specific
class&lt;/a&gt; is 2800$ which
seems like a lot… until you look at some interesting aspects.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.engineyard.com/&quot;&gt;Engine Yard&lt;/a&gt; and &lt;a href=&quot;http://pivotallabs.com/&quot;&gt;Pivotal
Labs&lt;/a&gt;, two well known and exceptional Ruby and Rails
shops are backing the project. Does this mean that both will cherry pick a
couple of hungry devs from the class? Perhaps. However, if you are looking for
a reason to get into a classroom with a bunch of brilliant people who might
offer you a job at the end, why balk at the opportunity? In addition, the
classes are 4 hours a week across two days. Which is potentially comparable
with time spent on a 4 credit College course&lt;/p&gt;
&lt;p&gt;The software craftsmanship / apprentice pattern seems to be here to stay.
College and higher education is a stagnant game and companies like Engine Yard,
Pivotal, and LivingSocial seem to be looking to help out the community by
alternative means. There will be bumps along the road, but I(my opinion) don&#39;t
feel like this class is one of them.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Flinch For Your Life</title>
    <link href="https://cloudbacon.com/posts/2012-01-05-The-Merits-of-Flinching/"/>
    <updated>2012-01-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-01-05-The-Merits-of-Flinching/</id>
    <content type="html">&lt;p&gt;How many times during the day do you think that you flinch? Well, lets change
that around a bit. How man times a day do you put yourself into a situation
where you might flinch? We, as the inhabitants of the
&amp;quot;&lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;US&lt;/a&gt;&amp;quot; love
security. Nice houses, confy jobs where we sit behind a computer and appear to
be doing quality, work. What has all of this confort given us? Better health?
&lt;a href=&quot;http://www.gohealthinsurance.com/blog-resources/american-health-care-info/&quot;&gt;Nope&lt;/a&gt;,
better retirement? &lt;a href=&quot;http://jobs.aol.com/articles/2011/12/15/most-employees-not-prepared-for-retirement-infographic/&quot;&gt;Definitely
not&lt;/a&gt;.
What then?&lt;/p&gt;
&lt;p&gt;Nothing actually. The equation is really quite simple (10-30 somethings) == (a
bunch of video-game players). Even NPR...well ok, the really cool guys at
Freakonomics Radio are making
&lt;a href=&quot;https://cloudbacon.com/posts/2012-01-05-The-Merits-of-Flinching/#&quot;&gt;quips&lt;/a&gt;
at the youth and their love of video games. Without experienceing situations
that scare us, how can we grow mentally and physically? Julien Smith&#39;s new book:
&lt;a href=&quot;http://www.amazon.com/s?url=search-alias=aps&amp;amp;field-keywords=flinch&amp;amp;tag=alfredapp-20&quot;&gt;Flinch&lt;/a&gt;
answers this very question.&lt;/p&gt;
&lt;p&gt;Julien is definitely onto something with the idea of shortcircuiting our cronic
avoidance of fear. If, like our gag reflex, we could increase our abilities to
withstand difficult situations, what would this world look like? What do you
think? The book is free on amazon (kindle) and worth the 3 seconds it will take
you to click on the buy now button. Seriously, go read it...if you
&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;can&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Summary of Potential Readers</title>
    <link href="https://cloudbacon.com/posts/2012-01-17-Baby-Faced-Readers/"/>
    <updated>2012-01-17T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-01-17-Baby-Faced-Readers/</id>
    <content type="html">&lt;p&gt;I recently wrote a fascinating &lt;a href=&quot;http://cloudbacon.com/2011/12/19/People-Can-Not-Read/&quot;&gt;post&lt;/a&gt; on the probability of people&#39;s reading skills. With any &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;social inibility&lt;/a&gt; comes a good entrepreneur looking to capitalize. Enter some &lt;a href=&quot;http://www.theage.com.au/digital-life/smartphone-apps/aussie-wunderkind-gets-us250k-for-technology-that-could-revolutionise-web-20120113-1pz35.html&quot;&gt;some 16 year old and a summary sheet&lt;/a&gt;. His idea? The ability to summarize text using &amp;quot;clever&amp;quot; algorithms.&lt;/p&gt;
&lt;p&gt;Why would allowing people to easily ingest reams of information be a bad thing? Well it isn&#39;t until we become too reliant on the technology. And we as a people would, because it&#39;s easy and endorphins are fun...and make us giddy. We, as readers lose the ability to think critically because we don&#39;t need to, we have algorithms for that. From there we find reading comments difficult because we need to parse more than a few things together in order to devise the scope of the entire conversation. Reading...it&#39;s a bitch.&lt;/p&gt;
&lt;p&gt;Yet, that&#39;s the whole point, it&#39;s hard. Writing is as well, just take the time to read a few blog posts around here. In addition, how old is Ben Grubb, who is apparently the &amp;quot;author&amp;quot; of the article? He looks he&#39;s about 2 years short of sprouting his first pubic hair. Man, how I wish I had that level of technology access when I was these kid&#39;s ages. Kudos to them, they will be absolutely ripping when they finally hit puberty.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Rolling SOPA Blackouts</title>
    <link href="https://cloudbacon.com/posts/2012-01-18-Rolling-SOPA-Blackouts/"/>
    <updated>2012-01-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-01-18-Rolling-SOPA-Blackouts/</id>
    <content type="html">&lt;p&gt;As you, the informed Internet user may know, today, the 18th of January, is officially: &amp;quot;Blackout from &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot; title=&quot;Steaming pile of shit&quot;&gt;SOPA&lt;/a&gt; day&amp;quot;. Sites like &lt;a href=&quot;http://www.reddit.com/&quot; title=&quot;Reddit&quot;&gt;Reddit&lt;/a&gt;, &lt;a href=&quot;http://www.wikipedia.org/&quot; title=&quot;Wikipedia&quot;&gt;Wikipedia&lt;/a&gt;, and &lt;a href=&quot;http://www.boingboing.net/&quot; title=&quot;Boing Boing&quot;&gt;Boing Boing&lt;/a&gt; will take the day off, and presumably binge (not to be confused with &amp;quot;Bing&amp;quot; the insanely sub-popular search engine who, I guess could give a fuck due to their in-involvement) drink until they passout. Please take a little time out of your day to &lt;a href=&quot;http://www.senate.gov/general/contact_information/senators_cfm.cfm&quot; title=&quot;Robots&quot;&gt;contact a senate robot&lt;/a&gt; and instruct them to hit the &amp;quot;red&amp;quot; button when this bill comes back around.&lt;/p&gt;
&lt;p&gt;You can read the &lt;a href=&quot;http://www.opencongress.org/bill/112-h3261/show&quot; title=&quot;Open Congress&quot;&gt;&amp;quot;official&amp;quot; text&lt;/a&gt; or you can enjoy a video by &lt;a href=&quot;http://youtu.be/tT_SwAteJ9M&quot;&gt;Alexis Ohanian&lt;/a&gt; if you are currently unable to comprehend words. Please, please, please, do something to protest this egregious piece of legislation! Be informed, make great decisions and do something to help keep free speech on teh interwebz. Also blacklist any and &lt;a href=&quot;http://www.ibtimes.com/articles/276991/20120105/sopa-companies-businesses-groups-support-controversial-bill.htm&quot; title=&quot;Clown-tards&quot;&gt;all of these companies&lt;/a&gt; for the next 60 years.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Inherit The World</title>
    <link href="https://cloudbacon.com/posts/2012-02-05-Learners-Will-Inherit-It/"/>
    <updated>2012-02-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-02-05-Learners-Will-Inherit-It/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;At times of change, the learners are the ones who inherit the world,
while the knowers will be beautifully prepared for a world which no longer
exists.
&lt;small&gt;&lt;cite&gt;Allistair Smith&lt;/cite&gt;&lt;/small&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>Be Merry, Track Your Time</title>
    <link href="https://cloudbacon.com/posts/2012-02-08-Keep-Time-and-Avoid-Being-Anal/"/>
    <updated>2012-02-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-02-08-Keep-Time-and-Avoid-Being-Anal/</id>
    <content type="html">&lt;p&gt;Although somewhat of an anal sport, time tracking and time tracking software
is often times taken for granted by most folks. Even freelancers, the people
who live and die by their output, all judged on a per hour basis, sometimes
neglect the need of quality time tracking. Hopefully this rant will make even
the deepest salary ridden fool think twice when it comes to skimping on starting
that timer.&lt;/p&gt;
&lt;p&gt;###Software is Dum
It really is true. I hadn&#39;t thought about it until now, but there is a possibility
that you could time yourself with a stop watch (IN IRL!!) and record each section
onto some &lt;a href=&quot;http://youtu.be/63UlBsdElsY&quot;&gt;spreadsheet&lt;/a&gt;. Just let that sit in. Uh, and I am 99 percent positive
that some people still do it this way. Don&#39;t fret though, there are some quality
alternatives.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rescuetime.com/&quot;&gt;Rescue Time&lt;/a&gt;: Sits in the background and tracks time spent on websites,
documents, etc. Focus mode blocks you from distracting websites. Rescue time is
great to guage how distracted you are during the course of a day.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.slimtimer.com/&quot;&gt;Slim timer&lt;/a&gt;: Currently my staycation. Lean, simple timer that leans heavily
on a robust and easy to understand tagging system.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.getcashboard.com/&quot;&gt;Cashboard&lt;/a&gt;: Full featured web client that even takes payments. Much more
than just time tracking.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.getharvest.com/&quot;&gt;Harvest&lt;/a&gt;: Elephant in the room. Harvest has been around for quite some time
and has a product that is polished and a joy to use. In addition, they have a
dedicated iPhone app.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.toggl.com/&quot;&gt;Toggl&lt;/a&gt;: On the same lines as Cashboard. Large project with a responsive design
that works well if you mentally split up everything by client, project, tag, workspace
etc.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://letsfreckle.com/&quot;&gt;Freckle&lt;/a&gt;: A gorgeous and fun app written with the idea that all software
should be cheerful and a joy to use. Freckle takes the top design award out of
the bunch. In addition, it is written, designed and marketed by the genius power-
duo: Amy and Thomas at &lt;a href=&quot;http://slash7.com/company/&quot;&gt;Slash7&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&#39;s it? Yeah well, this is just a little snippet of what is out there in terms
of web based software. Get your feet wet, find something that fits your lifestyle
and then jump to the next section.&lt;/p&gt;
&lt;p&gt;###User Error
Since all of the above software has some form of payment attached to its use, how
does anyone get what they pay for? First ask yourself, are you using it? Aside
from RescueTime, all of the options above have an elegant and simple way to export
tasks into a csv format for billing. Keyword here being &amp;quot;export&amp;quot;.&lt;/p&gt;
&lt;p&gt;There is always (most of the time) the ability to type in a start and end time
for a project. However, this is usually a crap-shoot, which means, if you haven&#39;t
been keeping up, you are undervaluing yourself. All that billable work that is getting completed
but, no one is getting paid. Because someone has timer, &amp;quot;baby&amp;quot; issues.&lt;/p&gt;
&lt;p&gt;It&#39;s true. In almost every case, the software comes bundled with a timer that you
can start once you begin working on a project, and stop when you are finished.
This is a much more acurate rendition of the work. The freelancer is no longer
stiffing himself that hour, and he has a much more accurate view of how long it
takes him or her to complete a givien task. Now we are getting paid more AND we
are 100% better when it comes to estimating? BRILLIANT!&lt;/p&gt;
&lt;p&gt;Don&#39;t be scared to start that timer. For one, it isn&#39;t going to start its self, nor
is it ever going to be exact unless you do.&lt;/p&gt;
&lt;p&gt;###Less Boring Shit != More Anal
Best headline ever, personally. Anyway, so now that we have a crazy easy and somewhat
scary system put into place to time work, why on earth would we use it outside of
the specific domain? To become a time tracking uber elite, (they are listed next to
the grep uber-elite folks) time tracking must be an integral part of everything you
do.&lt;/p&gt;
&lt;p&gt;How much time did I spend on Hacker News yesterday? Well shit, let me fire up
Slim Timer and run a report for you. General RSS and blog reading, blog formulation,
&lt;a href=&quot;http://youtu.be/glnJ9lK9FJw&quot;&gt;Mr. Pregnant&lt;/a&gt;, ALL of it should be tracked. You are not a fun sponge if you
track how much time you &amp;quot;faffe off&amp;quot; on Fbook and Youtube all day. Everytime the
timer starts and it isn&#39;t timing a piece of creation, a small piece of us know that
we need to get back on track.&lt;/p&gt;
&lt;p&gt;The pain will subside, but promise yourself that you will track every activity that
is important or that you want to do less of, or that you want to get paid more
for doing...or whatever. Just start that timer and then proceed to do loads of
awesome shit. We certainly could use more &amp;quot;awesome shit&amp;quot; VS useless Reddit posts
about how to be an American and or a minimalist.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Constructive Critisism Goes a Long Way</title>
    <link href="https://cloudbacon.com/posts/2012-04-12-constructive-critisism-goes-a-long-way/"/>
    <updated>2012-04-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-04-12-constructive-critisism-goes-a-long-way/</id>
    <content type="html">&lt;p&gt;Yay, I found this blog again...ok well actually, I have been on a writing hiatus and have recently come
only to yell at the Philladelphians. Yes, you guessed it, those &amp;quot;crasser than myself&amp;quot; general (most, not al)
pain-in-the-neck &amp;quot;Soul fans&amp;quot; have gone and sullied up teh interwebz with what can only be considered hippy, limp
wristed drivel.&lt;/p&gt;
&lt;p&gt;Pam, from &lt;a href=&quot;https://cloudbacon.com/posts/2012-04-12-constructive-critisism-goes-a-long-way/#&quot;&gt;Pam the Webivore&lt;/a&gt; decided that it would be her mission...no, her sole duty to attack a fellow ruby
nerd (Yehuda Katz) by getting &amp;quot;flustered&amp;quot; and damning him on Hacker News today. Please, for the love of all that
is good and smells like wet trash in Philly, refrain from using the word flustered outside of people&#39;s interactions
with &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;albatrosses&lt;/a&gt;. According to Pam, which is frankly a much better name for her blog, Yehuda steamrolled
someone at a local users group.&lt;/p&gt;
&lt;p&gt;Pam made this interaction out to be some kind of barage of sorts, ending with the speaker sitting down because
they couldn&#39;t handle the cricriticism coming from Yehuda. Pam and her Philly-isoms continue to barrate and even
threaten Yehuda for a few more paragraphs. Some might be thinking,  why is Pam and her otherwise lame named blog
such a big deal?&lt;/p&gt;
&lt;p&gt;People should call you out when your &amp;quot;shit&amp;quot;(Philladelphianism) could use some improvement. Why let people go through
life thinking their stuff is amazing when a few pieces of critisim could help them tremendously? We have become a
nation of rabbid sycophants and where has it gotten us? This &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;itis&lt;/a&gt; doesen&#39;t affect all of us though. For example, this
week&#39;s &lt;a href=&quot;http://5by5.tv/founderstalk/35&quot;&gt;Founder&#39;s talk&lt;/a&gt; introduced me to Steve Espinosa who feels much the same as I do on this very fact.&lt;/p&gt;
&lt;p&gt;###A Challenge&lt;/p&gt;
&lt;p&gt;The next time a friend shows you a design, app, idea, etc and they are missing something, tell them. Seriously! Don&#39;t
be afraid to ruffle some feathers, complain, call out the haters, live up to your expectaions, deny something,
whatever! Please, please, don&#39;t passively polish shit.&lt;/p&gt;
&lt;p&gt;Also although there might be a hearty portion of Philly jabs in this post, I actually quite adore the city, just
not so much Pam.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Software Development and Knowledge</title>
    <link href="https://cloudbacon.com/posts/2012-05-08-Software-Development-and-Knowledge/"/>
    <updated>2012-05-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-05-08-Software-Development-and-Knowledge/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Software is not a product, it&#39;s a medium for storing knowledge. Therefore, software development is not a product producing activity, it is a knowledge acquiring activity. Knowledge is just the other side of the coin of ignorance, therefore software development is an ignorance reduction activity&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;small&gt;&lt;cite&gt;&lt;a href=&quot;http://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382/ref=sr_1_1?ie=UTF8&amp;amp;qid=1336527393&amp;amp;sr=8-1&quot;&gt;Apprenticeship Patterns&lt;/a&gt;&lt;/cite&gt;&lt;/small&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Amercia vs Cantada</title>
    <link href="https://cloudbacon.com/posts/2012-06-01-Canadians-Trump-Amercia/"/>
    <updated>2012-06-01T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-06-01-Canadians-Trump-Amercia/</id>
    <content type="html">&lt;p&gt;Well that is a damn good question actually. If you happen to have been under a rock all week, Mr. Romney released an iPhone app where you could take a picture of your &lt;a href=&quot;http://ourentropy.files.wordpress.com/2008/09/flatcat.jpg&quot;&gt;cat&lt;/a&gt;, &lt;a href=&quot;http://3.bp.blogspot.com/-JMKSSCFBsj8/T7WsmcXaxuI/AAAAAAAADR0/ZE7jX9J856Y/s1600/2012-5-15+095.JPG&quot;&gt;truck&lt;/a&gt; or &lt;a href=&quot;http://images.mocpages.com/user_images/40975/12704221704_SPLASH.jpg&quot;&gt;wife&lt;/a&gt; and profess your love to the Republcian party. The issue being, Mitt forgot how to &lt;a href=&quot;http://thenewcivilrightsmovement.com/wp-content/uploads/2012/05/amercia.jpg&quot;&gt;spell&lt;/a&gt; &#39;Murica. Although Americans might have a serious aversion to good ole fashion &lt;a href=&quot;http://gothamist.com/attachments/jen/2012_01_shcool.jpg&quot;&gt;education&lt;/a&gt;, everything is not all &amp;quot;honky-dorry&amp;quot; in Amercia&#39;s &lt;a href=&quot;https://cloudbacon.com/posts/2012-06-01-Canadians-Trump-Amercia/#&quot;&gt;crockett bag&lt;/a&gt;: &lt;a href=&quot;http://i28.tinypic.com/2uenw5l.jpg&quot;&gt;Canada&lt;/a&gt;...1st world problems.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>WWJD</title>
    <link href="https://cloudbacon.com/posts/2012-06-02-An-Honest-Response/"/>
    <updated>2012-06-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-06-02-An-Honest-Response/</id>
    <content type="html">&lt;p&gt;Below is a conversation with what I can only guess is a young man over a
current classified item I have up &lt;a href=&quot;http://greensboro.craigslist.org/&quot;&gt;for sale&lt;/a&gt; on the Craigslists.&lt;/p&gt;
&lt;p&gt;His original response to the posting:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hello! let&#39;s do like this, actually now I&#39;m not in town for now, I came to visit my son so i wont be able to meet with you but am okay with the price as seen on the advert, I&#39;ll proceed in issuing a Check out to you and when you received the check , I will make arrangement for pick-up. So get back to me with below details asap.
Name:
Address:
City:
State:
Postal Code:
Phone Number:
And as soon as this is provided, the payment will be overnight to you and i will let you know when its mailed out. I need you to be honest with the sale as I am a God fearing person.
Thanks
God Bless.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Needless to say, I felt that a response was required:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you were a God fearing person you should know that God eats
Internet scammers and spammers and shits them out into a very special
place in Hell.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For one, yes &amp;quot;Internet&amp;quot; is still uppercased, I am not sure what the
folks at the AP are on. And second, I am glad that he/she/it believes
that everyone in the South (sometimes pronounced...with emphasis: &amp;quot;THE
SOUTH&amp;quot;) would believe this drivel due to their love. Errrr. Fear of &amp;quot;Gawd&amp;quot;. Also, did
I miss something? Why the fuck is the word &amp;quot;Check&amp;quot; capitalized? Maybe
that&#39;s their name.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Something In The Air Stinks</title>
    <link href="https://cloudbacon.com/posts/2012-06-08-Something-In-The-Air-Stinks/"/>
    <updated>2012-06-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-06-08-Something-In-The-Air-Stinks/</id>
    <content type="html">&lt;p&gt;And we have reached another proverbial Friday, although mark my
words, I am not counting. I think. First of all, there needs to be a
good amount of explanation concerning the fascination with these &amp;quot;Friday
posts&amp;quot;. However, I would like to make an astute observation before I move on. The
keyboard on this 17 MBP is absolute shit.&lt;/p&gt;
&lt;p&gt;Anyway, my plan with these Friday rants is to really just try and sum up
a small segment of the week. Whether it be the state of political
affairs like last Friday, or perhaps something crushing about the local
field mouse population. Nothing very heavy, just something that will
make you giggle on a Friday afternoon...when you are probably
drunk and flipping through your RSS reader because you are alone due to
the fact that you know what RSS is. So without further ado, here we go:&lt;/p&gt;
&lt;p&gt;It appears that America has finally found itself a suitable and fitting
&lt;a href=&quot;https://cloudbacon.com/posts/2012-06-08-Something-In-The-Air-Stinks/#&quot;&gt;past-time&lt;/a&gt;: &lt;a href=&quot;http://www.wwl.com/Louisiana-man-accused-of-biting---a-chunk-of-the-v/13347809&quot;&gt;Zombieism&lt;/a&gt;. That&#39;s right &lt;a href=&quot;http://youtu.be/4awVqRr1eCo&quot;&gt;another zombie attack&lt;/a&gt; was
chronicled this week in yet another, hopeless Southern State. No, go
ahead and take a wild guess. &lt;a href=&quot;http://youtu.be/8vuZ8jSVNUI&quot;&gt;Yup&lt;/a&gt; that&#39;s right the great state of
Lousiana and all of it&#39;s possible zombie infested inhabitants...welcome
to the danger zone. Best part? Yeah, apparently bath salts, when used
correctly have the potential to throw homeless people into a state of
&amp;quot;excited delirium and dangerous behavior&amp;quot;. Frankly, those are two
emotions...or whatever, that I wouldn&#39;t want to explore while in a bath
tub. Moral behind all of these attacks? &lt;a href=&quot;http://www.motivationals.org/demotivational-posters/demotivational-poster-7861.jpg&quot;&gt;Be safe, be seen&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Give Em The Finger</title>
    <link href="https://cloudbacon.com/posts/2012-06-15-Give-Em-The-Finger/"/>
    <updated>2012-06-15T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-06-15-Give-Em-The-Finger/</id>
    <content type="html">&lt;p&gt;A few weeks ago something so terrible, so...unbelievably...terrible happened to my beloved Ifone: It &lt;a href=&quot;http://i0.kym-cdn.com/photos/images/original/000/172/198/Y0pTu.png&quot;&gt;fell&lt;/a&gt;. Specifically, it fell out of my ridiculous &lt;a href=&quot;http://www.flickr.com/photos/mcwetboy/1862552444/sizes/z/in/photostream/&quot;&gt;brace&lt;/a&gt; and onto pavement. Upon inspection, I realized that my foolhardy &lt;a href=&quot;http://www.edition20.com/images/products/382/Zig-Zag-280-by-Cassina-by-Gerrit-Thomas-Rietveld-image-1.jpg&quot;&gt;meneuver&lt;/a&gt; had cost me a refurb iPhone. Had I had the &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;brainz&lt;/a&gt; to have purchased one of &lt;a href=&quot;http://feinger.com/&quot;&gt;these&lt;/a&gt;, everything would be unliterraly &amp;quot;smashing&amp;quot; at the moment. Man, I love how the popularity of the iPhone continues to allow shitty ideas to prosper.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Vim Can Suck</title>
    <link href="https://cloudbacon.com/posts/2012-07-03-Vim-Can-Suck/"/>
    <updated>2012-07-03T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-07-03-Vim-Can-Suck/</id>
    <content type="html">&lt;p&gt;OS X is generally a wonderful operating system. Sure there are plenty of
&lt;a href=&quot;http://img.gawkerassets.com/img/17phrnpizopotjpg/original.jpg&quot;&gt;neckbeards&lt;/a&gt; out there that would love to punch me in the balls for the
comment. On the opposite side of life, most designers would agree with
me down to the fact that they demand that all the fiddly buttons
are actually &amp;quot;&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;lickable&lt;/a&gt;.&amp;quot; Whatever that means. Several items both of
these camps should be able to agree on is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Package management is hard on OS X&lt;/li&gt;
&lt;li&gt;and lots of Apple&#39;s built in &amp;quot;stuff&amp;quot; (you might call them apps but,
you would &lt;a href=&quot;https://en.wikipedia.org/wiki/Package_management_system&quot;&gt;be wrong in doing so&lt;/a&gt;) kinda
blow.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I happen to be a &lt;a href=&quot;https://cloudbacon.com/posts/2012-07-03-Vim-Can-Suck/#&quot;&gt;very opinionated&lt;/a&gt; Vim user and over the past month
have experienced...issues with the version of Vim compiled through the
nice folks at Apple. Before we continue, there are some clerifications
that are due. The Vim I am banging on about isn&#39;t &lt;a href=&quot;https://code.google.com/p/macvim/&quot;&gt;MacVim&lt;/a&gt; or the Vim that
is bundled within the /Contents section of the MacVim install.&lt;/p&gt;
&lt;p&gt;My biggest beef stems from the fact that the version bundled with Lion,
Snow Leopard, Leopard, Tiger, and probably all the way back to 10.1 are compiled without Ruby and Python support. This can cause
several issues with popular plugins like &lt;a href=&quot;https://cloudbacon.com/posts/2012-07-03-Vim-Can-Suck/#&quot;&gt;Command-t&lt;/a&gt; and
&lt;a href=&quot;http://sjl.bitbucket.org/gundo.vim/&quot;&gt;Gundo&lt;/a&gt; thereby rendering them useless when composing text. &lt;em&gt;READ&lt;/em&gt;:
they don&#39;t fucking work. Being a short bus ride away from Canada day -
America, the &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;4th of July&lt;/a&gt;, I thought it appropriate to write a short
&amp;quot;how-to&amp;quot; in order to save potentially-awesome folk from this issue.&lt;/p&gt;
&lt;p&gt;Ok, one more thing I am opinionated about is: &lt;a href=&quot;http://mxcl.github.com/homebrew/&quot;&gt;Homebrew&lt;/a&gt;.
Seriously, if you use MacPorts, Fink, or whatever other piece of
ancient package manager-shit, you have issues that will eventually equate to
your downfall. In addition, I am not much of a fan of Homebrew&#39;s stance
on not offering packages that &amp;quot;Duplicate functionality provided by OS X.&amp;quot;
Enter: brew taps.&lt;/p&gt;
&lt;p&gt;To get this started we are going to assume you have Homebrew installed
and every thing is up to date. Hop back into a terminal and type:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install mercurial
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Yeah, I &lt;a href=&quot;https://cloudbacon.com/posts/2012-07-03-Vim-Can-Suck/#&quot;&gt;didn&#39;t like it either&lt;/a&gt; but so is life. Next:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew tap homebrew/dupes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Agree to what it asks and make sure that your bashrc or zshrc file has
this path near the top&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export PATH=&amp;quot;/usr/local/bin:$PATH&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now we have Homebrew set up to install system duplicate packages. Before
we set up Vim we need to switch back to the system compiled Ruby instead
of what we have set in Rbenv or RVM. Once that is done, life is a snap:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install homebrew/dupes/vim
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Theoretically &lt;code&gt;brew install vim&lt;/code&gt; will function nicely however, it is
always good to be explicit. If you would like to know some other
packages that fall into the realm of &amp;quot;dupes&amp;quot;, check out this &lt;a href=&quot;https://github.com/Homebrew/homebrew-dupes&quot;&gt;Github
repo&lt;/a&gt;. I have been using the Homebrew installed version all morning and by far it is faster and
more stable than what comes with Lion...DAMN you OS X for being so
brilliant and lacking at the same time!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Colours Matter</title>
    <link href="https://cloudbacon.com/posts/2012-07-05-Colors-Matter/"/>
    <updated>2012-07-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-07-05-Colors-Matter/</id>
    <content type="html">&lt;p&gt;So what did everyone do yesterday (4th of July) instead of blow shit up
and drink too much beer? Unfortunatly an hour of work turned into three
wrestling with &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;Tmux&lt;/a&gt;, specifically the way information is presented
on the &lt;a href=&quot;http://c522735.r35.cf2.rackcdn.com/tmux4.jpg&quot;&gt;lower bar&lt;/a&gt;...or whatever it is called. Afterwards, I had a
conversation with my roommate concerning what we had done during the day
for &amp;quot;work.&amp;quot; When we concluded, he made a snippy joke about
&amp;quot;leaving me to my colored text.&amp;quot; For a second (just a hot one) I realized that he was perhaps
right in the sense that I was pissing my day away.&lt;/p&gt;
&lt;p&gt;His comment, unlike normal,  stuck with me
through the rest of the day. Through fireworks, copious amounts of beer,
Crossfit chit chat, everything really. The thing is, when we are forced
to do work with tools &lt;a href=&quot;http://windows.microsoft.com/en-US/windows/home&quot;&gt;that we don&#39;t enjoy&lt;/a&gt;, our work begins to
reflect our &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;attitude&lt;/a&gt;. It seeps into every little nook and cranny and it
infects us. Often-times in ways that we could never begin to imagine.&lt;/p&gt;
&lt;p&gt;To cope we turn to things that might infuse us with happiness. We look for solace in
Reddit, Facebook, Twitter, and especially buying needless amounts of
shit. These passive forms of consumption lead us to nothing. I struggled
through the last sentence and decided to sub out everything because
there is no way to sugar-coat the fact. Unbridled consumption &lt;strong&gt;IS&lt;/strong&gt; what is making us
as a group of people weak, incoherent, short sighted, antsy, ignorant
and even a little...or a lot on the &lt;a href=&quot;http://1.bp.blogspot.com/_lG2az5ut9w0/Sw91s3I42zI/AAAAAAAAESA/1Ly8c1PdJEM/s400/+When_Breasts_Grow_On_Back_01.jpg&quot;&gt;pudgy side&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although I may have wasted a good part of 3 hours hacking on &amp;quot;coloured
text,&amp;quot; I learned a lot about how Tmux works under the hood, and,
this is a biggy, I built &lt;a href=&quot;http://pinterest.com/search/?q=cabin+porn&quot;&gt;a space&lt;/a&gt; that I love to be in. Who knows
what will happen in a few minutes, in a few days or even in a few
months. What I know now is I will continue to build kick-ass, elegant software for people
who demand it because my working environment is great...cue &lt;a href=&quot;http://2.bp.blogspot.com/-b9Y6zR4LXUw/TdFioigALEI/AAAAAAAAJqM/eyAxRKF8LCU/s1600/Funny-Tony-The-Tiger.jpg&quot;&gt;Tony&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, although I am &amp;quot;American&amp;quot;, I actually spell the word: colour
correctly. &lt;a href=&quot;https://en.wikipedia.org/wiki/Noah_Webster&quot;&gt;Webster&lt;/a&gt; performed an egregious disservice to the English
language and I will never forgive him for his folly.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Slobbering MakeUp on a Pig</title>
    <link href="https://cloudbacon.com/posts/2012-07-31-Pigs-Eating-MakeUp/"/>
    <updated>2012-07-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-07-31-Pigs-Eating-MakeUp/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Story&lt;/strong&gt;: My wife and I were cooking dinner one night (actually I had
returned from the gym and was generally being a nuisance) and a friend
asked to use the frying pan to cook his steak after we had finished. I
said that I had one more thing to cook and I would just throw the steak
on when I was done. At first he mulled this around in his head and then
gave me this response:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nah, I want to sear the steak really quickly and try and lock in
the...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I pretty much gave up listening after that. The gist being that he had
devised a very elaborate plan to cook his steak. This is great, a young
man having an opinion and a plan on how he/she was going to cook their
dinner. Except for one very interesting thing: The meat was purchased at
&lt;a href=&quot;https://en.wikipedia.org/wiki/Food_Lion&quot;&gt;Food Lion&lt;/a&gt;. If you weren&#39;t in the know, Food Lion sells the
bottom-of-the-shit-barrel produce and meat. So what does all of this
equate to? You guessed it! Putting lipstick on a pig.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://windows.microsoft.com/en-US/windows-8/release-preview&quot;&gt;Microsoft&lt;/a&gt; is doing this these days with the anoucement and
inevitable fail that is Windows 8. A mediocre product slabbed with a
coat of &lt;a href=&quot;http://www.wikihow.com/Paint-Your-Toe-Nails&quot;&gt;coral paint&lt;/a&gt; is still...wait for it: a FUCKING MEDIOCRE
product. As a &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;reader&lt;/a&gt; you can sub out the word &#39;product&#39; with
people, pigs, jobs, or anything really. This all relates to one simple fact:
&lt;em&gt;no one&lt;/em&gt; has ever won a race being mediocre.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>One Of The Best Ruby Primers</title>
    <link href="https://cloudbacon.com/posts/2012-08-01-Best-Ruby-Primer/"/>
    <updated>2012-08-01T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-01-Best-Ruby-Primer/</id>
    <content type="html">&lt;p&gt;Wait you, the reader, weren&#39;t aware I loved the little elegant and
quirky language that is &lt;a href=&quot;https://cloudbacon.com/about&quot;&gt;Ruby&lt;/a&gt;? Well anyway, I am currently &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-01-Best-Ruby-Primer/#&quot;&gt;reading&lt;/a&gt;
a &lt;a href=&quot;http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452/ref=sr_1_1?ie=UTF8&amp;amp;qid=1343843967&amp;amp;sr=8-1&amp;amp;keywords=design+patterns+in+ruby&quot;&gt;book&lt;/a&gt; about design paterns in Ruby. It is sort-of old (syntax wise), having been
written in 2007; however, still packed with some pretty great
&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;nuggets&lt;/a&gt;. In particular, Russ Olson does a magnificent job of
summing up Ruby in the first chapter. If you are an accomplished &lt;a href=&quot;https://en.wikipedia.org/wiki/Software_Craftsmanship&quot;&gt;software
craftsmen&lt;/a&gt; and are looking for a quick-and-dirty intro to a great
language, then this book is what you are &lt;strike&gt;torrenting&lt;/strike&gt; looking for.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>30 Day Blogging Challenge</title>
    <link href="https://cloudbacon.com/posts/2012-08-02-30-Days-of-Blogging/"/>
    <updated>2012-08-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-02-30-Days-of-Blogging/</id>
    <content type="html">&lt;p&gt;THROWDOWN! What the fuck am I thinking with all of this? Anyway some of the
readers might have seen a &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;influx&lt;/a&gt; of posts in their feed with this blog
over the past couple of days. What is happening is a blog posting will be
performed each and every day for 30 whole days or 26 &lt;a href=&quot;https://en.wikipedia.org/wiki/Metric_time&quot;&gt;metric days&lt;/a&gt; (whichever way you swing).
I am sure I have tried this before but, I always seem to fall short on the 9th day.
Well folks, this time it is going to be different.&lt;/p&gt;
&lt;p&gt;&lt;strike&gt;Mission&lt;/strike&gt; no, wait &lt;strike&gt;delegation&lt;/strike&gt;...hmm.
Operation. No that&#39;s all wrong.&lt;/p&gt;
&lt;p&gt;Anyway, the idea will be to generate some sort of useful tidbit, hack,
Ruby code, workflow, piece of awesome, or something every day until
September 1st. All of the wacky linking will be provided free of charge. So make damn sure to
click as many links as possible in a futile attempt to figure out what
is going on in my rat trap of a brain.&lt;/p&gt;
&lt;p&gt;The prize for all of this you might ask? &lt;a href=&quot;http://www.elitekeyboards.com/products.php?sub=pfu_keyboards,hhkbpro2&amp;amp;pid=pdkb400bn&quot;&gt;A Happy Hacking Keyboard Pro 2&lt;/a&gt;.
Yes, I have been looking at picking one up for a long time and need a
chellenge of this proportion to offset the cost of that sexy, sexy
keyboard. Until tomorrow...also some general rules are below!&lt;/p&gt;
&lt;p&gt;##30 Day Challenge Rules&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;There must be a post for every day in August no matter how many days
actually exist in the month&lt;/li&gt;
&lt;li&gt;Each &amp;quot;Post&amp;quot; must be over 200 character-words to be considered
&lt;a href=&quot;http://cloudbacon.com/&quot;&gt;legal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Each post has eggsactly 24 hours to be relevant (posts must be posted
to Heroku between 12:01 am and 11:59 pm)&lt;/li&gt;
&lt;li&gt;Everything must be brilliant&lt;/li&gt;
&lt;li&gt;Posts may not be written under the influence of &amp;quot;&lt;a href=&quot;http://www.theonion.com/articles/chickfila-debuts-new-homophobic-sandwich,28888/&quot;&gt;God Chicken&lt;/a&gt;&amp;quot;&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>Cocks At A Conference</title>
    <link href="https://cloudbacon.com/posts/2012-08-03-Cocks-At-Conferences/"/>
    <updated>2012-08-03T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-03-Cocks-At-Conferences/</id>
    <content type="html">&lt;p&gt;I admit it, I am kind of bad at this whole conference scene thing. I love
meeting people but most of the time they force themselves into talking
points instead of bringing things up naturaly. Of course this will
happen due to the large amount of people interacting with each other
over a short amount of time. We just aren&#39;t that skilled, nerd or not.&lt;/p&gt;
&lt;p&gt;Besides the hallway track which often turns into the simple &amp;quot;toot toot&amp;quot;, you have the random person that can&#39;t keep their face out of their
laptop or scribbling on their iPad...Therebye, giving-up said: toot-toot factor.
Asshats basically, lots and lots of Asshats. Close that shit, get the twinky out of your mouth,
listen to the presenter and quit being a fuckup.&lt;/p&gt;
&lt;p&gt;After all why on earth are you at this conference? To tick off some
imaginary box for a raise? Why are you programming? Go ahead, ask yourself that
NOW. It&#39;s free and maybe you can write the file down on your iPad.&lt;/p&gt;
&lt;p&gt;I know that I said that there would be some fun links included in these
posts. So why is this one so angry...and dry you might ask? Well for
starters I severely dislike this type of a person and this exact file
was finished from my phone at 11:45 pm tonight.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>How To Think Like A Vimer</title>
    <link href="https://cloudbacon.com/posts/2012-08-04-How-To-Think-Like-A-Vimmer/"/>
    <updated>2012-08-04T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-04-How-To-Think-Like-A-Vimmer/</id>
    <content type="html">&lt;p&gt;SO this post isn&#39;t going to help all of you Textmate, Textmate2,
SublimeText, emacs, or nano nerds out there. Nope, it is just for the
good ole folks who have their shit together and use the wonder that is
Vi or Vim. I haven&#39;t written a whole lot on the subject in a while;
however, plan on something a little more &lt;a href=&quot;http://picturesofpeoplescanningqrcodes.tumblr.com/&quot;&gt;noob&lt;/a&gt; friendly sometime soon.&lt;/p&gt;
&lt;p&gt;When you pick up a piece of actual paper, you know the &lt;a href=&quot;http://www.inhabitots.com/wp-content/uploads/2008/09/halloween1.jpg&quot;&gt;scary stuff&lt;/a&gt;
that exists in real life, do you think of how you build your sentences?
Moreover, do you think about how to navigate back through them if you
need to &lt;a href=&quot;http://sale.images.woot.com/Illiterate_RainbowjiuDetail.png&quot;&gt;edit&lt;/a&gt; anything when you are finished? I am going to go out
on a limb and say that most people have never &lt;a href=&quot;http://3.bp.blogspot.com/-oByir_N-0rI/Tkaq3pX44_I/AAAAAAAAk-I/QJBS12_973o/s640/Marcus.png&quot;&gt;expired&lt;/a&gt; one thought
on these concepts.&lt;/p&gt;
&lt;p&gt;Why? When it comes to the bulk of our verbal creation these days, we are sitting on
a computer and we need to navigate in between a myriad of
lines and words to edit whatever we are working on. If this is true, why
don&#39;t we take the time to sit down and think of the most effective way
to get from point A to point B? Here is a test:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sit down at your computer and pull up(in your &lt;a href=&quot;http://www.vim.org/&quot;&gt;editor-du jour&lt;/a&gt;)
some prose&lt;/li&gt;
&lt;li&gt;Look at how the editor structures the text, look at the line breaks,
the spacing, how many words are placed on a line, etc.&lt;/li&gt;
&lt;li&gt;Place the cursor anywhere on the page, this will be your start point&lt;/li&gt;
&lt;li&gt;Find a place that needs editing, maybe it is a misspelled word, bad
punctuation, whatever&lt;/li&gt;
&lt;li&gt;Lasty, figure out how to get there &lt;strong&gt;without&lt;/strong&gt; using the mouse and
with as &lt;strong&gt;few keystrokes&lt;/strong&gt; as humanly possible.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is how a vimer &lt;a href=&quot;http://cdn.quotesnsayings.net/wp-content/uploads/2012/01/Finding-Out-That-Someone-Does-The.png&quot;&gt;does it&lt;/a&gt;. Also I am not too sure it is &amp;quot;Vimer&amp;quot;
or &amp;quot;Vimmer&amp;quot;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>30 Minute Tarcks</title>
    <link href="https://cloudbacon.com/posts/2012-08-05-30-Minutes/"/>
    <updated>2012-08-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-05-30-Minutes/</id>
    <content type="html">&lt;p&gt;If you happen to be an uneducated &lt;a href=&quot;https://peepcode.com/&quot;&gt;peep&lt;/a&gt; who doesn&#39;t quite grok the
idea of the &lt;a href=&quot;http://wikibin.org/articles/tarck-bike.html&quot;&gt;&amp;quot;tarck&amp;quot;&lt;/a&gt;...well, then I can&#39;t help you. However, for the
remainder of this post tarck won&#39;t be used in terms of &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;bikez&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today was the last day of a truly awesome Ruby convention in Pittsburgh
(pronounced &amp;quot;Pittz-burf&amp;quot; by &lt;a href=&quot;http://twitter.com/brandonburke&quot;&gt;someone&lt;/a&gt; potentially brilliant) dubbed:
Steel City Ruby Conf. Otherwise known as &lt;a href=&quot;http://people.delphiforums.com/JITRBUG/scrc239logo.jpg&quot;&gt;&amp;quot;SCRC&amp;quot;&lt;/a&gt;. Of which I
thought was a motorcycle group, but as always, it is good to be wrong. At
this conference, along with &lt;a href=&quot;http://grok.cc/&quot;&gt;Greenville&lt;/a&gt; &lt;a href=&quot;https://drwaww7dh1loc.cloudfront.net/learning_preview/14305/image/large_grok.jpg&quot;&gt;Grok&lt;/a&gt; the focus was put
on the 30 minute inbetween sessions.&lt;/p&gt;
&lt;p&gt;This meant that although the speaker line up was potentially insane at
SCRC, the organizers put a &lt;a href=&quot;http://developingux.com/wp-content/uploads/2010/02/solid_thumb.jpg&quot;&gt;large amount of weight&lt;/a&gt; on the
human interaction between the talks. I find there to be a few problems
with this model, especially in light of the kind of people who are in
attendance at a &lt;strike&gt;bro&lt;/strike&gt;programmer conference...we are mostly awkward OK! So why
force us into a 30 minute &amp;quot;mingle tarcks&amp;quot; with no Internet, little
coffee, and definitely NO beer?&lt;/p&gt;
&lt;p&gt;Not &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;challenging&lt;/a&gt; yourself to meet people at conferences is a terrible way
to go through something potentially awesome. However, forcing people
into these (30 minute &lt;a href=&quot;http://www.gamesprays.com/images/icons/icon_54.jpg&quot;&gt;tarcks&lt;/a&gt;) isn&#39;t going to lead to anything
impressive. Yes, a few intermission &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-05-30-Minutes/#&quot;&gt;tarcks&lt;/a&gt; are great. We as nerds should be ripped from
the confort of our &lt;a href=&quot;http://www.elitekeyboards.com/products.php?sub=pfu_keyboards,hhkbpro2&amp;amp;pid=pdkb400bn&quot;&gt;mechanical keyboards&lt;/a&gt; and Aeron chairs and
forced to interact with other like minded fools. It is just 100% more
productive when a &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=Papst%20Blue%20Ribbon&quot;&gt;lubricant&lt;/a&gt; is involved. This could include mini
coding sessions, pairing games for future hackathons, tiny code
challenges, beer drinking, anything!&lt;/p&gt;
&lt;p&gt;Keeping these times open and only for 30 minutes makes us realize how
little we can dive into a person&#39;s life (if they even let us), before we
are ushered back to another talk. The moral? If you are starting a
conference, think long and hard about the mingle tarcks. They are
&lt;em&gt;invaluable&lt;/em&gt;; however, if poorly managed, a definite: stagnant
nightmare. Be brilliant and &lt;strong&gt;assist&lt;/strong&gt; in the breeding of said genius.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>3 Things</title>
    <link href="https://cloudbacon.com/posts/2012-08-06-3-things/"/>
    <updated>2012-08-06T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-06-3-things/</id>
    <content type="html">&lt;p&gt;Due to the &lt;a href=&quot;http://rubyrogues.com/rr-60-solid-with-jim-weirich/&quot;&gt;abnormal size&lt;/a&gt; of my &lt;a href=&quot;http://i51.tinypic.com/2135flx.jpg&quot;&gt;cranial hair follicals&lt;/a&gt;, it has been
deemed illegal to wear &lt;a href=&quot;http://www.askaprice.com/res/images/articles/cycle-helmet-female_299x403.jpg&quot;&gt;items on my head&lt;/a&gt; in the great state of &lt;a href=&quot;http://parislemon.com/post/28600694849/wired-apple-is-building-something-new-at-its&quot;&gt;North
Carolina&lt;/a&gt;. Lots of folks also have a problem with &amp;quot;where in the world&amp;quot; North Carolina
is so I think a picture of an Apple data center should help out.
Regardless of, this entire post is not about &lt;a href=&quot;http://www.flickr.com/photos/jockew/4636027374/sizes/l/in/photostream/&quot;&gt;facial hair&lt;/a&gt;, &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-06-3-things/#&quot;&gt;elephants&lt;/a&gt;
(like the one from Postgres), or North Carolina. Nope, it is actually a list.
A list of three passion-things to be exact.&lt;/p&gt;
&lt;p&gt;Our puny brains have a &lt;a href=&quot;http://duckduckgo.com/?q=multitasking+iz+bad&quot;&gt;hard time doing a lot of things at once&lt;/a&gt;. The
more we attempt to focus on, the worse and worse everything seems to get
around us. This is why I am advocating the idea of &amp;quot;&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;3 Things&lt;/a&gt;.&amp;quot;
Factor everything you do down into just three things and you will find
yourself free and clear to focus and dominate whatever three you choose.&lt;/p&gt;
&lt;p&gt;Let&#39;s not be too harsh though. What I am not advocating is throwing away
your sense of adventure and settle. Explore, find things that are
fearful, scary, fun, gas-y, etc and when you do find something that you
want to add to your three list, do so with a &lt;a href=&quot;http://youtu.be/xP1-oquwoL8&quot;&gt;fervor unmatched by anyone&lt;/a&gt;!
Over time you will begin to hone skills that are integral to succeeding
at your three chosen passions. As time ticks by, you might sub out one
passion for another; however, make sure that you simply table your skill
sets, never throw them away.&lt;/p&gt;
&lt;p&gt;Best of all! Write them down so your puny brain doesn&#39;t forget.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;My Wife: understanding her, loving her, being there when I am needed.
Although the whole partner thing is hard it is well worth it.&lt;/li&gt;
&lt;li&gt;Programming: A field I find myself in love with more and more every
LOC that is written.&lt;/li&gt;
&lt;li&gt;Crossfit: High pain tolerance, focus, and a never retreat
attitude is rarely prized in sports. I am glad something like this
exists.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Simple. Write down and dive into yours right now!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Leave MacVim To The Noobz</title>
    <link href="https://cloudbacon.com/posts/2012-08-07-Leave-Macvim-To-The-Noobz/"/>
    <updated>2012-08-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-07-Leave-Macvim-To-The-Noobz/</id>
    <content type="html">&lt;p&gt;If it wasn&#39;t painfully obvious from my &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;tweeting&lt;/a&gt;, I spent the better
half of the first weekend of August, at &lt;a href=&quot;http://steelcityrubyconf.org/&quot;&gt;a Ruby conference&lt;/a&gt;. The one
topic that I was fairly positive would &lt;a href=&quot;http://farm2.static.flickr.com/1161/953433678_f1cdac15f5.jpg&quot;&gt;creep up&lt;/a&gt;, yet somehow
&lt;a href=&quot;http://www.officialpsds.com/images/thumbs/Care-Bears-psd38826.png&quot;&gt;magically flew away&lt;/a&gt;, was the &amp;quot;editor talk.&amp;quot; No one was comparing
their Vim configs to people&#39;s lowly Textmate installs. No Emacs vs
Sublime Text 2, nothing really. Damn shame.&lt;/p&gt;
&lt;p&gt;What did show it&#39;s face, was people&#39;s love of Sublime Text 2. Wait for the
cmd-tab, wait for it...wait. BOOM! Sublime Text. If it wasn&#39;t ST2, then
it was the dreaded MacVim; hater-instiling that you forcibly cmd-tab (that is a &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;fucking reach&lt;/a&gt;) everywhere.
MacVim users probably silently wish that they could cmd-tab through their
legs to &lt;a href=&quot;http://www.oddee.com/_media/imgs/articles2/a97173_g114_4-ny.jpg&quot;&gt;speed up their walking pace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I know &lt;a href=&quot;https://en.wikipedia.org/wiki/Why_the_lucky_stiff&quot;&gt;why&lt;/a&gt; told us that opinions (he used the word &amp;quot;tastes&amp;quot;) would &lt;a href=&quot;http://cloudbacon.com/2011/05/10/why-the-lucky-stiff-quote&quot;&gt;begin to
define&lt;/a&gt; us over what we created; however, I draw the line at being
defined by how many times I can cmd-tab faster than the next person. To
help all of you cmd-tab loving folks (I have fucked my cmd-tab seo on
this post), here is a list of really cool things to get you back into
terminal Vim.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Take a look at updating OS X&#39;s default version with this &lt;a href=&quot;http://www.cloudbacon.com/2012/07/03/Vim-Can-Suck&quot;&gt;post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Being at the terminal level allows you to &lt;strong&gt;NOT&lt;/strong&gt; cmd-tab to it. This
in itself will speed you up tremendously.&lt;/li&gt;
&lt;li&gt;Download and use &lt;a href=&quot;http://www.linuxcertif.com/man/1/tmux/&quot;&gt;tmux&lt;/a&gt;. It has a learning curve but is well
worth it for when you start pair programming and as a damn-good
terminal multiplexer&lt;/li&gt;
&lt;li&gt;Seriously, download and use tmux. It can be found and installed via
brew and you can even &lt;a href=&quot;http://pragprog.com/book/bhtmux/tmux&quot;&gt;buy a book about it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If this is your first &lt;a href=&quot;http://teamsteevo.files.wordpress.com/2008/10/fail-owned-cow-curiosity-fail.jpg&quot;&gt;rodeo&lt;/a&gt;, find a great set of defaults,
either through &lt;a href=&quot;https://github.com/carlhuda/janus&quot;&gt;Janus&lt;/a&gt; or &lt;a href=&quot;https://github.com/skwp/dotfiles&quot;&gt;Yadr&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Read through what the above config files do, test and try every last
section&lt;/li&gt;
&lt;li&gt;Go &lt;a href=&quot;https://learn.thoughtbot.com/vim&quot;&gt;here&lt;/a&gt;, read it all. They are way smarter than I am and always
have great blog posts on developmenty things.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Give it two weeks. &lt;a href=&quot;http://www.freemacsoft.net/appcleaner/&quot;&gt;Close MacVim&lt;/a&gt;, find a terminal that you can
stand, download tmux and give your new-found freedom a whirl. Then send
me a &lt;a href=&quot;http://twitter.com/braidn&quot;&gt;message&lt;/a&gt; on the Twitters and tell me how it is going.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Distrust The Magic</title>
    <link href="https://cloudbacon.com/posts/2012-08-08-Always-Distrust-The-Magic/"/>
    <updated>2012-08-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-08-Always-Distrust-The-Magic/</id>
    <content type="html">&lt;p&gt;If you spend enough time working with computers there is a good chance
you might &lt;a href=&quot;http://tremendousnews.com/wp-content/uploads/2009/10/drunk-urinal.jpg&quot;&gt;stumble&lt;/a&gt; onto some &lt;a href=&quot;http://2.bp.blogspot.com/-GTXZyOmzHaA/TfHMTu4JfOI/AAAAAAAAAzo/BQ7pgmBblno/s1600/finkle_630x_2.jpg&quot;&gt;magic&lt;/a&gt;. This doesn&#39;t mean that you
might randomly see unicorns while tracking down your next &lt;a href=&quot;https://www.airtime.com/&quot;&gt;porn-s-cipade&lt;/a&gt;,
frankly this is normal. No, the magic that will be reamed on, neglected,
yelled at, and belabored for the rest of this post is that of utter
&lt;a href=&quot;https://cloudbacon.com/posts/2012-08-08-Always-Distrust-The-Magic/#&quot;&gt;deception&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Programmers are really good at hiding away all the hard things in this
magic. They wrap it up in little quiant boxes, with buttons and
checkboxes that...&amp;quot;just work.&amp;quot; We see this with Windows Server.
Everything is just a click away, all along while the user has no idea
how to actually &lt;strong&gt;DO&lt;/strong&gt; any of it. In their mind they build a network of
roads, all of which lead to desired solutions. We don&#39;t know how the
roads are leveled, what goes into the mixture, how they are laid, etc.
We just know how to use them.&lt;/p&gt;
&lt;p&gt;This is a &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;blessing&lt;/a&gt;, wrapped in an duck all shoved into a
wonderful &lt;a href=&quot;http://supershopsite.com/product_image/Pet/merrick-turducken-dog-food-case-of-24-55oz-cans.jpg&quot;&gt;enema&lt;/a&gt;. This cripples us. We don&#39;t understand how any of
the underlying items fuction or how they interact with each other to
&lt;em&gt;actually&lt;/em&gt; make something work. Rails, Windows, OS X, all of it should
be rooted through, explored, tested, and ultimately broken. Set up
environments, test, test, test, and more important than anything:
&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;attempt to do your worst&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a really complex topic, one that can&#39;t be put to justice with
just one post. The plan? Extrapolate the magic further and smatter it
throughout a couple more posts. Come back tomorrow...or whatever.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Delivering Happiness</title>
    <link href="https://cloudbacon.com/posts/2012-08-09-Delivering-Happiness/"/>
    <updated>2012-08-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-09-Delivering-Happiness/</id>
    <content type="html">&lt;p&gt;Yeah, why the fuck &lt;a href=&quot;http://3.bp.blogspot.com/_mcMJ_B_hD0U/TKhNgFPsQWI/AAAAAAAAAR8/ZAtFQwauQvg/s1600/archer.jpg&quot;&gt;not&lt;/a&gt;? How have we gotten to the point where we
simply accept &lt;a href=&quot;http://www.davidforbes.net/wp-content/uploads/2010/06/ie-devil_03.jpg&quot;&gt;shitty software&lt;/a&gt; (although I hear number 10 is way
&lt;a href=&quot;http://www.inspireux.com/wp-content/uploads/310.gif&quot;&gt;good&lt;/a&gt;)? Do you get all giddy when you sit down in the morning and
turn on Outlook and Office? I happen to work with several of &lt;a href=&quot;http://cdn1.benzinga.com/files/crazypeople.jpg&quot;&gt;these
peoples&lt;/a&gt; and all I hear &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;spew from their mouths&lt;/a&gt; each morning are
&lt;a href=&quot;http://www.amazon.com/Groan-Up-Newark-Nebraska-ebook/dp/B005OC2V8I/ref=sr_1_5?ie=UTF8&amp;amp;qid=1344561738&amp;amp;sr=8-5&amp;amp;keywords=groan+up&quot;&gt;groans&lt;/a&gt;(I swear it is sorta a true story).&lt;/p&gt;
&lt;p&gt;Yeah...well, again, why the &lt;em&gt;fuck&lt;/em&gt; do people ship anything but happiness?
Is it hard, sure but, why on earth would you go through the trouble for a
few quick bucks? And, guarenteed it will be a measly few. People usually
don&#39;t contine to buy shitty software if it continues to exude shit...
Wait, no that&#39;s not right.&lt;/p&gt;
&lt;p&gt;Look at &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;Microsoft&lt;/a&gt; and basically everything they make. It is defined
by how much hapiness it &lt;a href=&quot;http://thisthatandtheotherthang.files.wordpress.com/2011/10/funny-pictures-kitten-and-puppy-watch-a-scary-movie-together.jpg&quot;&gt;sucks from people&lt;/a&gt; and yet people continue
to &lt;a href=&quot;http://www.nataliedee.com/051209/FUN-FACT-i-use-that-shit-to-wash-my-face.jpg&quot;&gt;use this shit&lt;/a&gt; without question. How do we fix this? Just fucking
stop building shitty things and pump the market with a &lt;a href=&quot;https://en.wikipedia.org/wiki/Metric_time&quot;&gt;fuck-ton&lt;/a&gt; of
happiness. Because, really? What else is needed?&lt;/p&gt;
&lt;p&gt;I apologize for the lack of love in these posts lately. I need to
stretch their formation out over the day (VS when I get home from it) and hope it solves this
issue. No guarentees promised, pre-haps a little bit of alcohol is all
that is needed.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Current Workflows</title>
    <link href="https://cloudbacon.com/posts/2012-08-10-2012-Workflows/"/>
    <updated>2012-08-10T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-10-2012-Workflows/</id>
    <content type="html">&lt;p&gt;OK, rule number one (don&#39;t use &amp;quot;&lt;a href=&quot;https://en.wikipedia.org/wiki/Common_sense&quot;&gt;of thumb&lt;/a&gt;&amp;quot;), avoid trying to jump
people away from the &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;meat-and-potatoes&lt;/a&gt; of a blog post before they even
start reading. AKA the link in the summary field, did you even click it?
Why not?&lt;/p&gt;
&lt;p&gt;Anyway, I hack at my workflows almost constantly. If it isn&#39;t reading,
or programming, you can bet that I am looking to do something way &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;better
than yesterday.&lt;/a&gt; Since this post will end up being a &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;list&lt;/a&gt; (hey, they
are super easy to write), most of the workflow will be center around
gui applications and not my overall crack-addiction to a &lt;a href=&quot;https://en.wikipedia.org/wiki/Command-line_interface&quot;&gt;CLI&lt;/a&gt;.
Without, further &lt;a href=&quot;http://billdaviswords.files.wordpress.com/2011/09/nothing-to-say-so-blog.gif&quot;&gt;ado&lt;/a&gt;, be prepared for &lt;a href=&quot;https://lh5.googleusercontent.com/-uWWqnrjrBzY/T663Ukikk6I/AAAAAAAACzg/0vV_K9qYbZk/wisdom-be-fearful-of-mediocrity.jpg&quot;&gt;negative-mediocrity&lt;/a&gt;!&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Yes, I run all of my &lt;a href=&quot;http://bigweek.co/&quot;&gt;big ticket&lt;/a&gt; applications in Lion and
Mountain Lion&#39;s full screen mode. These are generally Chrome Canary,
Iterm2, and OmniFocus...sometimes Rdio. This also means that I
&lt;em&gt;don&#39;t&lt;/em&gt; use a double monitor setup. I find them distracting and
overall a &lt;a href=&quot;http://www.facebook.com/&quot;&gt;UX clusterfuck&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I am an &lt;a href=&quot;https://en.wikipedia.org/wiki/Xmonad&quot;&gt;Xmonad&lt;/a&gt; freak and wish there was something more like it
available for the OS X. To get around this I use a launcher named
&lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt;. Alfred has an extension named &lt;a href=&quot;http://projects.jga.me/layouts/&quot;&gt;layouts&lt;/a&gt; to control
your windows and I assign cmd + option + # to apps I want to switch
to quickly. This means that if I want to quickly navigate to Chrome,
I can hit cmd + option + 2 instead of command-tabing there or using
the mouse.&lt;/li&gt;
&lt;li&gt;Vim (&lt;a href=&quot;http://cloudbacon.com/2012/08/07/Leave-Macvim-To-The-Noobz&quot;&gt;NOT FUCKING MACVIM&lt;/a&gt;) + Tmux for &lt;a href=&quot;http://us13.memecdn.com/finish-him_gp_205003.jpg&quot;&gt;combo&lt;/a&gt; awesome-sauce.
This allows 1 iTerm2 window to stay open in full screen (with only
two &amp;quot;iTerm&amp;quot; style tabs: tmux + bitlbee/irc server for chatting)
and act as many different terminals through the power inherent in Tmux. In addition, some people seem to
have a-beef with Tmux&#39;s copy and paste mode...&lt;a href=&quot;https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard&quot;&gt;I don&#39;t&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://cloudbacon.com/&quot;&gt;Houdini&lt;/a&gt; is a free app that will hide away inactive items when a
certain time limit is hit. The idea being that you have one constant,
clean workspace. You cmd+tab(I use tab+q because those two items are generally close) to an app that isn&#39;t important enough to
be full screen (thereby taking up a workspace) but, something you want
to use later. This keeps the one &amp;quot;open&amp;quot; workspace free and
clear of open/front-facing/distracting apps.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of this is a little much to take in so if you have any questions hit
me up on the Twitters. Overall though, it works fairly well, the only
thing that I wish for was a smart window tiling manager, ala Xmonad.
&lt;a href=&quot;https://cloudbacon.com/posts/2012-08-10-2012-Workflows/#&quot;&gt;Tyler&lt;/a&gt; seems like a good option for this; however, it doesn&#39;t seem
to function on Mountain Lion and it is long-in-the-tooth when it comes
to a substantial upgrade...We shall see.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Being Healthy And A Programmer</title>
    <link href="https://cloudbacon.com/posts/2012-08-11-Being-Healthy-And-A-Programmer/"/>
    <updated>2012-08-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-11-Being-Healthy-And-A-Programmer/</id>
    <content type="html">&lt;p&gt;OH yes sir(and/or/maybe mam), it is completely doable. Since the &lt;a href=&quot;http://cdn.collider.com/wp-content/uploads/Tron-Legacy-movie-image-211.jpg&quot;&gt;dawn of
the programmer&lt;/a&gt;, we have been portrayed as fairly &lt;a href=&quot;http://tubulocity.com/wp-content/uploads/2010/01/fat_cyclist.jpg&quot;&gt;portly&lt;/a&gt; dweebs
who exist in a &lt;a href=&quot;http://www.lifehack.org/articles/lifestyle/why-sitting-is-killing-you.html&quot;&gt;chronic sitting position&lt;/a&gt;. While this has been true
in the past, and surely is at the &lt;a href=&quot;http://diabetic-calendar.com/&quot;&gt;moment&lt;/a&gt; (who the fuck would even purchase a diabetic calendar - tres bizarre), we can do a lot to help
ourselves stay healthy while still doing what we &lt;a href=&quot;http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877707dd5970c-pi&quot;&gt;absolutely love&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.lenovo.com/images/uploads/hero/TopView_T430s_crop.jpg&quot;&gt;Change is hard&lt;/a&gt;(it really is sad about Lenovo moving to chicklet stylz), especially when it comes to the food we shove in our
&lt;a href=&quot;http://wildomarmagazine.files.wordpress.com/2011/10/shut_your_pie_hole.jpg&quot;&gt;pie-holes&lt;/a&gt;. However, programmers are accustom to change. They pivot
constantly, change their working environments and generally don&#39;t have a
problem with this...right? Keeping this easy then, let&#39;s just stop
eating carbohydates and sugar. Pretty easy huh?&lt;/p&gt;
&lt;p&gt;No carbs and no sugars means no &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;spaghetti&lt;/a&gt;, pasta, bread, muffins,
cakes, any of it. To make this transition easy, follow this rule six out
of seven days in the week (one day off). Ok, so why right? Well sugar
and carbs force your pancreas to &lt;a href=&quot;http://www.livestrong.com/article/481929-increased-blood-sugar-weight-gain/&quot;&gt;produce a lot of insulin&lt;/a&gt; which
will inevitably lead to diabetes and weight gain. Both of these things,
if you are lost, are bad.&lt;/p&gt;
&lt;p&gt;And that&#39;s it? Yep! Well...actually, give a &lt;a href=&quot;http://smarterware.org/7102/how-and-why-i-switched-to-a-standing-desk&quot;&gt;standing desk&lt;/a&gt; a whirl.
They can be hard to get used to; however, are great for your posture,
back strength, legs, etc in the long run. If you are worried about
standing all day (it is hard at first) find one that auto-magically
moves up and down. They are expensive but will add years onto the
backend of your life in order for you to continue to do what you love
well into your old age. Go &lt;a href=&quot;https://en.wikipedia.org/wiki/Forth_(programming_language)&quot;&gt;forth&lt;/a&gt; and be a healthy, kick-ass
programmer!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Leader Is My Power Animal</title>
    <link href="https://cloudbacon.com/posts/2012-08-12-Leader-Is-My-Power-Animal/"/>
    <updated>2012-08-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-12-Leader-Is-My-Power-Animal/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;TWO&lt;/strong&gt; posts in one day!!! Anyway, not really. No need to get your
hopes up so high you shit yourself. Nah, this is just a quick blurb
about some cool things you can do with the &lt;a href=&quot;http://stackoverflow.com/questions/1764263/what-is-the-leader-in-a-vimrc-file&quot;&gt;leader key&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run some tests&lt;/li&gt;
&lt;li&gt;Switch to a Rails controller, view, or model&lt;/li&gt;
&lt;li&gt;Search through a list of files&lt;/li&gt;
&lt;li&gt;Search through a list of buffers&lt;/li&gt;
&lt;li&gt;Open a command to be piped to a specific tmux window&lt;/li&gt;
&lt;li&gt;Open a visual tree-list of all files in the current director&lt;/li&gt;
&lt;li&gt;Turn a line into a comment&lt;/li&gt;
&lt;li&gt;Switch the case of an entire word&lt;/li&gt;
&lt;li&gt;Show a list of ctags&lt;/li&gt;
&lt;li&gt;Do git legwork&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;...and so much more. Yeah, Leader is pretty much my power animal.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Chaos Development</title>
    <link href="https://cloudbacon.com/posts/2012-08-12-Pen-And-Pencil/"/>
    <updated>2012-08-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-12-Pen-And-Pencil/</id>
    <content type="html">&lt;p&gt;When you start a project of any kind do you start by typing something
into a &lt;a href=&quot;http://i.ytimg.com/vi/JYY2yj7B5cE/0.jpg&quot;&gt;terminal&lt;/a&gt; or do you begin on a &lt;a href=&quot;http://fieldnotesbrand.com/&quot;&gt;piece of paper&lt;/a&gt;? Many
developers probably start by typing some stuff out but rarely, perhaps
like our &lt;a href=&quot;http://designers.mx/post/list/everyone/all&quot;&gt;designer brethren&lt;/a&gt;, do we begin with &lt;a href=&quot;http://www.paddlepalace.com/&quot;&gt;analog tools&lt;/a&gt;.
Why? Is it because developers feel more at home with a bunch of
&lt;a href=&quot;http://blog.lenovo.com/images/uploads/hero/TopView_T430s_crop.jpg&quot;&gt;chicklet keys&lt;/a&gt; or do we generally have no use for sketching
features out?&lt;/p&gt;
&lt;p&gt;There is definitely a place for a great &lt;a href=&quot;http://www.jetpens.com/Pilot-Hi-Tec-C-Gel-Ink-Pens/ct/284&quot;&gt;pen&lt;/a&gt; and piece of &lt;a href=&quot;http://doanepaper.com/&quot;&gt;paper&lt;/a&gt; in the
beginning and subsequent phases of software dev. Perhaps not to sketch
things out logically but, to &lt;a href=&quot;http://youtu.be/n-mpifTiPV4&quot;&gt;chaotically&lt;/a&gt; write features everywhere. Jot
down table names, feature ideas, needed gems, future plans, whatever.
The only rule being, never stay within the lines!&lt;/p&gt;
&lt;p&gt;Find a &lt;a href=&quot;http://www.rhodiapads.com/collections_boutique_dotPad.shtml&quot;&gt;notebook&lt;/a&gt; that is layed out in a dot-grid or a traditional
line grid. This alone absolves the need to write everything down on a
line starting from the left and moving to the right. You can start
anywhere, and go anywhere which leaves your brain free to jot down
anything and add to it later. This type of &lt;a href=&quot;http://rlv.zcache.com/freedumb_tshirt-p235916646013340812enwjh_210.jpg&quot;&gt;freedom&lt;/a&gt; is much more
constrained when it comes to interacting with text using just a keyboard
and mouse (yes, I am making an assumption that you don&#39;t have a fancy
Cintiq).&lt;/p&gt;
&lt;p&gt;The ability to be chaotic is priceless and something that should be
cultivated during the entire &lt;a href=&quot;https://en.wikipedia.org/wiki/Agile_software_development&quot;&gt;life-cycle&lt;/a&gt; of any &amp;quot;software project&amp;quot;.
If you have never thought about grabbing a piece of paper and writing
out things, give it a whirl. If you happen to be &lt;a href=&quot;http://www.healthexpertadvice.org/forum/Allergies/Allergic-to-toilet-paper-40038.htm&quot;&gt;allergic to
paper&lt;/a&gt;...well, then maybe take this advice with a grain of salt.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Groping</title>
    <link href="https://cloudbacon.com/posts/2012-08-13-Groping-In-The-Dark/"/>
    <updated>2012-08-13T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-13-Groping-In-The-Dark/</id>
    <content type="html">&lt;p&gt;There comes a time in &lt;a href=&quot;http://www.gettingtotruelove.com/wp-content/uploads/2012/09/The-turning-point-in-relationships-sign.jpg&quot;&gt;everyone&#39;s lives&lt;/a&gt;, hopefully when they are
young, that they realize &lt;a href=&quot;http://youtu.be/T5ictPToU9M&quot;&gt;something is wrong&lt;/a&gt;. We all go through it
no matter who you are. &lt;a href=&quot;http://www.tlc.com/tv-shows/toddlers-tiaras&quot;&gt;Young&lt;/a&gt;, &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-13-Groping-In-The-Dark/#&quot;&gt;old&lt;/a&gt;, &lt;a href=&quot;http://articles.cnn.com/2006-02-12/politics/cheney_1_katharine-armstrong-birdshot-saturday-afternoon-armstrong-ranch?_s=PM:POLITICS&quot;&gt;wealthy&lt;/a&gt; or &lt;a href=&quot;https://en.wikipedia.org/wiki/Standard_and_Poors&quot;&gt;dirt poor&lt;/a&gt;.
We all go through a time of reflection that makes us question why and
what we are doing...well, except some of us.&lt;/p&gt;
&lt;p&gt;Most people are petrified to question their life choices; however, they do
so because they quickly realize that &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_Jewish_American_entertainers&quot;&gt;everyone else has done it&lt;/a&gt;.
In addition, I used to be a punk rock fan so I understand about the whole &amp;quot;following
people thing&amp;quot;...and yes there are some times when it is warranted. Some
people call it the &lt;a href=&quot;http://undercurrentcoaching.com/wp-content/uploads/2011/04/glory-years.jpg&quot;&gt;quarter life crisis&lt;/a&gt;; however, it is just some
time in your twenties/early thirties where you &amp;quot;&lt;a href=&quot;http://1.bp.blogspot.com/_FfZMBBaCF8w/SJdo-hpFfkI/AAAAAAAAB6Q/WD7et8UdAI4/s400/create.jpg&quot;&gt;begin to be&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;Some of us go through it for longer periods than others and that is ok.
The biggest part being that it occurs. What I have witnessed lately is a
&lt;a href=&quot;https://en.wikipedia.org/wiki/Metric_time&quot;&gt;metric fuck-ton&lt;/a&gt; of mid-20 year olds in such a &lt;a href=&quot;http://voices.yahoo.com/todays-youth-generation-blue-ribbon-winners-148076.html&quot;&gt;coddled state&lt;/a&gt;
that they completely miss out. Besides raising a bunch of
softy-philosophers (I have no beef with hard ass philosophers), we are
stuck with a group of people who believe...like for fucking real, this
statement:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;all his life he was told that he wanted in life would come to him.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Feel free to sub out &amp;quot;him&amp;quot; with &amp;quot;her&amp;quot; or &amp;quot;&lt;a href=&quot;http://cloudbacon.com/&quot;&gt;it&lt;/a&gt;&amp;quot; in the above sentence.
I recommend taking a firm stance with these people. Read Manga in the
nude, in your living room, talk to yourself loudly at night, save your
urine. Just something to snap them out of their haze.&lt;/p&gt;
&lt;p&gt;Fuck, this makes me &lt;a href=&quot;http://youtu.be/4r7wHMg5Yjg&quot;&gt;sound like one of these guys&lt;/a&gt;....&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Note Cards For</title>
    <link href="https://cloudbacon.com/posts/2012-08-14-Fun-Found-In-Notecards/"/>
    <updated>2012-08-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-14-Fun-Found-In-Notecards/</id>
    <content type="html">&lt;p&gt;Uh, I know, another post on some kind of &lt;a href=&quot;http://rlv.zcache.com/obey_sudo_card-p137691123849347174bh2r3_400.jpg&quot;&gt;sudo&lt;/a&gt;(see what I did there) &lt;a href=&quot;https://twitter.com/jcrclarksonesq/status/235397285167656962/photo/1/large&quot;&gt;productivity&lt;/a&gt; ideal.
Don&#39;t &lt;a href=&quot;http://www.pakalertpress.com/wp-content/uploads/2012/05/8-suspicious-events-surrounding-the-Miami-zombie-attack.jpg&quot;&gt;fret&lt;/a&gt; too much, you have 15 or so more days left of it.
Moreover, you can very well bet your &lt;a href=&quot;http://www.etsy.com/listing/96193234/britches&quot;&gt;britches&lt;/a&gt; that there will be
some kind of a &lt;a href=&quot;https://gimmebar.com/view/502a845aaac422e922000005/big&quot;&gt;&amp;quot;half-way point&amp;quot;&lt;/a&gt; toot tomorrow instead of anything
remotely resembling nerdtastic.&lt;/p&gt;
&lt;p&gt;Right! &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;Note Cards&lt;/a&gt;! Or &amp;quot;Capture Cards&amp;quot;, as us &lt;strike&gt;un&lt;/strike&gt;productive fools like
to call them, are great for grabbing all the little things that come
&lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;flying by&lt;/a&gt;. Those items that &lt;a href=&quot;http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877707dd5970c-pi&quot;&gt;bombard us&lt;/a&gt; so quickly that we
don&#39;t have enough time to pull out our &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;iDevice&lt;/a&gt; but, we need to jot
them down due to their &lt;a href=&quot;http://productivity.stackexchange.com/questions/1236/how-to-discern-between-actionable-items-and-someday-maybe&quot;&gt;action-ability&lt;/a&gt;. There are two really great
aspects that make note cards indispensible in this manner:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;They are &lt;a href=&quot;http://www.javaranch.com/journal/2003/04/immutable.htm&quot;&gt;mutable&lt;/a&gt; objects... Meaning they are easily discarded
and replaced. This simplicity allows them to be easily found, even if
you show up empty handed.&lt;/li&gt;
&lt;li&gt;They are non-threatening. When people pull out their phones they
threaten the crowd with the fact that they (the crowd) are so boring
that you need to &amp;quot;check-in&amp;quot;.&lt;/li&gt;
&lt;li&gt;You didn&#39;t think that you would get through a post on productivity
without some kind of list did you? Good. Because that is actually impossible.&lt;/li&gt;
&lt;li&gt;Number 4...ok, done.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What tools are required for all this malarkey?&lt;/p&gt;
&lt;p&gt;###Cards:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.creativesoutfitter.com/product/26/action-cards&quot;&gt;Behance Action Cards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2012-08-14-Fun-Found-In-Notecards/#&quot;&gt;Frictionless Action Cards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.levenger.com/Circa-Notebooks-326/Circa-Refills-715/Special-Request-trade;-Horizontal-Grid-4-x-6-Cards-8595.aspx&quot;&gt;Levenger Cards&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;###Cases:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.moleskineus.com/memopocket.html&quot;&gt;Moleskine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/STEELMASTER-Steel-Capacity-Inches-263835BLA/dp/B00006IFE9/ref=pd_sbs_op_7&quot;&gt;Steelmaster&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Go forth and be more productive with small cardz!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>iCloud VS Dropbox</title>
    <link href="https://cloudbacon.com/posts/2012-08-15-iCloudyness-VS-Dropping-Things/"/>
    <updated>2012-08-15T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-15-iCloudyness-VS-Dropping-Things/</id>
    <content type="html">&lt;p&gt;I am well aware that there was a promise made to deliver on a half-way
point post about this whole 30 day challenge. However, this isn&#39;t it. So
quit your &lt;a href=&quot;http://www.indiegogo.com/projects/187710&quot;&gt;bitchin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There have been a few posts lately (mostly on those blogs that rake in
the real &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;dough&lt;/a&gt;) highlighting people&#39;s usage of &lt;a href=&quot;http://db.tt/2xQgdve&quot;&gt;Dropbox&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Mobile_Me&quot;&gt;iCloud&lt;/a&gt;.
Both are great ways to sync data across &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;multiple devices&lt;/a&gt; and both
seem to be &amp;quot;&lt;a href=&quot;http://blog.lenovo.com/images/uploads/hero/TopView_T430s_crop.jpg&quot;&gt;manageable&lt;/a&gt;&amp;quot; when staying within their &lt;a href=&quot;http://imgur.com/FHWMO&quot;&gt;free domain&lt;/a&gt;.
So they&#39;re tools, free, and do the same thing; what makes them
different?&lt;/p&gt;
&lt;p&gt;For starters, Dropbox is &lt;a href=&quot;https://twitter.com/jcrclarksonesq/status/235397285167656962/photo/1/large&quot;&gt;rooted&lt;/a&gt; in the old-timey idea of a file
system. You, the user create &lt;a href=&quot;https://en.wikipedia.org/wiki/Shark_Week&quot;&gt;obnoxiously deep&lt;/a&gt; folder structures to house
files you don&#39;t really care about because the likely-hood of you
retrieving them through memory is slim at best. iCloud on the
&lt;a href=&quot;http://www.urbandictionary.com/define.php?term=Your%20other%20right&amp;amp;defid=4815784&quot;&gt;other hand&lt;/a&gt; pulls all that shit away from the user and makes
syncing app related. This means that apps keep track of the files, not
some weird folder grouping.&lt;/p&gt;
&lt;p&gt;Before I go into how I use iCloud (because frankly I use Dropbox like
everyone else: it is a cluster of folders that contain items I only
find on &lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;accident&lt;/a&gt;), I want you, the reader to understand that I am
very opinionated....k, thx.&lt;/p&gt;
&lt;p&gt;Why use both? iCloud and its app specific file syncing makes it great
for keeping loose amounts of stuff around. Particuarly stuff from &lt;a href=&quot;http://dayoneapp.com/&quot;&gt;Day
One&lt;/a&gt; or any app that you might care little about. You can just chuck
shit in, and not worry about the way files are handled. This freedom
allows the writer to create without ever worrying if he/she will find it
again. I find it liberating. This idea of a
&lt;a href=&quot;https://cloudbacon.com/posts/2012-08-15-iCloudyness-VS-Dropping-Things/#&quot;&gt;flat file system&lt;/a&gt; is pretty fucking Genius, and I am rather
interested to see where Apple is going with it.&lt;/p&gt;
&lt;p&gt;Something awesome: RiserFS / BTRFS mixed with a flat system + git.
Fucking epic!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>15 Days In</title>
    <link href="https://cloudbacon.com/posts/2012-08-16-15-Days-In/"/>
    <updated>2012-08-16T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-16-15-Days-In/</id>
    <content type="html">&lt;p&gt;Yes-sir-ree-bob (I think that is how it is spelled) is the
coveted, and prehaps much unanticipated &lt;a href=&quot;http://robbwolf.com/&quot;&gt;mid-way-30-day&lt;/a&gt; challenge update.
Avoiding much &lt;a href=&quot;http://hooplawine.com/home&quot;&gt;hoopla&lt;/a&gt;, let&#39;s get somewhat started.&lt;/p&gt;
&lt;p&gt;To say that the experience hasn&#39;t been &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;hard&lt;/a&gt;, would be fairly
difficult. Depending who you are as an individual, you could easily find
30 minutes a day to bang out a somewhat short blog post. The hard part
mentioned is making them &lt;a href=&quot;https://twitter.com/jcrclarksonesq/status/235397285167656962/photo/1/large&quot;&gt;coherent&lt;/a&gt;, funny, somewhat well-written and
&lt;a href=&quot;https://twitter.com/jcrclarksonesq/status/235397285167656962/photo/1/large&quot;&gt;digestable&lt;/a&gt;. The real rub comes in the creation of the content
though.&lt;/p&gt;
&lt;p&gt;Being able to &lt;a href=&quot;http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877707dd5970c-pi&quot;&gt;rifle&lt;/a&gt; out a few posts after a single brain storming
session is far from difficult. Being able to consistently create content
day after day is. If you don&#39;t open Vim (you &lt;a href=&quot;http://duckduckgo.com/?q=Vim+site%3Acloudbacon.com&quot;&gt;ARE using vim&lt;/a&gt; right?)
at the beginning of the day, then you are destined to waste a good
amount of time at night &lt;a href=&quot;http://imgur.com/FHWMO&quot;&gt;floundering&lt;/a&gt; through an otherwise shitty post.
This coupled with the above brain storming issue make &lt;strong&gt;actually&lt;/strong&gt;
writing a post every day, somewhat difficult. Not impossible though.&lt;/p&gt;
&lt;p&gt;Having a plan for capturing post ideas on the fly (I utilize Omnifocus heavily for this task) and
starting the writing early on will make the overall experience 100.times better.
On the &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;whole&lt;/a&gt;, the experience has been a combination of agony,
happiness, bouts of uncontrollable smiling, and lots of equal (=) signs.
Yep, that good.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Don&#39;t Raise Your</title>
    <link href="https://cloudbacon.com/posts/2012-08-17-Do-Not-Raise-Your-Hand/"/>
    <updated>2012-08-17T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-17-Do-Not-Raise-Your-Hand/</id>
    <content type="html">&lt;p&gt;I have been spending the better part of the morning listenin&#39; to Ska. If
this directly affects the quality of this post, no &lt;a href=&quot;http://img.izismile.com/img/img5/20120625/640/sweating_profusely_isnt_so_bad_640_04.jpg&quot;&gt;one cares&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;###The Setup&lt;/p&gt;
&lt;p&gt;The break out sessions begins at your local &lt;a href=&quot;http://3.bp.blogspot.com/_Qc5xdld0vwQ/S8cjXiGz6qI/AAAAAAAAANs/FZO1bxnuHmY/s1600/Halo2_Lan.jpg&quot;&gt;hack knight&lt;/a&gt; and you are
attending by yourself. What do you &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;do&lt;/a&gt;? Surrounded by people who you
only &lt;a href=&quot;http://youtu.be/T5ictPToU9M&quot;&gt;assume are smahter than yourself&lt;/a&gt; (yes smart is spelled
&lt;a href=&quot;https://en.wikipedia.org/wiki/Boston_accent#Vowels&quot;&gt;correctly&lt;/a&gt;), you freeze, lock up and choke under pressure. Nothing
like &lt;a href=&quot;https://en.wikipedia.org/wiki/Newfie&quot;&gt;these people though&lt;/a&gt; though...&amp;quot;colloquial term&amp;quot; &lt;strong&gt;LEVEL UP&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;See! You are already a few steps ahead; however, you hold yourself back
because of some, or all of the below reasons (don&#39;t hate, Friday may as
well be one &lt;a href=&quot;https://gimmebar.com/view/4f6692412f0aaaf647000004/big&quot;&gt;big list day&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;###The List&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://gimmebar.com/view/502bb36faac4221844000002/big&quot;&gt;Offending someone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rlv.zcache.com/being_different_poster-re75a93e9c46045a2a735cfaffa5ee428_ww7_400.jpg&quot;&gt;Being &amp;quot;Different&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://static4.businessinsider.com/image/4f722f136bb3f70b14000018-400-300/cher--clueless.jpg&quot;&gt;Not knowing what to talk about&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://25.media.tumblr.com/tumblr_lygn82ATNF1qa890uo1_1280.jpg&quot;&gt;Weird silences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://i.imgur.com/jvMrU.jpg&quot;&gt;Saying something dumb&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With that, we are done here. A couple really sweet tips that have taken
me a long way that definitely couldn&#39;t hurt. Check out a recent talk by
an awesome person named: &lt;a href=&quot;http://coreyhaines.com/&quot;&gt;Corey Haines&lt;/a&gt;. Its first run was while he was
visiting Steel City Ruby Conf in Pittsburgh this year. I could have
sworn Confreaks was there so keep refreshing until it shows up. It is
well worth the 30 minutes of your time. And, finally the moment that kareoke
machine is brought out, you be the first to the mike. Yep...win!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Cucumber 101</title>
    <link href="https://cloudbacon.com/posts/2012-08-18-Cucumber-101/"/>
    <updated>2012-08-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-18-Cucumber-101/</id>
    <content type="html">&lt;p&gt;I know it is pretty fucking cliched; however, it is hard to go through a
&lt;a href=&quot;http://www.rubythreads.com/products/tatft&quot;&gt;Ruby day&lt;/a&gt; without some &lt;a href=&quot;http://cageme.herokuapp.com/random&quot;&gt;surious&lt;/a&gt; testing. That&#39;s right, if you
don&#39;t know what &amp;quot;TATFT&amp;quot; means than you haven&#39;t been doing &lt;a href=&quot;https://en.wikipedia.org/wiki/Software_craftsmanship&quot;&gt;craftsmen&lt;/a&gt;
level software development for all that long. In this post we are going
to take a newly formed Rails application and get it up to speed with
some simple &lt;a href=&quot;http://cukes.info/&quot;&gt;Cucumber&lt;/a&gt; style tests. In addition, this will be my
first software based post, which is kind of exciting...I think.&lt;/p&gt;
&lt;p&gt;The first thing that needs to be done is cracking open that &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;Gemfile&lt;/a&gt;
and let&#39;s add in these lines:&lt;/p&gt;
&lt;pre class=&quot;language-ruby&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;group &lt;span class=&quot;token symbol&quot;&gt;:test&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;cucumber-rails&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:require&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;capybara-webkit&#39;&lt;/span&gt;&lt;/span&gt;
  gem &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;database_cleaner&#39;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are one of &lt;a href=&quot;http://imgur.com/FHWMO&quot;&gt;those people&lt;/a&gt; who feel the need to place version
numbers in your Gemfile, go ahead. As an aside, I recommend NOT doing
this. Use your Gemfile.lock and your version control &lt;a href=&quot;https://devcenter.heroku.com/articles/bundler&quot;&gt;du jour&lt;/a&gt; to
keep gem versions inline with your dev and production platforms.&lt;/p&gt;
&lt;p&gt;The three gems you added into your Rails application are as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cucumber-rails adds all the requires into your app where needed. A
&lt;code&gt;rails g cucumber:install&lt;/code&gt; will also need to be run after bundle
installing the above gems.&lt;/li&gt;
&lt;li&gt;Database cleaner will cleanse your test environment after each test.&lt;/li&gt;
&lt;li&gt;Capybara-webkit is a handy gem for running &lt;code&gt;@javascript&lt;/code&gt; tagged tests
in a &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;headless environment&lt;/a&gt;. It does require you download/compile
QT-Webkit; however, this is a breeze with Homebrew (it is listed as
&#39;qt&#39;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once you finnish installing QT (Tested on 10.8.0 @2012.08.18 and working
great) you should head over to &lt;code&gt;/railsAppRoot/features/support/env.rb&lt;/code&gt; and add in this
string:&lt;/p&gt;
&lt;pre class=&quot;language-ruby&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;Capybara&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;javascript_driver &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token symbol&quot;&gt;:webkit&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And VOILA! You are ready to start testing! For a handy way to run
commands/tests, using &lt;a href=&quot;http://henican.com/wp-content/uploads/2011/10/scared-baby.jpg&quot;&gt;command line&lt;/a&gt; Vim and Tmux, read &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;this post&lt;/a&gt;
by someone way smarter than myself. Keep your eyes peeled for another
post on Cucumber stories and how to write reusable yet sensible tests in
your Rails app.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Cummings And Goingz</title>
    <link href="https://cloudbacon.com/posts/2012-08-19-My-Take-On-Everything-August-2012/"/>
    <updated>2012-08-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-19-My-Take-On-Everything-August-2012/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://cageme.herokuapp.com/random&quot;&gt;Genuis&lt;/a&gt;! This post will be a rundown of all of the recent &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;tech-shit&lt;/a&gt;
that has been &lt;a href=&quot;https://gimmebar.com/view/5031916aaac422225b000016/big&quot;&gt;dominating&lt;/a&gt; the news for the past month. Most of the
items that will be &lt;a href=&quot;http://imgur.com/FHWMO&quot;&gt;listed&lt;/a&gt;(I know, most people despise them), will be
subjects that aren&#39;t worth an entire post. Without further &lt;a href=&quot;http://www.adodarts.com/&quot;&gt;ado&lt;/a&gt;, lets
get this rollin&#39;.&lt;/p&gt;
&lt;p&gt;###App.net&lt;/p&gt;
&lt;p&gt;I have refrained from talking about &lt;a href=&quot;https://join.app.net/&quot;&gt;Dalton&lt;/a&gt; and the &lt;a href=&quot;https://twitter.com/jcrclarksonesq/status/235397285167656962/photo/1/large&quot;&gt;ridiculously&lt;/a&gt;
named &amp;quot;App.net&amp;quot; due to my &amp;quot;unnease&amp;quot; with the whole project. I am a huge
fan of Twitter yet, not what they are pulling at &lt;a href=&quot;http://daringfireball.net/linked/2012/08/16/twitter-drop-dead&quot;&gt;the moment&lt;/a&gt; with their
developers. After listening to a &lt;a href=&quot;http://www.70decibels.com/enough/&quot;&gt;few podcasts&lt;/a&gt; on the subject, the
fact that you can export all of your &amp;quot;updates&amp;quot; in plain-text is really
interesting. I could &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=i%20could%20give%20two%20shits&amp;amp;defid=6196142&quot;&gt;give two shits about&lt;/a&gt; moah characters (200 something),
lack of third party application support, or being the hip thing to do.
If App.net can deliver, I will throw my 50 dollars at them per year. It
may be a steap price but, it is worth it for the peace of mind&lt;/p&gt;
&lt;p&gt;###MS Surface&lt;/p&gt;
&lt;p&gt;For the people who &lt;a href=&quot;https://www.microsoft.com/surface/en/us/default.aspx&quot;&gt;don&#39;t know&lt;/a&gt; (which is probably a good amount of
you). The keyboard is dumb, the prie point is unknown and it will run
&lt;a href=&quot;http://www.wpcentral.com/microsoft-banning-apps-metro-windows-8-store-windows-phone-next&quot;&gt;Metro&lt;/a&gt;...OOPs, probably going to get sued for that. Microsoft needs to
stick to what &lt;a href=&quot;https://en.wikipedia.org/wiki/Windows_XP&quot;&gt;they do best&lt;/a&gt; and forget about following
&lt;a href=&quot;http://www.tomshardware.com/news/tablet-islate-ipad-netbook-notebook,9929.html&quot;&gt;trends&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;###Facebook Stock&lt;/p&gt;
&lt;p&gt;Really? Who bought &lt;a href=&quot;http://jeffreyhill.typepad.com/.a/6a00d8341d417153ef017c31595837970b-800wi&quot;&gt;this stuff&lt;/a&gt;? Let it tank, and let the people who
thought they were buying into Google in 1998 go with it.&lt;/p&gt;
&lt;p&gt;###Apple VS Samsung&lt;/p&gt;
&lt;p&gt;Anyone in their right mind knows to give the &lt;a href=&quot;http://codinghorror.typepad.com/.a/6a0120a85dcdae970b012877707dd5970c-pi&quot;&gt;whole patent&lt;/a&gt; thing 0
percent of their time.&lt;/p&gt;
&lt;p&gt;###Fin&lt;/p&gt;
&lt;p&gt;Thanks for all the fish!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Fuck The 80/20 Rule</title>
    <link href="https://cloudbacon.com/posts/2012-08-20-Fuck-The-80-20/"/>
    <updated>2012-08-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-20-Fuck-The-80-20/</id>
    <content type="html">&lt;p&gt;Do you know what all this &lt;a href=&quot;https://gimmebar.com/view/50305c7729ca153546000001/big&quot;&gt;80/20&lt;/a&gt; shit is about? If not feel free to
&lt;a href=&quot;https://en.wikipedia.org/wiki/Pareto_principle&quot;&gt;go here&lt;/a&gt; and be &lt;a href=&quot;https://twitter.com/jcrclarksonesq/status/235397285167656962/photo/1/large&quot;&gt;enlightened&lt;/a&gt;. Don&#39;t get me wrong, the rule works
real well when used in the vertical that is business. 80% of your
terrible experiences come from 20% of your customers. &lt;a href=&quot;http://youtu.be/n-mpifTiPV4&quot;&gt;I get it&lt;/a&gt;, I
really do. The problem lies when the 80/20 rule is used in this domain:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I will make 80% of my time perfect and the other 20 can be &amp;quot;whatever&amp;quot;,
or &amp;quot;meh&amp;quot;, or &amp;quot;shit&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;People pull this &lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;stunt&lt;/a&gt; with diets, excersise, getting things done,
everything. Again, I understand! No one is perfect and as you &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;approach
perfection, actual perfection becomes harder and harder to attain&lt;/a&gt;.
My &lt;a href=&quot;https://gimmebar.com/view/5032f67e29ca154572000000/big&quot;&gt;beef&lt;/a&gt; with the idea stems from the &lt;a href=&quot;http://cageme.herokuapp.com/random&quot;&gt;lazy factor&lt;/a&gt;. People, with
diligence and some elbow grease could iron out that unwieldy 20%
eventually.&lt;/p&gt;
&lt;p&gt;Yet they don&#39;t. They idly stand by and watch &lt;a href=&quot;https://gimmebar.com/view/5032f2bf29ca153c71000025/big&quot;&gt;life fly by them&lt;/a&gt;, all
while assuming what they are doing is &lt;a href=&quot;http://www.nypost.com/rw/nypost/2012/02/24/news/web_photos/24.1n008.gop--300x300.jpg&quot;&gt;A-OK&lt;/a&gt;. Since this is my blog
and apparently the way things are going these days, advice column, this
is a good way to &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;break out&lt;/a&gt; of the aforementioned
&lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;mediocrity&lt;/a&gt;...Don&#39;t do it.&lt;/p&gt;
&lt;p&gt;You were beting on a list &lt;a href=&quot;https://gimmebar.com/view/5032f46faac422800200001a&quot;&gt;weren&#39;t you&lt;/a&gt;? Nope. If you are sucking
20% of the time today, suck 19% tomorrow. &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-20-Fuck-The-80-20/#&quot;&gt;Whittle&lt;/a&gt; away at it at
your own pace but, promise me, never be happy with the number 20.&lt;/p&gt;
&lt;p&gt;In closing: butter sculptures will never count for the 20%&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Breakable Toys</title>
    <link href="https://cloudbacon.com/posts/2012-08-21-Breakable-Toys/"/>
    <updated>2012-08-21T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-21-Breakable-Toys/</id>
    <content type="html">&lt;p&gt;Not many people know this but, I am a &lt;a href=&quot;http://www.dvhardware.net/news/aerocool_top_gun.jpg&quot;&gt;huge fan&lt;/a&gt; of &lt;a href=&quot;http://www.imdb.com/title/tt1130988/&quot;&gt;this
movie&lt;/a&gt; and &lt;a href=&quot;http://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382?tag=duckduckgo-d-20&quot;&gt;this book&lt;/a&gt;. Since this happens to be less of a blog
about movies and more on &lt;a href=&quot;http://i.imgur.com/AruKI.jpg&quot;&gt;self help&lt;/a&gt; and software engineering, lets
tackle the latter. Although, if you are feeling particularly
&lt;a href=&quot;http://i.imgur.com/AruKI.jpg&quot;&gt;bored tonight&lt;/a&gt;, do rent the movie.&lt;/p&gt;
&lt;p&gt;Breaking shit! Alright, so guessing that you didn&#39;t pick up the book?
Right, &lt;a href=&quot;http://toolsandtoys.net/&quot;&gt;breakable toys&lt;/a&gt; refers to a piece of code/application/software
that is &lt;a href=&quot;https://gimmebar.com/view/50340aa129ca15433d000010/big&quot;&gt;near and dear to the your heart&lt;/a&gt; yet, perhaps not
&amp;quot;&lt;a href=&quot;http://youtu.be/xP1-oquwoL8&quot;&gt;mission critical&lt;/a&gt;&amp;quot; to the client. The authors of Apprenticeship
Patterns (or AP for shortzies) talk a lot about building these toy
systems in &lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;isolation&lt;/a&gt;, or private. I love this &#39;pattern&#39; but, I
think there exists a better spin to the whole design in isolation idea.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Design in production&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We all have &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-21-Breakable-Toys/#&quot;&gt;little problems&lt;/a&gt; that could be easily solved,
quantified, or tracked using some kind of application. Focus that need
and build a breakable toy. It doesn&#39;t have to be &lt;a href=&quot;https://gimmebar.com/view/503258b5aac422d76f000036/big&quot;&gt;complex&lt;/a&gt;, or even all
that great, just build it. Once it is finished, iterate by bringing
someone on to help its inevitable design wonkyness or just keep adding
features through user stories. The main verbs being: build, deploy,
iterate, test and perhaps most important of all: &lt;a href=&quot;https://gimmebar.com/view/5032f46faac422800200001a/big&quot;&gt;break&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Well...most important of all might go to actually reading AP. Really, read
the book, you can thank me later&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Thinking in Markup</title>
    <link href="https://cloudbacon.com/posts/2012-08-22-Think-In-Markup/"/>
    <updated>2012-08-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-22-Think-In-Markup/</id>
    <content type="html">&lt;p&gt;Yep, so wait. What is &lt;a href=&quot;https://en.wikipedia.org/wiki/Markup_language&quot;&gt;Markup&lt;/a&gt;? Well if you happen to follow the
links on this blog (and you really are safer if you don&#39;t), Wikipedia
catagorizes...or lists it into 3 distinct groups:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Presentational Markup&lt;/strong&gt;: Which happens to be the &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;XML&lt;/a&gt;-y type
stuff that &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;Word&lt;/a&gt; and other word processors use. In addition, this
style of markup is seldomly seen by the end user.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Procedural Markup&lt;/strong&gt;: What we will be focusing on. This style of
markup IS seen by the user and is &lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;sprinkled&lt;/a&gt;(be ware the Wizard) throughout the text.
A preprocessor comes along, reads the text and hands the styled text
back to the user.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Descriptive Markup&lt;/strong&gt;: This form is sprinkled throughout the text,
much like the Procedural form; however, it has no bearing on a
&lt;a href=&quot;https://en.wikipedia.org/wiki/Preprocessor&quot;&gt;preprocessor&lt;/a&gt;. A good example of this is the hashtag(#tag) syntax
that &lt;a href=&quot;https://gimmebar.com/view/50340aa129ca15433d000010/big&quot;&gt;some of us&lt;/a&gt; use on &lt;strike&gt;Twitter&lt;/strike&gt; AppDotNet to
catagorize our updates.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yes, until &lt;a href=&quot;https://twitter.com/daltonc&quot;&gt;Dalton&lt;/a&gt; comes to his senses and realizes that he has a cool
project with a dumb name, &lt;a href=&quot;https://join.app.net/&quot;&gt;it&lt;/a&gt; will be written that way.&lt;/p&gt;
&lt;p&gt;What we are talking about here is a light language (sometimes called &amp;quot;&lt;a href=&quot;http://www.amazon.com/Domain-Specific-Languages-Addison-Wesley-Signature-Series/dp/0321712943?tag=duckduckgo-d-20&quot;&gt;DSLs&lt;/a&gt;&amp;quot;)
that is used to express oneself beyond text. Anyone not see the beauty
in that? The user gets a &lt;a href=&quot;https://gimmebar.com/view/5031916aaac422225b000016/big&quot;&gt;free ride&lt;/a&gt; by using text documents that are
generated with style, flare and that never expire (text documents &lt;a href=&quot;http://textfiles.com/&quot;&gt;wont
be going out of style anytime soon&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Many of us, myself included have flocked to the &lt;a href=&quot;http://images.macworld.com/images/opinion/graphics/151235-gruber-small_original.jpg&quot;&gt;lovable&lt;/a&gt;
&lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt;. Originally it was used to style documents for web
viewing; however, now it has bleed into many text editors, iPhone and
Android editors, and it is still fairly prevalent when it comes to web
based writing. I have become so accustomed to the syntax, and
incorporated its usage into so many applications that my brain now
thinks on Markdown.&lt;/p&gt;
&lt;p&gt;What Markup language do you think in?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Software Behind</title>
    <link href="https://cloudbacon.com/posts/2012-08-23-Crop-Of-Todo-Managers/"/>
    <updated>2012-08-23T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-23-Crop-Of-Todo-Managers/</id>
    <content type="html">&lt;p&gt;There are a lot of good ones out there at the moment, so without further
ado, here is your &lt;a href=&quot;https://gimmebar.com/view/50305c7729ca153546000001/big&quot;&gt;list&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;###Incumbents&lt;/p&gt;
&lt;p&gt;The two that come to mind in this category are &lt;a href=&quot;http://www.omnigroup.com/products/omnifocus/&quot;&gt;Things&lt;/a&gt; and
&lt;a href=&quot;http://culturedcode.com/things/&quot;&gt;OmniFocus&lt;/a&gt;. Both have iPhone and accompanying Mac apps and both
sync seamlessly between the two platforms. Things lacked this functionality in the
past but, it has recently been updated. Full disclosure, I am a
super-fan of OmniFocus and I also feel anything designed and or nudged
by &lt;a href=&quot;http://www.43folders.com/2004/09/03/introducing-the-hipster-pda&quot;&gt;Merlin Mann&lt;/a&gt; and &lt;a href=&quot;http://ethan.schoonover.usesthis.com/&quot;&gt;Ethan Schoonover&lt;/a&gt; is worth checking out /
using until they make something new.&lt;/p&gt;
&lt;p&gt;Regardless of bias, both of these applications will work well for your
daily to-do&#39;s, with OmniFocus being much more tailored to the &lt;a href=&quot;http://www.davidco.com/&quot;&gt;GTD&lt;/a&gt;
methodology.&lt;/p&gt;
&lt;p&gt;###FO Freeze&lt;/p&gt;
&lt;p&gt;The two that we will talk about (there are quite a few in this category)
are the &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;Apple Reminders app&lt;/a&gt; and &lt;a href=&quot;https://www.wunderlist.com/&quot;&gt;Wunderlist&lt;/a&gt;. Both of these apps
will set you back a grand total of 0 &lt;a href=&quot;http://www.bluebison.net/sketchbook/2008/0108/kiwi-small.png&quot;&gt;Yankee Dollar-y-Doos&lt;/a&gt; and both
will sync between your Apple powered devices. Wunderlist will even work
in a browser, Windows, and Linux. Both of these are more traditional
list managers and have fewer (read: &lt;a href=&quot;https://gimmebar.com/view/503258b5aac422d76f000036/big&quot;&gt;less complex&lt;/a&gt;) frivolous
features.&lt;/p&gt;
&lt;p&gt;If you are in the market for a sleek, simple, and free app, take a
&lt;a href=&quot;https://gimmebar.com/view/5032f2bf29ca153c71000025/big&quot;&gt;stroll&lt;/a&gt; and give one of these a whirl.&lt;/p&gt;
&lt;p&gt;###Webby&lt;/p&gt;
&lt;p&gt;The three we will go over briefly (because really to get an idea of how
they work, you should be trying them out) are &lt;a href=&quot;http://asana.com/&quot;&gt;Asana&lt;/a&gt;,
&lt;a href=&quot;https://cheddarapp.com/&quot;&gt;Chedder&lt;/a&gt;, and &lt;a href=&quot;http://www.getflow.com/&quot;&gt;Flow&lt;/a&gt;. These applications aren&#39;t &lt;em&gt;only&lt;/em&gt; for the
web, all three of them have a mobile component, and Chedder even has an
early stage Mac client. Chedder is a really simple and fast set of lists
where Flow attempts to recreate the Things experience (half-hearted GTD)
on the web and Asana is great for working with teams.&lt;/p&gt;
&lt;p&gt;###Fin&lt;/p&gt;
&lt;p&gt;There is a really quick, and dirty rundown of the current crop of &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;task
managers&lt;/a&gt;. My recommendations? Give each one a whirl and see what
fits your lifestyle. Some of us have complex, &amp;quot;big boy&amp;quot; needs, while
others benefit from a simple list manager.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Believe in Your Product</title>
    <link href="https://cloudbacon.com/posts/2012-08-24-Believe-In-Your-Product/"/>
    <updated>2012-08-24T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-24-Believe-In-Your-Product/</id>
    <content type="html">&lt;p&gt;Starting a blog post with a story or a list is automatic &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;link love&lt;/a&gt;
from the &lt;a href=&quot;http://duckduckgo.com/?t=&quot;&gt;Googs&lt;/a&gt;...I think.&lt;/p&gt;
&lt;h3&gt;A Story&lt;/h3&gt;
&lt;p&gt;I happen to work for a really wonderful company that makes a good amount
of its profits from public transport. &lt;a href=&quot;https://gimmebar.com/view/502bb36faac4221844000002/big&quot;&gt;Planes, trains, buses&lt;/a&gt;, you name
it. Just not &lt;a href=&quot;https://gimmebar.com/view/5031916aaac422225b000016/big&quot;&gt;automobiles&lt;/a&gt;. If you were to work at a place like this
and take pride in your product, you would likely ride the bus. Studying
every move people make, what defines their buying decisions. Moreover, even down
to what type of music they listen to as their public transport trudges
on...&lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;consuming more of their day than their feedumb cars&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Your participation / &lt;a href=&quot;http://cageme.herokuapp.com/random&quot;&gt;devotion&lt;/a&gt; would lead you to purchasing the
product that you produced and believing the fact that someday, just
maybe, you could sell your car in favor of supporting the people that
make your life possible. I work to support public transport, and these
feelings &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;wash over me&lt;/a&gt; on a daily basis.&lt;/p&gt;
&lt;h3&gt;The Deal&lt;/h3&gt;
&lt;p&gt;If you produce a product and you can&#39;t stand behind it by actually using
it, you have &lt;a href=&quot;http://smallbiztrends.com/wp-content/uploads/2012/08/business-punch.jpg&quot;&gt;no business being in business&lt;/a&gt;. What you are really in
it for is the money, and as we can see in our current economy, this
method doesn&#39;t lead to sustainability. Today is Friday...I think. Take
the weekend to look over your current product and how you feel about it.
Are you passionate? If not, take Monday and Tuesday of next week to
reflect on the whole ordeal. If things look bleak by Wednesday, quit.&lt;/p&gt;
&lt;p&gt;Suriosly.&lt;/p&gt;
&lt;p&gt;Also this post was finished so close to the deadline that it was
finished without much editing. &lt;a href=&quot;http://youtu.be/ZQkxJ4WcXjA&quot;&gt;YUP&lt;/a&gt;!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Cheapest Of All</title>
    <link href="https://cloudbacon.com/posts/2012-08-25-The-Cheapest-Of-All/"/>
    <updated>2012-08-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-25-The-Cheapest-Of-All/</id>
    <content type="html">&lt;p&gt;I happened across &lt;a href=&quot;http://www.theatlantic.com/business/archive/2012/08/cars-not-for-us-the-cheapest-generation-explains-the-freedom-of-not-owning/261516/&quot;&gt;this article&lt;/a&gt; this week and was rather
unastonished to hear that we are the cheapest generation ever.
Since many of my readers &lt;a href=&quot;http://cloudbacon.com/2011/12/19/People-Can-Not-Read&quot;&gt;can&#39;t actually read&lt;/a&gt; here is a quick
one-over.&lt;/p&gt;
&lt;p&gt;Apparently the Millenials aren&#39;t doing the &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;same shit&lt;/a&gt; in the &lt;a href=&quot;http://blog.krrb.com/wp-content/uploads/2013/04/phs414PennyFarthing1880s.jpg&quot;&gt;same
way&lt;/a&gt; as our parents. Oh, and this is bad btw, if you couldn&#39;t infer
it. We are waiting until we hit &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-25-The-Cheapest-Of-All/#&quot;&gt;middle age&lt;/a&gt; to think about new cars or
our first house. In addition, this kind of &amp;quot;&lt;a href=&quot;http://sundial.csun.edu/wp-content/uploads/2010/02/SO18-Tea-610x462.jpg&quot;&gt;fiscal responsibility&lt;/a&gt;&amp;quot;
is tanking the &lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;great state of USA&lt;/a&gt; and pushing it into the path of &lt;a href=&quot;https://cloudbacon.com/&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My response to 99% of this article and &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-25-The-Cheapest-Of-All/#&quot;&gt;75% of 100% of life&lt;/a&gt; is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Bullshit&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;For starters, the &amp;quot;Global Stragegic Marketing&amp;quot; dude from GM in the &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;Atlantic&lt;/a&gt; article
is &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;tripping balls&lt;/a&gt;. You are 31, which means that you are only 4 or
so years away from being one yourself. Does this mean you don&#39;t know who
you are? Likely. The rest of the article and the concept are right on,
along with some of the responses that have cropped up over the past few
days.&lt;/p&gt;
&lt;p&gt;We don&#39;t care, as a group of people, to be overly encumbered with
things. This doesn&#39;t make us &lt;a href=&quot;http://grist.org/list/2012-01-04-this-guy-only-owns-15-things/&quot;&gt;this asshat&lt;/a&gt;. But, it does make us
conscious of every purchase we make. It has nothing to do with the
instability of our jobs(which definitely exists), or the lack of jobs in
general. It all boils down to one word: Freedom. Does your product get
us a little closer to attaining it? No? Well fuck off(said by a
generation of people with their wallets closed and their minds &lt;a href=&quot;http://msnbcmedia.msn.com/j/msnbc/Components/Photo/_new/080730-ped-texting-vmed-12p.380%3B380%3B7%3B70%3B0.jpg&quot;&gt;sudo&lt;/a&gt; open).&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Mentorship</title>
    <link href="https://cloudbacon.com/posts/2012-08-26-Mentorship/"/>
    <updated>2012-08-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-26-Mentorship/</id>
    <content type="html">&lt;p&gt;When it comes to self improvement, or &lt;a href=&quot;http://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382/ref=sr_1_1?ie=UTF8&amp;amp;qid=1346026480&amp;amp;sr=8-1&amp;amp;keywords=apprenticeship+patterns&quot;&gt;improvement overall&lt;/a&gt;, one of
the hardest things to do is admit that &lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;you might not know
something&lt;/a&gt;. Most of the time we couldn&#39;t even list, in any order, the
things that &amp;quot;we don&#39;t know.&amp;quot; Not one. &lt;a href=&quot;https://gimmebar.com/view/50340aa129ca15433d000010/big&quot;&gt;Suriously&lt;/a&gt;, try really hard
and use &lt;a href=&quot;https://gimmebar.com/view/503abec229ca15f37500000d/big&quot;&gt;your power&#39;s of awesome&lt;/a&gt; to &lt;a href=&quot;http://cloudbacon.com/about&quot;&gt;get a hold&lt;/a&gt; of me. For
myself? The hardest part of my software life, and therefore the thing I
have the least amount of experience with is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Mentorship&quot;&gt;Mentorship&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The experience of having a master to work under and to pester with
questions is invaluable when it comes to walking the road from
an apprentice to a master. There are a few methods (IRC, message boards,
etc) that are acceptable if direct mentorship is not available. However,
these substitutes should not be used without looking for the real deal.&lt;/p&gt;
&lt;p&gt;So without further ado, and let&#39;s be honest, it is a Sunday, here are
some cool ways to get hooked up with some web programmery based mentors.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.apprentice.io/&quot;&gt;Apprentice.io&lt;/a&gt;: a Boston based awesome sauce Ruby shop named
ThoughtBot have a really great thing going on. If you live in the
North-East or are mobile, this is one of the best programs to check
out.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://hashrocket.com/people/work-at-hashrocket/apprentice&quot;&gt;HashRocket&lt;/a&gt;: Another East coast Ruby company that has a lot of
cool people behind it. Pretty much the ThoughtBot of Florida.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://hungryacademy.com/&quot;&gt;Hungry Academy&lt;/a&gt;: A devision of the folks at Living Social out of
DC. The program has only had one run but, they hired 100% of the
developers who went through it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.codeacademy.org/&quot;&gt;Code Academy&lt;/a&gt;: Chicago based program that focuses on the web
over specifically Ruby and Rails.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://devbootcamp.com/&quot;&gt;DevBootcamp&lt;/a&gt;: This program costs quite a lot at 11,200 but there
have been some rumblings about the first class seeing salaries hit
80k&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;BOOM!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>I Could Care Less About</title>
    <link href="https://cloudbacon.com/posts/2012-08-27-Things-That-Are-Not-Worth-Caring-About/"/>
    <updated>2012-08-27T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-27-Things-That-Are-Not-Worth-Caring-About/</id>
    <content type="html">&lt;p&gt;If you don&#39;t know what &lt;a href=&quot;http://www.codejacked.com/know-your-keyboard-bang-splat-whack/&quot;&gt;splat&lt;/a&gt; means than you are in the wrong
place. If you do! Well &lt;a href=&quot;http://25.media.tumblr.com/8tqDWct6W70gfanxSJXIGOMO_500.jpg&quot;&gt;huzzah&lt;/a&gt; (possibly NSFW), keep reading. It
happens to be a &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-27-Things-That-Are-Not-Worth-Caring-About/#&quot;&gt;Monday&lt;/a&gt;, and Mondays happen to proceed the epically
boring Sunday. Equally boring, Mondays are rife for some positive &lt;a href=&quot;http://teuxdeux.com/&quot;&gt;list
production&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unlike a few weeks ago, where we looked at some small things that were
going on in the community, today we will run &lt;a href=&quot;http://www.everythingaction.com/wp-content/uploads/2010/02/2003_the_rundown_020.jpg&quot;&gt;down the opposite&lt;/a&gt;.
Without going too much into depth (wouldn&#39;t want to spoil it), here are
just a few things &amp;quot;&lt;a href=&quot;http://www.urbandictionary.com/define.php?term=I+could+give+two+shits&quot;&gt;I couldn&#39;t be bothered to give two shits&lt;/a&gt;&amp;quot;...about.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://news.google.com/news?ned=us&amp;amp;q=twitter%20api&amp;amp;btnG=Search+News&quot;&gt;Twitter&#39;s New TOS&lt;/a&gt;: Or API changes, or whatever. When it comes
down to it, a small fraction of people actually use Twitter. In
addition, an &lt;strong&gt;EVEN&lt;/strong&gt; smaller section know what a 3rd party app is.
&lt;a href=&quot;http://us5.memecdn.com/How-I-feel-about-America_c_66102.jpg&quot;&gt;Google ++,&lt;/a&gt; Twitter is the new Facebook, everyone wants to &lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;hate on it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.litigationandtrial.com/2012/08/articles/attorney/patent-infringement/apple-v-samsung/&quot;&gt;Apple V Samsung&#39;s Big Knobby Vibrator&lt;/a&gt;: Suriously, there is so
much to link to, I just dumped something in there. There was a
verdict, now someone is crying, so there isn&#39;t now. Who the fuck
cares. Oh, one more thing, Samsung and all of their &lt;a href=&quot;http://9to5mac.com/2012/08/27/youve-seen-apples-internal-memo-to-employees-on-the-verdict-now-heres-samsungs/&quot;&gt;letters&lt;/a&gt;.
Actually, if Fortune 500&#39;s could just &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;quit with the memos&lt;/a&gt; all
together, that would &lt;a href=&quot;http://youlooknicetoday.com/&quot;&gt;be nice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.computerworld.com/windows/20889/new-microsoft-logo-rants-and-raves-itbwcw&quot;&gt;New MS Logo&lt;/a&gt;: &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;Snore&lt;/a&gt;...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ok and here are some things to coutneract &lt;a href=&quot;https://gimmebar.com/view/50305c7729ca153546000001/big&quot;&gt;all that negativity&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://gigaom.com/cloud/surprise-vmware-will-join-openstack/&quot;&gt;VMWare joining OpenStack is hella cool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pcmag.com/article2/0,2817,2408977,00.asp&quot;&gt;The ever lovable Bob is hanging around at Apple&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Go home.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Do One Thing Every Day</title>
    <link href="https://cloudbacon.com/posts/2012-08-28-Do-One-Thing-Every-Day/"/>
    <updated>2012-08-28T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-28-Do-One-Thing-Every-Day/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;Pants&lt;/a&gt;, if for some reason you don&#39;t know what goes in them.&lt;/p&gt;
&lt;p&gt;Life is surprisingly &lt;a href=&quot;https://gimmebar.com/view/503abec229ca15f37500000d/big&quot;&gt;easy&lt;/a&gt;, which happens to be contrary to most of
the &lt;a href=&quot;http://8.mshcdn.com/wp-content/gallery/amercia/%40warpafx.jpg&quot;&gt;jowels out there&lt;/a&gt;. What &lt;em&gt;is&lt;/em&gt; hard is doing &lt;a href=&quot;https://gimmebar.com/view/50340b0029ca154d3d000026/big&quot;&gt;shit&lt;/a&gt;
consistently. Every day to be exact.&lt;/p&gt;
&lt;p&gt;The plan was to keep this &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;post&lt;/a&gt; squared away until the very end of
this little test. An experiment to try and write &lt;a href=&quot;http://cloudbacon.com/2012/08/02/30-Days-of-Blogging&quot;&gt;1 post every day&lt;/a&gt;
for the month of August. Posts could be on a myriad of subjects but,
they all had to be &amp;gt; 200 words and posted during the hours of each
day.&lt;/p&gt;
&lt;p&gt;It isn&#39;t Friday, which happens to the &lt;a href=&quot;https://encrypted.google.com/search?tbm=isch&amp;amp;q=official&amp;amp;tbs=imgo:1&amp;amp;biw=1440&amp;amp;bih=828&amp;amp;sei=IHM9UNmJEoym8ATepIGoDw&quot;&gt;official&lt;/a&gt; end of the month
but, here are some really quick reflections on doing &lt;a href=&quot;http://lifehacker.com/281626/jerry-seinfelds-productivity-secret&quot;&gt;one thing, every day&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It&#39;s hard. Being able to produce 200 words of prose each day is super
easy. Making said prose make a lick of sense or even be &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-28-Do-One-Thing-Every-Day/#&quot;&gt;remotely&lt;/a&gt;
interesting is pretty fucking hard.&lt;/li&gt;
&lt;li&gt;Use a product like OmniFocus or &lt;a href=&quot;https://hollyapp.com/&quot;&gt;Holly&lt;/a&gt; to list out ideas as they
come by. I did this more at the beginning and got laxed towards the
end which has been the result of a lot of &lt;a href=&quot;https://gimmebar.com/view/50305c7729ca153546000001/big&quot;&gt;lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;When you first sit down at a desk everyday, open your daily post and
work on it throughout the day. Inevitably the post will be better
than cramming it into 1 hour at night.&lt;/li&gt;
&lt;li&gt;Build in one cheat day. I didn&#39;t do this and I am glad that I didn&#39;t.
However, there will be a time where you are away from a computer and
have no way to properly construct a post. No one is a failure if they
miss one day.&lt;/li&gt;
&lt;li&gt;Make it fun.&lt;/li&gt;
&lt;li&gt;Teach&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Fin.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A Journal</title>
    <link href="https://cloudbacon.com/posts/2012-08-29-A-Programmers-Journal/"/>
    <updated>2012-08-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-29-A-Programmers-Journal/</id>
    <content type="html">&lt;p&gt;If you aren&#39;t quite as &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;addicted&lt;/a&gt; to &lt;a href=&quot;http://news.ycombinator.com/&quot;&gt;Hacker news&lt;/a&gt; as most of us
are, this is a reaction to &lt;a href=&quot;https://gist.github.com/3444793&quot;&gt;this post&lt;/a&gt;. In the past few days, the
idea/&lt;a href=&quot;http://www.amazon.com/Official-Visual-Basic-Programmers-Journal/dp/078970465X?tag=duckduckgo-d-20&quot;&gt;topic&lt;/a&gt;(HMM...Visual Basic 4, sure brings back &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;memories&lt;/a&gt;) of
a programmers journal seems to be gaining steam on the interwebs. The
idea is really quite simple:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Keep a journal of daily things, todos, hang ups, ideas, etc that
pertain to only the world of programming. You can look back on them
and quantify the tragectory of your &lt;a href=&quot;https://gimmebar.com/view/503258b5aac422d76f000036/big&quot;&gt;thought process&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pretty cool huh? Not sure if it needed to be a block quote but it
happened. The above post really advocates keeping a physical journal (&lt;a href=&quot;http://cloudbacon.com/2012/08/14/Fun-Found-In-Notecards&quot;&gt;as
do I&lt;/a&gt;); however, I was quite surprised how many people use text files instead.
Why?&lt;/p&gt;
&lt;p&gt;Yes, many programmers are generally concerned about creating a lot of
paper waste. Most of our jobs are designed to rid the workplace of paper
alltogether. This space though, &lt;em&gt;just&lt;/em&gt; the programmer&#39;s journal space,
should be filled with great &lt;a href=&quot;https://gimmebar.com/view/50340b0029ca154d3d000026/big&quot;&gt;physical&lt;/a&gt; notebooks. &lt;a href=&quot;http://edison.rutgers.edu/&quot;&gt;Edison&lt;/a&gt;, &lt;a href=&quot;http://www.teslauniverse.com/nikola-tesla-books-notebook-from-edison-machine-works-by-nikola-tesla&quot;&gt;Tesla&lt;/a&gt;, and
&lt;a href=&quot;http://darwin-online.org.uk/EditorialIntroductions/vanWyhe_notebooks.html&quot;&gt;Darwin&lt;/a&gt; all kept a journal, and I am 99% positive that theirs weren&#39;t
unmanagably long text files. Without further ado, a list. Here are my top requirements for a good,
real, paper programmers journal.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It must be bendy and &lt;a href=&quot;http://www.rhodiapads.com/collections_boutique_webnotebook.shtml&quot;&gt;13x21&lt;/a&gt; cm or larger. I have never been a fan
of Moleskine&#39;s notebooks (although the new &lt;a href=&quot;http://www.jetpens.com/search?q=zebra+sansa+clip&quot;&gt;Evernote one&lt;/a&gt; could
be cool) but, their journals are fairly great. The only thing missing
in their exhaustive line is a dot grid option and I would leap on
that in a second if a chance were to arise.&lt;/li&gt;
&lt;li&gt;The notebook should exude creativity but contain the user within a
small grid. That is why lined and blank books don&#39;t really work.
Grids are good and dots are about as good as you can get. &lt;a href=&quot;http://www.rhodiapads.com/collections_boutique_webnotebook.shtml&quot;&gt;Rhodia&lt;/a&gt; has a great product; however,
all of their notebooks have a hard cover. which goes against the
whole idea of &amp;quot;bendy.&amp;quot;&lt;/li&gt;
&lt;li&gt;A great pen and pencil. Yep both! Most of the time I use a &lt;a href=&quot;http://www.jetpens.com/search?q=zebra+sansa+clip&quot;&gt;pen&lt;/a&gt;
from Zebra or &lt;a href=&quot;http://www.jetpens.com/Pilot-Hi-Tec-C-Gel-Ink-Pen-0.3-mm-Basic-Colors-Blue-Black/pd/50&quot;&gt;Pilot&lt;/a&gt; and a lead holder from &lt;a href=&quot;http://www.jetpens.com/Rotring-300-Lead-Holder-2-mm-Black-Body/pd/8036&quot;&gt;Rotring&lt;/a&gt;.
Experiment and find what you like in your hands.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As I mentioned yesterday, it is hard to incorporate something new, and
perhaps difficult into your daily routine. With a notebook, slide it
between your &lt;a href=&quot;http://www.elitekeyboards.com/&quot;&gt;keyboard&lt;/a&gt; and monitor. That way it is always in the
way of you and your creativity.&lt;/p&gt;
&lt;p&gt;Fin...just promise me: &amp;quot;Don&#39;t use a fucking text file for your
programming journal&amp;quot;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Something Random</title>
    <link href="https://cloudbacon.com/posts/2012-08-30-A-Thursday/"/>
    <updated>2012-08-30T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-30-A-Thursday/</id>
    <content type="html">&lt;p&gt;This post will be a &lt;a href=&quot;https://gimmebar.com/view/5031916aaac422225b000016/big&quot;&gt;quick and dirty&lt;/a&gt; rundown of what is banging
around in my head today.&lt;/p&gt;
&lt;h3&gt;This Post&lt;/h3&gt;
&lt;p&gt;A couple &lt;a href=&quot;http://1.bp.blogspot.com/-PMU7W3HEbaQ/T8NBPZ66XFI/AAAAAAAABYk/AQCRm7tEoMM/s1600/friendship_kittens.png&quot;&gt;good friends&lt;/a&gt; and myself have been working to start up a
coworking location &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;where we live&lt;/a&gt;. Today, there happened to be a
&lt;a href=&quot;http://founderware.co/start-up/ten-rules-for-shared-working-spaces/&quot;&gt;post&lt;/a&gt; make its way to the front page of Hacker news that highlights some
&amp;quot;&lt;a href=&quot;https://cloudbacon.com/posts/2012-08-30-A-Thursday/#&quot;&gt;issues&lt;/a&gt; with coworking locations.&amp;quot; I also realized that I have a
twitch when I am focusing really hard. It is a little hard to describe
but, it basically resembles &lt;a href=&quot;https://cloudbacon.com/posts/2012-08-30-A-Thursday/#&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;My Car&lt;/h3&gt;
&lt;p&gt;I drive sorta fast. Well my wife wouldn&#39;t say so but I do. Today I
accidently pegged a divet in the road and &lt;a href=&quot;http://weknowmemes.com/wp-content/uploads/2012/06/fuck-you-i-am-cat.jpg&quot;&gt;blew a tire&lt;/a&gt;. Goodbye 200
dollars. Very sad about this.&lt;/p&gt;
&lt;h3&gt;Current Yobs&lt;/h3&gt;
&lt;p&gt;Yeah, there hadn&#39;t been to much talk about this for some time but, a
week ago I was left with the entire techology sector on my plate. Before
I was more of a programmer than a technologist which has changed very
quickly. When a programmer is saddled with help desk and opperations
based work, they tend to have a hard time switching gears. Or maybe I
just have said problem. This definitely of makes me sad.&lt;/p&gt;
&lt;h3&gt;My 30 Days Blogging&lt;/h3&gt;
&lt;p&gt;It has been hard, it is over tomorrow, it was hard, but it was well
worth all of the work. I am sure there will be more of a timeframe
between posts going forward but, I am going to make a conscious effort
to make the quality of said posts a whole lot better than the past
month. Hopefully I didn&#39;t drive too many people away.&lt;/p&gt;
&lt;h3&gt;Kindles&lt;/h3&gt;
&lt;p&gt;It appears that &lt;a href=&quot;http://www.theverge.com/2012/8/30/3280770/amazon-kindle-paperwhite-display&quot;&gt;the Verge&lt;/a&gt; have gotten their mits on what could be
the new Kindle Fire and e-ink versions. I have been rocking a 2nd
generation Kindle since 09 and definitely like what I am seeing.&lt;/p&gt;
&lt;h3&gt;Unedited&lt;/h3&gt;
&lt;p&gt;It flows better that way...&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The End</title>
    <link href="https://cloudbacon.com/posts/2012-08-31-The-End-As-We-Know-It/"/>
    <updated>2012-08-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-08-31-The-End-As-We-Know-It/</id>
    <content type="html">&lt;p&gt;For everyone who had an unproductive, bad, uninteresting, boring, or
otherwise shitty Friday please click on &lt;a href=&quot;http://journeyfriday.com/&quot;&gt;this link&lt;/a&gt; and spend 13 minutes
basking in what can only be described as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;Pure Fucking Awesome Sauce&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That&#39;s it...for realz! I don&#39;t have anything else to say but:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Lists will tank your time on site.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I am not much of a google analytics &lt;a href=&quot;http://gatherer.wizards.com/pages/card/Details.aspx?multiverseid=129692&quot;&gt;nerd&lt;/a&gt; (suriously, I used to love
MTG); however, I thought it would be interesting to see how this
blogging &lt;a href=&quot;https://gimmebar.com/view/5032f46faac422800200001a/big&quot;&gt;foray&lt;/a&gt; has impacted the traffic to this here site.&lt;/p&gt;
&lt;p&gt;To my suprise, there has been quite an uptick on visitor front. HOWEVER,
I clicked the compare to time on site and saw the opposite. Although,
there were more people visiting the site, they were quicker to leave,
perhaps because most of the stuff being presented was kinda bland, off
the cough for the past month. This, coupled with the very unedity side
of life is what forced people away.&lt;/p&gt;
&lt;p&gt;And this post isn&#39;t going to help much on that front either. Being the
last post of the month I would like to thank all of the people who
attempted to read my ramblings as well as the people who immediately
turned tail and ran away as fast as fucking possible.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=bG6b3V2MNxQ&quot;&gt;Thanks for all the fish&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Hardest Thing</title>
    <link href="https://cloudbacon.com/posts/2012-09-03-Quit-It/"/>
    <updated>2012-09-03T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-09-03-Quit-It/</id>
    <content type="html">&lt;p&gt;If you agree with &lt;a href=&quot;http://wasigh.com/scariest-thing-resigned/&quot;&gt;this post&lt;/a&gt; we have a problem. Srsly, like dialing
&lt;a href=&quot;https://gimmebar.com/view/5045518529ca15f836000020/big&quot;&gt;Houston&lt;/a&gt; at this-very-moment &lt;a href=&quot;https://gimmebar.com/view/50340b0029ca154d3d000026/big&quot;&gt;problem&lt;/a&gt;. If saying goodbye to
employment with a company that you don&#39;t own is the scariest thing you
can think of... I don&#39;t know, go think of these &lt;a href=&quot;http://www.radiolab.org/blogs/radiolab-blog/2012/jul/30/ants/&quot;&gt;ants&lt;/a&gt;. They are
about 1 million times more scary than quiting a job.&lt;/p&gt;
&lt;p&gt;Oh, and feel free to &lt;a href=&quot;http://www.vimninjas.com/2012/09/03/5-plugins-you-should-put-in-your-vimrc/&quot;&gt;not download these plugins&lt;/a&gt;. Also, how about
the scariest thing you could think of is getting traffic tanked by
Hacker News? It is 9-est on Monday (&lt;a href=&quot;http://www.historyhouse.com/in_history/webster/&quot;&gt;Labour&lt;/a&gt; day) and there is 0
access.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Smaht Koaning</title>
    <link href="https://cloudbacon.com/posts/2012-09-22-Koans-Eh-Rific/"/>
    <updated>2012-09-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-09-22-Koans-Eh-Rific/</id>
    <content type="html">&lt;p&gt;To think that this blog went through a steep declined after August is a
damn crying shame. Also, I could have been &lt;a href=&quot;https://gimmebar.com/view/5045518529ca15f836000020/big&quot;&gt;lost&lt;/a&gt; but, that is
neither &lt;a href=&quot;https://gimmebar.com/view/5032f67e29ca154572000000/big&quot;&gt;here&lt;/a&gt; nor there. Also, and perhaps a complete surprise is a
post about shit I actually do...like for a living. Without further ado:&lt;/p&gt;
&lt;p&gt;It should come to no surprise to the &lt;a href=&quot;http://www.ardmorelibrary.org/literacy/images/oneoutoffive.jpg&quot;&gt;readers of this blog&lt;/a&gt; (that
poster is sandbagging) that I love &lt;a href=&quot;https://github.com/edgecase/ruby_koans&quot;&gt;Ruby koans&lt;/a&gt;. Specifically the
ones maintained by the wonderful people at Edgecase. &lt;a href=&quot;https://en.wikipedia.org/wiki/K%C5%8Dan#Varieties_in_koan-practice&quot;&gt;Koans&lt;/a&gt;, for the
peeps who have no clue are a staple in the &lt;a href=&quot;http://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382?tag=duckduckgo-d-20&quot;&gt;apprenticeship movement&lt;/a&gt;
and are an easy and repeatable way to hone your skills.&lt;/p&gt;
&lt;p&gt;Ok so practicing is a good thing, but how do we make said practice more
fluid? To accomplish fluid...ness, is that right? We are going to need
some tools, of which might be a little frightening to the new sotware
developer. Don&#39;t fret:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Vim&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/benmills/vimux&quot;&gt;Vimux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tmux.github.io/&quot;&gt;Tmux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Some &lt;a href=&quot;http://media.screened.com/uploads/0/5115/407558-airbud1_super.jpg&quot;&gt;bud&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One of the biggest problems people have with koans is the tedium of
jumping back and forth between your editor and terminal to run the &lt;code&gt;rake&lt;/code&gt;
command. Problem solved. Open your current koan with Vim in the terminal.
You can throw MacVim &lt;a href=&quot;https://cloudbacon.com/posts/2012-09-22-Koans-Eh-Rific/#&quot;&gt;out the window&lt;/a&gt; (the fact that we can fly still amazes that guy). Create a split(vertical) window with
Tmux and navigate up a directory to where the rakefile is located. Hop
back over to your Vim instance and initiate: Vimux-RunVimTmuxCommand.
For me this is bound to &lt;code&gt;leader rp&lt;/code&gt;, type &amp;quot;rake&amp;quot; and BOOM. Your koan
information should be stdout...ing.&lt;/p&gt;
&lt;p&gt;No need to actually jump to the adjacent tmux window, no need to jump
out of your typing environment, and no need to break your awesome koan-like
focus. Another hat tip would be to use the RunVimTmuxLastCommand instead
of having to continually type rake in the the Vimux window. BOOM! Fluidity
leveled up.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>My Stance on Images</title>
    <link href="https://cloudbacon.com/posts/2012-09-23-Picture-Theory/"/>
    <updated>2012-09-23T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-09-23-Picture-Theory/</id>
    <content type="html">&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://css-tricks.com/on-responsive-images/&quot;&gt;They&lt;/a&gt; are super hard when concerned, if even for a fraction of a
second, on &lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;responsiveness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Writing that is bereft of them tends to be &lt;a href=&quot;http://www.ardmorelibrary.org/literacy/images/oneoutoffive.jpg&quot;&gt;cleaner to read&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I am a bit of a &lt;a href=&quot;http://daringfireball.net/&quot;&gt;fanboi&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>NVM without Xcode</title>
    <link href="https://cloudbacon.com/posts/2012-10-07-NVM-Without-Xcode-Installed/"/>
    <updated>2012-10-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-07-NVM-Without-Xcode-Installed/</id>
    <content type="html">&lt;p&gt;Since you are a kick-ass developer, you own a Macbook Air (most of us
do) yet, you are constantly pressed
for moah hard drive space. With Xcode being a bit &amp;quot;&lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;portly&lt;/a&gt;&amp;quot;, &amp;quot;there has
got to be a better way&amp;quot;...to do stuff. The kick-ass peeps at
&lt;a href=&quot;http://thoughtbot.com/&quot;&gt;Thoughtbot&lt;/a&gt; have a wonderful &lt;a href=&quot;http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion&quot;&gt;post&lt;/a&gt; walking someone through
setting up a sweet Ruby dev environment on a brand new, Mountain Lion
powered Mac.&lt;/p&gt;
&lt;p&gt;Once that is done, send some sweet traffic to this &lt;a href=&quot;http://coderwall.com/p/dtbuqg&quot;&gt;post&lt;/a&gt;. It
walks through some needed tweaks when running the &lt;a href=&quot;https://github.com/mxcl/homebrew/wiki/Interesting-Taps-%26-Branches&quot;&gt;homebrew-dupes&lt;/a&gt; version
of gcc. Finally, run this command in your favorite shell to tell NVM
(and other &amp;quot;items of importance&amp;quot;) where your Xcode installation
&amp;quot;resides&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo xcode-select -switch /usr/local/bin&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now when you run &lt;code&gt;nvm install v.0.x.x&lt;/code&gt; it won&#39;t fail because you feel
Xcode is a bloated pig and it doesn&#39;t deserve your hard drive&#39;s
time-of-day. In addition, you have a lean, mean way to build some really
cool shit with two awesome languages.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Hand Writing Code</title>
    <link href="https://cloudbacon.com/posts/2012-10-08-Writing-Code-On-Whiteboards-Is-For-The-Birds/"/>
    <updated>2012-10-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-08-Writing-Code-On-Whiteboards-Is-For-The-Birds/</id>
    <content type="html">&lt;p&gt;This should come to no surprise to anyone: I love searching for jobs.
When you have been fired as many times as I have from yobs, you learn to
enjoy the process that is involved in nailing one down. Yes, this makes
me perfect for the freelance role; however, I have yet to find a way to
break into that club.&lt;/p&gt;
&lt;p&gt;Anyway, I spent this Friday in a &amp;quot;&lt;a href=&quot;https://gimmebar.com/view/502bb359aac422024400002d/big&quot;&gt;surprise interview&lt;/a&gt;&amp;quot; and nailed
every last section besides...yep, you guessed it: the technical section.
It isn&#39;t that I freeze or can&#39;t answer their questions, it is the simple
fact that writing code on a whiteboard is the least functional way to
figure out what someone knows. The equivalent is &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;this&lt;/a&gt;. And,
personally, my hips aren&#39;t that mobile.&lt;/p&gt;
&lt;p&gt;One of the best techincal interviews I ever had the grace to be apart of
was with &lt;a href=&quot;http://www.getharvest.com/&quot;&gt;Harvest&lt;/a&gt;. It was all over the phone, no code writing on a
fucking whiteboard, and 100% of it relevant to what occurs while working
with a &amp;quot;&lt;a href=&quot;https://en.wikipedia.org/wiki/Brownfield_(software_development)&quot;&gt;brown field app&lt;/a&gt;&amp;quot;. If you are a hiring manger, please think
carefully about your technical questions and &lt;strong&gt;DON&#39;T&lt;/strong&gt; make the
participant scribble their answer on a board.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: &lt;a href=&quot;http://seeknuance.com/2008/02/15/interview-whiteboard-coding-tests-are-usually-worthless/&quot;&gt;This blog post&lt;/a&gt; nicely defines some of the more &amp;quot;technical&amp;quot;
reasons behind why programming on whiteboards makes little sense.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Fivemat</title>
    <link href="https://cloudbacon.com/posts/2012-10-12-Fivemat-Trumps-Format/"/>
    <updated>2012-10-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-12-Fivemat-Trumps-Format/</id>
    <content type="html">&lt;p&gt;You heard it &lt;a href=&quot;https://github.com/tpope/fivemat&quot;&gt;here&lt;/a&gt; folks. I also feel the same as &lt;a href=&quot;https://github.com/tpope&quot;&gt;Tim&lt;/a&gt; on the
&amp;quot;&lt;a href=&quot;https://gimmebar.com/view/4f66924c2f0aaa7348000003/big&quot;&gt;too much&lt;/a&gt;&amp;quot; or &amp;quot;&lt;a href=&quot;https://gimmebar.com/view/50730705aac422613b000001/big&quot;&gt;too little&lt;/a&gt;&amp;quot; testing output.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Minnesota Declares Itself Dumb</title>
    <link href="https://cloudbacon.com/posts/2012-10-19-Minnesota-Declares-Itself-Dumb/"/>
    <updated>2012-10-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-19-Minnesota-Declares-Itself-Dumb/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.slate.com/&quot;&gt;Slate&lt;/a&gt;, yesterday, posted this wonderful &lt;a href=&quot;http://www.slate.com/blogs/future_tense/2012/10/18/minnesota_bans_coursera_state_takes_bold_stand_against_free_education.html&quot;&gt;little tidbit&lt;/a&gt; concerning
&lt;a href=&quot;https://gimmebar.com/view/502bb36faac4221844000002/big&quot;&gt;Michele Bachmann&#39;s&lt;/a&gt; &lt;a href=&quot;https://gimmebar.com/view/5045518529ca15f836000020/big&quot;&gt;4th favorite state&lt;/a&gt;: Minessota.&lt;/p&gt;
&lt;p&gt;On the upside, Minnesota already has a stellar education program. A wooping 79% of the
students can figure out how to &lt;a href=&quot;http://denisefelder.com/2010/09/02/help-mn-dropout-crisis/&quot;&gt;exit their high school&lt;/a&gt;...claims this random
blog. Congradulations Minnesota, way to hold the &lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;American flag&lt;/a&gt;
high.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Ubuntu Shitting On Things</title>
    <link href="https://cloudbacon.com/posts/2012-10-20-Ubuntu-Shits-On-Windohs-Eight/"/>
    <updated>2012-10-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-20-Ubuntu-Shits-On-Windohs-Eight/</id>
    <content type="html">&lt;p&gt;Yesterday I tweeted this &lt;a href=&quot;http://mlkshk.com/p/KEYA&quot;&gt;image&lt;/a&gt; and was thinking along these &lt;a href=&quot;http://youtu.be/hVrLloM1Al8&quot;&gt;
lines&lt;/a&gt;. Windows and the Microsoft brand have come along way in the
past couple of years. Shit, they even have a &lt;a href=&quot;http://paravelinc.com/work/microsoft/&quot;&gt;responsive home page&lt;/a&gt;
these days. However, closeting Windows 8 before it touches shelves would be the
best thing they have ever done...that and firing their &lt;a href=&quot;http://scm-l3.technorati.com/11/01/31/25951/steve-ballmer.jpg&quot;&gt;rogue
lickatron&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Pow Lessons</title>
    <link href="https://cloudbacon.com/posts/2012-10-26-Pow-Lessons/"/>
    <updated>2012-10-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-26-Pow-Lessons/</id>
    <content type="html">&lt;p&gt;Many fine &lt;a href=&quot;http://i.imgur.com/pa9xA.gif&quot;&gt;Rails Devs&lt;/a&gt; lean on &lt;a href=&quot;http://pow.cx/&quot;&gt;Pow&lt;/a&gt; to locally &amp;quot;host&amp;quot; their apps
in dev mode. Up until a few days ago, I really didn&#39;t use Pow very much.
However, in a fit of boredom, I decided to see what it could do. The
answer? &lt;a href=&quot;http://shechive.files.wordpress.com/2011/06/6715_f54b.gif&quot;&gt;Crash&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There appears to be a really odd issue in Pow (maybe due to its lax
dev schedule) that affects us &lt;a href=&quot;https://tmux.github.io/&quot;&gt;Tmux&lt;/a&gt; evangelists. If you initiate the
install script while in a session, the install fails miserably. Just
pop out, reinstall, and &lt;a href=&quot;http://www.the-joke-box.com/pictures/tomahawk-utility-belt.jpg&quot;&gt;boom&lt;/a&gt;, all is well in your Rail&#39;s life.&lt;/p&gt;
&lt;p&gt;As an aside, I really hope that 37 Signals doesn&#39;t abandon the project
because there really has been little work on it as of late. Then again,
maybe it is so well made it doesn&#39;t need any &amp;quot;real&amp;quot; maintance.&lt;/p&gt;
&lt;p&gt;Oh, and Happy &lt;a href=&quot;http://i.imgur.com/FHWMO.gif&quot;&gt;Whiskey&lt;/a&gt; - &lt;a href=&quot;http://journeyfriday.com/&quot;&gt;Journey&lt;/a&gt; Friday!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Vimwiki is Everywhere</title>
    <link href="https://cloudbacon.com/posts/2012-10-31-VimWiki-Everywhere/"/>
    <updated>2012-10-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-10-31-VimWiki-Everywhere/</id>
    <content type="html">&lt;p&gt;Confused about Vim, wiki&#39;s, or Google? &lt;a href=&quot;https://code.google.com/p/vimwiki/&quot;&gt;You are welcome&lt;/a&gt;. Although
vimwiki is a wiki implementation within Vim, it passes off a lot of cool
things that bleed into &lt;a href=&quot;http://daringfireball.net/projects/markdown/syntax&quot;&gt;markdown&lt;/a&gt; based writing. However, it often
only works on .md files. This is a pain point since some things use
.markdown files (&lt;a href=&quot;https://www.ohloh.net/p/gollum-wiki&quot;&gt;gollum&lt;/a&gt;) or .mdown files. Vim will filetype highlight
things using both of these filetypes however it won&#39;t sugar it up with
Vimwiki syntax.&lt;/p&gt;
&lt;p&gt;Wrong...well, sorta. Vimwiki drags around a couple of config flags that
can be used to syntax-up Vim when using all types of common markdown
extensions. And....:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;let g:vimwiki_ext2syntax = {&#39;.md&#39;,: &#39;markdown&#39;, &#39;.markdown&#39;: &#39;markdown&#39;, &#39;.mdown&#39;: &#39;markdown&#39;}&lt;/code&gt;
&lt;a href=&quot;https://gist.github.com/3989510&quot;&gt;gist&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Boom! Vimwiki syntax in all your markdown files. Be happy, write in
markdown.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Power To The Cube</title>
    <link href="https://cloudbacon.com/posts/2012-11-02-Power-Of-The-Cube/"/>
    <updated>2012-11-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-11-02-Power-Of-The-Cube/</id>
    <content type="html">&lt;p&gt;I had the chance to sit down and talk with a fairly awesome individual
this morning. This, if you don&#39;t know is somewhat of a rarety. However, one of the
best parts of the conversation revolved around one of &lt;a href=&quot;http://nickshell1983.files.wordpress.com/2010/02/rubix-cube.jpg&quot;&gt;these things
thing&lt;/a&gt;. He passed it to me and told me to get just one side. The
result? &lt;a href=&quot;https://gimmebar.com/view/50730705aac422613b000001/big&quot;&gt;This&lt;/a&gt;. Needless to say I bought one on the way home.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>MDN At Your Finger</title>
    <link href="https://cloudbacon.com/posts/2012-11-21-MDN-At-Your-Finger-Tips/"/>
    <updated>2012-11-21T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-11-21-MDN-At-Your-Finger-Tips/</id>
    <content type="html">&lt;p&gt;Disclaimer: this tip centers around the use of &lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; but, doesn&#39;t
require the premium &amp;quot;Power Pack&amp;quot;. &lt;a href=&quot;https://developer.mozilla.org/en-US/&quot;&gt;MDN&lt;/a&gt; is...or should be a go-to for
anyone doing any level of front-end development. It is an indispensible
knowledge base on anything concerning HTML, CSS, or Js. Since Alfred has
a great way to add custom searches, we can pipe items into Alfred and
have it pass the search onto MDN.&lt;/p&gt;
&lt;p&gt;The string to get this started is:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;https://developer.mozilla.org/en-US/search?q={query}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;MDN also encodes spaces as &lt;code&gt;+&lt;/code&gt; symbols so one will have to check the
appropriate box within the Alfred Custom Search settings.&lt;/p&gt;
&lt;p&gt;Now, if you have a question about how &lt;code&gt;line-height&lt;/code&gt; works you can simply
type &lt;code&gt;mdn line-height&lt;/code&gt; and &lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;&lt;strong&gt;BOOM&lt;/strong&gt;&lt;/a&gt;, stupendous success.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Boredom To Getting Something Done</title>
    <link href="https://cloudbacon.com/posts/2012-12-16-Boredom-To-Getting-Something-Done/"/>
    <updated>2012-12-16T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-12-16-Boredom-To-Getting-Something-Done/</id>
    <content type="html">&lt;p&gt;Posts have been a little sparse lately due to me moving to a new job and needing
to learn how to &#39;do&#39; &lt;a href=&quot;https://gimmebar.com/view/50b6270eaac4228f36000009/big&quot;&gt;PHP&lt;/a&gt; again. However, there has been a few instances where
I have found myself completely bored. To fight the need to tool around on &lt;a href=&quot;https://gimmebar.com/view/4f65e376300aaa98270000b8/big&quot;&gt;hacker news&lt;/a&gt;
in these situations, I give you &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;this&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;Oops, I actually meant &lt;a href=&quot;http://bc5e368a8867af61c3ed-e931c6f21220c188f04654bd7a220e82.r14.cf2.rackcdn.com/omnifocus_blog.png&quot;&gt;this&lt;/a&gt;. It might be a little hard to &#39;grep&#39; what&#39;s
going on in the picture but here is the idea. Whatever system you use to keep yourself
in-check and productive, probably utilizes tags or &#39;contexts&#39; for the true &lt;a href=&quot;http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280/ref=sr_1_1?ie=UTF8&amp;amp;qid=1355686690&amp;amp;sr=8-1&amp;amp;keywords=gtd&quot;&gt;GTDers&lt;/a&gt;.
Create a tag that is as simple as &#39;Web&#39;. The next part is hard but, with some simple
conditioning, success isn&#39;t far.&lt;/p&gt;
&lt;p&gt;Start training yourself to look back at this context every time you find yourself
bored on the Internet. When you feel that nagging need to navigate to Facebook, Pinterest, or Pandora, stop.
Think about what you are doing, then click on your &lt;a href=&quot;https://www.omnigroup.com/products/omnifocus/&quot;&gt;productivity suite&lt;/a&gt; of choice
and see what you &lt;a href=&quot;https://gimmebar.com/view/504f465629ca15bb4b000000/big&quot;&gt;really could be doing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This method hinges on a couple of things that are rather &#39;long tail&#39; if an &lt;a href=&quot;https://cloudbacon.com/posts/2012-12-16-Boredom-To-Getting-Something-Done/#&quot;&gt;Internet
consumption addiction&lt;/a&gt; has already taken root. The biggest and by far the hardest
is &lt;a href=&quot;http://www.amazon.com/The-Power-Habit-What-Business/dp/1400069289/ref=sr_1_1?ie=UTF8&amp;amp;qid=1355687216&amp;amp;sr=8-1&amp;amp;keywords=habits&quot;&gt;developing the habit&lt;/a&gt; to look back at your todo-list every time you find your
focus wavering. However, if mastered, the things that might get finally finished
will astonish everyone. Give it a whirl and &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;hit me up on twitter&lt;/a&gt; with the results!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>In The Pipe</title>
    <link href="https://cloudbacon.com/posts/2012-12-21-2012-In-The-Pipe/"/>
    <updated>2012-12-21T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-12-21-2012-In-The-Pipe/</id>
    <content type="html">&lt;p&gt;That&#39;s right bitches! We are done &lt;a href=&quot;https://gimmebar.com/view/5032f46faac422800200001a/big&quot;&gt;here&lt;/a&gt;. 2012 is all but a bunch of history,
something that we will remember in the &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;rear view mirror&lt;/a&gt;. On a side note,
I would hope that some of those plays are due to my incessant linking to it.
To be fair though, it is pretty fucking epic. Anyway, if you aren&#39;t listening
to a &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=metric+shit+ton&quot;&gt;metric-shit-ton&lt;/a&gt; of &lt;a href=&quot;http://rd.io/x/QVoeADMzpQ&quot;&gt;this&lt;/a&gt;, you hate &lt;a href=&quot;https://gimmebar.com/view/5045518529ca15f836000020/big&quot;&gt;this&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In addition, &lt;a href=&quot;http://youtu.be/4LJw6PAi5Q8&quot;&gt;hat tip&lt;/a&gt;, the metric system is &amp;quot;&lt;strong&gt;badass&lt;/strong&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;So what would a top ten of this year look like? Glad you asked. Without further
ado, keep it &lt;a href=&quot;https://gimmebar.com/view/504f465629ca15bb4b000000/big&quot;&gt;real&lt;/a&gt; for the rest of the year, be prepared for the 13, and
enjoy the list.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.apple.com/osx/whats-new/&quot;&gt;OSX&lt;/a&gt;: Yes, perhaps I am a self proclaimed Apple lover but, it is hard to
argue with the fit and finish of BSD, Linux, and Unix that Apple has accomplished
with their recent OS release. Kudos and if you have an issue with &amp;quot;planned
obsolescence&amp;quot;, feel free to &lt;a href=&quot;https://en.wikipedia.org/wiki/Microsoft_Surface&quot;&gt;buy one of these&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://robbwolf.com/what-is-the-paleo-diet/&quot;&gt;Paleo living&lt;/a&gt;: I have spent a good part of the year following a rigorous
Paleo diet and am convinced that we are brainwashed by bread and McDonalds.
I have never felt better, stronger, etc. The food might seem a little weird
(beef heart) but, it is well worth the experience/experiment.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gimmebar.com/view/50b6270eaac4228f36000009/big&quot;&gt;Quiting&lt;/a&gt;: Not something that everyone should look to do. However, if you
are feeling stuck, now, rather than later is the best time to quit. Do something
fresh, exciting, scary, whatever!&lt;/li&gt;
&lt;li&gt;Podcasts: This one seems to slip into every top 10 list since 2009, when I started
podcasting. If you yearn (in your pants yabbies) to learn, than it it hard not to glean
something from listening. Here are a few current ones from a &lt;a href=&quot;https://www.dropbox.com/s/ow7dlm20y6qbpba/Subscriptions-bPhone.opml&quot;&gt;recent Instacast dump&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rdio.com/&quot;&gt;Rdio&lt;/a&gt;: Hot on the list of audible items, Rdio and it&#39;s stylish design
wax the music nerd in me. Having a plethora of mp3s on my computer doesn&#39;t make
much sense when you can stream an unlimited amount of anything.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.apartmenttherapy.com/&quot;&gt;Apartment Therapy&lt;/a&gt;: My wife and myself recently moved into our first
apartment where we didn&#39;t share space with friends or a roommate. After living
for so long with people, you shed most of your unneeded belongings. This means
that we had a lot of shopping to do and much of it inspired from this blog.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.apple.com/imac/&quot;&gt;Apple&#39;s New iMac&lt;/a&gt;: Being a laptop man, I rarely look towards Apple&#39;s
desktop offerings. However, this has changed with their recent upgrade. I have
spent a few minutes with the 27inch model and the take away is: the Fusion drive
seems brilliant and overall the machine is a beast of power and beauty.&lt;/li&gt;
&lt;li&gt;Surgery. If you are an athlete and you are sitting on a past injury...and you
have health insurance, you are a moron. I have been nursing a failing shoulder for
nearly 10 years. This year I gave up and had surgery and I will never look back.&lt;/li&gt;
&lt;li&gt;Trivia: wading into the trivia waters can be a shark filled affair. There are
some players out there that are unbelievable with the knowledge they have access to
at the tip of their subconscious. I gave it a whirl and although, our team has yet
to become spectacular, we have learned a lot. Moral? Do something you suck at and
keep doing it even if you never get better.&lt;/li&gt;
&lt;li&gt;Javascript: Javascript was my &lt;a href=&quot;http://pragprog.com/book/tpp/the-pragmatic-programmer&quot;&gt;language of the year&lt;/a&gt;. In addition, I learned
Coffeescript, a little bit of Node, and a bunch of other random stuff. I am still
no where near as efficient in it as I am Ruby; however, there is a spot in my heart
for this unruly little functional language.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yep, that&#39;s all she wrote.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Tmux Powerline Pimping</title>
    <link href="https://cloudbacon.com/posts/2012-12-28-Tmux-Powerline-Pimping/"/>
    <updated>2012-12-28T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2012-12-28-Tmux-Powerline-Pimping/</id>
    <content type="html">&lt;p&gt;Alright folks if you don&#39;t use &lt;a href=&quot;http://pragprog.com/book/bhtmux/tmux&quot;&gt;Tmux&lt;/a&gt; you are pretty much doing it 100% wrong
and you won&#39;t get much out of this post. Also, I understand... or &amp;quot;&lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;hear&lt;/a&gt;&amp;quot; that
Screen is &lt;a href=&quot;https://gimmebar.com/view/50305c7729ca153546000001/big&quot;&gt;wicked awesome-tastic&lt;/a&gt;; however, &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=I+could+give+two+shits&quot;&gt;I couldn&#39;t&lt;/a&gt; care less.&lt;/p&gt;
&lt;p&gt;If for by some miracle, you do use Tmux, why aren&#39;t you using &lt;a href=&quot;https://github.com/erikw/tmux-powerline&quot;&gt;this&lt;/a&gt;? Sure,
it is a little colorful, and a bit noisy... but, yeah feel free to tell your
friends you found it, and you didn&#39;t hear it from me. Right, since most of the
segments are just bash scripts I have been searching for one that will show off
the current temp of the machine. What joy I must have been in when I found &lt;a href=&quot;https://coderwall.com/p/cmw1mq&quot;&gt;this
snippet from Coderwall&lt;/a&gt;. Although, it is wrong.&lt;/p&gt;
&lt;p&gt;Yeah, I was &lt;a href=&quot;https://gimmebar.com/view/504f465629ca15bb4b000000/big&quot;&gt;wicked surprised&lt;/a&gt; as well. Besides, does &amp;quot;Coderwall&amp;quot;
sound like a place where people go to circlejerk to anyone else... wait, is it?&lt;/p&gt;
&lt;p&gt;It appears that between that...&amp;quot;Coderwall&amp;quot; and now, Tmux-powerline has gone
through a rewrite and yielded the snippet useless. Since there is a &lt;a href=&quot;http://jsfiddle.net/&quot;&gt;real place
for these kinds of things&lt;/a&gt;, here is the &lt;a href=&quot;https://gist.github.com/4404483&quot;&gt;correct code in the form of a gist&lt;/a&gt;.
Place the code into a newly written file in the segments directory and name it
something smart(with a &lt;code&gt;.sh&lt;/code&gt; file extension). Then, run &lt;code&gt;chmod a+x filename&lt;/code&gt; to
make the script &lt;a href=&quot;https://gimmebar.com/view/50b6270eaac4228f36000009/big&quot;&gt;super executable&lt;/a&gt;. Finally, add it into your theme and&lt;/p&gt;
&lt;p&gt;BOOM!&lt;/p&gt;
&lt;p&gt;The only problem is smcFanControl in the menu bar and in Tmux both use the same
binary to read the temp. However, on my Macbook Air there is a 5-10 degree
differance between the two. Must be due to the fact that the temp is in &lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;Celcius&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Old Guard</title>
    <link href="https://cloudbacon.com/posts/2013-01-04-The-Old-Guard/"/>
    <updated>2013-01-04T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-01-04-The-Old-Guard/</id>
    <content type="html">&lt;p&gt;Do you happen to listen to these things called &lt;a href=&quot;https://en.wikipedia.org/wiki/Podcast&quot;&gt;smodcasts&lt;/a&gt;? If you don&#39;t,
than there is a good chance you missed &lt;a href=&quot;http://5by5.tv/webahead/45&quot;&gt;this episode of the Web Ahead&lt;/a&gt;.
&lt;a href=&quot;https://twitter.com/Malarkey&quot;&gt;Andy Clark&lt;/a&gt; had a solid rant concerning the Old VS New guard of the web.
Another person who feels relatively passionate towards this subject would be
&lt;a href=&quot;http://www.drewwilson.com/&quot;&gt;Drew Wilson&lt;/a&gt; who puts on &lt;a href=&quot;http://valiocon.com/&quot;&gt;Valio Con&lt;/a&gt;, which aims at bringing &amp;quot;young guns&amp;quot;
into the speaking spotlight.&lt;/p&gt;
&lt;p&gt;Does anyone remember when Coda and Textmate were new on the scene? When I see
people continuing to use these tools I make a concoious effort to interrupt their
&lt;a href=&quot;https://gimmebar.com/view/50730705aac422613b000001/big&quot;&gt;workflow&lt;/a&gt; and ask them what they are working on in &lt;a href=&quot;http://coffeescript.org/&quot;&gt;Coffeescript&lt;/a&gt;? Or
better yet: how they enjoy Compass? Sure this could be construed as a &amp;quot;dick&amp;quot;
approach however, you learn a lot about people while being said: dick. In 99%
of these mentioned interactions I am gifted with a face that expresses both
confusion and an utter sense of &lt;a href=&quot;https://gimmebar.com/view/50368ee329ca154c66000002/big&quot;&gt;discomfort&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you were to prod deeper into what these &amp;quot;Web Professionals&amp;quot; do, you realize
that whatever it is, it has no outside influence. They don&#39;t spend Saturdays
flipping through specs or reading other people&#39;s code on Github. Rather, they
go to work and do the same thing they did yesterday; only changing when a client
shows or better yet, demmands something new. This reactive form of learning
is what separrates the Old from the New.&lt;/p&gt;
&lt;p&gt;An example: &lt;a href=&quot;http://www.smashingmagazine.com/2012/12/22/talks-to-help-you-become-a-better-front-end-engineer-in-2013/&quot;&gt;Smashing Magazine wrote a recent article&lt;/a&gt; about how to do just
this: &amp;quot;stay up to date.&amp;quot;&lt;/p&gt;
&lt;p&gt;If you as a &amp;quot;Web Professional&amp;quot; think it is hard, than
yes, it is. Why? Well, the fact is that you have been resting on HTML and jQuery
for too damn long. It is time to wake the fuck up, smell the Coffeescript and
learn all the cool things that &#39;the kids are doing.&#39; Why? The simple answer is
that you have already coded yourself out of a job. If you want to keep learning,
that job will likely still be there. However, if you continue to be a curmudgeon
about the whole subject, than you just might be... Properly Fucked.&lt;/p&gt;
&lt;p&gt;With all good posts, this shall end with an epic list. The list will be broken
up by headlines describing the following projects. Find one that looks cool and
give it a whirl. Hate it? Drop and try something else.&lt;/p&gt;
&lt;p&gt;###Frameworks (HTML5)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://roots.cx/&quot;&gt;Roots.cx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://justspamjustin.github.com/junior/#home&quot;&gt;Junior&lt;/a&gt; (Mobile Focus)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://yeoman.io/&quot;&gt;Yeoman&lt;/a&gt; (Utility)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://gravityframework.com/&quot;&gt;Gravity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2013-01-04-The-Old-Guard/#&quot;&gt;Lungo&lt;/a&gt; (Mobile Focus)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://themefortress.com/reverie/&quot;&gt;Reverie&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;###CSS&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://compass-style.org/&quot;&gt;Compass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://learnboost.github.com/stylus/&quot;&gt;Stylus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lesscss.org/&quot;&gt;Less&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://sass-lang.com/&quot;&gt;SCSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://inuitcss.com/&quot;&gt;InuitCSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;Twitter Bootstrap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://foundation.zurb.com/&quot;&gt;Zurb Foundation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://goldengridsystem.com/&quot;&gt;Golden Grid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.getskeleton.com/&quot;&gt;Skeleton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2013-01-04-The-Old-Guard/#&quot;&gt;Gridless&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;###Javascript&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://backbonejs.org/&quot;&gt;Backbone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://emberjs.com/&quot;&gt;Ember&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://angularjs.org/&quot;&gt;Angular&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://spinejs.com/&quot;&gt;Spine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://knockoutjs.com/&quot;&gt;Knockout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://expressjs.com/&quot;&gt;Express&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lortabac.github.com/agni/&quot;&gt;Agni&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://batmanjs.org/&quot;&gt;Batman&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.sencha.com/&quot;&gt;Ext&lt;/a&gt; (Sencha)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Yes, I realized that I mixed frameworks and libraries together; however, I don&#39;t
care. Go forth (yes, spelled correctly) and learn!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Show Yourself Off</title>
    <link href="https://cloudbacon.com/posts/2013-01-22-Show-Yourself-Off/"/>
    <updated>2013-01-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-01-22-Show-Yourself-Off/</id>
    <content type="html">&lt;p&gt;Getting crazy ideas usually leads people down the road to a lot of fun, yet
potentially wasted amounts of time. This is how creativity is formed. And this
writer is no different. I happened to be bored one night and thought:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;how difficult is it for people to get a grasp on how &amp;quot;haphazardly good&amp;quot; a particular programmer might be.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Any company or recruiter could dig through the expanse of &lt;a href=&quot;https://github.com/braidn&quot;&gt;our Github&lt;/a&gt;
profiles but, we usually hoard so much weird stuff in there. In addition, they
are rife with forks that we never took the time to do anything with. If Github
doesn&#39;t accomplish their needs then do they move on to the developers blogs? Many of these
are digital wastelands, filled with confusing UI, large images of their console colors,
and articles from 2011. Shit, that&#39;s a bust as well.&lt;/p&gt;
&lt;p&gt;If we take all of the Front-Enders, the UX experts, and the general Web Designer,
these people have a collection of their work that they dub &amp;quot;a portfolio&amp;quot;. Since,
Github is too convoluted of a profile, how do we as developers build a portfolio
like product? My solution was to build an app that is inherently simple, however;
shows off what I could do within the framework/language.&lt;/p&gt;
&lt;p&gt;The result of my toils? &lt;a href=&quot;https://github.com/braidn/rails_presentation&quot;&gt;This&lt;/a&gt;. The application is a cross between Rails and
BackboneJs. Instead of using GIT as a log of items, I opted to throw mine into
a running &amp;quot;thought log&amp;quot; in the readme. The result isn&#39;t something that resembles a traditional
portfolio, yet it requires less code reading and easily shows off the way the
I breaks down problems during the build process. For the Prag Prog lovers out there,
this could not be considered a &amp;quot;toy app&amp;quot; due to the infrequency of updates that
it will accrue. In addition, mine will likely never see production.&lt;/p&gt;
&lt;p&gt;It is far from perfect; however, embodies a very clear function and process. Without further
ado... BOOM!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Make it Sexy Productive</title>
    <link href="https://cloudbacon.com/posts/2013-02-02-Make-It-Sexy-Productive/"/>
    <updated>2013-02-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-02-02-Make-It-Sexy-Productive/</id>
    <content type="html">&lt;p&gt;Before you blow your precious time on this post, feel free to listen to this
podcast &lt;strong&gt;AND&lt;/strong&gt; then come back and finish reading. Done? Ok, great. My takeaway
was that my &amp;quot;productive&amp;quot; life is filled with all kinds of tangents. Most, never
diverge back into anything. They remain un-attended appendages, dangling in my
mind until some unforseen force lops them off.&lt;/p&gt;
&lt;p&gt;Being the &lt;a href=&quot;https://gimmebar.com/view/50730705aac422613b000001/big&quot;&gt;tinkerer&lt;/a&gt; I am, I set out to rid myself of all the estraneous shit
that has plagued my &lt;a href=&quot;http://www.doitfuckingnow.com/&quot;&gt;GSD&lt;/a&gt; system for the past year.
In doing so, I ended up with three objects that will be an integral part of my
productivity strides in 2013. And without further ado, a &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;list&lt;/a&gt;:&lt;/p&gt;
&lt;h3&gt;IRL&lt;/h3&gt;
&lt;p&gt;For the &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=lamen+terms&quot;&gt;lamen&lt;/a&gt; in the room, IRL is broken down nicely &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=IRL&quot;&gt;here&lt;/a&gt;, especially
the second definition. Anywho, this by far is the category with the most stuff in
it. The most being two.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;http://fieldnotesbrand.com/shop/&quot;&gt;Field Notes&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;I have always struggled to fit Field Notes and the smaller
Moleskines into my life. They seem just small enough where I struggle to get
anything coherent into them. Moreover, there are little times where I raise pen to
paper and don&#39;t write an &lt;a href=&quot;http://www.amazon.com/s/ref=nb_sb_ss_i_1_10?url=search-alias%3Daps&amp;amp;field-keywords=mitchener&amp;amp;sprefix=bosch+icon%2Caps%2C162&quot;&gt;epic novella&lt;/a&gt;. By holding onto the fact that anything placed into
these little guys must be brilliant, I almost never actually write anything in them.
They just take up way too much space around the house and eventually, the wife
ends up throwing them out or using them to write down grocery lists.&lt;/p&gt;
&lt;p&gt;Where the thought of a grocery list in them used to revolt me, I have begun to use
them in the same fashion. They aren&#39;t a recepticle for the next Odyssey, they are
a utilitarian piece of paper. Once I got this wrapped around my head, their use
has become all the more apparent. I throw variables that I need to remember in there,
the three big things I need to do today, really whatever. At the end of the week,
when my review comes around I pull the current one out and flip through it, jotting
down anything that needs to be remembered. Very freeing, and with the Field Notes brand
going bannanas these days, it is easy to find a &lt;a href=&quot;http://fieldnotesbrand.com/shop/&quot;&gt;cedar recepticle&lt;/a&gt; to store your used ones in.&lt;/p&gt;
&lt;h4&gt;&lt;a href=&quot;http://www.creativesoutfitter.com/product/29/action-circa-notebook&quot;&gt;Levenger/Behance Circa Book&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This is a recent puchase that was more of a whim, than anything. Having never
subscribed to the action method, I had no idea what I was getting into. The draw was
that the book itself is refillable and dot paper is the shit. After using it for
a couple of weeks it has a place in my life that is more permanent than a Field Notes
book. I am more apt to use each page on a project by project base and link everything
together with a &lt;a href=&quot;http://www.fourhourworkweek.com/blog/2007/12/05/how-to-take-notes-like-an-alpha-geek-plus-my-2600-date-challenge/&quot;&gt;table of contents&lt;/a&gt;. There isn&#39;t as much feedom as with the
Field Notes, however this notebook doesn&#39;t tend to travel far from my workbench. In addition,
I enjoy the paper size and tend to doodle and draw in-between notes, where space
is at a premium with the Field Notes.&lt;/p&gt;
&lt;h4&gt;Digital&lt;/h4&gt;
&lt;p&gt;This one is easy: &lt;a href=&quot;https://www.omnigroup.com/products/omnifocus/&quot;&gt;Omnifocus&lt;/a&gt;. I spent a good amount of time in 2009 in an
attempt to fit Omnifocus into my workflow. The idea of GTD was simple however,
and this is something I can&#39;t comprehend now, Omnifocus just didn&#39;t gel. It was always
a struggle to get information into the program along with organizing it once it was there.
2 Years later in 2011 I was doing a small side project and it all clicked.&lt;/p&gt;
&lt;p&gt;Ever since, I have put my faith in Omnigroup both on the iPad and the iPhone.
Due to the high amount of content already available about this application, I am
going to keep things light and say that yes, it is complicated but, very much
worth it. Once you grep the overall workflow I doubt you will go back to a
&amp;quot;simpler&amp;quot; solution. Moreover, the Omnigroup has &lt;a href=&quot;http://www.omnigroup.com/blog/entry/debut-of-omnifocus-2&quot;&gt;recently announced&lt;/a&gt; Omnifocus 2
which means that they plan to align the Mac version with the much more updated &lt;a href=&quot;http://www.omnigroup.com/products/omnifocus-iphone/&quot;&gt;mobile
variants&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Fin&lt;/h3&gt;
&lt;p&gt;These three arms have kept my mind free to creativly think about upcoming projects
as well as keep everything considered &amp;quot;current,&amp;quot; on track. Things will probably change, they always do,
rest assured, I might write about it.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Excel Will Eat Your Heart</title>
    <link href="https://cloudbacon.com/posts/2013-02-10-Excel-Will-Eat-Your-Heart/"/>
    <updated>2013-02-10T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-02-10-Excel-Will-Eat-Your-Heart/</id>
    <content type="html">&lt;p&gt;In 2012, &lt;a href=&quot;http://baselinescenario.com/2013/02/09/the-importance-of-excel/#&quot;&gt;this&lt;/a&gt; should be a surprise to everyone. The sad part? It isn&#39;t.
Moreover, if you want to appear as as an absolute nutter, call Excel a &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is a quote for your book:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Excel is to Business Evolution as &lt;a href=&quot;http://youtu.be/d__cHglvOM0&quot;&gt;automatic flushing&lt;/a&gt; toilets is to Human Evolution.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You are welcome&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Feelings Concerning PHP</title>
    <link href="https://cloudbacon.com/posts/2013-02-26-Feelings-On-PHP/"/>
    <updated>2013-02-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-02-26-Feelings-On-PHP/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;I can’t even say what’s wrong with PHP, because— okay. Imagine you have uh, a toolbox. A set of tools. Looks okay, standard stuff in there.
You pull out a screwdriver, and you see it’s one of those weird tri-headed things. Okay, well, that’s not very useful to you, but you guess it comes in handy sometimes.
You pull out the hammer, but to your dismay, it has the claw part on both sides. Still serviceable though, I mean, you can hit nails with the middle of the head holding it sideways.
You pull out the pliers, but they don’t have those serrated surfaces; it’s flat and smooth. That’s less useful, but it still turns bolts well enough, so whatever.
And on you go. Everything in the box is kind of weird and quirky, but maybe not enough to make it completely worthless. And there’s no clear problem with the set as a whole; it still has all the tools.
Now imagine you meet millions of carpenters using this toolbox who tell you “well hey what’s the problem with these tools? They’re all I’ve ever used and they work fine!” And the carpenters show you the houses they’ve built, where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards and they all yell at you for breaking their door.
That’s what’s wrong with PHP.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, &lt;a href=&quot;http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/&quot;&gt;I could not have said it better&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Gold</title>
    <link href="https://cloudbacon.com/posts/2013-02-27-Pron-Collections/"/>
    <updated>2013-02-27T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-02-27-Pron-Collections/</id>
    <content type="html">&lt;p&gt;Pure &lt;a href=&quot;http://www.huffingtonpost.com/2013/02/26/earlie-johnsons-stolen-porn_n_2766196.html&quot;&gt;fucking gold&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Rails Custom Code</title>
    <link href="https://cloudbacon.com/posts/2013-03-07-Custom-Code/"/>
    <updated>2013-03-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-03-07-Custom-Code/</id>
    <content type="html">&lt;p&gt;It happens to be Thursday which, unbeknownst to me, is &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;highly speculative&lt;/a&gt;. In addition, I received some feedback on &amp;quot;something&amp;quot; this week that made me chuckle. Being a fairly normal developer, the moment chuckling gets in the mix, I head strait to Github for a venting session. Feel free to &lt;a href=&quot;https://gist.github.com/braidn/5114104&quot;&gt;take these two files of code&lt;/a&gt; for example.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://gist.github.com/braidn/5114104#file-completely_fucking_custom_controller-rb&quot;&gt;first controller&lt;/a&gt; in the gist is something that I wrote from the ground up. Every instance variable, hand crafted and exuding an amount of &lt;a href=&quot;https://gimmebar.com/view/503258b5aac422d76f000036/big&quot;&gt;love and care&lt;/a&gt; that is frankly, so fucking &amp;quot;pornograpic&amp;quot; in nature you might get fired if you glance upon it.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://gist.github.com/braidn/5114104#file-not_fucking_customs_controller-rb&quot;&gt;second controller&lt;/a&gt; is an absolute pile of generated trash. That&#39;s right! Rails and its&#39; handy dandy generators made that one and talk about &lt;a href=&quot;http://youtu.be/-JFfN5pKzFU&quot;&gt;code smells&lt;/a&gt;. Phew, that shits worse than &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;Whales&lt;/a&gt;, which is apparently a &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=shithole&quot;&gt;shithole&lt;/a&gt;, akin only to Jersey.&lt;/p&gt;
&lt;p&gt;For all new, old, aspiring, and even pining Rubyists out there: You suck unless you ashew provided tools and waste your time creating a simple but, &amp;quot;custom&amp;quot; controller. Yep, be &amp;quot;custom&amp;quot; over being effective.&lt;/p&gt;
&lt;p&gt;You are welcome.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>New Notes</title>
    <link href="https://cloudbacon.com/posts/2013-03-25-Field-Notes-Love/"/>
    <updated>2013-03-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-03-25-Field-Notes-Love/</id>
    <content type="html">&lt;p&gt;Ok, so I thought I wrote something about my current paper/digital notes workflow
but, damned if I can find it. So let this be it! Anywho, I have been bitten by
the &lt;a href=&quot;http://fieldnotesbrand.com/&quot;&gt;FieldNotes&lt;/a&gt; bug. These have replaced all paper notebooks and driven most
of my &amp;quot;programmer notes&amp;quot; where they belong: on a &lt;a href=&quot;https://github.com/gollum/gollum&quot;&gt;wiki&lt;/a&gt;. &lt;a href=&quot;http://mlkshk.com/r/PHVT&quot;&gt;Here are a few of my new
editions&lt;/a&gt; that I recently found. This might become &lt;a href=&quot;http://www.wizards.com/Magic/TCG/Default.aspx&quot;&gt;a problem&lt;/a&gt; / does anyone
have a sealed or unsealed &lt;a href=&quot;http://fieldnotesbrand.com/northerly/&quot;&gt;Northerly Version&lt;/a&gt; they want to get rid of?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Convention VS Configuration</title>
    <link href="https://cloudbacon.com/posts/2013-04-20-Convention-V-Configuration/"/>
    <updated>2013-04-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-04-20-Convention-V-Configuration/</id>
    <content type="html">&lt;p&gt;Convention VS Configuration is a big deal in the Rails Community. So large in fact,
some might say it dictates the entirety of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Ruby_on_Rails&quot;&gt;framework&lt;/a&gt;.
This is a classic example of what the term &amp;quot;Convention VS Configuration&amp;quot; or
&amp;quot;Convention over Configuration&amp;quot; stands for:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://coderwall.com/p/oqtj8w&quot;&gt;The single most useful thing in bash&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I am always up for a good bit of trolling but, this &amp;quot;Coderwall&amp;quot; seems to really
be behind the statement (goes on to explain what the command is doing). Why not
just use &lt;a href=&quot;http://ridiculousfish.com/shell/&quot;&gt;fish&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;As a quick aside, anyone who uses the term &#39;&lt;a href=&quot;http://www.linkedin.com/in/juderobinson&quot;&gt;poodling&lt;/a&gt;&#39; on their &#39;resume&#39; is ok
in my book!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Don&#39;t Be ...</title>
    <link href="https://cloudbacon.com/posts/2013-04-29-Dont-Be-Awesome/"/>
    <updated>2013-04-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-04-29-Dont-Be-Awesome/</id>
    <content type="html">&lt;p&gt;A men&lt;/p&gt;
&lt;script async=&quot;&quot; class=&quot;speakerdeck-embed&quot; data-slide=&quot;68&quot; data-id=&quot;d3f56f007adf01307e7722000a9f0395&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;https://speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>Microsoft + Education + Phishing =</title>
    <link href="https://cloudbacon.com/posts/2013-05-02-Fishing-In-A-Pool-Of-Morons/"/>
    <updated>2013-05-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-05-02-Fishing-In-A-Pool-Of-Morons/</id>
    <content type="html">&lt;p&gt;Just stumbled over &lt;a href=&quot;http://blogs.msdn.com/b/alfredth/archive/2011/03/22/object-oriented-programming-is-dead.aspx&quot;&gt;this&lt;/a&gt; amazeballs piece of &lt;a href=&quot;http://i.imgur.com/pd36g9f.jpg&quot;&gt;phishing&lt;/a&gt;. Although if you want to actually
read the article, use &lt;a href=&quot;http://www.instapaper.com/text?u=http://blogs.msdn.com/b/alfredth/archive/2011/03/22/object-oriented-programming-is-dead.aspx&quot;&gt;this version&lt;/a&gt;. It is actually sad how out of touch CS academia is. Please raise
your hand if you spend more than 60% of your day writing functions in a purely functional language? If your
hand is up and you are counting Javascript, use your other hand &lt;a href=&quot;https://en.wikipedia.org/wiki/Prototype-based_programming&quot;&gt;to punch yourself in the balls&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Triad Startups Launched</title>
    <link href="https://cloudbacon.com/posts/2013-05-21-triad-startups-launched/"/>
    <updated>2013-05-21T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-05-21-triad-startups-launched/</id>
    <content type="html">&lt;p&gt;For a couple of months… err maybe longer, I have been working, slowly on the launch of &lt;a href=&quot;http://triadstartups.com/&quot;&gt;Triad Startups&lt;/a&gt;. Sir, well I am not entirely sure if he is officially knighted, &lt;a href=&quot;http://twitter.com/_davidhorne_&quot;&gt;David Horne&lt;/a&gt; and myself have been attempting to &amp;quot;co-join&amp;quot; all startups hanging out in the &lt;a href=&quot;https://en.wikipedia.org/wiki/Piedmont_Triad&quot;&gt;Triad region of NC&lt;/a&gt;. And we have &lt;a href=&quot;http://triadstartups.com/&quot;&gt;done it&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;At the moment there isn&#39;t too much going on over there. However, if you are a local and/or would like to stay in the know, &lt;a href=&quot;http://triadstartups.com/&quot;&gt;sign up for the newsletter&lt;/a&gt;. We will be sending out a handcrafted email every month that will inform and excite you about everything &amp;quot;start-uppery&amp;quot; going on in our Triad. If you have some skills that you want to share and you would like to pitch in a helping hand with design/development we would completely &lt;a href=&quot;https://github.com/braidn/t_startups&quot;&gt;enjoy it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For all the haters out there, sipping on all their haterade, &lt;a href=&quot;http://yahoo.tumblr.com/&quot;&gt;fuck yeah&lt;/a&gt;. I &lt;strong&gt;can&lt;/strong&gt; launch something.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Single Most Useful Thing</title>
    <link href="https://cloudbacon.com/posts/2013-06-14-the-best-part-of/"/>
    <updated>2013-06-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-06-14-the-best-part-of/</id>
    <content type="html">&lt;p&gt;For anyone who takes the time to follow this blog (and you should) and/or my &lt;a href=&quot;http://twitter.com/braidn&quot;&gt;Twitter feed&lt;/a&gt;, you know that I have been &amp;quot;up-in-arms&amp;quot; over this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://coderwall.com/p/oqtj8w&quot;&gt;&#39;The single most useful thing in bash&#39;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Regardless of how this... paint-splooge, or whatever the noun is for posting on Coderwall makes you feel, here is a response for people &lt;a href=&quot;http://cloudbacon.com/2011/12/19/People-Can-Not-Read&quot;&gt;who can&#39;t read&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://bc5e368a8867af61c3ed-e931c6f21220c188f04654bd7a220e82.r14.cf2.rackcdn.com/whereIam.png&quot; alt=&quot;i started&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://bc5e368a8867af61c3ed-e931c6f21220c188f04654bd7a220e82.r14.cf2.rackcdn.com/whatItype.png&quot; alt=&quot;i typed that&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://bc5e368a8867af61c3ed-e931c6f21220c188f04654bd7a220e82.r14.cf2.rackcdn.com/whatItBecomes.png&quot; alt=&quot;i slipped and hit a, then tab&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://bc5e368a8867af61c3ed-e931c6f21220c188f04654bd7a220e82.r14.cf2.rackcdn.com/whereIwent.png&quot; alt=&quot;where i went&quot; /&gt;&lt;/p&gt;
&lt;p&gt;All of this for free? And not in Bash? WTF? I must be drunk because Seashell 7.5.11 gives me this for free.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Of Startups and Glue</title>
    <link href="https://cloudbacon.com/posts/2013-07-11-on-startups-and-glue/"/>
    <updated>2013-07-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-07-11-on-startups-and-glue/</id>
    <content type="html">&lt;p&gt;If there was just one third party app that I was allowed to install on
any computer, it would be, without a doubt: &lt;a href=&quot;http://www.alfredapp.com/&quot;&gt;this&lt;/a&gt;. It isn&#39;t particularly sexy,
nor cheap, not even easy to use but, what it does have is glue. Alfred, for one
price, for one app and for one learning curve will glue all of the disparate
parts of your &lt;a href=&quot;http://mac.appstorm.net/general/weekly-poll/weekly-poll-how-do-you-pronounce-mac-os-x/&quot;&gt;Mac OS X&lt;/a&gt; (that poll is filled with wrong) into one, quick to
fire, application.&lt;/p&gt;
&lt;p&gt;This isn&#39;t particularly interesting, nor is it all that new on the &lt;a href=&quot;http://gph.is/12bePRT&quot;&gt;know-thy-shit&lt;/a&gt;
scale-o-meter. However, for some reason this concept of &amp;quot;glue&amp;quot; is still a mystery
in the world of startups. Let&#39;s start this part of the &amp;quot;conversation&amp;quot; off with
a simple question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What is a startup?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let&#39;s ask &lt;a href=&quot;https://en.wikipedia.org/wiki/Paul_Graham_(computer_programmer)&quot;&gt;Paul Graham&lt;/a&gt;. I am fairly sure he knows a thing or two &lt;a href=&quot;http://paulgraham.com/growth.html&quot;&gt;about the
subject&lt;/a&gt;. Repeatedly, Paul &lt;a href=&quot;http://kottke.org/12/09/a-startup-is-a-company-designed-to-grow-fast&quot;&gt;cites&lt;/a&gt; a startup as a &amp;quot;fast or rapid growing company&amp;quot;.
Ok, well that was easy. Just build a company that can quickly accelerate itself
to scale and boom! Startup born...or sort of.&lt;/p&gt;
&lt;p&gt;I like velocity as a better measurement over speed. Velocity includes direction,
which tends to be a good thing for a startup. How rapid does a startup need to
iterate and build to achieve optimal velocity in hopes of a margin of success?
This question is hopelessly difficult to answer and in a roundabout way, we will look
at some things that one should do to potentially succeed.&lt;/p&gt;
&lt;p&gt;This is where the &lt;a href=&quot;http://gph.is/14kwio&quot;&gt;glue comes in&lt;/a&gt;. If two businesses need to build an identical feature and
business1 implements an existing, mostly free API and takes 30 minutes vs business2
who implement their own solution, who wins? Perhaps business2 wants to control their own
&#39;stuff&#39; or were just naive to the fact that the API exists. Regardless, they wind
up blowing 3-4 hours of development time between two different developers. In addition
they create a considerable amount of technical debt through little documentation
and poorly architected &amp;quot;home grown ideas&amp;quot;.&lt;/p&gt;
&lt;p&gt;Which business in the above scenario &lt;a href=&quot;http://gph.is/VxnVpe&quot;&gt;falls&lt;/a&gt; more inline with Paul&#39;s &amp;quot;fast or rapid
growing company&amp;quot;? What happens then if business2 continues to think and implemnet
features in the same fashion? Business1 is solving real problems that pertain
to their business, while business2 is continuing to spin its wheels building
things that are currently, vastly-better designed. Where is the velocity or glue
in that?&lt;/p&gt;
&lt;p&gt;The web is absolutely busting at the seams with all of these little services
and APIs. What is holding you back from creating a viable buisness with
&lt;a href=&quot;http://www.flickr.com/services/api/&quot;&gt;Flickr&lt;/a&gt; and &lt;a href=&quot;http://www.twilio.com/docs/api/rest&quot;&gt;Twilio&lt;/a&gt;? Just like mashups seem to be dominating the music
world, we will begin to see smarter and smarter people building successful business
using different services from around the web. Moreover, those folks who continue to ignore
them will become less and less reliable and relevant.&lt;/p&gt;
&lt;p&gt;If you were an investor or perhaps just a bystander, which business described
above would you put your money in? The one that understands the value of building
fast and smart or the one that plods along and plays it safe? My bet is on the
former but, then again I do tend to pronounce it &amp;quot;OS Ten&amp;quot; (click on the links).&lt;/p&gt;
&lt;p&gt;Have a reaction? Reach out to me on &lt;a href=&quot;http://www.twitter.com/braidn&quot;&gt;Twitter&lt;/a&gt; and lets have a discussion.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Knowing Where You Suck</title>
    <link href="https://cloudbacon.com/posts/2013-07-14-concerning-suckage/"/>
    <updated>2013-07-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-07-14-concerning-suckage/</id>
    <content type="html">&lt;p&gt;Having just gotten off the &amp;quot;Skype-phone&amp;quot; with a fairly laid-back interviewer, I realized I get jittery in interviews.
By jittery, I don&#39;t mean I start to sweat profusely and mumble like a beaten school child but, more along
the lines of: deer in headlights. And the kicker? The question wasn&#39;t all that hard, perhaps even a &amp;quot;&lt;a href=&quot;http://gph.is/13mVrQo&quot;&gt;soft ball&lt;/a&gt;&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What is new in Rails 4?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I could of said: Dali cache digest, Russian doll caching, pSQL arrays, turbolinks, or PATCH but, NO!
All that could eke out of my mouth was &amp;quot;Parameters in the Controller vs the Model&amp;quot;. Which &lt;a href=&quot;http://gph.is/17ACno9&quot;&gt;doesn&#39;t even make
a lot of sense&lt;/a&gt;. So as the folks at Thoughbot say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;you need to know your weaknesses&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;mine happens to be headlights...&lt;/p&gt;
&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/rGJ0fJN10YY&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  
  <entry>
    <title>Writing Better Specs</title>
    <link href="https://cloudbacon.com/posts/2013-08-06-Writing-Better-Features-Series/"/>
    <updated>2013-08-06T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-08-06-Writing-Better-Features-Series/</id>
    <content type="html">&lt;p&gt;Having had the pleasure to get back into Ruby and subsequently the &amp;quot;Rails Stack&amp;quot;,
I am now writing a lot more tests. For many people this tends to be a bad thing
but, I find it one of the best ways to write any type of software. In addition,
you sometimes need to explain to a designer why a specific interaction needs to
occur. These guys/gals usually have a &amp;quot;cool story bro&amp;quot; mentality about them and since they
are often awash with color palettes, they sometimes &amp;quot;gloss&amp;quot; over specifics.&lt;/p&gt;
&lt;p&gt;This will be a series of &lt;a href=&quot;http://guides.rubyonrails.org/testing.html&quot;&gt;features&lt;/a&gt; that are used to explain interactions in
my current work. Ready? Set-GO!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Say I am like: oh, crap, I forgot my oldest kid. Mostly because they are rambunctious and
spend a lot of money but, mainly because they were a mistake. Regardless, I sign back
into the application to add him but, because I am on my 4th Ardbeg Old Fashion of the
night (the kids drove me to this) I am all shaky and mistype my password.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I call it starry, forgotten night.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Staging Your Personal SS</title>
    <link href="https://cloudbacon.com/posts/2013-11-20-Your-Own-Personal-Shit-Show/"/>
    <updated>2013-11-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-11-20-Your-Own-Personal-Shit-Show/</id>
    <content type="html">&lt;p&gt;So much has happened since August and now. It is so actually incomprehensible
that I will leave my readership, what&#39;s left of it to only wonder. Perhaps the
absence has actually ran all the readers, who in fact can&#39;t read off and some
qualtity ones have returned. Alas, it is doubtful since the state of boredom
in America is &lt;a href=&quot;http://m.us.wsj.com/articles/SB10001424052702304243904579200142398477748&quot;&gt;staggering these days&lt;/a&gt;. Yep, we are so tired of stairing at our iPads we have resorted
to writing articles on chewing food. Sorry if the following doesn&#39;t trump that.&lt;/p&gt;
&lt;p&gt;Recently I have been thinking considerably about the need, and use of staging
branches. No, not servers, just the branches. Often times mine is in a state
of &lt;code&gt;reset --hard&lt;/code&gt; disaray. The reflog reflects the final 100 pages in Umberto&#39;s
freebasing masterpiece &lt;a href=&quot;http://www.amazon.com/The-Island-Day-Before-Umberto/dp/0156030373/ref=sr_1_14?ie=UTF8&amp;amp;qid=1385003384&amp;amp;sr=8-14&amp;amp;keywords=umberto+eco&quot;&gt;The Island Of The Day Before&lt;/a&gt; (there is a good reason
why the audio cassette can be picked up for 1 cent). To top it all off? This
branch rarely-if-ever gets synced with GitHub.&lt;/p&gt;
&lt;p&gt;This is where many purest string me up and make finely cured meat out of me.
Moreover, myself 1-2 years ago would have been right with them. However, now I simply
see no point in it. Staging is as tumultuous as this &lt;a href=&quot;https://cloudbacon.com/posts/2013-11-20-Your-Own-Personal-Shit-Show/#&quot;&gt;video&lt;/a&gt; or at best, the way
&lt;a href=&quot;http://www.quotationspage.com/quote/722.html&quot;&gt;Douglass Adams describes the meaning of &#39;life&#39;&lt;/a&gt;. Staging, an active staging, is in
constant flux, never complete, always on the move. Due to all of this, keeping it
in sync seems like a foolish persuit. Maybe I am missing something? If so shoot me
a message &lt;a href=&quot;http://www.twitter.com/braidn&quot;&gt;on Twitter&lt;/a&gt; and make sure it is full of witty expletives.&lt;/p&gt;
&lt;p&gt;Also on a much bigger note, watch out for other, somewhat better written (I think
there might even be editors involved) articles over at &lt;a href=&quot;http://dynalog.tumblr.com/&quot;&gt;Dynamo&#39;s new bluurrrg&lt;/a&gt;.
It&#39;s guarenteed to be &lt;a href=&quot;https://gimmebar.com/view/502bb36faac4221844000002/big&quot;&gt;600%&lt;/a&gt; better than this has ever been... Even when
this place was owned by the Swedish Anti-Powerpoint party.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gimmebar.com/view/528bbed3aac422ce02000015/big&quot;&gt;Be safe, be seen&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Dreaming In The</title>
    <link href="https://cloudbacon.com/posts/2013-12-29-Dream-Clients-For-2014/"/>
    <updated>2013-12-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2013-12-29-Dream-Clients-For-2014/</id>
    <content type="html">&lt;p&gt;When you work in ecommerce, especially for a company that focuses on producing great ecommerce experiences, you &lt;em&gt;dream&lt;/em&gt; of working with certain clients. Perhaps they offer items that you are emotionally attached to, or it&#39;s their corporate outlook towards their brand, or perhaps they directly influenced your childhood. Regardless, you constantly critique what they currently offer and pine to open up the web inspector in an attempt to improve your experience. You hyopthesize changes to their checkout flow or even write better and more convincing abandoned cart emails.&lt;/p&gt;
&lt;p&gt;For me in 2014, this &amp;quot;dream client&amp;quot; would be &lt;a href=&quot;http://www.filson.com/&quot;&gt;Filson&lt;/a&gt;. Sure I grew up in L.L.Bean&#39;s back door but, Filson&#39;s collection built from tin cloth, wool, and leather materials in combination with their old school, rustic charm make it one of the finest outdoor clothing manufactures. Here&#39;s to hoping.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Pencils, Like Panthers</title>
    <link href="https://cloudbacon.com/posts/2014-01-02-Where-Your-Pencil-At/"/>
    <updated>2014-01-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-01-02-Where-Your-Pencil-At/</id>
    <content type="html">&lt;p&gt;Pencils are the panthers of the creative world (that&#39;s right, I said it). They silently lay there until something brilliant passes by. They are often overlooked for their ink staining brethren and even subject to extreme prejudice through insane feats of &amp;quot;&lt;a href=&quot;http://www.pencilrevolution.com/2005/12/russian-space-pen/&quot;&gt;over-engineering&lt;/a&gt;.&amp;quot; However any &lt;a href=&quot;https://en.wikipedia.org/wiki/Walter_White_(Breaking_Bad)&quot;&gt;sane man&lt;/a&gt; would agree, that the pencil is one of the most most interesting avenues to pull the scribbles of creativity from your brain to paper. I have even &lt;a href=&quot;http://cloudbacon.com/2012/08/29/A-Programmers-Journal&quot;&gt;mentioned them several times&lt;/a&gt; here on this blrrg.&lt;/p&gt;
&lt;p&gt;The problem inherent in pencils is that there are two damn many of them leading to a complete &lt;a href=&quot;http://www.jetpens.com/Pencils/ct/1319&quot;&gt;paralysis of choice&lt;/a&gt;. Do you pick up a simple number 2 wooden pencil, attempt to find an original Blackwing, or go fore a more complicated drafting pencil? After quite an exhaustive search for the perfect one, I have found myself with these three.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2014-01-02-Where-Your-Pencil-At/#&quot;&gt;Furst 2.0MM Clutch Drafting Pencil&lt;/a&gt;: This is hands down my favorite pencil and deserving of the first place on this list. It is well crafted, sturdy and can be disassembled, cleaned and reassembled with ease. Being a smaller pencil (half size) this isn&#39;t a pencil for someone who has &amp;quot;manly hands.&amp;quot; However, paired with a &lt;a href=&quot;http://www.jetpens.com/Uni-Lead-Holder-Refill-2-mm-B-Pack-of-6/pd/1577&quot;&gt;good B lead&lt;/a&gt;, the results are impossible to get from any other pencil. With it&#39;s weighted feel and smooth clutch action, this pencil is well worth the 10 dollars.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pentel.com/store/sharp-kerry-mechanical-pencil&quot;&gt;.5 mm Pentel Kerry&lt;/a&gt;: The Kerry was and is likely to ever be one of the most expensive pencils that I have ever purchased. However, it is often times difficult to find a mechanical pencil that doesn&#39;t consistently stab the user while being toted around in their pocket. This pencil, paired with it&#39;s great weight distribution and capped design, makes it the pencil that I carry with me whenever I leave the house. Since it also takes standard, .5 mm lead, the barrel can hold a good amount of the tiny slivers meaning that it is unlikely you will be left high and dry anytime soon.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://fieldnotesbrand.com/shop/&quot;&gt;Field Notes Pencil&lt;/a&gt;: With my love for Field Notes, it should be  somewhat of a surprise that it took me as long as it did to warm up to these. Especially since, everyone gets one when they purchase a pack directly from Field Notes. These tend to compliment the mechanical Furst. When I need a whiff of real wood and the size of a real pencil, there is one of these within reach at all times.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Remember: every good engineer has an unequivocal, perhaps even irrational love of their favorite pencil.&lt;/p&gt;
&lt;p&gt;Oh, and &lt;a href=&quot;https://gimmebar.com/view/528bbed3aac422ce02000015/big&quot;&gt;happy fucking 2014, hugs for everyone&lt;/a&gt;. Do us a favour and update your copywright footers.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Reading Isn&#39;t A Laughing</title>
    <link href="https://cloudbacon.com/posts/2014-01-05-opologies-and-such/"/>
    <updated>2014-01-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-01-05-opologies-and-such/</id>
    <content type="html">&lt;p&gt;I have often felt bad about the fact that &lt;a href=&quot;https://gimmebar.com/view/528bbed3aac422ce02000015/big&quot;&gt;this blrrg&lt;/a&gt; &lt;a href=&quot;http://cloudbacon.com/2011/12/19/People-Can-Not-Read&quot;&gt;highlights&lt;/a&gt; the shortcommings of many of its&#39; &lt;a href=&quot;https://gimmebar.com/view/50340ae129ca15593d000005/big&quot;&gt;own readers&lt;/a&gt;. Manily that most of them are illiterate. To clarify and clear the air, I believe many of these people dont know how to read vs can&#39;t read. Making jokes about people who can&#39;t read is rather bougie and &lt;a href=&quot;https://gimmebar.com/view/528bbed3aac422ce02000015/big&quot;&gt;this blrrg&lt;/a&gt; will have none of that.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Keys To Being Awesome</title>
    <link href="https://cloudbacon.com/posts/2014-01-06-keys-to-being-a-great-dev/"/>
    <updated>2014-01-06T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-01-06-keys-to-being-a-great-dev/</id>
    <content type="html">&lt;p&gt;Rarely has there been anything worth a reblrrg around here in quite a while. However, this morning I stumbled across &lt;a href=&quot;https://the-pastry-box-project.net/ed-finkler/2014-january-6&quot;&gt;this brilliant&lt;/a&gt; article outlining several avenues on &amp;quot;how to be great&amp;quot;. If you value humility, even a little bit, this article is priceless.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://the-pastry-box-project.net/ed-finkler/2014-january-6&quot;&gt;How To Be A Great Developer from&lt;/a&gt; &lt;a href=&quot;https://the-pastry-box-project.net/philosophy&quot;&gt;the pastry-box-project&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Long Troll</title>
    <link href="https://cloudbacon.com/posts/2014-02-22-the-long-troll/"/>
    <updated>2014-02-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-02-22-the-long-troll/</id>
    <content type="html">&lt;p&gt;One off Interent trolling isn&#39;t anything new, nor is it something that could be construed as hard. Someone jumps into a conversation, drops a bombshell and walks away. They never have to feel the consequenses or even play a second hand. They are in and out.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;long troll&lt;/em&gt; is where someone enters the conversation, slightly alters the direction and then continues to repeat the cycle. &lt;a href=&quot;https://twitter.com/LocalHouseBar/status/437286354196508672&quot;&gt;Perhaps the original recipient intended something to be both informative and marketable&lt;/a&gt;. However, your mind warped their intentions into something that was not only extremely giggleable but, something that you can continue to giggle at.&lt;/p&gt;
&lt;p&gt;The best part about long trolling is the likelyhood that both parties win. The original person doesn&#39;t feel slighted, in fact, they often feel overwhelmed that someone on the Internet is talking directly to them. Moreover, the trolling party get&#39;s their giggles and remains the smug human they think they are. Just remember, long trolls are your friends, and quick trolls or &amp;quot;trolls&amp;quot; are just dicks.&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;en&quot;&gt;&lt;p&gt;Who wants to go to the nC Rv Show? &lt;a href=&quot;https://twitter.com/search?q=%23nc&amp;amp;src=hash&quot;&gt;#nc&lt;/a&gt;&lt;/p&gt;&amp;mdash; Braden Douglass (@braidn) &lt;a href=&quot;https://twitter.com/braidn/statuses/437002168478875648&quot;&gt;February 21, 2014&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>AppSignal And Cloud66 Deploys</title>
    <link href="https://cloudbacon.com/posts/2014-04-14-appsignal-deploy-notifications-cloud66/"/>
    <updated>2014-04-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-04-14-appsignal-deploy-notifications-cloud66/</id>
    <content type="html">&lt;p&gt;Peter Berkenbosch wrote an &lt;a href=&quot;http://peterberkenbosch.nl/appsignal-deploy-notification-with-cloud66-deploy-hook/&quot;&gt;interesting piece&lt;/a&gt; on how to notify &lt;a href=&quot;https://appsignal.com/&quot;&gt;AppSignal&lt;/a&gt; that your code has had a successful deploy from &lt;a href=&quot;https://www.cloud66.com/&quot;&gt;Cloud66&lt;/a&gt;. This is a somewhat understated need by the folks at AppSignal. Errors from a deployed application are actually tallied up for each deploy. Meaning if never notified of different or subsequent deploys, AppSignal will shelve everything under 1 deploy. UI wise this is a bit of a shit show.&lt;/p&gt;
&lt;p&gt;While Peter’s shell command is nice, it’s a bit verbose and I have had some issues accessing &lt;code&gt;HEAD&lt;/code&gt; while in the deploy directory. That’s why I built this script:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/braidn/10652341.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;While it’s a little long (much longer that &lt;a href=&quot;http://programmers.stackexchange.com/questions/148677/why-is-80-characters-the-standard-limit-for-code-width&quot;&gt;80c&lt;/a&gt;), it uses Git log which we have easy access to in any Git repo. In no way am I saying that this script trumps Peters; it just happens to be different. Marry this to the &lt;code&gt;deploy_hooks.yml&lt;/code&gt; example in Peter’s post and you will be quickly alerting AppSignal every time there is a deploy.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gimmebar.com/view/502ea8eaaac4223116000014/big&quot;&gt;Magik&lt;/a&gt;!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Returns And Deploying Bower/Rails Things</title>
    <link href="https://cloudbacon.com/posts/2014-06-08-did-you-miss-me/"/>
    <updated>2014-06-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-06-08-did-you-miss-me/</id>
    <content type="html">&lt;p&gt;Recently things have been fairly spartan around here. This isn’t your fault as an &lt;a href=&quot;http://cloudbacon.com/2011/12/19/People-Can-Not-Read&quot;&gt;avid reader&lt;/a&gt; but, more of time spent upping my skills at what can now only be dubbed &lt;a href=&quot;https://cloudbacon.com/posts/2014-06-08-did-you-miss-me/#&quot;&gt;‘computer writing’&lt;/a&gt;. Also buying a home, moving, visiting friends and generally being as normal of a person as possible in my shoes might have a little to do with the absence.&lt;/p&gt;
&lt;p&gt;Regardless of all that hoopla, there are tentative plans to do a 350 word, 30 day writing sprint coming up soon. All these pro-ported items will be collected right here (&lt;a href=&quot;https://gimmebar.com/view/50730705aac422613b000001/big&quot;&gt;don’t fret&lt;/a&gt;). However, here’s a &lt;a href=&quot;http://blog.godynamo.com/&quot;&gt;post that I wrote for people who maybe having a hell-of-a time&lt;/a&gt; getting their &lt;a href=&quot;http://bower.io/&quot;&gt;Bower&lt;/a&gt;-backed Rails applications deployed on &lt;a href=&quot;https://www.cloud66.com/&quot;&gt;Cloud66&lt;/a&gt;. While you are there, I highly recommend reading the other posts… because they are written by folks much smarter than this guy.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Photography</title>
    <link href="https://cloudbacon.com/posts/2014-06-29-on-slowing-down/"/>
    <updated>2014-06-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-06-29-on-slowing-down/</id>
    <content type="html">&lt;p&gt;At one time or another, there was an attempt in my life to be a bit of a photographer. A cool, Canon DSLR sat in my hands from when college finished into the latter years of my 20&#39;s. For some reason, there was always a form of hesitation to take it out of it&#39;s case and snap pictures. Even when my wife and I lived in the splendor that is Jackson Wyoming.&lt;/p&gt;
&lt;p&gt;In the end, the camera was given to my mother in law. She seemed to have the tenacity to pull it out and snap pictures far more often than I ever exhibited. Lately though there has been an intense burning to get back into some form of photography. Now though, I don&#39;t want there to be a need to find new lenses, to build a base of items. No, just a simple camera, that takes stunning photos and is there to capture life.&lt;/p&gt;
&lt;p&gt;This is what is pulling me towards photography as a whole. The idea of capture. It is slow, deliberate and most often times an utter failure. The idea is that it will slow life down, make it seem more real and less of a blur. This in itself is hard to do and I would personally love to hear from anyone, photographer or not, how they calm down this ever-present blur of life.&lt;/p&gt;
&lt;p&gt;Fell free to reach out to me &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;on twitter&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Goodbye Bloated Fellow</title>
    <link href="https://cloudbacon.com/posts/2014-08-03-letting-go-of-rspec/"/>
    <updated>2014-08-03T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-08-03-letting-go-of-rspec/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.everlane.com/&quot;&gt;Monkey patching&lt;/a&gt; has been a common thing in all Ruby libraries over the years. One of the largest of them being Rspec. We all know, and love Rspec, unless of course you are a member of the Rails Core Team. Yet, with the recent release of Rspec and its’ 17 gems Rspec has given me a bad funk, that I just can’t seem to dispel. Recently, I had the chance to create a quick &lt;a href=&quot;http://en.wikipedia.org/wiki/Single-page_application&quot;&gt;SPA&lt;/a&gt; and decided to throw Rspec out in favor of Minitest. Especially the following gem:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://rubygems.org/gems/minitest-rails&quot;&gt;minitest-rails&lt;/a&gt; from &lt;a href=&quot;https://twitter.com/blowmage&quot;&gt;Mike Moore&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Due to the diminutive, and quick nature of the “application”, my current usage of Minitest has been slim. However, it was just installed in a new side project and hopefully I will be able to integrate it with any new or upcoming projects. It’s small, fun, and fast. Sure I introduce several other gems that add an element of monkey patching to the equation. Although, over-all I don’t miss anything about Rspec&#39;s seeming bloat.&lt;/p&gt;
&lt;p&gt;So with a whiff of arrogance, and smattering of bias go forth and give it a whirl. Oh! And here are some sensible defaults that I feel make the transition process a little more upbeat. Also you can find the &lt;a href=&quot;https://gist.github.com/braidn/b713c87758b3d62c4002&quot;&gt;public gist of this jazz here&lt;/a&gt;&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/braidn/b713c87758b3d62c4002.js&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>Compilation Starts With A &#39;C&#39;</title>
    <link href="https://cloudbacon.com/posts/2014-10-07-compilation-is-for-hard/"/>
    <updated>2014-10-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-10-07-compilation-is-for-hard/</id>
    <content type="html">&lt;p&gt;Yeah, this might be a rather simple statement, mainly because the word Compilation really truly starts with the letter: &#39;c&#39;. However, the idea also extends to the C language.  Anytime a C program is built and sent off to its consumers there is a semi-complicated, definitely fiddly make/build process. This is what defines a compiled language like C or &lt;a href=&quot;https://golang.org/&quot;&gt;Golang&lt;/a&gt; from there interpreted brethren. An example of some interpreted languages would be the following: &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;, &lt;a href=&quot;https://www.python.org/&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;http://groups.engin.umd.umich.edu/CIS/course.des/cis400/forth/forth.html&quot;&gt;Forth&lt;/a&gt;. Is there an actual Forth &amp;quot;official&amp;quot; website? If for some reason you are human, and don&#39;t quite &amp;quot;grok&amp;quot; what Forth is, &lt;a href=&quot;http://cloudbacon.com/&quot;&gt;this is a pretty good explanation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So why on earth is this worth another blog post? There exists an awash of blog posts, Quora answers and miles of Wikipedia edits concerning these topics. Glad you asked. All of this hoopla can be summed up in this one &lt;a href=&quot;http://harpjs.com/&quot;&gt;exciting NPM module called Harp&lt;/a&gt;. Harp, if you read their website, is an exciting &lt;a href=&quot;https://gist.github.com/davatron5000/2254924&quot;&gt;static site blogging tool&lt;/a&gt; that will save you all the trouble of running one of those WordPress things. Which, if you read and listen to much of the Internet (no worries, it is chill you &lt;a href=&quot;http://cloudbacon.com/2011/12/19/People-Can-Not-Read&quot;&gt;likely choose not to read&lt;/a&gt;), is like running a third world country.&lt;/p&gt;
&lt;p&gt;This Harp thing... It looks pretty sweet, it even runs on Javascript which is not named even after a language that isn&#39;t compiled. However, if one were to scroll 7/12ths down the page (yes we are succinct here), it would appear that this is &amp;quot;compiled&amp;quot;. Compiled you might ask (if you chose to read). That seems weird, why would we need to compile things like HTML/CSS when the last time anyone checked, these things could be considered &#39;web native&#39;.&lt;/p&gt;
&lt;p&gt;Any rational person at this point would be all like: WTF? &lt;a href=&quot;http://i.imgur.com/FHWMO.gif&quot;&gt;Node Javascript&lt;/a&gt; is like a whole server? Eh? There are even frameworks that rhyme with Rails that work on this very same platform. So why would we have to compile our static files, or site, or whatever when this can be done directly on the server? Oh, because you need to compile locally and then commit your compiled code (because that makes sense). Unless of course you just wanted to take the folder that is generated by this compilation and FTP (sorry SFTP) it to your server. All of this makes sense in 2002 but, rarely could be considered a standard in 2014.&lt;/p&gt;
&lt;p&gt;Could this get any better you maybe asking? Well you could write all of your HTML in smaller, completely unmanageable chunks because only 50 out of every 328 web developers understands &lt;a href=&quot;http://jade-lang.com/&quot;&gt;Jade&lt;/a&gt; enough to juggle where they are currently in that &lt;a href=&quot;https://en.wikipedia.org/wiki/Pipeline_(Unix)&quot;&gt;pipe&lt;/a&gt; field of hell.. But, no worries, Jade is way less fiddly because you don&#39;t have all of those brackets (shit, that&#39;s why I love HAML and SLIM because writing inline tags is a breeze and expected output is at an all time high). Except, when you want to include someone in the project who has no idea about Jade and tries to modify the compiled source because it just makes sense... to every web developer. Then we have trouble. Though now, how do you compile the compiled source? Yeah I don&#39;t know either. Presumably, and this is almost always a likely:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#39;Because I am not smart enough.&#39;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ok, so there are quite a few glaring issues with compiling things when the runtime is actually a perfectly good server. However, there must be some reasons for these kind of static site generators? Sure! Pet projects, quick one offs, LaunchRock style landing pages and personal blogs are perfect use cases. However, due to the technical knowledge required for bringing new team members up to speed, their reliance on committing compiled code to the VCS repository, and their somewhat beta 0.0.1-ness these should remain within the personal realm. Also, having to wait for someone to return from &lt;a href=&quot;https://gimmebar.com/view/504f465629ca15bb4b000000/big&quot;&gt;their lunch break&lt;/a&gt; just to get something compiled must be a boon for the entire teams velocity.&lt;/p&gt;
&lt;p&gt;Yes, &lt;a href=&quot;https://the-pastry-box-project.net/ed-finkler/2014-october-6&quot;&gt;this&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Prose.io Tweaks</title>
    <link href="https://cloudbacon.com/posts/2014-10-12-all-prose-for-you/"/>
    <updated>2014-10-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-10-12-all-prose-for-you/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://prose.io/#about&quot;&gt;Prose.io&lt;/a&gt; is one of the best ways to interact with markdown-style form blog content. It has allowing me to write on the web, commit to GitHub and have cloudbacon run its tests ( yes it is a blog but, yes I am a programmer so most of my shit has tests ), and auto deploy to Heroku. Recently however, I have wanted to streamline this process.&lt;/p&gt;
&lt;p&gt;Prose gives you the ability to define specific metadata attributes that are editable in the sidebar. In addition, and really what I was looking for, it gives the user the ability to only allow one directory to be editable. This is awesome because it shows the user this very directory instead of forcing them to dig their way into a directory hierarchy to find their blog content.&lt;/p&gt;
&lt;p&gt;Without further ado: the following &lt;a href=&quot;https://gist.github.com/braidn/f82fd63ac00955eeaeb3&quot;&gt;gist&lt;/a&gt; is what cloudbacon is rocking. Pay special attention to the naming of the file if you don&#39;t use &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; ( the underscore is required ).&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/braidn/f82fd63ac00955eeaeb3.js&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>Slack ZNC and IRC Meet For A Shootoff</title>
    <link href="https://cloudbacon.com/posts/2014-11-02-slack-minus-the-interruptions/"/>
    <updated>2014-11-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-11-02-slack-minus-the-interruptions/</id>
    <content type="html">&lt;p&gt;Feel free to raise your hand every time you log into the web interface for Slack (you know, the messaging app &lt;a href=&quot;http://www.businessinsider.com/slack-raises-120-million-2014-10&quot;&gt;everyone is flinging money at&lt;/a&gt;, seriously does anyone remember &lt;a href=&quot;http://www.glitchthegame.com/&quot;&gt;Glitch&lt;/a&gt;?) and are automagically angered by the battering of annoyances that surround &amp;quot;Notifications.&amp;quot; Yes, notifications, those pesky little fuckers that &lt;a href=&quot;http://onlineslangdictionary.com/meaning-definition-of/kife&quot;&gt;kife&lt;/a&gt; your time and feed that growing portion of lizard brain.&lt;/p&gt;
&lt;p&gt;Slack is great for team communications however, can easily become a bear to manage, even through their plethora of keyboard shortcuts. If you, like myself love the team I work for but, don&#39;t want to just shut them out for a large amount of the day, what are the options? Glad you didn&#39;t ask.&lt;/p&gt;
&lt;p&gt;For the last three weeks... or so. What day of June is it? I have been using, chatting, consuming Slack through its&#39; IRC Gateway. As it happens, I mentioned the word IRC to a fellow developer yesterday and he was surprised it was still around. Yes, yes IRC is still around and for many of us in the programming community, it is the defacto way to communicate with our peers. However, there is one problem with IRC that has plagued it for quite some time. When you aren&#39;t logged in you miss all of the juicy cat gifs everyone is sharing.&lt;/p&gt;
&lt;p&gt;A great solution for this came about several years ago (it&#39;s still 2005 right?) called &lt;a href=&quot;http://wiki.znc.in/ZNC&quot;&gt;ZNC&lt;/a&gt;. ZNC is a bouncer that sits around in all of your connected IRC rooms and servers (Slack included) and captures what everyone is saying. Once you connect back to ZNC with a client like the newly and brilliantly updated &lt;a href=&quot;http://www.codeux.com/textual/&quot;&gt;Textual 5&lt;/a&gt;, ZNC will read back to you what you missed and when it was typed. Pretty fucking sweet! So how do we tie all of this together?&lt;/p&gt;
&lt;p&gt;First thing is first we are assuming that ZNC is all set up and an Admin user is available. If this hasn&#39;t occurred yet, &lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-install-znc-an-irc-bouncer-on-an-ubuntu-vps&quot;&gt;this guide does a wonderful job&lt;/a&gt;. I recommend creating a new user for each Slack gateway (an admin might have to activate this if you are just a mere peon). In addition, you will want to keep your nick as the user outlined in your Slack&#39;s gateway settings and your bind-host to: 0.0.0.0. The bind-host thing is odd, it&#39;s Slack being persnickety, just need to deal.&lt;/p&gt;
&lt;p&gt;Now that we have a login for ZNC, we need to add a server to this user. The easiest way to do this is to add a server to Textual5, and login using the &lt;strong&gt;ZNC&lt;/strong&gt; credentials for your Slack user. Once signed in, you won&#39;t be connected to Slack however, you should msg help to /*status for a list of commands. One of these commands will be for adding a server which takes 3 arguments:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The url of the Slack gateway. Again, this is found on the specific gateway settings page for each organization.&lt;/li&gt;
&lt;li&gt;The port, which in this case is 6667&lt;/li&gt;
&lt;li&gt;A password which is your specific Slack IRC password. This is different than the normal Slack password. Again, grab this from your gateway specific settings page on Slack.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All connections to Slack servers should be done so over a secure or SSL connection (why won&#39;t you think of the children). When adding the server, make certain to add a plus sign(&lt;code&gt;+&lt;/code&gt;) immediately before the port (no spaces). Simply disconnect and reconnect to the ZNC server and BOOM! All of your rooms will show up as well as any private rooms that you are apart of.&lt;/p&gt;
&lt;p&gt;If you have logged off for a while or over night, the moment you log back in, ZNC will read back what you missed. Success! Slack integrations also show up in rooms as well! This is is a double success if a team relies on GitHub commits or their CI status. Overall I like being able to choose my own consumption point for Slack. It frees me up to control the notifications in a way that works for me... without annoying me insensately. For the mobile experience, I recommend a combination of email alerts for missed mentions, ZNC and &lt;a href=&quot;http://palaverapp.com/&quot;&gt;Palaver&lt;/a&gt;(there may be some marvelous IRC app for Android out there... nah, I doubt it).&lt;/p&gt;
&lt;p&gt;If one of these points doesn&#39;t seem to work for you or you get stuck feel free to reach out to &lt;a href=&quot;http://www.twitter.com/braidn&quot;&gt;me on Twitter&lt;/a&gt; and we can get it fixed ASAP.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Nerd Me A Podcast</title>
    <link href="https://cloudbacon.com/posts/2014-11-07-dynamo-interview/"/>
    <updated>2014-11-07T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2014-11-07-dynamo-interview/</id>
    <content type="html">&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/175694174&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;Yep, that&#39;s right! After a ginormous hiatus from podcasting (no one remembers My Untitled Folder regardless of its epic name), I have returned. Take a listen and learn a little bit about the person behind this shit show of a blog. Also a few links for some of what was mentioned throughout the podcast (are they still called show notes?) are detailed below.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Jackson,_Wyoming&quot;&gt;Jackson Wyoming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ergodox.org/&quot;&gt;Ergodox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://multitable.com/index.php/manual-modtable-base.html&quot;&gt;Standing Desk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.omnigroup.com/omnifocus/&quot;&gt;OmniFocus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/braidn/Knowledge-Repo&quot;&gt;Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wickedweedbrewing.com/&quot;&gt;Wicked Weed&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>2014 Year In</title>
    <link href="https://cloudbacon.com/posts/2015-01-10-2014-year-in-review/"/>
    <updated>2015-01-10T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-01-10-2014-year-in-review/</id>
    <content type="html">&lt;p&gt;This seems to be the normal kind of thing these days. Write a year in review, reflect, generate some add dollars, and keep the Internet fixated on your blog long enough to seem somewhat relevant through to 2016. Without messing with the end of your weekend, or getting in the way of your new found reading skills (zing, nope) let’s begin what will only be, potentially, the most exhilarating year in review... Well until next year that is. Oh, yeah. One more thing: If for some unholy reason you need to pull a TLDR, skip to the end. Predictions for 2015 are abound.&lt;/p&gt;
&lt;h3&gt;Why work is important.&lt;/h3&gt;
&lt;p&gt;Work should be a rather large influence in life. We spend nearly 8 hours toiling away at it for five days strait. Some, well most of us spend even more time at it. The uneducated few, often times say this is due to our in-ability to produce results or that we are slow or unproductive. However, 99% of these people are incorrect. Most of us spend extra time at work honing our skills or appealing to customers because we, the 99%, actually adore their jobs.&lt;/p&gt;
&lt;p&gt;I am no different, I love every aspect of building the digital world. From creating elaborate hoax interfaces(much like the redesign around here) to intricate message passing, semi pure OOP style backends to pass data around, and even a little API style development here and there. Since there is so much overlap with work/play life, this is a great place to look at what was shipped in 2014:&lt;/p&gt;
&lt;h3&gt;List of accomplishments&lt;/h3&gt;
&lt;p&gt;The first and by far the largest is breaking ground on 3 new projects. The general Ruby smell was there, underpinning the backend; however, there was a ton of learning on the front-end. React, Angular(which I am still skeptical about) and a heavy smattering of Backbone rounded out the Javascript libraries and frameworks. These new projects involved upgrading Spree, maintaining and improving test coverage, feature implementation and a general heap of awesome, fairly well written code.&lt;/p&gt;
&lt;p&gt;Side project completion was up dramatically in 2014. Where side projects usually became just another repository tick box in GitHub, 2014 changed that in a large way. EmailGrouper(name still in transition) was thought up, created, implemented in the summer of 2014. Then, during a tumultuous fall, was rewritten from pojo style JS to Ruby utilizing Rails. Although perhaps not the most sexy thing in the world, this app was a great test bed for learning the ins-and-outs of MiniTest, along with creating a more vanilla Rails experience over the normal Spree inspired store.&lt;/p&gt;
&lt;p&gt;Now for some accomplishments that definitely fit within the realm of work but might not be so code based:&lt;/p&gt;
&lt;p&gt;I visited the team at Dynamo(my home) four times over the course of the year. One time spending nearly a month in the wonderful city that is Montreal. Canada is much different than the States, doubly so since Montreal is in the French, Québec quarter. Language aside, everyone is just a smidgen more friendly, more out going, more open, and without a doubt more fit. Anyone who is on a remote team(it is pretty fucking epic, I highly recommend it) should have a goal to see their team and especially, hug them on a quarterly basis(as the very minimum). Visiting semi-often has lead to better team dynamics, understanding of how everyone works, and best of all: Meeting significant others, children, families, and figuring out who in the office can drink you under the table. Due to their “Canadian-ness” that would be every single one of them.&lt;/p&gt;
&lt;p&gt;Now for the unfortunate news, the stuff that may have been missed in 2014. For starters the goal of learning a language every year, as highlighted by the boys behind &lt;em&gt;The Pragmatic Programmer&lt;/em&gt; sort of fell by the wayside. Sure, technically I learned two languages: GoLang and Rust. Both were more of a skim than an actual learn. The duties of work really usurped my programming time and dealing with other co-founders in a startup equated to even less time. Besides this though, and maybe missing a few months where I planned to run through a whole Field Notes book during the month, goal completion and expectations for work were met right around the 100% figure.&lt;/p&gt;
&lt;h3&gt;Goal Related&lt;/h3&gt;
&lt;p&gt;Speaking of goals. 2014 was perhaps the first time in history where all the goals that were planned out for the year were stuffed into OmniFocus and reviewed on a weekly basis. This brings a somewhat silly concept (goals in general) top of mind every Saturday and Sunday. They are played out in an “in your face” style and one can hardly complain that a goal was forgotten when a review like this is so frequent.&lt;/p&gt;
&lt;p&gt;Many of 2014’s goals centered around being a better team member, as highlighted above, visiting the office on more specific intervals, reading and writing more, focusing on my marriage, and a smattering of strength goals. All 14, two per quarter, half and full year were accomplished. Small things like using the plethora of Field Notes to actually take notes, purchasing new and much needed clothes, and getting 135 pounds over my head in a specific manner. Overall, 2014 was a great year for goals, and the setup for 2015 looks twice as ambitious.&lt;/p&gt;
&lt;h3&gt;Personal Related&lt;/h3&gt;
&lt;p&gt;Last, and by far the least are the personal accomplishments throughout the year. 2014 was another bombshell year for these. The wife and I hit a large home run by actually buying a house together. Sure it is small, and perhaps a little too cold for her liking in the winter but, it fits us nicely and doesn’t take two days to just clean the bathrooms. Seriously, large houses suck.&lt;/p&gt;
&lt;p&gt;With the house and the remote job came a much needed office upgrade. My first, and likely last proper standing desk was purchased along with a few other items to make my life a little easier while staying home all day. Other things include, new couches, ridding the area around the house of termites using only “natural” means and other such homely, somewhat boring accomplishments. In addition to the home, we planned and executed on a fun vacation to Colombia early in 2015 and took a trip that was based solely on exploration to Colorado in early December.&lt;/p&gt;
&lt;p&gt;Strength is a big thing in my life at the moment and although I had some major shoulder surgery just two years ago, the rebound has been slow but, gratifying. 2014 marked my ability to properly sit at the very bottom of a Snatch without a gigantic amount of pain. This quickly lead me to being able to perform handstand pushups which I have never been able to accomplish. In addition, some of the better numbers throughout the year include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;505 lb Deadlift&lt;/li&gt;
&lt;li&gt;515 lb JLift&lt;/li&gt;
&lt;li&gt;245 lb High Hang Clean&lt;/li&gt;
&lt;li&gt;295 lb Zercher&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Life in 2014 was definitely not the easiest but, it did give way to some fun accomplishments that were pretty integral in living a much more meaningful and purpose driven life.&lt;/p&gt;
&lt;h3&gt;Predictions for 2015&lt;/h3&gt;
&lt;p&gt;Aww, the best part of these 2014 in review posts: predictions! That, and all the awesome sponsor money these posts accrue... anyway. My best guess is this year is going to be epic although, not so much in the tech realm. The introduction of the iWatch and all of the wearable technology will somewhat diminish the already existing awesome sauce infused infrastructure we have. Sure wearables will make a dent in the marketplace, but their adoption will be slow and somewhat rife with pain.&lt;/p&gt;
&lt;p&gt;The rest of technology, perhaps the underground part or the slow tech movement(is that still a thing?) will make an interesting comeback. Offline first application development will see a much higher rise in usage leading to web based applications having a much better chance against their native counterparts. Web components, the ones seen in React will aid in the creation of better documented, easier to work on, “native-er” UI’s overall. Due to this, the larger frameworks out there like Angular and Ember are going to have to come to terms with their size and the overall load they cause on these smaller devices.&lt;/p&gt;
&lt;p&gt;Speaking of devices in general. Phones will continue to grow, disproportionate to our ear sizes. The usage and need of Phablet’s was legitimized this year with the iPhone 6+’s break out home run by Apple. Google quickly followed suite with the Nexus 6 and while we will not likely see many bigger phones in 2015, there will be many more “large phone” options. Maybe I am getting a bit older, and my eyesight just isn’t what it was when I was young but, staring at a minuscule iWatch screen holds no interest.&lt;/p&gt;
&lt;p&gt;And for a few Dark Horses:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;.Net will realize the foolishness of their ways and force every .Net developer to return to the far superior Classic ASP.
Selfie, the word will be eradicated from the language ergo allowing us to control our facial features again without the aid of seeing them. That and the famous selfie stick will see more widespread banning.
Apple Pay/Google Wallet will basically eradicate the reason to carry around physical credit cards. In places where cash is still king... cash will remain the dominant player. Items like Coin, etc are already obsolete, only the early adopters will use or buy them. In addition, the ridiculous text fields that house credit card numbers online will also become moot. Thereby allowing a cognitive sigh of relief for anyone who has thought of more secure or quicker ways to take people’s money online.
Google will relent in their quest to own everyone’s email data and sunset the Gmail service. Thereby removing any major player in the space using Dart and force everyone to find a new, more secure, less ad driven email client.
Microsoft will release a new browser that uses the Blink rendering engine and will be the first release since IE7 to run natively on a Mac. No one will use it but, everyone will have to figure out how to support it in 3 years when they jump ship to Gecko.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One can only hope.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Javascript For A Week</title>
    <link href="https://cloudbacon.com/posts/2015-01-24-js-for-a-week/"/>
    <updated>2015-01-24T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-01-24-js-for-a-week/</id>
    <content type="html">&lt;h1&gt;JS For A Week&lt;/h1&gt;
&lt;p&gt;For the better part of 5 years I have been writing,
hacking and generally focused on the Ruby programming language.
This hasn’t stopped me from exploring other languages; however,
besides a small and rather painful stint writing PHP (again),
many days were spent crafting Ruby code.
In addition to this,
the last 2 years has been spent ping-ponging between different code bases.
Not so much over the course of the past week.
Yep, all of it was spent writing purely Javascript and without the help of Coffee
and all for a single product.&lt;/p&gt;
&lt;h2&gt;What was learned&lt;/h2&gt;
&lt;p&gt;The best thing to do after a dicotomy of a situation like this
is to perform a bit of introspection&lt;/p&gt;
&lt;h2&gt;Why it was hard&lt;/h2&gt;
&lt;h2&gt;Why it differs so greatly from Ruby&lt;/h2&gt;
&lt;h2&gt;What was the takeway&lt;/h2&gt;
</content>
  </entry>
  
  <entry>
    <title>Problem Solving In Golang</title>
    <link href="https://cloudbacon.com/posts/2015-03-20-debugging-on-go/"/>
    <updated>2015-03-20T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-03-20-debugging-on-go/</id>
    <content type="html">&lt;p&gt;Nope, not actually problem solving because that is in fact boring, something that no one is really interested in and somewhat of a non starter. Doubley so when things haven&#39;t been updated much around here. Go or GoLang is a fantastic language at hunting down problems, or what some would call &amp;quot;debugging&amp;quot;. I would call it debugging as well however, I am sure there are a myriad of words that all mean the same thing.&lt;/p&gt;
&lt;p&gt;Whenever a Go program comes under the green light, the developer uses the handy &lt;code&gt;run&lt;/code&gt; command. This kicks off the compile step inheret in Go programming; and, since this is in fact programming, there will be errors.  These errors are accompanied by a somewhat small stacktrace (thank you Rob) along with the line number where the offense is occurring. The greatest thing is that these exceptions are small, readable (by humans) and consise.  A programmer with little information on the language mechanics can read: &amp;quot;no method x exists for x&amp;quot; and realize they likely lower cased the first character of the method&#39;s name. Or perhaps they should just look back through through the documentation one more time to see where they took the incorrect turn.&lt;/p&gt;
&lt;p&gt;ALSO! Captial methods... Good one.&lt;/p&gt;
&lt;p&gt;Overall, a Luddite as myself can figure out what is going on in a language that I am actively learning and feel satisfied. No stacktraces where you have to increase the lines recorded in Tmux. Just a few lines... For humans.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Infinity Keyboard</title>
    <link href="https://cloudbacon.com/posts/2015-04-05-infinity-keyboard-info/"/>
    <updated>2015-04-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-04-05-infinity-keyboard-info/</id>
    <content type="html">&lt;p&gt;As an avid keyboardist, keyboarder... whatever. I jumped on the very first &lt;a href=&quot;https://www.massdrop.com/buy/infinity-keyboard-kit&quot;&gt;Inifinity Keyboard&lt;/a&gt; offered by Massdrop back in November of 2014. Having built it, played with it and attempted to program it with a missing web interface; there is definitely more than a few words on my mind. However, this post is more of an introduction to the knowledge gained throughout my time with it, instead of a true review/product breakdown. &lt;a href=&quot;https://github.com/braidn/Knowledge-Repo&quot;&gt;GitHub houses a random collection of markdown files&lt;/a&gt;. &lt;a href=&quot;https://github.com/braidn/Knowledge-Repo/blob/master/InfinityKllInfo.md&quot;&gt;One specifically&lt;/a&gt; highlights ways to build/config/customize the Infinity&#39;s layouts.&lt;/p&gt;
&lt;p&gt;Hopefully this helps folks out who are struggling with the seeming lack of information surrounding this obscure but, somewhat interesting &lt;a href=&quot;https://www.overleaf.com/read/zzqbdwqjfwwf&quot;&gt;way to define keyboard layouts&lt;/a&gt;. If for any reason you happen to want to add or correct anything, feel free to open a GitHub issue.&lt;/p&gt;
&lt;p&gt;One last thing: There seems to be a lot of talk surrounding the bounce/debounce rate of these boards. Some of them seem to exibit double key presses from one single keypress. While this is a configurable option in the KLL files, it should not be a need if the board was properly soldered. A very easy fix is to flux/solder the connections up with quality 60/40 rosin core solder.&lt;/p&gt;
&lt;h3&gt;Update 2015-04-12&lt;/h3&gt;
&lt;p&gt;I have finally compiled all of the build scripts into one KLL based directory that could be wrapped in Git. The &lt;a href=&quot;https://github.com/braidn/infinity&quot;&gt;Git repo is, as always on GitHub&lt;/a&gt; and everyone should fork it if they are looking for a quick way to bootstrap their Infinity based Keyboard.&lt;/p&gt;
&lt;p&gt;In other news, the awesome folks at Massdrop have &lt;a href=&quot;https://www.massdrop.com/buy/infinity-ergodox&quot;&gt;released an ErgoDox keyboard&lt;/a&gt; variant that will be powered by the same configurator/keyboard mapping language. The great thing about these keyboards using the same controller is only needing to have one &lt;a href=&quot;https://github.com/ojbucao/workman&quot;&gt;workman-p mapping&lt;/a&gt; that can be flashed to different keyboards. Which means, although I own and adore my now gen1 ErgoDox, I will definetly be picking up the new version. Likely with stiffer, Cherry MX Tactile Greys.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Webpack Hot Reload And Rails</title>
    <link href="https://cloudbacon.com/posts/2015-05-03-webpack-rails-sprockets/"/>
    <updated>2015-05-03T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-05-03-webpack-rails-sprockets/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt; seems to be getting plenty of lip service these days.
Doubly so in the React community which means most of Facebook.
Since Rails leans so heavily on the asset pipeline,
how can we merge ES6, modules, &lt;a href=&quot;https://webpack.github.io/docs/hot-module-replacement-with-webpack.html&quot;&gt;and other bits of Webpack greatness&lt;/a&gt;
with the age old,
do one thing well: &lt;a href=&quot;https://github.com/sstephenson/sprockets&quot;&gt;Sprockets&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following &lt;a href=&quot;https://gist.github.com/braidn/4a11487a59f16b196fa7&quot;&gt;two scripts&lt;/a&gt; (one used for Development, the other Production),
show that Webpack can easily integrate with Rail&#39;s existing asset pipeline.
While giving way to utilizing many of the best features hidden in Webpack.&lt;/p&gt;
&lt;p&gt;A few caveats about running these scripts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The directory structure assumes a &lt;code&gt;./client&lt;/code&gt; folder,
top level in your Rails app.&lt;/li&gt;
&lt;li&gt;The common/development script assumes that assets  will be served from a server.
This means you will need a few &lt;code&gt;javascript_include_tags&lt;/code&gt; wrapped in &lt;code&gt;Rails.env&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The two urls for this server are: &lt;a href=&quot;http://localhost:8080/webpack-dev-server.js&quot;&gt;http://localhost:8080/webpack-dev-server.js&lt;/a&gt;
and &lt;a href=&quot;http://localhost:8080/bundle.js&quot;&gt;http://localhost:8080/bundle.js&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To run the Dev script: &lt;code&gt;$(npm bin)/webpack-dev-server --config webpack.config.js --hot --progress --inline --display-chunks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;And the Prod script: &lt;code&gt;$(npm bin)/webpack --config webpack.production.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Currently there is only one &#39;entry point&#39; defined as &#39;app&#39;.
This will need to be modified depending on the entry point or bootstrap script.&lt;/li&gt;
&lt;li&gt;The Production script builds one file into the app/assets/javascripts directory.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&#39;s it!&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/braidn/4a11487a59f16b196fa7.js&quot;&gt;&lt;/script&gt;
</content>
  </entry>
  
  <entry>
    <title>On Building</title>
    <link href="https://cloudbacon.com/posts/2015-05-29-building-straw-houses/"/>
    <updated>2015-05-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-05-29-building-straw-houses/</id>
    <content type="html">&lt;h1&gt;Heading1&lt;/h1&gt;
&lt;p&gt;Just a hypothetical situation:
you, yes you, I know talkinng to the reader isn&#39;t a blrg thing but,
hey think about youself.&lt;/p&gt;
&lt;h2&gt;Heading2&lt;/h2&gt;
&lt;p&gt;You live in a small area of the country,
mauybe a city of 600,000 to 1million residents that is looking to foster a startup, scrappy culture.
A scene that is focused on biotech, technology, and anything &#39;new.&#39;
Now think of everyone who can
program, think, write, and plan&lt;/p&gt;
&lt;h2&gt;Heading3&lt;/h2&gt;
&lt;p&gt;all scrambling to build products.
Either the SASS variants where they can be gobbled up by the Twitters or Stripes.
Or just businesses in general that provide online solutions to old school problems.
This is good right?&lt;/p&gt;
&lt;p&gt;It&#39;s the spirit of inovation, the building of products, the American WAY!
Except it&#39;s a sham (or a shim) because everyone is racing to
build, build, build without thinking twice.
There are so many problems with this model that it isn&#39;t funny,
the number one being that most of these people who crave to build, can&#39;t.
Now we have people building all kinds of things but, quality dips tremendously
and no longer are the Twitters and Stripes interested in the area.&lt;/p&gt;
&lt;p&gt;Ok... Wow, whirlwind. Why is this bad.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Exploring Mini Code Detoxes</title>
    <link href="https://cloudbacon.com/posts/2015-07-12-mini-code-detoxes/"/>
    <updated>2015-07-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-07-12-mini-code-detoxes/</id>
    <content type="html">&lt;p&gt;Everyone feels a little burnt out
at whatever job they do.
That job can be as simple and seemingly serene as dog watching
or perhaps it is a fast paced, none stop rocket ride on Wallstreet.
Jobs exist, and therefore burnout exists.
It may be the truth but burnouts in themselves can be managed and
even curtailed to where they are a small blip on the career radar.&lt;/p&gt;
&lt;p&gt;As a disclaimer for going forward:
A lot of examples that will be used will surround the world of programming.
However, the tiny techniques mentioned throughout can be used for any profession...
even the dog walkers.&lt;/p&gt;
&lt;p&gt;Programmers, often times find themselves riding the seemingly unending wave of burnouts.
They will work heads down on a project
and run themselves absolutely ragged until they find some light at the end of a tunnel.
Afterwards, they will find a small beach somewhere,
detox for a week,
rince, and repeat.
While this cycle may seem common and even somewhat healthy there are a few problems.&lt;/p&gt;
&lt;p&gt;Programmers are usually too burnt out before the end of the project to be really effective without a detox.
Many projects have wavering or changing deadlines and scope,
leading to an unknown time left on the project before a break can occur.
Another common problem is that when projects do come to an end,
another one begins before the first one wraps up.
This leaves the programmer with no time for a vacation.
These examples are really why this type of stress management really fails.
Instead of working for prolonged amount of times with a larger detox at the end,
we should look to take many small, and somewhat brief &amp;quot;mini vacations&amp;quot; during the course of the project.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Hubot Sightings With Monit</title>
    <link href="https://cloudbacon.com/posts/2015-08-26-hubot-monit/"/>
    <updated>2015-08-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-08-26-hubot-monit/</id>
    <content type="html">&lt;p&gt;Slack and bots go together like peanut butter and chinese food.
They are quite, literally &lt;a href=&quot;http://www.wired.com/2015/08/slack-overrun-bots-friendly-wonderful-bots&quot;&gt;over running the joint&lt;/a&gt;.
So with an already loud and notification filled app like Slack,
what&#39;s one more? &lt;a href=&quot;https://hubot.github.com/&quot;&gt;Hubot&lt;/a&gt; is a somewhat older,
coffee script powered happiness engine from the folks at GitHub.
Getting one of these guys up and running isn&#39;t really the topic here but,
this &lt;a href=&quot;https://github.com/slackhq/hubot-slack&quot;&gt;guide&lt;/a&gt; is super easy to follow.&lt;/p&gt;
&lt;p&gt;Now that there is a bot up and running,
we can&#39;t just check out of the server and have it continue to run.
That&#39;s where &lt;a href=&quot;https://mmonit.com/monit/&quot;&gt;Monit&lt;/a&gt; comes in.
Monit is a dead-simple, text based uptime monitoring system.
It can search out, at an interval and
make sure a specific program is still running.
If the PID, or whatever is missing,
Monit will use the designated start process to start things back up.&lt;/p&gt;
&lt;p&gt;Ok, so how can we stitch Monit and Hubot together?
&lt;a href=&quot;https://github.com/mattsgarrison&quot;&gt;Matt Garrison&lt;/a&gt;, a couple years ago put together a &lt;a href=&quot;https://gist.github.com/mattsgarrison/1571390&quot;&gt;gist&lt;/a&gt; for just this occasion.
A couple of things to make this thing work:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure on the restart and start services to use a user and group that is available to your server.&lt;/li&gt;
&lt;li&gt;Name the bot properly&lt;/li&gt;
&lt;li&gt;Make sure to use the correct path to the bot&lt;/li&gt;
&lt;li&gt;And finally/lastly, call the hubot bin from node_modules, it&#39;s cleaner.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Happy annoying your fellow Slack mates with kittens and Archer quotes. Also, if for some reason Matt removes the above link, &lt;a href=&quot;https://gist.github.com/braidn/082dd25e1d2de4a91a60&quot;&gt;here is my forked gist&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Update for Oct 11, 2015&lt;/p&gt;
&lt;p&gt;Since writing this, we have moved on from Monit to God.
God, may require Ruby but,
overall it has been a much more stable choice over Monit.
Monit seemed to generate new instances of the Slackbot
And never cleanup the old pids.
This left the users confused when they interacted with the bot because
any command would be multiplied by the amount of instances currently running.
Not good when you are trying to not spam your team&#39;s Slack channel.&lt;/p&gt;
&lt;p&gt;God has been exceptionally reliable and always seems to reap the previous PID before creating another instance.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Derailing Tech Interviews For The Better</title>
    <link href="https://cloudbacon.com/posts/2015-10-11-on-technical-interviews/"/>
    <updated>2015-10-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2015-10-11-on-technical-interviews/</id>
    <content type="html">&lt;p&gt;One of the most feared activities on this planet is the tech interview.
Not so much the first, get to know you interview but, the third interview.
The one where the interviewer asks a question about recursion... or ML.
No, I am not currently looking for a new job,
I have just had the pleasure of derailing a technical interview recently.
In addition, this topic always seams to be top of mind.
Plus a constant topic talked about in any software engineering circle.&lt;/p&gt;
&lt;p&gt;The hard part of it all is pinpointing what makes these interviews so terrifying.
Perhaps it is the need to sit there and let the interviewer barate the interviewee
with questions that they feel are relavant. We all know these, they may include
&lt;a href=&quot;https://en.wikipedia.org/wiki/Tower_of_Hanoi&quot;&gt;Towers of Hanoi&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Tortoise_and_the_Hare&quot;&gt;cycle detection&lt;/a&gt;, &lt;a href=&quot;http://blogs.msdn.com/b/bgroth/archive/2004/09/27/235071.aspx&quot;&gt;something about man hole covers&lt;/a&gt;,
and my all time favorite: &lt;a href=&quot;https://en.wikipedia.org/wiki/Bridge_and_torch_problem&quot;&gt;some overweight campers need to get over a rope bridge in 17 minutes&lt;/a&gt;.
The answer to the above is 12.
The campers, in their packing extravaganze happen to have brought a rope.
This allows them to pull the required flashlight back across the bridge without having to walk it back.&lt;/p&gt;
&lt;p&gt;And... why do these suck? It&#39;s simple: we don&#39;t use Haskell or ML in the real world (not many of us).
We also, as web programmers(&lt;a href=&quot;http://blog.tjd.phlegethon.org/post/107154349862/technical-interviews-and-the-towers-of-hanoi&quot;&gt;apparently not even kernel programmers&lt;/a&gt;) rarely use recursion.
And if we did, Babel or some other transpiler would deconstruct it for us(t&#39;s faster that way).
Yet, it is a constant that we will be inundated with these questions during the interview process.&lt;/p&gt;
&lt;p&gt;Frankly the above blow but, here are a few that can turn the tide of any interview.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Research the companies open source work.
Look for good documentation, well written commit messages and inquire about documentation.
Doubly so where it is lacking (no documentation is complete).
In some ways, these developer soft skills are more inportant than recursion.&lt;/li&gt;
&lt;li&gt;Inquire about how they communicate.
Do they use asynchronous tools that add to documentation or do they prefer to do things through video chat?
If the latter is true then how or when do they document their face to face time?
Have they upgraded their Slack account so history is completely searchable?&lt;/li&gt;
&lt;li&gt;Are they partially remote (&amp;quot;remote by design&amp;quot;) or remote first?
If the position is remote or augmented the answers here are key.
It shows how they value remote employees and if they know how to work remotely themselves.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These questions are aimed at getting the interviewer away from tooting about their &lt;a href=&quot;https://en.wikipedia.org/wiki/Standard_ML&quot;&gt;ML&lt;/a&gt; knowledge.
They require a good bit of company research by the interviewee but, this should be a given.
Knowing the people who are grilling you on the other end of Skype is the first step in winning.
And winning is the only outcome that makes sense when being subjugated by someone else&#39;s ML knowledge.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Twenty Fifteen Retrospective</title>
    <link href="https://cloudbacon.com/posts/2016-01-09-twenty-fifteen-retrospective/"/>
    <updated>2016-01-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-01-09-twenty-fifteen-retrospective/</id>
    <content type="html">&lt;p&gt;This year, this year of 2015(is that right?)... Fuck it.
There was going to be a retrospective just like last year
and poof! Nothing.
What happend is the web became inundated with these type of posts.
It all happened after Christmas,
and wow was it a crying shame.
Everyone, and by everyone, I truly mean everyone
on the web decided that they, right now,
would write some kind of retrospective.&lt;/p&gt;
&lt;p&gt;It seemed like it was a go-to response to some Verge article.
A right of passage into the world of 2016,
or just perhaps a way to blow off steam that had accrued throughout 2015.
Whatever, likely no one will care if this turns into a not-spective.
Which actually just happened because
the rest of this chutzpa will be a response to a &lt;a href=&quot;http://niko.bokay.io/&quot;&gt;fine friend&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Late last year a coworker produced a post
outlining the specifics behind his standup desk setup.
Afterwards, he asked me nicely to do the same so he could compare.
Well, that day has come. As follows...&lt;/p&gt;
&lt;p&gt;I have been standing now, in some fashion for the past five years of work.
Most of it has been on shody, thrown together abarations that sit on normal desks.
Only recently, within the last three years,
have I invested in a proper standing desk for my home office.
This includes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set of &lt;a href=&quot;http://www.amazon.com/MultiTable-Height-Adjustable-Desk-Base/dp/B005NJUQVG/&quot;&gt;standing legs from multitable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 simple top from Ikea&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;http://ergotechgroup.com/freedom-arms.html&quot;&gt;freedom monitor arm from ergotech&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;http://www.amazon.com/gp/product/B00VRKVGJG/&quot;&gt;Asus 25 inch monitor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;http://www.caldigit.com/thunderboltstation/&quot;&gt;Calddigit thunderbolt station&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;http://www.amazon.com/CST2545W-L-TRAC-Wired-Performance-Trackball/dp/B00ECHGE3O/&quot;&gt;CST Laser guided trackball&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;http://ergodox.org/&quot;&gt;Custom Ergodox&lt;/a&gt; with &lt;a href=&quot;http://keypuller.com/deep-space/&quot;&gt;deep space alphas&lt;/a&gt; and &lt;a href=&quot;http://keypuller.com/granite/&quot;&gt;granite mods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;http://powercube-usa.com/&quot;&gt;Power Cube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;1 &lt;a href=&quot;https://www.twelvesouth.com/product/parcslope&quot;&gt;12South ParcSlope&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of this can be seen in the photo below.&lt;/p&gt;
&lt;p&gt;So what are the goods and the bads of this setup?
For starters there will be a new Ergotech arm and Monitor in 2016.
Not because I crave the desktop space and can&#39;t work off from a single screen.
It is just much more convenient to have a todo list, doc viewer, chat, and terminal
all open in the same &#39;space.&#39;&lt;/p&gt;
&lt;p&gt;Some other &#39;goods&#39; are that you only ever need to plug power and a thunderbolt cable(soon to be 2)
into your computer to get access to all required peripherals.
This allows plugging in and getting work done a breeze.
Or if required, unplugging very quickly and heading out the door for some coworking.
Being mobile and actually taking time to move is what tends to keep the creative juices flowing.
Having an &amp;quot;assigned&amp;quot; seat in a workspace never really did it for me and
this is apparent in how I have set up my home office.&lt;/p&gt;
&lt;p&gt;And now for the not so greats: My office at the moment is a little sparce.
It could use a lamp and some overhead lighting and especially a confy-ish chair.
However, these are luxuries that I fight to find relevant in a space that should
should ooze productivity while kicking the user out at the end of the day.
After all, this is a place where work should get done.
Perhpas a little moonlighting, and a couple hours of open source work at max.
It shouldn&#39;t feel like a place I want to escape to at night.
Because after all, this is the environment where I go to work
and that very concept is hard to keep in line when you work at home.&lt;/p&gt;
&lt;p&gt;In terms of the this blog.
I have every intention to get my ideas down more frequently this year over lasts.
Last year, when it came to writing was most definitely the worst and that should change.
So with high hopes, and perhaps a pretty sweet desk setup,
here is to 2016!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cloudbacon.com/media/IMG_0972.jpeg&quot; alt=&quot;IMG_0972.jpeg&quot; /&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Remote in Twenty Sixteen</title>
    <link href="https://cloudbacon.com/posts/2016-01-24-remote-in-twenty-sixteen/"/>
    <updated>2016-01-24T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-01-24-remote-in-twenty-sixteen/</id>
    <content type="html">&lt;h3&gt;Excerpt from: &#39;Remote Work. Right Now.&#39;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;It seems that the slow transition to larger remote workforces
in the technology space has finally begun. The many benefits of
working remotely combined with the pitfalls of modern offices
and the current robustness of remote-enabling technology have
finally culminated in this perfect moment. The time is finally
right for remote work, right now.It seems that the slow transition
to larger remote workforces in the technology space has finally begun.
The many benefits of working remotely combined with the pitfalls of
modern offices and the current robustness of remote-enabling technology
have finally culminated in this perfect moment.
The time is finally right for remote work, right now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://medium.com/@ll_coolray/remote-work-right-now-ccec5d083579#.cdoswtnib&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Couldn&#39;t agree more with &lt;a href=&quot;https://twitter.com/ll_coolray&quot;&gt;Ray&lt;/a&gt; about this paragraph.
While in late &lt;a href=&quot;http://www.fastcompany.com/3036660/fast-feed/reddit-gives-remote-employees-until-end-of-year-to-relocate-to-san-francisco&quot;&gt;2014&lt;/a&gt; and &lt;a href=&quot;http://www.businessinsider.com/why-marissa-mayer-told-remote-employees-to-work-in-an-office--or-quit-2013-2?op=1&quot;&gt;2013&lt;/a&gt; we spent a good amount of time constricting the remote salesforce
and upping the housing prices in large, tech supported cities,
let&#39;s spend 2016 spreading our wings.
If perhaps Ray&#39;s writing rings true, make sure to share the article through your favorite medium&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>DynaTech Double O Nine</title>
    <link href="https://cloudbacon.com/posts/2016-01-27-dynatech-double-o-nine/"/>
    <updated>2016-01-27T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-01-27-dynatech-double-o-nine/</id>
    <content type="html">&lt;p&gt;Poodcasts! That&#39;s right.
A quick run down of what we are meandering about can be found &lt;a href=&quot;https://soundcloud.com/dynatech/podcast-009&quot;&gt;at the Soundcloud page&lt;/a&gt;.
Also a chance to subscribe to the feed and likely a plethora of other awesome bits.&lt;/p&gt;
&lt;p&gt;If for some reason this is the first DynaTech podcast, the TLDR is as follows:
It is your&#39;s truly and another &lt;a href=&quot;http://godynamo.com/&quot;&gt;Dynamo-mate&lt;/a&gt; just riffing on the week&#39;s technology news.
Sometimes there is a smattering of Microsoft cuddles,
other times we only care about the money that&#39;s flowing around the Valley,
and we even dip our toes into gaming here and there.&lt;/p&gt;
&lt;p&gt;With the untimely demise of Google Reader,
RSS is a shit show so getting your technology news in that manner is worst at best.
Simply point your favorite podcaster over our way and bemuse your dinner guests with all your tech knowledged,
sponged up from one podcast.&lt;/p&gt;
&lt;p&gt;*Dynamo, DynaTech, Cloudbacon, or your&#39;s truly are not liable for guests who leave your dinner due to conversation centered around tech news.&lt;/p&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;166&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/244061984&amp;amp;color=ff5500&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  
  <entry>
    <title>A Tall Tale</title>
    <link href="https://cloudbacon.com/posts/2016-02-25-a-tall-tale/"/>
    <updated>2016-02-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-02-25-a-tall-tale/</id>
    <content type="html">&lt;p&gt;I wrote a Post! Although not on this blrg.
Nope, instead Tumblr wooed me over to the dark side and without know where I was or how I had gotten there,
a post had spawned from nowhere.
The topic? Remote stuff, mainly work and with a slight twist which includes a hobbit.
Get over there and read it when you find some time. Seriously though. It&#39;s that good.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>NPM is Not Broken</title>
    <link href="https://cloudbacon.com/posts/2016-03-27-npm-is-not-broken/"/>
    <updated>2016-03-27T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-03-27-npm-is-not-broken/</id>
    <content type="html">&lt;p&gt;Honestly... honestly,
I can&#39;t believe that I am writing even a linked piece about NPM,
and the &#39;greater JavaScript community.&#39;
It&#39;s not due to some disregard for the language,
because that&#39;s simply not true. &lt;a href=&quot;http://triadjs.com/&quot;&gt;Triad JS&lt;/a&gt;,
which was started nearly 6 months ago to serve a very small community of developers,
is almost completely centered around the topic of...
You guessed it: JavaScript. However, it never seems to bleed into this space,
unless it&#39;s me degrading it for returning NaN over something that makes a modicum of sense.&lt;/p&gt;
&lt;p&gt;With that, &lt;a href=&quot;http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program&quot;&gt;this was written this week&lt;/a&gt; and I just can&#39;t stand behind the following statement:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Finally, stringing APIs together and calling it programming doesn’t make it programming. It’s some crazy form of dependency hacking that involves the cloud, over-engineering things, and complexity far beyond what’s actually needed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;How many &#39;mashups&#39; (the idea of stringing API&#39;s together) make 5 figure incomes every month through SASS style revenue?
Way too many for me to count on my 10 fingers.
Be constructive (which there is some of that in the post) but,
feel free to refrain from soap box assumptions surrounding &amp;quot;what programming is or isn&#39;t.&amp;quot;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Solidus Conf, A Recap</title>
    <link href="https://cloudbacon.com/posts/2016-05-15-solidus-conf-a-recap/"/>
    <updated>2016-05-15T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-05-15-solidus-conf-a-recap/</id>
    <content type="html">&lt;p&gt;Solidus Conf 2016 just came to a close.
Solidus, an ecom framework that was recently forked from Spree,
has had a temultous first few years of life.
This was technically the second Solidus Conference and
shows just how much the framework has grown over the past two years.
Let&#39;s take a quick retrospective of what went on during the conference,
and look to where things are headed for the future.&lt;/p&gt;
&lt;p&gt;The conference itself skewed fairly heavy towards the technical side.
Many of the presenters talked about development specific ideas.
Some of these talks surrounded bettering the admin interface,
building a better tax system,
and how to utilize modern devops techniques to deploy traffic rich stores.
Next to changes to the Admin layout and colour scheme,
the second largest thing talked about was coming improvements to performance.
This topic wasn&#39;t only talked about by Clarke in his opening statements but,
by many folks in the audience between talks.&lt;/p&gt;
&lt;p&gt;Performance while a large topic, didn&#39;t completely overshadow the admin changes.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Everything On Twitter Is Free</title>
    <link href="https://cloudbacon.com/posts/2016-06-11-everything-on-twitter-is-free/"/>
    <updated>2016-06-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-06-11-everything-on-twitter-is-free/</id>
    <content type="html">&lt;p&gt;Yesterday I started doing some research on a new blog series...
Of sorts. Who knows if it will end tomorrow or manifesting into anything.
However, like the beginning of all good research,
I decided to reach out to the community and
inquitre if anyone had some good ideas.
Almost immediatly I received the following tweet:&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-conversation=&quot;none&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;&lt;a href=&quot;https://twitter.com/braidn&quot;&gt;@braidn&lt;/a&gt; oh you want free ideas via twitter!!!! I get it. ;) 1. respect their time 2. KIT on slack for more than just biz chat&lt;/p&gt;&amp;mdash; Dana Publicover (@danadilly) &lt;a href=&quot;https://twitter.com/danadilly/status/741376971029020672&quot;&gt;June 10, 2016&lt;/a&gt;&lt;/blockquote&gt; &lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;p&gt;The two ideas were pretty legit, even if I don&#39;t really know what &#39;KIT&#39; is.
Though the first half is a little baffling.
Was Dana thinking that there was anything different than free ideas on Twitter?
Maybe I have missed something and Twitter has become some bizarre,
non free platform where all ideas from everyone are monitized.
Perhaps this is where App.net dissapeared to.&lt;/p&gt;
&lt;p&gt;Here is the thing &#39;Dana&#39;:
the entirety of the internet is one single, free idea.
That&#39;s how it all came into being.
The Internet is not some place to sell or hauck your thoughts.&lt;/p&gt;
&lt;p&gt;Build something, make a product you can sell or
produce a ton of content that angles your &#39;tribe&#39; into a real life,
non-software product.
All of these ideas are items worth paying for.
They bring value to their purchasers and solve real problems.
Enriching the web and giving back to the same platform is where the money is.
The amount of American fun tickets you will find in this medium
will always outweight that of monetizing your advise through Twitter.&lt;/p&gt;
&lt;p&gt;It&#39;s kind of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Open-source_software&quot;&gt;whole open source mantra&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Something Something Absense</title>
    <link href="https://cloudbacon.com/posts/2016-07-12-something-something-absense/"/>
    <updated>2016-07-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-07-12-something-something-absense/</id>
    <content type="html">&lt;p&gt;It&#39;s been forever and sometime during the beginning of the year there was some promise of consistency.
Well folks, life certainly hit the proverbial &lt;a href=&quot;http://i.giphy.com/gdPDAf4JRlANa.gif&quot;&gt;shit fan&lt;/a&gt;.
Early on this year, my abode was mistaken for a pillow by a neighbor&#39;s tree.
After insurance, contractors, phone calls, and more phone calls later,
everything is finally finished and we can resume the writing promised earlier on.&lt;/p&gt;
&lt;p&gt;The off time though over the past several months was not ill spent.
There has been a ton of time playing in new communities,
mainly my newfound love of keyboards.
Artisans, 60%, 40%, ortholinear, staggered columns,
and others all have been explored in the name of science.
If by chance you program for a living and you have realized that your list of tools is smaller than your contractors,
get ready for some epic reviews and esoteric rants on the &lt;a href=&quot;https://geekhack.org/&quot;&gt;world of keyboarding&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In programming news: this year was meant to be spent on learning &lt;a href=&quot;http://elm-lang.org/&quot;&gt;Elm&lt;/a&gt; with a focus on uping my &lt;a href=&quot;http://elixir-lang.org/&quot;&gt;Elixir&lt;/a&gt; game,
I have also become extremely interested in the power of &lt;a href=&quot;https://crystal-lang.org/&quot;&gt;Crystal&lt;/a&gt;.
It just seems like it&#39;s footprint is a great cross between Elixir and Ruby.
Who knows though, Elixir, with Phoenix is a really strong contender for Ruby and Rails these days.
Work has definitely been a little hectic which has dwindled my time to spend learning which makes me a little sad.
If things go completely sideways though with languages this year, there is always next.&lt;/p&gt;
&lt;p&gt;Oh! There has been a late stage return of the &lt;a href=&quot;http://pomodorotechnique.com/&quot;&gt;pomodoro&lt;/a&gt; technique in daily workflows.
Productivity, a relatively old love of mine, has been on the forefront over the past month.
Timeboxing and pomodoros have crept back into the daily workflow.
They have been such a great tool,
there is some hesitation to why they were left behind in the first place.&lt;/p&gt;
&lt;p&gt;With the summer drawing to a close,
the house being 102% on the mend,
and overall work life easing back into the normal,
I am excited to get some of the stuff that is rattling around in my brain, onto this platform.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>And That Is A 2016 Wrap</title>
    <link href="https://cloudbacon.com/posts/2016-12-31-and-that-is-a-2016-wrap/"/>
    <updated>2016-12-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2016-12-31-and-that-is-a-2016-wrap/</id>
    <content type="html">&lt;p&gt;2016, wowzers!
There are few words and even fewer word combos that could be used to describe this year.
A shitload of crazy that went down this year.
Due to all this, this post began its&#39; life as a collection of my fails over the year.
Due to the original&#39;s length, it was eventually nixed, burned and buried.&lt;/p&gt;
&lt;p&gt;Instead and because it makes much more sense,
doubly so with the insanity of the year, this will be something that&#39;s a smidgen more postive.
Which means! Dromrolls required please...
Let&#39;s take a step back in 2016 and share some small wins that might have slipped through the cracks.&lt;/p&gt;
&lt;h3&gt;There Was A Conference And I Chatted At It&lt;/h3&gt;
&lt;p&gt;Yes-sir-ree Bob, there was a technology conference this year... And in &lt;a href=&quot;http://b3.img.mobypicture.com/c7d5260bb7aeadef0d685b4a63c12e24_view.jpg&quot;&gt;Canada to boot&lt;/a&gt;!
The &lt;a href=&quot;http://conf2016.solidus.io/&quot;&gt;conference in mention was the inagural Solidus Conf&lt;/a&gt;.
&lt;a href=&quot;https://github.com/solidusio/solidus&quot;&gt;Solidus&lt;/a&gt; if you are unaware, is one of the larger open source ecommerce platforms available.
Although it was a fairly technical conference,
I decided to do what I do best, throw a &lt;a href=&quot;http://images-cdn.9gag.com/photo/a6yV4zm_700b.jpg&quot;&gt;lob&lt;/a&gt; in the room and do some thing a little different.&lt;/p&gt;
&lt;p&gt;Instead of a technical piece,
there was a talk that surrounded empathy and APIs.
Which, to my surprise was a rather large topic as a whole throughout the community this year.
Irregardless, my CFP was submitted hours before the rest and everyone knows first to market wins every time.
How did it go you ask? Well...&lt;/p&gt;
&lt;p&gt;First time conference talks are great for these smaller or newer conferences.
It provides a great medium to see how receptive a smaller, perhaps more specific group of people are around a topic.
If these talks go well, often times the speaker will be asked to do their talk again at another conference.&lt;/p&gt;
&lt;p&gt;Overall I wholeheartedly enjoyed the experience,
and although there was no one clammering to hear the talk at another conference,
it spurred some great conversations.
There will be a rando number of metrics for the year at the end of this post.
Stay tuned if you are interested in the total &lt;a href=&quot;http://www.wikicfp.com/cfp/&quot;&gt;Call For Papers&lt;/a&gt; submitted in 2016.&lt;/p&gt;
&lt;h3&gt;There Were Some Things Created&lt;/h3&gt;
&lt;p&gt;There is still a sense of awe that crashes into me when I launch something into the Internet-o-sphere.
To think that multi billion dollar companies started from a single line of code in someone&#39;s editor is equally mind boggling.
Without getting into too many specifics, the following are a few things that were created and/or killed over the course of 2016.
All started from a single line in &lt;a href=&quot;https://neovim.io/&quot;&gt;Vim&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Killed #1: A few years ago, a few people decided that they wanted to pick up the slack left by 37 Signals leaving the group email biz.
In doing so, they built a bizarre API of sorts to email groups.
The application or consumer of this api could be any email client.
Writing down the basics of the idea in a sentence, cool.
Explaining to people that their email groups don&#39;t sync across devices, FUCKING impossible.
This exact fact killed the startup before it was able to get off the ground.
This year saw the death of keeping this service alive.
Easy kill.&lt;/p&gt;
&lt;p&gt;Created #1: &lt;a href=&quot;https://gimmebar.com/view/504f465629ca15bb4b000000/big&quot;&gt;A Java developer into a Ruby developer&lt;/a&gt;.
One of my larger goals for 2016 was to do more teaching.
This checkbox could definitely be checked off with the transition of one of our Android developers learning Ruby.
There wasn&#39;t a day that went by in this process where some kind of mention of types or interfaces didn&#39;t come up in conversation.
However, after several weeks of nearly 4 hours a day of pair programming, things began to click.
Here is to hoping in 2017, he keeps up playing with and exploring a language that is exponetially more different than Java.&lt;/p&gt;
&lt;p&gt;Created #2: &lt;a href=&quot;https://vuejs.org/&quot;&gt;VueJS landed at Dynamo&lt;/a&gt;.
For how long? Who knows.
For now though, the studio is working on a project that incorporates Vue and should launch soon.
The choice for Vue was pretty obvious from the get go.
Performance wise it&#39;s rock solid,
it has a great community behind it,
and is just a small amount of JavaScript sugar on top of Plain ole&#39; Javascript Objects.
Not to mention it resembles Angular and we still have a few &#39;Angularized&#39; products.&lt;/p&gt;
&lt;p&gt;Killed #2: We said our farewells to a project that&#39;s been haunting us for years.
When working for an agency, the Client is seemingly 99% of the time in charge.
A client that has been around for some time asked us to build a forward thinking POS system a few years ago.
After about 6 months, the project was shuttered.
This was repeated the year afterward&#39;s and again this year.
This year though... OH, this year.
The client and us decided that it was time to put the &#39;beast to bed&#39;.
Killing projects like this is always a bit of a bummer however, this one needed it more than most.&lt;/p&gt;
&lt;h3&gt;There Was Little Writing Here&lt;/h3&gt;
&lt;p&gt;This could also be construed as a failure but...
The lack of writing here was mainly a feature of 2016.
At times, there was an active amount of writing that was going into drafts;
however, few of these posts saw the light of day.
Much of the time that is consumed by writing was used to discover a few more creative pursuits.
Namely Photography (numbers below on pictures taken in 2016) and keyboard programming, building and design.
These may not seem like adequate replacements for spewing my thoughts into the Interwebs but, it was a welcomed change of pace.
Here is to hoping that these new found hobbies don&#39;t drop off as I pick back up the writing game.&lt;/p&gt;
&lt;h3&gt;Some Other Stats&lt;/h3&gt;
&lt;p&gt;With this approaching quickly to the 1k word limit set on to all bloggers by millenials everywhere,
let&#39;s call it. If anyone was paying attention,
and they so rarely do, 2016 was a fairly wild ride.
Here is to hoping that rollercoaster still has some coal left in it for 2017.
Peace, and much love to everyone in their new year activities.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;70,000 ish milligrams of caffeine consumed&lt;/li&gt;
&lt;li&gt;35,000 ish lines of code removed from projects&lt;/li&gt;
&lt;li&gt;25,000 ish lines of code added to projects&lt;/li&gt;
&lt;li&gt;5000 ish photos taken&lt;/li&gt;
&lt;li&gt;3100 hours of building products&lt;/li&gt;
&lt;li&gt;700 Aeropress shots consomed.&lt;/li&gt;
&lt;li&gt;500 hours of time spent learning new JS frameworks&lt;/li&gt;
&lt;li&gt;14 Call for Paper Submissions&lt;/li&gt;
&lt;li&gt;10 New keyboard key sets purchased&lt;/li&gt;
&lt;li&gt;5 new keyboards built&lt;/li&gt;
&lt;li&gt;3 projects launched&lt;/li&gt;
&lt;li&gt;1 Project killed&lt;/li&gt;
&lt;li&gt;1 Missing drone&lt;/li&gt;
&lt;li&gt;1 AWOL Electric Skateboard&lt;/li&gt;
&lt;li&gt;1 New Office&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Something&#39;s In The Water</title>
    <link href="https://cloudbacon.com/posts/2017-02-18-somethings-in-the-water/"/>
    <updated>2017-02-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-02-18-somethings-in-the-water/</id>
    <content type="html">&lt;p&gt;This year has started with somewhat of a ! (programmer joke).
Almost like clockework,
there was plenty of talk &lt;a href=&quot;https://cloudbacon.com/2016/12/31/and-that-is-a-2016-wrap/&quot;&gt;back in December&lt;/a&gt; of more writing...
And here we are almost half way through the second month with nigh a peep.
This is due to the aforementioned &#39;bang&#39;.
It involved a plane, some weird feelings, and a whole lot of craziness.&lt;/p&gt;
&lt;p&gt;Suffice it to say though,
that large things are a-foot.
Some of these are rather sad, other&#39;s good but,
give it several more months before anything explicit can be written or shared.
Until then, there are some exciting pieces in the pipeline.
Namely some about &lt;a href=&quot;http://www.typescriptlang.org/&quot;&gt;Typescript&lt;/a&gt;,
building communities in places that aren&#39;t NYC or San Fran,
and the complex or sad state of testing large applications.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A Mail Workflow</title>
    <link href="https://cloudbacon.com/posts/2017-02-25-a-mail-workflow/"/>
    <updated>2017-02-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-02-25-a-mail-workflow/</id>
    <content type="html">&lt;p&gt;Perhaps a more apropros title here would be:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;How I tossed all email clients in the trash and went back to Mac Mail&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Not because there is anything wrong with &lt;a href=&quot;https://sparkmailapp.com/&quot;&gt;Spark&lt;/a&gt; or &lt;a href=&quot;http://airmailapp.com/&quot;&gt;Airmail&lt;/a&gt;.
Because there just simply isn&#39;t.
However, my use case for email has shifted significantly this year.&lt;/p&gt;
&lt;p&gt;Previously, mail was a place where recruiters contacted you for bland opportunities.
It was a repository for all of those newsletters from the last designery fob purchased.
More importantly, it was a productivity black hole, often with no end
(this is still unknown for black holes).
Leveraging the &lt;a href=&quot;https://support.apple.com/kb/PH12515?locale=en_US&quot;&gt;VIP&lt;/a&gt; feature that&#39;s been around since iOS6,
there is some light at the end of email&#39;s uselessness.&lt;/p&gt;
&lt;p&gt;Maybe it&#39;s just me but, it&#39;s often times super hard to keep up with the state of one&#39;s &lt;a href=&quot;https://help.github.com/articles/about-pull-requests/&quot;&gt;GitHub pull requests.&lt;/a&gt;
It&#39;s somewhat hard to know if anyone has responded to your questions
(if you have closed the tab that keeps track of unread comments).
This leads to a lot of team members going without feedback for extended amounts of time.
By assigning the address GitHub uses to email updates to issues and pull requests to a VIP,
it receives some special love.&lt;/p&gt;
&lt;p&gt;First and formost, all VIP mail gets pushed to a seperate &#39;inbox section&#39; of Mac Mail.
If you are feeling frisky and have your notifications turned on, it will show up in the Notification Center as well.
&lt;a href=&quot;https://en.wikipedia.org/wiki/MacOS_Sierra&quot;&gt;MacOS Sierra&lt;/a&gt; also introduced a handy &#39;filter&#39; feature to Mac Mail.
This allows the user to filter their inbox by unread and VIP only users or filter their VIP inbox by unread only.&lt;/p&gt;
&lt;p&gt;The combination of VIP&#39;s and filters leaves the user with just the very emails that they deem pertinent.
In this case, those are emails from GitHub, GitLab or &lt;a href=&quot;http://i.giphy.com/y0DKrxarppNbG.gif&quot;&gt;Bitbucket&lt;/a&gt;.
The ones from your team members responding to pull requests and commenting on issues,
pushing a project forward.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Being Remote And Successful</title>
    <link href="https://cloudbacon.com/posts/2017-05-11-being-remote-and-successful/"/>
    <updated>2017-05-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-05-11-being-remote-and-successful/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.theregister.co.uk/2017/05/08/ibm_teleworking_is_great_for_everyone_but_us/&quot;&gt;This week heralds in another ass when it comes to building remote work cultures&lt;/a&gt;.
Or really any sense of consistency at the workplace.
Everyone says it: remote culture isn&#39;t as easy as portrayed &lt;a href=&quot;https://37signals.com/remote&quot;&gt;in books&lt;/a&gt;!
Ok, what makes it so damn hard then?
What drives companies to seemingly reign in employees after years of remote work?
Or perhaps, what allows companies to accelerate at building remote culture over others?&lt;/p&gt;
&lt;p&gt;To most people&#39;s surprise,
there is &lt;strong&gt;only&lt;/strong&gt; one thing that is required for a successful remote environment.
It&#39;s actually so easy many of us do it every day without even breaking a sweat.
At the water cooler,
while we are taking snapchats on the john,
and especially when we are consoling our loved ones out of their third pair of Yeezys.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;It&#39;s communication&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;That&#39;s it. Seriously!
Simple and concise,
thoughtful and empathic,
non biased and poignant...
Communication.&lt;/p&gt;
&lt;p&gt;Successful remote teams generate reams and reams of documentation.
Most of this is generated in a manner that&#39;s easily searched by new
and returning members.
The documentation isn&#39;t filled with spelling errors or grammatical mistakes,
it&#39;s in a language that is prevalent throughout or commonly agreed upon, and
all in a space that everyone wants to curate&lt;/p&gt;
&lt;p&gt;The thing that makes all of this super tricky though?
Yep, it&#39;s us.
Programmers (not all but, many) found themselves in this trade because they were better at speaking to computers over humans.
If teams or individuals want to find themselves in a culture that values remote work then they have a clear path forward:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Put down the fucking JavaScript kata and level up your communication skills&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>On Open Workspaces</title>
    <link href="https://cloudbacon.com/posts/2017-05-13-on-open-workspaces/"/>
    <updated>2017-05-13T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-05-13-on-open-workspaces/</id>
    <content type="html">&lt;p&gt;It seems like we can&#39;t even go a week without the &lt;a href=&quot;https://qz.com/887600/coworking-doesnt-mean-what-it-used-to/&quot;&gt;news talking about the cancer that is open offices&lt;/a&gt;.
Not entirely sure about this but, why isn&#39;t anyone advocating for working outside the office?
Like in the open, no air condition, with a &lt;a href=&quot;https://www.glossier.com/products/invisible-shield&quot;&gt;bit of sunscreen&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cloudbacon.com/media/work_from_outside.jpeg&quot; alt=&quot;a better open office plan&quot; /&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Eyes On The Code Review Prize</title>
    <link href="https://cloudbacon.com/posts/2017-07-18-eyes-on-the-code-review-prize/"/>
    <updated>2017-07-18T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-07-18-eyes-on-the-code-review-prize/</id>
    <content type="html">&lt;p&gt;Compact, niche teams doing really interesting things can make or break a product.
Well... Not really.
That&#39;s more click baity than anything.
&lt;a href=&quot;https://blog.bufferapp.com/small-teams-why-startups-often-win-against-google-and-facebook-the-science-behind-why-smaller-teams-get-more-done&quot;&gt;Small teams can do amazing, quick work of features or trim up a backlog full of issues.&lt;/a&gt;
However, the capacity of small teams isn&#39;t constrained by their size.
Or lack thereof.&lt;/p&gt;
&lt;p&gt;No, what holds back small teams is their ability to effectively &lt;a href=&quot;https://blog.codinghorror.com/code-reviews-just-do-it/&quot;&gt;review code&lt;/a&gt;.
Take, for example, two specialized individuals spearing off and creating a whole new micro service.
These two folks are likely quite good at what they do.
Both exibiting a high amount of autonomy and work capacity in their specified tasks.
However, let&#39;s say that both of these indivduals are &lt;a href=&quot;https://www.edutopia.org/blog/code-literacy-21st-century-requirement-douglas-rushkoff&quot;&gt;completely illiterate towards one another&#39;s code.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Who do they turn to when they have produced a swath of refactorings through their code base?
They could ask one another and hope that the resulting code review will be more substance than ceremony.
Although, this is usually not the case.
The more likely outcome is a review that is speedily done just because one party feels obligated to keep the other unblocked.&lt;/p&gt;
&lt;p&gt;While these types of reviews can and will find things like debugger or &#39;puts&#39; statements,
they often times miss the mark on finding the quality, &#39;&lt;a href=&quot;https://sourcemaking.com/refactoring&quot;&gt;code smell&lt;/a&gt;&#39; labeled problems in the new code.
This seems antithetical though!
We are inundated with the idea that small teams are more agile (&lt;a href=&quot;https://www.youtube.com/watch?v=a-BOSpxYJ9M&quot;&gt;not Agile&lt;/a&gt;) and can pivot much easier when things go South.
Which brings us to wonder who&#39;s closer to being correct in their assumptions of small teams?&lt;/p&gt;
&lt;p&gt;The code produced by these small teams or the folks who are propogating these crazy theroires of small teams?&lt;/p&gt;
&lt;p&gt;The code review process isn&#39;t everything though.
It&#39;s a rather small part of a team&#39;s process.
Never-the-less, it&#39;s one that delivers &lt;a href=&quot;https://blog.codacy.com/impact-of-code-reviews-on-developer-productivity-and-code-quality-bfd88d967db8&quot;&gt;substantially better code.&lt;/a&gt;
That code has the least amount of bugs,
it&#39;s more resilient to breaking and
stands up when major parts of the system shift.
This kind of quality is what we want making it&#39;s way into all projects.
It&#39;s what leads to fewer and fewer runtime errors,
greater revenue across the entirety of the business,
and perhaps the most important thing of all:
&lt;a href=&quot;https://blog.codacy.com/impact-of-code-reviews-on-developer-productivity-and-code-quality-bfd88d967db8&quot;&gt;developer happiness&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If any team (large or small) is looking to better themselves,
quality code reviews are a wonderful start.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Elm And The Power Of The Dot</title>
    <link href="https://cloudbacon.com/posts/2017-08-22-elm-and-the-power-of-the-dot/"/>
    <updated>2017-08-22T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-08-22-elm-and-the-power-of-the-dot/</id>
    <content type="html">&lt;p&gt;This is one of those special years...
It&#39;s one where yours trully is not attempting to learn a new programming language.
Sure &lt;a href=&quot;https://twitter.com/PragmaticAndy&quot;&gt;Andy Hunt&lt;/a&gt; would fault me for this but,
there are times where paying down programming debt is a wise move over moving forward.
That&#39;s really what 2017 has been about.
Rather learn something new, it&#39;s been a time to further languages learned in past years.&lt;/p&gt;
&lt;p&gt;While focusing on honing a subset of languages can be a blast,
it&#39;s impossible to get away from the intoxication of learning something new.
To combat this, I have decided to co-opt a &#39;dark horse&#39; language of sorts for 2017.
Dark horses should abide by the following rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Be extra small (the API layer should be thin or the languages use case should be small).&lt;/li&gt;
&lt;li&gt;Be a compile target to a language that was a &#39;language of the year&#39; prior.&lt;/li&gt;
&lt;li&gt;Be something that makes you happy.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For 2017, &lt;a href=&quot;http://elm-lang.org/&quot;&gt;Elmlang&lt;/a&gt; fit&#39;s this criteria nicely.
Below is a video from
&lt;a href=&quot;https://twitter.com/ElPapaPollo&quot;&gt;Jeremy Fairbank&lt;/a&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=EDp6UmaA9CM&quot;&gt;at this year&#39;s CodeMash highlighting the basics of Elm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On top of being a wonderful introduction to Elm,
it also highlights the differences between an old, grizzled vim user and that of someone who has recently moved to the editor.
Jeremy throughtout most of it, uses visual mode to edit files in different locations or with &#39;multiple cursors&#39;.
While this is completely chill, he isn&#39;t yet thinking of text in repeatable chunks.
Using the &lt;code&gt;.&lt;/code&gt; operator to repeat operations is a tremendous part of slicing and dicing text with vim.
It allows the user to be highly surgical when repeating an operation versus setting up multiple cursors.
Moreover, the dot is easily currected with undo one at a time versus, the entirety of a multiple cursor insert.&lt;/p&gt;
&lt;p&gt;Take in the video, learn some Elm, and see where a period is more powerful over a cursor.&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/EDp6UmaA9CM&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  
  <entry>
    <title>The Easiest Way To Be A Better Developer</title>
    <link href="https://cloudbacon.com/posts/2017-09-19-the-easiest-way-to-be-a-better-developer/"/>
    <updated>2017-09-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-09-19-the-easiest-way-to-be-a-better-developer/</id>
    <content type="html">&lt;h3&gt;Your Dirty Little Secret&lt;/h3&gt;
&lt;p&gt;There is a secret, rather unwritten rule in programmer culture.
Something that no one talks about and what most of us avoid like the plague.
It&#39;s something that&#39;s easily leveled up day in and day out and
it&#39;s essential to the success of anyone in the field.
It&#39;s not reading another book or listening to another podcast.
No, it&#39;s much more simple than all of that:
it&#39;s communication... Queue &lt;a href=&quot;https://media.giphy.com/media/y2iqnrASpRrNe/giphy.gif&quot;&gt;the hand wavey gifs&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Freedom&lt;/h3&gt;
&lt;p&gt;This shouldn&#39;t be much of a &#39;gender reveal&#39; for folks.
If you have read a modicum of posts that I have produced over the years,
many of them harken back to the power of succinct communication within teams.
Many programmers, especially those who predominatly work by themselves
(think freelancer, highly specialized indivduals, someone who&#39;s never worked on a team),
never have to worry about their communication skills...&lt;/p&gt;
&lt;h3&gt;The Actual Truth&lt;/h3&gt;
&lt;p&gt;Until they want to find a new job,
are forced to show your freelance work off to shareholders,
explain why you made a design decision,
have a conversation at a conference or meetup,
network because you can see your work funnel drying up in 3 months,
help a friend solve a problem over chat,
defend your work after a code review,
ask a question on Stack Overflow because you can&#39;t solve a problem,
write a commit message that someone else might need to read,
fix a readme that&#39;s out of date,
or... Yeah, if you don&#39;t get it after that,
you won&#39;t ever.
The sad truth of every great programmer is that they don&#39;t just write code well.&lt;/p&gt;
&lt;h3&gt;A Portrait Of A Great Programmer.&lt;/h3&gt;
&lt;p&gt;All truly great programmers know that programming is the easiest part of their day.
It&#39;s a skill that they feel at home doing and can quickly get into the flow of without much fuss.
Due to this, they usually don&#39;t have to spend a large amount of time practicing programming.
What they do is practice communication.
They work on open source projects where their avenue of communication isn&#39;t tapping someone on the shoulder.
It&#39;s working out hard problems using concise languge over pull requests and
leaving succinct bits of history in commit messages.&lt;/p&gt;
&lt;p&gt;If this is what a &#39;great&#39; programmer looks like then,
how can a junior or journeyman programmer better their knowledge of the craft,
along with accelerating their communication skills?
Unfortunatly there is really no silver bullet here.
All of us, great or just beginning,
need to continually work on our communication skills.
Day in and day out.
Read your prose. How does it flow?
Does it make sense or is it a jumbly mess of pronouns and adjectives?
Think about being on the receiving end of your communication.
Would you be happy, sad, or plain confused when reading your prose?&lt;/p&gt;
&lt;h3&gt;Your Junk Aint Broken&lt;/h3&gt;
&lt;p&gt;No matter where we are on our journey as developers,
building better and better avenues to communicate with our team will lead to consistent growth.
No one builds a great product by themselves, they lean on a great team.
Unicorns, 10xers, wizards, and ballers are 100 percent a myth.
When someone uses these terms,
what they mean is someone who can communicate well within the boundaries of their team.
When you have a team of individuals that understand this,
they work unencumbered and get a shitload of good work done relatively quickly.
All hail the unicorn team!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Twitter Is A...</title>
    <link href="https://cloudbacon.com/posts/2017-09-25-twitter-is-a-dot-dot-dot/"/>
    <updated>2017-09-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2017-09-25-twitter-is-a-dot-dot-dot/</id>
    <content type="html">&lt;p&gt;Never have I heard anyone explain Twitter as well as &lt;a href=&quot;https://www.tbray.org/ongoing/When/201x/2017/09/20/Tech-is-Evil&quot;&gt;Tim Bray in the following post&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I left out Twitter because it&#39;s not actually a company,
it&#39;s a dysfunctional non profit that accidentally provides a service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pure gold&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>2017 In Review</title>
    <link href="https://cloudbacon.com/posts/2018-01-01-2017-in-review/"/>
    <updated>2018-01-01T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2018-01-01-2017-in-review/</id>
    <content type="html">&lt;h2&gt;A Recap...&lt;/h2&gt;
&lt;p&gt;Well all,
this thing is most certainly in the bag.
2017... The year that brought us Trump.
The year Space X figured out how to save a rocket.
The year a total solar eclipse occured and sadly
a plethora of natural events that terrorized the Carribean, Mexico, Texas and Iran.
With plenty more fellow humans passing in official terrorist attacks around the globe.&lt;/p&gt;
&lt;p&gt;So... not the best year.
It certainly wasn&#39;t the reaper of famous folks that 2016 was,
nor did it have the summer movie blockbuster set list of 2015.
However, it&#39;s hard to look back on this year and not remark on it&#39;s intrigue.
Its&#39; calm before the shitstorm poise that&#39;s been so intoxicating that it might squeeze into yours truly&#39;s &lt;a href=&quot;https://twitter.com/AllTop5s&quot;&gt;top 5&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First of all, and thanks American Airlines, for the most amount of miles flown in a year.
Sure being strapped into a mostly cardboard tube and hurdled through the air at brake-neck speeds isn&#39;t for everyone but,
it&#39;s always intrigued me.
Over the past few years, Laguardia has been a pitstop in a rather simple flight path up to the wonders of Montreal.
That&#39;s Canada if you were unsure.
However, this year the shoe shine guy at Laguardia actually let me out and into the city.&lt;/p&gt;
&lt;h2&gt;In The Beginning!&lt;/h2&gt;
&lt;p&gt;Early on this year, some of the fine folks from Dynamo migrated from the agency lyfe over to the startup world.
13 of us began working full time at &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt;.
A beauty and skin care startup located in the heart of Manhattan.
Having worked at a few of these &#39;startup&#39; things before,
there wasn&#39;t too much that could have blown a set of socks off.
This right here,
this expectation, was one of the few things bet incorrectly against this year.
Sadly, Bitcoin&#39;s meteoric price increase was the other.&lt;/p&gt;
&lt;p&gt;The time that has been spent at Glossier has easily been the happiest of the past 10 years.
It&#39;s almost natural for your brain to hypotheize that it&#39;s never (or always) greener on the other side.
For many reason&#39;s it usually isn&#39;t.
This has been one of those happy times where this saying has come up short.
Moving to a somewhat larger team,
with even loftier business goals,
has been nothing short of a blast.&lt;/p&gt;
&lt;p&gt;Many of us who were used to working in an agency setting,
after a few shocks,
embraced the fast paced Startup World.
Working on a much larger,
much longer project often times changes the mentality of a programmer.
It leads to consistantly weighting the cost of maintainability versus getting shit done.
This, coupled with a good team structure is really all that&#39;s needed to have small teams produce good results.
This phenomenon didn&#39;t happen immediatly upon moving to Glossier but,
as the year waned on,
we found our groove and began to build quality bits.&lt;/p&gt;
&lt;h2&gt;A Hiatus.&lt;/h2&gt;
&lt;p&gt;In late 2016, some of us got together and planned a remote month.
The idea?
Take a large group of individuals who usually only work together,
and plop them down in some tropical space, far from most of humanity.
The idea behind the whole trip was to see how far we could stretch the &#39;remote working&#39; bounds.
The place decided upon? &lt;a href=&quot;https://wikitravel.org/en/El_Tunco&quot;&gt;El Tunco&lt;/a&gt;, a small beach town on the Pacific coast of El Salvador.
For an entire month we rented out a hostel on the beach
where we spent the mornings surfing and the afternoons working until sundown.&lt;/p&gt;
&lt;p&gt;On the weekends we ventured out around El Salvador,
climbing volcanoes and diving off of restaurant balconies into mountain-top lakes.
As for working and stretching the remote bounds, we did it.
Prior to almost everyone&#39;s rhetoric (aside from Basecamp&#39;s), working remotely and effectively is 100% doable.
The best part?
The entire experience drew everyone closer together as friends and coworkers.&lt;/p&gt;
&lt;h2&gt;The Failures&lt;/h2&gt;
&lt;p&gt;Not everything get&#39;s to be a grande success!
There have been plenty of miss-steps and mistakes that were made throughout 2017.
Some of the more memorable ones were:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Not calling the success factor that Bitcoin has turned into.
Financially, this is one of the largest mistakes of my life.
A friend pushed me on my thoughts concerning crypto currency in general late last year.
My response?
That it wouldn&#39;t go much over 1000$ per BTC in 2017.
Serious facepalm with that projection.&lt;/li&gt;
&lt;li&gt;My language learning this year was supposed to focus on isomorphic JavaScript.
This held true until maybe April,
when there was a serious slow down and reshuffle towards languages with less tooling.
After this time, there was wonderful love affair with &lt;a href=&quot;https://crystal-lang.org/&quot;&gt;Crystal&lt;/a&gt; and &lt;a href=&quot;http://elm-lang.org/&quot;&gt;Elm&lt;/a&gt;.
As the year began to close there was also another change to &lt;a href=&quot;https://www.rust-lang.org/en-US/&quot;&gt;Rust&lt;/a&gt; and &lt;a href=&quot;https://reasonml.github.io/&quot;&gt;ReasonML&lt;/a&gt;.
Having stuck to a single language or re-learning a previous one in the past,
this year was a spectacular disappointment.&lt;/li&gt;
&lt;li&gt;The amount of code added to the open source world through my fingers was minimal at best.
This also includes writing in this very blog.
The only real open source work that happened was growing our local &lt;a href=&quot;https://www.meetup.com/Triad-JS/&quot;&gt;JavaScript meetup&lt;/a&gt;.
This will be something that will be actively reversed in 2018.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;All Good Things Must End.&lt;/h2&gt;
&lt;p&gt;It&#39;s unfortunatly the truth of most good things:
they rarely survive indefinitely.
The folks who worked for the wonderful little agency named Dynamo felt this all to well.
Some of us remember running down the road to pick up lunches at Olive and Gourmando,
waiting for phantom bathroom participants to leave the one bathroom we shared,
and having Christmas parties at places like Nora Gray&#39;s.
Others, remember the SAW 2 set we called home for several years,
trying to tip over random floats,
photo bombing weddings,
and launching websites from our mobile phones before heading to the Habs game.&lt;/p&gt;
&lt;p&gt;Then there was the new office,
Beerstitutions,
DJing the even larger Christmas parties,
Boris&#39; vacations,
tacky chalets,
beer pong,
beer,
beer, and even more wine and coffee.
It&#39;s hard to walk into any office, big or small,
and find a group of people who for the most part,
really did love working with each other.
Maybe it was a combination of all that wine and coffee but,
it always seemed like we respected each other when we walked through those ever changing, always evolving doors.
Whether it was in the Old Port, the set of SAW 14, coworking at La Gare, or our new office,
we all worked to make every client (well most) as happy as humanly possible.
The passion, the team, and the life produced a special kind of beauty.
Something so powerful, unique, and bizarre;
it will likely never be seen in this form again.&lt;/p&gt;
&lt;p&gt;This is all OK.
Times change and we are all made better for it.
None of us will forget our time here and we will always be closer for it.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Feedback Is The Only Way Forward</title>
    <link href="https://cloudbacon.com/posts/2018-03-13-feedback-is-the-only-way-forward/"/>
    <updated>2018-03-13T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2018-03-13-feedback-is-the-only-way-forward/</id>
    <content type="html">&lt;p&gt;One of the hardest things to give (seemingly) isn&#39;t a well placed gift.
It&#39;s not love or anything elsewise intangible and squishy.
it&#39;s simple, honest, and mostly well thoughout feedback.
Feedback is by far, the hardest gift to give as a boss or any mentor.&lt;/p&gt;
&lt;p&gt;Because it&#39;s such a tough object to hand to anyone,
it often get&#39;s set to the side and forgotten.
Replaced by niceties, agreements, and mostly frivolous chit chat.
While this is certainly not the end of the world,
the lack of constant quality feedback,
in any setting leads to lackluster growth and engagement.&lt;/p&gt;
&lt;p&gt;In a team setting (perhaps at work but, also could easily apply to sports),
this waning of candid feedback stunts the growth of each individual.
However, this isn&#39;t the future of all teams, software or not.
Actually there is someone in the space who is already taking on these cultures of constant praise.&lt;/p&gt;
&lt;p&gt;Carol Scott, author of Radical Candor,
built a book along with a business around coaching feedback for teams and individuals.
If for some bizarre reason you,
the reader, haven&#39;t taken the time to read this book, pls do.
If anything, it will make you value the feedback you receive,
and boost that which you give to others in your life.&lt;/p&gt;
&lt;p&gt;Hopefully this quote resonates with you as much as it did I
(it&#39;s one of my favorites).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“The fastest path to artificial relationships at work,
and to the gravitational pull of organizational mediocrity,
is to insist that everyone have the same worldview before building relationships with them.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>The Case For A Programmer&#39;s Shop Manual</title>
    <link href="https://cloudbacon.com/posts/2018-05-29-the-case-for-a-programmers-shop-manual/"/>
    <updated>2018-05-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2018-05-29-the-case-for-a-programmers-shop-manual/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;For developers,
we’re often building complex systems and we try to build and hold all that complexity in our mind at once.
Any interruption will cause those fragile thoughts to tumble like a house of cards.
But writing down those thoughts as they come,
even if the writing is gibberish to anyone but me,
helps me solidify those thoughts.
I’m able to recover from interruptions much quicker.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://dev.to/pbeekums/when-multitasking-is-the-only-option-pga&quot;&gt;This was recently written&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/PBeekums&quot;&gt;Beekey Cheung&lt;/a&gt; on dev.to.
Beekey highlights one of the single most important benefits to keeping a
&amp;quot;Programmer&#39;s Shop Manual&amp;quot;:
Although one might never return to it to figure out how you once solved a problem,
it&#39;s there to hold up the teetering masterpiece of complexity that we,
as programmers, produce daily.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Brainstorming New Posts In The Open</title>
    <link href="https://cloudbacon.com/posts/2018-09-13-brainstorming-new-posts/"/>
    <updated>2018-09-13T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2018-09-13-brainstorming-new-posts/</id>
    <content type="html">&lt;p&gt;After months of promising more writing,
and frankly there being none...
Your favorite RSS reader isn&#39;t fooling you!
This is indeed a somewhat late,
mostly very quick,
and likely full of holes post!
There is no news or even a hope of consistent writing anytime soon.
However, what this is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A place to generate ideas for new, &lt;s&gt;future&lt;/s&gt;  potential posts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;These will either reside here on Cloudbacon or
they will make their way through a rigorous standards process,
snaking through &#39;the machine&#39;,
and finally reaching their end on/at &lt;a href=&quot;http://intothetech.com/&quot;&gt;Into The Tech&lt;/a&gt;.
If something lands on Into the Tech though,
there will be plenty of cross posting here.
Meaning no worries,
there is no need to look for an RSS button on Medium
(honestly is there? I doubt it)&lt;/p&gt;
&lt;p&gt;Without further ado though,
let&#39;s get on with that promised brainstorming session of blog posts.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&#39;Where In The World Is Carman Sandiago&#39;&lt;br /&gt;
Now that travel is a definite way of life,
perhaps more sharing here is a good thing.
Smaller posts about random things that happen along the way,
with ample examples of how to hack your way through &lt;a href=&quot;https://en.wikipedia.org/wiki/LaGuardia_Airport&quot;&gt;LGA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&#39;ReasonML And A Language of 2010&#39;&lt;br /&gt;
In the past there has been a lot of sharing when it comes to
languages (programming) that I learn on a yearly basis.
There has been little talk of this over the past several years
and it&#39;s always a wonderful way to solidify language constructs by teaching others.&lt;/li&gt;
&lt;li&gt;&#39;GraphQL Me Pls&#39;&lt;br /&gt;
So what piece of technology is &lt;em&gt;literaly&lt;/em&gt; everyone using these days?
How does it actually make any of our lives better
and is it something that will be around in 10 years (Rest certainly will).
I have actually been &#39;touring&#39; with a talk at the moment that could use a life,
translated into a written format.&lt;/li&gt;
&lt;li&gt;&#39;Hobbies and Not The Ones With Large Hairy Feet&#39;&lt;br /&gt;
It&#39;s been sometime since I have shared what&#39;s yanking money out of my wallet.
Hobbies in life have certainly changed over the past few years.
Cycling from keyboards, excercise, and to mechanical watches.
There is a lot of good content here and a lot of information just trapped,
banging around in my brain.&lt;/li&gt;
&lt;li&gt;&#39;Anything and Everything Glossier&#39;&lt;br /&gt;
Yes it&#39;s official, &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; is and has been home now for a while.
There hasn&#39;t been a lot written on the subject.
Which means there is a dirth of items that the community would love to hear about.
Mainly, and it&#39;s a well guarded secret: my favorite balm flavor.
Shocker, not shocker; it&#39;s Coconut.&lt;/li&gt;
&lt;li&gt;&#39;What Is A CI Server Really For&#39;&lt;br /&gt;
Honestly it continues to be a surprise for most people here.
When it&#39;s not, it ends up being treated as some precious metal.
&amp;gt; Don&#39;t push that to CI because it will consume a worker/thread/whatever
Ah... that&#39;s exactly what these objects are.
They are bigger servers that have a very succinct instruction set.
Their processors don&#39;t have to be thermally controlled or
survive the vibration of a daily commute.
They are meant to be &lt;a href=&quot;https://www.houndci.com/&quot;&gt;hounded&lt;/a&gt; relentlessly!&lt;/li&gt;
&lt;li&gt;&#39;Steps to Stay Remotely Healthy&#39;&lt;br /&gt;
Programming isn&#39;t widely known to be the most healthy profession.
Double this with being at home all day in a remote work environment
and you have a recipe for a health disaster.
After surviving this world for nearly 8 years now,
there is a wide range of topics that span mental and physical health.&lt;/li&gt;
&lt;li&gt;&#39;Cultivating A Long Running Personal Wiki&#39;&lt;br /&gt;
I may not be &lt;a href=&quot;https://en.wikipedia.org/wiki/Ward_Cunningham&quot;&gt;Ward Cunninham&lt;/a&gt; but,
I have had a wiki that&#39;s been around in some form for many years.
There is a world of topics here.
Perhaps other people don&#39;t know how or where to start,
what language they should choose or
even how to prune a long running Wiki after years of its&#39; existence.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And that&#39;s a wrap!
Five quick blog ideas that could and certainly should become actual content in the near future.
Perhaps this brainstorming will actually get more posts out there.
Maybe not.
Never forget though.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Edit&lt;/em&gt; 2018-09-27 15:02:&lt;/p&gt;
&lt;p&gt;Since this brainstorming session will occur several times a month,
it makes more sense to wrap it all together as one post.
It won&#39;t leak into the new post part of an RSS/JSON feed but,
should show up as edits in Feedbin and other readers that track that thing.
Any new ideas will be added to the above list.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Shape Of Your Code</title>
    <link href="https://cloudbacon.com/posts/2018-09-25-the-shape-of-your-code/"/>
    <updated>2018-09-25T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2018-09-25-the-shape-of-your-code/</id>
    <content type="html">&lt;p&gt;Before continuing any farther, first stop.
Open up a file containing code that was written in the last week.
Next, do the same thing with a piece of code that was written 2 years ago.&lt;/p&gt;
&lt;p&gt;How do these two files look different?
Ideally these would be two files in similar directories.
A good choice here would be a spec/test or controller,
if MVC is still a way to structure code.
Maybe an easier way to see the differences inherit in these two files
is using some piece of version control software (also if still en vogue).
Where are the additions and deletions?
How much red (deletions) and green is visible?
How does the shape of the code differ from one another?&lt;/p&gt;
&lt;p&gt;Since parsing through time is much easier with computers connected to infinitely sized cloud storage;
this exercise should be an absolute breeze.
Coupled with tools like TimeMachine,
the ability to laser focus on a specific time in the past is easier than ever.
If you build prose or code this is a blessing and, more than likely a curse.&lt;/p&gt;
&lt;p&gt;The purpose of the above is to gauge overall change across the time difference.
If the chasm is only two to three months,
the diff might not be so stark.
However,
if the span of time between both files is any more than a year and they aren&#39;t visibly different...
&lt;a href=&quot;https://youtu.be/nnun8y7r8_U&quot;&gt;Houston, we have a problem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Code or prose produced today,
shouldn&#39;t look like anything produced yesterday.
Yes, there should be consistency and cohesiveness.
However, how can anyone measure growth if nothing changes?
Code&#39;s shape is highly influenced by the ecosystem it lives in.
Who&#39;s adding to it,
removing from it, and etc.
Churn, in a space where all participants are learning at a rapid pace, is impressive.
Techniques are brought in,
shared and spun out depending on their viability and resilience.
Everyone participating is learning at a rapid pace.
Their code is shifting, growing, and stretching boundaries.&lt;/p&gt;
&lt;p&gt;The opposite of this,
as slightly foreshadowed above,
is a desert without wind.
A sea of sand solidified in place,
not by extreme heat but,
the lack of any real catalyst.
Take a good inward look and decide on what is more important:&lt;/p&gt;
&lt;p&gt;1.A space devoid of creativity, risk, and change. However, filled with security.
1.Or a codebase that&#39;s in rapid flux. A space where people are free to explore and are empowered to try?&lt;/p&gt;
&lt;p&gt;There&#39;s of course no right answer to the above.
Some of us gravitate one way or the other.
Although a career can be shaped by rigidity
and a conservative point of view,
it&#39;s something that&#39;s not on my plate.
&lt;a href=&quot;https://mindsetonline.com/&quot;&gt;Carol Dweck in her book Mindset&lt;/a&gt; wraps this up in such a wonderfully small package&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Becoming is better than being&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>Selenium Made Simple In Docker Environments</title>
    <link href="https://cloudbacon.com/posts/2018-10-26-selenium-made-simple-in-docker-environments/"/>
    <updated>2018-10-26T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2018-10-26-selenium-made-simple-in-docker-environments/</id>
    <content type="html">&lt;p&gt;It&#39;s been some time since there has been any technical sharing around here.
Most of the time, Stack Overflow, although it&#39;s a bit of a troll fire these days,
is a much better space to share technical bits and bobs.
However, let&#39;s give it a whirl in this space for once.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.seleniumhq.org/&quot;&gt;Selenium&lt;/a&gt; is a browser testing and automation library that&#39;s been around since 2004.
Think of Selenium as a piece of software that sits between an application and a browser.
It accepts commands and then executes those commands in the browser.
Developers can write tests that assert on visible DOM nodes,
browser interaction, etc.
These tests cross cut the entire application layer and
are good examples of how real users interact with the application.&lt;/p&gt;
&lt;p&gt;Getting these tests to work in a pure Docker enviroment can be a bit tricky.
Yes, there are a few containers that you can pull and spin up but,
how do we get everything wired together?
Let&#39;s start off with the docker-compose.yml file.
There may be more to this file, say redis, sidekiq, etc.
However, this is just what&#39;s required to get Selenium talking to the test container.&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/braidn/7cb4702d5508cdf7a0a6e9a92120fc6c.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;Let&#39;s break this down a bit to better understand what&#39;s going on.&lt;/p&gt;
&lt;p&gt;There exists two separate containers that will run an instance of &lt;a href=&quot;http://puma.io/&quot;&gt;Puma&lt;/a&gt;.
One will run in development mode (under the web container),
and the other will run a test environment (under the test container).
Let&#39;s also make sure that there is no clashing here with ports.
Both of the containers will run under a completely different port on the localhost (9292 and 3034).
The port numbers here are not a hard requirement.
They could be 9291 and 3035
or whatever, they just can&#39;t clash.&lt;/p&gt;
&lt;p&gt;There is one more file that is needed to tie this all together:&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/braidn/531e064adcc13659c7ce40de11e93e98.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;Having a simple JSDriver that can be included into any class is perhaps the easiest way to setup JS testing.
Plus, this should work with both RSpec (not worth the headache) or MiniTest.&lt;/p&gt;
&lt;p&gt;A couple things should stand out in this file.
Namely the url for the driver, and the app_host url.
The driver url is where the Selenium container is running.
By default, programs running in Docker have access to other containers through their name.
&#39;Chromedriver&#39; in this case will map to the url of the chromedriver container.
With Capybara connected to a running Selenium instance,
how does it know what URL to send requests to?&lt;/p&gt;
&lt;p&gt;This is where the app_host comes in.
Capybara will associate itself with the running test instance that&#39;s initiated with docker-compose up.
With that, Selenium knows where and how to send browser commands.
Since the Test environment is running under docker-compose up,
logs of the Selenium interaction will stream into the terminal.
This allows easier debugging
as well as a way to know definitively if all of this has been setup properly.&lt;/p&gt;
&lt;p&gt;If further debugging is required,
the Selenium container runs a VNC server on port 5900.
Since this is mapped to the host computer&#39;s port 5900,
VNCing into the running Selenium test and watching the browser is possible.
Be ready though, Selenium executes those commands quickly and it&#39;s easy to miss errors.&lt;/p&gt;
&lt;p&gt;An that is that!
Go forth and build awesome things that are well tested.
If for some reason some of this doesn&#39;t make sense or just doesn&#39;t work,
feel free to &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;reach out on Twitter&lt;/a&gt; and interogate the author.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Stepping Back To Refocus</title>
    <link href="https://cloudbacon.com/posts/2019-06-08-stepping-back-and-recentering/"/>
    <updated>2019-06-08T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2019-06-08-stepping-back-and-recentering/</id>
    <content type="html">&lt;p&gt;At the end of last year,
some of us found ourselves in a small meeting room,
presenting for the December &lt;a href=&quot;https://www.meetup.com/Triad-JS/&quot;&gt;TriadJS meetup&lt;/a&gt;.
Usually the last meetup of the year&#39;s attendance is dwarfed due to the impending holidays.
This though was a whole other beast.
The room was small but,
packed with folks from all over the Triad.
Someone must have missed the notice about Christmas.&lt;/p&gt;
&lt;p&gt;I sat, cramped in the front of the room talking about how folks should get into open source in 2019.
With some time off coming it just felt right.
People could escape their weird in laws and maybe get in a few issue triages or small pull requests.
At least some documentation updates if all else failed.
This presentation was intended to envigorate folks but,
ultimately it was me putting a stake in the ground and admitting to myself it was time to get back to open source.
And here we are. Half way through 2019 and there has been no concerted effort in that realm.&lt;/p&gt;
&lt;p&gt;Here&#39;s another story.&lt;/p&gt;
&lt;p&gt;Back in October of last year I moved away from working on ecom at Glossier.com.
This ended up being a hard transition.
One, it was from one language that had been like home for the past 6 years,
to something that I wasn&#39;t a super fan of.
Two, it was with a small team for an unknown amount of time.
Don&#39;t get me wrong,
if there is something in this world that I thrive on more than uncertanty...
I want it &lt;a href=&quot;https://en.wikipedia.org/wiki/Zaphod_Beeblebrox&quot;&gt;caught and shot immediatly&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ultimatly the project, like &lt;a href=&quot;https://youtu.be/YGhS8VQpS6s?t=1183&quot;&gt;all exploratory phases&lt;/a&gt;,
began to take over all of our lives.
Some team members were rushing to better define requirements,
others picking apart small pieces of architecture that maybe misbehaving.
We all fell quickly into the excitement of building something new.
Until we didn&#39;t...&lt;/p&gt;
&lt;p&gt;Exploration based projects are certainly not for everyone.
They need a lot of focus and time to gain any type of steam in an organization.
They also tend to attract people who think they need to leave &#39;a mark&#39; (on something).
All of this can lead to hasty and extreme burn out.
No worries though!
Any quality engineer can see burn out a mile off and course-correct accordingly.&lt;/p&gt;
&lt;p&gt;That&#39;s what this is all about.
The project has been a wild ride so far and there is so much more to do.
This is the exciting part and the reason I still &#39;go to&#39; the office every day.
However,
this is me putting that stake back in the ground.
That one that was advocated for way back in December of last year!
With that,
if anyone has some great open source projects that they have given back to,
&lt;a href=&quot;https://twitter.com/braidn&quot;&gt;shoot me a tweet&lt;/a&gt;.
And if not, &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; commit bit here we come!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>New Development Workflows</title>
    <link href="https://cloudbacon.com/posts/2019-09-01-cleaning-up-development-workflows/"/>
    <updated>2019-09-01T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2019-09-01-cleaning-up-development-workflows/</id>
    <content type="html">&lt;p&gt;Editing text in Vim is becoming a bit of a thing of the past these days.
Non-modal editors, the likes of VSCode bring a wonderful development workflow,
&lt;a href=&quot;https://code.visualstudio.com/Docs/languages/typescript&quot;&gt;amazing tooling&lt;/a&gt;, and even fairly &#39;good&#39; &lt;a href=&quot;https://github.com/VSCodeVim/Vim&quot;&gt;Vim keybindings&lt;/a&gt;.
The one thing that VSCode falls flat on though is the wonderful terminal integration that Vim provides.
For yours truly, this integration has always come in the form of TMUX.&lt;/p&gt;
&lt;p&gt;Retooling TMUX&#39;s keybindings to seemingly flow from Vim to a terminal and back again.
As if the TMUX panes were integrated with Vim &#39;natively&#39;.
Sure NeoVim,
the version of Vim that I currently rock,
has a built in terminal.
However, being a long time TMUX user,
this always seemed like an odd addition.
One that often was ashewed and never used due to the heavy adoption of TMUX.&lt;/p&gt;
&lt;p&gt;All of this changed a few months ago when visiting &lt;a href=&quot;https://www.glossier.com/&quot;&gt;the current mothership&lt;/a&gt;.
We had just moved into a new and shiney floor that was dedicated to digital teams.
This meant there were brand new monitors powered by a single USB C connection.
However the moment NeoVim opened,
the repaint on the terminal went from amazing to 20FPS immediatly.
That&#39;s odd.
This had never happened before on my home battlestation,
of which utilizes the same laptop but, powering three monitors (none running USB C).&lt;/p&gt;
&lt;p&gt;After some NeoVim finagling which led to absolutely no changes,
I decided to close TMUX and fire NeoVim up without the terminal multiplexer.
Low and behold NeoVim started without any rendering issue.
This got me thinking once again.
Moreover, it worried me that without TMUX,
my NeoVim productivity would severely be hampered.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/jwilm/alacritty&quot;&gt;Alacritty&lt;/a&gt; is a pretty bare-bones terminal and
without the power behind TMUX,
it&#39;s a very bare experience.
Giving up TMUX meant giving up a very quick terminal application.
A speed boost that I wasn&#39;t willing to give up due to some sub par rendering...
Until just a few days ago.&lt;/p&gt;
&lt;p&gt;Having heard of the &lt;a href=&quot;https://sw.kovidgoyal.net/kitty/&quot;&gt;Kitty terminal&lt;/a&gt;,
I overlooked it due to my seemingly OK experience with Alacritty and TMUX.
However, &lt;a href=&quot;https://shooting-unicorns.com/battlestation/from-mac-to-linux-the-setup-ive-grown-to-love&quot;&gt;this article&lt;/a&gt; caught my attention.
In it the writers mention moving from Alacritty for the performance wins.
After a quick brew cask install,
&lt;a href=&quot;https://github.com/arcticicestudio/nord/issues/104&quot;&gt;colorscheme switch&lt;/a&gt;,
and &lt;a href=&quot;https://sw.kovidgoyal.net/kitty/#startup-sessions&quot;&gt;session to build a sensible starting point&lt;/a&gt;
everything has been much quicker.&lt;/p&gt;
&lt;p&gt;Without getting into a bunch of startup timing,
everything has been much snappier running under Kitty.
Excited to get back to NYC soon to see if this is true when plugged in.
Look out for a tandem post here in a few weeks,
detailing how the switch has gone.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>2019 Year in Review</title>
    <link href="https://cloudbacon.com/posts/2019-12-31-2019-year-in-review/"/>
    <updated>2019-12-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2019-12-31-2019-year-in-review/</id>
    <content type="html">&lt;p&gt;Last year seemed to come and go without the need of any real review.
Seriously! If there was one, there be a linked above.
2019 was particularly filled with work on new and experimental tech at Glossier.
The project that will go un-named was an exciting and ambitious project (like most).
Like many ambitious projects, several months rolled around (September) and the project was paused.&lt;/p&gt;
&lt;p&gt;This &#39;pivot&#39; had a rather large impact on my quality of life,
productivity, and developer happiness throughout the end of the year.
Due to this,
it&#39;s definitely a wonderful time to reflect on the highs and lows.
The following is a list of &#39;things&#39; that defined 2019.
It&#39;s not so much a historical recount of the year,
more a recollection of the chaos that ensued.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Don&#39;t Stop Writing.&lt;/h3&gt;
&lt;p&gt;Overall the last couple of years here (on Cloudbacon) have been some of the more quiet ones.
Sure the look of things has shifted but,
the amount of content and sharing has dwindled to only several items a year.&lt;/p&gt;
&lt;p&gt;My learning patterns haven&#39;t changed throughout this time.
However, the amount of time that was usually put into sharing this knowledge has come to a grinding halt.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://andrewchen.co/professional-blogging&quot;&gt;Andrew Chen&lt;/a&gt; put it best:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Writing is the most scalable professional networking activity&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you are one of the weird ones and still uses email,
take the time to subscribe to his newsletter.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Build Community At All Cost.&lt;/h3&gt;
&lt;p&gt;For the better part of the last 4 years,
some of us have been organizing a hyper regional JavaScript meetup.
&lt;a href=&quot;https://www.meetup.com/Triad-JS&quot;&gt;TriadJS&lt;/a&gt; provides local developers (in the Greensboro Nc area) a space to come and share their ideas, wins, and loses.
Larger cities can sustain developer meetups and community events.
The real trick though?
Foster and build one in a space where programmers aren&#39;t a dime-a-dozen.&#39;&lt;/p&gt;
&lt;p&gt;Hearing about people finding new jobs,
learning new languages or frameworks,
and helping people find a space in the community are always wins for community organizers.
Like in life though, not everything is awash with positive feelings.
These &#39;wins&#39; only turn out to be 25 percent of an organizer&#39;s time.
The rest of it is fighting for space to host meetups,
figuring out what to do when Meetup folds,
building backup decks for when people bail from speaking engagements, and etc.&lt;/p&gt;
&lt;p&gt;It&#39;s not glamorous but,
after a few years, the community burns brighter than ever.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Always Say Yes, Especially On Short Notice&lt;/h3&gt;
&lt;p&gt;Early on in the fall, I was &#39;commisioned&#39; to write a CFP for a conference slot in Salt Lake City.
Having not thought about speaking this year,
my mind wasn&#39;t especially attuned to the idea of writing a somewhat quick conference talk proposal.
The result was a CFP that was more of a &lt;a href=&quot;https://en.wikipedia.org/wiki/Hail_Mary_pass&quot;&gt;Hail Marry&lt;/a&gt; than anything.&lt;/p&gt;
&lt;p&gt;Within days, the talk was accepted and the actual conference loomed not that far in the future.
I usually build in about 60 hours of write and reherse time for most talks.
Due to time constraints, the total time to build this talk was going to be around half that.&lt;/p&gt;
&lt;p&gt;Like most of college, constrained timelines bring out the best in me.
The talk, while somewhat quickly sprinted through,
turned out to be one of my favorite from the past couple of years.&lt;/p&gt;
&lt;p&gt;It&#39;s available on Youtub right now: &lt;a href=&quot;https://youtu.be/m6H-2ta_JJ8&quot;&gt;Breaking Up A Monolith with EQ&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Always Use Innovation Tokens&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://mcfunley.com/choose-boring-technology&quot;&gt;Innovation Tokens&lt;/a&gt; were birthed into popularity by the fine &lt;a href=&quot;https://codeascraft.com/&quot;&gt;engineering folks behind Etsy&lt;/a&gt;.
The idea behind them being that anyone starting a greenfield app should have &lt;em&gt;x&lt;/em&gt; amount of tokens to spend on unknown technology.
Some folks say there should only be three,
others five.
It doesn&#39;t matter due to the count being up to the team at hand.
Choose an amount that makes sense to the team due to the skills of each individual on said team.&lt;/p&gt;
&lt;p&gt;Above all else, don&#39;t cheat on using the tokens either.
If someone doesn&#39;t have a deployed application running on AWS Lambda,
that&#39;s a token.
No experience with automating deploys using AWS tooling,
there goes another.&lt;/p&gt;
&lt;p&gt;New technology is hard and
building new products that may not net a business revenue on day one,
doubly so.
Use innovation tokens to mitigate risk and find an MVP as quickly as &#39;&lt;a href=&quot;https://media.giphy.com/media/qGy9SDPLTmSkM/giphy.gif&quot;&gt;humanly possible.&lt;/a&gt;&#39;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Give Time to Cry On Planes.&lt;/h3&gt;
&lt;p&gt;Tearing up when finishing books is one of the few reasons to finish them... Right?
A lot of reading (likely for most people) happens when stuck on a plane.
Most flights from Greensboro to Ney York City aren&#39;t performed in &lt;a href=&quot;https://www.gulfstream.com/aircraft/gulfstream-g700&quot;&gt;posh pond hoppers&lt;/a&gt;.
Due to this,
these quick trips are perfect for consuming books of any type.
One of the &lt;em&gt;best&lt;/em&gt; books of the year and the one that I cried the most to was the following:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/34066798-a-gentleman-in-moscow&quot;&gt;A Gentleman in Moscow&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Specifically this quote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“I’ll tell you what is convenient,” he said after a moment.
“To sleep until noon and have someone bring you your breakfast on a tray.
To cancel an appointment at the very last minute.
To keep a carriage waiting at the door of one party,
so that on a moment’s notice it can whisk you away to another.
To sidestep marriage in your youth and put off having children altogether.
These are the greatest of conveniences, Anushka—and at one time, I had them all.
But in the end, it has been the inconveniences that have mattered to me most.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;Contrarianism And The Future&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.samaltman.com/how-to-be-successful&quot;&gt;Sam Altman wrote&lt;/a&gt; a &#39;small&#39; post on how to be successful.
In it he expoused the idea:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you don’t believe in yourself, it’s hard to let yourself have contrarian ideas about the future.
But this is where most value gets created.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Contrarians around the globe know it but,
it&#39;s difficult being us.
Glad that someone is writing about how we &#39;maybe&#39; the creators of the future.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Always Break Semantic Like&lt;/h3&gt;
&lt;p&gt;Line breaks aren&#39;t anything mind bending.
However, when it comes to prose and source control,
&lt;a href=&quot;https://sembr.org/&quot;&gt;semantic line breaks&lt;/a&gt; blow people&#39;s minds.
The idea might be too simple but, when writing follow this one rule:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When writing text with a compatible markup language, add a line break after each substantial unit of thought.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By doing so you, make all prose easier to read and edit in source.
For the last three years I have been exclusively writing README&#39;s,
changelogs,
and blog posts like this.
Inevitably some ass clown will &#39;fix this&#39; in a tangential pull request.
Please don&#39;t be that person.
Writing is hard for most programmers,
make it easy by using semantic line breaks 🙏.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The Best Window into Programming.&lt;/h3&gt;
&lt;p&gt;The following question comes up a lot:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What is the best way to introduce my child to programming?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My answer always is to buy them an &lt;a href=&quot;https://en.wikipedia.org/wiki/Abacus&quot;&gt;abacus&lt;/a&gt;.
However,
the affending parent should always take the time to read this post of which expounds the finer points of the craft:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;http://www.stilldrinking.org/programming-sucks&quot;&gt;Programming Sucks&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As an aside for the parent who wants their child to program at three and a half.
Maybe have them read a book and leave programming to their later years.&lt;/p&gt;
&lt;p&gt;And with that, Happy new year all!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Intro To Docker Presentation</title>
    <link href="https://cloudbacon.com/posts/2020-01-19-triadjs-meetup-talk/"/>
    <updated>2020-01-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-01-19-triadjs-meetup-talk/</id>
    <content type="html">&lt;p&gt;For the better half of 4 years now,
there has been &lt;a href=&quot;https://www.meetup.com/Triad-JS/&quot;&gt;an open community for all JavaScript developers in the North Carolina Triad&lt;/a&gt;.
TriadJS remains a no bullshit zone where folks from any pogramming discipline can share their thoughts and ideas.
On January 9th, I kicked off our 2020 speaker series with a small presentation around &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; Fundamentals.&lt;/p&gt;
&lt;p&gt;Unlike most Docker intros,
this talk focused on the history of containers and the building of simple Dockerfiles.
There was little mention of the differences between &#39;containers&#39; and &#39;images&#39;.
While these items are fundamental to Docker,
they can be a bit confusing and are ancillary until one dives deeper into other fundamentals.&lt;/p&gt;
&lt;p&gt;The origins of this talk came from witnessing folks stumble with Docker (almost everywhere).
The ecosystem is wide/expansive and oftentimes full of jargon.
While the comprehension of containers and images are integral to fully understanding the platform,
a more &#39;useful&#39; and hands on intro could set up foundations of success.
Instead of &lt;em&gt;simply&lt;/em&gt; hypothesizing this,
I decided to test out the idea with our local JavaScript community!&lt;/p&gt;
&lt;p&gt;Hosted slides, slide repository, and example app are all linked below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/braidn/jan-2020-triadjs&quot;&gt;Slide Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://optimistic-sammet-a3dd98.netlify.com/&quot;&gt;Hosted Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/braidn/tiny-graphql&quot;&gt;Dockerized App&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have or do run into any quality intro Docker
workshops, katas, videos, or whatever &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;feel free to share&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A Bang Up Companion.</title>
    <link href="https://cloudbacon.com/posts/2020-02-17-a-stellar-companion/"/>
    <updated>2020-02-17T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-02-17-a-stellar-companion/</id>
    <content type="html">&lt;p&gt;Ever since Apple stuffed &lt;em&gt;only&lt;/em&gt; USB C ports into their MacBooks,
everyone has been on the &#39;dongle&#39; train.
Issue is,
(honestly we always forget the little things)
we have always been a slave to the cable.&lt;/p&gt;
&lt;p&gt;Ever plug a computer into a TV, monitor?
There&#39;s a cable there.
A keyboard and ergonomic mouse (sometimes known as a &#39;trackball&#39;)?
Another cable.
Want to charge that iPhone?
More cables.&lt;/p&gt;
&lt;p&gt;Regardless of the computer you have,
cables and perhaps a dongle or two are a mainstay in everyone&#39;s bag.
Over the years my personal collection of cables have been strewn across a &lt;a href=&quot;https://hiconsumption.com/mission-workshop-the-cadre-duffel-bag/&quot;&gt;duffel&lt;/a&gt; &lt;a href=&quot;https://missionworkshop.com/collections/arkiv-accessories/products/arkiv-modular-systems-horizontal-zip-pocket-backpack-accessory&quot;&gt;saddlebag&lt;/a&gt; and &lt;a href=&quot;https://missionworkshop.com/collections/backpacks/products/the-rhake-laptop-backpack&quot;&gt;backpack&lt;/a&gt;.
In 2019 I decided to do a little consolidation around this mess and gave this little thing a whirl:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.ytimg.com/vi/qfCF1GSH_MA/maxresdefault.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Waterfield as a brand has been on the bag radar for some time.
They are well known for their impeccably made waxed canvas, leather bags and accessories.
Due to much of their designs being a bit too &#39;professional&#39;, I usually look elsewhere.
Except when it comes to pouches and sleeves (and only within the last year).&lt;/p&gt;
&lt;p&gt;When the time came to consolidate my cable and dongle carry,
I needed something that could slide into the back slot of a &lt;a href=&quot;https://missionworkshop.com/collections/backpacks/products/the-rhake-laptop-backpack&quot;&gt;Mission Workshop Rhake&lt;/a&gt;.
This tech forward,
city focused bag has a &lt;a href=&quot;https://nextluxury.com/wp-content/uploads/weatherproof-22-liter-main-compartment-mission-workshop-the-rhake-backpack.jpg&quot;&gt;small horizontal pocket in the large main compartment&lt;/a&gt;.
It&#39;s a perfect space for a cable cache.
However, it&#39;s overly thin (width wise) and entirely too deep.&lt;/p&gt;
&lt;p&gt;Laying out smaller items in this section,
without a pouch of some kind would be nearly impossible.
On top of this,
finding a pouch that isn&#39;t too thick,
so as not to drive into the wearers&#39; back,
proved to be equally tricky.&lt;/p&gt;
&lt;p&gt;Take the &lt;a href=&quot;https://bellroy.com/products/tech-kit/ripstop_recycled/black&quot;&gt;Belroy Tech Kit&lt;/a&gt; for example.
It has ample storage but,
falls short on being too stout length wise leading it to be entirely too wide.
Same goes for the &lt;a href=&quot;https://www.peakdesign.com/products/tech-pouch&quot;&gt;Peak Designs Tech Pouch&lt;/a&gt;.
Both of these in their own right are well designed (for some overly designed) but,
fall short in a space that is width constrained.&lt;/p&gt;
&lt;p&gt;Enter the aforementioned &lt;a href=&quot;https://www.sfbags.com/products/tech-pocket-gear-case&quot;&gt;Waterfield tech pocket&lt;/a&gt;,
specifically the larger variant of the two.
With a single zippered pocket and a clever magnetic larger opening,
there isn&#39;t any worry of wearing out any hardware when frequently plugging in that &lt;a href=&quot;https://hhkeyboard.us/happyhacking/&quot;&gt;HHKB&lt;/a&gt;.
With the following list of cables and dongles,
this little pouch still remains svelte and can easily slip into the slimmest of city backpacks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;USB C -&amp;gt; USB C&lt;/li&gt;
&lt;li&gt;USB C -&amp;gt; Lightning&lt;/li&gt;
&lt;li&gt;USB C -&amp;gt; USB Mini&lt;/li&gt;
&lt;li&gt;USB A -&amp;gt; Lightning&lt;/li&gt;
&lt;li&gt;USB A -&amp;gt; USB Mini&lt;/li&gt;
&lt;li&gt;USB C -&amp;gt; Digital AV Multiport &#39;dongle&#39;&lt;/li&gt;
&lt;li&gt;USB C -&amp;gt; USB A &#39;dongle&#39;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Without something wrapping that chord chaos,
this pocket would be relatively impossible to tame.
This plus everything would pile onto the bottom (that thing called &#39;gravity&#39; or something) of any pocket.&lt;/p&gt;
&lt;p&gt;The best part of this little gem?
When arriving at the coffee shop,
office,
or seat 9F
leaving this pouch on the desk won&#39;t give you away as a mechanical keyboard carrying programmer.
What you do have though is an intricately made pouch to wrap all that chord madness.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The Three R&#39;s</title>
    <link href="https://cloudbacon.com/posts/2020-04-06-three-rs/"/>
    <updated>2020-04-06T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-04-06-three-rs/</id>
    <content type="html">&lt;p&gt;The other day &lt;a href=&quot;https://twitter.com/braidn/status/1244014713035526144&quot;&gt;I mentioned the following on Twitter&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;There is a really key piece of insight that folks may miss from the most recent React Podcast.
I urge folks building modern web apps to start around this time stamp and listen forward.
Real nugget of wisdom style of things to come&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I linked out to a snippet from &lt;a href=&quot;https://reactpodcast.com/87&quot;&gt;this React Podcast episode&lt;/a&gt;.
In it, &lt;a href=&quot;https://www.christopherbiscardi.com/&quot;&gt;Chris Biscardi&lt;/a&gt; talks about three products that will shape the way we,
developers, build things (on the web) for the foreseeable future.
These three R&#39;s are as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://romejs.dev/&quot;&gt;Rome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rust-lang.org/&quot;&gt;Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Ruby On Rails&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please take the time (maybe an hour&#39;s worth while you garden) to listen to that episode.
To this author,
these three pieces of technology embody these two concepts:&lt;/p&gt;
&lt;h2&gt;Community&lt;/h2&gt;
&lt;p&gt;The Rust&#39;s communities &lt;a href=&quot;https://github.com/rust-lang/rfcs&quot;&gt;use of RFCs&lt;/a&gt;,
Rails&#39; myriad of online communities as well as Rails Conf,
and Rome&#39;s &lt;a href=&quot;https://github.com/facebookexperimental/rome#philosophy&quot;&gt;philosophy section&lt;/a&gt; all showcase projects dedicated to community building.
With a world filled with tools,
those that highlight and encourage community from the ground up tend to be the real winners.&lt;/p&gt;
&lt;p&gt;These communities not only sustain the lifecycle of these projects but,
end up allowing the products to have a much more sustainable growth curve.
Just like offline communities,
there are friendships built,
money exchanged,
and ideas and expression shared throughout the group.
Developers pine to be advocates and stewards of these communities when they are formed with inclusivity in mind.&lt;/p&gt;
&lt;h2&gt;Convention Over Configuration&lt;/h2&gt;
&lt;p&gt;There seems to be a select group of people who are returning to this idea when building items for the web.
Rails has upheld this mantra for years,
Rome&#39;s existence is to ease the config fatige in the world of JavaScript,
and Rust aims to apply convention where convention makes sense.
Namely in their modules and tests.&lt;/p&gt;
&lt;p&gt;Over the last 5-10 years (it feels like),
developers have begun to ashew the concept of convention.
This is true in how we organize our Express backends,
the proliferation of ways to serialize the shape of JSON in API&#39;s,
and the onslaught of different ways to build our single page frontends.&lt;/p&gt;
&lt;p&gt;Exploring these tangents in toy or personal projects is an absolute joy.
However,
when it comes to making a decision with a team it can be a brutal &#39;mincing&#39; of words.
Each person brings a different style to the table and
with no convention, everyone in the room is likely accurate in their own snowflake of a way.&lt;/p&gt;
&lt;p&gt;What products/frameworks or ideas do you think will shape the next 5/10 years of programming for the web?
Feel free to &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;reach out on Twitter&lt;/a&gt; if you want to share.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Remote Procedural Call Style APIs in 2020</title>
    <link href="https://cloudbacon.com/posts/2020-05-05-rpc-apis-are-hawt-again/"/>
    <updated>2020-05-05T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-05-05-rpc-apis-are-hawt-again/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Remote_procedure_call&quot;&gt;RPC&lt;/a&gt; doesn&#39;t get as much airtime as &lt;a href=&quot;https://graphql.org/&quot;&gt;GraphQL&lt;/a&gt; and even &lt;a href=&quot;https://en.wikipedia.org/wiki/Representational_state_transfer&quot;&gt;REST&lt;/a&gt; these days.
However, if you are building a purely internal tool,
wont most of the endpoints skew towards &lt;a href=&quot;https://en.wikipedia.org/wiki/Remote_procedure_call&quot;&gt;RPC&lt;/a&gt; over anything else?
Even if a team picks &lt;a href=&quot;https://graphql.org/&quot;&gt;GraphQL&lt;/a&gt; as a means to communicate internally,
many of your queries and mutations are going to have a distinct &lt;a href=&quot;https://en.wikipedia.org/wiki/Remote_procedure_call&quot;&gt;RPC&lt;/a&gt; feel to them.&lt;/p&gt;
&lt;p&gt;Coming to this conclusion,
after writing what feels like hundreds of REST APIs,
and a few GraphQL ones,
has been a bit of a surprise.
Especially with my strong emotions (positive) around &lt;a href=&quot;https://en.wikipedia.org/wiki/Representational_state_transfer&quot;&gt;REST&lt;/a&gt; and &lt;a href=&quot;https://restfulapi.net/hateoas/&quot;&gt;HATEOS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Due to all this API soul searching,
I decided to explore the current crop of &lt;a href=&quot;https://en.wikipedia.org/wiki/Remote_procedure_call&quot;&gt;RPC&lt;/a&gt; like libraries in &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node&lt;/a&gt;.
The most promising one turned out to be one titled: &lt;a href=&quot;https://github.com/reframejs/wildcard-api&quot;&gt;Wildcard.js&lt;/a&gt;.
Wildcard acts like most &lt;a href=&quot;https://expressjs.com/&quot;&gt;Express&lt;/a&gt; middleware.
It creates a catch all namespace that then calls function names depending on the route called in the namespace.&lt;/p&gt;
&lt;p&gt;Most RPC like APIs,
much like GraphQL adopt a POST only approach to HTTP Methods
(more &lt;a href=&quot;https://www.jsonrpc.org/specification&quot;&gt;info on JSON RPC&lt;/a&gt;).
&lt;a href=&quot;https://github.com/reframejs/wildcard-api&quot;&gt;Wildcard&lt;/a&gt; goes one step further here;
providing developers with a GET route for each of its generated POST routes.
This allows developers a way to view and explore the API much like &lt;a href=&quot;https://github.com/graphql/graphiql&quot;&gt;GraphiQL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Polka, is a splendid and now my favorite HTTP library for &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node&lt;/a&gt;.
It&#39;s small, simple, and has a lightweight dependency footprint.
However,
its&#39; middleware signature differs significantly from that of &lt;a href=&quot;https://expressjs.com/&quot;&gt;Express&lt;/a&gt;.
This means that most middleware that functions with &lt;a href=&quot;https://expressjs.com/&quot;&gt;Express&lt;/a&gt;,
won&#39;t with Polka.
Due to this,
the example below and repo showcases a manual way of setting up &lt;a href=&quot;https://github.com/reframejs/wildcard-api&quot;&gt;Wildcard&lt;/a&gt; with any &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node&lt;/a&gt; http library or framework.&lt;/p&gt;
&lt;p&gt;Here&#39;s to more Functions over HTTP powered by JavaScript&#39;s new love of type systems
(&lt;a href=&quot;https://flow.org/&quot;&gt;Flow&lt;/a&gt;, &lt;a href=&quot;https://www.typescriptlang.org/&quot;&gt;Typescript&lt;/a&gt; or &lt;a href=&quot;https://hegel.js.org/&quot;&gt;Hegel&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Example server config:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; polka &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;polka&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; getApiHttpResponse &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;@wildcard-api/server&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;polka&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/_wildcard_api/*&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;req&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; res&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; url&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; method&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; originalBody &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; req&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; rpcResponse &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getApiHttpResponse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; url&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; method&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; originalBody &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; body&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; statusCode&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; contentType&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; etag &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; rpcResponse&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    res&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeHead&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;statusCode&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; contentType&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;ETag&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; etag &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    res&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; body &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;listen&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;err&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;throw&lt;/span&gt; err&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;running... in &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;NODE_ENV&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; mode&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/braidn/wildcard-polka&quot;&gt;Link to repository&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What&#39;s your opinion on RPC style APIs for internal use?
&lt;a href=&quot;https://twitter.com/braidn/&quot;&gt;Reach out to me on Twitter and let&#39;s chat&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>2020 Programming Language</title>
    <link href="https://cloudbacon.com/posts/2020-05-26-new-language-for-2020/"/>
    <updated>2020-05-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-05-26-new-language-for-2020/</id>
    <content type="html">&lt;p&gt;One of the best things any programmer can do is focus on a new language every year.
This concept is best highlighted in the book: &lt;a href=&quot;https://learning.oreilly.com/library/view/the-pragmatic-programmer/9780135956977&quot;&gt;Pragmatic Programmer&lt;/a&gt;.
The idea of investing regularly in a trade is something that any aspiring master &#39;crafts-human&#39; works towards.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2020-05-26-new-language-for-2020/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Over the past 12 years,
I have taken this idea farely seriously and attempted to learn something new each year.
Whether it be figuring out type systems in &lt;a href=&quot;https://www.haskell.org/&quot;&gt;Haskell&lt;/a&gt; or &lt;a href=&quot;https://reasonml.github.io/&quot;&gt;ReasonML&lt;/a&gt;,
or building weird UI&#39;s in &lt;a href=&quot;https://opalrb.com/&quot;&gt;Opal&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It doesn&#39;t matter how complex of a system that&#39;s built in the language,
the mere fact that a programmer stretches their brain will do wonders for their &lt;a href=&quot;https://www.glossier.com/&quot;&gt;day-to-day work&lt;/a&gt;.
So... It&#39;s June (nearly June) of 2020 so what language is on the docket for this year?&lt;/p&gt;
&lt;p&gt;Truth be told, there isn&#39;t one.
This will be the first time since 2007 a &#39;concept&#39; is actively in development,
not a language.&lt;/p&gt;
&lt;p&gt;The whole wide world of &lt;a href=&quot;https://en.wikipedia.org/wiki/DevOps&quot;&gt;Devops&lt;/a&gt; has exploded in the past year.
Bringing real programming languages
(if you consider &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript&quot;&gt;JS&lt;/a&gt; a programming language)
to the world of declarative templating.
&lt;a href=&quot;https://aws.amazon.com/cloudformation/&quot;&gt;Cloudformation&lt;/a&gt;, &lt;a href=&quot;https://www.terraform.io/&quot;&gt;Terraform&lt;/a&gt;, &lt;a href=&quot;https://www.ansible.com/&quot;&gt;Ansible&lt;/a&gt;, &lt;a href=&quot;https://www.chef.io/&quot;&gt;Chef&lt;/a&gt; were all interesting ways to symbolize &lt;a href=&quot;https://en.wikipedia.org/wiki/Infrastructure_as_code&quot;&gt;infrastructure as code&lt;/a&gt;.
However,
many of these products have a fairly terrible testing story,
along with no great way (my opinion) to programatically build infrastructure.&lt;/p&gt;
&lt;p&gt;The world of &lt;a href=&quot;https://aws.amazon.com/cdk/&quot;&gt;AWS&#39; CDK&lt;/a&gt; and &lt;a href=&quot;https://www.pulumi.com/&quot;&gt;Pelumi&lt;/a&gt;,
coupled with the concept of &lt;a href=&quot;https://www.gitops.tech/&quot;&gt;GitOps&lt;/a&gt; has brought a compelling idea to representing the &lt;a href=&quot;https://adayinthelifeof.nl/2020/05/20/aws.html&quot;&gt;new frontier of infrastructure&lt;/a&gt;.
With that,
Due to these products hinging on JavaScript (ie not JSON),
&lt;a href=&quot;https://en.wikipedia.org/wiki/Test-driven_development&quot;&gt;TDD&lt;/a&gt; based Infrastructure and &#39;GitOps&#39; could be a real thing.
Welcome to my 2020 programming language.&lt;/p&gt;
&lt;p&gt;Oh yeah, most of the actual programming will be in &lt;a href=&quot;https://www.typescriptlang.org/&quot;&gt;Typescript&lt;/a&gt; (2017&#39;s language of the year)
and &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript&quot;&gt;JavaScript&lt;/a&gt; (refreshed in 2007 then again in 2011).&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot; /&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://researcher.watson.ibm.com/researcher/view.php?person=us-gbooch&quot;&gt;Grady Booch&lt;/a&gt; &lt;a href=&quot;https://overcast.fm/+ZnXrKIKU&quot;&gt;said that midiocre programmers will continue to be midiocre programmers&lt;/a&gt;.
Prove a genius incorrect by learning a new programming language every year. &lt;a href=&quot;https://cloudbacon.com/posts/2020-05-26-new-language-for-2020/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
  </entry>
  
  <entry>
    <title>Introducing The Top Six</title>
    <link href="https://cloudbacon.com/posts/2020-07-31-intro-section-top-six/"/>
    <updated>2020-07-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-07-31-intro-section-top-six/</id>
    <content type="html">&lt;p&gt;At the top of the homepage,
a few things have changed (for the eagle eyed&#39; reader)!&lt;/p&gt;
&lt;p&gt;This new top six space will be a slightly revolving piece
that highlights posts that new readers may find interesting.
These posts will help them get a better understanding of how I write,
What I write about,
and what the main focuses continue to be on this blog.&lt;/p&gt;
&lt;p&gt;For folks who have been subscribed to the RSS feed for awhile,
This section might not be super relevant.
However, for folks who are new here,
this section will be invaluable versus wading through a sea of posts.&lt;/p&gt;
&lt;p&gt;These changes mirror the ideas that were highlighted from a post
by Dave Parell titled:
&lt;strong&gt;&lt;a href=&quot;https://www.perell.com/blog/the-ultimate-guide-to-writing-online&quot;&gt;The Ultimate Guide To Writing Online&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With this, hopefully new readers never feel lost (completely) here.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Vim Setup Changes in 2020</title>
    <link href="https://cloudbacon.com/posts/2020-08-01-vim-setup-changes/"/>
    <updated>2020-08-01T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-08-01-vim-setup-changes/</id>
    <content type="html">&lt;p&gt;It&#39;s been such a long time since talking about my Vim setup.
This coupled with three fairly large changes throughout the year,
has completely changed the way I use the little editor that &lt;a href=&quot;https://github.com/hakluke/how-to-exit-vim&quot;&gt;no one can quit&lt;/a&gt;.
As a caveat for people reading,
2020 will mark my 24th year using Vim as a way to manipulate text.
I can&#39;t even think of another program that I have used for half that amount of time.&lt;/p&gt;
&lt;p&gt;The three main changes that have come about this year all revolve around exploration,
namely exploring these three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Files&lt;/li&gt;
&lt;li&gt;Tasks&lt;/li&gt;
&lt;li&gt;Versions&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Files&lt;/h3&gt;
&lt;p&gt;When it comes to exploring files,
I almost always have been a Netrw fan.
It&#39;s built in,
historically it&#39;s been pretty fast,
and although it has arcane defaults,
it&#39;s something that a developer can always count on being in any version of Vim.
Due to this,
there&#39;s never been any real need to look for a file tree replacement.
Until recently.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://neovim.io/&quot;&gt;Neovim&lt;/a&gt; recently released their own &lt;a href=&quot;https://en.wikipedia.org/wiki/Language_Server_Protocol&quot;&gt;Language Server&lt;/a&gt;
and to use it,
one needs to run a nightly build of Neovim itself (for now).
Most nightly builds, these including, are usually filled with bugs and have been doubly so surrounding Netrw.
Often times the whole Netrw experience becomes broken when refocusing the specific pane.&lt;/p&gt;
&lt;p&gt;Since Language Servers do make programming a much better experience these days,
I decided to branch out and look for an alternative that wasn&#39;t &lt;a href=&quot;https://github.com/preservim/nerdtree&quot;&gt;NerdTree&lt;/a&gt;.
One of the main criteria behind the alternate file tree is that it needed to be built for speed yet have low cognitive overhead.
This is often not the case with NerdTree or other trees that depend on third party installs.
Namely, &lt;a href=&quot;https://github.com/gokcehan/lf&quot;&gt;LF&lt;/a&gt;, &lt;a href=&quot;https://github.com/jarun/nnn&quot;&gt;NNN&lt;/a&gt;, or &lt;a href=&quot;https://github.com/ranger/ranger&quot;&gt;Ranger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After spending a good amount of time sifting through /r/vim and /r/neovim on reddit,
I landed on a &lt;a href=&quot;https://www.lua.org/&quot;&gt;Lua&lt;/a&gt; powered Neovim specific package named &#39;&lt;a href=&quot;https://github.com/kyazdani42/nvim-tree.lua&quot;&gt;nvim-tree&lt;/a&gt;&#39;.
Due to Neovim &lt;a href=&quot;https://neovim.io/doc/user/lua.html&quot;&gt;having lua built in&lt;/a&gt;,
plugins written in Lua act like first class citizens.
Not to mention,
they are light years easier to build and debug over the constantly dreaded &lt;a href=&quot;https://learnvimscriptthehardway.stevelosh.com/&quot;&gt;VimScript&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The use of file trees is fairly subdued due to fuzzy file searching but,
they do come in handy.
Especially when orienting one&#39;s self around a new project/microservice/whatever.&lt;/p&gt;
&lt;h3&gt;Tasks&lt;/h3&gt;
&lt;p&gt;When folks think about running tasks in Vim/Neovim,
they often reach for tools like &lt;a href=&quot;https://github.com/dense-analysis/ale&quot;&gt;ALE&lt;/a&gt;.
Linting and file fixing is usually what most folks want to do when saveing anything new to a buffer.
Although ALE runs asynchronously,
it tends to be a tremendous resource hog.&lt;/p&gt;
&lt;p&gt;Fans to compensate with CPU and RAM utilization make Vim
feel way more like an IDE than it should.
In addition,
ALE is constantly underlining problems and stealing a programmers focus away from their process of &#39;building&#39;.&lt;/p&gt;
&lt;p&gt;VSCode has a wonderful concept of &lt;a href=&quot;https://code.visualstudio.com/Docs/editor/tasks&quot;&gt;build tasks&lt;/a&gt; which are often times used to run make tasks/build steps.
These tools are capable of more than &lt;strong&gt;just&lt;/strong&gt; a way to build a project.
If we restructure our thinking around these tools and see them more as porject runners,
then a whole new world opens up before us.
This allows users to run linters and formatters on their own chosen time.&lt;/p&gt;
&lt;p&gt;With Vim there used to be no great way of doing this but,
recently a new project has popped up called &lt;a href=&quot;https://github.com/skywind3000/asynctasks.vim&quot;&gt;asynctasks&lt;/a&gt;.
It&#39;s a way to define these build tasks and load them throughout the file system or a project.
The task definitions are powerful enough to be scoped to specific file types.
If that isn&#39;t flexible enough,
there is the ability to have profiles per task, per file type!&lt;/p&gt;
&lt;p&gt;Utilizing this task based approach,
Vim remains devoid of little red lines that steal a programmer from focusing on what matters.
During a break,
it allows a programmer to lint, build, and fix any issues that have crept up along the way.
This process makes Vim much more &#39;pure&#39; to me and injects a lot less &#39;chrome&#39; around the Vim UI.
Instead, displaying issues directly in the quick open window.
This again allows the programmer to pay attention to them or close the quick open window and get back to focusing on the problem at hand.&lt;/p&gt;
&lt;h3&gt;Versions&lt;/h3&gt;
&lt;p&gt;Last large change for the moment is the move from &lt;a href=&quot;https://github.com/tpope/vim-fugitive&quot;&gt;Fugitive&lt;/a&gt; to &lt;a href=&quot;https://github.com/lambdalisue/gina.vim&quot;&gt;Gina&lt;/a&gt;.
Both of these plugins provide a GIT like integration into Vim buffers.
However,
over the years, and especially with the move to Neovim,
having asynchronous tasks has become a huge win to my productivity.&lt;/p&gt;
&lt;p&gt;Gina&#39;s built around this notion of asynchronous interactions with a GIT repo which makes it super snappy.
It also has a small cognitive mapping load and a single command.
These features create a simple interface to an otherwise not simple CLI tool.&lt;/p&gt;
&lt;p&gt;Honestly there was nothing wrong with Fugitive and
my move to Gina wasn&#39;t a result of a failure in Figitive.
One of the tennants of my Vim usage throughout 2020 is to &#39;remove the chrome&#39;.
What this comes down to is removing UI bits that attempt to mimic ideas in other editors or IDE&#39;s.
I want vim to be a place to write prose and build software.
There is no need to be able to communicate with peers in Slack through Vim.
And certainly no need to move cards around in a specific Kanban board.&lt;/p&gt;
&lt;p&gt;All of these changes edge, nudge, pivot my usage of Vim back to when I picked the little editor up (way back in 1994).
With these big changes, I am also excited to see how other pieces of my Vim workflow change in 2020&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Crystal Dev Containers</title>
    <link href="https://cloudbacon.com/posts/2020-08-31-crystal-dev-containers/"/>
    <updated>2020-08-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-08-31-crystal-dev-containers/</id>
    <content type="html">&lt;p&gt;About a year ago,
Microsoft released a way to &lt;a href=&quot;https://code.visualstudio.com/docs/remote/containers&quot;&gt;develop inside a container&lt;/a&gt; using VSCode.
The idea is so wildly clever and simple
it blow my mind daily.
The idea is simple:&lt;/p&gt;
&lt;p&gt;Build an environment for your code to run in, utilizing Docker images.
Then inject a server-like version of VSCode into the running container with a given list of extensions.
Finally, have an exterior client version of VSCode connect to the running server.&lt;/p&gt;
&lt;p&gt;The result is like working locally on a piece of code or entire project but,
requiring the programmer to install zero dependencies (beyond Docker).
No Node modules, Ruby gems, Go packages, etc.
This also means that there&#39;s no need to weigh down a VSCode install with a bunch of language specific plugins.&lt;/p&gt;
&lt;p&gt;The only requirements to get started are, &lt;a href=&quot;https://www.docker.com/products/docker-desktop&quot;&gt;Docker&lt;/a&gt;, &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VSCode&lt;/a&gt;, and a special &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack&quot;&gt;extension pack&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With &lt;a href=&quot;https://crystal-lang.org/&quot;&gt;Crystal&lt;/a&gt; reaching a 1.0 milestone soon,
I decided to dive in and create a Crystal specific dev container:&lt;/p&gt;
&lt;pre class=&quot;language-dockerfile&quot;&gt;&lt;code class=&quot;language-dockerfile&quot;&gt;&lt;span class=&quot;token instruction&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;ARG&lt;/span&gt; VARIANT=&lt;span class=&quot;token string&quot;&gt;&quot;20.04&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token instruction&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;FROM&lt;/span&gt; mcr.microsoft.com/vscode/devcontainers/base:0-ubuntu&lt;span class=&quot;token variable&quot;&gt;${VARIANT}&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token instruction&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;RUN&lt;/span&gt; apt-get update &amp;amp;&amp;amp; &lt;span class=&quot;token operator&quot;&gt;&#92;&lt;/span&gt;
    apt-get install -y build-essential curl libevent-dev libssl-dev libxml2-dev libyaml-dev libgmp-dev git &amp;amp;&amp;amp; &lt;span class=&quot;token operator&quot;&gt;&#92;&lt;/span&gt;
    apt-get clean &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*&lt;/span&gt;

&lt;span class=&quot;token instruction&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;RUN&lt;/span&gt; curl -sL &lt;span class=&quot;token string&quot;&gt;&quot;https://keybase.io/crystal/pgp_keys.asc&quot;&lt;/span&gt; | apt-key add - &amp;amp;&amp;amp; &lt;span class=&quot;token operator&quot;&gt;&#92;&lt;/span&gt;
echo &lt;span class=&quot;token string&quot;&gt;&quot;deb https://dist.crystal-lang.org/apt crystal main&quot;&lt;/span&gt; | tee /etc/apt/sources.list.d/crystal.list &amp;amp;&amp;amp; &lt;span class=&quot;token operator&quot;&gt;&#92;&lt;/span&gt;
apt-get update&lt;/span&gt;

&lt;span class=&quot;token instruction&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;RUN&lt;/span&gt; apt install -y crystal&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/braidn/5ba7eb65a43bccbe30a1607152382955&quot;&gt;Here is a wget/curlable version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once VSCode starts up using the above Dockerfile,
the entire Crystal development chain will be available through VSCode&#39;s terminal&lt;/p&gt;
&lt;p&gt;As an added bonus,
When initializing a devcontainer in a repository,
a &lt;code&gt;devcontainer.json&lt;/code&gt; file is automatically created that allows for some container specific overides.
The extension listed below, when added to the &lt;code&gt;devcontainer.json&lt;/code&gt; extension collection,
will provide Language Server Support to any &lt;code&gt;.cr&lt;/code&gt; file (along with a lot of other Crystal specific goodies).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;faustinoaq.crystal-lang&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>A Case For Consolidation Of Words</title>
    <link href="https://cloudbacon.com/posts/2020-09-13-consolidating-words/"/>
    <updated>2020-09-13T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-09-13-consolidating-words/</id>
    <content type="html">&lt;p&gt;There are &lt;a href=&quot;https://cloudbacon.com/posts/2018-05-29-the-case-for-a-programmers-shop-manual/&quot;&gt;quite&lt;/a&gt; a &lt;a href=&quot;https://cloudbacon.com/posts/2017-09-19-the-easiest-way-to-be-a-better-developer/&quot;&gt;few&lt;/a&gt; &lt;a href=&quot;https://cloudbacon.com/posts/2017-05-11-being-remote-and-successful/&quot;&gt;posts&lt;/a&gt; around here that highlight the power of writing.
Either through the lens of a remote programmer or
using the medium as a force multplier for education purposes.&lt;/p&gt;
&lt;p&gt;Throughout the past couple of years,
I have stepped away from public writing (this space),
and focused on actual writing and working in an &#39;open&#39; &lt;a href=&quot;https://github.com/braidn/Knowledge-Repo&quot;&gt;Wiki space&lt;/a&gt;.
This meant that alot of work never made it into the open.
Anything offline, was tucked away in &lt;a href=&quot;https://fieldnotesbrand.com/&quot;&gt;Field Notes&lt;/a&gt; or
a &lt;a href=&quot;https://www.baronfig.com/&quot;&gt;Baronfig Confidant&lt;/a&gt; and the only digital item was available on GitHub.&lt;/p&gt;
&lt;p&gt;For most folks,
GitHub isn&#39;t a super easy way to consume prose style content.
Coupled with my use of physical paper,
I realized that I was building a fairly extensive &#39;semi-digital&#39; garden but,
one hundred percent of it behind a high wall.
The entirety of these hurdles is what lead to moving &lt;strong&gt;everything&lt;/strong&gt; to &lt;a href=&quot;https://roamresearch.com/&quot;&gt;Roam Reasearch&lt;/a&gt; earlier on this year.&lt;/p&gt;
&lt;p&gt;This meant porting &lt;a href=&quot;https://www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry/dp/0060589469&quot;&gt;Robert Pirsig&#39;s&lt;/a&gt; &#39;programmers shop manual&#39;,
my large &lt;a href=&quot;https://github.com/braidn/Knowledge-Repo&quot;&gt;wiki&lt;/a&gt;,
an entire year of &lt;a href=&quot;https://www.agenda.com/&quot;&gt;Agenda&lt;/a&gt;,
and five years of &lt;a href=&quot;https://dayoneapp.com/&quot;&gt;Day One&lt;/a&gt; into a completely new platform.
One that didn&#39;t have any offline capabilities,
mobile app,
or even a mobile site (as of January 2020).
This was a &#39;leap of faith&#39;,
especially for someone who could be considered a zealot about writing and journaling.
So how did the experience turn out?&lt;/p&gt;
&lt;p&gt;Having re-tooled a lot of my note taking around &lt;a href=&quot;https://www.agenda.com/&quot;&gt;Agenda&lt;/a&gt;
and focused on a more &#39;&lt;a href=&quot;https://en.wikipedia.org/wiki/Zettelkasten&quot;&gt;Zettelkastan&lt;/a&gt;&#39; approach that worked on a day-to-day basis,
Roam was an easy fit.
Linking to notes and especially linking to specific blocks (think nested bullet points),
added an even easier way to link notes to one another,
versus just through tagging.
This, coupled with the markdown import feature to ingest my &lt;a href=&quot;https://github.com/braidn/Knowledge-Repo&quot;&gt;wiki&lt;/a&gt; content,
made moving pieces of my brain from one system into Roam a dawdle.
However, there remains one system that I can&#39;t grok when porting prose to Roam.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2012-12-16-boredom-to-getting-something-done/&quot;&gt;Task management&lt;/a&gt; and &lt;a href=&quot;https://cloudbacon.com/posts/2013-02-02-make-it-sexy-productive/&quot;&gt;productivity&lt;/a&gt; are often topics of discussion around here.
&lt;a href=&quot;https://twitter.com/search?q=Omnifocus%20(from%3Abraidn)&amp;amp;src=typed_query&quot;&gt;Therefore, it should come to no surprise that I am an avid&lt;/a&gt; &lt;a href=&quot;https://www.omnigroup.com/omnifocus&quot;&gt;OmniFocus&lt;/a&gt; &#39;zealot&#39;.
Having started using it way back in 2009,
I naturally have a proclivity to being productive the way OmniFocus expects.
Focusing on task management in this capacitiy and with the assistance of OmniFocus,
is why I am where I am in my life.&lt;/p&gt;
&lt;p&gt;After several weeks of &lt;strong&gt;just&lt;/strong&gt; Roam as a task tool,
it became blatently clear that I required a more native approach with text-to-speach integration and
a way to email todos directly into a system.
This isn&#39;t a bad thing though.
Roam is more the research arm of my task management.
It&#39;s a space where higher level and longer lived projects live.
Think workspaces for entire projects,
spaces for quarterly goal planning or tracking,
and long form writing styled: weekly retrospectives.&lt;/p&gt;
&lt;p&gt;Both systems see links to one another and
I don&#39;t see this changing anytime soon.
They both have their distinct purposes however,
I am deeply happy with the consolidation of research,
gardening, knowledge wrangling, journaling, and shop manuals into Roam.
The product has already changed considerably over the nearly 10 months of my use and
there doesn&#39;t seem to be anything that the feverish community can&#39;t wedge into the tool.&lt;/p&gt;
&lt;p&gt;If you are looking for something to consolidate your writing into,
I can&#39;t recommend it enough.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Uses This 2020 Edition</title>
    <link href="https://cloudbacon.com/posts/2020-09-29-uses-this-2020/"/>
    <updated>2020-09-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-09-29-uses-this-2020/</id>
    <content type="html">&lt;h3&gt;What is this?&lt;/h3&gt;
&lt;p&gt;Over the 10 ish years,
I have been fascinated with the website: &lt;a href=&quot;https://usesthis.com/&quot;&gt;usesThis&lt;/a&gt;.
It&#39;s a wonderful way to get a behind the scenes view of the hardware and software that people use.
The folks who take part range from game developers to makers.
This leads to ecclectic answers to 4 specific questions.&lt;/p&gt;
&lt;p&gt;In the spirit of this format,
I figured it would be fun to write my own &#39;interview&#39;.
So without producing too much intro fluff,
let&#39;s get started.&lt;/p&gt;
&lt;h3&gt;Who are you and what do you do?&lt;/h3&gt;
&lt;p&gt;Heya, I&#39;m Braden Douglass or &#39;phonetically&#39; &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;@braidn&lt;/a&gt; throughout the web.
I am a Fullstack, mostly Back-End leaning developer at &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt;.
Most of my arrant thoughts end up on my personal blog titled: &lt;a href=&quot;https://cloudbacon.com/&quot;&gt;Cloudbacon&lt;/a&gt; and
I have a ton of odd projects strewed throughout &lt;a href=&quot;https://github.com/braidn/&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In my off time,
I tend to be a bit of a programming language explorer.
At its core,
this means that I spend,
usually around a year,
to explore the ins and outs of a single programming language.
Some of the languages that I have had the honor to build software in span:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/JavaScript&quot;&gt;JavaScript&lt;/a&gt;, &lt;a href=&quot;https://www.typescriptlang.org/&quot;&gt;TypeScript&lt;/a&gt;, &lt;a href=&quot;https://crystal-lang.org/&quot;&gt;Crystal&lt;/a&gt;,
&lt;a href=&quot;https://clojure.org/&quot;&gt;Clojure&lt;/a&gt;, &lt;a href=&quot;https://elixir-lang.org/&quot;&gt;Elixir&lt;/a&gt;, &lt;a href=&quot;https://rescript-lang.org/&quot;&gt;Rescript/ReasonML&lt;/a&gt;, &lt;a href=&quot;https://golang.org/&quot;&gt;GoLang&lt;/a&gt;,
&lt;a href=&quot;https://elm-lang.org/&quot;&gt;Elm&lt;/a&gt;, &lt;a href=&quot;https://www.erlang.org/&quot;&gt;Erlang&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/Io_(programming_language)&quot;&gt;Io&lt;/a&gt;, &lt;a href=&quot;https://www.lua.org/&quot;&gt;Lua&lt;/a&gt;, &lt;a href=&quot;https://www.perl.org/&quot;&gt;Perl&lt;/a&gt;,
and likely a few more along my journey.
Along with programming languages,
I am also deeply interested in exploring sound &lt;a href=&quot;https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system&quot;&gt;type systems&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;What hardware do you use?&lt;/h3&gt;
&lt;p&gt;My main and only computer is a late 2019 13inch MacBook Pro.
Lots of folks seem to have problems with their 2016-2019 MacBooks.
They complain a lot about missing escape keys (more on this later),
poor keyboards, or wifi/bluetooth modules that are flakey.&lt;/p&gt;
&lt;p&gt;If I am being completely honest,
I have never used an escape key that wasn&#39;t bound to Caps Lock.
That key is a whole lot closer to the home row than an Esc key will ever be.
I also haven&#39;t used a built-in keyboard in such a long time due to the awesomeness that is the &lt;a href=&quot;https://happyhackingkb.com/&quot;&gt;HHKB&lt;/a&gt;.
They are smaller (60%) keyboards that have comfortable key travel and
plastic cases.
They can slip into a backpack and used, without too many judging eyes, under a coffee shop table.&lt;/p&gt;
&lt;p&gt;Besides the HHKB,
there are a host of other keyboards that get plugged into the laptop.
A &lt;a href=&quot;https://rama.works/m60-a&quot;&gt;Green M60-a&lt;/a&gt; with &lt;a href=&quot;https://zealpc.net/products/tealio&quot;&gt;Tealio switches&lt;/a&gt;,
a &lt;a href=&quot;https://www.deskcandy.xyz/modern-m0110&quot;&gt;Modern M0110&lt;/a&gt; with &lt;a href=&quot;https://en.wikipedia.org/wiki/Alps_Electric&quot;&gt;NOS SKCL Alps green&lt;/a&gt; switches,
and two &lt;a href=&quot;https://shop.norbauer.com/&quot;&gt;Norbauer&lt;/a&gt; TKLs.&lt;/p&gt;
&lt;p&gt;Due to the MacBook having 4 seriously amazing Thunderbolt 3 ports,
when at home it get&#39;s plugged into a &lt;a href=&quot;https://www.caldigit.com/ts3-plus/&quot;&gt;Caldigit Thunderbolt dock&lt;/a&gt;.
This feeds an old &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_Cinema_Display&quot;&gt;27 inch MiniDisplay Port Apple Cinema Display&lt;/a&gt;
and some random 24 inch vertical Asus monitor.
Other random things that are plugged into the Caldigit is
some old &lt;a href=&quot;https://www.ergocanada.com/products/mice/trackballs/clearly_superior_technologies/pc-trac_trackball/cst_pctrac_trackball.html&quot;&gt;CST Trackball&lt;/a&gt; (when they were CST),
a hot swappable &lt;a href=&quot;https://www.ergodox.io/&quot;&gt;Ergodox&lt;/a&gt;,
and a &lt;a href=&quot;https://www.schiit.com/products/fulla-1&quot;&gt;Schiit Fulla&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Due to some software choices (below),
I am pretty indept to the Apple ecosystem this means my phone
is some &lt;a href=&quot;https://www.apple.com/iphone-11-pro/&quot;&gt;Pro derivative of the current IPhone generation&lt;/a&gt;.
A few years ago one of my phones experienced a random logic board failure.
Due to this unfortunate turn of events,
I have been apart of &lt;a href=&quot;https://www.apple.com/shop/iphone/iphone-upgrade-program&quot;&gt;Apple&#39;s rent-a-phone program&lt;/a&gt; ever since.
While the iPhone has had a slightly incremental design philosophy over the past few years,
I still pine for the old 4s/5 designs.
The glass backs shattered instantly and antenna gate but,
the blocky design was so fun versus the rounded corners of today&#39;s slippery iPhones.&lt;/p&gt;
&lt;p&gt;Everything digitally that I have ever owned is backed up to a &lt;a href=&quot;https://www.synology.com/en-global/support/download/DS918+#firmware&quot;&gt;Synology DS918+&lt;/a&gt;.
It&#39;s filled with &lt;a href=&quot;https://www.seagate.com/internal-hard-drives/hdd/ironwolf/&quot;&gt;4TB Iron Wolf Pro&lt;/a&gt; NAS drives and utilizes an MSATA cache
runing a pair of &lt;a href=&quot;https://www.samsung.com/semiconductor/minisite/ssd/product/consumer/960evo/&quot;&gt;256GB Samsung 960 EVO&lt;/a&gt; M.Sata drives.
This was a bit of an upgrade from an older Drobo and wowzers!
The speed, throughput and functionality of these Synologies is spectacular.&lt;/p&gt;
&lt;p&gt;For capturing life stills I adore anything from Fuji.
I recently decided to pick up an &lt;a href=&quot;https://fujifilm-x.com/en-us/products/cameras/x-pro3/&quot;&gt;Xpro-3&lt;/a&gt; to pair with
both a &lt;a href=&quot;https://fujifilm-x.com/global/products/lenses/xf23mmf2-r-wr/&quot;&gt;23 f2&lt;/a&gt; and &lt;a href=&quot;https://fujilove.com/why-i-love-the-fujinon-xf35mm-f1-4-r/&quot;&gt;35 f1/4&lt;/a&gt;.
The Xpro is so quirky with its&#39; missing rear LCD however,
the pictures it produces are spectacular.
The 23 f2 lens is what I predominatly travel with due to it being weather sealed and
, if I am being honest, the best focal length of any Fuji lens.
The 35 produces better images but,
it&#39;s much bulkier and tends to stay around the house due to no weather resistance.&lt;/p&gt;
&lt;p&gt;For my scribbling needs I still turn to &lt;a href=&quot;https://fieldnotesbrand.com/&quot;&gt;Field Notes&lt;/a&gt; and
any pen with a &lt;a href=&quot;https://www.nibandink.com/pens/2015/8/13/review-schmidt-easyflow-9000-refill&quot;&gt;Schmidt easyFlow 9000&lt;/a&gt; refill.&lt;/p&gt;
&lt;h3&gt;And what software?&lt;/h3&gt;
&lt;p&gt;99 percent of all code originates in &lt;a href=&quot;https://neovim.io/&quot;&gt;NeoVim&lt;/a&gt;.
It&#39;s not a terrible environment and to be honest the,
built in Lua engine has led to some spectacular,
none-vimscript (or Python) plugins.
I also author most blog posts and slides in NeoVim as well.
At one time I was a huge believer in &lt;a href=&quot;https://github.com/tmux/tmux/wiki&quot;&gt;Tmux&lt;/a&gt; but,
over the years its rendering speed has fallen by the wayside.
This has led me to pickup &lt;a href=&quot;https://sw.kovidgoyal.net/kitty/index.html&quot;&gt;Kitty&lt;/a&gt; as a terminal emulator
and leave the multiplexers behind.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; and &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; manage most of my environments.
Having an enviornment that&#39;s quick to spin up,
especially if I just dropped my laptop in the toilet,
has been a huge focus of mine over the years.
The tool that makes this possible (aside from HomeBrew and Docker) is
a tiny shell tool called: &lt;a href=&quot;https://github.com/mikemcquaid/strap&quot;&gt;strap&lt;/a&gt;.
At its&#39; core it&#39;s the spiritual successor to &lt;a href=&quot;https://github.com/boxen/boxen/&quot;&gt;Boxen&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I use &lt;a href=&quot;https://git-scm.com/&quot;&gt;Git&lt;/a&gt; and &lt;a href=&quot;https://github.com/braidn/&quot;&gt;GitHub&lt;/a&gt; to be social around code
and as a tool for version control.
Any time I find something interesting on the web it gets saved to &lt;a href=&quot;https://pinboard.in/&quot;&gt;Pinboard&lt;/a&gt; and
&lt;a href=&quot;https://feedbin.com/&quot;&gt;Feedbin&lt;/a&gt;.
Bookmarks and RSS are still some of the more simple ways to capture HTML based content.
When I want to read something longer-form, I reach for &lt;a href=&quot;https://apps.apple.com/us/app/marvin-3/id1086482858&quot;&gt;Marvin&lt;/a&gt;.
More technical books are consumed from &lt;a href=&quot;https://www.oreilly.com/&quot;&gt;Safari Online&#39;s splendid iOS app&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When it comes to planning work along with my life, I lean heavily on &lt;a href=&quot;https://www.omnigroup.com/omnifocus&quot;&gt;OmniFocus&lt;/a&gt;.
This one app has kept me on track throughout the past 10 or so years.
I stick pretty heavily to a &lt;a href=&quot;https://en.wikipedia.org/wiki/Getting_Things_Done&quot;&gt;GTD&lt;/a&gt; mindset,
especially when it comes to the notion of contexts or &#39;spheres of focus&#39;.&lt;/p&gt;
&lt;p&gt;Productivity is usually divided into two parts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One part for planning&lt;/li&gt;
&lt;li&gt;And one part for research.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;My streak using note taking tools has been considerably shorter than OmniFocus.
However, in the past year I have settled nicely into &lt;a href=&quot;https://roamresearch.com/&quot;&gt;Roam&lt;/a&gt;.
Roam&#39;s ability to become better the more info you throw at it is exactly what I need.
I produce a lot of written thought and using Roam&#39;s linking and query filters,
allow me to easily navigate the jumble that is my brain.
Doing this efficiently with a markdown wiki would be impossible/extremely inefficient.
Any prose and all prose begins its&#39; life in &lt;a href=&quot;https://getdrafts.com/&quot;&gt;drafts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I tend to explore the web privately using &lt;a href=&quot;https://www.mozilla.org/en-US/firefox/developer/&quot;&gt;Firefox Dev Edition&lt;/a&gt;,
listen to music on &lt;a href=&quot;https://www.spotify.com/us/&quot;&gt;Spotify&lt;/a&gt;,
and podcast through &lt;a href=&quot;https://overcast.fm/&quot;&gt;Overcast&lt;/a&gt;.
When I want to consume thoughts and opinions from &#39;humans&#39;,
I tend to reach for old school &lt;a href=&quot;https://en.wikipedia.org/wiki/Internet_Relay_Chat&quot;&gt;IRC&lt;/a&gt; using &lt;a href=&quot;https://www.codeux.com/textual/&quot;&gt;Textual&lt;/a&gt;
or just hang out on &lt;a href=&quot;https://tapbots.com/tweetbot/&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To wrangle all of this together (and across multiple screens),
I use a tiling window manager called &lt;a href=&quot;https://ianyh.com/amethyst/&quot;&gt;Amethyst&lt;/a&gt;,
&lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt; as a launcher,
and bake a lot of hotkeys into my keyboards using &lt;a href=&quot;https://github.com/qmk/qmk_firmware&quot;&gt;QMK&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;What would be your dream setup?&lt;/h3&gt;
&lt;p&gt;Maybe this will manifest itself soon but,
I would love to see a return of the 12 inch MacBook Pro.
This time running a super retina screen and
some overclocked (A14x or z) Mac-derived system on a chip.
Rocking 32 gigs of RAM with some silly battery life.
Two 16:10 ratio monitors mounted on arms (one horizontal, one vertical),
a &lt;a href=&quot;https://heilsound.com/products/pr-40/&quot;&gt;Heil PR40&lt;/a&gt; on boom for my voice and
a &lt;a href=&quot;https://www.usa.canon.com/internet/portal/us/home/products/details/cameras/eos-dslr-and-mirrorless-cameras/dslr/eos-7d&quot;&gt;Canon EOS 7D&lt;/a&gt; with a prime lense for crystal clear video content could round things off nicely.&lt;/p&gt;
&lt;p&gt;Other bits that would certainly enhance my life would be perhaps something running the &lt;a href=&quot;https://www.hodinkee.com/articles/grand-seiko-slgh003-hi-beat-60th-anniversary-le-featuring-the-new-dual-impulse-escapement&quot;&gt;caliber 9SAS&lt;/a&gt; dressed in steel for my wrist,
a 8-9&amp;quot; &lt;a href=&quot;https://www.cartercutlery.com/&quot;&gt;Chef&#39;s knife from Carter&lt;/a&gt;, and
an ergonomic &lt;a href=&quot;https://rama.works/u80-a&quot;&gt;U80&lt;/a&gt; with whatever the silent linear of the week is.&lt;/p&gt;
&lt;p&gt;Concerning software,
everything is pretty chill and likely will be for years.
For someone who pines for modal editing, driven by xmonad tiled windows,
new software isn&#39;t something to look out for.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://code.visualstudio.com/docs/remote/containers&quot;&gt;VSCodes dev containers&lt;/a&gt; though are cool and if these could extend to work at an OS level,
that could be quite interesting indeed!
Think:
opening a folder boots a Docker container that portals the user into a shell to be able to instantly work on whatever&#39;s in said folder.
Instant Developer productivity and with the only requirement being that Docker or a container like system installed on the computer.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Taming GitHub&#39;s Notification Flow</title>
    <link href="https://cloudbacon.com/posts/2020-11-12-github-notifications-flow/"/>
    <updated>2020-11-13T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-11-12-github-notifications-flow/</id>
    <content type="html">&lt;p&gt;Recently on our corporate blog: &lt;a href=&quot;https://medium.com/glossier&quot;&gt;Into The Tech&lt;/a&gt;,
&lt;a href=&quot;https://medium.com/glossier/notifications-a-story-about-time-and-space-7c272799f1f2&quot;&gt;I wrote&lt;/a&gt; about how to stymie the flow of GitHub notifications.&lt;/p&gt;
&lt;p&gt;While not great and somewhat unending,
GitHub really does offer a wonderful way to slice and dice notifications.
Most devs ignore this entire feature set of GitHub,
clicking ignore or banishing them from their inbox forever.
This post reformulates why those notifications might be worthwhile to keep around and
focuses on specific tactics to keep notifications actionable.&lt;/p&gt;
&lt;p&gt;Now there&#39;s no reason to leave a co worker hanging on their code review request!
Give &lt;a href=&quot;https://medium.com/glossier/notifications-a-story-about-time-and-space-7c272799f1f2&quot;&gt;the post a read&lt;/a&gt; and feel free to &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;reach out on the socials&lt;/a&gt;
to share any tips you use to aid in a more clear collection of GitHub notifications.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Running Service Containers in GitHub Actions</title>
    <link href="https://cloudbacon.com/posts/2020-11-30-external-services-within-github-actions/"/>
    <updated>2020-11-30T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-11-30-external-services-within-github-actions/</id>
    <content type="html">&lt;p&gt;Recently I have been exploring &lt;a href=&quot;https://sorbet.org/&quot;&gt;Sorbet&lt;/a&gt; in a hyper small &lt;a href=&quot;https://github.com/braidn/omura&quot;&gt;e-commerce project&lt;/a&gt;.
The impetus of the project is to strip the complexity out of running a custom store.
To accomplish this,
I opted to drive all product info into Stripe (along with the obvious orders and pricing).
In the past, many of my projects utilized the &lt;a href=&quot;https://github.com/stripe-ruby-mock/stripe-ruby-mock&quot;&gt;Stripe Mock gem&lt;/a&gt;.
While the gem works great,
it seems to be a bit long in the tooth and not a first class citizen from the Stripe folks.&lt;/p&gt;
&lt;p&gt;Turns out that those aformentioned Stripe folks &lt;a href=&quot;https://github.com/stripe/stripe-mock&quot;&gt;maintain a mock server&lt;/a&gt;.
Even better? That mock server is completely containerized.
This means that any application,
no matter the language,
can access a mock server that&#39;s &lt;em&gt;always&lt;/em&gt; up-to-date.
Getting this wired up locally was a breeze however,
the project&#39;s CI runs on &lt;a href=&quot;https://github.com/features/actions&quot;&gt;GitHub Actions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although GitHub&#39;s Actions yaml file resembles a Docker Compose file,
I struggled to get the tests to be able to connect to the running Stripe Mock container.
After doing a bit further digging,
It appears that the conventional action setup runs each task on the VM that hosts the job.
When using a container name and image,
then the actions use the containerized environment; much like Docker Compose.&lt;/p&gt;
&lt;p&gt;Although each action runtime exposes their port and url differently,
they both can access services created from Docker images.
When running conventional actions (without the container declaration),
the services all run at &lt;code&gt;localhost&lt;/code&gt; and on their designated ports.
This means the Stripe Mock library would be accessible at &lt;code&gt;localhost:12111&lt;/code&gt;.
This is way different than if run in a container.&lt;/p&gt;
&lt;p&gt;The containers version,
like Docker Compose,
will expose the container using the name of the service,
not localhost.
Both methods are fairly easy to configure however,
it seems the runtime differences are sparsly documented?
Below is an example of a GitHub Action file with a Stripe Mock server available at &lt;code&gt;localhost:12111&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;runs-on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ubuntu&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;latest
    &lt;span class=&quot;token key atrule&quot;&gt;services&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;stripe&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; stripemock/stripe&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;mock&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;latest
        &lt;span class=&quot;token key atrule&quot;&gt;ports&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; 12111&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;12111&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;--health-cmd &quot;curl -H &#39;Authorization&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Bearer sk_test_nH1uriQSPitliwjtAuGugMvx&#39; &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;sS http&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;//stripe&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;12111/v1/products &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt; echo exit 1&quot;
          &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;health&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;interval 10s
          &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;health&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;timeout 5s
          &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;health&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;retries 5
    &lt;span class=&quot;token key atrule&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; actions/checkout@v2
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Set up Ruby
        &lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; ruby/setup&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;ruby@v1
        &lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;ruby-version&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2.7&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;bundler-cache&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Install dependencies
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; bundle install
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Run tests
        &lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; bundle exec ruby &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;Itest &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;e &#39;Dir&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;./test/**/{test_*,*_test}.rb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;.each &lt;span class=&quot;token important&quot;&gt;&amp;amp;method(:require)&#39;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;STRIPE_API_KEY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; sk_test_nH1uriQSPitliwjtAuGugMvx
          &lt;span class=&quot;token key atrule&quot;&gt;STRIPE_URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; localhost&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;one more thing&lt;/strong&gt;...&lt;br /&gt;
As a &#39;best practice&#39; when building testing suites that rely on Docker containers,
It&#39;s often prudent to block &lt;em&gt;all&lt;/em&gt; external communication except to allowed sources.
This is a breeze using something like &lt;a href=&quot;https://github.com/bblimke/webmock&quot;&gt;WebMock&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-ruby&quot;&gt;&lt;code class=&quot;language-ruby&quot;&gt;WebMock&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;disable_net_connect&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token symbol&quot;&gt;allow&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;token content&quot;&gt;&lt;span class=&quot;token constant&quot;&gt;ENV&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal&quot;&gt;&lt;span class=&quot;token string&quot;&gt;&#39;STRIPE_URL&#39;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;:12111&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now there&#39;s zero chance that anyone can add test data to the real Stripe test instance.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>2021 Programming Language Selection</title>
    <link href="https://cloudbacon.com/posts/2020-12-16-language-choices-for-2021/"/>
    <updated>2020-12-16T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-12-16-language-choices-for-2021/</id>
    <content type="html">&lt;p&gt;In many posts throughout the years,
I have actively mentioned learning a new programming language every year:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2020-05-26-new-language-for-2020/&quot;&gt;2020&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2018-09-13-brainstorming-new-posts/&quot;&gt;2018&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloudbacon.com/posts/2017-09-19-the-easiest-way-to-be-a-better-developer/&quot;&gt;2017&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The push to focus on a single new language to better one&#39;s career originates from Andy Hunt and Dave Thomas in their amazing tome:
&lt;a href=&quot;https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/&quot;&gt;The Pragmatic Programmer&lt;/a&gt;.
Having gone through this excersice for the past 9 years,
means there aren&#39;t a lot of mainstream languages left to explore.
Due to this,
&lt;a href=&quot;https://twitter.com/braidn/status/1338310320251691008&quot;&gt;I reached out to the greater Twitter community&lt;/a&gt; to help deciding on what 2021 might look like.&lt;/p&gt;
&lt;h3&gt;Choice 1&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.idris-lang.org/&quot;&gt;Idris&lt;/a&gt;, while a language that speaks to my love of types,
is still &lt;em&gt;extremely&lt;/em&gt; young.
And wthout a clear sense of metaprogramming in the standard library,
I might hold off on it until 2022 or 2023 even.
Saying that,
a language&#39;s age or adoption rate shouldn&#39;t deter folks from choosing it for a yearly project.
A great example being:
two years ago when I learned &lt;a href=&quot;https://reasonml.github.io/&quot;&gt;ReasonML&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Choice 2&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://deno.land/&quot;&gt;Deno&lt;/a&gt;,
while not a truly &#39;new&#39; language,
does have a sense to it that makes it something different than &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;NodeJS&lt;/a&gt;.
The adoption of &lt;a href=&quot;https://deno.land/&quot;&gt;Deno&lt;/a&gt; in &lt;a href=&quot;https://en.wikipedia.org/wiki/Serverless_computing&quot;&gt;serverless&lt;/a&gt; and CLI tooling does have a huge overlap with the team I work with day-to-day.
This means that anything learned now,
could be relevant to life at &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; and &lt;a href=&quot;https://www.netlify.com/products/edge/&quot;&gt;beyond&lt;/a&gt;.
Which funny enough,
would be the first time work overlapped with a yearly language exploration... &lt;em&gt;Ever&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;2021 is going to be a year that the whole &lt;a href=&quot;https://en.wikipedia.org/wiki/Serverless_computing&quot;&gt;serverless&lt;/a&gt; revolution sees high demand and adoption (IMHO).
There&#39;s a lot of space here to build &#39;mashup style&#39; applications that have a thin vaneer of business logic and
a large swath of infrastructure.
Languages that can both build and run on these platforms will be relevant for anyone to explore in the coming year.&lt;/p&gt;
&lt;p&gt;Also learning a language in 2021? &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;Reach out on Twitter&lt;/a&gt; and share!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>DynamoDB Without DocumentClient in AWS&#39;s V3 SDK</title>
    <link href="https://cloudbacon.com/posts/2020-12-31-dynamodb-v3-aws-sdk/"/>
    <updated>2020-12-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2020-12-31-dynamodb-v3-aws-sdk/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/blogs/developer/modular-aws-sdk-for-javascript-is-now-generally-available/&quot;&gt;AWS recently announced general availability of their new (V3) version of their JavaScript SDK&lt;/a&gt;.
The V2 version of the SDK packaged &lt;em&gt;all&lt;/em&gt; of AWS&#39;s core services in one big export.
This meant that it was easy to get access to a myriad of services with one &lt;code&gt;npm install&lt;/code&gt;.
However,
the downsize was the general HUGENESS of the node module.
If folks were relying on a specific version of the V2 SDK by building it into a layer,
this would mean a large performance loss in loading all that code into each Lambda&#39;s cold start.&lt;/p&gt;
&lt;p&gt;With the above announcement though,
Those hefty layers are a thing of the past.
Programmers can pick and choose the &lt;strong&gt;exact&lt;/strong&gt; packages they need
and bundle them together in a hyper small, performant layer.&lt;/p&gt;
&lt;p&gt;Not everything is roses and peanut butter with this new release though.
AWS left something pretty major out of this new SDK: &lt;a href=&quot;https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/dynamodb-example-document-client.html&quot;&gt;the DynamoDB DocumentClient&lt;/a&gt;.
The DocumentClient has been a key tool in coersing JavaScript objects into and out of DynamoDB.
This coupled with &#39;ORM like methods (&lt;code&gt;query&lt;/code&gt;, &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;put&lt;/code&gt;, etc) made this module indispensable.
Not having access to these niceties would set back productivity for any programmer.
Forcing them to stick with the older SDK version.&lt;/p&gt;
&lt;p&gt;Fear not; there is a path forward!
The SDK exposes a &lt;a href=&quot;https://github.com/aws/aws-sdk-js-v3/blob/master/packages/util-dynamodb/README.md&quot;&gt;new package titled: &#39;util-dynamodb&#39;&lt;/a&gt;.
Specifically, two helper methods that will make our marshalling lives easier: &lt;code&gt;marshall&lt;/code&gt; and &lt;code&gt;unmarshall&lt;/code&gt;.
If you aren&#39;t familiar with the term: &#39;marshalling&#39;,
&lt;a href=&quot;https://en.wikipedia.org/wiki/Marshalling_(computer_science)&quot;&gt;this article has you covered&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is the ability to serialize or &#39;marshall&#39; a JavaScript object into the expected DynamoDB &#39;Item&#39; structure
as well as unmarshall the response back into a &#39;handy&#39; JavaScript object.
What does this look like in practice,
specifically around &lt;a href=&quot;https://en.wikipedia.org/wiki/Create,_read,_update_and_delete&quot;&gt;Create, Read, Update, Delete&lt;/a&gt; style actions?&lt;/p&gt;
&lt;h3&gt;Setup&lt;/h3&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; marshall&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; unmarshall &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@aws-sdk/util-dynamodb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; DynamoDB &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@aws-sdk/client-dynamodb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; ddb &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;DynamoDB&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Make sure to &lt;code&gt;npm i&lt;/code&gt; these modules but,
importing them where needed is key (as with all node modules).
Secondly, we need a new instance of the DynamoDB class to alter items in the database.&lt;/p&gt;
&lt;h3&gt;Create&lt;/h3&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;createNote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;note&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Note&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; params &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;defaultParams&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;Item&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;marshall&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;note&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; ddb&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;putItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;params&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; note
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Marshalling the item into a format for DynamoDB is required when inserting them into the database.&lt;/p&gt;
&lt;h3&gt;Read&lt;/h3&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getNoteById&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; params &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;defaultParams&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;Key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;marshall&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; id &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; Item &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; ddb&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;params&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; Item &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;unmarshall&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Item&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Like with the create function above,
the &#39;Key&#39; to the &lt;code&gt;getItem&lt;/code&gt; (&lt;code&gt;id&lt;/code&gt; in this case) must be marshalled.
Along with that,
the response from the database must be unmarshalled back to a JavaScript object.&lt;/p&gt;
&lt;h3&gt;Update&lt;/h3&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;updateNote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;note&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Note&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; UpdateItemInput &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;defaultParams&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;Key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;marshall&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token literal-property property&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; note&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;id&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;UpdateExpression&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;ReturnValues&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;UPDATED_NEW&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; prefix &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;set &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;keys&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;note&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;attr&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;attr &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      params&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;UpdateExpression&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;prefix&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;attr&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; = :{attr}&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      params&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;ExpressionAttributeValues&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;attr&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; note&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;attr&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      params&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;ExpressionAttributeNames&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;attr&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; attr&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      prefix &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;, &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; ddb&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;updateItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;params&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; note&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is TypeScript after all...
Meaning we need some foreign &lt;code&gt;!&lt;/code&gt; methods between attribute assignment.
This &lt;em&gt;just&lt;/em&gt; means that we are informing the compiler that we &#39;guarentee&#39; that those assignments will never be &lt;code&gt;undefined&lt;/code&gt;.
Besides this,
there isn&#39;t anything special here.
We are reconstructing the required attributes for the &lt;code&gt;updateItem&lt;/code&gt; function and calling it on the database instance.&lt;/p&gt;
&lt;h3&gt;Delete&lt;/h3&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;deleteNote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; params &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;defaultParams&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;Key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;marshall&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      id&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; ddb&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;deleteItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;params&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; id&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Removing or deleting an item is just as simple reading a single note by id.
The id is marshalled and the params are past onto the &lt;code&gt;deleteItem&lt;/code&gt; function&lt;/p&gt;
&lt;p&gt;And that&#39;s it!
If this were a Lambda function,
there would be a massive invocation savings by &lt;em&gt;only&lt;/em&gt; needing to package a layer with these two modules,
versus the entire V2 SDK.
Sure there is tree shaking, blah, blah, blah but,
this method guarentees that the invocation environment has &lt;em&gt;only&lt;/em&gt; the needed modules.&lt;/p&gt;
&lt;p&gt;What are folks plans when it comes to moving to this new V3 SDK?
Reach out on &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;Twitter&lt;/a&gt; and share your upgrading experiences.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Truths Not So Vigilantly Held.</title>
    <link href="https://cloudbacon.com/posts/2021-01-31-truths-no-longer-truths/"/>
    <updated>2021-01-31T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-01-31-truths-no-longer-truths/</id>
    <content type="html">&lt;p&gt;Software engineers are pretty great at holding onto ideas for...
Well, what feels like infinity.
Some grey-beard will impart a slice of knowledge that completely blows us away when we were junior engineers.
Years later,
seemly with little validation,
we continue to clutch so dear to this knowledge.
We even pass it around to other newly juniored engineers or in peer groups as if it&#39;s some kind of gospel.
However,
these &#39;nuggets of gold&#39; are often opinions that should be loosly held,
rigorously tested on a yearly interval,
and continually explored with other engineers in your discepline (front-end/back-end).&lt;/p&gt;
&lt;p&gt;Over the &lt;em&gt;entirety of 2020&lt;/em&gt; I began to question and
think a little differently concerning some of the above.
The following is a list of opinions that I gathered, let go of, and ultimatly kept in my clutches.&lt;/p&gt;
&lt;p&gt;The structure of this post is highly influenced by &lt;a href=&quot;https://chriskiehl.com/article/thoughts-after-6-years&quot; title=&quot;https://chriskiehl.com/article/thoughts-after-6-years&quot;&gt;this wonderfully written piece&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Items Dropped&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;TDD is the only way to build great software. TDD is one great way, there are so many more.&lt;/li&gt;
&lt;li&gt;Never copy and paste. Not everyone has used Vim for a bajillion years.&lt;/li&gt;
&lt;li&gt;Being correct is not some form of &#39;winning&#39;. Listening and being mindful is.&lt;/li&gt;
&lt;li&gt;Tools don&#39;t matter. Not really. There&#39;s bound to be a better one soon so don&#39;t die on the tool du jour&#39;s hill.&lt;/li&gt;
&lt;li&gt;Your work sells itself. There is a distinct need to sell everything you do (inside and out of &#39;work&#39;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Things Learned/Accumulated&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Build your own tools within reason.
Most of the time existing libraries carry too many tradeoffs and will ultimatly slow down the building of software.&lt;/li&gt;
&lt;li&gt;Not all currencies have a unicode symobl.
After being in ecommerce all these years, this fact blows my brain.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/v/_H6IdfKb1-Y&quot;&gt;Make a mess&lt;/a&gt;. There&#39;s a formatter, test suite, or linter that&#39;s got your back.&lt;/li&gt;
&lt;li&gt;Nothing lasts forever. Whatever you build, make it small enough to quickly rewrite, perhaps in as much as two &#39;sprints&#39;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Opinions Still Closely Clutched!&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Write well; exceptionally well.
Never give up when it comes to striving to make yourself better understood through prose.&lt;/li&gt;
&lt;li&gt;Read anything that interests you. There are gems of knowledge in any form of writing.&lt;/li&gt;
&lt;li&gt;Look for &lt;a href=&quot;https://en.wikipedia.org/wiki/Outliers_%28book%29&quot;&gt;the outliers&lt;/a&gt;. They are the ones doing the hard/fun/exciting/non-boring work.&lt;/li&gt;
&lt;li&gt;There are a small amount of tools required to be successful in programming.
Collect pens, paper, keyboards. Use the best tools you can find.&lt;/li&gt;
&lt;li&gt;Never stop building and toying with ideas.
Even the most shallow explorations can lead to breakthroughs in more complex projects.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Learning Something New.</title>
    <link href="https://cloudbacon.com/posts/2021-02-17-learning-as-a-developer/"/>
    <updated>2021-02-17T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-02-17-learning-as-a-developer/</id>
    <content type="html">&lt;p&gt;Software development, as a profession,
is a super quick moving behemoth.
Let&#39;s take the state of the front-end over the past 10 years:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10 Years ago we were shipping a large monolithic library (jQuery) to all clients.&lt;/li&gt;
&lt;li&gt;6 Years ago we were writing everything in white space indented Coffeescript&lt;/li&gt;
&lt;li&gt;2 Years ago we were bundling our single page apps with &lt;a href=&quot;https://webpack.js.org/&quot;&gt;webpack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Today we are doing no bundling during the developement process due to &lt;a href=&quot;https://www.snowpack.dev/concepts/dev-server&quot;&gt;snowpack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whatever is the chosen path for a developer (back-end, front-end, devops),
the process of staying up to-date and relevant is going to be a never-ending blitz.&lt;/p&gt;
&lt;p&gt;Often times companies utilize this fact to entice developers with a robust &#39;learning and development&#39; budget.
This often attracts developers who are intrinsically motivated to better themselves.
Of which will, in turn better the company they work for.
These perks could be as low-touch as a prepaid Visa card per year,
where others are a pooled amount of money alloted to specific purchases.
Some policies are more inclusive than others but,
the thing that &lt;em&gt;matters&lt;/em&gt; is that a policy exists and is available to everyone.&lt;/p&gt;
&lt;p&gt;If you are interviewing for a developer job at any company,
I can&#39;t stress this enough:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Push for information around learning and development during the &lt;a href=&quot;https://github.com/viraptor/reverse-interview&quot;&gt;reverse interview process&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If for some reason the company is small and they have a fixed budget,
cool!
These kind of budgets should not be deal breakers when it comes to assessing a career move.
Situations like this allow devs to share the financial load from one year to the next.&lt;/p&gt;
&lt;p&gt;However, if the story is that there is no learning and development budget...
Well that&#39;s a whole lot like:&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/0ZUurpO1KkA&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  
  <entry>
    <title>Testing GraphQL Schemas</title>
    <link href="https://cloudbacon.com/posts/2021-04-28-testing-graphql-schemas/"/>
    <updated>2021-04-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-04-28-testing-graphql-schemas/</id>
    <content type="html">&lt;p&gt;GraphQL still has a steep learning curve when it comes to implementing an API.
Not to mention,
how does one go about testing each part of a GraphQL API?
Since GraphQL is easily mocked due to the decoupling of &lt;a href=&quot;https://www.graphql-tools.com/docs/resolvers/&quot;&gt;resolvers&lt;/a&gt; from their &lt;a href=&quot;https://graphql.org/learn/schema/&quot;&gt;schema&lt;/a&gt;,
it&#39;s not all that complex to setup thorough unit tests.&lt;/p&gt;
&lt;p&gt;Before the code though,
it&#39;s important to setup some guard-rails beyond unit tests when it comes to your schema.
Specifically since designing a schema (or any API) should be an iterative process.
Some great tools that can aid in incrementally building a well structured Graph include:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cjoudrey/graphql-schema-linter&quot;&gt;A solid Linter&lt;/a&gt; to make sure the schema itself is properly written.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/kamilkisiela/graphql-inspector&quot;&gt;GraphQL Inspector&lt;/a&gt; to ensure that changes to the schema don&#39;t break the API&#39;s consumers.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With the those quick wins out of the way, let&#39;s focus on those aforementioned unit tests.&lt;/p&gt;
&lt;p&gt;There is a need to mock the return data of your schema,
we need to pull in a few packages from the &lt;a href=&quot;https://www.graphql-tools.com/&quot;&gt;graphql-tools&lt;/a&gt; library to perform this mocking.
Namely the &lt;code&gt;GraphQlFileLoader&lt;/code&gt; class from &lt;code&gt;@graphql-tools/graphql-file-loader&lt;/code&gt;,
&lt;code&gt;addMockToSchema&lt;/code&gt; from &lt;code&gt;@graphql-tools/mock&lt;/code&gt;, and
&lt;code&gt;loadSchemaSync&lt;/code&gt; from &lt;code&gt;@graphql-tools/load&lt;/code&gt;
These packages will allow the tests to introspect a &lt;code&gt;.graphql&lt;/code&gt; file,
mock the return values,
and allow the suite&#39;s assertion matchers to work their magic.
It&#39;s totally OK to install these as dev dependencies since they are not a requirement (usually) for runtime.&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; dirname&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; join &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;path&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fileURLToPath &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;url&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; loadSchemaSync &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;@graphql-tools/load&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; GraphQLFileLoader &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;@graphql-tools/graphql-file-loader&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; addMocksToSchema &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;@graphql-tools/mock&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; graphql &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;graphql&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; __dirname &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;dirname&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fileURLToPath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;meta&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; schema &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadSchemaSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;__dirname&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;../schema.graphql&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;loaders&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;GraphQLFileLoader&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; mocks &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function-variable function&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Funzones&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function-variable function&quot;&gt;Boolean&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; mockedSchema &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;addMocksToSchema&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; schema&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; mocks &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With the schema loaded,
the only thing left is to write a query and execute it with the &lt;a href=&quot;https://www.npmjs.com/package/graphql&quot;&gt;graphql&lt;/a&gt; package.&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; query &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;
  query funzoneFinder {
    funzoneById(id: &quot;512f5428-63d1-4bf4-8c23-467ac944e58d&quot;) { content { description, title } }
  }
&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;graphql&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mockedSchema&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; query&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
t&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;deepLooseEqual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;result&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;productById&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Funzones&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Funzones&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Funzones are actually fun&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above matcher example utilizes the lightweight and fabulous &lt;a href=&quot;https://github.com/substack/tape&quot;&gt;Tape&lt;/a&gt; testing library.
If most of an application is running outside of a browser,
it&#39;s a much more lightweight and performant way of testing over &lt;a href=&quot;https://jestjs.io/&quot;&gt;Jest&lt;/a&gt; (IMHO)&lt;/p&gt;
&lt;p&gt;With this setup,
a team can specifically test any access pattern that their consumers might utilize.
As another win,
these tests don&#39;t rely on slow resolvers,
meaning they execute quickly.
This should lead to fast feedback as a graph is constructed.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>It&#39;s Just Code</title>
    <link href="https://cloudbacon.com/posts/2021-05-23-its-just-code/"/>
    <updated>2021-05-23T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-05-23-its-just-code/</id>
    <content type="html">&lt;p&gt;It&#39;s been a long time (no seriously) since I have heard this phrase reiterated:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#39;It&#39;s just code&#39;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The emphasis being on the &#39;code&#39; part of the comment.&lt;/p&gt;
&lt;p&gt;This &#39;callout&#39; is a hallmark of senior/principle engineers who don&#39;t (or can&#39;t) understand the question at hand.
It&#39;s saying to the other party that there&#39;s a distinct lack of understanding on one side of the table.
Specifically, the side of the table that holds more &#39;weight&#39; at the organization.
To top it off, it belittles the person asking the question and likely makes them feel like &#39;less of a developer&#39;.
If it doesn&#39;t do any of these things,
it surely makes them think twice about if they are &#39;worthy&#39; to be at this table or not.&lt;/p&gt;
&lt;p&gt;Let&#39;s hypothesize that it&#39;s a problem brought to these folks from the wider engineering culture.
It even maybe these people&#39;s jobs to breakdown and figure out smaller paths to solutions and a general way forward for everyone.
Then their response is...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#39;It&#39;s just code&#39;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is not only utterly flippant,
it teaches other senior and principle engineers that it&#39;s OK to approach problems of this kind with this &#39;result&#39;.
There&#39;s no need to stretch and make anything better because...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#39;It&#39;s just code&#39;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unfortunately this is simply the wrong angle in almost all regards.
There&#39;s a key communication breakdown above all else but,
there is also a showcase of flagrant elitism
and denial that the issue affects anyone besides the person who raised it.&lt;/p&gt;
&lt;p&gt;Software engineers of every level should take the time to view problems from all other levels.
Pairing is one of the best ways to go about this,
as well as being quick to initiate small feedback loops.
This might be opening a pull request after the first WIP commit,
sharing branches of work with key product owners and passed code maintainers (&lt;code&gt;git blame&lt;/code&gt;).
If coding isn&#39;t suitable yet, showcasing requests for proposals during demo days are a great choice.&lt;/p&gt;
&lt;p&gt;Although these items might not be &#39;as easy&#39; as saying:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#39;It&#39;s just code&#39;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They go a long way in building a culture that&#39;s less about blame and more about exploration and pushing boundaries.
Questioning is half the battle when it comes to propelling an engineering culture forward.
The other half is having a group of people who are willing to listen and either assist in changes,
or find others who will.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Multipass Powered Docker on the Mac</title>
    <link href="https://cloudbacon.com/posts/2021-06-11-multipass-powered-docker-on-macs/"/>
    <updated>2021-06-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-06-11-multipass-powered-docker-on-macs/</id>
    <content type="html">&lt;p&gt;Ever since &lt;a href=&quot;https://docs.docker.com/docker-for-mac/install/&quot;&gt;Docker for Mac&lt;/a&gt; began pushing their &#39;paid platform&#39;,
I have been looking for a sensible way of removing it from my daily development flow.
Plus, the whole filesystem access on Mac,
continues to be a bit of a pain and altogether horrifically slow.
If this isn&#39;t something that bugs you,
than likely this &lt;a href=&quot;https://github.com/docker/for-mac/issues/5668&quot;&gt;small regression when using &#39;too many&#39; ports&lt;/a&gt; will.&lt;/p&gt;
&lt;p&gt;WSL2 seems to be a great option for the folks running Windows but,
what options is similar to this on the Mac?
Apparently Canonical (the folks behind Ubuntu) offer a similar solution titled: &lt;a href=&quot;https://multipass.run/&quot;&gt;Multipass&lt;/a&gt;.
The best part though?
Multipass utilizes OSX&#39;s native hypervisor support (hyperkit) for the most performant virtual resource mapping.&lt;/p&gt;
&lt;p&gt;Sadly, Multipass is &lt;strong&gt;only&lt;/strong&gt; a &lt;a href=&quot;https://en.wikipedia.org/wiki/Virtual_machine&quot;&gt;virtual machine&lt;/a&gt; orchestrator versus a container orchestrator (Docker).
However, this ends up being a great happenstance because it means developers can have VM&#39;s that are for
Docker, Kubernetes, Faasd, the works!
With great potential comes a host of configuration.
Since these are &#39;bare virtual machines&#39;,
there needs to be a way to configure them during their initializations.&lt;/p&gt;
&lt;p&gt;Canonical utilizes their tooling called &lt;a href=&quot;https://github.com/canonical/cloud-init&quot;&gt;cloud-init&lt;/a&gt; to parse metadata and build a repeatable &#39;image&#39; across virtual machines.
Using this,
there is a real way to define a Docker specific virtual machine.
Afterwards,
one can &lt;a href=&quot;https://docs.docker.com/engine/install/binaries/#install-client-binaries-on-macos&quot;&gt;install the docker binary&lt;/a&gt;,
&lt;a href=&quot;https://formulae.brew.sh/formula/docker-compose&quot;&gt;docker-compose HomeBrew package&lt;/a&gt; and
set a DOCKER_HOST env var that maps to the cloud-init&#39;ified virtual machine&#39;s IP.&lt;/p&gt;
&lt;p&gt;With this setup,
all containers utilize a &#39;native&#39; file system access since Docker is running in a Linux environment (akin to the aforementioned: WSL2).
This also allows a developer to remove or &#39;rage delete&#39; the ridiculous Docker Desktop for Mac product.
This means removing that horrendous UI,
relentless alerts for paid upgrades,
and most importantly:
the slow filesystem access.&lt;/p&gt;
&lt;p&gt;Below is a &#39;simplified&#39; &lt;a href=&quot;https://gist.github.com/braidn/c48bc0aaaa3c680bd0ec9eee25d39e44&quot;&gt;cloud-init .yaml file&lt;/a&gt; for bootstrapping Multipass VMs with Docker already installed.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;#cloud-config&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;groups&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; docker

&lt;span class=&quot;token key atrule&quot;&gt;users&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; default
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; dockeradm
    &lt;span class=&quot;token key atrule&quot;&gt;sudo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  ALL=(ALL) NOPASSWD&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;ALL
    &lt;span class=&quot;token key atrule&quot;&gt;groups&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; users&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; docker
    &lt;span class=&quot;token key atrule&quot;&gt;ssh_authorized_keys&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; ssh&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;rsa yourPublicSSHKey

&lt;span class=&quot;token key atrule&quot;&gt;package_update&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;

&lt;span class=&quot;token key atrule&quot;&gt;packages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; apt&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;transport&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;https
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; ca&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;certificates
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; curl
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; gnupg&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;agent
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; software&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;properties&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;common

&lt;span class=&quot;token key atrule&quot;&gt;runcmd&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; curl &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;fsSL https&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;//download.docker.com/linux/ubuntu/gpg &lt;span class=&quot;token punctuation&quot;&gt;|&lt;/span&gt; apt&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;key add &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; add&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;apt&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;repository &quot;deb &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;arch=$(dpkg &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;print&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;architecture)&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; https&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;//download.docker.com/linux/ubuntu $(lsb_release &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;cs) stable&quot;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; apt&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;get update &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;y
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; apt&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;get install &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;y docker&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;ce docker&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;ce&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;cli containerd.io
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; systemctl start docker
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; systemctl enable docker

&lt;span class=&quot;token key atrule&quot;&gt;final_message&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;The system is finally up, after $UPTIME seconds&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After saving this as &lt;code&gt;docker.yaml&lt;/code&gt;,
bootstrapping a new VM using Multipass is as easy as the following terminal command:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;multipass launch -n docker --cloud-init docker.yaml&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Happy VMing!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Things To Tickle My Fancy in 2021</title>
    <link href="https://cloudbacon.com/posts/2021-09-21-twenty-twenty-one-excitement/"/>
    <updated>2021-09-21T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-09-21-twenty-twenty-one-excitement/</id>
    <content type="html">&lt;p&gt;2021 has been a notable year on many fronts but,
it&#39;s also been a stellar one particularly for technology.
There have benn all kinds of bright and shiney toys from SSG to i ...SSG,
GitHub&#39;s Copilot has taken over our day-to-day,
and there&#39;s even heresay of the &lt;a href=&quot;https://weblog.rubyonrails.org/2021/9/15/Rails-7-0-alpha-1-released/&quot;&gt;real-real death of Webpack&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following is a list of things that has personally captured my attention throughout the year.
Since it&#39;s only September, there is a high likelyhood that this will change as the year wanes to a close.
However, if anything does pop up, I&#39;ll be sure to share it here in some kind of &#39;addendum&#39;.&lt;/p&gt;
&lt;p&gt;Oh!
The below is also in no particular order.
Let&#39;s refrain from thinking that one of these items &#39;outweights&#39; another.
They are all relatively exciting,
somewhat boring,
and mostly just a little better than the relevant competion.
Each one of them gathered on this list at precisely the same time.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://astro.build/&quot;&gt;Astro.build&lt;/a&gt;:
There has been only a shallow amount of exploration around the Astro community.
Throughout that short time of playing with this &#39;toolchain&#39;, I have been blown away.
The mere fact that Bob from accounting can write &lt;a href=&quot;https://vuejs.org/&quot;&gt;VueJS&lt;/a&gt;,
Tom from marketing can write &lt;a href=&quot;https://svelte.dev/&quot;&gt;Svelte&lt;/a&gt;,
and it all compiles to a usable website is bonkers.
Especially for anyone who lived through the frontend framework wars of 2010 through 2016.
As 2021 comes to an end,
I will continue to play and explore this toolchain when building &lt;a href=&quot;https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/&quot;&gt;toy applications&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/cdk/&quot;&gt;AWS CDK&lt;/a&gt;:
AWS&#39;s Cloud Development Kit has been around for some time.
It&#39;s even likely to hit 2.0 in 2021 which is a huge feat for a large JavaScript project.
Pulumi has also recently introduced &#39;&lt;a href=&quot;https://www.pulumi.com/blog/announcing-aws-native/&quot;&gt;native AWS&lt;/a&gt;&#39; support using AWS&#39;s recently released &#39;&lt;a href=&quot;https://aws.amazon.com/blogs/aws/announcing-aws-cloud-control-api/&quot;&gt;Cloud Control API&lt;/a&gt;&#39; tool.
All of these tools aim at making Cloudformation much more maintainable and the resulting infrastructure easier to reason about.
Overall I am psyched to see where &#39;DevOps as code&#39; tooling evolves in 2022.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cloudflare.com/&quot;&gt;Cloudflare&#39;s&lt;/a&gt;
service offering is exploding throughout 2021.
It&#39;s almost weekly that they are building something new that&#39;s in beta.
However when you check back the next week,
that thing that was new last week is out of beta and something new is taking its&#39; place.
Cloudflare is aiming to push all compute closer and closer to users (&#39;The Edge&#39;).
This coupled with streaming data (also served from the edge) will be where we see larger performance gains in the future.
This blog is even taking advantage of recently released features: moving from Netlify to Cloudflare&#39;s Pages offering.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Digital Gardening
or perhaps &#39;knowledge recording&#39; is top of mind for many folks in a knowledge heavy field.
There has been a lot of new products budding out of this interest for the better part of the last 2 years.
Many folks may know about &lt;a href=&quot;https://roam.com/&quot;&gt;Roam&lt;/a&gt; but, there is also &lt;a href=&quot;https://obsidian.io/&quot;&gt;Obsidian&lt;/a&gt; and &lt;a href=&quot;https://logseq.com/&quot;&gt;LogSeq&lt;/a&gt; that have a good slice of the market share.
All of these tools are helping us recall pertinent information when we needed it the most.
When one works in a field that is awash with information that&#39;s not always easily searchable,
having a tool to expedite recall is invaluable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Many &#39;things&#39; are being standardized behind an HTTP interface.
Shared connection pools between databases and applications have always been spaces frought with disaster.
Now though, there&#39;s no longer &lt;em&gt;any&lt;/em&gt; need.
There&#39;s a reliable HTTP API where those pools used to be.
We can cache these calls, horizontally scale to any number of connections, and even stream data if we choose.
&lt;a href=&quot;https://fauna.com/&quot;&gt;FaunaDB&lt;/a&gt; is a great example of a tool that&#39;s doing this well.
They are driving data into an API layer that people understand and distributing the data behind it.
This space in &#39;infrastructure&#39; is only going to grow as we move forward with business logic residing at &#39;the edge&#39;.
Waiting on centralized data is going to seem completely foreign in two years time.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What are other folks really interested at the moment?
Specifically what&#39;s not only blown your mind in 2021 but,
has you wishing you could use it at your day job?&lt;/p&gt;
&lt;p&gt;My direct messages are always open on &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;Twitter&lt;/a&gt;!
Feel free to drop a response there and let&#39;s start a conversation.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Verified</title>
    <link href="https://cloudbacon.com/posts/2021-10-09-verified/"/>
    <updated>2021-10-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2021-10-09-verified/</id>
    <content type="html">&lt;p&gt;&#39;Many moons ago&#39; there was this really interesting &lt;a href=&quot;https://keybase.io/&quot;&gt;startup that focused on security and identity management&lt;/a&gt;.
Like anything good,
they were quickly noticed by a &lt;a href=&quot;https://zoom.us/&quot;&gt;company that has consistently failed in this domain&lt;/a&gt; and
found themselves purchased.
As all &#39;good aquisitions&#39; go,
the product became unusable shortly there after.&lt;/p&gt;
&lt;p&gt;Queue the search for finding a way to verify my identity and others across the Internet!
Sure, one can pass around public keys (which is made fairly easy with GitHub)
but, there needs to be another way to do this that includes a full fledged search feature.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://keys.pub/&quot;&gt;Keys.pub&lt;/a&gt; happened to be mentioned in &lt;a href=&quot;https://twitter.com/braidn&quot;&gt;my Twitter feed&lt;/a&gt; and looked to be a potential solution.
It uses &lt;a href=&quot;https://saltpack.org/&quot;&gt;Saltpack&lt;/a&gt; for encrypted messaging,
keeps a searchable and importable list of keys,
ships with a robust CLI tool,
and even supports FIDO2 devices!
To top things off,
it&#39;s completely &lt;a href=&quot;http://github.com/keys-pub&quot;&gt;open source&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you want to exchange messages,
or simply verify my identity on other platforms (GitHub/Twitter),
import my user from the id included in the following request:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt; &lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://keys.pub/user/search?q=braidn&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Excited to see how this platform changes and how accessible it makes Saltpack, key management and verification.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Thinking In The Open</title>
    <link href="https://cloudbacon.com/posts/2022-04-23-design-in-the-open/"/>
    <updated>2022-04-23T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2022-04-23-design-in-the-open/</id>
    <content type="html">&lt;p&gt;It is always a surprise to see a programmer (new and old) simply,
&#39;start working&#39; on large, team level refactors.
These could be as small as changing out the underlying linter settings,
or as large as changing the entire codebase to a new language.
Writing code is one of the easiest ways to display impact.
However, a potentially greater way could be designing these changes in the open.&lt;/p&gt;
&lt;p&gt;A few years ago,
Glossier saw a large uptick in Amazon engineers.
These engineers often times migrated other technical project managers,
designers, and even principle architects to Glossier.
These individuals also brought along all of there workflows to the startup.
One of the more openly known development norms from Amazon (that was ported to Glossier) is that they write...
A Lot.&lt;/p&gt;
&lt;p&gt;Like a real lot.
So much actually that it boggled my mind when the transition began.
After struggling for a few months during the change,
I quickly realized the superpower behind all of this prose that &#39;supported&#39; code.
Almost immediately,
new engineers had way more context than before.
They were able to self serve and get up to speed without the constant overhead of synchronous communication.
This power didn&#39;t end with just new engineers but, with all of the other team members, technical or not.&lt;/p&gt;
&lt;p&gt;I mentioned the power behind this &#39;hive mind&#39; early on in my career at &lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;There&amp;#39;s just something so powerful about a team that writes. Documentation, meeting notes, architectural decisions, THE WORKS!&lt;br /&gt;&lt;br /&gt;Collective consciousnesses are just so... &lt;a href=&quot;https://t.co/DkvbQhu4sM&quot;&gt;pic.twitter.com/DkvbQhu4sM&lt;/a&gt;&lt;/p&gt;&amp;mdash; Braden Douglass (@braidn) &lt;a href=&quot;https://twitter.com/braidn/status/1491608490552573952?ref_src=twsrc%5Etfw&quot;&gt;February 10, 2022&lt;/a&gt;&lt;/blockquote&gt; &lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt; 
&lt;p&gt;There&#39;s just something so powerful about a team that writes and actively shares their knowledge.
Having gone through this process of loving writing,
it always shocks me that others,
especially engineers who are a bit older,
have never experienced this same effect.&lt;/p&gt;
&lt;p&gt;The following are a few good articles/ideas around writing.
Read, pick, and piece your way through norms that speak to your team.
Maybe that means architecture decision records or full blown architectural design docs and RFCs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/joelparkerhenderson/architecture-decision-record&quot;&gt;What/Why/How of Application Decision Records (Github)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://increment.com/planning/planning-with-requests-for-comments/&quot;&gt;Increment&#39;s highlight of RFCs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/auycro/7d49fe197d6e5e1f5b2058c39a678a01&quot;&gt;Gist of RFC Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/machine-words/writing-technical-design-docs-71f446e42f2e&quot;&gt;Technical Design Docs at Somewhere in Amazon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.industrialempathy.com/posts/design-docs-at-google/&quot;&gt;Design Docs at Google&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/compose/tweet&quot;&gt;Feel free to reach out and chat about what supercharges your team as well&lt;/a&gt;!
&lt;a href=&quot;https://twitter.com/braidn&quot;&gt;My direct messages are also always open if you want to chat privately&lt;/a&gt;.
I am always on the lookout for ways to better upfit teams through both technical and written mediums.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>What&#39;s Next in 2022</title>
    <link href="https://cloudbacon.com/posts/2022-08-14-whats-next-in-2022/"/>
    <updated>2022-08-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2022-08-14-whats-next-in-2022/</id>
    <content type="html">&lt;h2&gt;Some Context&lt;/h2&gt;
&lt;p&gt;There hasn&#39;t been a whole lot of contact (here) throughout most of this year.
This was due to me moving on from &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; at the end of last year.
There was a lot of writing on the wall that led to layoffs and it was almost blatently obvious.
Where did I go you might be asking?&lt;/p&gt;
&lt;p&gt;I officially, in December 2021, started at a wonderful startup named &lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt;.
They are focused on quantifying how impactful &lt;a href=&quot;https://developerrelations.com/what-is-developer-relations&quot;&gt;development relation&lt;/a&gt; teams are to their corresponding tech organization.
Think GitHub or Salesforce.
They need to attract developers to their platforms so they hire a group of developer advocates to talk about how awesome they are.
These people,
like most jobs,
require metrics to work against and define success in the role.
These metrics tend to showcase how effective the entire team is when it comes to the greater community.
&lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt; provides the platform to both collect and interact with metrics around these developer relation teams.&lt;/p&gt;
&lt;p&gt;Fast forward to August of 2022 and the world of venture funded startups is much different now than at the end of 2021.
Although &lt;a href=&quot;https://finance.yahoo.com/video/american-express-ceo-not-see-133906950.html&quot;&gt;consumer spending hasn&#39;t eased&lt;/a&gt;,
there is a cooling of readily available venture funds at the moment for some sectors.
Basically, we missed the boat when it came to working towards our Series B funding.
As of August, 15th I was technically a &#39;&lt;a href=&quot;https://en.wikipedia.org/wiki/Free_agent&quot;&gt;free agent&lt;/a&gt;&#39; once more (will report in on how long that lasts)!&lt;/p&gt;
&lt;h2&gt;A Few Things Learned&lt;/h2&gt;
&lt;p&gt;With 9 or so months under my belt,
at a much smaller startup than the &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; I left,
what are the biggest &#39;things&#39; learned?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Smaller startups don&#39;t always move faster.
Glossier way back when (2017), moved very fast for a startup.
It always surprised me how quickly we developed new features and fixed bugs early on.
However, this isn&#39;t always the case.
There&#39;s definitely a space between moving fast/focusing on quality and
moving fast and breaking the world.
Startups (really at any stage) should be focused on opening doors that allow team members to move fast.
Again, this isn&#39;t always the truth.&lt;/li&gt;
&lt;li&gt;Backend web development is, without question: &#39;squishy&#39;.
Full stack developers and front end developers have a much more specific and focused role.
Backend developers though?
Not so much.&lt;/li&gt;
&lt;li&gt;Backend developers these days need to know know how to effectively fetch data.
However, they also need to have a good handle on &lt;a href=&quot;https://www.redhat.com/en/topics/devops/what-is-sre&quot;&gt;Site Reliability Engineering&lt;/a&gt; as well as be able to go deep on &lt;a href=&quot;https://www.ibm.com/cloud/learn/devops-a-complete-guide&quot;&gt;DevOps&lt;/a&gt;.
And the kicker?
There isn&#39;t a single job description out there that mentions these requirements.
This leads to engineers being blindsided on day one when they need to tweak a metric alarm in Terraform,
rebuild a broken setup script,
or build a container to be able to encapsulate a new micro service...
It&#39;s intense to say the least.&lt;/li&gt;
&lt;li&gt;The apetite for change in most orgs is small (at best).
Teams are used to tackling problems.
Sometimes those problems define the team and
other times these problems are inconcequential at best.
However, it&#39;s the way teams tackle solving these problems that matters.
Most teams (not all),
solve them with half-measures,
tradeoffs,
and generally lackluster solutions that are unlikely to scale with the growing business.
Mainly due to the fact that the team is resilient to choosing different technology that better solves the problem at hand.
This fear can be thought of like a roadblock for an organization&#39;s ability to move fast.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;What&#39;s Next?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt; was just a few weeks or perhaps a month ago,
&lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; was almost a year ago...
The next is rather inevitable but, what is next?&lt;/p&gt;
&lt;p&gt;Honestly, it&#39;s...
Pretty squishy.
It looks like a mixture of small and large organizations,
open and closed source work,
and it all revolves around the fact that my career tragectory has me being a principle architect in 5 years time.&lt;/p&gt;
&lt;p&gt;This means rounding out my knowledge of &lt;a href=&quot;https://www.redhat.com/en/topics/devops/what-is-sre&quot;&gt;site reliability engineering&lt;/a&gt;
and being more open to learning other areas within the realm of &lt;a href=&quot;https://www.ibm.com/cloud/learn/devops-a-complete-guide&quot;&gt;devOps&lt;/a&gt;.
All while continuing to push my knowledge of services, monoliths and serverless engineering.&lt;/p&gt;
&lt;p&gt;If those set of skills seem interesting to you and perhaps to your organization,
&lt;a href=&quot;https://twitter.com/braidn&quot;&gt;feel free to get in touch&lt;/a&gt;. My DM&#39;s are always open.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>2022 In The Bag</title>
    <link href="https://cloudbacon.com/posts/2023-01-02-whats-going-forward/"/>
    <updated>2023-01-02T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2023-01-02-whats-going-forward/</id>
    <content type="html">&lt;p&gt;To say: &#39;it&#39;s been a bit of year&#39;,
would be more than an understatement.
However...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It&#39;s been a bit of a year&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;A Year of Rails&lt;/h3&gt;
&lt;p&gt;For all the folks who don&#39;t know,
I spent the year transitioning from &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; to &lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt;,
having &lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt; implode financially,
racing to find and land a gig before the end of 2022,
and finally finding a space at &lt;a href=&quot;https://home.paynearme.com/&quot;&gt;PayNearMe&lt;/a&gt; right before 2022 slammed shut.
With &lt;a href=&quot;https://orbit.love/&quot;&gt;Orbit&lt;/a&gt; and &lt;a href=&quot;https://home.paynearme.com/&quot;&gt;PayNearMe&lt;/a&gt; both being large &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; apps.
Honestly, if in 2021 I was asked what technology I would be using in 2023,
&lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; would not have been my answer.
Not even in the top 5...&lt;/p&gt;
&lt;p&gt;Throughout most of 2020 and 2021 &lt;a href=&quot;https://www.glossier.com/&quot;&gt;Glossier&lt;/a&gt; aimed to transition their own monolith to microservices.
This work was done by opting into the growing serverless world offered by &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;AWS&lt;/a&gt;.
Ultimately, many of those products never saw the light of day.
And eventually the organization opted to replatform to &lt;a href=&quot;https://www.shopify.com/&quot;&gt;Shopify&lt;/a&gt; instead.
Having worked on and even lead some of those initatives,
the world of serverless was top of mind.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; market though has exploded in the last couple of years.
Making a comeback that reminds me of the late 2012&#39;s throughout 2015.
Most of what a successful job search looks like (more on this soon)
is managing relationships with recruiters.
Those recruiters right now have large holes in their &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; or &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; pipelines.
The flip side of this is the dearth of &lt;a href=&quot;https://www.redhat.com/en/topics/cloud-native-apps/what-is-serverless&quot;&gt;Serverless&lt;/a&gt; roles at the moment.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.redhat.com/en/topics/cloud-native-apps/what-is-serverless&quot;&gt;Serverless&lt;/a&gt; maybe something that&#39;s talked about widely by internal team members but,
there&#39;s little of it talked about (openly) outside oranizations.
Or rather, outside the echo chambers that are &lt;a href=&quot;https://news.ycombinator.com/news&quot;&gt;HackerNews&lt;/a&gt; and &lt;a href=&quot;https://www.indiehackers.com/&quot;&gt;IndieHackers&lt;/a&gt;.
Doubly so when chatting about specific roles with hiring managers or internal recruiters.
Even bringing up concepts that apply to well architected applications lands flat with all but,
the most advanced engineers in interview loops.&lt;/p&gt;
&lt;p&gt;Walking into a new &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; gig isn&#39;t as easy as it was even 5 years ago.
Although most folks think &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; applications follow some kind of standard template,
many are their own little unique snowflake.
Sometimes with sharp edges all over the place.
After working on three different and &#39;hefty&#39; &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; apps in 2022,
the following are &#39;a few tidbits&#39; of what others can expect if they find themselves working on &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; in the future...
Or today.&lt;/p&gt;
&lt;h3&gt;Seriously Barry, how much is a liter?&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Application_performance_management&quot;&gt;APM Metrics&lt;/a&gt; (logs don&#39;t count) are hit or miss when it comes to most apps.
Some may have pooly implemented systems,
others have several systems that compete with one another,
and others may have no way at all of collecting &lt;a href=&quot;https://docs.datadoghq.com/tracing/metrics/runtime_metrics/&quot;&gt;runtime metrics&lt;/a&gt;.
None of this depends on the age of the application,
the age of the engineers,
or even the number of senior engineers on the team.&lt;/p&gt;
&lt;p&gt;No, sadly metrics as well as corresponding alarms and alerting,
are indeed: a crap-shoot.
If, for some reason the application is generating relevant metrics,
the resulting charts and graphs around these metrics will be largly
made up of whatever defaults the &lt;a href=&quot;https://en.wikipedia.org/wiki/Application_performance_management&quot;&gt;APM&lt;/a&gt; tool of choice selected.
Because this work tends to be fairly time consuming,
any proposed changes to a &#39;working&#39; implementation comes across as impossible to sell.
All of it leaves on call members fighting to figure out what alarms are relevant,
or simply snoozing them until thresholds fall back to normallity.&lt;/p&gt;
&lt;p&gt;The scarriest scenario of all is you find yourself at a company that has no tooling on this front.
None. Zilch, Nada.
It can only get moderatly worse if the company makes money.
A rather odd man named: &amp;quot;Jeremy Clarkson&amp;quot; put it best when he was meandering about French and Italian cars (1:19 through 1:34)&lt;/p&gt;
&lt;p&gt;https://www.youtube.com/watch?v=KmAY4FQ5L4E&amp;amp;t=79s&lt;/p&gt;
&lt;p&gt;It&#39;s honestly surprising how bad I have seen it in this domain with &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; over the past 4 to 5 years.
The reason behind this is likely due to the complexity driven by competing cloud services.
This space though is inherently hard and SRE&#39;s,
good ones,
are hard to come by.
Not to mention hard to hire full time for most startups.
Coupling this with a space that most developers actively avoid,
leads to a recipie for oncall disasters.&lt;/p&gt;
&lt;h3&gt;Power Blackout!&lt;/h3&gt;
&lt;p&gt;Documentation in any project takes a thoughtful amount of time.
Not just today but,
tomorrow, the next day, and certainly every day afterward.
This type of documentation could be in a &lt;a href=&quot;https://en.wikipedia.org/wiki/Gollum_(software)&quot;&gt;Wiki&lt;/a&gt;,
a &lt;a href=&quot;https://tom.preston-werner.com/2010/08/23/readme-driven-development.html&quot;&gt;Readme&lt;/a&gt;,
inline with code,
or an &lt;a href=&quot;https://www.notion.so/&quot;&gt;external tool&lt;/a&gt;.
However, guarenteed, if you sit down at most &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; jobs today,
that documentation will be spectacularly out of date.
If you are lucky it refrerences the &lt;a href=&quot;https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html&quot;&gt;correct database&lt;/a&gt; version.
What&#39;s much more likely though is a host of missing &lt;a href=&quot;https://en.wikipedia.org/wiki/Drizzle_%28database_server%29&quot;&gt;infrastructure requirements&lt;/a&gt;,
out of date setup &#39;best practices&#39;,
and a &lt;a href=&quot;https://tom.preston-werner.com/2010/08/23/readme-driven-development.html&quot;&gt;Readme&lt;/a&gt; that&#39;s a jumbled mess of 18 sections of which no developer has read in its&#39; entirety in the past 6 months.&lt;/p&gt;
&lt;p&gt;I am not entirely sure if it&#39;s the productivity that &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; affords or
if many Rubyists still think that &lt;em&gt;all&lt;/em&gt; of their code is self documenting.
However, the appauling state of most &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; and &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt;
project&#39;s documentation would shock and awe almost all developers.
Perhaps all of this stems from the whole &lt;a href=&quot;https://stackoverflow.com/questions/3699706/yard-is-not-the-same-as-rdoc&quot;&gt;Yard Vs Rdoc&lt;/a&gt; debacle but,
it&#39;s highly unlikely.
A much more likely scenario is:
&lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; and likely more &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; developers haven&#39;t yet comprehended that documentation is a &lt;a href=&quot;https://letstalkscience.ca/educational-resources/backgrounders/simple-machines-levers&quot;&gt;force lever&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&#39;s been interesting being around &amp;gt; 3 larger &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; apps in 2022
as well as quit a few smaller &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; apps.
Documentation in this realm sits at two dipolar ends of the spectrum.
It&#39;s either the most well thought out and hierarchal brilliant piece of prose ever...
Or the documentation is so borderline useless, it&#39;s better off deleted.
Sadly I have never seen an &#39;in-between&#39; or grey area.
Due to this,
thoughtful approaches to this problem should be top of mind for
all &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;ists entering a new role or kickstarting a new startup.&lt;/p&gt;
&lt;h3&gt;Maybe A Mutiny Of Clowns&lt;/h3&gt;
&lt;p&gt;Most... Perhaps even &lt;em&gt;all&lt;/em&gt; &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; apps are shaped different than what most toy &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; apps look like.
This is always a bit of a surprise since one of the core concepts of &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; is to keep to a &#39;strict&#39; set of conventions.
However, engineers will be engineers and customizations will creep in.
The three forms of intense customizations that have been most prevalant are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The Hidden Gem&lt;/li&gt;
&lt;li&gt;The Layered Onion&lt;/li&gt;
&lt;li&gt;The Method Missing Addict&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;The Hidden Gem&lt;/h4&gt;
&lt;p&gt;Everything, and I do mean EVERYTHING is a gem.
Perhaps there&#39;s a need to sell goods,
pull in &lt;a href=&quot;https://solidus.io/&quot;&gt;Solidus&lt;/a&gt;.
Need a CMS?
There&#39;s a gem for that!
Building a feature to take on the complexity of another gem?
MAKE it a Gem!&lt;/p&gt;
&lt;p&gt;It&#39;s almost as if the whole NPM debacle never permeated back to the Ruby community.
That or (and this is highly likely) this is some form of modularization or &#39;services&#39; to some Rubyists.
Whatever it is,
it almost never is created due to a concrete boundary in the code.
In addition, the idea is usually created by some newer engineer who&#39;s impetus is to avoid learning the existing system.&lt;/p&gt;
&lt;p&gt;Regardless of the intent,
the result is a system that has a blurry set of business rules locked behind doors
that no one has figured out how to open.
Yes, &lt;a href=&quot;https://solargraph.org/&quot;&gt;Solargraph&lt;/a&gt; isn&#39;t bad,
nor is &lt;a href=&quot;https://github.com/ruby/syntax_suggest&quot;&gt;Syntax Suggest&lt;/a&gt; or &lt;a href=&quot;https://github.com/ruby-syntax-tree/syntax_tree&quot;&gt;Syntax Tree&lt;/a&gt;.
The amount of developers though who know how to wrangle these powertools,
is far and fleeting.&lt;/p&gt;
&lt;h4&gt;The Glass Onion&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rack/rack&quot;&gt;Rack&lt;/a&gt; middleware is at the heart of the &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; framework.
Due to this, developers are free to build and add in their own middleware layers.
However,
like most things that come with &#39;great power&#39;,
many apps fall prey to embaracing an overload of middleware layers.
Many of these layers reach into data stores,
either locally or in the &#39;cloud&#39;.&lt;/p&gt;
&lt;p&gt;This is where these approaches begin to break down.
If (for some reason) some value can&#39;t yet write to S3,
why should your entire application fail to render?
Sure, there are error handling techniques to mitigate this but,
if a team is moving fast, they are unlikely to build them in.&lt;/p&gt;
&lt;h4&gt;The Method Missing Addict&lt;/h4&gt;
&lt;p&gt;Lastly, the most common type of &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; application that one may run into,
is the one where no one heeded the warning about metaprogramming.&lt;/p&gt;
&lt;p&gt;Every class and concern is peppered with &lt;code&gt;method_missing&lt;/code&gt; definitions.
Leading to an impossibly-large and
blurry boundary between objects that represent the system.
On top of classes that respond to almost any message,
the objects themselves are so &lt;a href=&quot;https://en.wikipedia.org/wiki/God_object&quot;&gt;God like&lt;/a&gt; that
it&#39;s impossible to discern their actual shape.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Object-oriented_analysis_and_design&quot;&gt;Domain modeling and design&lt;/a&gt; maybe a core part of &lt;a href=&quot;https://en.wikipedia.org/wiki/Object-oriented_programming&quot;&gt;Object Oriented Programming&lt;/a&gt;
but, it&#39;s fallen out fashion as of late.
Doubly so in the &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; community.
Without this,
many larger apps tend to fall down with the weight of a few bloated classes.
The anthesis of this would be a constellation of well defined classes that are small and focused.&lt;/p&gt;
&lt;p&gt;Well designed (and documented) systems lead to productive engineers that push features successfully.
Systems that are hard to understand not only jeapordize engineer&#39;s productivity,
it compounds within the organization with each new hire.&lt;/p&gt;
&lt;h3&gt;Grover Cleveland called, He Wants His Watch Back&lt;/h3&gt;
&lt;p&gt;Every organization that has a rather large &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; app or perhaps multiple &#39;mini-monoliths&#39;,
has a wizard on payroll.
This human has likely been around the organization for awhile but,
they definitely have the power to wield any and all of &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;&#39;s &lt;a href=&quot;https://en.wikipedia.org/wiki/Domain-specific_language&quot;&gt;DSL&lt;/a&gt;s.
If &lt;a href=&quot;https://rspec.info/&quot;&gt;RSpec&lt;/a&gt; is in play,
it&#39;s almost guarentted the human is a wizard at that.&lt;/p&gt;
&lt;p&gt;The preverbial &lt;a href=&quot;https://rspec.info/&quot;&gt;RSpec&lt;/a&gt; wizard is as common as the household fly.
They know every esoteric edge case when it comes to the absolute shit show that is alternative spec frameworks.
Confused and need to know how to deeply test a complext JSON object with compound matchers?
Grab some time to pair with your local wizard because,
everyone claims that they (and only they) have an answer.&lt;/p&gt;
&lt;p&gt;These folks are great at generating green dots but,
pin them down to speed up a test suite,
run one effectively on CI,
or even kickstart one for a new application
and they usually come up exceptionally short.&lt;/p&gt;
&lt;p&gt;If your organization has one of these individuals,
take the time to learn what their kryptonite is.
Often times they have an alergic reaction to more normal items in the development workflow.
Either parts of &lt;a href=&quot;https://git-scm.com/&quot;&gt;Git&lt;/a&gt;,
newer norms in development like &#39;UUIDs&#39;,
or even simple ideas like decoupling complexity using &lt;a href=&quot;https://stackoverflow.com/questions/2252075/plain-old-objects-in-ruby#2252173&quot;&gt;PORO&lt;/a&gt;s
and &lt;a href=&quot;https://www.youtube.com/watch?v=8bZh5LMaSmE&quot;&gt;small classes&lt;/a&gt;.
Just like with metrics and performance sampling,
if an organization that you work at employs and upholds the nonsense of said wizard...&lt;/p&gt;
&lt;p&gt;https://www.youtube.com/watch?v=KmAY4FQ5L4E&amp;amp;t=79s&lt;/p&gt;
&lt;h3&gt;Danger Zone!&lt;/h3&gt;
&lt;p&gt;2023 is going to be huge...&lt;/p&gt;
&lt;p&gt;https://www.youtube.com/watch?v=U3D82Km1LEU&amp;amp;t=12s&lt;/p&gt;
&lt;p&gt;For &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt;.
Beyond the aforementioned insanity,
the &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; framework still is a great way to kickstart almost anything.
Sure,
apart from deployments (it&#39;s still a monster),
getting literally anything to an &lt;a href=&quot;https://en.wikipedia.org/wiki/Minimum_viable_product&quot;&gt;MVP&lt;/a&gt; and
to any type of investment,
is still easier than figuring out what a &lt;a href=&quot;https://docs.docker.com/engine/reference/builder/&quot;&gt;Dockerfile&lt;/a&gt; is for.&lt;/p&gt;
&lt;p&gt;With that,
here&#39;s to another spectacular year zooming by wearing &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; tinted glasses&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>What I am Learning in 2023</title>
    <link href="https://cloudbacon.com/posts/2023-02-06-2023-self-education/"/>
    <updated>2023-02-06T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2023-02-06-2023-self-education/</id>
    <content type="html">&lt;h2&gt;Self Education&lt;/h2&gt;
&lt;p&gt;Being a developer means constantly staying on top of things,
learning new technology,
and striving to better one&#39;s self.
This is an ever-green space to capture things that I have learned throughout the 2023 year.&lt;/p&gt;
&lt;p&gt;The plan is to have one of these pages created for documenting each year.
Throughout the year,
I will add items and relevant links to the list below.
The idea here being that more of my self education,
&#39;research and development&#39;,
or &#39;faffing off&#39; experiments bubble into the open versus hidden away in &lt;a href=&quot;https://github.com/braidn&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The impetus of sharing this work in the open,
isn&#39;t so much to toot what I addicted to (development wise) but,
to reach for transparency in most (if not all of) my personal education goals.
Transparency is also a huge pillar in &lt;a href=&quot;https://sloanreview.mit.edu/article/with-goals-fast-beats-smart/&quot;&gt;FAST Goals&lt;/a&gt;.
A goal writing framework which has been top of mind for the past several years.&lt;/p&gt;
&lt;h3&gt;The List&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Comming soon (hold onto your pants)...&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Return To Office (Amazon Reaction)</title>
    <link href="https://cloudbacon.com/posts/2023-03-19-return-to-office/"/>
    <updated>2023-03-19T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2023-03-19-return-to-office/</id>
    <content type="html">&lt;p&gt;This is a reaction to this article written on the &lt;a href=&quot;https://blog.pragmaticengineer.com/&quot;&gt;Pragmatic Engineer&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.pragmaticengineer.com/amazon-return-to-office/&quot;&gt;Amazon doubling down on RTO (return to office)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Over the course of my career,
I have had the &lt;a href=&quot;https://www.glossier.com/&quot;&gt;opportunity to work with many ex-Amazon SDE (Software Developers)&lt;/a&gt;.
Throughout all levels,
they are phenomenal at their job.
They have an uncanny ability to weigh the need for features with documentation.
They almost always are elequent writers and never shy away from data to support their findings.&lt;/p&gt;
&lt;p&gt;However when it comes to being effective at managing asynchronous communications through GitHub,
they break down quickly.
One of the key items required for successful remote teams,
is their ability to handle the flood of asynchronous communication mediums.
Either through email, GitHub, GitLab, Jira, Confluence, Pivotal, or whatever.&lt;/p&gt;
&lt;p&gt;Most engineers and managers who have only ever been in an office (pre-COVID),
fail at this spectacularly.
They are too used to simply turning around and &#39;pinging individuals&#39; for code reviews,
responses on design documents,
or feedback on Architectural Decision Records (ADRs).&lt;/p&gt;
&lt;p&gt;Managing these async-inboxes is often seen as &lt;a href=&quot;https://www.make.com/en/blog/what-is-meta-work&quot;&gt;meta-work&lt;/a&gt; or chores.
Engineers who can wrestle these tasks throughout automation or &lt;a href=&quot;https://en.wikipedia.org/wiki/Getting_Things_Done&quot;&gt;common processes&lt;/a&gt;,
will be indefinitely more productive at remote work.
Engineers who showcase this skill well and share their techniques with their teams,
should be the obvious recipients of these remote &#39;exceptions&#39;.&lt;/p&gt;
&lt;p&gt;And for any Amazon Hiring Managers struggling in the next year to fill struggling teams
with quality engineers, changes like this will make your job harder and harder.
Opening these roles up to permenantly remote positions will not only widen the pool of engineers,
it will likely net you more producitve future teams.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Nix Intros</title>
    <link href="https://cloudbacon.com/posts/2023-04-09-nix-intros/"/>
    <updated>2023-04-09T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2023-04-09-nix-intros/</id>
    <content type="html">&lt;p&gt;When most folks here the term &#39;&lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt;&#39;,
their minds likely lean towards anything &#39;Unix&#39;.
This could mean any flavor of Linux.
For instance Ubuntu or Fedora.
Others, if they own a beard and its&#39; grey,
might correlate Nix with &lt;a href=&quot;https://docs.freebsd.org/en/articles/explaining-bsd/&quot;&gt;BSD&lt;/a&gt;.
However, the &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; that this post tackles isn&#39;t any of these.&lt;/p&gt;
&lt;p&gt;No, the &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; that we have here is the
&#39;glue&#39; that aims to solve the building of software tools.
Namely, it attempts to solve reproducible builds for development environments.
What does that mean in the most simple of terms:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Any package that works on one computer, will work on another.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://reproducible-builds.org/&quot;&gt;Reproducible builds&lt;/a&gt; are a bit of a holy grail in software development.
Having the ability to always compile the same source into the same result,
without error, will always lead to more robust software.
This holy grail has been tackled in many forms before.
Most people know of or have heard of &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; but,
there are so many more examples in the developer experience graveyard.
Most of these tools have been notoriously &#39;not great&#39; when developing locally.&lt;/p&gt;
&lt;p&gt;When it comes to running code in production?
Sure! A containerized, static &#39;image&#39; is great.
But, developing software locally requires hot reloading of code,
debugging, and being able to pivot quickly.
Something &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt; and friends have yet to crack.&lt;/p&gt;
&lt;p&gt;Although &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; might be a powerful tool,
the documentation makes the user experience somewhat tough to stomach.
The remainder of the post will be about getting a normal developer
through the second hurdles of &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt;.
Specifically, how to set up the basics of &lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt;,
a drop-in replacement for &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;What Is Home Manager Anyway?&lt;/h4&gt;
&lt;p&gt;Before diving into any code,
there is a missing (to this writer) writeup that showcases the differences
between &lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt; and &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt;,
especially &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; shell.
&lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt; has a dual use:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It has the ability to install packages that you may need for development,
like &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;It will ALSO generate all of your dot files (think .zshrc, configs, bashrc, etc)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This was a speed bump that was somewhat hard for me to get over and as I am writing this, hard to express.
I was too used to &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; and a dot files manager like &lt;a href=&quot;https://github.com/technicalpickles/homesick&quot;&gt;Homesick&lt;/a&gt;.
&lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt; removes the need for two different tools and makes everything configurable in one file.
Sure, there are ways to break up a single long file however,
having all configuration in one space makes it simple to slice and dice configuration.
No need to hop between a bunch of files and become lost with what maybe the result of generating those dot files.&lt;/p&gt;
&lt;h4&gt;Kinda Like Homebrew&lt;/h4&gt;
&lt;p&gt;After setting up or changing your configuration,
simply run: &lt;code&gt;home-manager switch&lt;/code&gt; and &lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt; makes sure all packages
and dependencies are properly installed.
Let&#39;s change the default &lt;code&gt;home.nix&lt;/code&gt; file to add a few common developer dependencies.
The below belongs in this file: &lt;code&gt; ~/.config/nixpkgs/home.nix&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;language-nix&quot;&gt;&lt;code class=&quot;language-nix&quot;&gt;	home&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;packages &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
		pkgs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;awscli
		pkgs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;git
		pkgs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;fd
		pkgs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;openssl
	&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After saving this file, re-run &lt;code&gt;home-manager switch&lt;/code&gt;,
and in a good amount of terminal output and time,
the &lt;code&gt;awscli&lt;/code&gt;, &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;fd&lt;/code&gt;, and &lt;code&gt;openssl&lt;/code&gt; executables will be available.&lt;/p&gt;
&lt;p&gt;This workflow should be home to the developer who understands how &lt;code&gt;Brewfiles&lt;/code&gt; and &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; work:
One builds a file with some dependencies, and &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; takes care of installing them.&lt;/p&gt;
&lt;h4&gt;Kinda like Dotfiles&lt;/h4&gt;
&lt;p&gt;Since &lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt; will also manage dotfiles,
there is a need to transition all of those config files into &lt;code&gt;home.nix&lt;/code&gt; which could be a bit of a worry.
It&#39;s often times easier to write out a &lt;code&gt;zshr.rc&lt;/code&gt;,
over figuring out the nix version of it.
However, keeping that &lt;code&gt;zshr.rc&lt;/code&gt; up to date and clean is now up to &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; and not on the developer.
An example &lt;code&gt;zsh.rc&lt;/code&gt; block in your &lt;code&gt;home.nix&lt;/code&gt; may look like:&lt;/p&gt;
&lt;pre class=&quot;language-nix&quot;&gt;&lt;code class=&quot;language-nix&quot;&gt;  programs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;zsh &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		enable &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		autocd &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		enableAutosuggestions &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		enableCompletion &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		enableSyntaxHighlighting &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		shellAliases &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		  g &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;git&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above will auto generate a &lt;code&gt;zsh.rc&lt;/code&gt; and
correctly set the shell aliases for easy access to Git.&lt;/p&gt;
&lt;p&gt;While this seems somewhat burdensome,
once mastered, the amount of text required
to create most config files is much shorter.
The hardest part of writing these is knowing what to pass to these config blocks and how this will alter the generated dot file(s).
The easiest way to cut through this fog is to use the examples from the &lt;a href=&quot;https://nixos.wiki/wiki&quot;&gt;Nix wiki&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One small caveat though is if configuring packages through &lt;code&gt;programs.x&lt;/code&gt;,
it&#39;s best to omit adding those packages in &lt;code&gt;home.packages = [];&lt;/code&gt;
Which means if we have a &lt;code&gt;programs.zsh&lt;/code&gt; block (like above),
there&#39;s no need to add &lt;code&gt;zsh&lt;/code&gt; to &lt;code&gt;home.packages&lt;/code&gt;.
&lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; assumes that it should install the zsh package if you the developer are generating a dotfile.&lt;/p&gt;
&lt;h4&gt;Oh So Much More&lt;/h4&gt;
&lt;p&gt;This touches the absolute tip of the &lt;a href=&quot;https://nixos.org/&quot;&gt;Nix&lt;/a&gt; iceburg.
In the next post we will explore an example configuration
file that doesn&#39;t look too much unlike my own and break down
what&#39;s going on, how to adapt and add on to it,
as well as some helpful hints when it comes to living with Nix every day.&lt;/p&gt;
&lt;p&gt;The final part of this trilogy will showcase how to pair &lt;a href=&quot;https://nixos.wiki/wiki/Home_Manager&quot;&gt;Home Manager&lt;/a&gt;
with &lt;code&gt;nix.shell&lt;/code&gt; files to build idempotent developer environments in any directory.
This will allow developers to not only remove the need of &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; but,
also remove language version managers like &lt;a href=&quot;https://asdf-vm.com/&quot;&gt;ASDF&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Battlestations in 2023</title>
    <link href="https://cloudbacon.com/posts/2023-06-11-rebuilding-battlestations/"/>
    <updated>2023-06-11T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2023-06-11-rebuilding-battlestations/</id>
    <content type="html">&lt;p&gt;It&#39;s been some time since we have chatted about &lt;a href=&quot;https://www.reddit.com/r/battlestations/&quot;&gt;battlestations&lt;/a&gt;.
So long actually that,
the old &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_Cinema_Display&quot;&gt;27&#39; Cinema Display&lt;/a&gt;,
has been long retired.&lt;/p&gt;
&lt;p&gt;For quite some time through COVID,
there was a MacBook Pro on a floating arm on the right,
a &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_Cinema_Display&quot;&gt;Cinema Display&lt;/a&gt; in the center,
and horizontal 21 inch &lt;a href=&quot;https://www.asus.com/us/proart/displays-home/&quot;&gt;ASUS ProArt&lt;/a&gt; on the far right.
&lt;a href=&quot;https://www.ergodox.io/&quot;&gt;Ergodox&lt;/a&gt;, &lt;a href=&quot;https://happyhackingkb.com/&quot;&gt;HHKB&lt;/a&gt;, and all other peripherals driven from a single &lt;a href=&quot;https://www.caldigit.com/thunderbolt-station-4/&quot;&gt;Caldigit Dock&lt;/a&gt;.
While this setup was by far the longest running &lt;a href=&quot;https://www.reddit.com/r/battlestations/&quot;&gt;station&lt;/a&gt; that I used,
it was far from ergonomic.&lt;/p&gt;
&lt;p&gt;For starters (and this is more apparent than ever now),
a wide field of vision or &#39;many horizontally wide screens&#39;,
cause me a lot of eye strain.
Because my entire field of vision was filled by monitors,
it was hard to find a space to practice the now classic:
&lt;a href=&quot;https://www.mayoclinic.org/diseases-conditions/eyestrain/diagnosis-treatment/drc-20372403&quot;&gt;20-20-20 rule&lt;/a&gt;.
As with most individual contributors,
I spend most of my day steeped in code.
Either writing it but,
mostly digging through it.
This setup afforded a lot of horizontal space but,
is that a need when most files &lt;a href=&quot;https://softwareengineering.stackexchange.com/questions/148677/why-is-80-characters-the-standard-limit-for-code-width#148678&quot;&gt;are 80 characters in width&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Recently,
within the last six months,
I have moved on to a single 3:2 monitor (on an arm) and
a &lt;a href=&quot;https://www.amazon.com/AmazonBasics-Notebook-Arm-Mount-Tray/dp/B010QZD6I6/ref=sr_1_4?keywords=laptop+arm&amp;amp;qid=1682818887&amp;amp;sr=8-4&quot;&gt;laptop mount&lt;/a&gt; attached to another monitor arm.
3:2 or &#39;square&#39; monitors are pretty tricky to find these days.
Luckily, &lt;a href=&quot;https://www.lg.com/us/monitors/lg-28mq780-b&quot;&gt;LG took a gamble on building one early last year&lt;/a&gt;.
At its&#39; core it is two 21.5 inch monitors stacked directly on top of one another.
The result?
A somewhat-expensive but,
truly epic monitor for writing and reading source code.&lt;/p&gt;
&lt;p&gt;This monitor sits slightly off to the right of the main computer sitting on the arm.
Because of the nature of security in engineering these days,
many organizations have a smaller &#39;allow list&#39; of usable applications.
Because I continue to run &lt;a href=&quot;https://www.omnigroup.com/omnifocus&quot;&gt;Omnifocus&lt;/a&gt; for productivity
and recently &lt;a href=&quot;https://arc.net/&quot;&gt;Arc&lt;/a&gt; for browsing,
there&#39;s a further need to run a secondary laptop that sits under the one plugged into the Dual Up.
Previously this setup would have required the use of a &lt;a href=&quot;https://en.wikipedia.org/wiki/KVM_switch&quot;&gt;KVM switch&lt;/a&gt;.
However, since both laptops are Macs,
there&#39;s &lt;a href=&quot;https://support.apple.com/en-us/HT212757&quot;&gt;Universal Control&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This gives the user an idea of three monitors (&lt;a href=&quot;https://www.lg.com/us/monitors/lg-28mq780-b&quot;&gt;LG Dual Up&lt;/a&gt;, computer one on top, and computer two on the bottom) but,
in reality it is a single computer and monitor with a sidecar like experience.
Not only is this great for security focused organizations,
it&#39;s a win for segmenting application focus between computers and screens.&lt;/p&gt;
&lt;p&gt;For input, I am still relying heavily on the &lt;a href=&quot;https://www.ergodox.io/&quot;&gt;Ergodox&lt;/a&gt; and a custom &lt;a href=&quot;https://happyhackingkb.com/&quot;&gt;HHKB&lt;/a&gt;.
There will always be a flurry of new and more &#39;interesting&#39; keybs in the market.
However, I have spent a large amount of time focusing on &lt;a href=&quot;https://theviewfromgreatisland.com/mediterranean-bean-salad-recipe/&quot;&gt;Topre&lt;/a&gt; in the past few years.
I don&#39;t foresee this changing in the next three to four.
Beyond the keyboard, I use a conventional Apple Trackpad while home and an Apple Mouse when traveling.
Apple Airpods (non pros) and Airpod Maxes for audio.&lt;/p&gt;
&lt;p&gt;Individual Contributors tend towards a sea of curved,
ultra-wide monitors. All sitting on desks filled with Funko dolls,
fidget toys, and a sea of input mechanisms.
The longer that I spend as an IC,
the more and more simple my setup becomes.
This has helped me remain focused when needed and
affordable when repairs inevitably come up.&lt;/p&gt;
&lt;p&gt;This focused mainly on the hardware that&#39;s supporting my &lt;a href=&quot;https://www.reddit.com/r/battlestations/&quot;&gt;battlestation&lt;/a&gt;.
In a future post,
I will tackle the software that&#39;s making me a productive engineer.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Anti Innovation Tokens</title>
    <link href="https://cloudbacon.com/posts/2024-09-12-selecting-tech/"/>
    <updated>2024-09-12T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2024-09-12-selecting-tech/</id>
    <content type="html">&lt;p&gt;Recently an ex-team member of mine received negative feedback on an approach to consolidate on a single datastore.
The intent was to focus all of their infrastructure knowledge on ONLY &lt;a href=&quot;https://www.postgresql.org/&quot;&gt;Postgres&lt;/a&gt;.
This was for a fairly normal &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; application that already liberally utilized a handful of innovation tokens.&lt;/p&gt;
&lt;p&gt;The concept of these is actually quite old in 2024, so this post should help: &lt;a href=&quot;https://mcfunley.com/choose-boring-technology&quot;&gt;Choose Boring Technology&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This individual&#39;s idea would be to utilize Postgres for queuing,
database interactions,
and with &lt;a href=&quot;https://github.com/rails/solid_cache&quot;&gt;Solid Cache&lt;/a&gt;;
caching both &lt;a href=&quot;https://github.com/DmitryTsepelev/graphql-ruby-fragment_cache&quot;&gt;GraphQL Response Fragments&lt;/a&gt; and &lt;a href=&quot;https://rubyonrails.org/&quot;&gt;Rails&lt;/a&gt; cache needs.
The heresy though of removing complexity, especially at the infrastructure level.
Becoming focused on a single piece of technology is still considered a step backwards or &#39;pedestrian&#39;.
Doubly so, when teams take such a libaral use of innovation tokens at the beginning of an application.&lt;/p&gt;
&lt;p&gt;Relentless simplicity is a great marker of senior (even staff) engineers.
A fairly smart human and someone quoted frequently on this blog has a good amount of thought on this topic:&lt;/p&gt;
&lt;p&gt;https://www.youtube.com/watch?v=SxdOUGdseq4&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Starting New Things.</title>
    <link href="https://cloudbacon.com/posts/2024-12-12-starting-new-things/"/>
    <updated>2024-12-29T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2024-12-12-starting-new-things/</id>
    <content type="html">&lt;p&gt;It&#39;s been almost ten years since I have toyed with the idea of starting a company.
Historically, my focus has been around growing technology at burgeoning organizations.
Startups and early stage companies go through growing pains and issues that
align with the specific startup&#39;s needs.&lt;/p&gt;
&lt;p&gt;Having solved these specific problems more than once,
one not only establishes a keen understanding of the solution but,
an acute anticipation for knowning when these problems will arise.
This &#39;superpower&#39; is what all startups should be looking for in their hiring rounds (in 2025).&lt;/p&gt;
&lt;p&gt;Instead of looking for another space to flex this knowledge,
I am instead working on a small side project of my own.
Since the project will be mostly bootstrapped,
there will be a fairly long validation phase.
This will launch early on in 2025.&lt;/p&gt;
&lt;p&gt;This space will continue to house &#39;normal-ish&#39; technical writings.
In the spirit of building in the open,
there will be a new route and collection of posts added
to &lt;a href=&quot;https://cloudbacon.com/#&quot;&gt;/inpublic&lt;/a&gt; in the coming week.&lt;/p&gt;
&lt;p&gt;As always: next year (2025) is likely to be better (perhaps only slightly) than this year (2024) for this meandering deluge of non-AI driven anti-mouth blogging.
Here&#39;s to a year of more writing and sharing more of all the things!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Knowledge Gardens in 2025</title>
    <link href="https://cloudbacon.com/posts/2025-05-16-new-knowledge-gardens/"/>
    <updated>2025-05-16T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2025-05-16-new-knowledge-gardens/</id>
    <content type="html">&lt;p&gt;Over the past 6 (&#39;ish&#39;) years, a plethora of note taking tools or &#39;startups&#39; have launched.
Many of them following on the much contested heals of &lt;a href=&quot;https://roamresearch.com/&quot;&gt;Roam Research&lt;/a&gt;.
These other companies (much like &lt;a href=&quot;https://roamresearch.com/&quot;&gt;Roam&lt;/a&gt;), ended up taking some form of capital investment
and then &lt;a href=&quot;https://www.reddit.com/r/logseq/comments/1knteiv/logseq_ruined_by_vc_money/&quot;&gt;shipping nothing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This cumulates into a world of languishing knowledge management applications in 2025.
If you have stuck with &lt;a href=&quot;https://roamresearch.com/&quot;&gt;Roam&lt;/a&gt; or &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian&lt;/a&gt;,
then you probably have nothing to change.
The likelihood of those applications going anywhere in two to three years is slim.
Nonetheless, if you chose something like &lt;a href=&quot;https://github.com/logseq/logseq&quot;&gt;Logseq&lt;/a&gt;, &lt;a href=&quot;https://reflect.app/&quot;&gt;Reflect&lt;/a&gt;,
or &lt;a href=&quot;https://supernotes.app/&quot;&gt;SuperNotes&lt;/a&gt;, you maybe looking for a suitable alternative.&lt;/p&gt;
&lt;p&gt;Having moved from &lt;a href=&quot;https://roamresearch.com/&quot;&gt;Roam&lt;/a&gt; to &lt;a href=&quot;https://github.com/logseq/logseq&quot;&gt;Logseq&lt;/a&gt; a few years ago,
this writer finds themselves squarely in this group of individuals.
After spending two to three weeks at the beginning of this year looking at alternatives,
I landed on the following:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://silverbullet.md/&quot;&gt;SilverBullet&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://silverbullet.md/&quot;&gt;SilverBullet&lt;/a&gt; coupled with &lt;a href=&quot;https://github.com/zk-org/zk&quot;&gt;Zk&lt;/a&gt; turns out to be a spectacular way to manage a plain text Zettelkasten knowledge base.
&lt;a href=&quot;https://silverbullet.md/&quot;&gt;SilverBullet&lt;/a&gt; gives the user a modern and hackable front-end interface to &lt;a href=&quot;https://github.com/zk-org/zk&quot;&gt;Zk&lt;/a&gt; created files.
Both tools are open source and believe strongly in keeping everything in simple markdown files.
This means that all those knowledge pieces will remain accessible where ever they exist in the near (or far) future.&lt;/p&gt;
&lt;p&gt;During the move from &lt;a href=&quot;https://github.com/logseq/logseq&quot;&gt;Logseq&lt;/a&gt; to &lt;a href=&quot;https://silverbullet.md/&quot;&gt;SilverBullet&lt;/a&gt;,
this writer entirely overhauled their approach to &#39;&lt;a href=&quot;https://bradfrost.com/blog/post/atomic-web-design/&quot;&gt;block level knowledge atoms&lt;/a&gt;&#39;.
These concepts are key to a successful text-only Zettelkasten but,
can be somewhat tricky to apply in a purely markdown approach.&lt;/p&gt;
&lt;p&gt;More on this in the next post!
So... Stay tuned?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>GitLab Diffview</title>
    <link href="https://cloudbacon.com/posts/2025-06-14-gitlab-diffview/"/>
    <updated>2025-06-14T00:00:00Z</updated>
    <id>https://cloudbacon.com/posts/2025-06-14-gitlab-diffview/</id>
    <content type="html">&lt;p&gt;Recently, we&#39;ve moved all our managed &lt;a href=&quot;https://git-scm.com/&quot;&gt;Git&lt;/a&gt; repositories over to &lt;a href=&quot;https://about.gitlab.com/&quot;&gt;GitLab&lt;/a&gt;.
Originally the plan was to use their self hosted option but,
eventually the org saw the light and settled on their enterprise solution.
Having never used &lt;a href=&quot;https://about.gitlab.com/&quot;&gt;GitLab&lt;/a&gt; all that frequently,
the idea of deactivating &lt;a href=&quot;https://en.wikipedia.org/wiki/Syntax_highlighting&quot;&gt;syntax highlighting&lt;/a&gt; wasn&#39;t top mind during this transition.&lt;/p&gt;
&lt;p&gt;GitLab&#39;s &lt;a href=&quot;https://diffcheck.io/&quot;&gt;diff view&lt;/a&gt;,
especially when working through any sized code review,
seems to break my brain.
&lt;a href=&quot;https://about.gitlab.com/images/12_2/diff-expansion.png&quot;&gt;This link&lt;/a&gt; contains a perfect example of the dilemma.
For an unknown reason,
these colors (the shade of green and red to highlight changes),
along with the colors of the HTML,
create a problem when discerning additions or subtractions to the code.&lt;/p&gt;
&lt;p&gt;Often I find myself writing feedback to someone&#39;s code that looks to be an addition but,
is a removal.
Due to this constant confusion,
I have attempted the following potential solutions (in no order):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tweaking the colors of the added/removed hunks,&lt;/li&gt;
&lt;li&gt;Attempted to increase the contrast of the coloring of each diff hunk.&lt;/li&gt;
&lt;li&gt;Deactivated all &lt;a href=&quot;https://en.wikipedia.org/wiki/Syntax_highlighting&quot;&gt;syntax highlighting&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;all in an attempt to conquer this issue.&lt;/p&gt;
&lt;p&gt;The concept of: &#39;aging eyes&#39; could be at fault here but,
I continue to do just fine with &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;.
This view (in GitLab) is suboptimal at assisting engineers performing thorough code reviews.
If you struggle with this and have come up with a solid solution,
feel free to reach out on &lt;a href=&quot;https://ruby.social/@braidn&quot;&gt;Mastodon&lt;/a&gt; and fire up a chat.
I would love to be incorrect in my assertion.&lt;/p&gt;
</content>
  </entry>
</feed>
