Home Interests Portfolio Links Contact

Interests

Web Development

Leveraging the Internet infrastructure to make life better


Internet connects the world

They say a year in the Internet business is like a dog year.. equivalent to seven years in a regular person’s life. In other words, it’s evolving fast and faster. ~Vinton Cerf

We all use web browsers (Firefox/ Internet Explorer/ Google Chrome/ ...); and our use of the browser has skyrocketed in the last few years...

From being a software-for-the-geeks to a layman’s most useful tool on a computing machine, the web browser has come a long way. With better & better javascript interpreters, web browsers have been increasingly used as a medium to host full-fledged applications. GMail (and now, the other prominent ones), Outlook Web Access, Google Docs are some of the several applications on the web, that replace traditional desktop applications.

Clearly, this trend is leading us somewhere. Perhaps a web operating system; wherein: all our machine will have, is a web browser. Our applications & data will be hosted on the cloud; and a pay-for-use business model may be embraced.

Apart from these RIAs (Rich Internet Applications), an increasing number of systems are using the Internet as an integral part of their applications. With distributed computing, decentralized (and distributed) databases, IPv6 and the 4G telecom standard (the all-IP network), the Internet is getting importance like never before.

I started with HTML, Javascript & CSS in 2003, PHP/MySQL in 2007, and now work with Python-Django /PostgreSQL for serverside and Jquery or Qooxdoo for client side scripting. I have developed several (order of tens, lost count :P) production websites/webapps all along.

My first website was hosted on Yahoo! Geocities. After several free webhosts, I finally have my own web infrastructure in place. I have also deployed some experimental stuff on Google App Engine and look forward to trying Amazon’s Web Services soon.

I am looking at using the powerful Internet infrastructure to automate processes in our life to make things easier. Building systems to automate processes at educational institutions has been my prime focus for some time now.

Natural Language Processing

Using Statistical models to model and understand natural languages


A random piece of text

If you want to tell the untold stories, if you want to give voice to the voiceless, you’ve got to find a language. ~Salman Rushdie

A set of symbols; so powerful, that we can use their permutations to communicate (and even store) our ideas & feelings...

Human beings use language for communication among one another; so do other animals... A human can talk to a machine, using language. The difference lies in structure. The machine requires that the human use a structured and unambiguous language. Natural Languages (like English, Hindi, Kannada...), however, lack structure and are ambiguous. The lack of structure that makes natural language so powerful, makes a machine incapable of understanding languages!

Significant effort has gone into defining the rules of natural language, trying to capture the embedded information. While this approach of defining rules has worked reasonably well for several applications, it lacks scale and fails to handle the evolving nature of language.

Recently, statistical models have been increasingly used, to model languages and better what the rule-based systems achieved. This has been working reasonably well so far; a major portion of the knowledge space though, remains unexplored.

I started with a use-case of a sentence level meaning comparision in 2008; built language models, classifiers and HMM taggers in 2009. I interned with a reputed research lab in 2010, where I worked on an application of Indic Transliteration . I primarily work on English, ocassionally on Hindi, wish to work on Kannada (Interested? Contact me)

Though I have spent quite some time on Language Processing, I do enjoy modeling situations that are more structured. Some call this Machine Learning. The only difference here, is that the data you are working on, is not natural language. It might be a database, or just a sequence of a defined set of symbols (like pixels or genes). The math behind the modeling remains the same.

Finding structure in seemingly random things in real world is something I’ve enjoyed in my experiences with languages and other structured data I have worked on. I hope to do a lot more of this in the days to come.

Graphics/Web Design

Design usually focussed at making websites accessible and aesthetic


A random design piece

Design is the method of putting form and content together. Design, just as art, has multiple definitions; there is no single definition. Design can be art. Design can be aesthetics. Design is so simple, that’s why it is so complicated. ~Paul Rand

Design lets you set your mind free. All you need is a pencil and a paper. I spend a significant part of my college hours (the boring lecture hours) with a pen, trying to get (useless) stuff on paper. While most of what comes out is useless, it does at times help come up with new and valuable ideas!

Now that we have evolved software for graphics design, like Adobe Photoshop and Corel Draw, designing has become a lot more easier. Of course, there is the loss of flexibility but with pen tablets and the likes coming in, you can’t complaint about that either...

On a side note, the flexibility-on-paper can also be applied to programming languages! People call Javascript, a poorly designed language. It does have quite a few design errors, but we fail to look at the expressive power that Javascript places in our hands. With functions as first class objects, and support for closure, it is like a blank paper. You decide what you want to do with it!

Apart from 2D Graphics -- the one I generally deal with -- there is a good amount of work done in 3D Graphics as well. Software like 3ds Max, Blender, Maya help create stunning 3D models and animations.

I started with graphics design in 2005. I have gradually improved my skills since then. My main focus remains 2D design and more often than not, I work on Adobe Photoshop. I did design for my college magazine, Éclat in 2008 and 2009...

For me, graphics design is a supplement to my web development projects. A good UI makes people appreciate your work better! Its worse sometimes; when all that matters is your UI... My design is usually non-funky, neat and simplistic (imho). Also, I adhere to W3C web design standards as far as possible (yes, that was a disclaimer). Nevertheless, Graphics design remains something I love to do.