Not Your Average Night At The Movies

Tonight, we went to see my mother-in-law’s new movie Telephone Pole Numbering System at the Northwest Film Forum. My wife and her mother are both actors. Julie was a child actor (she was in some of the old James Garner Polaroid commercials) and her mom was on Days of our Lives back in the 70s. I have always had a passion for movies and spent significant time back when I lived in LA writing bad screenplays (not bad on purpose of course). This movie was mostly OK – it had some very funny bits but also long stretches that were uninteresting and seemingly unrelated to the plot. Luckily, all the parts with my mother in law fell under the “funny bits” category.

While it was cool to see a family member on the big screen, I am really interested in getting more involved with the NWFF. The organization is a not-for-profit film arts organization that includes a two-screen cinema in downtown Seattle, production facilities for rent, workshops and classes plus a non-profit film studio (which produced Telephone Pole Numbering System). In many ways, this is like community theater, but for movie making. I got to chat briefly with the film’s director Bill Weiss, but Patrick was up past his bed time so I’ll need to make time for a longer chat with these folks soon.

If you could make a movie, what would it be? For me, if we’re talking pie-in-the-sky, no-real-world-constraints, it would be “Buckaroo Banzai Against the World Crime League” hands down. (Laugh while you can, monkey boy)

Favorite Line from Telephone Pole Numbering System:

“If I was a tree, I’d want to be a telephone pole”
“You’re too short”

SSB Wrapper Class

Paul Murphy pointed out a SSB wrapper class that ships as part of the integrated storefront sample that ships with SQL 2005. It’s a bit tricky to install, so I refer you to Paul’s blog for instructions. (you have to install the sample installer) The wrapper class is in a file called ServiceBroker.cs and supports the following operations:

  • Get Conversation Group
  • Begin a Dialog
  • Begin a Dialog (with related conversation)
  • Send a Message
  • Receive a Message
  • Receive all messages from a conversation group
  • End a Dialog

If you’re not sure what dialogs and conversation groups are, I’ll be blogging about them in the coming weeks.

Booch on DSLs (Round 3)

Steve Cook responded to Grady Booch’s latest comments on software factories and DSLs, which was in turn a response to an entry by Alan Wills. It’s obvious that Booch is never going to agree with the DSL approach, but there are a couple of fascinating elements of the exchange.

First off is Microsoft’s “rejection” of UML, which is just plain FUD. I’m behind on news reading (as usual) but I was clued into this conversation by a post on TSS.com that linked to Booch’s blog and read “Grady Booch explains why he disagrees with Microsoft’s rejection of the UML in favor of proprietary domain-specific languages.” Not exactly priming the pump for intelligent discourse on the subject. As Alan and Steve both point out, we’re not rejecting UML. UML is a tool, and like all tools it has things it’s good at and things it’s not good at. We’re talking about using DSLs for things UML is not good at.

The next is Common Semantics. Every time he posts on DSLs, Booch mentions something about “covering the same semantic ground as the UML”. I promised Dan in my comments that I would summarize this argument “in simple English” and I never got around to it. The term semantics simply means “meaning”. For example, in C#, the keyword “class” always means the same thing – it has what Steve pointed out is “objective semantics”. Obviously, the word “class” has widely varying semantics in common use – when a high school senior cuts class he’s not copying an object definition to the clipboard. But within the realm of C#, the word “class” has a well understood and precise meaning – it’s so precise that the C# compiler can tell you if you use it incorrectly.

So when Booch writes about a “common semantic model”, I take that to mean that he thinks there’s a core set of well-defined concepts that all languages build on. And if that’s what he means, I imagine he assumes all the interesting concepts are already defined by UML. I think that’s where the primary disagreement lies – we don’t think any one language can provide all the possible concepts needed for all programming domains. A language for developing a web app page flow will be built on very different semantic concepts that a language for developing telephone billing systems. Trying to build both of them on top of the same set of concepts is like putting a square peg in a round hole.

Furthermore, even if you wanted to build on a common set of concepts, it’s not clear if UML provides a precisely defined set of concepts to build on. Obviously, Booch thinks it does, but there certainly isn’t agreement in the industry. Steve refers to UML as having “cognitive semantics”, which means there is no one objective definition for a specific element of UML. For example, in covering Aggregation and Composition, Fowler refers to UML’s white diamond aggregation as a “modeling placebo” and having “no standard meanings”. When there’s no standard objective meaning, then each person brings their own experience and reason in order to formulate their understanding – hence the term “cognitive”. Of course, the chance that any two people will reach the same understanding via cognitive reasoning is slim to none – there’s just too much room for personal interpretation. Because of this lack of objective precision, Steve describes the resulting discussion of UML and its semantics as “political, rather than objective” which IMO is not a good foundation to build your own language on.

In the end, the proof is in the pudding. Personally, I think Booch looks at UML with rose-colored glasses and that his beliefs don’t mesh with reality. (Of course, our DSL modeling tools and software factories approach isn’t far enough along yet to test against reality.) How about your experience? What success or failure have you had with UML?

Be There or Be Square

PDC 2005. ’nuff said.

Cool Smartphone Bluetooth Software

I haven’t installed it, buy Mike Tautly has written a Bluetooth Remote Control for SmartPhone. It’s a managed app that uses Bluetooth to communitcate between a remote control app running on the smartphone and a desktop app that can drive other applications. Mike originally built it to drive PowerPoint from his phone. I gotta try this – both my MPx220 SmartPhone and Toshiba Tecra M2 laptop support Bluetooth.