26.5.09

Slashdot: 'functional programming languages can beat C.'

Spotted on Slashdot by Greg Michaelson's brother.
John Fremlin has released what he believes to be the worlds fastest webserver for small dynamic content, teepeedee2. It is written entirely in LISP, the world's second oldest high-level programming language. He gave a talk at the Tokyo Linux Users Group last year, with benchmarks, which he says demonstrate that 'functional programming languages can beat C.' Imagine a small alternative to Ruby on rails, supporting the development of any web application, but much faster.

14.5.09

Robin Milner back in Edinburgh

Robin Milner has returned to Edinburgh as a visiting professor, and he just completed an enlightening series of lectures on bigraphs. This is how he began:
I always get nostalgic when I return to Edinburgh. On this visit, when I got off the train, a woman rushed up to me and asked "Are you Earnest?" I have a feeling that if I had said yes, I would be having a very good time right now.
(Audience rolls on the floor.)

Jan Wielemaker, Doxygen

Jan Wielemaker is speaking at ICLP on "Enabling serendipitous search on the Web of Data using Prolog". I wonder about whether there is some way to get web pages to publish logic formulas which could be used for inference during a search, and this looks like it might be close. RDF is aimed at this, of course, but I'm unclear on what sort of inference its triples enable; using Prolog sounds plausible for more serious inference.

Two Wielemaker papers of interest: Using Prolog as the fundament for applications on the semantic web and PlDoc: Wiki style Literate Programming for Prolog. The second mentions a popular non-Prolog documentation tool called Doxygen.

12.5.09

Hackers can sidejack cookies

A collage-homage to Guy L. Steele and Eric S. Raymond. Poetry in the 11 May 2009 New Yorker by Heather McHugh. Spotted by Ezra Cooper--thanks, Ezra!

11.5.09

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Several folk have pointed me at this, since Haskell and myself get a mention. I'm delighted to learn that "a monad is a monoid in the category of endofunctors"---anyone know where I can find a good tutorial?

6.001 RIP

Jerry Sussman has taught the last class ever of 6.001, Structure and Interpretation of Computer Programs, the introductory computing course at MIT. Here's a summary of the reasoning, taken from Dan Weinreb.
In 1980, computer engineering was based on starting with clearly-defined things (primitives or small programs) and using them to build larger things that ended up being clearly-defined. Composition of these fragments was the name of the game.

However, nowadays, a real engineer is given a big software library, with a 300-page manual that’s full of errors. He’s also given a robot, whose exact behavior is extremely hard to characterize (what happens when a wheel slips?). The engineer must learn to perform scientific experiments to find out how the software and hardware actually work, at least enough to accomplish the job at hand. Gerry pointed out that we may not like it this way (”because we’re old fogies”), but that’s the way it is, and M.I.T. has to take that into account.

My own take on this is that you need both. Yes, one of the great advances of modern times is that we have large systems with large libraries, and students must learn to work with that. But, no, that doesn't mean that fundamental skills taught in SICP are any less relevant.

As Joel Spolsky points out in The Perils of JavaSchools, it is vital that schools of computing continue to explode the minds of incoming undergraduates by exposing them to Scheme (or Haskell or Erlang or Prolog or anything else far from the mainstream).

21.4.09

Save Bletchley Park---your help needed

Sue Black writes:

Dear all,

Thank you so much for your support in the campaign to save Bletchley Park (BP) which I started last July. BP is not yet saved, but there have been several successes recently which are making the future seem much brighter. £900k has recently been pledged from English Heritage and Milton Keynes council towards the £10 million that BP need to ensure a secure future. This has meant that urgent repairs are now being undertaken :)

There has been a substantial amount of media coverage and award winning, and even celebrity endorsement: the wonderful Stephen Fry sent a tweet out via Twitter in February resulting in 8k hits on my blog in one day(!):

#bpark You might want to sign the Save Bletchley Park petition. Read @Dr_Black 's reasons why on http://is.gd/ikEh - BP won us the war! 2:11 AM Feb 4th from web

stephenfry
Stephen Fry

This is all really good news, and a good sign that the fortunes of BP are turning, but more help and support is still needed. The petition on the No. 10 Downing Street website is sitting at no. 5 with 20 099 votes and is not going to get any higher unless several thousand people sign it in the next month. This may be a tall order, but I am really hoping you can help.

Please sign the petition (it takes less than 1 minute) here:

http://petitions.number10.gov.uk/BletchleyPark/

and send this email to your colleagues, students, friends, relations and anyone else that you think might want to help save BP asking them to sign it too. If the petition gets to no. 1 it will show that there is a large amount of popular support and will ensure a response from government :)

Details of my campaign and achievements so far are on my blog:

http://www.savingbletchleypark.org/

Can we save Bletchley Park? Yes we can :)

Thanks very much for your time

Best regards

Sue

Dr Sue Black, Head of Department, University of Westminster, UK.

Famelab: What does logic have to do with Java?

Entry for Famelab 2009. Thanks to Nicola Hillhouse of VideoWiki for recording the video.

12.3.09

Nonreferential this

This month's CACM contains articles by Jeffrey Ullman and Dave Patterson on how to advise PhD students. I particularly enjoyed the following aside from Ullman on a key writing skill:
While it sounds pedantic at first, you get a huge increase in clarity by chasing the "nonreferential this" from students' writing. Many students (and others) use "this" to refer to a whole concept rather than a noun. For example: "If you turn the sproggle left, it will jam, and the glorp will not be able to move. This is why we foo the bar." Now the writer of this prose fully understands about sproggles and glorps, so they know whether we foo the bar because glorps do not move, or because the sproggle jammed. It is important for students to put themselves in the place of their readers, who may be a little shaky on how sproggles and glorps work, and need a more carefully written paragraph. Today, it is not that hard to find a "this" that is nonreferential. Almost all begin sentences, so grepping for 'This' will find them.

Cafe Scientifique

I've been invited to give a talk for Cafe Scientifique, 8.30pm Mon 16 March at the Edinburgh Filmhouse. Title and abstract below. I've been asked to speak without using overheads or visuals, which should be an interesting challenge! The link above takes you to the Facebook page for the event.

Proofs are Programs: 19th Century Logic and 21st Century Computing

As the 19th century drew to a close, logicians formalized an ideal notion of proof. They were driven by nothing other than an abiding interest in truth, and their proofs were as ethereal as the mind of God. Yet within decades these mathematical abstractions were realized by the hand of man, in the digital stored-program computer. How it came to be recognized that proofs and programs are the same is a story that spans a century, a chase with as many twists and turns as a thriller. At the end of the story is a principle for designing programming languages that will guide computers into the 21st century.

Similar material is covered in this article.