It's come to my attention that my old "about me" page was strictly academic and thus "boring", so I've been persuaded to make a more personal page.

Codes

OmniCode

sxy cm183 kg77 skca9a8e haae9d81 ey3a5037 esO.20/25 sp= Ag1980.February.22 anE.Scandinavian.50%&E.British.50% hdd Lo42.982345,-81.263959.basement rl! LAEN(9)&FR(3).Quebec&SR(1) CrL(8)&c(2) Edc(7) Pl! MvB RlD.happy.very Kd! PeC.grey.Button&C.grey.Pincho MBINTP FHS.lazy Ad! PrC(8).standard&Haskell(7)^(9)&ObjC(5)^(7)

Geek code

GCS d(!) s+:- a- C++ ULB+++ P- E-- N++ M+ PS+++ PE Y+ PGP++ b- G+ e+++>++++ h>---- r++ y?

A short biography

Some time in February of 1980, my mom went into labour. My parents lived in Regina Beach, Saskatchewan at the time. Regina Beach was (and still is, though it's bigger now) a small lake-side resort town, which lacked a hospital. I'm told that my dad floored it all the way from Regina Beach to Regina, mind you he may have been driving the Rabbit at the time, so he couldn't have been going that fast. Anyway, I was born in Regina General Hospital some time later. Not long after, I returned with my new parents to the house in Regina Beach.

Regina Beach was an awesome place to live as a toddler. It swelled with beach-goers during the summer. During the winter, what few permanent residents remained had to put up with unplowed roads (snowmobiles were the mode of transport à la môde) and no running water (the water mains would freeze), but nonetheless it was a fun place. When I was 3, we packed up and moved to the big city.

Life in Saskatoon was even better than in Regina Beach! There were, like, stores and parks and stuff, and even schools and other kids! The following 15 years were a pretty sweet life, filled with eating pies, getting a paper route, starting things on fire, and somehow managing to skid off a highway exit into a ditch. My early childhood I remember being "gifted", a label I hope they've done away with by now. By grade 8 my "giftedness" had turned into a constant state of anomy, a state which I kept until I finished high school. Then my dad left his job as an instructor and got a job in the biggest city in Saskatchewan (for those not from out west, it's so called because there are more people from Saskatchewan living in Calgary than there are people living in any city actually in Saskatchewan).

Calgary was okay. I played on an anarchist soccer team (go Calgary Libre!) and got a degree and was seduced into the grad student lifestyle. My last year of undergraduate university (my sixth, sigh), I stumbled across the webpage of one Mark Daley, then an assistant professor at the University of Saskatchewan. He was doing awesome stuff with formal language theory, which is cool, and I was feeling nostalgic for Saskatoon, so I applied and was accepted. Shortly after, Mark left for the University of Western Ontario, and I decided to take my chances in London rather than take my chances on a different supervisor.

London turned out to be fabulous. It was scary at first. It was in Canada's most populous province, a province which I literally knew only one person in (my cousin, who lived in Toronto at the time). And, being from out west, Ontario has a lot of infamy, most of it deserved. Nonetheless, London turned out to be glorious city, surprisingly Saskatoon-esque. UWO turned out to be pretty nice when they're not putting my SIN on public websites, and Mark turned out to be a magnificent supervisor.

Some time after that I met Jasna.

Such is the story of my life.

What I do with my time

I would like to say that I work some great amount of time, or even some reasonable amount of time, doing research. Well actually I've been blessed with the ability to work extremely quickly, but sadly I can't work for very long, so I probably only put 20 hours or so a week into my graduate studies.

The rest of my time is not very constructive. I code a bit on idle hobby projects, as you can read a little about on my academic blog. I like to swing dance. I also run, though I'm not fit enough to run long distances (I'm aiming to do a 5km run this summer). I bake when I have the time (lemon meringue pies are my specialty). I also organize social events for grad students at CS, like pub night and the semi-failed newsletter. I also play piano: my favourite composer to play is Scott Joplin.

The vast majority of my time is spent in activities much less structured, though. I play with things, I read, and a lot of my time is spent thinking. I don't know if it's normal to think that much, but I spent a lot of my time idly thinking, thinking of ethics or government or operating systems or e-paper or what have you.

