<?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:georss="http://www.georss.org/georss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Mick's Breeze Blogs - Biztalk/Sharepoint/... - TechTalk</title>
    <link>http://blogs.breeze.net/mickb/</link>
    <description>Things hard and not so hard....</description>
    <language>en-us</language>
    <copyright>Breeze</copyright>
    <lastBuildDate>Tue, 26 Apr 2011 13:33:52 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>mickb@breezetraining.com.au</managingEditor>
    <webMaster>mickb@breezetraining.com.au</webMaster>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=eed3722c-aef6-42e1-9ea5-6049a367a8d5</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=eed3722c-aef6-42e1-9ea5-6049a367a8d5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, I thought I’d share something that captivated me on this rainy Easter day
and that was
</p>
        <p>
          <strong>Visual Studio Asynchronous Programming - </strong>
          <a title="http://msdn.microsoft.com/en-au/vstudio/async" href="http://msdn.microsoft.com/en-au/vstudio/async">
            <strong>http://msdn.microsoft.com/en-au/vstudio/async</strong>
          </a>
          <br />
(you’ll need VS2010 + SP1 before you grab the CTP)<br />
There’s a new improved compiler + an extended library for us.
</p>
        <p>
Hands up who’s done async programming in either VB.NET or C#??? It’s a pain! Thread
management, Main UI threads can only update certain objects, passing values between
main + background threads, determining whether a thread has completed its tasks… and
so on… 
</p>
        <p>
Basically all these ‘issues’ keep us from delving further into the world of asynchronous
programming cause it very rapidly becomes complex just managing the two worlds – sync
+ async.
</p>
        <p>
          <strong>Today I was pleasantly surprised!!!</strong>
        </p>
        <p>
About a year ago I saw a great presentation on F# and I was amazed at how if they
wanted to run a bit of code async it was simple an extra character as in:
</p>
        <p>
set results = …..   &lt;-sync
</p>
        <p>
set results! = ….  &lt;- run this async
</p>
        <p>
(don’t quote me on the above, but it’s something like that – let’s call it pseudo
code)
</p>
        <p>
          <strong>Why are we interested in this?</strong> – that’s always the first question
to ask when investigating. Too many times we here ‘this is really cool’ and ‘check
this cool software out’ etc… but the real reason of WHY do we want to go down this
road is never answered. 
</p>
        <p>
On a ‘developers machine’ looking at 5 items, running a single test client – you’d
have to say “<strong>works on my machine” </strong>and you’d have no need to async
anything. True. Let’s move beyond our beloved developer box and think about UAT/PROD
environments and what your code is doing.<br /><br />
What happens if 4 concurrent requests come along – how is your code going to perform?
(As developers we’d be thinking …’it’s in the hands of IIS, not my issue’ :) )<br />
(I recently was presented with a solution that ran across 20 odd servers, the answer
to everything was get more hardware to make the app more performant, scalable etc
– couldnt be the code.)
</p>
        <p>
So as the requests start to build (don’t know an exact number but let’s say 100/sec),
what is happening to your code? how often do we sit down with profiling tools on our
code in this space? must be the disks..slow…and as always we have definitive proof <strong>works
on my machine</strong> says the developer!
</p>
        <p>
It’s not until we see our code running under load that we get an appreciation for
where things could be improved and are causing grief for not only IIS but other systems
as well.
</p>
        <p>
          <strong>Scalability, performance and scalability</strong> – single threaded app/service
vs multi-threaded. Multi-threaded tend to win all the time.
</p>
        <p>
Let me give you a couple of suggestions where this stuff is great:
</p>
        <ol>
          <li>
As part of a WF/WCF/Class where you want to ‘push’ some processing into the background
– critical things can be done upfront, and you can push some of the ‘other stuff’
into the background.<br /></li>
          <li>
Take advantage of some of the great multi-core/multi-cpu Servers out there – single
threaded tend to run on the same core on the same CPU (known as thread affinity)</li>
        </ol>
        <p>
