<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>From 9 till 2</title>
    <link>http://www.from9till2.com/</link>
    <description>david.ing.name</description>
    <language>en-us</language>
    <copyright>David Ing</copyright>
    <lastBuildDate>Fri, 29 May 2009 03:58:23 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>david.ing@gmail.com</managingEditor>
    <webMaster>david.ing@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=bc677269-2fa3-4122-b0da-658c5051937d</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=bc677269-2fa3-4122-b0da-658c5051937d</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=bc677269-2fa3-4122-b0da-658c5051937d</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bc677269-2fa3-4122-b0da-658c5051937d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is *really* worth a watch, as it's easier to understand when you see it moving.
</p>
        <p>
          <a href="http://wave.google.com/">http://wave.google.com/</a>
        </p>
        <p>
Nice summary here: <a href="http://mashable.com/2009/05/28/google-wave-guide/">http://mashable.com/2009/05/28/google-wave-guide/</a></p>
        <p>
I'm fascinated by collaboration technologies, and this one seems to have real potential.
Really interesting to compare/contrast this as a XMPP style vs the Atom / FeedSync's
out there.
</p>
        <p>
Still absorbing it all, but the specs /apis are a good start: <a href="http://code.google.com/apis/wave/">http://code.google.com/apis/wave/</a></p>
        <p>
- David
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=bc677269-2fa3-4122-b0da-658c5051937d" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Google Wave</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=bc677269-2fa3-4122-b0da-658c5051937d</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=bc677269-2fa3-4122-b0da-658c5051937d</link>
      <pubDate>Fri, 29 May 2009 03:58:23 GMT</pubDate>
      <description>&lt;p&gt;
This is *really* worth a watch, as it's easier to understand when you see it moving.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://wave.google.com/"&gt;http://wave.google.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Nice summary here: &lt;a href="http://mashable.com/2009/05/28/google-wave-guide/"&gt;http://mashable.com/2009/05/28/google-wave-guide/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I'm fascinated by collaboration technologies, and this one seems to have real potential.
Really interesting to compare/contrast this as a XMPP style vs the Atom / FeedSync's
out there.
&lt;/p&gt;
&lt;p&gt;
Still absorbing it all, but the specs /apis are a good start: &lt;a href="http://code.google.com/apis/wave/"&gt;http://code.google.com/apis/wave/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=bc677269-2fa3-4122-b0da-658c5051937d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=bc677269-2fa3-4122-b0da-658c5051937d</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I like my iPhone, although a better name for it would be iBrowser, as it's a fairly
ordinary phone but a great web browser. As nearly everything I do is web-based then
the device has turned into a really important computer that I need and use every day.
</p>
        <p>
One thing that wasn't obvious to me initially is that the native apps and the app
store are a crucial feature. The combination of the sandbox attitude to keeping the
core functionality always working (uh, well, 'always' being subjective I guess) and
the integrated download/buy app store is superb. It's basically a true mobile computer
that trojan horse'd its way in to my pocket from being called a phone.
</p>
        <p>
The really odd thought for today for me is that I can't easily write code for it.
Since about 1993 I've written apps for all sorts of different Microsoft platforms
(including some WinCE) and here I have my first really practical mobile PC and I can't
do 'what I do' with it. I know enough C++ to be dangerous, but my head is full with
existing frameworks and I can't summon up the energy for yet another platform/sdk.
</p>
        <p>
How did it happen that the best asset that Microsoft can use (their dev community)
got left behind in terms of mobile computing? 
</p>
        <p>
You don't have to be Nostradamus to predict that for a lot of people, both personal
and business, that mobile devices (and smaller laptops) are the way forward. I can't
think of anything more important that Microsoft should be working on than competing
with the iPhone 'experience'. Either that or start targeting more device platforms
with their tooling and run-times. 
</p>
        <p>
The PC BeigeBox market of a hardware vendor with a software vendor may not be a do-over
in terms of the mobile computing platform. Experience is king. 
</p>
        <p>
- David
</p>
        <p>
PS Yep, Android, yep windows moble, yep mono/unity etc. Flame on...
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=f8edaeba-c293-4cc7-9b39-bd2f57c85f39" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>How Did This Happen?</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</link>
      <pubDate>Thu, 14 May 2009 18:37:36 GMT</pubDate>
      <description>&lt;p&gt;
I like my iPhone, although a better name for it would be iBrowser, as it's a fairly
ordinary phone but a great web browser. As nearly everything I do is web-based then
the device has turned into a really important computer that I need and use every day.
&lt;/p&gt;
&lt;p&gt;
One thing that wasn't obvious to me initially is that the native apps and the app
store are a crucial feature. The combination of the sandbox attitude to keeping the
core functionality always working (uh, well, 'always' being subjective I guess) and
the integrated download/buy app store is superb. It's basically a true mobile computer
that trojan horse'd its way in to my pocket from being called a phone.
&lt;/p&gt;
&lt;p&gt;
The really odd thought for today for me is that I can't easily write code for it.
Since about 1993 I've written apps for all sorts of different Microsoft platforms
(including some WinCE) and here I have my first really practical mobile PC and I can't
do 'what I do' with it. I know enough C++ to be dangerous, but my head is full with
existing frameworks and I can't summon up the energy for yet another platform/sdk.
&lt;/p&gt;
&lt;p&gt;
How did it happen that the best asset that Microsoft can use (their dev community)
got left behind in terms of mobile computing? 
&lt;/p&gt;
&lt;p&gt;
You don't have to be Nostradamus to predict that for a lot of people, both personal
and business, that mobile devices (and smaller laptops) are the way forward. I can't
think of anything more important that Microsoft should be working on than competing
with the iPhone 'experience'. Either that or start targeting more device platforms
with their tooling and run-times. 
&lt;/p&gt;
&lt;p&gt;
The PC BeigeBox market of a hardware vendor with a software vendor may not be a do-over
in terms of the mobile computing platform. Experience is king.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
PS Yep, Android, yep windows moble, yep mono/unity etc. Flame on...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=f8edaeba-c293-4cc7-9b39-bd2f57c85f39" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=f8edaeba-c293-4cc7-9b39-bd2f57c85f39</comments>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=bd911386-dec9-4d58-aa11-e467014760d4</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=bd911386-dec9-4d58-aa11-e467014760d4</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=bd911386-dec9-4d58-aa11-e467014760d4</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=bd911386-dec9-4d58-aa11-e467014760d4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After some <a href="http://techie-buzz.com/featured/outlookdeck-brings-tweetdeck-interface-to-outlook-search.html">pretty</a><a href="http://news.cnet.com/8301-17939_109-10219257-2.html">nice</a><a href="http://lifehacker.com/5209316/outlookdeck-cuts-through-busy-inbox-noise">things</a><a href="http://on10.net/blogs/sarahintampa/Love-TweetDeck-Try-OutlookDeck/">written</a> about
OutlookDeck I thought it would be daft to just leave it alone. Today I put a bit more
time in, tightened up a couple of things, and worked on a new feature. 
</p>
        <p>
In the spirit of OutlookDeck being a 'test bed' of new email visualisations I've added
a 'Word Cloud' generator. Here's one for me for last year (i.e. notice the query):
</p>
        <p>
          <img src="http://www.from9till2.com/content/binary/OutlookDeck-WordCloud.jpg" />
        </p>
        <p>
          <br />
Note: This cloud was against my spare gmail address, hence the adsense spam obsession
(how do you get them to stop sending daily reports anyway?). Hopefully yours will
be much more interesting.
</p>
        <p>
So what you can do is setup any specific query you like in OutlookDeck and then see
what sort of words are most commonly used in the content of those emails - just
press the new wee button next to the close 'x' on each deck header. The text processing
is fairly simple, with the top 100 terms shown (with some stop words and stemming
used).
</p>
        <p>
Think of it as a 'personal zeitgeist' machine. The concept behind the cloud is to
capture some nice snapshots in time for various things you talk about in email. i.e.
try a "From: MyBoss' date:last week" and see if they ever change subject.
Maybe try various newsletters and see what they concentrate on etc.
</p>
        <p>
Have fun!
</p>
        <p>
- David
</p>
        <p>
PS The beta feedback is trickling in and I have a couple of ideas in mind, but please
do let rip on ideas and comments here: <a href="http://outlookdeck.uservoice.com">http://outlookdeck.uservoice.com</a></p>
        <p>
Download (Windows, .NET 3.5 required) from <a href="http://www.from9till2.com/OutlookDeck/OutlookDeck.application">here</a> or
read more from <a href="http://www.from9till2.com/PermaLink.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52">here</a>.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=bd911386-dec9-4d58-aa11-e467014760d4" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>OutlookDeck Word Clouds</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=bd911386-dec9-4d58-aa11-e467014760d4</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=bd911386-dec9-4d58-aa11-e467014760d4</link>
      <pubDate>Fri, 17 Apr 2009 05:11:02 GMT</pubDate>
      <description>&lt;p&gt;
After some &lt;a href="http://techie-buzz.com/featured/outlookdeck-brings-tweetdeck-interface-to-outlook-search.html"&gt;pretty&lt;/a&gt; &lt;a href="http://news.cnet.com/8301-17939_109-10219257-2.html"&gt;nice&lt;/a&gt; &lt;a href="http://lifehacker.com/5209316/outlookdeck-cuts-through-busy-inbox-noise"&gt;things&lt;/a&gt; &lt;a href="http://on10.net/blogs/sarahintampa/Love-TweetDeck-Try-OutlookDeck/"&gt;written&lt;/a&gt; about
OutlookDeck I thought it would be daft to just leave it alone. Today I put a bit more
time in, tightened up a couple of things, and worked on a new feature. 
&lt;/p&gt;
&lt;p&gt;
In the spirit of OutlookDeck being a 'test bed' of new email visualisations I've added
a 'Word Cloud' generator. Here's one for me for last year (i.e. notice the query):
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.from9till2.com/content/binary/OutlookDeck-WordCloud.jpg"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Note: This cloud was against my spare gmail address, hence the adsense spam obsession
(how do you get them to stop sending daily reports anyway?). Hopefully yours will
be much more interesting.
&lt;/p&gt;
&lt;p&gt;
So what you can do is setup any specific query you like in OutlookDeck and then see
what sort of words are most commonly used in the content of those&amp;nbsp;emails - just
press the new wee button next to the close 'x' on each deck header. The text processing
is fairly simple, with the top 100 terms shown (with some stop words and stemming
used).
&lt;/p&gt;
&lt;p&gt;
Think of it as a 'personal zeitgeist' machine. The concept behind the cloud is to
capture some nice snapshots in time for various things you talk about in email. i.e.
try a "From: MyBoss' date:last week" and&amp;nbsp;see if they ever change&amp;nbsp;subject.
Maybe try various newsletters and see what they concentrate on etc.
&lt;/p&gt;
&lt;p&gt;
Have fun!
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
PS The beta feedback is trickling in and I have a couple of ideas in mind, but please
do let rip on ideas and comments here: &lt;a href="http://outlookdeck.uservoice.com"&gt;http://outlookdeck.uservoice.com&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Download (Windows, .NET 3.5 required) from &lt;a href="http://www.from9till2.com/OutlookDeck/OutlookDeck.application"&gt;here&lt;/a&gt;&amp;nbsp;or
read more from &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=bd911386-dec9-4d58-aa11-e467014760d4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=bd911386-dec9-4d58-aa11-e467014760d4</comments>
      <category>OutlookDeck</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
'OutlookDeck' is a homage to the popular Twitter desktop client <a href="http://www.tweetdeck.com/">'TweetDeck'</a> but
for all your Outlook emails. It's an experiment in a different way to view your mail
info. You can get a good idea of what it does from this screenshot:
</p>
        <p>
          <img style="WIDTH: 675px; HEIGHT: 411px" src="http://www.from9till2.com/content/binary/OutlookDeck.png" width="68" height="100" />
        </p>
        <p>
The background to this is that I spent the day today writing my first WPF app
and needed an excuse of something (real-ish) to do. While over the last couple of
years I've read books/articles and seen presentations on WPF, I haven't really had
the opportunity to use it that much. Truth be told, I'm fairly sceptical (Editor Note:
Gosh - really?!) about where the technology is generally heading, as I see web apps
as the real future; and if it wasn't to be HTML then I'd go for Air or Silverlight.
In this case I found an excuse for a desktop app, i.e. your local email store.
</p>
        <p>
But anyhoo, I unexpectedly had today free and it was fun. WPF makes it very easy
to data bind (it's Windows Search underneath all this) plus Expression Blend is a
nice way to lather everything up with rounded corners and gradient grays. As you can
see, Edward Tufte will be running scared at my inspired UX skills. If you are feeling
brave and want to try it out then please feel free. Download here (Windows, .NET 3.5):
</p>
        <p>
          <strong>Update (again, last one):</strong> A ClickOnce install with updates and fixes
here (better than installers, as you get the latest as I fiddle):
</p>
        <p>
          <a href="http://www.from9till2.com/OutlookDeck/OutlookDeck.application">http://www.from9till2.com/OutlookDeck/OutlookDeck.application</a>
        </p>
        <p>
Requires .NET 3.5 from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;displaylang=en">here</a> if
you get an error on install. Oh, and if you're on XP then WDS <a href="http://www.microsoft.com/windows/products/winfamily/desktopsearch/getitnow.mspx">here</a>.
</p>
        <p>
          <a href="http://www.smallestdotnet.com">Smallestdotnet</a> says: <script type="text/javascript" src="http://www.smallestdotnet.com/smallestdotnet/javascript.ashx"></script></p>
        <p>
          <strong>Update (I lied about being the last one above, ignore): </strong>If you do
try OutlookDeck and want me to fiddle with it some more then please vote/suggest some
things to do with it here: <a href="http://outlookdeck.uservoice.com">http://outlookdeck.uservoice.com</a></p>
        <p>
- David
</p>
        <p>
PS I wasn't planning on fiddling with it much more but the '1 day plan' was <strike>to
put an installer for it, plus</strike> finish off the 'Groups' stuff (i.e. the 'All
Friends' was a stub, if you know TweetDeck you'll know what I mean) and make
it 'less black' <strike>with some anims/re-sizey-fontness</strike>; but alas the day
is over. Contact me on twitter '<a href="http://twitter.com/david_ing">david_ing</a>'
if you have questions/ideas/beer/hockeytickets.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=fe720234-aa1a-4bcc-8bbc-b07c35d05e52" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>OutlookDeck</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</link>
      <pubDate>Sat, 28 Mar 2009 04:30:47 GMT</pubDate>
      <description>&lt;p&gt;
'OutlookDeck' is a homage to the popular Twitter desktop client&amp;nbsp;&lt;a href="http://www.tweetdeck.com/"&gt;'TweetDeck'&lt;/a&gt; but
for all your Outlook emails. It's an experiment in a different way to view your mail
info. You can get a good&amp;nbsp;idea of what it does from this screenshot:
&lt;/p&gt;
&lt;p&gt;
&lt;img style="WIDTH: 675px; HEIGHT: 411px" src="http://www.from9till2.com/content/binary/OutlookDeck.png" width=68 height=100&gt;
&lt;/p&gt;
&lt;p&gt;
The background to this is that I spent the day today writing my&amp;nbsp;first WPF app
and needed an excuse of something (real-ish) to do. While over the last couple of
years I've read books/articles and seen presentations on WPF, I haven't really had
the opportunity to use it that much. Truth be told, I'm fairly sceptical (Editor Note:
Gosh - really?!) about where the technology is generally heading, as I see web apps
as the real future; and if it wasn't to be HTML then I'd go for Air or Silverlight.
In this case I found an excuse for a desktop app, i.e. your local email store.
&lt;/p&gt;
&lt;p&gt;
But anyhoo, I&amp;nbsp;unexpectedly had today free and it was fun. WPF makes it very easy
to data bind (it's Windows Search underneath all this) plus Expression Blend is a
nice way to lather everything up with rounded corners and gradient grays. As you can
see, Edward Tufte will be running scared at my inspired UX skills. If you are feeling
brave and want to try it out then please feel free. Download here (Windows, .NET 3.5):
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update (again, last one):&lt;/strong&gt; A ClickOnce install with updates and fixes
here (better than installers, as you get the latest as I fiddle):
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.from9till2.com/OutlookDeck/OutlookDeck.application"&gt;http://www.from9till2.com/OutlookDeck/OutlookDeck.application&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Requires .NET 3.5 from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;amp;displaylang=en"&gt;here&lt;/a&gt; if
you get an error on install. Oh, and if you're on XP then WDS &lt;a href="http://www.microsoft.com/windows/products/winfamily/desktopsearch/getitnow.mspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.smallestdotnet.com"&gt;Smallestdotnet&lt;/a&gt; says: &lt;script type=text/javascript src="http://www.smallestdotnet.com/smallestdotnet/javascript.ashx"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update (I lied about being the last one above, ignore): &lt;/strong&gt;If you do
try OutlookDeck and want me to fiddle with it some more then please vote/suggest some
things to do with it here: &lt;a href="http://outlookdeck.uservoice.com"&gt;http://outlookdeck.uservoice.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
PS I wasn't planning on fiddling with it much more but the '1 day plan' was &lt;strike&gt;to
put an installer for it, plus&lt;/strike&gt; finish off the 'Groups' stuff (i.e. the 'All
Friends' was a stub, if you know TweetDeck you'll&amp;nbsp;know what I mean) and make
it 'less black' &lt;strike&gt;with some anims/re-sizey-fontness&lt;/strike&gt;; but alas the day
is over. Contact me on twitter '&lt;a href="http://twitter.com/david_ing"&gt;david_ing&lt;/a&gt;'
if you&amp;nbsp;have questions/ideas/beer/hockeytickets.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=fe720234-aa1a-4bcc-8bbc-b07c35d05e52" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=fe720234-aa1a-4bcc-8bbc-b07c35d05e52</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
      <category>OutlookDeck</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://oreilly.com/catalog/9780596522698/">This</a> book is interesting for
a couple of reasons, in that all the contributions were first drafted via a <a href="http://97-things.near-time.net/wiki">wiki</a> and
that the author submissions are part of a Creative Commons license. The submissions
went through a group review process, with the final the bits being scooped up for
publishing. It's an interesting and light-weight approach to a group book.
</p>
        <p>
I'd often been tempted to invest some more time in tech writing, but have heard through
friends in the field that it has to be a true labor of love, i.e. the time you put
in will very rarely pay the bills. The best way to think of software books from a
writing perspective (at least in the relatively narrow fields that I could write about)
is as something that bolsters your self-marketing but not much more.
</p>
        <p>
This book from my perspective is sort of the opposite of that, i.e. very little time
required from me plus a painless editing/review cycle. Plus of course it was fun to
read the other submissions too. I also think that some short bite-size chunks of anecdotes
and advice on software architecture probably fills a hole in what's out there, as
software books do tend to be pages of screenshots/code and prescriptive advice and
this is quite a contrast to that.
</p>
        <p>
PS: I wrote chapter 56, although most of my jokes, commas and mid-atlantic spellings
got, quite properly, edited out.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=377f2994-15e5-4074-83a9-cd8bad5b537f" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>97 Things Every Software Architect Should Know</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</link>
      <pubDate>Thu, 19 Mar 2009 20:11:15 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://oreilly.com/catalog/9780596522698/"&gt;This&lt;/a&gt; book is interesting for
a couple of reasons, in that all the contributions were first drafted via a &lt;a href="http://97-things.near-time.net/wiki"&gt;wiki&lt;/a&gt; and
that the author submissions are part of a Creative Commons license. The submissions
went through a group review process, with the final the bits being scooped up for
publishing. It's an interesting and light-weight approach to a group book.
&lt;/p&gt;
&lt;p&gt;
I'd often been tempted to invest some more time in tech writing, but have heard through
friends in the field that it has to be a true labor of love, i.e. the time you put
in will very rarely pay the bills. The best way to think of software books from a
writing perspective (at least in the relatively narrow fields that I could write about)
is as something that bolsters your self-marketing but not much more.
&lt;/p&gt;
&lt;p&gt;
This book from my perspective is sort of the opposite of that, i.e. very little time
required from me plus a painless editing/review cycle. Plus of course it was fun to
read the other submissions too. I also think that some short bite-size chunks of anecdotes
and advice on software architecture probably fills a hole in what's out there, as
software books do tend to be pages of screenshots/code and prescriptive advice and
this is quite a contrast to that.
&lt;/p&gt;
&lt;p&gt;
PS: I wrote chapter 56, although most of my jokes, commas and mid-atlantic spellings
got, quite properly, edited out.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=377f2994-15e5-4074-83a9-cd8bad5b537f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=377f2994-15e5-4074-83a9-cd8bad5b537f</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=5197c754-f127-4710-b894-a8b388daea7f</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=5197c754-f127-4710-b894-a8b388daea7f</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=5197c754-f127-4710-b894-a8b388daea7f</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5197c754-f127-4710-b894-a8b388daea7f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Dear Readers,<br /><br />
This blog has billions of customers. To best serve them I've decided to tune it up
to a number of much-asked for SKU's. The concept and SKU choices for this blog are
quite simple:<br /><br />
- From9till2 Starter Edition.<br />
You can only read three blog posts at one sitting, plus comments must be left via
VT-220 on a token ring lan. This SKU was requested by Netbook users who felt overwhelmed
and over-excited with too many features.<br /><br />
- From9till2 Home Basic Edition.<br />
For this SKU you have all the benefits of Starter Edition plus a three colour CSS
theme. You may also leave mixed-case character comments via any device (not including
iphone). Note: the words `A Basic Person` will be appended to your name for any comments
you leave.<br /><br />
- From9till2 Home Premium Edition.<br />
In this much requested SKU the back button now works, plus I am addressing the specific
market of people who like to read text with punctuation characters included. Note
'?' character not included. You may also not translate any postings to Portuguese
in this SKU.<br /><br />
- From9till2 Home Premium Basic Edition.<br />
As requested by Home Premium Edition customers, to enable Portuguese *and* punctuation
characters I have created this special SKU to meet both this specific market need
and your convenience. Note: CSS colour theme is now disabled.<br /><br />
- From9till2 Professional Non-Basic Edition.<br />
A combination of the Starter, Home and Home Premium Edition with features removed
by using an XOR bitwise mask on any function that starts with a vowel. Or a 'y', which
is almost a vowel.<br /><br />
- From9till2 Ultimate Home Basic Professional Non-Portuguese Edition.<br />
As requested by this blogs customer's, the exciting UHBPN-P Edition removes the ambiguity
created by the word 'Archive' starting with a vowel. Note: Disk image 'archive' not
included.<br /><br />
- From9till2 Enterprise Starter Ultimate Home Edition.<br />
Ideally read in large homes, where the reader is targeting business software for &lt;
10 users. A VT-220 keyboard mapping poster is available as a downloadable XPS file.
Note: XPS reader not included.<br /><br />
As you can tell, I am pretty excited to offer this blog in these SKU's. Don't forget
you can upgrade to any of them at any time by using money.<br /><br />
More info <a href="http://windowsteamblog.com/blogs/windows7/archive/2009/02/04/a-closer-look-at-the-windows-7-skus.aspx">here</a>.
:-)<br /><br />
- David<br /><br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=5197c754-f127-4710-b894-a8b388daea7f" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>SKU-wee</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=5197c754-f127-4710-b894-a8b388daea7f</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=5197c754-f127-4710-b894-a8b388daea7f</link>
      <pubDate>Fri, 06 Feb 2009 06:11:55 GMT</pubDate>
      <description>Dear Readers,&lt;br&gt;
&lt;br&gt;
This blog has billions of customers. To best serve them I've decided to tune it up
to a number of much-asked for SKU's. The concept and SKU choices for this blog are
quite simple:&lt;br&gt;
&lt;br&gt;
- From9till2 Starter Edition.&lt;br&gt;
You can only read three blog posts at one sitting, plus comments must be left via
VT-220 on a token ring lan. This SKU was requested by Netbook users who felt overwhelmed
and over-excited with too many features.&lt;br&gt;
&lt;br&gt;
- From9till2 Home Basic Edition.&lt;br&gt;
For this SKU you have all the benefits of Starter Edition plus a three colour CSS
theme. You may also leave mixed-case character comments via any device (not including
iphone). Note: the words `A Basic Person` will be appended to your name for any comments
you leave.&lt;br&gt;
&lt;br&gt;
- From9till2 Home Premium Edition.&lt;br&gt;
In this much requested SKU the back button now works, plus I am addressing the specific
market of people who like to read text with punctuation characters included. Note
'?' character not included. You may also not translate any postings to Portuguese
in this SKU.&lt;br&gt;
&lt;br&gt;
- From9till2 Home Premium Basic Edition.&lt;br&gt;
As requested by Home Premium Edition customers, to enable Portuguese *and* punctuation
characters I have created this special SKU to meet both this specific market need
and your convenience. Note: CSS colour theme is now disabled.&lt;br&gt;
&lt;br&gt;
- From9till2 Professional Non-Basic Edition.&lt;br&gt;
A combination of the Starter, Home and Home Premium Edition with features removed
by using an XOR bitwise mask on any function that starts with a vowel. Or a 'y', which
is almost a vowel.&lt;br&gt;
&lt;br&gt;
- From9till2 Ultimate Home Basic Professional Non-Portuguese Edition.&lt;br&gt;
As requested by this blogs customer's, the exciting UHBPN-P Edition removes the ambiguity
created by the word 'Archive' starting with a vowel. Note: Disk image 'archive' not
included.&lt;br&gt;
&lt;br&gt;
- From9till2 Enterprise Starter Ultimate Home Edition.&lt;br&gt;
Ideally read in large homes, where the reader is targeting business software for &amp;lt;
10 users. A VT-220 keyboard mapping poster is available as a downloadable XPS file.
Note: XPS reader not included.&lt;br&gt;
&lt;br&gt;
As you can tell, I am pretty excited to offer this blog in these SKU's. Don't forget
you can upgrade to any of them at any time by using money.&lt;br&gt;
&lt;br&gt;
More info &lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/02/04/a-closer-look-at-the-windows-7-skus.aspx"&gt;here&lt;/a&gt;.
:-)&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=5197c754-f127-4710-b894-a8b388daea7f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=5197c754-f127-4710-b894-a8b388daea7f</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=42424e90-a15c-472b-b417-cb84363bd85c</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=42424e90-a15c-472b-b417-cb84363bd85c</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=42424e90-a15c-472b-b417-cb84363bd85c</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=42424e90-a15c-472b-b417-cb84363bd85c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Cool, or should I say 'wonderfl' (the web
2.0 heinous crimes against spelling continue, despite economy).<br /><br /><a href="http://www.crunchgear.com/2009/02/01/wonderfl-online-live-flash-code-wrangling-service/">http://www.crunchgear.com/2009/02/01/wonderfl-online-live-flash-code-wrangling-service/</a><br /><br />
So, how about:<br /><br />
- Um, Flash? I already know the CLR, so how about a Silverlight version so Ruby/Python/C#
people can play?<br /><br />
- An online Silverlight XAML Pad? That would be neat.<br /><br />
- A community of examples, i.e. a youtube for code. Instant gratification.<br /><br />
- Browser -&gt; View Source probably taught more people to program than colleges.
This shared interactive sandbox has got to be good.(*)<br /><br />
- I wonder how sharing chunks of code (libraries/modules/snippets) would fit into
this rather than whole apps.<br /><br />
- Not realistic, but an Oslo 'Quadrant' editor online would be pretty good, i.e. share
the code with all the config/metadata.<br /><br />
So has 'Actionscript' really become this generations equivilent of <a href="http://en.wikipedia.org/wiki/Sinclair_BASIC">Sinclair
Basic</a>? Or are we just moving towards an online collaborative smalltalk?<br /><br />
- David<br /><br />
(*) Good as in a intro to programming that spawns a legion of attention deficit procedual
hackers all building missle command clones type good.<br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=42424e90-a15c-472b-b417-cb84363bd85c" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>wonderfl</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=42424e90-a15c-472b-b417-cb84363bd85c</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=42424e90-a15c-472b-b417-cb84363bd85c</link>
      <pubDate>Mon, 02 Feb 2009 03:59:40 GMT</pubDate>
      <description>Cool, or should I say 'wonderfl' (the web 2.0 heinous crimes against spelling continue, despite economy).&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.crunchgear.com/2009/02/01/wonderfl-online-live-flash-code-wrangling-service/"&gt;http://www.crunchgear.com/2009/02/01/wonderfl-online-live-flash-code-wrangling-service/&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
So, how about:&lt;br&gt;
&lt;br&gt;
- Um, Flash? I already know the CLR, so how about a Silverlight version so Ruby/Python/C#
people can play?&lt;br&gt;
&lt;br&gt;
- An online Silverlight XAML Pad? That would be neat.&lt;br&gt;
&lt;br&gt;
- A community of examples, i.e. a youtube for code. Instant gratification.&lt;br&gt;
&lt;br&gt;
- Browser -&amp;gt; View Source probably taught more people to program than colleges.
This shared interactive sandbox has got to be good.(*)&lt;br&gt;
&lt;br&gt;
- I wonder how sharing chunks of code (libraries/modules/snippets) would fit into
this rather than whole apps.&lt;br&gt;
&lt;br&gt;
- Not realistic, but an Oslo 'Quadrant' editor online would be pretty good, i.e. share
the code with all the config/metadata.&lt;br&gt;
&lt;br&gt;
So has 'Actionscript' really become this generations equivilent of &lt;a href="http://en.wikipedia.org/wiki/Sinclair_BASIC"&gt;Sinclair
Basic&lt;/a&gt;? Or are we just moving towards an online collaborative smalltalk?&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
(*) Good as in a intro to programming that spawns a legion of attention deficit procedual
hackers all building missle command clones type good.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=42424e90-a15c-472b-b417-cb84363bd85c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=42424e90-a15c-472b-b417-cb84363bd85c</comments>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I still do <i>plan</i> to write some blog
entries, but any free time I have is getting sucked into the huge endless trivia holes
called:<br /><br /><a href="http://twitter.com/david_ing">http://twitter.com/david_ing</a><br /><br />
and (which I much prefer, because you can chat a bit more without the endless crapshoot
of trying to follow a conversation by clicking on to profile pages)<br /><br /><a href="http://friendfeed.com/djing">http://friendfeed.com/djing</a><br /><br />
If you sign up then we can pretend to be friends(*). 
<br /><br />
- David<br /><br />
*- Xmas card exempt, terms and conditions apply - do call before coming around my
house after 10pm etc.<br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=1a2f8eef-81a9-4870-9a4f-4df7b58da258" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Where Are You?</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</link>
      <pubDate>Wed, 28 Jan 2009 01:04:00 GMT</pubDate>
      <description>I still do &lt;i&gt;plan&lt;/i&gt; to write some blog entries, but any free time I have is getting
sucked into the huge endless trivia holes called:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://twitter.com/david_ing"&gt;http://twitter.com/david_ing&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
and (which I much prefer, because you can chat a bit more without the endless crapshoot
of trying to follow a conversation by clicking on to profile pages)&lt;br&gt;
&lt;br&gt;
&lt;a href="http://friendfeed.com/djing"&gt;http://friendfeed.com/djing&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
If you sign up then we can pretend to be friends(*). 
&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
*- Xmas card exempt, terms and conditions apply - do call before coming around my
house after 10pm etc.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=1a2f8eef-81a9-4870-9a4f-4df7b58da258" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=1a2f8eef-81a9-4870-9a4f-4df7b58da258</comments>
      <category>Blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=fe245d86-3ca5-414d-af3c-186f11c62777</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=fe245d86-3ca5-414d-af3c-186f11c62777</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=fe245d86-3ca5-414d-af3c-186f11c62777</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=fe245d86-3ca5-414d-af3c-186f11c62777</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Generally, I'm not that helpful a person,
at least on this blog, but I thought I should add some search-juice to these Windows
7 x64 oddities I've found solutions for, i.e. considering 2.5 million might be trying
it out tomorrow. Not sure how many of them are just plain 64 bit issues, but here
we go:<br /><br />
- Regular Skype on x64 dies. Use the v4 beta from <a href="http://www.skype.com/intl/en/download/skype/windows/beta/">here</a>.<br /><br />
- Google Chrome won't start on x64, but you can add the text '<span class="Apple-style-span" style="border-collapse: separate; color: rgb(70, 70, 70); font-family: verdana; font-size: 12px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">--in-process-plugins'</span> after
the app shortcut then it can be coerced too (and take down the entire process on a
naughty tab). Note the link <a href="http://www.blogsdna.com/1900/how-to-run-google-chrome-on-windows-7-64-bit-version.htm">here</a> is
not quite right in that there are two '-' dashes before the flag, i.e. '--'.<br /><br />
- If like me you needed to mount an ISO file rather quickly in your repave then you'll
find Demon Tools / Alcohol etc won't work with Windows 7 just yet. I've had some luck
with the free Virtual CloneDrive from <a href="http://www.slysoft.com/en/download.html">here</a>.
Don't forget to restart your system after installing it, as it won't prompt you to.<br /><br />
- If you need to connect Outlook to a hosted Exchange system (probably through Connection
/ HTTPS proxy) and you keep getting a repeated login prompt, then try not using your
username@domain.com format and try instead a domain\username format instead. You can
often find your true exchange login identity in a domain format by accessing your
hosted exchanges control panel and following the instructions for something like ActiveSync
- that often uses the formats like '<link rel="File-List" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" /><link rel="themeData" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" /><link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" /><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-GB</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:DoNotOptimizeForBrowser/>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><style><!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--></style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
</style>
<![endif]--><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">'mex07a.mlsrvr.com\windows7user_taglocity_</span>'
rather than windows7user@taglocity.com which is what you need.<br /><br />
- I think the initial desktop background shows a Japanese Fighting Fish, a creature
so aggressive towards it's fish-kin that it will damage itself even when seeing a
reflection of itself. There's a wordy analogy in there somewhere...<br /><br />
- Everything worked on my 2 year old Dell laptop, i.e. drivers/odd OEM keys etc, so
driver-wise the beta is in good shape.<br /><br />
I hope that helps, as ScottGu would say.<br /><br />
David<br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=fe245d86-3ca5-414d-af3c-186f11c62777" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Windows 7 Beta Download Timbits</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=fe245d86-3ca5-414d-af3c-186f11c62777</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=fe245d86-3ca5-414d-af3c-186f11c62777</link>
      <pubDate>Fri, 09 Jan 2009 02:04:56 GMT</pubDate>
      <description>Generally, I'm not that helpful a person, at least on this blog, but I thought I should add some search-juice to these Windows 7 x64 oddities I've found solutions for, i.e. considering 2.5 million might be trying it out tomorrow. Not sure how many of them are just plain 64 bit issues, but here we go:&lt;br&gt;
&lt;br&gt;
- Regular Skype on x64 dies. Use the v4 beta from &lt;a href="http://www.skype.com/intl/en/download/skype/windows/beta/"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
- Google Chrome won't start on x64, but you can add the text '&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(70, 70, 70); font-family: verdana; font-size: 12px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;--in-process-plugins'&lt;/span&gt; after
the app shortcut then it can be coerced too (and take down the entire process on a
naughty tab). Note the link &lt;a href="http://www.blogsdna.com/1900/how-to-run-google-chrome-on-windows-7-64-bit-version.htm"&gt;here&lt;/a&gt; is
not quite right in that there are two '-' dashes before the flag, i.e. '--'.&lt;br&gt;
&lt;br&gt;
- If like me you needed to mount an ISO file rather quickly in your repave then you'll
find Demon Tools / Alcohol etc won't work with Windows 7 just yet. I've had some luck
with the free Virtual CloneDrive from &lt;a href="http://www.slysoft.com/en/download.html"&gt;here&lt;/a&gt;.
Don't forget to restart your system after installing it, as it won't prompt you to.&lt;br&gt;
&lt;br&gt;
- If you need to connect Outlook to a hosted Exchange system (probably through Connection
/ HTTPS proxy) and you keep getting a repeated login prompt, then try not using your
username@domain.com format and try instead a domain\username format instead. You can
often find your true exchange login identity in a domain format by accessing your
hosted exchanges control panel and following the instructions for something like ActiveSync
- that often uses the formats like '&lt;link rel="File-List" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="themeData" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;
&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-GB&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:DoNotOptimizeForBrowser/&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-fareast-language:EN-US;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;'mex07a.mlsrvr.com\windows7user_taglocity_&lt;/span&gt;'
rather than windows7user@taglocity.com which is what you need.&lt;br&gt;
&lt;br&gt;
- I think the initial desktop background shows a Japanese Fighting Fish, a creature
so aggressive towards it's fish-kin that it will damage itself even when seeing a
reflection of itself. There's a wordy analogy in there somewhere...&lt;br&gt;
&lt;br&gt;
- Everything worked on my 2 year old Dell laptop, i.e. drivers/odd OEM keys etc, so
driver-wise the beta is in good shape.&lt;br&gt;
&lt;br&gt;
I hope that helps, as ScottGu would say.&lt;br&gt;
&lt;br&gt;
David&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=fe245d86-3ca5-414d-af3c-186f11c62777" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=fe245d86-3ca5-414d-af3c-186f11c62777</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">News from the CES is that you can download
Windows 7 Beta 1 from MSDN subscriber downloads now, or wait till January 9th and
then anyone can download it via:<br /><br /><a href="http://www.microsoft.com/windows/windows-7">http://www.microsoft.com/windows/windows-7</a><br /><br />
Yes, the <a href="http://windowsteamblog.com/blogs/windowsvista/archive/2008/10/14/why-7.aspx">WinVer
is 6.1</a> but it seems to be a pretty pleasant update, and much more nicely tuned
that the initial Vista drops.<br /><br />
Also, if you see the error:<br /><br />
"Windows could not collect information for [OSImage] since the specified image file
[install.wim] does not exist."<br /><br />
..then it means you probably used an old DVD-RW you found behind the sofa, and your
laptop drive is having trouble reading it. If you write to a proper DVD-R then things
will be better.<br /><br />
- David<br /><br />
 <br /><br /><br /><br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=a6923bd6-d0c6-4df2-be29-72f44006949c" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Windows 7 Beta Download</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</link>
      <pubDate>Thu, 08 Jan 2009 06:27:20 GMT</pubDate>
      <description>News from the CES is that you can download Windows 7 Beta 1 from MSDN subscriber downloads now, or wait till January 9th and then anyone can download it via:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com/windows/windows-7"&gt;http://www.microsoft.com/windows/windows-7&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Yes, the &lt;a href="http://windowsteamblog.com/blogs/windowsvista/archive/2008/10/14/why-7.aspx"&gt;WinVer
is 6.1&lt;/a&gt; but it seems to be a pretty pleasant update, and much more nicely tuned
that the initial Vista drops.&lt;br&gt;
&lt;br&gt;
Also, if you see the error:&lt;br&gt;
&lt;br&gt;
"Windows could not collect information for [OSImage] since the specified image file
[install.wim] does not exist."&lt;br&gt;
&lt;br&gt;
..then it means you probably used an old DVD-RW you found behind the sofa, and your
laptop drive is having trouble reading it. If you write to a proper DVD-R then things
will be better.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=a6923bd6-d0c6-4df2-be29-72f44006949c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=a6923bd6-d0c6-4df2-be29-72f44006949c</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
The last Pattern and Practices Application Architecture Guide draft caught my eye
here, and I was <a href="http://www.from9till2.com/PermaLink.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9">reasonably
mean</a> about how poor the REST description bits were. 
<br /><br />
Within the hour of that post I was lasso'd into actually helping to improve it, rather
just idly mouthing off in a blog (oh, the humanity!) so thanks to <a href="http://shapingsoftware.com/">J.D.
Meier</a> and Rob Boucher I sent off some new wordy REST text. After Microsoft elves
had turned my and others contributions into real English, and reduced, all, my, Shatner-esque
unnecessary commas (and with their proper sense of hippopotomonstrosesquipedaliophobia
(look it up)), then the new guide has been release here.<br /><br /><a href="http://www.codeplex.com/AppArchGuide">http://www.codeplex.com/AppArchGuide</a><br /><br />
It's a fairly hefty tomb, (especially as many in IT have very thin arms) but I do
recommend a perusal of <a href="http://www.codeplex.com/AppArchGuide/Wiki/View.aspx?title=Chapter%2018%20-%20Services&amp;referringTitle=Home">'Part
IV - Archetypes'</a> section, or if you're new to software architecture then just
start with page 1 and work higher. Plus remember, if you see anything that you don't
like then let them know and they'll make it better.<br /><br />
- David<br /><br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=c8c20247-0f3d-4bf7-a12b-470d26c88e09" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>New App Arch Guide - Now With Less Coughing/Seizures</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</link>
      <pubDate>Thu, 01 Jan 2009 01:24:31 GMT</pubDate>
      <description>&lt;br&gt;
The last Pattern and Practices Application Architecture Guide draft caught my eye
here, and I was &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9"&gt;reasonably
mean&lt;/a&gt; about how poor the REST description bits were. 
&lt;br&gt;
&lt;br&gt;
Within the hour of that post I was lasso'd into actually helping to improve it, rather
just idly mouthing off in a blog (oh, the humanity!) so thanks to &lt;a href="http://shapingsoftware.com/"&gt;J.D.
Meier&lt;/a&gt; and Rob Boucher I sent off some new wordy REST text. After Microsoft elves
had turned my and others contributions into real English, and reduced, all, my, Shatner-esque
unnecessary commas (and with their proper sense of hippopotomonstrosesquipedaliophobia
(look it up)), then the new guide has been release here.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.codeplex.com/AppArchGuide"&gt;http://www.codeplex.com/AppArchGuide&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
It's a fairly hefty tomb, (especially as many in IT have very thin arms) but I do
recommend a perusal of &lt;a href="http://www.codeplex.com/AppArchGuide/Wiki/View.aspx?title=Chapter%2018%20-%20Services&amp;amp;referringTitle=Home"&gt;'Part
IV - Archetypes'&lt;/a&gt; section, or if you're new to software architecture then just
start with page 1 and work higher. Plus remember, if you see anything that you don't
like then let them know and they'll make it better.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=c8c20247-0f3d-4bf7-a12b-470d26c88e09" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=c8c20247-0f3d-4bf7-a12b-470d26c88e09</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
I was in the process of leaving a comment on Rocky's blog here: <a href="http://www.lhotka.net/weblog/WindowsAzureAndTheValueOfRestrictedPlatformsarchitectures.aspx">http://www.lhotka.net/weblog/WindowsAzureAndTheValueOfRestrictedPlatformsarchitectures.aspx</a> and
remembered I had this blog, and could use it as a much bigger comment box.<br /><br />
I'm not going to repeat what Rocky has written, but wanted to say that I find it pretty
interesting that Azure <i>is</i> a kind of restriction, in that it offers fewer choices
because of it's run-time and purpose for being. 
<br /><br />
Now, phrased like that it seems like a bad thing, and I tend to prefer the term 'built
on the <i>simplifying assumption</i>'(*). A simplifying assumption is where you can
take the one common way to acheive something and pare off the complexity to make it
more specific, but therefore also simpler to use. Ruby on Rails is the canonical example
of the simplifying assumption applied to building 'web apps that read/write to databases'.
It does this one thing very well, but is not so hot at being coerced into other things.<br /><br />
Azure is then a whole mix of convention, configuration, code, prescriptive design
patterns and data that will evolve over time. It's a domain specific run-time for
cloud hosted web apps. It can be considered a specific platform that's a subset of
something else because it's applied a simplifying assumption.<br /><br />
If it were just the case of a new API then we could learn it via looking at the types/operations
and perhaps cave-dive around with reflection to see what happens underneath. But where
it's the case of a whole bunch of config and conventions then I find it interesting
to consider how it would fit into the concept of a model.<br /><br />
An Azure run-time expressed via an Oslo model could bring these restrictions/well
trodden paths down to the development experience, in that the design experience could
be more productive as not being so divorced from the run-time environment. The model
and it's designers/language syntax could bring together all these seperate bits to
let us go from the laissez-faire attitude we currently have over the CLR/Libs/Config
to something simpler to use and less likely to be broke. It might also offer some
help in changing the app over time, which is usually where things tend to go wrong/expensive.<br /><br />
So rather than write a platform then maybe see if it's actually a suitable thing for
a 'model' first? I.e. perhaps <a href="http://gojko.net/2008/12/05/photo-of-the-day-it-looks-like-youre-writing-a-framework/">this
guy?</a>.<br /><br />
As a thought exercise I find it really interesting to think about Azure as being a
DSL/Model, because what we are essentially doing is the two-fold (a) deriving from
a base to become more specific and (b) keeping all the bits together to reduce the
chance of the higher abstraction leaking.<br /><br />
Interesting times.<br /><br />
- David<br /><br />
(*) If you dig around Azure then nothing seems simple at all (even the very simple),
but what I mean by simple here is the scope of the things you can do or trying to
acheive.<br /><br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=a1102eeb-0d46-4f85-a717-675bea3153a6" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Azure and Oslo Go Get A Restricted Coffee</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</link>
      <pubDate>Fri, 12 Dec 2008 19:30:49 GMT</pubDate>
      <description>&lt;br&gt;
I was in the process of leaving a comment on Rocky's blog here: &lt;a href="http://www.lhotka.net/weblog/WindowsAzureAndTheValueOfRestrictedPlatformsarchitectures.aspx"&gt;http://www.lhotka.net/weblog/WindowsAzureAndTheValueOfRestrictedPlatformsarchitectures.aspx&lt;/a&gt; and
remembered I had this blog, and could use it as a much bigger comment box.&lt;br&gt;
&lt;br&gt;
I'm not going to repeat what Rocky has written, but wanted to say that I find it pretty
interesting that Azure &lt;i&gt;is&lt;/i&gt; a kind of restriction, in that it offers fewer choices
because of it's run-time and purpose for being. 
&lt;br&gt;
&lt;br&gt;
Now, phrased like that it seems like a bad thing, and I tend to prefer the term 'built
on the &lt;i&gt;simplifying assumption&lt;/i&gt;'(*). A simplifying assumption is where you can
take the one common way to acheive something and pare off the complexity to make it
more specific, but therefore also simpler to use. Ruby on Rails is the canonical example
of the simplifying assumption applied to building 'web apps that read/write to databases'.
It does this one thing very well, but is not so hot at being coerced into other things.&lt;br&gt;
&lt;br&gt;
Azure is then a whole mix of convention, configuration, code, prescriptive design
patterns and data that will evolve over time. It's a domain specific run-time for
cloud hosted web apps. It can be considered a specific platform that's a subset of
something else because it's applied a simplifying assumption.&lt;br&gt;
&lt;br&gt;
If it were just the case of a new API then we could learn it via looking at the types/operations
and perhaps cave-dive around with reflection to see what happens underneath. But where
it's the case of a whole bunch of config and conventions then I find it interesting
to consider how it would fit into the concept of a model.&lt;br&gt;
&lt;br&gt;
An Azure run-time expressed via an Oslo model could bring these restrictions/well
trodden paths down to the development experience, in that the design experience could
be more productive as not being so divorced from the run-time environment. The model
and it's designers/language syntax could bring together all these seperate bits to
let us go from the laissez-faire attitude we currently have over the CLR/Libs/Config
to something simpler to use and less likely to be broke. It might also offer some
help in changing the app over time, which is usually where things tend to go wrong/expensive.&lt;br&gt;
&lt;br&gt;
So rather than write a platform then maybe see if it's actually a suitable thing for
a 'model' first? I.e. perhaps &lt;a href="http://gojko.net/2008/12/05/photo-of-the-day-it-looks-like-youre-writing-a-framework/"&gt;this
guy?&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
As a thought exercise I find it really interesting to think about Azure as being a
DSL/Model, because what we are essentially doing is the two-fold (a) deriving from
a base to become more specific and (b) keeping all the bits together to reduce the
chance of the higher abstraction leaking.&lt;br&gt;
&lt;br&gt;
Interesting times.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
(*) If you dig around Azure then nothing seems simple at all (even the very simple),
but what I mean by simple here is the scope of the things you can do or trying to
acheive.&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=a1102eeb-0d46-4f85-a717-675bea3153a6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=a1102eeb-0d46-4f85-a717-675bea3153a6</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Good kick off link (tip: read the paper)
here:<br /><a href="http://code.google.com/p/nativeclient/wiki/WhatToTest">http://code.google.com/p/nativeclient/wiki/WhatToTest</a><br /><br />
or the more friendly:<br /><br /><a href="http://google-code-updates.blogspot.com/2008/12/native-client-technology-for-running.html">http://google-code-updates.blogspot.com/2008/12/native-client-technology-for-running.html</a><br /><br />
My summary - how odd. Other quick thoughts and observations:<br /><br />
- Google Chrome gets it's own sandbox/runtime for x86 native applications. The reason
being speed.<br /><br />
- Seems to miss the whole 'but script/java/ruby/c# really are more dev productive'
angle. At the moment my copy of K&amp;R is keeping my second monitor level, and I'd
need a really good reason to move it now. Cross compilers anyone?<br /><br />
- Isolation through x86 memory/system interupt, limited RPC (between the Google Chrome
child process and the spawing DOM I guess) and the various trusted subsystems (storage
etc).<br /><br />
- POSIX never went out of style, and they plan to 'allow 46 system calls, and disallow
the rest.'<br /><br />
- People thought that Google was writing an O/S or that the browser was the O/S -
well, looks like everyone was right.<br /><br />
- I didn't enjoy the 86mb download of the bits, although that's the full dev meal-dev,
i.e. SDK. 
<br /><br />
- Being open source means that the concept of those inner/outer sandboxes is going
to be hammered to make sure it's secure - which is a good thing. This isn't a 'Do
you trust the publisher of this ActiveX' deal, it's a 'Hey, it's Google - we do secure
runtimes, relax'.<br /><br />
- The canonical example of Quake via a browser is shown again, I guess mainly because
it compiles under GCC.<br /><br />
- Those run-time libraries really had better be secure, or this is the worlds most
complicated and ambitious exploit ever. 
<br /><br />
- Unless other browsers copy the exact same child-process pattern for outer sandbox
isolation then this makes <strike>Google Chrome the only browser in town</strike> (Firefox
too apparently) to run this stuff.<br /><br />
- Be interesting to see what gets added as trusted libraries, i.e. I can spit feathers
if I have to do C/C++ but then doing a fancy UI without OpenGL etc. The trouble is
that there is an ever growing list of dependant sub systems that aren't trusted and
would need to be recompiled etc. I wonder what the UI story is?<br /><br />
I don't know if this is something strategic or just something that Google seems to
often thrown out against the wall every so often to see what shape it makes (because
they can). I would be surprised to see dev communities get around this unless we think
of better reasons to heat up the local CPU via the web. 
<br /><br />
- David<br /><br />
*Update regarding just Chrome. Missed that.<br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=61cf8a3c-9841-4f39-9967-e645ff780eb6" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Google Gone Native Client</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</link>
      <pubDate>Tue, 09 Dec 2008 06:45:12 GMT</pubDate>
      <description>Good kick off link (tip: read the paper) here:&lt;br&gt;
&lt;a href="http://code.google.com/p/nativeclient/wiki/WhatToTest"&gt;http://code.google.com/p/nativeclient/wiki/WhatToTest&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
or the more friendly:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://google-code-updates.blogspot.com/2008/12/native-client-technology-for-running.html"&gt;http://google-code-updates.blogspot.com/2008/12/native-client-technology-for-running.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
My summary - how odd. Other quick thoughts and observations:&lt;br&gt;
&lt;br&gt;
- Google Chrome gets it's own sandbox/runtime for x86 native applications. The reason
being speed.&lt;br&gt;
&lt;br&gt;
- Seems to miss the whole 'but script/java/ruby/c# really are more dev productive'
angle. At the moment my copy of K&amp;amp;R is keeping my second monitor level, and I'd
need a really good reason to move it now. Cross compilers anyone?&lt;br&gt;
&lt;br&gt;
- Isolation through x86 memory/system interupt, limited RPC (between the Google Chrome
child process and the spawing DOM I guess) and the various trusted subsystems (storage
etc).&lt;br&gt;
&lt;br&gt;
- POSIX never went out of style, and they plan to 'allow 46 system calls, and disallow
the rest.'&lt;br&gt;
&lt;br&gt;
- People thought that Google was writing an O/S or that the browser was the O/S -
well, looks like everyone was right.&lt;br&gt;
&lt;br&gt;
- I didn't enjoy the 86mb download of the bits, although that's the full dev meal-dev,
i.e. SDK. 
&lt;br&gt;
&lt;br&gt;
- Being open source means that the concept of those inner/outer sandboxes is going
to be hammered to make sure it's secure - which is a good thing. This isn't a 'Do
you trust the publisher of this ActiveX' deal, it's a 'Hey, it's Google - we do secure
runtimes, relax'.&lt;br&gt;
&lt;br&gt;
- The canonical example of Quake via a browser is shown again, I guess mainly because
it compiles under GCC.&lt;br&gt;
&lt;br&gt;
- Those run-time libraries really had better be secure, or this is the worlds most
complicated and ambitious exploit ever. 
&lt;br&gt;
&lt;br&gt;
- Unless other browsers copy the exact same child-process pattern for outer sandbox
isolation then this makes &lt;strike&gt;Google Chrome the only browser in town&lt;/strike&gt; (Firefox
too apparently) to run this stuff.&lt;br&gt;
&lt;br&gt;
- Be interesting to see what gets added as trusted libraries, i.e. I can spit feathers
if I have to do C/C++ but then doing a fancy UI without OpenGL etc. The trouble is
that there is an ever growing list of dependant sub systems that aren't trusted and
would need to be recompiled etc. I wonder what the UI story is?&lt;br&gt;
&lt;br&gt;
I don't know if this is something strategic or just something that Google seems to
often thrown out against the wall every so often to see what shape it makes (because
they can). I would be surprised to see dev communities get around this unless we think
of better reasons to heat up the local CPU via the web. 
&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
*Update regarding just Chrome. Missed that.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=61cf8a3c-9841-4f39-9967-e645ff780eb6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=61cf8a3c-9841-4f39-9967-e645ff780eb6</comments>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
A couple of weeks ago I scored a beta/ctp account onto Windows Azure. For those not
familiar with what's going on recently then the good news is that there is more competition
in the 'Solutions in the Cloud' space and, if you really don't know what's going on,
then the bad news is, well, your stocks are worth a lot less: Go long etc.<br /><br />
As is my emerging tradition, I'm not really the place to go for decent explanations
or exposition, so here's some useful links on what Windows Azure actually is and what
it is intended for:<br /><br /><a href="http://www.azure.com">http://www.azure.com</a><br />
 <br /><a href="http://msdn.microsoft.com/en-us/azure/cc994380.aspx">http://msdn.microsoft.com/en-us/azure/cc994380.aspx</a><br /><br /><a href="http://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.pdf">http://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.pdf</a> (The
obligatory decent David Chappell whitepaper(*))<br /><br />
I've been mulling writing something about it as I was surprised how often it come
up in recent conversations I've had. At the recent Microsoft <a href="http://architect-center.com/">SAF</a> conference
(more on that later) it seemed to dominate a lot of the <a href="http://www.infoq.com/interviews/Open-Spaces-Steven-List">Open
Space</a> sessions (which were very nicely nurtured by ThoughtWork's Steve 'Doc' List)
, with everyone curious about what's going to happen and how to best view these frameworks
in terms of their impact on solution architectures. How much of an impact the 'cloud'
is going to have seemed to be very much the Architecture-du-jour.<br /><br />
Here's my observations on the Azure story so far:<br /><br />
- Azure is a cloud framework/runtime, like Google App Engine but without all the snakes.
It's .NET all the way down. It's really not comparable to something at the 'utility
cloud computing' layer like Amazon EC2/S3 (where you get an image and can pretend
it's all your own computer) but something 'higher up' above the O/S where your apps
are 'hosted' by something with new rules/environment swim-lanes.<br /><br />
- The different parts that make up Azure are not quite settled down yet. My best guess
is that the recent PDC was used as an exciting 'forcing function' to get all the bits
to tell the same story. At the moment I get the impression it's more of a Christmas
get together for disparate aunts/uncles who are still at the awkward conversation
level of not having seen each other for years. The different storage stories of SQL
Services vs Azure storage not sharing the same fabric/comforter are currently making
for some particularly awkward pauses over the dry blobs/tables turkey.<br /><br />
- An unintended impact of the main storage strategy around Azure will be people looking
at non-relational stores and HTTP access. The REST architecture style fits pretty
well, as the ADO Data Services (nee: Astoria) really does drive home the entity/resource
equivalence. It will also get people to think about the whole static/tall&amp;thin/dynamic
split between their different types of data storage requirement, with a natural usage
of a BigTable and all its joys/restrictions. Perhaps the days of 'stuff it all into
the RDBMS' are waning, and no bad thing in my opinion.<br /><br />
- I think Azure's strongest selling point is the familiar Visual Studio developer
experience integration, i.e. how easy it is to New../F5 and be all up and running.
This provides an alternative to the .NET land people rather than down tools and go
learn Django. It also nicely contrasts with the bizarre 'API or the road' approach
that Amazon is taking, who seem to revel in the way they treat the EC2 configuration
setup like it's some sort of cheap MENSA test knock-off. As per the usual song-sheet
it seems Microsoft's plan to start with the bulk of the developer community as the
evangelists and work their way up/out/down. Don't knock it, as it usually seems to
work.<br /><br />
- We seem to have reached a tipping point between 'I'm scared about my data security'
vs 'My data center costs are too high'. I'm not sure when that happened, or actually
if it has happened yet for main-stream app developers. Obviously the Azure vision
is more on the tempting offer of being able to scale as much as you can cram money
into your e-commerce account, but I'm surprised not to see more early push back from
business solution/enterprises on saying 'that data can't live in the cloud'. A lot
of systems in Microsoft land are written as internal IT projects/systems so it'll
make for some interesting conversations regarding to storing it out in the scary cumulonimbus.
We can all tut and cluck and say that logical data security is this season's architecture
fashion but a lot of security rationale have been driven by emotion regardless of
how well you can argue the point.<br /><br />
- Biztalk being in bits and reused is something I've always <a href="http://www.from9till2.com/PermaLink.aspx?guid=7b3fb590-2d76-4496-867a-b4ceac210fc9">been
keen on</a> although I've yet to get into any depth with the new .NET Services. The
Access Control parts looks nice although I'm still unclear on the whole 'Live Id to
X509 to Windows Login' migration story. There seems to be a few moving parts to all
bring under one umbrella, i.e. workflow, 'bus' et al. The workflow currently seems
much more limited than if you host it yourself.<br /><br />
- Architect'ing for Azure feels like a 'green field' approach, in that I can't imagine
going to the trouble of taking an existing system and porting it across. The code
access security policy in the Azure CLR alone will probably be a surprise to most,
in that things like require elevation you wouldn't expect in your usual FullTrust
comfort zone. Probably the best comparison to get the idea of how this works is similar
to how you can host .NET code in SQL Server - in that the policy of the CLR is reduced
for security and things like binary serialization (with external touch-points) will
raise naughty (and obtuse) exceptions.<br /><br />
- While the theory of cloud computing frameworks in healthy competition sounds nice
I can't imagine being able to move my Azure apps to any other vendors run-time that
soon, nor can I picture Microsoft allowing you to host an Azure run-time in-house
either. It will probably be as competitive as the Google Apps market, i.e. your developer
skillsets will probably decide your path and once your in then you're in for the long
haul. It would be nice to see some sort of roadmap of parts to use in regards to either
self-hosting your app vs hosting it in Azure, as (especially as an ISV) the choice
is still very important.<br /><br />
- Sharepoint and Dynamics CRM seem to have been added onto the Azure roadmap Marketecture
powerpoint with the depth of integration being that they share the same colour on
the slide. It certainly seems like a decent vehicle to introduce more online Office
bits as reusable components - which love or hate it has been a strong story of the
desktop office suite. That's a big ol oil tanker to move around so I wouldn't hold
my breath but I guess it is coming eventually.<br /><br />
- Everyone wants to know <b>what the actual costs will be</b>, as that's the practical
driver for moving to some cloud. Everything else going on in terms of the roadmap
bits coming together and the where/when of the milestones isn't that important until
people can see the value proposition expressed in dollars per month. Given the huge
datacenters that Microsoft has built then they should be able to significantly undercut
the 'it's not holiday season spare capacity' Amazon ballpark of 720 CPU hours for
$100 US / month give or take storage. If it's a lot higher than that then I don't
really see the point.<br /><br />
Truth be told it's probably still a little too early for me to be seriously playing
with this stuff, especially as we've had to build a lot of it ourselves already. Big
picture wise I think it will be very interesting thought exercise to think about how
the runtime 'swim-lanes' of what it takes to make an Azure app can be captured in
an Oslo model (a potentially ideal expression of all that config/environment), or
even how the Live Mesh story fits in to the larger internet strategy. I guess the
next PDC, which I've heard is next year again (in soul-crushing LA again), will try
to bring all that together.<br /><br />
David<br /><br />
(*) Don't PM's write anymore?<br /><br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Azure I Saw A Puddy Cat</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</link>
      <pubDate>Tue, 02 Dec 2008 06:35:06 GMT</pubDate>
      <description>&lt;br&gt;
A couple of weeks ago I scored a beta/ctp account onto Windows Azure. For those not
familiar with what's going on recently then the good news is that there is more competition
in the 'Solutions in the Cloud' space and, if you really don't know what's going on,
then the bad news is, well, your stocks are worth a lot less: Go long etc.&lt;br&gt;
&lt;br&gt;
As is my emerging tradition, I'm not really the place to go for decent explanations
or exposition, so here's some useful links on what Windows Azure actually is and what
it is intended for:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.azure.com"&gt;http://www.azure.com&lt;/a&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/en-us/azure/cc994380.aspx"&gt;http://msdn.microsoft.com/en-us/azure/cc994380.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.pdf"&gt;http://download.microsoft.com/download/e/4/3/e43bb484-3b52-4fa8-a9f9-ec60a32954bc/Azure_Services_Platform.pdf&lt;/a&gt; (The
obligatory decent David Chappell whitepaper(*))&lt;br&gt;
&lt;br&gt;
I've been mulling writing something about it as I was surprised how often it come
up in recent conversations I've had. At the recent Microsoft &lt;a href="http://architect-center.com/"&gt;SAF&lt;/a&gt; conference
(more on that later) it seemed to dominate a lot of the &lt;a href="http://www.infoq.com/interviews/Open-Spaces-Steven-List"&gt;Open
Space&lt;/a&gt; sessions (which were very nicely nurtured by ThoughtWork's Steve 'Doc' List)
, with everyone curious about what's going to happen and how to best view these frameworks
in terms of their impact on solution architectures. How much of an impact the 'cloud'
is going to have seemed to be very much the Architecture-du-jour.&lt;br&gt;
&lt;br&gt;
Here's my observations on the Azure story so far:&lt;br&gt;
&lt;br&gt;
- Azure is a cloud framework/runtime, like Google App Engine but without all the snakes.
It's .NET all the way down. It's really not comparable to something at the 'utility
cloud computing' layer like Amazon EC2/S3 (where you get an image and can pretend
it's all your own computer) but something 'higher up' above the O/S where your apps
are 'hosted' by something with new rules/environment swim-lanes.&lt;br&gt;
&lt;br&gt;
- The different parts that make up Azure are not quite settled down yet. My best guess
is that the recent PDC was used as an exciting 'forcing function' to get all the bits
to tell the same story. At the moment I get the impression it's more of a Christmas
get together for disparate aunts/uncles who are still at the awkward conversation
level of not having seen each other for years. The different storage stories of SQL
Services vs Azure storage not sharing the same fabric/comforter are currently making
for some particularly awkward pauses over the dry blobs/tables turkey.&lt;br&gt;
&lt;br&gt;
- An unintended impact of the main storage strategy around Azure will be people looking
at non-relational stores and HTTP access. The REST architecture style fits pretty
well, as the ADO Data Services (nee: Astoria) really does drive home the entity/resource
equivalence. It will also get people to think about the whole static/tall&amp;amp;thin/dynamic
split between their different types of data storage requirement, with a natural usage
of a BigTable and all its joys/restrictions. Perhaps the days of 'stuff it all into
the RDBMS' are waning, and no bad thing in my opinion.&lt;br&gt;
&lt;br&gt;
- I think Azure's strongest selling point is the familiar Visual Studio developer
experience integration, i.e. how easy it is to New../F5 and be all up and running.
This provides an alternative to the .NET land people rather than down tools and go
learn Django. It also nicely contrasts with the bizarre 'API or the road' approach
that Amazon is taking, who seem to revel in the way they treat the EC2 configuration
setup like it's some sort of cheap MENSA test knock-off. As per the usual song-sheet
it seems Microsoft's plan to start with the bulk of the developer community as the
evangelists and work their way up/out/down. Don't knock it, as it usually seems to
work.&lt;br&gt;
&lt;br&gt;
- We seem to have reached a tipping point between 'I'm scared about my data security'
vs 'My data center costs are too high'. I'm not sure when that happened, or actually
if it has happened yet for main-stream app developers. Obviously the Azure vision
is more on the tempting offer of being able to scale as much as you can cram money
into your e-commerce account, but I'm surprised not to see more early push back from
business solution/enterprises on saying 'that data can't live in the cloud'. A lot
of systems in Microsoft land are written as internal IT projects/systems so it'll
make for some interesting conversations regarding to storing it out in the scary cumulonimbus.
We can all tut and cluck and say that logical data security is this season's architecture
fashion but a lot of security rationale have been driven by emotion regardless of
how well you can argue the point.&lt;br&gt;
&lt;br&gt;
- Biztalk being in bits and reused is something I've always &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=7b3fb590-2d76-4496-867a-b4ceac210fc9"&gt;been
keen on&lt;/a&gt; although I've yet to get into any depth with the new .NET Services. The
Access Control parts looks nice although I'm still unclear on the whole 'Live Id to
X509 to Windows Login' migration story. There seems to be a few moving parts to all
bring under one umbrella, i.e. workflow, 'bus' et al. The workflow currently seems
much more limited than if you host it yourself.&lt;br&gt;
&lt;br&gt;
- Architect'ing for Azure feels like a 'green field' approach, in that I can't imagine
going to the trouble of taking an existing system and porting it across. The code
access security policy in the Azure CLR alone will probably be a surprise to most,
in that things like require elevation you wouldn't expect in your usual FullTrust
comfort zone. Probably the best comparison to get the idea of how this works is similar
to how you can host .NET code in SQL Server - in that the policy of the CLR is reduced
for security and things like binary serialization (with external touch-points) will
raise naughty (and obtuse) exceptions.&lt;br&gt;
&lt;br&gt;
- While the theory of cloud computing frameworks in healthy competition sounds nice
I can't imagine being able to move my Azure apps to any other vendors run-time that
soon, nor can I picture Microsoft allowing you to host an Azure run-time in-house
either. It will probably be as competitive as the Google Apps market, i.e. your developer
skillsets will probably decide your path and once your in then you're in for the long
haul. It would be nice to see some sort of roadmap of parts to use in regards to either
self-hosting your app vs hosting it in Azure, as (especially as an ISV) the choice
is still very important.&lt;br&gt;
&lt;br&gt;
- Sharepoint and Dynamics CRM seem to have been added onto the Azure roadmap Marketecture
powerpoint with the depth of integration being that they share the same colour on
the slide. It certainly seems like a decent vehicle to introduce more online Office
bits as reusable components - which love or hate it has been a strong story of the
desktop office suite. That's a big ol oil tanker to move around so I wouldn't hold
my breath but I guess it is coming eventually.&lt;br&gt;
&lt;br&gt;
- Everyone wants to know &lt;b&gt;what the actual costs will be&lt;/b&gt;, as that's the practical
driver for moving to some cloud. Everything else going on in terms of the roadmap
bits coming together and the where/when of the milestones isn't that important until
people can see the value proposition expressed in dollars per month. Given the huge
datacenters that Microsoft has built then they should be able to significantly undercut
the 'it's not holiday season spare capacity' Amazon ballpark of 720 CPU hours for
$100 US / month give or take storage. If it's a lot higher than that then I don't
really see the point.&lt;br&gt;
&lt;br&gt;
Truth be told it's probably still a little too early for me to be seriously playing
with this stuff, especially as we've had to build a lot of it ourselves already. Big
picture wise I think it will be very interesting thought exercise to think about how
the runtime 'swim-lanes' of what it takes to make an Azure app can be captured in
an Oslo model (a potentially ideal expression of all that config/environment), or
even how the Live Mesh story fits in to the larger internet strategy. I guess the
next PDC, which I've heard is next year again (in soul-crushing LA again), will try
to bring all that together.&lt;br&gt;
&lt;br&gt;
David&lt;br&gt;
&lt;br&gt;
(*) Don't PM's write anymore?&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=b0f2b7ba-07c9-45d0-9f39-e68088b4ac9d</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">It would be borderline criminal if I didn't
mention this link in my blog:<br /><a temp_href=" http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/" href="%20http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/"><br /><a href="http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/">http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/</a></a><br /><br />
Thanks to all those on the Taglocity team - it was a fun beta period, and thanks as
well to all the beta users for the feedback too. We've opened up a public feedback
channel here, so get voting on next features:<br /><a temp_href=" http://feedback.taglocity.com" href="http://feedback.taglocity.com"><br />
http://feedback.taglocity.com</a><br /><br />
- David<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=629429c6-1149-45a7-ad34-23fd17e0eadb" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>TechCrunch and Taglocity 2.0 Release</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</link>
      <pubDate>Thu, 13 Nov 2008 17:13:11 GMT</pubDate>
      <description>It would be borderline criminal if I didn't mention this link in my blog:&lt;br&gt;
&lt;a temp_href=" http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/" href="%20http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/"&gt;
&lt;br&gt;
&lt;a href="http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/"&gt;http://www.techcrunch.com/2008/11/13/taglocity-aims-to-improve-microsoft-outlook-by-making-it-more-like-gmail/&lt;/a&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Thanks to all those on the Taglocity team - it was a fun beta period, and thanks as
well to all the beta users for the feedback too. We've opened up a public feedback
channel here, so get voting on next features:&lt;br&gt;
&lt;a temp_href=" http://feedback.taglocity.com" href="http://feedback.taglocity.com"&gt;
&lt;br&gt;
http://feedback.taglocity.com&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=629429c6-1149-45a7-ad34-23fd17e0eadb" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=629429c6-1149-45a7-ad34-23fd17e0eadb</comments>
      <category>Taglocity</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
        <a href="http://www.codeplex.com/AppArchGuide">http://www.codeplex.com/AppArchGuide</a> via <a href="http://blogs.msdn.com/dphill/archive/2008/11/12/are-we-firing-on-all-cylinders-or-what.aspx">here</a><br /><br />
Released recently, or rather a draft in beta (hey, if Gmail can be in beta for four
years then I guess it's ok for documents to be in beta too).<br /><br />
Generally very good, but I have to admit having a painful coughing fit / slight seizure
reading through this bit..<br /><br /><i>'•  How to choose REST vs. SOAP<br />
The Representational State Transfer (REST) approach suits stateless and/or synchronous
interaction with a service by implementing a uniform interface for all resources using
the standard GET, POST, PUT and DELETE commands. It is ideal for situation where you
want to use the Web as an open publishing medium, you want to support resource-oriented
user interaction, and you want proven scalability. It works best when you support
user-driven interaction through forms or you have only a few operations, or when you
are using mashups to implement composition for the UI. The Simple Object Access Protocol
(SOAP) approach suits asynchronous interactions that are activity-oriented or service-oriented,
and which provide a cross-enterprise communication medium. It works best when you
need a standardized approach to accessing resources, when you need to support orchestrated
event flows, or when you have a large number of operations. It also suits the use
of business processes that implement composition for the UI.' Page 22.</i><br /><br />
Why is it that people think that REST is limited in some ways in terms of the business
behaviour it can express? The exchange of hypermedia can be as complex a state machine
as you like, and as synch or asynch as you like. It's the verbs that are constrained
not the 'nouns' (that are modelled as resources). The contract isn't just the HTTP
operations, it's the URI and the returned Hypermedia all together. Since WSDL is basically
a transport description, you're actually no worse off in terms of automating the understanding
of what it all does. 
<br /><br />
While REST can't solve world hunger or be universally useful to all, I don't understand
why SOAP would have an architectural advantage here. There seems to be the sort of
hang-up about REST in the Big House in a similar way to how Unit Testing vs Test Driven
Development seemed to lag reality (well, my reality).<br /><br />
I think it's a lot to do with REST being an 'invasive' architectural style, in that
you really need to think about how your internal objects/components data is best modelled
as linked resources. This will probably go as far as changing your thoughts on your
object domain model. A lot of (bad) Service Orientated Architecture designs have played
with the concept of the services being a simple pass-through facade of the data and
operations of the underlying unchanged object model, which is why they tend to be
coupled tighter than a mosquito in a blood bank, and therefore make unwieldy/brittle
external interfaces.<br />
 <br />
Anyway, not trying to arbitrarily push someone's pint over, it's a draft and I'm just
providing feedback, so still do take a good read. There is some good stuff in there.<br /><br />
- David<p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>P&amp;P App Arch Guide 2.0</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</link>
      <pubDate>Thu, 13 Nov 2008 00:06:48 GMT</pubDate>
      <description>&lt;br&gt;
&lt;a href="http://www.codeplex.com/AppArchGuide"&gt;http://www.codeplex.com/AppArchGuide&lt;/a&gt; via &lt;a href="http://blogs.msdn.com/dphill/archive/2008/11/12/are-we-firing-on-all-cylinders-or-what.aspx"&gt;here&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Released recently, or rather a draft in beta (hey, if Gmail can be in beta for four
years then I guess it's ok for documents to be in beta too).&lt;br&gt;
&lt;br&gt;
Generally very good, but I have to admit having a painful coughing fit / slight seizure
reading through this bit..&lt;br&gt;
&lt;br&gt;
&lt;i&gt;'•&amp;nbsp; How to choose REST vs. SOAP&lt;br&gt;
The Representational State Transfer (REST) approach suits stateless and/or synchronous
interaction with a service by implementing a uniform interface for all resources using
the standard GET, POST, PUT and DELETE commands. It is ideal for situation where you
want to use the Web as an open publishing medium, you want to support resource-oriented
user interaction, and you want proven scalability. It works best when you support
user-driven interaction through forms or you have only a few operations, or when you
are using mashups to implement composition for the UI. The Simple Object Access Protocol
(SOAP) approach suits asynchronous interactions that are activity-oriented or service-oriented,
and which provide a cross-enterprise communication medium. It works best when you
need a standardized approach to accessing resources, when you need to support orchestrated
event flows, or when you have a large number of operations. It also suits the use
of business processes that implement composition for the UI.' Page 22.&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
Why is it that people think that REST is limited in some ways in terms of the business
behaviour it can express? The exchange of hypermedia can be as complex a state machine
as you like, and as synch or asynch as you like. It's the verbs that are constrained
not the 'nouns' (that are modelled as resources). The contract isn't just the HTTP
operations, it's the URI and the returned Hypermedia all together. Since WSDL is basically
a transport description, you're actually no worse off in terms of automating the understanding
of what it all does. 
&lt;br&gt;
&lt;br&gt;
While REST can't solve world hunger or be universally useful to all, I don't understand
why SOAP would have an architectural advantage here. There seems to be the sort of
hang-up about REST in the Big House in a similar way to how Unit Testing vs Test Driven
Development seemed to lag reality (well, my reality).&lt;br&gt;
&lt;br&gt;
I think it's a lot to do with REST being an 'invasive' architectural style, in that
you really need to think about how your internal objects/components data is best modelled
as linked resources. This will probably go as far as changing your thoughts on your
object domain model. A lot of (bad) Service Orientated Architecture designs have played
with the concept of the services being a simple pass-through facade of the data and
operations of the underlying unchanged object model, which is why they tend to be
coupled tighter than a mosquito in a blood bank, and therefore make unwieldy/brittle
external interfaces.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Anyway, not trying to arbitrarily push someone's pint over, it's a draft and I'm just
providing feedback, so still do take a good read. There is some good stuff in there.&lt;br&gt;
&lt;br&gt;
- David&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=3a9ba89b-d9c1-4adb-b162-2c014ffc52c9</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=029e433d-db41-41e9-bcbd-aafe677e1606</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=029e433d-db41-41e9-bcbd-aafe677e1606</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=029e433d-db41-41e9-bcbd-aafe677e1606</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=029e433d-db41-41e9-bcbd-aafe677e1606</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">After dwelling a little longer on the Model
Driven Development story behind Oslo, it's clearer now that the value proposition
is split between (a) being able to create a DSL for others to use and (b) using other
peoples' DSLs in your own application. As with most languages and frameworks the majority
of time should really be as a consumer of DSLs rather than as a maker/provider, as
in, the world doesn't all need us to be Anders Hejlsberg's (thank goodness). Using
domain models from ISV's, and especially Microsoft's as a platform provider, is where
the action will be for the majority of developers.<br /><br />
So this then leads to the interesting question of what the difference is between a
model and, say, an API or object model that you expose or use via your application.
Put another way, what does a model give you that you don't already have? Here's my
ideas (and after spending less than 3 hours on Oslo, you can place me in the idiot
camp for this stuff as I'm just thinking aloud here for your risible entertainment):<br /><br />
-'Super Reflection'. A consistent form of behaviour/config/data inspection over and
above just code reflection could help, in that as the 'model' gets larger and more
intertwined from what is already out there (perhaps you use other base models as your
starting point of a web app, directory service, storage etc) then navigation relationships
between namespaces becomes important. Having a querable repository may allow you to
grow and version in a more structured way, and present views on the model that are
currently harder to do via the straight manifest info in a bunch of assemblies. Think
of things like a system-wide mega <a href="http://www.hanselman.com/blog/ExitingTheZoneOfPainStaticAnalysisWithNDepend.aspx">Ndepend </a>style
tooling. Perhaps even some help with testing or 'proving' the system too.<br /><br />
- The interpretation of the DSL can take into account the 'meta model' of your specific
'consumer' configuration at run-time. Many APIs do this by a sort of config 'inversion
of control' as they can't assume how you 'stuff your meta/config trunk', but a framework
expecting models can have somewhere where this all lives and use it appropriately.
The glanced at examples of the mService and mWeb DSL's will be able to reduce a lot
of consumer code due to assumptions it can make about run-time configuration. With
the move to more declarative API's that blur the line between code &amp; meta-code
then a model seems like the logical next step.<br /><br />
- <a href="http://www.martinfowler.com/bliki/FluentInterface.html">Fluent interfaces</a> can
only go so far in C#/Java, in that you can get a point where subclassing becomes a
dangerously tempting option and extension methods all start having methods ending
with numbers like '2'. A full internal DSL might become a standard way to wrap up
what you need to become more specific on top of a base API. One advantage of a model
over a library is that you should be able to see the full 'source' for a model definition,
as it's part of your repository - but with the 'mystery opaque part' now really being
the interpretation of the DSL by it's run-time parser.<br /><br />
- Abstractions in the model potentially allow you to get further away the execution
context of how all the internal muggins really do work. In 'happy land' the abstraction
doesn't leak and that then lets the interpretation of the DSL make some smart choices
- which then gets us closer to an aspect orientated approach to architecture, where
the separations of concerns becomes easier to express as there is less change of unintended
leakage happening up in the sharp 'domain model' code end. If more code is expressed
at a higher level, and with an attitude of declarative intent, then the opportunity
for the commoditization of more of the non-functional aspects becomes increasingly
possible. Maybe.<br /><br />
- While <a href="http://douglaspurdy.com/2008/11/08/why-oslo/">'less code'</a> is
an admirable mission statement, the real cost of projects is the two bookend elephants
of the requirements phase and the maintenance/operation phases of software, at least
when judged by the money/per mistake ratio. Agile methods have tackled the requirements
side by stressing the importance of working code as soon as possible, and a model
can certainly fit with that 'fail fast' mentality probably better than just a straight
API and some tests. A visual DSL could really help here and get you working with real
data. Just like areas of Domain Driven Design allow you to talk in the language of
your customer, a DSL/Model should be able to express the problem a lot closer to the
domain a lot more interactively than just straight UML-as-Sketch (which is how I think
a lot of people model today). For operation/maintenance then, again, if the system
is expressed in a higher abstraction then monitoring/execution host systems have a
better chance of reuse.(*)<br /><br />
- With a decent beer in hand it's tempting to dream a little about how a Model Driven
Development could affect attitudes to testing, or rather turn Test Driven Development.
&lt;Digression&gt; I don't have hard data but I don't get the general feeling that
a Test-First philosophy isn't mainstream as yet, despite it producing better quality
code, and I assume it's because it's an 'invasive' technique. By that I mean you really
have to think about your factory/instantiation approaches to the provider/library
objects you need to mock for testing. Rhino/NMock and the ilk do really help but you
do have to be in the mindset of consciously being 'test first' when you write your
code. &lt;/Digression&gt; A model run-time could be an excellent opportunity to introduce
a .NET standard around mocking, in that your 'execution context' could be placed into
a test mode, although you to mock and stub at will. It's the ultimate IoC container.<br /><br />
- You are free to write a terrible model and an awful runtime execution of that model,
and make it far worse than a decent API. I imagine it's just like an API in that a
whole host of expertise and patterns/practices are going to need to be learnt. It
will be interesting to see how early mService/mWeb real-life examples go through any
growing pains of versioning and coupling and what help/advice people get for their
'walk around the tree'.<br /><br />
Ok, my time is up, back to <a href="http://www.Taglocity.com">work</a>. A lot of this
stuff I'm just imagineering about any future details in terms of the parsing of the
tree of the DSL's in the execution runtimes that are yet to be, so do stuff yourself
with grains of salt. It does seem like the time to go way beyond just reducing lines
of code and an opportunity to take all that's gone on post-OO and put a bow on it
though.<br /><br />
- David<br /><br />
(*) A lot of this impedance mismatch between Dev and Ops views was/is pioneered with
DSL's in VSTA, and Keith Short caused me a <a href="http://blogs.msdn.com/keith_short/archive/2008/11/06/oslo-and-the-dsl-toolkit.aspx">pang
of guilt</a> for my throw-away comment on any demise here. I did mean 'run over by
truck' in the context of eventual merging rather than going away all together.<p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=029e433d-db41-41e9-bcbd-aafe677e1606" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Oslo Model vs API</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=029e433d-db41-41e9-bcbd-aafe677e1606</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=029e433d-db41-41e9-bcbd-aafe677e1606</link>
      <pubDate>Mon, 10 Nov 2008 06:01:13 GMT</pubDate>
      <description>After dwelling a little longer on the Model Driven Development story behind Oslo, it's clearer now that the value proposition is split between (a) being able to create a DSL for others to use and (b) using other peoples' DSLs in your own application. As with most languages and frameworks the majority of time should really be as a consumer of DSLs rather than as a maker/provider, as in, the world doesn't all need us to be Anders Hejlsberg's (thank goodness). Using domain models from ISV's, and especially Microsoft's as a platform provider, is where the action will be for the majority of developers.&lt;br&gt;
&lt;br&gt;
So this then leads to the interesting question of what the difference is between a
model and, say, an API or object model that you expose or use via your application.
Put another way, what does a model give you that you don't already have? Here's my
ideas (and after spending less than 3 hours on Oslo, you can place me in the idiot
camp for this stuff as I'm just thinking aloud here for your risible entertainment):&lt;br&gt;
&lt;br&gt;
-'Super Reflection'. A consistent form of behaviour/config/data inspection over and
above just code reflection could help, in that as the 'model' gets larger and more
intertwined from what is already out there (perhaps you use other base models as your
starting point of a web app, directory service, storage etc) then navigation relationships
between namespaces becomes important. Having a querable repository may allow you to
grow and version in a more structured way, and present views on the model that are
currently harder to do via the straight manifest info in a bunch of assemblies. Think
of things like a system-wide mega &lt;a href="http://www.hanselman.com/blog/ExitingTheZoneOfPainStaticAnalysisWithNDepend.aspx"&gt;Ndepend &lt;/a&gt;style
tooling. Perhaps even some help with testing or 'proving' the system too.&lt;br&gt;
&lt;br&gt;
- The interpretation of the DSL can take into account the 'meta model' of your specific
'consumer' configuration at run-time. Many APIs do this by a sort of config 'inversion
of control' as they can't assume how you 'stuff your meta/config trunk', but a framework
expecting models can have somewhere where this all lives and use it appropriately.
The glanced at examples of the mService and mWeb DSL's will be able to reduce a lot
of consumer code due to assumptions it can make about run-time configuration. With
the move to more declarative API's that blur the line between code &amp;amp; meta-code
then a model seems like the logical next step.&lt;br&gt;
&lt;br&gt;
- &lt;a href="http://www.martinfowler.com/bliki/FluentInterface.html"&gt;Fluent interfaces&lt;/a&gt; can
only go so far in C#/Java, in that you can get a point where subclassing becomes a
dangerously tempting option and extension methods all start having methods ending
with numbers like '2'. A full internal DSL might become a standard way to wrap up
what you need to become more specific on top of a base API. One advantage of a model
over a library is that you should be able to see the full 'source' for a model definition,
as it's part of your repository - but with the 'mystery opaque part' now really being
the interpretation of the DSL by it's run-time parser.&lt;br&gt;
&lt;br&gt;
- Abstractions in the model potentially allow you to get further away the execution
context of how all the internal muggins really do work. In 'happy land' the abstraction
doesn't leak and that then lets the interpretation of the DSL make some smart choices
- which then gets us closer to an aspect orientated approach to architecture, where
the separations of concerns becomes easier to express as there is less change of unintended
leakage happening up in the sharp 'domain model' code end. If more code is expressed
at a higher level, and with an attitude of declarative intent, then the opportunity
for the commoditization of more of the non-functional aspects becomes increasingly
possible. Maybe.&lt;br&gt;
&lt;br&gt;
- While &lt;a href="http://douglaspurdy.com/2008/11/08/why-oslo/"&gt;'less code'&lt;/a&gt; is
an admirable mission statement, the real cost of projects is the two bookend elephants
of the requirements phase and the maintenance/operation phases of software, at least
when judged by the money/per mistake ratio. Agile methods have tackled the requirements
side by stressing the importance of working code as soon as possible, and a model
can certainly fit with that 'fail fast' mentality probably better than just a straight
API and some tests. A visual DSL could really help here and get you working with real
data. Just like areas of Domain Driven Design allow you to talk in the language of
your customer, a DSL/Model should be able to express the problem a lot closer to the
domain a lot more interactively than just straight UML-as-Sketch (which is how I think
a lot of people model today). For operation/maintenance then, again, if the system
is expressed in a higher abstraction then monitoring/execution host systems have a
better chance of reuse.(*)&lt;br&gt;
&lt;br&gt;
- With a decent beer in hand it's tempting to dream a little about how a Model Driven
Development could affect attitudes to testing, or rather turn Test Driven Development.
&amp;lt;Digression&amp;gt; I don't have hard data but I don't get the general feeling that
a Test-First philosophy isn't mainstream as yet, despite it producing better quality
code, and I assume it's because it's an 'invasive' technique. By that I mean you really
have to think about your factory/instantiation approaches to the provider/library
objects you need to mock for testing. Rhino/NMock and the ilk do really help but you
do have to be in the mindset of consciously being 'test first' when you write your
code. &amp;lt;/Digression&amp;gt; A model run-time could be an excellent opportunity to introduce
a .NET standard around mocking, in that your 'execution context' could be placed into
a test mode, although you to mock and stub at will. It's the ultimate IoC container.&lt;br&gt;
&lt;br&gt;
- You are free to write a terrible model and an awful runtime execution of that model,
and make it far worse than a decent API. I imagine it's just like an API in that a
whole host of expertise and patterns/practices are going to need to be learnt. It
will be interesting to see how early mService/mWeb real-life examples go through any
growing pains of versioning and coupling and what help/advice people get for their
'walk around the tree'.&lt;br&gt;
&lt;br&gt;
Ok, my time is up, back to &lt;a href="http://www.Taglocity.com"&gt;work&lt;/a&gt;. A lot of this
stuff I'm just imagineering about any future details in terms of the parsing of the
tree of the DSL's in the execution runtimes that are yet to be, so do stuff yourself
with grains of salt. It does seem like the time to go way beyond just reducing lines
of code and an opportunity to take all that's gone on post-OO and put a bow on it
though.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
(*) A lot of this impedance mismatch between Dev and Ops views was/is pioneered with
DSL's in VSTA, and Keith Short caused me a &lt;a href="http://blogs.msdn.com/keith_short/archive/2008/11/06/oslo-and-the-dsl-toolkit.aspx"&gt;pang
of guilt&lt;/a&gt; for my throw-away comment on any demise here. I did mean 'run over by
truck' in the context of eventual merging rather than going away all together.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=029e433d-db41-41e9-bcbd-aafe677e1606" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=029e433d-db41-41e9-bcbd-aafe677e1606</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.pluralsight.com/main/olt/courses.aspx">http://www.pluralsight.com/main/olt/courses.aspx</a>
        <br />
        <br />
A good idea by some of the best instructors in the business. What you lose out on
in terms of a classroom environment and one-on-one Q&amp;A, I think you can make back
up on in terms of the lack of increasingly annoying travel and the life/work disruption.<br /><br />
- David<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=0cc96279-c195-4fa9-8e72-26cec91eee50" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Pluralsight On-Demand</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</link>
      <pubDate>Wed, 05 Nov 2008 22:38:01 GMT</pubDate>
      <description>&lt;a href="http://www.pluralsight.com/main/olt/courses.aspx"&gt;http://www.pluralsight.com/main/olt/courses.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
A good idea by some of the best instructors in the business. What you lose out on
in terms of a classroom environment and one-on-one Q&amp;amp;A, I think you can make back
up on in terms of the lack of increasingly annoying travel and the life/work disruption.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=0cc96279-c195-4fa9-8e72-26cec91eee50" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=0cc96279-c195-4fa9-8e72-26cec91eee50</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=021edf81-6093-4920-a935-4b87d58ac0c3</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=021edf81-6093-4920-a935-4b87d58ac0c3</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=021edf81-6093-4920-a935-4b87d58ac0c3</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=021edf81-6093-4920-a935-4b87d58ac0c3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <i>(Note: If the Mighty Google has misdirected
you here regarding tips/info for a city in Norway then you're in the wrong place (not
unlike one of those wrong turns you see in movies featuring the Appalachian Mountains,
dungarees and axes). Having said that, I do really recommend going to see Vigeland
Park, the Holmenkollen ski jump, plus do take about $4 million dollars if you want
to buy a 16oz beer and one of those funny troll dolls)</i>
        <br />
        <br />
For me the most interesting sessions out of the recent PDC were the 'Olso' model driven
development ones. I'm not going to try to explain it all but, if you haven't got a
clue what I'm talking about, then here's some good places to go read all about it:<br /><br /><a href="http://www.microsoft.com/soa/products/oslo.aspx">http://www.microsoft.com/soa/products/oslo.aspx</a><br /><a href="http://douglaspurdy.com/">http://douglaspurdy.com/</a><br /><a href="http://www.martinfowler.com/bliki/Oslo.html">http://www.martinfowler.com/bliki/Oslo.html</a><br /><br />
If I had to describe it as succinctly as I could it would be something along the lines
of a 'Repository driven lisp super macros XLT'd into a DB, birthing a giant crazed
version of the Windows Registry metabase' - but that wouldn't be a particularly good
description. A more sober description would be something like 'Microsoft's model driven
development framework for domain specific languages, of which the first few examples
will be the framework itself, followed by other common Windows/.NET subsystems, (ASP.NET,
WF, WCF etc)'.<br /><br />
I've only played with the SDK for a couple of hours (here <a href="http://code.msdn.microsoft.com/oslo">http://code.msdn.microsoft.com/oslo</a>),
and it's obviously early days but the general concepts are fascinating. 
<br /><br />
To step back a bit, the overall aims are pretty lofty (in a good way) in that they
introduce a couple of important ideas that could potentially change how we develop
a lot of software. The goal is to bring up the level of abstraction of building complex
systems to something higher than a general purpose programming language, its configuration
and its data (all usually very separate things today). The combination of a self-describing,
queryable type system, a persistent image of data and metadata and a surface area
of libraries and runtimes described in a common format is pretty interesting. I've
been sold on the idea of putting a model as part of the development lifecycle for
quite some time now (<a href="http://www.from9till2.com/PermaLink.aspx?guid=f4733094-adbb-4265-a5c1-106eb73455d2">http://www.from9till2.com/PermaLink.aspx?guid=f4733094-adbb-4265-a5c1-106eb73455d2</a>)
and still feel it's the right track.<br /><br />
As I am short of time (hey, we all have to work) I thought I'd at least write down
some random first impressions, questions and notes for posterity (and especially as
my, um, <a href="http://www.from9till2.com/PermaLink.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1">last
post</a> got me some angry emails, I at least owe something here that isn't just failed
satire):<br /><br /><ul><li>
If you know Lisp, you'll recognize the whole DSL meme of defmacro, in that you can
redefine your programming language to encapsulate bigger and bigger subsystems of
common functionality as you go. The idea is that you can make a language more specific
(and therefore less generalized) by reusing the domain terms a lot closer to the business
at hand and have the productivity benefit of what Martin Fowler calls '<a href="http://martinfowler.com/articles/languageWorkbench.html">Language
Workbenches</a>'. Back in early 2005 I remember some excellent tapas as the potential
of these concepts were being bounced around <a href="http://www.from9till2.com/PermaLink.aspx?guid=6011a529-8914-4160-8f2f-0ce7b988310c">http://www.from9till2.com/PermaLink.aspx?guid=6011a529-8914-4160-8f2f-0ce7b988310c</a>.
My best guess is that the DSL Toolkit is research road kill in front of the big Oslo
truck and that VSTS Architecture Edition was just about a necessary cycle too early.</li></ul><ul><li>
If you know Smalltalk, you'll recognize the concept of a closeness between the dev-time
and the execution image (i.e. where your stack/data live). You literally program inside
your own image, although Quadrant (Oslo's Visual DSL editor/runtime) doesn't go the
full Smalltalk 'Window/Pane' steps of yet suggesting that perhaps the end-users user
experience is the exact same as the system-builders user experience.</li></ul><ul><li>
If you know Ruby/Rails then you'll know that declarative descriptions within a framework
tuned to productivity of common requirements/features can be a great sweet-spot. What
Oslo is trying to be is a way to make you your 'Rails' but for your own specific domain
or problem.</li></ul><ul><li>
Intellipad, the text DSL editor has taken about 45 of its chromosomes from Emacs.
You'll be C-x C-c'ing in no time.</li></ul><ul><li>
The goal of a unified metamodel for Windows is half terrifying and half awe-inspiring
in terms of breadth/chance of success. Oslo models provide the common translation
layer to work with very different things in a common way. To put this in to some sort
of normal person English, what this could potentially mean is that data stores like
Active Directory/Exchange, IIS Metabases, WCF/WF.service configurations, WMI, the
Registry, T-SQL DDL and even the topology of Bill Gate's head (phrenology model?)
could be stored in a common and unified way. Oslo becomes a translation layer, a metamodel
for navigating through DSL's on how your various 'application hosts' all need to work,
i.e. 'super reflection'. Your app becomes a model on top of those other foundation/base
models, allow you to succinctly just describe the differences and value that you bring
to the pot. Plus models can buy you a pony too(*).</li></ul><ul><li>
I imagine Office and the Navision/GreatPlains lumps make an excellent next target
for assimilation. The nirvana of the Excel/Access Genius User being able to extend
a larger system seems like the logical goal. The model driven children of InfoPath/Onenote
seem to one day beckon. Why just structure the data with XML when the behaviour/meta
have somewhere to live? Sharepoint seems like it could be next up strapped onto the
sacrificial model alter as the application host.</li></ul><ul><li>
Not sure how the current drive towards dynamic languages and the whole productivity
jam of 'Type, what type? Quack!' really fits into this mega-type world of Oslo. I
guess 'invoke' works on IronRuby too, but I trying to squint and picture this all
in the same bed. There is an instant gratification of dynamic languages that has to
be captured on the whole change/model/run cycle to really work.</li></ul><ul><li>
Very unsure how Live Mesh and the 'you're a server, I'm a server' future that the
other half of Microsoft talks about fits in with Oslo. 
<br /></li></ul><ul><li>
Talking of things I don't know: How would a distributed team develop a model? What's
the lifecycle of a model? How do I document/requirement it? How do I version it? What
about breaking my run-time engine dependencies? How can I unit test my model? Can
I 'prove' my model automatically? What is my 'starting point' for my own runtime engine,
is it a model? What do I do when I made the mistake of storing BigTable style data
in my model graph? Does my model have discretionary access control/security? How do
I 'invert control' of a model for mock testing? How do I relate model A to the new
model B? Questions, so many questions...</li></ul><ul><li>
I actually built a product used in the Oil Industry from something called 'Microsoft
Repository' that sat on top of SQL Server, kind of like a curious barnacle on a huge
cruise ship (at the time we sad-faced jokingly referred to it as Microsoft Suppository).
It even had a runtime/model used by the VB5 environment (CIM?, I think), that provided
a shared component framework for COM objects. It's amazing how things cycle around
(although the main lession I draw from that is that 'yes, you *can* have too much
metadata for a 133 MHz PC). One thing different today compared to back then (in 1996?)
is that .NET and its manifests has 'legitimized' types (well, compared to COM and
IInterface) and that Workflow/XAML have made strides to 'serialized' behaviour. MS
Repository back in the mid nineties hadn't gone through the declarative perspective
of describing systems, and the lines between data/config/behaviour were still very
strongly drawn, i.e. code was just code. This basically just left the Repository as
a data modelling exercise, not unlike what we recognize today as Entity Data Models. 
</li></ul><ul><li>
There are plenty of ways to fantasize about how Oslo could succeed, but it's just
as fun to work out how it could fail. I think it is a very wise move for Microsoft
to internally dogfood it so extensively by getting other teams to model a runtime
engine for their Windows/.NET domains. I do like them going first for real, as it
flushes out so much. One of the ways that could hurt adoption is it might be too much
of a paradigm change for developers (there are more non-PDC good dev/tech choices
out there today, this isn't like it was with HPUX vs Windows 3.11) and it could lack
traction for a long while, plus there is also the problem of 'technology fatigue'
where people might not even have got to WPF or XAML, let alone WCF and everything
else new in the toybox). Conversely it will be seen as 'too developer centric' for
those from the business analyst world more used to OMG MDA side of the fence (code?
Ugh!). Microsoft always seems to do do best driving from the developer mindshare up/outwards,
but with so many new things to play with it's a harder sell to get people's mental
buy-in.</li></ul><br />
So in summary, I think I like what I've seen so far, or put another way:<br /><br />
(defmacro Oslo (me) '(+ 1 ~me)) &gt;&gt; M.sql<br /><br />
- David<br /><br /><br />
(*) Pony not included.<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=021edf81-6093-4920-a935-4b87d58ac0c3" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>A Quick Waddle Around Oslo</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=021edf81-6093-4920-a935-4b87d58ac0c3</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=021edf81-6093-4920-a935-4b87d58ac0c3</link>
      <pubDate>Fri, 31 Oct 2008 03:08:33 GMT</pubDate>
      <description>&lt;i&gt;(Note: If the Mighty Google has misdirected you here regarding tips/info for a
city in Norway then you're in the wrong place (not unlike one of those wrong turns
you see in movies featuring the Appalachian Mountains, dungarees and axes). Having
said that, I do really recommend going to see Vigeland Park, the Holmenkollen ski
jump, plus do take about $4 million dollars if you want to buy a 16oz beer and one
of those funny troll dolls)&lt;/i&gt;
&lt;br&gt;
&lt;br&gt;
For me the most interesting sessions out of the recent PDC were the 'Olso' model driven
development ones. I'm not going to try to explain it all but, if you haven't got a
clue what I'm talking about, then here's some good places to go read all about it:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com/soa/products/oslo.aspx"&gt;http://www.microsoft.com/soa/products/oslo.aspx&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://douglaspurdy.com/"&gt;http://douglaspurdy.com/&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.martinfowler.com/bliki/Oslo.html"&gt;http://www.martinfowler.com/bliki/Oslo.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
If I had to describe it as succinctly as I could it would be something along the lines
of a 'Repository driven lisp super macros XLT'd into a DB, birthing a giant crazed
version of the Windows Registry metabase' - but that wouldn't be a particularly good
description. A more sober description would be something like 'Microsoft's model driven
development framework for domain specific languages, of which the first few examples
will be the framework itself, followed by other common Windows/.NET subsystems, (ASP.NET,
WF, WCF etc)'.&lt;br&gt;
&lt;br&gt;
I've only played with the SDK for a couple of hours (here &lt;a href="http://code.msdn.microsoft.com/oslo"&gt;http://code.msdn.microsoft.com/oslo&lt;/a&gt;),
and it's obviously early days but the general concepts are fascinating. 
&lt;br&gt;
&lt;br&gt;
To step back a bit, the overall aims are pretty lofty (in a good way) in that they
introduce a couple of important ideas that could potentially change how we develop
a lot of software. The goal is to bring up the level of abstraction of building complex
systems to something higher than a general purpose programming language, its configuration
and its data (all usually very separate things today). The combination of a self-describing,
queryable type system, a persistent image of data and metadata and a surface area
of libraries and runtimes described in a common format is pretty interesting. I've
been sold on the idea of putting a model as part of the development lifecycle for
quite some time now (&lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=f4733094-adbb-4265-a5c1-106eb73455d2"&gt;http://www.from9till2.com/PermaLink.aspx?guid=f4733094-adbb-4265-a5c1-106eb73455d2&lt;/a&gt;)
and still feel it's the right track.&lt;br&gt;
&lt;br&gt;
As I am short of time (hey, we all have to work) I thought I'd at least write down
some random first impressions, questions and notes for posterity (and especially as
my, um, &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1"&gt;last
post&lt;/a&gt; got me some angry emails, I at least owe something here that isn't just failed
satire):&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
If you know Lisp, you'll recognize the whole DSL meme of defmacro, in that you can
redefine your programming language to encapsulate bigger and bigger subsystems of
common functionality as you go. The idea is that you can make a language more specific
(and therefore less generalized) by reusing the domain terms a lot closer to the business
at hand and have the productivity benefit of what Martin Fowler calls '&lt;a href="http://martinfowler.com/articles/languageWorkbench.html"&gt;Language
Workbenches&lt;/a&gt;'. Back in early 2005 I remember some excellent tapas as the potential
of these concepts were being bounced around &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=6011a529-8914-4160-8f2f-0ce7b988310c"&gt;http://www.from9till2.com/PermaLink.aspx?guid=6011a529-8914-4160-8f2f-0ce7b988310c&lt;/a&gt;.
My best guess is that the DSL Toolkit is research road kill in front of the big Oslo
truck and that VSTS Architecture Edition was just about a necessary cycle too early.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
If you know Smalltalk, you'll recognize the concept of a closeness between the dev-time
and the execution image (i.e. where your stack/data live). You literally program inside
your own image, although Quadrant (Oslo's Visual DSL editor/runtime) doesn't go the
full Smalltalk 'Window/Pane' steps of yet suggesting that perhaps the end-users user
experience is the exact same as the system-builders user experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
If you know Ruby/Rails then you'll know that declarative descriptions within a framework
tuned to productivity of common requirements/features can be a great sweet-spot. What
Oslo is trying to be is a way to make you your 'Rails' but for your own specific domain
or problem.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Intellipad, the text DSL editor has taken about 45 of its chromosomes from Emacs.
You'll be C-x C-c'ing in no time.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
The goal of a unified metamodel for Windows is half terrifying and half awe-inspiring
in terms of breadth/chance of success. Oslo models provide the common translation
layer to work with very different things in a common way. To put this in to some sort
of normal person English, what this could potentially mean is that data stores like
Active Directory/Exchange, IIS Metabases, WCF/WF.service configurations, WMI, the
Registry, T-SQL DDL and even the topology of Bill Gate's head (phrenology model?)
could be stored in a common and unified way. Oslo becomes a translation layer, a metamodel
for navigating through DSL's on how your various 'application hosts' all need to work,
i.e. 'super reflection'. Your app becomes a model on top of those other foundation/base
models, allow you to succinctly just describe the differences and value that you bring
to the pot. Plus models can buy you a pony too(*).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
I imagine Office and the Navision/GreatPlains lumps make an excellent next target
for assimilation. The nirvana of the Excel/Access Genius User being able to extend
a larger system seems like the logical goal. The model driven children of InfoPath/Onenote
seem to one day beckon. Why just structure the data with XML when the behaviour/meta
have somewhere to live? Sharepoint seems like it could be next up strapped onto the
sacrificial model alter as the application host.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Not sure how the current drive towards dynamic languages and the whole productivity
jam of 'Type, what type? Quack!' really fits into this mega-type world of Oslo. I
guess 'invoke' works on IronRuby too, but I trying to squint and picture this all
in the same bed. There is an instant gratification of dynamic languages that has to
be captured on the whole change/model/run cycle to really work.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Very unsure how Live Mesh and the 'you're a server, I'm a server' future that the
other half of Microsoft talks about fits in with Oslo. 
&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Talking of things I don't know: How would a distributed team develop a model? What's
the lifecycle of a model? How do I document/requirement it? How do I version it? What
about breaking my run-time engine dependencies? How can I unit test my model? Can
I 'prove' my model automatically? What is my 'starting point' for my own runtime engine,
is it a model? What do I do when I made the mistake of storing BigTable style data
in my model graph? Does my model have discretionary access control/security? How do
I 'invert control' of a model for mock testing? How do I relate model A to the new
model B? Questions, so many questions...&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
I actually built a product used in the Oil Industry from something called 'Microsoft
Repository' that sat on top of SQL Server, kind of like a curious barnacle on a huge
cruise ship (at the time we sad-faced jokingly referred to it as Microsoft Suppository).
It even had a runtime/model used by the VB5 environment (CIM?, I think), that provided
a shared component framework for COM objects. It's amazing how things cycle around
(although the main lession I draw from that is that 'yes, you *can* have too much
metadata for a 133 MHz PC). One thing different today compared to back then (in 1996?)
is that .NET and its manifests has 'legitimized' types (well, compared to COM and
IInterface) and that Workflow/XAML have made strides to 'serialized' behaviour. MS
Repository back in the mid nineties hadn't gone through the declarative perspective
of describing systems, and the lines between data/config/behaviour were still very
strongly drawn, i.e. code was just code. This basically just left the Repository as
a data modelling exercise, not unlike what we recognize today as Entity Data Models. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
There are plenty of ways to fantasize about how Oslo could succeed, but it's just
as fun to work out how it could fail. I think it is a very wise move for Microsoft
to internally dogfood it so extensively by getting other teams to model a runtime
engine for their Windows/.NET domains. I do like them going first for real, as it
flushes out so much. One of the ways that could hurt adoption is it might be too much
of a paradigm change for developers (there are more non-PDC good dev/tech choices
out there today, this isn't like it was with HPUX vs Windows 3.11) and it could lack
traction for a long while, plus there is also the problem of 'technology fatigue'
where people might not even have got to WPF or XAML, let alone WCF and everything
else new in the toybox). Conversely it will be seen as 'too developer centric' for
those from the business analyst world more used to OMG MDA side of the fence (code?
Ugh!). Microsoft always seems to do do best driving from the developer mindshare up/outwards,
but with so many new things to play with it's a harder sell to get people's mental
buy-in.&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
So in summary, I think I like what I've seen so far, or put another way:&lt;br&gt;
&lt;br&gt;
(defmacro Oslo (me) '(+ 1 ~me)) &amp;gt;&amp;gt; M.sql&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
(*) Pony not included.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=021edf81-6093-4920-a935-4b87d58ac0c3" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=021edf81-6093-4920-a935-4b87d58ac0c3</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
"My friends, we here in the Big SOA coalition believe in freedom. Freedom from the
tyranny of HTTP, freedom to interpret object structures in any standard you wish and,
most of all, freedom from constraints.<br /><br />
It's long been our belief that REST and Roy Fielding has been palling around with
Hypermedia. He barely denies it. But, my friends, let me tell you that no washed up
PhD dissertation will dictate our request/response. He says it, in his own words -
he talks about 'constraints', he toys with the idea of a transfer of 'state'. My friends,
in these times of economic crisis we need less State involvement, not more. REST doesn't
understand. Let's give state transition back to the hard working people of the USA.
Enough with this hypermedia socialism.<br /><br />
So the good folks of America need to know more about this so called REST architectural
style. Who is REST, and why does he want to hurt Joe the Systems Integrator? REST
sounds dangerous. Joe the System Integrator realizes that this is not the time to
constrain the Big Vendors Integrators Dream - Joe knows that it's patriotic duty to
spread the complexity tax from the top down. My friends, the big vendors have committed
to a 10% reduction of SOA spread over the next 10 years - and we issue vouchers for
you to claim back your Advanced WSDL 2 certificate costs as a tax break. REST will
just raise your complexity and kick your dog. 
<br /><br />
Now our opponents just talk about the 'web', and hark back to the Hoover like days
of 'openness' - and as we know, that didn't work out so well or prevent the Great
.Com Depression now did it? Let's rebuild this system using small town pro-American
values of WS Policy, where the big interventionists of the web won't hold us back. 
<br /><br />
My friends, we're going to win this thing and we're going to fight for SOA. Stand
up and fight for the WS-Basic Profile 1.2. Stand up and fight for UDDI 3. Let's win
this thing with SOAP 1.2!<br /><br />
I leave REST to its own damning words, perhaps finally, at the very end, realizing
the wisdom of the true American RPC way:<br /><br />
'For the bureaucrat, the world is a mere object to be manipulated by him.' - Karl
Marx"<br /><br />
- David<br /><br />
(Oh come on - give me a break, I'm addicted to the terrible news channels over here
and can't wait for this all to be over...)<br /><br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=65d8d39e-bef1-4793-96c1-fa36827f98f1" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>REST is UnAmerican</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</link>
      <pubDate>Tue, 28 Oct 2008 23:08:38 GMT</pubDate>
      <description>&lt;br&gt;
"My friends, we here in the Big SOA coalition believe in freedom. Freedom from the
tyranny of HTTP, freedom to interpret object structures in any standard you wish and,
most of all, freedom from constraints.&lt;br&gt;
&lt;br&gt;
It's long been our belief that REST and Roy Fielding has been palling around with
Hypermedia. He barely denies it. But, my friends, let me tell you that no washed up
PhD dissertation will dictate our request/response. He says it, in his own words -
he talks about 'constraints', he toys with the idea of a transfer of 'state'. My friends,
in these times of economic crisis we need less State involvement, not more. REST doesn't
understand. Let's give state transition back to the hard working people of the USA.
Enough with this hypermedia socialism.&lt;br&gt;
&lt;br&gt;
So the good folks of America need to know more about this so called REST architectural
style. Who is REST, and why does he want to hurt Joe the Systems Integrator? REST
sounds dangerous. Joe the System Integrator realizes that this is not the time to
constrain the Big Vendors Integrators Dream - Joe knows that it's patriotic duty to
spread the complexity tax from the top down. My friends, the big vendors have committed
to a 10% reduction of SOA spread over the next 10 years - and we issue vouchers for
you to claim back your Advanced WSDL 2 certificate costs as a tax break. REST will
just raise your complexity and kick your dog. 
&lt;br&gt;
&lt;br&gt;
Now our opponents just talk about the 'web', and hark back to the Hoover like days
of 'openness' - and as we know, that didn't work out so well or prevent the Great
.Com Depression now did it? Let's rebuild this system using small town pro-American
values of WS Policy, where the big interventionists of the web won't hold us back. 
&lt;br&gt;
&lt;br&gt;
My friends, we're going to win this thing and we're going to fight for SOA. Stand
up and fight for the WS-Basic Profile 1.2. Stand up and fight for UDDI 3. Let's win
this thing with SOAP 1.2!&lt;br&gt;
&lt;br&gt;
I leave REST to its own damning words, perhaps finally, at the very end, realizing
the wisdom of the true American RPC way:&lt;br&gt;
&lt;br&gt;
'For the bureaucrat, the world is a mere object to be manipulated by him.' - Karl
Marx"&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
(Oh come on - give me a break, I'm addicted to the terrible news channels over here
and can't wait for this all to be over...)&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=65d8d39e-bef1-4793-96c1-fa36827f98f1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=65d8d39e-bef1-4793-96c1-fa36827f98f1</comments>
      <category>Architecture</category>
      <category>Blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=62547682-5794-4e3e-8a06-977325bd4029</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=62547682-5794-4e3e-8a06-977325bd4029</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=62547682-5794-4e3e-8a06-977325bd4029</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=62547682-5794-4e3e-8a06-977325bd4029</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I thought this was a great read from Joe Duffy:
</p>
        <p>
          <a href="http://www.bluebytesoftware.com/blog/PermaLink,guid,727ecd54-2ccf-4fa0-a0e0-f27ee125f7ae.aspx">http://www.bluebytesoftware.com/blog/PermaLink,guid,727ecd54-2ccf-4fa0-a0e0-f27ee125f7ae.aspx</a>
        </p>
        <p>
I found it while pacing up and down waiting for his book Concurrent Programming on
Windows: <a href="http://safari.oreilly.com/9780321434821/part01">http://safari.oreilly.com/9780321434821/part01</a> 
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=62547682-5794-4e3e-8a06-977325bd4029" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Concurrent Architect</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=62547682-5794-4e3e-8a06-977325bd4029</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=62547682-5794-4e3e-8a06-977325bd4029</link>
      <pubDate>Tue, 07 Oct 2008 18:55:25 GMT</pubDate>
      <description>&lt;p&gt;
I thought this was a great read from Joe Duffy:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.bluebytesoftware.com/blog/PermaLink,guid,727ecd54-2ccf-4fa0-a0e0-f27ee125f7ae.aspx"&gt;http://www.bluebytesoftware.com/blog/PermaLink,guid,727ecd54-2ccf-4fa0-a0e0-f27ee125f7ae.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I found it while pacing up and down waiting for his book Concurrent Programming on
Windows: &lt;a href="http://safari.oreilly.com/9780321434821/part01"&gt;http://safari.oreilly.com/9780321434821/part01&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=62547682-5794-4e3e-8a06-977325bd4029" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=62547682-5794-4e3e-8a06-977325bd4029</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Appropriately, there are two schools of thought on my new watch:
</p>
        <p>
0 - It's the stupidest, geeky, most ugly thing they have ever seen(*). The lights
make no sense, it looks like the face has fallen off and they can't tell the time
with it.
</p>
        <p>
1 - Reading the time in binary is a natural and wonderful thing, and it was the
best Father's Day present anyone could have wished for.
</p>
        <p>
So, what time is it?
</p>
        <p>
          <img src="http://www.from9till2.com/content/binary/BinaryWatch.png" />
        </p>
        <p>
I'll go for (1).
</p>
        <p>
- David
</p>
        <p>
(*) Hairy, freckled wrist not included.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3cc365a8-0a5d-4752-a977-3287c0aeca8a" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Binary Watch</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</link>
      <pubDate>Wed, 18 Jun 2008 05:55:13 GMT</pubDate>
      <description>&lt;p&gt;
Appropriately, there are two schools of thought on my new watch:
&lt;/p&gt;
&lt;p&gt;
0 - It's the stupidest, geeky, most ugly thing they have ever seen(*). The lights
make no sense, it looks like the face has fallen off and they can't tell the time
with it.
&lt;/p&gt;
&lt;p&gt;
1 - Reading the time in binary is a natural and&amp;nbsp;wonderful thing, and it was the
best Father's Day present anyone could have wished for.
&lt;/p&gt;
&lt;p&gt;
So, what time is it?
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.from9till2.com/content/binary/BinaryWatch.png"&gt;
&lt;/p&gt;
&lt;p&gt;
I'll go for (1).
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
(*) Hairy, freckled wrist not included.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3cc365a8-0a5d-4752-a977-3287c0aeca8a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=3cc365a8-0a5d-4752-a977-3287c0aeca8a</comments>
      <category>Blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I saw this today: <a href="http://www.boingboing.net/2008/06/17/lenslok-protodrm-fro.html">http://www.boingboing.net/2008/06/17/lenslok-protodrm-fro.html</a> and
the memories just flooded back.<br /><br />
It was my first software gig. I was 14 years old and worked on a 'games development
kit' for home computers (this was 1984) over a long hot summer. The kit was Forth-based
(wait - it gets better) interpreter, multi-platform and with a graphic's Domain Specific
Language (ho ho) - back then it seemed like a huge deal. 
<br /><br />
The company was called Oasis, and the product (tape based) was called 'White Lightning'.
I worked crouched over one of these: <a href="http://en.wikipedia.org/wiki/Amstrad_CPC">http://en.wikipedia.org/wiki/Amstrad_CPC</a>,
although at the time I wanted to work with the Sinclair QL port, with it's amazing
Motorola 68008 processor (the CPC shared Z80 with the ZX Spectrum, so assembly on
it wasn't a big jump for me). 
<br /><br />
I got paid around $2 an hour for Z80 assembly programming! Well, that and a lot of
sitting around reviewing 'user submissions'.<br /><br />
I even found a review from the old Sinclair Spectrum magazine Crash:<br /><a href="http://www.crashonline.org.uk/08/whitelig.htm">http://www.crashonline.org.uk/08/whitelig.htm</a><br /><br />
Did anyone buy it and therefore help me shovel more money into Lunar Lander? 
<br /><br />
- David<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=e96ba725-f941-4240-9591-7ac4d459a4f7" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>White Lightning</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</link>
      <pubDate>Wed, 18 Jun 2008 05:13:11 GMT</pubDate>
      <description>I saw this today: &lt;a href="http://www.boingboing.net/2008/06/17/lenslok-protodrm-fro.html"&gt;http://www.boingboing.net/2008/06/17/lenslok-protodrm-fro.html&lt;/a&gt; and
the memories just flooded back.&lt;br&gt;
&lt;br&gt;
It was my first software gig. I was 14 years old and worked on a 'games development
kit' for home computers (this was 1984) over a long hot summer. The kit was Forth-based
(wait - it gets better) interpreter, multi-platform and with a graphic's Domain Specific
Language (ho ho) - back then it seemed like a huge deal. 
&lt;br&gt;
&lt;br&gt;
The company was called Oasis, and the product (tape based) was called 'White Lightning'.
I worked crouched over one of these: &lt;a href="http://en.wikipedia.org/wiki/Amstrad_CPC"&gt;http://en.wikipedia.org/wiki/Amstrad_CPC&lt;/a&gt;,
although at the time I wanted to work with the Sinclair QL port, with it's amazing
Motorola 68008 processor (the CPC shared Z80 with the ZX Spectrum, so assembly on
it wasn't a big jump for me). 
&lt;br&gt;
&lt;br&gt;
I got paid around $2 an hour for Z80 assembly programming! Well, that and a lot of
sitting around reviewing 'user submissions'.&lt;br&gt;
&lt;br&gt;
I even found a review from the old Sinclair Spectrum magazine Crash:&lt;br&gt;
&lt;a href="http://www.crashonline.org.uk/08/whitelig.htm"&gt;http://www.crashonline.org.uk/08/whitelig.htm&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Did anyone buy it and therefore help me shovel more money into Lunar Lander? 
&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=e96ba725-f941-4240-9591-7ac4d459a4f7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=e96ba725-f941-4240-9591-7ac4d459a4f7</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">PDC 2000, I liked this one, because the
egg known as .NET got laid, and that's a yolk I dip my soldier in every day. (Note
to self: let's start this one again - going in a bad direction). I remember thinking
that slow garbage collection was for stupid people, and that C++ would be prised from
my cold dead hands etc. I was completely wrong.<br /><br />
PDC 2001. Hailstorm. myServices, Your Passport please, TabletPC's, rocket cars, tin
foil suits and a meal the size of a pill (with toy). I still have my Hailstorm book
spec keeping one of my doors open. It made a lot of sense to me at the time, but I
was completely wrong.<br /><br />
PDC 2003 was about Indigo, Avalon and the new WinFX bits (with appropriate lego looking
wallchart). I was absolutely smitten at first, but have seen adoption way slower than
I thought it would. We had men on the moon in 1969 too apparently. I still haven't
used my Notepad.exe wrapped onto a 3D rendered sphere, calling my SOAP1.2 'stockprice'
backend. Vista looked nice and ready too, but I was completely wrong.<br /><br />
PDC 2005 - I spoke on a panel that year, so obsessed about that and missed a few sessions.
It was the /real/ Vista one, pre trimming of the fat and post NT/XP reboot. WinFS
looked so interesting and very promising, but I was completely wrong.<br /><br />
PDC 2008 - <a href="http://www.microsoftpdc.com/Agenda/Sessions.aspx">http://www.microsoftpdc.com/Agenda/Sessions.aspx</a><br /><br />
Cloud, Mesh Operating Environment (MOE), Silverlight and Groucho. Going over my PDC
track history, then these are ceratain shoe-ins for instant success I feel...<br /><br />
- David<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3739a6c5-3066-45fd-ae7f-739ec81ff25e" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Caveat Emptor</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</link>
      <pubDate>Wed, 28 May 2008 11:24:01 GMT</pubDate>
      <description>PDC 2000, I liked this one, because the egg known as .NET got laid, and that's a yolk I dip my soldier in every day. (Note to self: let's start this one again - going in a bad direction). I remember thinking that slow garbage collection was for stupid people, and that C++ would be prised from my cold dead hands etc. I was completely wrong.&lt;br&gt;
&lt;br&gt;
PDC 2001. Hailstorm. myServices, Your Passport please, TabletPC's, rocket cars, tin
foil suits and a meal the size of a pill (with toy). I still have my Hailstorm book
spec keeping one of my doors open. It made a lot of sense to me at the time, but I
was completely wrong.&lt;br&gt;
&lt;br&gt;
PDC 2003 was about Indigo, Avalon and the new WinFX bits (with appropriate lego looking
wallchart). I was absolutely smitten at first, but have seen adoption way slower than
I thought it would. We had men on the moon in 1969 too apparently. I still haven't
used my Notepad.exe wrapped onto a 3D rendered sphere, calling my SOAP1.2 'stockprice'
backend. Vista looked nice and ready too, but I was completely wrong.&lt;br&gt;
&lt;br&gt;
PDC 2005 - I spoke on a panel that year, so obsessed about that and missed a few sessions.
It was the /real/ Vista one, pre trimming of the fat and post NT/XP reboot. WinFS
looked so interesting and very promising, but I was completely wrong.&lt;br&gt;
&lt;br&gt;
PDC 2008 - &lt;a href="http://www.microsoftpdc.com/Agenda/Sessions.aspx"&gt;http://www.microsoftpdc.com/Agenda/Sessions.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Cloud, Mesh Operating Environment (MOE), Silverlight and Groucho. Going over my PDC
track history, then these are ceratain shoe-ins for instant success I feel...&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3739a6c5-3066-45fd-ae7f-739ec81ff25e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=3739a6c5-3066-45fd-ae7f-739ec81ff25e</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <link href="/ftb/designmode.css" type="text/css" rel="stylesheet" />
        <p>
My favourite Microsoft blogger(*) Dare Obasanjo highlighted some interesting
points on the recent 'arm-chair architect' wreck-de-jour discussions on Twitter <a href="http://www.25hoursaday.com/weblog/2008/05/23/SomeThoughtsOnTwittersAvailabilityProblems.aspx">here</a>.
</p>
        <p>
While I don't have as many friends as Robert Scoble (thank goodness, imagine - so
many birthday cards to write, so many christenings to attend...) I do use Twitter
regularly and it's one of those apps where when it's down it is disproportionately
annoying - sort of like always remembering waiting in the longest line in the store,
you always remember the wait and never the time you just scoot through. They have
the worse PR problem of annoying the most vocal people on the net. Insert cliche about
double-edged sword about here &gt;&lt;.<br /></p>
        <p>
Having read through the usual critics (some of which seem to have a pretty wacky definition
of scale (hint: guys, it's not the thing you avoid standing on in the bathroom) it
did strike me that Twitter's potential problem is thinking they are a 'web app' -
something that pumps back pages/content via HTTP, hopefully without touching much
disk.
</p>
        <p>
While it's technically correct to call it out as a pub/sub system (Clemens <a href="http://vasters.com/clemensv/PermaLink,guid,8a95205f-d57a-4e15-b087-c91eb2753dbb.aspx">here</a>)
and certainly better than using a 'web page' server framework, even that is fraught
with a high chance of doing it wrong, or at least spending a lot of time doing it
'nearly right'. I've seen plenty of internal large scale pub-sub, but outside of banking/finanicals
it is still something that requires a lot of time and investment and is often a 'green
fields' fun/expensive dev. (Despite stuff like <a href="http://biztalk.net/">this</a> or
more likely for public web, maybe <a href="http://www.amazon.com/Simple-Queue-Service-home-page/b?ie=UTF8&amp;node=13584001">this</a>).<br /></p>
        <p>
No, it seems like Twitter might be best served by looking at something older and more
obvious. They could have built the entire thing out of SMTP/MIME and POP3 existing
infrastructure. 
<br /></p>
        <p>
Bear with me - as in the idea is don't take web blogging (HTTP/pages/disks) and try
to make it micro-content/frequency update-based service, but try going the other way
around and take an establish message queue framework (with addressing/identity) and
speed it up a bit. Micro-email, if you will. When you have 2000 followers (or 6),
a need for a persistence, relay-queue infrastruture and polling clients - well, this
isn't exactly a new internet problem?<br /></p>
        <p>
Of course this cat can be skinned in many ways (XMPP/Jabber, SMS etc), but you can't
argue that Gmail, Hotmail/Live et al have had <i>so</i> many years of infrastructure
experience and blooding in this problem space. For example, do you really think Google
Chat is that different from Google Mail in terms of underlying services that are chained
together, regardless of access protocol and clients?
</p>
        <p>
One wrinkle is that it is the simple API accessibility has made twitter what it is,
having a simple set of HTTP endpoints to go GET/POST. There isn't a reason though
that they still wouldn't have this from the start with an email internal infrastructure
- it's called an Integration Gateway pattern, and let's face it, the tweets are the
resources, and not particularly awkward domain objects to throw around.
</p>
        <p>
In <a href="http://www.taglocity.com">Taglocity</a> we ended up doing something similar
with out integration services, for example if I want to read an email message sent
to the 'Terazen' group then I can <a href="http://curl.haxx.se/docs/">curl </a>this
(authenticated, get your <a href="https://groups.taglocity.com/Login/CreateAccount.aspx">own</a>):
</p>
        <p>
        </p>
        <link rel="File-List" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
        <link rel="themeData" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
        <link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" />
        <!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-GB</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]-->
        <!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
        <style>
          <!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
        </style>
        <!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
        <a href="https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages/4033a99b-4b37-4e4b-afbf-a4db6fb6a03c">
          <span style="font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">
            <span style="color: windowtext;">https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages/4033a99b-4b37-4e4b-afbf-a4db6fb6a03c</span>  </span>
        </a>
        <p>
..where the group is a resource, and the message a navigatable resource below that.
We then return an RFC822 or HTML representation as required.
</p>
        <p>
Just to labour the point a bit, if you want to search all the messages in the group
you can use a A9 OpenSearch format like this (remember these are emails):
</p>
        <link rel="File-List" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" />
        <link rel="themeData" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" />
        <link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" />
        <!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-GB</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:DontVertAlignCellWithSp/>
   <w:DontBreakConstrainedForcedTables/>
   <w:DontVertAlignInTxbx/>
   <w:Word11KerningPairs/>
   <w:CachedColBalance/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]-->
        <!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
        <style>
          <!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
        </style>
        <!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
        <span style="font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">
          <a href="https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages?q=David&amp;tags=Research">
            <span style="color: windowtext;">https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages?q=David&amp;tags=Research</span>
          </a>
        </span>
        <p>
It's not rocket science, and it means you write less software by reusing infrastructure
that's been around longer than the average age of a Valley CEO.<br /></p>
        <p>
So, twitter isn't a website going slowly, it's micro-emails needing to be speeded
up. 
<br /></p>
        <p>
I shall shuffle around in my comfy armchair and throw that wee peanut in from the
gallery to see where it bounces. For what it's worth, I think twitter's success and
failures are practically actually nothing to do with technology, but then that wouldn't
give me much to write about, so let's pretend it's the tech.<br /></p>
        <p>
- David
</p>
        <p>
(*) I've probably pissed him off even with that description, which is why I like his
writing so much.<br /></p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=540aa6fa-ac16-49a6-be9a-686cffccc4f7" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Twitter - Use the Retroweb?</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</link>
      <pubDate>Fri, 23 May 2008 09:53:01 GMT</pubDate>
      <description>&lt;link href="/ftb/designmode.css" type="text/css" rel="stylesheet"&gt;
&lt;p&gt;
My favourite Microsoft blogger(*) Dare Obasanjo&amp;nbsp;highlighted some interesting
points on the recent 'arm-chair architect' wreck-de-jour discussions on Twitter &lt;a href="http://www.25hoursaday.com/weblog/2008/05/23/SomeThoughtsOnTwittersAvailabilityProblems.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
While I don't have as many friends as Robert Scoble (thank goodness, imagine - so
many birthday cards to write, so many christenings to attend...) I do use Twitter
regularly and it's one of those apps where when it's down it is disproportionately
annoying - sort of like always remembering waiting in the longest line in the store,
you always remember the wait and never the time you just scoot through. They have
the worse PR problem of annoying the most vocal people on the net. Insert cliche about
double-edged sword about here &amp;gt;&amp;lt;.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Having read through the usual critics (some of which seem to have a pretty wacky definition
of scale (hint: guys, it's not the thing you avoid standing on in the bathroom) it
did strike me that Twitter's potential problem is thinking they are a 'web app' -
something that pumps back pages/content via HTTP, hopefully without touching much
disk.
&lt;/p&gt;
&lt;p&gt;
While it's technically correct to call it out as a pub/sub system (Clemens &lt;a href="http://vasters.com/clemensv/PermaLink,guid,8a95205f-d57a-4e15-b087-c91eb2753dbb.aspx"&gt;here&lt;/a&gt;)
and certainly better than using a 'web page' server framework, even that is fraught
with a high chance of doing it wrong, or at least spending a lot of time doing it
'nearly right'. I've seen plenty of internal large scale pub-sub, but outside of banking/finanicals
it is still something that requires a lot of time and investment and is often a 'green
fields' fun/expensive dev. (Despite stuff like &lt;a href="http://biztalk.net/"&gt;this&lt;/a&gt; or
more likely for public web, maybe &lt;a href="http://www.amazon.com/Simple-Queue-Service-home-page/b?ie=UTF8&amp;amp;node=13584001"&gt;this&lt;/a&gt;).&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
No, it seems like Twitter might be best served by looking at something older and more
obvious. They could have built the entire thing out of SMTP/MIME and POP3 existing
infrastructure. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Bear with me - as in the idea is don't take web blogging (HTTP/pages/disks) and try
to make it micro-content/frequency update-based service, but try going the other way
around and take an establish message queue framework (with addressing/identity) and
speed it up a bit. Micro-email, if you will. When you have 2000 followers (or 6),
a need for a persistence, relay-queue infrastruture and polling clients - well, this
isn't exactly a new internet problem?&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Of course this cat can be skinned in many ways (XMPP/Jabber, SMS etc), but you can't
argue that Gmail, Hotmail/Live et al have had &lt;i&gt;so&lt;/i&gt; many years of infrastructure
experience and blooding in this problem space. For example, do you really think Google
Chat is that different from Google Mail in terms of underlying services that are chained
together, regardless of access protocol and clients?
&lt;/p&gt;
&lt;p&gt;
One wrinkle is that it is the simple API accessibility has made twitter what it is,
having a simple set of HTTP endpoints to go GET/POST. There isn't a reason though
that they still wouldn't have this from the start with an email internal infrastructure
- it's called an Integration Gateway pattern, and let's face it, the tweets are the
resources, and not particularly awkward domain objects to throw around.
&lt;/p&gt;
&lt;p&gt;
In &lt;a href="http://www.taglocity.com"&gt;Taglocity&lt;/a&gt; we ended up doing something similar
with out integration services, for example if I want to read an email message sent
to the 'Terazen' group then I can &lt;a href="http://curl.haxx.se/docs/"&gt;curl &lt;/a&gt;this
(authenticated, get your &lt;a href="https://groups.taglocity.com/Login/CreateAccount.aspx"&gt;own&lt;/a&gt;):
&lt;/p&gt;
&lt;p&gt;
&lt;link rel="File-List" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="themeData" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;
&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-GB&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;a href="https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages/4033a99b-4b37-4e4b-afbf-a4db6fb6a03c"&gt;&lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="color: windowtext;"&gt;https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages/4033a99b-4b37-4e4b-afbf-a4db6fb6a03c&lt;/span&gt; &amp;nbsp;&lt;/span&gt;&lt;/a&gt;&gt;
&lt;p&gt;
..where the group is a resource, and the message a navigatable resource below that.
We then return an RFC822 or HTML representation as required.
&lt;/p&gt;
&lt;p&gt;
Just to labour the point a bit, if you want to search all the messages in the group
you can use a A9 OpenSearch format like this (remember these are emails):
&lt;/p&gt;
&lt;link rel="File-List" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;
&lt;link rel="themeData" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;
&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CDavid%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-GB&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-noshow:yes;
	mso-style-priority:99;
	color:purple;
	mso-themecolor:followedhyperlink;
	text-decoration:underline;
	text-underline:single;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-size:10.0pt;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;span style="font-size: 11pt; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;a href="https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages?q=David&amp;amp;tags=Research"&gt;&lt;span style="color: windowtext;"&gt;https://groups.taglocity.com/taglocity.aspx/groups/terazen@groups.taglocity.com/messages?q=David&amp;amp;tags=Research&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;
&lt;p&gt;
It's not rocket science, and it means you write less software by reusing infrastructure
that's been around longer than the average age of a Valley CEO.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
So, twitter isn't a website going slowly, it's micro-emails needing to be speeded
up. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
I shall shuffle around in my comfy armchair and throw that wee peanut in from the
gallery to see where it bounces. For what it's worth, I think twitter's success and
failures are practically actually nothing to do with technology, but then that wouldn't
give me much to write about, so let's pretend it's the tech.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
(*) I've probably pissed him off even with that description, which is why I like his
writing so much.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=540aa6fa-ac16-49a6-be9a-686cffccc4f7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=540aa6fa-ac16-49a6-be9a-686cffccc4f7</comments>
      <category>Architecture</category>
      <category>Taglocity</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font size="2" color="#000080">[ Reader
Warning: If truth be told, I am not a big fan of corporate blogs. They tend to start
off deathly dull and gradually get worse from there. What I am going to do here is
just talk about what we've built, because I find it interesting, and then see what
happens next. For all official news and, let's be honest, better information, then
please go to the <a href="http://www.taglocity.com">website</a> proper ]</font>
        <br />
        <br />
        <br />
Bob writes an email. He sends it to Alice, but CC's Eve.<br /><br />
Alice writes something in reply, then hits 'Reply All'. Encouraged by already seeing
Eve on the CC list, she also adds Frank and Joe to the CC.<br /><br />
This is now what we would call a 'Hunking Great Dirty CC Snowball(*)', and they rarely
end well. At the very least we have more people not really wanting or needing to see
the message, and now all having to go do some work by scan reading it and hitting
delete or filing. It's a big part of the reason people get so much email at work. 
<br /><br />
So what to do?<br /><br />
For Taglocity 2.0 we provide two significant tweaks to this very common email scenario.<br /><br />
(1) We allow Bob to CC a 'Taglocity Group', that people who he works with all belong
to, rather than CC'ing them directly.<br /><br />
(2) Bob tags the message before he sends it, i.e. put the tags 'Tags: Project Acme,
Customer Issue, Support' on the message as a simple text line.<br /><br /><br />
This now allows for some very interesting things to happen:<br /><br />
- Eve, Frank and Joe can now *choose* if they want to see this message or not, in
that they don't necessarily have to have it in their inbox's. They can choose to 'pull'
this information based on (a) when they want to see it and (b) how they want to be
told about it.<br /><br />
- The tags on the message provide 'context'. This allows the message to be easily
found again, even by people not originally on the to/cc list.<br /><br />
- Bob only tagged the message originally because it helped him, in that he knows any
replies on the thread that come back will already be tagged for him. I know Bob and
he's naturally very selfish, often forgetting birthdays and anniversaries. Despite
all that, those three tags have helped at least four people so far.<br /><br />
We did these two things in Taglocity 2.0 because we wanted to 'tweak' the email scenario
rather than go make Bob (and Alice, and Eve etc) move the information out of email
completely and learn something new. While there are many new great places to put collaborative
information, the facts of business life today is that a lot of good stuff resides
in email. We are trying to evolve corporate email rather than replace it.<br /><br />
So, how does that sound? Are Bob, Alice and crew happier?<br /><br />
- David<br /><br />
Out of time for today, and I haven't talked about the other new stuff: the Semantic
Tags, the Subscriptions, the Invite process and security, the new Machine Learning
stuff, the Daily Digest View, the Shared Group Tags, the RSS/ATOM feeds on Searches,
the way our on-line service works, and all that other stuff. But I will try to soon.<br /><br />
(*) Actually, we don't, but we could if you like the phrase.<p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title> Recognize This Problem?</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</link>
      <pubDate>Wed, 07 May 2008 23:05:59 GMT</pubDate>
      <description>&lt;font size="2" color="#000080"&gt;[ Reader Warning: If truth be told, I am not a big
fan of corporate blogs. They tend to start off deathly dull and gradually get worse
from there. What I am going to do here is just talk about what we've built, because
I find it interesting, and then see what happens next. For all official news and,
let's be honest, better information, then please go to the &lt;a href="http://www.taglocity.com"&gt;website&lt;/a&gt; proper
]&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Bob writes an email. He sends it to Alice, but CC's Eve.&lt;br&gt;
&lt;br&gt;
Alice writes something in reply, then hits 'Reply All'. Encouraged by already seeing
Eve on the CC list, she also adds Frank and Joe to the CC.&lt;br&gt;
&lt;br&gt;
This is now what we would call a 'Hunking Great Dirty CC Snowball(*)', and they rarely
end well. At the very least we have more people not really wanting or needing to see
the message, and now all having to go do some work by scan reading it and hitting
delete or filing. It's a big part of the reason people get so much email at work. 
&lt;br&gt;
&lt;br&gt;
So what to do?&lt;br&gt;
&lt;br&gt;
For Taglocity 2.0 we provide two significant tweaks to this very common email scenario.&lt;br&gt;
&lt;br&gt;
(1) We allow Bob to CC a 'Taglocity Group', that people who he works with all belong
to, rather than CC'ing them directly.&lt;br&gt;
&lt;br&gt;
(2) Bob tags the message before he sends it, i.e. put the tags 'Tags: Project Acme,
Customer Issue, Support' on the message as a simple text line.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
This now allows for some very interesting things to happen:&lt;br&gt;
&lt;br&gt;
- Eve, Frank and Joe can now *choose* if they want to see this message or not, in
that they don't necessarily have to have it in their inbox's. They can choose to 'pull'
this information based on (a) when they want to see it and (b) how they want to be
told about it.&lt;br&gt;
&lt;br&gt;
- The tags on the message provide 'context'. This allows the message to be easily
found again, even by people not originally on the to/cc list.&lt;br&gt;
&lt;br&gt;
- Bob only tagged the message originally because it helped him, in that he knows any
replies on the thread that come back will already be tagged for him. I know Bob and
he's naturally very selfish, often forgetting birthdays and anniversaries. Despite
all that, those three tags have helped at least four people so far.&lt;br&gt;
&lt;br&gt;
We did these two things in Taglocity 2.0 because we wanted to 'tweak' the email scenario
rather than go make Bob (and Alice, and Eve etc) move the information out of email
completely and learn something new. While there are many new great places to put collaborative
information, the facts of business life today is that a lot of good stuff resides
in email. We are trying to evolve corporate email rather than replace it.&lt;br&gt;
&lt;br&gt;
So, how does that sound? Are Bob, Alice and crew happier?&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
Out of time for today, and I haven't talked about the other new stuff: the Semantic
Tags, the Subscriptions, the Invite process and security, the new Machine Learning
stuff, the Daily Digest View, the Shared Group Tags, the RSS/ATOM feeds on Searches,
the way our on-line service works, and all that other stuff. But I will try to soon.&lt;br&gt;
&lt;br&gt;
(*) Actually, we don't, but we could if you like the phrase.&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=e10b227b-0a5f-40ef-a0c8-2bf4e08f0fa4</comments>
      <category>Taglocity</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Somewhat exhausted now but wanted to underline
the occasion.<br /><br />
We've <a href="http://www.taglocity.com">launched</a> the 2.0.<br /><br />
I've got lots of things I want to explain and have a backlog of stuff to now post,
but that can wait a little bit longer.<br /><br />
If we've ever crossed paths before then feel free to email me if you want an invite
to get in and play. Being able to spell my last name will probably count enough too.
My email that I answer is now: david@ing.name<br /><br />
- David<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=c4e87aed-8824-4a81-9fc1-74987718c57f" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>(Exhale)</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</link>
      <pubDate>Thu, 01 May 2008 08:06:10 GMT</pubDate>
      <description>Somewhat exhausted now but wanted to underline the occasion.&lt;br&gt;
&lt;br&gt;
We've &lt;a href="http://www.taglocity.com"&gt;launched&lt;/a&gt; the 2.0.&lt;br&gt;
&lt;br&gt;
I've got lots of things I want to explain and have a backlog of stuff to now post,
but that can wait a little bit longer.&lt;br&gt;
&lt;br&gt;
If we've ever crossed paths before then feel free to email me if you want an invite
to get in and play. Being able to spell my last name will probably count enough too.
My email that I answer is now: david@ing.name&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=c4e87aed-8824-4a81-9fc1-74987718c57f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=c4e87aed-8824-4a81-9fc1-74987718c57f</comments>
      <category>Taglocity</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <style type="text/css"> 
           .altnetgeekcode
   {
	background: #ffffff url(http://www.hanselman.com/altnetgeekcode/altnetgeekcodesmall.png) no-repeat top center;
	border:1px solid black;
	width:160px;
	padding:2px;
	padding-top: 62px;
	font-weight:bold;
	font-size:11px;
text-align:center;
margin:auto;
}

.altnetgeekcode a
{
	text-decoration:none;
}
 </style>
        </p>
        <div class="altnetgeekcode">
          <a href="http://www.hanselman.com/altnetgeekcode/default.aspx?q=:IOC(S.):MOC(RM):TDD(NU):SCC(Svn):ORM(NH):XPP(++):DDD(+):JSL(MS):CIS(CC):GoF(++)">:<wbr />IOC(S.):<wbr />MOC(RM):<wbr />TDD(NU):<wbr />SCC(Svn):<wbr />ORM(NH):<wbr />XPP(++):<wbr />DDD(+):<wbr />JSL(MS):<wbr />CIS(CC):<wbr />GoF(++)</a>
        </div>
        <p>
via <a href="http://www.hanselman.com/altnetgeekcode/Default.aspx">this</a>.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=570e76ae-fd47-43d6-93f9-ef946dce2615" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>ALT.NET</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</link>
      <pubDate>Wed, 23 Apr 2008 18:40:12 GMT</pubDate>
      <description>&lt;p&gt;
&lt;style type="text/css"&gt; 
           .altnetgeekcode
   {
	background: #ffffff url(http://www.hanselman.com/altnetgeekcode/altnetgeekcodesmall.png) no-repeat top center;
	border:1px solid black;
	width:160px;
	padding:2px;
	padding-top: 62px;
	font-weight:bold;
	font-size:11px;
text-align:center;
margin:auto;
}

.altnetgeekcode a
{
	text-decoration:none;
}
 &lt;/style&gt;
&lt;div class="altnetgeekcode"&gt;&lt;a href="http://www.hanselman.com/altnetgeekcode/default.aspx?q=:IOC(S.):MOC(RM):TDD(NU):SCC(Svn):ORM(NH):XPP(++):DDD(+):JSL(MS):CIS(CC):GoF(++)"&gt;:&lt;wbr /&gt;IOC(S.):&lt;wbr /&gt;MOC(RM):&lt;wbr /&gt;TDD(NU):&lt;wbr /&gt;SCC(Svn):&lt;wbr /&gt;ORM(NH):&lt;wbr /&gt;XPP(++):&lt;wbr /&gt;DDD(+):&lt;wbr /&gt;JSL(MS):&lt;wbr /&gt;CIS(CC):&lt;wbr /&gt;GoF(++)&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
via &lt;a href="http://www.hanselman.com/altnetgeekcode/Default.aspx"&gt;this&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=570e76ae-fd47-43d6-93f9-ef946dce2615" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=570e76ae-fd47-43d6-93f9-ef946dce2615</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I've managed to ignore Facebook for so
long that it's finally becoming unfashionable. When everyone claims it's dead then
I'll update my page (or face or book, I don't know).<br /><br />
I've been waiting for Twitter to die for a while now but it's outlasting me. So I've <a href="http://twitter.com/david_ing">succumbed</a>.<br /><br />
- David<br />
 <br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=1fe8d9e3-8f9e-471d-b520-7b381d7e4091" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Cheep Cheep Cheep</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</link>
      <pubDate>Fri, 11 Apr 2008 18:22:31 GMT</pubDate>
      <description>I've managed to ignore Facebook for so long that it's finally becoming unfashionable. When everyone claims it's dead then I'll update my page (or face or book, I don't know).&lt;br&gt;
&lt;br&gt;
I've been waiting for Twitter to die for a while now but it's outlasting me. So I've &lt;a href="http://twitter.com/david_ing"&gt;succumbed&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=1fe8d9e3-8f9e-471d-b520-7b381d7e4091" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=1fe8d9e3-8f9e-471d-b520-7b381d7e4091</comments>
      <category>Blogging</category>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I read this today:<br /><br /><a href="http://radar.oreilly.com/archives/2008/01/markmail_opensource_search.html">http://radar.oreilly.com/archives/2008/01/markmail_opensource_search.html</a><br /><br />
..and felt pretty good. I hope there is a need out there for this type of app, and
reading Tim's reaction makes me happy.<br /><br />
I've been pretty quiet about what we are working on with <a href="http://www.Taglocity.com">Taglocity</a>(*)
but it's more about just being really busy doing it rather than any clever marketing
strategy or devious ramp-up scheme.<br /><br />
Part of me just wants to splurge out how far we've got to so far, while the other
part of me struggles with the fact that I've seen a few early-betas interest flail
away because they just weren't ready. It's a surprisingly difficult decision to know
when to go 'public'. There are worse problems to have in the world I imagine though.<br /><br />
Anyway, MarkMail looks very good, and it's fair to say what we are doing here is in
this general area too; although with a bit of a different slant of course.<br /><br />
I can't wait to get out there and tell all...<br /><br />
- David<br /><br />
(*) Our version 1.x is just a tiny part of what we are up to today. Extrapolate.<br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=d5782b91-7998-4b94-be9c-f6d7fd35de26" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>MarkMail and Me</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</link>
      <pubDate>Tue, 08 Jan 2008 10:58:11 GMT</pubDate>
      <description>I read this today:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://radar.oreilly.com/archives/2008/01/markmail_opensource_search.html"&gt;http://radar.oreilly.com/archives/2008/01/markmail_opensource_search.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
..and felt pretty good. I hope there is a need out there for this type of app, and
reading Tim's reaction makes me happy.&lt;br&gt;
&lt;br&gt;
I've been pretty quiet about what we are working on with &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;(*)
but it's more about just being really busy doing it rather than any clever marketing
strategy or devious ramp-up scheme.&lt;br&gt;
&lt;br&gt;
Part of me just wants to splurge out how far we've got to so far, while the other
part of me struggles with the fact that I've seen a few early-betas interest flail
away because they just weren't ready. It's a surprisingly difficult decision to know
when to go 'public'. There are worse problems to have in the world I imagine though.&lt;br&gt;
&lt;br&gt;
Anyway, MarkMail looks very good, and it's fair to say what we are doing here is in
this general area too; although with a bit of a different slant of course.&lt;br&gt;
&lt;br&gt;
I can't wait to get out there and tell all...&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
(*) Our version 1.x is just a tiny part of what we are up to today. Extrapolate.&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=d5782b91-7998-4b94-be9c-f6d7fd35de26" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=d5782b91-7998-4b94-be9c-f6d7fd35de26</comments>
      <category>Taglocity</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For those wondering why this blog didn't work for a while (on a few levels), then
here's an OddJob hat-tip to my site hoster:
</p>
        <p>
          <a href="http://news.bbc.co.uk/1/hi/technology/7131431.stm">http://news.bbc.co.uk/1/hi/technology/7131431.stm</a>
        </p>
        <p>
or just wallow in the full horror/news <a href="http://news.google.co.uk/news?tab=wn&amp;hl=en&amp;ned=&amp;q=fasthosts&amp;btnG=Search+News">here</a>.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3fb866cc-d6af-45bc-82bc-970fa691623b" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>FastHosts</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</link>
      <pubDate>Thu, 20 Dec 2007 15:05:29 GMT</pubDate>
      <description>&lt;p&gt;
For those wondering why this blog didn't work for a while (on a few levels), then
here's an OddJob hat-tip to my site hoster:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://news.bbc.co.uk/1/hi/technology/7131431.stm"&gt;http://news.bbc.co.uk/1/hi/technology/7131431.stm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
or just wallow in the full horror/news &lt;a href="http://news.google.co.uk/news?tab=wn&amp;amp;hl=en&amp;amp;ned=&amp;amp;q=fasthosts&amp;amp;btnG=Search+News"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3fb866cc-d6af-45bc-82bc-970fa691623b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=3fb866cc-d6af-45bc-82bc-970fa691623b</comments>
      <category>Blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Not listed as yet, but if you log in you'll see it.
</p>
        <p>
Visual Studio Team System 2008 Team Suite (x86 and x64 WoW) - DVD (English)
</p>
        <p>
          <a href="http://msdn2.microsoft.com/subscriptions">http://msdn2.microsoft.com/subscriptions</a>
        </p>
        <p>
Just taking it for quick drive around the block. I can't believe we've got
to 2008 already, doesn't seem that long ago I was throwing VS2005 SP1 against the
wall...
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=02b8eb65-1751-4668-bea8-a75c4202a1ab" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>VS 2008 RTM</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</link>
      <pubDate>Mon, 19 Nov 2007 12:40:16 GMT</pubDate>
      <description>&lt;p&gt;
Not listed as yet, but if you log in you'll see it.
&lt;/p&gt;
&lt;p&gt;
Visual Studio Team System 2008 Team Suite (x86 and x64 WoW) - DVD (English)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/subscriptions"&gt;http://msdn2.microsoft.com/subscriptions&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Just taking&amp;nbsp;it for&amp;nbsp;quick drive around the block. I can't believe we've got
to 2008 already, doesn't seem that long ago I was throwing VS2005 SP1 against the
wall...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=02b8eb65-1751-4668-bea8-a75c4202a1ab" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=02b8eb65-1751-4668-bea8-a75c4202a1ab</comments>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://searchsoa.techtarget.com/originalContent/0,289142,sid26_gci1280299,00.html">http://searchsoa.techtarget.com/originalContent/0,289142,sid26_gci1280299,00.html</a>
        <br />
        <br />
So many questions, so little time...<br /><br />
PS I was one of the few people cursed by <a href="http://">this</a> (as in shipped
a product that used it) so let's hope for more luck this time around...<br /><br />
Update: More information(*) on this stuff <a href="http://www.microsoft.com/soa/products/oslo.aspx">here</a>.
Tip: watch the video's with the sound off and then try to decide if (a) the camera
operator was very, very drunk or (b) the large investment in MDD tooling has left
no budget for a tripod or (c) this was filmed from the back of a trotting horse by
someone with an ear infection who has just got off a fairground ride.<br /><br />
(*) Your mileage may vary.<br /><p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=20f52d2f-a084-4b6a-88f1-71a7397a599f" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Microsoft Model Driven Development</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</link>
      <pubDate>Tue, 30 Oct 2007 19:17:21 GMT</pubDate>
      <description>&lt;a href="http://searchsoa.techtarget.com/originalContent/0,289142,sid26_gci1280299,00.html"&gt;http://searchsoa.techtarget.com/originalContent/0,289142,sid26_gci1280299,00.html&lt;/a&gt; 
&lt;br&gt;
&lt;br&gt;
So many questions, so little time...&lt;br&gt;
&lt;br&gt;
PS I was one of the few people cursed by &lt;a href="http://"&gt;this&lt;/a&gt; (as in shipped
a product that used it) so let's hope for more luck this time around...&lt;br&gt;
&lt;br&gt;
Update: More information(*) on this stuff &lt;a href="http://www.microsoft.com/soa/products/oslo.aspx"&gt;here&lt;/a&gt;.
Tip: watch the video's with the sound off and then try to decide if (a) the camera
operator was very, very drunk or (b) the large investment in MDD tooling has left
no budget for a tripod or (c) this was filmed from the back of a trotting horse by
someone with an ear infection who has just got off a fairground ride.&lt;br&gt;
&lt;br&gt;
(*) Your mileage may vary.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=20f52d2f-a084-4b6a-88f1-71a7397a599f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=20f52d2f-a084-4b6a-88f1-71a7397a599f</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=3211862e-4c01-4d39-b380-e713e8b344f1</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=3211862e-4c01-4d39-b380-e713e8b344f1</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=3211862e-4c01-4d39-b380-e713e8b344f1</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3211862e-4c01-4d39-b380-e713e8b344f1</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was down to speak at <a href="http://www.mseventseurope.com/TechEd/">TechEd Europe</a> this
year, and it's something I was really looking forward to, but unfortunately I've had
to pull out. 
</p>
        <p>
I had already rejigged my 'Software Architect's Failures' talk too - Carefully removed
all the jokes about the Europeans, that the people at TechEd Boston liked so much,
and replaced them with even funnier jokes about North Americans. But, alas it was
not to be this year.
</p>
        <p>
I feel bad about this (sorry Beat Sw. @ Microsoft!) but have an excellent reason.
</p>
        <p>
We are planning on moving back to Vancouver, BC, Canada that week (November 8th
ish) from the UK so the logistics were getting pretty hairy. As many times as I redrew
inverse PI map projections, I still couldn't make Barcelona line-up on the great circle
route between where we live now in the UK and BC. It's basically the wrong way, as
we need to go left and not right.
</p>
        <p>
So now the big Atlantic+ house move to look forward to for the third(!) time in seven
years. We've spent the last 3 years furiously buying UK electrical products that won't
work in Canada, as that's something we had to do after 3 years of furiously buying
electrical products in Canada that wouldn't work in the UK. Buy stock in ebay is my
advice.
</p>
        <p>
We have furniture that has been to the moon and back in distance, and would probably
qualify for airline 'elite' status if they counted container ships and the Montreal/Vancouver
train. I have over 3500 Ikea allen keys in my toolbox. In hire cars I now just drive
down the middle of the road, and the rules at red lights are beyond me. Mentally we
only really made it back to the longitude of somewhere like <a href="http://en.wikipedia.org/wiki/Tristan_da_Cunha">Tristan
da Cunha</a>, so it won't be too hard to adjust back to the North West.
</p>
        <p>
Our main reason for all this is that <a href="http://www.taglocity.com">Taglocity
2.0</a> development is going well so far, and I miss being with the main body of the
team based in Vancouver as we weave our way through adding the new bits and bobs.
Remote working is ok, but I've done it for a few years now and want to try something
else. All being on the same timezone will be good too, as I've turned into a late-night
skype Cinderella type, which long-term probably isn't healthy (plus the shoes really
hurt).
</p>
        <p>
Besides, Vancouver is a 'Good Place to Live(tm)' that we already know very well, so
this is just one more reason to rid ourselves of all the crap we've acquired. At a
lot of levels this moving around the world every 3 years probably doesn't make any
sense, but we're not that bothered about those levels.
</p>
        <p>
See you all in Vancouver. Again.
</p>
        <p>
- David
</p>
        <p>
PS This was never really a blog anyway, so the lack of posting is probably going to
be enhanced by a further period of extra lackness.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3211862e-4c01-4d39-b380-e713e8b344f1" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>TechEd Europe - Barcelona, Replaced by Vancouver</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=3211862e-4c01-4d39-b380-e713e8b344f1</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=3211862e-4c01-4d39-b380-e713e8b344f1</link>
      <pubDate>Tue, 25 Sep 2007 13:46:37 GMT</pubDate>
      <description>&lt;p&gt;
I was down to speak at &lt;a href="http://www.mseventseurope.com/TechEd/"&gt;TechEd Europe&lt;/a&gt; this
year, and it's something I was really looking forward to, but unfortunately I've had
to pull out. 
&lt;/p&gt;
&lt;p&gt;
I had already rejigged my 'Software Architect's Failures' talk too - Carefully removed
all the jokes about the Europeans, that the people at TechEd Boston liked so much,
and replaced them with even funnier jokes about North Americans. But, alas it was
not to be this year.
&lt;/p&gt;
&lt;p&gt;
I feel bad about this (sorry Beat Sw. @ Microsoft!) but have an excellent reason.
&lt;/p&gt;
&lt;p&gt;
We are planning on moving back to Vancouver, BC, Canada&amp;nbsp;that week (November 8th
ish) from the UK so the logistics were getting pretty hairy. As many times as I redrew
inverse PI map projections, I still couldn't make Barcelona line-up on the great circle
route between where we live now in the UK and BC. It's basically the wrong way, as
we need to go left and not right.
&lt;/p&gt;
&lt;p&gt;
So now the big Atlantic+ house move to look forward to for the third(!) time in seven
years. We've spent the last 3 years furiously buying UK electrical products that won't
work in Canada, as that's something we had to do after 3 years of furiously buying
electrical products in Canada that wouldn't work in the UK. Buy stock in ebay is my
advice.
&lt;/p&gt;
&lt;p&gt;
We have furniture that has been to the moon and back in distance, and would probably
qualify for airline 'elite' status if they counted container ships and the Montreal/Vancouver
train. I have over 3500 Ikea allen keys in my toolbox. In hire cars I now just drive
down the middle of the road, and the rules at red lights are beyond me. Mentally we
only really made it back to the longitude of somewhere like&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Tristan_da_Cunha"&gt;Tristan
da Cunha&lt;/a&gt;, so it won't be too hard to adjust back to the North West.
&lt;/p&gt;
&lt;p&gt;
Our main reason for all this is that &lt;a href="http://www.taglocity.com"&gt;Taglocity
2.0&lt;/a&gt; development is going well so far, and I miss being with the main body of the
team based in Vancouver as we weave our way through adding the new bits and bobs.
Remote working is ok, but I've done it for a few years now and want to try something
else. All being on the same timezone will be good too, as I've turned into a late-night
skype Cinderella type, which long-term probably isn't healthy (plus the shoes really
hurt).
&lt;/p&gt;
&lt;p&gt;
Besides, Vancouver is a 'Good Place to Live(tm)' that we already know very well, so
this is just one more reason to rid ourselves of all the crap we've acquired. At a
lot of levels this moving around the world every 3 years probably doesn't make any
sense, but we're not that bothered about those levels.
&lt;/p&gt;
&lt;p&gt;
See you all in Vancouver. Again.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
PS This was never really a blog anyway, so the lack of posting is probably going to
be enhanced by a further period of extra lackness.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3211862e-4c01-4d39-b380-e713e8b344f1" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=3211862e-4c01-4d39-b380-e713e8b344f1</comments>
      <category>Architecture</category>
      <category>Blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">We've just spent a great couple of weeks
touring Scotland - if you ever get the chance I really recommend it. As someone actually
from the UK, but with some years away from home, I've always wanted to take the time
to go take a proper look at somewhere closer to where we are from. I've visited Aberdeen,
Glasgow etc for work, but never had a good look around, especially the green bumpy
bits.<br /><br />
One thing of note on the trip was that I made my usual classic mistake of thinking
that technology could in some small way help the planning of our complex road journey,
i.e. GPS. I just love the whole idea of sat nav - there is something about all that
trigonometry  and timestamps whizzing around in that one-way scalability that
makes me go giddy at my tech-loving knees. I'll gladly stop people in the street and
start waving my arms around in vague triangles while pointing at my watch, such is
my enthusiasm for it's all of it's glorious geekiness.<br /><br />
So off I clicked to Amazon.co.uk, a day or two before the trip, with that usual optimistic
'what could possibly go wrong' glint in my eye and picked up a TomTom GPS for about
150 quid. They used to be worth much more, so in a perverse reverse logic I can rationalize
it as a bargain 'must have' buy. It arrived just hours before the trip and I did the
usual manic fiddle when unboxing - like a five year old on Christmas morning, delighted
that it could tell me where I was sat (the one thing I already knew). 
<br /><br />
I do love my gadgets, so I spent some time I didn't have randomly downloading lots
of 3rd party points of interest to it (we NEED to know where every Bird Sanctuary
in the country is, we NEED to know exact location of every single church in the UK
etc etc), redefining the voices, colour schemes and trawling old newsgroup posts with
people that have decoded the proprietary protocol. Rather than pack suitcases properly
(Mrs From9till2 dies inside a little everytime I do this) I tried sending semi-random
text commands at it via it's USB link. The high-point of this was my desktop computer
actually got to know where it was. So, at this point you shouldn't really believe
me, but I can honestly say I didn't break it.<br /><br />
Well, it kind of broke. The wee SD card that holds the maps and software was broken.
A quick FAT disk check showed it having more file corruption than a local politician
who's son-in-law is the local police chief.<br /><br />
With no time to get it sorted, I just stuffed it in the laptop bag (Hit: Charisma
1--) and we headed for the airport for the short flight. After the usual Dickensian
horrors of budget air travel (the flights cost 1p, with £60 tax, plus we held our
breath during the trip to make it all CO2 neutral) I arrived at the Car Hire place,
got given the wrong type of car (RE: Car Rental sketch viz a viz Seinfeld of 'taking'
reservations is far easier than 'holding' reservations) and gave the suction cup a
bug lick and plopped the sucker on the windscreen.<br /><br />
It just sat there in the rental car park blinking it's one big eye at us, constantly
rebooting itself. It did once start-up long enough to squeak 'you have arrive at you
destination', and then placed us 550 miles further south than we actually were, about
20 miles off-shore, completely immersed in water. I could tell the Car Hire guy was
really impressed with my tech toy. I weaved out of the carpark the wrong way, windscreen
wipers at hire speed and in the wrong gear.<br /><br />
Driving with it on was incredibly dangerous but strangely compelling. On good days
it would work long enough to actually give us directions, but in a vaguely malicious,
and quite possibly evil, kind of way. Once it tried to get me to turn off a highway
junction that didn't exist at high speed, another time it required me to leap 500
feet in the air to reach a turning onto a bridge overpass. It became a running family
joke that we'd always arrive in some deserted industrial waste-land with 'Unnamed
Road' marked, and the jovial 'You have reached your destination' announced at the
ideal comedic timing. The kids would chorus in with a pantomime response when it tried
it tried to force us off a non-existent round-about ('Turn left now' - 'No, we won't'
came the cries from the back, 'Bear Left' - 'Argh, a bear to the left, haha' etc.).
It joined the family like a mad dotty relative that everyone felt fond of but no-one
really listened to.<br /><br />
It was so disconcerting to have it in my view, I can't believe how badly I drove.
If there are any nervous or traumatized people in Scotland who watched me zigzag the
wrong way through countless Glasgow one-way streets then do accept my apologies -
Tom's power of suggestion (until I learnt it was actually evil and trying to kill
us) was convincing: 'Turn Left' - 'But, but, it's a One-Way' - 'Turn Left NOW' - 'Eyes
!= Ears, must make decision' - 'When it is safe to do so, please turn around', Screech
etc.<br /><br />
So, of course I realize the map data is out of date and flawed, and yes I know that
the unit wasn't working properly and should be repaired, but here's my car sat nav
mini-review anyway:<br /><br />
If you know where you are going then Sat Nav is great, if not, then not so much. It's
like a drunk friend riding shotgun that has been to where you need to get to before,
but perhaps only a very long time ago (Wow, they built a school there - this was all
green before). If you have a good (or old) map then you can simulate the experience
by cutting out a stamp shaped hole in a piece of card and squint at that whilst driving.<br /><br />
Tom is now safely now back in the bosom of it's original Amazon packaging, where hopefully
it will reach its original destination nice and safely.<br /><br />
- David<p></p><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Sat Nav No</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</link>
      <pubDate>Mon, 03 Sep 2007 20:53:05 GMT</pubDate>
      <description>We've just spent a great couple of weeks touring Scotland - if you ever get the chance I really recommend it. As someone actually from the UK, but with some years away from home, I've always wanted to take the time to go take a proper look at somewhere closer to where we are from. I've visited Aberdeen, Glasgow etc for work, but never had a good look around, especially the green bumpy bits.&lt;br&gt;
&lt;br&gt;
One thing of note on the trip was that I made my usual classic mistake of thinking
that technology could in some small way help the planning of our complex road journey,
i.e. GPS. I just love the whole idea of sat nav - there is something about all that
trigonometry&amp;nbsp; and timestamps whizzing around in that one-way scalability that
makes me go giddy at my tech-loving knees. I'll gladly stop people in the street and
start waving my arms around in vague triangles while pointing at my watch, such is
my enthusiasm for it's all of it's glorious geekiness.&lt;br&gt;
&lt;br&gt;
So off I clicked to Amazon.co.uk, a day or two before the trip, with that usual optimistic
'what could possibly go wrong' glint in my eye and picked up a TomTom GPS for about
150 quid. They used to be worth much more, so in a perverse reverse logic I can rationalize
it as a bargain 'must have' buy. It arrived just hours before the trip and I did the
usual manic fiddle when unboxing - like a five year old on Christmas morning, delighted
that it could tell me where I was sat (the one thing I already knew). 
&lt;br&gt;
&lt;br&gt;
I do love my gadgets, so I spent some time I didn't have randomly downloading lots
of 3rd party points of interest to it (we NEED to know where every Bird Sanctuary
in the country is, we NEED to know exact location of every single church in the UK
etc etc), redefining the voices, colour schemes and trawling old newsgroup posts with
people that have decoded the proprietary protocol. Rather than pack suitcases properly
(Mrs From9till2 dies inside a little everytime I do this) I tried sending semi-random
text commands at it via it's USB link. The high-point of this was my desktop computer
actually got to know where it was. So, at this point you shouldn't really believe
me, but I can honestly say I didn't break it.&lt;br&gt;
&lt;br&gt;
Well, it kind of broke. The wee SD card that holds the maps and software was broken.
A quick FAT disk check showed it having more file corruption than a local politician
who's son-in-law is the local police chief.&lt;br&gt;
&lt;br&gt;
With no time to get it sorted, I just stuffed it in the laptop bag (Hit: Charisma
1--) and we headed for the airport for the short flight. After the usual Dickensian
horrors of budget air travel (the flights cost 1p, with £60 tax, plus we held our
breath during the trip to make it all CO2 neutral) I arrived at the Car Hire place,
got given the wrong type of car (RE: Car Rental sketch viz a viz Seinfeld of 'taking'
reservations is far easier than 'holding' reservations) and gave the suction cup a
bug lick and plopped the sucker on the windscreen.&lt;br&gt;
&lt;br&gt;
It just sat there in the rental car park blinking it's one big eye at us, constantly
rebooting itself. It did once start-up long enough to squeak 'you have arrive at you
destination', and then placed us 550 miles further south than we actually were, about
20 miles off-shore, completely immersed in water. I could tell the Car Hire guy was
really impressed with my tech toy. I weaved out of the carpark the wrong way, windscreen
wipers at hire speed and in the wrong gear.&lt;br&gt;
&lt;br&gt;
Driving with it on was incredibly dangerous but strangely compelling. On good days
it would work long enough to actually give us directions, but in a vaguely malicious,
and quite possibly evil, kind of way. Once it tried to get me to turn off a highway
junction that didn't exist at high speed, another time it required me to leap 500
feet in the air to reach a turning onto a bridge overpass. It became a running family
joke that we'd always arrive in some deserted industrial waste-land with 'Unnamed
Road' marked, and the jovial 'You have reached your destination' announced at the
ideal comedic timing. The kids would chorus in with a pantomime response when it tried
it tried to force us off a non-existent round-about ('Turn left now' - 'No, we won't'
came the cries from the back, 'Bear Left' - 'Argh, a bear to the left, haha' etc.).
It joined the family like a mad dotty relative that everyone felt fond of but no-one
really listened to.&lt;br&gt;
&lt;br&gt;
It was so disconcerting to have it in my view, I can't believe how badly I drove.
If there are any nervous or traumatized people in Scotland who watched me zigzag the
wrong way through countless Glasgow one-way streets then do accept my apologies -
Tom's power of suggestion (until I learnt it was actually evil and trying to kill
us) was convincing: 'Turn Left' - 'But, but, it's a One-Way' - 'Turn Left NOW' - 'Eyes
!= Ears, must make decision' - 'When it is safe to do so, please turn around', Screech
etc.&lt;br&gt;
&lt;br&gt;
So, of course I realize the map data is out of date and flawed, and yes I know that
the unit wasn't working properly and should be repaired, but here's my car sat nav
mini-review anyway:&lt;br&gt;
&lt;br&gt;
If you know where you are going then Sat Nav is great, if not, then not so much. It's
like a drunk friend riding shotgun that has been to where you need to get to before,
but perhaps only a very long time ago (Wow, they built a school there - this was all
green before). If you have a good (or old) map then you can simulate the experience
by cutting out a stamp shaped hole in a piece of card and squint at that whilst driving.&lt;br&gt;
&lt;br&gt;
Tom is now safely now back in the bosom of it's original Amazon packaging, where hopefully
it will reach its original destination nice and safely.&lt;br&gt;
&lt;br&gt;
- David&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=9ec94f2f-54f4-4565-8bbd-6b9e0f1c0ba4</comments>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Last Saturday I attended the <a href="http://www.developerday.co.uk/ddd/agendaddd5lineup.asp">D5
Developer Day </a>at Microsoft UK, Reading. Thanks to those volunteer speakers for
putting in the effort and delivering some great talks. Microsoft, thank you for the
bacon roll and limited parking.<br /><br />
The most striking thing that I came away from the event with is how much there is
going on around the C# language, and how it is one area that seems to be in pretty
polarizing in opinions of good/evil changes for the v3. 
<br /><br />
I spoke to quite a few in the throbbing crowds between talks and some absolutely hated
it with a passion, mainly from the tiring aspect of there just being so much new brain
gurning stuff to learn around it all, i.e. leave us alone - the surface area of the
all the technologies is big enough without monkeying with the language too. 
<br /><br />
Others, of course, really got off on the complexity and sheer maths of it all, and
were rubbing their IR35 hands with glee at the thought of the consultancy shilling
value rising before their very eyes.<br /><br />
Thinking about it for a while I came to a dangerous opinion. (deep breath) Ok, here
goes:<br /><br /><b>C# is getting rather too plump</b>(*). 
<br /><br />
Not clinically obese, but certainly getting, er, ‘Rubenesque’.<br /><br />
There I said it. The case for the prosecution of ‘C# is Now Fat’ goes a little like
this:<br /><br />
- I don't want to live in a world where people write really bad functional programming
code and I have to maintain/debug it. The same people that think that encapsulation
means 'it all lives in one .cs file', will probably be the same ones that think a
lambda function is a cross between a South American sexy dance and a baby sheep.<br /><br />
- Post VB6-era, we started out wanting a decent object oriented language and now have
something that literally grabs OO by the ears and laughs spittle within an inch of
its face.<br /><br />
- Lisp, Haskell, Scheme are all Great Languages, so why not go learn them (on the
new DLR as well) rather than try to stuff all these brain screwing concepts into an
ever-diluting language that might just lose its bearings in Mortland.<br /><br />
- Historically, there have been more Microsoft ways to access the Northwind database
than they are rows in the Customer table. OLEDB, ODBC, DAO, RDS, JRO, RDO, SQLXML,
ADO, ADO.NET, Entity Services - roll up, roll up, get em while they're hot! (Bonus
point for spotting the one I left out!).<br /><br />
I suspect that DLINQ will probably not be the last ever ever <i>ever </i>in this data
accessing periodic series. But here’s the rub, LINQ feels it’s the practical driving
*<b>reason</b>* for all the C# extension methods, anonymous types, predicate functions,
expression trees, lambda expressions, var de var additions. Without those ‘just 7
lines of code’ demos against Northwind (down from a massive 12 lines - go home early!!!)
then I can’t see how all these new things would have been justified in.<br /><br />
- LINQ has that big benefit of being able to treat relational, XML hierarchical and
in-memory data objects all with the same query syntax, allowing you to swap store
types at a drop of a hat. The nagging doubt though is that this may be the same big
benefit akin to not having to use SOAP over HTTP. How did that go again? Something
wonderful for a demo, but something that may not actually be a real pressing 'need'.
There is a school of thought that when you're working with a relational database rather
than a collection of in-memory objects, then you should not lose track of the various
nuances and advantages of the stores - abstraction to save typing can come back to
bite you?<br /><br />
- A lot of cool kids use the organic NHibernate already. This isn’t it, is it? Plus
sometimes I go crazy and want to update data too.<br /><br />
- In three years time I can imagine interviewing for a ‘C# developer’ (what the hell
does that mean) and having to sort them into various buckets of experiences, all because
of the growing size of the language.<br /><br />
Level C# ‘Youngling’  - Please describe to me what a ‘delegate’ is. Ok, bye.<br /><br />
Level C# ’Padawan’  - What's the difference between ArrayList and List&lt;T&gt;?
No?<br /><br />
Level C# ‘Jedi’ – What does this C# code do? Come back!<br /><font face="Courier New"><br />
Func&lt;int, bool&gt; nonExprLambda = x =&gt; (x &amp; 1) == 0;<br />
Expression&lt;Func&lt;int, bool&gt;&gt; exprLambda = x =&gt; (x &amp; 1) == 0;</font><br /><br />
It’s hard enough to get good Level &lt;1 people today. Sigh.<br /><br /><br />
Alternatively, the case for the 'C# is Just Big Boned' Defence goes a little like
this (I am *so* balanced on this blog, I am practically a fully-qualified journalist...):<br /><br />
- The entire Google fortune was made off of the back of Map/Reduce. Sergey and Brin
literally sit on huge piles of gold coins, Scrooge McDuck style, quaffing champagne
with cups emblazed with ‘Functional Programming’ logos on them. 
<br /><br />
By giving the Microsoft washed and highly motivated masses the Select/Filter fun-sized
equivalent then we will introduce glorious victories of side-effect free, and therefore
parallelizable, processing that finally gets us free from that limited procedural
world we’ve been in for over 30 years.<br /><br />
- Have you ever tried to do Scheme? Really, as in real life, with normal people? By
introducing some FP-lite concepts with the comforting plump bosom of C# (and VB10)
is the friendly way to do it – nice and easy. People have always been scared by change
– it will be *fine*, get over it.<br /><br />
- There are consumers and providers, in C# and in life. The providers will be the
‘unwashed library geeks’, so maybe they’ll be the ones knee deep in extension methods
and lambda curries. The more normal and multiplus consumers will continue their blissful
and better-looking life in glorious ingnorance of all this new stuff, save for a light
sprinking of those type-checked .Select statements on Northwood now and again. Stop
panicing, you elitist.<br /><br />
- In about 3 weeks time, or whenever you next buy a new PC plus one week time, AMD
or Intel will announce their new range of ‘Core 4096’ range of processors. Dealing
with large datasets by randomizing your debugging sessions with mutexes and semaphores
ain’t going to cut it ImperativeBoy, and your come running back to Big FP Daddy before
the day is out – mark my words.<br /><br /><br />
Not sure what to make of it all really. I suspect that it will take a while for most
developers to realize what’s going on here, and it’s not as if you *have* to use these
things. It is a significant jump though, and the learning curve is a bit of a hill-walk.
I would suspect there will be a few lost souls along the way.<br /><br />
- David<br /><br />
(*) I read in a blog (therefore making it really true) that if you want to make your
blog better (I've had complaints) then you should highlight in bold the bits you want
people to actually read. There was some other crap in the article too, but to be honest
I just scan read it and noticed the '<b>People only read the bold bits'</b> line.
No idea what else it said.<br /><p></p><br /><img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=429b79ef-21ca-4523-be81-33b15fed7e5e" /><br /><hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>C# 3.0 Considered Rubenesque?</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</link>
      <pubDate>Sat, 07 Jul 2007 20:04:22 GMT</pubDate>
      <description>Last Saturday I attended the &lt;a href="http://www.developerday.co.uk/ddd/agendaddd5lineup.asp"&gt;D5
Developer Day &lt;/a&gt;at Microsoft UK, Reading. Thanks to those volunteer speakers for
putting in the effort and delivering some great talks. Microsoft, thank you for the
bacon roll and limited parking.&lt;br&gt;
&lt;br&gt;
The most striking thing that I came away from the event with is how much there is
going on around the C# language, and how it is one area that seems to be in pretty
polarizing in opinions of good/evil changes for the v3. 
&lt;br&gt;
&lt;br&gt;
I spoke to quite a few in the throbbing crowds between talks and some absolutely hated
it with a passion, mainly from the tiring aspect of there just being so much new brain
gurning stuff to learn around it all, i.e. leave us alone - the surface area of the
all the technologies is big enough without monkeying with the language too. 
&lt;br&gt;
&lt;br&gt;
Others, of course, really got off on the complexity and sheer maths of it all, and
were rubbing their IR35 hands with glee at the thought of the consultancy shilling
value rising before their very eyes.&lt;br&gt;
&lt;br&gt;
Thinking about it for a while I came to a dangerous opinion. (deep breath) Ok, here
goes:&lt;br&gt;
&lt;br&gt;
&lt;b&gt;C# is getting rather too plump&lt;/b&gt;(*). 
&lt;br&gt;
&lt;br&gt;
Not clinically obese, but certainly getting, er, ‘Rubenesque’.&lt;br&gt;
&lt;br&gt;
There I said it. The case for the prosecution of ‘C# is Now Fat’ goes a little like
this:&lt;br&gt;
&lt;br&gt;
- I don't want to live in a world where people write really bad functional programming
code and I have to maintain/debug it. The same people that think that encapsulation
means 'it all lives in one .cs file', will probably be the same ones that think a
lambda function is a cross between a South American sexy dance and a baby sheep.&lt;br&gt;
&lt;br&gt;
- Post VB6-era, we started out wanting a decent object oriented language and now have
something that literally grabs OO by the ears and laughs spittle within an inch of
its face.&lt;br&gt;
&lt;br&gt;
- Lisp, Haskell, Scheme are all Great Languages, so why not go learn them (on the
new DLR as well) rather than try to stuff all these brain screwing concepts into an
ever-diluting language that might just lose its bearings in Mortland.&lt;br&gt;
&lt;br&gt;
- Historically, there have been more Microsoft ways to access the Northwind database
than they are rows in the Customer table. OLEDB, ODBC, DAO, RDS, JRO, RDO, SQLXML,
ADO, ADO.NET, Entity Services - roll up, roll up, get em while they're hot! (Bonus
point for spotting the one I left out!).&lt;br&gt;
&lt;br&gt;
I suspect that DLINQ will probably not be the last ever ever &lt;i&gt;ever &lt;/i&gt;in this data
accessing periodic series. But here’s the rub, LINQ feels it’s the practical driving
*&lt;b&gt;reason&lt;/b&gt;* for all the C# extension methods, anonymous types, predicate functions,
expression trees, lambda expressions, var de var additions. Without those ‘just 7
lines of code’ demos against Northwind (down from a massive 12 lines - go home early!!!)
then I can’t see how all these new things would have been justified in.&lt;br&gt;
&lt;br&gt;
- LINQ has that big benefit of being able to treat relational, XML hierarchical and
in-memory data objects all with the same query syntax, allowing you to swap store
types at a drop of a hat. The nagging doubt though is that this may be the same big
benefit akin to not having to use SOAP over HTTP. How did that go again? Something
wonderful for a demo, but something that may not actually be a real pressing 'need'.
There is a school of thought that when you're working with a relational database rather
than a collection of in-memory objects, then you should not lose track of the various
nuances and advantages of the stores - abstraction to save typing can come back to
bite you?&lt;br&gt;
&lt;br&gt;
- A lot of cool kids use the organic NHibernate already. This isn’t it, is it? Plus
sometimes I go crazy and want to update data too.&lt;br&gt;
&lt;br&gt;
- In three years time I can imagine interviewing for a ‘C# developer’ (what the hell
does that mean) and having to sort them into various buckets of experiences, all because
of the growing size of the language.&lt;br&gt;
&lt;br&gt;
Level C# ‘Youngling’&amp;nbsp; - Please describe to me what a ‘delegate’ is. Ok, bye.&lt;br&gt;
&lt;br&gt;
Level C# ’Padawan’&amp;nbsp; - What's the difference between ArrayList and List&amp;lt;T&amp;gt;?
No?&lt;br&gt;
&lt;br&gt;
Level C# ‘Jedi’ – What does this C# code do? Come back!&lt;br&gt;
&lt;font face="Courier New"&gt;
&lt;br&gt;
Func&amp;lt;int, bool&amp;gt; nonExprLambda = x =&amp;gt; (x &amp;amp; 1) == 0;&lt;br&gt;
Expression&amp;lt;Func&amp;lt;int, bool&amp;gt;&amp;gt; exprLambda = x =&amp;gt; (x &amp;amp; 1) == 0;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
It’s hard enough to get good Level &amp;lt;1 people today. Sigh.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Alternatively, the case for the 'C# is Just Big Boned' Defence goes a little like
this (I am *so* balanced on this blog, I am practically a fully-qualified journalist...):&lt;br&gt;
&lt;br&gt;
- The entire Google fortune was made off of the back of Map/Reduce. Sergey and Brin
literally sit on huge piles of gold coins, Scrooge McDuck style, quaffing champagne
with cups emblazed with ‘Functional Programming’ logos on them. 
&lt;br&gt;
&lt;br&gt;
By giving the Microsoft washed and highly motivated masses the Select/Filter fun-sized
equivalent then we will introduce glorious victories of side-effect free, and therefore
parallelizable, processing that finally gets us free from that limited procedural
world we’ve been in for over 30 years.&lt;br&gt;
&lt;br&gt;
- Have you ever tried to do Scheme? Really, as in real life, with normal people? By
introducing some FP-lite concepts with the comforting plump bosom of C# (and VB10)
is the friendly way to do it – nice and easy. People have always been scared by change
– it will be *fine*, get over it.&lt;br&gt;
&lt;br&gt;
- There are consumers and providers, in C# and in life. The providers will be the
‘unwashed library geeks’, so maybe they’ll be the ones knee deep in extension methods
and lambda curries. The more normal and multiplus consumers will continue their blissful
and better-looking life in glorious ingnorance of all this new stuff, save for a light
sprinking of those type-checked .Select statements on Northwood now and again. Stop
panicing, you elitist.&lt;br&gt;
&lt;br&gt;
- In about 3 weeks time, or whenever you next buy a new PC plus one week time, AMD
or Intel will announce their new range of ‘Core 4096’ range of processors. Dealing
with large datasets by randomizing your debugging sessions with mutexes and semaphores
ain’t going to cut it ImperativeBoy, and your come running back to Big FP Daddy before
the day is out – mark my words.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Not sure what to make of it all really. I suspect that it will take a while for most
developers to realize what’s going on here, and it’s not as if you *have* to use these
things. It is a significant jump though, and the learning curve is a bit of a hill-walk.
I would suspect there will be a few lost souls along the way.&lt;br&gt;
&lt;br&gt;
- David&lt;br&gt;
&lt;br&gt;
(*) I read in a blog (therefore making it really true) that if you want to make your
blog better (I've had complaints) then you should highlight in bold the bits you want
people to actually read. There was some other crap in the article too, but to be honest
I just scan read it and noticed the '&lt;b&gt;People only read the bold bits'&lt;/b&gt; line.
No idea what else it said.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=429b79ef-21ca-4523-be81-33b15fed7e5e" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=429b79ef-21ca-4523-be81-33b15fed7e5e</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I see that <a href="http://www.douglasp.com/">Doug Purdy</a> has rebooted his <a href="http://www.douglasp.com/blog.ashx">blog</a>.
He's a wonderful speaker if you ever get the opportunity, and I hope he writes something
soon.
</p>
        <p>
For about two years now <a href="http://www.sellsbrothers.com/">Chris Sells</a>, <a href="http://pluralsight.com/blogs/dbox/">Don
Box</a>, and more recently Doug P and <a href="http://www.simplegeek.com/">Chris 'WPF'
Anderson</a>, have been working on 'something new'. That's a lot of brains crammed
into a small space, so the idea must have quite a bit of gravity to suck them all
in.
</p>
        <p>
All Microsoft have publicly said is that it is 'about declarative programming'. Other
themes to peak out so far include using declarative models to get 'closer to the domain'
a la DSL's and the whole tooling around software factories story ('don't make me go
down the chimney please sir!'). 
</p>
        <p>
I would imagine nuances like dynamic language features and streaming around 'code
as data as code' all as the same thing will make an appearance as well. LINQ is the
first step, plus the wild-child cousin of JSON, and all that.
</p>
        <p>
Come on then blue badges, let see some of that blue light slip out of the Kimono -
I'm getting impatient...
</p>
        <p>
- David
</p>
        <p>
PS Two posts in one day, sheesh, I must really be trying to avoid the work I have
to finish today...
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Get On With It</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</link>
      <pubDate>Tue, 19 Jun 2007 13:27:10 GMT</pubDate>
      <description>&lt;p&gt;
I see that &lt;a href="http://www.douglasp.com/"&gt;Doug Purdy&lt;/a&gt; has rebooted his &lt;a href="http://www.douglasp.com/blog.ashx"&gt;blog&lt;/a&gt;.
He's a wonderful speaker if you ever get the opportunity, and I hope he writes something
soon.
&lt;/p&gt;
&lt;p&gt;
For about two years now &lt;a href="http://www.sellsbrothers.com/"&gt;Chris Sells&lt;/a&gt;, &lt;a href="http://pluralsight.com/blogs/dbox/"&gt;Don
Box&lt;/a&gt;, and more recently Doug P and &lt;a href="http://www.simplegeek.com/"&gt;Chris 'WPF'
Anderson&lt;/a&gt;, have been working on 'something new'. That's a lot of brains crammed
into a small space, so the idea must have quite a bit of gravity to suck them all
in.
&lt;/p&gt;
&lt;p&gt;
All Microsoft have publicly said is that it is 'about declarative programming'. Other
themes to peak out so far include using declarative models to get 'closer to the domain'
a la DSL's and the whole tooling around software factories story ('don't make me go
down the chimney please sir!'). 
&lt;/p&gt;
&lt;p&gt;
I would imagine nuances like dynamic language features and streaming&amp;nbsp;around 'code
as data as code' all as the same thing will make an appearance as well. LINQ is the
first step, plus the&amp;nbsp;wild-child cousin&amp;nbsp;of JSON, and all that.
&lt;/p&gt;
&lt;p&gt;
Come on then blue badges, let see some of that blue light slip out of the Kimono -
I'm getting impatient...
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
PS Two posts in one day, sheesh, I must really be trying to avoid the work I have
to finish today...
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=0e3eb794-ec0c-4dd5-804a-b9f5c7a0667b</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm off to my first ever <a href="http://www.developerday.co.uk/ddd/default.asp">Microsoft
UK tech event</a>. It's safe to talk about, as I have my registration badge and it's
now all booked up.
</p>
        <p>
One of the interesting features of this one is that it's a 'Microsoft Employee Speaker
Free' zone, as in the presentations should be less stylized and from the actual developers. 
</p>
        <p>
Over the years I must have heard quite a few Microsoft talks, and have developed a
'Bingo Scorecard' to keep my mind occupied during long powerpoint assaults. Feel free
to laminate this one and compare your scores:
</p>
        <p>
          <br />
          <strong>Microsoft Technical Presentation Bingo Scorecard</strong>
        </p>
        <p>
'Orthogonal' - 5 points. 
</p>
        <p>
The speaker usually means 'not directly related', but that doesn't sound half as clever
and has no mathematical overtones with right angles and the like. 
</p>
        <p>
          <br />
'Conflate' - 3 points.
</p>
        <p>
Where two ideas that probably had some good, but unfortunately now forgotten, reasons
not to be merged, have now been merged.
</p>
        <p>
          <br />
'SuperExcited' - 7 points.
</p>
        <p>
If you are in the front three rows of a talk where the speaker says they are 'SuperExcited'
then you have a duty as a developer to rush the podium and stop the madness. I helped
deliver my second child at a home birth and I feel justified in using the term 'Excited'
to describe it - 'SuperExcited' is never appropriate.
</p>
        <p>
          <br />
'Canonical' - 5 points.
</p>
        <p>
They usually mean 'the general standard example' but that has far too many words and
sounds less biblical. Tends to be the canonical example of the general standard example
for this Bingo words list.
</p>
        <p>
          <br />
'Impedance' - 3 points.
</p>
        <p>
'Impedance Mismatch' is a term thrown about by XML wonks like confetti at a wedding
planners convention. 'Mismatch' would do just fine in most cases, but that sounds
quite understandable and is something too many people would get.
</p>
        <p>
          <br />
'Idempotent' - 4 points.
</p>
        <p>
Usually always said together with it's actual real meaning, as in 'Idempotent, as
in can be repeated without side effects', which begs the question of why bother introduce
a word you'd never use outside the context of talking about a HTTP GET?
</p>
        <p>
          <br />
'Widget' - 5 points.
</p>
        <p>
A demonstration that the domain is completely misunderstood by the speaker and the
following example will not really work in real life, but is probably made too complicated
to actually use through naive generalizations of the problem space.
</p>
        <p>
          <br />
'StockQuote' - 3 points.
</p>
        <p>
A desperate attempt by the speaker to find a real-world sounding example to disguise
the fact that they don't really have any concrete non-trival examples that will fit
the exact goals of the demo they want to show. (Note: Also see 'Calculator' web service).
</p>
        <p>
          <br />
'LessCode' - 7 points.
</p>
        <p>
A technique where you spend hours randomly changing parameters, copying examples and
editing demo code with a library/tool/framework because someone, somewhere, thought
that the primary metric of developer productivity was less lines of code versus having
an actual deep understanding of what was really happening underneath.
</p>
        <p>
          <br />
'Leverage' - 4 points.
</p>
        <p>
Allowable only in the sole case of something to do with actual levers, i.e. when changing
a tire on a bike, otherwise a non-term used to describe 'use' but with more letters
and ambiguity.
</p>
        <p>
          <br />
'CalltoAction' - 6 points.
</p>
        <p>
The speaker has been made to redo their last slide based on feedback from someone
in Marketing. The 'action' usually involves no more work on the part of the speaker,
and is an ideal signal to make a rush for the coffee/toilet/free USB-based gift
tray before the rest of the herd awakens.
</p>
        <p>
          <br />
In case the above seems a little too pithy, on an average day I tend to score around
13 points myself. Anyone got anymore?
</p>
        <p>
- David
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=8a581168-e94d-474d-ac44-e6fa48dc2904" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Bingo!</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</link>
      <pubDate>Tue, 19 Jun 2007 11:18:06 GMT</pubDate>
      <description>&lt;p&gt;
I'm off to my first ever &lt;a href="http://www.developerday.co.uk/ddd/default.asp"&gt;Microsoft
UK tech event&lt;/a&gt;. It's safe to talk about, as I have my registration badge and it's
now all booked up.
&lt;/p&gt;
&lt;p&gt;
One of the interesting features of this one is that it's a 'Microsoft Employee Speaker
Free' zone, as in the presentations should be less stylized and from the actual developers. 
&lt;/p&gt;
&lt;p&gt;
Over the years I must have heard quite a few Microsoft talks, and have developed a
'Bingo Scorecard' to keep my mind occupied during long powerpoint assaults. Feel free
to laminate this one and compare your scores:
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;strong&gt;Microsoft Technical Presentation Bingo Scorecard&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
'Orthogonal' - 5 points. 
&lt;/p&gt;
&lt;p&gt;
The speaker usually means 'not directly related', but that doesn't sound half as clever
and has no mathematical overtones with right angles and the like. 
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'Conflate' - 3 points.
&lt;/p&gt;
&lt;p&gt;
Where two ideas that probably had some good, but unfortunately now forgotten, reasons
not to be merged, have now been merged.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'SuperExcited' - 7 points.
&lt;/p&gt;
&lt;p&gt;
If you are in the front three rows of a talk where the speaker says they are 'SuperExcited'
then you have a duty as a developer to rush the podium and stop the madness. I helped
deliver my second child at a home birth and I feel justified in using the term 'Excited'
to describe it - 'SuperExcited' is never appropriate.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'Canonical' - 5 points.
&lt;/p&gt;
&lt;p&gt;
They usually mean 'the general standard example' but that has far too many words and
sounds less biblical. Tends to be the canonical example of the general standard example
for this Bingo words list.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'Impedance' - 3 points.
&lt;/p&gt;
&lt;p&gt;
'Impedance Mismatch' is a term thrown about by XML wonks like confetti at a wedding
planners convention. 'Mismatch' would do just fine in most cases, but that sounds
quite understandable and is something too many people would get.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'Idempotent' - 4 points.
&lt;/p&gt;
&lt;p&gt;
Usually always said together with it's actual real meaning, as in 'Idempotent, as
in can be repeated without side effects', which begs the question of why bother&amp;nbsp;introduce
a word you'd never use outside&amp;nbsp;the context of&amp;nbsp;talking about a HTTP GET?
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'Widget' - 5 points.
&lt;/p&gt;
&lt;p&gt;
A demonstration that the domain is completely misunderstood by the speaker and the
following example will not really work in real life, but is probably made too complicated
to actually use through naive generalizations of the problem space.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'StockQuote' - 3 points.
&lt;/p&gt;
&lt;p&gt;
A desperate attempt by the speaker to find a real-world sounding example to disguise
the fact that they don't really have any concrete non-trival examples that will fit
the exact goals of the demo they want to show. (Note: Also see 'Calculator' web service).
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'LessCode' - 7 points.
&lt;/p&gt;
&lt;p&gt;
A technique where you spend hours randomly changing parameters, copying examples and
editing demo code with a library/tool/framework because someone, somewhere, thought
that the primary metric of developer productivity was less lines of code versus having
an actual deep understanding of what was really happening underneath.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'Leverage' - 4 points.
&lt;/p&gt;
&lt;p&gt;
Allowable only in the sole case of something to do with actual levers, i.e. when changing
a tire on a bike, otherwise a non-term used to describe 'use' but with more letters
and ambiguity.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
'CalltoAction' - 6 points.
&lt;/p&gt;
&lt;p&gt;
The speaker has been made to redo their last slide based on feedback from someone
in Marketing. The 'action' usually involves no more work on the part of the speaker,
and is an ideal&amp;nbsp;signal to make a rush for the coffee/toilet/free USB-based gift
tray before the rest of the herd awakens.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
In case the above seems a little too pithy, on an average day I tend to score around
13 points myself. Anyone got anymore?
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=8a581168-e94d-474d-ac44-e6fa48dc2904" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=8a581168-e94d-474d-ac44-e6fa48dc2904</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">It is ‘Fathers Day’ here in the UK,
so just a quickie - I've some home-made crayoned cards to admire (read that and weep
soulless Hallmark stock holders!).</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">
            <a href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=020611c4-f53c-4df0-8db0-9a050dd6cd9c#commentstart">Dare
finally revealed</a>(*) the Redmondian GData (MData?) lookee-likee via <a href="http://www.goland.org/appanddare/">Yaron
Goland,</a> which working backwards, provided his <a href="http://www.25hoursaday.com/weblog/2007/06/09/WhyGDataAPPFailsAsAGeneralPurposeEditingProtocolForTheWeb.aspx">pointy
stick</a> post in the direction of where APP was looking flaccid for Microsoft’s needs.</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">On a quick read or two, here's my random
notes:</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- This is a new relatively simple REST-ish
protocol for where hierarchical data doesn't fit 'comfortably' within the flat APP
entry/item uniformity. The two itches to be scratched with it seem to be (1) updating
granularity (think *lots* of server-side generated element information identifiers!)
and being able to grab handfuls of parent/child/etc without making separate calls,
a la an external reference.</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- <a href="http://dev.live.com/livedata/web3s.htm">Web3S </a>is
not a great name, as S3 already has a notional bookmark in my head (and probably other
people too).</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- The primary aim of this thing seems
to be to unify all the Live.com properties with a lowest common denominator protocol
that fits exactly what they need it to do. I guess Microsoft would like to unify access
like GData, but already have all the data up for grabs and don’t want to change what
they have in a make-work resource remodelling exercise.</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- The APP community seems to have done
an excellent job of scaring the bejebus out of Yaron and co. over thoughts of taking
this as comments for APP.ver++ via a Working Group or something. <span style="mso-spacerun: yes"> </span>It
seems a shame really, but no harm in having some working examples that get stuff done
though. If it prospers then it prospers. At worse it might be a missed opportunity,
but it’s not going to kill anyone or anything (perhaps a paper-cut flipping through
the spec, at worse).</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- I learnt some stuff over the use of
HTTP PATCH, as in my ignorance, I would have expected a merge with a PUT and the content
type to be ‘the true way’. </font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- <a href="http://blogs.msdn.com/pablo/default.aspx">Astoria
(and Pablo)</a> seem a flexible type of group, so it would be nice to see some convergence
on this stuff - that way the Microsoft implementers can come to the party with some
help for their own data serving needs. I see the overlap with the EII / Set 'id' view
of the world, but I have a superficial feeling they make for ugly, or at least inelegant,
URLs. (As an aside, the biggest danger for Astoria is not purely technical but a likelyhood
of violent misuse of what POST can do in the hands of a 'The R in REST doesnt always
have to mean Resource, does it?' dangerous HTTP drivers - squeezing those method calls
into that client object will be the end of us all, I tell ya!)</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- The paging and query parts of the
Web3S story have made me go a little boss-eyed. I'll need to read those parts slowly,
probably by mouthing the words too. I had just started to understand the HTTP Query/GData
way of life too.</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- The protocol looks 'not that similar' to <a href="http://devhawk.net/2007/06/14/Morning+Coffee+90+REST+Response+Roundup.aspx">Harry's
concept of REST</a>, at least on a practical level of the code looking similar on
how to (cough) CRUD on these data elements. Medium-REST anyone?</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- As an exercise in stirring the pot
and getting the metaphorical bees buzzing, it's been great to watch from the peanut
gallery. If this Web3S spec had come first (before the 'APP is busted' perception),
with some gentle words and questions to slide it in, then I guess a few more toys
would have remained within their prams. Looking back it now makes sense, but at the
time it felt like being wacked on the head with a rolled-up newspaper, only to be
told 'I was getting a bee off of you, say thanks'.</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">So, interesting times still. Not sure
what the Church of APP will make of it, but I imagine there will be calls to see how
these needs can be address directly in APP rather than outside of it. It seems unlikely
that the world needs another simple protocol based around such few verbs, but then
again I expect Microsoft has just drawn a straight line of what they need and the
quickest way to get there for all their existing resources. This may turn out to be
a branch line on the big web railroad, but it's not without a use for a while.</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">- David</font>
        </p>
        <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt">
          <font face="Calibri" color="#000000" size="3">(*) Dare often seems to copy huge chunks
of the referenced blog post into his blog. I don't particularly care, as it makes
it easier for me to read, but a soft-shelled referencee may start to blubber like
a 9 year old girl who just lost their Bratz doll. Is there a blog police that can ticket
him after three repeat offences or something? (Nothing to so with WebS3, sorry).</font>
        </p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=6fbc1aec-8096-4e21-a015-12ede6fc9646" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Not Your Father's MData</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</link>
      <pubDate>Sun, 17 Jun 2007 16:24:36 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;It is ‘Fathers Day’ here in the UK, so just
a quickie - I've some home-made crayoned cards to admire (read that and weep soulless
Hallmark stock holders!).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;&lt;a href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=020611c4-f53c-4df0-8db0-9a050dd6cd9c#commentstart"&gt;Dare
finally revealed&lt;/a&gt;(*) the Redmondian GData (MData?) lookee-likee via &lt;a href="http://www.goland.org/appanddare/"&gt;Yaron
Goland,&lt;/a&gt; which working backwards, provided his &lt;a href="http://www.25hoursaday.com/weblog/2007/06/09/WhyGDataAPPFailsAsAGeneralPurposeEditingProtocolForTheWeb.aspx"&gt;pointy
stick&lt;/a&gt; post in the direction of where APP was looking flaccid for Microsoft’s needs.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;On a quick read or two, here's my random notes:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- This is a new relatively simple REST-ish
protocol for where hierarchical data doesn't fit 'comfortably' within the flat APP
entry/item uniformity. The two itches to be scratched with it seem to be (1) updating
granularity (think *lots* of server-side generated element information identifiers!)
and being able to grab handfuls of parent/child/etc without making separate calls,
a la an external reference.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- &lt;a href="http://dev.live.com/livedata/web3s.htm"&gt;Web3S &lt;/a&gt;is
not a great name, as S3 already has a notional bookmark in my head (and probably other
people too).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- The primary aim of this thing seems to be
to unify all the Live.com properties with a lowest common denominator protocol that
fits exactly what they need it to do. I guess Microsoft would like to unify access
like GData, but already have all the data up for grabs and don’t want to change what
they have in a make-work resource remodelling exercise.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- The APP community seems to have done an
excellent job of scaring the bejebus out of Yaron and co. over thoughts of taking
this as comments for APP.ver++ via a Working Group or something. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;It
seems a shame really, but no harm in having some working examples that get stuff done
though. If it prospers then it prospers. At worse it might be a missed opportunity,
but it’s not going to kill anyone or anything (perhaps a paper-cut flipping through
the spec, at worse).&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- I learnt some stuff over the use of HTTP
PATCH, as in my ignorance, I would have expected a merge with a PUT and the content
type to be ‘the true way’. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- &lt;a href="http://blogs.msdn.com/pablo/default.aspx"&gt;Astoria
(and Pablo)&lt;/a&gt; seem a flexible type of group, so it would be nice to see some convergence
on this stuff - that way the Microsoft implementers can come to the party with some
help for their own data serving needs. I see the overlap with the EII / Set 'id' view
of the world, but I have a superficial feeling they make for ugly, or at least inelegant,
URLs. (As an aside, the biggest danger for Astoria is not purely technical but a likelyhood
of violent misuse of what POST can do in the hands of a 'The R in REST doesnt always
have to mean Resource, does it?' dangerous HTTP drivers - squeezing those method calls
into that client object will be the end of us all, I tell ya!)&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- The paging and query parts of the Web3S
story have made me go a little boss-eyed. I'll need to read those parts slowly, probably
by mouthing the words too. I had just started to understand the HTTP Query/GData way
of life too.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- The protocol looks 'not that similar'&amp;nbsp;to &lt;a href="http://devhawk.net/2007/06/14/Morning+Coffee+90+REST+Response+Roundup.aspx"&gt;Harry's
concept of REST&lt;/a&gt;, at least on a practical level of the code looking similar on
how to (cough) CRUD on these data elements. Medium-REST anyone?&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- As an exercise in stirring the pot and getting
the metaphorical bees buzzing, it's been great to watch from the peanut gallery. If
this Web3S spec had come first (before the 'APP is busted' perception), with some
gentle words and questions to slide it in, then I guess a few more&amp;nbsp;toys would
have remained within their prams. Looking back it now makes sense, but at the time
it felt like being wacked on the head with a rolled-up newspaper, only to be told
'I was getting a bee off of you, say thanks'.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;So, interesting times still. Not sure what
the Church of APP will make of it, but I imagine there will be calls to see how these
needs can be address directly in APP rather than outside of it. It seems unlikely
that the world needs another simple protocol based around such few verbs, but then
again I expect Microsoft has just drawn a straight line of what they need and the
quickest way to get there for all their existing resources. This may turn out to be
a branch line on the big web railroad, but it's not without a use for a while.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;- David&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;(*) Dare often seems to copy huge chunks of
the referenced blog post into his blog. I don't particularly care, as it makes it
easier for me to read, but a soft-shelled referencee may start to blubber like a 9
year old girl who just lost their Bratz doll. Is there a blog police that can&amp;nbsp;ticket
him after three repeat offences or something? (Nothing to so with WebS3, sorry).&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=6fbc1aec-8096-4e21-a015-12ede6fc9646" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=6fbc1aec-8096-4e21-a015-12ede6fc9646</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Big Interop via the web is not a technology problem. For want of a better
term, it's a social issue.
</p>
        <p>