My philosophies

As I spend a lot of time thinking about philosophy, but don't discuss it much, I thought this would be a good place to write about it. I'll write more sections as I have time.

Computer science

It's been said that the concept of "computer science" is strictly an American one. In other parts of the world, what we consider "computer science" would actually be considered extensions of other disciplines. This is especially interesting in the context of Edsger Dijkstra, who famously said "Computer Science is no more about computers than astromony is about telescopes". Edsger Dijkstra, I would argue the most important computer scientist to date, almost never used a computer. He didn't even own one until all of his greatest advances in the field were distant memories.

So then, the question remains of what computer science is. There is a paradox about computer science to me that still needs resolving. On the one hand, "computer science" captures a lot of unrelated things. Database implementation is not related to user interface design, which is not related to questions of distinction between probabilistic complexity classes of decision problems, which are all equally unrelated to raytracers. On the other hand, the category of "computer science" does seem to capture something real: computer scientists all have at least a passing competency and/or interest in the aforementioned areas, and usually their work/research blends between them.

I see computer science is a haphazard patchwork quilt of a number of sciences brought together. In contradiction with Dijkstra's philosophy, the commonality is the computer, I think, though I'll extend "computer" such that it means "something that computes" rather than simply "(stylish, if an Apple) box which converts electricity and keystrokes into moving pictures". Computer science is a collection of unrelated sciences, sure, but that's probably due to its immaturity, and in any case it seems to be doing alright.

Importantly, though, computer science is a science. Or multiple sciences. But it should be considered like other sciences are. A tiny, but growing, number of these sciences could be considered social sciences (as in HCI), but most would be natural sciences. Like other natural sciences—physics, chemistry, biology—computer science should be rigorous, falsifiable, and it should aim to explain the universe. The last point is crucial, and explains why computer science transcends the possibly stylish computer boxes around us. Parts of computer science—"informatics" in other continents, I suppose—explain the world around us in a way that no other science does sufficiently. Physicists can explain where information comes from and where it goes (my understanding is that it is not treated nicely by black holes), but you need computer science to explain how it behaves. Like you need physics to describe what matter must do or cannot do, you need computer science to describe what information must do or cannot do, not in terms of what computers allow us to do, but in terms of what the computational laws of the universe allow us to do.

If computability theory is physics, then the rest of computer science is emergent behaviour built on top of that, as chemistry and biology are built on top of physics. And I realize that computability theory actually works necessarily with physics, not orthogonal to it, but the analogy can still work, if weakly. Complexity theory, operating system theory, compiler theory, they're built on top of computability theory, and they're all sciences which tackle something that computability theory doesn't.

There is some question as to whether computer science is actually mathematics (explaining a system that humans have invented) as opposed to science (explaining a system that humans have discovered). I would argue that they're they same thing: mathematics is just a branch of science; that is, mathematics is trying to explain the logic that humans were given. While humans may have invented the concept of addition, addition would happen without them.

Anyway, it all ties in to how to teach computer science. What irritates me about how computer science is typically taught, in first year at least, is that there is a lot of formalism in the "software engineering" sense, there is no formalism in the "computer science" sense. We go through great lengths to beat into them the importance of providing Javadocs for public methods, but we would be lucky if many of them had even the most vague notion of what a program's correctness actually meant. When we give students assignments, we have already solved the problem for them. They're not tested on solving a problem; they're tested on translating that solution into code.

Dijkstra's dream for the "introductory programming course for freshmen" was Hoare logic. It's cool, and it would force students to learn exactly what correctness meant, and what it would mean to solve a problem. And it would spare them having to deal with Java, or any programming language for that matter. It's making the same mistake, though, in that it's only exposing them to one side of computer science.

In other disciplines, an introductory course (FOO 101) should give a survey of the stuff happening in that discipline. I think computer science could do the same. Computer science is not just Java; it's not just Hoare logic. It's both of them, and more! Unfortunately with a survey course, you prohibit going into much depth. Maybe that's not the goal of an introductory course.

What I would like to see from an introductory computer science course:

  1. abandon the idea of treating students as sheep in an absolute sense. While it's hard to treat students as individuals when there are 150 of them, we should get away from the idea that every student should hand in an identical assignment. Right now we construct a boring example, give them the boring solution, and tell them exactly how to structure and comment their code. Some of them foolishly set off the Independent Thought Alarm, what we call "not following spec", and lose marks, but for the most part, all of them are pretty good and dutifully submit identical assigments. This expectation needs to change a little.
  2. Give them a broad survey of what there is in computer science.
  3. Allow them some creativity in assignments. Here's a short list off the top of my head that first year students would be able to accomplish:
    1. draw a Rube Goldberg machine to add two numbers and explain how it works
    2. give pseudocode for the AI of a hockey player
    3. design and write code for pong AI (we could give them the gave and just get them to write the AI). Believe me, you can go way overboard writing pong AI if you want to :P
    4. write code to draw plants using L-systems (hey, you know someone's going to want to write code)
    I don't know. I'm sure I could come up with better assignments if I put some thought into it :P

The key in my mind is exposing them to different aspects of computer science, and not stifling their interest/imagination unnecessarily. Right now there's this thought that we've got them on a treadmill. We can't teach them algorithms until they know how to program, so we have to get them competent in Java as soon as possible. Meh. It's a pretty restrictive path.

Love

Love is pretty awesome.

David Maybury-Lewis once put on a TV series about his book about tribal wisdom, and what we can learn about ancient wisdom. There was an episode about love on there, I remember, where he visited various tribes—one in central Asia I remember, possibly Nepal—where the concept of romantic love does not exist. I'm actually totally ignorant as to how much of our romantic relationships are biological and how much are cultural, but it seemed interesting.

Interesting, but rather moot, since regardless of whether it's biological or cultural, it's definitely pretty awesome. Overall I'd say its benefits are worth all the suicides and murders that it causes.

I'm not a believer in the soul mate or love at true sight. I'm basically just a believer that love is kind of awesome.

Politics

Everyone knows how everyone hates labels and "my band is so cool our music transcends genres" and everything, but nonetheless, labels at least give a ballpark idea. I would most closely identify myself as a post-leftist anarchist, a term I believe coined by post-leftist Bob Black (The Abolition of Work and Your Politics Are Boring As Fuck). I have sympathies with more classical socialist anarchists and socialist libertarians, and other general socialists, but socialist theory is often a treatise on class struggle, which I believe is irrelevant.

Paraphrasing Noam Chomsky, when I was a teenager, I adopted anarchism and the concept that authority should be challenged. I have yet to find any reason to change that belief so I'm sticking with it. If classical conservatism is "don't change anything unless you have a reason to", then anarchism in my mind is "get rid of everything unless you have a reason to keep it". I do not follow the dictionary definition of anarchism (do any anarchists?). I believe we should have a government.

I am, like many libertarians, and unlike some anarchists, anti-democratic to a large degree. I believe legislation should be a consequence of logic and principle and not of votes. Without getting into too much detail, I believe the populous should decide the values of goverenment via direct democracy; represented officials should convert them into legislation. Further, I think we should be moving away from judges and towards algorithms. Rather than have a judge decide if a law is constitutional, we should just run a proof-checker on a computer somewhere to ensure that a law is logically consistent with society's axioms/values. Values and laws must be stated strictly and logically for this to be the case. I see this as a good thing. Yes, I think that eventually we should be ruled by computers. Computers can be proven correct.

As for my values, I am a humanist and an optimist. I believe that humans can provide a good world for themselves. I believe our society should be actively moving in a direction which furthers the opportunities and resources available to all humans. I see our most pressing priorities as:

  1. world peace. Yes, I believe it is possible. Maybe not in the absolute sense. We'll never get absolute world peace in the same way that we'll never be absolutely free of murder or car theft. But I think there is still room for progress in this area. Peacekeeping was a good first step and has had some great successes. Sadly it has also had some great failures (Rwanda, Bosnia). I think the next step is to consider how to stop wars as early on as possible, possibly before they start. Part of this involves deciding as a species when it is okay and when it is not okay to remove someone from power. After that it's a whole lot of negotiation and game theory.
  2. world hunger. This will follow largely as a consequence from the world peace, as we already have more than enough food to feed everyone. However, it still needs consideration.
  3. the abolition of work. Maybe it seems odd that I put this ahead of health care, but it is a pressing concern for me. Robot workers and automation are necessary. We benefit as a species if we can free people from being forced to answer phones or pave highways for 40 hours a week. From a resource point of view, it should be possible for us a society to both reduce the amount of work that we do and increase the amount of wealth that we generate, but it's tricky to do.
  4. universal access to health care;
  5. universal access to education.

How I vote

I take voting pretty seriously. I never understood those people who complain about voting. And they say "but we already had an election just last year!". I'd vote every day if I could (seriously).

First of all, a word on how I don't vote. I don't vote for who I think "has a chance of winning", and I never vote against someone. If I absolutely could not find anyone to vote for (which thankfully has not happened yet), I would probably spoil my ballot (and consider running in the next election) rather than vote for someone I disliked out of protest.

It was a big revelation for me the day I discovered that my vote was meaningless. It was very freeing. But think about it: when's the last time, in Canada, we had a tie vote, or a riding decided by a single vote? Actually pay attention next time they do multiple hand counts in a riding (because of a "close" riding): usually the numbers will vary each time they do the count. Your vote does not count. Even when they carefully count every ballot by hand, your vote is lost to statistical anomalies.

This shouldn't be surprising. There are just too many people here for your vote to count. Rather than get discouraged by this, I took it as freedom and relief. No longer did I have to worry about strategic voting at all. I didn't have to worry about "throwing my vote away"—I'm doing that no matter what I do!—and I don't have to worry about my candidate of choice having "no chance to win".

So, what I do now, is find out all the candidates in my riding, no matter what party they're a member of, or whether they're independents. I look at their websites, send them an email or two, and before long I usually have an idea of who I like the best. Then I vote for the person I like the best. I know that concept makes me odd: consistently my candidate of choice ends up second to last in my riding. Usually the election coverage on TV doesn't even list them because they're so far down. Oh well.

I should say that I abhor political parties. This is one of the reasons I argue against proportional representation for a general government (in a mixed model it may make some sense). Proportional representation recognizes the authority of political parties. I wish the demise of all political parties and for that reason cannot support a system which requires political parties.

Vegetarianism

Every now and then the matter comes up as to whether I'm a vegetarian or eat meat. I'd been relatively carnivorous most of my life, so I never dreamt of wandering towards the world of vegetarianism, but seeing as dear Jasna is a vegetarian, things changed a bit.

I'm not a vegetarian, but I discovered that meat alternatives are often quite tasty (and sometimes even better than meat). It's so good, in fact, that I've been able to avoid buying meat at the grocery store entirely for quite a while now (I can't remember exactly when I stopped buying meat, perhaps the beginning of 2007).

