Thursday, November 29, 2007

I am truly flooded with work these days and things have been getting annoying. I was searching the web for something when I came across this. It considerably cheered me up.

Conway's Law: Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure.
Or, colloquially: Software is doomed to reflect structure of the organization that produces it.

I cam across this in Michael Feather's blog. That is an enjoyable entry, worth a read

Its a bit shocking that this is indeed true. Having worked on a certain large OS project once, I know this to be true about that system with surprising accuracy. So there is a good and bad side to this. The good is that some part of the org maybe actually functioning very well. The bad is that it may not be.

I recently switched to Vista and things were good for a while until some driver issues started showing up in the past few days. I haven't got a chance to chase it to its death, so I am having to proverbially 'live with it'. The strangest of the issues is this one:

I have been using a simple Logitech USB keyboard with my laptop for several weeks now. Its a normal usb keyboard - no fancy media buttons or anything. Its just plug and play keyboard. It worked fine for a while until, the other day, Vista asked me for a driver! The keyboard didn't come with one - it never needed one on XP. Also it didn't need one on Vista as well until that day. So Vista gives me a bunch of options for finding and installing the driver automagically and such. These cause Vista to search the windows database online and then do some other web search and such. Several minutes of waiting later it gives up and says it cant  find a driver. The keyboard didn't come with a CD and the Logitech website doesn't have a Vista driver for it. After that my keyboard stops working!

This is really stupid because my bios can detect the keyboard. The keyboard works fine till Vista logs on and prompts me for a driver! After some grief with this I learnt that it I simply close the window that prompts me for a driver, everything continues to work just fine. I can use the keyboard with Vista as long as I just ignore its lack of a driver.

I remember remarking to myself "How did they not notice how the keyboard worked before? This reminds of working at MS...".

Thursday, November 29, 2007 10:02:01 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
 Wednesday, November 28, 2007

An odd idea from a few days ago:

I watched this video a while back, this is Richard Feynman giving a lecture about discovering laws in physics -

He is talking about laws in physics. (the underlying Philosophy of Science that Feynman describes here is due to Karl Popper)

What Feynman is describing seems fundamentally different from what we do in the formal sciences like math/logic/cs. In the later we usually choose an axiom set that we believe to be right, based on our aesthetics, and then go on to prove other things that are right wrt our axioms.  Only things that are provable are taken to right and things that are right are irrefutably so. The system is inconsistent if we deduce False from the rules that we have. Inconsistent systems are not interesting. All formal methods work like this, in spirit - they keep track of what is right.

In what Feynman is describing, they don’t have a formal notion of right. They have a notion of what is wrong and as long as something cannot be constructively (by experiment) shown to be wrong, they can temporarily accept it to be not-wrong. If you look at this as a formal system, this is one where “what is not wrong yet” is known instead of what is right. Something is not wrong because 1) We don’t know a proof by which we can construct F from it or 2) Given our current inference rules there is no proof for it. But, we may add a new inference rule to the system in the future which may invalidate the belief that something is not wrong. It’s a feels like the opposite of what we do with logics.

Imagine a formal system or a model of computation based on notion like this. We are, in a fundamental sense, giving up the notion of consistency and completeness when we do this. I wonder if there exists a computational model that corresponds to such a “co-logic” of the sort they use in the *real* sciences. Such a system, in spirit, might be able to deal with partially correct data, incorrect assumptions etc. in a natural way. Absolutely correct data (or properties about the data) would be the exception.

(I wonder what this implies for the incompleteness theorem and such. I have been told that the "co-logic" I refer to here is actually co-induction. I see some similarities there, but I am not sure if its exactly that. )

A Tutorial on (Co)Algebras and (Co)Induction - Jacobs, Rutten

A Tutorial on Co-induction and Functional Programming

Wednesday, November 28, 2007 12:03:05 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  | 
 Sunday, November 18, 2007

Being at Indiana University, which is an old time Scheme hub, every now and then I am exposed to some of the turmoil in Scheme community over the new Scheme standard, R6RS. Essentially the community is having a hard time agreeing on what should be in the new standard. There are some very smart, very accomplished, very opinionated people who belong to this community and the language spec is a bit of a battle ground, from what I hear. (As are all language specs... some battles, I suspect, lack the intellectual quality of this one)

