Friday, November 24, 2006

Projects

Here is a list of some the projects I have been working on this semester:

Maze Solver: A program for Tablet PCs that allows the user to draw a maze on the screen using a stylus, and then finds the shortest path through the maze using A* search. For a simple maze the program only takes a few seconds to solve, but for more complex mazes it can take up to a few minutes (depending on processor speed). One advantage of using A* search for this problem is that it guarantees both completeness and optimality (it will find a path if it exists, and that path will be the shortest one possible). One of the best things about working on this project was the fact that our group got to borrow a Tablet PC from the CS department for the semester.

Text Adventure: A game called "Amnesia" written in Prolog. Text adventures are particularly easy to implement using Prolog because of built-in grammar support for processing natural languages. Although our game only used a very simple grammar system, it shows how powerful Prolog can be at natural language processing. Here is a copy of the game's source code (you will need a Prolog interpreter in order to play the game).

Parenting Lab Website: I redesigned the website at work. Check it out at http://www.psych.ubc.ca/~cjlab. The old version of the website can be found here.

Keyboard Optimization: This program generates keyboard layouts by minimizing the total finger travel distance required for a piece of text. We used three different local search configurations (hill climbing, random step, and simulated annealing). For relatively small pieces of text, the program can produce keyboard layouts that are significantly better than both QWERTY and Dvorak layouts. However, the program is also very computationally expensive, so it would take too long to find a layout for any substantial piece of text.

Chatterbot: This program is still in development. We are using Haskell to make a chatterbot based on the character Marvin (from The Hitchhiker's Guide to the Galaxy). Since this project involves natural language processing, I think it would have been much easier to implement using Prolog. Haskell is a functional programming language, so even basic tasks which would have been easy to accomplish using Prolog become unnecessarily confusing!

Saturday, November 04, 2006

Byron's Guide to Anime

Introduction:
Anime refers to animation originating from Japan. It can either be a tv series or a full length motion picture. It comes in many different styles and genres. This guide will provide a brief introduction to fansubs (anime that has been subtitled by fans). Although many anime files contain multiple audio tracks (including English audio dubs), I recommend watching all anime with the original Japanese audio and English subtitles.

Terminology:
- hardsubs: "Hard subtitles" are encoded directly into the video, and are not customizable. They allow certain advantages over softsubs (such as karaoke subtitles for songs).
- softsubs: "Soft subtitles" are kept separate from the video stream. This allows customization on how the subtitles are rendered.
- AMV: Anime Music Video
- OVA: Original Video Animation, anime released directly to video.
- Chibi: A style of anime where the head and body are severely disproportioned.
- Otaku: Someone who is obsessed with anime/manga.

Legal Issues:
To avoid legal problems, most fansub groups do not profit from distributing anime. They also stop distribution once the anime has been licensed outside of Japan. Wikipedia provides a nice summary of some fansubbing ethics:

"1. Fansubs are made for fans, by fans, and not for commercial purposes. Therefore, fansubs should never be sold for a profit. They are either given away or sold for exactly the cost required to make them (usually, the cost of a blank cassette plus shipping expenses). Many fansubs contain subtitle text that reads "free fansub: not for sale or rent" that pops up during the video, in order to discourage bootleggers from violating this rule.
2. Most fansubbers only work with material that has not been licensed for domestic release in their country of distribution. If a domestic company licenses a given title then fansub production and distribution of that title stops. An exception, for some, is made when the licensor intends to heavily edit the content without releasing an uncut version, as is the case with 4Kids Entertainment. However, this only constitutes a very small portion of licensed products, few of which are titles which are overwhelmingly popular with fansub communities to begin with.
3. There is an expectation that if a given fan enjoys a show, then he or she should buy the official domestic release if and when it becomes available.
4. If a show is very far along when it is licensed (Bleach, for example, was in the 70's in episode numbers when it was licensed), then some fansubbers will continue to release later episodes and phase out older episodes as they are aired in America."

Media Players:
VLC is an excellent player for hardsub anime since it is easy to use, platform independent, and probably contains all the audio/video codecs you need. However, I have found it to be terrible at displaying softsubs (rendering ugly subtitles and lacking customization options).

My preferred application for anime in Windows is Media Player Classic, and MPlayer for Linux. Both of these program allow excellent subtitle customization. However, they also require that you have the correct codecs installed in order to view the video.

Anime Recommendations:
If you are new to anime, I would recommend:
-Fullmetal Alchemist (鋼の錬金術師, Hagane no Renkinjutsushi)
-Cowboy Bebop (カウボーイビバップ, Kaubōi Bibappu)
-Samurai Champloo (サムライチャンプルー, Samurai Chanpurū)
-Spirited Away (千と千尋の神隠し, Sen to Chihiro no Kamikakushi)
-Princess Mononoke (もののけ姫, Mononoke Hime)

I personally prefer some of the more philosophical and deep science fiction anime. Some of my favorites include:
-Ergo Proxy (エルゴプラクシー, Erugo Purakushī)
-Serial Experiments Lain (シリアルエクスペリメンツレイン)
-Ghost in the Shell (攻殻機動隊, Kōkaku Kidōtai)
-Texhnolyze (テクノライズ)
-Akira (アキラ)

Resources:
Here a few resources that may be useful in finding anime to download:
a.scarywater.net
AnimeNfo
AniDB
IMDB - only lists movies (and some are not anime).
tv.com - only lists tv series (and some are not anime).