Passion * Technology * Ruthless Competence

Monday, May 18, 2009

Microsoft and Open Source

clip_image001In a couple of weeks, I‘m participating in an internal “Presentation Idol”competition. It’s a contest of presentation skills against impressive competition (I can’t name names, but rest assured it’s a strong group) being judged by Microsoft executives (again, I can’t name names, but this time it’s because I don’t know who’s judging) in front of what I assume will be a large technical internal Microsoft audience. To top it off, we each only get three minutes and thirty three seconds each to deliver our presentations.

So yeah, no pressure.

The topic we’re all presenting is “What is the one thing we should do to improve Microsoft?” For those who know me, it should come as little surprise that I picked a variant of “more open source” for my presentation. More specifically, I’m planning to present the following:

  1. Any product Microsoft gives away for free should also be Open Source.
  2. Open Source Microsoft products should accept contributions from the community.

I realize that many people consider this separation between “source availability” and “community contributions” completely artificial. Sure, the accepted definition of Open Source only addresses the availability and distribution of source code, but most Open Source advocates consider the ability to collaborate and contribute – what Wikipedia calls “Commons-based peer production” - a critical aspect of Open Source. For example, with respect to the announcement that ASP.NET MVC would be released under the Ms-PL, Keith Elder tweeted:

“Giving someone your source code is NOT open source. So although Asp.Net MVC's source code is out there for download, not open source.”

imageIn what now seems like a huge coincidence, Keith and his co-host Chris “Woody” Woodruff interviewed me later that day for their podcast Deep Fried Bytes. As you might imagine, while we started with talking about IronPython, we eventually started discussing open source at Microsoft more generally. It was a great conversation, and we found lots of common ground.

Personally, I think Microsoft is making small steps in the right direction when it comes to Open Source. Not only have some high profile Microsoft projects go Open Source like ASP.NET MVC and MEF, but we’ve even started taking baby steps for including external intellectual property. Releasing ASP.NET MVC under Ms-PL is a big deal, but I think including jQuery “in the box” is a much, much bigger deal. It remains to be seen if it’s a one-time-only deal or if it’s a new trend inside Microsoft.

Obviously, I hope it’s a trend. Going from “include jQuery in ASP.NET” to “accept community contributions in ASP.NET” seems like a relatively achievable goal.

Now, here’s where I need your help.

I can easily fill three and a half minutes talking about Open Source community collaboration. But since my presentation is about taking contributions from the community, I decided to put my money where my mouth is and crowdsource it:

What is the elevator pitch *you* would make for including community contributions in Microsoft Open Source products?

Leave me a comment, send me an email, tweet it, whatever – I’ll be keeping an eye out for responses. Please remember that I only have three and a half minutes to present, so keep your ideas short and sweet.

Posted By Harry Pierson at 2:23 PM Pacific Daylight Time

Sunday, October 19, 2008

The PDC Prep Death March – It’s Almost Over

So it’s been just over a month since my last post, and I think it’s safe to say it’s been one of the busiest of my career to date. If you’ve been following my Twitter stream, you already know that I’ve spent the last two weeks in PDC dry runs – we went thru almost every session in the track, reviewing content and giving feedback to the speakers. Some were very good (as I twittered at the time, Ed Pinto’s Building WCF Services with WF blew my mind). Others, needed more work, but I think will be great by PDC. I got into several disagreements about the best way to present content, had to raise my voice once, and called some speakers “a little creepy”. (No, I’m not telling you which sessions those were.)

After 9 days of dry runs, I spent Friday with Jason Zander, General Manager for Visual Studio, again reviewing almost all the decks with him and some marketing folks. Frankly, spending that much time with my boss’s boss’s boss’s boss is a bit intimidating, but Jason’s been great and I’m guessing the visibility will be great for my career. I mean, come review time, he won’t be saying “Harry who?” I’ve also gotten to meet people from far and wide across my division, which has been great since I’m still new over here.

Unfortunately,  I can’t talk much about what I’ve seen, since as you know most of it is new and being revealed at PDC for the first time publicly. For example, I can tell you Ed’s talk was frakking awesome, but I can’t tell you why I think it’s frakking awesome, yet. But I’m queuing up some posts now that I will publish later once the sessions are public.

Tomorrow, I’m back to my “day job” as the IronPython PM. My teammates have been soldering on in my absence – the one time I was in my office in the past two weeks I joked that no one would recognize me since I’ve been gone so long. We’re coming up on the final release of IronPython 2.0, and my exclusive focus on PDC has left me a mountain of work to do here in the final stretch.

In addition to my teammates, I need to give a quick shout out to Shoshanna Budzianowski and Mike Swanson, without whom I’m not sure I would have survived the past two weeks. Mike is the PDC content owner, so as hard as the past two weeks have been for me, I’m sure they’re worse for him. Shoshanna is the track owner for the “Tools and Languages” track (that’s what the TL in the session codes stands for) and I’ve been the main representative for the VS group in the track. I don’t know if she’s ever done something like PDC before, but she’s awesome. 

I leave Friday for southern California. I’m going down early to see a few friends and to do my Pumping Iron talk at the SoCal Code Camp next Saturday. That should be fun since it’s being held at my alma mater. Then Monday starts PDC proper. If you’re going to PDC, some find me in the PDC Lounges. I’ll be spending the vast majority of my time there, since I’ve seen all the content in my track already!

Posted By Harry Pierson at 12:00 PM Pacific Daylight Time

Tuesday, August 19, 2008

Missing Missing Persons

I'm having a hard time focusing on work today. I just found out that a good friend and ex-teammate Robert Satterwhite passed away last week.

I spent a year on the .NET Adoption Team with Robert back in 2002 & 2003 - basically my last year in the Microsoft field organization. NAT - as were were known - was a national team of developer and architecture evangelists, so while we were all teammates, we didn't see much of each other in person. However, Rob and I both lived in the Puget Sound area and called on many of the same customers - I was an architect evangelist and Robert was a developer evangelist - so we ended up working together often. We drove together to Olympia many times- he drove and I hacked code in a kind of strange pair programming effort.

Robert grew up in the Pacific NW and had spent almost his entire career as an enterprise technology sales engineer here, so he had friends everywhere. I often used the lame line from the Dragnet movie with Dan Aykroyd: "They ought to put you in Missing Persons. You know everybody." because it seemed like everywhere we went we'd run into someone he grew up with, had worked with or had sold to. If we hung around before or after a sales call - coffee shop in Olympia before a meeting, debriefing with the sales rep on the steps outside of Costco HQ in Issaquah, etc - chances are someone would recognize him.

When I was leaving the NAT, Robert and I went to Phoenix so I could hand off my customers there to him. I joked that at least I could be sure we wouldn't run into anyone he knew in Arizona. Yet, it turned out he used to work with the woman who was sitting in front of him on the flight home. She and her husband owned car dealerships in Phoenix and Tacoma. I was astonished - what are the frakking odds? - but Rob just shrugged his shoulders. It happened to him all the time so I guess he was used to it.

I only saw him off and on since I left the team, though as fate would have it I did see him last week on the day he died. I was heading into building 18 for a meeting as he was pulling into the parking lot - I hadn't realized he was working on campus. We exchanged the usual pleasantries and promised that we'd get together soon. He was blocking traffic, so it was a short conversation. 24 hours later, he was dead.

Rob wasn't your prototypical blue monster, but he sure touched a lot of people and he made the world a better place by just being himself. You will be missed, Rob.

Posted By Harry Pierson at 10:14 AM Pacific Daylight Time

Tuesday, July 01, 2008

Programming Languages @ PDC08

The PDC folks pushed out a bunch of new sessions yesterday, including a bunch from my part of DevDiv. You can see the full list of sessions that have been published (so far) at the PDC site.

An Introduction to F#
Learn about Microsoft's new language, F#, a typed functional programming language for the .NET Framework. F# combines functional programming with the runtime support, libraries, tools, and object model of .Net. Understand how F# asynchronous workflows help tame the complexity of parallel and asynchronous I/O programming and how to use F# in conjunction with tools such as Parallel Extensions for .NET.

Deep Dive: Dynamic Languages in .NET
The CLR has great support for dynamic languages like IronPython. Learn how the new Dynamic Language Runtime (DLR) adds a shared dynamic type system, a standard hosting model, and support for generating fast dynamic code. Hear how these features enable languages that use the DLR to share code with other dynamic and static languages like VB.NET and C#.

Future Directions for Visual Basic
Come learn about the new capabilities in the next version of the language, including: extensions to LINQ, syntax simplifications, and improvements to the IDE. We'll provide insight into the direction of the language, including dynamic binding, meta-programming, and scripting.

The Future of C#
In this talk Microsoft Technical fellow and C# Chief Architect Anders Hejlsberg outlines the future of C#. He will describe the many forces that influence and shape the future of programming languages and explain how they fit into C#.

Visual C++: 10 is the New 6
Get more done. The next version of Visual C++ is all about improving developer productivity for large-scale applications. Learn about the IntelliSense and browsing experiences, changes to the project and build system, project-less browsing, collaboration through remote symbol indexing, and custom visualization of symbolic information.

Posted By Harry Pierson at 10:37 AM Pacific Daylight Time
C# | C++ | Lanugages | DLR | F# | IronPython | IronRuby | Microsoft | PDC08 | Visual Basic

Thursday, April 24, 2008

Morning Coffee 164

  • Big news since my last Morning Coffee post was the announcement of Live Mesh. I've been running it for about a month, and I'm really digging it. Make sure you check out the team blog and watch the developer tour video (be on the lookout for IPy about half way thru the video)

ALT.NET

  • I had a great time @ the ALT.NET open space conference last weekend. I was somewhat distracted on Saturday as due to a family communication mixup, I had to bring my son Patrick with me. Jeffrey Palermo shot a cute video of him (3 minutes in) where he explains that he's at the conference "to be with my dad". Having a five year old is a little distracting, but everyone was amazingly cool with having him around. When he gets a little older I have no doubt he'll be attending conferences and leading open sessions.
  • I did a session on F#, but it felt kinda all over the place. I hadn't touched F# in a few months and it showed IMO. Matt Podwysocki was there to help keep the session from devolving into mass chaos. Thanks Matt.
  • My favorite session of the conference was Scott Hanselman's "Are We Innovating?" talk, which I think originated from a question I asked him: There are many examples of large OSS projects in other dev communities that get ported to .NET (NHibernate, NAnt, MonoRail, etc). Can you name one that's gone the other way? I can't.
  • I took Matt's advice and joined the local ALT.NET Seattle group.

DyLang Stuff

  • Martin Maly posts about how dynamic method dispatches are cached in three different layers by the DLR. You shouldn't care about this stuff if you're a DLR language user, but you will certainly care about it if you're a DLR language builder.
  • I'm really excited to see Phil Haack (whom I met F2F @ ALT.NET) is experimenting with IronRuby & ASP.NET MVC. True, I'd rather it was IPy, but his Routes.LoadFromRuby would work with Python with very little code change.
  • Note to self, take a deeper look at Twining, the IPy database DSL by David Seruyange.
  • Daily Michael Foord - Ironclad 0.2 Released. Ironclad is a project to implement Python's C extension API in C# so that IronPython could load standard Python C modules like SciPy and NumPy. So far, they're able to load the bz2 module

Other Stuff

  • Congrats to Brad and Jim for shipping xUnit.net 1.0.
  • Everyone seems to be jumping on the functional C# coding bandwagon. Bart De Smet's series on pattern matching in C# is currently at eight posts. Now Luca Bolognese is in on the action, with three posts so far on functional code in C#. I like how Luca keeps writing that the C# syntax is "not terrible" for functional programming. Again, why suffer thru the "not terrible" syntax when you could be using F# instead? (via Charlie Calvert)
  • I need to take a look at VLinq. Charlie and Scott Hanselman both mentioned it recently.
  • I would like to have been in the conversation with Ted Neward, Neal Ford, Venkat Subramaniam, Don Box and Amanda Silver.
  • I haven't had any time to play with XNA of late, which means the great list of GDC videos Dave Weller posted on the XNA team blog will remain beyond my ability to invest time for now.
  • There's a new drop of Spec# from MS Research. IronRuby is using Spec# heavily as I recall.
Posted By Harry Pierson at 10:53 AM Pacific Daylight Time

Monday, March 10, 2008

