Click Here to Install Silverlight*
United StatesChange|All Microsoft Sites
Microsoft
Links

Innovation from MIDC

At Microsoft India Development Center our teams develop strategic products for Microsoft
Home
Contest Details
Archives
Arijit De
Fr. Conceicao Rodrigues College Of Engineering
About me
Presently entering fourth in B.Engg. in Father Conceicao Rodrigues College of Engineering (Mumbai University). I'm a Mumbaikar (or Bombay-ite if you prefer) by birth and choice but actually a Bengali, who can speak but not write, but no point in asking about my true Bengal roots. I either don't know or don't care.
Elementary school (Kindergarten to standard 6 in N.B.W.S., Ghatkopar, Mumbai), it didn’t turn out to be very eventful except for a few competitions won and classes topped here and there, all thanks to relentless backing by my parents. Maths and Science fascinates me, and I am quite an expert in assembling futuristic machines with Lego blocks during my free time.
 
High school L.K.P.S, Kalyan upto 10th and then Junior College at Birla College, Kalyan - found myself lagging in my academic grades, but my spare time was well-spent in tinkering with scientific and technical projects for school exhibitions. After getting hold of a Personal Computer, I couldn’t keep my hands off it for long, much to the initial chagrin of my parents as my scores suffered. I soon became a pro at VB, Java and x86 Assembly language. A keen interest in computer games, and especially their development, got me to spend all my time in exploring the Win32 API, DirectX/OpenGL graphics, C/C++ and AI, while my peers were involved in more mundane tasks such as preparing for IIT-JEE and other university entrance exams.
 
Hacking. As is inevitable with any computer programming enthusiast, I soon encountered Unix and the lofty philosophies of *nix hackerdom. Along came a whole barrage of new tricks such as the Shell, Perl, Python, PHP, LISP, Vim, Emacs, Ruby, Haskell… (had to limit this list considering the context of this article), not to mention an unending love affair with the Command Line, whose elegance and simplicity was a refreshing change from the dumbed-down, clunky and unwieldy GUIs (at least they seem so now) that I begun my foray into computer science. Despite such personal inclinations, I perfectly realized the needs for such GUIs for 90% of humanity who not being hopelessly geeky like me are incapable of ever comprehending Unix or the CLI.
 
Interests. I easily get addicted to novels, especially science fiction, as well as thought-provoking movies and music. Communication, as it appears to me is primarily for exchanging ideas and information. Needless to say (at least to those who know me), I can’t stand small-talk (of the pointless type, not the computer language), especially at social gatherings. I consider myself particularly fast at researching and learning new technologies and get high from designing and coding challenging programs.
 
Future plans. At the moment I'm bit disillusioned concerning the usefulness of university education, and so I'm exploring avenues into the software industry. This current outlook of me towards higher education isn’t rigid, though and may certainly change in the future.
 
Projects and Accomplishments. Nothing ground-breaking in here, no secret plans of world domination at least.
 
Competitions: I take part regularly in Algorithm competitions in division 1 at TopCoder. Got ranked 8th in the Google India Code Jam, 2005.  Also participated twice in the ACM-ICPC regional finals, with my team securing 6th position last year at the IIT-Kanpur/Jadavpur-University regional finals.
Ogs (online grading system): A web-based PHP application for conducting and grading online programming contests, with automated testing and raking systems. I have been used for conducting many such events including the ones at the CSI (Computer Society of India) national-conventions.
Dcatalyst.sf.net: A cross-platform accelerating download management engine, supporting most internet protocols, with both GUI and CLI front-ends.
Neocrypt.sf.net: A file-encryption GUI solution for Windows with support for lots of symmetric algorithms.
 
Project: Registry Optimization
 
Overview
The Windows Registry is certainly one of the primary nerve centres of the operating system as well as application programs. Even a novice user will probably know that tinkering with it may lead to system or application-wide changes. The Registry is a hierarchical database responsible for storing all configuration settings of the OS as well as any installed applications. It is maintained by the a subsystem of the Windows kernel dedicated specifically for this purpose, and deservedly so, because any problems in the Registry will adversely affect the whole system.
 
Such a central configuration management system is not without its disadvantages, as the Registry can become a performance bottleneck, especially in the case of a system with a large number of applications running concurrently. Moreover, the rate of registry accesses is particularly high during system bootup due to a large number of settings getting loaded by system processes. The objective of my project is to analyse these potential causes of system slowdown and discover ways to optimize access to the registry and thus make an attempt to improve system performance.
 
Approach
 
Currently my approach involves implementing a user-space Cache Layer which intercepts all API calls to the system Registry. This layer will attempt to speedup repeated accesses through caching at a application-wide level. Any given application is expected to access only a subset of the system Registry keys pertaining to its own configuration. The cache will take advantage of this spatial locality, as well as temporal locality if present, to minimize the number of system calls to the kernel.
 
Since each application process will have its own cache of keys local to it, concurrency especially in multi-processor systems will benefit. System calls to the registry are serialized through the use of locks. The cache layer helps in improving this situation by cutting down on the number of these registry-related system calls.
 
Such a cache-based approach does have its own set of challenges, such as cache-coherency, an eviction strategy to limit its memory usage, and multi-threading considerations.
 
Goals
 
To demonstrate a working solution that can provide noticeable boosts to real-world registry-heavy applications (such as Internet Explorer).
To ascertain if the system bootup and user-login speed can be improved through caching and streamlining registry accesses.
Brain Teasers

Here are some of the questions that the code4bill contestants answered. How about trying your hand at them?
Multiply 14332 represented in base -7 with 16430 represented in base -8 and represent the output in base -9.
An array contains 9 occurrences of 0s, 8 occurrences of 1s and 7 occurrences of 2s in any order. The array is to be sorted using only swap operations. What is the minimum number of swaps needed in the worst case to sort the array?
You are given an infinite number of cookie boxes containing either 6, 9 or 400 cookies. You are allowed to use these boxes in any combination so desired. What is the maximum number of cookies that you cannot give out using the above boxes?

© 2009 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement