TechEd 2007 Day Four

Yesterday was another day of talking primarily to people I know, inside and outside of Microsoft. Got into a long conversation with Gareth Jones and Peter Provost about combining test-driven and model-driven development. Having done evangelism for five of the last six years, I haven’t been an agile practitioner. I’m getting to the point where I feel dirty when I don’t write tests or don’t check in, but not dirty enough to actually do anything about it (yet). But practicing or not, it was fascinating to hear Gareth and Peter brainstorm on this topic.

Speaking of storms, we had a downpour here yesterday. Thunderstorm moved right over the convention center – you could tell by how loud the thunder and rain were. I hit a seam in the storm heading back to my hotel, but I did get drenched heading to the influencer party @ Margaritaville. The party was fun, after I dried off, though I seem to remember knowing more of the influencers last time I was @ TechEd. Ended up sharing a cab back to the hotel with Ted Neward and Mark Miller. Ted’s like the IT Industry’s Switzerland, so I took the opportunity to pick his brain on the goings on in other communities – primarily the Ruby community.

I did get a chance to hack a little code yesterday. As a side effect of my interest in programming language design, I’m also interested in parser development. Towards that end, I’ve been learning about Parsing Expression Grammars. The original PEG parser was built in Haskell, but I decided to write mine in F#. Even though I had never worked in F# before, I got my parser up and running fairly easily the first time. I did hit one syntax snag that Don Syme helped me with. I’ll blog this more in detail later, but I ported a simple arithmetic grammar packrat parser written in 120 lines of Haskell to about 90 lines of F#. Not bad for a first timer. (Don got it down to 25 lines, using F#’s new Active Patterns feature.)

I gearing up for my second talk, which happens right after lunch. I recorded a Virtual TechEd session this morning with the help of my friend Jon Flanders. It’s an 8 minute overview of the Rome project, so it is VERY high level. But anything that helps get the word out I see as a good thing, right?

Lunchtime Doughnuts 9

  • I am a few days behind on this, but Joe McKendrick writes an interesting piece on if businesspeople are begging for SOA. It is fascinating because I believe that SOA should come from the business, not because of the delivery mechanism, but because of the results. If services will truly make a business more adaptable and responsive to change shouldn’t all business people desire those results? At the same time they don’t care how that end is achieved, just that it is. That’s where we in the IT industry need to do a better job of working out the details amongst ourselves and show the business how SOA can benefit them. Once we do that we should see more SOA adoptions go smoother and real ROI can be seen.
  • Joel Dehlin has blogged on the myth of youth being the ones that use instant messaging, publish and read blogs, participate in social networks, etc. I agree that the technology has been integrated into every layer of society. If you have ever been at the airport or at a Starbucks you know what I mean. Who is it exactly that has a Crackberry addiction? It seems technology has really become a part of our culture, and that it’s not just one age group that is adopting the changes.
  • Visual Studio 2008 shell was announced at TechEd yesterday. Even Harry who was on-site missed the release, but it certainly looks cool.
  • If you have ever met me you would quickly discover I have quite a background in Unix. That being the case I couldn’t ignore the news that Sun is releasing new blades for the desktop. I had a blade on my desk for several years and it was really a nice system to use. For those that would bash me since I work at Microsoft now I will just say that when you support Solaris boxes, having one on your desk is quite helpful. I don’t take sides in the Holy War. 😄 (via Scoble)

TechEd 2007 Day Three

On Monday, I primarily talked to customers and partners. Yesterday, I spent most of my time talking to other Microsofties that I hadn’t seen or spoken to in a while. For example, Tim Mallalieu was there talking about the Entity Data Model. I worked with Tim a few years back – I did his first interview when he came to Microsoft. We didn’t talk much EDM, but it sure was good to see him.

I finally met Gareth Jones in person. Gareth – along with Steve, Stuart and Alan – have a new book out on the DSL toolkit. Neither stealing nor cajoling worked, I’ll have to go get my own copy or read it on Safari. Gareth and I talked a while about language evolution – how DSLs come to be. One of the subjects we talked about was internal DSLs - I’ll be interested in Gareth’s non-immediate reaction. Gareth also blogged yesterday about a TechEd announcement that I had missed: VS 2008 Shell.

I also spent a long time talking to various members of the DLR team. There seems to be quite a stir brewing about how the Ruby and Microsoft community can / will come together. I will wisely keep my opinions to myself – I’m already in the REST/SOAP fray, no need to join another – though I will say that it’s encouraging to hear the call for “a good, complete [Ruby language] specification” in order to support multiple implementations.

Afternoon Doughnuts 8

Due to a temporary reassignment this morning, I spent my usual blogging time moving all of my computer equipment from one cube to another.

  • Sam Gentile writes about the ALT.NET moniker. My favorite of his principles is number 4 where he discusses the importance of tools versus principles and knowledge. I really agree that knowledge and principles are more important because the best tools in the world can’t help us if we don’t know how and when to use them.
  • I find Mark Cuban’s ideas (here and here) about how advertising on the Internet is different than traditional media advertising. He points out that the ability of a provider to deliver higher simultaneous views is more important and valuable than delivering views for a longer period of time. I think he right on here, even if I believe his football league is going to fail. (via Blog Maverick)
  • Worse Than Failure has been running an unusual contest to get the most interesting, buggy, and unusual way of writing a calculator application. They have 12 finalists for readers to review. I find that the descriptions of how the programs work (or don’t) to be hilarious.
  • As I have been working on service-oriented management and monitoring I have given a lot of thought to the best way to present the data. Doesn’t it make the most sense to primarily display information from the business process point of view? I would be interested in your feedback.

A REST Question

Since there appears to be at least a handful of RESTifarians among my readership, I’m just going to throw this half-formed thought / almost question out there. Maybe it’s a FAQ, in which case I’d appreciate a pointer in the right direction.

My observations about REST are:

  1. REST is a an “architectural style for distributed hypermedia systems“.
  2. REST “has been used to guide the design and development” of HTTP and URI.
  3. Therefore REST as an architectural style is independent of HTTP and URI.
  4. Yet, I get the feeling that the REST community would consider a solution that uses the REST architectural style but not HTTP and/or URI as “not RESTful”.

Am I wrong in observation #4 above? If you’re addressing resources by resource identifiers [aka URIs] but transferring those resource representations over a durable duplex protocol [aka not HTTP], are you still RESTing?

(Note, such a RESTful durable duplex protocol doesn’t exist to my knowledge, though I would be very happy to be wrong about that. SSB does durable duplex, but it doesn’t support URI style resource addressing. Granted, if I was going to build a durable duplex RESTful protocol, I would build on SSB – much the same way that HTTP builds on TCP. Though I am a huge fan of SSB, I’m specifically not suggesting that SSB is RESTful.)