Definition: <em>Politics is the process and method of making decisions for groups</em> -
and that is where I think we are with <a href="http://www.25hoursaday.com/weblog/2007/06/09/WhyGDataAPPFailsAsAGeneralPurposeEditingProtocolForTheWeb.aspx">this</a>.
</p>
        <p>
PS If Dare really is a <strong><a href="http://www.25hoursaday.com/">Scorched Earth
Tank</a></strong>, then calling him <a href="http://www.snellspace.com/wp/?p=681">silly</a> or
perhaps even <a href="http://www.tbray.org/ongoing/When/200x/2007/06/10/So-Lame">stupid</a> won't
help speed things up. For the record, this moment of APP interop thinking unity lasted
~15 minutes.
</p>
        <p>
- David
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=5249a2ad-7902-475b-b01c-2d535bc44ad9" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Change the world or go home</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</link>
      <pubDate>Sun, 10 Jun 2007 22:41:36 GMT</pubDate>
      <description>&lt;p&gt;
Big Interop&amp;nbsp;via the web&amp;nbsp;is not a technology problem. For want of a better
term, it's a social issue.
&lt;/p&gt;
&lt;p&gt;
Definition: &lt;em&gt;Politics is the process and method of making decisions for groups&lt;/em&gt; -
and that is where I think we are with &lt;a href="http://www.25hoursaday.com/weblog/2007/06/09/WhyGDataAPPFailsAsAGeneralPurposeEditingProtocolForTheWeb.aspx"&gt;this&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
PS If Dare really is a &lt;strong&gt;&lt;a href="http://www.25hoursaday.com/"&gt;Scorched Earth
Tank&lt;/a&gt;&lt;/strong&gt;, then calling him &lt;a href="http://www.snellspace.com/wp/?p=681"&gt;silly&lt;/a&gt; or
perhaps even &lt;a href="http://www.tbray.org/ongoing/When/200x/2007/06/10/So-Lame"&gt;stupid&lt;/a&gt; won't
help speed things up. For the record, this moment of APP interop thinking unity lasted
~15 minutes.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=5249a2ad-7902-475b-b01c-2d535bc44ad9" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=5249a2ad-7902-475b-b01c-2d535bc44ad9</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've spent years ignoring Mark's advice regarding Web Services, so when I read this <a href="http://markbaker.ca/blog/2007/05/29/rest-wadl-forest-trees/">http://markbaker.ca/blog/2007/05/29/rest-wadl-forest-trees/</a> it
seems like the decent thing to do is to agree with him.
</p>
        <p>
