home

Technical Write-ups/Articles/Papers

A collection of writings and documents.
Some of these are articles from my blog. I'll have them here till I have a CMS to help sort out things. 
[contact me]

     
  Computer Science  
 

 

.Net

    An Introduction to .Net (outdated)
An introduction to the platform called .Net

 

Roshan James
    Thinking about the .Net Garbage Collector
- aka make your own toy GC

This article explores some of the details of the .Net garbage collector algorithm and in the process shows you how you could write a toy garbage collector that along the lines of the .Net garbage collector.
Hosted on MSDN India: 
http://www.microsoft.com/india/msdn/articles/38.aspx

 

Roshan James
    Rotor the Shared Source Common Language Infrastructure (SSCLI) (outdated)
Some information I have collected about the elusive Rotor, this could be used as starting page if you intend to explore rotor.

 

Roshan James
  Closure implementation enhancement in CLR 2.0 using the new delegate mechanism
Discusses how closures could be implemented in a .Net language by making use of the new delegate support added. 

 

Roshan James
  CLR 2.0 Closures and Environment classes that capture arity
This article maybe treated as a continuation of the above one. It discusses how the above can be extended by using generics support in the CLR. 

 

Roshan James
  Implementation of Closures (Anonymous Methods) in C# 2.0 (Part 6)
Discusses how closures are currently implemented in the C# language v 2.0 that is to be released in Visual Studio 2005 codename Whidbey

 

Roshan James
     

WebServices

    "Remote Recursion" Architecture 
Search Implementation
This article describes an approach that implements a distributed search mechanism using a paradigm of recursive searches between webservices. Such an architecture allows for a scalable distributed search/cooperation model on the real-internet.

 

Pooja Malpani
       

Programming

    Another Tale of Real World Debugging
This shows you how to enable memory leak detection in your old c++ code, how to ensure that the debugger reports leaks in the correct locations in your source code rather than in inbuilt header files and finally a case of how the c++ compiler and studio can go out of sync with each other in the way they report errors on line numbers.

 

Roshan James
    A Modulo Based Bit Counting Approach For 64 Bit Systems
Part 1 : Understanding The Approach
Part 2 : Extending To 16 Bits
This is a two part series. The first part describes how the expression "(v * 0x1001001001001ULL & 0x84210842108421ULL) % 0x1f" yields the bit count (number of set bits) of 'v' where 'v' is a 12 bit value. Part 1 also describes a general proof on which this code snippet is based. Part 2 uses the understanding in the first article to generate a code snippet that can bit count a 16 bit value using the a 64 bit register and discusses tradeoffs. 

 

Roshan James
     

Tools

  Bangalore User Group – WSH, WMI and System.Management
This provides an introduction to the WMI API and what it can do for you. If you work with windows based systems then understanding windows scripting and WMI API could fast bring you appreciate the power of these beautiful systems.

 

Roshan James
  A Perl command line tool for interfacing with Windows Management Instrumentation (WMI)
This is a perl command line tool with which you can do various tasks with the WMI API with ease. 

 

Roshan James
    Trashbin - the Portable Executable / Metadata viewer
Trashbin is a powerful tool for examining portable executable files of various types. This is a description of trashbin and how it can be used. Trashbin is downloadable with full source code. 

 

Roshan James
    Microsoft Command Shell : msh/Monad
Discusses the new command shell for the Windows operating system. Monad is a very advanced command shell that derives its power from the component model that .Net exposes.
Articles on Monad by Pooja.

  

Roshan James
  Msh/Monad: Cmdlet parameter binding
Discusses the process of parameter binding in Monad - this is different from what existing shells can offer. 

 

Roshan James
  ObjShell: A precursor of Monad? 
Discusses a COM based shell that waspart of research work done by Antonio Cisternino of University of Pisa.

 

Roshan James
     

Languages

    An Introduction to Ruby
This is an brief introduction to one of my favorite interpreted languages - Ruby. Ruby is general purpose, object oriented language that is syntactically so beautiful and expressive that you cant help liking it :) 

 

Roshan James
    Enter the Data Definition Language: a developer perspective
A description of my DDL language. This was originally published in the .Net Developer Journal. 

 

Roshan James
  XAML and the markups: Introducing WFML - WinForms Markup Language
This discusses the implementation of a toy XML markup language by me that let you describe the user interface of a WinForms based application independent of the code. 

 

Roshan James
  A Ruby Wishlist
A wishlist for Ruby features. 

 

Roshan James
  Iterators in Ruby (Part - 1)
Discusses the usage of iterators in the ruby language. If you are from the  C/Cpp world, the concept of iterators might seem a little strange to you. 

 

Roshan James
  Warming up to using Iterators (Part 2)
This talks about how the iterators construct is used in day to day programming the same way one would use a for-loop. If you are doubtful about the utility of the iterators construct, this might convince you.

 

Roshan James
  The ‘Big Deal’ about Iterators (Part 3)
This article discusses difficulty of simulating iterators with conventional stack based languages. 

 

Roshan James
  SICP, Fiber api and ITERATORS !(Part 4)
Discusses possible alternatives to implementing iterators in a language. 

 

Roshan James
  Implementation of Iterators in C# 2.0 (Part 5)
Discusses how iterators are implemented in the new C# language version 2.0. 

 

Roshan James
  Implementation of Closures (Anonymous Methods) in C# 2.0 (Part 6)
Discusses how closures are implemented in C# 2.0

 

Roshan James