Recent Posts
A Truly Minimum Viable Kitchen
published Feb 24, 2014
I read Matt Maroon’s Minimum Viable Kitchen post (and the ensuing Hacker News discussion) a while ago, and I’ve been thinking about it off and on since then.
Not about the post per-se, but about what a minimum viable kitchen was, and whether there was anything interesting in the concept.
In the original post, Matt goes into great detail on a huge list of things that are needed for a Minimum Viable Kitchen. It quickly becomes obvious that Matt is not a minimalist. The list includes things like a stand mixer, a scale, and a 10-piece pot and pan set. Nothing wrong with that. I own a stand mixer and a scale, and I use them all the time, but I certainly wouldn’t put them on my “desert-island kitchen list”. I don’t own 10 pots and pans. I do agree that you need good quality ones, but 10 seems like a bit much, even for a non-minimal kitchen. I’d rather have the extra cupboard space.
Truly Minimal
So, let’s scale it back a bit. What is a truly minimalist kitchen, and what can you make with it?
I’m going to assume that you are living in a standard house that comes with a fridge, stove and oven. Let’s pretend you are just moving into your first place and have nothing else. What do you need to cook with? I’m going to ignore anything you use to eat, we’re just talking about getting food to the table here.
Okay how’s this for a first shot.
Read MoreNo Excuses
published Apr 23, 2012
I wrote this in response to a post on HN. I could link to the post, but it doesn’t matter. There are posts like this all the time. Stop making excuses. Go build something.
Read MoreThis is going to sound more dramatic than it was, but here’s one way of summarizing the last five years of my life:
I was 35, working at a great job as a physicist. Amazing team (I was usually the dumbest guy in the room), amazing project, but I was bored. I knew that if this didn’t make me happy, I needed to get out. I read a few PG essays, caught the startup bug, and started coding in the evenings.
Within 8 months, with a brand-new daughter and another that was two, I was gone from that job, working on my own. In that 8 months I had taught myself web-dev from scratch.
I knew nothing of Ruby, HTML, CSS or JavaScript. I had a smattering of Unix knowledge and had been coding data-analysis in Python and C for a while, but the amount I had to learn was staggering. I bought tons of books, learned tons, and (luckily) had no idea how much I still had to learn.
Getting up and running with Amber
published Dec 08, 2011
I was quite excited by Yehuda Katz’ announcement of Amber.js this morning. I had been intrigued by SproutCore, but hadn’t really liked how big it felt. So, when Yehuda said “If you played with SproutCore and liked the concepts but felt like it was too heavy, give Amber a try”, I listened.
The following is mostly just notes of what I learned. It’s not at all complete, but it should get you up and running and get you something to play with quickly.
Getting it on your machine
Assuming that you have git, Ruby 1.9.2 and a recent version of bundler installed, this is pretty straightforward. So, use rvm use 1.9.2
or the rbenv
equivalent if you need to. These commands should do it:
git clone https://github.com/amberjs/amber.js.git
cd amber.js
bundle install
rake dist
This will create sproutcore.js
and sproutcore.min.js
in the dist
directory.
Creating Hello World
Now that we’ve got the Javascript files, we can make a new project skeleton for a hello world app. We want to end up with an helloworld.html
file where we put our HTML, and a javascripts
directory where we put some JS files to include.
Speeding up Jekyll Generation
published Nov 18, 2011
One of the only complaints you’ll see out there about Jekyll is that when sites get bigger, it starts to slow down.
Luckily, this is easy to fix. Unfortunately, it’s apparently not obvious as you still see people complaining about it. Here’s my attempt at proselytizing for Jekyll :).
If you run jekyll --help
, you’ll see that there’s a --limit_posts
option. If you set this to 1, then you’ll only re-generate your most recent post when you save. This is usually exactly what you want. If you’re working on a slightly older post, then bump it up to 3 or 4.
Like this:
jekyll --limit_posts 1
I’ve put this in a rake task
So I can start Jekyll like this:
rake jekyll:server[1]
and only see the current post, and it’s blazing fast.
Read MoreOpening up ports to your security group on EC2
published Nov 18, 2011
Say you have a cluster of EC2 instances that you want to be able to talk to each other, but you don’t want everyone in the world to be able to join in on the conversation. For example, I was just setting up a typical cluster of servers:
- A rails app server
- A DB server
- A daemon server
- A DB slave
I want all of these servers to be able to talk to each other over port 3306 (the MySQL port), but I don’t want the whole world to be able to connect over port 3306.
You need two things:
- A security group
- Your EC2 user id.
Assuming you have your ec2 command line tools set up already, here’s how you would do it. This will create a group called yoursecuritygroup
with ports 22 (ssh), 80 (http) and 443 (https) open to the world, but with all other ports only open to other computers in the same security group.
$> ec2-create-group --description "yoursecuritygroup production" yoursecuritygroup
$> ec2-authorize yoursecuritygroup -p 22
$> ec2-authorize yoursecuritygroup -p 80
$> ec2-authorize yoursecuritygroup -p 443
$> ec2-authorize yoursecuritygroup -o yoursecuritygroup -u 1234-1234-1234
You need to add your user id here in place of 1234-1234-1234
. You can find this by going to https://aws-portal.amazon.com/gp/aws/developer/account?ie=UTF8&action=access-key and scrolling to the bottom. You want your AWS Account ID.
Now when you spin up your instances, make sure to start them in the yoursecuritygroup
group using the --group
argument:
ec2-run-instances --key your-key --group yoursecuritygroup --block-device-mapping /dev/sda1=:100:false --instance-initiated-shutdown-behavior stop --disable-api-termination --instance-type m1.small ami-a7f539ce
And you should be all set.
Read More