Anyway enough jabbering from me and let’s see some of the hidden gems…
</p>
        <p>
          <strong>Async Programming Framework</strong>
        </p>
        <p>
Let me show you a couple of examples (from my set):
</p>
        <p>
1. <strong>Fetching a webpage</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb.png" width="808" height="247" />
          </a>
        </p>
        <p>
Here I go off to twitter and search for all the BizTalk items.
</p>
        <p>
Couple of things to notice 
<br />
- <strong>…Async</strong> is added to the end of routines for convention, indicating
that these are Async callable routines.<br />
- not a <strong>single IAsyncResult</strong> to be seen, no <strong>StateObject </strong>and
no <strong>Callback routines!</strong><br />
– line 104 the <strong>async</strong> keyword indicating that this routine itself
can be called async if desired (more for the compiler)<br />
- line 108 the <strong>await </strong>keyword is used in the Async framework to ‘wait
for the async task to complete’  then move onto the next line.<br />
- line 108 <strong>WebRequest.Create(…).GetResponseAsync</strong> – it’s the <strong>GetResponseAsync</strong> that
is the async method, no …Begin or ..OnEnd calls! Just write it as you read it.<br />
- line 109 We get a reference to the response stream (I should check for the existence
of data etc – demo code, demo code :))<br />
- line 112 <strong>…await stm.ReadAsync(…</strong>) – reads the response stream into
a buffer on a background thread and we wait there until this completes (await keyword).
By all means there’s many other ways to program this, as in we don’t need to wait,
we could run this guy in the background quite happy and then check on him periodically.<br /><br />
That’s it! Not too tough at all, multi-threaded goodness right there. You can have
blocking and non-blocking calls etc.
</p>
        <p>
          <strong>2. What about a Chunk of CPU based code</strong>
        </p>
        <p>
NO Async Example – as per normal, doing some cpu things.<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_1.png" width="604" height="262" /></a></p>
        <p>
Written in Async….<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_2.png" width="608" height="349" /></a></p>
        <p>
        </p>
        <p>
        </p>
        <p>
Points to notice:<br />
- line 63 <strong>async Task&lt;int[]&gt;</strong> … to the Async framework the async
methods are wrapped within a <strong>Task</strong> class. We must ‘wrap’ anything
we return from our routines within a <strong>Task&lt;..&gt;</strong> – here I’m returning
an <strong>int[]<br /></strong>-line 66 <strong>… = TaskEx.Run(…something to run in a background thread…). </strong>As
we’re dealing with a block of code, there’s a <strong>Task Extension</strong> class
that allows us to run that bit of code Async.<br />
-line 79 <strong>await matrix</strong> – this line ensures that our async routine
has indeed completed (or errored) before we move onto the next line.
</p>
        <p>
Too easy if you’ve lived in the other world.
</p>
        <p>
As always remember this is CTP so I wouldn’t go rolling out into Prod just yet. The
perf numbers I get are pretty much identical to rolling all of this by hand with ThreadPool.QueueWorkItem(…)
and IAsyncResult etc.
</p>
        <p>
Well done MS!
</p>
        <p>
Enjoy and here’s my VS.NET Sample Solutions – I had great fun! Oh – this is also applicable
to Silverlight + WP7 apps :)<br /></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:a0df05fc-9ae9-4249-bc41-83e6ce52876b" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/AsyncExperiments.zip" target="_blank">Samples
(114KB)</a>
          </p>
        </div>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=eed3722c-aef6-42e1-9ea5-6049a367a8d5" />
      </body>
      <title>Easier Async Programming Coming to C#/VB soon…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/04/26/EasierAsyncProgrammingComingToCVBSoon.aspx</link>
      <pubDate>Tue, 26 Apr 2011 13:33:52 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, I thought I’d share something that captivated me on this rainy Easter day
