Saturday, March 11, 2017

Moving to Canada

Haven't blogged for quite a while, apart from random recipes people asked for; these last few years it seems blogs are out of fashion and livestreaming is in instead. (I've been livestreaming a bit; you can find highlights on as well as some videos on my youtube channel).

Anyway, the big news is I've moved back home to Canada. Very sad to leave the EverQuest II team, but I'd already had significant problems with US immigration nitpicking my work visa and clearly under Trump it's only going to get much, much worse. Besides which, barely a day has gone by since Trump's inauguration that the news hasn't contained some disastrous, disappointing, or downright terrifying thing he's announced. As an immigrant in the US, I got to enjoy taxation with NO representation at all, and without a vote, the only vote I have against Trump is to leave and refuse to give him my tax dollars. So, here I am in Canada. Funny to think EQ2's tradeskill content was built mainly on immigrant labour; but that's what I was, so that's what it was, and whatever happens to EQ2 tradeskills in the future is a direct result of Trump's policies, like them or not.

A couple brief interviews with me came out last week which contain more detail about why I'm leaving and I enjoyed most about working on EQ2:

Home of Nerds
Massively Overpowered

And that's about it for the high level overview. I start the new job on Monday so I'll refrain from commenting on it until then, although of course I'm hoping I love it and they love me, but time will tell!

In terms of specific details though, my goodness, moving countries is exhausting and I don't remember why I've done it so many times already. Each time it seems to get harder. So many details to take care of, and it's particularly challenging in US because so many companies seem to be under the misguided apprehension that no country outside the US actually exists. Seriously, I haven't had this problem in ANY other country, ONLY US-based web sites persist on having address fields that actually don't allow you to enter an address outside the US, thus making it completely impossible to complete the forms if you dared to move outside the country. I encountered this problem THREE TIMES TODAY ALONE, yeesh!  (Trying to update my address on my bank's website; trying to update my dress on the USCIS immigrant change of address form, and trying to arrange for USPS mail forwarding.) It's beyond my comprehension how so many websites (and presumably the companies that design and approve them - in today's example, banking, government, AND post office) can be so consistently short-sighted and navel gazing that it didn't occur to any of them that people might move to or from other countries ... although maybe it does explain how Trump got elected.  The US is also the only country I've left that insisted I had to have an in-person interview with the the tax office before departing. They made me fill out a form and bring in a bunch of documents which nobody bothered looking at, and then the IRS staff member stamped it with an official stamp and said she had no idea why I needed to get it or who I was supposed to give it to either. The form said to keep it with my passport, which nobody at all looked at on the way out, so I have no idea what the point of that was other than to add yet another hoop to jump through...

In other fun news, it appears to be almost impossible to rent a place here in Vancouver; properties are gone before the rental managers even get around to answering the queries about them on the rental listings they posted that very day. Prices are astronomical and sizes are tiny. Today I looked at a 1 bedroom apartment under 600 square feet for $1800 per month, and there are plenty more expensive than that! Just as well I sold almost all my furniture and got rid of as much extra junk as I could in the time I had, I sure won't have a lot of space to store it in.

I could go on, about how the company that was supposed to transport my car up here flaked and I've had to rush to find another one in the midst of everything else going on this week, but that's probably enough complaining for one blog post. At least I am back home in Canada, which may not be perfect but at least it's generally trying to be well-intentioned; my money is no longer supporting Dear Leader Orange, and Vancouver seems like a pretty cool place (both literally - brr - and figuratively).

 Pansy in her soft carry-case under the airplane seat in front of me

Pansy exploring the AirBnB place we're staying in while I hunt for a "real" place

Vancouver night time view (from Stamps Landing)

 Vancouver day time view (from downtown, looking to north shore)

Tuesday, July 12, 2016

Why I'm Playing Pokémon GO

I've seen several friends and acquaintances on Facebook saying they "don't get it" and don't understand why everyone is playing the new smartphone game Pokémon GO lately. It released in the US last week and within days it seemed you cannot take two steps without bumping into someone with their phone out, busy catching Pokémon. Sit in any restaurant or bar and it's only a matter of time before you hear the word "Pokémon" from other tables. I had to explain the game to some bemused waiters on Sunday night.

First of all, what is it?

Pokémon GO is a smartphone game for Apple and Android. It's currently only available in a couple of countries and the servers are struggling under the current massive demand as it is, so hopefully they'll get those issues sorted out before inviting more countries to join. The game is based on the Pokémon franchise, which is basically a game about collecting cute critters called Pokémons. There are hundreds of them and they all have different appearances, names, and abilities. Once you collect some Pokémons of your own, you can fight against other people's Pokémons and see who's best. But basically, it's just a game about collecting cute things.

On the smartphone it's pretty simple. Your phone will show a little figure representing you, walking around on Google Maps in slightly prettier colours, and on the map you will also see some markers at certain locations - typically popular landmarks and works of art.  So, a library or a post office or a popular bar might be examples of landmarks, and a sculpture, a mural, or even a painted utility box might be examples of works of art.  There are two types of marker, PokéStops and Gyms.  The former will give you items that you need to play the game (primarily, the PokéBalls that are used to collect the Pokémons) and the latter are fancier looking markers where you can go to fight against other people's Pokémons. These stops and gyms are all over the world, in every country, in every city. But here's the catch - to get the items or use the gym, you have to actually physically go to that map location. This is not a game you play sitting at home staring at a screen, this game gets you out of the house and walking around. If you want to get loot from the PokéStop, you're going to have to go there in person. Only when you're close enough can you click the marker on your map and collect your treasures.

In addition to the map markers, you'll occasionally hear an alert noise and see a little creature appear on your map. Unlike the stops and gyms, these don't have a fixed location. Instead, they appear partly randomly all over the place, and if you're close enough to one, you'll see it on your map. If you click the creature on your map, your view changes to a close up of the critter and then you use your finger to swipe upwards and throw a PokéBall at it - and if you hit successfully, you capture the creature and add it to your Pokémon collection.  Different types of Pokémon can be found in different environments; the full details of these aren't entirely known yet, but for example, if you go to the beach you will find a lot more water-based Pokémon than if you're far inland. More incentive to travel around! And the more Pokémon you collect, the higher level you become, and you will start to find higher level and rarer Pokémons.

So why is everyone playing it?

Reason one.  The gameplay! Yep, it's a very simple game. But, a lot of people like cute things, and a lot of people like collecting games. As an example, look at the sudden craze for the smartphone game Neko Atsume last year. This is a Japanese game in which the sole object is to collect different cats by luring them to your garden with different cat toys and treats. If you think Pokémon GO sounds simple then Neko Atsume is practically comatose in comparison, yet for a month or so chasing those cats was very popular. Collecting things is fun, easy for everyone to understand, and something many people enjoy.  Plus, because it shows you the Pokémons superimposed over what your phone is actually seeing, it makes for entertaining screenshots to share with friends!

Reason two. Gamification is a thing.  Gamification is a fairly terrible word that refers to making something that isn't normally considered to be a game, into a game. For example, if a kid doesn't want to eat his food, his parents may try making a game out of it. "Look! The airplane is coming down to land, open up the runway...!"  Rephrasing a disliked activity in a way that makes it seem fun can change our attitudes towards the activity. It doesn't necessarily make sense to our intellectual minds, but there's a lot of evidence showing it's actually quite an effective way of convincing ourselves to do something. Jane McGonigal is a game designer and researcher well known for her work in this area; she's written two books on the topic that I highly recommend if you want to understand the idea of gamification, but you can get a very brief summary by watching her TED talk:

