Mint Julio

  • 1 jigger St. Germaine elderflower liquor
  • 3 jiggers tequila repisado
  • 1/2 lemon
  • 1 tsp honey
  • Fizzy water
  • 3 mint leaves

Crush the mint in shaker with muddler. Add liquor, lemon, honey. Stir to dissolve the honey before adding ice. Ice. Shake. Pour over a couple cubes, top with fizzy water. Garnish with a sprig of mint.

Apples and Sausage

Hardware

  • Your trusty (and sharp!) chef knife
  • Large bowl
  • Big shallow saucepan or big sauté pan
  • Tongs or a big spoon
  • Tbsp and tsp for measuring or you can eyeball it if you’re sassy

Ingredients

Makes 2 servings:

  • 1 red onion
  • 1 red apple
  • 2 cups arugula
  • 3 sausages (weisswurst or bratwurst preferred)
  • 3 tbsp apple cider vinegar
  • 3 tbsp red wine
  • 3 tbsp olive oil
  • 1 tbsp butter
  • 2 tsp coriander powder
  • 1 tsp Garam Masala spice
  • 1/2 tsp cayenne pepper powder
  • Salt and pepper to taste

Preparation

Slice and marinate the onions

  • Thinly slice the onion and put into a bowl large enough to mix and flip the onions.
  • Add 2 tbsp apple cider vinegar to the bowl.
  • Add 2 tbsp red wine to the bowl.
  • Mix the liquid into the onions so they are thoroughly coated. Add more vinegar and wine if needed.
  • Add a couple shakes of the shakers or turns of the mills: salt and pepper to the bowl.

Let the onions marinate for about 10 minutes, mixing every 3 minutes so they are well-coated and evenly marinated. Putting some cling-wrap on the bowl and doing a sauté flip is easy and fun. If you have power-up magic sauté skills or you’re a slob and DGAF if marinade goes everywhere, you can skip the cling-wrap. Or if a sauté flip is too scary, you can just use a spoon or tongs to mix the onions.

Finish the prep

While the onions are marinating, heat up the pan on medium heat and add 1 tbsp olive oil. Keep in mind: 1 onion, 1 apple, and 3 sausages are going in the pan; make sure it’s big enough.

Don’t forget to mix the marinating onions.

Slice up the apple.

Don’t forget to mix the marinating onions.

Slice up the sausage to bite-size chunks relative to the size of your mouth-hole.

Cook!

Onions go in first:

  • Add the onions to the pan: sizzle!
  • Use a big spoon or tongs to spread them around so they’re cooking evenly.
  • Add 1 tsp coriander powder to the pan.
  • Add 1/2 tsp Garam Masala spice.
  • Mix it around in the pan so it’s evenly distributed.
  • If the vinegar/wine cooks off after a few minutes, add some more. If you don’t want it to be too sour, you can substitute water instead. Just make sure the onions don’t get dried out and burn!
  • Let the onions cook until they start to get soft, about 3 or 4 minutes.

Apples go in next:

  • Add the apples to the pan.
  • Add 1tsp coriander powder.
  • Add 1/2 tsp Garam Masala spice.
  • Add 1 tbsp butter.
  • Mix it all up with a big spoon or tongs so everything is evenly coated with the butter goodness.
  • Let the apples cook until they start to get soft, about 4 or 5 minutes.
  • It should be oily enough with the olive oil and the butter to not dry out too much. But if it does, add a bit of water to keep it from getting dried out and burning.
  • Add a few twists or shakes of salt and pepper how you like it.

Finally protein!

  • Add the sausage.
  • By now the onions should be pretty well-caramelized and developing a sweet flavor.
  • Add 1/2 tsp cayenne pepper powder
  • If you have raw pork sausages, you’ll want to cook until they are no longer raw. If you cut them into bite-size pieces this should only take about 8 minutes or so.
  • If you have pre-cooked sausages, you can just put them in the pan until they are warmed through: about 4 minutes.
  • Stir the pan every couple minutes while the sausages are warming up so everything cooks evenly.
  • If the apples and sausage don’t already have a golden brown caramelized crust on the edges, you can turn up the heat to medium-high and continue cooking until they do: about 4 or 5 more minutes.

Serve and eat :)

Add about 1 cup arugula to each of the two plates and drizzle with 1 tbsp olive oil each. Add the sausage and apples and onions from the pan onto the bed of arugula. Hope you enjoy!

Love isn’t gonna save us