and that was
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Visual Studio Asynchronous Programming - &lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-au/vstudio/async" href="http://msdn.microsoft.com/en-au/vstudio/async"&gt;&lt;strong&gt;http://msdn.microsoft.com/en-au/vstudio/async&lt;/strong&gt;&lt;/a&gt;
&lt;br&gt;
(you’ll need VS2010 + SP1 before you grab the CTP)&lt;br&gt;
There’s a new improved compiler + an extended library for us.
&lt;/p&gt;
&lt;p&gt;
Hands up who’s done async programming in either VB.NET or C#??? It’s a pain! Thread
management, Main UI threads can only update certain objects, passing values between
main + background threads, determining whether a thread has completed its tasks… and
so on… 
&lt;/p&gt;
&lt;p&gt;
Basically all these ‘issues’ keep us from delving further into the world of asynchronous
programming cause it very rapidly becomes complex just managing the two worlds – sync
+ async.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Today I was pleasantly surprised!!!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
About a year ago I saw a great presentation on F# and I was amazed at how if they
wanted to run a bit of code async it was simple an extra character as in:
&lt;/p&gt;
&lt;p&gt;
set results = …..&amp;nbsp;&amp;nbsp; &amp;lt;-sync
&lt;/p&gt;
&lt;p&gt;
set results! = ….&amp;nbsp; &amp;lt;- run this async
&lt;/p&gt;
&lt;p&gt;
(don’t quote me on the above, but it’s something like that – let’s call it pseudo
code)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Why are we interested in this?&lt;/strong&gt; – that’s always the first question
to ask when investigating. Too many times we here ‘this is really cool’ and ‘check
this cool software out’ etc… but the real reason of WHY do we want to go down this
road is never answered. 
&lt;/p&gt;
&lt;p&gt;
On a ‘developers machine’ looking at 5 items, running a single test client – you’d
have to say “&lt;strong&gt;works on my machine” &lt;/strong&gt;and you’d have no need to async
anything. True. Let’s move beyond our beloved developer box and think about UAT/PROD
environments and what your code is doing.&lt;br&gt;
&lt;br&gt;
What happens if 4 concurrent requests come along – how is your code going to perform?
(As developers we’d be thinking …’it’s in the hands of IIS, not my issue’ :) )&lt;br&gt;
(I recently was presented with a solution that ran across 20 odd servers, the answer
to everything was get more hardware to make the app more performant, scalable etc
– couldnt be the code.)
&lt;/p&gt;
&lt;p&gt;
So as the requests start to build (don’t know an exact number but let’s say 100/sec),
what is happening to your code? how often do we sit down with profiling tools on our
code in this space? must be the disks..slow…and as always we have definitive proof &lt;strong&gt;works
on my machine&lt;/strong&gt; says the developer!
&lt;/p&gt;
&lt;p&gt;
It’s not until we see our code running under load that we get an appreciation for
where things could be improved and are causing grief for not only IIS but other systems
as well.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Scalability, performance and scalability&lt;/strong&gt; – single threaded app/service
vs multi-threaded. Multi-threaded tend to win all the time.
&lt;/p&gt;
&lt;p&gt;
Let me give you a couple of suggestions where this stuff is great:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
As part of a WF/WCF/Class where you want to ‘push’ some processing into the background
– critical things can be done upfront, and you can push some of the ‘other stuff’
into the background.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Take advantage of some of the great multi-core/multi-cpu Servers out there – single
threaded tend to run on the same core on the same CPU (known as thread affinity)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Anyway enough jabbering from me and let’s see some of the hidden gems…
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Async Programming Framework&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Let me show you a couple of examples (from my set):
&lt;/p&gt;
&lt;p&gt;
1. &lt;strong&gt;Fetching a webpage&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb.png" width="808" height="247"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here I go off to twitter and search for all the BizTalk items.
&lt;/p&gt;
&lt;p&gt;
Couple of things to notice 
&lt;br&gt;
- &lt;strong&gt;…Async&lt;/strong&gt; is added to the end of routines for convention, indicating
that these are Async callable routines.&lt;br&gt;
- not a &lt;strong&gt;single IAsyncResult&lt;/strong&gt; to be seen, no &lt;strong&gt;StateObject &lt;/strong&gt;and
no &lt;strong&gt;Callback routines!&lt;/strong&gt;
&lt;br&gt;
– line 104 the &lt;strong&gt;async&lt;/strong&gt; keyword indicating that this routine itself
can be called async if desired (more for the compiler)&lt;br&gt;
- line 108 the &lt;strong&gt;await &lt;/strong&gt;keyword is used in the Async framework to ‘wait
for the async task to complete’&amp;nbsp; then move onto the next line.&lt;br&gt;
- line 108 &lt;strong&gt;WebRequest.Create(…).GetResponseAsync&lt;/strong&gt; – it’s the &lt;strong&gt;GetResponseAsync&lt;/strong&gt; that
is the async method, no …Begin or ..OnEnd calls! Just write it as you read it.&lt;br&gt;
- line 109 We get a reference to the response stream (I should check for the existence
of data etc – demo code, demo code :))&lt;br&gt;
- line 112 &lt;strong&gt;…await stm.ReadAsync(…&lt;/strong&gt;) – reads the response stream into
a buffer on a background thread and we wait there until this completes (await keyword).
By all means there’s many other ways to program this, as in we don’t need to wait,
we could run this guy in the background quite happy and then check on him periodically.&lt;br&gt;
&lt;br&gt;
That’s it! Not too tough at all, multi-threaded goodness right there. You can have
blocking and non-blocking calls etc.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. What about a Chunk of CPU based code&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
NO Async Example – as per normal, doing some cpu things.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_1.png" width="604" height="262"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Written in Async….&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/image_thumb_2.png" width="608" height="349"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Points to notice:&lt;br&gt;
- line 63 &lt;strong&gt;async Task&amp;lt;int[]&amp;gt;&lt;/strong&gt; … to the Async framework the async
methods are wrapped within a &lt;strong&gt;Task&lt;/strong&gt; class. We must ‘wrap’ anything
we return from our routines within a &lt;strong&gt;Task&amp;lt;..&amp;gt;&lt;/strong&gt; – here I’m returning
an &lt;strong&gt;int[]&lt;br&gt;
&lt;/strong&gt;-line 66 &lt;strong&gt;… = TaskEx.Run(…something to run in a background thread…). &lt;/strong&gt;As
we’re dealing with a block of code, there’s a &lt;strong&gt;Task Extension&lt;/strong&gt; class
that allows us to run that bit of code Async.&lt;br&gt;
-line 79 &lt;strong&gt;await matrix&lt;/strong&gt; – this line ensures that our async routine
has indeed completed (or errored) before we move onto the next line.
&lt;/p&gt;
&lt;p&gt;
Too easy if you’ve lived in the other world.
&lt;/p&gt;
&lt;p&gt;
As always remember this is CTP so I wouldn’t go rolling out into Prod just yet. The
perf numbers I get are pretty much identical to rolling all of this by hand with ThreadPool.QueueWorkItem(…)
and IAsyncResult etc.
&lt;/p&gt;
&lt;p&gt;
Well done MS!
&lt;/p&gt;
&lt;p&gt;
Enjoy and here’s my VS.NET Sample Solutions – I had great fun! Oh – this is also applicable
to Silverlight + WP7 apps :)&lt;br&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:a0df05fc-9ae9-4249-bc41-83e6ce52876b" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/EasierAsyncProgrammingComingtoCVBsoon_149A8/AsyncExperiments.zip" target="_blank"&gt;Samples
(114KB)&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=eed3722c-aef6-42e1-9ea5-6049a367a8d5" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,eed3722c-aef6-42e1-9ea5-6049a367a8d5.aspx</comments>
      <category>.NET Developer</category>
      <category>Async</category>
      <category>Silverlight</category>
      <category>TechTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=58783f92-d80e-42d3-baf4-166d3b4a54f9</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=58783f92-d80e-42d3-baf4-166d3b4a54f9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just came across a great demonstration of a fantastic new piece of kit.<br /><br /><strong>Siftables </strong>they're called (shot this month) that 'interact' and play
with each other on a desk, table what ever.
</p>
        <p>
CubeWorld guys was something I'd had my eye on for a while.....<br /><br />
 <img src="http://www.radicauk.com/cubeworld/cubes1.gif" /><br /><br />
Siftables takes it far beyond the next level, check it out for yourself.
</p>
        <p>
          <a title="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html" href="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html">http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html</a>
          <br />
          <br />
          <a href="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image.png">
            <img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image_thumb.png" width="244" height="182" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=58783f92-d80e-42d3-baf4-166d3b4a54f9" />
      </body>
      <title>Siftables - Lego Brought into the New Age</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/02/18/SiftablesLegoBroughtIntoTheNewAge.aspx</link>
      <pubDate>Wed, 18 Feb 2009 00:04:48 GMT</pubDate>
      <description>&lt;p&gt;
I just came across a great demonstration of a fantastic new piece of kit.&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;Siftables &lt;/strong&gt;they're called (shot this month) that 'interact' and play
with each other on a desk, table what ever.
&lt;/p&gt;
&lt;p&gt;
CubeWorld guys was something I'd had my eye on for a while.....&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&lt;img src="http://www.radicauk.com/cubeworld/cubes1.gif"&gt; 
&lt;br&gt;
&lt;br&gt;
Siftables takes it far beyond the next level, check it out for yourself.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html" href="http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html"&gt;http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/SiftablesLegoBroughtintotheNewAge_9B96/image_thumb.png" width="244" height="182"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=58783f92-d80e-42d3-baf4-166d3b4a54f9" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,58783f92-d80e-42d3-baf4-166d3b4a54f9.aspx</comments>
      <category>General</category>
      <category>TechTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Happy 2008 all!
