Life as a PhD student, is not without its ups and downs. The big up being that you get to do pretty much whatever you want for a few years and almost reliably come out looking cool in the end. Of course some of you may debate if the whole 40-year old virgin look is cool, but lets not go there. One of the upgrades these days, Pooja ki meherbani, is my cool new phone a Cingular 3125 -
Of course, this is just a poor grad student version of her cool phone. My other Windows Mobile based gadget that I used is my little iPaq hx2495. When getting a phone with Windows on it, I was a little apprehensive. Afterall I had to keep rebooting (soft reseting) my IPaq every now an then. So far the phone has been pleasently functional with very few, in any, annoyances. I wish the alarm was a little louder and such... Its also a strange feeling to have a phone that truly talks to your PC. Since I got this, I have been paying attention to my Contacts list in Outlook, sometimes even assigning pictures of people and such. Most of my previous phones were just that, phones. Here is somethng that begs to be hacked with. Nice.
One huge downgrade of being a poor grad student is that you are poor. Most of the time, I couldnt care much for it. I am usually having too much fun to notice being poor. Except that you cannot buy that cool new lens that you'd like and such... but well. The poverty really strikes you when something comes up - something has come up - dental problems. The university student insurnace doesnt cover dental and boy, is it expensive in this country.With the slightest thing running into several hundred dollars, I wonder how most medium salary working people afford dental bills here. And there are few things as maddening and just downright painful like a toothache. I sort of miss being of in India in regards to all things medical where one could expect to walk in and get treated without an appointment, and most of the time end up with an affordable bill (atleast for most common place ailments).
These days I seem to have a quiet a bit of free time on my hands. This semester has been nowhere as busy as my previous ones. I am yet to start on any major pieces of work. Hence there is lots of time to blog. I am looking to get deliciously busy again. I have a job teaching operating systems this semester, imagine that. The professor in concern does a fair bit of travelling, so I do a large number of his lecture sessions as well and assist people in writing parts of the OS that they have to work on for their assignments and such. They just finished implementing some synchronisation primitives last week, they are going on to implement basic user space process support, system calls, some IO calls and some process management API (fork, exec, waitpid and such) in the coming weeks. Grading these sorts of things are tricky, especially in the context of partial solutions. Not every one gets things done properly, how do you really gauge the value of a partly working fork() system call? Fun fun.
One of my favourite places in Bloomington is this little coffee shop called Soma. The only really bad thing about Soma is that they ask you to leave at 11.00 pm. They need to close apparently, what a lame excuse! Some days I drag myself unwillingly to a nearby Starbucks that is open overnight. A t-shirt that is for sale at Soma says "No Corporate Aftertaste". Right. Sometimes at Starbucks, on some nights, I run into Abdulaziz Ghuloum. Aziz gives me his usual smile which says, "Look here is Mr. I-Dont-Go-To-Starbucks".
Aziz is usually upto hacking his Scheme compiler, Ikarus (maybe the only one that may compare with Kent's Chez), or is engaged in some intellectual activity broadly (very broadly) related to his compiler. I remember one of these occasions when I found Aziz peering intently at this paper and I made the mistake of going over to ask what he was upto. He was trying to solve this Sudoku puzzle. "I am trying to solve it without writing anything", he says. "Its fun, join me". Big mistake, the next we know its 5 in the morning.
The other night, he was standing around smoking and I was standing around pretending to be smoking (I dont smoke, yet) and he says, "There is something strange about R6's exception semantics". "What?". R6 is short for R6RS, which is short for Revision 6 of the Report on the Algorithmic Language Scheme. In turns out there is something truly strange about Scheme's new exception handling mechanism. The textual description in the report makes almost no sense. Fortunately, very unlike Schemers, they included a formal operational semantics. A short while later we had an implementation of R6's exception handling implemented in about a page of code. I should write about this sometime, it is truly strange - if I knew what they were smoking when they did this, I might consider smoking too. There are one or two things about the way it interacts with stacks that would make a C#-Java programmer weep. (The C++ programmers are weeping all the time anyway.)
Work-wise one of the things I am being drawn into is thinking about macro-systems. More specifically, combining macro with types. Some of it looks truly interesting and maybe of some lasting value. This is also a rather strange space. Thinking about the issues underlying staged evaluation makes thinking about the semantics of control effects a walk in the park. Things like call/cc, shift-reset seem man-sized in comparison to the juggernaut of staged evaluation.
What do I mean by staging? A good approximate is to think about those times when you generated SQL queries from a host program, say a C# program. How did you generate that query? You pieced it together using substrings to make up a string that represents your query. Getting the syntax of the final query right is your sole responsibility. C# does nothing to check this for you. Even if the syntax is correct, making sure that your query is typed correctly (that it used the right fields for the right tables and such) is completely upto you. Can we do a better job? In other words, given a host language and a target language, can there be better gaurantees provided in the host language for generating code of the target language? Things like LINQ and its associated quotation mechanism is an approximation of a solution in this direction.
The situation however is a common one. Almost of every web application has to deal with the nightmare of generating client side javascript, html, sql code and god knows what else. Every language with eval encounters this. Most non-trivial macro systems face this and so on.
I spent a major part of last week trying to study some of the related work that has already been done. One significant piece of work, that is obviously relevant, is Walid Taha's MetaML, MetaOCaml and Environment Classifiers. Another one that I personally suspect is related is Barry Jay's Pattern Calculus. I dont have a concrete enough argument to make about this connection, so I am generally silent about this for now - atleast until I can better articulate things.
Trying to understand the type theory behind Walid Taha's Environment Classifiers has been rather mind-bending. I was shocked that someone could do so much thinking for just one paper. After spending a few nights poring over the details of the type system, and not getting too far, Aziz tells me, "I think he is Egyptian". It then made a lot of sense to me. I have been having a hard enough time trying to keep up with the one other Egyptian I know - my advisor. I was begining to see a pattern here.
So at approximately 3 at night (or morning), knocked high on caffeine and toothache and type theory, I have the vision from several thousand years ago. With a slightly smug expression and a questioning eyebrow the Egyptian architect looks at the newly constructed pyramid at Giza, his eyes slightly disappointed. "Is this all we can do?". At approximately the same time, my own avatar at Mohen-jo-daro looks rather pleased. He addresses his confused looking brethren and says in ancient avestha-sanskrit with a slight tam accent, "Yand frends, We will call this a Drain." :)
A couple of days later my advisor, with a rather sympathetic expression, explains to me that this was Walid's PhD work and it took many years of refinements even after his PhD which culminated in the Environment Classifiers paper. Whew! This definitely helped my Mohen-jo-daro alter-avatar feel better. So after he invents the drain, he goes home, has a nice supper, samples some soma and then proves P = NP.
Humko maloom hai jannat ki haqeeqat lekin, Dil ke khush rakhne ko, Ghalib, yeh khayaal acha hai
Remember Me
a@href@title, strike
Powered by: newtelligence dasBlog 2.0.7226.0
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2008, Roshan James
E-mail