In the case of Pokémon GO, it's a way to game-ify getting out and getting exercise. We all know there are huge health benefits to walking every day, but it's very hard to find the time to actually prioritize walking around when there are so many other more urgent demands on our time. Pokémon GO gives us a reason to get out, something to do while we're out, and a sense that we've been rewarded for doing it. Walking to the corner may seem pretty pointless, but walking to the local PokéStop and getting valuable game items and maybe encountering some Pokémons to capture? Totally worthwhile! And judging by all the jokes about an outbreak of sore legs this weekend, it's working for a lot of people.

I personally hate going to the gym. Even though I know it's good for me, it seems terribly pointless to stare at a wall for half an hour as I exercise. I've tried listening to audiobooks, but I can do that just as well when doing other things besides exercising so that doesn't really help.  So I've been playing a number of games for a while that encourage me to get out and move. I started playing Ingress about two years ago; that's a game by the same company that made PokémonGO, which involves walking to marked spots on Google Maps and capturing them for your team. Two teams battle it out in Ingress to capture and link together as many points as possible. It's a pretty simple game, but when I lived in a different area that had lots of the capture points around me, it was a very good motivation to go for a walk each morning and recapture all the local points for my team.  Unfortunately in the area I'm in now, there isn't much Ingress gameplay to be had so I started playing Walkr, a very simple planetary exploration game. The more steps you take each day, the more energy you get in game; and energy can be used as a type of currency to speed up your exploration and finding more planets. Again, a very simple collection game, but it was at least a small motivation to get some extra steps in each day. And now, Pokémon GO (which, even better, I can stack with Walkr and earn points in BOTH as I walk around, doubling the reward). It's more interesting than staring at a gym wall, and it gives me a psychological reward in the form of game progression if I get out of the house and move around.

This morning I got up early, left the house at 7:30 and went for a jog/walk in the nearby area. For the first time ever I jogged down to the local gym -- but instead of going into the gym for exercise like a "normal" person, I sat on a bench in front and did some Pokémon fighting at the PokéGym which is at the same location. (I assume the game developers intentionally put PokéGyms at the locations of real world gyms where possible.) Then I jogged home. I may not have used the real world gym in quite the typical way, but I still got exercise this morning, and 4000+ steps in before even heading to work!

Reason three.  It's a social thing! Games like Ingress and Pokémon GO are actually quite social experiences. You join teams, you meet people who are also playing, and quite possibly you attend events where people get together to play the game together. The social aspect was one reason I started playing Ingress; I figured it might be a way to meet people who, like me, also enjoyed game playing, but who were also interested in staying active and healthy. I've made a few acquaintances and gone to various pub nights and picnics, as well as an all-day Ingress tournament (called an Anomaly) which had me walking 10 miles (over 20,000 steps) in one day, running around with teams trying to win for our team.

Last weekend I was walking around Fashion Valley (one of the larger and fancier shopping centers in San Diego) checking my phone for Pokémons, and a complete stranger asked if I was having any connectivity issues (he was) and whether I'd seen the rare Pokémon that he'd heard was to be found down that end of the mall. We had a little chat about the game and went our separate ways, but it gave us a point of common interest to open a conversation with. I'd never have spoken to him or him to me if we hadn't both been playing the same game. And this is happening everywhere. I'm seeing my friends reporting they've talked to more strangers and made more new acquaintances in the past week than ever before in their lives. Just by giving people who already have common interests a topic of conversation to break the ice, Pokémon GO is helping people connect. This screenshot of a discussion on Reddit is a great example:

Today on my way home from work I noticed two PokéStops close together with lures active (an effect you can add to any PokéStop to attract more Pokémons there). So I pulled over and walked over to check it out, and found a crowd of about 15 people sitting outside the local library taking advantage of the PokéStops. They were all discussing the game, and as new people approached they'd be asked what level they were or what team they were on and invited to join. The ages ranged from kids who looked barely teens to what looked like mid 40s. Everyone was being very polite and exchanging information and tips. One of the kids mentioned that last Sunday there had been about 30 people at this library location, enjoying the sunshine and the PokéStops.

