Morning Coffee 161

  • Huge perk of the new job: new hardware. I had to give up my Dell workstation but I got a Lenovo T61p dual core widescreen laptop, an HP dc7800 dual monitor quad core desktop and a Polycom CX700 IP phone. I’m really digging the Lenovo’s integrated fingerprint reader – no more password login – but I’m most impressed with their integrated driver management software. Sure beats the heck out of hunting for dozens of updated drivers all over the place like most vendors for you to.
  • Minor downside to all my new toys: I spent most of my first week on the job installing and configuring said new toys.
  • Caps will face the Flyers in the first round of the playoffs which starts Friday. I have a feeling that I’ll be feeling poorly Friday around 3pm and have to head home early. 😄

DyLang Stuff

  • Apparently, Michael Foord isn’t getting enough exposure on this blog. 😄 He left a comment to remind me to mention the IronPython URLs link blog he writes along with Mark Rees and Seo Sanghyeon.
  • Speaking of Michael, his employer Resolver Systems just launched a new product: Resolver One Quant.
  • Still speaking of Michael, he’s quoted in the InternetNews article Python Fans Take Aim at the Enterprise.
  • My teammate Jimmy Schementi posts a preview of his spare time project “Silverlight on Rails”. This RoR plugin lets you declaratively specify if you want your RoR controller code to be accessed remotely via AJAX and run on the server or if you want that code to be downloaded to the client and run in SilverLight. Very cool stuff.

Other Stuff

  • Don Syme provides some insight into the F# producization process. There’s going to be an update to the “Research release” later this month and a CTP of the “Product release” later this summer (Brian McNamara has the CTP details). I am looking forward to these releases, though I’ll probably be too busy w/ IPy to experiment much with them.
  • Speaking of F#, Matt Podwysocki continues his adventures with F# with a look at tuples, records and discriminated unions. Of the three, I find discriminated unions the most interesting since there isn’t anything like it in other languages I’ve used.
  • Gregori and Chris both announce the release of Unity 1.0. Congrats guys! But if I don’t have time to hack around with the latest F# release, you can imagine I won’t be getting to Unity any time soon…
  • Jeff Atwood recommends you build your application UI first. Furthermore, he does a good job selling the value of paper prototyping as well as introducing the concept of PowerPoint prototyping. Money quote: “You don’t want something too powerful.”
  • Via LiveSide I discovered James Hamilton’s blog. Normally, hardware infrastructure isn’t really my bag, but I find his ideas around using ISO standard shipping containers as modular data center building blocks fascinating. For example, check out this post that suggests sticking modular data centers in condos would be cheaper than building data centers! Subscribed.
  • Speaking of ISO, you may have heard Open Office XML was ratified as an ISO standard. Obviously, there was a lot of controversy around this, but Miguel de Icaza lists of what he considers major community wins from the standardization process. Anything that “pushed Microsoft into more open directions” is a good thing IMO.


Never used anything like discriminated unions? Did you never use Pascal? It uses a 'case' statement-like declaration inside the record definition to define the "variant record", as Pascal calls it. The equivalent, manually built out of union and struct, is common practice in C too, when OO-style behaviour needs to be modelled. Integrating them with pattern matching is important too, of course, and it's mainly functional languages that have done that.
My Pascal days are long behind me. Unions are sort of similar, but they aren't type safe and - as you point out - it's the integration with pattern matching that makes the discriminated unions so powerful.