Monday, December 15, 2008

For a while now I have been using the Sumatra PDF viewer on windows as opposed to Acrobat Reader (which is pretty much the standard). The main reason is this: when I am working with Latex or Tex and generating pdf documents Acroread is very annoying because it holds a lock on the PDF file. This means that part way during compilation pdflatex complains that is cannot open the PDF file for output. I then have to close Acrobat Reader, rerun pdflatex, and then open up the file and go to the particular page to see the changes. That entire hassle is eliminated with Sumatra PDF.

Sumatra PDF does not hold a lock on the file. Which means pdflatex runs to completion just fine. Further Sumatra detects that the PDF file has changed on disk and refreshes itself! When it does this refresh as far as possible it stays on the same page (it does not do an effective restart) and hence I can see the little edit I made immediately. Sumatra PDF is a bit slower that Acrobat Reader, has less features and has crashed on occasion. Despite that, it says me a large amount of time when working with Latex. Highly recommended for these purposes.

Sumatra PDF

http://blog.kowalczyk.info/software/sumatrapdf/

MikTex

http://miktex.org/

Monday, December 15, 2008 12:09:38 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  | 
 Monday, December 01, 2008

India has a odd situation with respect to politics and government. Most well educated people don't want to have anything to do with it. These fields are not considered 'good' or 'respectable' career options. The people who run the administration and drive the policy making are the ones who were the bottom of your high school or college class. No one who has the skills to be anything better considers politics to be a respectable enough life goal. While I was in India I thought this was normal and maybe even the right thing.

Why is this? In large part because we see the ugly side of our politics too often: the crudeness, the outright dishonesty, the corruption and the incompetence. "I don't want to be in there, fighting the pig in the mud".

Case in point: Growing up in Kerala I have heard this man  make too many inappropriate and distasteful comments on the state TV channels. He is the sort of textbook politician whose uncouth manner paints such a low picture of politics in my state that it deters most well to do people from having anything to do with him and his ilk.

Last week we had the terrorist situation in Mumbai that left everyone saddened and apprehensive of the future in the region. Mr Achuthanandan, who is currently the Chief Minister of the State of Kerala, shows up at the home of one of the commandos, Major Sandeep Unnikrishnan, who died fighting the terrorists. Why? To use a rather blunt metaphor, its a bit like a dog pissing on a pole to mark its territory - the obligated visited to show your solidarity and to establish your political presence.

The deceased Major's father decides that he does not want to entertain any such display in his house and he tells Mr Achuthanandan to leave. What would someone who truly felt for their loss do? What would someone who is touched by the situation in Mumbai and for those who lost their lives there do? And what does Achuthanandan do?

 

Major Unnikrishnan's father refuses to meet Kerala CM

Kerala CM insults slain Major's dad.

Monday, December 01, 2008 4:50:45 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  | 
 Thursday, October 09, 2008

American politics can be very interesting - a bit more that some of the popular sport here. Once in a while however you come across absolute gems, like this one by Amazon (seriously, this is on their homepage - sheer genius!):

image

And in the explanation of this is:

This Meter is Measuring...
This meter was calculated by comparing the all-time sales of the following groups of items.
   Republican: Waterford Holiday Heirlooms Republican Elephant Waterford
   Democrat: Waterford Holiday Heirlooms Democratic Donkey Waterford

"Waterford Holiday Heirlooms Democratic Donkey".... ha ha ha. Brilliant!

Thursday, October 09, 2008 3:52:41 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
 Wednesday, September 03, 2008

Google has released a new browser called Google Chrome. I had heard of this project a while back when I was working at Google and I have been hoping ever since that they release it so that I can finally get off Internet Explorer.

So Chrome is fast, feels light weight and uncluttered. After playing around with it a bit I have replaced IE as my default browser (finally). This is just their Beta 1 release but it feels so good.

logo_sm

There are a few things that I would like it to have such as integration with the fingerprint authentication service so that the logons I created previously work with Chrome as well.

You should try it out:
http://www.google.com/chrome/

There is a fun comic here about chrome:
http://www.google.com/googlebooks/chrome/

And many YouTube videos:
http://www.youtube.com/watch?v=JGmO7Oximw8
"Browsers need to get better because they were designed for an era when web pages were doing completely different things..". I agree.

 

I have heard from places that Chrome does not work well with Silverlight. Personally I don't care too much because I don't use Silverlight myself. I have never been convinced enough to install Silverlight because I felt that it would make an already slow and frustrating browsing experience degenerate a bit more. Which is interesting because now that Chrome is so fast i probably don't mind the penalty of Silverlight slowing it down a bit. So if some folk at MS write a good Silverlight plugin for Chrome arrogant little uns like me might try it out.

 

On Privacy

You should also read the privacy policy (if you care about such things). No, no one is stealing your passwords, but someone can be watching your "behavior":
http://www.google.com/chrome/intl/en/privacy.html

I for one have disabled the auto-suggestions feature as explained here: http://www.google.com/support/chrome/bin/answer.py?answer=95656&hl=en

Its a nice feature, but when I think through the implications, I'd rather not have it. Your mileage might vary.

 

Now can someone write a fast, lightweight and feature rich Email and Calendar app so that I can get rid of Outlook?

Wednesday, September 03, 2008 10:50:24 AM (Eastern Standard Time, UTC-05:00)  #    Comments [4]  | 
 Wednesday, August 20, 2008
  Summer... 

Summer is wrapping up. What a summer it was! In about a week I should be back in beautiful Bloomington to continue on my PhD.

This summer I got myself

  • An ex-girlfriend
  • A wife
  • A hot girl to hang around with in Vancouver, Canada (the most livable city on the world)
  • Lots of fun experience dealing with US border crossings
  • My first non-trivial car accident
  • An Acratech Ultimate V2 ballhead
  • A Flashpoint carbon fiber tripod
  • An HP Tablet PC
  • A new sword
  • A deep understanding of Parsing

and more...

As I write this I wonder how much of my life I have expended looking at this -

image

Life!

ps. The ex-girlfriend, wife and hot girl are the same - everything else in the list is different (for example the ball head is not the same as the tablet PC).

Wednesday, August 20, 2008 6:30:34 PM (Eastern Standard Time, UTC-05:00)  #    Comments [6]  | 
 Sunday, April 20, 2008

...for an internship this summer. I found this:

Jorge Cham is always giving away our secrets.

Sunday, April 20, 2008 2:08:02 PM (Eastern Standard Time, UTC-05:00)  #    Comments [4]  | 
 Friday, April 11, 2008

I came across this old paper by Milner, apparently one of the seminal ones about LCF:

ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/73/332/CS-TR-73-332.pdf

I was surprised by (1) how readable the early parts of the paper are and more importantly (2) how all this didn’t happen so long back. When it comes to denotational semantics, LCF and such I somehow had unfounded feeling that its all ancient and set in stone. Plotkin’s foundational work that revealed huge gaps in the denotational world view happened in my lifetime (well almost)… and the computer science community has studied it and has (mostly) moved on. That’s a really fast pace!

This was originally linked from LTU.

Friday, April 11, 2008 12:48:06 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
 Sunday, April 06, 2008

I was speaking with a friend the other day and we were talking about the interaction of effects and how to explain them.

One informal way to explain some additions to languages are that they are scale down localized structured versions of features that were largely available for the whole program. Let me explain: Did you start programming with an imperative language with global variables? (There is one called C that affected the minds of many people.) When you switch to an object oriented language, someone might have explained to you that there is no longer any need for real global variables. You may make these wannabe globals members of a class. You can turn methods that need the globals into members of that class as well. So they are global as far as the methods in question go, but they are not truly global.

In much the same way, we can explain yield. Programming languages have always had input and output operators - scanf-printf, gets-puts etc. However these operators are global with respect to your program. When you execute a printf, it is the output of the whole program, not of any one part of it. Yield on the other hand can be thought of as a localized input output operator. You can yield values from one part of the program to another part of the program. You get input from one part of the program. A method that yields is a packaged up opaque entity, a little sub-program, that communicates using yield with its consuming-context, the rest of the program.

We can explain exceptions in this way as well. In the absence of exceptions when there was a fault, the whole program would come down. It would core dump, modulo global error handlers. The whole machine does not come down, just the program that faults does. The environment that hosts the program may realize that there is a fault and do something about it. Its much the same with exceptions, but with the difference that only a part of the program "core dumps". Its a localized failure of the program that the environment (the rest of the program) can handle (or not handle, thereby making it a global failure).

So can you play this game or any other global program features, turning them into powerful localized structured operators?

Sunday, April 06, 2008 9:55:25 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |