Wednesday, October 03, 2007

MSN Attacks!

For the last week I have been flooded with requests from random people I don't know to add me to their contact list. I find it unlikely that I have been infected with some sort of worm/virus since I use Linux. The people who try to add me are real and they seem just as confused as I am on why they added me to their list. I have started denying anyone who tries to add me, which is annoying since I can't tell which requests are legitimate.

Thursday, September 20, 2007

Last Lecture

I just watched a sad video of a Computer Science professor giving his last lecture. He is dying of pancreatic cancer and gave a presentation reflecting on his life.

Article: http://www.post-gazette.com/pg/07262/818671-85.stm

Here is a video of the lecture: http://www.cs.cmu.edu/front_im/pausch_9-18-07.wmv

Sunday, September 16, 2007

Compiling


[link]

The Classics of Science Fiction

Here is a list of my favorite science fiction books and movies (only included works that were made before I was born):

Movies:

Blade Runner (1982) - This movie is one of the greatest science fiction films ever made. Everything about it comes together to form a fascinating universe combining many complex themes. If you are only going to watch one movie from this list, watch Blade Runner.

Solyaris (1972) - I regret watching the 2002 remake of this movie before the original. I actually really liked the remake when I saw it, but after seeing the original I know that the only reason I liked was because it was merely a glimpse at this incredible film.

Alien (1979) - Although I would consider this movie more of a horror/thriller than science fiction, it is still an excellent movie that deserves a place on this list.

2001: A Space Odyssey (1968) - It's unfortunate that humans haven't reached the level of technological development predicted in this film. An excellent novel by Arthur C. Clarke was released at the same time as the movie. The only thing stopping me from declaring this as my favorite sci-fi movie is that I didn't like the ending. In my opinion the movie would have been better off if it had ended at the discovery of the third monolith near Jupiter.

Stalker (1979) - This is an incredibly unique and bizarre movie. It may require some open-mindedness to watch because of its complexity and slow pace. However, it deals with many fascinating themes such as human psychology which really make the film rewarding.

Books:

Dune (Frank Herbert, 1965) - This is by far the best book I have ever read. It flawlessly combines culture, religion, technology, ecology, politics, and psychology into an unforgettable story. A movie, two mini-series, and numerous video games have been released based on the book, but none of them even come close to capturing the Dune universe.

Ender's Game (Orson Scott Card, 1985) - I am currently reading the third book in the Ender series. Given that I just started reading the series a little over a week ago, you can see that I have become so involved in the series that it has taken priority over homework.

Neuromancer (William Gibson, 1984) - This book has had a fairly large cultural impact. It popularized the term "cyberspace" and defined hacker culture long before the World Wide Web was even created.

Rendezvous With Rama (Arthur C Clarke, 1973) - Even though I was still in middle school the last time I read this, I still remember the entire plot of the series due to the fact that it was so interesting and original.

Foundation (Isaac Asimov, 1951) - The Foundation series involves an epic story about human civilization spanning over several hundred years.

Sunday, September 09, 2007

Mandelbrot Set


I spent the day making a Mandelbrot set fractal generator. Here is a link to the applet. I was originally hoping that it would be possible to have real-time zooming to allow convenient exploration of the fractal. However, since rendering each frame takes a significant amount of time, I gave up and just added a simpler zooming system.

It really is amazing the infinite complexity and beauty that arises from such a simple function. I spent at least an hour just exploring different parts of the fractal. I saw patterns which have never been seen before due its infinite complexity. I found it interesting that although you should be able to zoom in infinitely, there is actually a zoom limit in my applet due to the limitation of 64 bit double precision numbers. Here is an excellent documentary by Arthur C. Clarke about the Mandelbrot set.

Friday, September 07, 2007

Java Games

I recently made two simple Java games:

Ping:

Online applet
.jar file

This is a remake of a game I made in highschool [link]. It is based on the classic game Pong.

Swarm:


Online applet
.jar file

This actually started off as a little project I was working on to create emergent behaviors. After assigning a few simple rules to dots on the screen, the dots could actually interact with eachother in complex patterns. These are the rules which each dot follows:

- Move towards closest neighbor
- Move towards left mouse click (proportional to distance from click)
- Move away from right mouse click (proportional to distance from click)
- Move randomly

I thought it was interesting how the dots movement seemed similar to insect swarms. I then decided to make this into a simple game by adding worms which hunt down the dots. The user tries to control the dots to avoid the worms. I made the worms using Bézier curves and trigonometric functions. I had a few problems with the transition between the sin/cos functions (used to animate the worms wiggling), so occasionally a worm might have some strange movements ;)

(Note: the game is CPU intensive, so it might run slowly on older computers. It will probably run faster as an application from the .jar file than as an applet.)

Monday, August 27, 2007

New Laptop!

I got a Gateway MT3705 for my birthday. So far I am really pleased with it. It has similar specs to my desktop (which is now over three years old) but was half its price. I have named the laptop Trillian. I am dual-booting Vista and Ubuntu on it. My only complaint so far is that audio isn't working at all under Linux. I found a thread full of people with the same problem - hopefully I will figure out how to get it working soon.

When I returned to my room with my new laptop in hand, I noticed my desktop was making a rattling noise. I narrowed the sound down to being produced by the video card fan. I tried to remove the video card, but the screw holding it in place was stuck. Trying to unscrew it with the tiny screwdriver I had gave me two really bad blisters. I went out, purchased a screwdriver with a better grip, and successfully removed the video card. After spraying the fan with some compressed air I returned it to the desktop. Unfortunately the computer then refused to boot. After running almost continuously for the last three years, my computer breaks down on the same day that I get the new laptop.

After randomly fiddling with the video card I actually got the computer booting again. However the fan has completely stopped, so I don't expect it to last for very long.

Saturday, August 25, 2007

Hugs

Bungee!

Yesterday afternoon I went bungee jumping at Whistler. It was pretty terrifying, but I'm glad I did it :). Here is a video of the jump.

Thursday, August 02, 2007

Fireworks

Last Saturday I went to the Celebration of Light fireworks festival. Definitely the best fireworks I have ever seen. There are four days of fireworks and each show is put on by a different country (Saturday was Canada's turn). I took lots of pictures and a short video.

I am currently taking my second week of vacation and enjoying Pender Island. Work has been going really well and I feel like I have been making some real progress on CIspace. I will be posting new versions of almost all the applets very soon. I have already started making plans for this Christmas vacation - I will be heading to South India.

Monday, July 23, 2007

UAI Conference

For the last four days I was attending the Uncertainty in Artificial Intelligence conference. I got free registration by volunteering to help out with the conference. I ended up staffing the registration desk for a few shifts as well as helping move some boxes. Not a bad deal for getting to attend interesting AI talks and eating lots of free conference food.

Most of the talks were actually very hard to follow. They dealt with advanced topics and assumed that the audience was already familiar with the concepts being discussed. I still enjoyed the talks however since there were some really interesting applications for the techniques being discussed. I probably also picked up some important AI terminology which should prove useful.

Tuesday, June 12, 2007

CIspace

After a month and a half of hard work, I have released new versions of the following CIspace applets:
These releases include many bug fixes and minor feature additions. I also made changes to the "graphToolKit" package which is used by all the applets for the basic user interface. Try out the new applets and please report any bugs encountered. Finding bugs is often far more difficult than fixing them.

I have been putting most of my effort into adding features for the neural network applet and the bayes applet. Depending on how progress goes, I should be able to release the new versions in a week or two. Some ideas we had for future CIspace projects included customizable inline applets, a new robot navigation applet, and a natural language processing applet using hidden Markov models.

I have really been enjoying working in the LCI lab. I get to attend a lot of interesting presentations about artificial intelligence. Hopefully I should be able to go to the upcoming AAAI conference (one of my supervisors is the president of AAAI!).

In other news, I have decided to spend a fifth year here at UBC and get a double major. I will be majoring in Computer Science and Cognitive Systems (Cognition and Brain stream). After I graduate I plan on attending graduate school (most likely in the U.S.).

Friday, June 08, 2007

In Celebration of Spork


Excited about my new spork, I decided to compose my first haiku:

Hunger approaches.
Food is prepared. Spork in hand,
eating commences.

Sunday, May 27, 2007

Penalty Box


As you can see, I have been enjoying my increased bandwidth limit. Quite a change from the 2GiB per *month* that I was limited to last summer.

Tuesday, May 08, 2007

Numbers



I am now the exclusive owner of the number 6D 37 00 22 9A 51 7D D7 5D 26 5B 75 2B 02 D2 6F. This number is mine and you are not allowed to know about it.

You too can claim a number (service may be unavailable due to the Slashdot effect).

"We own integers,
Says AACS LA.
You can own one too."
(C) 2007 Edward W. Felten

Saturday, April 28, 2007

Insanity



I just finished writing my formula sheet for CS320. I decided that instead of memorizing anything, it might save time if I just try to squeeze a semester of course work onto a single A4 piece of paper. Well... I ran out of room :(. It is now 1am and there are 11 hours left until the final. I better get back to studying.

Tuesday, April 24, 2007

Motivational Comics

Calvin offers his views on the world of academia:




... yes, I should really be studying right now since I have three exams within the next four days. Instead I find myself reading Calvin and Hobbes and learning how to play Go. I am actually proud of my progress learning Go since I can now beat the GNU Go artificial intelligence on its hardest difficulty level. I find that procrastination actually makes me more productive (except, of course, on the task I am procrastinating).

Sunday, April 08, 2007

Easter Riddle


Since there was relatively low participation for my last riddle, the first person to correctly decode my Easter egg will win a mystery prize!

Saturday, April 07, 2007

Laptop Theft

I found out yesterday that Nath's laptop and passport were stolen while he was on the overnight bus from Banda Aceh to Medan. In an attempt to identify the thief, I decided that it would be helpful if I could log an IP address when the laptop connects to the Internet. The laptop is set to automatically log on to MSN, so I set up a buddy pounce to send a message as soon as the laptop connects. I don't think it is possible to trace an IP address directly through MSN because the packets travel through the MSN servers before heading towards their destination, so I set up the buddy pounce to send an irresistible URL to a webpage with a web tracker instead.

Today the thief actually logged onto MSN. The buddy pounce sent the link, and then he/she logged off a few seconds later. Unfortunately the thief did not take the bait, and didn't click on the link. I set up another buddy pounce just in case he/she decides to log on to MSN again, although I think that would be extremely unlikely. If I had succeeded in getting the IP address it probably would have been possible to track down the location of the connection... oh well :(