VIVAHATE

October 2010

No-Knead Bread

Bacon Wrapped Meatloaf with Black Truffle-Saffron Macaroni and Cheese

sliced

Ingredients:

  • Meatloaf (recipe below)
  • Black truffle-saffron macaroni and cheese (recipe below)
  • 8 slices apple wood smoked bacon

Instructions:

  1. Preheat oven to 375f.
  2. Lay bacon across the width of a loaf pan. The bacon should be long enough to drape over the sides of the pan while lying flat across the bottom. If this is unclear, see the picture below.
  3. Press a layer of meat into the bottom of the pan, on top of the bacon. This layer should fill exactly 1/3 of the loaf pan.
  4. Scoop some of the macaroni and cheese into the loaf pan, making sure to press out any air bubbles. This layer should also fill 1/3 of the loaf pan.
  5. Form a slab of meat in the approximate size and shape of the remaining 1/3 of the loaf pan. Transfer the slab to the loaf pan. Add or remove meat as necessary to ensure a snug fit.
  6. Fold strips of bacon back over the top of the meatloaf.
  7. Roast until internal temperature reads 160f.
  8. Note: It may be necessary to pull the loaf out every 30 minutes or so to drain the fat. This keeps the loaf from turning into a greasy mess.

Meatloaf Mixture

Ingredients:

  • 2 lbs ground meat (we used 1 lb of ground chuck, 80% lean, and 1 lb of spicy pork sausage)
  • 2 slices of wheat bread, crumbled
  • 2 eggs
  • 2 tbsp ketchup or to taste
  • 1 large clove minced garlic
  • 1 1/4 cup sliced onion (sweated)
  • 2 tbsp minced parsley
  • Worcestershire sauce to taste
  • Cayenne pepper to taste
  • Salt and black pepper to taste

Instructions:

  1. Mix meat, eggs, breat, ketchup, garlic, parsley, Worcestershire sauce, cayenne pepper, salt, and black pepper with hands in a large bowl.
  2. Meanwhile, sweat onions until translucent but not brown. Allow onions to cool and add to meat-mixture.
  3. Cover bowl with plastic wrap and move to refrigerator.

Black Truffle-Saffron Macaroni and Cheese

Ingredients:

  • 1 lb elbow macaroni
  • 1 lb extra sharp cheddar cheese
  • 4 oz Romano cheese
  • 4 oz Asiago cheese
  • 8 oz organic heavy cream
  • 3 cups organic whole milk
  • 6 tbsp unsalted butter
  • 6 tbsp all-purpose flour
  • 1 small black truffle
  • Pinch saffron threads
  • White pepper to taste (a little goes a long way)
  • Nutmeg to taste (just a little, always use whole nutmeg)
  • Salt and black pepper to taste

Instructions:

  1. Boil macaroni in a large amount of salted water until al dente. Drain and rinse with cold water. Set aside.
  2. In a large saucepan, melt butter.
  3. Over medium-low heat, whisk flour into butter, making a roux.
  4. Whisk heavy cream and milk into roux until thoroughly combined.
  5. Add saffron.
  6. Add cheese slowly, whisking constantly. Adding the cheese too fast or slacking on the whisk will result in a gross, lumpy disaster.
  7. Add shaved truffle, nutmeg, salt, and pepper.
  8. Fold macaroni into cheese sauce.


UPDATE: Here it is on the Today show (skip to 3:10)

Node.js on Mac OS X

Installation

First, install Mac OS X and Xcode. Install Homebrew:
$ sudo chown -R $USER /usr/local
$ curl -Lsf http://github.com/mxcl/homebrew/tarball/master | tar xz
  --strip 1 -C/usr/local
Install Node.js and Express:
$ brew install node
$ brew install npm
$ npm install express
Add the following to ~/.bash_profile:
export NODE_PATH="/usr/local/lib/node/"
You can verify that NODE_PATH has been set correctly by running the node program and inspecting require.paths. You should see something like this:
$ node
> require.paths
[ '/usr/local/lib/node/'
, '/Users/kyle/.node_libraries'
, '/usr/local/Cellar/node/0.2.3/lib/node'
]
> require('express');
{ version: '1.0.0rc3'
, Server:
   { [Function: Server]
     super_: { [Function: Server] super_: [Object] } }
, createServer: [Function]
}

Sample Program

Test it out. Put the following in a file named test.js:
var express = require('express');

var app = express.createServer();

app.get('/', function (req, res) {
    res.send('Hello World');
});

app.listen(3000);

Run It

Run using node:
$ node test.js
And visit http://localhost:3000/ in your browser.

Up Next…

Here’s what we’ll be building in the next post:

Node.js on WebFaction

Installing Node

I was able to build Node successfully on my WebFaction host using the following:

$ ./configure --jobs=1 --prefix=$HOME
$ make
$ make install

All set

$ node --version
v0.2.3

Testing Node.js

I created a custom app in the WebFaction control panel and mapped it to a subdomain, http://node.purslane.webfactional.com/.

I then dropped the following into a file named test.js:

This is simply the basic HTTP server example from the Node.js website, tweaked slightly to include the port that WebFactional chose for my custom app.

Where you put the code isn’t important. I saved it to ~/webapps/node/test.js. Seemed as good a place as any.

Running the server:

$ node test.js
Server running at http://node.purslane.webfactional.com/

Visiting the URL in my web browser resulted in the expected Hello World message.

Object Oriented JavaScript

The Constructor Invocation Pattern

function Greeter(opts) {
  this.who = opts.who;
};

Greeter.prototype.greet = function() {
  document.writeln("Hello " + this.who);
};

var g = new Greeter({who: "Kyle"});

g.greet();

Prototypal Inheritance

if(typeof Object.beget !== 'function') {
  Object.beget = function(o) {
    var F = function() {};
    F.prototype = o;
    return new F();
  };
}

var greeter = {
  who: "Kyle",
  greet: function() {
    document.writeln("Hello " + this.who);
  }
}

var anotherGreeter = Object.beget(greeter);
anotherGreeter.who = "Frank";
anotherGreeter.greet();