Welcome to Sign in | Join | Help

News

  • View Simon Guest's profile on LinkedIn
Browse by Archive:




Why Architects should care about Robots...
   0 Comments  

Today, Marc Mercuri, an architect in my team, launched one of the most exciting things I've seen for sometime:  RoboChamps

image

RoboChamps is an online, virtual robotics competition that makes use of Microsoft Robotics Developer Studio 2008 and Microsoft Visual Studio 2008.  The concept of the competition is to program a series of robots to complete a number of challenges, which include a maze, the surface of Mars, and an urban environment - all of which set in a virtual environment so that you don't need specialized robotics hardware.  When you've completed the challenge, you can upload your solution to the RoboChamps site - and the winners of the leagues will face a showdown at PDC in October.

So, I can hear the question now - "Sounds good, but why should architects care about robots?"   On the surface, it's difficult to make the connection, but I would encourage you to dig deeper into some of the components included with MRDS 2008, namely the Concurrency and Coordination Runtime (CCR) and the Decentralized Software Services (DSS).  CCR provides multicore, concurrent programming support for the .NET Framework, and DSS enables you to take these concurrent components and offer them as lightweight services in a decentralized environment.  If you have chance to download the MRDS examples you'll see how they make use of both technologies.

The answer to the question therefore is how we can make use of these technologies and new concepts in software architecture - how can we use CCR to distribute workload across multiple cores, and what is possible with DSS across services on multiple machines?  I believe that these new tools will ultimately lead to several new patterns, especially in front end web farm scenarios.  In the meantime however, I look forward to seeing if you can get your robot out of that maze :)

Architecture Journal Issue 16 - Call For Papers
   0 Comments  

Integration Interchange The next issue of the Architecture Journal will be focused on Identity Architectures. As more organizations embrace a services based infrastructure, the need to manage the identities of users in an organization becomes more and more important. Issues that have been easy to manage in traditional environments need now to be considered from the perspective of services moving to the “cloud”.

This can include fundamental issues that you may even be facing now, such as internal authorization strategies; not only for employees, but how do you include partners and customers?  More complex issues may include tiered access; what data is relevant to each user or user group?  How do you secure that data?  Is all identity data relevant in any circumstance or does it depend on the role of the user at any given time? How do directories compare to claims based authentication? What happens with multipart, distributed transactions? What about auditing in various contexts?

If you have opinions that you would like to share with the architect community on identity management, here is your chance! Follow the instructions below to send an abstract before the cut-off date and you could see your thoughts and ideas shared with over 60,000 readers, translated in 5 languages, and distributed at multiple conferences around the world!

The cut-off date for abstracts for the next issue is April 21st 2008.  If you are interested in making a submission, here are the details:

How do I make a submission?

To submit an idea for a paper, please send the following:

  • A 2 – 4 paragraph abstract explaining how your paper fits the "Identity Architectures" theme of the magazine
  • A 1 – 2 paragraph bio
  • A list of previously published articles

Submissions should be made via Email to editors@architecturejournal.net

We receive many submissions for each issue, so we encourage you to put time and thought into the submission.

When will I know whether my submission is accepted?

After the call for papers has ended, you will be notified via Email as to whether your submission was successful or not.

What happens if my submission is accepted?

If accepted, you’ll have between 6 weeks to submit two drafts and a final version of your paper. These dates will be clearly communicated. Your first draft will be reviewed by an editorial board to ensure it is on message for the magazine. Your second draft and final version will be subject to both technical and copy editing.

The magazine is generally available in print and online 4 weeks after final drafts are submitted.

What are the guidelines for papers printed in the Architecture Journal?

We recommend that papers are between 3,500 and 4,500 words in length – although we have accepted shorter and longer papers in the past. The article should be submitted using Microsoft Word. Diagrams should be submitted in either Microsoft Visio or Microsoft PowerPoint, and will be reformatted for the magazine.

Do I still own the work?

Yes. We ask you to sign a release form that gives Microsoft permission to reprint the article, but ownership of the paper remains with you, the author.

Will I get paid for writing?

We do not currently reimburse authors for contributing to the Architecture Journal.

Will I get copies of the magazine as an author?

After printing you’ll be sent 10 copies of the Journal for your own use.  Additional copies can be requested.

Where can I get more information?

Check out this link.

101 x 101 Articles on Becoming an Architect
   0 Comments  