It doesn't feel right to go from one world where auto-machine-magic contract-interface
specs were in such abundance to something that might be able to get away without needing
them. I lack the experience to be sure either way.
</p>
        <p>
The meta-lesson for me here is; if you, like me, have the tenacity to jump
onto the back of a moving band-wagon then it seems polite to let the guys at
the front do the driving.
</p>
        <p>
- David
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>TWADL?</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</link>
      <pubDate>Thu, 31 May 2007 20:56:15 GMT</pubDate>
      <description>&lt;p&gt;
I've spent years ignoring Mark's advice regarding Web Services, so when I read this &lt;a href="http://markbaker.ca/blog/2007/05/29/rest-wadl-forest-trees/"&gt;http://markbaker.ca/blog/2007/05/29/rest-wadl-forest-trees/&lt;/a&gt;&amp;nbsp;it
seems like the decent thing to do is to agree with him.
&lt;/p&gt;
&lt;p&gt;
It doesn't feel right to go from one world where auto-machine-magic contract-interface
specs were in such abundance to something that might be able to get away without needing
them. I lack the experience to be sure either way.
&lt;/p&gt;
&lt;p&gt;
The meta-lesson for me here is; if&amp;nbsp;you, like me,&amp;nbsp;have the tenacity to jump
onto the back of a moving band-wagon then it seems&amp;nbsp;polite to let the guys at
the front do the driving.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=0a2bdabd-e343-4b7c-b5f9-10ba3bd3af0a</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
(Apologies for the title Harry, but you know it’s really hard to find a HTTP verb
that rhymes with ‘Sally’).
</p>
        <p>