I am not very much of a Schemer myself, I sometimes indulge the language on a need basis. I hear from some my more intensely-Scheme-happy friends about some of the latest news at Scheme-spec land. One of the names that was mentioned in recent times is that of Will Clinger. Apparently, Will Clinger set into motion some of the discussion that formed the origins of the new standard, called R6RS (that is short for Revision-6 of the Report on Scheme - or something approximately like that). Over the years the formalization of R6RS has had its ups and downs. Of the many differences of opinion on the standard, some resulted in the formation of a group that decided to create an alternate standard. This group is called SchemePunks, apparently headed by Will Clinger himself (*). While this is mostly hearsay, it seemed amusing none the less. I also, sort of, like Scheme - so I listen in when one of these conversations come up.

Today I was searching for something and I came across the SchemePunks webpage/wiki. I didn't realize they had a webpage. Better yet no one told me that it written in excellent Hitchiker style! I read this and burst out laughing - what a way to motivate a language standard! I don't know any of the design decisions they have made, but the introduction here is sheer genius. Despite not being a Schemer, I am almost tempted to join in. :)

From the SchemePunks webpage:

On 29 August 2007, the Revised Revised Revised Revised Revised Revised Report on Scheme was ratified by the Steering Committee. This has made a lot of people quite angry and has been widely regarded as a bad move.

Many programmers believe that it was created by some sort of community process, though the Jatravartid people of Viltvodle VI believe that the entire Standard was in fact sneezed out of the nose of a being called the Great Green Arkleseizure. This theory is not widely accepted outside Viltvodle VI, and so, standards being the puzzling documents that they are, other standards are being designed. And this wiki, which is called SchemePunks, is definitely not part of the Scheme Underground, even if it is, which it isn't.

Which is very odd, because without that fairly simple piece of knowledge, nothing that is written on here could possibly make the slightest bit of sense. We hope to develop an alternative specification for the Family of Programming Languages known as Scheme. Watch this space.

Being somewhat bowled over, I had to look for the man - William Clinger, Professor of Computer Science, Northeastern U.
http://www.ccs.neu.edu/home/will/Personal/western1.jpg

:)

I wish more languages where designed in H2G2 spirit. Aah!

From his webpage:
http://www.ccs.neu.edu/home/will/R6RS/essay.txt

More than twenty years have passed since I wrote this [1]:

Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.

I have to say, I am compelled to agree, though I wonder how of it applies to the Scheme of today. The essay is worth a read, even if you are not a Schemer. You can skip over the Scheme specific parts and just look at the language design philosophy.

Sunday, November 18, 2007 11:11:35 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
 Saturday, November 17, 2007

Today I came across what is described as the Indian Cyber Pornography law -

http://netsafety.nic.in/cyberlaws.htm

Whoever publishes or transmits or causes to be published in the electronic form, any material which is lascivious or appeals to the prurient interest or if its effect is such as to tend to deprave and corrupt persons who are likely, having regard to all relevant circumstances, to read, see or hear the matter contained or embodied in it, shall be punished on first conviction with imprisonment of either description for a term which may extend to five years and with fine which may extend to one lakh rupees and in the event of a second or subsequent conviction with imprisonment of either description for a term which may extend to ten years and also with fine which may extend to two lakh rupees.

I keep looking at this and saying how unethical is this? Lets look at this a bit

any material which is lascivious:
Dictionary.com defines lascivious as:

1.inclined to lustfulness; wanton; lewd: a lascivious, girl-chasing old man.

2.arousing sexual desire: lascivious photographs.

3.indicating sexual interest or expressive of lust or lewdness: a lascivious gesture.

How many things can you list in the category of "arousing sexual desire" - surely in India it should be forbidden to arouse sexual desire.

appeals to the prurient interest:
From Dictionary.com:

1.having, inclined to have, or characterized by lascivious or lustful thoughts, desires, etc.

2.causing lasciviousness or lust.

3.having a restless desire or longing.

Of course, lustful thoughts and desires are bad... look at our population, we managed it by cross-pollination, not by sexual intercourse. Well, there might have been some intercourse, but it certainly wasn't lascivious or lustful in any way.

