Gas is a mobile gamecenter, which allows Garena users to chat and view game related content. It’s a Garena product, used by hundreds of thousands of gamers in South East Asia. I worked on the iOS client.
Excitingly enough, increasingly large components of the app use ReactiveCocoa to model complex async flows.
Eyrie is a tool that generates flight visualizations in KML from black box data. I developed eyrie as my final year project at NUS for the Air Accident Investigation Board (AAIB) in Singapore.
It is fully implemented in Clojure.
(def arc ‘(arc reads code))
Arc is code-reader for the iPad, designed to work on iOS6 and above. It’s features include:
- Syntax Highlighting
- Code Folding
- Compatibility with Textmate Bundles and Themes
- Multiple document sources (including Dropbox, Google Drive and Skydrive)
- Plugin based architecture
My primary contributions to the project were the syntax highlighting and code folding plugins. For syntax highlighting, I initially tried working with Textmate’s parser, but due to dependency issues, ended up developing my own from scratch. The chief complexity was ensuring compatibility with textmate grammars, as we wanted plug and play compatibility with existing Textmate bundles and themes.
Code folding was also based on patterns specified in Textmate bundles, and implemented using interval trees.
The project is open source and MIT Licensed
Hush is a realtime anonymous social platform my team designed for CS3216. It was built on nodejs using express with mongodb for persistence, redis for sessions and elastic search. The code is open sourced and available here
Newton is a simple 2d Physics engine, developed in Objective C for iOS. It was built more as a learning exercise than anything else, so it’s not very performant. It currently only supports rectangle based polygons. Code is here
Hisp is a toy lisp interpreter developed primarily during a long transit at Bangkok Airport as an excuse to teach myself haskell. Supports ints, floats, strings and lists, with lexically scoped lambdas. Read this post for more details. Code is available here
Mipsy is a pipelined implementation of a Mips processor, with hazard detection for data dependecies and hardware forwarding for hazards. We used VHDL to describe the hardware and used the Xilinx platform to deploy it on Spartan 6 FPGA. Code opensourced here
A multiplayer implementation of classical snake. Game itself is rendered on html5 canvas. Uses websockets for broadcasting information amongst clients. Code here