Do you know what love is? It’s a hot bath. What happens to things when you leave them in a bath for too long? Huh? They get soft; fall apart. […] It’s a war, baby: this life. The things we endure. You said you saw the future and it’s an apocalypse. Who survives that? The lovers? Or the fighters? They sell us this lie that love is gonna save us. […] Love isn’t gonna save us… it’s what we have to save. Pain makes us strong enough to do it. All our scars, our anger, our despair: it’s armor. Baby, god loves the sinners best ’cause our fire burns bright bright bright. Burn with me.

—Sydney Barret, Legion S2/E4

Organizational Patterns for Life

Alphabetical

This is the most obvious way to organize things. Put them in order based on their name. Good for organizing spices or other items with many members.

Chronological

Organizing things in the order that they happened in the time-space continuum. Used for event-based organization like ledgers and logs.

Contextual

This could also be described as ontological. An example of contextual organization would be the Dewey Decimal System at the library where books are organized by theme and topic.

Proximal

This is organizing things by physical distance. A good example of proximal organization is keys on a keyring. Standing outside the front door, the keys are ordered based their lock’s distance from your eyes. Probably the top deadbolt is first, followed by the doorknob lock. Maybe there is a safety lock box in your house; that key is next. Your car key, since the car is further away in the driveway or parked on the street. Followed by the key to a storage space a mile away and then keys for your day-job across town. Etc.

This also works well for wiring switches. Wire the left-most switch to the closest output and the right-most switch to the furthest output.

Cinco de Drinko Rumchata

image

  • 1 part spiced rum (Captain Morgan)
  • 1 part white rum (Bacardi)
  • 1 part amaretto (Disaronno)
  • 4 parts rice milk
  • 2 dashes of ground cinnamon

Mix it all up in a shaker with a few ice cubes. Pour. Enjoy.

Goes great with Mexican food but also delightful as a Xmas cocktail.

Colored Console Output

const out = {

  end: '\x1b[0m',

  // Modifiers.
  blink: '\x1b[5m',
  bright: '\x1b[1m',
  dim: '\x1b[2m',
  hidden: '\x1b[8m',
  reverse: '\x1b[7m',
  underscore: '\x1b[4m',

  // Foreground Colors.
  black: '\x1b[30m',
  blue: '\x1b[34m',
  cyan: '\x1b[36m',
  green: '\x1b[32m',
  magenta: '\x1b[35m',
  red: '\x1b[31m',
  yellow: '\x1b[33m',
  white: '\x1b[37m',

  // Background Colors.
  bgBlack: '\x1b[40m',
  bgBlue: '\x1b[44m',
  bgCyan: '\x1b[46m',
  bgGreen: '\x1b[42m',
  bgMagenta: '\x1b[45m',
  bgRed: '\x1b[41m',
  bgYellow: '\x1b[43m',
  bgWhite: '\x1b[47m',
};

Usage:

console.log(out.red, 'Something went wrong:', err, out.end);

Validate the Crickets’ Nest

I have a problem getting values from deeply nested objects: if one of the properties along the namespace is incorrect|modified|removed, Javascript throws. To avoid this, you can end up with obnoxious validation:

// Trying to get this.data.homeScene.user.name
const isValid = (
  typeof this.data === 'object' &&
  typeof this.data.homeScene === 'object' &&
  typeof this.data.homeScene.user === 'object' &&
  typeof this.data.homeScene.user.name === 'string'
);
if (isValid) {
  const { name } = this.data.homeScene.user;
  ...
}

What if I made a reusable helper to validate the namespace and return the value?

export default function getNamespace(startObj, path) {
  const isValidArgs = (
    typeof startObj === 'object' &&
    typeof path === 'string'
  );
  if (!isValidArgs) return undefined;

  const finalValue = path
    .split('.')
    .reduce((obj, p) => ((typeof obj === 'object') 
      ? obj[p]
      : undefined
    ), startObj);{

  return finalValue;
}

Now the obnoxious validation looks like this:

// Trying to get this.data.homeScene.user.name
const name = getNamespace(this, 'data.homeScene.user.name');
if (name) { ... }

Dude! Sweet!

Alias for Git sanity

Git command line is pretty confusing. Here are some aliases that I found helpful that normalize it with other command line commands and add a little bit better context.

Open global .gitconfig file:

$ open ~/.gitconfig

If there isn’t an [alias] section already, add one:

[alias]
  cd = checkout
  ls = branch
  delete-merged = !git branch --merged | egrep -v \"(^\\*|master|development)\" | xargs git branch -d
  new-up = !git push -u origin `git symbolic-ref --short HEAD`
  stage = add
  unstage = reset HEAD

Update 2018-07:

To set VS Code as the default editor for commit and merge messages:

[core]
  editor = code --wait