Certainly causing restless desire or longing is wrong. If anything you see online causes restless desire, let them know who put it up. They shall be taken care of.

Can somebody please arrest Kushwant Sigh? He gives me lustful thoughts. Also, next time a woman ogles at a sweaty cricketer on TV, arrest him. Get the television network too while you are at it. And yes, the 8.00 o' clock serials certainly have to go. They shall be replaced by non-lustful Vatsyayana tales. After all Indian women certainly shouldn't have any lustful thoughts.

or its effect is such as to tend to deprave and corrupt persons ...
What does that even mean? How do you know what might deprave or corrupt someone? You might as well have have said "or whatever else we like ..."

I've got to stop picking flaws in it, because there is nothing right in it. Seriously, what were they thinking? Calling the above law wrong is inappropriate because that would imply that it deserves some amount of credibility. Will the genius who wrote the above law please stand up for the recognition you deserve. Maybe we can can just focus on you instead of the quality of your legal skills.

I hope in a few years, hopefully within our life times, India will come to terms with pornography, prostitution, nudity, indecent exposure and stop having stork- stories around them. When India comes to terms with the notion of sexuality we can look back at absurdities like this and laugh.

Maybe a first step to doing that would be to stop pretending that we had it all sorted out in our 'great ancient culture'. The world of mass media, global communication and a global economy was not the world of 2500 year ago. These things affect our notions of sexuality as much as they affect any other aspect of our lives. We must look at the world as it is today, and at our personal values, and start making careful measured choices.

If laws like this weren't so blatantly unethical in what they impose, I could think of them as being funny. Like how back in the 1800s Indiana State in the US tried to establish mathematical fact by passing laws. They wanted a law that states that in Indiana  the mathematical constant Pi would have the value 3.2. Fascinating! We look at this and laugh today, but I don't see the Indian Pornography law as being very different. The Indiana Pi bill was after all a state bill that never got passed. The Indian Pornography law in a national law that is in effect, due to which the CEO of one of India's largest online auction site was arrested (its quiet funny how some of this is worded ".. had obtained the controversial act by Local Area Network (LAN).. " ) when he flew into India, from the US, to help work with the local police because someone sold "pornographic" material on his site.

I am so glad we come from a civilized country with well thought out laws that seek to protect the innocent and punish the immoral. Yeah!

Saturday, November 17, 2007 8:44:08 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  | 

I think we believe too much, without really doubting. Without questioning. Why is something this way and not another? Why is this the valid interpretation, not another? For any given observation can we only make a finite number of hypothesis?

Too little doubt. Too much taken on faith. Science is a culture of doubt. Too little science. Why is monadic computation pure? Why are term algebras and inductive definitions pure? What is pure? What are effects?

 

I really like this snippet:

Richard Feynman, in lecture talking about how to create a new law in physics. 1964.

A small follow-up clip:

http://www.youtube.com/watch?v=d1ZtRN-iGdQ&feature=related

Saturday, November 17, 2007 1:10:17 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
 Tuesday, November 13, 2007

If anyone finds this blog entry - dont drive yourself mad trying to get package installation to work through the menu for Xemacs on Vista. Essentially, if you try to do it, it complains with the comment:

WhatAPty

ftp anonymous@ftp.xemacs.org seems not a pty. Kill?

Exactly what could that mean? Maybe it means "Serve the Bud Lite, dooode... ". What a Pty! If you search for it you will get some amazingly contrived "solution" suggestions out there. Some of them involve installing cygwin, getting lftp or ncftp under cygwin, setting it up on your path and getting Xemacs to use one of them.

After wasting lots of time, I must say - its not worth it. Nothing worked. Not even getting the new beta XEmacs-21.5-b28 as opposed to the stable version XEmacs-21.4.21. Nothing worked.

The long and short of what I have to say is, dont bother. Just install the packages you need by hand. Its much easier than you think.

Go here to download the package you need -
http://ftp.xemacs.org/pub/xemacs/packages/

Then simply follow the instructions here.
http://www.xemacs.org/Documentation/packageGuide.html#Installing_by_Hand

Here is the relevant part:

Installing by Hand

