Programming Languages

Vol. 9 No. 9 – September 2011

Programming Languages

Debugging on Live Systems

It's more of a social than a technical problem.

Debugging on Live Systems

It's more of a social than a technical problem.


Dear KV,

I've been trying to debug a problem on a system at work, but the control freaks who run our production systems don't want to give me access to the systems on which the bug always occurs. I haven't been able to reproduce the problem in the test environment on my desktop, but every day the bug happens on several production systems. I'm at the point of thinking about getting a key logger so I can steal the passwords necessary to get onto the production systems and finally see the problem "in the wild." I've never worked for such a bunch of fascists in my entire career.

by George Neville-Neil

Articles

Java Security Architecture Revisited

Hard technical problems and tough business challenges

Java Security Architecture Revisited

Hard technical problems and tough business challenges


Li Gong, Mozilla Online Ltd.


The Java platform JDK 1.0 was released in 1995 with a simplistic all-or-nothing "sandbox" security model. Li Gong joined the JavaSoft division of Sun Microsystems in 1996 and led the redesign of the security architecture that was first released in JDK 1.2 in 1998 and is now deployed on numerous systems and devices, not only on the desktop but also on the enterprise and mobile versions of Java.

This article looks back at a few of the hardest technical problems from a design and engineering perspective, as well as some tough business challenges for which research scientists are rarely trained. Li Gong offers a retrospective here culled from four previous occasions when he had the opportunity to dig into old notes and refresh his memory: 2002 Workshop on the Economics of Information Security, Berkeley, California; 2003 UW/MSR/CMU Summer Institute, Stevenson, Washington; 2009 ACM ACSAC (Annual Computer Security Applications Conference), Honolulu, Hawaii; and most recently, in May 2011, a seminar at the University of Cambridge Computer Laboratory, England.

by Li Gong

OCaml for the Masses

Why the next language you learn should be functional

OCaml for the Masses

Why the next language you learn should be functional


Yaron Minsky, Jane Street


Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function. - John Carmack


Functional programming is an old idea with a distinguished history. Lisp, a functional language inspired by Alonzo Church's lambda calculus, was one of the first programming languages developed at the dawn of the computing age. Statically typed functional languages such as OCaml and Haskell are newer, but their roots go deep—ML, from which they descend, dates back to work by Robin Milner in the early '70s relating to the pioneering LCF (Logic for Computable Functions) theorem prover.

by Yaron Minsky

The Software Industry IS the Problem

The time has come for software liability laws.

The Software Industry IS the Problem

The time has come for software liability laws.


Poul-Henning Kamp


One score and seven years ago, Ken Thompson brought forth a new problem, conceived by thinking, and dedicated to the proposition that those who trusted computers were in deep trouble.

I am, of course, talking about Thompson's Turing Award lecture, "Reflections on Trusting Trust."2 Unless you remember this piece by heart, you might want to take a moment to read it if at all possible.

by Poul-Henning Kamp