As you may have seen from previous posts, my team has been working on a set of materials for those that want to have the title of "architect" at some point in their career.  Last week we published a new set of content on MSDN:  101 x 101 articles on becoming an architect.  Think of these as a set of level 101 articles that cover all types of topics ranging from n-tier architecture, through organizational challenges, and even dealing with conflict. 

All of these articles can be found here, and were written jointly with IASA members and Microsoft over the past few months.  These articles fit into a larger skills taxonomy, which you can find on the IASA site here.

If this is for you, you may also be excited to know that we are holding a pre-conference for aspiring architects at TechEd US in June. 

I Have Seen the Future of Grocery Shopping...
   1 Comments  

...and it's from Amazon.

Seriously.

I've been happily buying books and electronics from Amazon for years, when last week I happened to stumble across Amazon's new site, Amazon Fresh.  Although it's very much in startup mode (they only offer service to certain zip codes around Seattle, USA), it's a classic example of how great user experience and service trumps lower cost alternatives.  For example:

Searching.  They have taken the simplicity and accuracy of searching from Amazon.com and applied it to grocery items online.  In addition, their site pivots across three areas for narrowing down selections - aisle (category), brand, and type (e.g. organic).  This makes searching for even the most random item a breeze.

image

Products.  Amazon Fresh is one of the few online suppliers to offer a really good selection of organic and natural foods.  It's kind of like having the online version of Whole Foods.  Also, because they don't operate a chain of stores their inventory tracking system is current - therefore, when an item is out of stock it actually says so on the site (as opposed to other online grocery retailers where they either don't deliver or substitute for something that may or may not be appropriate.)

Pre-dawn Delivery.  Order your groceries at night (I placed an order the other night at 10.40pm) and it's on your doorstep before 6am the next morning.  You don't get disturbed - all of your shopping appears in Amazon's totes on your doorstep - you return the totes with your next order.  Think of it like outsourcing your shopping overnight :)

A couple of things I would like the see them adopt:

More detailed product information. I have a child that suffers from food allergies, so reading labels is very important to check for eggs, nut traces, etc.  Many of the products listed only offer basic ingredient information - although I believe they are working on this.

Being able to search for items in your cart.  If you are putting together a long list of purchases, it's always nice to be able to search for things in your cart (when you stumble across something that would be much better).

If you live in one of their delivery areas, you should definitely check it out - you won't be disappointed.  My only hope is that it doesn't become another WebVan!

Reader SDK Released!
   0 Comments  

The Syndicated Client Experiences Starter Kit & Reader SDK (a.k.a. the same technology that we used to build the Architecture Journal Reader) has now been released on http://www.windowsclient.net

This is a great way to build offline, immersive, and searchable client applications that can aggregate multiple feeds into a single experience. 

Journal Issue 14 Now Online
   3 Comments  

A little late, but Happy New Year!  For those that subscribe to this blog to keep track of the latest with the Architecture Journal, we have just released the online articles for Issue 14 (Mobile Architecture).  You can check it out on http://www.architecturejournal.net

Microsoft SAF Recordings Now Released!
   2 Comments  

image

Each November my team holds a conference called SAF - the Strategic Architect Forum - an event where we invite the top 250 IT Architects from organizations around the world for three days of discussions and sessions.  Although the conference is in it's seventh year, being an invite-only event we traditionally haven't shared any of the presentations.  Given the quality of speakers and topics this year however, we wanted to share the content more broadly and will be releasing the video, slides, and transcripts. 

This page on the MSDN Architecture Center contains the recordings from this year - you can check out many of the great sessions we held at the conference, including keynotes from Donald Ferguson (Technical Fellow at Microsoft),  Behrooz Chitsaz (Microsoft Research), Charlie Bell (Amazon), Aber Whitcomb and Jim Benedetto (MySpace), and Paul Glen (C2 Consulting) - plus a selection of other breakout sessions. 

Microsoft Architecture Journal Issue 15 - Call For Papers
   1 Comments  

We've just put the final touches on Issue 14 of the Microsoft Architecture Journal, which goes to print later this month. As we head into the New Year, the theme of the next issue will be around The Role of an Architect. This is the first time that we are going to look at the role and our profession, and I'm excited to hear more about how you work, certification, career path choices, and the future of IT Architecture.

If you think you could write a great article for the Journal, here is your chance! Follow the instructions below to send an abstract before the cut-off date and you could see your thoughts and ideas shared with over 60,000 readers, translated in 5 languages, and distributed at multiple conferences around the world!

The cut-off date for abstracts for the next issue is January 14th 2008.  If you are interested in making a submission, here are the details:

How do I make a submission?

To submit an idea for a paper, please send the following:

  • A 2 – 4 paragraph abstract explaining how your paper fits the Role of an Architect theme of the magazine
  • A 1 – 2 paragraph bio
  • A list of previously published articles

Submissions should be made via Email to editors@architecturejournal.net

We receive many submissions for each issue, so we encourage you to put time and thought into the submission.

When will I know whether my submission is accepted?

After the call for papers has ended, you will be notified via Email as to whether your submission was successful or not.

What happens if my submission is accepted?

If accepted, you’ll have between 6 weeks to submit two drafts and a final version of your paper. These dates will be clearly communicated. Your first draft will be reviewed by an editorial board to ensure it is on message for the magazine. Your second draft and final version will be subject to both technical and copy editing.

The magazine is generally available in print and online 4 weeks after final drafts are submitted.

What are the guidelines for papers printed in the Architecture Journal?

We recommend that papers are between 3,500 and 4,500 words in length – although we have accepted shorter and longer papers in the past. The article should be submitted using Microsoft Word. Diagrams should be submitted in either Microsoft Visio or Microsoft PowerPoint, and will be reformatted for the magazine.

Do I still own the work?

Yes. We ask you to sign a release form that gives Microsoft permission to reprint the article, but ownership of the paper remains with you, the author.

Will I get paid for writing?

We do not currently reimburse authors for contributing to the Architecture Journal.

Will I get copies of the magazine as an author?

After printing you’ll be sent 10 copies of the Journal for your own use.  Additional copies can be requested.

Where can I get more information?

Check out this link.

Do Not Disturb!
   1 Comments  

Like many people, I have VOIP at home - my current provider is Vonage.  One of the features of Vonage is an international virtual number.  This gives me a local number in the UK that my family can dial, which automatically redirects to my home number here in the US.  It's relatively cheap ($4.99 per month) and makes it really easy for friends and family to get in contact.

One of the disadvantages of having an international virtual number however is that people can accidentally dial the number - and when they do, because of the time difference (8 hours between PST and GMT) it can be a somewhat inconvenient.  Let's just say that we've had about 3 or 4 wrong numbers this week, all of which have been about 2am in the morning.  Not so good if you like sleep. 

Vonage has a feature called "Do Not Disturb", which redirects all calls to voicemail - and which can be activated via their web page.  As simple as this sounds, I can be forgetful at times, so enabling this before going to bed (and disabling when I get up) can be an issue.  To overcome this I decided to put on my "web application test" hat and see if I could use Visual Studio 2008 to write an automated web test that logs into the Vonage site, and activates / deactivates this feature for me.  First, I created a new test project in VS2008, added a new test project and a new web test (from the test menu).  I recorded the action to enable the do not disturb feature:

image

I was able to strip down the required pages to just three requests (one to login, one to query for the phone number, and one to set the feature) and made sure that it worked within the IDE.  I then duplicated this test to create a second that re-enabled the feature.  (I'm sure there is a nice way of passing parameters to webtests, but just haven't worked it out yet).  The test works as follows:

The first request is a HTTP POST that submits my Vonage username and password to the site.

<Request Method="POST" Version="1.1" Url="https://secure.vonage.com/vonage-web/public/login.htm" ThinkTime="6" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="Windows-1252" ExpectedHttpStatusCode="0" ExpectedResponseUrl="https://secure.vonage.com/vonage-web/dashboard/index.htm">
  <FormPostHttpBody>
    <FormPostParameter Name="countryURLs" Value="http://www.vonage.com" RecordedValue="http://www.vonage.com" CorrelationBinding="" UrlEncode="True" />
    <FormPostParameter Name="username" Value="USERNAME" RecordedValue="USERNAME" CorrelationBinding="" UrlEncode="True" />
    <FormPostParameter Name="password" Value="PASSWORD" RecordedValue="PASSWORD" CorrelationBinding="" UrlEncode="True" />
    <FormPostParameter Name="submit.x" Value="30" RecordedValue="30" CorrelationBinding="" UrlEncode="True" />
    <FormPostParameter Name="submit.y" Value="13" RecordedValue="13" CorrelationBinding="" UrlEncode="True" />
  </FormPostHttpBody>
</Request>

The second request (this time a HTTP GET) brings up the do not disturb features page.  This is required to obtain the phone number as a FORM parameter that we use in the next request:

<Request Method="GET" Version="1.1" Url="https://secure.vonage.com/vonage-web/features/DoNotDisturb/edit.htm" ThinkTime="4" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="iso-8859-1" ExpectedHttpStatusCode="0" ExpectedResponseUrl="">
  <ExtractionRules>
    <ExtractionRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractHiddenFields, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" VariableName="1" DisplayName="Extract Hidden Fields" Description="Extract all hidden fields from the response and place them into the test context.">
      <RuleParameters>
        <RuleParameter Name="Required" Value="True" />
        <RuleParameter Name="HtmlDecode" Value="True" />
      </RuleParameters>
    </ExtractionRule>
  </ExtractionRules>
  <CorrelationExtractionRules>
    <ExtractionRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractFormField, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" VariableName="FormPostParam1.on" DisplayName="" Description="">
      <RuleParameters>
        <RuleParameter Name="Name" Value="on" />
        <RuleParameter Name="HtmlDecode" Value="True" />
        <RuleParameter Name="Required" Value="False" />
      </RuleParameters>
    </ExtractionRule>
  </CorrelationExtractionRules>
  <QueryStringParameters>
    <QueryStringParameter Name="did" Value="PHONENUM" RecordedValue="PHONENUM" CorrelationBinding="" UrlEncode="False" UseToGroupResults="False" />
    <QueryStringParameter Name="dndButton" Value="Configure" RecordedValue="Configure" CorrelationBinding="" UrlEncode="False" UseToGroupResults="False" />
  </QueryStringParameters>
</Request>

The third request is a HTTP POST that sets the Do Not Disturb feature on or off depending on the value of the "on" parameter:

<Request Method="POST" Version="1.1" Url="https://secure.vonage.com/vonage-web/features/DoNotDisturb/edit.htm" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="iso-8859-1" ExpectedHttpStatusCode="0" ExpectedResponseUrl=https://secure.vonage.com/vonage-web/features/DoNotDisturb/edit.htm?did=PHONENUM&amp;success=true&amp;settings=com.vonage.service.feature.DndSettingsDTO+%7BphoneNumber%3DPHONENUM%2C+isOn%3Dtrue%7D>
  <FormPostHttpBody>
    <FormPostParameter Name="on" Value="True" RecordedValue="true" CorrelationBinding="{{FormPostParam1.on}}" UrlEncode="True" />
    <FormPostParameter Name="phoneNumber" Value="{{$HIDDEN1.phoneNumber}}" RecordedValue="PHONENUM" CorrelationBinding="" UrlEncode="True" />
  </FormPostHttpBody>
</Request>

After the tests were complete, I put together two batch files (DNDOn.bat and DNDOff.bat) that call the webtests from the command line.  Using MSTest.exe, it's possible to run webtests from outside the IDE:

set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
"%VSINSTALLDIR%\Common7\IDE\MSTest.exe" /noresults /testcontainer:bin\debug\DNDOn.webtest

Once the batch files were working, I simply added a new scheduled tasks (in Vista, type "Task Scheduler" from the start menu to reach this) to run the DNDOn.bat file at 10pm at night, and DNDOff.bat at 7am in the morning. 

image 

(btw, this is the first time I've really used the new task scheduler in Vista.  Two things surprised me:  1.  How easy it was to create a new task that ran the first time (I have too many nightmares creating Backup batch files on NT4!).   2.  How many tasks there are enabled in Vista - I need to spend some time figuring out what these do!)

...and that was it!  A quick solution that I can deploy to my new home server that will avoid more unwanted wrong number phone calls in the middle of the night.

If you want to check it out, you can find my test file here.  You'll of course need to replace USERNAME, PASSWORD, and PHONENUM (10 digits, remember to include the 1) with your specific values for your account. 

Hierarchical View Carousel Source Code Released
   1 Comments  

Good news from Karsten's blog.  The source code for the hierarchical view carousel has been released.  I played around with this WPF code a couple of years ago and found it very useful for displaying navigable, hierarchical sets of data.

image 

As Karsten mentions, the code is based on an older drop of the framework, and is pretty crusty (his quote, not mine!) but might be worth checking out regardless.

Your Opportunity to Speak at TechEd 2008!
   4 Comments  

The call for sessions tool is now open for the Architecture track at the TechEd Developers conference (3-6 June 2008). 

This year, the Architecture track will focus on three core areas:

· Persona (for example, “What is an architect?”, “How do I become an architect?”, “What skills does an architect need?”)

· Patterns (for example, architectural patterns including patterns and practices, areas such as user experience and distributed applications, and current trends such as software + services, composite applications)

· Practice (for example, case studies, best practices, recommendations, and other architecture-related guidance you would like to share with the audience)

If you are interested in being part of the Architecture track this year, please submit a proposal as soon as possible. To do this:

1. Visit the TechEd 2008 Call for Content website.

2. Use “TEUS-Speakers” as your access code

3. Create your profile

4. Choose our conference: “Tech Ed U.S. 2008 Developers (June 3-6)” (not to be confused with the IT Pro conference a week later)

5. Select the “Architecture” track, and complete the rest of the form with your proposal.  When the call for papers closes, you’ll hear back as to whether your session was accepted.

We are looking forward to receiving your proposal!

Update!  Deadline for submitting a proposal is December 31, 2007 - 11.59pm PST!

Introducing the Architecture Journal Reader
   14 Comments  

With 13 issues and over 60,000 subscribers, you are probably already familiar with the printed and PDF versions of the Microsoft Architecture Journal.

At the Strategic Architect Forum (SAF) last week we released a new way of reading the Journal:  The Architecture Journal Reader.  Based on WPF (Windows Presentation Foundation) and the upcoming NewsReader SDK, the Architecture Journal Reader delivers an offline, immersive, and searchable reading experience for all issues of the Journal, available in 4 languages.  The Architecture Journal Reader automatically synchronizes with new content as it's released, enables annotations, includes a reading list of favorite articles, and even supports feedback on articles through a set of online forums.

You can install the beta version from here today!  Please let us know what you think!

image
Choosing the Right Platform for User Experience
   7 Comments  

Rich Application or Web Application?  ASP.NET or Sharepoint?  Regular ASPX controls or AJAX?

In sessions at conferences (most recently TechEd in Barcelona), I've been discussing the many choices that architects and developers face every day, especially when it comes to user experience.  To help get across the point, I put together a tool that helps you think about platform selection, called UXIQ.  It’s a small WPF app with a set of slider controls that you can set various criteria for user experience, and in turn be presented with recommendations for the technology or platform that is the closest fit.

The decision criteria in the tool is as follows:

Persona – Location of the user, how mobile the user is, whether the user can be trained, and how personalized the experience should be.

Application – The connectivity requirements for the application, the look and feel of the application, graphics needs, and interaction requirements.

Environment – If installation is possible on the local device/machine, integration with other software, integration with other hardware, and developer knowledge.

The tool matches this criteria to a set of data (stored in an XML file) and presents the closest three technologies that match.  You can then hover over the options to see how far off they are, and also see some more information/links about the technology.  Do remember that the values represented in this tool are my opinion, based on my personal experience - if you want change the values or add/remove technologies, feel free to edit the XML data file as appropriate. 

You can find the tool here - to run, you'll require .NET 3.5 runtime which can be downloaded here.  If you are interested how the tool works, the source code for the application can be found here.

Architecture Journal - Issue 13 Live!
   2 Comments  

Software + Services In case you missed it, Issue 13 of the Architecture Journal is now live here in online format.  The theme for this issue is Software + Services, and includes articles on the Internet Service Bus, Astoria,  Software + Services consumption for Enterprise IT, Enterprise Mashups, Microsoft Office as a Platform for Software + Services, and A Planet ruled by Software Architectures.

A highlight for me in this issue is an interview with Ray Ozzie, Microsoft's Chief Software Architect.  I was fortunate enough to catch up with Ray and get an insight into his vision of Software + Services (as he announced at Mix this year), as well as some of his views on software architecture. 

Hope you enjoy the interview, and this issue - and look for Issue 14 coming in the New Year!

Different Perspectives on GTD
   1 Comments  

What I love about GTD (Getting Things Done) is that everyone has their own take on what works for them.  I often find myself refactoring my own GTD system every month or so with minor tweaks that make things a little more efficient.

Josh Fialkoff has a nice post on different methodologies and tools other GTDers use.  He says that my approach of having an Outlook category that is both a context and a project assigned to a single task is a little confusing, but hey, it's a system that's worked for me for some time now.  It does cause some duplication if you look at your task list holistically, but I find it useful to be able to skew either based on context (I'm at home, what can I do?) or project (I need to get moving on Project X, what's next?).  Moral of the post?  If you are using GTD, look at other people to see how they work, but ultimately the system you create will be the best for you. 

More Posts Next page »