23.4.07

Google Tech Talk: Parametric Polymorphism

A talk by Phil Gossett given in Google's Advanced Programming Language series. Cites my work on type classes and the Girard-Reynolds isomorphism; I was pleased to see he began by discussing Frege and Russell, and finished by describing Lennart Augustsson's Djinn. Nice talk, and has me looking forward to speaking at Google (which I'm scheduled to do this Friday); my talk will cover some similar material. (I tried to find Gossett's e-mail and failed, maybe this will help me get in touch.)

I spotted a couple of technical errors in the talk. (1) He suggested that the Girard-Reynolds Isomorphism guarantees that every term that has a given polymorphic type is isomorphic; in fact, distinct proofs of a theorem correspond to distinct terms of a type. (2) In answer to a question, he said that parametricity does not extend to type classes; in fact, my paper Theorems for Free includes a sketch of how parametricity does extend to type classes (see Section 3.4).

10.4.07

Magic Ink: Information Software and the Graphical Interface

A screed by Bret Victor. The only document I've read that compares with Edward Tufte (author of four famous books on information design). Shows how beautiful a web page can be. My favourite parts were
  • Demonstration: Showing the data. Redesigning Amazon as an information graphic.
  • Demonstration: Arranging the data. Redesigning Yahoo! Movies as an information graphic.
I would skip to those to start. Spotted via Lambda the Ultimate.

Particle-wave duality

A fragment of an animated video explaining particle-wave duality. Nicely done, though the explanation of how a particle behaves when observed verges on anthropomorphic. Of course, I like the character in the superhero suit. On YouTube, spotted via Slashdot Review.

16.3.07

Three ways to improve your writing

Read these three texts. Each is short, but the benefits will last a long time. Heeding their advice will improve your life. It will improve mine too, if I ever read what you write.
  • Minicourse on Technical Writing by Donald Knuth. When an undergraduate I had the great fortune to take Knuth's course on algorithms, which included a couple of lectures on technical writing. If my writing is readable, that owes much to Knuth. Later, Knuth ran a semester-long seminar on the subject, which you'll find at the end of this link. The first three sections are the minicourse, and worth their weight in gold.

    I endorse all he says, save that in Section 1, Point 24, I think even the 'good' examples are bad. Better to find a vigorous verb for the vital first sentence, rather than dull 'is' or 'are'.

  • Politics and the English Language by George Orwell. The predecessor of Haskell was named Orwell, and the user manual began with this quotation from the essay:
    A man may take to drink because he feels himself to be a failure, and then fail all the more completely because he drinks. It is rather the same thing that is happening to the English language. It becomes ugly and inaccurate because our thoughts are foolish, but the slovenliness of our language makes it easier for us to have foolish thoughts.
    Orwell explains why you cannot think clearly unless you express yourself clearly, and gives rules of thumb to help ensure the latter.

  • The Elements of Style by William Strunk Jr and E. B. White. The book is 105 pages and costs under five pounds. It could be the best five pounds you ever spent.

    If you're too cheap to buy the book, Bartelby has an online version of the first edition, Strunk before White.
Read, enjoy, and write better!

28.2.07

A modern eye on ML type inference

François Pottier, A modern eye on ML type inference: old techniques and recent developments. Lecture notes for the APPSEM Summer School, September 2005, Frauenchiemsee, Germany. The above link takes you to the slides of the talk; there is also an associated paper.

Many interesting ideas, including a constraint-based view of Hindley-Milner typing that includes 'let' generalization (something that I've sought ever since reading Mitchell Wand's lovely paper on the subject). Thanks to Wand for the recommendation.

21.2.07

Lisp in XKCD

Lisp
From XKCD, a webcomic of romance, sarcasm, math, and language, by Randall Munroe. Thanks to Mitchell Wand for passing this on!

When IT Becomes a Profession

An intriguing article, suggesting that the current Computing Science must evolve into a much broader discipline. Touches on a number of points, including principles vs. practices, ways in which computing must 'cross the chasm' (in the sense of Geoffrey Moore's book), why computing must focus on its customers, invention vs. innovation, and CS vs. IT. Thanks to Uday Reddy for recommending it.

11.2.07

First Java, then Ajax, and now ... Flash?

Bruce Eckel argues that Flash is the new, new thing. He's particularly keen on Flex, which compiles Actionscript, a superset of ECMAscript, to run on Flash. I agree with him when he says "applications of any complexity using HTML, CSS and JavaScript are difficult and expensive to develop", and also agree that a big motivator for using Javascript or Flash is that there are far fewer installation problems than Java. Perhaps we should consider setting up Links to generate either Javascript or Flash. Thanks to Greg Morrisett for pointing me at the article.

9.2.07

O'Caml Summer Project at Jane St. Capital

Jane St. Capital, a financial firm, made a stir when they started to advertise for O'Caml programmers. Now they are running a summer project, loosely modelled on Google's Summer of Code, to spur development of O'Caml libraries and tools.

8.2.07

Decorators for Python metaprogramming

A cute idea to support code that manipulates code. A tip of the hat to Lambda the Ultimate for the pointer.