Morning Coffee 157

  • My Xbox 360 started flashing the dreaded Red Ring of Death on Friday. <sigh> I'm not going to have much time to play in the next week, so it's not the end of the universe, but I did have to dig an old DVD player out of the garage for interim duty.
  • My Caps really stepped in it over the weekend dropping two games they had to have and by most reports (aka according to my dad) that they dominated most of the way. Caps Playoff Math isn't as dire as say Clinton's Nomination Math, but they are three games back of the Hurricanes with twelve to play.
  • Ted Neward has a pretty good F# overview article in the most recent MSDN Magazine. I say pretty good because I wonder if someone with no functional programming experience will "get it". As much as I like F# and functional programming, I think some of the basic concepts don't pass Don Box's two beer test.
  • Speaking of Ted, somehow his feed fell off my radar (bad DevHawk!) and I missed several great posts like Modular Toolchains (note to Ted, check out A Research C# Compiler), Why we need both static and dynamic in the same language (note to self, check out Cobra) and The Fallacies Remain.... (recently, I'm the guy shouting about risks).
  • Speaking of MSDN Magazine, have you seen their new site redesign? I can't find any announcement of it, but man the site looks great.
  • If you missed MIX, the sessions are all online already. That was fast.
  • John Lam blogs about the availability of the Dynamic Silverlight bits. Apparently, Dynamic Silverlight includes more recent bits than the Silverlight 2 SDK, which does includes binaries and tools for IronPython, IronRuby and Managed JScript (quickstart). So you can get started with dynamic languages on Silverlight using the SL SDK alone, but I expect that the Dynamic Silverlight bits will be updated more regularly than the SDK.
Posted By Harry Pierson at 8:59 AM Pacific Standard Time

Thursday, March 06, 2008

Morning Coffee 155 - Dueling Conference Edition

  • If you don't want to watch the video of yesterday's MIX keynote but still want a sense of what happened, check out Tim Sneath's keynote liveblog. (via Sam Gentile)
  • Other announcements from Mix day one keynote that I missed (all via Tim Sneath)
  • Quick side note - Installing Silverlight 2 in order to check out the DeepZoom Hard Rock demo was smooth, fast and easy. It's hard to believe there's a whole CLR in there.
  • Now on to public stuff I saw @ TechFest:
    • One of the problems with touch screens is that your fingers obscure what you're trying to touch. Lucid Touch solves this by having you touch the back of the device, while rendering a virtual shadow of your hand - a technique they call "pseudo transparency". You really need to watch the video to "get" this. It's not currently feasible - the prototype uses a webcam on a foot long boom to track hand and finger position. However, they expect a future version will have some type of imaging sensors embedded in the body of the device.
    • The Berkeley Emulation Engine version 3 (aka BEE3) (video) is a high powered hardware simulator. Apparently several orders of magnitudes faster than conventional simulation. Frankly, most of this demo was over my head and I'm not really a HW guy. But it sounds really fast.
    • BLEWS or "what the blogosphere tells you about news". Given my interest in political blogging, it's not a surprise I was interested in this project. This tool categorizes news stories according to their reception in the political blogosphere. It provides a visualization showing not only how many links from a given ideological sphere there are, but how strong the emotions are running. Kinda like Memorandum on major steroids.
    • Music Steering (video) is an "interactive music-playlist generation through music-content analysis, music recommendation, and music filtering". Sort of like LastFM + Pandora on your Zune.
    • In-Depth Image Editing (team site) showed some cool photo editing software that reminding me of Microsoft Max.
    • MashupOS (paper) is a set of abstractions to improve the browser security model, allowing for isolation between blocks of code from different sources while still allowing safe forms of communication.
    • MySong (paper, video) "automatically chooses chords to accompany a vocal melody, allowing a user with no musical training to rapidly create accompanied music". Karaoke singers rejoice! Actually, it's pretty cool. You can adjust sliders to adjust characteristics of the generated music like "Jazz factor" and "Happy factor". Actually, I just want a happy factor slider in all my software.
    • I saw some cool projects from the Socio-Digital Systems group and MS Research. My wife is a sociologist and always says there's no way she could ever get a job in the big house. Maybe after she checks out this team, she'll stop thinking that.
    • The Worldwide Telescope booth was so crowded that I couldn't get anywhere near it. From what I could see from standing in the back, it looked fantastic. It's not live yet, but you can check out the video from the TED conference to get a sense of it.
Posted By Harry Pierson at 9:51 AM Pacific Standard Time

Wednesday, March 05, 2008

Morning Coffee 154

  • Did you see yesterday's Dilbert cartoon? Classic.
  • MIX isn't the only Microsoft conference this week. It's also time for the annual MS Research TechFest conference. It actually started yesterday, with a keynote from Rick Rashid and Craig Mundy (available on demand). I'll be heading up there later today and will blog everything I saw that is public, like I did last year. In the meantime, you can check out some cool MS Research projects on the TechFest video page.
  • Speaking of MS Research, they've published the Singularity source code (for academic and non-commercial purposes) on CodePlex. Singularity is research OS "focused on the construction of dependable systems". I've wanted to play with this, but I've never had the time. Frankly, that hasn't changed, but now that it's available to the community, I'm hoping I can live vicariously thru other people hacking around with it.
  • Some announcements coming out of MIX won't be a surprise to anyone:
  • Here some primarily "new" news from MIX:.
    • I'm not sure which team owns it, but I'd say the biggest previously-unannounced news was SQL Server Data Services (aka SSDS), a "highly scalable, on-demand data storage and query processing utility services." In other words, SQL in the sky. There's a free beta sometime this month you can sign up for. Very cool, though no word on what it's going to cost. If you're interested in this, I'd keep an I on the Data Platform Insider blog.
    • John Lam announces the Dynamic Silverlight extension that lets you run DLR languages on Silverlight. Given that they talked about this last year, I'm not sure it's really "news", but John provides lots of gory details so it made the cute. But are they really using "DSL" as the acronym for this? Guys, that acronym's already taken.
    • Mary Jo Foley has a scoop on Silverlight for Nokia Symbian mobile phones.
    • There's a new beta of Expression Studio 2 as well as a separate Expression Blend 2.5 preview for Silverlight 2. Soma has the details. This isn't really a surprise, but I hadn't seen any news on new versions of all the Expression Studio products.
Posted By Harry Pierson at 11:27 AM Pacific Standard Time

Monday, March 03, 2008

Morning Coffee 152

  • I was slammed Friday, so I didn't get a chance to post the results of last Thursday night's hockey game. I'm sure you've all been eager to hear. We lost, bad, 8-2. Personally, I was -3 and had no points, but I played much better than last week. We had three full lines of forwards, which was a big help, but I have started to find my ice-legs so to speak.
  • Charlie Calvert has the now-definitive list of LINQ to Everything. Of all of them, I found LINQ over C# fascinating, especially given my recent efforts in parsing.
  • Chris Tavares blogs about a distributed source control system called Bazaar. Unlike most version control systems, Bazaar is distributed which means you can use it without a server. According to Chris, you can share branches as easily as mailing a file. I wonder if you could make Bazaar work over a P2P network.
  • While looking up the MSDN link for the previous coffee item, I noticed an entire new section in the MSDN Library for Open Protocol Specifications. Not much to add, just wanted to highlight their existence.
  • Admitted non-designer Scott Guthrie shows off using the new version Expression Blend to build a Silverlight 2.0 app. Personally, I was most interested in seeing some of the new of built-in controls.
Posted By Harry Pierson at 10:58 AM Pacific Standard Time

Wednesday, February 27, 2008

Morning Coffee 150

  • Yesterday was the NHL trading deadline, and the Capitals were very busy. They obtained Huet from Montreal, Federov from Columbus and Cooke from Vancouver. Given they are fighting just to make the playoffs, going for three soon-to-be unrestricted free agents seems like an odd choice. However, the consensus (among my parents anyway) was that it's critical to get this very young Caps team some playoff experience. Even if all three walk at season's end, it'll be worth if the Caps make a playoff run. Besides it's not like we gave up much: an extra second round pick in '09, a 19 year old defensive prospect (who was apparently 14th on the depth chart) and an underachieving winger.
  • Speaking of the Caps playoff chances, they are currently one and a half games back of the division leading Hurricanes and two games behind the current eighth seed Flyers. Yes, I rank hockey teams using baseball's standings system. Otherwise, you have to talk about games in hand (i.e. the Caps are five points behind Carolina with two games in hand).
  • The writer's guild ratified the new contract, so Hollywood labor strife is now officially behind us. At least until July when the the actors may go on strike.
  • It seems like a slow week for Microsoft geek news, which is odd since WS08, VS08 and SQL08 all launch today. I'm guessing it's the calm before the Mix storm next week.
  • After going dark for six months, Linq to XSD has been re-released to work with the RTM version of VS08. Scott Hanselman demonstrates Linq to XSD by applying it to OFX, an XML Schema he calls "goofy" but apparently helped develop. OFX uses derivation by restriction, which has no direct corollary in C#, but Linq to XSD's  is able to translate between XML and objects without loosing any of that type fidelity. Nice to know Linq to XSD can tolerate OFX's level of goofiness, though I'm guessing most people use much more straightforward schemas.
  • Speaking of Linq, I discovered LINQPad via a comment on Rob Conery's blog (which I found via DNK). It's basically a code snippet IDE for C# 3.0 and VB9, with it also has built in database connection support, so it can fulfil much the same role as SQL Management Studio. I only played with it for a few minutes, but I was really impressed.  This is definitely going in my utilities folder. I wonder if they're interested in supporting F#?
  • Not sure how I missed this, but you can get MSDN Magazine via same Syndicated Client Experience as Architecture Journal. Unlike AJ which is divided into issues, the MSDN magazine client is divided into topics which is harder to square with the physical magazine. On the other hand, since MSDN Mag has been around longer, perhaps topics + search is a better discovery mechanism.
  • Soma announces the Visual Studio Gallery, a repository of VS Extensions. It's kinda cool, but the whole discovery mechanism is clunky. I might like to experiment with some free or even free trial products, but there's no way to filter on cost so finding them is a hassle. Also, there's no way for community members to vote, rate or comment on the products in any way.
  • Nick Malik can't answer the question "how does Enterprise Architecture demonstrate value?" I could be snarky and say "it doesn't", but that's only half the answer. It doesn't, but it should. My opinion, since you asked Nick, is that EA fails to deliver value because it tries to control the uncontrollable. Trying to gain efficiency thru establishing standards and eliminating overlap via reuse are pipe dreams, though literally millions of $$$ have been poured into those sink-holes. There are a few areas where centrally funded infrastructure projects can solve big problems that individual projects can't effectively tackle on their own. EA should focus their time there, they can actually make a difference. Otherwise, they should stay out of project's way.
Posted By Harry Pierson at 10:17 AM Pacific Standard Time

Friday, February 22, 2008

Morning Coffee 149

Posted By Harry Pierson at 10:34 AM Pacific Standard Time

Wednesday, February 13, 2008

Morning Coffee 146

  • The writers strike is officially over. Everyone goes back to work today. Thomas Cleaver has what I thought was the best post summarizing how the writers won. TV Guide has a rundown of how and when various shows will resume. I can't wait to see Daily Show and Colbert Report tonight. Lost - aka the best show on TV - looks like it will be getting five more episodes (in addition to the eight shot before the strike).
  • Speaking of TV, Battlestar Galactica Fans: circle April 4th on your calendar.
  • Obama won all three "Potomac Primaries" yesterday, and is now the Democratic front-runner, though there's a long way to go before the convention. Scott Adams of Dilbert fame has a great take on presidential experience - I'm guessing he's an Obama fan.
  • In minor acquisition news, Microsoft is acquiring Caligari, makers of 3D modeling tool trueSpace. The Caligari folks are joining the Virtual Earth team, though I wonder what the XNA folks think of the acquisition. This isn't the first 3D modeling product Microsoft ever acquired - we owned Softimage for four years in the '90s.
  • Scott Hanselman and Tomas Resprepo both write about PowerShellPlus, which I saw week before last @ Lang.NET. Scott really likes it, for both PS novices and gurus, but Tomas thinks the UI is busy, based on the screenshots. Personally, I'm not doing much PS work lately - occasional one off stuff, but that's it - so it doesn't seem worth the effort.
  • Speaking of Scott & Tomas, Scott also has a nice gallery of VS themes. I'm partial to Tomas' Ragnarok Grey. Is there a VSThemesGallery.com site somewhere?
  • Still speaking of Scott, he points to the new ASP.NET Developer Wiki (beta). I poked around, but didn't find anything shiny. I was very surprised that searching for "MVC" returned no results.
  • Speaking of MVC, Scott Guthrie has a rundown on what's coming in the MIX preview release of ASP.NET MVC. Biggest news IMO is that it's /bin deployable - i.e. you don't need your hoster to do anything special to support MVC (assuming they already support ASP.NET 3.5). Also big news, they're releasing the source so you can build and patch (and enhance?) it yourself.
  • Chris Taveres continues is ObjectBuilder series and Tomas continues is DLR Notes series. BTW, my F# based DLR experimentation continues, albeit slowly (frakking day job). Hope to be able to post on this soon.
  • One of the things driving my interest in F# is manycore. An interesting tangent to manycore is general purpose programming on graphics processing units (aka GPGPU). MS Research just released a new version of Accelerator, just such a GPGPU system. I personally haven't played with it - I've been focused on writing parsers, not parallel code.
  • Is XQuery really "a promising technology of the future" as Don Box suggests? I see exactly zero demand or use for it in my day-to-day work. Of course, Don's paid to build future platform goo, so maybe it is promising and Don's afore-mentioned goo will leverage it, though I remain skeptical. As for XML being "Done like a well-cooked steak", I'd say XML is like a great steak cooked perfectly, except it's done exactly how you don't like it. You can appreciate its quality, but you don't really enjoy it as much as you could have.
Posted By Harry Pierson at 10:04 AM Pacific Standard Time

Friday, February 01, 2008

Morning Coffee 142 - Wishful Catchup Edition

  • After spending most of the last four days away from my desk, I was planning on a quiet day to catch up on a variety of things. Then I heard the oh-so-minor news that Microsoft is offering to buy Yahoo for almost $45 billion. Hasn't been much reaction on the dev, architecture, politics and hockey-oriented blogs I read, but you can get a ton of reactions on TechMeme.
  • Lost is back. Finally. I stayed up late last night reading Lostpedia, catching up on Lost Missing Pieces and the Find 815 ARG.
  • Alex The Great had four goals and an assist in last night's victory. Coughing up three goal lead and letting the Canadiens tie the game in the last 30 seconds isn't encouraging, but a win is a win. The Caps are currently one game behind the SE leading Hurricanes and two games behind the current eight seed Rangers. Alex was named first star for January.
  • Ted Neward has a nice summary of Lang.NET by day: one, two and three. I wonder if my talk qualifies for the exception to Ted's rule that "A blog is not a part of your presentation, and your presentation is not part of your blog". I had 15 minutes to discuss something I've written about over ten posts  (so far).
  • John Lam points to the latest DLR hosting spec. I'm much more interested in the DLR code generator, but at least the hosting interface is documented.
  • Scott Hanselman has a nice post on fluent interfaces. Note to self, find out if Beautiful Soup works with IronPython.
  • I wonder if the VS Source Code Outliner PowerToy works with F#? (via Sam Gentile)
  • Chris Tavares has an extensive post Deconstructing ObjectBuilder? I've poked around inside OB before, but I'm really looking forward to Unity (also via Sam Gentile)
  • NVIDIA finally updated the drivers for the video card in my Tecra M4. That only took a year.
Posted By Harry Pierson at 10:05 AM Pacific Standard Time

Wednesday, August 15, 2007

Morning Coffee 110

  • Monday @ Gamefest, the XNA team announced XNA Game Studio 2.0. The two big new things are support for the entire VS product line (1.0 only works on VC# Express) and the addition of networking APIs. Let's Kill Dave has a good wrapup of the announcements from Gamefest Day One.
  • Speaking of Xbox 360, I played thru the demos of Stranglehold and Bioshock. Two thumbs up on both. It's gonna be an expensive year for Xbox gamers.
  • Mark Cuban noodles on taking your house public. "Why not create a market or exchange where homeowners can sell equity in their homes?" I've thought about this myself from time to time. However, Mark thinks making it happen would "probably take the country's biggest banks working together". I wonder if there's a more Web 2.0 social lending approach that would work better.
  • Jeff Atwood calls virtualization as "the next great frontier for computer security". I agree 100%. But I don't think the action is going to be in "full-machine" virtualization like Virtual PC. Rather, it's going to be sandbox virtualization. Jeff mentions GreenBorder (now part of Google) but it's not the only solution. Some time ago, Microsoft acquired SoftGrid which uses sandbox virtualization for application deployment, but using SystemGuard for security sandboxing seems like a logical step.
  • The WCF LOB Adapter SDK has released. Sonu Arora has the details. As part of the Integration team @ MSIT, I have a feeling we're going to become fairly familiar with this technology. (via Jesus Rodriguez).
  • Speaking of Jesus, he thinks the six new SCA4SOA committees are "going to help". Why? Because inventing technology in committee has turned out so well in the past?
  • John deVadoss cements BPM's fad du jour status by contrasting "big" BPM and "little" BPM. It's fairly obvious to me that big *anything* just doesn't work in the enterprise. But I worry that little *anything* doesn't work that well either. So how long until someone (probably Nick) starts arguing for "middle out" BPM?
  • David Bressler wonders "What is it about registries that everyone thinks is a panacea for all things SOA?" Amen, Brother! Joe McKendrick claims it's required for governance, but then gets to what I think is the *real* reason for focus on registries: the "registry is a tangible offering" that vendors can sell. Just because it's productizable doesn't mean you need it.
  • Hartmut Wilms responds to my retire the tenets post, but he seems to contradict himself. On the one hand, he suggests that "the four tenets just expressed, what “almost” everybody outside the MS world knew already". But then he goes on to dispute that the SO paradigm shift has even occurred! Hartmut, I'll grant you that WCF (among other similar stacks) are way too focused on "you write the classes, we'll handle the contracts and messages". On the other hand, if you don't provide a productive interface that most everyone can pick up and run with, the technology won't get adopted in the first place.
Posted By Harry Pierson at 9:37 AM Pacific Daylight Time

Wednesday, July 18, 2007

Morning Coffee 102

Seems like a slow week.

  • Jules and I went to see the latest Harry Potter movie this past weekend. It's easily the weakest of the six HP stories so far. The first two stories were about discovering this magical world, the next two about discovering Harry's past, and the last two about confronting said past. That leaves OotP as the odd-story-out, mostly bridging from the end of the fourth story to the start of the sixth.
  • Speaking of movies, the new movie feature of Mobile Search v2 rocks, though I have two quick suggestions. First, it would be nice to have a time-sorted view of when a given movie is playing. So if it's playing at 4pm at one theater and 4:30pm at another, you'd see them in a list ordered that way. Second, how about an option to buy tickets directly from the phone?
  • If you're interested in WPF and 3D, Eric Sink has a series for you.
  • Old news, but Windows Home Server RTMed on Monday. I'm really looking forward to this product.
  • I was looking for some information on how WCF pumps messages in the service host and I found this post from Maheshwar Jayaraman. Between that post and Reflector, I think I've got a good handle on how ChannelDispatcher works.
  • Larry O'Brein calls out three MS Research Projects. Microsoft Research Accelerator is a high-level data-parallel library that targets GPUs. Graph Layout Execution Engine (aka GLEE) is a library for graph layout and viewing. VirtualEarth MapCruncher converts existing maps (PDF and bitmaps) to work with Virtual Earth.
  • Ted Neward weighs in on the David Chappell's Korean War REST vs. WS-* analogy. Skim the history lesson, but make sure you read his points about security and reliability interop. WS-* has addressed these areas, so if you need those capabilities, why wouldn't you use WS-* to get them rather than re-invent the wheel? As for the history lesson, Ted does say he thinks software development is more analogous to making war than building a house. He expands on that idea and recommends Robert Greene's The 33 Strategies of War. I want to read the book and mull it over a bit, but I certainly see where Ted's coming from.
Posted By Harry Pierson at 9:06 AM Pacific Daylight Time

Wednesday, June 13, 2007

Morning Coffee 89

  • akira Akira in HD from XBL Video Marketplace? Coolness.
  • Omar Shahine has the WL Hotmail + Outlook scoop. Download it here. I've used this product off and on over the past few years. Typically, I would use it, love it, but then never get around to reinstalling it after a repave since it was subscription-only product. 
  • Microsoft releases eScrum project management tool. I've seen this internally but haven't used it yet. However, I have no doubt that the cool kids will deem it "not hot" in favor of Mingle. (via Larkware)
  • Ted Neward writes at length about relational databases, object databases and OR mapping. Ted may be Switzerland when it comes to platform, but he has no problem taking sides and mixing it up when it comes to data & object persistence. He makes some interesting points that mostly boil down to "different tools for different jobs". Also, has the dual schema problem entered the general vernacular, or just Ted's?
  • Nick Malik survives his trip to Nashville and has some thoughts on Ruby, Microsoft and alpha geeks. His point about the alpha geek track record (he sites Powerbuilder, Delphi and EJB) is spot on. This is something I've been thinking about since ETech last year. How good are alpha geeks at trendspotting? For every technology they adopt that makes the mainstream, how many don't? I'm guessing quite a few more than the three Nick mentions.
  • Speaking of alpha geeks, this whole ALT.NET silliness reminds me of the famous Groucho Marx quote: "I don't want to belong to any club that will accept me as a member." Though maybe I'm just bitter because "Working at MS" has been deemed "not hot". :)
Posted By Harry Pierson at 9:57 AM Pacific Daylight Time

Thursday, June 07, 2007

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?

Posted By Harry Pierson at 8:45 AM Pacific Daylight Time
F# | Microsoft | Rome | TechEd

Wednesday, June 06, 2007

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)
Posted By Dale Churchward at 12:31 PM Pacific Daylight Time

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.

Posted By Harry Pierson at 6:28 AM Pacific Daylight Time

Tuesday, June 05, 2007

TechEd 2007 - Day Two Morning

My session yesterday went very well, especially considering I did no prep whatsoever. Drew a fairly good sized audience - people were sitting on the floor and standing in the back, though honestly the TLC "theaters" only hold about 50 chairs. Most of them stayed the for whole session - at least until I started to run over (only 15 minutes, not too bad).

After my session, I ended up talking to a customer from a large home loan firm for about two hours. Turns out we had a friend in common, a guy I used to work with a long time ago @ ModaCad named Brian. This is actually the second time I've run into someone at a major Microsoft conference who has a single degree of Brian, which is a little freaky.

For dinner, I went out with some MS field architects and some customers. We ended up having such a big group, we split up into two tables and somehow my table had four MS employees and only one customer. But that customer was from a very large retail firm and we had lots to talk about. Ate way too much, though I didn't combine that with drinking too much. And, as a bonus, I didn't tell the customer than any of their ideas were "stupid", as my friend Christoph pointed out I had done the last time I was out to dinner with one of his customers. (That customer wanted to run Java on their mainframe. I stand by my assessment.)

I was planning to head up to my room, but ran into Jon Flanders in the lobby. Hadn't seen Jon since the class I took with him last fall, so I ended up hanging out with him for several hours, chatting up the folks we knew who walked by, including Rocky, Bob and Brian. I realized I've been heads down with no speaking or travel for about a year, so it's been a while since I had seen many of these folks. For example, I hadn't seen Brian in about three years when we were both presenting at TechEd New Zealand. The downside of hanging out in the lobby is that I didn't get any code written last night, which I was sort of planning to do when I headed back to the hotel. But chatting with these folks - esp. Jon this time - helps be figure out what I want to write anyway, so I guess it's worth it! :)

I ended up sleeping in this morning (still jet lagged) and skipping the morning session. No second keynote this year, which I didn't realize until I looked at the conf guide this morning. Not sure if that's a good thing or a bad thing.

Posted By Harry Pierson at 6:46 AM Pacific Daylight Time

Monday, June 04, 2007

TechEd 2007 - Day One Morning

Being at TechEd without thousands of things to worry about is somewhat strange. But I could get used to coming and going as I please, not tracking down speakers, ordering whiteboards and the rest of the responsibility that comes with track ownership.

My first session is right after lunch - 1:15 @ Green TLC Theater 4 if you're on site. Our Technical Learning Center (aka "the cabana") is fairly sparsely attended, at least for the moment. MSIT has never had this significant a presence at TechEd before, so I wouldn't be surprised if the attendees aren't quite sure what to make of it. I went over to the Architecture and SOA & Web Services area and ran into quite a few people I knew. I expect I'll spend more time down there than in my cabana.

I skipped the keynote this morning, apparently they did a Back to the Future parody. Had I known, I might have gotten up. But my flight got in at midnight last night, I didn't get to the hotel until 1am and an 8:30 keynote on the east coast feels like a 5:30 keynote to my still jet-lagged system. Since I skipped it, I'm not sure what was announced, but the opening press release salvo mentions the first CTP of SQL Server 2008, Visual Studio 2008 (aka the Visual Studio version formally known as "Orcas") and the Open XML SDK among other things. I've been hacking some Open XML lately, so I'll have to check that last thing out. Apparently, there was some also discussion of the Dynamic Systems Initiative, but in the press release it came across as Infrastructure Optimization. Not sure if those are one in the same or not.

