A “/uses” Update!

I have updated /uses with some minor changes:

  • Switched from VS Code Insiders to VS Code, there was a plugin that had issues and I never switched back.
  • New VS Code Plugins
    • Bracket Pair Colorizer
    • Document This
    • Git Lens
    • Import Cost
    • markdownlint
  • Removed VS Code Plugin
    • vscode-icons (natively supported)
  • iTerm 2 re-added because restarting VS Code closed all terminal sessions.

My Favorite VS Code Extensions (June 2016)

I’ve written a bit about my usage of Webstorm in the past, but I haven’t lately. There’s good reasoning behind it, I’ve switched to Visual Studio Code! I’ve really been enjoying using it, especially since I started working in Typescript. It seems like more and more people are enjoying it too! With that expanded audience, comes community written extensions for VS Code. These are my current favorite ones:

Do you have an extension that you love that you think I will too? Reach out to me on twitter and let me know! @AdamWeeks


A Spaces Update (Mission Control)

I had previously blogged about how I use Mission Control Spaces in my workflow. Since my role at work has changed quite a bit (more web/less iOS) my layouts have changed a bit. It has been almost a year since I started using a ‘role based space’ setup and I’m still happy with the change.

Here’s my current setup:

  • Space 1 (Primary Monitor): Empty Space for Secondary Monitor (info)
  • Space 2 (Primary Monitor): Chrome (Gmail, General Browsing), Safari (Outlook web for work, JIRA, Stash), Spotify [GENERAL PURPOSE SPACE]
  • Space 3 (Primary Monitor): Chrome (Web Development, Karma Tests), iTerm2, WebStorm, Sublime Text [WEB DEV SPACE]
  • Space 4 (Primary Monitor): Source Tree [GIT SPACE]
  • Space 5 (Primary Monitor): XCode, iOS Simulator [iOS SPACE]
  • Space 6 (Secondary): Messages, Twitter, HipChat, Slack [COMMUNICATION SPACE]

As you can see, I’ve moved my iOS development space to the end since it so rarely gets used these days (sadface.gif) but I keep my web development space closer to the bottom of the stack. In the next few weeks, space 4 and 5 will probably get merged to keep things a bit more simple.

Maple Bourbon Bacon Almond Brittle

Maple Bourbon Bacon Brittle

Maple Bourbon Bacon Brittle

This weekend I decided to try to make an item I’d seen across instagram and pinterest, Bourbon Bacon Brittle. Now, I wouldn’t say I was a brittle expert, but I’ve probably made more batches of brittle for gifts than I’ve made any other food product (besides boxed mac and cheese!). I’d never put anything besides different kinds of nuts in the brittle though, so I wanted to give it a shot.

Let’s start with what I did and then I’ll tell you what I’m going to do next time.

Maple Bourbon Bacon process

Maple Bourbon Bacon process

Stage 1: Maple Bourbon Glaze

  • 1/2 Cup Whiskey/Bourbon (I used Jack Daniels because I didn’t want to use the good stuff for the first attempt)
  • 1 Cup of Brown Sugar
  • 1/2 Maple Syrup


  • Bring whiskey to a boil and reduce heat to a simmer
  • Simmer for around 10-15 minutes to boil alcohol off
  • Add brown sugar and syrup and mix
  • Bring mixture to a boil stirring frequently
  • Reduce to a simmer and test every 5-10 minutes for consistency
  • Once it reaches a syrup like consistency, it is ready
  • Leave it on very low heat to make it easier to brush on


Stage 2: BACON!


  • All the bacon. 1 pound of it should use that amount of glaze (I used thick cut, but won’t next time)


  • Preheat oven to 400 degrees F
  • Line a cookie sheet with foil
  • Place baking rack on cookie sheet
  • Spray pan and rack with cooking spray
  • Put as much bacon on the rack as you can get
  • Brush top of bacon with glaze from stage 1
  • Bake for 13 minutes in middle/top of oven to keep from burning
  • Take the tray out and flip bacon on the rack. Brush bacon with glaze again.
  • Bake for additional 13 minutes
  • Inspect bacon for done-ness. It will crisp up some after you take it out.
  • (At this point I re-glazed and re-baked both sides for another 2 mins because the thick cut bacon wasn’t quite done. Plus, bonus, more bourbon glaze!)
  • Remove from oven and let it cool (it will cool quicker on a different rack if you have a spare

Final Stage (3): Brittle!

Brittle cooling

Brittle cooling (Definitely not puke)


  • 1 cup white sugar
  • 1/2 cup corn syrup
  • 1/8 tsp salt
  • 1 cup almonds
  • 2 tbsp butter
  • 1 tsp baking soda
  • 2 tsp vanilla
  • 2-3 slices of bacon chopped up
  • Candy Thermometer


  • Get everything measured and prepared. Once the temp hits the sweet spot, you’ll be running around like crazy otherwise.
  • Spray a cookie sheet with cooking spray (or, if you’re like me, just use a silicone mat. That thing is truly magical!)
  • Mix sugar & corn syrup in pot and cook over medium heat.
  • Constantly stir mixture until it starts boiling then don’t touch it until it reaches 310 degrees.
  • Once it reaches 310, stir in almonds and bacon and cook 2 more minutes.
  • Mix vanilla, butter, salt, and baking soda in and stir quickly. (It will get all foamy due to the soda, but that is expected)
  • Once mixed, spread quickly onto pan and let cool.
  • Once completely cooled, break into pieces and store in a cool area (if you can manage to not eat the entire batch)

For Next Time:

Like I said above, I won’t get the thick cut bacon next time. It took longer to cook and the pieces were a bit chewy in the brittle. It was still delicious but I think having it be crunchy will make it even better.

I also put the bacon in the brittle with the almonds. I believe this basically wiped out a lot of my glaze that was on the bacon. Next time, I’ll wait until the very end (after the vanilla, butter and baking soda addition) so that the bacon retains as much glaze as possible.

AngularJS Directive’s ‘Restrict’ Real World Guide

While trying to wrangle custom directives in AngularJS, I’ve found the restrict property a bit tough to understand even after reading the guide:

The restrict option is typically set to:

  • 'A' – only matches attribute name
  • 'E' – only matches element name
  • 'C' – only matches class name

These restrictions can all be combined as needed:

  • 'AEC' – matches either attribute or element or class name

Here’s a real world example of each one in use. For these examples, we’ll define our directive as:

directive('exampleDirective', function(){
    return {
        restrict: 'A',
        template: 'This is an example directive',

Also notice that even though our directive is named ‘exampleDirective’, Angular converts it to ‘example-directive’ when compiling the html.