</p>
        <p>
          <strong>Enter BizTalk HotRod</strong>
        </p>
        <p>
As we know getting things done in BizTalk requires specific knowledge around specific
areas with various tweaks here and there (e.g. creating a flat file schema that removes
the field names in the first line).
</p>
        <p>
Some folks at Microsoft have felt the same way and decided to kick off their shoes
and embrace an alternative to a mid-life crisis and the temptation of a Harley around
the world. Two Microsoft TS's are embarking on the trail.
</p>
        <p>
          <strong>They have created a BizTalk quarterly magazine filled with some fantastic
tips'n tricks </strong>(e.g. creating pipelines to handle zip compression using Office
OpenXML format) - and the language and format of the magazine suits me down to a 'T'.
Very funny reading.
</p>
        <p>
I look down the table of contents and it's got some great tips <strong>all in the
one spot</strong> -to find this stuff elsewhere is going to take alot of time assuming
it exists.
</p>
        <p>
Check it out and see if it's worthwhile - it's currently free (you may see yours truly
post an article there one day :)
</p>
        <p>
          <a href="http://biztalkhotrod.com/default.aspx">BizTalk HotRod Magazine</a> - <strong>"Where
BizTalk meets the road"</strong></p>
        <p>
 <a href="http://biztalkhotrod.com/default.aspx"><img height="240" src="http://biztalkhotrod.com/Images/BizTalk Hotrod Issue 3 Cover.jpg" width="189" /></a></p>
        <p>
Well done guys - well done!!!
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9" />
      </body>
      <title>Another sensational BizTalk MUST have resource</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2008/01/17/AnotherSensationalBizTalkMUSTHaveResource.aspx</link>
      <pubDate>Thu, 17 Jan 2008 14:55:12 GMT</pubDate>
      <description>&lt;p&gt;
