This is what an insurgent looks like

This is happening one state away from me:

insurgent

Pretty scary stuff. I guess at least Americans are bearing arms to overthrow (in their mind) tyrannical government not just shooting at each other out of fear, anger or greed. It shows some holes in many citizens’ view of the social contract though.

Malaysian Chicken Curry

I really miss Indonesian, Singaporean and Malaysian food. It basically doesn’t exist in the Bay Area. I started reading Bee’s Rasa Malaysia blog for recipes. I think I originally found it looking for a rendang recipe but subscribed. It’s actually a little disappointing because it’s largely Thai or Chinese recipes, and too many competitions and not enough recipes. But last week there was a Malaysian chicken curry recipe, so I made that.

wpid-IMG_20140117_205243_1.jpg

I used some special Malaysian curry powder that my dad brought from Australia, but the recipe was basically the same as Bee’s.

  • 2 tbsp vegetable oil
  • 1/2 onion, diced
  • 1 oz / 26 g Malaysian curry powder
  • 1.5 lb chicken breast, chopped into 1 – 1.5 inch pieces
  • 3 cups water
  • 1 tomato, cut into wedges
  • 2 small potatoes, peeled and cut into wedges
  • 4 hard boiled eggs
  • 1/2 – 2/3 cup coconut milk
  • salt
  • steamed rice to serve
  1. Heat the oil until hot, add the onions and fry until fragrant.
  2. Add the curry powder, stir for 30 seconds.
  3. Add the chicken, stir well for 1 minute.
  4. Add the water and bring to a boil.
  5. Lower to a simmer and add the tomato, potatoes and eggs.
  6. Cover and simmer for 30-45 mins – until the chicken is cooked and tender.
  7. Add the coconut milk and salt to taste. Simmer for another 5 minutes.
  8. Serve with rice.

This quite liquid, not thick like a Thai or Indian curry. It soaks into steamed rice wonderfully.

Waffles

I made one blog post in 2013. I’m going to do better this year. I miss writing on the internet. In the past year I’ve found myself drifting away from consuming short-form writing on Twitter and Facebook to return to enjoying longer form posts on blogs and to a lesser extent on Google+, Tumblr and Medium. So here I am.

This morning I made waffles. While I don’t have the actual recipe my dad used when I was growing up, found and used a recipe that uses that technique – beaten egg whites. For four of us I doubled this recipe and had way too much batter:

Ingredients:

  • 1¾ cups all-purpose flour
  • 2 tsp baking powder
  • ½ tsp salt
  • 1 Tbsp granulated sugar
  • 3 eggs
  • 1¾ cups whole milk
  • ¼ cup vegetable oil
  • 2 oz (½ stick) whole butter

Preparation:

  1. Melt the butter – on the stove at low heat or in the microwave. Let it cool but not solidify.
  2. Separate the eggs.
  3. Sift together the flour, baking powder and salt.
  4. Beat the egg whites until they’re stiff. Add the sugar and continue beating until it forms peaks.
  5. Beat the yolks by hand, then mix in the milk, oil and butter.
  6. Mix the liquid ingredients into the dry ingredients.
  7. Fold the beaten egg whites into the batter. Don’t over mix – they’re going to make those waffles fluffy.
  8. Make waffles with your waffle iron on its hottest setting.

You could add half a teaspoon of vanilla extract to the liquid ingredients but I generally don’t.

This morning I served them with bacon, fresh raspberries, butter, maple syrup and boysenberry syrup.

Horse Meat

I like horse meat. It’s delicious and healthy. And not so different from beef. I’m really enjoying watching the unfolding European horse meat scandal. Even countries like France where horse is regularly eaten are outraged that they’ve been lied to.

A madrinha alerta

The scandal has exposed the complicated supply chain in the European cheap meat trade. It’s exposed other lovely facts like that a “beef burger” in the UK only needs to be 47% beef. What’s the rest of it? Pretty much anything, but generally protein powder and highly processed meat off-cuts.

In the 1990s the UK banned mechanically recovered meat, commonly referred to as “pink slime”, after it was linked to the spread of CJD, the human form of mad cow disease. Pink slime was replaced by “de-sinewed meat” in cheap meat products until last year when it was reclassified and no longer allowed in cheap burgers. The way I look at it, this means, since we’re in the process of eliminating pink slime, we’re about 15 years away from this scandal here in the US.

I think it’s great whenever people are exposed to their food chain. We need to demand more accountability, transparency and integrity. If that means we can’t afford to eat meat every day, but the meat we do it is of higher quality then that’s a fine outcome.

I’d go so far as to say I’m Lovin’ It.

2012, The Year of the Linux Personal Computer

2012 Q3 PC sales: 87.5M
2012 Q3 Android sales: 122.5M

For sure, many would-be PC buyers were waiting for Windows 8 and refreshed models that were waiting for Windows 8 to be released, but that still means that last quarter 1.4 times as many Linux computers were sold than Windows computers.

You might try to argue that an Android device isn’t a personal computer, but apart from writing software, everything I do on my computer I do on my Android devices. You might argue that Android isn’t “Linux” enough, but it’s certainly largely open source and runs a Linux kernel. There’s plenty I don’t like about the way Android is put together compared to a traditional stock Unix system, but hey, look at the numbers – 122.5M Linux computer shipped last quarter. That’s a whole lot of Freedom!

Creepy Flashing Heads

Sharon picked up some cheap styrofoam heads from a store that had previously used them to display wigs for use in a decoration project of hers for this Halloween. I got her to pick up a couple more for me to use. After some discussion and ideas Aaron and I decided that it would be creepy to have lights flashing on them in a random fashion. This sounded like exactly the project I wanted to use my TI MSP430 Launchpad for. I don’t have very much microcontroller experience – pretty much just making lights flash on or off – so that’s perfect.

I managed to get a MSP430 development environment up and running on Linux pretty easily. It was just:

apt-get install mspdebug gcc-msp430

The code is pretty simple. Two digital IO pins drive the LEDs and a watchdog timer wakes up every 32ms to decide if an LED should be turned on or off or left alone. In the end much of the code is overkill for such a simple application, but it does look kind of cool:

Turkish Bread (Pide)

One of the foods I miss most from Australia is Turkish bread or pide. In Australia it’s common to have as a sandwich bread or for dips, in Berlin it holds the amazing doner kebabs. In the US, or at least in the Bay Area it’s completely unknown and sadly unavailable. When I visited Australia for a few days for work recently I didn’t have time to visit any family but the first meal I had was a sandwich on Turkish bread.

This weekend I’ve been trying to cook Turkish bread. A minor mix-up with units ruined my first attempt, on Saturday. I tried fixing it by adding the right amount of flour and ended up with a bread, but it wasn’t what I was after. Today I got it right.

I’m pretty much using the recipe from SBS, but here’s more precisely what I did.

Ingredients

  • 1 tablespoon (2 x 7 g sachets) dried yeast
  • 1 pinch caster / extra fine / bakers sugar
  • 375ml warm water
  • 480g strong bread flour
  • 1tsp salt
  • 60ml extra-virgin olive oil
  • 2 free-range eggs
  • 50 ml milk
  • nigella and / or sesame seeds

Steps

  1. Dissolve the sugar and yeast in 125ml of the warm water in a medium bowl. Set it aside until it froths, about 10 minutes.
  2. Mix in 90g of the flour, using fingers if you have to. It will be a quite liquid almost batter-like consistency. Cover with a tea towel and leave in a warm place for 30 minutes as it forms a sponge. It will at least double in size so make sure that your bowl has room.
  3. Put the remaining flour (390g) and the salt in the bowl for an electric mixer. Make a well in the center and add the rest of the warm water (250ml), the sponge and the olive oil. Mix it with your fingers – it will be pretty wet and sloppy.
  4. Use the mixer’s dough hook to kneed the sloppy dough for 10 to 15 minutes, until it’s smooth and springy.
  5. Transfer the dough to a lightly oiled bowl and leave it covered with a tea towel until it has doubled in size, about an hour.
  6. Preheat the oven as hot as it will go with a large pizza stone – big enough to hold two pide.
  7. Divide the dough into two and form rounds
    on a lightly floured surface. Dust them with flour (to prevent sticking) and cover them with a tea towel for about half an hour.
  8. Make an egg wash by mixing the eggs and milk.
  9. Place a piece of parchment paper on a pizza peel, then flatten the dough rounds into 20cm long ovals onto the peel.
  10. Brush the dough ovals with egg wash. Dip your fingertips into the wash and drag them lengthwise down the dough to form the grooves.
  11. Sprinkle with nigella and / or sesame seeds
  12. Slip the dough ovals on the parchment paper onto the pizza stone and bake until golden brown, about 10 minutes.