BTW, for those not attending TechEd, you can check out Virtual TechEd and the TechEd Virtual Pressroom. Not the same as being here - no conversations, no swag and no roller coasters. But at least you can keep up on what's being announced, presented and spoken about.

I'm off to lunch. Missing the keynotes == missing breakfast. My session is in about an hour, so I'll probably post again afterwards. I'm hoping for more conversation and less presentation, so the only prep I've done is to iron my speaker shirt.

Posted By Harry Pierson at 9:09 AM Pacific Daylight Time

Monday, May 21, 2007

Birthday Coffee 80

  • Saw Shrek the Third over the weekend with the kids. It's gotten mixed reviews, but I liked it even though it wasn't as good as the first two. Is it just me, or has sequel-itis reached an all time high? This month alone we've had Spiderman 328 Weeks Later, Shrek the Third and the new Pirates movie opens this week.
  • Hot on the heels of his post on anonymous types, Scott Guthrie starts to explain LINQ to SQL, which is where all these C#3/VB9 features have been headed. Lots of digital ink have been spilled on this topic since we announced LINQ @ PDC 05, so I'll just point out that I think this is the first OR/M solution that really works well across the board.
  • David Ing sucks the fun out of PopFly by suggesting it might be a "nice data aggregation / reformatting service for technically-challenged managers [and] their business data". Sounds like the next step of enterprise mashups.
  • Speaking of PopFly, Larry O'Brein thinks PopFly is helping restore " the bridge between power users and programmers". From the PopFly FAQ: "We’re going back to our roots in 1975 when Microsoft originally launched BASIC for the Altair 8080. Tools like BASIC and Visual Basic 1.0 democratized development by enabling users to easily build applications on DOS and Windows. We believe we can make Popfly a great tool for building and sharing applications on the Web."
  • Scott Hanselman wonders if Microsoft is losing the Alpha Geeks. In a related vein, I wonder if MS should be learning more aggressively from the community. MS has been the source of many developer innovations, but certainly not all. For ideas pioneered elsewhere, we tend to eventually get it, but I think we could be better about it.
  • Apparently, I'm just a little younger than video games. Pong was born May of 1967, only three years to the month before me. (via Ozymandias)
Posted By Harry Pierson at 1:07 PM Pacific Daylight Time

Thursday, March 08, 2007

Morning Coffee 41 - TechFest Edition

As promised, I spent about half of yesterday at TechFest. Ran into some folks I knew, met some new folks, the usual social networking stew of these sorts of events. Here's some of the stuff I saw. Much of the stuff I saw wasn't public, but everything below has either a public MSR page or a brief description on the TechFest demo page.

  • SecPAL - easily the most work-applicable demo I saw. SecPAL stands for "Security Policy Assertion Language". It's a language for expressing distributed authorization policies. We're looking at authorization policies in the next phase of my MSIT project, so this was very timely.
  • 3D Video - Take a garden variety video shot with a camcorder and add computer generated 3D objects into the scene automatically. I actually saw this last year, but this year they've added automatic occlusion. In other words, it automatically calculates when a real-world object passes in front of the computer generated object and renders accordingly. Check out this video. This would be great for creating synthetic characters Jar-Jar Binks style (though hopefully less annoying)
  • Boku: Lightweight Programming for Kids - Sort of like LOGO, except beautifully rendered 3D, running on the Xbox 360 and programmed using an Xbox 360 game controller. Patrick's not quite ready for this - Riley even less so - but I'll be keeping an eye on this.
  • F# - nothing really new here, but I got to meet Don Syme in person.
  • Telescopic Pixel - Sort of like an LED screen but using significantly less energy efficient and faster.
  • Podcast Authoring using Speech Recognition - Instead of the standard waveform view of recorded audio, this app feeds the spoken words thru the Microsoft speech recognition engine and allows the user to crop the audio simply by selecting words. Not mind blowing technology like some of the other stuff I saw, but certainly an interesting combination of technologies.
  • Smart Workflow Foundation - Adding constraint solving capabilities to WF. Must noodle on this.
Posted By Harry Pierson at 10:53 AM Pacific Standard Time

Wednesday, March 07, 2007

Morning Coffee 40

  • My boss let me borrow a Tecra M4 that he scavenged from his boss. The display is fairly twitchy, I think it's a motherboard issue. But it's very intermittent and I'll get help desk to take a look. In the meantime, it sure is nice to driving a Tablet PC again. And it's Vista ready to boot.
  • Speaking of Vista, Visual Studio 2005 Service Pack 1 Update for Windows Vista. It's a mouthful but it's now available. Soma answers questions about the new release on MS PressPass.
  • The DSL tools team keeps on rolling with the power toys. First it was the Designer Integration PowerToy, now it's the DSL Tree Grid Editor PowerToy. Jeff Santos has the details.
  • I missed the TechFest keynote yesterday, but it's available on demand. They also have descriptions and videos of some of the technologies on display. (well, only one video so far, but I assume since the page is labeled "TechFest 2007 Videos" that more are on the way.)
  • There's new support for integrating WCF and WF coming in VS "Orcas". Moustafa Khalil Ahmed has the details on what's new for WF & WCF in the latest CTP drop. For me personally, the WCF/WF integration is some of the most important stuff coming in Orcas, second only to LINQ.
Posted By Harry Pierson at 11:28 AM Pacific Standard Time

Monday, March 05, 2007

Breaking News: TechFest 2007 Keynote

I was going to wait until tomorrow's Morning Coffee to post about TechFest 2007, but I just realized that Rick Rashid's keynote will be webcast publicly tomorrow at 9:30 am Pacific time. I don't ever get my Morning Coffee post out that early, so I figured I'd give my readers the heads up now.

From the TechFest website:

Microsoft Research TechFest provides a strategic forum for Microsoft researchers to connect with the broader group of Microsoft employees and product managers. Hundreds of researchers from Microsoft’s worldwide labs in China, England, India and the US gather for the annual event at the company’s corporate headquarters in Redmond, Washington. They come together to exchange ideas with colleagues, show off their latest innovations, and shine a light into the future of computing. In many cases, the partnerships formed at TechFest between researchers and product teams allow innovations to begin making their way into game-changing products for Microsoft customers.

I've been to every TechFest so far, even the first one when I lived in L.A. (got special permission my my manager to come up for it) and the one where I was on paternity leave after Patrick was born (got special permission from my wife to be leave her alone with a three week old). This one is no different. In fact, I think my whole team is going up on Wednesday.

