Wednesday, January 21, 2009

Seattle jazz players urge Microsoft to rebrand F# as Gb


CtJ Newswire
Parody City, CA

Jan 22, 2009


In a press conference held near Seattle, a group of jazz musicians urged Microsoft to rebrand its nascent language, F# (pronounced F-Sharp), as Gb (G-Flat).

Said a spokesperson for the group: "It is abundantly clear that Microsoft employees are primarily guitarists or pianists. When horn players look at both F# and C#, we see the vibe: there is no love coming our way here. All those sharps: we just don't think that way."

Another protester recognized the technical details: "Look, we understand that there is a language called D, and that Db might have implied some kind of inferiority. So we stayed silent on C#. But there is no language called G, and so F# is a slap in the face. What's more, if the top-brass at Microsoft want to trumpet support for a functional programming language with monad-like structures, lambda expressions, and strong static typing, then all we ask is that they use an appropriate key for we horn blowers."

At this time, there is no word if Microsoft will comply with the musicians' plea.

Thursday, January 8, 2009

Your company's first bug of 2009

I bet I can guess a bug at your company. You may not even know it. Nor your customers, or your marketing department.

It's probably in your code. It might be on your website. It is probably completely innocuous until you need it most, and then, well, your legal staff will tell you all about it.

If you haven't guessed yet, it's your copyright text. Most likely, it says something like:

ABC Company copyright 2002-2008. All rights reserved.

or even possibly "... (c) 2002-2004" if it is in code.

What does this mean? Does it really matter?

Good question. The facile answer is that if it was important enough to merit a copyright notice from 2002 to 2004, then it is probably important enough to update now. A more sophisticated question is if there is any legal standing for the years after a copyright notice. To be honest, I don't know.

All I know is that one team lead (who I respect) once speculated that omitting a copyright notice on new code was grounds for dismissal. I thought that was crazy then, and I do now: but it underscores the importance of this legal business. (As an aside, it just looks plain bad when the year is off on a website.)

I invite clarifications on the ramifications of letting copyrights 'expire' (if that is the correct term), but for now the takeaway is: update the darn year, and give your lawyers some backup support.

Monday, January 5, 2009

Executive Summary: the Origin of MicroBenchmarks

Inspired by a recent post about JavaFX being 25x faster than some other languages. (No link provided because it doesn't merit more attention.)

Monday, December 22, 2008

The Obscenity of New Syntax

Background

A couple of weeks ago, I attended the Lambda Lounge for a talk on OCaml. I decided to be proactive, so before the talk, I downloaded the runtime and kicked the tires.

For days, during compilations and Fit tests, I would play with the language. I had used ML years ago, but had forgotten much of it (aside from a vague memory of an ultra-strict, Klingon type system that was both a high-grade irritant, and yet oddly reassuring).

By the end of a week, I wasn't much further ahead with OCaml. I had written some basic functions and expressions, but nothing substantive.

The Experience

During the talk, I realized that the experimentation was more useful than I had imagined.

The presenter showed something like this:


# let sphere_surface = fun x -> x *. x *. pi;;
val sphere_surface : float -> float = fun

The questions flew immediately: why is there a double-semi (;;) ? are we running as root? how do we interpret the output?

These were natural questions by smart newbies to the language. I had two thoughts:
  • Naturally, it helps to prepare for a talk, but I was surprised by how far my modest time investment had taken me. I couldn't have answered all of the questions, but I could place myself in both mindsets: one of the questioner (what the heck?) and also the presenter (oh, see it works like this).
  • The first few examples struck the audience as obscene. I don't mean morally, and I don't mean that as a slight to OCaml per se. I mean in an artistic sense: well-known symbols that were beloved in other contexts had now been thrown together in a way that was jarring and almost repulsive. It takes some time to get past that shock of illiteracy.
The Upshot

This post is a reminder to myself: if a language talk is on the calendar, it is vital to download the environment and write some toy examples before attending, even if you only have a couple of hours to spare. The idea is not to learn the language but to embrace the obscenity and overcome it: celebrate the dissonance! As one music teacher put it: the Hendrix chord would have been considered hideous, even dangerous, in other eras. Now, it rocks.

Next Up: JavaFX

You may have several opportunities to see presentations on a new language in the near future: JavaFX. If you subscribe to the idea behind this post, you might be interested in an article by my friend Weiqi Gao: it is a top-shelf article on JavaFX as a language.

I'm going to be giving it a whirl over the holidays. The goal is to sing Auld Lang Syntax on New Year's Eve!

ps. Best holiday wishes to all readers... Here's a toast to a fine '09

Monday, December 8, 2008

Island Rhubarb Dessert (Favourite Holiday Recipe Meme)

I've been tagged by Eric on the Favourite Holiday Recipe meme. Here is mine: it is not difficult compared to other family recipes but it is excellent. It works best with rhubarb grown on Prince Edward Island, but if not possible, work with the freshest stuff you can find.

I'm tagging:

Matt
Stef
Dale
Nate
and Dave

Island Rhubarb Dessert

This a 4-layer pan dessert.

  • Put on some favourite holiday music and pour a beverage of your choice.
  • Prepare separate packages of dreamwhip and a 6 oz package of vanilla pudding.
  • Eat some vanilla pudding, to set the stage.
  • Crust layer: Mix 1 1/2 cups graham crumbs, 1/4 cup soft margarine, and 1/4 cup brown sugar. Spread in 9 x 11 inch pan. Bake at 350 F for 5 to 8 minutes. Let cool.
  • Filling layer 1: 4 cups fresh or frozen rhubarb, 1 cup white sugar, 1/2 cup water, 3 tablespoons cornstarch, and 2 tablespoons strawberry jello powder. Boil until cooked and thick to a sauce. Spread on crust. Let cool.
  • Filling layer 2: Cover with prepared dreamwhip and add 1 1/2 miniatures marshmellows if desired.
  • Top layer: spread prepared vanilla pudding over the dreamwhip layer.
  • Refrigerate.
  • Enjoy with friends.

Saturday, December 6, 2008

Lambda Lounge Lures Legion of Licentious Linguists

As many others have mentioned, the first meeting at the Lambda Lounge was a big hit! It was clear from the turnout (30+) that (a) a lot of people have a thirst for something more exotic than Java and (b) the IT community in StL is thriving and sophisticated. We all agreed that we are 'promiscuous' regarding computer languages (hence the post title).

Appistry served as gracious host and formed a fitting backdrop for the evening, and the vibe was palpable; there was an energy similar to the NFJS conferences.

The content was excellent stuff: Matt Taylor discussed categories and mixins in Groovy; Ryan Senior gave an overview of OCaml.

Overheard at the meeting (paraphrased) :

  • Java is wonderful, boring, and the new COBOL, all at the same time. (Editor's note: perhaps it is the new C ?)
  • I wish OCaml didn't use # as the prompt. I feel like we're the root user and something crazy is about to happen.
  • 10 years ago, we turned out in gatherings like this because we were stoked about Java. Now we turn out to get away from Java.
  • The opposite of a functional language is a dysfunctional language.
  • They should name OCaml's web framework to be ODromedary.
Bottom-line: Come on out to the January meeting if you want a piece of this. Time well spent with cool people.

Wednesday, December 3, 2008

Child suspended for EJB taunt


CtJ Newswire
Parody City
December 3, 2008

A district schoolboard reported today that a Grade 2 student has been suspended indefinitely for calling his teacher "the EJB of school" in class.

The announcement comes on the heels of a heated exchange between the teacher and the student as to whether cursive writing was important.

The principal of the school, Edgar J. Boyle, provided a brief statement: "We aren't exactly sure what EJB is, but after consulting with the IT industry, we understand that it implies a high degree of excess proportion and baroque complexity, ultimately leading to failure. In some circles, it is a taunt of the highest order. We believe this kind of language was learned in the home, but we refuse to stand for it in the classroom."

There is no word if the parents will appeal the decision, despite rumors of a protest website being constructed with Grails, a nascent IT solution.