Passion * Technology * Ruthless Competence

Monday, August 25, 2008

Morning Coffee 172

  • I took the kids to see Fly Me To The Moon recently. We had to trek to Monroe (about 30 minutes away) because it's a special 3D movie, and it was only playing there and in downtown Seattle. The movie's story is insipid - three flies stow away on Apollo 11 - but all the space shots were actually kinda cool. It sure felt like they wanted to be scientifically and historically accurate about the the actual mission (well, other than the part about the flies). Patrick really liked it (he wants to build a rocket in the back yard) and Riley sat thru the whole thing with a minimum of fussing.
  • I'm a big fan of Joe Biden, so I'm really happy Obama picked him to be his running mate.
  • I know it's old news but what the frak was John Edwards thinking? I like his policies, but the arrogance it takes to run for president when you know you've got that skeleton in your closet is mind-boggling.
  • On the other hand, watching the Sean Hannity and guest's hypocrisy on Edwards' affair, only to watch them scramble like cockroaches when Colmes points out McCain had admitted to having an affair was frakking hilarious.

OK, onto geek stuff:

  • My new boss Dave Remy has moved to a new blog. If you're curious what he was up to for the 10 months he was away from Microsoft, he's happy to share.
  • IPy and IRuby developer Curt Hagenlocher (aka Iron Curt) is blogging. Cue the Ozzy...I AM IRON CURT. Or don't. Anyway, he dives in the deep end of the pool - no "hello world" lollyblogging for Iron Curt - digging into the stack implications of rethrowing exceptions and debugging emitted IL.
  • Srivatsn writes about static compilation of IPy scripts. Note, we're not talking about static typing - it's still the same good-old dynamically typed IronPython, just packaged up as an assembly, rather than as a bunch of .py files. Note, if you're interested in compiling IronPython, you should check out the PYC sample we published as part of Beta 4.
  • Speaking of IPy Beta 4, Shri Borde posts about the COM dispatch support which is enabled by default as of Beta 4. If you're driving COM automation clients (like Office) from IPy, this is a huge improvement over the old mechanism.
  • Jeff Hardy has released a new version of NWSGI, a managed version of Python's Web Service Server Gateway Interface. My understanding is that this would allow any Python web stack written against WSGI to run in IIS with IronPython (subject to IronPython's compatibility with CPython). Jeff's been documenting his efforts getting Django running with NWSGI on his blog. Awesome work Jeff! (Thanks for the correction Seo!)
  • I never really bought into the "Attention Economy", but Chris Anderson's economic analysis of his DIY Drones site traffic was fascinating.
  • Lutz announces "it is time to move on" from Reflector and there was a collective horrified scream in the .NET community. He's handing it over to Red Gate, who promised they "will continue to offer the tool for free to the community".
  • I missed this when he posted it in June, but I really liked Nikhil Kothari use of the DLR in Silverlight to cut down on the XAML verbosity in his ViewModel action binding.
  • Brian McNamara previews the new Add Reference and file ordering support in the upcoming F# CTP. I'm really looking forward to the project-to-project reference support. I can't tell you how many times I've gotten burned because my main project recompiled but my test project didn't. You just get used to hitting Rebuild All instead of Build. As for file ordering, it's a bit of a bummer that F# requires it, but the new experience is hella better than editing the project file by hand. I'm really looking forward to the new CTP.
Posted By Harry Pierson at 9:56 AM Pacific Daylight Time

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

Tuesday, April 22, 2008

Morning Coffee 163

Between MVP summit last week, ALT.NET this past weekend and an internal brown-bag presentation yesterday, my unread email and blog posts have piled up. Most of the following is old news, but I wanted to get something out. Especially since I feel a case of Caps Fever coming on that will force - force you understand - me to head home early today.

DyLang Stuff

  • My teammate Srivatsn demonstrates how to make your static C# types act more dynamic in order to interop better with DLR languages. For example, by implementing GetBoundMember and SetMemberAfter, you can support setting arbitrary attributes on a C# class from Python. Cool.
  • Today's Michael Foord link: On Testing: Some Programmers Refuse to Get it. He's responding to a comment by Allen Holub suggesting that having 110k of test code for 30k of production code is "a real indictment of the language" (IronPython). I'm with Michael on this, Holub's suggestion is laughable and worse radically uninformed. I like the way Larry O'Brien (who passed on Holub's comment in the first place) describes the views of tests from inside and outside the agile community. I also like his description of tests as "quality diodes".

Other Stuff

  • Werner Vogels posts about a new Amazon EC2 feature: Persistent local storage. Basically, you can create an empty volume up to a terabyte in size and then mount it to your images as a drive. The objective seems to be able to run relational databases in the images, rather than being limited to S3 and SimpleDB. Kinda interesting, but given Google's announcement last week, I think the shine is off EC2 a bit.
  • This past weekend's Twitter outage has Dave Winer re-thinking the idea of building networks on a single point of failure. While obviously I agree with the concept, I don't agree with his solution that "We need some big infrastructure companies to get into this game". While there are some big blog infrastructures out there, most of that network was built on a massive number of small infrastructures. Why wouldn't the same thing work for microblogging?
Posted By Harry Pierson at 11:27 AM Pacific Daylight Time

Wednesday, April 09, 2008

Morning Coffee 162

  • Another nice thing about the new job: I'm working in the vicinity of some good friends. I was over in building 42 yesterday and made it a point to stop by Pat Helland's office yesterday and spend an hour or so chatting about the new gig. Pat is down the hall from David Hill, whom I worked with on Architecture Strategy. Back in my building, we're down the hall from the VSX folks including my friends Ken Levy and Gareth Jones. I'm sure there are more folks I know around, but hey it's only my second week!
  • I'm a big fan of Carbonite, which I use to back up all the digital media on my home computer. With two little kids, we have lots of digital photos as you might imagine . However, one thing that bugs me about Carbonite is that it doesn't back up video files by default, you have to go in on a folder by folder basis and select "'Back up Video files in this folder" from the context menu. Given how much trouble this "feature" has given me, I imagine less techie folks don't even realize their video files aren't getting backed up. However, I will say the latest version of the Carbonite Software at least makes it easy to find files that aren't backed up. A quick sweep revealed around a dozen folders that had un-backed-up video files in them, which I promptly fixed.
  • The big news yesterday was the new Google App Engine, which looks to give you access to virtualized infrastructure that sounds similar to what GOOG is rumored to use internally. I like Dave Winer's comment that this enables "shrinkwrap net apps that scale that can be deployed by civillians." Given Google's history w/ Python - Python's BDFL Guido van Rossum works there - it's no surprise that Google App Engine (GAE?) runs on Python, though apparently they "look forward to supporting more languages in the future". I'm guessing "more languages" == Ruby, maybe Erlang too.
  • I wonder if/how Google App Engine will affect Ruby on Rails momentum? If there's a significant lag before App Engine supports Ruby, will that drive developers to Python web stacks like Django? (Django is included in "the box" with App Engine)?@ PyCon, I was surprised at the intra-language animosity I observed. I wonder how many Python developers are secretly hoping Google never ships Ruby support. I highly doubt Google would do that - they want to tap the exploding RoR market like everyone else - but I'd bet it would really take the wind out of Rails' sails if they did.
  • Today's Michael Foord Link: Embedding IronPython 2, Examples of the DLR Hosting API. You can read the DLR Hosting spec, but it's pretty out of date so Michael's article helps fill in some of the gaps.
  • Looks like PowerShell has gotten the open source community treatment in a project called Pash. While I'm sure others are excited about PS on Linux or Mac, I'm excited to see PS running on Compact Framework. I wonder if it would work with XNA?
  • Speaking of XNA, XNA Console is a new CodePlex project that provides an IPy console to manipulate your XNA based game on the fly. Python is no stranger to game development - Civ IV for example provided mod capabilities via python. Alas, the compact framework can't run IPy today, so neither can XNA on Xbox. But wouldn't it be cool to hack your game in IPy running on a 360 using the messenger kit? (via IPy URLs)
  • Bart De Smet gets functional, writing type switch and pattern matching in C# 3.0. I guess it works, but it sure is ugly. Why not just use F# and be done with it?
  • Soma announces that the VC++ Feature Pack has shipped. Somewhere, I assume, there is much (some?) rejoicing.
Posted By Harry Pierson at 10:20 AM Pacific Daylight Time

Friday, March 21, 2008

Will The Real DevHawk Please Stand Up?

Sometimes when I blog about politics, I'll get a comment like this:

As far as I'm concerned, posting about topics such as politics or religions on a blog that's supposedly about technology is just looking for trouble.

As I've pointed out before, DevHawk is not "a blog that's supposedly about technology". It's a personal blog - my very tiny corner of the web, if you will - so I feel totally justified writing about technology, politics, hockey and whatever else I want to. I figure that if you don't like it, you're free to unsubscribe and neither of either of us will lose any sleep over it.

The flip side is that DevHawk has traditionally been the only place where I exercise such lack-of-restraint. When my blog was featured on MSDN Architecture Center, I cross-posted relevant content to a separate blog so as to create an topic-focused and safe-for-work subset of my "real" blog. It was always a hassle - especially tracking comments to the same post in two places - and I quit doing it shortly after leaving the Architecture Strategy Team.

However, now that I'm using Twitter, it doesn't feel like DevHawk is "my only place" anymore. My blog == my writing, my del.icio.us == links I find interesting and my Twitter == real time updates. I use FeedBurner to include my del.icio.us links in my blog feed and twitterfeed to include the blog feed in my twitter feed. Therefore, Twitter is the only place to get an feed of all three. Obviously, Twitter's feed isn't full content, but in an always connected world, clicking the link to read the blog entry in the browser isn't that big a deal. Besides, you can always subscribe to both the blog and twitter feed if you want full content + real-time.

I haven't fully integrated Twitter into my daily life yet, though I'm getting there - for example I twittered the results of my hockey game last night. But unlike other social software sites, I think I'm going to be using Twitter regularly. I'm on Facebook, but there's too much "you've been bitten by a Vampire!" type spam to really use it for anything but pure entertainment. Twitter is more like blogging, where there's an information exchange with only the people I subscribe to follow. Also, maybe it's me, but there doesn't seem to be the same stigma if you stop following someone on Twitter compared to rejecting them as a friend on Facebook.

DevHawk has been "me", but now it feels like DevHawk @ Twitter will become "me" which leaves my blog to become my endless book. It's not a bad thing, but it does feel a little strange.

Posted By Harry Pierson at 12:31 PM Pacific Standard Time

Thursday, March 20, 2008

Morning Coffee 159

As you might expect, these morning coffee posts are going to get more dev focused as well as more IPy focused.

  • One of the cool things we showed @ PyCon was Django running on the latest drop of IronPython. IPy lead developer Dino Viehand posted a blog entry (for the first time in 28 months!) showing the basic Python DB provider for SQL Server he put together. Hopefully, we won't have to wait another two and a half years for Dino's next post.
  • Speaking of IronPython, some of my new teammates pointed me to Michael Foord's Planet IronPython aggregate news site. Michael is IPy developer for Resolver Systems (the cool spreadsheet app hybrid I wrote about @ Lang.NET) and he's working on an IPy book.
  • Still speaking of IPy, Jeff Hardy dropped his first release of NWSGI, an port of Python's Web Service Gateway Interface spec to ASP.NET and IPy. I can't wait to see NWSGI combined Django running on IPy like Dino demoed @ PyCon. Congrats Jeff!
  • Scott Hanselman's post on Twitter reminds me that I recently started twittering myself. I haven't worked it into my daily routine, so it gets updated only occasionally, but after reading Scott's post, I'm thinking it's cooler than it appears on the surface. 
  • In surprising news, Microsoft is going to start collaborating with IBM's Eclipse Foundation, to make it easier to it easier to write apps for Windows in Java. I would think this is a very cool thing, but apparently Ted Neward - who's knowledge of JavaWorld far eclipses (ha ha) my own - thinks "the skin here is just too sensitive" and that this move might cause more controversy between MS and Java. However, he seems to imply the controversy would be between MS & Sun (Eclipse is obviously named as a jab @ Sun) rather than between MS & the Java community.
Posted By Harry Pierson at 10:08 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

Thursday, February 28, 2008

Morning Coffee 151

  • Unity's first CTP was just over two weeks ago, but according to Grigori Melnik, it's shipping just over two weeks from now. That seems pretty speedy to me. By the time I get a change to take a closer look at Unity, it'll probably have shipped.
  • I discovered Matthew Podwysocki blog via DNK. I don't typically subscribe to blogs that I discover via DNK, but Matthew has written about IoC/Unity, F# and DLR lately so I'm thinking I should be a regular reader.
  • Corporate VP David Treadwell has an extensive post on updates to the Windows Live Platform Services that are being unveiled at MIX next week. The updates include the new WL Messenger Library, a new SDK for WL ID Delegated Authentication, a new WL Photo API, a new CTP of WL Tools, standardized support for AtomPub, updates to WL Contacts API and Sivlerlight Streaming and a new "experimental" service called Application Based Storage that "allows application developers to store a small amount of state/configuration data in the WL data centers on behalf of a user". I'm sure there'll be more WL news at the MIX conference proper, but that's quite a good chunk of features to start digging into. Personally, I'm particularly interested in WL Delegated Auth, esp. how it deals with phishing, something I don't think OAuth handles very well.
  • Windows Live isn't the only group making announcements in advance of MIX. Adobe announced a research project that allows "cross-compiling existing code from C, C++, Java, Python, and Ruby to ActionScript." This seems pretty obviously a response to Silverlight 2.0's embedded CLR, announced last year @ MIX. Support for C++ is very interesting - Adobe evangelist Ted Patrick claims they were even able to cross-compile Quake 1 to Flash. Interesting, but this is an internal research project @ Adobe with no projected release date while Silverlight 2.0 goes into beta next week.
Posted By Harry Pierson at 11:38 AM Pacific Standard Time

Monday, January 28, 2008