Last week was been slow, but with GDC and TechFest I'm thinking this week will be much more lively.

Posted By Harry Pierson at 11:24 AM Pacific Standard Time

Tuesday, February 20, 2007

Morning Doughnuts 3

  • What does it take to be an architect? Skyscrapr.net attempts to answer this question by asking a bunch of architects.
  • I have started teaching my children about astronomy. I found an open source product called Stellarium that is excellent for learning about the celestial objects visible in your area.
  • A Methodology for SOA adoption? I read an interesting blog on this subject from a couple of weeks ago. It's not a long article, but the author makes some interesting points including an outline for SOA adoption.
  • I finally picked up Gears of War on Friday. It really isn't a game I can see playing much, although I can see why it's popular. I guess the best and the worst part of the game is having to utilize cover so you don't die right away.
  • Windows Live Writer is a great tool! I use it to author the blogs for my website, and this week I have been using it on these Morning Doughnuts posts. My favorite feature is that you can preview your post and see exactly how it will appear on your website. This has been particularly useful since Devhawk and my site look quite different.
Posted By Dale Churchward at 9:02 AM Pacific Standard Time

Monday, November 27, 2006

Let It Snow

My wife wanted snow, and main Microsoft campus got it. Not much - less than an inch by my measurement - but enough to snarl traffic getting off campus. Jules and I decided it would make more sense for me to grab dinner in the campus cafe and wait out some of the crowds rather than brave the snow and traffic on a nearly empty tank of gas.

Of course, I don't work on campus any more. My office is way down in Issaquah. Unluckily for me, I had a meeting on main campus today. It was a great meeting - talking about my project with some field architects. But I didn't expect to get trapped on campus by snow or I would have blown it off. Next time, I need a meeting room with windows!

Update - It took me only 45 minutes to get home, which is actually fairly typical for me to get home from main campus in the evening. There must have been an accident on 520 because when I crossed the freeway by campus, it was bumper-to-bumper as far as I could see in both directions. But when I passed the 520 exit by my house, there was only a trickle of cars coming off it. The side streets were surprisingly empty. Maybe everyone was afraid they'd be impassible with snow? Takes more than an inch of snow to stop me and my 4WD Chevy Blazer.

Posted By Harry Pierson at 6:56 PM Pacific Standard Time

Monday, October 23, 2006

The Other Foundation Technology

I mentioned last week that WF "is one of two foundation technologies that my project absolutely depends on". Sam Gentile assumes the other foundation technology is WCF. It's not.

As a quick reminder, my day job these days is to architect and deliver shared service-oriented infrastructure for Microsoft's IT division. These services will be automating long running business operations. And when I say long running, I mean days, weeks or longer. While there will surely be some atomic or stateless services, I expect most of the services we build will be long running. Thus, the infrastructure I'm responsible for has to enable and support long running services.

