Posted in Canadian life at 1:36 pm by ducky

Woohoo!  I am no longer confined to Canada!  I got my work permit yesterday, which gives me the right to re-enter Canada.  As soon as I handed in my thesis, I could no longer enter Canada on my study permit.  I was legally allowed to stay for 90 days to look for a job, file for permits, etc., but crossing the border would have voided that right.

I have heard two theories behind the re-entry restriction.

  • If people bolted the moment they finished their degree, that called into question how committed they actually were to staying in Canada.
  • The Citizenship and Immigration Canada (CIC) processing centre in Vegreville, Alberta, is chartered to work for people who are in Canada.  If you leave, you are not in Canada, and hence out of their scope.

We talked to a border agent before I graduated, and he seemed to strongly insinuate that they would probably look the other way for short trips into Bellingham, as that didn’t violate the spirit of the law, just the letter.  However, that didn’t seem like a risk worth taking.

So now we have our permits, and I am a happy camper.

I want to say that I adore Canadian bureaucracy.  Aside from some minor difficulty entering for the first time on my study permit due to the border agent being a bit unclear on what my permit allowed me to do, all of my interactions with Canadian bureaucracy have been pleasant.

I have a total heart-throb crush on the CIC bureaucracy in particular.   My interactions with CIC have not only been pleasant, they have been astonishing.

  • I forgot a form on my last study/work and Jim’s work permit extension paperwork.  They *phoned* me to tell me that, and to ask what I wanted to do about it — do two of the three permits and get a refund, or fax in the form?
  • Vegreville keeps up-to-date a website on how long they are taking to process forms.  International Post-Graduation Work Permit (a three year permit not tied to any employer) is listed as only 13 business days.  They processed ours in TWO!!!!  Wow.

Vegreville, xoxoxoxoxox I love you!!!


Good deeds remembered

Posted in Random thoughts, Uncategorized at 11:15 am by ducky

Twenty-five years ago, I was 19 and working in Delft, Netherlands for a summer. I don’t remember exactly how it happened, but I ran low on cash a week before it was time to go home. This was before ATMs, so it was tricky to get more. There were no places in the Netherlands that would advance me cash on my Visa, but I heard that there was in Brussels.

I took some of my dwindling supply of cash, bought a ticket to Brussels, and discovered that the place I needed to go wasn’t open. (Maybe I had been foolish enough to try on a Sunday? I don’t remember.) Worse, I was about USD$0.50 short of the fare I needed to get back to Delft.  I asked a stranger for 50c, he handed me a buck and I immediately took off to the ticket counter and got a ticket.

When I got my ~50c change, I realized I should have given it back to the stranger.  Ooops.  But he was lost in the crowd, so I instead got myself an ice cream cone — the only food I’d had all day.

I think he spotted me a bit later, eating the ice cream cone.  I was embarrassed to have him see me eating the cone, so I hid my face.  He probably figured that he’d just been had.

So Mr. Stranger?  Whoever you are?  If that was you 25 years ago in August in the main train station in Brussels, I wasn’t a runaway or drug addict or anything — I was exactly who I said I was.  To this day, I remain very grateful for your generosity on that day.  The buck might not have meant a huge amount to you, but it made all the difference in the world to me.  Thank you.


Greed — good or bad?

Posted in Politics at 3:44 pm by ducky

Scott Rosenberg today clearly points out the hypocrisy of a Republican saying that the problem with the financial markets’ meltdown was greed.

Wow, three posts in a row where I basically just link to other sites; three posts in a row about politics.  Must be getting close to November…

Morality: Liberals vs. Conservatives

Posted in Politics at 10:18 am by ducky

A while back, I posted a link to a NYT article on morality that reported on work by Jonathan Haight.  This article by Jonathan Haidt himself is also very good, and addresses the liberal/conservative divide a bit more bluntly.

It is interesting for me to reread my post on liberals/conservatives talking past each other in the light of Haidt’s research.


