Penn vs. UPenn

I have three friends who go the the University of Pennsylvania. Two of them calls the school Penn, the other simply calls it Penn.

And I always have trouble remember they all go to the same school.
No comments


I've always been better at numbers than with words. That doesn't mean I can't write (I hope), but I can definitely remember numbers better than letters or words. For shorter numbers (say, 4 digits or below), I usually keep numbers in my mind by factoring them. I'm also better at even numbers than odd numbers, but I don't really know why.

For longer numbers, like phone numbers or IP addresses, I have a different system. I chunk the number in 4 digit groups, and draw them on the number pad. So, for example, the Hong Kong phone number 51439681 would become 5143-9681. 5143 on the numpad forms something like a Greek alpha, with a longer lower tail, while 9681 does a small quiver before the downward stroke to 1. I mainly focus on remembering these patterns on the numpad, and usually I will also know one or two actual numbers for me to place it on the pad correctly.

Anyone have special ways (short of pegging) to remember random sequences?
No comments

Roof! Rough! Ruth!

There's a lot of psychology surrounding jokes, and I mean more than the usual stuff that deals with expectation and surprise and joy. Take, for example, the following joke:

A guy has a talking dog. He brings it to a talent scout. “This dog can speak English,” he claims to the unimpressed agent. “Okay, Sport,” the guys says to the dog, “what’s on the top of a house?” “Roof!” the dog replies. “Oh, come on…” the talent agent responds. “All dogs go ‘roof’.” “No, wait,” the guy says. He asks the dog “what does sandpaper feel like?” “Rough!” the dog answers. The talent agent gives a condescending blank stare. He is losing his patience. “No, hang on,” the guy says. “This one will amaze you. ” He turns and asks the dog: “Who, in your opinion, was the greatest baseball player of all time?” “Ruth!” goes the dog. And the talent scout, having seen enough, boots them out of his office onto the street. And the dog turns to the guy and says “Maybe I shoulda said DiMaggio?”

This is not the first time I've heard the joke, but it's the first time I've made a connection with something else: logic. Those of you who took some psychology might recognize the Wason selection task:

You are shown a set of four cards placed on a table each of which has a number on one side and a colored patch on the other side. The visible faces of the cards show 3, 8, red and brown. Which cards should you turn over in order to test the truth of the proposition that if a card shows an even number on one face, then its opposite face shows a primary color?

Wikipedia gives the solution as well as interpretations of the test:

The correct response is that the cards showing 8 and brown must be inverted, but no other card. [...] If we turn over the card labelled "3" and find that it is red, this does not invalidate the rule. Likewise, if we turn over the red card and find that it has the label "3", this also does not make the rule false. On the other hand, if the brown card has the label "4", this invalidates the rule: It has an even number, and does not have a primary colour. [...]

[...] By contrast, some (though not all) Wason tasks prove much easier when they are presented in a context of social relations. For example, if the rule "Only people over 18 are allowed to drink alcohol" is set up as a card game with age on one side and beverage on the other, the cards might be 17, beer, 22, coke. Most people have no difficulty in selecting the correct cards (17 and beer) that must be turned over to test the rule. [...]

It turns out that for the talent scout to determine whether the dog can speak, similar logic is applied. The proposition to validate in this case is, "if the dog could say words outside of homonyms with 'woof', then the dog could speak." Notice that the antecedent is specific to "words" that normal dogs couldn't speak. If the talent scout had believed the dog could talk based on the questions in the joke, it would be the equivalent of him turning over the card labeled 3. The scout would, in other words, be affirming the consequent.

But I don't suppose joke listeners think about all that.

No comments

Bugger Blog III

Blogger has changed a bit since I started using it, but I'm most annoyed by a single thing: the way your posts are dated.

When writing, under post options, you can set the date and time of the post. I personally prefer the ISO 8601 representation, so 1 pm on Christmas day this year would be 2007-12-25 13:00. Technically there should be a 'T' before the time, but a space makes it more human readable. However, not many people follow this convention of YYYY-MM-DD hh:mm, especially the 24 hour format.

I used to be able to enter that for the post date and time though, and Blogger would accept it. Sometime in November, however, it stopped excepting that format. Instead, I get this error message:

Illegal post time (format is: hh:mm AM/PM)

Okay. There are two separate things that piss me off about this:
  1. When they say "AM/PM", they mean AM/PM, to the uppercase letter. What's wrong with writing it in lowercase? It takes one line of code to convert everything to one case, and they should do it for you.
  2. When they say "hh:mm", they don't actually mean hh:mm. What they mean is [h]h:[m]m, the tens digit only necessary when the numerical value is higher than 10.
The AM/PM thing, okay, but it pisses me off when they follow that so strictly and yet relax on the other part of the format. To be honest, I would be less annoyed if they required a zero for the numbers. At least then they're consistent.
No comments


Merry Christmas to everyone. I have two caro... songs :D to share.

Rick Alexander's Santa is an Anagram for Christmas


Klein Four Group's Twelve Days of Christmas

Happy Holidays!
No comments

Time and Space

I noticed something while having a conversation with some friends about locations. In the US more so than other countries, people describe distances by how long it takes to drive there. For example, Devil's Lake in Wisconsin is 4 hours drive north from Evanston, and Sacramento a 3 hour drive from San Francisco.

In one way, this is a very practical way of giving locations, because although it doesn't tell you where the place is exactly, it tells you how to get there, and how long it will take. What I find curious is that the time is not an absolute measure, either; it depends on the speed of the traveler. By using driving time as a measurement of distance, we are in fact assuming one thing: constant speed not only for the trip, but for all drivers.

That in turn reminded me of a suggestion someone made a long time ago. Some physicists suggested that distances should be measured in time units, with the constant being 3*10^8, or the speed of light in a vacuum. Going from Evanston to Devil's Lake would be 1.04 milliseconds, and from San Francisco to Sacramento 0.470 ms.

I find it ironic that the US, where science education standards are dropping, would have a colloquial convention that demonstrates relativity.
No comments

Week of 2007-12-17 (and 2007-12-10)

I'm two decades old :D. A quarter of my way to 80...
  • The presentation for my design class went smoothly
  • Got back to Hong Kong (obviously)
  • Got my grades for fall quarter. They were exactly as I had predicted them.
  • Reinstalled everything on my computer (Windows, Ubuntu 7.10, Arch)
  • Birthday!
No comments

Google Play

Something about this being the 100th post.

You should check out the comments to my stalker post.

Following Henry's example, I googled my username. Most of the sites I know, but I also found a link from The actual page has changed, so that link is to Google's cache.

What a strange place for my blog to show up.

Another strange place for my blog to show up is the search results for "infinite grid of ideal one ohm resistors" without quotes.

Finally, another funny video from Courtney. I personally think it's genius.
No comments

On This Infinite Grid of Ideal 1-ohm Resistors...

This is from one of xkcd's recent comics, talking about stopping people dead in their tracks with intriguing problems... "nerd sniping". It's about on the same level of effectiveness as a weapon as the world's deadliest joke, which even has a mention in Wikipedia. Going back to the comic, the problem of an infinite grid of resistors is apparently from the Google Labs Aptitute Test, which I looked up. The questions were harder and more ingenious than I thought they would be, especially the numeric-acoustic ones.

I remain, however, one of the people who are easily nerd sniped (computer scientist for one point?). Here's an example. I thought about the actual question for a bit, using my rusty physics skills, and could only narrow it down to the resistance being larger than 0 but smaller than 3 (since the two nodes are on a parallel circuit, and the resistance has to be smaller than the smallest resistance).

There's a fairly popular flash game called Desktop Tower Defense, a strategy game of sorts. I played it for a bit, then did the "fun" version where you start with 10000 gold. I spent the next few hours (or days) trying to create as long a path as possible for the creeps. That would mean more towers and more time for me to deal damage. I think my last version lasted up till level 40+ before I had to upgrade the towers...



Clearly, this is one of the xkcd comics which real life should not imitate.
1 comment

A Guide to Stalking by Example

In my last post I mentioned that I found a journal entry in a pastebin. My curiosity was peaked, and so I took a little time trying to track down who posted it, and perhaps a little more on what actually is going on. When I thought of writing down my little adventure in this blog, it also reminded me of an article I read a few weeks ago on microcelebrities, where the author found a forum thread discussing the merits of him finding a nanny for his child. As I'm typing this I'm also reminded of several articles on how googling yourself is getting more popular and might be a good idea, since it displays what other people can find out about you on the web.

In other words, how easily you can be stalked online.

I know that searching for my real name (one of "Ning Hui Li", "Justin Li", or "Justin Ning Hui Li") doesn't get too much stuff, but searching for my online alias (ninghui48) gets almost everything I've ever done online. Further more, a few of my profiles (in particular, my profile on Facebook) have very little security while providing accurate and sometimes up to date information. I know therefore that I'm a highly stalkable target.

I'm about to make someone else a microcelebrity.

First, the pastebin journal entry. On careful reading, you'll see that even though the poster didn't provide a name to the pastebin, the author of the post actually included his real name, "Ed", near the end of the entry. When he quoted verbatim his note to Shannon, he included the valediction and signature. So now we know he's called Ed, short for Edward, as shown when he quoted what Shannon said over the phone, again verbatim.

I don't mind long full quotes; in fact, I do that a lot in my own journal.

My first attempt at finding the LJ was a simple search for the entry. I googled the first line, then the crucial "Shannon was in love with me." Nothing. I paused for a moment. Ed is a common name... but his AIM user name, "oorza", isn't. Googling that gives links to, digg and Beryl, but no LJ. It could very well be the same person, of course, but it wouldn't give any information about him and Shannon. So I changed tacks, and assumed that "oorza" is the username he used for LJ as well.

Bingo! It's a friends only journal, with a post telling visitors so. The important thing to note in the post is that people should friend him to get access, or find him through IM and "get [him] to copy paste this shit to a pastebin." Which is exactly what I stumbled upon. Taking into account that pastebins are technically oriented, and that the previous results for "oorza" are also technical (following Beryl there are also links to Compiz and Gentoo), the mention of pastebins in this LJ lets us be reasonably sure that this belongs to Ed.

Although the journal is friends only, there are other things to learn. Ed has posted several times before, but all of them lead back to the same post, meaning that post was probably modified to update that line about his latest post. More enlightening is his user info page. Seven friends, one of them himself. The account type also caught my eye - Ed had a Plus Account, meaning he's paying for his account. Checking his friend's page shows that of the seven shows that ___ writes the most - at least, he writes the most of everyone who's posts are not friends only. His account is also paid.


Long story short, I ended up on Facebook which convinced me (incorrectly, it turns out) that I found the author of the post.


That's about where I left off. I've found his friends on Facebook, which adds evidence that they're the owners of the profiles we've been looking at. Ed has no friend named ___, but seeing she's 45 (as per the conversation), she's less likely to be on Facebook. I'm sure there's more to be found if I dig deeper, but I found enough already.

So, what have we learned?
  • BE OBSERVANT. This is the most important. Even seemingly trivial details may be useful.
  • Google and Facebook are your friends.
  • Usernames are often used for multiple sites, leading to multiple search results for the username.
  • Usernames sometimes contain the users' real names in whole or in part.
Oh, I forgot to mention that the pastebin post was to someone else we haven't encountered so far. They're not on LJ, or Ed wouldn't need to post it to pastebin in the first place. *shrugs*

Had fun?


I came across this concept of pastebins the night before flying out, while reading the arch linux forums. I was surprised that I have never gotten to this part of the arch linux website before, and also that I haven't even heard of pastebins until now.

It seems like a really useful idea (and it is by the number of people using it). I myself don't remember trying to share too many pieces of code through IM, although I'm sure I've done it before. There's a free version of a pastebin (the original, in fact) which anyone can use. You can also append a subdomain in front of the URL to make things more private.

By checking the recently updated posts on that site, I noticed that some people use it for entire essays. While I also write journal entries in a one-entry-per-line format, I think pastebins are much more suitable for text when the lines are short, e.g. code, configuration files, to do lists.

And in fact, I think I just found a pastebin which someone uses as a journal... Hehe. Aren't these things fun?
No comments

Wrong Side of the Street

I have an observation I would like all of you to verify: is it just me, or do people tend to walk on the opposite side of the road they drive on? So for example, in the States people drive on the right, when walking people will tend to walk on the left side of the sidewalk. The reverse is true for Hong Kong.

It's probably more an availability heuristic (kinda like a flashbulb memory) than anything, but does anyone else feel the same way?
No comments

How to Backup Your Data

Remember how I managed to fry my USB port with a little ESD? The most immediate problem is that I could not use my USB mouse, and had to stay with my trackpad for a few weeks. I also knew at the time, however, that I would have a hard time backing up my data to a USB connected external disk.

I bought a PCMCIA-USB card yesterday, which worked fine for the mouse. When I tried to plug in my external disk though, none of my three OSes (Windows, Ubuntu, and Arch) detected the device at all, even though the light on the drive lit up. I had already anticipated that the PCMCIA card won't have enough power for the disk. Luckily, the disk came with an second power only USB cable, which I then also plugged in but to no avail.

After trying the drive on my desktop, and moving it back and forth for a while, I figured out that the power cable does not by itself provide enough power. If it needs the power cable, then both that and the power+data cable needs to give it juice for it to run. It seems that the PCMCIA card just doesn't give enough juice.

I was then at a dilemma. I want to backup my files (so I could reinstall my OSes, something I do once or twice a year). There doesn't seem to be a way to connect my laptop to my disk though.

What I eventually did was a really convoluted way of doing backups, but it works. I took my new Ubuntu 7.10 boot disk and ran it on my desktop. Now I have two Linux boxes running. I connect my external disk to my desktop, which detects it and reads it correctly. Finally, I use SFTP to connect my desktop to my laptop, and do a backup "remotely" that way.

The result: I'm typing this post on a newly installed Ubuntu 7.10.
No comments

I'm Leaving on a Jet Plane

It's lovely weather outside, calmly snowing. The perfect winter day.

I'm saying goodbye (or more correctly, "see you later") to Chicago for three weeks or so. I'll miss the winter.
No comments

Importing Contacts with Gmail 1.5

I finally figured out how to import contacts into Gmail. I was right about how the new version of Gmail exports and imports incorrectly. Not only are the CSV files from the old version of Gmail incompatible, but Gmail fails to import a file generated by the new version of Gmail.

What I had to do instead was go back to the old version and do all the importing there. The main difference between the old format and the new format was the separator used; the new format uses the semicolon as the separator between different entries in the same field (say, multiple home email addresses), while the old version uses the string ' ::: '. It was an easy thing for me to do a search and replace to convert my own CSV file to Gmail format.

The funny thing is that I don't think my file works that well for the old version either. If you look at an imported contact in the old version, some of the information is moved to the notes section, meaning Gmail doesn't really know what to do with it. Switching to the new version, however, the contact is displayed correctly, with separate email addresses and IM's and everything.

So, after figuring this out, I have to agree with a lot of commentators on the web that the new version of Gmail still has a number of bugs. I still use the new version as the default, but I'm also prepared for some things to not work as well as in the old one.
No comments

Good Exam Criteria

I'm done with this quarter! I'm flying out tomorrow at noon. It'll be fun.

I was talking to someone after my stats exam, and I said that it was a good exam. I realized that my definition of a good exam is not necessarily the same as other people's. In particular, my definition of a good exam has almost nothing to do with how well I did on it.

Instead, I am more interested in how well the exam addresses the course material. Does the exam do a good job of summing up what we've learned in a quarter? Does it push us to use what we know?

The stats exam did a pretty good job of that, by asking using a lot of the techniques we learned with a single example, and also including a few parts which we haven't encountered before. Another good exam I've had was for operating systems way back when. The test was on concepts, which means the answers could be extremely short as long as it was correct. It required thinking though, which is always a good thing.

I have, in fact, enjoyed exams which I did badly at, but which I thought I should do well because the questions were so otherwise simple. Like my differential equations exam last year, afterwards I felt like taking the exam again just to prove that I am better than that.
1 comment

Exams and Stuff

Got two presentations done today. Just my stats exam left, then I'm done.

There's a meteor shower going on right now, about to approach it's brightest moment, but I'm too lazy to go outside. Missing it is just a sacrifice I have to make.

I'm missing someone else, too, but that's for me to know and you to find out.
No comments

Google Integration

I like Google, I really do. That I'm writing this on Blogger and not on LiveJournal is a statement of that. I also use multiple Google services everyday, from email to RSS feeds to search to their web hosting. Google doesn't have quite the same monopoly that Microsoft had during the 90's, and it doesn't give off that feeling of evil either.

One problem I have with using so many of Google's services is that it's not very integrated. Sure, attachments in in email could be opened with Google Docs, and mentioning dates would prompt a GCal quick event, but those are just specific instances of connect two other. Otherwise, all my documents, emails, webpages, and videos on Google are in a different place, with a different limit on their size.

What I really want to to have control over all my space on Google. For example, if I don't really need that much space for my videos, I could convert that to use for hosting space, or for documents. This allows for much more flexible usage of Google's space.

I know that integrating all the storage space is probably a tough engineering challenge. Hopefully, when Google comes out with its GDrive, it will become a reality.
No comments

Prove of God

This happened over half a year ago, but it recently popped into my mind, and it makes an easy short post.