The other foundation technology my project depends on is Service Broker. Service Broker was expressly designed for building these types of long running services. It supports several capabilities that I consider absolutely critical for long running services:

  • Service Initiated InteractionUse SHIFT+ENTER to open the menu (new window).. Polling for changes is inefficient. Long running operations need support for the Solicit-Response and/or Notification message exchange patterns.
  • Durable Messaging. The first fallacy of distributed computing is that the network is reliable. If you need to be 100% sure the message gets delivered, you have to write it to disk on both sides.
  • Service Instance Dehydration. It's both dangerous and inefficient to keep an instance of a long running service in memory when it's idle. In order to maximize integrity (i.e. service instances survive a system crash) as well as resource utilization (i.e. we're not wasting memory/CPU/etc on idle service instances), service instances must be dehydrated to disk.

In addition to these capabilities, Service Broker supports something called Conversation Group Locking, which turns out to be important when building highly scalable long running services. Furthermore, my understanding is that Conversation Group Locking is a feature unique to Service Broker, not only across Microsoft's products but across the industry. Basically, it means that inbound messages for a specific long running service instance are locked so they can't be processed on more than one thread at a time.

Here's an example: let's say I'm processing a Cancel Order message for a specific order when the Ready to Ship message arrives for that order arrives. With Conversation Group Locking, the Ready to Ship message stays locked in the queue until the Cancel Order message transaction is complete, regardless of the number of service threads there are. Without Conversation Group Locking, the Ready to Ship message might get processed by another service thread at the same time the Cancel Order message is being processed. The customer might get notified that the cancellation succeeded while the shipping service gets notified to ship the product. Oops.

There's also an almost-natural fit between Service Broker and Windows Workflow. For example, a Service Broker Conversation Group and a WorkflowInstance are roughly analogous. They even both use a Guid for identification, making mapping between Conversation Group and WF Instance simple and direct. I was able to get prototype Service Broker / WF integration up and running in about a day. I'll post more on that integration later this week.

Last but not least, Service Broker is wicked fast. Unfortunately, I don't have any public benchmarks to point to, but the Service Broker team told me about a private customer benchmark that handled almost 9,000 messages per second! One of the reasons Service Broker is so fast is because it's integrated into SQL Server 2005, which is is pretty fast in it's own right. Since Service Broker is baked right in, you can do all your messaging work and your data manipulation within the scope of a local transaction.

Service Broker has a few rough areas and it lacks a supported managed api (though there is a sample managed api available). Probably the biggest issue is that Service Broker has almost no interop story. If you need to interop with a Service Broker service, you can use SQL Server's native Web Service support. or the BizTalk adapter for Service Broker from AdapterWORX. However, I'm not sure how many of Service Broker's native capabilities are exposed if you use these interop mechanisms. You would probably have to write a bunch of application code to make these capabilities work in an interop scenario.

Still, I feel Service Broker's unique set of capabilities, its natural fit with WF and its high performance make it the best choice for building my project's long running services. Is it the best choice for your project? I have no idea. One of the benefits of working for MSIT is that I get to focus on solving a specific problem and not on solving general problems. I would say that if you're doing exclusively atomic or stateless services, Service Broker is probably overkill. If you're doing any long running services at all, I would at least give Service Broker a serious look.

Posted By Harry Pierson at 11:29 AM Pacific Daylight Time

Friday, September 29, 2006

"Working" From Home As The Office Moves


Even though I moved offices just a month ago, we moved again today. New office won't be ready until Monday, so I "worked from home". Of course, with two kids too young for school, getting much actual work done is essentially impossible. I did manage to get my blog upgraded to dasBlog 1.9 during the kids' naps.

My new office building is "Issaquah Black" which is a much cooler name than "18" or "Sammamish C". The building used to be a Boeing building. In fact, my old next door neighbor used to work in this building, back when he and I lived a scant 2.5 mile / 6 minute commute from here. Boeing moved him to Everett and apparently decided to get rid of the building. A year ago, I moved to a new house on the outskirts of Redmond, so my commute is 12.5 miles / 20 minutes. Significantly longer than if I had never moved, but I love my house and can easily deal with a 20 minute commute. Even though main campus is closer (only 8 miles), with all the rush hour traffic it takes closer to 45 to get there!

Posted By Harry Pierson at 5:03 PM Pacific Daylight Time

Thursday, June 15, 2006

Really Not the Biggest Job Change News

This is even bigger than Scoble leaving, much less me moving to a new role.

Microsoft Announces Plans for July 2008 Transition for Bill Gates

Microsoft Corp. today announced that effective July 2008 Bill Gates, chairman, will transition out of a day-to-day role in the company to spend more time on his global health and education work at the Bill & Melinda Gates Foundation. The company announced a two-year transition process to ensure that there is a smooth and orderly transfer of Gates’ daily responsibilities, and said that after July 2008 Gates would continue to serve as the company’s chairman and an advisor on key development projects.

The company announced that Chief Technical Officer Ray Ozzie will immediately assume the title of chief software architect and begin working side by side with Gates on all technical architecture and product oversight responsibilities, to ensure a smooth transition. Similarly, Chief Technical Officer Craig Mundie will immediately take the new title of chief research and strategy officer and will work closely with Gates to assume his responsibility for the company’s research and incubation efforts; Mundie also will partner with general counsel Brad Smith to guide Microsoft’s intellectual property and technology policy efforts.

Wow.

Posted By Harry Pierson at 1:36 PM Pacific Daylight Time

Moving On...

It's not the biggest job change news this week (or the day), but after three years on Architecture Strategy and six years total as an evangelist, I'm moving on to a new role. After six years, I decided it was time for me to put my money where my mouth is as well as get my hands dirty building something more substantial than buzz.

I'll be moving over into Microsoft's IT division as a member of the Integration Center of Excellence Architecture Team. Integration, as you might guess, is a euphemism here for service-orientation. My team is tasked with architecting and delivering the shared service-oriented infrastructure for four of the biggest projects Microsoft IT will be delivering in the next year. Last time I changed jobs, I lamented that "With each job I take at MSFT, coding seems to become less a part of the job description." Happily, this is NOT the case this time.

About a year ago, Microsoft hired Stuart Scott to run the business apps side of IT as one of our two CIOs (our other CIO Ron Markezich oversees the IT infrastructure). Stuart was kind enough to spend about an hour with me last week explaining his vision for how he sees MSIT evolving under his leadership. Here's what he said in a recent interview:

PressPass: How do you see Microsoft IT evolving?

Scott: There is a broader role for IT to play at the front end of the development of products and services. Our IT organization knows a lot about the challenges that other IT organizations face because we build and maintain the IT backbone of a massive worldwide enterprise. IT must become future-thought leaders in the development of the product roadmap for our enterprise products.

By using our internal applications and experiences to build better products for our enterprise customers, we have the potential to solve the challenges that other IT organizations face. We’re heavily involved in dogfooding our products once they’ve been developed, but we also see a role closer to the front end of the product development cycle. Business Intelligence is one area where we will be partnering with the product groups and Finance as we build out our internal capability. I want to ensure that any product we develop to meet the needs of Microsoft, also meets the needs of the marketplace.

He was also very frank about the current state of affairs in MSIT relative to the vision. He was quoted in China Information World (no link, sorry) as saying that "The systems Microsoft now uses are already 14 years old and based on previous versions of windows, so from a systems capability perspective, they cannot support the needs of the growing business."

All in all, I was pretty impressed with what he's setting out to do and the opportunity not only from a business perspective from from an industry perspective as well. Hence the whole "going to work in his division" thing. Of course, "Thought Leadership" is one of the things Architecture Strategy works on very diligently, so in some ways this isn't as big a change as it might be. On the other hand, giving advice to people solving hard problems is a lot different than solving those hard problems yourself.

I'll be starting this new role pretty much immediately, so expect the less-than-usual blogging to continue for the time being. But my external visibility on my blog and presenting at conferences and executive briefings is one of the things they hired me for. So after I get my bearings things should be back to normal. At that point, I'll hopefully be able to talk in more specific terms about what we're tackling on my new team. I hope to shake things up quite a bit over there and deliver the play by play here on my blog.

Massive thanks to John deVadoss and the rest of the Architecture Strategy Team. Back when I started, I think Simon Guest was the only other blogger on the team. Now there are only three non-bloggers on the whole team. It's been a great three years and I've been a part of so many great accomplishments:

I always joke that if I ever left Microsoft, I wouldn't want to go work for another technical company. Now, I get the chance to go affect the business of a Fortune 50 business while not having to leave Microsoft. Pretty sweet.

See you on the other side.

Posted By Harry Pierson at 8:19 AM Pacific Daylight Time
Change Congress
Recent Bookmarks
Tags .NET Framework (2) __clrtype__ (9) ADO.NET (5) Agile (7) AJAX (3) Architecture (288) Guidance (6) Interop (2) Modelling (61) Patterns (7) Process (4) SOA (94) Web Services (5) ASP.NET (25) Async Messaging (2) Azure (1) Battlestar Galactica (3) BI (2) BizTalk (4) Blogging (117) dasBlog (11) Podcasting (4) BPM (1) C# (11) C++ (4) Capitals (5) CardSpace (3) CLR (2) CodePlex (1) College Football (10) Comedy Central (1) Community (81) Concurrency (6) Consumer Electronics (1) Database (13) Debugger (23) Dependency Injection (2) Development (122) C Plus Plus (1) Embedded (5) Lanugages (42) Media (2) P2P (11) Rotor (1) SharePoint (6) SOP (3) DIY (1) DLR (25) Domain Specific Languages (15) Durable Messaging (5) Dynamic Languages (12) Dynamic Silverlight (1) Education (3) Enterprise 2.0 (1) Entertainment (14) ETech (15) F# (51) Functional Programming (17) Game Development (2) Guidance Automation (3) Hardware (8) HawkCodeBox (1) HawkEye (3) Health (1) Hockey (31) Home Electronics (1) Home Network (5) Hosting API (1) Humor (5) IASA (1) Idempotence (3) infrastructure (5) Instrumentation (4) Integration (2) IronPython (112) IronRuby (16) Java (2) Job (3) Kodu (1) LangNET (2) Lightweight Debugger (5) LINQ (23) Live Framework (3) Live Mesh (2) Lost (1) Master Data Management (1) Media 2.0 (6) Microsoft (31) MIX06 (2) Mobile Phone (1) Monads (5) Morning Coffee (172) Object Oriented (4) Office (5) Open Source (8) Open Space (2) Operations (3) Other (135) Art (1) Books (1) Family (33) Games (18) General Geekery (27) Home Theater (1) Movies (23) Music (20) Politics (3) Society (1) Sports (37) Working at MSFT (19) Parallel Programming (3) Parsing Expression Grammar (16) patterns & practices (2) PDC08 (5) Politics (48) Polyglot (3) PowerPoint (2) PowerShell (39) Presentation (7) Projects (1) HawkWiki (1) Pygments (5) Python (6) Quote of the Day (4) Refactoring (1) Research (2) REST (18) Reuse (5) Robotics (2) Rock Band (4) Rome (5) Ruby (23) Ruby on Rails (1) Sci-Fi (2) Scripting (4) Security (3) Service Broker (14) SharePoint (2) Silverlight (20) Social Software (1) Software + Services (2) Software Design (2) Software Engineering (1) Software Factories (11) Software Industry (1) Space Elevator (1) Spark (1) SQL Server (2) Stephen Colbert (1) TechEd (7) TechEd06 (1) TechRec League (1) Television (6) Travel (7) Unified Client (1) Unit Testing (4) USC (1) UX (1) Virtual PC (2) Visual Basic (3) Visual Studio (20) Volta (2) Washington Capitals (37) WCF (31) Web 2.0 (67) Web Services (7) WF (21) Windows (3) Windows Live (29) Windows Live Writer (3) WPF (8) Xbox (1) Xbox 360 (54) XML (11) XNA (15) Zune (4)
Disclaimer: The information in this weblog is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion. Inappropriate comments will be deleted at the authors discretion.