Blog

July 17, 2016 19:23 +0000  |  Programming 3

Back in 2010, Stephanie came to me with an idea that she'd been batting around with a friend of hers. Now that Gowalla was dead, we were all looking for a replacement and she had the idea to create one of our own: a geolocational game for finding and collecting monsters.

The mechanics were simple: there are little monsters all over the real world, and you could use your phone to find them, fight them, and capture them. Importantly, the monsters are native to their environment: water monsters only appear near water, darkness monsters only at night, bosses only when Jupiter is above the horizon, etc.

I thought it was a brilliant idea, and started hacking on a server-side implementation. It turns out that this is a lot harder than it sounds. There were all sorts of concepts that were totally new to me:

  • GIS extensions for PostgreSQL to handle geographical queries
  • Timezone information (which varies widely) by geographic point
  • National border information had to be loaded and queried for every request
  • Ladder logic for all of the monsters' experience levelling
  • Figuring out the position of various celestial bodies based on the time & place
  • Figuring out how to tell whether the user was actually near water or green space (that was fun)
  • Building a vagrant box (this is pre-Docker) so Stephanie could have an environment to work with

All of this was solved, by me, over the course of many years, but I never had enough time to put into it, and there was of course the considerable barrier that neither of us had any illustrative talent. When 2015 rolled around and Nintendo announced that it was going to build Pokémon Go in partnership with Niantic, I accepted defeat and stopped tinkering with it altogether.

Except... Pokémon Go kinda sucks. More to the point, it doesn't scratch the itch Stephanie and I wanted scratched when we started Spirithunter (working title). Niantic decided to go the multiplayer route, which is (a) more complicated, and (b) pretty much sucks the fun out of the game for many of us. If you want to collect monsters and don't fancy getting your butt kicked by "professional" players out there with all of the best gear and time in the world, then with Pokémon Go you're pretty much out of luck.

By its nature, Pokémon Go forces people to compete with each other rather than just passively have fun, and I think that sucks.

So that more-or-less leaves Spirithunter as still viable really. I think I'm going to give it another whack over the next week or so. I believe that last I left it it was running Django 1.5 with an older version of DRF so I'll upgrade those first. Then I'll see about getting it up & running on my Linode.

I've also unlocked the repository so that other people can take a look if they're curious. At present, the copyright is still mine, though I might just GPL it if I decide not to pursue this as a corporate venture.

Anyway, if you're reading this and think that you'd like to contribute -- especially if you have artistic skills and want to see your art brought to life in an indie game -- drop me a line. There's 7 billion people in the world, more than enough to support two geolocational games, so why cant ours be one of them?

July 11, 2016 17:46 +0000  |  Family Friends Lucy Vancouver Violet 8

christina-me christina-michael dad-lucy-mom grandma-jack grandma-lucy lucyfoot lucy me-sarah-shawna mom-violet-dad shawna shawna-sarah shawna-violet-matt violet-jack

Noreen keeps asking, and as it's quite possible that she's the only regular reader of this blog, I really should do what I can for her :-)

On June 17th, my contract with the British Government ended, and the very next day Christina and I got on a plane to Vancouver to spend some well-deserved relaxation time. I hadn't seen my family in about a year at that point, and Christina hadn't been in Canada since 2013 so there was much to see and do -- so much that I thought I might see about extending my stay by a few weeks (now that I didn't have a job to go back to right away). That all went sideways after the 23rd, but I'm getting ahead of myself.

Squamish

I wanted to go hiking. I figured: this is the first time Christina has been to BC in the summer, let's show her how beautiful it is! The plan was to the Grouse Grind, or hike the Chief, or some other gorgeous and brutal experience, but jetlag is a harsh mistress and neither of us were even remotely interested in anything that difficult in our first few days. Instead, my dear friend Shawna, now living in Vancouver, back from Korea (yay!) drove us up to Squamish with her husband Michael and her friend Sarah for a leisurly ride up the Sea to Sky Gondola. There, for the ridiculous-but-acceptable-when-accounting-for-jetlag price of $40 each, we had a nice ride up the side of the mountain to a plateau at the top with little "hiking" trails (more like a stroll really) and magnificent views in all directions.

I didn't take a lot of pictures on this trip, so instead I'm just going to fill this post with lots Michael's shots from this hike. He's a pro photographer and he made us all look amazing. My new profile pic is one he took actually ;-)

A Quick Visit with Friends & Family

