你好 from 北京!

Date Tags China

I am in Beijing, China from 22 February to 15 July this year (with some side-trips) to do research. My institutional host is the 清华大学能源环境经济研究所 (qīnghuá dàxué néngyuán huánjìng jīngjì yánjiū suǒ, Tsinghua University Institute of Energy, Environment and Economy), and I am mostly funded by the MISTI/MIT-China program. I am subletting a room about a kilometre east of the university.

Though I promised many I would blog about my experiences, so far I have only given commentary on some photos (please follow them, too!). But after …

more ...

Letter to Eve Adams, Olivia Chow

Date

Ms Adams, Ms Chow;

I grew up in Mississauga, living and voting in Ms Adams' riding; for seven years while attending the University of Toronto, I lived in Ms Chow's. Despite a keen interest in policy and consequent hypersensitivity to politics, this is my first time writing to my Member(s) of Parliament. The occasion is Bill C-38, which may have passed by the time you receive this; nevertheless I want to detail why I find the bill personally offensive.

Ms Adams doubtless knows from her time as a councillor that the City of Mississauga's 2010 strategic plan, Our Future …

more ...


Rhetorical question

Date

[Posting again after yet another year-long hiatus, some site updates, a new comment system, etc.]

To test-drive all this, a question: are the ideas of work-life balance and a person's life's work compatible?

more ...

#5: No questions, please.

Date

Earlier today I made the case that "The Government of Canada" shouldn't be renamed on whim or even deliberately, and using "Canada's New Government" (technically correct in a very narrow sense) or "Harper Government" (mirrors vulgar usage, but inappropriate) rests on dangerously misleading semantics.1

The next of at least 36 reasons to not vote Conservative in May is one facet of their treatment of our press. This will emerge as another theme—the CBC will get its own post, later.

Before that, though: the names of things are important. Juliet, in a famous passage, laments:

…Romeo, doff thy name …
more ...

#4: "Canada's New Government"

Date

In case you hadn't noticed, I am writing a series of daily posts on ~36 reasons to not vote Conservative this Election Day. This was supposed to be yesterday's post, but was delayed by work.

The matter here is fairly simple: for almost two years at the beginning of their time in office, the Conservatives forced public servants to use the phrase Canada's New Government in the place of Government of Canada. More recently, they resurrected the tactic with the phrase Harper Government. Harper's magazine1 covered a related incident in typical (cheeky) fashion.


(Images: take a wild guess)

Often …

more ...

#3: CAIRS

Date

Twice is coincidence—thrice, a trend!1 This post continues a list of ~36 reasons to not vote Conservative in the 2011 Canadian federal election.

In a footnote to yesterday's item on Abousfian Abdelrazik, I lamented that we might never know who was behind denying him diplomatic aid. The failure of Lawrence Cannon to reverse that action was bad enough in itself, but it's still natural to want to assign blame for the initial decision. However, it's unlikely that information could be obtained on who made the call; in its absence there is frustrating "plausible deniability" for Minister Cannon or …

more ...

#2: Abousfian Abdelrazik

Date

Who? This guy:

Abousfian Abdelrazik Abousfian Abdelrazik

(Images: CBC)

He's one of ~36 reasons to not vote Conservative in the May 2 general election. Yesterday was the F-35.

I'm short on time, so this will be a brief post; but it introduces a theme that I can expand on later by talking about Suaad Hagi Mohamud and Omar Khadr. The Wikipedia article (link above) provides a good overview of what happened to Mr. Abdelrazik, so I won't bother with paraphrase.

There are some unsurprising things in his case. One is that the Canadian Security Intelligence Service (CSIS) and the U.S. Federal Bureau of …

more ...

#1: The Joint Strike Fighter

Date

Shiny, innit?1 Nevertheless, the F-35 is one of ~36 reasons to not vote Conservative in the 2011 Canadian general election, and the first post in my daily series.

At least part of each item will involve me asserting some kind of authority on the topic, in order to make you receptive to what I say. Sometimes that will be a stretch; in this case, it's not. I have been a fighter jet nerd2 since I was a kid; this led me to join Air Cadets while in junior high, earn my pilot's license, briefly consider joining the Canadian …

more ...

~36 Reasons To NOT Vote Conservative

Date

By now you've heard that the next federal election will be on Monday, May 2. Despite talk of it being "unwanted", I feel it's long overdue.

The first and most important thing is that you should vote. Elections Canada has good information on how to do that. You can vote early, by mail (as I will), or on Election Day itself. In the latter case, you are entitled by law to three hours off work, 100% consequence-free, in which to go cast your ballot. Mark your calendar. The turnout in 2008 was 59.1%, which was embarrassing enough. The same …

more ...

Pork and Beans

Date

This is the first entry in what will be a regular feature on life in Boston—including Cambridge & MIT—mainly aimed at family, friends, colleagues, acquaintances, etc. (you know who you are) from Toronto—including Mississauga & UofT. The title comes from the nicknames Hogtown and Beantown. "Pork & Beans" is also a Weezer tune with a meme-packed music video, and the Bosstone musical joke was already taken.

