Projects that I have undertaken in these recent years during university studies.
I am co-founder and CTO of diPoll. In short, diPoll is a social voting platform which allows anyone to easily vote, comment, create polls, and take part in a community where they can get instant feedback from others worldwide.
Current efforts are focused on user authentication via social networking sites (Twitter and Facebook Connect), embedding of polls on 3rd party websites, and migration to a RESTful architecture.
Visit diPoll.comI was contracted by Robofactors to lead the developent of a lightweight real-time operating system to run on the DRC-1 robot controller for the HR-17 robot, a 17 degree-of-freedom humanoid robot. The OS provides real-time control of 17 servos as well as support for input from custom user sensor modules, while running on a mere 16 MHz low-power and low-cost ATmega128 microcontroller.
I have designed a low level current sensing device and accompanying software suite for interfacing with a nanotechnology-based biomedical sensor.
This project was done for the Advanced Micro-/Nanodevices Laboratory at the University of Waterloo.
Programming projects that I have worked on for during my high school years, some were for school assignments and some were personal experimentations.
A Java program that allows users to create a magic square and check it. A magic square is a square of numbers in which the same sum is obtained adding the rows, columns, and diagonals. The artificial intelligence of this program is entirely the genetic algorithm used to generate random magic squares.
Download the program (jar file)A Java program with an original 3D Engine developed from scratch to render and animate an interactive 3D solution to the Towers of Hanoi problem.
Uses: Towers of Hanoi recursive algorithm, 3D geometry: Transforms (Rotations, translations), 3D Rendering: shadows and lighting, Java AWT Graphics
Download the program (jar file)This C++ MFC program identifies posts on newsgroups with .torrent file attachments and compiles a list for easy access. The list can also be exported to the user specified MySQL database server. This program uses the MySQL API codes provided by MySQL.com.
Uses: C++ MFC programming, windows sockets, multithreading, NNTP META content parsing, MySQL API
Download compiled program (rar file)This C++ Win32 program allows the server to remotely control the client computer using a mouse and keyboard over a network, as well as prompt messages on the client's screen. The keyboard and mouse hooks are created by an accompanying DLL.
Uses: Win32 keyboard and mouse hooks, simple communications protocol, windows sockets, windows dynamic-linked libraries
Download compiled server & client programs with DLL (rar file)A Java applet with an original 3D Engine to generate a line in 3D space based on 2 points. Information on the line are calculated, including the intercepts and equation. Transformations are possible (rotation and zoom).
Uses: 3D Mathematics, Transforms (Rotations, translations), Java AWT Graphics
Run the applet (opens new window)A grade 10 introductory programming class assignment where we had to write a Turing program for hypothetical customers to order ice cream from "Irene's I Scream for Ice Cream Shop". I took this assignment to the next level... the user can see their ice cream cone in 3D :-) with my 3D graphics engine written in Turing (it's a very limited programming language).
Uses: 3D Mathematics, Transforms (Rotations, translations), Turing language
Download source code (T file)Nobody is a real programmer without developing something annoying! Here is a transparent C Win32 program and accompanying DLL that logs every key pressed by a Windows user.
Uses: File IO, Windows Keyboard Hooks, Windows Dynamic Link Libraries, Win32 programming
Download compiled program and DLL (rar file)A project including construction, IC and transistor circuitry, and Visual Basic programming that uses the parallel port and a joystick to control a "battle" car's movements to pick up paperclips.
Uses: Simple joy stick design, drive design with calculated gear use, stepper motor control, parallel port interfacing, Visual Basic programming
View circuit schematic diagram (pdf file)An electronic model for the electron transport chain in the mitochondria of a cell illustrating the transport of the electron pair through various protein, carriers, and the proton pump by the ATP synthase.
Uses: Shift registers, 555 timers, flip-flop memory, AND/OR logic gates, transistor motor control
Click here to see it in action (avi file)A project including CAD design, construction, IC and transistor circuitry, and Visual Basic programming that uses the parallel port of the computer to control a model elevator's movements.
Uses: Visio circuit, AutoCAD design, H-bridge, BCD to Decimal Decoder, BCD to 7 segment Decoder, parallel port interfacing, Visual Basic programming
View AutoCAD drawings and list of materials (pdf file)