Christmas noms.

John & I tend to have a little mini-Christmas with just the two of us before we go to visit our families. I've generally found that the key to cooking a nice roast is the timings. As a huge nerd, naturally I have used a Gantt chart to organise my thoughts.

Please tell me other people do this when they have a big meal to prepare...

A photo posted by Beth McMillan (@teraspawn) on

I used this recipe for the sweet potato and chestnut roast - largely because I had chestnuts and sweet potatoes that needed eating, so I searched for a nut roast recipe with those ingredients. I omitted the spinach layer because it didn't feel very Christmassy, and switched the walnuts for Brazil nuts. I loved the use of sun dried tomatoes in it - they added a great kick of flavour.

As always, I rely on Delia to remind me how to make Yorkshire puddings and roast potatoes. I rounded it out with some mash, roasted sweet potatoes, boiled carrots and sprouts, fried garlicky kale, and onion gravy.

A photograph of a plate of Christmas dinner

I intended to serve the whole meal inside a Yorkshire pudding, but it turns out that when cooking Yorkshire puddings, it's a good idea to check that you've actually closed the oven door rather than just thinking that you have. As such, dinner was served on top of rather flat Yorkshire puddings.

I also invented a festive cocktail out of ingredients we happened to have lying around:

The Jolly Navel

1 measure peach schnapps
Juice of 3 clementines

Mix in a nearby glass, and drink while watching A Muppet Christmas Carol for maximum Christmas.

Merry Festive, everyone!

...

The soy protein tour of Berlin

We spent the last week on holiday in Berlin. I'm going to tell you about some of the awesome things we found there.

Signposts in East Berlin

We were staying in the east side of Berlin, north of the Berlin Wall. The street names and architecture are still very reminiscent of the area's communist past. We went to see the East Side Gallery on our way to take this boat tour, which gave us a really leisurely amble around Berlin's history. (John: "We have to go on this tour! It takes us through the canal that Rosa Luxemburg's body was thrown into." John has weird holiday goals.) Other highlights included:

Super awesome museums

The Computerspielemuseum was an unexpected pleasure. It was just down the road from our hotel, so we decided to pop in for a quiet afternoon. It chronicles the history of computer games from Pong all the way up to a crazy fun 3d racer from a couple of years ago. Practically everything is interactive - you could spend a whole day there playing with the exhibits.

Berlin has an ENTIRE ISLAND of museums, which is just way too exciting for words. We spent a day there and managed to do two of them thoroughly; the Pergamonmuseum, which houses lots of Islamic history, and the Neuesmuseum, which has a huge section on ancient Egypt and one on early German history. Lots of beautiful things in both, and both will be interesting to anyone who likes old systems of writing - cuneiform and heiroglyphics are everywhere.

Finally, we headed to the Jewish museum, which was very different than I expected. Naturally, it had a large area devoted to the holocaust, but it covered the history of Jewish people in Germany from the very earliest settlers. This was the museum we spent the most time in, and it was well worth it.

Useful apps

To navigate without internet, I downloaded a map of the city on Google Maps to use offline. You can't get navigation or business names that way, but if you star the locations you wan to visit, it's easy enough to find your way to walk there. I also had a try of Google Translate for the first time, which I was very impressed by. It can use your camera to translate signs and menus. Before I went on holiday, I used Duolingo to refresh my German, which I absolutely loved and found really useful. My vocabulary was still lacking, but I felt like I could sit and chat to people quite comfortably.

The aforementioned soy protein

I've always been of the opinion that it's easy to find vegetarian food anywhere, as long as you don't mind having only chips for dinner. We did make sure to look up some good veggie places, however, so we had a huge range of options. Sometimes I go through phases of loving tofu, soy mince, and all things protein-ey. We found Dolores, a "Californian-Mexican" restaurant, which did some great burritos with all the trimmings. There was a place called AsiaGourmet next to the Alexanderplatz U-bahn station, which did a tofu stir fry which was pretty bland and unexciting. The Lidl near our hotel also had vegetarian schnitzel, which was a bizarre experience.

