home
[This page is incomplete]

Work

A collection of projects, all partial, feel free to borrow ideas from these for any academic or reasons of curiosity. If you do plan to make money out of these, then please do contact before you continue. If you wish to borrow heavily from these then please do drop me a note... 

All stuff over here is free. Free as in free and not as in '(c)free'. I resent the tendency of groups who hijack a word in my language and use the word to mean a compliance to their methodology or as a support to their political interests.


[contact me]

    Data Defintion Language - DDL / System.DDL
Homepage of the current distribution of the DDL. The DDL interpreter is available as a Managed C++ mixed-mode assembly that can be hosted by .Net applications. This is of Beta 1 status and user feedback is invited.
The  DDL project has gone public at 
http://ddl.sscli.net 
 
    toy .Net GC
Contains an implementation of a Garbage Collector that is algorithmically similar to the Microsoft .Net GC based on Jeffrey Richter's GC article. A simple script that hosts the GC has also been implemented by Pooja.
 
Trashbin - native/managed PE file viewer
Is a console based PE file viewer like dumpbin. It has extensions for managed PE files that show the CLI header, metadata etc.
 small
  Netshortcut - powertool
NS is a command line for your GUI environment that supports a plethora of configurable commands through a script file
 
  ASP Source analyser
Contains a source analyzer for large ASP  projects. It gives you information regarding methods, variables, references, components etc.
 small
    Avionics Project - DDL and Scr
Contains the original Data Definition Language  and SCR versions. Only documents are available under this title.
 
    Linux based Messaging Server
Among my first application under Linux. This is a chat/messaging multi-threaded server that has support for theoretically unlimited users, role based policies, chat rooms, public and private areas, user creatable rooms, rjindael encryption etc. In addition it has support for a bulletin-board feature where messages can be posted, reply trees tracked etc. 
 
  MSN Client and the My Server Chat Client
Contains a Client for MSN with the protocol specifications that we reverse engineered using a packet sniffer...
Contains a Chat server implemented with c++  under linux.
Contains an MFC client for the server 
 
  Mini DotNet (Plans)
These were the plans for implementing a scaled down version of .net (in concept) for my academic project. This was abandoned due to severe lack of time.
 

 

(a walking-chicken is a link to a write-up, click it to see the write-up)

     
  Avionics  
 

 

 

Brief

This was my final year work at college. The project was implemented for a company  - Dimension CyberTech Ltd, of Techno Park Trivandrum. It consists of two major modules :

  • The first a simple scripting language that could organize data in a structured way, much like XML
  • A Data Definition Language that could retrieve data from arbitrary file structures

Both these sections were useful in different ways by themselves and thus form two independent pieces of work clubbed together. These were also part of my first ventures into compiler theory.
The work is incomplete in the sense that the code is not very clean. The code has some known memory leaks that I have never ventured to finish. It seems to work otherwise though it has been subject to little stress testing.

Avionics Project Page (old writeup)

Docs:
Most of the following are word doc files, will put up htmls when I have some more time

    Entire Documentation (zip file) 472 kb
Contains both the DDL and SCR docs
    Data Definition Language (DDL) 483 kb
    The Generic Script (Scr) 358 kb
    Dimension and the Project 38 kb
     
 

 

     
 

toy .Net Garbage Collector

 
 


Brief

A Garbage collector written on the lines of the .Net garbage collector. This has been written out of my own imagination after reading Jeffrey Richter's article in MSDN magazine. This need not be factually correct about the actual .Net GC in any way.

The write up consists of the description of the GC, the data structures I have used. Most of the time I was trying to imagine the thought processes of the guys who designed the real GC.

    Thinking about the .Net Garbage Collector
The description of the Toy GC implementation
 
    Wish List
A language/runtime and debugger for simulating the execution of the GC.
 
    The Language Runtime Hosting the GC 
The runtime on my wish-list has been implemented by Pooja and is available at here site.
 
  Source Code and Binary Download
This contains the basic instructions to run the GC. It is however recommended that you read the parent article before looking at the tool. 
45 kb
     

 

 

     
  Mini DotNet  
 
 

Brief

This was planned for the final year college implementation but was never really done. 
Reasons

  • Time - shortage of it
  • Lack of Support  - not (m)any people thought it was possible
  • Obscurity - hardly anyone (tho(/e)se days) understood what we were up to
  • The pile of things we didn't know

The following are documents that were simply written together mostly as wishful thinking about how we planned the thing. Maybe somebody could carry on the work.

Start Page 

 

     
 

Linux Messaging Server, a Client and an MSN Client

 
 


Brief

The following jumble of things was implemented for my college mini project in my third year, in a rather hurried 2 weeks. The initiative originally started as an effort to write an integrated client that can talk to multiple chat servers. To avoid using harsh words, we thought we would gently nudge the original clients till they told us their protocols and we could build them into a single client.

What did get implemented was a MSN compliant client, a chat server that I was independently writing (not originally with the intent of contributing it to the college project) and a client for my server.
Both the clients are windows executables while the chat server is linux based. I was largely doing that to get familiar with linux rather to write the server itself, in effect my first proper linux application (and so far the last).

Our original project report can be downloaded here

(not worth it)

MSN Client

This was largely worked up by my friends Rakesh and Tony. I don't know much about the implementation details. They sat down together and got the protocol and coded the client. I wonder if it still works, MS keeps changing things.

    Docs about the MSN Client
Word doc format
 
    Download Binary 25 kb
  Download Source 71 kb
     

 

Chat server 

The chat server is written for linux. Since the official project was centered around clients, the server didn't have a large official role to play. 

However the server did have :

  • multiple user support
  • registered and anonymous users
  • chat rooms
  • ability for users to create rooms and set permissions and protection for their rooms
  • private chat in a room, request for p2p
  • timeout based deletion of unused resources
  • a message bulletin board
  • ability for users to create message boards and post messages, read them, post replies
  • permissions and protection could be set for the message boards
  • rijndael encryption for private user information
  • backup of server state, which could be reloaded after a crash

The server seems pretty stable, though it is not very well tested. I don't think it would stand stand the hardships of teh internet though. Further it works well in limited parameters, it doesn't have very thorough  bound checking. Please take it with a pinch of salt.

    Some Notes about the implementation
Word doc format
 
    Chat server protocol
A brief description of the server protocol. This is included in the archive below
 
  Chat Server Source + RHL Binary + Protocol Doc
IDE used was rhide, please get a copy if you want to use the project file.
276 kb
     

Client

The client for the server kept getting delayed as the server was unstable and to the added difficulty that none of us had two machines on which to run the server and client simultaneously, so developing a windows client was tough. Pooja handled the development of the client.

Many features like message boards are almost non existent and altogether, just about functional, but not very user friendly. Actually we got to use server + client for a few weeks recently (Nov 2002), it seemed ok then.

    Docs about the client implementation
Word doc format
 
    Source Download
The client src went on to suffer a version control problem, so I hope this is the latest version.
78 kb