Projects
Coding projects I've worked on
What have I worked on?
Listed below are some of the projects I've worked on in the past years. I used to give full source access to all my projects, but I don't have everything anymore nor would it represent a good sample of my current work / coding habits.
The projects
NullShare
NullShare is an open source c++ file sharing application. For more information, please visit the NullShare website
Internet Library
Large library built from scratch using C++ that supports FTP, FTPS (FTP over SSL), SFTP (FTP over SSH), SMTP, POP3, HTTP (with support for cookies), HTTPS, TCP, UDP, HTTP Servers, HTTPS Servers, FTP Servers, Proxies, HTML parsers and much more. Runs on windows, but can easily be ported to linux/unix/. This library is the basis of several large scale applications.
TDI Network Filters
SMTP and POP3 low level network TDI filters. Has the ability to modify, block or add to network traffic.
Virtual disk drive implementation
Disk drive that windows can communicate with. Actual data does not exists but windows and other programs think that it does.
Windows Networking (LAN)
Supports functions for easily working with the windows LAN including, searching for files, connection to computers, reading/writing operations and access to administrative shares. Also has the ability to treat an FTP/FTPS server as a computer on your LAN. Library gives you access to these resources in the same way.
True 3D Tetris
Fully customizable Tetris game along the x, y and z axis. You can specify what type of blocks you want to play with and you can specify how big you want the board in the x, y and z axis respectively. Game is played with left and right arrow keys moving left and right, and the up and down arrow keys for moving towards you and away from you. Supports particle explosions when full lines are complete. Supports several other features as well.
Scheduling Library
Easy access and control over all windows schedules. Used in several large scale applications.
Image Flow
An image manipulation library that supports opening/obtaining info and modifying many different image file formats. Also has support for 'layers' in images and many different methods of blending.
Counter HTTP server
Generates images based on current count for given user. Responds to HTTP requests.
Computer Vision
Several basic utilities related to computer vision and A.I.
Pyroflow MSN
An open source implementation of an Msn Messenger client build from scratch using C++ and Qt3. Portable to Linux/Unix/Mac/Windows/BSD.
Pyroflow Archiving
A library to pack and unpack a set of files into a single archive file. Similar (but more efficient) then tar. Runs on any platform. This is the core of the enterprise software Vision Backup - Enterprise that is sold worldwide.
Call .NET web services without .NET
Some SOAP wrappers and other misc to easily call .NET web services from any c++ application.
Stego Flow
Utilities and a library to encode data into an image and later decode it.
Adaptive Huffman Compression
Utilities to compress and uncompress data using an adaptive Huffman technique. Originally started as a school project but has been significantly improved since then.
Graphical Pipeline
Created an application to perform Modeling, Viewing and Perspective Transformations along with line Clipping and resizable viewport representation within a window. It implements part of OpenGL graphical pipeline and uses a cube representation to test the correctness of the transformations visually. Implemented using Python and C++.
Router Emulator
This program emulates the operations of a router and communicates to other routers in the network to keep track of routes for packets and minimize the time taken for packets to travel. It is a version of OSPF protocol with Dijkstra's algorithm. It was built in Unix using UDP and C++.
Reliable transfer protocol
Implemented the Go Back N protocol for reliable transmission and delivery of packets across a network. It is built on top of UDP. It was tested with both Client and Servers running over a congested network. This was build on Unix using UDP and C++.
Simple Language Compiler
Implemented a compiler that translated programs, made in a c++ like language, into assembly code (MIPS) and executed it in a Unix environment. The compiler makes use of parsing trees, Context Free Grammar (CFG) and bottom up parsing to generate the Assembly code. Used technologies include java, JLex, Cup, and Assembly.
Misc data structures and algorithms
A collection of data structures that I created for my own personal use.
Qt Extensions
Several reusable Qt widgets.
Pyroflow Briefcase
Briefcase used to synchronize files between 2 mounted directories in linux/unix based systems
This web site
The entire site that you are visiting and its previous revisions. The current one is in Django, the last one in ASP .NET (C#), the one before that in Flash and the original one was generated from C++ code. The C++ code was to get around not having a templating system (or master page system if you prefer).
Pyroflow web site
The entire source code for the .NET, XML/XSLT driven web site. Also comes with an app for updating the web site from any remote computer
Waterloo Areal Robotics Group
Fully autonomous flying robots (This project is a group effort and is not undertaken by me alone)
Nachos Operating System
My CS354 Operating systems group project
Various tests
This section holds a variety of tests helpful for getting started on a new project fast and easy.
Hundreds of other libraries, applications and custom software jobs
Lots and lots of various projects.