Obviously, it should go without saying that normal caution applies when meeting total strangers or wandering around strange locations. If you wouldn't go some place alone normally, then you probably shouldn't go there while playing Pokémon Go (or Ingress). A report that was going around about robbers luring in victims using the game appears to be false (so says Snopes) but normal levels of caution obviously apply whatever you're doing. Unlike the gentleman in the screenshot above, as a small woman I won't be wandering around parks at 3am regardless of what Pokémons might be found there. But I'm quite comfortable striking up a conversation with a stranger in a crowded shopping center or on a sunny afternoon at the public library.

Businesses lucky enough to have a PokéStop nearby are also taking advantage of the fact to attract customers.

Reason four. Curiosity! And this reason mostly just applies to me, but as a game developer long-time player of Ingress, I was very interested to see what the same company did with Pokémon GO. The latter is based very heavily on the data they gathered and the lessons learned from Ingress. As an Ingress player, I immediately spotted much of the data and gameplay they've taken from Ingress, and I'm using my knowledge of Ingress to make some deductions about how I think some game mechanics are working. (For example, I'm pretty sure they are using the mind unit and XM concentration calculations from Ingress to influence the frequency of Pokémon spawns, and other Ingress players I've talked to suspect the same.) As a game developer, I was always slightly frustrated at how poorly Ingress was monetized, so the monetization of Pokémon GO was one of the first things I checked out. And, game design aside, it's just interesting to watch how the game has captured so many different people's interests (and to speculate on the no doubt many imitators that will attempt to follow, probably unsuccessfully).

Well, this turned into a longer essay than I'd intended, but hopefully that answers the question of what it is and why I'm playing it clearly enough! How long will the craze last? Who knows? My guess is that it'll carry on for a couple of months (as new countries get added, it'll likely keep Pokémon in the news) and then slowly taper off. But then again, I played Ingress for 2 years and that's an even more basic game than this one; so unless something more interesting comes along to help get me out of the house and make exercise a little more fun, I and many others may well continue to play for a while.

Sunday, June 05, 2016

Low carb courgette and mushroom quiche

This is a low carb quiche using a cauliflower crust instead of the normal pastry.

