Location: home > projects

This is a list of personal projects that Tienshiao has worked on. He does these partially for fun, and to expand his skills.
  • Active Projects - Projects that are currently on his mind.
  • Retired Projects - If any projects listed could be considered "done", it would be these. Active development doesn't really happen anymore, but inspiration may strike (or bugs).
  • Projects in Limbo - Some projects go well, some go poorly, other's just don't go. Not because Tienshiao didn't want to, but they've been prioritized to limbo.
Active Projects
CrystalBall: Peer into the Ether
What?   CrystalBall allows the user to see images that are passing through the ether. Yeah, corny as all hell.

Basically it is a packet sniffer that reassembles HTTP streams, and if a stream contains an image that CrystalBall can decode, it decodes the image and displays it. Basically it lets you spy on others. In other words, it's a Windows version of Etherpeg or Driftnet. It's not as cool as the others, in that it only works on HTTP (web) streams.

Facts   Platforms: Windows
Language: C++
Tools: Visual C++, Platform SDK (WIN32API), WinPcap
Status: semi-active

ToccerME: An AIM Client for J2ME
What?   ToccerME is an AIM Client for Java 2 Micro Edition devices that uses the TOC protocol. It currently only provides the most basic functionality of an IM client: chatting, and the buddy list.

Facts   Platforms: Java 2 Micro Edition, MIDP 1.0
Language: Java
Tools: Java 2 SDK, Java 2 Micro Edition Wireless Toolkit, Sun ONE Studio
Current Version: 0.1
Status: active

Retired Projects
BookCheck: Find Out More About That Book (J2ME)
What?   Ever been at the book store looking for a book you had read about online? You're there and it turns out they don't have the book in stock. You see a couple other books on the same subject, and you wonder if they're any good (since you came all the way out here, you had better leave with something!). How can you find out?

Facts   Platforms: Java 2 Micro Edition, MIDP 1.0
Language: Java
Tools: Java 2 SDK, Java2 Micro Edition Wireless Toolkit, NetBeans
Current Version: 1.0.1
Status: retired

SOMCalc: A Wireless Link Calculator for J2ME
What?   SOMCalc is a wireless link calculator for J2ME devices. It can calculate the signal strength, uptime/reliability performance, and regulation comformance. It was based on PocketSOM, and written with the help of Casey Halverson who wrote it.

Facts   Platforms: Java 2 Micro Edition, MIDP 1.0
Language: Java
Tools: Java 2 SDK, Java2 Micro Edition Wireless Toolkit, Sun ONE Studio
Current Version: 1.0
Status: retired

WordSearch for Tablet PC
What?   WordSearch is a game where the player attempts to score the most points by assembling words from letters randomly arranged on the game board.

Facts   Platforms: Window XP Tablet PC Edition
Language: C++
Tools: Visual C++, Platform SDK (WIN32API), Tablet PC Platform SDK
Status: a short list of additional features planned

Web IM Proxy (WIMP)
What?   The Web IM Proxy (or affectionately, WIMP) is a web based interface for connecting to instant messaging services like AOL (the only one currently supported (through the use of Jaim). This allows users with only web access (or WAP access) to make use of instant messaging. This is particularly useful for subscribers of carriers who do not have access (*cough*Cingular*cough).

Facts   Platforms: Java Servlet x.x
Language: Java
Tools: Java 2 SDK, Eclipse, Ant, Tomcat
Current Version: 0.1
Status: retired

wwpc: A Dieter's Calculator for J2ME
What?   WWPC is a J2ME MIDlet (for mobile phones)that replicates the functionality of the Weight Watchers' Points calculating slide rule. The equation used is similar to: p = (c/50) + (f/12) - (min(r,4)/5) where p = Points, c = calories, f = fat grams, and r = dietary figer grams. This is an unofficial utility, and I have no relationship with Weight Watchers.

Facts   Platforms: Java 2 Micro Edition, MIDP 1.0
Language: Java
Tools: Java 2 SDK, Java2 Micro Edition Wireless Toolkit, Sun ONE Studio
Current Version: 1.0
Status: done

XML Lite: Lightweight XML Parser for J2ME
What?   XML Lite is a quick and dirty non-validating XML parser targetting the J2ME platform. With that, one of the primary goals for the project is size. Though it is small, it features both a pull parser and a model parser. The model parser is a separate class dependent on the pull parser, and can be removed if not needed.

Facts   Platforms: Java, Java 2 Micro Edition
Language: Java
Tools: Java 2 SDK, Sun ONE Studio
Current Version: 2003/04/04
Status: done? (maintenance)

Columns for Palm
What?   Columns is my interpretation of the Sega game (they probably own the trademark as well) for the Palm (at the time called PalmPilot. It directly accesses the hardware, and thus is not a very "compatible" program. It will probably die horribly on newer color models, but should be OK on the black and white ones that are 160x160 in resolution. Dug this stuff out of the back of the closet, thought I had lost it. Maybe it'll be useful to somebody out there.

Facts   Platforms: Palm
Language: C
Tools: GCC
Current Version: 1.0
Status: no more development planned

Projects in Limbo
WASABI: Web Application Server And Binary Interface?
What?   WASABI is a small multi-threaded web server. I liked the name, but it doesn't accurately describe its abilities at the moment. They are mere aspirations right now. Currently, it isn't much more than a multi-threaded error server :p. File serving will be completed shortly. The code in that respect is module ready, but module loading and management still needs to be implemented.

The project was started as a personal exercise. I hope to use the server framework that was developed in future projects. Or at the very least, use the lessons learned to improve future projects.

Facts   Platforms: Linux, Windows (hopefully)
Language: C++
Tools: GCC, STLPort, pthreads
Current Version: 0.0 (no public releases)
Status: idling (last touched 12/2002)