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 "abc@example.com; def@example.com" 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

WALL-E

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.

:D

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

Cyberpunk

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...

No.

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 FreeRice.com 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 FreeRice.com, 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

No-Skine

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:

http://www.engadget.com/2007/11/02/eclipse-office-partitioning-system-concept-adds-privacy-to-the-w/

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

Food and Emotion

Yesterday wasn't too good a day for the most part, which is why I deferred posting until now. Things got better after dinner, when I somehow ended up drinking chocolate milk, getting a chocolate chip cookie from the hot cookie bar, and getting another cup of hot cocoa after that. Maybe it was just enough to get me high on serotonin and enjoy the slight aphrodisiac effects of chocolate.

What's interesting for me is that I didn't consciously reach for all the chocolate. the chocolate milk and the cookie were more coincidences, as the thing I was really looking for was not there. I did get hot cocoa by choice, because I didn't want honey water but still wanted something hot. Now I know that chocolate can cheer me up... which I should have known considering my familiarity with Harry Potter.

Another food which I know has a physiological effect on me is coke. Not the drug, the soft drink. Pepsi is usually more potent, but Coke also serves to keep me awake. Coffee for some reason doesn't work for me, so when I have to stay up late, I always drink coke instead. Not very healthy, is it.

I'm not sure if this is related to physiology, but at other times I would suddenly crave a certain taste. I would suddenly want salty or sugary foods, and occasionally something with vinegar (or some kind of weak acid, e.g. lemons with critic acid) in it. I haven't noticed any effects from these cravings, but it's strange how I would have have a desire for a such a broad category of objects.
No comments

Week of 2007-10-29

This has been a pretty good week, considering I didn't have any midterms and large projects due. That's one less of both compared to last week... I've also had some time to mess around. Here's a summary of what I did this week
  • I played with some Compiz/GL Desktop effects on Xubuntu. When I have time (read: after this quarter ends), I'll reformat my hard disk to triple boot Arch, Xubuntu 7.10, and Windows. I'm most looking forward to the fire effects... not that I'll be spending much time on that system, but it's a cool showcase. From the ten minutes I've run Ubuntu 7.10 from the live CD, I'll get wireless, too. That'll be a first on Linux.
  • I got my research model "walking" (read: falling) on random terrain. Now for the evolution!
  • I visited Shedd Aqaurium today, to look at the dolphins and beluga whales. Dolphins I've seen before, but I've never been this close to a whale. Granted, the beluga whales are small, only 12 or so feet in length, but I was about that distance from it. It's a really surreal experience, being this close to another semi intelligence species. Pictures.
All the good things in my life.
No comments

Computer Science Problem Solving

Someone once asked me if studying computer science changes the way I look at the world. I didn't think so at the time, but now I see that maybe there are some influences. I can't say whether it's a good or bad influence, but it definitely makes my thinking a lot more abstract.

Recently, my professor brought up an interesting viewpoint, that programmers are actually using a lot of known solutions in solving problems with the computer. The thought stuck in my mind, and the more I think about it, the more true it seems. Here are a couple analogies that map from computer science to the real world.

The example my professor gave was about traffic lights. Why do we have traffic lights, and what purpose do they serve? After asking a number of exploring questions, we arrive at that traffic lights are really there to ensure a fair sharing of resources, that resource being the intersection of two roads. Since the intersection technically belongs to both roads, it's impossible to say which cars have precedence. The traffic lights are to enforce which cars can go into the intersection at what time.

During the discussion, I eventually realized that traffic lights are actually mutual exclusion (mutex) locks, that prevent two different users from doing something at the same time. If one road's is passing through the intersection, the other road's can't. The whole idea of mutual exclusion, of course, is from memory sharing between processes, and how to prevent one program from overwriting another's work.

The professor then went on to other types of resource sharing, such as a talking stick, which shares the right to talk. Everyone sits in a circle, and who ever has the stick is allowed to talk. The computer analogy to that was a token ring network, which I'm not familiar with.

Here's another fun analogy: sorting. This is a pretty prevalent "problem" in computer science. By "problem" I mean it needs to be done all the time, even though we already know the best way to do it: quicksort. It is interesting to see a number of different types of sorting in real life, however.

For example, if I hand you a deck of cards, how would you sort it? You would probably go through and separate the diamonds from the clubs, hearts and spades, and then sort each one individually. Note however that when sorting each suit, you don't separate the cards into separate piles (say, less than 4, 4 to 8, larger than 8), but might pick out cards in ascending order. Another way to do the same within each suit is to go through the stack and when you get to an out of order card, put it in order in the part you've already gone through.

It turns out that there are algorithms that do all three of these sorting techniques. When the items are put into categories before being sorted, it's called a bucket sort. If you go through the items to pull out the next one in line, it's a selection sort. The last one, because the items are taken out and put into the correct position, is called insertion sort.

I'm sure if I take the time I can think of more examples. My point here though is that computer scientists use a lot of solutions to common problems that we've already solved. We've sorted things before, and have shared resources before, just not on computers. And if the base problem is the same, then why not move the solution over to the domain as well?

Going back to the original question: does studying computer science change the way one thinks? My answer is yes, but only in terms of abstracting out these patterns in life. People don't become bound to certain rules or boxed by their thinking in this way; it will only help by making more connections.
No comments

A Small Update

I was originally going to complete one of the 13 drafts I have waiting, but it took me so long to write my journal entry that I'm just going to talk about something else.

What I've done today:
  • Completely changed my Fluxbox style, from what I called "shades" to "whiteblue". One interesting effect was that the computer felt lighter, as in less heavy. The first image is what it looked like; the second is what I'm looking at right now.
  • I also changed my calendar to go with my desktop, so it too is less dark and depressing. Must be some food I ate. You can click here see the new calendar; I won't put up the old one for comparison though.
  • Gave a presentation on our research findings on dolphins. Went quite well, I think.
  • Finally, spent over 3 hours trying to write in my journal, while being distracted by IM messages, The Office, parts of Minority Report, parts of Batman Begins, and the class schedules for next quarter.
Which reminds me, I'm not very happy with the registrar right now. Some how I manage to have 4 classes sharing the 4 pm to 5 pm spot on Tuesdays and Thursdays, and they're all interesting classes. I'm hoping at least one will be flexible, so it will be (slightly) more manageable.

That's if for now; I'll give another update on Saturday. God knows what I'll write about for tomorrow.
No comments