Happy 2008 all!
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Enter BizTalk HotRod&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
As we know getting things done in BizTalk requires specific knowledge around specific
areas with various tweaks here and there (e.g. creating a flat file schema that removes
the field names in the first line).
&lt;/p&gt;
&lt;p&gt;
Some folks at Microsoft have felt the same way and decided to kick off their shoes
and embrace an alternative to a mid-life crisis and the temptation of a Harley around
the world. Two Microsoft TS's are embarking on the trail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;They have created a BizTalk quarterly magazine filled with some fantastic
tips'n tricks &lt;/strong&gt;(e.g. creating pipelines to handle zip compression using Office
OpenXML format) - and the language and format of the magazine suits me down to a 'T'.
Very funny reading.
&lt;/p&gt;
&lt;p&gt;
I look down the table of contents and it's got some great tips &lt;strong&gt;all in the
one spot&lt;/strong&gt; -to find this stuff elsewhere is going to take alot of time assuming
it exists.
&lt;/p&gt;
&lt;p&gt;
Check it out and see if it's worthwhile - it's currently free (you may see yours truly
post an article there one day :)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://biztalkhotrod.com/default.aspx"&gt;BizTalk HotRod Magazine&lt;/a&gt; - &lt;strong&gt;"Where
BizTalk meets the road"&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://biztalkhotrod.com/default.aspx"&gt;&lt;img height="240" src="http://biztalkhotrod.com/Images/BizTalk Hotrod Issue 3 Cover.jpg" width="189"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Well done guys - well done!!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a82aa7d2-edac-4d95-9f6c-ab4edc95cfa9.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/Insights</category>
      <category>TechTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6b62047b-d709-41fc-ac12-7e133bdac94f</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6b62047b-d709-41fc-ac12-7e133bdac94f.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6b62047b-d709-41fc-ac12-7e133bdac94f</wfw:commentRss>
      <title>Biggest BizTalk Knowledge Center I've seen!!!!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6b62047b-d709-41fc-ac12-7e133bdac94f.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2007/12/19/BiggestBizTalkKnowledgeCenterIveSeen.aspx</link>
      <pubDate>Wed, 19 Dec 2007 18:25:04 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Microsoft have rounded up all the serious BizTalk Bloggers (MVPs + keen MS guys +
Teams) and the Connected Systems Division (CSD Team) within Microsoft and produced &lt;strong&gt;a
valuable aggregator with all this in one spot. &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Just have a look at the bloggers that are contributing to this - sensational!!! One
stop shop for you guys.
&lt;/p&gt;
&lt;p&gt;
From WCF to BizTalk, EDI + Custom Pipelines.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.biztalkblogs.com/" target=”_blank”&gt;&lt;img height=94 alt=MicrosoftBizTalkBlogs src="http://www.wedsg.com/images/biztalkblogs.gif" width=228 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
We all display this logo on our site.
&lt;/p&gt;
&lt;p&gt;
Here's the RSS Feed &lt;a href="http://biztalkblogs.com/RssDoc.xml"&gt;http://biztalkblogs.com/RssDoc.xml&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Merry Christmas!!!!!&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6b62047b-d709-41fc-ac12-7e133bdac94f" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6b62047b-d709-41fc-ac12-7e133bdac94f.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/Insights</category>
      <category>BizTalk/RFID</category>
      <category>TechTalk</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=612c1b69-f62a-4124-a600-e08400da8058</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,612c1b69-f62a-4124-a600-e08400da8058.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,612c1b69-f62a-4124-a600-e08400da8058.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=612c1b69-f62a-4124-a600-e08400da8058</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Move over Thierry Henry(shame he's gone to Barca :), Kylie and U2..... make room for
.NET 3.5 up on your wall.
</p>
        <p>
The folks at MS have been super busy, while talking about what will be in .NET 4+
they release the posters. 
</p>
        <p>
Stay tuned for more!
</p>
        <p>
          <a title="" href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf">Grab
the .NET 3.5 Common Types and Classes</a>
          <br />
          <br />
          <a title=".NET 3.5 Poster" href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="371" alt="net3.5" src="http://blogs.breezetraining.com.au/mickb/content/binary/.NET3.5Postersavailable_D3A3/net3.5.jpg" width="644" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=612c1b69-f62a-4124-a600-e08400da8058" />
      </body>
      <title>.NET 3.5 Posters available</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,612c1b69-f62a-4124-a600-e08400da8058.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2007/11/14/NET35PostersAvailable.aspx</link>
      <pubDate>Wed, 14 Nov 2007 04:03:55 GMT</pubDate>
      <description>&lt;p&gt;
Move over Thierry Henry(shame he's gone to Barca :), Kylie and U2..... make room for
.NET 3.5 up on your wall.
&lt;/p&gt;
&lt;p&gt;
The folks at MS have been super busy, while talking about what will be in .NET 4+
they release the posters. 
&lt;/p&gt;
&lt;p&gt;
Stay tuned for more!
&lt;/p&gt;
&lt;p&gt;
&lt;a title="" href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf"&gt;Grab
the .NET 3.5 Common Types and Classes&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a title=".NET 3.5 Poster" href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="371" alt="net3.5" src="http://blogs.breezetraining.com.au/mickb/content/binary/.NET3.5Postersavailable_D3A3/net3.5.jpg" width="644" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=612c1b69-f62a-4124-a600-e08400da8058" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,612c1b69-f62a-4124-a600-e08400da8058.aspx</comments>
      <category>.NET Developer</category>
      <category>BizTalk</category>
      <category>General</category>
      <category>MOSS</category>
      <category>TechTalk</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=b2d83cf0-2cbf-47b8-b8fc-08d86142742a</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,b2d83cf0-2cbf-47b8-b8fc-08d86142742a.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,b2d83cf0-2cbf-47b8-b8fc-08d86142742a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=b2d83cf0-2cbf-47b8-b8fc-08d86142742a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The ever vibrant <a href="http://blogs.msdn.com/acoat/archive/2007/08/30/tweet-change-editors.aspx">Andrew
Coates</a> pinged me an email yesterday asking for my involvement in becoming
a TechTalk Blogger........
</p>
        <p>
I'm currently on this Island called 'Hamilton' at a 'Partner' Conference (yeah right!!!
:)) so naturally I said 'yes!' (not too many people are saying 'no' around here)
</p>
        <p>
I've got some great stories around RFID, BizTalk R2 and obvious integration into
WSS/MOSS and what that means.
</p>
        <p>
Hope you're going to join me on a great journey together! Gotta dash
the scuba diving boat is waiting for me... (erm...the next 'partner activity')
</p>
        <p>
Mick. 
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=b2d83cf0-2cbf-47b8-b8fc-08d86142742a" />
      </body>
      <title>TechTalk Bloggers here I come..... :-)</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,b2d83cf0-2cbf-47b8-b8fc-08d86142742a.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2007/08/31/TechTalkBloggersHereICome.aspx</link>
      <pubDate>Fri, 31 Aug 2007 01:57:01 GMT</pubDate>
      <description>&lt;p&gt;
The ever vibrant &lt;a href="http://blogs.msdn.com/acoat/archive/2007/08/30/tweet-change-editors.aspx"&gt;Andrew
Coates&lt;/a&gt;&amp;nbsp;pinged me an email yesterday&amp;nbsp;asking&amp;nbsp;for my involvement in&amp;nbsp;becoming
a TechTalk Blogger........
&lt;/p&gt;
&lt;p&gt;
I'm currently on this Island called 'Hamilton' at a 'Partner' Conference (yeah right!!!
:)) so naturally I said 'yes!' (not too many people are saying 'no' around here)
&lt;/p&gt;
&lt;p&gt;
I've got some great stories around RFID,&amp;nbsp;BizTalk R2 and obvious integration into
WSS/MOSS and what that means.
&lt;/p&gt;
&lt;p&gt;
Hope you're going&amp;nbsp;to join me on&amp;nbsp;a great journey together!&amp;nbsp;Gotta dash
the&amp;nbsp;scuba diving&amp;nbsp;boat is waiting for me... (erm...the next 'partner&amp;nbsp;activity')
&lt;/p&gt;
&lt;p&gt;
Mick.&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=b2d83cf0-2cbf-47b8-b8fc-08d86142742a" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,b2d83cf0-2cbf-47b8-b8fc-08d86142742a.aspx</comments>
      <category>BizTalk</category>
      <category>Events</category>
      <category>General</category>
      <category>MOSS</category>
      <category>TechTalk</category>
    </item>
  </channel>
</rss>