This is part of the ongoing discussion from <a href="http://devhawk.net/2007/05/25/This+Isnt+The+Droid+Im+Looking+For.aspx">This
Isn't The Droid I'm Looking For</a> and <a href="http://www.from9till2.com/PermaLink.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f">(Insert
REST Pun Here</a>). You need to read them to get any context from this, and even then
I'm not convinced it'll help. As this topic is barely fitting into comments,
I put it up on here(*) as well. I’m probably causing a blogging faux-pas with this
wanton duplication, but then I was never too sure how faux-pas was pronounced
anyway. 
</p>
        <p>
Here's my reply on Harry's post:
</p>
        <p>
“<font color="#000080">To save valuable internet space, I'll just comment here - no
one wants the tubes blocked any more than they are: </font><font color="#000000">(Editor:
Um?)</font></p>
        <p>
          <font color="#000080">1. 'I think it doesn't really matter how the rest of the world
gravitates'. </font>
          <font color="#000080">Ooo. Three words Harry, in, ter and op.
The nearest thing I had to a point was that if your interpretation of REST is so very
different to mine (it isn't, but let’s go along with this), then aren't we making
harder to 'walk up and use?'? The world is full of cutting-edge inspired ideas that
no-one now has a clue on how to maintain (or even talk too). </font>
        </p>
        <p>
          <font color="#000080">Imagine if people rush to REST and make it an overnight/14 year
success with PUTs/DELETE's on some Entity driven crusade to emulate WebDAV with everything
they can find (or APP gData styling it all), then they may find your entityless system
harder to interop with (or even to grok) - especially where it's so early in have
some formal description of what your valid 'interface' (states) are? </font>
        </p>
        <p>
          <font color="#000080">2. Agreed about transaction/bizprocess thing - that was a 11
keystroke spelling error that I must stop doing - the keys are right next to each
other though. </font>
        </p>
        <p>
          <font color="#000080">3. We need something like Godwins law, i.e. when anyone ever
pulls out a Fielding Dissertation link then all bets are off... ;-) </font>
        </p>
        <p>
          <font color="#000080">One important point that I forgot before is related to what <a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=2de82d9a-7e46-4cb2-a787-3786e67e1780">Dare