Palin as W Jr: ignorant, incurious, decisive

Posted in Politics at 4:21 pm by ducky

James Fallows hit the nail on the head with what bothers me about Sarah Palin: she’s too much like George W. Bush:

The truly toxic combination of traits GW Bush brought to decision making was:

1) Ignorance
2) Lack of curiosity
3) “Decisiveness”

This meme is either getting around really fast, or multiple people are noticing it, because it’s mentioned by Chuck McLean as well.


Tripoli: Differential code coverage tool

Posted in Eclipse, Hacking, programmer productivity at 6:41 pm by ducky

In the observations of professional programmers that I did for my thesis, I frequently saw them get sidetracked because they didn’t have good information about whether the code they were looking at was executed as part of the feature they were exploring. I theorized that being able to look at the differences in code coverage between two runs — one where they exercised the feature and one where they didn’t — would be useful. Being able to see which methods executed in the first but not the second would hopefully help developers focus in quickly on the methods that were important to their task.

In my last month at UBC, I whipped up a prototype, an Eclipse plug-in called Tripoli, and ran a quickie user study. The differential code coverage information really does make a big difference. You can read a detailed account in UBC Technical Report TR-2008-14, but basically graduate students using Tripoli were frequently more successful than professional programmers who didn’t use Tripoli.

As an example, in the Size task, the subject needed to find where a pane was resized. That was hard. There is no menu item or key stroke invocation for developers to use a starting point. They also didn’t know what the pane was called: was it a canvas, a pane, a panel, a frame, a drawing, or a view? Between pilot subjects and actual subjects, at least eleven people tried and failed to find a method that was always called when a pane was resized and never called when it wasn’t. I even spent a few hours trying to figure out where the pane was resized and couldn’t.

As soon as I got Tripoli working, I tried the Size task, and in my first diff, I saw ten methods, including one named endResizingFrame(). And yes, it turned out to be the right spot. I realized that most of the methods came from not hovering over the corner of the frame such that the cursor changed into the grab handle, and reran.  This time I got exactly one method: endResizingFrame().  Wow. The graduate students in my second study were also all able to find endResizingFrame() by using Tripoli.

Tripoli does take some getting used to. Even as the author, it took me a while before I consistently remembered right away that I could use Tripoli on my problems. I’ve also clearly gotten better over time at figuring out what to do in my second run to ensure that the “diff” has very few methods in it.

If you want to try Tripoli out, I’ve posted it online. Just remember it’s a prototype.


Meaning of the term "homeless"

Posted in Politics at 11:34 am by ducky

I see people using the term “homeless” when they really mean “living on the street” (which is in turn, often a euphemism for “smelly unattractive poor people” or “panhandler”).

It bothers me a bit when they are used as synonyms.  Not all of the people who are homeless live on the streets; many live with friends, in shelters, in cars, and in RVs.  I have known personally a working family who ended up in a homeless shelter; my unemployed nephew is currently sofa-surfing; wealthy friends of ours are cruising the US in a converted bus.

I would really rather that we find another way to describe the people living on the street, and use it when we mean people living on the street than to lump everybody together as “homeless”.

Why does this matter?  Because demographics of “homeless but sheltered” and “street people” is vastly different.  Many people think of people living on the street as lazy, irresponsible, criminal, and/or drug-addicted and thus undeserving of assistance.  In short, poorly functioning.  (We can argue whether that is a reasonable belief or not, but it doesn’t matter: that’s what they think.)

If you lump in the highly functional but poor people with the poorly functioning street people, then I worry that when you go to voters for support “for the homeless”, they are going to turn a deaf ear to any pleas — including voters that would help the highly functional.

It might be that those who advocate for people living on the street pushed for the change in terminology from “street people” to “homeless” in order to get some of the status of the highly functinoal homeless to rub off onto the street people.  Well, nice idea, but it didn’t work — it brings the highly-functional’s status down to the status of street people.