B. Tech Project - Summer 2007 to Present
Mentor: M Balakrishnan, CSE, IITD
- Instant Campus Biking Solution (ICABS)
Umang Mittal and I started working on this project with taking part in a B-Plan contest in March 2007 (as the Smart Cycle Vending System). The idea is to develop a prototype for an automated system for the issue and return of bicycles that can be installed in the campus. It can also be extended to a city wide system in order to solve the last mile connectivity problem. We also presented the idea at the PanIIT Global Conference 2007, held at Santa Clara, California. Click here to check out the project website.
|
Practical Training - Microsoft Research India - Summer 2008
Mentor: Ranjita Bhagwan, MNS Group, MSRI
- NetPrints - Automated Diagnosis of Network Problems
The idea is to use shared knowledge to provide instant solutions to common problems faced by users in home networks. My task was to develop tools to gather configuration information from clients and compare configuration across time and space to infer dependencies among configuration parameters and system health. Paper titled "Netprints: Diagnosing Home Network Misconfigurations Using Shared Knowledge" to appear at the Proceedings of the 6th USENIX Symposium on Networked Systems Design and Implementation, Boston, April 2009 (NSDI 2009).
Project Webpage
|
CSL373 Operating Systems - Spring 2008
Mentor: Kolin Paul, CSE, IITD
- Secure Networed File System
Developed a multithreaded, user-level networked file system that used AES for security. Used indexed block allocation with block size 1 KB.
- libsthread - A user level thread library
Implemented a user level thread library for applications in C and C++. Supported semaphores, non-idle waits, and preemption.
|
Internship - Audio Technologies & Codecs India - Summer 2007
Mentor: Andre Partyka, ATC Labs
- Fast File Transfer in SIP based VOIP Phones
The project aimed at studying file transfer speeds in P2P clients, specifically, file transfer in VOIP phones like Skype, Google Talk, etc. and identifying reasons for low transfer rates. I also studied the architecture of Skype and documented the source code of EarthLink SipShare, a SIP based P2P file share program.
|
CSL302 Programming Languages Projects - Spring 2007
Mentor: Sanjiva Prasad, CSE, IITD
- ImpSim - Imperative Program Execution Simulator
Designed and built a simulator for imperative programs written in a (constrained) Pascal like language. Simulated the call stack, dynamic binding and implemented the parser for the language. Source Code
- eXpL - Expressional Language
Designed and implemented an ML like expressional language. It supports all basic operations for the follwing types (base types of eXpL) integers, reals, booleans, strings. The implementation has an interpreter that takes the parse tree and "interprets" it like bash and a compiler that generates java like instruction codes with VM to execute it (like Java). Source Code
|
CSL316 Digital Hardware Design - Spring 2007
Mentor: M Balakrishnan, CSE, IITD
- LZW on FPGA
Implemented the LZW ALgorithm on Xilinx FPGA in VHDL with a 10 micro-instruction micro-programmed control.
|
CSP301 Design Practices in Computer Science - Fall 2006
Mentor: Kolin Paul, CSE, IITD
- Mission Impossible 4 - The Multiplayer Game
Simulated a biochemical attack on a metropolitan mall wherein the players had to disable bombs planted in various rooms inorder to win. Each bomb has a timeout before which it must be diffused. Implemented in Java using the Java 3D graphics library.
- Robots
Implemented the classic BSD game Robots in C using the GTK GUI library. Source Code
|
System Administration - January 2008 to Present
Mentor: Subhashis Banerjee, CSE, IITD
- cfmon - Client Configuration Monitor
A home-made "trust" based replacement for cfengine. Like cfengine, keeps the configuration of a client (in a lab, say) up-to-date (where configuration includes files like /etc/resolv.conf and software packages. Unlike cfengine, does not use a key based authentication. There can be as many clients as possible. Does not rely on update times but on change of content (uses diff ) - this is inefficient but the code can be very easily modified to use update-times if NTP is deployed. However the overhead is not visible when compared to the heavy traffic resulting due to the download and installation/upgrading of packages. The server maintains one master monfile which has the list of config files to be monitored, their permissions, etc. and a file containing the list of packages that are to be installed. It is currently written for only a Debian based OS (like Ubuntu). Source Code
|