Fetch the packages from the FTP site, CDROM whatever. The filenames have the form name-<version>-pkg.tar.gz and are gzipped tar files. For a fresh install it is sufficient to untar the file at the top of the package hierarchy. For example if we are installing the 'xemacs-base' package in version 1.27:
mkdir $prefix/lib/xemacs/xemacs-packages \ # if it does not exist yet
cd $prefix/lib/xemacs/xemacs-packages
gunzip -c ...../xemacs-base-1.27-pkg.tar.gz | tar xf -

For MULE related packages, it is best to untar in the mule-packages hierarchy, i.e. for the mule-base package, version 1.25
mkdir $prefix/lib/xemacs/mule-packages # if it does not exist yet
cd $prefix/lib/xemacs/mule-packages
gunzip -c ...../mule-base-1.25-pkg.tar.gz | tar xf -

That's it, just extract the package file into the folder!

I just installed ocaml support, and it just worked! I cant understand why its so hard to get this right in the menu. Grrr.... But then again, the sum total number of things I cant understand this is just one of the simpler ones.

Tuesday, November 13, 2007 10:46:42 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
 Sunday, November 11, 2007

Yesterday I went out to the the Union and bought myself a copy of Windows Vista Ultimate. My laptop is a Dell Inspiron, has a 1.7GHz Intel processor, 1 Gb or Ram and several external hard disks. The student license costs me ~20$, roughly the cost of two dinners. Vista roughly rates performance as 3.6 for my machine - the bottleneck being my processor speed.

I had heard several conflicting opinions about the OS, most being negative. I finally decided to try it to find out. I must say that in the past day or so my experience has been mostly pleasant. As a matter of fact the OS is yet to do anything to upset me very much.

Yes it is slightly slower than XP on my machine (my previous 2 year old XP setup had degenerated to crawl, so in cases it is actually faster than XP). Despite being slower it is not too frustrating as they have taken care of a vast number of small details, that makes the system more pleasant to use.  The weather gadget for example means that I don't have to use that piece of bloat from weather.com. Outlook actually seems to start a little more promptly on this OS.

Things like the fact that the OS asks about privilege escalations is rather nice. Even other things, like the fact that they did something as goofy sounding as brining your systems performance down to a single number makes a it rather handy. Most of the time people ask things like, "I have this hardware and this setup... will the following software run on it", now there is some heuristic with which you can come to an answer without relying on your local bullshit-expert. This is all entertaining and daresay, even useful.

I like the Aero look. I like the Win+Tab combination. I like the fact that they don't run the indexer all the time and bog down the system like they do on XP. I like how access control and such is better integrated into the UI. A better file copy interface finally. It also seems like there are some scheduler hacks to better prioritize interactive and foreground processes. Altogether a nice package.

Kudos Microsoft! I was truly skeptical and I had my XP installer handy. Now lets see how all this hold out for a few months.

Sunday, November 11, 2007 7:10:40 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  | 
 Tuesday, November 06, 2007

This Sunday, Kyle, Michael and I were enjoying a little late morning brunch at the lovely Le Petit Cafe and some light banter about polymorphic lambda calculi. Patrick would occasionally swing with his strange stories, narrated with his uniquely French mannerism. Joie de vivre!

Thus passed a nice Sunday morning when I see a little girl walk up to me. She is short, about 3 foot tall, not quiet opaque and is wearing a bright red cape and hood. She stands by my side, next to our table, and listens to us for a bit. Kyle and Michael were chatting about Kinds and Sorts. Then she says to me "What strange conversations you have Grandma". I say, "The better to understand them with, my dear". I expect her to scamper away, doing whatever it is that she needs to do, but instead she stands there, her large luminous eyes locked in mine. All this starts to get very irritating and I'd wish she would just buzz off when Kyle asks me something. I turn to reply mumbling that maybe I should eat her or something, that way she'd go away. Kyle asks me what I mean. I explain. The two of them suddenly get unnecessarily excited. "You hold him down. I will run for help". Groan...

Thinking back about it, I wonder if the wolf ate her simply because she was so annoying. After all, ignoring rumors, he was trying to get some sleep and there comes this pest asking all these inane questions.

Tuesday, November 06, 2007 1:13:19 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |