<?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>Jon Flanders' Blog</title>
    <link>http://www.masteringbiztalk.com/blogs/jon/</link>
    <description />
    <language>en-us</language>
    <copyright>Jon Flanders</copyright>
    <lastBuildDate>Sun, 17 May 2009 16:11:55 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>jon.flanders@hotmail.com</managingEditor>
    <webMaster>jon.flanders@hotmail.com</webMaster>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=4f782b5e-6a14-48d9-b183-79967b4d7fd9</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,4f782b5e-6a14-48d9-b183-79967b4d7fd9.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,4f782b5e-6a14-48d9-b183-79967b4d7fd9.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=4f782b5e-6a14-48d9-b183-79967b4d7fd9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Had a blast last week at TechEd – if you came to one of my sessions – here is the
code as promised:
</p>
        <p>
          <a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/SOA302_Demos.zip">REST
- SOA302_Demos.zip (342.61 KB)</a>
          <br />
          <a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/SOA303_Demos.zip">Busy
Developers Guide to WCF - SOA303_Demos.zip (424.64 KB)</a>
        </p>
        <p>
Feel free to contact me through my blog if you have questions – or email me – jon.flanders
– at the evil gmail.com ;-)
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=4f782b5e-6a14-48d9-b183-79967b4d7fd9" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>Code from TechEd US 2009</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,4f782b5e-6a14-48d9-b183-79967b4d7fd9.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,4f782b5e-6a14-48d9-b183-79967b4d7fd9.aspx</link>
      <pubDate>Sun, 17 May 2009 16:11:55 GMT</pubDate>
      <description>&lt;p&gt;
Had a blast last week at TechEd – if you came to one of my sessions – here is the
code as promised:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/SOA302_Demos.zip"&gt;REST
- SOA302_Demos.zip (342.61 KB)&lt;/a&gt;
&lt;br /&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/SOA303_Demos.zip"&gt;Busy
Developers Guide to WCF - SOA303_Demos.zip (424.64 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Feel free to contact me through my blog if you have questions – or email me – jon.flanders
– at the evil gmail.com ;-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=4f782b5e-6a14-48d9-b183-79967b4d7fd9" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,4f782b5e-6a14-48d9-b183-79967b4d7fd9.aspx</comments>
      <category>REST</category>
      <category>WCF</category>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Movie was just awesome.  Maybe one of the best movies of all time.  Really
ever.
</p>
        <p>
If you are in LA for TechEd you have a moral obligation to go see Star Trek - at the
Arclight Cinerama Dome Hollywood -<a href="http://tinyurl.com/ca3b3o">http://tinyurl.com/ca3b3o</a>. 
The Arclight is really the best theater I've ever been too.  Leather *assigned*
seats, no talkers (well almost never any talkers)  great projection and sound
in every theater.  
</p>
        <p>
If you are into music - go next door to Ameoba - its an old school record store (and
there aren't many of those left).
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>If you are in LA for TechEd - also a Star Trek movie review</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4.aspx</link>
      <pubDate>Mon, 11 May 2009 17:48:45 GMT</pubDate>
      <description>&lt;p&gt;
Movie was just awesome.&amp;nbsp; Maybe one of the best movies of all time.&amp;nbsp; Really
ever.
&lt;/p&gt;
&lt;p&gt;
If you are in LA for TechEd you have a moral obligation to go see Star Trek - at the
Arclight Cinerama Dome Hollywood -&lt;a href="http://tinyurl.com/ca3b3o"&gt;http://tinyurl.com/ca3b3o&lt;/a&gt;.&amp;nbsp;
The Arclight is really the best theater I've ever been too.&amp;nbsp; Leather *assigned*
seats, no talkers (well almost never any talkers)&amp;nbsp; great projection and sound
in every theater.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
If you are into music - go next door to Ameoba - its an old school record store (and
there aren't many of those left).
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,4ba0e616-d0a1-4c5b-b7d4-64f3be289ac4.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=7c99aa45-d60e-4940-92df-10653c528610</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,7c99aa45-d60e-4940-92df-10653c528610.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,7c99aa45-d60e-4940-92df-10653c528610.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=7c99aa45-d60e-4940-92df-10653c528610</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm super excited to be doing two talks at <a href="http://vslive.com/2009/lasvegas/" target="_blank">VSLive
Vegas</a> on Oslo.  If you register with code  S9V10  you can get and
all-access <b>Passport Package for just $1,295</b>, a savings of $400.00 off the standard
price of $1,695.
</p>
        <p>
Register now and I'll see you in Vegas!
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=7c99aa45-d60e-4940-92df-10653c528610" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>VSLive - Las Vegas!</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,7c99aa45-d60e-4940-92df-10653c528610.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,7c99aa45-d60e-4940-92df-10653c528610.aspx</link>
      <pubDate>Wed, 08 Apr 2009 22:43:53 GMT</pubDate>
      <description>&lt;p&gt;
I'm super excited to be doing two talks at &lt;a href="http://vslive.com/2009/lasvegas/" target="_blank"&gt;VSLive
Vegas&lt;/a&gt; on Oslo.&amp;nbsp; If you register with code&amp;nbsp; S9V10&amp;nbsp; you can get and
all-access &lt;b&gt;Passport Package for just $1,295&lt;/b&gt;, a savings of $400.00 off the standard
price of $1,695.
&lt;/p&gt;
&lt;p&gt;
Register now and I'll see you in Vegas!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=7c99aa45-d60e-4940-92df-10653c528610" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,7c99aa45-d60e-4940-92df-10653c528610.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=017d690d-fb37-4d6f-9a6a-9f92e1c498c0</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,017d690d-fb37-4d6f-9a6a-9f92e1c498c0.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,017d690d-fb37-4d6f-9a6a-9f92e1c498c0.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=017d690d-fb37-4d6f-9a6a-9f92e1c498c0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Funny video - <a title="http://www.microsoft.com/net/wcf/champ" href="http://www.microsoft.com/net/wcf/champ">http://www.microsoft.com/net/wcf/champ</a>. 
I wonder if they will have a WCF REST vs SOAP version (you know who I'd be betting
on :))
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=017d690d-fb37-4d6f-9a6a-9f92e1c498c0" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>WCF "Champ"</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,017d690d-fb37-4d6f-9a6a-9f92e1c498c0.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,017d690d-fb37-4d6f-9a6a-9f92e1c498c0.aspx</link>
      <pubDate>Thu, 02 Apr 2009 22:21:04 GMT</pubDate>
      <description>&lt;p&gt;
Funny video - &lt;a title="http://www.microsoft.com/net/wcf/champ" href="http://www.microsoft.com/net/wcf/champ"&gt;http://www.microsoft.com/net/wcf/champ&lt;/a&gt;.&amp;nbsp;
I wonder if they will have a WCF REST vs SOAP version (you know who I'd be betting
on :))
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=017d690d-fb37-4d6f-9a6a-9f92e1c498c0" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,017d690d-fb37-4d6f-9a6a-9f92e1c498c0.aspx</comments>
      <category>REST</category>
      <category>WCF</category>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=17ef5857-7e85-446f-879b-54e6f6bf96b7</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,17ef5857-7e85-446f-879b-54e6f6bf96b7.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,17ef5857-7e85-446f-879b-54e6f6bf96b7.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=17ef5857-7e85-446f-879b-54e6f6bf96b7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thanks Nick - <a href="http://techfortesco.blogspot.com/2009/04/tescocom-api-to-become-more-restful.html">http://techfortesco.blogspot.com/2009/04/tescocom-api-to-become-more-restful.html</a></p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=17ef5857-7e85-446f-879b-54e6f6bf96b7" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>Got a very nice book review</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,17ef5857-7e85-446f-879b-54e6f6bf96b7.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,17ef5857-7e85-446f-879b-54e6f6bf96b7.aspx</link>
      <pubDate>Thu, 02 Apr 2009 22:19:27 GMT</pubDate>
      <description>&lt;p&gt;
Thanks Nick - &lt;a href="http://techfortesco.blogspot.com/2009/04/tescocom-api-to-become-more-restful.html"&gt;http://techfortesco.blogspot.com/2009/04/tescocom-api-to-become-more-restful.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=17ef5857-7e85-446f-879b-54e6f6bf96b7" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,17ef5857-7e85-446f-879b-54e6f6bf96b7.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=04569c6a-3b6e-4e68-8222-d59f9a5bfbe3</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,04569c6a-3b6e-4e68-8222-d59f9a5bfbe3.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,04569c6a-3b6e-4e68-8222-d59f9a5bfbe3.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=04569c6a-3b6e-4e68-8222-d59f9a5bfbe3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Get it at the Oslo Dev center <a href="http://msdn.microsoft.com/en-us/oslo/default.aspx">http://msdn.microsoft.com/en-us/oslo/default.aspx</a> 
(link in the middle box).  I just saw <a href="http://www.sellsbrothers.com" target="_blank">Chris</a> and <a href="http://www.douglasp.com/" target="_blank">Doug</a> do
a talk using this at Mix09.  I think its a very interesting example of how using
a DSL can simplify developer tasks.
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=04569c6a-3b6e-4e68-8222-d59f9a5bfbe3" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>MUrl – a DSL and runtime for exercising HTTP</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,04569c6a-3b6e-4e68-8222-d59f9a5bfbe3.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,04569c6a-3b6e-4e68-8222-d59f9a5bfbe3.aspx</link>
      <pubDate>Fri, 20 Mar 2009 17:39:34 GMT</pubDate>
      <description>&lt;p&gt;
Get it at the Oslo Dev center &lt;a href="http://msdn.microsoft.com/en-us/oslo/default.aspx"&gt;http://msdn.microsoft.com/en-us/oslo/default.aspx&lt;/a&gt;&amp;#160;
(link in the middle box).&amp;#160; I just saw &lt;a href="http://www.sellsbrothers.com" target="_blank"&gt;Chris&lt;/a&gt; and &lt;a href="http://www.douglasp.com/" target="_blank"&gt;Doug&lt;/a&gt; do
a talk using this at Mix09.&amp;#160; I think its a very interesting example of how using
a DSL can simplify developer tasks.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=04569c6a-3b6e-4e68-8222-d59f9a5bfbe3" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,04569c6a-3b6e-4e68-8222-d59f9a5bfbe3.aspx</comments>
      <category>M</category>
      <category>MGrammar</category>
      <category>Oslo</category>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=f00bfe93-22e4-4ca8-abe5-b1293dd5827c</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,f00bfe93-22e4-4ca8-abe5-b1293dd5827c.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,f00bfe93-22e4-4ca8-abe5-b1293dd5827c.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=f00bfe93-22e4-4ca8-abe5-b1293dd5827c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just discovered that in Chapter 11 - my code for generating ETags has a bug. 
The code needs to wrap the ETag in a set of quotes:
</p>
        <div>
          <pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
            <span style="color: #0000ff">string</span> GenerateETag(User
u) { <span style="color: #0000ff">byte</span>[] bytes = Encoding.UTF8.GetBytes(u.UserId
+ u.LastModified.ToString()); <span style="color: #0000ff">byte</span>[] hash = MD5.Create().ComputeHash(bytes); <span style="color: #0000ff">string</span> etag
= Convert.ToBase64String(hash); <span style="color: #0000ff">return</span><span style="color: #0000ff">string</span>.Format(<span style="color: #006080">"\"{0}\""</span>,
etag); }</pre>
        </div>
        <div>Sorry - as I always say "Hi - I'm Jon, I'm a developer, and I write code with
bugs" ;)
</div>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=f00bfe93-22e4-4ca8-abe5-b1293dd5827c" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>Problem with the ETag code in my book</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,f00bfe93-22e4-4ca8-abe5-b1293dd5827c.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,f00bfe93-22e4-4ca8-abe5-b1293dd5827c.aspx</link>
      <pubDate>Wed, 18 Mar 2009 15:53:38 GMT</pubDate>
      <description>&lt;p&gt;
I just discovered that in Chapter 11 - my code for generating ETags has a bug.&amp;nbsp;
The code needs to wrap the ETag in a set of quotes:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; GenerateETag(User
u) { &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[] bytes = Encoding.UTF8.GetBytes(u.UserId
+ u.LastModified.ToString()); &lt;span style="color: #0000ff"&gt;byte&lt;/span&gt;[] hash = MD5.Create().ComputeHash(bytes); &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; etag
= Convert.ToBase64String(hash); &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #006080"&gt;"\"{0}\""&lt;/span&gt;,
etag); }&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Sorry - as I always say "Hi - I'm Jon, I'm a developer, and I write code with
bugs" ;)
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=f00bfe93-22e4-4ca8-abe5-b1293dd5827c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,f00bfe93-22e4-4ca8-abe5-b1293dd5827c.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Its available now on <a href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=WCF%20REST&amp;referringTitle=Home" target="_blank">Code</a>plex 
- I showed off both the client and server pieces of the starter kit at my full-day
REST seminar at SDWest this week.   There are some very useful features
in the kit like:
</p>
        <ul>
          <li>
WebProtocolException and an IErrorHandler implementation that returns correct error
codes 
</li>
          <li>
The HttpClient class and the "Paste as Xml Serializable" feature to help minimize
the work necessary when building RESTful clients</li>
        </ul>
        <p>
Those are just two of my favorites but there are a lot more.  I'll be using the
HttpClient to help do Conditional GET when I do my Caching in REST talk next Friday
at <a href="https://content.visitmix.com/2009/Sessions/" target="_blank">Mix</a>! 
If you are going to be in Vegas - some by and say hello.
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>New version of the REST starter kit</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f.aspx</link>
      <pubDate>Fri, 13 Mar 2009 14:18:12 GMT</pubDate>
      <description>&lt;p&gt;
Its available now on &lt;a href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=WCF%20REST&amp;amp;referringTitle=Home" target="_blank"&gt;Code&lt;/a&gt;plex&amp;nbsp;
- I showed off both the client and server pieces of the starter kit at my full-day
REST seminar at SDWest this week.&amp;nbsp;&amp;nbsp; There are some very useful features
in the kit like:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
WebProtocolException and an IErrorHandler implementation that returns correct error
codes 
&lt;li&gt;
The HttpClient class and the "Paste as Xml Serializable" feature to help minimize
the work necessary when building RESTful clients&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Those are just two of my favorites but there are a lot more.&amp;nbsp; I'll be using the
HttpClient to help do Conditional GET when I do my Caching in REST talk next Friday
at &lt;a href="https://content.visitmix.com/2009/Sessions/" target="_blank"&gt;Mix&lt;/a&gt;!&amp;nbsp;
If you are going to be in Vegas - some by and say hello.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,d6bcdf40-4c5d-4d8a-bf49-d9564a4e8e5f.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=518ce617-1de9-4097-af9e-37fe80689fef</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,518ce617-1de9-4097-af9e-37fe80689fef.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,518ce617-1de9-4097-af9e-37fe80689fef.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=518ce617-1de9-4097-af9e-37fe80689fef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
That is all :)
</p>
        <a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/RESTDESIGN.pdf">RESTDESIGN.pdf
(998.26 KB)</a>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=518ce617-1de9-4097-af9e-37fe80689fef" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>Slides from my REST talk at SDWest</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,518ce617-1de9-4097-af9e-37fe80689fef.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,518ce617-1de9-4097-af9e-37fe80689fef.aspx</link>
      <pubDate>Thu, 12 Mar 2009 00:12:38 GMT</pubDate>
      <description>&lt;p&gt;
That is all :)
&lt;/p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/RESTDESIGN.pdf"&gt;RESTDESIGN.pdf
(998.26 KB)&lt;/a&gt;&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=518ce617-1de9-4097-af9e-37fe80689fef" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,518ce617-1de9-4097-af9e-37fe80689fef.aspx</comments>
      <category>REST</category>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=d92273a9-f85f-442a-890b-e9c6e75168dd</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d92273a9-f85f-442a-890b-e9c6e75168dd.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,d92273a9-f85f-442a-890b-e9c6e75168dd.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=d92273a9-f85f-442a-890b-e9c6e75168dd</wfw:commentRss>
      <title>Programming against M</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d92273a9-f85f-442a-890b-e9c6e75168dd.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d92273a9-f85f-442a-890b-e9c6e75168dd.aspx</link>
      <pubDate>Sun, 08 Mar 2009 01:22:02 GMT</pubDate>
      <description>&lt;p&gt;