Besides the occasional extra-tastiness for meat alternatives, my motivation for not buying meat is environmental. It takes a lot of resources to grow meat. It takes something on the order of 10 Calories of plant matter to get 1 Calorie of tasty meat. That means, when comparing eating meat to eating plants, you're talking about requiring a lot more land, a lot more water, etc. So, environmentally, it makes a lot more sense to eat plants than to eat meat.

So, I make an effort to avoid eating meat. I liken it to turning up your thermostat. Yes, it would be wonderful for the environment if everyone could have their thermostat set at 15°C during the winter. Sometimes that's not practical, however. So, I try to avoid eating meat in the same way that I try to keep my thermostat low. If I eat the occasional hamburger, or crank up the thermostat every now and then, I'm not going to lose any sleep over it.

When I'm buying my own groceries or cooking my own meals (or, more commonly these days, when Jasna's cooking my meals, hee hee), it's quite easy to avoid eating meat. When eating out, though, often vegetarian options are quite limited and, well, awful, so I will typically eat meat when eating out.

As an addendum, many vegetarians are vegetarians at least partially in protest of animal cruelty in the meat industry. For me, this is not so much the case. There are, of course, lots of cases of animal cruelty in the meat industry, but I see the solution to be better regulation and enforcement. I don't think any animals (aside from humans) have a right to life. For stupid animals (e.g., chickens), I don't even care so much how great their quality of life is unless it's really extreme (admittedly, in the case of chickens, it can sometimes get extreme). We should make a bigger effort to make sure they're slaughtered quickly, as well (and not butchered while still alive or anything stupid like that).