There wasn't much time for anything else in Vancouver this year. We had one day to (try to) recover from the jetlag, one to go Squamish, and one to visit with friends & fam. For this last case, we booked some time to meet with Ruth (Jeanie's mom) over lunch at Boston Pizza where we were treated to messy, sticky (but quiet!) children and good company. Ruth bought me chocolate (yay!) and gave us bubbles to play with, and we got to catch up on what was going on in our lives. Later that evening we did it all again, but with a larger group and in a noisier setting: Quinn, Jeanie, and Michelle met us for dinner at Milestones where we watched basketball and talked about what's going on in our lives. Chris and Trish were supposed to meet us there too, but their twins had the audacity to be born just a day or so beforehand so they had their hands full.

The next day Christina, my grandmother and I hopped on a bus up to Kelowna.

A Note About Greyhound

Holy crap is this the way to travel now. They've instituted express busses, shortening the YVR/YLW trip to just over 4 hours. During the trip you get:

  • Large, comfortable seats
  • A beautiful view
  • Free Wi-Fi
  • AC Power

Why would you ever want to fly?

  • 40 minutes to the airport
  • 20 minutes to check in
  • 20 minutes through security
  • 1 hour waiting for your flight
  • 40 minutes in the air
    • Turn off your laptop "for safety"
    • Tablets are ok, but not keyboards, they're dangerous!
    • Yes, I'm bitter
  • 20 minutes to deboard and collect your bags

=~ 3.5 hours and about 3 times the price. Screw that.

Kelowna

After having our schedule feel very pressed for the first few days, I tried to slow things down a bit in Kelowna. We had lots of slow nights doing family dinners, some lounging in the sun on my parent's patio, and a few shopping trips here and there.

The Engagement Party

Things got a little crazier around the 25th, as we were doing a joint birthday party / engagement party for Christina and me. It was only family at this shindig, but it was an opportunity for the fam to get to know Christina and see us together. We're still not sure how we're going to work out you know, actually getting married yet, so there were a lot of questions as to how the actual ceremony will happen. Would we do a Greek wedding? In Athens or on an Island? What about doing one in Kelowna and another in Greece? I think I'm starting to understand why people just don't bother getting married: the stress is insane.

Still, it was nice to be able to spend time with both of my grandparents in the same room again. We even had my grand-aunt June fly in from Ottawa this time around! It's been a really long time since all three have been together. I also got to see Violet & Ried for the first time which was fun, and despite Shawna being fresh out of the hospital with my brand-new niece, she was there and looking fabulous.

Lucy

My new neice, Lucy Jane Quinn was born, 6lbs & 2oz, just a few days before we arrived. She was nearly a month early and so she had to be kept in the hospital for almost a week while she got used to being in the world. Mother and baby came out of it ok though, so all is good. Christina and I had an opportunity to visit her in hospital where tiny Lucy was bundled up in a box with tubes up her nose and down her throat. Shawna was there with a bundle of books and a laptop on hand: she was the food source so she basically had to set up shop there until the doctors let her take Lucy home.

She was released a few days after we arrived in Kelowna though, so the second time we saw her, she was at home with Mom, Dad, sis, and the dogs getting her immune system revved up.

Brexit

When I booked the flight, I joked that I might leave one country and come back to a completely different one. Like most Britons I didn't actually think that that would happen. As the votes rolled in, my family huddled around the TV, dumbfounded by the sheer idiocy of the British public on this issue. Our jaws gaped at the fall of the pound, of the considerable sum of money I had personally lost in just a few minutes. Christina was in rough shape for much of the rest of the trip, and I cancelled any plans I might have had to extend my stay in Canada.

Idiots doing idiot things because they're idiots.

Melanie

The only friend I have up in Kelowna is Melanie, who was up there finishing her contract with UBC. We went for some ice cream and then met her for lunch where I got her to take a picture with @travellingjack! Then my mom picked us up like we were still in high school to take us home. It was a nice day.

My Solar Desalinator

One project I've been toying with in my head for years now got to see the light of day for some time while I was in Kelowna. I've been working on a way to use solar power to desalinate water cheaply and pollution-free modeled after this power station in Andalucia.
Most of the progress on this front was talking to my father and brother about it, changing the model in my head, scratching bits out on napkins, and fiddling with a parabolic mirror in the backyard and almost setting the house on fire. Good times.

I've started fiddling with a proper 3d model in Blender, and now that I'm back in the UK, I've started poking around to find spaces that might be able to offer me the technical expertise I lack in this area. Something may never come of it, but you never know. For now, it's fun to think about.

Remainder

The rest of the trip was largely a series of car trips: out to Peachland and Penticton to see my aunt and then brother's family, running through sprinklers with my neice and eating fabulous homemade ice cream. Other nights we drove out to Vernon to have dinner with my grandmother and grand-aunt, and still other nights we just stayed in, ate Dairy Queen Blizzards and bemoaned the future of the UK.

Canada Day

Canada Day in Holiday Park is a big deal -- by Holiday Park standards anyway. It's a villiage of a lot of old people with a lot of golf carts, small decorating budgets, and a lot of time on their hands. Given this equation, a golf cart parade seemed fitting for Canada's birthday. It was our last day in Canada, so we got up in time to see the show, after which I drove down to the Greyhound station to send my grandmother home. For the rest of the day we relaxed in the sun (or in my case, the house) and enjoyed the peace, quiet, and family.


I'm back in the UK now, and the Brexit mess is still in full swing. I decided to come home on time because I felt like I needed to be here in case shit, but that feeling of helplessness is as thick here as it was in Kelowna. I think in retrospect I wish I'd stayed a little longer -- I really miss my family, especially now that I've got two nieces who are just starting to grow.

Being an expat is hard.

June 24, 2016 17:52 +0000  |  Europe United Kingdom 3

I'm in Canada right now, so we had to watch the carnage unfold in real time on a BBC live stream. As soon as Newcastle reported in with its weak Remain results, the pit of my stomach began to sink and things never recovered.

The United Kingdom has made what historians will refer to as the greatest and last mistake in its long history. Scotland and Northern Ireland are already talking about leaving the UK to join the EU. The pound has dropped to the lowest point in 31 years and France has now surpassed them as the world's 5th largest economy. They've lost more money in a few hours than they contributed to the EU in 43 years.

I woke this morning to a sense of surreal dread. One thing is certain: the UK is undone. The only question that concerns me is how much of their self-destructive behaviour will rub off on the rest of us.

The UK economy has already started to contract. Major banking institutions are likely to follow through with their promise to relocate to Dublin and Frankfurt. That will undoubtedly increase unemployment, driving the country further into recession. For Christina and I, there are dangerous times ahead.

Three Paths

The real danger though is how far this madness will spread. Given the likelihood of a Scottish (and potentially Northern Irish) exit from the UK, England must be considered lost, but what of the rest of Europe? I can only see this going one of three ways:

Special Status

The worst possible scenario for all involved would be if the EU is so fearful of instability that it caves to the UK's demands to (a) remain part of the European Economic Area (single market) while (b) not being beholden to the four freedoms. For the non Europeans, this would mean that the UK would have free trade with EU nations but not have to allow free movement of people, goods, etc. They might even try to get away with not paying into the EU at all.

This would be catastrophic as it would signal to the other EU nations that they too could have all of the benefits of the EU without the responsibility. It would embolden the weak separatist voices in France, Norway, Greece, and the Netherlands and spur similar moves to exit as well. It would effectively end the European Union.

Remain Part of the EEA

This is the most likely (however ironic) outcome. The UK would negotiate a Norway-like deal wherein they remain part of the EEA while still being responsible for the four freedoms. Effectively, this would mean that the UK would keep all of the responsibilities the Leave campaign said they wanted no part of, (free movement, financial contributions) but give up its right to have any say in how those responsibilities are determined. As a bonus, Nigel Farage's party would no longer have any seats in the European Parliament.

This isn't as dangerous as the "special status" option above, but it runs the risk of separatist parties declaring this a victory (this is post-factual democracy after all). If other nations follow suit, this could have crippling effects on the EU.

Out in the Cold

In this scenario, the EU recognises this for the opportunity that it is and cuts the UK loose. Over the following years, as the rest of Europe watches the UK economy wither, and the country fracture from Great Britain into Little England, the UK becomes a cautionary tale for would-be separatists: "Leave the EU, are you nuts? Don't you remember what it was like for the English?"

"Better together" would no longer be a campaign slogan but a statement of fact and it would embolden Europe as a Union.

The obstructionist English voice in the European project would disappear completely, allowing for the agenda of an ever closer union to progress. Dreams like a fiscal union and a unified military would become more feasible.

My Preference

I tweeted about this last night and it was not appreciated by a couple of my followers, but I stand by it. The "out in the cold" option is the best case for Europe, the worst for the UK -- but they've made their bed. The European Union is the single most ambitious project humanity has ever undertaken and if it's going to survive, it has to cut the UK loose. They've voted to leave, let them serve as an example of just what leaving means.

I say this of course as someone who lives in the UK. Christina has her job at Cambridge, so we're stuck there for at least a year, but when that's finished, we'll be looking to return to Europe -- this in itself is a risk, as it means waiting an entire year while anyone with a degree of mobility works to get out of the UK.

I don't know what we're going to do when Christina's contract is up. We want to move back to the Netherlands, but by then the EU will likely be awash in unilingual anglophones with marketable skills. This could be Very Bad for us.

But if it's good for the EU, we're ok with it.

March 06, 2016 15:17 +0000  |  Christina Free Software Grandpa London Ripe NCC Software Violet 0

I've been putting off writing this because frankly, I look back on 2015 and it really doesn't stand out too much. Especially when you compare it to previous years. In 2014 for example, I visited Australia and New Zealand. In 2013 I moved in with Christina, and in 2012 my parents came to visit me and we traveled to Paris, London, and Dublin. 2015 had its ups and downs, but honestly, I feel like a lot less happened this past year.

Two big things happened though, but you'll have to keep reading if you can't remember what they were.

Travel

As best memory serves, I only did 5 bits of significant travel this year, and only one trip was New and Exciting. I guess I can't complain though, these were all good trips.

Brussels & FOSDEM

As I do every year now, I went to FOSDEM for the annual Free conference. If you've never been, I can't recommend it enough, not the least because you get to meet the people who build the tools you use every day and thank them in person. You also get to buy all kinds of cool stuff that helps support these projects, which doesn't suck either.

Madrid & Seville

The most exciting trip of the year for me, not the least because Inga and Gerardo were getting married in Seville! I took a couple weeks off and did a solo trip to Madrid for a week before heading down to Seville where I met Christina for the actual wedding. The event was so pretty and both cities were lovely. It was a fabulous trip.

Cardiff

Another important trip was to Cardiff, not because it was Cardiff (because frankly, I didn't much care for the town), but because it was for DjangoCon Europe and I was giving my first public workshop wherein I taught a small group of people for an hour or so complete with exercises and a presentation I put together in advance.

It turns out, I really like this sort of thing. Maybe I'll be able to do it as a proper job one day.

Vienna

Max and Julia, friends of Christina's from her law school days were getting married in a little town about two hours south of Vienna, so we flew out to the land of lederhosen and beer (seriously, there was a festival in town and everyone was out in their traditional garb) for a beautiful wedding in a castle.

The ceremony was long, and Catholic, and German, but the bride was gorgeous and the reception was excellent. Everyone had a lovely time.

Vancouver

The last big trip of the year was my annual visit back home to see friends & family. Violet is getting so big, and I worry that she really has no idea who I am. Like any 3 year old girl though, she's friendly and inclusive when it comes to strangers, so we still got along fine. I hope that one day we'll be able to stay in closer contact, but that's still a ways off.

It was also my last opportunity to see my grandfather alive.

Personal

Grandpa

My Grandpa died in 2015. It was harder on me than I'd expected, especially since he had spent much of the last few years essentially waiting to die. He'd become more isolated and frustrated as his body continued to fail him, and rarely if ever left the house. Still, I'm glad I had one more opportunity to spend time with him before he died, even if an unfortunately large portion of that time was spent in disjointed arguments and yelling about cable TV signals.

I wrote a eulogy for him, and then I rewrote it because the first one wasn't right. Every once in a while I re-read them.

Proposal

Before my grandfather died though, Christina and I were able to give him the news that she and I are getting married. I proposed on a warm August day, but Christina didn't get her ring until months later because I left that part up to her ;-) We ended up getting a modest white gold ring with a manufactured diamond for ethical reasons and Christina seems very happy with it.

Unfortunately, actually setting a date has been tough thus far, but only because our professional positions are a little chaotic at the moment. More on that later.

Moving to London

The biggest news of 2015, and probably the primary reason this year didn't involve all that much travel is that Christina and I packed up our lives in Amsterdam and moved to London. The idea was that she would start at an exciting new job, and I would find work somewhere in a Big City -- something I've missed a lot since moving to Amsterdam 5 years ago.

The visa application process was completely insane:

  • £956 application fee
  • £850 NHS surcharge
  • €500 expediting fee
  • £860 visa agent fee

On top of this we had to compile a ridiculous amount of information including a complete list of every out-of-country trip I've made in the last 5 years. That one took a lot of effort, but the number came down to 53 trips -- yes, I'm rather proud of that one.

We also had to find a flat and sign a one-year lease without actually seeing the apartment. Our new home is cold, damp, small, and on the ground floor. It used to be a stable. We're stuck here 'til November.

Professional

Tweetpile

It seems that every year that goes by, I adopt a new hobby project. In In 2013 I restarted Spirithunter (turns out Nintendo is going build a game just like it), in 2014 I had my father's RxLenses site, and in 2015 I started TweetPile, a project to help me collect all the tweets about anything in particular.

It took a lot of work, and I learnt a lot about asynchronous Python, but in the end, there didn't seem to be a lot of interest in it out there. The biggest problem is that people typically don't know what they want to collect on twitter until after the tweets have gone out. Twitter doesn't have a comprehensive historical API though, so you can't get all tweets in the past about "x", only stuff Twitter thinks is relevant. Long story short, TweetPile was fun to write, still works, but sadly isn't very popular.

RIPE Atlas Tools Magellan

After years of talking about it amongst the team and with the community, we embarked on actually writing a comprehensive command line toolkit for RIPE Atlas, the project I'd been labouring on ever since I started working there back in 2012.

This project was my baby, and I took point on it, dictating structure, choosing the license (GPL3!), and writing the lion's share of the code. I also worked with Andreas to adopt a proper pull-request-and-merge methodology, which was a nice change from how we had done things until then.

The result was a solid, thriving, community project that opens RIPE Atlas up to thousands of engineers all over the world. I'm really proud of this one.

Leaving RIPE

Of course, just as I started on an exciting new project, it was time for me to leave. I'd put in more than three years at the RIPE NCC, longer than any job I'd ever held, largely because I loved working for them.

It turns out that London has a lot of opportunities for Python nerds like me, so there were no shortage of jobs available. I had been spoilt by the NCC though, and wanted to continue working for a non-profit, so this tainted my search process. In the end, I ended up choosing to work for the British government. If you want to know how that's going though, you'll have to log in and see my private post about it ;-)

Conclusion

When I wrote this post for 2014, I talked about how I had big travel plans and possibly even dance classes in mind for 2015. In retrospect, I have no idea what I was thinking. I don't even remember what I was talking about then.

2016 promises to be interesting (new city, new friends, new job), but much of it is still up in the air. Christina is applying for a job in Edinburgh, and if she gets it, we're moving again -- as early as August. If she doesn't, then I have to figure out what I'm going to do about my work situation (more info in the private posts). This potential job also means that we're not likely to get married this year as there's no sense in planning a wedding in Greece when you're not even sure where you'll be living in a couple months.

I've also joined a choir here in London which is pretty awesome, and while I've managed to lose a little weight in my last year in Amsterdam, it's creeping back up living here in the land of fried and salted everything.

I have no idea which way things are going to go, and to be honest, I'm annoyed that I don't find this exciting.

October 20, 2015 18:10 +0000  |  Canada Conservatives Liberals Stephen Harper 0

Update: This Luke Savage article says it all better than I ever could

I'm optimistic. Really.

Like most Canadians (and as it turns out, most of my multi-national office), I'm absolutely thrilled that the Stephen Harper decade is finally dead. I have no doubt that the Liberals are capable of salvaging what is left of the country to restore us to who we should be, and on many things, I think they might even be willing to do that work.

There's a lot to do though:

  • Getting us back on track with our international environmental commitments.
  • Repealing C-51
  • Restoring the long-form census so we can start making fact-based decisions again.
  • Restoring benefits to veterans and seniors.
  • Funding the massive infrastructure deficit in our cities.
  • Letting our scientists talk to the public again.
  • Investigate and prosecute those responsible for the 1186 missing or murdered aboriginal women.
  • Welcoming the thousands of refugees we should have brought in years ago.
  • Repealing the "Fair Elections Act"
  • Restoring funding to the CBC
  • Restoring full citizenship rights to expats and dual-citizens
  • Reforming the Senate
  • Reforming the electoral system so that we never again have to suffer through a decade of autocratic rule propped up by 38% of the public.
  • Undoing the culture of hate and fear the Conservatives saddled us with.

This is off the top of my head. There's so much more to do.

I'm still worried though. With a majority, Justin Trudeau has effectively been given a blank cheque to do with the country as he sees fit. When it comes to who we are as a people, I'm confident that Trudeau will put us on the right track, but when it comes to things like climate change, civil rights, and international trade, his record is worrying.

The Liberals still deny the science of climate change in their support for oil pipelines out of Alberta, and I'm going to go out on a limb and say that we'll sign onto TPP on a Friday when nobody's watching, after which our government will be compelled to act against the interest of Canadians if it means losses of potential revenue for private companies. TPP also governs important 21st century subjects like copyright and digital rights management, that will shape the nature of public discourse for the next century.

The Liberals also supported Harper's insane "Barbaric Cultural Practises" act, as well as the abomination that is C-51, which outright violates the Charter of Rights and Freedoms.

Reforming the Senate is going to be an uphill battle (if it's fought at all), and restoring the funding for the CBC was never a priority of former Liberals, so I'm not sure that it will be one for this government either.

But much of the damage will be undone, which fills me with such joy -- Seriously, it's as if I got my Canada back today.

October 20, 2015 18:07 +0000  |  Canada Conservatives Democracy Liberals NDP Stephen Harper 0

I'm both thrilled and disappointed with the outcome of this election. On the one hand, the Cancer that was Stephen Harper was finally cut out of the country like the rotten tumour he is, but on the other, we managed to do so only by putting all of our faith in yet another autocratic situation. We've elected another majority, doing away with all accountability in the House. Given where this election started, this is a gross disappointment.

I suppose that it's a question of faith really. Do I have faith that Trudeau, with all the power of the PMO (that his father pioneered) and a majority government elected through first past the post, will actually introduce proportional representation? Are these Liberals really all that different from the corrupt, entitled, double-speaking Liberals that came before them? Indeed, many of the candidates elected today are the very same people who held the same positions under Chrétien and Martin.

It kills me that to remove Harper, we had to stick a knife in the NDP, a party that, no matter how much I criticise them, represents a much closer vision of my Canada than the Liberals ever will. It's also deeply frustrating to see how very poorly the NDP managed this campaign.

From their gloating, passive, condescending demeanour in the early days of the campaign, to their weak-kneed, dispassionate stance on Harper's divisive Islamophobic platform, the NDP left the country desperate for leadership, vision, and passion for what we value as a nation. Trudeau was clumsy, but he shared a vision for Canada that resonated with people. His passion was infectious and painted a picture of the Canada that should be, in stark contrast to what Harper would have us become.

This could have gone another way. We could have had an NDP-lead minority or even a majority, but they screwed up, and now we have to hope that Trudeau really meant everything he said -- because no one will be able to hold him to it if he changes his mind.

October 06, 2015 17:02 +0000  |  Canada Democracy Environment Green Party NDP Politics 0

A dear friend asked me over Twitter today why I think she should vote Green and not NDP. I started with 140 characters, then switched to a direct message, and then I wanted formatting... So I wrote a blog post.

So Theresa, this is a short, but reasonably complete list of the reasons I couldn't bring myself to vote NDP this election. Which is a pity really. I'd like to live in a world where a party like the Greens didn't need to exist because the mainstream parties actually did the Right Thing.

...but they don't do the right thing, and they shouldn't be rewarded for that.

Environment

The Tar Sands

If there is one fact that should be obvious to anyone who claims to know anything about climate change, it's that the carbon reserves that we have in Northern Alberta need to stay in the ground. The NDP are against Keystone XL and Northern Gateway, but they do support Energy East. So, either the NDP don't believe the millions of scientists who have stated that this stuff has to stay in the ground, or they're pretending to support the oil sector in an effort to get votes.

Either way, the NDP position is suspect and speaks to either their scientific literacy or their authenticity. I'll let you decide which is more egregious.

Carbon Tax vs. Cap and Trade

The NDP has taken a cap/trade position (to the exclusion of a carbon tax) against the advice of every prominent environmentalist and economist. This is quite clearly done for political reasons, to separate themselves from the Liberals and Greens who favour a carbon tax.

This wouldn't be such a big deal if it weren't for the fact that every reputable environmentalist group will tell you that a carbon tax is the best way to affect the change needed, and that cap/trade is a market non-solution. In other words, the NDP is choosing its platform based on what it thinks will win them power over what is right for the country. You may sense a theme developing.

The Senate

Their position on the senate is untenable, impractical, and dishonest. Ignoring for the moment that almost all of the countries on the planet with a single governing house are what you and I might refer to as banana republics, an upper house is a crucial check on the power of the lower house, and in a parliamentary system like ours that vests so much power in the hands of a single person, the prime minister, this is a Very Bad Idea.

On top of that, abolition is quite impossible as it would require support for all of the provinces and every constitutional lawyer in the country will tell you that there's no way you'll ever get everyone on board with abolition.

No one is saying that the Senate shouldn't be reformed, but the NDP position of abolition is not good policy. Once again, they're writing policy based on what they think will play better with the public (abolition is much easier to grasp than reform), as opposed to what would be good for the country.

Proportional Representation

After the 2011 election, the NDP, who had been talking about electoral reform months earlier, suddenly came out in favour of first past the post. I distinctly remember listening to CBC's The House, where the NDP MP steadfastly supported FPTP with the typical platitudes of "it's worked for the country for so long" etc. etc. None of this is surprising since it was first-past-the-post that gave them that "orange wave" in Québec.

Then, just last year, they showed up late to the party on electoral reform and did a big blitz where they told everyone that if elected, they'd "make this Canada's last unfair election". Then, as they rose in the polls, all of that rhetoric evaporated, and now their issues page makes absolutely no mention of it.

The Consortium Debate

Thomas Mulcair started this campaign saying he'd gladly debate anywhere, any time, and he's finishing it having backed out of the one debate that was guaranteed to have the most viewers out of the entire Election.

You can't claim to want to lead the country if you're going to run away from debates with your opponents. It doesn't matter that Stephen Harper refused to participate. In fact, Mulcair's refusal simply puts him in bad company, with arguably Canada's worst Prime Minister in history.

The Consortium Debate could have been an opportunity to reach more than 10 million people (as opposed to the paltry 1.5 from the Maclean's Debate) and publicly shame Stephen Harper for abdicating his responsibility to the democratic process. Instead, through his actions, Mulcair legitimised Harper's position and drastically limited the level of political discourse in Canada.

This reason alone would be enough to keep me from the NDP.

Wrap Up

I want to make it clear that I still think that the NDP are better than the Liberals and Conservatives, but I also think that they've fallen far, far from their roots as the sensible socialist alternative. They've become a party of pragmatists, shifting their principles toward whatever they think will win them votes, and for me this is an unforgivable sin.

If you want to lead my country, I expect you to have ideals and principles underlying your positions, policy that's supported by those principles, and a leader that stands behind them. The CCF was that kind of party, Tommy Douglas, Elizabeth May and Jeremy Corbyn are that kind of leader, and voters can smell the stench of an impostor. They smell it on Thomas Mulcair, and they certainly smell it on Justin Trudeau.

I voted Green because they're still the party of principle out there. They take sometimes unpopular positions that are vested in principles as stated by the party members. I don't agree with all of these positions, but I can live with what I see as bad policy if it means that I can trust the party to follow through with everything they say they represent:

  • They called for a carbon tax more than a decade ago, when the science was in but the public was strongly against it. They've never wavered on this.
  • They've always opposed the tar sands because it's bad policy to support an industry that's trying to kill everyone on the planet.
  • They routinely call for order and respect in the House of Commons.
  • They support the reduction of powers of the Prime Minister, because we shouldn't be electing de-facto dictators, and for the increase in power of MPs so that they can do the work of local representation.
  • Their leader is an accomplished lawyer, parliamentarian and diplomat, dedicated to her role as MP and advocate for a safe environment.

I also think that their position on the senate is silly and impractical, and that their opposition to GMOs is anti-science and idiotic, but as it's clear that neither of these are priorities in the party, I'm unconcerned given their positions on real issues that actually matter.

When it comes time to vote in this election, who would you rather support, a party that stands by what it says, or a party that has demonstrated that their ideology and even their science will bend to pragmatism?

September 27, 2015 09:35 +0000  |  Canada Conservatives Democracy 1

I opened my mailbox yesterday to find something both astounding and infuriating, it was a letter from the Conservative candidate in Vancouver Centre:

Dear Friend and Neighbour!

You are on Elections Canada's international Register of Electors as a non-resident entitled to vote in Vancouver Centre, BC in the October 2015 Federal Election.

You can vote by mail. Elections Canada has already mailed your special ballot voting kit to you. If you have not received it please contact Elections Canada.

[Elections Canada contact info]

More information on how to vote by mail can be found at the Elections Canada website www.elections.ca - Ways to Vote, Vote by Mail, Vote by mail-apply now -- Voting by Canadians living abroad.

I am writing to ask you to vote for me as the Conservative candidate in Vancouver Centre. I am a business woman with over 20 years of experience in executive management in the non-profit social services sector and a long-time resident of the West End. I have an MBA and Communications degree and I am running to bring accountability to all areas of government. On the reverse side of this letter there is more detailed information about my background and qualifications. More information about me and the Conservative campaign is available on my website: www.elaineallan.com.

Please complete and mail your special ballot today to ensure that Elections Canada receives it by the deadlines set out in your special ballot voting kit. If you have not received your special ballot kit, forms are also available at any Canadian embassy, high commission or consulate, or by calling Elections Canada at 1-800-463-6868 or collect at 613-949-7502.

I need your vote to win this riding and to ensure that Canada continues to have a stable, secure, Conservative government lead by Stephen Harper.

Thank you for your support.

Elaine Allan Conservative Candidate Vancouver Centre, BC

Take a moment to appreciate the hypocrisy of a party writing letters to expats asking for their vote when that party has worked so hard to remove that expat's right to vote at all.

I'm fast approaching the 5-year mark in my expat status. As a result of the Conservative Party's fight to strip me of my rights, this could very well be the last vote I'm permitted to cast in any Canadian election.

For someone like me, this is a crushing realisation. I've been neck-deep in Canadian politics since I was a teenager: canvassing for candidates both in Toronto and Vancouver and even running for a seat in BC, and the Conservatives have decreed that I'm insufficiently Canadian to be permitted to participate in our democracy after this election.

The audacity of a party that would ask me to support them today, then strip me of my rights tomorrow is at the heart of the Conservative Party. It's their ideology of consumption: use up whatever you can and move on. You see it in their environmental and economic policy, and now you see it in their electoral strategy. The fact that their candidates don't see it, that they can live with themselves writing letters like this, tells you just what kind of people they are.

I'm thinking I might give Ms. Allan a call. If you have any suggestions regarding what I might say, I'd be happy to hear them.

September 20, 2015 23:01 +0000  |  Family Grandpa 0

I want to take a minute to rewrite my eulogy for my grandfather. There was something bugging me about that first draft, the one that was eventually read at his funeral that didn't sit well with me, and a few days later Jane finally helped me figure it out: I wasn't writing it for me.

Instead, I wrote it in an attempt to reflect how we all interacted with him, and for such a polarising person, I simply don't have the talent to express something that even-handed as well as talk about what he meant to me. So that eulogy feels empty to me. This one is better.

I loved my grandpa. He was a difficult man to love sometimes, but I loved him anyway. He was, to me at least, the Caretaker of the family. The one who looked after me and helped me on my path -- whatever it was -- but he always required convincing.

Taking on a new career? I had to prove to him why this path was good for me. Moving to a new city? A new country? He wanted to know what kind of work I would find there, and when I was going to meet a nice girl and get married.

"Women want to see three keys" he used to say. "One for the house, one for the car, and one for the safety deposit box". My grandfather was very old-fashioned, and sexist, often dismissive, and almost always self-important and a little bit delusional about how the world worked, but he loved me, I'm 100% sure of it. How? because the man slipped me 100 bucks whenever he could.

This is how Grandpa showed you how he felt: he helped you in whatever way he could. He didn't have a lot of money, but he knew that when I was getting started in life, I had a lot less than he did. He would give me a hug whenever I'd come to visit, then offer to shake my hand -- a brown bill squeezed between his fingers. It didn't happen every time, just once in a while, when he could afford it, and no amount of objections would be accepted. He wanted to help his grandson and that was the end of it.

He spent much of his life compiling video footage of the family. I've seen video clips of my mother as a child, a teenager, an adult, and a mother. There's a video of my brother showing off his basketball skills, of a big Easter dinner celebration, of my brother and me opening presents on Christmas Day. My grandfather would watch these videos on his own time, whenever the mood struck him, first on high-8, then on VHS, finally on DVD, he migrated all of it by hand. He would insist on sharing them with girlfriends I brought over. It was his way of preserving the family, of remembering the life he'd led.

I'm going to miss my grandpa. He was crochety and pointlessly argumentative, and in his old age, even abusive, but even with all of that, I'm going to miss him because he was a good person who loved me and only wanted to help.

September 17, 2015 18:42 +0000  |  Django Python 0

I ran into something annoying while working on my Tweetpile project the other day and it just happened to me today on Atlas. Sometimes, removing code can cause explosions with migrations -- even when they've already been run.

Example:

  • You've created a new class called MyClass.
  • It subclasses models.Model
  • It makes use of a handy mixin you wrote called MyMixin:

    class MyClass(MyMixin, models.Model):
        # stuff here
    
  • You create a migration for it, run it, commit your code and congratulate yourself on code well done.

  • Months later you come back and realise that the use of MyMixin was a terrible mistake, so you remove it.
  • Now migrations don't work anymore.

Here's what happened:

Creating a migration that's dependent on non-Django-core stuff to assemble the model (think mixins that add fields, or the use of custom fields etc.) means that migrations has to import those modules to run. This is a problem because every time you run manage.py migrate it loads all migration files into memory, and if those files are importing now-non-existent modules, everything breaks.

Solution:

It's an ugly one, but so far it's the only option I can figure: manually collapsing the migration stack. Basically you make sure you've run all of the migrations to date, then delete the offending classes, delete all of the migration files, and recreate a new empty migration:

$ cd /project/root/
$ ./manage.py migrate
$ rm -rf myapp/migrations/*
$ touch myapp/migrations/__init__.py
[ modify your code to remove the offending fields/mixins ]
$ ./manage makemigrations myapp

Now run this in your database:

DELETE FROM django_migrations WHERE app = 'myapp' AND name <> '0001_initial';
UPDATE django_migrations SET applied = NOW() where app = 'myapp';

The new single migration created won't be importing the removed classes, so everything will be ok, and you have the added benefit of not having so many migrations to import. Note however that this may cause problems with migrations from other apps that may have been created dependent on your now-deleted migrations, so this may start you down a rabbit-hole if you're unlucky.

I hope this helps someone in the future should this sort of thing present itself again.