My aims are…

  • to give you a sense of what it's like to live here,
  • to make you want to visit me, and
  • to make sure I don't forget what makes …
more ...

Fun & games with dbus-python

Date

Getting Things GNOME! (well, at least my GSoC branch of it) is on its way to having a feature-complete DBus interface to its data store and the objects (Tasks and Tags) inside of it, as well as a client-side library.

More on that later. This post is a memo of some lessons learned while reading & grokking the entire dbus-python codebase, its still-incomplete tutorial, and trying to make use of it all. Aptdaemon was an invaluable help.

1. Claim your bus…and give it up nicely

This is akin to your mother telling you to, "Clean your room!" Claiming an object …

more ...

GTG GSoC, week 7 — "Testing, testing, 1, 2, 3…"

Date

Recently I have been working on two things related to achieving a client-server separation in Getting Things GNOME!

One is a test suite that will cover all aspects and functionality of the DBus interfaces. The second is low-level code to support the interfaces themselves.

Why not do them in sequence? Well, tinkering with the low level code is helping to outline what will and will not be possible with the "DBus magic" I've blogged about on two previous occasions. Tests don't have to target against code that already exists, but they should at least target code that could exist.

To …

more ...

Ignorance, or spite

Date

Some thoughts on the occasion of the G20 summit in Toronto.

The police presence and violent protest were both of a scale unprecedented for this city. The security cost, at over $1 billion, was also unprecedented in the history of the G-summits and is unlikely to ever be equalled.

Much ink will be shed on the taxonomy of protesters (a term which, apparently, also now includes opportunist vandals with no policy demands), the validity of their various motives and the contemptible nature of their actions. Equally, the actions of individuals among the tens of thousands of police involved will be …

more ...

GTG GSoc, week 4 — Magic, dates, specs and more shuffling

Date

My fourth Getting Things GNOME! Summer of Code week had four work foci (a trend which will hopefully not continue 'til week 10…)

One, I put up some code to the Planet, having been encouraged by good responses to earlier queries. This time I stuck my neck out by proposing something larger, and in short order was told three new things to consider—for example, the mixin concept. With this input, I have improved my FancyInterface, which lets you access DBus properties as Python attributes of ProxyObjects. Check out the code (standalone, for the moment) here.

Many of the …

more ...

Class attributes with dbus-python

Date

DBus is great, and so is Python—each for their own reasons. One mismatch is that everything passing over the bus must be a message or signal. You wind up with Python code that looks like

proxyobject.SetThis('foo')
bar = proxyobject.GetThat()
proxyobject.DoSomeOtherStuff()

But then you realize the dbus-python binding is very Pythonic, so you can extend it in a Pythonic way. Here's something I banged together in about half an hour:

 import dbus

 class FancyInterface(dbus.Interface):
     """A fancier DBus Interface.

     Derived classes should define a list of strings __dbus_properties__ and a
     _dbus_interface. For every listed property ('foo' …
more ...

GTG GSoc, week 3 — Grilled cheese sandwiches!

Date

The third week of my Summer of Code project (separating client and server parts of Getting Things GNOME!) was a busy one.

In some long but well-reasoned discussion on the gtg-contributors mailing list, we reached consensus that the GTG data model will add task duration, and drop an older kind of task ID in favour of UUIDs. The duration field will let users estimate how long it will take them to complete a task or set of tasks. As for UUIDs, the benefit ("universally unique") is in the name!

One other proposal—adding a priority field—is still under …

more ...

GTG SoC, week 2 — GNOME's Next Top Model

Date

Following on my last week's work mapping the Getting Things GNOME! data model, week 2 of my GSoC experience involved preparing this somewhat-lengthy analysis of how we store tasks in GTG, and how it should change. Of course, it doesn't hold a candle to things like the 168-page iCalendar RFC…of which a good ten percent is devoted to the recurrence specification grammar for VEVENTs and VTODOs.

Needless to say, I recommended we find a more straightforward way of solving this bug. To make you read the actual analysis, I won't give away my other conclusions here!

I have also …

more ...

Getting Things GNOME!

Date

Hello, Planet GNOME! I'm Paul Kishimoto, working this summer on Getting Things GNOME! as part of Google's Summer of Code. You've already heard from Luca and Karlo, my partners in crime coding.

To complement both Karlo's web-based interface to GTG (which will let you access your tasks from anywhere) and Luca's multi-backend overhaul (which will let you store them anywhere), I will be working on a client-server separation in GTG. If you are interested, you can read details in my work plan.

The possibility of client-server separation in GTG will be largely enabled by the wonderful DBus. Accordingly, I have …

more ...

A very simple creature

Date

Recently several people have expressed frustration, within hearing range, over infuriating actions of large companies. For example, Apple's practice of generating excessive hype for unremarkable hardware by applying a spot of polish and a kiloton of marketing. Aggressive lawsuits and patent trolling are another instance. Attacks on the reputability of excellent sources of journalism are a third.

The corporation is a paradox. Unlike the human beings that own and work for it, the corporate entity can be physically massive and far-reaching, to the point of incomprehensibility. We are hard-pressed to even picture Toyota's 300,000 employees, or the 9 million …

more ...