Thursday, June 14, 2012

On the Freshness of Math

It all started with a rather naive question asked by my 14 year old cousin, "Which programming language should I learn?", and by instinct I blurted out, "C, then you move on to C++." In India, most schools follow this pattern. (However, during my undergrad days I had to face a monstrous task of learning 8-9 languages. Thanks to a misprint on the syllabus which said Programming Languages, instead of Programming Language!) It is then, that I started wondering if I had wasted my time writing "Hello World"s, sorting integers and implementing Poker in some silly languages from Tatooine.

Modern programming can be said to have begun with the machine language programs, followed by the assembly languges, which later developed in to languages like FORTRAN, COBOL, and the most interesting of them all, LISP. One thing to note here is that Lisp and Fortran were the trunks of two separate evolutionary trees, one rooted in math and one rooted in machine architecture. Lisp was not really designed to be a programming language. McCarthy did eventually intend to develop a programming language in this sense, but the Lisp that they actually ended up with was based on something separate that he did as a theoretical exercise- an effort to define a more convenient alternative to the Turing Machine.  As McCarthy said later,

"Another way to show that Lisp was neater than Turing machines was to write a universal Lisp function and show that it is briefer and more comprehensible than the description of a universal Turing machine. This was the Lisp function eval..., which computes the value of a Lisp expression.... Writing eval required inventing a notation representing Lisp functions as Lisp data, and such a notation was devised for the purposes of the paper with no thought that it would be used to express Lisp programs in practice." 
What happened next was that, some time in late 1958, Steve Russell, one of McCarthy's grad students, looked at this definition of eval and realized that if he translated it into machine language, the result would be a Lisp interpreter. So the short explanation of why this 1950s language is not obsolete is that it was not technology but math, and math doesn't get stale. For a complete list of what made Lisp different seeMcCarthy's 1960 paper, RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINEis the original paper on Lisp. (Later, Prolog did stir up things a bit though.)

Paul Graham argues that there have been two really clean, consistent models of programming so far: the C model and the Lisp model. These two seem points of high ground, with swampy lowlands between them. As computers have grown more powerful, the new languages being developed have been moving steadily toward the Lisp model. Looking at these languages in order, Java, Perl, Python, one may notice an interesting pattern, that is, each one is progressively more like Lisp! Graham even claims that simple Lisp programs can be converted into Python line for line. [Bonus for staying with me this far: Write a Lisp Interpreter in Python!]

Isn't it interesting to note how some formal mathematical theory is being adopted by the mainstream consumerism? Stuff like Lambda Expressions are being re-acknowledged as being indispensable tools for easy data manipulation (like in C#/,Net). Now with the advent of multi-paradigm programming languages, things are all set to change, but not for things with strong mathematical background and formal definition. Only the feeble needs worrying!


Tuesday, June 21, 2011

O Tablet, My Tablet: Sakshat, India's $35 tablet


Five years ago, the then education secretary thought of taking on Nicholas Negroponte's $100 laptop. One and a half years after his demise,this June, HRD Minister Kapil Sibal unveiled a Rs 1500 ($35) laptop. But what is it actually??

This project was initially a drive to provide technology based education to rural children,. This along with cheap internet was supposed to help farmers find out about weather, fertilizers, proper, communicate with other farmers and fix the selling price of their product. This was the project Project Simputer(started in 2000-01). [The very second post of this blog was on the Simputer.] I spent my 2009 summer in IITG working on one of these local language speech recognition projects under Dr. P.K. Das. No idea what happened to it. :(

Back to Shakshat. This 7" LCD resistive touchscreen tablet is powered by an Android OS and has all basic functionality like camera for video-conferencing, Wi-Fi, 2 USB port, 32GB hard drive and a 2GB RAM. There's support for Open Office, SciLab and Internet browsing. It also has an HDMI port! However, I personally feel that the tablet is a bit bulky, and I have serious doubta about the processor. But for $35 I have no right to complain!

As a part of India’s National Mission for Education, Information and Communication Technology (NMEICT) 504 universities and 25,000 colleges countrywide would be the recipients of these laptops. [Not sure, it might also be institutes of the sub-continent]

10,000 Sakshat tablets will be shipped to IIT Jaipur by June-end, and in four months 90, 000 units will be distributed among other IITs. Nevertheless it is interesting to see how something aimed at the farmers and their children, ultimately ends up in the top colleges of the country. I sure hope that a few of these are siphoned out and sold in the grey market! Cheers!



Monday, November 1, 2010

Publishing for the "Average Joe"

I have always been a "time-pass researcher" looking for avenues where I can show off my work to the semi curious and the curious masses.
For people like me IEEE has been the Tinseltown of academic publishing. But many feel IEEE to be a joke, where you end up paying a lot of money for no good reason (except for the cool newsletters and stuff which lame coders and wannabes can flaunt in front of their friends).
A few years back we saw a new funda called Open Access Journal make it really big. And today it has evolved (or perhaps devolved) to such an extent where we can "PUBLISH" whatever we want.
Anyway, everything went well for me- I passed with GOOD grades, got placed, but one day I wondered if I could publish something as a proper research work, with minimum effort that is. In my fourth year
engineering project under SAURAVJYOTI SARMAH in Jorhat Engineering College we proposed a novel algorithm which could detect human faces in any image, the USP being less processing time. It was entitled "Face Detection Algorithm based on Skin color segmentation and Density Grid
Clustering". And guess what?! I did it! I did it with the help of all the people who fostered the idea of open publishing, free knowledge and a little known website called publishresearch.com (Btw, it doesn't even have a section for Computer Science. My dissertation is in in the "Others" category).
Whatever be it, point is that Timothy R. Lalhmangaiha, Biswajit Boruah and Zubin Bhuyan have finally published a research paper. :P
Hahahaha.... Now, suck on that!!

Wednesday, July 7, 2010

On C#, TFS, CIL and "Chai 4 All"!

[IEEE Transactions on Software Development Environment Work Ethics, Vol I, 2010] :P


Have you ever met a person who could wobble his ears??

Or someone whose knowledge was as vast (and random) as Wikipedia??

Well, if you ask me, I'd say "YES!"

Its my third day at indigo Architects and I have seen it all. "Sh*t" maybe OK here, but "SIR", my friend, is a serious crime,- the punishment being sentenced to make the evening tea for everyone.

Sent a mail without subject?? Evening tea!

Late for the morning assembly at 9:30 -> Evening tea!

Apart from all these, we have The Great Varun Raj Minocha, aka VRM, who has left no stone unturned to elevate us minions from a B/W C land, to the more organized world of C#. Its all in how you visualize, he says. We also have Amar and Gourav trying to polish us into something usable....