Tonight we just ate the fresh bread by itself, but we saved a second loaf to eat tomorrow when we’re grilling out burgers. I’m thinking of seasoning mine like some of the doner recipes I’ve found.

Cloudy with a chance of downtime

AWS went down again last Friday. I wouldn’t normally care, I only run non-critical toy projects out of their infrastructure, but I know that it disrupted a friend’s wedding and that’s just not cool.

Amazon’s public statement about the event is fairly detailed and fairly believable. In one of their northern Virginia datacenters “each generator independently failed“. They don’t state how many generators they have, but their vagueness and references to “primary and backup power generators” seem to indicate that they have two.

Since they had UPS systems, a power outage with generator failure from 7:24pm PDT meant that the datacenter only lost power between 8:04pm PDT and 8:24pm PDT, and apparently many systems had power restored from 8:14pm, PDT. So why was the outage for customers so long?

The majority of EBS servers had been brought up by 12:25am PDT on Saturday. However, for EBS data volumes that had in-flight writes at the time of the power loss, those volumes had the potential to be in an inconsistent state.

I always understood that the value of having a UPS was two-fold, you could survive small power interruptions and you could safely shut down so that when power was restored your systems would return without requiring manual intervention. The Amazon cloud does not seem to be good at the latter.

At the most basic level it would seem prudent to force EBS servers to switch to a more cautious mode as soon as grid power is lost. If a server is running on batteries or even on a generator then forcing disks to remain in a consistent state is a pretty basic precaution. How hard is it to mount -o remount,sync automatically? Obviously there’s performance degradation with that, but it seems a small price to pay in the rare occasion when there’s clear and present risk of data loss. Who wouldn’t take an occasional performance hit in exchange for reliable disks and shorter outages?

Bringing back EC2 instances is a harder problem. Fundamentally the machines that run EC2 instances don’t know or care much about the VM images that run on them. That’s what makes them easy to manage, that’s what makes it easy to spin up new images. On the other hand my simple web service that went down for hours last week does simply boot up. Because it’s deployed into this automatically managed cloud it has to. Had I been running on my own hardware in the exact same datacenter my downtime would have been  on the order of 20 minutes rather than hours.

Because we’re building on top of a system involving half a million servers for compute alone we’re subject to the complexities of very large scale systems, even for our very simple systems. Each time a set of cascading failures causes extensive downtime we have to ask ourselves if the benefits of such complicated systems outweigh the cost.

Seven Inches

This year at Google I/O I got a Nexus 7, the new tablet from Google and Asus. First of all Android 4.1 Jelly Bean is great – it has a ton of incremental improvements over the already excellent ICS, plus Google Now, which promises to be a really useful daily tool.

Last year I got the iPad styled Galaxy Tab 10.1 at I/O. It’s a beautiful piece of hardware and the Honeycomb OS it came with was lovely. Honeycomb’s spectacular GMail and Calendar apps have only improved slightly in ICS and JB and remain one of the main reasons I like Android so much. Nonetheless I never found myself actually using my Galaxy Tab. I would take it on planes to play games or watch movies and use it to read books in hotels or occasionally at home but it never became part of my daily life.

I’m writing this on my Nexus 7. I’ve taken it pretty much everywhere I’ve been since I first opened it up. It fits into every bag I carry, can squeeze into my back pocket and is comfortable to use one handed on a busy BART train in the morning. It has the first touch keyboard that feels like the right size – larger tablets fail at thumb typing, and Google’s predictive keyboard is invaluable.

Overall I feel like I have a new tool, not just another gadget.