Morning Coffee 140

  • I only posted one Morning Coffee post last week. It wasn't a lack of content, it was a lack of drive on my part. I had 20-30 items flagged in my news reader, but for some reason I couldn't work up the interest in posting them. So some of these are a bit old.
  • I'm at the Language.NET Symposium this week, so look for lots of language blogging. I've already chatted with Tomáš Petříček and John Lam. If someone kicks Ted Neward's ass because he hates Perl, I'll try and liveblog it.
  • Speaking of Ted Neward, he discusses the question "Can Dynamic Languages Scale?" without devolving into a flame-fest. I agree 100% with his point about the difference between performance scaling and complexity scaling. Personally, I tend to err on the side of better complexity scaling, since buying hardware is easier than hiring developers.
  • Nick Malik responds to me calling his shared global integration vision flawed. He points to NGOSS/eTOM as an example of a shared iterative model that works. I know squat about that shared model, so I'll refrain from commenting until I do a little homework on the telco industry.
  • Speaking of shared interop models, Microsoft is joining DataPortability.org. Dare Obasanjo and Marc Canter are skeptical that so far this effort is all hype and no substance. Reminds me a bit of AttentionTrust.org. But if DataPortability.org can get off the ground, maybe there's hope for Nick's vision (or vis-versa).
  • Don Syme lists what's new in the latest F# release. As I said, this release is pretty light on features. Hopefully, I'll get some details
  • Tomas Restrepo shows how to change your home folder in PowerShell. I need to do this.
Posted By Harry Pierson at 9:10 AM Pacific Standard Time

Monday, December 17, 2007