said about Mike Champions WS-* vibe</a>, are you really *sure* you want to use a Web
protocol for something that might not be actually used on the Web? Anyway, typing
too much, I should blog at home...</font>
        </p>
        <p>
          <font color="#000080">David Ing | david dot ingAT NOSPAMgmail dot com”<br />
27 May 2007 03:38:34 (Pacific Daylight Time, UTC-07:00)"</font>
        </p>
        <p>
          <br />
"Two responses to point #1 above: 
</p>
        <p>
First, as I pointed out in my update, Fielding specifically allows the author to choose
resource identifiers as they see fit. So I might argue (if it came to down to an argument)
that maybe you're not "doing REST" if you can't interop with a REST as Protocol system. 
</p>
        <p>
Second, in theory people may find it harder to grok, but in reality are we really
worried about that? Is Tim's airline example really that much harder to understand
than Atom Publishing? I don't think so.
</p>
        <p>
DevHawk<br />
27 May 2007 14:51:49 (Pacific Daylight Time, UTC-07:00)"
</p>
        <p>
          <br />
          <font color="#000080">"Trying hard to disagree with you here Harry, but in the interests
of the discussion then how about?: </font>
        </p>
        <p>
          <font color="#000080">- If I had a wonderful Doughnut Atom Publishing Protocol (APP)
based resource on the web that you wanted to use as part of your DeliciousThingsToEat
composite app, then don't you have to now treat me as a special case, i.e. I'm not
expecting to return a getDetails URI in *my* response - are you going to have to write
a special adaptor to make me fit in as an in-between state for your 'controller' of
your state machine? The world gravitating to the PUT will make a little awkward for
you to add to your application with the resources in systems that you didn't write?
If you don't intend to 'promiscuously mashup' from outside resource-based services
(maybe for an internal system that could be Service rather than Resource orientated?)
then this point is moot.</font>
        </p>
        <p>
          <font color="#000080">- I think the butterflies in my tummy about this issue may be
related in that it smells a bit like the days of SOAP Doc/Lit vs RPC/Enc chaos, (Cough
- Hey, I know how about Basic Profile 1.0 for REST usage!? Shudder!). The 'you say
POST and I say PUT' chaos is probably a way of life, and maybe if it took us 4 years
to figure out not to tunnel the GET through a POST it might take a similar amount
of time not tunnel the PUT through POST either. :-) </font>
        </p>
        <p>
          <font color="#000080">- Unless Roy is going to come around my house and fix the code
for me when I get the wrong interpretation of REST, they I don't care/mind what he
wrote on the resource-interpretation issue. :-) I could also make an argument that
the Real Web isn't really REST based in practice either - and no-one took *their*
REST license away... </font>
        </p>
        <p>
          <font color="#000080">(we should blog this, it's far too interesting a topic to live
in comments) <font color="#000000">(Editor: Ah, blessed retrospect)</font>"</font>
        </p>
        <p>
          <font color="#000000">Anyway, good times. I still learning and thinking about all
the nuances, but it's very enjoyable journey  so far. Looking forward to
Harry's examples next week.</font>
        </p>
        <p>
          <font color="#000000">- </font>
          <font color="#000000">David</font>
        </p>
        <p>
          <font color="#000080">
            <font color="#000000">(*) I've corrected spelling mistakes and
reformatted a little, but only where it makes me look a little less of an idiot.<br /></font>
          </font>
        </p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>When Harry Met StateMachine</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</link>
      <pubDate>Sun, 27 May 2007 17:17:34 GMT</pubDate>
      <description>&lt;p&gt;
(Apologies for the title Harry, but you know it’s really hard to find a HTTP verb
that rhymes with ‘Sally’).
&lt;/p&gt;
&lt;p&gt;
This is part of the ongoing discussion from &lt;a href="http://devhawk.net/2007/05/25/This+Isnt+The+Droid+Im+Looking+For.aspx"&gt;This
Isn't The Droid I'm Looking For&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f"&gt;(Insert
REST Pun Here&lt;/a&gt;). You need to read them to get any context from this, and even then
I'm not convinced it'll help.&amp;nbsp;As this&amp;nbsp;topic is barely fitting into comments,
I put it up on here(*) as well. I’m probably causing a blogging faux-pas with this
wanton duplication, but then I was never too sure&amp;nbsp;how faux-pas was pronounced
anyway. 
&lt;/p&gt;
&lt;p&gt;
Here's my reply on Harry's post:
&lt;/p&gt;
&lt;p&gt;
“&lt;font color=#000080&gt;To save valuable internet space, I'll just comment here - no
one wants the tubes blocked any more than they are: &lt;/font&gt;&lt;font color=#000000&gt;(Editor:
Um?)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;1. 'I think it doesn't really matter how the rest of the world
gravitates'. &lt;/font&gt;&lt;font color=#000080&gt;Ooo. Three words Harry, in, ter and op. The
nearest thing I had to a point was that if your interpretation of REST is so very
different to mine (it isn't, but let’s go along with this), then aren't we making
harder to 'walk up and use?'? The world is full of cutting-edge inspired ideas that
no-one now has a clue on how to maintain (or even talk too). &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;Imagine if people rush to REST and make it an overnight/14 year
success with PUTs/DELETE's on some Entity driven crusade to emulate WebDAV with everything
they can find (or APP gData styling it all), then they may find your entityless system
harder to interop with (or even to grok) - especially where it's so early in have
some formal description of what your valid 'interface' (states) are? &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;2. Agreed about transaction/bizprocess thing - that was a 11 keystroke
spelling error that I must stop doing - the keys are right next to each other though. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;3. We need something like Godwins law, i.e. when anyone ever pulls
out a Fielding Dissertation link then all bets are off... ;-) &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;One important point that I forgot before is related to what &lt;a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=2de82d9a-7e46-4cb2-a787-3786e67e1780"&gt;Dare
said about Mike Champions WS-* vibe&lt;/a&gt;, are you really *sure* you want to use a Web
protocol for something that might not be actually used on the Web? Anyway, typing
too much, I should blog at home...&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;David Ing | david dot ingAT NOSPAMgmail dot com”&lt;br&gt;
27 May 2007 03:38:34 (Pacific Daylight Time, UTC-07:00)"&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
"Two responses to point #1 above: 
&lt;/p&gt;
&lt;p&gt;
First, as I pointed out in my update, Fielding specifically allows the author to choose
resource identifiers as they see fit. So I might argue (if it came to down to an argument)
that maybe you're not "doing REST" if you can't interop with a REST as Protocol system. 
&lt;/p&gt;
&lt;p&gt;
Second, in theory people may find it harder to grok, but in reality are we really
worried about that? Is Tim's airline example really that much harder to understand
than Atom Publishing? I don't think so.
&lt;/p&gt;
&lt;p&gt;
DevHawk&lt;br&gt;
27 May 2007 14:51:49 (Pacific Daylight Time, UTC-07:00)"
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;font color=#000080&gt;"Trying hard to disagree with you here Harry, but in the interests
of the discussion then how about?: &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;- If I had a wonderful Doughnut Atom Publishing Protocol (APP)
based resource on the web that you wanted to use as part of your DeliciousThingsToEat
composite app, then don't you have to now treat me as a special case, i.e. I'm not
expecting to return a getDetails URI in *my* response - are you going to have to write
a special adaptor to make me fit in as an in-between state for your 'controller' of
your state machine? The world gravitating to the PUT will make a little awkward for
you to add to your application with the resources in systems that you didn't write?
If you don't intend to 'promiscuously mashup' from outside resource-based services
(maybe for an internal system that could be Service rather than Resource orientated?)
then this point is moot.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;- I think the butterflies in my tummy about this issue may be
related in that it smells a bit like the days of SOAP Doc/Lit vs RPC/Enc chaos, (Cough
- Hey, I know how about Basic Profile 1.0 for REST usage!? Shudder!). The 'you say
POST and I say PUT' chaos is probably a way of life, and maybe if it took us 4 years
to figure out not to tunnel the GET through a POST it might take a similar amount
of time not tunnel the PUT through POST either. :-) &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;- Unless Roy is going to come around my house and fix the code
for me when I get the wrong interpretation of REST, they I don't care/mind what he
wrote on the resource-interpretation issue. :-) I could also make an argument that
the Real Web isn't really REST based in practice either - and no-one took *their*
REST license away... &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;(we should blog this, it's far too interesting a topic to live
in comments) &lt;font color=#000000&gt;(Editor: Ah, blessed retrospect)&lt;/font&gt;"&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Anyway, good times. I still learning and thinking about all the
nuances, but it's very enjoyable&amp;nbsp;journey &amp;nbsp;so far. Looking forward to Harry's
examples next week.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;- &lt;/font&gt;&lt;font color=#000000&gt;David&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;&lt;font color=#000000&gt;(*) I've corrected spelling mistakes and reformatted
a little, but only where it makes me look a little less of an idiot.&lt;br&gt;
&lt;/font&gt;
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=5f9ac25b-6e8d-412f-9a16-f9f0c0dbf9be</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
(I started writing this as a comment in Harry's blog in conversation to <a href="http://devhawk.net/2007/05/24/REST+Is+Neither+CRUD+Nor+CRAP.aspx">this</a>,
and soon realized that it would be better off living here; plus it took on a life
of its own as they are wont to do - and at the very least I have more room to type
here rather than that wee comment box. Yes, Dear Reader; like so many of you, I too
forgot I had this blog).
</p>
        <p>
To step back: What are the take-aways from the current WS-SOAP-* 'It's Not Dead, it's
just RESTing' period(*)? (that's not a rhetorical question btw, I do want to know). 
</p>
        <p>