Over on the Oslo forums there have been a few questions about how to interact with
M (specifically MSchema) programmatically. I've been doing this quite a bit creating &lt;a href="http://www.pluralsight.com/main/ilt/Course.aspx?id=AP31"&gt;PluralSight's
Oslo course&lt;/a&gt;, as well as working on various samples.
&lt;/p&gt;
&lt;p&gt;
What I'm going to do is create an in-memory representation of one or more M files
by using the M Compiler - which is clearly named as Compiler (it in the Microsoft.M
namespace). Compiler has a couple of methods, one is aptly named Compile, which I'm
not going to use in this sample. Compile creates a CompilationResults object that
not only has the in-memory parsed representation of the MSchema, it also has the in-memory
representation of the Database that would be created if you used mx.exe to deploy
the M to the database.
&lt;/p&gt;
&lt;p&gt;
Instead I'm going to use Compiler.Parse, because I'm only interested in the M in-memory
representations at the moment (not the database objects). I need to reference three
assemblies to get this to work: System.Xaml.dll, System.DataFlow.dll, and Microsoft.M.Framework.dll.
To get Compiler to be happy, I have to pass it a CompilerOptions object which is essentially
the arguments to the compiler. I'm going to actually parse the provided M sources
in the SDK for the Repository itself (found in the OSLOInstallDir\Models directory
as raw M files with a M project thrown in as well). 
&lt;/p&gt;
&lt;div&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; dir
= &lt;span style="color: #006080"&gt;@"C:\Program Files (x86)\Microsoft Oslo SDK 1.0\Models"&lt;/span&gt;;
CompilerOptions cops = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CompilerOptions();
cops.IncludeStandardLibrary = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; file &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; Directory.GetFiles(dir, &lt;span style="color: #006080"&gt;"*.m"&lt;/span&gt;,
SearchOption.AllDirectories)) { CompilerInput cinput = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CompilerInput();
cinput.Name = Path.GetFileNameWithoutExtension(file); cinput.Reader = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StreamReader(file,
Encoding.UTF8, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;); cops.Sources.Add(cinput);
} CompilationResults cresults = Compiler.Parse(cops);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
After I get the CompilationResults back, I can loop and party on the CompilationResults.ParsedSources.Modules
collection. This will be the collection of MSchema modules found in the source directory.
&lt;/p&gt;
&lt;p&gt;
To get at the actual M artifacts, for each Module I need to loop its Members property.
Members is of type ICollection&lt;IDeclaration&gt;
. IDeclaration is the interface that all Module members implement. If I use Reflector
(such a handy tool) I can see all the types that implement this interface:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/WindowsLiveWriter/ProgrammingagainstM_EA5C/idecs_2.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="idecs" src="http://www.masteringbiztalk.com/blogs/jon/content/binary/WindowsLiveWriter/ProgrammingagainstM_EA5C/idecs_thumb.png" width="244" height="205"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I put a red arrow next to the two really interesting implementations - ExtentDeclaration
and TypeDeclaration. If I had the following M, I'd get one of each object:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;module MFun
{
   type foo : {
    id : Integer32 = AutoNumber();
    data : Text;
} &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; identity
id; foos : foo*; }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
In this case foo is a TypeDeclaration, and foos is an ExtentDeclaration. This example
is pretty easy, but because MSchema is flexible, things can get ugly very quickly. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Where things get ugly is when you want to follow the trail further than just the top
level object. What if for example I wanted to find out the definition for each ExtentDeclaration.
Let me take another example:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;module Models1
{
    Model : 
    {
        Id : Integer64 = AutoNumber();
        Name : Text;
    }* &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; identity
Id; } module Models2 { Model :( { Id : Integer64 = AutoNumber(); Name : Text; } &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; identity
Id)*; }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
In this sample I'd have two Modules - each with a single ExtentDeclaration. But the
first ExtentDeclaration's Type property is a ParamaterizedExpression. A ParameterizedExpression
has an Arguments collection, and that's where you can get back to the actual definition.
In this case its ParameterizedExpression is made up of two arguments: one is a CollectionType
that shows me the {Id, Name} structure, and the other is another ParamaterizedExpression
that is the definition of the where statement. The second Module (Models2) has a single
ExtentDeclaration, but its Type is Collection (because of the parenthesis and the
way the MSchema is parsed). At the end of the day these two extents really are the
*same* semantically - but because of the slightly different syntax - the object model
ends up looking different.
&lt;/p&gt;
&lt;p&gt;
If I where to parse my "foo" example, I'd end up with one Module with two members,
and if I wanted to figure out where the definition of the ExtentDeclaration came from,
I'd have to go down the object model until I found the type declaration for the collection
type that foos is made up of.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/WindowsLiveWriter/ProgrammingagainstM_EA5C/types_2.png" target="_blank"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="types" src="http://www.masteringbiztalk.com/blogs/jon/content/binary/WindowsLiveWriter/ProgrammingagainstM_EA5C/types_thumb.png" width="802" height="290"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here is some code (included in the project you can download at the end) that finds
the type name for every ExtentDeclaration in a Module, at least using all the various
M sources I have :) (That is - it works on my machine).
&lt;/p&gt;
&lt;div&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; FindExtentTypeName(ExtentDeclaration
extent) { &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; name = &lt;span style="color: #006080"&gt;"Not
Found"&lt;/span&gt;; var et = extent.Type &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; Microsoft.M.CollectionType; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (et
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) { &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (et.ElementType &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; ParameterizedExpression)
{ var theExpression = et.ElementType &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; ParameterizedExpression; &lt;span style="color: #008000"&gt;//check
to see if expression refers to a type&lt;/span&gt; var results = (from arg &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; theExpression.Arguments &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; arg.GetType()
== &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(DeclarationReference) select arg); &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (results
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; &amp;&amp; results.Count() &gt; 0)&lt;span style="color: #008000"&gt;//we
have an extent&lt;/span&gt; { var dr = results.First() &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; DeclarationReference; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (dr
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) { name = dr.Name; } } &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {
name= extent.Name.Value; } }&lt;span style="color: #008000"&gt;//direct extent&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (et.ElementType &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; DeclarationReference)
{ name = ((DeclarationReference)et.ElementType).Name; } } &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; {
var parm = extent.Type &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; ParameterizedExpression; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (parm
!= &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) { CollectionType collectionType = (from
ex &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; parm.Arguments &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; ex.GetType()
== &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(CollectionType) select ex).First() &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; CollectionType; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (collectionType.ElementType &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; EntityType)
{ name = extent.Name.Value; } &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (collectionType.ElementType &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; DeclarationReference)
{ name = ((DeclarationReference)collectionType.ElementType).Name; } } } &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; name;
} }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
So the output looks like this:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/WindowsLiveWriter/ProgrammingagainstM_EA5C/output_2.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="output" src="http://www.masteringbiztalk.com/blogs/jon/content/binary/WindowsLiveWriter/ProgrammingagainstM_EA5C/output_thumb.png" width="244" height="165"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Happy M parsing.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/ProgrammingM.zip"&gt;ProgrammingM.zip
(16.12 KB)&lt;/a&gt;&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=d92273a9-f85f-442a-890b-e9c6e75168dd" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,d92273a9-f85f-442a-890b-e9c6e75168dd.aspx</comments>
      <category>M</category>
      <category>Oslo</category>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=a17ba635-0319-4c14-9b12-4e8c17880a2c</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,a17ba635-0319-4c14-9b12-4e8c17880a2c.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,a17ba635-0319-4c14-9b12-4e8c17880a2c.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=a17ba635-0319-4c14-9b12-4e8c17880a2c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Google, in an unsurprising move is retiring its <a href="http://blogoscoped.com/archive/2009-03-03-n84.html" target="_blank">SOAP