Our absolute favourite place was a Vietnamese/Thai restaurant called Samadhi, which is run by possibly the most adorable man on the planet. There was a huge menu of vegetarian things to choose from, plates of starters, curries, stir fries and soups. We filled our bellies, drank some nice wine, and were entertained by the antics of the proprietor.

A baby colada

We finished off a few of our nights by heading to Acapulco for a drink. Their mocktails are so lovely, and the cocktails aren't bad either.

The Berlin Philharmonic Orchestra

Omg, right? We went to see one of the best orchestras in the world on their home turf. It was AMAZING. The building has to be seen to be believed, it's a crazy multi-level pentagonal... thing. They played a bizarre Schoenberg piece called the Hand of Fate, which involved a small choir laughing at the orchestra, and finished up with some Carl Nielsen, in which two timpani players (timpanists?) played a call and response, and the double basses had a fiddly bit to do, which made them all look very pleased (I worry that double bass players get bored sometimes). Oh, and they played this:

...

<IRC channel> plays <game>

You might remember Twitch Plays Pokémon, which was a game of Pokémon Red played by an entire chat room of people.

A wonderful friend of mine is getting married soon, and for her hen do I thought it would be fun to set up the same thing for us.

Playing Pokemon Red as a team

There's a really great project on GitHub called TwitchPlaysX, which lets you do exactly this. The instructions in the readme are fairly self-explanatory for putting it together in Ubuntu, so what I did for the hen do was to set it up using debootstrap. It occurred to me afterwards, however, that it would have been fairly straightforward to put it together in Debian, so what follows are instructions for doing that.

The easiest way to get node.js installed is to install it from source. Do:

wget https://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gz
tar -xvf node-v0.12.7.tar.gz
cd node-v0.12.7
./configure
make
sudo make install

Next, you copy over the code, and install all of the dependencies.

git clone https://github.com/hzoo/TwitchPlaysX.git
cd TwitchPlaysX
npm install
sudo apt-get install xdotool

Finally, you need to make a configuration file.

vim config.json

The one below lets you use a normal IRC server instead of a Twitch chat. This means that you can have everyone at a party install an IRC client on their phone, connect to a channel, and start playing. Android users can use AndroIRC, and iPhone users can use Colloquy. You need to pick a name for your channel; in the instructions below, we will call it "this_channel", and we'll be using the Freenode IRC server.

To connect to the channel in AndroIRC, press the "+" symbol, select freenode, choose a nickname, and then type "/join this_channel". In most other IRC clients, type "/server irc.freenode.net", then "/nick your-nickname", then "/join this_channel".

Save the following text in the config.json file:

{

"TWITCH_IP": "irc.freenode.net",
"TWITCH_USERNAME": "God",
"TWITCH_CHANNEL": "#this_channel",
"CONFIG_OS": "other",
"CONFIG_PROGRAM_NAME": "ZSNES",
"CONFIG_MAX_CHAR_NAME": 20,
"CONFIG_MAX_CHAR_COMMAND": 20,
"CONFIG_SEND_KEY": true
}

I have CONFIG_PROGRAM_NAME set to ZSNES, because I was playing Legend of Zelda in my channel. If you want to play a Gameboy game, use "VisualBoyAdvance" instead. The commands that get sent are "a", "b", "x", "y", "s", and "e". To set ZSNES to use these, open it up, go to CONFIG, then INPUT, then press SET KEYS and press the appropriate keys when prompted, using "s" for "start" and "e" for "select".

To get it running, make sure that you have ZSNES open, and then do:

npm start

Connect to your IRC channel and start typing commands: they should show up in the console, and your game should start to play. This was a seriously fun way to spend an evening, especially if you have friends who write IRC bots off the cuff for fun. Other bits of revelry from the evening included a rousing game of "Pin the Gonad on the Nematode Worm", and a custom version of Cards Against Humanity.

Custom Cards Against Humanity

For Community fans, I think a really good game to play this with would be Journey to the Centre of Hawkthorne.

...