I am interesting in talking about them in case they are lessons worth learning so
we don’t repeat them with ‘this season’s new style’, REST.  Many people seem
to be looking at REST in the same way people were looking at SOAP and the WS-* stack.
(Um, bear with me Harry, I'll get there in the end, honest).
</p>
        <p>
I think the soapy lessons could be:
</p>
        <p>
          <strong>1. The Sweet Spot is King</strong>. Flexibility begets complexity begets adoption. 
I.e:  SOAP can be transported over many protocols, but it's usually just HTTP.
Similarly, WSDL was designed(!) to bind operations to non-SOAP things but it's usually
just SOAP. SOAP extensibility is through Headers, but they usually don't get used
(or used in the same way). I.e. <a href="http://intertwingly.net/blog/2004/10/21/WS-HTTP">here</a>.
The key point I am making here is that the '92 out of 100 usage cases' can dictate
when something is seen as annoying baggage versus something that is seen as 'just
good enough'.
</p>
        <p>
          <strong>2. One Ring Doesn't Bind Them (At All).</strong> An application protocol that
can work across in-process, out-of-process and distributed nodes (that you don't own)
in the same way is a worthy goal indeed. If SOAP tries to conflate a bunch of usage
scenarios based on differing reach and policy, then maybe that's a hairy P=NP sized
problem (plus perhaps we ignored the existing infrastructure a little too much?) Maybe
this was something that didn't want to be conflated just yet, or had to come from
the bottom-up (somehow?). SOAP didn’t globally fit all, and perhaps the jokey remap
for ‘Service Oriented Application Protocol’ didn’t either.
</p>
        <p>
          <strong>3. Eye of the Beholder.</strong> Web Services are what people perceive Web
Services to be. Terms and definitions on a technology are ok to tie down (maybe) but
'architectural styles' are completely a perception thing. RE:SOA. The nearest we get
to saying WS-*==ABC or SOAP==XYZ is to accept that the de facto definition is the
most common perception of what people usually mean. SOAP can be simple, but that's
not the perception today.
</p>
        <p>
So, how do these SOAP takeways stack up with REST so far?:
</p>
        <p>
          <strong>1. The Sweet Spot is King.</strong> Well, I think the sweet spot for REST
is the 'R', i.e. the magic HTTP GET with URI that happens through all that lovely
existing infrastructure you are reading this through now. Most of the web is a 'read'
(so far), so if you are targeting an app at the web, the REST style is today's first
stop at the Various Solutions stations on your design journey. If you move away from
that sweet spot (i.e. complex transactions via POSTs, i.e. Harry's real enterprisey
needs) then it just seems to be some 'make-work' in wrestling back the Hi-REST style
to be something useful and workable for you. If you are in the ‘8 out of 100
cases’ of ‘people that want to do complex transactions over the web’ then maybe REST
is not a good fit?
</p>
        <p>
          <strong>2. One Ring Doesn't Bind Them (At All).</strong> REST as a style doesn't seem
that natural for a complex 'long  running transaction updating multiple distributed
stores', at least unless you model the protocol around a 'higher level' abstraction
than those individual addressable stores. If we say stuff like 'REST shall/must replace
all foolish WS-* SOAP systems (insert Nelson-style HaHa here)' then we are just repeating
the same lessons as before - One size won't fit all and there is no One Ring to Bind
Them illusion in REST as well. If you have something complex that fits the WS-* style
then maybe REST isn't the droid you are looking for.
</p>
        <p>
          <strong>3. Eye of the Beholder.</strong> We may <em>say</em> REST is really about
a protocol state and not CRUD, but unless the rest of the world gravitates to that
view then I'm afraid it just won't be. If, say, through some ongoing groundswell of
common usage, people start modelling entities as dereferenceable URI's and using POST
to do Create and Updates, then REST <em>will</em> be about CRUD by default. This is
all very unacademic and unjust, but thems the breaks peachy. The lesson from SOAP
is not to fight it by trying to re-educate the masses after they get a perception
in their head. You might as well come up with a new term for what you want to do,
a la <a href="http://pluralsight.com/blogs/dbox/archive/2006/03/18/20235.aspx">Hi/Lo
REST</a>. (Btw, I get nervous that someone as smart as Tim Ewald took a year to ‘get
it’, and that we’re all waiting for a <a href="http://www.amazon.com/gp/product/0596529260/">decent
book</a> rather than a <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm">dissertation</a>(!)
on the subject (**)).
</p>
        <p>
Soooo, finally, my more succinct comment for Harry’s blog entry is: 
</p>
        <p>
‘If you mean C and U in CRUD to be long-running transactions over multiple resources,
then I don’t think REST/HTTP is the way to go for you anyway. I also think that a
lot of apps don’t need to be modelled that way, but that’s more a subjective opinion,
and probably another topic in itself. Please blog the next bit of how to model your
problem via a protocol state, because I'm interested. Remember: if in doubt of REST
fit, say C U! (groan)’. 
</p>
        <p>
There, bet you wish I put that up-front eh?
</p>
        <p>
An aside: I see a lot of the recent REST bloggage reminding me of a ‘Wii vs Xbox360’
Digg comments thread, which meanders around the key  issue of stating that they
are ‘for different people to do different things’. Just like the games industry, we’ve
got to a size where it’s ok to adopt different styles dependant on specific audience.
Personally I want to own both, as I like games a lot: 
</p>
        <p>
Wii == REST, Xbox360==SOAP/WS-*
</p>
        <p>
- David
</p>
        <p>
(*) Humour aside, if anyone that claims that 'REST wins and SOAP/WS-* loses' is not
really helping you. By saying REST has strengths not covered by WS-* is not the same
as saying that WS-* has simply failed. I.e. use what works for you, rather than what
other people claim will work for you – it’s why you get paid more than the guy that
empties the trash cans.
</p>
        <p>
(**) Caveat: I've never shipped a truly REST-styled system (yet, but am working on
it), although I do have some experience with <a href="http://www.from9till2.com/PermaLink.aspx?guid=ab3fd85b-4f2a-4ea3-be61-b8bed6bbaf48">modelling
distributed updates</a> via a 'state protocol' machine via SOAP, so there is a reasonable
chance I'm just spouting out my blog-hole here. Sorry.)
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=2dbee669-07fd-435e-a5f9-51f709ef183f" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>(Insert REST Pun Here)</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</link>
      <pubDate>Fri, 25 May 2007 12:25:41 GMT</pubDate>
      <description>&lt;p&gt;
(I started writing this as a comment in Harry's blog in conversation to &lt;a href="http://devhawk.net/2007/05/24/REST+Is+Neither+CRUD+Nor+CRAP.aspx"&gt;this&lt;/a&gt;,
and soon realized that it would be better off living here; plus it took on a life
of its own as they are wont to do - and at the very least I have more room to type
here rather than that wee comment box. Yes, Dear Reader; like so many of you, I too
forgot I had this blog).
&lt;/p&gt;
&lt;p&gt;
To step back: What are the take-aways from the current WS-SOAP-* 'It's Not Dead, it's
just RESTing' period(*)? (that's not a rhetorical question btw, I do want to know). 
&lt;/p&gt;
&lt;p&gt;
I am interesting in talking about them in case they are lessons worth learning so
we don’t repeat them with ‘this season’s new style’, REST.&amp;nbsp; Many people seem
to be looking at REST in the same way people were looking at SOAP and the WS-* stack.
(Um, bear with me Harry, I'll get there in the end, honest).
&lt;/p&gt;
&lt;p&gt;
I think the soapy lessons&amp;nbsp;could be:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. The Sweet Spot is King&lt;/strong&gt;. Flexibility begets complexity begets adoption.&amp;nbsp;
I.e:&amp;nbsp; SOAP can be transported over many protocols, but it's usually just HTTP.
Similarly, WSDL was designed(!) to bind operations to non-SOAP things but it's usually
just SOAP. SOAP extensibility is through Headers, but they usually don't get used
(or used in the same way). I.e. &lt;a href="http://intertwingly.net/blog/2004/10/21/WS-HTTP"&gt;here&lt;/a&gt;.
The key point I am making here is that the '92 out of 100 usage cases' can dictate
when something is seen as annoying baggage versus something that is seen as 'just
good enough'.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. One Ring Doesn't Bind Them (At All).&lt;/strong&gt; An application protocol that
can work across in-process, out-of-process and distributed nodes (that you don't own)
in the same way is a worthy goal indeed. If SOAP tries to conflate a bunch of usage
scenarios based on differing reach and policy, then maybe that's a hairy P=NP sized
problem (plus perhaps we ignored the existing infrastructure a little too much?) Maybe
this was something that didn't want to be conflated just yet, or had to come from
the bottom-up (somehow?). SOAP didn’t globally fit all, and perhaps the jokey remap
for ‘Service Oriented Application Protocol’ didn’t either.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Eye of the Beholder.&lt;/strong&gt; Web Services are what people perceive Web
Services to be. Terms and definitions on a technology are ok to tie down (maybe) but
'architectural styles' are completely a perception thing. RE:SOA. The nearest we get
to saying WS-*==ABC or SOAP==XYZ is to accept that the de facto definition is the
most common perception of what people usually mean. SOAP can be simple, but that's
not the perception today.
&lt;/p&gt;
&lt;p&gt;
So, how do these SOAP takeways stack up with REST so far?:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. The Sweet Spot is King.&lt;/strong&gt; Well, I think the sweet spot for REST
is the 'R', i.e. the magic HTTP GET with URI that happens through all that lovely
existing infrastructure you are reading this through now. Most of the web is a 'read'
(so far), so if you are targeting an app at the web, the REST style is today's first
stop at the Various Solutions stations on your design journey. If you move away from
that sweet spot (i.e. complex transactions via POSTs, i.e. Harry's real enterprisey
needs) then it just seems to be some 'make-work' in wrestling back the Hi-REST style
to be something useful and workable&amp;nbsp;for you. If you are in the ‘8 out of 100
cases’ of ‘people that want to do complex transactions over the web’ then maybe REST
is not a good fit?
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. One Ring Doesn't Bind Them (At All).&lt;/strong&gt; REST as a style doesn't seem
that natural for a complex 'long&amp;nbsp; running transaction updating multiple distributed
stores', at least unless you model the protocol around a 'higher level' abstraction
than those individual addressable stores. If we say stuff like 'REST shall/must replace
all foolish WS-* SOAP systems (insert Nelson-style HaHa here)' then we are just repeating
the same lessons as before - One size won't fit all and there is no One Ring to Bind
Them illusion in REST as well. If you have something complex that fits the WS-* style
then maybe REST isn't the droid you are looking for.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Eye of the Beholder.&lt;/strong&gt; We may &lt;em&gt;say&lt;/em&gt; REST is really about
a protocol state and not CRUD, but unless the rest of the world gravitates to that
view then I'm afraid it just won't be. If, say, through some ongoing groundswell of
common usage, people start modelling entities as dereferenceable URI's and using POST
to do Create and Updates, then REST &lt;em&gt;will&lt;/em&gt; be about CRUD by default. This is
all very unacademic and unjust, but thems the breaks peachy. The lesson from SOAP
is not to fight it by trying to re-educate the masses after they get a perception
in their head. You might as well come up with a new term for what you want to do,
a la &lt;a href="http://pluralsight.com/blogs/dbox/archive/2006/03/18/20235.aspx"&gt;Hi/Lo
REST&lt;/a&gt;. (Btw, I get nervous that someone as smart as Tim Ewald took a year to ‘get
it’, and that we’re all waiting for a &lt;a href="http://www.amazon.com/gp/product/0596529260/"&gt;decent
book&lt;/a&gt; rather than a &lt;a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm"&gt;dissertation&lt;/a&gt;(!)
on the subject (**)).
&lt;/p&gt;
&lt;p&gt;
Soooo, finally,&amp;nbsp;my more succinct comment for Harry’s blog entry is: 
&lt;/p&gt;
&lt;p&gt;
‘If you mean C and U in CRUD to be long-running transactions over multiple resources,
then I don’t think REST/HTTP is the way to go for you anyway. I also think that a
lot of apps don’t need to be modelled that way, but that’s more a subjective opinion,
and probably another topic in itself. Please blog the next bit of how to model your
problem via a protocol state, because I'm interested. Remember: if in doubt of REST
fit, say C U! (groan)’. 
&lt;/p&gt;
&lt;p&gt;
There, bet you wish I put that up-front eh?
&lt;/p&gt;
&lt;p&gt;
An aside: I see a lot of the recent REST bloggage reminding me of a ‘Wii vs Xbox360’
Digg comments thread, which meanders around the key&amp;nbsp; issue of stating that they
are ‘for different people to do different things’. Just like the games industry, we’ve
got to a size where it’s ok to adopt different styles dependant on specific audience.
Personally I want to own both, as I like games a lot: 
&lt;/p&gt;
&lt;p&gt;
Wii == REST, Xbox360==SOAP/WS-*
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
(*) Humour aside, if anyone that claims that 'REST wins and SOAP/WS-* loses' is not
really helping you. By saying REST has strengths not covered by WS-* is not the same
as saying that WS-* has simply failed. I.e. use what works for you, rather than what
other people claim will work for you – it’s why you get paid more than the guy that
empties the trash cans.
&lt;/p&gt;
&lt;p&gt;
(**) Caveat: I've never shipped a truly REST-styled system (yet, but am working on
it), although I do have some experience with &lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=ab3fd85b-4f2a-4ea3-be61-b8bed6bbaf48"&gt;modelling
distributed updates&lt;/a&gt; via a 'state protocol' machine via SOAP, so there is a reasonable
chance I'm just spouting out my blog-hole here. Sorry.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=2dbee669-07fd-435e-a5f9-51f709ef183f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=2dbee669-07fd-435e-a5f9-51f709ef183f</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=80554e7d-87d5-4588-bb33-9028e461b137</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=80554e7d-87d5-4588-bb33-9028e461b137</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=80554e7d-87d5-4588-bb33-9028e461b137</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=80554e7d-87d5-4588-bb33-9028e461b137</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
"Microsoft SharedView Beta is a fast, easy way to share documents and screen views
with small groups of friends or coworkers; anytime, anywhere. Use SharedView to put
your heads together and collaborate."
</p>
        <p>
          <a href="http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94">http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94</a>
        </p>
        <p>
UPDATE: Better linkage: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ddbf048d-db67-4c56-9335-6964e15975d2&amp;DisplayLang=en">here</a></p>
        <p>
As someone who works remotely (~4727 miles last time I walked it) it's always a challenge
to give an as close as possible an 'in-office' experience(*) as we can. 
</p>
        <p>
I would imagine tools like this (plus the invaluable Skype) will become increasingly
important for lots of people. Cute things in SharedView include being able to share
a Paste buffer.
</p>
        <p>
- David
</p>
        <p>
(*) Btw, we are <strong>always</strong> looking to hire good people, please see <a href="http://www.taglocity.com/Careers.htm">here</a>.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=80554e7d-87d5-4588-bb33-9028e461b137" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>SharedView</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=80554e7d-87d5-4588-bb33-9028e461b137</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=80554e7d-87d5-4588-bb33-9028e461b137</link>
      <pubDate>Wed, 23 May 2007 19:14:57 GMT</pubDate>
      <description>&lt;p&gt;
"Microsoft SharedView Beta is a fast, easy way to share documents and screen views
with small groups of friends or coworkers; anytime, anywhere. Use SharedView to put
your heads together and collaborate."
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94"&gt;http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
UPDATE: Better linkage: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ddbf048d-db67-4c56-9335-6964e15975d2&amp;amp;DisplayLang=en"&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
As someone who works remotely (~4727 miles last time I walked it) it's always a challenge
to give an&amp;nbsp;as close as possible&amp;nbsp;an 'in-office' experience(*) as we can. 
&lt;/p&gt;
&lt;p&gt;
I would imagine tools like this (plus the invaluable Skype) will become increasingly
important for lots of people. Cute things in SharedView include being able to share
a Paste buffer.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
(*) Btw, we are &lt;strong&gt;always&lt;/strong&gt; looking to hire good people, please see &lt;a href="http://www.taglocity.com/Careers.htm"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=80554e7d-87d5-4588-bb33-9028e461b137" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=80554e7d-87d5-4588-bb33-9028e461b137</comments>
      <category>Not Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
'View Source...' for Silverlight apps:
</p>
        <p>
          <a href="http://blogs.msdn.com/ebooth/archive/2007/05/19/view-source-reflector-tool-for-net-silverlight-sites.aspx">http://blogs.msdn.com/ebooth/archive/2007/05/19/view-source-reflector-tool-for-net-silverlight-sites.aspx</a>
        </p>
        <p>
For me, that's up there with HTTP GET in terms of something of such vital importance,
but that's so often misunderstood or underestimated.
</p>
        <p>
So, Microsoft, how about baking the concept in a little deeper (the browsers etc)
so that the learning-by-example web can be given the best chance it can get? The out-of-the-box
experience for 'View Source...' should be perfect and ubiquitous.
</p>
        <p>
(found via ScottGu <a href="http://weblogs.asp.net/scottgu/archive/2007/05/22/may-22nd-link-listing-asp-net-visual-studio-silverlight-wpf-and-net.aspx">here</a>)
</p>
        <p>
- David 
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=96ffde7c-4773-46e1-a836-ab6f9384967f" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>View Source</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</link>
      <pubDate>Tue, 22 May 2007 21:26:05 GMT</pubDate>
      <description>&lt;p&gt;
'View Source...' for Silverlight apps:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/ebooth/archive/2007/05/19/view-source-reflector-tool-for-net-silverlight-sites.aspx"&gt;http://blogs.msdn.com/ebooth/archive/2007/05/19/view-source-reflector-tool-for-net-silverlight-sites.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
For me, that's up there with HTTP GET in terms of something of such vital importance,
but that's so often misunderstood or underestimated.
&lt;/p&gt;
&lt;p&gt;
So, Microsoft, how about baking the concept in a little deeper (the browsers etc)
so that the learning-by-example web can be given the best chance it can get? The out-of-the-box
experience for 'View Source...' should be perfect and ubiquitous.
&lt;/p&gt;
&lt;p&gt;
(found via ScottGu &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/22/may-22nd-link-listing-asp-net-visual-studio-silverlight-wpf-and-net.aspx"&gt;here&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
- David&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=96ffde7c-4773-46e1-a836-ab6f9384967f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=96ffde7c-4773-46e1-a836-ab6f9384967f</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
My five year old son broke his arm yesterday evening. He was leaping around over the
sofas as usual with his sister when he fell awkwardly. Collecting my thoughts on this
wants me to put them out for all to read, in that:
</p>
        <p>
- I am so glad I was home. I'd been away for a while, and I wouldn't have wanted to
be hearing this on the other end of a skype call. If you are away from your family
a lot then my advice would be to fix that as quickly as you can.
</p>
        <p>
- Getting him to hospital took longer than his entire 'see doctor/treatment/get home'
cycle, mainly because we live a little out of the way (think sheep, fields etc). We
got <strong>superb</strong> care from the local UK hospital - quick, efficient and
caring. A doctor saw him within 20 mins and they had the x-ray and plastered-arm sorted
out all within 120 minutes - amazing for a Saturday evening too. I'd also point a
hat-tip to <a href="http://www.nhsdirect.nhs.uk/">http://www.nhsdirect.nhs.uk/</a> as
the quick advice on the phone helpline was excellent too.
</p>
        <p>
- Kids are braver than adults, as he was the calmest guy in the room when he did it.
</p>
        <p>
They say you don't appreciate something until you get it taken away, but for once
I'd like to say that free healthcare in the UK is working out pretty good for us.
I don't care about your politics, but it seems so wrong to have to worry about money
in any way whatsoever when someone you love is hurt. While we are theorectically rich
enough not to care, it matters to me at a fundamental level that everyone in the society
I live in will get this same equal treatment: What just happened has just reminded
me of that.
</p>
        <p>
- David
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=01e087e8-0a58-4003-96cb-ed36bae3338d" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Health and Money</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</link>
      <pubDate>Sun, 20 May 2007 18:56:27 GMT</pubDate>
      <description>&lt;p&gt;
My five year old son broke his arm yesterday evening. He was leaping around over the
sofas as usual with his sister when he fell awkwardly. Collecting my thoughts on this
wants me to put them out for all to read, in that:
&lt;/p&gt;
&lt;p&gt;
- I am so glad I was home. I'd been away for a while, and I wouldn't have wanted to
be hearing this on the other end of a skype call. If you are away from your family
a lot then my advice would be to fix that as quickly as you can.
&lt;/p&gt;
&lt;p&gt;
- Getting him to hospital took longer than his entire 'see doctor/treatment/get home'
cycle, mainly because we live a little out of the way (think sheep, fields etc). We
got &lt;strong&gt;superb&lt;/strong&gt; care from the local UK hospital - quick, efficient and
caring. A doctor saw him within 20 mins and they had the x-ray and plastered-arm sorted
out all within 120 minutes - amazing for a Saturday evening too. I'd also point a
hat-tip to &lt;a href="http://www.nhsdirect.nhs.uk/"&gt;http://www.nhsdirect.nhs.uk/&lt;/a&gt; as
the quick advice on the phone helpline was excellent too.
&lt;/p&gt;
&lt;p&gt;
- Kids are braver than adults, as he was the calmest guy in the room when he did it.
&lt;/p&gt;
&lt;p&gt;
They say you don't appreciate something until you get it taken away, but for once
I'd like to say that free healthcare in the UK is working out pretty good for us.
I don't care about your politics, but it seems so wrong to have to worry about money
in any way whatsoever when someone you love is hurt. While we are theorectically rich
enough not to care, it matters to me at a fundamental level that everyone in the society
I live in will get this same equal treatment: What just happened has just reminded
me of that.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=01e087e8-0a58-4003-96cb-ed36bae3338d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=01e087e8-0a58-4003-96cb-ed36bae3338d</comments>
      <category>Blogging</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I am reasonably(*) impressed with the first look at <a href="http://www.popfly.com/">Popfly</a>.
It's worth going straight to the screen-cast here rather than listening to me:
</p>
        <p>
          <a href="http://msdn.microsoft.com/vstudio/media/en/popfly/PopFlyin15.wvx">http://msdn.microsoft.com/vstudio/media/en/popfly/PopFlyin15.wvx</a>
        </p>
        <p>
My favourite line in the talk was
</p>
        <p>
'Now I'll rip GamerGirls Digg Gaming News mashup..'
</p>
        <p>
..which made me feel a little old, as I stumble to talk like that in real life.
</p>
        <p>
In my continuous attempt to suck the fun out of everything, my first thoughts were 
</p>
        <p>
'Wouldn't this make a nice data aggregation/reformatting service for technically-challenged
managers and their business data?'. 
</p>
        <p>
To be clear, I mean 'technically-challenged' not as an insult but as in the 99% of
the business world that actually know the real business, and not the mouse-jockeys
that cream off the over-head as cost-centres - the market could be huge. 
</p>
        <p>
With the right language and 'blocks', an easily accessible 'information mangler' in
this style would do very well for a lot of business systems, especially with the increase
of storing accounting/CRM data externally (MBS blocks?). Also, If it dumped out to
the 'mother-lode' (i.e. Excel) via a Sharepoint dataservice then things could be really
rocking (see, I just can't talk the mash-n-cool).
</p>
        <p>
Those still paying attention would now probably bring up now that Biztalk Server is
the current thrust for those pointy-haired number crunchers in need of data flexibility.
Biztalk is indeed very powerful but very much linked to XML Schema, and to a less
extent WDSL, which is where the problems surface when used as an unsupervised playground.
Mr Boss ain't gonna like
</p>
        <p>
'ERROR: A namespace is required for generating schema for this type'
</p>
        <p>
...after wiggling a shape around, if you get my drift. A restyled Popfly (a couple
of less ducks and, say, a serif font) would be powerful because of <strong>what it
doesn't do</strong>, rather than what all the current and powerful tools do now. 
</p>
        <p>
'SuitFly' would be a nice thing to add onto Office Live, at least as a bridge between
the desktop Office apps, Sharepoint sites and your 'data held by XYZForce.com'. The
collaboration aspect (around new blocks and, cough, bizinfo mashups) would be a nice
touch on top, and would reinforce why these kind of solutions could be 'business social'
rather than just social.
</p>
        <p>
The team mention in their <a href="http://www.popfly.com/Overview/faq.aspx">FAQ pages</a>:
</p>
        <p>
          <em>Q. Aren’t you just copying Yahoo, Google, or [insert startup name here]?</em>
        </p>
        <p>
          <em>A. If anything, we’re going back to our roots in 1975 when Microsoft originally
launched BASIC for the Altair 8080. Toolslike BASIC and Visual Basic 1.0 democratized
development by enabling users to easily build applications on DOS and Windows. We
believe we can make Popfly a great tool for building and sharing applications on the
Web.</em>
        </p>
        <p>
I see the appeal in that, but I would be tempted to go for the people that really
made Windows and Office sell originally – those spreadsheet, chart and Access pioneers
that strung enough numbers together to help their businesses: They are the ones to
keep close and looked after. Forget the polonecks, go for the suits.
</p>
        <p>
- David
</p>
        <p>
(*) To put this in perspective I thought the Apollo Moon Landings were 'neat'.
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=d75637fe-a7cc-4f18-b0bd-aecddafb9542" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Suitfly - Popfly for Suits</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</link>
      <pubDate>Sun, 20 May 2007 15:38:02 GMT</pubDate>
      <description>&lt;p&gt;
I am reasonably(*) impressed with the first look at &lt;a href="http://www.popfly.com/"&gt;Popfly&lt;/a&gt;.
It's worth going straight to the screen-cast here rather than listening to me:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/vstudio/media/en/popfly/PopFlyin15.wvx"&gt;http://msdn.microsoft.com/vstudio/media/en/popfly/PopFlyin15.wvx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
My favourite line in the talk was
&lt;/p&gt;
&lt;p&gt;
'Now I'll rip GamerGirls Digg Gaming News mashup..'
&lt;/p&gt;
&lt;p&gt;
..which made me feel a little old, as I stumble to talk like that in real life.
&lt;/p&gt;
&lt;p&gt;
In my continuous attempt to suck the fun out of everything, my first thoughts were 
&lt;/p&gt;
&lt;p&gt;
'Wouldn't this make a nice data aggregation/reformatting service for technically-challenged
managers and their business data?'. 
&lt;/p&gt;
&lt;p&gt;
To be clear, I mean 'technically-challenged' not as an insult but as in the 99% of
the business world that actually know the real business, and not the mouse-jockeys
that cream off the over-head as cost-centres - the market could be huge. 
&lt;/p&gt;
&lt;p&gt;
With the right language and 'blocks', an easily accessible 'information mangler' in
this style would do very well for a lot of business systems, especially with the increase
of storing accounting/CRM data externally (MBS blocks?). Also, If it dumped out to
the 'mother-lode' (i.e. Excel) via a Sharepoint dataservice then things could be really
rocking (see, I just can't talk the mash-n-cool).
&lt;/p&gt;
&lt;p&gt;
Those still paying attention would now probably bring up now that Biztalk Server is
the current thrust for those pointy-haired number crunchers in need of data flexibility.
Biztalk is indeed very powerful but very much linked to XML Schema, and to a less
extent WDSL, which is where the problems surface when used as an unsupervised playground.
Mr Boss ain't gonna like
&lt;/p&gt;
&lt;p&gt;
'ERROR: A namespace is required for generating schema for this type'
&lt;/p&gt;
&lt;p&gt;
...after wiggling a shape around, if you get my drift. A restyled Popfly (a couple
of less ducks and, say, a serif font) would be powerful because of &lt;strong&gt;what it
doesn't do&lt;/strong&gt;, rather than what all the current and powerful tools do now. 
&lt;/p&gt;
&lt;p&gt;
'SuitFly' would be a nice thing to add onto Office Live, at least as a bridge between
the desktop Office apps, Sharepoint sites and your 'data held by XYZForce.com'. The
collaboration aspect (around new blocks and, cough, bizinfo mashups) would be a nice
touch on top, and would reinforce why these kind of solutions could be 'business social'
rather than just social.
&lt;/p&gt;
&lt;p&gt;
The team mention in their &lt;a href="http://www.popfly.com/Overview/faq.aspx"&gt;FAQ pages&lt;/a&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Q. Aren’t you just copying Yahoo, Google, or [insert startup name here]?&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;A. If anything, we’re going back to our roots in 1975 when Microsoft originally
launched BASIC for the Altair 8080. Toolslike BASIC and Visual Basic 1.0 democratized
development by enabling users to easily build applications on DOS and Windows. We
believe we can make Popfly a great tool for building and sharing applications on the
Web.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
I see the appeal in that, but I would be tempted to go for the people that really
made Windows and Office sell originally – those spreadsheet, chart and Access pioneers
that strung enough numbers together to help their businesses: They are the ones to
keep close and looked after. Forget the polonecks, go for the suits.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;p&gt;
(*) To put this in perspective I thought the Apollo Moon Landings were 'neat'.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=d75637fe-a7cc-4f18-b0bd-aecddafb9542" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=d75637fe-a7cc-4f18-b0bd-aecddafb9542</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</wfw:commentRss>
      <title>Venn Diagram</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</link>
      <pubDate>Thu, 17 May 2007 05:00:14 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.from9till2.com/PermaLink.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785"&gt;My
squeak on the SOAP/WCF/REST/Whatever&lt;/a&gt; thing got picked up from a couple of very
different angles. It's interesting to see two so very different views on it, i.e:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.tbray.org/ongoing/When/200x/2007/05/11/WCF-REST"&gt;Exhibit A&lt;/a&gt;:
Tim Bray picked it up to add weight to&amp;nbsp;a whole other point he was making, which
seemed to involve the complete and utter destruction of Microsoft (or something).
Am I an accomplice now? That sucks for me as I've paid the rent with Microsoft technology
over the last 20 years. Actually,&amp;nbsp;I'm in Vancouver, BC at the moment and was
almost tempted to use it as an excuse to go&amp;nbsp;try chat with him over a coffee.
Unfortunately, I got a bit star-shy (XM and L shriek!!!)and&amp;nbsp;got into a self-argument
about how stalker-ish/non-English that would be and bottled it. Sad eh? I'll be on
a plane to Europe tomorrow and will probably regret it all the way...
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/dotnetinterop/archive/2007/05/15/simple-object-apology-protocol-are-we-maybe-moving-an-itsy-bitsy-bit-too-fast-here.aspx"&gt;Exhibit
B&lt;/a&gt;: The Microsoft 'All about Interop' blog on MSDN called&amp;nbsp;me out as an idiot
(in a nice way, like being ravaged by an&amp;nbsp;old sheep with soft gums) and they aren't
that far wrong. I left a comment there, but it got stuck in the tubes (so far), so
I'll do it&amp;nbsp;again here (Note: I am &lt;strong&gt;so&lt;/strong&gt; much nicer on other peoples
blogs than how I am here eh?):
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;''&lt;font face=Calibri color=#000000 size=3&gt;Hello Dino,&lt;/font&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;&lt;em&gt;Apologies for my clumsy statement 'didn't
pan out'. To clarify, what I was more implying that was more about 'SOAP' as the best/single
way to use WCF vs just using WCF in general (as a way to conflate a bunch of existing
comm stacks) is now more in question that it was a few years ago. &lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font face=Calibri color=#000000 size=3&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;&lt;em&gt;Back in the day, the mindset was that
SOAP/XSD/WSDL would/could be a universal application protocol toolset, while today
we are seeing lots of different ideas take shape, certainly more 'bare' things HTTP/POX/JSON.
Contracts and mapping them to types is certainly not the same as using SOAP as the
first-class WCF guy. I agree it's too early to tell, but I am seeing less 'bet the
farm' on SOAP than I was last year - and that's all I meant.&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;o:p&gt;
&lt;font face=Calibri color=#000000 size=3&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;
&lt;font face=Calibri color=#000000 size=3&gt;&lt;em&gt;As someone that used things like WSE/1(!)
in production, it's been a while on this road for me and it has probably warped my
perspective of time. I do understand though that from a 'WCF is now shipped' point
of view, the claim is too woolly and hand-wavy. No offense intended, and thanks for
reading the post."&lt;/em&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Ironically,&amp;nbsp;regardless of&amp;nbsp;the funny headline/title (an English&amp;nbsp;newspaper
speciality) I&amp;nbsp;didn't feel either end of the spectrum on this&amp;nbsp;was that close
to what I was trying to comment on. I also got a few very angry emails (anon, i.e.
mailinator type thing of course) from mainly the ultra-WCF side, but nothing, that
if I was president of the US, I'd have to send on to the FBI - but people do get excited
though. Passion is great, but I can&amp;nbsp;confirm to&amp;nbsp;those so keen to disagree
that my parents actually&amp;nbsp;&lt;em&gt;were&lt;/em&gt; in wedlock when I was conceived.
&lt;/p&gt;
&lt;p&gt;
Also, there are also&amp;nbsp;&lt;a href="http://appside.blogspot.com/2007/05/rest-protocols-are-service-layer.html"&gt;good
things to read and think about here&lt;/a&gt;&amp;nbsp;around this bigger subject, and I&amp;nbsp;wish
more people would comment on those too...&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=3a2c90a9-0e90-489a-9904-f61f30a8661d" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=3a2c90a9-0e90-489a-9904-f61f30a8661d</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.msdn.com/pathelland/archive/2007/05/14/i-m-glad-to-be-back.aspx">http://blogs.msdn.com/pathelland/archive/2007/05/14/i-m-glad-to-be-back.aspx</a>
        </p>
        <p>
There are few people I really look up to in the software field, mainly because I tend
to go to work in 12-inch heels, but Pat Helland is one of them.
</p>
        <p>
What I like about him, even after only meeting him in person a couple of times and
then only casually, is that he's both very smart and very humble - a rare combination.
He instils a sense of fun in something that most manage to suck the life out of.
</p>
        <p>
Every time I think I am talking/preaching too much I think how Pat would be and listen
more intently. He also has a wonderful knack of being both irreverent and of stretching
a metaphor way beyond it's sensible limit - there isn't anything pompous about his
subject matter, despite whole industries being based around its pomposity. A cool
guy way ahead of the pack.
</p>
        <p>
It looks like after an extended training sabbatical at Amazon, he's back at Microsoft.
I think they are very lucky to have him; it'll be interesting to see what he does
next.
</p>
        <p>
- David
</p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=c2b59304-0681-4bda-8697-03f993d8c0f6" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Pat Helland, Back at Microsoft</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</link>
      <pubDate>Mon, 14 May 2007 23:58:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.msdn.com/pathelland/archive/2007/05/14/i-m-glad-to-be-back.aspx"&gt;http://blogs.msdn.com/pathelland/archive/2007/05/14/i-m-glad-to-be-back.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
There are few people I really look up to in the software field, mainly because I tend
to go to work in 12-inch heels, but Pat Helland is one of them.
&lt;/p&gt;
&lt;p&gt;
What I like about him, even after only meeting him in person a couple of times and
then only casually, is that he's both very smart and very humble - a rare combination.
He instils a sense of fun in something that most manage to suck the life out of.
&lt;/p&gt;
&lt;p&gt;
Every time I think I am talking/preaching too much I think how Pat would be and listen
more intently. He also has a wonderful knack of being both irreverent and of stretching
a metaphor way beyond it's sensible limit - there isn't anything pompous about his
subject matter, despite whole industries being based around its pomposity. A cool
guy way ahead of the pack.
&lt;/p&gt;
&lt;p&gt;
It looks like after an extended training sabbatical at Amazon, he's back at Microsoft.
I think they are very lucky to have him; it'll be interesting to see what he does
next.
&lt;/p&gt;
&lt;p&gt;
- David
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=c2b59304-0681-4bda-8697-03f993d8c0f6" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=c2b59304-0681-4bda-8697-03f993d8c0f6</comments>
      <category>Architecture</category>
    </item>
    <item>
      <trackback:ping>http://www.from9till2.com/Trackback.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</trackback:ping>
      <pingback:server>http://www.from9till2.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.from9till2.com/PermaLink.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://www.from9till2.com/CommentView.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</wfw:comment>
      <wfw:commentRss>http://www.from9till2.com/SyndicationService.asmx/GetEntryCommentsRss?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
By and large I didn't see all the presentations out of Mix yet, but I did watch this
one this morning:<br />
 <br /><a href="http://sessions.visitmix.com/default.asp?event=1011&amp;session=2012&amp;pid=DEV03&amp;disc=&amp;id=1512&amp;year=2007&amp;search=DEV03">http://sessions.visitmix.com/default.asp?event=1011&amp;session=2012&amp;pid=DEV03&amp;disc=&amp;id=1512&amp;year=2007&amp;search=DEV03</a><br />
 <br />
Kudos to Microsoft for releasing them so quickly(*). (Makes it *ever* so more tempting
never to pay for a conference ticket and all that awful travel again though eh?)<br />
 <br />
I found it interesting, not so much for the new WebClient bits in WCF+1, but more
for the questions at the end. One of the things I was curious about was how Don Box
and the Connected Systems people, after all that work and code put into SOAP based
infrastructure and programming models, would jive with what is essentially a 'roll-back'
of the application protocol stack back to around 2002. Goodbye to Cockroach HTTP and
the POX, and all that.<br />
 <br />
I've paid my dues in terms of time and effort equating WebServices==SOAP, Messages==Types,
Endpoints==Contracts, so it was interesting to see what route the Microsoft team would
take in trying to reconcile the reality of what is happening in the 'consumer-able
web' and what they had spent all that time and money building.<br />
 <br />
The general theme that I picked up from the talk is that they realize the target is
moving and that fashions change: subsequently they will follow and adapt. 
<br />
 <br />
I think the 'mistake' of the Indigo cycle was trying to move a certain way (strong
typed contracts and the stack of specs on top that go with them) in advanced of what
people were wanting to use at that time. There was a lot of faith that tooling would
ease the complexity concerns and it looks like it didn't pan out for enough people.
It must be said though that a lot of ambitious claims were made about SOAP (and it's
POSTed GET) would mean as a uniform way of interacting with anything both near and
far. On retrospect it does seem an abstraction too far and couldn't be 'forced'.<br />
 <br />
This almost brings in the question that perhaps a platform vendor shouldn't actually
ever invent something new and impressive in the area of comms and interoperability
- perhaps they should just watch to see what is working and then react with what to
support? 
<br />
 <br />
While some areas of software can be truly good new ideas, that should be pushed at
people to show them a better way to do something, in the area of 'software talking
to software' it seems particularly fraught to do something that isn't being begged
for upfront.<br />
 <br />
Now Indigo (I've now permanently gone back to the cooler code-name rather than WCF,
as Silverlight sounds nicer than WPF/E, so all bets are now off) is built in such
a way to allow you to peel back the pre-cooked higher layers of abstraction, so that
you can get at the raw to build you own, but that still doesn't get away from the
fact that alot of time and effort has been spent on a model that most might not use.
Obviously the .NET 3.0 'ship vehicle' and it's slow moving Vista wave didn't exactly
help either, as it gave this 'space' to fill in of speculative features with out to
much customer 'proofs'.<br />
 <br />
One big problem with the 'add an alternative layer, now we know' approach is that
many developers equate the latest technology update to mean the latest guidance on
what to use for their problem. Another way to do things is just adding a new tree
to the jungle.<br />
 <br />
By having such a broad choice of what to use (REST, HTTP/POX, SOAP, Remoting etc.
etc.) then for the people looking for the 'one simple answer' it just gets increasingly
complex and confusing. The complexity tax of these news things are start to look like
the federal deficit - always going the wrong way.<br />
 <br />
The usual, and I think sensible, guidance message is to draw a line something like
this:
</p>
        <p>
          <font face="Courier New">&lt;Specific                
&lt;-Measure of Richness/Reach-&gt;            
General&gt;</font>
          <br />
 
</p>
        <p>
..with Specific meaning that you take as much advantage of whatever you have while
conversely reducing the generality of what you provide, i.e. compare the User Experience
and Comms stories now for the Microsoft Stacks:<br />
 <br /><font face="Courier New">&lt;Specific         
&lt;-Measure of Richness/Reach-&gt;          
General&gt;<br />
 <br />
 MFC/Win32    WinForms      WPF   
Silverlight     AJAX     HTML<br />
 Remoting      WS-*     SOAP       
ATOM       REST       
HTTP/PO*</font><br />
 
</p>
        <p>
One thing that is interesting about this Richness vs Reach argument is that the trend
seems to be always drifting to the General end of the spectrum rather than the other
way around. It would be tempted to draw the 'choice line' like this:<br />
 <br /><font face="Courier New">&lt;Specific         
&lt;-Measure of Richness/Reach-&gt;           
General&gt;<br />
Old n Busted       Stuff we have to support, Sigh       
Shiny, Look Here!</font><br />
 
</p>
        <p>
Now I wouldn't extrapolate this too far, but it is interesting. It seems like we are
in a healthy ecosystem where there are enough people in the tent to make it difficult
for the platform vendors to dictate what they want to do a priori of what's needed.
No-one is left behind, but the list of names gets longer and longer.
</p>
        <p>
Some fantastic new ideas will come out of the platform vendors, but what might happen
more and more is that they just have to pick up on what people are currently interested
in and provide something quicker/smaller to satisfy that itch.<br />
 <br />
What we'll end up with is a huge number of choices to the developer on what to use,
with the 80/20 rules that we live with today becoming increasingly hard to get right. 
</p>
        <p>
The Rich/Reach sliding scale will help at first, but then it comes with the admission
that you can really only move one way on the scale: General will be a safer bet as
starting with Specific might make you regret it, as doesn't everyone want as many
customers/users/invoicable accounts as possible one day? 
</p>
        <p>
David 
<br />
 <br />
(*) You'll need Silverlight 1.0 Beta to view the video online, although from my selfish
Windows XP perspective it was ironic because this reduced the features I had to view
it, i.e. no right mouse button menu on WMP control etc. I know what the message is
trying to be here to the Safari/Mac people wanting to view it, but I smiled at the
'lowering of the common denominator effect' already.<br /></p>
        <img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=d3fc59f9-b155-40dc-9de1-7b0171ff8785" />
        <br />
        <hr />
This weblog is sponsored by <a href="http://www.Taglocity.com">Taglocity</a>. 
</body>
      <title>Simple Object Apology Protocol</title>
      <guid isPermaLink="false">http://www.from9till2.com/PermaLink.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</guid>
      <link>http://www.from9till2.com/PermaLink.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</link>
      <pubDate>Fri, 04 May 2007 14:47:09 GMT</pubDate>
      <description>&lt;p&gt;
By and large I didn't see all the presentations out of Mix yet, but I did watch this
one this morning:&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;a href="http://sessions.visitmix.com/default.asp?event=1011&amp;amp;session=2012&amp;amp;pid=DEV03&amp;amp;disc=&amp;amp;id=1512&amp;amp;year=2007&amp;amp;search=DEV03"&gt;http://sessions.visitmix.com/default.asp?event=1011&amp;amp;session=2012&amp;amp;pid=DEV03&amp;amp;disc=&amp;amp;id=1512&amp;amp;year=2007&amp;amp;search=DEV03&lt;/a&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Kudos to Microsoft for releasing them so quickly(*). (Makes it *ever* so more tempting
never to pay for a conference ticket and all that awful travel again though eh?)&lt;br&gt;
&amp;nbsp;&lt;br&gt;
I found it interesting, not so much for the new WebClient bits in WCF+1, but more
for the questions at the end. One of the things I was curious about was how Don Box
and the Connected Systems people, after all that work and code put into SOAP based
infrastructure and programming models, would jive with what is essentially a 'roll-back'
of the application protocol stack back to around 2002. Goodbye to Cockroach HTTP and
the POX, and all that.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
I've paid my dues in terms of time and effort equating WebServices==SOAP, Messages==Types,
Endpoints==Contracts, so it was interesting to see what route the Microsoft team would
take in trying to reconcile the reality of what is happening in the 'consumer-able
web' and what they had spent all that time and money building.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
The general theme that I picked up from the talk is that they realize the target is
moving and that fashions change: subsequently they will follow and adapt. 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
I think the 'mistake' of the Indigo cycle was trying to move a certain way (strong
typed contracts and the stack of specs on top that go with them) in advanced of what
people were wanting to use at that time. There was a lot of faith that tooling would
ease the complexity concerns and it looks like it didn't pan out for enough people.
It must be said though that a lot of ambitious claims were made about SOAP (and it's
POSTed GET) would mean as a uniform way of interacting with anything both near and
far. On retrospect it does seem an abstraction too far and couldn't be 'forced'.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
This almost brings in the question that perhaps a platform vendor shouldn't actually
ever invent something new and impressive in the area of comms and interoperability
- perhaps they should just watch to see what is working and then react with what to
support? 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
While some areas of software can be truly good new ideas, that should be pushed at
people to show them a better way to do something, in the area of 'software talking
to software' it seems particularly fraught to do something that isn't being begged
for upfront.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Now Indigo (I've now permanently gone back to the cooler code-name rather than WCF,
as Silverlight sounds nicer than WPF/E, so all bets are now off) is built in such
a way to allow you to peel back the pre-cooked higher layers of abstraction, so that
you can get at the raw to build you own, but that still doesn't get away from the
fact that alot of time and effort has been spent on a model that most might not use.
Obviously the .NET 3.0 'ship vehicle' and it's slow moving Vista wave didn't exactly
help either, as it gave this 'space' to fill in of speculative features with out to
much customer 'proofs'.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
One big problem with the 'add an alternative layer, now we know' approach is that
many developers equate the latest technology update to mean the latest guidance on
what to use for their problem. Another way to do things is just adding a new tree
to the jungle.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
By having such a broad choice of what to use (REST, HTTP/POX, SOAP, Remoting etc.
etc.) then for the people looking for the 'one simple answer' it just gets increasingly
complex and confusing. The complexity tax of these news things are start to look like
the federal deficit - always going the wrong way.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
The usual, and I think sensible, guidance message is to draw a line something like
this:
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt;&amp;lt;Specific&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;-Measure of Richness/Reach-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
General&amp;gt;&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
..with Specific meaning that you take as much advantage of whatever you have while
conversely reducing the generality of what you provide, i.e. compare the User Experience
and Comms stories now for the Microsoft Stacks:&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Specific&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;-Measure of Richness/Reach-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
General&amp;gt;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;nbsp;MFC/Win32&amp;nbsp;&amp;nbsp;&amp;nbsp; WinForms&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WPF&amp;nbsp;&amp;nbsp;&amp;nbsp;
Silverlight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AJAX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTML&lt;br&gt;
&amp;nbsp;Remoting&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WS-*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SOAP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
ATOM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
HTTP/PO*&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
One thing that is interesting about this Richness vs Reach argument is that the trend
seems to be always drifting to the General end of the spectrum rather than the other
way around. It would be tempted to draw the 'choice line' like this:&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;Specific&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;-Measure of Richness/Reach-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
General&amp;gt;&lt;br&gt;
Old n Busted&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stuff we have to support, Sigh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Shiny, Look Here!&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now I wouldn't extrapolate this too far, but it is interesting. It seems like we are
in a healthy ecosystem where there are enough people in the tent to make it difficult
for the platform vendors to dictate what they want to do a priori of what's needed.
No-one is left behind, but the list of names gets longer and longer.
&lt;/p&gt;
&lt;p&gt;
Some fantastic new ideas will come out of the platform vendors, but what might happen
more and more is that they just have to pick up on what people are currently interested
in and provide something quicker/smaller to satisfy that itch.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
What we'll end up with is a huge number of choices to the developer on what to use,
with the 80/20 rules that we live with today becoming increasingly hard to get right. 
&lt;/p&gt;
&lt;p&gt;
The Rich/Reach sliding scale will help at first, but then it comes with the admission
that you can really only move one way on the scale: General will be a safer bet as
starting with Specific might make you regret it, as doesn't everyone want as many
customers/users/invoicable accounts as possible one day? 
&lt;/p&gt;
&lt;p&gt;
David 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
(*) You'll need Silverlight 1.0 Beta to view the video online, although from my selfish
Windows XP perspective it was ironic because this reduced the features I had to view
it, i.e. no right mouse button menu on WMP control etc. I know what the message is
trying to be here to the Safari/Mac people wanting to view it, but I smiled at the
'lowering of the common denominator effect' already.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.from9till2.com/aggbug.ashx?id=d3fc59f9-b155-40dc-9de1-7b0171ff8785" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
This weblog is sponsored by &lt;a href="http://www.Taglocity.com"&gt;Taglocity&lt;/a&gt;. </description>
      <comments>http://www.from9till2.com/CommentView.aspx?guid=d3fc59f9-b155-40dc-9de1-7b0171ff8785</comments>
      <category>Architecture</category>
    </item>
  </channel>
</rss>