Morning Coffee 131

  • On a recommendation from my mother-in-law, I've been watching Torchwood. Sort of Men in Black, the series and set in Cardiff. Since it's made in England, it'll be one of the few shows still running in the new year due to the WGA strike.
  • A while back I pointed out that many DotNetKicks articles were submitted by their authors. I submitted a few of my own, just for kicks (har har), with mixed results. Today, I discovered that the parse buffer post from my Practical Parsing in F# series was submitted, picked up some kicks, and made it to the home page. That's pretty cool. I guess writing more dev-focused articles is the way to go to get attention on DNK.
  • Amazon has rolled out a limited beta of SimpleDB, which appears to be S3 + query support. Cost is based on usage: 14¢/hour for machine utilization, 10¢/GB upload, 13-18¢/GB download and $1.50/GB storage/month. I'd love to see SimpleDB software that I could download and install, rather than hosted only. Even if I was going to use the hosted service, I'd like to develop against a non-hosted instance.
  • Research for sale! I was checking out the MS Research download feed and discovered a link to the Automatic Graph Layout (MSAGL) library. This was previously called GLEE (Graph Layout Execution Engine) and was "free for non-commercial use". Now, you can buy it for $295 from Windows Marketplace (though the previous free version is still available). The idea of directly commercializing research like this strikes me as pretty unusual. It must be a really good library.
  • Scott Guthrie shows off the new Dynamic Data Support that will ship as part of the ASP.NET Extensions. I'm like, whatever. Scaffolding wasn't that that interesting to me in RoR, so it's no surprise that it's not that interesting in ASP.NET.
  • Jeff "Party With" Palermo blogs about the IoC support in the new MVC Contrib project. Also looks like they're porting RoR's simply_restful. (via Scott Guthrie
  • I need to try out some of Tomas Respro's VS color schemes (also via Scott Guthrie)
Posted By Harry Pierson at 11:13 AM Pacific Standard Time

Monday, November 19, 2007

Morning Coffee 124

  • While my blog was down last week, I finally finished Gears of War. I played thru on hardcore, but had to throttle back to casual to beat the last boss. I'd like to try and finish on hardcore, but I've moved on to Dead Rising - another game from last year I never had time to finish. I'm almost done the main play mode, though I understand there are other play modes that get unlocked when you finish it.
  • I'm forbidden from buying any new games before Christmas, so Mass Effect, Assassin's Creed and The Orange Box will have to wait. My next game will either be Blue Dragon, which a friend let me borrow, or R6:Vegas, yet another (but the last) game from last year I never got time to play.
  • I'll skip the "giving thanks" jokes and point out that Visual Studio 2008 and .NET FX 3.5 have shipped.  Soma has the announcement and both Scott Guthrie and Sam Gentile summarize what's new. The Express editions are available from the new Express Developer Center. The VS SDK doesn't appear to be released yet, but I'm sure it will be along in due course.
  • Speaking of VS SDK, CoDe Magazine did an entire issue on VS Extensibility which you can read online or download as PDF.
  • Nick Malik took a bunch of heat back in June for what some thought was a redefinition of Mort, one of the Developer Division personas. Now Paul Vick thinks it's time to retire the Mort persona, primarily because of the negative connotation the name carries. His suggestion for a replacement is Ben (as in Franklin). And did you notice how similar Paul's description of Mort is to what Nick described? I'd say some folks owe Nick an apology.
  • I said Friday I was going to take a closer look @ OpenID and OAuth. There's an intro to OpenID on their wiki and Sam Ruby's OpenID for non-SuperUsers seems to be the canonical source on implementing OpenID on your own blog. Frankly, reading the OpenID intro reminded me a lot of WS-Federation Passive Requestor Profile. Does OpenID have the equivalent of an "active" mode?
  • Likewise, the Beginner’s Guide to OAuth series of posts by Eran Hammer-Lahav is a good intro to OAuth. The phrase "Jane notices she is now at a Faji page by looking at the browser URL" from the protocol walkthru makes me worry that OAuth is vulnerable to phishing. Having one of the OAuth authors call phishing victims careless and wishing for Karl Rove to "scare people into being more careful and smarter about what they do online" makes me think my fears are well grounded. I'm thinking maybe OAuth and OpenID aren't quite ready to nail down WS-*'s coffin.
  • In researching OpenID, I came across this presentation hosted on SlideShare. I had never seen SlideShare before - it's kinda like YouTube for presentations. Sharing basic presentations is kinda lame - there doesn't appear to be any animation support, so the slides are basically pictures. However, they also support "slidecasting" where you sync slides to an audio file hosted elsewhere. That I like. I have a bunch of old decks + audio, maybe I'll stick them up there.
Posted By Harry Pierson at 11:12 AM Pacific Standard Time

Thursday, October 25, 2007

The Worst of Both Worlds

David Pallmann of Neudesic responded to my comment that "Physically distributed but logically centralized" didn't make any sense to me at all:

What exactly does this mean? To some this may sound like a contradiction.

This simply means that a bus is physically more like the point-to-point architecture (spread out, no hub) but functionally more like the hub-and-spoke architecture (pub-sub messaging, centralized configuration and activity tracking, easy change management).

Unfortunately, I wasn't confused about the seeming contradictory nature of these concepts. In other words, I understand the "what" and "how" of David's physically distributed/logically centralized approach.

I don't understand the "why". As in, "why would you want to do this?" or "why do you think this would work at any significant scale?".

If we check out Neudesic's page on their ESB product (which David pointed me to) we find the following blurb:

Centralized Management
The distributed nature of service oriented programming can create a management nightmare. Neuron·ESB supports this distributed architecture while simultaneously centralizing monitoring and configuration.

SOA's "distributed nature" is it's primary strength. SOA's not primarily about standards or ease-of-connectivity - though those obviously play a role. It's about enabling decentralized decision making. Since you can't be both centralized and decentralized, enforcing centralized management basically negates SOA's primary strength. This seems like the worst of both worlds to me. All the hassle of distributed decision making combined with all the hassle of centralized management.

Yes, decentralized decision making can create a management nightmare. Personally, a management nightmare is much more attractive anything centralized approaches have ever delivered in the IT industry.

Dare Obasanjo recently wrote "If You Fight the Web, You Will Lose". He was talking about the Web as a Platform, but it's good general advice. Can you imagine applying the marketing blurb above to the Internet at large?

Centralized Management
The distributed nature of service oriented programming the Internet can create a management nightmare. Neuron·ESB supports this distributed architecture while simultaneously centralizing monitoring and configuration.

If the Internet can somehow get by without centralized management, why can't you?

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

Thursday, October 18, 2007

Morning Coffee 118 - ITARC SoCal Edition

I'm not back on blog sabbatical, but between finishing my presentation and attending ITARC SoCal earlier this week - not to mention being sick - I didn't have time to write anything. Normal Morning Coffee resumes tomorrow, here's a summary of my notes from on my two days at ITARC.

  • Scott Ambler did the opening keynote on agile enterprise architecture strategy.
    • He claims that success is more prevalent in the industry that people think, because the industry has a narrow definition of success. If you change (aka widen) the definition, the success rate goes way up! That's not exactly useful, but he referred to an as-yet-unpublished survey on project success rate that should be up on DDJ "soon". I'd like to see that raw data.
    • While I agree with most of his points, Scott's presentation style is very abrasive. For example, he makes the point that there is no one-size-fits-all process, which I couldn't agree with more. But does he say it like that? No, he says "Repeatable processes? What an incredibly stupid idea!" even though the room is full of folks who probably think repeatable process is actually a good idea.
    • Scott suggested that unit tests are the best way to specify requirements. I've heard this before from agile practitioners, but something nags at me about it. Certainly, having executable requirements is a huge plus. But how can you be sure they're the right requirements if the stakeholders can't read them?
    • This keynote setup what turned out to be a major theme for the conference - traditional vs. non-traditional enterprise architecture. Or as I would characterize it: Industrial vs. Post Industrial architecture.
  • Simon Guest presented on user experience in architecture, which is his specialty these days. He lays out a UX model that was very compelling. I'm not sure if there's a whitepaper version of this model (there should be) but you can see the model as he lays it out in powerpoint. I've seen Simon's UX decks, but never actually seen him present it, so that was a treat.
  • I skipped Ted Neward's session in order to take in something new. So I went to see Daniel Brookshier of No Magic talk about DoDAF - the Dept. of Defense Architecture Framework. I had met Daniel the night before at dinner and while No Magic primarily sells UML modeling tools, we seemed to agree that UML is most useful (in my opinion "at all useful") when you imbue the vanilla models with custom semantics - aka you turn them into a DSL. So while I liked hanging out with Daniel, his DoDAF session did nothing except ensure I never work for the DoD. There's no amount of money that's worth dealing with the two dozen or so bureaucratic models that are all wholly isolated from anything that actually executes. Daniel kept saying how easy these models are to build. I'm sure they are, but that's not the problem. Since they're not an intrinsic part of a construction process, they won't stay up to date. This was a very industrial approach - Daniel even stated at one point that he was "anti-Ambler".
  • David Chappell did the second keynote on grid-enabled SOA.
    • When did David join Oracle? I guess I haven't been paying much attention to competitors since I moved to MSIT.
    • There's an article version of this presentation available, but I haven't read it yet.
    • For me, the best part of this presentation was him acknowledging that there's a need for non-stateless services, something he has blogged about recently. I'm not sure I agree with his framework for stateful interaction, but at least he's admitting that it's needed. Now if I could only convince the Connected Systems Division...
    • The rest of his talk was basically a sales pitch for the Coherence product Oracle recently bought. Basically, it's a huge, multi-node, redundant, in-memory database. While I'm sure there are a few high-end problems out there - my immediate thought was travel and David mentioned SABRE is one of their customers - this is not a good general purpose solution, though David was positioning it as such.
  • My talk on "Moving Beyond Industrial Software" was after the second keynote. It was good, if sparsely attended. I'm doing it again @ the p&p Summit so I'll post the slides and hopefully a recording after that.
  • I skipped the last session of the day to decompress, so the next session I went to was the day two opening keynote by Fred Waskiewicz, OMG's Director of Standards. His talk, unsurprisingly, was on the value of standards - in particular, OMG's standards. This was about as anti-Ambler, anti-agile, pro-industrial a presentation as you could make. I'd heard this spiel before, so I mostly tuned out. I did challenge Fred on his point that the UML models are at a higher level of abstraction than code. They're not - they're a visualization and they're very useful, but they're at the exact same level of abstraction as code. That's why you can automatically generate the visualization in tools like Visual Studio's class designer. Fred didn't have much of a response to my question, though he did point out that some models like Business Process Models are, in fact, higher levels of abstraction.
  • Next was what I thought was the best presentation of the entire show, IASA Founder Paul Preiss on what architects need to know. Note, I'm not brown-nosing Paul here - I'm the guy that first decided to commit Microsoft as an IASA sponsor, so he has to like me even if I thought his session was crap. Paul talked about architect as a career, comparing it to doctors. He worries that he's over-using that analogy, but software architect has much more in common career wise than it does with building architects IMO. I wonder where one might do their architecture residency? He also thinks of architects as "living governance", saying that project managers answer to the stakeholders while architects are beholden to the stockholders. I like that approach to governance.
  • Finally, I attended Vince Casarez's session on Web 2.0 in the enterprise. Vince is an Oracle VP and this turned into a sales pitch like David Chappell's keynote did. I'm not sure what product it was, but it reminded me of QEDWiki from IBM that I saw at ETech last year, which isn't a complement. If you're going to build an enterprise mashup designer, is it just me or is "lots of code spew" a poor model. Why not go for something like Popfly or Pipes?
  • I left early the second day in order to get home before my kids went to sleep (which I failed at due to lack of naptime). Overall, the conference was pretty good, though a bit sparsely attended in part I think because they held it in San Diego. The Orange Country IASA user group is very popular, so I don't understand why they didn't just hold it around there somewhere. Live and learn, I guess. They did have to postpone the DC event until next year sometime. Here's hoping I get invited to that as well as well as ITARC SoCal '08 (note, that *is* brown-nosing a bit)
Posted By Harry Pierson at 12:18 PM Pacific Daylight Time

Tuesday, October 09, 2007

Morning Coffee 117

  • Quick update to the DevHawk 2007 World Tour: I won't be making it to the SOA & BP Conference. Riley's having her tonsils out. As much as I'd like to hang with my geek peeps, family is the priority. But I can still make an evening event or geek dinner later in the week if anyone is game.
  • Caps season-opening winning streak continues. Still 100% on the PK, though the power play is pretty anemic. As I said yesterday, it's WAAAAY to early in the season to start bragging, but starting strong is much better than starting weak.
  • Speaking of hockey, looks like the NHL Network is launching in the US this month (it's been available in Canada since 2001). Also, NHL.tv is up and running. Those wishing to see Caps highlights can go directly to Capitals.NHL.tv. Unfortunately, if you want to see full games, you've got to subscribe to Center Ice or Center Ice Online to the tune of $150. But I don't want to get "up to 40 games each week", I just want the Caps games. Between the time zone difference and kids, it's not like I have time to watch that much hockey anyway. Why can't I subscribe to just the Caps games online for say $25 a season?
  • Finished Halo 3 Sunday night. Fun game and a great end of the trilogy. Looking forward to what the newly-independent Bungie does next. Something tells me we haven't seen the last of Master Chief. However, I do think Bioshock has better and more original storytelling. Mass Effect looks like it'll be better still.
  • Sam Gentile pointed out that his Neudesic colleague David Pallmann has posted a series of WCF tips. Several of them are right on the money like "Take Advantage of One Way Operations" and "Use a Discovery Mechanism to Locate Services". However, I can't agree with "Maintain a Service Catalog". David warns that if you don't, "The left hand won’t know what the right hand is doing." Of course, that's probably the case regardless of how you maintain your service catalog. And "Retry on minor failures"? That's fine, if you've got an idempotent operation. Unfortunately, most non-read operations aren't idempotent unless you take the time to design them that way. And most people don't.
  • Speaking of Sam, he's blown up his CodeBetter blog and walked away from the ALT.NET crowd. I've not been a fan of this ALT.NET stuff since it surfaced - as Sam said, "ALT.NET is a divisive thing" - so I'm happy to see my good friend walk away from it.
  • Speaking of ALT.NET, Scott Hanselman blogged about previewing the new ASP.NET MVC Framework at the ALT.NET conference. Like Sam, Scott thinks the term ALT.NET is "too polarizing". I like Scott's suggestion for Pragmatic.NET. Oh, and the MVC framework stuff looks cool too.
  • Reading Dare's description of OAuth gave me a distinct sensation of deja-vu.
Posted By Harry Pierson at 9:05 AM Pacific Daylight Time

Friday, August 24, 2007

Morning Coffee 114 - MoMAAB Edition

  • We spent all day yesterday discussing four topics: SaaS, Tools for Scrum, Web 2.0 and Domain Specific Languages. Even though it was just a day, my brain is full. These were deep and challenging discussion. I need to let the discussions stew a bit before posting anything about them here. But I will.
  • Next time we do one of these, I'm bringing a video camera. I took notes, but looking over them the next morning they seem woefully incomplete. OneNote's integrated audio/video recording capabilities would nicely augment my notes.
  • We ran this meeting using Open Space, and it worked very well. Of course, we only had 8 people, so we didn't need a lot of process to self organize. However, it did whet my appetite for having a larger Open Space style un-conference for architects. Is that something other folks might be interested in?
  • Major thanks to the folks at Clarity Consulting who graciously gave us space to meet and fed us yesterday. Their CTO Jon Rauschenberger sat in on most of our meeting, and drove our Web 2.0 discussion. I said I wanted to stew a bit on the discussions, but Jon's slides are available on line if you're interested.
  • Scott Colestock showed me Diigo, a social annotation tool. Where del.icio.us lets you tag and annotate individual pages, Diigo lets you annotate and highlight specific parts of the page. They also have blogging tools, where these annotations and highlights become blog posts, but they don't support dasBlog. However, since FeedBurner doesn't support Diigo for link splicing, I'm afraid my use of it will be limited.
  • Jim Wilt introduced me to Virtual PC's command line. He recommends using "-pc <vpc name> -launch -singlepc" which launches a single virtual environment without the VPC console. I rarely run more than one VPC at a time and I hate stuff cluttering up my taskbar and notification area, so I like this a lot.
  • Loren Goodman demonstrated the SharePoint Explorer Client. SharePoint & MOSS came up several times in all of our topics, so this is going to get a second look. I always thought it was strange that MSFT ships a smart client for editing WSS & MOSS, but not viewing it. SP Explorer looks like it fills that gap nicely.
  • Shannon Braun sent us all a link to the 50/70 rule, which seems like a good rule of thumb. Of course, assuming that things won't progress linearly is almost always a good rule of thumb. But the 50/70 rule has reasoning behind the assumption.
  • Chicago is nice, but the weather has been a little freaky. It's either been hot & humid, downporing thunderstorms or tornados. Keith Powell showed me FlightAware, which shows you flight departure and arrival history. My flight hasn't left within an hour of scheduled departure in a week. I'm going to try and grab an earlier flight, but I have a feeling it's going to be a long trip home.
Posted By Harry Pierson at 9:46 AM Pacific Daylight Time

Friday, May 25, 2007

Morning Coffee 83

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

Wednesday, May 02, 2007

Hawkeye on Silverlight

While I was crusing the zoo with the family on Monday, everyone else was focused on the big announcement coming out of MIX. Short version of the press release: the next version of Silverlight contains a small, cross platform CLR. As you might imagine, this is somewhat significant. Check out reaction from TechCrunch, Sam Gentile and Scott Hanselman.

A year ago, I wrote "Where else should the CLR live?" At the time, I was talking about XNA (which had just been announced) though I was aware of the plans around what I think is now officially called CoreCLR (got the name from Scott's post). The first time I heard about this, it literally floored me. Part of me is surprised that in the year since then the news didn't leak and no one figured it out. I mean, doesn't it seem sorta obvious, in retrospect, that a Silverlight should run on CLR? I mean, if we can shrink the CLR down to fit on a watch, getting it into the browser seems like a no-brainer. On the other hand, it's such a huge departure from "Windows, Windows, Windows" that I wonder if most people had (have?) a hard time wrapping their mind around it.

(Actually, in searching for CoreCLR, I discovered this post from last summer basically confirming "the CoreCLR team working on the Macintosh version of the MiniCLR that's going into WPF/E". So it did leak, but it seems to have been met with significant skepticism and didn't make much news. )

Now that you know all about Silverlight and CoreCLR, go back and re-read my Virtuous Cycle of Virtual Platforms post. Especially the last paragraph (complete with the bad grammar):

If the end user isn’t committed to a virtual platform like Flash, then who is? The developers who build software for that virtual platform. This is Virtuous Cycle of Virtual Platforms between the platform and developers instead of the platform and users. In the old model, developers go where the users are. In the new model, users go to where developers are. And developers go where they can be most effective.

Silverlight vs Flash looks to me like the next big platform war competition. It's just getting started, so you can't say with any certainty which platform will be "most effective". But early Silverlight reviews are pretty impressive. TechCrunch's Michael Arrington wrote that Silverlight "makes Flash/Flex look like an absolute toy". That doesn't erase Flash Player's head start in the RIA space, but it certainly makes catching and surpassing Flash sound feasible. I suspect most people didn't think that sounded at all feasible last week.

Of course, while catching Flash may sound feasible, Microsoft is a long way from achieving that goal. While the point of my earlier post is that that market penetration doesn't provide much advantage in the virtual platform market, Adobe does derive significant advantage from shipping nine versions of Flash while we haven't quite shipped the first version of Silverlight yet. Also, while I'm fairly sure the number of .NET developers far exceeds the number of Flash developers (anyone have hard numbers?), I would also expect that the number designers using Flash far exceeds the number of designers using Expression (given that MSFT only just shipped Expression on this week). I believe an important facet to the Silverlight / Flash platform competition will be a race to woo the competitor's core constituency. Can Microsoft woo more designers with Expression than Adobe can woo developers with Flex? We'll see.

I'm also curious to see how people's perspective of Adobe's Apollo project changes in the wake of the Silverlight/CoreCLR announcement. From my perspective, both Microsoft and Adobe are trying to unify web and desktop development. Not surprisingly, each is trying to unify around the model where they're stronger: Apollo takes the web development paradigm (Flash, HTML, AJAX and JavaScript) to the desktop while Silverlight takes desktop development paradigm (WPF, CLR) to the web. I'm sure you can guess which paradigm I think will be more successful, but how will the market react? Again, we'll see.

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

Wednesday, April 25, 2007

Morning Coffee 70

  • Scott Hanselman details how the "unblock" feature in Windows works. Basically, when you download a file with IE, it adds an alternate data stream that specifies the zone the file came from (Internet, Intranet, Trusted, etc.). Even more details on Bart de Smet's blog.
  • Nick Carr gets off on a rant on Wikipedia, Citizedium and "the truth" that's pretty funny.
  • Remus Rusanu shows how to to reuse SSB conversations in a data syndication scenario. A while back, he wrote about a lightweight pub/sub SSB implementation - barely 200 lines of T-SQL code - that would also be very useful in data syndication scenarios. I've got data syndication on the brain right now, so this stuff is very timely.
Posted By Harry Pierson at 11:26 AM Pacific Daylight Time

Friday, April 20, 2007

Morning Coffee 67

  • Beta 1 of VS "Orcas" and .NET Framework 3.5 has shipped. Get it here. Besides LINQ, I'm most looking forward to experimenting with some of the new WF/WCF integration work. However, I don't think this beta includes DBPro functionality. Not surprising, given that DBPro only shipped a few months ago, but disappointing since I've moved all my database dev work over to that model.
  • Korby Parnell introduces Claimspace, part of the Microsoft.Community family. While the other family members are retreads - blogs, forums and tagging - but this seems like something fundamentally new - or at least new to me - and therefore interesting. (via Larkware)
  • Scott Hanselman updates the new version of Notepad2 to re-enable Ruby support originally built by Wesner Moise. Ruby is nice, but where's the PowerShell love?
  • After his performance in front the Judiciary Committee, Attorney General Gonzales is grossly incompetent, lying or both. What does it say about President Bush that he was "pleased with the Attorney General’s testimony"? It says Bush values loyalty over competence, is hiding something or both. Given that his approval ratings can't get much worse, I guess standing by Gonzales even in the midst of bi-partisan calls for his resignation isn't going to affect Bush much politically. On the other hand, confirming a new AG with a Democratic congress and low 30% approval rating might be devastating, depending on the bodies buried over there.
Posted By Harry Pierson at 9:35 AM Pacific Daylight Time

Tuesday, March 06, 2007

The Virtuous Cycle of Virtual Platforms

Dare is thinking about what comes after AJAX, building on Ted Leung's post "Adobe wants to be Microsoft of the Web". He mentions three things that any Rich Internet Application (aka RIA) platform needs to have: ubiquity, a consistent debugging experience and a continuum of dev tools. I agree 100% with the need for a good debugging experience and dev tools. But RIA platforms like Flash and WPF/E aren't traditional platforms, they're virtual platforms. (or should I say Platforms 2.0?) It turns out ubiquity and market penetration of virtual platforms is a lot less important than you might think.

At first glance, Flash Player's 98% market penetration appears to be demonstrating the typical virtuous circle of platforms. The more people that have the platform, the more software written for it; the more software written for a platform, the more people get it. But the traditional view of virtuous circles assumes that switching platforms requires significant investment of time and money. The vast majority of non-geek users commit to a platform at the time of purchase.

However, Virtual platforms such as CLR, JVM, Flash not to mention the browser itself (aka AJAX) don’t conform to the traditional virtuous circle of platforms. Installing a virtual platform isn’t a “buy a new machine” proposition or even a “pave and rebuild”. At worst, in the case of CLR, it’s fifteen minutes to download and install followed by a reboot. At best, in the case of Flash, it’s two minutes to download and install with no reboot. That means the end user has made little to no commitment to virtual platform itself, either in terms of time or money. Furthermore, the user isn’t forced to choose between different virtual platforms. You can install CLR, JVM, Flash as well as multiple browsers on your machine side by side without conflict.

Think about the install process for a new version of Flash, especially from the perspective of a non-geek. They visit a site, it pops up a dialog saying “you need the latest version of Flash, go here to get it”. Even if the average user doesn’t understand what Flash is or does, they can click on the link. They are redirected to the Adobe site, Flash installs very quickly, and the user goes back to what they were doing and most likely forgets the entire install experience. Because no money changes hands and it takes almost no time, installing the Flash virtual platform requires zero commitment from the user.

Existing user install base is much less important when adding new users requires zero commitment. You can see this is happening with Flash by looking at its version specific market penetration. Flash Player 9 has reached around 55% market penetration in just over six months since it was released. Flash is not seeing the “compete with the previous version” effect that is prevalent with traditional platforms like Windows. I believe this is because users don't need to make any real commitment to Flash. When a new version of Flash is released, the user is presented with the same install process which they just go thru again without even realizing they've done it before.

If the end user isn’t committed to a virtual platform like Flash, then who is? The developers who build software for that virtual platform. This is Virtuous Cycle of Virtual Platforms between the platform and developers instead of the platform and users. In the old model, developers go where the users are. In the new model, users go to where developers are. And developers go where they can be most effective.

Posted By Harry Pierson at 3:07 PM Pacific Standard Time

Friday, February 23, 2007

The Always-On Internet

(Harry is on a secret mission in uncharted space this week, so instead of the daily Morning Coffee post, you get a series of autoposted essays. As this post is about Web 2.0, it's obviously from fairly old from his previous role @ Microsoft.)

In my previous post, I wrote that I thought of Web 2.0 as the latest evolution of our post-industrial society. This latest evolutionary step was enabled by ubiquitous access to the Internet. We’ve come a long way on that front in just the past five years. Take for example, home networking. In 2000, less than 10% of active Internet users in the US had a broadband connection. Today, that number is just under 70%. At the same time, the consumer wireless router market has exploded. In 2000, there was no such thing as a wireless router for the consumer market. Today, you can buy a wireless router for under $100. In just under five years, consumer Internet access has evolved from being slow, intermittent and isolated to being fast, persistent and available anywhere in the home.

In addition to home networking, we’ve seen dramatic rise in mobile computer usage. Today, laptops are ahead desktops in terms of dollar sales and are expected to move ahead of desktops in terms of unit sales by 2008. Wireless access isn’t available just in the home, but in offices and at tens of thousands of wireless hotspots worldwide. Beyond WiFi and laptops, there is the availability of third generation wireless phone networks and smart phones with built in Internet and media functionality.

These technologies combine to provide a mobile and always-on connection to the rest of the world via the Internet that society is just beginning to leverage.

One of the earliest examples of the effect that the always-on Internet can have society was the original Napster. While Napster’s history and impact on the music industry is well documented, their peer-to-peer approach was only possible because of the availability of fast and persistent Internet access. Music files are fairly large, so Napster ran better with a fast connection. Furthermore, the availability of an always-on Internet connection enabled Napster’s peer-to-peer connections to be available even when the user was away from their computer or using it for other things. This allowed individuals to contribute to the overall Napster experience, even when they weren’t using their machine.

The dubious legality of Napster’s business eventually led to its shutdown. But the idea of connecting users directly to other users is alive in well in legal online services such as Skype and FolderShare.

This persistent connection was the final puzzle piece that has caused a fundamental shift in computing. There’s been more processing power and storage on the edge of the network for quite a while, but it was inaccessible. We needed fast, persistent and ubiquitous network connections to make that power available. As that network bandwidth has become available, the balance of computing power has shifted from the center to the edge. Today,

And in the Information Age, where the computing power goes, society will follow.

Posted By Harry Pierson at 8:56 AM Pacific Standard Time

The Information Revolution Is Just Getting Started

(Harry is on a secret mission in uncharted space this week, so instead of the daily Morning Coffee post, you get a series of autoposted essays. As this post is about Web 2.0, it's obviously from fairly old from his previous role @ Microsoft.)

A friend of mine is doing some research into Internet topics, including Web 2.0. After reading dozens of articles each with a different definition, she asked me to sum up Web 2.0 in thirty seconds or less.

Web 2.0 is the latest evolution of our post-industrial society, driven primarily by the ubiquitous access of Internet connected computing devices.

Got it down to just one sentence and it only takes about fifteen seconds to say. The critical thing to notice about that statement is what it doesn’t include:

  • No mention of specific technology outside of “Internet” and “computing devices”. That means no acronym laden techno-babble such as AJAX, REST, SOAP or XML.
  • No mention of a specific platform or vendor. That means no references to Microsoft, Google, IBM, Yahoo, Sun or Apple. Likewise, there’s no mention of open source software projects like Linux, Apache or Ruby on Rails.
  • No mention of Tim O’Reilly’s principles of Web 2.0. That means no web as platform, harnessing collective intelligence or the end of the software release cycle

This isn’t to say these technologies, platform vendors and principles aren’t important. They are. However, they aren’t what are happening; they are only pieces of the bigger picture. Exploring these individually without understanding the larger context is like the Blindmen and the Elephant.

I’ve recently been reading Alvin Toffler’s The Third Wave. It’s fascinating to read a book about the future that was written twenty five years ago. His opinion is that the industrial age peaked in the mid 1950’s and that the post-industrial age has been building steam ever since. Not coincidently in my opinion, the late fifties saw the first transistor based computers as well as the earliest work on computer networking. It is because of this intertwined history that this post-industrial age is often called the Information Age.

While it’s been building for half a century, the Information Age is only just getting started when it comes to remaking society. Over the course of three centuries, the Industrial Age saw rise to societal concepts such as the nuclear family, the school system and the corporation. It created the role of the bureaucrat. It separated the producers and consumers, giving rise to the idea of the market. It changed our view of the universe by precisely defining units of time and space. It got its energy from non-renewable sources, such as fossil fuels. In short, the Industrial Age completely remade the world. The Information Age will have equally far reaching effects before it’s done. I believe Web 2.0 is the next step in this evolution.

Toffler identified six principles of the Industrial Age: Standardization, Specialization, Synchronization, Centralization, Maximization and Concentration. The relevance of each of these principles is dropping rapidly as we shift out the Industrial Age. For example, weblogs represent a massive de-centralization of the news media. Online retailers like Amazon.com replaced the standardized shopping experience with a personalized one. Digital video recorders and online video sharing sites eliminate the synchronization of broadcast TV.

For each principle of the Industrial Age, there are examples of Web 2.0 companies working against it.

Posted By Harry Pierson at 8:53 AM Pacific Standard Time

Thursday, February 08, 2007

Morning Coffee 27

  • Is there a good solution to colorize source code that looks good in RSS feeds? I've tried Insert Code and Paste from VS for WL Writer and both look fine in HTML but awful in RSS.
  • My friend David Geller launched his latest venture Eyejot recently. Eyejot is a Flash-based video messaging system, so you can send and receive video clips without having to install anything but a webcam. According to the Eyejot blog, they're getting some good press. See an interview with David about Eyejot up on YouTube.
  • Here's an interesting article on using WF with Amazon's Mechanical Turk service. Invoking MTurk isn't that interesting - it's just a web service and WF has a built-in InvokeWebService activity. But since MTurk has no way to asynchronously call out to the WF, you have no choice but to regularly poll MTurk to see if the task is complete. Yuck. (via Larkware)
  • Yahoo! Pipes looks interesting. At least the screen shots of it on various websites and blogs look cool. Too bad the site is absolutely hammered this morning. (via Dare Obasanjo)
  • Like GAT? Like DSL? Then use them together!
  • If I can more than raise my Gamerscore by 1,500 points by April 12th (i.e. more than double it), I can get a free $5 game. But why wait to start the contest until next Monday? Doesn't that discourage people from playing until then?
Posted By Harry Pierson at 10:59 AM Pacific Standard Time

Tuesday, January 02, 2007

My Wife, YouTube, MySpace and All Day Sucker

My wife was poking around on YouTube and found two videos she wanted to show me. The first was a music video from a band called okgo where they dance on treadmills. Interesting for about 60 seconds. Unfortunately, the video is three minutes long. Still, it is currently #8 on YouTube's Most Watched All Time list. The other was a much funnier video called Stick Magnetic Ribbons on Your SUV (sung to the tune of Tie a Yellow Ribbon 'Round the Old Oak Tree). The song is by the Asylum Street Spankers and the video was produced by Devil's Night Productions.

Among Devil's Night's other work is an almost unknown movie called Matters of Consequence that stared Morty Coyle. Morty fronts a band called All Day Sucker, which was born out of the ashes of a band called THE iMPOSTERS. Back when I lived in LA, I used to go see THE iMPOSTERS pretty much whenever they played. This must have been the second half of 1996, when I was dealing with a massively broken heart. They had a regular gig every week, though I forget the name of the place. But I was there, pretty much every week. I used to carry Morty around the club on my shoulders during the harmonica solo of Rational Anthem. Wow, was that really 10 years ago?

Anyway, you check out a few songs from of All Day Sucker on their MySpace page. Some of the songs – Heavy Weather and Rub It In – date back to the iMPOSTERS days. Their album is available from CD Baby and from Zune, Rhapsody and iTunes. (No direct link for artists on Zune?) Check them out.

It's amazing how small the world seems when you run across old friends online like this. Especially when the recent wind storm and power outage two weeks ago served as such a rude reminder of just how big the world really is, regardless of how it seems.

Posted By Harry Pierson at 12:42 AM Pacific Standard Time

Thursday, September 21, 2006

Revisiting the AJAX Ecosystem

Seven months and one job ago, I wrote this about AJAX toolkits:

The network effect that Dion doesn't consider is the component ecosystem phenomenon that Microsoft has a ton of experience with. Old school VB, COM/ActiveX and .NET have all had large ecosystems of components and controls evolve that extend the functionality of the baseline development platform. There's no reason to believe that won't happen with Atlas. I think it's wrong to describe Atlas as a monolith or self-contained or enclosing. It's an extensible baseline platform - i.e. the baseline functionality is set down once at the development platform and the ecosystem can extend it from there. Sure, overlapping extensions happen (how many rich text editor components are there for ASP.NET?) but at least they all have basic compatibility.

I bring this up now because I saw on Shawn Burke's blog that they've shipped the September release of the Atlas Control Toolkit. There are now 25 different controls (they had 10 in their first release). But there's something more significant than the addition of 15 controls overall:

Slider is just a super-useful little control.  There are so many times when you want to let users use this type of UI.  Another great thing about Slider is that it's a 3rd party contribution, from Garbin, who did a great job on it. (emphasis added)
[Atlas Control Toolkit September Release]

I just wanted to brag that I called this 7 months ago.

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

Wednesday, May 31, 2006

Enterprise 2.0 ARCast

Ron just posted his latest ARCast featuring yours truly talking about Enterprise 2.0. Some of the same stuff I blogged about last month, but in a conversational style. Check it out.

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

Friday, April 28, 2006

Spell With Flickr

Mike just posted a list of sites he was using in a presentation. I had never seen Spell with Flickr before. Silly, but cool.

Here's DevHawk spelled with Flickr.

DEVH - gate detailAWK

Posted By Harry Pierson at 4:34 PM Pacific Daylight Time

Wednesday, April 26, 2006

Getting Better With Use

One of the topics that comes up regularly in the context of Web 2.0 is the idea that social software gets better the more people use it. Tim O'Reilly wrote about it when describing Web 2.0 and brought it up when he was on stage with Bill Gates at MIX06.

Tim called it a principle of Web 2.0. But I don't think getting better with use is exclusive to social software. Alan Cooper wrote about building software that learns how the user works and optimizes itself for that usage pattern. For example, Windows Vista has a new feature called SuperFetch that "understands which applications you use most, and preloads these applications into memory, so your system is more responsive when you first boot or when you switch to a different user profile."

The big difference that I see is that personal software has to be designed to learn where social software automatically improves with use.

Posted By Harry Pierson at 8:50 PM Pacific Daylight Time

Tuesday, April 18, 2006

Apparently, Microsoft Delivered on Enterprise 2.0 Three Years Ago

In the past few weeks, there’s been a major uptick in discussion about Web 2.0 / Enterprise convergence. Andrew McAfee has a new article on what he calls Enterprise 2.0. Dion’s got an entire blog on the subject, though he thinks it should be called Enterprise Web 2.0. Nicholas Carr is skeptical. Seems to me all this discussion about what might happen in this space is pretty silly since it’s happened already.

Unfortunately, Andrew’s Enterprise 2.0 isn’t freely available (you can buy a copy of the PDF for $6.50), but it primarily focuses on the growing frustration with email and the rise of collaborative Web 2.0 technologies such as blogs and wikis inside the enterprise. No big shock here – for collaboration, blogs and wikis are to email what word processors are to typewriters. Andrew also introduces a model he calls SLATES for describing the aspects of these technologies: Search, Links, Authorship, Tags, Extensions and Signals. So far, all good stuff.

The problem with the article is that he talks about these technologies in the future tense. For example, he writes: "As technologists build Enterprise 2.0 technologies that incorporate the SLATES components" which implies that these are coming down the pipe rather than here right now. Not only here right now, but available for going on three years. I’m talking about SharePoint 2003. 2003 as in "a year before Tim O’ Reilly coined the term Web 2.0".

SharePoint (I’m talking primarily about the free feature pack for Windows Server 2003 though about the portal server as well) supports Search, Links, Authorship and Signals – four of the six components of Andrew’s Enterprise 2.0 stack. (And frankly, I'm not sure where Andrew is going w/ his Extensions aspect so four out of five is probably more accurate.) More importantly, it’s specifically designed to support what Dion called the Democratization of Content. As of December 2004, Microsoft’s internal IT department was supporting "more than 60,000 users, 250 group and division portals, 50,000 team sites, and manages more than 3 terabytes of information." Personally, I use the coportate enterprise intranet portal, my division portal, a handful of team sites and my personal site on a pretty much daily basis. Only the enterprise and division portal are centrally managed. Given the explosion of SharePoint sites inside Microsoft, I'm obviously not alone.

Creating a new SharePoint team site inside Microsoft is totally self service and takes literally a few seconds. Once you have a site, you can configure it as you like, creating lists and setting permissions as you see fit. Again, it’s totally self service. Plus, it’s totally public unless you specifically lock it down (well, public inside the firewall at any rate). Of course, it could be easier and better, and that’s what next versions are for. SharePoint 2007 will have direct support for blogs, wikis and RSS. Check out the C9 video for more info.

Given the market momentum to date and the impending release of a new version, I find it very surprising to find Dion, Andrew and Nicholas discussing the potential ramifications of these technologies without even mentioning SharePoint. If these guys want to see the Enterprise 2.0 technology in action, all they need to do install SharePoint.

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

Thursday, April 06, 2006

RubyNet Project

Having written about Ruby in the scope of the Compiler Dev Lab and the Dual Schema Problem, I was interested to come across the Ruby.NET project from Queensland University of Technology. From the Ruby.NET home page:

Our goal is to create a compiler for the Ruby language that targets the .NET CLR. We aim to support 100% of Ruby language semantics, including all dynamic constructs such as closures and continuations. We plan to generate 100% managed and verifiable CIL code.

Sweet!

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

Tuesday, March 28, 2006

The Dual Schema Problem

A few months ago, Ted Neward wrote a great article about the history of the Object Relational Impedance Mismatch problem and how LINQ is addressing it in a new way. Basically, LINQ is introducing new language abstractions and complementary libraries to enable queries as a first class concept within the language. However, I don't believe that O/R Impedance Mismatch is the whole problem. More specifically, it's a follow-on problem to what I would call the Dual Schema problem.

In a nutshell, the Dual Schema problem is that you have to design and implement two separate versions of your persistent entities. There's the in memory version, typically written in an OO language like C# or Java. Then there's the on disk version, typically written in SQL. Regardless of the difficulties translating between the two versions (i.e. the aforementioned impedance mismatch), you have to first deal with the complexity of keeping the two versions in sync. While LINQ does a great job eliminating much of the friction translating between on disk and in memory formats, it could go much farther by eliminating the need for translation in the first place.

A variety of solutions to the Dual Schema problem have evolved, primarily outside the hallowed halls of enterprise vendors (i.e. MS and others like us). One such solution is Ruby on Rails. In a Rails environment, I simply declare the existence of a given persistent entity:

class Person < ActiveRecord::Base
end

The ActiveRecord base class (a standard part of Rails) will dynamically create methods and attributes on the Person object at runtime, based on the schema of the People table in the database. (Rails is smart enough to understand English plurals, hence the automatic connection of Person and People.) So technically there are still two schemas, but the in-memory version is automatically derived of the on-disk version.

(Note, DLinq provides a conceptually similar tool - SqlMetal - that can generate the static types from a given database schema. However, as static types they have to be defined at compile time. So while SqlMetal reduces the effort to keep schemas in sync, it doesn't eliminate it the way Rails does.)

By slaving the object schema to the database schema, Rails essentially solves the Dual Schema problem. The problem with the Rails approach is that defining a database schema requires a significant amount of skill and effort. Defining classes is typically trivial in comparison.The fact Rails allows you to implement a persistent entity with almost no code doesn’t help you much if you have to write and maintain a ton of SQL code to define your database schema.

I believe the Rails model is actually backwards. It would be much better for the developer if they could define their persistent entity in code and slave the database schema to the object model instead of the other way around.

Of course, this approach isn't exactly news. In his article, Ted writes of the rise and fall of OO database management systems, which were supposed to solve the Dual Schema and Impedance Mismatch problems. I'm certainly not suggesting a return to the heyday of OODBMS. However, one of the reasons Ted points out OODBMS failed was because big companies were already wedded to RDBMS. But those big companies are the short head. As you move down the long tail of software, relational database as the primary storage paradigm makes less and less sense. For the vast majority of applications, relational databases are overkill.

Ted's other point about OODBMS is that loose coupling between the data store and the in memory representation is a feature, not a flaw. He's totally right. But can't we advance the state of the art in database typing to the level of modern day OO languages? How about eliminating anachronisms like fixed length strings? What if we derive the database schema from the object model - Rails in reverse if you will - but is still loosely coupled enough to allow for schema evolution?

An example of this code-centric model for data storage is Consus. It’s written by Konstantin Knizhnik, who has written a bunch of open source, object-oriented and object-relational databases across a wide variety of languages and execution environments, including CLR. Consus is actually written in Java, but he provides version compiled for .NET using Visual J#. Consus lets you to define your data either as tables or objects. So you can do this:

Statement st = db.createStatement();
st.executeUpdate(
    "create table Person (name string, address string, salary bigint)");
st.executeUpdate(
    "insert into Person values ('John Smith', '1 Guildhall St.', 75000)");
ResultSet rs = st.executeQuery(
    "select name, address, salary from Person where salary > 100000");

Or you can do this:

class Person {
    String name;
    String address;
    long salary;
    Person(String aName, long aSalary, String aAddress) {
        name = aName;
        salary = aSalary;
        address = aAddress;
    }
};

Person p = new Person("John Smith", 75000, "1 Guildhall St.");
ConsusStatement st = db.createStatement();
stmt.insert(p);
ConsusResultSet cursor = (ConsusResultSet)st.executeQuery(
    "select from Person where salary > 100000");

Consus also handles OO concepts like derivation and containment. Of course, the embedded queries are ugly, but you could imagine DLinq style support for Consus. In fact, one of the primary issues with Consus is that it supports both object and tuple style queries. When you explicitly request tables (i.e. "select name, address salary from Person"), you’ve got a tuple style query. When you don’t (i.e. "select from Person”) you’ve got an object style query. Of course, the issues with tuple style queries are well documented in Ted’s article and is exactly the problem that LINQ is designed to solve.

(Konstantin, if you’re reading this, drop me a line and I’ll look into getting you hooked up with the LINQ folks if you’re interested in adding LINQ support to Consus.NET.)

The tradeoff between the Rails approach and the Consus approach is one of performance. I have a ton of respect for Konstantin and the work he’s done on Consus and other OO and OR databases available from his site. However, I sure the combined developer forces at major database vendors like Microsoft (and other DB companies) means SQL Server (and the like) will out perform Consus by a significant margin, especially on large scale databases. So if execution performance is your primary criteria, the Ruby on Rails approach is better (leaving aside discussion of the Ruby runtime itself). However, in the long run execution performance is much less important than developer productivity. So I believe that  for all the current interest in Rails, I think a Consus-style model will become dominant.

Posted By Harry Pierson at 2:35 PM Pacific Standard Time

Wednesday, March 08, 2006

ETech Day Three Quick Thoughts

After my marathon blogging session last night and taking notes all day, I'm a bit burnt out on writing. But here are a few quick thoughts. More details to follow.

  • I'm digging the Live.com home page and the integrated Live Search. Since I'm on a rented laptop, Live Toolbar will have to wait. Coolest new feature IMO is the Search Macros, though it's a tight race with the new image search interface.
  • Jon Udell and Michael Goldhaber spoke about attention economy today. I still don't get it, though Jon had some interesting ideas about metadata. I'll believe that attention is a currency when I can buy a car with it.
  • I liked the session on the Yahoo! Design Patterns, though the title and abstract of the session were awful. The title was "The Language of Attention: A Pattern Approach". The inclusion of attention just confused the issue. Why couldn't they just call it "A Pattern Language for User Experience"? Because it doesn't have the concept of attention shoehorned into it.
  • I really like Eventful, even though I'm on record as thinking their business model doesn't work. Their new demand feature is pretty cool, though it doesn't really help their business model any.
  • George Dyson's session on "Turing's Cathedral" was fascinating, though he tried to cover too much ground in the time alloted.
  • I'm not sure what the point of Joel Spolsky's Blue Chip Report Card was. Apparently the alien from Reddit is cute and Motorola newer cell phones (RAZR and PEBL) are taking Joel's advice on becoming "blue chip". This is somewhat related to points the folks from Adobe (previously Macromedia) made, except much more obtuse.
  • I have no idea what the point or business model of Plum is, even though it was featured as a keynote (a last minute promotion it appears from the conference guide). Seems too complex and centralized to actually work.
  • I wrote last night that Casting Words isn't really a business because nothing stops me from going directly to Mechanical Turk and getting the transcription services myself. Today, I found a Casting Words task on Mechanical Turk so I decided to figure out how much they're making. The task I found was to transcribe about 28 minute podcast and they were offering $5.41 for anyone willing to do it. That's about 19.5 cents per minute. Tack on Amazon's 10% charge brings the total to around 21.5 cents a minute that Casting Words is paying for transcription services. Given that they're charging 42 cents a minute, that's just under a 49% profit margin. Exactly what are they doing to earn that profit? What's their value add and is really worth a 100% markup?
  • Anyone want to start "Cheap Casting Words" with me? We'll pay 22 cents a minute (11% more than Casting Words) and charge 36 cents a minute (14% less than Casting Words) and keep the 12 cents a minute markup (a 33% markup). :)

UPDATE (8:45pm) - Added Quick Thoughts on Yahoo!, Eventful, George Dyson, Joel Spolsky and Plum. Added more detail about the attention economy sessions from today.

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

Microformats Panel

I still haven’t seen a good general session on microformats. I’m thinking it’s because any one given microformat is so simple that you can’t really fill more than about ten minutes talking about it. So this panel was about six or seven different microformats. The format of the panel stunk – I lost track of what was being discussed pretty quickly so I spent the time surfing the microformats website.

The idea of microformats is to adorn visual markup (i.e. xhtml) with semantic information about the data underneath. Probably the best example of this is hCard, the microformat version of vCard. Here’s my hCard (as produced by the hCard Creator)

Microsoft
One Microsoft Way, 18/2194
Redmond, WA 98052
425/705-6045

And here’s the markup:

<div class="vcard">
    <a class="url fn" href="http://devhawk.net">Harry Pierson</a>
    <div class="org">Microsoft</div>
    <div class="adr">
        <div class="street-address">One Microsoft Way, 18/2194</div>
        <span class="locality">Redmond</span>, 
        <span class="region">WA</span>
        <span class="postal-code">98052</span>
    </div>
    <div class="tel">425/705-6045</div>
</div>

See how the class attributes provide the semantics for the underlying text? Cool.

I’m beginning to get microformats. At first, I was bothered because I thought they were hijacking the semantics of the class attribute. But I didn’t realize the class attribute could be used for “general purpose processing by user agents”. And the link microformats like XFN and rel-tag are even simpler than hCard.

So again, bad session but cool concept. I really see potential for mashing up Ray Ozzie’s Live Clipboard with microformats.

Posted By Harry Pierson at 12:26 AM Pacific Standard Time

Michael Kunivsky and Matt Cottam on Sketching in Hardware

For a while, I really didn’t understand where this session was going. Michael spent a bunch of time on the issues of user experience design that I’m not familiar with. I still don’t know why he was talking about the Cuddle Chimp. But then he started talking about the importance of the sketching process to the practice of design. His meta point is that sketching is the root design tool, and different mediums are better or worse at supporting sketching. Drawing, as you might expect, is the best medium for sketching. Hardware is the worst. Michael rated a variety of sketching mediums based on Speed, Provisionality and History Preservation. By this time I figured out they were talking about enabling sketching of hardware.

Then Matt got up. I didn’t get his bio written down, but he is a professor of experience design. And he was talking about a product he’s been involved in to enable rapid sketching of hardware user experiences using simple sensors and motors. The product is called Nada and it supports Flash and Java. No .NET? Nope, but I spoke to Matt after the session about it. The demos were pretty cool. He controlled the opacity of an element in Flash with a hardware potentiometer. He controlled the speed of a fan based on the current temperature reported via a website. He showed a variety of other sensors like light sensors and flex resiststors. These demos weren’t that compelling, but the potential is huge. It can connect to variety of hardware systems including serial port devices, MIDI devices, plus kits like Teleo and Phidgets. I’m thinking Scott needs to check this out for a future installment of Some Assembly Required.

Posted By Harry Pierson at 12:19 AM Pacific Standard Time

Rod Smith on Do It Yourself IT

This post is a combination of Rod’s short keynote and his breakout session I went to right after lunch. Rod’s meta point is that lots of enterprise applications don’t get built because they aren’t affordable to write. Chris Anderson would call this the long tail of software. Rod introduced the idea of “situational applications” – something you build for a specific situation then you throw it away. I actually prefer the term “disposable application” since it focuses on the fact you will throw it away.

He demoed a proof of concept called QEDWiki. QED == Quick and Easily Done. It seems a lot like JotSpot. You have a palette of components that you can drag onto the page and wire together quickly. They built a slightly interesting application to mashup store locations with weather data in under five minutes.

In the breakout, they got into much more detail on QEDWiki. There’s a wiki programming language - I'm guessing conceptually similar to WikiTalk -and a AJAX-y drag and drop authoring environment that sits on top of it. Pretty cool, but as he got under the hood it seemed pretty complex. The amount of wiki code the visual authoring environment spits out is significant and the implementation of one of the reusable components is massive. Building a wrapper component for the Yahoo Traffic service took “around a day”. That seem large to you?

Posted By Harry Pierson at 12:14 AM Pacific Standard Time

Assorted Remaining ETech Day Two Keynotes & Sessions

Jeff Han on Multi-Touch Interfaces
This was a cool demo, but was basically a live version of the associated video that made the rounds on the web a few weeks ago. There’s huge potential here, but he kept doing the same zoom in and out demo over an over. Can’t wait to see practical availability of this type of device.

Cory Ondrejka on Second Life
I’d heard of Second Life before, but I had never really seen it before today. Wow. I hacked around with MUSHes back in college, so it was a little familiar. But I didn’t realize there were people making real livings in Second Life. Who knew you could make $150k a year prospecting virtual real estate? Cory only had 15 minutes to talk, so we only got a taste of Second Life. He’s got a full session tomorrow, so I’ll post more then.

Linda Stone on Attention, the “Real” Aphrodisiac
Unlike the other talks on attention, this one didn’t try and frame it as an economy, so that’s a good start. Linda talked about this state of “constant partial attention” that we’re all pretty much in all the time these days. Her meta point is to value technology based on how it improves the quality of your life – which of course most technology doesn’t do today. She also had a great quote: “Email is an attention chipper shredder. Think Fargo”. Heh.

Mark Pilgrim on GreaseMonkey
Maybe I’ve been living under a rock, but I’ve never used GreaseMonkey so I wanted to see what it was all about. Mark’s a great presenter, so it was a fun session though it wasn’t as much about GreaseMonkey as you might expect. Mark spent a significant amount of time on how to become an expert and when to write (while you’re still filled with wonder and before you become an expert). Great advice, but at best tangentially related to the topic at hand. He also spent a bunch of time on how they dealt with some security issues he discovered. That did lead to some discussion about how GreaseMonkey works with respect to sandboxing and the like. I guess I’ll just need to download it and play with it.

Posted By Harry Pierson at 12:08 AM Pacific Standard Time

The So-Called Attention Economy

I’m just going to come right out and say I don’t “get” this attention economy. I mean, I understand the problem of information overload which seems to be at the root of this attention stuff. But is it an economy? Whenever someone gets going on attention economy, I think back to the .com days and wonder if anyone ever called that a “traffic economy”. It’s more like the next generation of productivity – Productivity 2.0 if you will. If Productivity 1.0 was about information at your fingertips (to steal an old piece of Microsoft marketing hype), then Productivity 2.0 is about noise filtration. It’s a natural outgrowth of making so much information digitally available. But it’s not an economy.

Today there were to keynotes explicitly about the attention economy. Seth Goldstein is from a company called Root, which is one of these so called attention economy applications. It actually seems to have a lot in common with Felix’s myware idea. Basically, it tracks what you pay attention to and uploads it to a central server. I get why last.fm wants my music attention data, because there’s value in aggregating it with other users. But I don’t get how general purpose attention data can be aggregated in such a way that I would consider posting it to some server some where. If I spent two hours surfing Flickr last week, shouldn’t that data be local on my machine (where said surfing occurred) and not up on some server that’s out of my control.

Later we had David Sifry on the Economic Model of Attention. Most of what David talked about I agree with, but I again I don’t appear to draw the same conclusions. Sure, time is scarce and perishable. But I don’t buy that it’s currency. Besides, any economic “model” that claims money isn’t scarce seems fishy to me.

As I said, I don’t get this attention economy stuff.

Posted By Harry Pierson at 12:02 AM Pacific Standard Time

Tuesday, March 07, 2006

Felix Miller on The Musical myware

Felix is from last.fm, which I haven’t used. However, I’m definitely going to give it a try after seeing Felix’s talk. Last.fm is all about harnessing collective intelligence for music. The basic idea is that you install a plugin to your music player and it uploads everything you listen to the central server. Then they can do analysis of the collective data to make associations and recommendations. Sounds cool. Gotta try it out.

Felix was also making a more meta point which was where the name of the talk came from. He’s talking about myware as a play on spyware. The idea is to “spy” on yourself in an unobtrusive manner and then use that collected information to help you sometime in the future – in this case help you find new music by spying on your music playing habits. There’s major privacy concerns of course, but the idea is pretty interesting. Something to noodle on at any rate.

Posted By Harry Pierson at 11:57 PM Pacific Standard Time

Dick Hardt on Who is the Dick on My Site

This is a sequel to Dick’s now-famous Identity 2.0 talk. He’s definitely had an influence on this crowd – the two speakers after Dick used a similar presentation style. However, what I didn’t realize from watching the Identity 2.0 talk is that it’s much more effective on video than in the audience because he’s spending so much time looking at the screen (though that may be an artifact of a new presentation).

The other thing about this talk is that it’s basically a product pitch for SXIP 2.0. That – for me anyway – was much less interesting than the more conceptual Identity 2.0 talk. However, I will be trying out the new SXIP stuff when I get back home next week.

Posted By Harry Pierson at 11:55 PM Pacific Standard Time

Felipe Cabrera on Amazon's Mechanical Turk

Felipe’s a good guy (I knew him when he was at MSFT) but this session wasn’t anything exciting because it’s all old news. There are some things humans are better at than computers, typically things involving judgment such as “which is the best picture of this store?” Yes, I saw that when Amazon first released Mechanical Turk.

They did have a partner on stage, a company called Casting Words that offers podcast transcription services for 42 cents a minute. But how is that a business? I’m not sure what kind of percentage Casting Words is making out of that 42 cents a minute, but couldn’t I go directly to Mechanical Turk and ask for transcription services myself? There are no Casting Words tasks currently on the site as I type this, but I imagine if I watch a while I'll see a Casting Words task. Then I could simply use a site like HIT Builder to farm out my own transcription tasks. What’s my incentive to use Casting Words at all?

Furthermore, there’s not really a business model behind Mechanical Turk itself. If Microsoft launched its own version, there would be plenty of takers for that work as well – the workers will gravitate to where the best paying and most interesting work they can do is. There’s no incentive to provide your artificial artificial intelligence services exclusively to one company. So Mechanical Turk wouldn’t work as a stand alone business. But as a feature of Amazon it works great. In fact, when the service first launched the only tasks came from A9. I’m guessing it would be worth it to Amazon to run the service even if they were the only ones using it.

Posted By Harry Pierson at 11:51 PM Pacific Standard Time

Ray Ozzie on Simple Bridge Building

Ray has posted extensively about his session this morning, but if you haven’t read it the basic idea is “How do we bring the copy and paste paradigm to the web?” Sure, for this crowd he might have been better off saying “the UNIX pipe paradigm”, but the result is the same. How do have a simple way of letting an end user connect systems together? The idea of using the clipboard paradigm is brilliant in its simplicity.

The coolest part of the demo IMO was the integration between the Live Clipboard (of course, it’s branded Live) and the desktop. Copy an event out of Eventful, paste into Outlook. Copy an image out of Flickr, paste into the file system. Even cooler: Paste an image feed out of Flickr and paste into a folder in the file system with integration into the Feeds API to keep the local folder in sync with the Flickr feed (OK, the Feed API integration wasn’t done in time to demo). This was the best demo of the all the keynotes.

I need to think more about the implications of this. First off is the importance of data formats. I’ve written about RSS as the generic list semantics on top of XML, but I’m thinking microformats will be huge when combined with Live Clipboard. Also, there’s the implication of user driven integration. Pat Helland derides the clipboard in Metropolis, but the support for structured data eliminates the Pat’s primary issues with the clipboard as an integration medium. Finally, there’s huge implication in the enterprise for this, but I’m not sure how positive it is. IT shops are already struggling with thousands of shadow applications built on Office running in the wild. If I can copy structured data out of an enterprise app and paste it into Excel without losing the schema, it will encourage still more of these shadow apps. IT will hate it, but users will love it.

Posted By Harry Pierson at 11:44 PM Pacific Standard Time

ETech Day Two

So I ended up writing four and a half pages of thoughts on day two, so instead of one big-ass post, I'm going to break it up. Of course, I was distracted by the death of my laptop during the morning keynotes. Plus, any notes I have of the session up until the first break are on said dead laptop (I picked up a pad of paper to tide me over until the rental laptop showed up). So your quality may vary.

Posted By Harry Pierson at 11:36 PM Pacific Standard Time

ETech Day One

Of course, I my copious notes are on my dead laptop, so this is all from memory. Granted, it was only yesterday and my memory isn't THAT bad (yet).

Rael Dornfest on the Attention Economy
You know the old saying if you can't say something nice, don't say anything at all? The one thing I will say is that it felt like a sales pitch to come to the conference. Given that we we're already there, it seemed like an odd choice. I'll have more about Attention Economy with my post on today's sessions.

Tim O'Reilly on O'Reilly Radar
Tim had (not surprisingly) a bunch of interesting things to talk about. Probably the most interesting was the stuff about Bionic Software which Tim describes as a system "that combines the biological and mechanical systems to create an enhanced system that is more powerful than either alone." He described this as Intelligence Augmentation, instead of Artificial Intelligence. Bruce Sterling later talked about the importance of how things are named, and IA over AI is a great example of that.

However, Tim also went on at great length about the architecture of participation and harnessing collective intelligence. He's given many examples of these, however I'm wondering if he's over generalizing based on a few success stories. Companies like Amazon and Ebay are successful because they're in the middle of financial transactions. Google's been able to monetize the long tail of search to an amazing degree, but the growth of that market is slowing and Google has been unable to significantly monetize any of their other efforts (so far, though I doubt that trend will continue). Sites like del.icio.us and Flickr are great, but I don't see evidence of a business plan outside of "get acquired". On the del.icio.us about page, it specifically says that del.icio.us started as a hobby. Granted, hosting costs these days are such that you can run a hobby site for nearly nothing and cover that cost with Google Ads. But as a business, if there's only a few business success stories, why place the importance on the crowd's wisdom?

Bruce Sterling on The Internet of Things
I couldn't do this talk justice even with my notes, so here are a couple of things that stood out:

  • The guy introducing Bruce was a little to lavish with his praise. It was actually a little creepy. Bruce even remarked on it.
  • I wish Bruce hadn't read so many quotes from other people. It was hard to follow when he was providing his own opinions or someone else's. He didn't use many slides (yeah!) and the ones he did use didn't have bullets (even better!) but when he's quoting someone else, I think it makes sense to put the words up on a slide.
  • He seemed to alternate between praising and disrespecting the crowd in the room. For example, he commented that "hype is an attention interrupt" which seems validate the work of many Web 2.0 companies even though so many people dismiss it as hype. However, he also made the comment that Web 2.0 was an effort by alpha geeks to wrest control of the web back.
  • The main thrust of his talk was about applying Internet concepts like sorting and searching to the real world by creating links between real-world items and virtual counterparts. So you would never lose your keys again because you could easily Google them. I need to pick up his latest book "Shaping Things" for the flight home - it's not like I'll be using my computer.

Stick around, I'll be posting my thoughts on today's session a little later.

Posted By Harry Pierson at 8:31 PM Pacific Standard Time

Monday, March 06, 2006

Off to Emerging Tech

I flew down to San Diego for the Emerging Technology Conference today. I'm here thru Thursday which is the longest I've been gone from home since TechEd last year. And I'm only home eight days before heading off to SPARK and MIX for an even longer trip. Well, the SPARK/MIX trip is just one day longer than ETech. But a day can seem like an eternity to my three year old son who was predicting "Daddy come home in one minute" as I was pulling out of the driveway.

I skipped the pre-confernece tutorials, though several looked interesting. I'm really looking forward to hearing Bruce Sterling speak tonight.

And for those keeping track of my travel shenanigans with Alaska Airlines, no problems with the flight today. Apparently they only screw up when I'm in a hurry. And even better news is that I've re-earned my MVP status. I used to fly with them all the time, but then with the new role and new baby I just didn't fly much last year. But they had some "quick earning" program that let me re-earn my status. They even gave me MVP status for the flight today, so I got to sit in first class. Crowded flight too, so it was nice. Of course, in what has become true Alaska Air style, I had to wait on hold and deal with a subordanant flunky for twenty minutes before I could talk to a supervisor who could get me registered into the quick MVP program, but it turned out OK so I guess I shouldn't complain.

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

Wednesday, March 01, 2006

SPARK Weblog

In preperation for SPARK later this month, we (i.e. the Architecture Strategy Team) has set up a SPARK Blog. So far it's mostly links to a few people talking about SPARK, but it's also appears to be an opportunity to use the work "SPARK" whenever possible, such as "SPARKs Fly".

I'm just waiting for someone to blog about SPARKitecture. :)

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

Monday, February 27, 2006

Arcitecture Help Shirts Arrived

Last week, I ordered a couple of my shirts from Zazzle and they arrived over the weekend. I got one each black and white and I wore the black one to work today. I'm pretty impressed with the quality of the shirts and the printing job.

Of course the coolest part was being asked where I got the shirt and being able to reply "I made it".

BTW, I met a couple of folks from Zazzle at Mashup Camp. They told me about a couple things working that I'm not sure are public yet which is why I left them out of my daily roundups. They told me the 304 shirts was actually a kinda slow day.

Posted By Harry Pierson at 4:02 PM Pacific Standard Time

Experimenting with Ning

Last week at Mashup Camp, Yoz showed me Ning. I had heard about Ning, Ning is a social software enabler...I guess enabler is the best word...with a fascinating approach to building software. Well, getting started building software at any rate. While they provide other more basic functions like hosting, Ning provides the ability to clone almost all of the apps running on their site (over 6500 as I write this). When you clone an app, Ning makes a copy of all the files from that app on your own domain (typically appname.ning.com, though you can pay to have your own domain name). They also provide a set of basic starter apps that you can clone to get started.

I decided to try it myself. Behold Partisan Hacks.

Partisan Hacks is a clone of Ning's Do I Rock? starter app, which is itself basically a copy of Hot or Not. The difference is that you rate how big a partisan hack the individuals are. As I wrote for the About page, I was basically inspired by Jon Stewart's now famous appearance on the now cancelled CNN Crossfire. Of course, I've been throwing the term around myself a bit lately, hence the reason why the topic was top of mind for me.

From a technical perspective, I added two features to the basic Do I Rock template code. First, I modified the detail page to include a link to Wikipedia as well as to pull in search results from MSN. Second, I added an RSS feed to the most partisan, least partisan and newest additions to the site. I'd never used PHP before, so it took me a bit longer that I would have expected to make the changes, but still it only took me a couple hours to make those as well as other minor cosmetic changes to the site.

While hacking PHP was somewhat tedious (back to my ASP days of the mid 90's), one area that is both compelling and productive is the Ning Content Store. It's the shared database on the back end of any Ning application. I didn't really make any changes to my content, but it appears to dead simple to add new info to content objects. I was thinking about how I would build this app w/ ASP.NET, and realized that having to build a custom database would offset most of the productivity I would gain from using ASP.NET instead of PHP. According to Ning's Roadmap, they'll be bringing Ruby and Rails support online soon. I'll have to see how much better an experience that is than their current PHP based approach.

Posted By Harry Pierson at 3:54 PM Pacific Standard Time

Thursday, February 23, 2006

Tim's Wannabe Five

I don't know how I missed this before, but Tim Bray blogged about not inventing XML languages over a month ago. This comment is right on the money: "The value of a markup language is proportional approximately to the square of the number of different software implementations that can process it." Conceptually, I agree with him - my primary argument against XSPF is that it has the same basic semantics as RSS, but RSS is much more widely used. But his list of the "big five" markup lanugages seems more like the "wannabe five". How many different siftware implementations process any of the things on his list?

I'm not arguing the technical quality of these lanugages - frankly I'm not that familiar with any of them but Atom. But if you're arguing the network effect, none of these formats Tim lists qualify. I'm sure he wants them to be popular, but wishing doesn't make it so.

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

Wednesday, February 22, 2006

Thoughts on Mashup Camp Day 2

I was able to catch an earlier flight home last night (which was itself delayed, but still got me home an hour and a half earlier than expected). Combined with the work that piled up while I was gone and I haven't gotten around to the rest of my thoughts on Mashup Camp. Until now...

  • This should have been in the day one update, but we had a great presentation Monday night on the History of Computer Marketing. Very interesting and very entertaining.
  • It was good to see Marc Canter.
  • There were fewer sessions on Tuesday because a significant amount of time was taken up on "speed geeking". Supposedly similar to speed dating, but with mashup demos instead of dates. In actuality, it was more like demo anarchy with loud annoying buzzing.
  • I spent a significant time with the folks from Bungee Labs (no relation to the makers of Halo). Like Ning, they are a web / mashup development site. However, where Ning appears to be going after the hobbyist, Bungee Labs is going after the enterprise. They had a cool demo of a SalesForce.com & Exchange mashup with maps.
  • I was very impressed with WeatherBonk. In particular, the way they overlay the map with radar and fog information. They also make SkiBonk.
  • I sat in on the Microformats Specification Work session, but didn't get much out of it as it was a face-to-face meeting of core microformats folks rather than the "What are Microformats" session that I didn't make the first day (conflict with Mashup Business Model session)
  • There was a session on Firefox futures, but it was lame. You can get more from just reading the Firefox 2 product planning wiki page. Interestingly enough, if you look at their list of features for Firefox 2, only one is of any use to the web developer: In-line Spell Check. Everything else improves the chrome. Their priority one features are: new bookmark and history system, tabbed browsing UI improvements, extension manager enhancements, search engine UI improvements, and an update to the  browser appearance. As I wrote in Browser as VM, we've reached an inertia point where it's hard for a browser vendor to add new proprietary capabilities that only work on their browser. Same goes for Microsoft - read the IE7 Technology Overview and while there is great work on things like security and the RSS platform, there are no new web developer feature, just bug fixes, better standards support and a native XmlHttpRequest object. I wonder what it's going to take to get new capabilities added to arguably the most important virtual machine platform in the world.
  • Podbop won the mashup contest. Chicago Crime came in second. Frankly, I was much more impressed with Chicago Crime.
  • As the winner of the mashup contest, the guy that wrote Podbop got a Sun server. Second prize was a new intel-based Mac. And ten third place finishers got copies of Visual Studio Pro. Given that none of the mashup content entrants were built on Microsoft technology, I'd be interested to know how excited the third place finishers were about getting a copy of VS.
  • I met a lot of great people at Mashup Camp (which is the primary reason I went) but above all I really got a lot out of hanging out with the MS folks who were there. We're such a big company that it's hard to keep abreast of what's going on, so this kind of face-to-face time is invaluable.

That's it, at least until Mashup Camp 2.

Posted By Harry Pierson at 5:42 PM Pacific Standard Time

Monday, February 20, 2006

Thoughts from Mashup Camp Day 1

I don’t sleep well on the road so I’m exhausted. I’m going to post a couple of quick thoughts and then hit the sack.

  • It was great to see Ward. When he got up to suggest a session topic he got a round of applause.
  • I went to the morning session on Business Models for Mashups. Most interesting to me was the number of mashup developers not looking for funding. Either they don’t care much (it’s a hobby) or they think they can succeed w/o the extra cash. Otherwise, the session was lots of questions and not many answers.
  • I spent lunch hanging out with Yoz from Ning. Ning is fascinating. Not sure I understand the business model (I think it’s ad-funded, but there aren’t many ads) but it’s definitely something I need to look into further.
  • Session after lunch was on gadgets, widgets and modules. Interesting to see the major differences in each of the approaches. Scott Isaacs made some interesting points about the lack of an application model in the browser. But several folks seemed to imply that a web based application hitting a local web server was a good approach to offline apps. Why wouldn’t you just build a smart client app? The productivity of Windows Forms blows AJAX away (for now).
  • I wanted to see Lawrence Lessig’s session on Creative Commons, but the room was too crowded. Similar problem to the Business Models for Mashups session, but even more so. I went and read email.
  • Last session was about architecture patterns for AJAX applications, hosted by Scott Isaacs. It was more of a presentation than a discussion, but very interesting.
  • Evening reception was sponsored by Yahoo! They had a cool ice sculpture and branded drinks – Yahootinis – with litecubes in them. My son Patrick is going to love these.
  • I got to meet Sandy Kemsley, who is friends with my friend Chris Church who helped me get into Mashup Camp. I was instructed to buy Sandy a drink or three, but Yahoo! sprung for an open bar, so there was no buying. But we did have an interesting chat about workflow, business process and Office as a platform.
Posted By Harry Pierson at 11:12 PM Pacific Standard Time

Friday, February 17, 2006

First T-Shirt Sale

So I've already sold two of my new t-shirts. Not quite enough to retire on, but it's a start! :)

If nothing else, this has helped me realize just how popular Zazzle is. As I type this, my shirts are on page 20 of Zazzle's most recent shirt list. That's 304 new shirt designs since yesterday. That's pretty impressive.

Posted By Harry Pierson at 1:34 PM Pacific Standard Time

Thursday, February 16, 2006

Redundant Specifications

So after my two posts on XSPF and some public discussion in the comments, I took the conversation with Lucas offline in hopes of getting a better understanding about the thought process that went into the spec. Unfortunately, Lucas has reacted as if I called his baby ugly and we got nowhere. Needless to say, I still believe that XSPF is completely redundant because it is nearly semantically identical to RSS.
Posted By Harry Pierson at 3:31 PM Pacific Standard Time

Introducting DevHawk Designs

A while ago, I made a sign for my door that reads "Architecture Help 5¢" (in homage to Lucy's psychiatry stand in Peanuts of course.) I get the occasional comment on it, so I decided to experiment and make a t-shirt out of it. These days, making your own t-shirt is cake with online services such as CafePress, T-Shirt Junky and Zazzle. I like Zazzle's pricing structure the best - they have a flat fee and pay you a royalty on sales. CafePress has a baseline fee and you can then charge whatever you want on top of that. I didn't want to be mucking around with pricing, so I went with Zazzle. Also, Zazzle has more choices and options for t-shirts than CafePress did.

My Zazzle gallery is named DevHawk Designs. So far, I have two products - the Architecture Help 5¢ shirt in black and in white, though Zazzle allows you to customize the shirt so you can get it on pink or navy blue if you really want it. I made it with Expression Graphic Designer, though it's such a simple design I'm sure I didn't really exercise its capabilities at all.

Other than me, I'm not sure who's going to buy one of these. Believe me, I have no vision of being the next ThinkGeek. But let me know what you think, good or bad.

Posted By Harry Pierson at 2:45 PM Pacific Standard Time

Tuesday, February 14, 2006

More on XSFP

Lucas Gonze left me a comment indicating they had in fact investigated using RSS for XSFP instead of starting from scratch. Good to know they considered the possibility. Unfortunately, it looks like they were using RSS 1.0 so it has all the extra RDF stuff which really hasn't caught on. The document doesn't really go into the reasons they chose to go a different way, though Lucas does say the following:

RSS didn't make sense for a lot of reasons. We were paving cowpaths, and RSS for playlists was very much not a cowpath. Playlists are about sequence, while RSS has no concept of sequence except reverse chronological order. We needed abstractions to deal with the fact that music and movies frequently don't have URLs, and RSS didn't have them. If not starting from scratch was critical, HTML preceded RSS and would be the default to work from.

I'm not sure I get Lucas' point about sequence. Both RSS and XSFP have sequence. Sure, RSS is typically describing web site content, thus it's a reverse chronological order. But the RSS spec doesn't mandate and specific meaning to the items in the feed. In fact, the items typically have a pubDate element making the order in the feed somewhat irrelevant. According to the spec, XSFP uses the order of the tracks in the file as the implicit playback order. Why that wouldn't work with RSS is a mystery to me.

As for the "needed abstractions" missing from RSS, I'd be curious to know what those are and why they couldn't be added via RSS extensions.

Lucas, please don't take these comments as criticisms. I'm new in this space and I'm trying to get my head around stuff. Furthermore, if the success of RSS proves anything, it's that number of users matters a lot more than the perceived technical merit of a given approach.

Posted By Harry Pierson at 4:09 PM Pacific Standard Time

Reinventing the List

Marc Canter seems pretty excited that Songbird is going to support XSPF. While Marc has written about it many times, I had no idea what it was. It's the XML Shareable Playlist Format (pronounced "spiff"). It's designed to be simple and open and built on XML. Typically, that's coolness but while reading the spec, I had a strong sense of deja-vu. XSPF defines a list of songs for a playlist, much the same way that RSS defines a list of blog entries.

So that begs the question, why didn't XSPF just use RSS instead of starting from scratch? RSS is simple, open, built on XML and is massively popular? Remember when Adam Bosworth that pointed out that RSS and Atom are "both support a base schema that provides a model for sets". I'm all for a simple, open and extensible playlist format, but I'm not excited that XSPF has gone of an reinvented the concept of "list" in order to do it.

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

Monday, February 13, 2006

Yet Another AJAX Toolkit

Hot on the heels of my post about the AJAX toolkit spectrum comes news that Yahoo! has released their own AJAX toolkit as well as a very cool web page design pattern catalog.

Some non-surprises:

  • The Yahoo! toolkit has it's own animation library, it's own drag and drop library and it's own XmlHttpRequest wrapper, just like other libraries like Dojo and prototype.
  • The Yahoo! UI Controls depend on Yahoo's Core Utilities. The libraries are modular, but not polymorphic with other these libraries.
  • The code was released under an open source license (BSD).

All these different implementations of the same core set of capabilities at best means learning lots of ways of doing the same thing and at worst means incompatibility between components from different libraries.

BTW, last week I wrote that using a text-based high-level scripting language like Javascript in the browser "encourages business models where the in-browser code has little if any value." This release from Yahoo! supports that point. While their mapping component is subject a strict Terms of Use, their UI components were released with a liberal open source licence. I doubt that's a coincidence.

Posted By Harry Pierson at 11:13 PM Pacific Standard Time

Thoughts on the AJAX Toolkit Spectrum

Last week, Dion wrote about the spectrum of AJAX tookits. He ended with a question, wondering which end of the spectrum will dominate? Will it be lightweight composable toolkits like prototype, script.aculo.us or Dojo? Or a more comprehensive toolkit like Atlas?

This came up in a chat I had w/ Jimmy Nilsson today. Well, not specifically about AJAX toolkits. Rather, we were talking about what he called technicalities vs. semantics:

I have noticed that there seems to be a focus first on the technicalities and then on the semantics. Take Indigo (or WCF) for example. There has been sooo much talk about its technical aspects, but very little talk about how to design for it. I'm pretty sure that when the technicalities have been sorted, it's time for the semantic side. I'm not thinking about technical semantics, but rather business semantics.

On more than one occasion, I've had a head-beating-wall conversations with WCF folks who are completely obsessed with the secure, reliable and transactional delivery of messages, but have given exactly zero thought to the actual contents of said message. So I know where Jimmy is coming from.

With respect to AJAX toolkits, the question becomes just how easy will these lightweight toolkits compose? Because while Dion describes Google Maps as "a simple JavaScript include", that's just the technicalities, it doesn't begin to deal with the semantics. For example, Dojo has Dictionary object, prototype has a Hash object. Dojo extends the Javascript Array, so does prototype. Both libraries wrap the XmlHttpRequest object. In each of these cases, it appears to me that the library authors have focused on the technicalities, but not thought about the semantics. These implementations are all semantically similar, but incompatible. So I don't buy that these lightweight toolkits will compose well. What do I do if I'm using prototype but want the rich text editor in Dojo?

The network effect that Dion doesn't consider is the component ecosystem phenomenon that Microsoft has a ton of experience with. Old school VB, COM/ActiveX and .NET have all had large ecosystems of components and controls evolve that extend the functionality of the baseline development platform. There's no reason to believe that won't happen with Atlas. I think it's wrong to describe Atlas as a monolith or self-contained or enclosing. It's an extensible baseline platform - i.e. the baseline functionality is set down once at the development platform and the ecosystem can extend it from there. Sure, overlapping extensions happen (how many rich text editor components are there for ASP.NET?) but at least they all have basic compatibility.

Update - Fixed link to Dojo Toolkit in the first paragraph.

Posted By Harry Pierson at 5:13 PM Pacific Standard Time

Web 2.0 Evolution

In his now-famous talk, Dick Hardt describes Identity 2.0 as inevitable. As in "coming for sure, but not here yet". I wonder how much of Web 2.0 is here now, and how much is inevitable? And furthermore, how much can we generalize about the future of Web 2.0 from what is happening now? As in many things, I think the answer isn't black and white.

For example, I think we can generalize about the bright future of peer-to-peer based technologies from looking at systems like Skype and FolderShare. Naturally, with the power shifting to the edge, I believe it's inevitable for more edge machines to communicate directly with each other rather than being mediated by a service in the center. In fact, in many cases I believe were going to want to shift a significant percentage of social computing to the peer-to-peer model. It scales better and doesn't have centralized privacy concerns. Furthermore, I think there may be be specific peer-to-peer capabilities that are difficult or impossible to replicate with a centralized model, though so far, I haven't them yet.

However, I'm not sure we can generalize about the future of mashups the same way. This isn't to say I think mashups are going away - far from it. I just think that mashups a year from now will look very different than they do today.

First off, I don't think we can  generalize the success of Google Maps. In the Programmable Web how to guide, they mention that "Plotting markers on maps is probably the easiest place to start". Apparently, many people are taking that advice because 297 of the 411 mashups listed use one of the three major (i.e. GYM) mapping services. However, maps are unique because of the massive amount of data, the extremely simple API and the ubiquity of location information. They are also one of the few mashup API's that runs in the browser - the vast majority of mashup API's are back end data type services like Amazon's E-Commerce Service. How many more in-browser mashup API's are out there waiting to be built? I'm not sure, but as I wrote in Browser as VM, the problem with these in-browser mashup API's is that you can't protect your IP.

As for back-end service mashup APIs, there needs to be a way for these service providers to make money. Even if the software they use to build the service is free, things like hardware and bandwidth are not. For an Amazon or Ebay, making money on thier services is relatively easy since they are facilitating sales transactions. In the end, they probably won't care much if a sales transaction originated on their site or on a site leveraging their APIs. However, if the service provider is ad-funded, the service API effectively routes around the site's revenue mechanism. Take, for example, a site for tracking events like Zvents, Eventful or Upcoming. They need to drive users to the actual site in order to drive revenue. So it remains to be seen exactly how the API based access is going to work out. Today, these API's are specifically provided for "non-commercial use only" so one way would be to charge for access via the API (either flat-rate subscription, a per-use charge or a combination of the two). Alternatively, they could be bought up by a larger company who could then afford to run the business at a loss. Yahoo already bought Upcoming and Google Base already has an event item type, but the other big companies in this space (I'd guess Microsoft, Amazon, Ebay and maybe Apple) might be interested. Again, I'm not sure how this evolves either, but it's got to evolve beyond "non-commercial access".

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

Thursday, February 09, 2006

SPARK is Out of the Bag

As part of the new job, I'm involved in the planning a workshop called SPARK, which Dion Hinchcliffe blogged about this morning. (Dion also writes a blog here - bringing the total to three - so I created a combined feed just to keep track of all the places he writes). My new boss Mike also mentioned SPARK this morning. In the hopes of sparking futher interest (pun intended), here's the overview of SPARK:

SPARK is the first in a series of high-level forums hosted by Microsoft that use a workshop setting to examine “the issues that matter most” in the practice of strategic architecture and produce guidance for the industry as a whole.

Today, new social movements, advances in technology, and forces within business are overlapping to create a landscape glutted with challenges and opportunities. In many cases, these forces have driven the deployment of new technologies and the adoption of new behaviors, adding multiple layers to an already complex set of issues that must be navigated. Architects are searching for a solution that helps manage this complexity.

SOA, Software as a Service, Web 2.0, and Edge are all elements of the solution, but are they the complete picture? Are they a sufficient answer to the issues?  Can they be used together in a productive and efficient fashion? What matters most?

Posted By Harry Pierson at 3:51 PM Pacific Standard Time

Friday, February 03, 2006

Flash, the Other White Meat

When I wrote yesterday about the Browser as VM, I made the point that extensibility is difficult as we have four major browsers and multiple OSes to deal with. What Web 2.0 company is going to be willing to bet on a proprietary extension implemented in only one of those combinations? Not many if any I would guess. However, there is one option that works across all those browsers and OSes: Macromedia (now Adobe) Flash Player.

Unlike the browser, where AJAX is a relatively new idea, Flash has been positioning itself as a platform for nearly four years. Instead of AJAX, Macromedia coined the term Rich Internet Application or RIA. RIAs share a lot in common with AJAX in that they are downloaded on demand, execute arbitrary script code and can retrieve data across the network. But the most interesting commonality that Flash has with the browser is that runs across multiple browsers and OSes.

In platform portability, Flash has succeeded where Java failed. I haven't done enough research to know exactly why yet, but I suspect that it's because Java tried to be a complete portable environment on day one where Flash focused on specific functionality that weren't possible any other way - so called "skip intros" - and grew up from there. In other words, Java tried the top-down approach and Flash tried the bottom-up approach. I'm not surprised bottom-up worked and top-down crashed and burned.

While the modern browser has evolved to make it a capable platform, it still lacks some capabilities that Flash has. Most notably support for rich media. Thus, sites like Pandora, Google Video and MTV Overdrive need the capabilities provided by Flash.

While it's hard to imagine enhancements to the browser due to the difficulties across four browsers and multiple OSes, improvements to Flash are easy to imagine. According to Macromedia, Flash has 98% penetration. Even more impressive is that Flash reaches 80% penetration with new versions of the player within 12 months.

Check out this post from Kevin Lynch for more on Flash for Web 2.0 companies. So far, the only Web 2.0 company I know about (which is to say I'm sure there are more out there) is Goowy. Which ones am I missing?

Posted By Harry Pierson at 5:01 PM Pacific Standard Time

Thursday, February 02, 2006

Browser as Virtual Machine

Note: this is the first in a series of Web 2.0 entries. I know I’m on record as hating the term Web 2.0, but as I wrote in that post, I do belief there is a fundamental shift underway in computing. The industry is calling this Web 2.0, and I can either spit in the wind or go with the flow. Furthermore, for the more Web 2.0 savvy among my readership, much of what I write about in this series may be old news. But I want to blog what I learn as I learn it, so bear with me.

Just as the dumb terminal was eventually replaced with more sophisticated personal computers, the dumb browser has been replaced on the modern desktop by something significantly more versatile. When the ability to process arbitrary script code was added to the browser, it became a virtual machine in its own right. Perhaps unique and special-purpose when compared to environments such as the .NET CLR, but a VM all the same. And while its unique nature makes the browser unusable for entire genres of applications – you’d never use the browser to build a server application for example – it makes it well tailored for user-centric, software as a service style applications that have become commonplace. While the browser’s scripting capabilities have been around since the mid 90s, the industry has only recently started to leverage those capabilities to build applications that run on the client inside the browser. Jesse James Garrett coined the term “AJAX” – Asynchronous JavaScript and XML – to describe this style of application.

If the browser is a virtual machine, that makes JavaScript the “assembly language” of the browser. That is, JavaScript is the lowest level of abstraction you can program the browser with.  This has pretty dramatic implications on the applications you build for the browser VM. For one, JavaScript is at a sufficiently high level of abstraction that you can use it directly and be productive. Writing an entire application in IL or Java byte code is unthinkable, but isn’t really a big deal for JavaScript. Furthermore, Because JavaScript is a text-based scripting language, protecting your code as intellectual property is extremely difficult. While obfuscators exist, in the end they can only delay the reverse engineering of your code, not prevent it. This encourages business models where the in-browser code has little if any value.

For example, the big mashup functionality these days is mapping. There are three big mapping services out there: Google Maps, Microsoft Virtual Earth and Yahoo! Maps. 266 of the 368 mashups listed on ProgrammableWeb as I write this include mapping functionality from one of those services. That's nearly three out of four. Mapping is interesting because of the sheer amount of data involved. In fact, the code is pretty useless without the back-end data. So while I can get the code for Google Maps, it does me no good without access to the data for which I need the API key. Contrast this with the complete lack of market for browser-based rich text editors. Sure, there are various open-source script libraries like Dojo, Web Wiz RTE and Kevin Roth's RTE. But no companies offering a rich text editor service like they offer map services. Why is that? I would think the value of rich text editing would be even more widely applicable than mapping. The problem is that, unlike the map service, there's no back end associated with a rich text editor. There's no way to protect a client-side-only solution such as these rich text editors. The only people who do sell rich text editor components are ones who have integrated into some back-end programming environment such as Richer Components' RichTextBox for ASP.NET.

The browser as a VM also has broad implications with regard to extensibility. Similar capabilities are delivered by the four major browsers (IE, Firefox, Opera and Safari) across the major operating systems (Windows, MacOS, Linux, FreeBSD). So the question is, how will new capability evolve in the browser? Will the growing number of Web 2.0 companies looking to provide compelling features and differentiate themselves in the marketplace demand new functionality in the browser VM? Will one of the browser vendors be willing to take the heat of building proprietary extensions to their browser? I realize that many people have a dim view of proprietary extensions, but many features we take for granted today are de facto standards that arose from Microsoft's proprietary extensions to IE. Most notable of these of course is XMLHttpRequest, without which "AJAX" would just be "J". And JavaScript itself started life as a proprietary extension to Netscape before eventually being turned over to ECMA for standardization.

Posted By Harry Pierson at 4:05 PM Pacific Standard Time

Wednesday, January 25, 2006

Hating the Term Web 2.0

Now that I’m an Architect on the Edge (I’m thinking of putting that on my business card. Good idea or bad idea?) of course the first order of business is taking a closer look at “Web 2.0”. One thing leaps out at me right away – I hate the name “Web 2.0”.

First off, it’s a pure marketing buzzword. It was originally coined as a conference name. In a way, the fact that is has no underlying meaning is a good thing, because it gives people argue whether it really exists or not. In a way, it’s like the word “multimedia” back when we were first putting CD-ROMs into computers. There used to be lots of discussion if one thing or another truly was “multimedia”. Now, we don’t really worry about categorizing it as the marketing buzz around the term is long gone.

Secondly, I think it’s wildly arrogant to claim we’re only on version 2.0. The Internet has been around for 36 years. So everything before mid 2004 was Web 1.0 or earlier? And people are already talking about Web 3.0. Come on, let’s get real. The technologies that are driving the current revolution have been percolating for more than one major version of the underlying technology.

Finally, what’s with the version number anyway? One of the core principles Tim O’Reilly outlined was the “End of the Software Release Cycle”. Why are we using a holdover from the software release cycle days to indicate the end of the software release cycle?

Don’t get me wrong, I strongly believe that there is dramatic change happening in this industry. The way I explain my new job is to consider that one of the most basic axioms of distributed computing has been overturned.

From day one, all the computing power has been focused in the center. At first, the machines on the edge had no power at all – they were just dumb terminals. Slowly but surely, those machines at the edge started to become powerful in their own right. However, it’s only in the last seven to ten years that commodity hardware that was pervasive on the edge grew powerful enough to power the center. And it’s only in the last two or three years that the connection between the center and the edge grew fast and pervasive enough to make that edge power relevant.

The rules have changed. The power has shifted from the center to the edge. And we’re only just beginning to see the effects.

Maybe we should call it WebNT? :)

Posted By Harry Pierson at 10:23 PM Pacific Standard Time

Tuesday, January 24, 2006

Architect on the Edge

So for the fourth time in seven months, I have a new manager. Way way way back and the end of June, I left marketing to be a solution architect. In doing so, I traded in Norman for John as my manager. Things were looking shiny but then Microsoft had a major reorg back in September. These big reorgs often cause small ripples, like the director of Architecture Strategy deciding to move back to a product group. John was promoted to head the team and Gianpaolo was hired to take over John's previous role as head of solution architecture. Finally, it seemed like things were calming down on the management front, so I was caught off-guard by what happened next.

Last Monday, John offered me a chance to switch roles. We have spun up an Edge Architecture team to focus on the architectural impact of the next generation of computing - what some call "Web 2.0" - and he thought I would be a perfect fit for the team. I agreed and jumped at the chance. So now I work for Michael Platt. Don't let the infrastructure focus of Michael's blog fool you - he incredibly deep on Edge Architecture and I am currently playing catch-up. The strangest thing so far is having to re-orient my thinking for consumer focused systems and away from the enterprise world where I have I've gotten the vast majority of my experience and where I have spent my entire Microsoft career to date.

In the immediate future, I'm been dumped into the MIX06 planning process. We have other stuff going on in the MIX timeframe that I'll get to soon enough. I'm also re-thinking my personal presence. As my career progresses, the moniker "DevHawk" seems more and more outdated. Is it?

Posted By Harry Pierson at 2:49 PM Pacific Standard Time

Wednesday, November 23, 2005

Browser Based Applications in the Enterprise

I asked Scoble for his thoughts on my post about the term mashup, and he decided simply to link to it. While I appreciate the traffic, I'd appreciate opinions even more. Luckily, in the same post he linked to Sam Ramji writing about what he called "enterprise mashups". Again, love the idea but hate the name mashup.

According to Sam, Scoble said:

[W]hat's to prevent mash-ups from being the main way that departmental apps are built in most enterprises 3-4 years from now?

Again, it depends on the definition of the term "mashup". Are we're talking about browser component based apps that leverage what Scoble calls ICC's? If so, Scoble is only wrong about the timeframe. My team has a browser based application leveraging Virtual Earth running on our intranet server right now.

Quick terminology sidebar: I use the term browser based application to refer to these AJAX and mashup style apps, since they download code and run in the browser itself. By comparison, I use the term web based application for the more traditional browser apps that did all the processing on the server and used the browser essentially as a dumb terminal.

While I think these browser based applications will go mainstream in the enterprise soon, there are a couple of things holding up adoption: availability of tools and of the components themselves.

On the tools side, the AJAX programming model is just too difficult for most programmers. Rudimentary debugging support, late bound script languages, no compiler to help you find errors. Sounds like web development circa 1997, doesn't it? I'm hoping Atlas will be to AJAX what ASP.NET was to ASP.

As for existing components, most of the ones Scoble calls out have little relevance to the enterprise. There's little point to a Feedmap or a Flickr bar in my enterprise app. And I'm not sure I even want to go into the implications of serving up ads in an enterprise app. That pretty much leaves mapping components like VE and Google Maps as the only browser components of interest to the enterprise developer. So far anyway.

I wonder if Scoble knows of any other enterprise relevant browser components out there?

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

Tuesday, November 22, 2005

I Hate The Term Mashup

Wikipedia has two definitions of mashup:

I was originally introduced to the term mashup in the musical sense by Daily Source Code. In this usage, mashup implies mixing songs together. Given that songs are typically stand along entities designed to be enjoyed as is, mashup means (to me anyway) combining stuff that was never meant to be combined in the first place. Even Wikipedia includes musical mashup under the general heading of Bastard Pop.

So given that, by definition, mashups combine stuff that wasn't designed to be combined, I don't understand why an application like Zvents or Virtual Places is considered a mashup. Apps like these use browser based components (Scoble calls them Internet Connected Components) that are well defined, have public APIs and are designed to be used together. Not exactly "bastard pop" now is it?

In reality, a site like Zvents could have used a server side mapping component and provided a similar experience. Of course, a client side mapping solution is both sexier and more practical (no need for dedicated map data files or assemblies on your own machines) but semantically they provide the same information. Same thing goes for Virtual Places, except that Virtual Places is also pulling both functionality (i.e. the mapping component) as well as data (i.e. blogs and photos) from other sites across the Internet. Could that be done on the server side? You betcha. Would it be as cool or functional? No. Does that make it a completely different type of application that deserves a new name. IMO, no. These are component based apps - they just use the browser as the platform and the components are coming across the web (as you would expect when you use the browser as a platform).

The higher order bit for me is who controls the experience. For apps like Zvents and VirtualPlaces, it's the application developer. For something like Live.com, it's me. I decide what to put on my Live page. Not that one is more important than the other or that they aren't compatible experiences - I could easily imagine a Zvents gadget that lived in Live.com. Or consuming the RSS feed from Zvents in Live.com. Or a generic iCal gadget that could consume a Zvents iCal feed. But the point is that there are large differences between browser component based application like Zvents and a user managed composite browser application like Live.com.

To me, composite apps like Live.com fit better to the original definition of mashup than something like Zvents or Virtual Places. They both have their place and their value, but I like to call things that are different by different names in order to reduce confusion.

Of course, composite apps aren't limited to the browser. p&p just shipped their Composite UI Application Block last week. I dug into it a bit last week and it's awesome. More on that later.

Posted By Harry Pierson at 1:14 PM Pacific Standard Time
Change Congress
Recent Bookmarks
Tags .NET Framework (2) __clrtype__ (9) ADO.NET (5) Agile (7) AJAX (3) Architecture (284) Guidance (6) Interop (2) Modelling (61) Patterns (7) Process (4) SOA (93) Web Services (5) ASP.NET (24) 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) College Football (10) Comedy Central (1) Community (81) Concurrency (6) Consumer Electronics (1) Database (13) Debugger (18) Dependency Injection (2) Development (119) C Plus Plus (1) Embedded (5) Lanugages (40) Media (2) P2P (11) Rotor (1) SharePoint (6) SOP (3) DIY (1) DLR (19) Domain Specific Languages (15) Durable Messaging (5) Dynamic Languages (10) 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) HawkEye (3) Health (1) Hockey (31) Home Electronics (1) Home Network (5) Humor (5) IASA (1) Idempotence (3) infrastructure (5) Instrumentation (4) Integration (2) IronPython (92) IronRuby (13) Java (2) Job (3) Kodu (1) LangNET (2) 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 (7) Open Space (2) Operations (3) Other (135) Art (1) Books (1) Family (33) Games (18) General Geekery (26) Home Theater (1) Movies (23) Music (20) Politics (3) Society (1) Sports (37) Working at MSFT (17) Parallel Programming (3) Parsing Expression Grammar (16) patterns & practices (2) PDC08 (5) Politics (48) PowerPoint (2) PowerShell (37) Presentation (5) Projects (1) HawkWiki (1) 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 (1) Software Factories (11) Software Industry (1) Spark (1) SQL Server (2) Stephen Colbert (1) TechEd (7) TechEd06 (1) TechRec League (1) Television (6) Travel (6) Unified Client (1) Unit Testing (4) USC (1) UX (1) Virtual PC (2) Visual Basic (2) Visual Studio (20) Volta (2) Washington Capitals (37) WCF (31) Web 2.0 (65) Web Services (5) WF (21) Windows (1) Windows Live (28) Windows Live Writer (2) WPF (7) 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.