API</a>.  Just like Microsoft and Azure (although I have to think the people
at Google knew this before the people at Microsoft as a general proposition) things
are moving the REST way.  
</p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=a17ba635-0319-4c14-9b12-4e8c17880a2c" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>Google removes SOAP API</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,a17ba635-0319-4c14-9b12-4e8c17880a2c.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,a17ba635-0319-4c14-9b12-4e8c17880a2c.aspx</link>
      <pubDate>Sun, 08 Mar 2009 01:15:26 GMT</pubDate>
      <description>&lt;p&gt;
Google, in an unsurprising move is retiring its &lt;a href="http://blogoscoped.com/archive/2009-03-03-n84.html" target="_blank"&gt;SOAP
API&lt;/a&gt;.&amp;nbsp; Just like Microsoft and Azure (although I have to think the people
at Google knew this before the people at Microsoft as a general proposition) things
are moving the REST way.&amp;nbsp; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=a17ba635-0319-4c14-9b12-4e8c17880a2c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,a17ba635-0319-4c14-9b12-4e8c17880a2c.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.masteringbiztalk.com/blogs/jon/Trackback.aspx?guid=5faf4397-af9e-4727-adbb-8c8300f72441</trackback:ping>
      <pingback:server>http://www.masteringbiztalk.com/blogs/jon/pingback.aspx</pingback:server>
      <pingback:target>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,5faf4397-af9e-4727-adbb-8c8300f72441.aspx</pingback:target>
      <dc:creator>Jon Flanders</dc:creator>
      <wfw:comment>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,5faf4397-af9e-4727-adbb-8c8300f72441.aspx</wfw:comment>
      <wfw:commentRss>http://www.masteringbiztalk.com/blogs/jon/SyndicationService.asmx/GetEntryCommentsRss?guid=5faf4397-af9e-4727-adbb-8c8300f72441</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Had two great groups of attendees for my talks on Oslo and REST.
</p>
        <p>
Thanks a lot  - and please fill out the evals, they do help shape who speaks
and on what.  Of course if you didn't like my session, you can feel free not
to fill out the eval ;-)
</p>
        <p>
Demos for the talks:
</p>
        <p>
          <a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/Oslo.zip" target="_blank">Oslo</a>
        </p>
        <p>
          <a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/RESTDEMO.zip" target="_blank">REST</a>
        </p>
        <img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=5faf4397-af9e-4727-adbb-8c8300f72441" />
        <br />
        <hr />
Check out my new book on <a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206">REST</a>. 
</body>
      <title>Demos from VSLive SF</title>
      <guid isPermaLink="false">http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,5faf4397-af9e-4727-adbb-8c8300f72441.aspx</guid>
      <link>http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,5faf4397-af9e-4727-adbb-8c8300f72441.aspx</link>
      <pubDate>Wed, 25 Feb 2009 21:27:24 GMT</pubDate>
      <description>&lt;p&gt;
Had two great groups of attendees for my talks on Oslo and REST.
&lt;/p&gt;
&lt;p&gt;
Thanks a lot&amp;#160; - and please fill out the evals, they do help shape who speaks
and on what.&amp;#160; Of course if you didn't like my session, you can feel free not
to fill out the eval ;-)
&lt;/p&gt;
&lt;p&gt;
Demos for the talks:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/Oslo.zip" target="_blank"&gt;Oslo&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.masteringbiztalk.com/blogs/jon/content/binary/RESTDEMO.zip" target="_blank"&gt;REST&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.masteringbiztalk.com/blogs/jon/aggbug.ashx?id=5faf4397-af9e-4727-adbb-8c8300f72441" /&gt;
&lt;br /&gt;
&lt;hr /&gt;
Check out my new book on &lt;a href="http://www.amazon.com/RESTful-NET-Jon-Flanders/dp/0596519206"&gt;REST&lt;/a&gt;. </description>
      <comments>http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,5faf4397-af9e-4727-adbb-8c8300f72441.aspx</comments>
    </item>
  </channel>
</rss>