For cauliflower crust, I based it on this cauliflower pizza crust recipe.

  • 1 bag of riced cauliflower (Trader Joe's sells this).
  • 1/2 cup grated mozzarella cheese
  • 1/4 cup grated parmesan cheese
  • 1 tsp salt, pinch of pepper
  • 1 egg
Pour the cauliflower into a bowl and cover with a plate. Microwave for 3 minutes stirring once. Leave 5 minutes till cool enough to touch.
Turn out onto a smooth tea towe, wrap up, and squeeze out as much liquid as possible. You should be left with a dry paste - scrape from tea towel into a bowl.
Add the cheese, egg, salt, and pepper and mix well.
Press the cauliflower mix making a smooth base in a quiche pan 8-9" diameter.
Bake at 350F for about 15 minutes, or until starting to turn brown, then remove and allow to cool.

Filling (modified from Delia Smith)
  •  2 eggs plus 1 yolk
  • 10 oz creme fraiche (Trader Joe's has this, or fancier supermarkets usually in the deli section with the cheese)
  • 1 large courgette (zucchini) - about 8oz)
  • 1 cup button mushrooms
  • 1 small sweet onion, or half a medium one 
  • 1 tablespoon parmesan cheese
  • 2oz grated gruyere cheese
  • Salt and pepper

While the crust is cooking, dice the onion into small pieces. Melt about 1oz butter in a large frying pan and cook the onion on low heat about 5 minutes until translucent. Slice the courgette and mushroom into thin slices and add to the pan once the onion is cooked. Cook another 10 minutes or so until the mushroom and courgette are starting to colour, and most of the juice from the courgette and mushroom has evaporated.
Transfer the vegetables onto the cauliflower crust leaving any extra liquid behind, and spread evenly.
Sprinkle the gruyere evenly over the vegetables.
In a small bowl, thoroughly mix 2 eggs and one additional egg yolk with the creme fraiche, salt, and pepper.
Pour the mixture over the vegetables and sprinkle the parmesan on top.
Bake for about 40 minutes, until the center is set and golden.

Tuesday, May 17, 2016

Whole Grain Bread

I've been experimenting with home made bread recipes lately and so far this is the winner. A few people asked for the recipe, so here it is.

  • 2 cups whole wheat flour  ** (or leave this out and just use 6 cups all-purpose flour)
  • 4 cups all-purpose flour 
  • ½ cup raw flax seeds
  • ¼ cup raw pumpkin seeds
  • ¼ cup raw sunflower seeds
  • 1 tablespoon baker’s yeast
  • 1 tablespoon salt
  • butter

  • Mix all the dry ingredients together in a large bowl.
  • Add 3 cups of warm to hot tap water (not boiling).
  • Mix with a spoon or with the hook attachment of a kitchenaid until fully blended – it will be goopy and sticky.
  • Cover the bowl with plastic wrap and leave at room temperature to rise overnight (at least 6 hours, can be up to about 20). The dough will approximately double in size, so make sure there’s room in the bowl.

  • Cut the dough in half (or thirds if you want smaller loaves) and cover the unused portion with plastic wrap. It can be kept in the fridge for up to two weeks.
  • Place the dough you’re going to use onto a floured surface and knead and stretch it for a minute or two, folding in half a few times. If you're short on counter space, you can also just add a little flour and knead and fold the dough in the bowl it was rising in. The dough will be quite sticky, you may want to dust your hands with flour before kneading.
  • Shape the dough into a rough loaf shape and put it in a buttered loaf pan so it's half full. Cover with plastic wrap again and allow to rise for about an hour - it will again almost double in size. The temperature of the room will affect how quickly it rises so it may rise faster than an hour, or you may need to leave longer in a cooler house. Once it's noticeably bigger in size and if you poke a finger gently into the dough and the indent remains, this is ready.
  • Preheat the oven to 400 F and make space on the middle rack. (Optional: place a bowl of water in the oven to add humidity if you prefer a less crunchy crust.)
  • Brush the top of the loaf with melted butter, then bake for about half an hour, until the loaf starts to brown slightly. You can also lay a sheet of foil over the top of the loaf if you prefer a less crunchy crust.
  • Remove from oven and turn out of the pan onto a cooling rack. Cool for at least half an hour before slicing, if you can wait.
If you make this entire recipe you'll need 3 of the small (about 8.5" x 4") disposable loaf tins supermarkets sell. If you divide it in two, a 9x5” or larger should work. If you make the entire amount at once, you'll need an extra long pan such as the Wilton 16"x4 long pan.  Cover the cut end with cling film and it can be left out on the counter for 3-4 days without going stale, which is a bonus - it will go stale much faster in the fridge (never store bread in the fridge). You can also pre-slice and freeze in an airtight bag to use as needed.

This loaf was made in a standard supermarket tin foil loaf pan, and this batch made three this size.

Originally adapted from this recipe:

Sunday, September 20, 2015

Apple Pan Bread

This isn't the prettiest cake but it's a moist, delicious apple cinnamon treat.

Apple mixture:
  • 10 oz. (about 4 large apples) pared, chopped apples (slightly sour apples are better)
  • 1 oz. (1/4 cup) dark brown sugar
  • 1 tablespoon cinnamon
  • 3 tablespoons butter or margarine
Mix in a saucepan over medium heat and cook, stirring, until bubbling. Then cover and leave over low heat for just 2 minutes.  Leave to cool.  Apples should still be firm.

Cake batter:
  • 3 oz. (1/2 cup) butter or margarine
  • 4 oz. (1/2 cup) dark brown sugar
  • 1 egg
  • 3/4 cup milk
  • 8 oz. plain white flour
  • 1/2 tsp. salt
  • 3 tsp. baking powder
Cream butter with sugar until light, add the egg and beat until light and creamy. Sift the flour with the salt and baking powder and add without mixing; add cooled apple mixture and milk, and then mix only enough to blend. Grease an 8" square pan.   Pour into prepared pan, smoothing the top.

  • 2 oz. dark brown sugar
  • 2 tsp. cinnamon
  • 1/2 tsp. ground cloves
Mix well together and sprinkle over the top of batter in the pan before putting in oven.

Bake at medium heat (350 F) for about 30 minutes, until a knife or toothpick stuck into the middle comes out clean. Serve hot or cold.

Sunday, March 29, 2015



  • 1 medium to large onion, chopped
  • 1 large eggplant, sliced into strips (enough to make 3 layers in a baking dish) - alternative: zucchini.
  • 8oz grated cheese (your choice which - I use cheddar)
  • 1 small (6oz) tin tomato paste
  • 1lb ground beef
  • 3 tbsp chicken or vegetable broth
  • 2 eggs
  • 1 cup cream (or milk)
  • olive oil


Slice the eggplant (or zucchini) about 1/8"-1/4" thick and lay flat on a baking sheet lined with parchment paper or foil. Bake in 400F oven for 30-45 minutes (depending how thin the slices are), until soft but not turning crisp. (Alternately, you can fry in oil which is faster but less healthy.) Remove and set aside when done. You can do this step a day in advance and keep the eggplant in the fridge.

While or after the eggplant is cooking, in a saucepan, heat a little olive oil on medium heat and add the onions until they're translucent. Then add the ground beef and mix regularly until the meat is also cooked.

Add the tomato paste and broth to the saucepan and mix together, then turn the heat low and cover, allow to simmer very gently for 10-15 minutes.  If the eggplant isn't quite ready, you can take off the head and set aside, covered, to wait. 

Turn the oven to 350F.  In an oven-safe baking pan, place a layer of the eggplant. Sprinkle with 1/3 of the cheese. Then spread half the meat mixture flat on top. Add another layer of eggplant, and another 1/3 of the cheese, and the remainder of the meat mixture.  Press this down fairly firmly so it makes a flat top.  Finally, add a third layer of eggplant, sprinkle with the remaining cheese.

In a separate bowl, mix the egg and cream together with a fork; add a little salt and pepper if you like. Pour over the top of the baking pan, and bake in the oven at 350F for about 30 minutes, until the top is set. It can keep warm in the oven longer if needed, but since everything but the egg is cooked already, it just needs long enough to set the egg.

Serve warm.  Leftovers freeze & reheat well.

Low(er) carb cheesecake

McCall's Best Cheesecake (modified)


  • 3/4 walnuts, finely chopped
  • 2 tbs melted butter
  • Combine, mix well, and press onto the bottom of a spring form pan. Leave to set in fridge.
Main body
  • 24oz (680g) plain cream cheese at room temperature
  • 4 eggs
  • 1 tsp vanilla extract
  • 1 tbsp lemon juice
  • 3/4 cup (6oz) sugar

Preheat oven to 375F. Beat the cream cheese until light and smooth, then add eggs one at a time and mix until blended. Add vanilla, lemon juice, and sugar, mixing till light and smooth. Pour over crust in tin, and bake about 45 minutes until beginning to set.

  • 2 cups (500g tub) sour cream
  • 1 tbs sugar
  • 1 tsp vanilla
Mix together in the sour cream tub. When the cheesecake is ready, remove from oven and spread this topping over it. Return to oven for another 10 minutes, then remove and allow to cool in tin.

Refrigerate overnight before serving. Good with strawberries or strawberry sauce.

Without the strawberries, this should work out to about 380g of carbohydrates in the entire cake, which would be just under 50g for 1/8 or 25g for 1/16 slice.  Using sugar substitute would obviously reduce the carbs even more.