Wednesday, October 14, 2009

Launch of 30 Dollar Finance


Snehal Fulzele (a friend from the MSE program), I and some of our friends have started a non-profit organization called 30 Dollar Finance (30DF). 30DF allows individual donors (or investors) provide micro-credit to specific small time entrepreneurs in rural India. As the name suggests, the amount of money that one donates (or invests) is of the order of tens or hundreds of dollars. 30DF has collaborated with numerous Indian Micro-Finance Institutes (MFIs) that actually do the job of taking this money and making sure it reaches those who need it.

The motivation behind creating 30DF is the pathetic current state of affairs. For instance, scores of Indian farmers committing suicide due to inability to pay back loans is so common-place that it doesn't make news anymore. These loans are traditionally given out by landlords that demand unreasonably high interest rates and resort to inhuman extortion methods. MFIs on the other hand provide credit at lower interest rates. Even so, in reality these rates are still higher than what we would like them to be. So, the purpose of 30DF is to bring this rate down by providing additional sources of funding to the MFIs.

Using 30DF, people can donate money to specific entrepreneurs in rural India. In the ideal case, successful entrepreneurs are obliged to return this small capital along with an interest. This way the original donation could turn out profitable. However this may not always happen. In either case a donor does have the satisfaction that his money served an altruistic purpose.

30DF helps donators choose entrepreneurs by associating a credit rating with each one of them. This credit-rating has been generated using data provided by our local MFI partners. In cases where an initial credit rating is not available our system will assign one and then monitor it using a self-devised evolutionary process.

Other websites like 30DF have been largely successful in different parts of the world and it is our hope that we can bring the same kind of success to India. So, please visit 30DF and make a donation.

More information can be found at:
http://www.30df.org/Plebeian/app/faq.jsp

http://30dollarfinance.blogspot.com/

Monday, July 27, 2009

Paper at Onward!

Jonathan's paper on Typestate-Oriented Programming (of which I am a co-author) was accepted at this year's Onward! conference. Onward! is a conference co-located with OOPSLA that promotes more radical and innovative ideas than traditional conferences, but is less concerned with theory and proofs.

This paper talks about a new programming paradigm that makes typestates (like states) a first class element of the language (called Plaid). The main philosophy behind typestate-oriented programming is that programmers these days rely heavily on libraries, and thus it is important that they use them correctly. In most cases, the correct usage of libraries (or APIs) can be specified in the form of a protocol state machine; of which a simple example is that a file can only be "read" if it's "open". By having typestate explicitly in the language we encourage library writers and users to think in terms of these states [Boroditsky], which should help them design, document, and reuse library components more effectively. Of course this also helps us statically check violations using the compiler, instead of having to run an external checker like Plural. For the complete list of advantages and more on the philosophy behind the language I encourage you to read the paper.

Currently, I am working on the type system of the core Plaid language and formalizing it in a proof-checker called SASyLF. Since I am new to language research, theory does not come naturally to me and so going's a little tough. However, at the same time I am learning a lot since the type theory here is quite advanced and formalizing everything in a proof checker forces you to get every little detail right. Hopefully, soon I will have something substantial to show for my efforts.

Friday, May 8, 2009

Challenges with proxies for distributed systems

Our (Jonathan, Joshua and I) position paper titled "Language support for distributed proxies" was accepted at the distributed objects workshop at ECOOP this year. In this paper, we concentrate mainly on describing the software engineering problems associated with proxies in distributed systems and sketch a plausible language based solution. Generally proxies suffer from 1) redundant code, 2) multiple data translations that have to be done for marshalling, un-marshalling data, and 3) in the case when they are automatically generated, there is no universal or generic mapping between XML and object types. In general, I think there are lot of problems with writing distributed systems and better language support can alleviate some of them. This paper only described a few.

This was my first submission to a major conference, (albeit its only a workshop and received an embarrassingly low number of submissions, but it would be more embarrassing if my paper was rejected :)) and I am happy it was accepted. Also, I have never been to a conference before I am looking forward to attending this one.

Saturday, April 18, 2009

Rants about the mac

Last week I bought a new 15" macbook pro, and frankly I am not impressed. My problems with it:
  1. There are no "home" and "end" keys, and the Command + left arrow, right arrow don't always work. E.g. they don't work in vim, and inside the message compose text area in gmail home, end are Command + up, down! Actually as I type this blog I am not sure because the Command + up, down are working like Pg Up, Pg Dn and Command + left is for going back to the previous page. Also, the key board is not nearly as good as the Thinkpad keyboard. There are spaces between the keys which I don't like because invariably I hit the space between keys and the key is not pressed.
  2. Sticking with the keyboard, the keys don't have symbols on them. And most documentation contains these symbols instead of the key names. (trust me you can't figure them out on your own!)
  3. The multi touch trackpad is pretty good but guess what? It is not yet supported by the applications that I use most. E.g. the zoom in, zoom out don't work in Firefox, nor in Acrobat Reader; the three finger swipe for going back a page doesn't work in Firefox.
  4. Other minor issues include the glossy screen because it reflects too much, and in this model (the only one I can afford, apart from the 13") it's the only option. Also there are no webcam settings! My room is pretty bright, but my picture in the webcam is always dark and there is no way for me to change it. There is no way to include the date in the clock on the upper right hand corner
Most importantly I am still to figure why it is more "usable" than another operating system I know. So far I haven't found anything obvious but I am ready to give this more time. Perhaps after I am used to it I will post an entry on the things I like about the mac :)

Also, you must see this:

Saturday, April 4, 2009

New website

I recently created my website using Google sites. It has an easy to use interface and the site comes up pretty fast. I also redirect all traffic from my CMU (http://www.cs.cmu.edu/~dsaini) page to the google site. Google sites does not allow any javascript code at the moment, at least its not straightforward to insert javascript into the site. Something called a gadget needs to be created and that gadget can contain javascript. More instructions at http://www.glaciology.net/Home/Miscellaneous-Debris/Inserting-custom-gadgets-in-Google-Sites- . However the mechanism is ugly and it screws up the html by inserting tons of new lines.