Blog

On Being Alone

written by Trevor on July 26, 2010, at 07:49 AM

I'm not sure if it's because I'm back in Winnipeg and consequently thinking about the past, but I've been reading some old things I wrote and one entry in particular caught my attention. I guess it's something that's been on my mind passively for a while, so it's interesting to read how I thought about the subject two years ago.

Originally posted as a Facebook note, edited for boooring:

When I step back and think about who authors things, especially on the internet, I figure that if these people had good friends, they would not have created what they did. It seems to me that no matter how much people say they're writing solely for themselves, what they're really doing is searching for that one person in a million that they can really connect with. Sometimes I'll have a great conversation with someone, and I'll think that the ideas we talked about were just so interesting that they could really fill an entire book. But in reality, that book would only really appeal to the two of us. Most of what gets created nowadays sits unread and unappreciated.

If I was a truly self sufficient being, I wouldn't even end up publishing this note. I'd just feel relieved to have satiated some need in my brain to verbalize what I've been thinking for the past half hour or so. If I really didn't need other people to get by, I wouldn't feverishly check my facebook profile over the next few days to see if anyone had commented on this note with their insights.

But I know I'm going to do it; I'm going to click the publish button, and for the next few days I'm going to see if my inane ramblings click with anyone. Luckily, since I've referenced that inevitable fact, I can mistakenly feel above the people that do it opaquely.

Part time writer

written by Trevor on February 18, 2010, at 03:50 PM

It's been a few weeks since my last update -- I've been busy okay? But it's reading week so I have enough time to blatantly self-promote.

I got a gig writing guides for the How-To Geek. I'll be writing a fair bit about Linux, which I realize has already excluded many of you from caring, but I'll do Windows articles as well.

So far I've had four articles published, so please do visit them. They're great, I swear.

Another project of mine has been putting up all of the old Manitoban articles I wrote; really, I'm fine with just linking to the Manitoban website, but the articles from the 2008-2009 publishing year aren't online, so I must preserve them, lest someone wish to read "The 'meatatarian' saga: douche vs. bully" and not be able to.

They're going up gradually; you can see them as they're uploaded here.

Finally, another tasty morsel that I added to this here website recently is the transcript of an interview I did with a master's of social work student for her thesis on student exchange experiences. Basically, it was an excuse for me to wax nostalgic about my year in Tokyo, and I think I produced some decent sound bites. The full transcript is here, but I'll end this post with a few choice passages.

RD: What was it like getting used to being in Japan?

Me: Language was a huge difficulty right off the bat. There are those social niceties that people say so often that they kind of mumble them, and you can’t really pick them up until you’ve been listening for a long time. So those little things, and trying to mumble something back out, were pretty difficult at the start.

It was always difficult, actually, because it never really feels natural to say those things. So little utterances, like, you know when you don’t know what to say in English you just say um in English. In Japanese it’s a totally different sound but you want to say the English um even if you're speaking Japanese. Those were the things that I found hard to get used to.

Me: I never really considered Canada to affect the way I am. I’ve never considered that growing up in Canada has changed me in any way; I figured that if I grew up anywhere I’d be pretty much thee same person. I still kind of believe that, but seeing the way people in Japan are, it seemed like growing up in Japan changed them from what they would have been had they grown up somewhere else. Like, they're forced into a school system where they have these extremely stressful exams that really determine the rest of their lives. It shapes them and turns them into these adults that do nothing but work.

RD: What would you say you’ve learned about yourself, the world, important lessons learned?

Me: Probably that you can’t take anything at face value. The things that I had read about Japan I had assumed were the case, but I realized that only sometimes it's like that, or on the surface it’s like that; the more you get into things the more different it is and the more complex it is. I’ve learned not to take things at face value and to try to dig into what’s important and what's actually the case rather than what people want to be the case.

Another cry for releasing scientific code

written by Trevor on February 09, 2010, at 06:55 PM

In a previous post I voiced my concern that scientific researchers do not have to provide the source code that produces their results. Now, Darrel Ince, Professor of Computing at The Open University, has written an article for the Guardian also calling for scientists to release their source code. Slashdot covered the story this morning.

Ince argues this as part of the fallout of "climategate," the incident in which it was shown that climate researchers had been fudging scientific data to produce desired results. It is a compelling example, but Ince goes on to say that "the situation is by no means bad across academia." He cites the example of the four colour theorem from graph theory, which was proved partly by a computer program. The program was published and highly scrutinized, and eventually found to be correct.

However, not all results are that nice in mathematics and computer science. In his PhD thesis, Terry Stewart notes one result that, to this day, has not been recreated.

SHRDLU

SHRDLU was a natural language understanding system developed from 1968-1970 by Terry Winograd at MIT. This 40-year old system produces some very interesting interaction, and was one of the first great results in artificial intelligence research. The following are two snippets from a demo found at Winograd's website:

