Comparison between Object Capabilities and Information Flow

Augmenting the Capability Model with Information Flows I’ve already convinced myself that labels are best implemented as tags on primitive values and references. In JavaScript, it is sometimes useful to view an object as a heterogeneous hash table, mapping field…

Approaches to JavaScript Security

This is, as best as I can give right now, an exhaustive enumeration of all the different approaches to JavaScript security. Source Translation. Does a source-to-source translation of JS into a secure subset. The technique is used to jail an…

Security Typing for JavaScript

Devil in the details. I’d like to repeat an example (given my Mark Miller in his work on E), of two different ways to copy a file, and the security implications of each. First, shell$ cp foo.txt bar.txt This command…

The Wrapper Conundrum

In my information flow research, we have the objective of attaching a security label to every object/value within the running system of a JavaScript VM. Two approaches are immediately evident: Fat Values. We can extend the native encoding of values…

Arrow’s voting theorem of Economics

I was in the dining hall, and the TV there had some talking heads babbling about the stock market. I couldn’t really make out what they were saying, but it set the stage in my mind for some other thoughts….

Const-correctness

One of my fellow lab-mates has already posted about const-correctness, because of some similar issues. My work today, takes it a tiny bit further into sheer insanity. If you don’t start your program off using a const-correctness discipline, it’s very…

Type-dispatch with Exceptions

I’m one of those Object Oriented programmers that consider type-inspection to be a design flaw. Much to my chagrin, I’ve found myself making occasional use of the Java instanceof keyword. In my most recent class lecture, we discussed Exceptions, and…

Method Extensions

I’ve come across another programming language feature that I would like to have. The last one was a bit outlandish, and I’d really like to refine it a bit. Dress it up a little. Supposing you were asked to perform…

The Future of the Web should be Lisp

I was reading Steve Yegge’s drunken rant on The Emacs Problem. It wasn’t able to convince me that Lisp was a great language for text processing, but it did convince me that Lisp is a fantastic language for data interchange….

Meaningless is Meaningful

Today I had a long and philosophical discussion with one of my friends. He started the conversation with a baited question: “Have you ever met a Solipsist?”. How could I avoid that one? Of course the conversation delved into the…