The Christian Apologetics Research Ministry, or CARM, is a website started by Matt Slick to, well, spread Christianity. There are a large number of pages devoted to countering an assortment of different religions, non-religions, and cults, which contain, shall we say, a large number of weasel words. Somehow, reading pages from the site inevitably makes me feel personally insulted, as the the author is making a whole bunch of logical fallacies and not letting you talk back.

Which he basically does, but then again, he's paying for hosting and traffic. There's enough junk on the internet as it is, one more wouldn't matter.

All slandering of the site aside, I had actually sent them an email about an issue. Matt had brought up the idea that to hold a position, you also need to have an idea of what would change your position. It's a nice fair claim, with the scientific method behind its back. It's what researchers do all the time: have a hypothesis (the position), figure out what would invalidate it, and test to see whether it actually invalidates it. The only problem with theology, of course, is that we can't test it.

On this page and as shown in this dialog, Matt uses this to great effect. The problem with the dialog is that the
"challenger" was not that good at all; he got distracted by the whole circle-square thing. Asking Matt about unicorns is the right move, he just didn't push it enough. As such, it's like watching a wrestler body slam a ten year old kid; you would cringe just watching it.

My email was my own counter argument to Matt's use of this methodology. What evidence would I accept to say God exists? Well, he could appear (as a burning bush - boring, or a column of fire at night - much cooler), or maybe do one of those miracles. Specifically, maybe someone could part the Red Sea for me? It was done before, so it does not "violate [God's] own nature". The performance of this miracle would at the very least show some kind of anti-gravity technology, at best it would show God exists. Which would be a happy ending for all.

I think that's solid evidence to prove God exists, and lodge me from my atheism. So now I can "honestly lay claim to the title atheist".

There was a second shorter question for Matt too. It's a shame I never got the reply to the email, because I'm really curious as to what his answer would be. The question is simple: what evidence would he accept to show that God doesn't exist? It's the same question in the other direction. If he doesn't answer that one, then he "[hasn't] thought his position through" and can't "honestly lay claim" to the title Christian, by the same logic.

I wonder what his answer is?
No comments


Since I'm basically done with my natural language processing project this quarter, I thought I would write down an idea I have for my project next quarter for practicum.

Either I would do the ToA Constructor, or I would write something which can extract the structure of a document.

As it appears it me is should be simple. The first thing to try is to grab the HTML header tags, which would of course indicate a title. I don't think that will work on too many pages though, since not a lot of people like them. The next thing would be grabbing everything under a certain word length that's on a line by its own. I can think of them being either headings, or one liners made for effect. That's basically it. If these two don't work, I suppose we could also try scanning for a larger font size, but that takes in account CSS and all the other SGML junk, and is a lot harder to do.

Although, somehow I don't think I'll be working on this next quarter. But it's an idea.
No comments

Week of 2007-12-03 (and 2007-11-26)

I had a dream last night. I dreamt that I was reinstalling the OSes on my laptop, and for some reason when I installed Linux all my Windows stuff got imported. So instead of my nice clean wall paper I have twenty huge icons on my desktop. And also somehow the default web browser is IE, with all the imported bookmarks and everything. I remember muttering to myself, "wine," before going and unmounting my NTFS partition.

And then I woke up. I suppose for some people that would constitute a nightmare, but to me it just shows how much of a geek I am.

So this week was reading week, which means it's classes as usual. I just realized I didn't post a "Week of..." post last week, so this will include that as well.
  • Although I still had most of my classes, I did get down with cognitive psychology. The exam was not hard; I barely studied (read: didn't) at all, and still did reasonably well (does 89% seem "reasonable" enough to all of you who are muttering about my low standards?)
  • I'm also done with my stats project, where we analyzed the statistics of CTEC (Course and Teacher Evaluation... Crap). Students has their interest in a subject most stimulated when the professor is good. Go figure. It's surprising that these two areas have the highest correlation though; we were originally thinking there might be a correlation between time spent and the over all rating of the course. But nope; instead, there seems to be an amount of time (roughly 3-8 hours per week) where most of low ratings reside. I think it's because you either don't work at all and enjoy the course, or you are willing to put work in because you enjoy the subject.
  • I reinstalled Picasa with the 2.7 Beta Linux version. I had the 2.7 Windows version running on wine before, but it didn't handle the "download album" link on web albums correctly. Now it does, and I think it was easier to install than the old version too.
That's about it, actually. Other projects and classes are going well. We'll see how finals week goes...
No comments

Youtube Downloader

Just a word: if you ever wanted to download a video from Youtube, you can use It's open source, and so it's probably going to stay free, and you can convert the video to several different formats.
The video I wanted to download is for one of my presentations... :D
No comments

Time for Dinner!

A question for you to ponder: if the dining halls are open for dinner from 5 to 7:30 pm, when is the best time to go to avoid the crowd?

The first answer might have something to do with when people get hungry, and you would go through when you actually have dinner, if your dinner time represents a majority of people's. Since not a lot of people eat dinner at 5, most eating 6:30 or later, before 6 is probably a good answer.

Which is true, and I congratulate you on your reasoning. But then I don't always feel like eating early either, and it's pretty annoying if you get hungry again later at night.

It turns out that when the dining hall gets crowded may not be entirely determined by when people get hungry, but also by when people think they'll go get food. If you accept the solution that people like to eat with their friends (which is mostly true), then there's also the problem of how people decide when to go and get food as a group. Think about it. If you're meeting someone, are you more likely to say "I'll meet you at six", "I'll meet you at six thirty", or "I'll meet you at six thirty seven"?

The point is that when people say they'll do something together, the time they choose then to be short, and some how more memorable. The o'clock on the dot is easiest (and shortest) to remember, then the half hours, the quarter hours, and maybe the five-minutes. So a good time to get food would be a short time before any of the easy to remember times, say 6:25 or 6:40.

If only I had the same sense of understanding of buying practices in the stock market.
No comments

Pimpin' Firefox

Er... yeah.

I use a fairly customized version of Firefox, and since I recently accidentally deleted my profile and had to reset everything, I figured I would document what I do to make Firefox really mine.

There are several layers of things I do. The first resides in the preferences section. I disable everything under advanced Javascript, set the default font to Arial 11px, and use 32 MB for my cache.

Next up are the about:config values. Since I'm almost always connected to a high speed network, wired or not, I turn up the maximum number of connections Firefox can establish. There are things which deal with the delay before submenus pop out as well. The values I change are listed below.
  • browser.tabs.tabMinWidth = 75
  • content.notify.backoffcount = 5
  • network.dns.disableIPv6 = true
  • network.http.pipelining = true
  • network.http.pipelining.maxrequests = 30
  • netowrk.http.proxy.pipelining = rue
  • nglayout.initialpaint.delay = 0
  • plugin.expose_full_path = true
  • ui.submenuDelay = 0
The most advance stuff I do are stored in userChrome.css. This modifies how Firefox looks; whereas Firefox has three different toolbars by default (menus, navigation, and bookmarks), I only have one. Right clicking on a toolbar allows you to customize them, so I have my back and forward buttons, my address bar, and my search bar all up in the menu toolbar, then uncheck the navigation and bookmarks bars for display. The following CSS maximizes the space of the address bar by getting rid of a few menus and minimizing the search.
/* set default namespace to XUL */
@namespace url("");
#go-menu, #bookmarks-menu, #helpMenu, .toolbarbutton-menubutton-dropmarker,
#go-button-stack, .searchbar-engine-button, .search-go-button-stack, #throbber-box {
display:none !important;
#search-container, #searchbar {
max-width:1px !important;
min-width:1px !important;
width:1px !important;
This little snippet of styling gets ride of the History, Bookmarks, and Help menus, the drop down menu button for back and foward, the go button at the right of the address bar, the search engine selection button, the go button at the right of the search box, and finally the "throbber", the thing that "rotates" when the page is loading. That was the first line. The second line sets (what is remaining of) the search box to have a width of 1 - effectively invisible.

Here's the rationale behind all the changes:
  • I can get to history and bookmarks through keyboard shortcuts (ctrl+H and ctrl+B, respectively; ctrl+D bookmarks a page)
  • I don't use the help menu, except to know which version of Firefox I'm using, for which I go to "about:"
  • I press enter to go to an address and do searches
  • I only use Google to do search
  • There is a throbber for each tab already
The minimization of the search bar means I get to see more of the address bar. How do I search then? Well, I have a set of special bookmarks, with keywords assigned to them. They are listed below with the URL in angled brackets and the keyword in parenthesis:
  • Arch Linux (a)
  • Google (g)
  • Google Image Search (i)
  • Google Video Search (v)
  • Merriam-Webster Dictionary (d)
  • Merriam-Webster Thesaurus (t)
  • Wikipedia (w)
Those of us who have used Opera before will know how these work. All I have to do is type "g linux firefox" in the address bar, and Firefox will automatically insert "linux firefox" into the URL of the bookmark and go to the resulting address. Similarly, I can get the Wikipedia Firefox page by doing "w firefox". By doing this, I'm using the address bar as my search bar, together with the ability to change search engines as needed.

Finally, I use a small number of extensions for Firefox. The one I've used for the longest is the Mouse Gesture extension from Optimoz Team. Again something borrowed from Opera, this allows me to go back and forward, reload a page, open and close tabs, duplicate tabs, and go back to my home page with a mouse movement. The gestures I have set up are:
  • D New Blank Tab/Link in New Tab
  • DR Close Document
  • DU Duplicate Tab
  • L Back
  • LR Reload Page
  • R Forward
  • RL Reload Page
  • U Load Homepage
  • UL Previous Tab
  • UR Next Tab
I also disable rocker gestures and turn off diagonal movement, as that makes my gestures harder to perform.

The other two extensions I use are both recent discoveries. Better Gmail 2 from extends the Gmail interface. I particularly like the setting to display message details by default and the extra keyboard shortcuts for labeling messages and going to those labels, although the latter screws up the 'g + c' shortcut to go to Contacts. The last extension is Firebug from Joe Hewitt, which not only duplicates the Javascript Console function in Firefox, but also allows real time editing of HTML, CSS and Javascript, and shows a very useful picture of the position and size of an HTML node is, separating the margin, the padding, the border, and the actual content. In other words, the perfect webpage debugger.

The result of all this customization is I have a version of Firefox which I can call my own.
No comments

iGod: Repenting Made Easy!

I first came across this from a photo on Facebook. Obviously, God is not to be mocked, but still...

Me: Did you create the universe?
God: No I didn't create the universe. What's it like?

Me: God is Christian?
God: I have a lot of Faith in Him, but I never heard He was Christian.


"Note: iGod is meant to be used for fun. A sense of humour [British!] is recommended."
No comments


Since college I've had an obsession with calendars. I guess before that I was more obsessed with keeping records of things I do (chat logs, emails, whatever), and while I still keep those, I'm not as anal about them as I was before.

But calendars, I'm always trying to make mine better. I came across David Seah's compact calendar today, and I thought, wow, how elegant. My calendar has days going down the page, and hours going across, which is not intuitive at all (although of course there's nothing wrong with it; it's just uncommon). Seah's design though, preserves the Sunday-Saturday format and still shows time as one continuous line. It's on a different scale than mine too; mine is in terms of hours, whereas this is in terms of days. Consequently, while I can schedule my hourly activities very well, I sometimes lose track of days. The opposite is probably true for Seah's design.

Another interesting calendar I came across a while back is Yann le Coroller's personal information manager (PIM) design. The scope of a PIM is broader than a simple calendar, expanding to include an address book and all that. My "calendar" also serves as my to do list and birthday reminder, for example, and therefore is a limited PIM. According to Wikipedia, a PIM may also include emails (which I use Thunderbird for), journals (mix of HTML and Bash script), contact information (Gmail; I'm working on consolidating it but Gmail's stubbornly refusing to import my files correctly), news feeds (Google Reader), and even project management (I'm trying to integrate Gantt chart features into my calendar).

Anyway, le Coroller's site seem to be down right now, but I seem to remember there's a a panel which provides different information depending on what you click. Sounds really general, doesn't it. I think the appeal of his design was more in having everything in one place as opposed to the elegance shown in Seah's compact calendar.

I'm striving to do both. I smell another calendar redesign coming up...
No comments

Two Goals in AI

This is just my opinion, and I haven't read anything to support it, but I think most academic fields can be separated in this way two. The two goals are, roughly, theoretical and practical. For AI, the practical is to make computers smarter, while the theoretical is to use computers to better understand humans.

Example: natural language processing (since I'm in the class). Humans clearly do a lot to understand language. There is a lot of stuff that our brain does which no computer can do yet. That doesn't mean people haven't been trying though; things like the knowledge base Cyc, or the Structure Mapping Engine for analogies, or ACT-R the general cognitive architecture, try to really get at how humans do all this stuff we take for granted. But despite all this, it's very difficult to get computers to even understand a news article. The Learning Reader is an attempt in that direction.

On the other hand, there are purely statistical, stochastic methods of understanding language. For example, we might not know exactly what a student in fourth grade would understand, short of creating a model of their entire brain. We could, however, guess by looking at how long the sentences are, how many syllables each word has, and how long the article as a whole is. Notice that this has nothing to do with the meaning, or semantics, of the article, but only some surface properties. Clearly humans don't do this, but a machine which can tell what grade level a piece of text is would be considered "intelligent".

If this divide is seen as two different directions one can take when studying or doing research in computer science, I'm not sure it's clear which side I'm on. I think I lean slightly more towards using computers to understand humans, or more broadly, to understand humans in general. I enjoy simulations of nature more than I enjoy trying to find a proxy for whatever aspect of human reasoning we're trying to mimic.

That said, I won't complain if I got a job in either camp.
No comments


It snowed a lot in Chicago today. I learned a few things
  • Cycling on snow is actually not that bad...
  • long as the snow doesn't do anything to your bike...
  • ...such as it melting and making your seat wet...
  • ...or melting and freezing again to form a, shall we say, "icing" for your seat...
  • ...or freezing on your brakes so there's no friction at all.
I rode my bike to the computer lab, and was forced to walk it back because by the time I left, it had turned to hailing. The last two bullet points actually happened to me.

On the other hand, it snowed! So I can't complain.
No comments

Bugger Blog II

I was setting up a new Gmail account today, and wanted import all my contacts to that new account. To my frustration, Gmail's import/export contacts feature is not working quite right. Currently, each Gmail contact can have multiple emails, which when exported are put into a semicolon separated list. That's great, because it means a simple javascript.split(';') will give an array of all the addresses. The import feature, however, doesn't do that, instead, it thinks the entire list, semicolon included, is one email address, and so I get someone with an address like ";" I can still send emails to that person, but now they'll get multiple copies of it.

I've posted a question to the Gmail Help Dicussion group, but no one has answered me yet.
No comments

I was Shocked

Well, it looks like I have managed to shock my laptop's internal USB hub through ESD with enough voltage to screw it up. In other words, my USB ports are not working.

If anyone has ideas on how to fix this, if it is even fixable, I'm all ears. I'm thinking I'll go down the RadioShack and buy a PCMIA-USB card, which will (hopefully) last me through college. Although, to be honest, I only use the USB ports for my camera and a mouse. I don't use flash drives anymore; I just dump things on servers and access it there, or directly SSH into my laptop. So the lost of the USB port will not ruin my life, it'll just make it a little more inconvenient.

Still... damn.
No comments

A Lesser Speaker Would Say, PROJECTion...

I won't lie, today has been really busy for me. I only had an hour long class, but had six hours of meetings for various groups and projects.
  • At 11:00 was my locomotion research meeting, where we hashed out the basics of a genetic algorithm exercise
  • At 13:00 was my stats project meeting, where we started sorting the large amounts of data we had.
  • At 15:00 was my only class of the day, stats.
  • At 17:00 was my natural language meeting, where we divvied up the coding we have ahead of us
  • At 18:00 was my normal GSW meeting, the last of the quarter.
  • At 21:00 was my design meeting, where we solidified our designs.
And finally, at 01:00 the next day, I'm ready to go to bed.
No comments


Sometimes I think I don't write spontaneously enough, but this might change that.

WALL-E is Disney/Pixar's next film. You can watch the trailer...

... find where the idea of WALL-E came from...

... and then watch this video.


In case you're curious, Courtney originally posted the video on this blog post.
No comments

Ex Nihilo

The Latin phrase ex nihilo is probably most commonly seen in theology debates or some kind of highly theoretical science, maybe particle physics, where things just appear out of nowhere: creatio ex nihilo, or "creation out of nothing". Although religion touches on some of the subjects below, I would like to talk about the idea of something out of nothing in a broader sense.

Without me realizing it, several of my interests and ideas have revolved around the creation of something out of nothing. I don't know where this interest started; perhaps the pursuit of the "why" in science will always end with the, for the lack of a better term, "first cause" of the phenomenon under study. Since I don't have a phenomenon to call my own, my interests have lead me to several of these points.

The first one, as I mentioned already, is the theological and physical beginning of the universe. I am of course more inclined to say that it was a big bang than six days of creation, but to be honest I don't think either can properly account for stopping the infinity regression of causes. Then again, I don't have much training in either fields of theology or physics, so this more "famous" of creatio ex nihilo is the one I know the least about.

This next one is more in my field. A while back I had talked about a theory of learning called cased-based reasoning. As I said, I like the theory, but there remains the caveat of the one original rule we generalize from. Somehow in newborn babies there is a first an initial case from which all other problems can be mapped down to, so sort of "superclass" of problems from which all problems inherit. I'm personally of the opinion that it's not so much a case which babies have, but the ability to make causal connections between events. How it works I have no clue, but once that is down it seems the "babies as tiny scientists" metaphor works really well.

If my professors read this they'll probably call me naive. Heh.

My last example of ex nihilo is the one I find most interesting. For case-based reasoning and the ontological beginning of the universe, there is a direct chain going from the present to the first cause. That is, the first cause is thought of as the same material as what is observed. There is a field, however, where this is not the case: the field of complex systems.

I know, that's a buzz word nowadays, but it really is fascinating. The thing with emergence is that you can't see what will happen just based on knowing what is going on now. The interactions between the different "agents" are just too complex, even if the rules it follows are simple. The most famous and one of the simplest examples of this is Conway's Game of Life (a demo here; requires Java). Even if you know all the rules (of which there is only 2 or 3, depending on how you phrase it), you'll be surprised by how the pattern develops. A simple search on Google will give you lots of patterns to try out.

There are other fun examples hosted at Northwestern's Center for Connected Learning, but the thing I'm interested in is not there. I don't think any one has ever modeled it, either, because it would be quite a breakthrough. My question is, how do societies form?

This has of course been debated by philosophers, anthropologists, sociologists, and a whole bunch of other -ists and -ers before. I'm particularly interested in the development of altruism between individuals, when one would give up something "for the greater good". There seems to be intelligence involved, but how much? Is the symbiotic relationships we see in nature related? Does simple altruism eventually but deterministically lead to morals and law and order? There are a lot of theories, but I would love to see a computer model of the evolution of morals.

How does this tie into ex nihilo? Well, the product created in this case are the human moral values. In some sense, it seems to come out of no where, developed all of a sudden when we become "humans" and not "animals". Animals didn't have morals before, and suddenly boom, humans know not to kill each other, or to steal from each other, or even (gasp) to be polite.

Voila, creatio ex nihilo.
No comments

Week of 2007-11-19

The good thing was that I only had two days of classes this week. The bad thing is that I had whole days with nothing to do. So, what I actually did...
  • Watched Cars. It was interesting how Pixar used the wheels as the limbs. I'm not really sure how cars can move their wheels like that (granted, the wheels didn't turn into roller blades or guns or anything like that a la Transformers).
  • Coded up half a genetic programming engine. I'm stuck on how to select a random subtree for crossover and mutation (by headless chicken crossover... I'm serious!). I found a site with a GP implementation in C, and I might steal some ideas there.
  • Wrote 4 lines of a sonnet.
  • Read A Theory of Fun.
  • Hunted down squirrels and Kurt Vonnegut.
It was fun.
No comments

Real World Problem Solving

I had written before about how programmers often use existing solutions and implement it digitally for some cause. A few weeks ago in my design class we had a guest lecture on designing for the environment. One of the things the lecturer said (one of the two things I wrote down) was that the current model of production uses the cost of extraction in calculating the price of the product. For example, paper is priced by the cost it takes to cut down the trees, transport it to the factory, and turn it into paper. Similarly, oil is priced by how hard it was to take it out of the ground.

The lecturer suggested instead that products should be priced by the cost of replacement. The cost of extraction would count, yes, but we should also be paying for what happens to the product after we are done, when we throw it out. Also included in the cost of replacement is what we are going to do with the now bare extraction area. The cost of office paper, therefore, would include not only those things mentioned above, but also the cost of recycling (either into paper again or into cardboard, which is technically "down-cycling"), the cost of it being transported to the landfill, and the cost of raising a tree to replace the tree which was cut, all the way to the point where we can use that tree to make paper again.

Obviously, this would make the price of paper exorbitant, but then again we've been getting away cheap for using all of earth's resources for the past... 4000 years, probably. I don't think the problem is with humanity's need to exploit, but as the lecturer pointed out, it has to do with how far we're looking when we exploit. All animals exploit, although of course not on the same scale, but humans have the ability to look ahead and predict what will happen. The problem is that the companies doing the extraction, the production, are not looking far enough ahead. When we exploit, we want to keep exploiting. Companies may look 10, maybe at most 50 years in the future, but that is not long at all on the time scale of, say, oil production. For paper and trees it is barely enough. Which is why I think there will be a huge crisis in the next century or so, in terms of how we get our energy, and how we think about the environment.

Interestingly, I found a current case where the cost of production is the same as the cost of replacement: programming. Computer programmers often have to worry about memory, not just how much of it we're using, but also whether we're "wasting" it by asking for it and not using it. In C and C++, if we use memory and don't return it, we call it a "memory leak". This doesn't happen with more recent languages, which have automatic "garbage collectors". However, we still have to worry about using too much memory, because garbage collection is a slow process, and will take up CPU cycles. To prevent this, people try to do what we call "garbage avoidance".

See the parallel? Although the waste in computer science is not physical, it is considered in the stages of "production" (creating some internal structure in the program) so that after the "lifetime" of the product is over (that structure is not needed anymore) the "resource" is cheaply replaced, or is used to create another "product". Upon reflection it makes sense: computer memory and programs which use that memory form a closed system, and therefore the user must be careful not to over-exploit memory or other types of "resource". Similarly, oil, trees, etc. are all resources in a closed system (earth), and we as users of these resources need to start worrying about replenishing it, so that we won't find we have none left when it is most needed.
No comments

The Fun in Games

I've always liked text based adventure games, even though I haven't played a lot of them. I was looking at Inform engine the other day, a MUD development environment, and was side tracked to Emily Short's webpage. One of her recent blog posts was a review of Raph Koster's A Theory of Fun for Game Design. I found that there's a foreword by Will Wright (the creator of SimCity, the Sims, and the still-in-production Spore), and I thought about buying the book. Instead, I realized the university library has a copy, and I went and got that instead.

The book is very informal, which could be either good or bad depending on your background. It's also not too thick and has relatively large font, so I was done within 3 hours. Although overall the book seems to talk about the place of games in culture and art, I found some of the diversions more interesting.

In particular, Koster postulates that the fun in games comes from trying to figure out how to beat the game. Once we know how to win, and can win decisively every time we play, then the game ceases to be fun. In this sense, games are destined to be boring, and the designer of games have to deal with that. In other words (my own), the replay value of the game requires the player to do things differently, which is more commonly observed as diverging story lines, since players (of an RPG, say) rarely choose a different character to play with. The point behind this example is that, once you've learned something you can't go back and learn it again, no matter how much you've enjoyed the process.

I was thinking that this only works if the game has a goal. Of course, it's hard to imagine games without goals (which are perhaps more appropriately called "toys"), but at least one game designer has always tried to do that: Will Wright. There are no strictly defined goals in the Sims. We could try to advance the career as much as possible, or to get as many friends as possible, or try to get the Sims to kill each other. The "goal" in the Sims is therefore created by the player. In Will Wright's words, the point of his games is to "take the player out of the protagonist of Luke Skywalker, and put them in the world of George Lucas."

I'll give one of my own examples of creating goals in games. Back in the days I played Populous: The Beginning, an RTS game. The first level was easy: all you have to do is build a few huts, train a few warriors, cast a spell to connect your island to the enemy's island, and blow them to bits. It was meant to be a tutorial, and so it took all of 15 minutes to finish. After beating the game, I went back to this level, and spent on enormous amount of time on it. What did I do? I built as many houses as I can, got as many villagers as possible, and then cast spells to turn the planet of mostly water into one with mostly land. It might seem boring in retrospect, but I had a great time doing it. This is what I mean: the goal of the game is just to conquer the system of planets, but when players create their own goal, no matter how trivial or uninteresting it may seem, in the end the player has fun.

I thought I would end with a quote from the Koster's book. It's about how game is one of many types of media in today's society, and how while the other types have gone on to become (at least partially) art, games are still lagging behind. Koster offers this explanation: "because all art entails posing questions and puzzles - tough ones, ethical ones even. And games will never be mature a long as designers create them with complete answers to their puzzles in mind."
No comments

In the Beginning... was the Command Line

Thanksgiving in a dorm room for the third year in a row. It's not that bad, actually. My family has never celebrated Thanksgiving, so in a way I don't know what I miss. I like Thanksgiving only because I get time to do what I want.

Today it was reading cyberpunk fiction, so I Googled it, and found this little article, "In the Beginning... was the Command Line." I read it first without the commentary, but they do add a needed update on the state of the art. It's an interesting read, starting with command lines but drawing in a lot of cultural stuff as well. I'm not sure I buy all of what the author is saying, but it was food for thought.

Afterwards I found the author on Wikipedia, and found that he is now an OS X fan. Hah.
No comments

ToA Constructor

Now that I know what my natural language processing project is, I should also say what the professor had mentioned in passing but which we won't be working on. I had nicknamed it the ToA Constructor, or Taxonomy of Argument Constructor.

It works like this. Say you are debating an issue, for example "The US government should adopt universal health care." As a suggested policy of sorts, there are many arguments for and against that statement. The ToA Constructor is a tool which will help you search for different arguments which attack the motion from different directions.

Looking at arguments more globally, we can say that policies can be generally separated into two parts: the means and the end. The (implied) end in this case is to ensure the health of citizens, and the means is for the government to pay for health care through taxes or other means. Each of these two areas could be further dissected to reveal different types of supports and rebuttals.

Take the means for example. We could attack the proposal for universal health care to say that it won't actually lead to better health, or that it is too expensive, or that it won't pass congress. All these are against the proposal, but in different ways. The first one is saying that the means does not lead to the end, the second is saying that the end does not justify the means, and the third is saying that the circumstances will not allow the means to take place.

A similar deconstruction could be used for the end, to say that the benefits are too low, or that it does not help the entire nation equally. I'm sure if I take the time to examine many different motions, I will find a lot more points of attack. Notice that these points do not only apply to universal health care, but actually highlight how arguments are constructed in general, and where attacks against that argument could attach themselves.

Finally, under each of these different areas of attack, there will be examples, analogies, parallels from other countries, etc. that will support that attack. My original vision of the ToA constructor is just to apply these points of attack to the specific topic, but after that it could be extended to look at examples as well.

I did some research before I found out I won't be working on this. I was surprised that this kind of taxonomy does not already exist. I didn't find a single document which talks about how arguments are constructed, and which tries to exhaustively list ways of attacking the structure of the argument. I feel like this would be a great help to any type of debate, whether at collegiate level or in actual politics. Maybe some of you readers can point me to a good book on this topic?
No comments


For some reason I kinda like the genre of cyberpunk. I haven't read a lot of literature or watched a lot of movies in the area, but I like the idea. The film the Matrix, the anime series Ghost in a Shell, books like the Neuromancer, all fall in this category. In my (perhaps misinformed) opinion, cyberpunk says something philosophical about humans in a world of machines and telecommunications.

I had a thought about that today. I had written about PostSecret before; recently my dorm did a similar event, with residents writing on cards and the cards being posted in our lobby. I would like to share some of them:
  • I eavesdrop constantly and I don't feel bad about it.
  • I almost cheated on my girlfriend on Thanksgiving.
  • I'm scared I will never be loved or love someone. I (heart) u.
  • I'm afraid I'm actually a terrible person inside.
  • I just found out that I have HIV. I've been having unprotected sex for a year. I still haven't told my girlfriend.
Not all the secrets are sobering, of course. But I look at the cards, and besides wondering who wrote these words, I also wonder why people are so compelled to keep secrets and then let them out anonymously like that. It's sort of the same thing with the internet, of course: anonymity behind statements. Some people say it allows them to be judged by their inner qualities, as opposed to their physical appearance.

I think the fact that people post secrets like this shows the world is lacking deeper human connections.
No comments

Comfortable Silence Person

Although I'm taking a break from my personal journal, I still write in it occasionally, albeit a lot less frequently than before. I was trying to describe the habit of a friend of mine, who would try to get conversations going by saying "anyway" or "so, what's up", even if we have already been chatting for the past ten minutes. I then thought to myself, "not a comfortable silence person huh."

I think I first heard of the phrase from Facebook, when another friend join a group which relates to that. It's interesting how many people feel the need to fill the silence of the room. Perhaps to them silence seems unacceptable. Maybe the very idea of friendship means people should be able to just talk and talk and never get bored of that person.

My ideal friendship (or I guess relationship too) is exact opposite: when you don't need to talk and they understand. I don't have any problems with looking at the ceiling even when it's just me and someone else, even if I don't know that person particularly well. With strangers, of course, it's different, but in that case silence if probably even more acceptable than endless chatter.

I guess that makes me a comfortable silence person.
No comments

I'm Shy, Not Antisocial

I know I'm behind. Let's call this the post for yesterday, and I'll write again later tonight.

I would like to introduce you all to the blog PostSecret. I heard about the site a while back, but it was more recently brought to my attention in a Daily Northwestern article.

I really doubt that all the secrets are real, but I agree with the creator of the site that it doesn't really matter. I think as long as the postcards generate the desired effect - an understanding that we are not alone in the world, that other people are going through the same things - then it doesn't really matter if the secrets are real. Instead of applauding the sender for telling us their secret, we would instead be applauding them for phrasing an idea, an event so eloquently.

I read the site mostly for the pretense of familiarity. I'm afraid that I don't know anyone very well anymore, and that site gives me the feeling of being able to get to someone's heart. I haven't been reading the site for long, but these are my two favorite quotes:
  • "I want to tell you that i love you, but I'm afraid of the silence that might follow."
  • "I am afraid that the person I would love and myself will never meet, since we would both be too introverted to introduce ourselves."
It gives me the same feeling as (the alt text of) this comic from xkcd, which is also where I got the title for this post (and my shirt) from.
No comments

Week of 2007-11-12

Pretty good week.
  • Decided on a project for stats: we're going to mine CTECs and do inference on students' rating of professors. I do wonder what we'll find...
  • Also got my topic for my natural language processing project: trying to differentiate between different points of view. For example, a single event (say, SCO suing Novell, IBM and Red Hat) might elicit different responses from people in computer science and people in law, finance, and political history. The job of this program is to find documents describing a different point of view given a single event (or document describing the event).
  • Watched a pretty good documentary, NOVA's "Judgment Day: Intelligent Design on Trial". The video is online on PBS's site, if anyone want to check it out. It's about the Dover trial on teaching intelligent design in public schools.
  • Watched the final part of a catapult competition, where people have to catapult ten ping pong balls into ten cups from eight feet away. The professors' catapult was the best, getting 40%, but of course they didn't win anything.
  • Visited the Shedd again, this time got to see some of the behind the scenes stuff. I also didn't realize they had several Gentoo penguins the last time I was there. Working as an animal trainer must be a pretty nice job, similar to being a college professor: you won't get into it unless you are really into that topic.
  • Condensed my locomotion code. Only a few things feel as good as cutting the number of files in half, and making the code more robust.
That's it for now.
No comments

The Labyrinth Called Tech

I thought I should show you around the "home" of most of my classes for my college career, Northwestern University's Technological Institute. Among one of the academic buildings with the most floor area, numerous graduate students have gotten lost inside, starved to death, and to this day still haunts the hallways at the dead of night...


But I really won't be surprised if people have gotten lost for over 15 minutes in the building. Consider what would happen, for example, if you walked through the following doors:

The first one is a door from the 4th floor to the fifth floor, and it just hangs above the turn in the staircase. I believe it is just outside L552, but it could be on the other side too. The second photo was taken from the third floor of Ford, meaning the door is on the second floor of the G wing, right about where G225 is.

Which of course, means that they're not the same door, which means Tech has multiple doorways which lead to nowhere.

By now, if you followed the links in the paragraph above, you'll realize that there are maps of the building online, and specifically a room finder to help you find the room. There is also an interactive version of the map in the lobby of Tech, maps of the building with room numbers on the second floor outside the McCormick offices (L269), and directions to each wing and the rooms on that floor at every intersection of the hallways. The directions, by the way, are wrong for one room, MG28. The map shows it tucked away in one corner, but the arrows will point you into the M wing corridor.

Yes, this building has wings. Further examination of the maps will also show that it leads to 7 other buildings through bridges. There are also supposed to be air vents which go all the way down to the main library and back, and have been mapped out by a friend of mine. I have not, unfortunately, explored them.

Besides the sheer expanse of the (connected) building(s) though, the rooms in Tech are actually fairly logically numbered... if you can find the pattern. The map of the ground floor shows each wing clearly labeled, going from A to N but skipping I and J. I don't know why they skipped J (I always thought there was a J wing until now), but I suspect skipping I has to do with the room numbering system. Each room has a four character tag. The first character is the wing, the second character the floor, the the last two characters the room number within that area. If I had been used, it would look too similar to a 1 and therefore confuse people.

For the outer wings, there are no specific room numbering system that I know of. For the center two wings (L and M) though, the rooms actually ingeniously numbered. If you know the system, you can just say where a room is without ever having noticed it before. The pattern goes like this:
  • The L and M wings divide the building evenly into two halves, on a line running north-south through the center of the building.
  • For these two wings, the room numbers start at 10 and go up to 90 (I think; I never exhaustively checked this).
  • All the odd numbered rooms are on the inside, all the even numbered rooms are on the outside. That is, if you were going counter-clockwise around the building, MG32 would be on your left and MG33 would be on your right.
  • The room numbers run in increasing order counter-clockwise from where the wing starts. Therefore, MG10 is at the northern tip of the wing, MG55 is at the dead center, and MG90 is at the opposite end.
Notice that the third rule above makes the hallways of Tech more like roads than corridors, with the odds on one side and the evens on the other.

With these few rules, you can easily pinpoint where a room should be within the main corridors of Tech, which I have done with more than a few students (freshmen!) and visiting parents/scholars. Hopefully it will prevent you from being lost in Tech as well.
No comments

Playing for the Greater Good

The website was launched only a month and some ago, aiming to provide food for the hungry. The way it works is, when you go to the site and play the vocabulary game, the site earns money through its banner ads. When you get a question right, some of that money will be directed to the UN to buy food. Besides being charity (which is not too powerful a motivator), the site draws visitors because it helps people learn new words, and people can boast about how many grains they raised and what vocab level they're at.

After playing for a while (and donating 600+ grains of rice, at an average vocab level of 32-34 out of 50), I thought about the structure and purpose of the site, and found it similar to Google's Image Labeler. The Labeler is another web based game, this time with the purpose of correctly labeling items which appears in images in Google's database. This time, the motivation for visitors is only the points you get for playing the game, the top ten or so of which is listed on the front page.

The similarity between these two sites is obviously, but somewhat hard to define. It's a high level concept, that both sites are somehow transforming an otherwise boring activity into a game, which people will spontaneously play. They are taking advantage of human nature and social dynamics to push forward a different goal, whether it's a global hunger campaign or simply for that company's benefit.

There are of course other examples of sites using social dynamics to further a cause. Example: the many Facebook Darfur groups that say for every so many members they will donate some money. Google recently had a DonorsChoose event, where netizens can challenge the readers of their blogs and websites to fund teachers with their classroom needs. There was also Blog Action Day, where bloggers take one day to reflect on environmental issues. On the political side, this year presidential candidates have used Facebook, Youtube, and other social websites to help with their campaign as well, although of course their cause is not as, say we say, universal as Darfur and world hunger.

If we look at this from a wider perspective, these ideas are good because it is taking advantage of what is otherwise wasted energy and finding a use for it. If there is no, or no Darfur Facebook group, we would probably still be on Facebook or the internet checking up on our friends and doing other mundane things. Instead of letting us procrastinate aimlessly, these sites give a cause for us to be on the internet (and make us feel better about not working).

Examples of turning waste into resource is actually a common theme in engineering. Ideas about using the greenhouse effect as a wind turbine, tidal power plants, these are all using what is otherwise wasted energy to do some work (in the physics sense of the word). In the vocabulary of green (environmental) engineering, these ideas are taking the natural system dynamics into account, so they don't have to do any extra work.

I will leave you with one last example. I'm sure as netizens you've all experienced CAPTCHAs, the combination of letters and numbers you have to type to verify to a website that you are human. There is a project called reCAPTCHA, which uses scanned words from books as the image shown to you. This way, users of the website is not only identifying themselves as human, but also helping the digitalization of books. Clever huh?
No comments


My Moleskine notebook, which I've only been using for a few months, is starting to break. The bottom of the spine is broken off on one side, and it will probably continue.

I can't really say whether it's bad manufacturing, or if it's because I stuff it in my pockets too roughly. But I mean, if I don't keep my notebook in my pocket, where should I keep it? I don't always have a backpack with me.

I'm thinking next time I'll use those set-of-3 cahiers instead of one single hardcover notebook; it would probably last better for the "rough" treatment I put it through.

On the other hand, has anyone tried the new paperback notebooks? Are they any good?
No comments

One Hand Keyboard

A while (a long while) back I was reading xkcd's blog post, and while some of the comments were interesting, I had my own take to it. My idea is to just use 9 keys, say, WERSDFXCV, as the keypad, and type as you would on a cellphone.

There are several advantages to this over the mirrored keyboard. One is that there is no new mapping to learn; everyone (well, everyone with a cell phone) would know the configuration. The second advantage is that there would be less finger movements for each word, which (like the last point) amounts to the system being easier to learn. In the mirrored keyboard, each key still only has one letter, so your fingers have to move over the keyboard more. With the text messaging keyboard, each key represents 3 or 4 letters, so only a few fingers have to move, and only one row at a time.

I forgot to mention that this system has to be used with a word list and a regex search, as mentioned in the xkcd post. On normal phones you have to press a key several times, which adds up to a lot more key presses after a while. It would be much better if you press each key only once, having each "number" stored in a buffer, and on word separating keys (spaces, commas, periods, etc.) the system would flush the buffer by matching each key with the possible letters, and extract out the word you meant.

For those who are not comfortable at all with their left hands, this can even be changed to a right hand dominant configuration. Instead of turning certain keys into the num pad, you use the mouse instead. Your left hand would simply be holding down a special combination of keys - say, control-shift-alt - and you would move your mouse in the direction of that number. 1 would be upper left, 2 straight up, 3 upper right, and so on. 5 would be clicking the left mouse button. This is similar to mouse gestures for Opera and Firefox, and could also use the same configuration button of the right click as the special key, so the left hand doesn't need to be on the keyboard at all.

The are two disadvantages I see in this system, ignoring the mouse gesture variation for now. One: there is no way to get punctuation in. This is a pain on cell phones, and I don't see a quick way for doing that. Not even a regex search would help, since the computer will need to know the context and meaning of what you're saying to determine which punctuation to use. The second flaw is that the regex search for words is inaccurate, and for small words will often require a choice. For example, both "bake" and "cake" use the keys 2-2-5-3. Again, this cannot be solved without the software knowing more about what you're writing about.

Personally, I just move my right hand off my mouse and type normally.
1 comment

What The ____?

I don't get it: why do people bother to blank out swearing in songs? The song which brought this thought on was Linkin Park's Bleed It Out, which has two blanked parts, I think. I mean, it's not like you don't know it's there, since there's this conspicuous silence from the singer's track at that point. The fact that it is blanked seems to suggest that the word is only offensive if you hear it, but as long as you don't hear it (but know it's there), it's fine.

Seems very irrational to me. The better way of going that is to dub over it, like some movies do. But of course then the song probably wouldn't make much sense.
No comments

This Is MADness

We were talking about mutual assured destruction (MAD) the other day, and the thought just occurred to me. Can MAD be used to argue for nuclear proliferation?

I mean, the whole theory rests of the fear of retaliation from the other country, and that no matter what the offending country does, it cannot completely destroy its enemy's ability to strike back. For the defending country, this means it needs to ensure its weapons will not be easily destroyed. And what easier way to do this than to make multiple nuclear warheads, and hide them in different places around the country? The larger the nuclear arsenal, the larger the threat of retaliation, the more MAD applies.

As for actual proliferation, countries without nuclear weapons will feel insecure against countries with nuclear power, and therefore will want to have nuclear weapons.

Of course, that's the equivalent of having a nuclear arms war, but MAD doesn't say anything about that. In the words of one of my design books, the safety in MAD is only circumstantial to the situation, but not inherent. It is in some sense a dynamic equilibrium; only when both countries have nuclear warheads will MAD work.

Which, to be honest, makes MAD look a little, well, mad.
No comments

Week of 2007-11-05

This week has not been quite as exciting as the last, with trips to the Shedd and what not. I did have a midterm for stats, for which I didn't study too much, and didn't get too bad a grade. My psych midterm I had a while back turned out okay, too, although slightly less "okay" than my stats one.

So I guess my most interesting thing for the week was my teleconference with the clients for our interactive oceanarium project. I've mentioned dolphins in relation to this project several times, but I never explained what it is. I thought now would be a good time to talk about a more, shall we say, exciting part of my life.

Our task for this quarter and the next is to design something which will allow humans to interact, in some way, with captive dolphins and whales in an aquarium. The original idea was to have a remote controlled submarine that the aquarium personnel can control, and perhaps given to visitors under supervision. That was what we started off with, and we got to do a lot of research, as well as observe dolphins and beluga whales.

I'll tell you one thing: I have gone whale spotting before, in Alaska and Australia, but I have not been too close to a whale. You're on a boat, after all, and the whale can easily rock the boat by charging it. And there's probably some international law about approaching whales. So the closest you ever get is maybe 100 metres, probably more than that. At an aquarium though, that's different. I got within ten feet of the beluga whales, and I can tell you it's pretty amazing. The whales themselves are longer than that distance, and they weight at least five times more than I do. Belugas are cute though; their skin/blubber looks really soft. It is, essentially, a giant stuffed toy.

The dolphins (specifically, Pacific white-sided dolphins) are another story. They are much more athletic than the beluga whales, very quickly swimming circles around their tank, occasionally breaking the surface for a breathe then diving down again. I was surprised by how fast they were; standing on the other side of the 3 inch thick class, they just zoomed by so quickly I can't follow them with a video camera. The dolphins also looked cooler, with the white stripes along their gray body.

Seeing the animals was a nice experience, but I also got the impression that the tank was not nearly large enough. Even though it is much bigger than regulation standards, the dolphins were still simply doing circles around the tank. There was occasional variations, like sinking deeper or doing a wider circle, but it was still laps around the pool. I feel sorry for the beluga whales, whose tank is really small. It's kind of boring too, being surrounded by walls and glass for 24 hours a day.

To help make the whales' and dolphins' lives better, our project is to make "toys" for them, so to speak. There is a lot of potential in toys which take advantage of their sense of echolocation, and it's strange that not many toys have been designed that way before. Ideally, it would be cool if the toys could allow the dolphins to interact with humans as well. There is a sense of this new device allowing people to really feel that dolphins are intelligent, that dolphins are sentient. I don't know how well this goal will be fulfilled, but for someone interested in the phenomenon of intelligence in general, it is fascinating to be learning so much about another intelligent species.

As I've said in one of my speeches, it's like working on a Facebook to connect dolphins and humans.
No comments

Office (Personal) Space

I came across this cool little table a few days ago:

I don't know whether it would actually help with privacy or concentration, but it would definitely make for a very stylish office. Although, my first thought on seeing the screens is that it could easily be used as a theater as well. I mean, if the screens change anyway, I'm guess you can put anything you want on them. With the screens spread out into a hemisphere, you would have your own IMAX Dome theater. Which would be absolutely awesome.

Wouldn't be quite so awesome if your boss caught you with that. I wonder if you can get the image on the outside to be different from the image on the inside?
No comments

The Turing Test and Proxies for Intelligence

In my language class, we have been talking about how to get at some abstract properties of language, such as the reading level of a document or the level of technical detail, and what shortcuts we can take to find these properties without needing the machine to fully understand natural language. These shortcuts are usually in the form of proxies, something which "speaks" for something else. For example, the amount of latin words in a document might be a good approximation of the level of technical detail in it. Certainly, it is not a perfect approximation (or it would be called a "calculation"), but it's a much cheaper and easier way of getting an answer, especially when compared to building a full language parser with knowledge base.

Then halfway through all this stuff, I realized something: that the Turing test is actually using conversation as a proxy for intelligence.

Isn't that interesting? Normally when I think of the Turing test, I think about the machine fooling humans, Eliza, sentence substitution, etc. Somehow in talking about Turing test I forget that it was supposed to be a test of intelligence for machines. Looking at the Turing test as an estimation of intelligence immediately raises an obvious question: is it a good estimation? How well does the Turing test actually represent intelligent behavior?

Then again, what is intelligence? As you might have guessed, the definition of intelligence has been in debate for a long time. For example, the following definition was signed by 52 intelligence workers:
a very general mental capability that, among other things, involves the ability to reason, plan, solve problems, think abstractly, comprehend complex ideas, learn quickly and learn from experience. It is not merely book learning, a narrow academic skill, or test-taking smarts. Rather, it reflects a broader and deeper capability for comprehending our surroundings—"catching on", "making sense" of things, or "figuring out" what to do.
That definition, however, seems to say more about what intelligence is not than what it is.

Of course, the reason we have the Turing test in the first place is because intelligence is an extremely slippery creature to catch. No one can really define what intelligence is, and it's even harder to measure it. While the Turing test using conversations as a proxy, there are other proxies as well which are in use.

Example: the SATs. Even though now the letters don't stand for anything (according to Wikipedia), at one point it was supposed to test for the intelligence of its takers. The question is, how well does questions of analogy, math, reading, and writing serve as proxies for intelligence? The SATs do not seem to fit any of the capabilities ("among other things") as defined above, maybe except the ability to reason.

Another commonly mentioned proxy for intelligence is the Intelligence Quotient, or IQ. Again, simply because it claims to measure intelligence, it has a considerable amount of criticism against it. I have never taken an IQ test before, and so cannot sat anything about the fields it covers. It would seem to me, however, that any sort of test which can be administrated in any fashion would neglect some form of intelligence found in the real world.

I don't know if any of language, SATs, or IQ are good proxies for intelligence. I personally think that intelligence has to observing the environment, learning to adapt to it, and applying knowledge to affect the world. I don't think this is any more specific or scientifically testable than the definition above though.

I dare say I am not intelligent enough to think of a better definition.
1 comment

Batch Writing

A while back I posted about how I sit and write multiple posts at once. I just realized that it's actually equivalent to me batch processing my posts. It's somewhat more efficient, which is cool.

I still do that, by the way, but I don't publish them immediately.

Speaking of blogging, I've decided to take my first break from my personal journal since I started it five and a half years ago. I don't have the time and brain power to write that much right now. As a result, I suppose posts on here might get a tad bit more personal. Just a tad. A picotad.


Hope you don't mind.
No comments

Comparative Vocabulary

Here's a fun one. Below is a list of my percentage certainty when I say some phrases. Imagine each phrase being inserted into the following sentence:
"I _________ this is true"
Possible phrases include:
  • am absolutely certain = 99%
  • am certain = 95%
  • know = 87%
  • am sure = 85%
  • am pretty sure = 80%
  • am positive = 75%
  • believe = 70%
  • think = 65%
  • feel like = 60%
  • am guessing = 60%
  • have no clue = 50%
Note that the percentages are not the probability of that thing being true; it is how sure I am of it being true. Unfortunately, there are some things which just aren't true even if I believe it with all my heart.
No comments

Calendar v2007.11.06

I finished revamping my calendar today. The idea has been out for a while, but I only recently got around to designing and coding the interface. I think the code is actually cleaner than what I started out with, despite having multiple extra rows that I didn't have before. The reason for that is I switched almost completely to ID based element selection, as opposed to my previous method of using long chains of firstChild.lastChild's. If you use Firefox's DOM Inspector (installed by default on Mac and Linux, optional on Windows; if you don't have it you have to completely reinstall Firefox), you can see that most of the high up elements have IDs and at least one class. This made both the CSS and the code a lot cleaner.

Functionally, the big difference is where all the tasks are shown. Before, the tasks for a day are simply listed in the mouse over pop up for the date. Then all the to-do items for the coming week are also shown in the Agenda pop up, found in the lower left corner of the page. Any over due items are listed there as well.

This normally works great, except when I have to combine normal events with the tasks. For example, if you go to 2007-11-05 through the Date Selector (top left corner), you can see that I had a midterm on that day. What would have taken a while to notice (if at all) in the old calendar is that I have four things due the next day. So, I could either go hiking and study over the weekend, or I could study and do homework. If I just saw the calendar, and didn't realize I have homework due the next day, I would probably have gone hiking. But knowing that I have work to do, and four pieces of them no less, I would probably have opted to finish (at least some of) it over the weekend.

That's the main advantage of showing to-do tasks visually. A side benefit is that the date column is now very clean, only being a different color if there really is a special event, or a conflict, or if I deleted something on that date (look at Thanksgiving).

I'm not too happy with the color of the near-black to-do reminders, but I could not find another color for it to work. By that, I mean I can't find another color as defined by the Tango project; that's the only reason these colors go together so well in the first place.
No comments

The Future

Minority Report has been on my mind lately, probably because of that Engadget post about motion controlled computers. Here's what it looks like in the movie. My thought on it, by the way, is that the detection anchor should be mounted on the torso, so only the movement of the hands relative to the body are counted, but not the entire person walking. Alternatively, maybe there can be some sort of face recognition, so the system can calculate where the eyes are and use that vector to determine which object to move.

Anyway, thinking about Minority Report led me to other time discrepancy movies, like The Lake House, which ended with a discussion between my friends about whether the movie can be fitted into the physics understanding of time. Our conclusion was that it can't, for reasons I don't really feel like going into.

A more interesting movie though, which I think has more implications for time "travel" of sorts, is The Jacket. For most things, The Jacket has a more consistent overall timeline than The Lake House does. All the information Adrian Brody's character needed he got from the future, from the person he then went back and told that same information to. Which, although circular, only results in one timeline.

The interesting part of the movie is how he "changed the future" through his actions. In theory this is the same thing as what happened in The Lake House: some information was sent back to the past, which changed the future. The reason why The Lake House causes problems is that we don't only follow one character, but two characters whose past doesn't change. Sandra Bullock's character first experiences the car crash, then tells Keanu Reeves' character about it, which eventually leads to the crash not happening. But then what happened to the memory of the crash? It remains, and here lies the dilemma: you can't have a memory of something which didn't happen.

How did The Jacket get around that? Simple: Kiera Knightney's character didn't keep the memory. After the future is changed, she does not have any memories of what happened before at all. Instead, we see her starting afresh, at the same location as where we first saw her in the future. Hence you can say that the future was sent down another branch entirely, not kept on the same branch but changed the middle.

What about Adrian Brody's memory? Well, the film never actually shows his time line past his death. It is not the case that these two time lines meet, but that his was cut into pieces, and a few of these pieces were placed in the future. Therefore, when he is in the future, he does not have knowledge of what happened to him in the "past" (that is, after he was pulled out of the morgue drawer for that particular trip). Which, again, allows the film to maintain internal consistency.

So that's one reason why I like The Jacket more. And I suppose I should credit my attraction to random and slightly awkward romances.
No comments