Person: PICK UP A BIG RED BLOCK.
Computer: OK. (does it)
Person: GRASP THE PYRAMID.
Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
Person: FIND A BLOCK WHICH IS TALLER THAN THE ONE YOU ARE HOLDING AND PUT IT INTO THE BOX.
Computer: BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING.
Computer: OK. (does it)
Person: WHAT DOES THE BOX CONTAIN?
Computer: THE BLUE PYRAMID AND THE BLUE BLOCK.
Person: WHAT IS THE PYRAMID SUPPORTED BY?
Computer: THE BOX.

...

Person: HAD YOU TOUCHED ANY PYRAMID BEFORE YOU PUT THE GREEN ONE ON THE LITTLE CUBE?
Computer: YES, THE GREEN ONE.
Person: WHEN DID YOU PICK IT UP?
Computer: WHILE I WAS STACKING UP THE RED CUBE, A LARGE RED BLOCK AND A LARGE GREEN CUBE.
Person: WHY?
Computer: TO GET RID OF IT.
Person: WHY DID YOU DO THAT?
Computer: TO CLEAN OFF THE RED CUBE.
Person: WHY DID YOU CLEAR OFF THAT CUBE?
Computer: TO PUT IT ON A LARGE GREEN CUBE.
Person: WHY DID YOU DO THAT?
Computer: TO STACK UP THE RED CUBE , A LARGE RED BLOCK AND A LARGE GREEN CUBE.
Person: WHY DID YOU DO THAT?
Computer: BECAUSE YOU ASKED ME TO.

That is crazy impressive. The question is: why haven't we seen systems like it in common use today? A page maintained by Semaphore Corp. that provides source code for an implementation of SHRDLU gives some insight:

The current code isn't capable of completely reproducing the classic demo dialog and is fairly brittle and easily crashable, but it does correctly handle a large portion of the classic input sentences and many reasonable variations.

40 years of natural language research and infinitely more powerful computers are still not able to reproduce SHRDLU's 1970 results. How is this possible?

One of Winograd's students, Dave McDonald, notes, "In the rush to get [SHRDLU] ready for his thesis defense [Winograd] made some direct patches to the Lisp assembly code and never back propagated them to his Lisp source... We kept around the very program image that [Winograd] constructed and used it whenever we could."

Back in those days, most computers ran different operating systems, so as changes were made to the operating system of the computer Winograd and his students were using, the program became less robust (a phenomenon known as software rot).

So, even though the source code exists in some form, the original results he produced cannot be replicated because they don't include Winograd's direct patches, and because the platform that the code was created for longer exists.

The lesson

What should be taken from this example is that mathematics and computer science do still suffer the same problem of irreproducible results. Ever-changing platforms are less of a problem now -- a Matlab program produced on one computer should run the same on any other computer -- but source code is rarely shared as part of the publication process.

I think it should be. But for that to happen we need a central repository to store code and meaningfully link it to the papers that use it.

This repository should have the same amount of peer review and, therefore, authority that scientific journals have now. Maybe that can happen by existing journals adding the ability to link code to a paper (and enforce that any code used to generate results is included), or maybe a new organization has to rise up to the challenge (I would love to see code.arxiv.org).

Already I can hear the outcry of scientists claiming that their code is "sloppy" and "not ready to be released," but those concerns are simply irrelevant: all that matters is that the code produces the output cited in the paper given the input cited in the paper. That's it. If another researcher finds your result interesting, then let it be up to them to wade through your code -- it's probably still way better than trying to reproduce your result based on the prose that describes your algorithm.

On Chemical Computing and Neurons

written by Trevor on January 11, 2010, at 10:59 PM


Bromine, which plays a role in a new project's chemical computer.

Slashdot just posted a BBC story about a new chemical computing project that, in some ways, mimic neurons.

The article is a bit light on details -- understandably -- but essentially their approach is to build networks of connected chemical computing cells.

The cell bodies are a mixture of liquids that undergo Belousov-Zhabotinsky chemical reactions when the concentration of bromine in the cell reaches some threshold value.

The outside of the cells is a material that the article calls a "lipid." When one layer of this lipid material comes into contact with another layer, a protein forms a passage that can transport signaling molecules between them.

I don't know much about chemical computers, but a cursory look at Wikipedia tells me that the BZ-reaction is a common element of chemical computers; the new contribution appears to be this lipid material. And it does appear to be a very interesting contribution.

While it's not explicitly stated, the tone of the BBC article is pretty clearly "hey look, we might be able to make or simulate human brains." I completely understand this urge; certainly, it's the reason it got picked up by Slashdot, and will likely find its way to other big websites. Unfortunately, it's just not true.

The BBC article touches on some of the similarities between this project's chemical computer and the human brain:

  • It's made up of a network of cells.
  • It shares information through chemical signals sent from one cell to another.
  • The cell body processes input, and after producing an output, has a "refractory period" -- some short period of time in which input is not processed.

These similarities are minor in comparison to the sweeping differences:

  • The connections between neurons are one-way: a neuron receives a number of inputs (on average about 10,000), and produces one output (though that output may be connect to many other neurons). The article does not mention whether the chemical computer's connection are one way, but it seems unlikely, for a number of reasons that I won't get into.
  • A neuron communicates with other neurons by sending an action potential (a short burst of electricity), also called a "spike" due to its appearance on a graph of neuron voltage.
    After spiking, the neuron goes into a rest period during which it will not respond to input, called the refractory period.
    The BZ-reaction does not appear to exhibit a similar voltage graph, even though, according to the article, it does exhibit a refractory period in which input is ignored.
    It is possible that the particular reaction used by these researchers is more neuron-like, though I am not aware of such a chemical reaction.
  • Chemical computing (as described by Wikipedia, anyway) aims to use chemicals to perform computations as we know them in computers; so, we're talking about bits and logic gates (specifically NAND gates in chemical computers). Brains, as far as we can tell, do not compute things in this way. The notion of the "bit" (binary digit, essentially a one or zero) does not even make sense in the brain, as it is a noisy system.

Of course, these differences in no way mean that the chemical computing project is not interesting and exciting. This lipid material that is able to make spontaneous connections between simple computing devices is fascinating, and while I am, again, not well versed in how chemical computers work, a huge network of these cells (perhaps 100 billion -- the number of neurons in human cerebral cortex) might have incredibly computing power.

And indeed, the quotes from one of the researchers, Klaus-Peter Zauner, tell me that it is not the goal of the project to make a human brain or human brain analogue.

Every neuron is like a molecular computer; ours is a very crude abstraction of what neurons do.

[...] It will open up application domains where current IT does not offer any solutions - controlling molecular robots, fine-grained control of chemical assembly, and intelligent drugs that process the chemical signals of the human body and act according to the local biochemical state of the cell.

The article has to go to a different chemical computing researcher, Frantisek Stepanek, to get the juicy brain quote.

If one day we want to construct computers of similar power and complexity to the human brain, my bet would be on some form of chemical or molecular computing.

And even then he only talks about "computers of similar power and complexity."

The thing that bugs me about this article is that it's not about imparting information, it's about trying to fulfill a science fiction fantasy.

The idea that this chemical computer would bring us closer to being able to make or simulate brains is a natural thing to think, but rather than futilely trying to show that it may be possible, the article should use the idea as a platform to entice the reader and then tell them something interesting about chemical computers and about how the brain works.

Information lies not only in how this new chemical computer is like a brain, it is also in how it is not like a brain. In neglecting this piece of the puzzle, this article does a disservice to the reader and to the public's scientific consciousness.

On mortgages and RRSPs

written by Trevor on January 11, 2010, at 05:04 AM

Giving money advice is tricky business. Everyone's financial situation is different, so in general, there is no universally good advice. This post does not aim to give any advice. I aim only to look deeper into an issue I encountered recently.

The question I was faced with was, essentially, should I open an RRSP if I'm saving for a house?

I am in a fairly stable financial situation; I have no debts, and while my income is not worth bragging about on the internet, I have enough that I can put a chunk away into savings. A book that I half-read at one point espoused the idea that putting 10% of your income in savings is basically all you need to do to solve most of your financial problems.

While I'm not one to say if this is a good or a bad idea, I've always been annoyed by how that simple advice quickly becomes more complex once you realize that "saving" is not a passive process: saving is something you have to do. The amount of effort ranges from opening up a savings account to spending most of your day watching the stock ticker (and your life) roll by.

I've always heard the advice that you should start an RRSP as soon as you can, so when I went to open up a savings account it seemed natural to also open up an RRSP. The person at PC Financial asked me a question that I had honestly never really thought about.

PC: What are you saving for?

Me: Uhh...

PC: A car? A house?

Me: Oh, a house I guess.

She said that opening the RRSP would be a good idea as, later on, I could use the money in the RRSP as a down payment through the Federal Home Buyers' Plan. Well, she didn't really say that, she said something like that, and then later I googled it (see a verbose explanation or a bureaucratic one).

When I talked to grandfather (a certified accountant who has always graciously done my taxes) about it, he noted that I don't pay enough taxes to make an RRSP worthwhile, and that it would be more beneficial to me to keep my savings more liquid.

Some websites also say that, even if I did open an RRSP, I shouldn't use the Home Buyers' Plan.

So should I open an RRSP? I did, but I haven't contributed to it. And I don't plan to for the time being. Most of my money is in a savings account, so as long as it's making some amount of interest, that's good enough for me.

If there's one thing I've learned in the little time I've taken to research the subject and write up this entry, it's that there are so many programs and rules and stipulations that there is no such thing as an objectively optimal financial decision. In that sort of environment, I'm much happier spending my free time reading webcomics and playing dumb (but brilliant) games. That's what I'd suggest you to do as well.

Unless you're in debt.