<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Enjoyable Blog of Possibilities &#187; API</title>
	<atom:link href="http://kerrysoft16.edublogs.org/tag/api/feed/" rel="self" type="application/rss+xml" />
	<link>http://kerrysoft16.edublogs.org</link>
	<description>Just another Edublogs.org weblog</description>
	<lastBuildDate>Fri, 12 Dec 2008 11:32:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>HOPL III: The When, Why and Why Not of the BETA Programming Language</title>
		<link>http://kerrysoft16.edublogs.org/2008/11/30/hopl-iii-the-when-why-and-why-not-of-the-beta-programming-language/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/11/30/hopl-iii-the-when-why-and-why-not-of-the-beta-programming-language/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 11:31:23 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[ERP solution]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/11/30/hopl-iii-the-when-why-and-why-not-of-the-beta-programming-language/</guid>
		<description><![CDATA[The When, Why and Why Not of the BETA Programming Language by Bent Bruun Kristensen, Ole Lehrmann Madsen, and Birger Møller-Pedersen from HOPL-III. BETA was an challenging travel along up to Simula &#8211; with orthogonality being a major design goal. The independent things I found of interest are the attempts to create a merged abstraction [...]]]></description>
			<content:encoded><![CDATA[<p>The When, Why and Why Not of the BETA Programming Language by Bent Bruun Kristensen, Ole Lehrmann Madsen, and Birger Møller-Pedersen from HOPL-III. BETA was an challenging travel along up to Simula &#8211; with orthogonality being a major design goal. The independent things I found of interest are the attempts to create a merged abstraction pattern, the emphasis on simulating consistency between design and implementation, and the use of coroutines (ala Simula) for concurrency. </p>
<blockquote><p>BETA is a programming language that has merely one abstraction mechanism, the pattern, breeding abstractions like record types, classes with methods, types with operations, methods, and functions. Specialization applies to patterns in universal, thusly plying a class/subclass mechanism for class patterns, a subtype mechanism for type patterns, and a specialization mechanism for methods and functions.</p>
</blockquote>
<p>And while I&#8217;m at it, the original entry for HOPL-I on The Development of the SIMULA Languages by Kristen Nygaard and Ole-Johan Dahl is uncommitted (starts on page 3). SIMULA is one of a handful of most influential programming languages of all time. I recovered the watching over to be laughable:</p>
<blockquote><p>In the spring of 1967 a raw employee at the NCC in a very scandalised voice enjoined the switchboard operator: &#8220;Two men are contending violently in front of the blackboard in the upstair corridor. What shall we do?&#8221; The operator occured out of her office, listened for a few seconds and and then ordered: &#8220;Decompress, it&#8217;s exclusively Dahl and Nygaard talking about SIMULA&#8221;.</p>
</blockquote>
<p>(Link to late HOPL-III papers on LtU ).</p>
<p><i>Related Posts:</i><br /><i><a href="http://greenblog.blogsome.com/2008/11/15/p712/" title="PE Obama’s 1st Prominent Mistake">PE Obama’s 1st Prominent Mistake</a></i><br /><i><a href="http://kerrysoft16.edublogs.org/2008/11/11/homes-vs-stocks-2/" title="Homes vs Stocks">Homes vs Stocks</a></i><br /><i><a href="http://greenblog.blogsome.com/2008/11/15/p710/" title="a symmetrically Hellenic variant of System Fω">Fω^C: a symmetrically Hellenic variant of System Fω</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/11/30/hopl-iii-the-when-why-and-why-not-of-the-beta-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m Nevertheless Going away Farsighted and Hop-skiping the Markets Go away Down</title>
		<link>http://kerrysoft16.edublogs.org/2008/11/14/i%e2%80%99m-nevertheless-going-away-farsighted-and-hop-skiping-the-markets-go-away-down/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/11/14/i%e2%80%99m-nevertheless-going-away-farsighted-and-hop-skiping-the-markets-go-away-down/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 23:05:38 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM software]]></category>
		<category><![CDATA[ERP solution]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/11/14/i%e2%80%99m-nevertheless-going-away-farsighted-and-hop-skiping-the-markets-go-away-down/</guid>
		<description><![CDATA[First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay off a bounce. I was incorrect. I spread over my poor puts when the market embarked on to drop its gains. So I lucked out on that point. More significantly, i desired to [...]]]></description>
			<content:encoded><![CDATA[<p>First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay off a bounce. I was incorrect. I spread over my poor puts when the market embarked on to drop its gains. So I lucked out on that point. More significantly, i desired to elucidate my bullishness. I wear&#8217;t intend the [...]</p>
<p><i>Related Posts:</i><br /><i><a href="http://kerrysoft16.edublogs.org/2008/11/14/i%e2%80%99m-all-the-same-departing-farsighted-and-skiping-the-markets-go-away-down/" title="I’m All the same Departing Farsighted and Skiping the Markets Go away Down">I’m All the same Departing Farsighted and Skiping the Markets Go away Down</a></i><br /><i><a href="http://medonza.blogsome.com/2008/11/14/p290/" title="My BailOut Solution - I’m In For At Least $50mm">My BailOut Solution &#8211; I’m In For At Least $50mm</a></i><br /><i><a href="http://kerryzan.blogsome.com/2008/11/14/p268/" title="a symmetrically classic variant of System Fω">Fω^C: a symmetrically classic variant of System Fω</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/11/14/i%e2%80%99m-nevertheless-going-away-farsighted-and-hop-skiping-the-markets-go-away-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m Nonetheless Departing Foresightful and Hop-skiping the Markets Go away Down</title>
		<link>http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 11:24:45 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/</guid>
		<description><![CDATA[First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay back a bounce. I was incorrect. I spread over my inadequate puts when the market commenced to throw its gains. So I lucked out in that respect. More significantly, i desired to clear [...]]]></description>
			<content:encoded><![CDATA[<p>First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay back a bounce. I was incorrect. I spread over my inadequate puts when the market commenced to throw its gains. So I lucked out in that respect. More significantly, i desired to clear up my bullishness. I assume&#8217;t intend the [...]</p>
<p><i>Related Posts:</i><br /><i><a href="http://kerrysoft16.edublogs.org/2008/11/12/i%e2%80%99m-yet-departing-farsighted-and-skiping-the-markets-go-away-down/" title="I’m Yet Departing Farsighted and Skiping the Markets Go away Down">I’m Yet Departing Farsighted and Skiping the Markets Go away Down</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated ASP.NET Active Data Bits Placed</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/29/updated-aspnet-active-data-bits-placed/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/29/updated-aspnet-active-data-bits-placed/#comments</comments>
		<pubDate>Fri, 30 May 2008 01:45:37 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM software]]></category>
		<category><![CDATA[ERP solution]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/29/updated-aspnet-active-data-bits-placed/</guid>
		<description><![CDATA[We hardly put up some updated bits and samples for ASP.NET Active Data&#8230; I advance you to plump foot them up and allow us experience what you intend&#8230; Some coolheaded newfangled stuff in this release: Ocular Studio Integration is much uncontaminating Right away sustains &#34;pretty&#34; URLs http://products/details/1 rather of http://products/details.aspx?id=123 Full documentation Extra support for [...]]]></description>
			<content:encoded><![CDATA[<p>We hardly put up some updated bits and samples for ASP.NET Active Data&#8230; I advance you to plump foot them up and allow us experience what you intend&#8230;</p>
<p>Some coolheaded newfangled stuff in this release:</p>
<ol>
<li>Ocular Studio Integration is much uncontaminating </li>
<li>Right away sustains &quot;pretty&quot; URLs <br />http://products/details/1 rather of http://products/details.aspx?id=123 </li>
<li>Full documentation </li>
<li>Extra support for 3rd party control vendors and O/R Mappers (more details making out before long) </li>
</ol>
<p> Scott Hunter of late did a HanselMinutes podcast that you should discipline out.. </p>
<p> ScottGu did a post of late that arrives at the high-pitched points of Active Data&#8230;&#160; </p>
<p> Hold them a try, we&#8217;five hundred love to have your feedback!</p>
<p>http://code.msdn.microsoft.com/dynamicdata </p>
<p><i>Relating Posts:</i><br /><i><a href="http://statuska.blogsome.com/2008/05/29/additive-legitimate-algorithms/" title="Additive Legitimate Algorithms">Additive Legitimate Algorithms</a></i><br /><i><a href="http://greenblog.blogsome.com/2008/05/29/rule-your-sql-server-version-and-edition/" title="Rule your Sql Server Version and Edition">Rule your Sql Server Version and Edition</a></i><br /><i><a href="http://greenblog.blogsome.com/2008/05/29/why-the-existent-estate-market-may-swing-about-next-year/" title="Why The Existent Estate Market May Swing about Next Year">Why The Existent Estate Market May Swing about Next Year</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/29/updated-aspnet-active-data-bits-placed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Finalization and Hosting</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/#comments</comments>
		<pubDate>Thu, 29 May 2008 10:55:22 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/</guid>
		<description><![CDATA[My original posts on Finalization and Hosting had some artificial XXXXX markers in place of content, where that content hadn&#8217;t already been disclosed in some form.&#160; Nowadays that the Ocular Studio 2005 Community Preview is uncommitted, I&#8217;ve moved backward to those two posts and put back the XXXXX markers with existent text. As well, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><P>My original posts on Finalization and Hosting had some artificial XXXXX markers in place of content, where that content hadn&#8217;t already been disclosed in some form.&nbsp; Nowadays that the Ocular Studio 2005 Community Preview is uncommitted, I&#8217;ve moved backward to those two posts and put back the XXXXX markers with existent text.</P> <P>As well, it&#8217;s manifestly been a while since my last post.&nbsp; I began droping a line something this weekend, but the weather hither has been dramatic and I was obliged to move outdoors and play.&nbsp; I&#8217;ll essay to have something in the next couple of weeks.</P> <P>&nbsp;</P></p>
<p><i>Relating Posts:</i><br /><i><a href="http://jiddy55.wordpress.com/2008/05/29/the-afflictive-cost-of-foreclosure/" title="The Afflictive Cost of Foreclosure">The Afflictive Cost of Foreclosure</a></i><br /><i><a href="http://greenblog.blogsome.com/2008/03/26/trust-microsoft-with-claimspace-my-response-pending-2/" title="Trust Microsoft with Claimspace (my response pending)">Trust Microsoft with Claimspace (my response pending)</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring Web Flow 2 release</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/28/spring-web-flow-2-release/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/28/spring-web-flow-2-release/#comments</comments>
		<pubDate>Thu, 29 May 2008 04:07:08 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM software]]></category>
		<category><![CDATA[ERP solution]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/28/spring-web-flow-2-release/</guid>
		<description><![CDATA[For Java developers expending the Spring framework, the project late denoted an of import milestone in the form of Web Flow 2.0 which builds upon the MVC module used in Spring apps.]]></description>
			<content:encoded><![CDATA[<p>For Java developers expending the Spring framework, the project late denoted an of import milestone in the form of Web Flow 2.0 which builds upon the MVC module used in Spring apps.
</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/28/spring-web-flow-2-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memory Model</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/#comments</comments>
		<pubDate>Thu, 29 May 2008 00:33:06 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/</guid>
		<description><![CDATA[One of the suggestions for a blog entry was the carryed off memory model.&#160; This is seasonable, because we’ve barely been retooling our overall approach to this confounding topic.&#160; For the most part, I write on product decisions that have already been produced and embarked.&#160; In this note, I’m discoursing succeeding directions.&#160; Be doubting. &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><P class="MsoNormal"><FONT face="Tahoma" size="2">One of<br />
the suggestions for a blog entry was the carryed off memory model.<SPAN>&nbsp; </SPAN>This is seasonable, because we’ve barely been<br />
retooling our overall approach to this confounding topic.<SPAN>&nbsp; </SPAN>For the most part, I write on product<br />
decisions that have already been produced and embarked.<SPAN>&nbsp; </SPAN>In this note, I’m discoursing succeeding<br />
directions.<SPAN>&nbsp; </SPAN>Be<br />
doubting.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Indeed what<br />
is a memory model?<SPAN>&nbsp; </SPAN>It’s the<br />
abstraction that reachs the reality of today’s alien hardware comprehendible to<br />
software developers.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">The<br />
reality of hardware is that CPUs are renaming registers, doing bad<br />
and out-of-order execution, and geting up the world during retirement.<SPAN>&nbsp; </SPAN>Memory state is cached at assorted levels<br />
in the system (L0 thru L3 on mod X86 boxes, presumptively with more levels on<br />
the way).<SPAN>&nbsp; </SPAN>Some levels of cache are<br />
shared between especial CPUs but not others.<SPAN>&nbsp; </SPAN>For example, L0 is typically per-CPU but<br />
a hyper-wandered CPU <I>may</I> partake in L0<br />
between the coherent CPUs of a single forcible CPU.<SPAN>&nbsp; </SPAN>Or an 8-way box <I>may</I> parted the system into two<br />
hemispheres with cache controllers doing an elaborated coherency protocol<br />
between these freestanding hemispheres.<SPAN>&nbsp;<br />
</SPAN>If you count hoarding effects, at some level all MP (multi-processor)<br />
computers are NUMA (non-unvarying memory access).<SPAN>&nbsp; </SPAN>But there’s enough magic proceeding that<br />
yet a Unisys 32-way can mostly be counted as UMA by<br />
developers.</FONT></P><br />
<span id="more-36"></span>
<div class="interline">Multisoft Group: <a href="http://www.multisoftgroup.com/skills.html" title="Custom software solutions">Custom software solutions</a> for your business.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">It’s<br />
sensible for the CLR to cognize as much as potential about the cache architecture<br />
of your hardware so that it can tap any imbalances.<SPAN>&nbsp; </SPAN>For example, the developers on our<br />
performance team have experimented with a scalable rendezvous for phases of the<br />
GC.<SPAN>&nbsp; </SPAN>The idea was that each CPU<br />
bases a rendezvous with the CPU that is “nighest” to it in distance in the<br />
cache hierarchy, and and then one of this pair cascades down up a tree to its nearest<br />
neighbor until we progress to a single root CPU.<SPAN>&nbsp;<br />
</SPAN>At that point, the rendezvous is consummate.<SPAN>&nbsp; </SPAN>I call back the jury is however out on this<br />
exceptional technique, but they have found some other techniques that in truth make up<br />
off on the bigger systems.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Of<br />
course, it’s absolutely undue for any dealt developer (or 99.99% of<br />
unmanaged developers) to e&#8217;er occupy themselves with these imbalances.<SPAN>&nbsp; </SPAN>Rather, software developers want to<br />
process all computers as tantamount.<SPAN>&nbsp;<br />
</SPAN>For cared developers, the CLR <I>is</I> the computer and it better act<br />
systematically no matter of the underlying machine.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Although dealt developers shouldn’t cognise the difference between a 4-way<br />
AMD server and an Intel P4 hyper-wound double proc, they yet necessitate to front the<br />
realities of today’s hardware.<SPAN>&nbsp;<br />
</SPAN>Today, I retrieve the penalty of a CPU cache miss that runs all the way to<br />
independent memory is virtually 1/10<SUP>th</SUP> the penalty of a memory miss that leads<br />
all the way to disk.<SPAN>&nbsp; </SPAN>And the trend<br />
is unmortgaged.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">If<br />
you desired well performance on a practical memory system, you’ve ever been<br />
responsible for for excusing the paging system by catching well page density and<br />
locality in your data structures and access patterns.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In<br />
a like vein, if you desire well performance on today’s hardware, where<br />
geting at independent memory is a modest disaster, you must carry your data into cache<br />
lines and limit indirections.<SPAN>&nbsp; </SPAN>If<br />
you are progressing partaken in data structures, see spliting any data that’s<br />
subject to sour sharing.</FONT></P></p>
<div class="interline"><a href="http://www.j-livesupport.com/affiliate/pages/117.php" title="Live Help Server">Live Help Server</a>: Jerry Messenger is Jabber/XMPP Live Chat Server for a website.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">To<br />
some extent, the CLR can facilitate you hither.<SPAN>&nbsp;<br />
</SPAN>On MP machines, we utilize lock-spare allocators which (statistically)<br />
guarantee locality for each thread’s allocations.<SPAN>&nbsp; </SPAN>Any compaction will (statistically)<br />
save that locality.<SPAN>&nbsp; </SPAN>Checking out the very far succeeding – maybe after our sun irrupts – you could suppose a<br />
CLR that can reorganise your data structures to reach even best<br />
performance.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">This intends that if you are saving single-wandered dealt code to<br />
process a server request, and if you can fend off writing to any partaken state, you<br />
are likely leading to be pretty scalable without yet essaying.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Catching<br />
backward to memory models, what is the abstraction that will get to sense of current<br />
hardware?<SPAN>&nbsp; </SPAN>It’s a simplifying model<br />
where all the cache levels go away.<SPAN>&nbsp;<br />
</SPAN>We hazard that all the CPUs are inhered in a single partaken in memory.<SPAN>&nbsp; </SPAN>Nowadays we hardly demand to cognize whether all the<br />
CPUs realise the same state in that memory, or if it’s potential for some of them to<br />
realize reordering in the loads and stores that occur on other CPUs.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">At one<br />
utmost, we have a world where all the CPUs realize a single ordered memory.<SPAN>&nbsp; </SPAN>All the loads and stores expressed in<br />
programs are performed in a serialized manner and nobody comprehends a especial<br />
thread’s loads or stores being reordered.<SPAN>&nbsp;<br />
</SPAN>That’s a wonderfully reasonable model which is well-fixed for software developers to<br />
cover and program to.<SPAN>&nbsp;<br />
</SPAN>Regrettably, it is far too deadening and non-scalable.<SPAN>&nbsp; </SPAN>Nobody progresss this.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">At the<br />
other uttermost, we have a world where CPUs go almost all out of individual<br />
cache.<SPAN>&nbsp; </SPAN>If another CPU always realizes<br />
anything my CPU is behaving, it’s a full accident of timing.<SPAN>&nbsp; </SPAN>Because loads and stores can propagate<br />
to other CPUs in any random order, performance and surmounting are gravid.<SPAN>&nbsp; </SPAN>But it is unacceptable for humans to<br />
program to this model.</FONT></P></p>
<div class="interline"><a href="http://www.multisoftgroup.com/" title="Custom Software Development">Custom Software</a> Development for Real-Estate, Hosting providers, Workflow and Business Management Systems.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In<br />
between those extremes are a lot of dissimilar possibilities.<SPAN>&nbsp; </SPAN>Those possibilities are explained in<br />
terms of develop and release semantics:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<UL type="disc"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A normal load or store can be freely reordered with respect<br />
 to other normal load or store operations.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A load with produce semantics makes a downwardly<br />
 fence.<SPAN>&nbsp; </SPAN>This intends that normal<br />
 loads and stores can be displaced down past the load.produce, but nothing can be<br />
 moved to above the load.produce.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A store with release semantics makes an upward<br />
 fence.<SPAN>&nbsp; </SPAN>This thinks that normal<br />
 loads and stores can be moved above the store.release, but nothing can be<br />
 moved to below the store.release.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A total fence is efficaciously an up and down<br />
 fence.<SPAN>&nbsp; </SPAN>Nothing can get in either<br />
 direction across a total fence.</FONT></LI></UL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">A<br />
super-firm utmost model frames a total fence after every load or store.<SPAN>&nbsp; </SPAN>A super-frail uttermost model emploies normal<br />
loads and stores all over, with no fencing.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">The most<br />
conversant model is X86.<SPAN>&nbsp; </SPAN>It’s a<br />
relatively strong model.<SPAN>&nbsp; </SPAN>Stores are<br />
ne&#8217;er reordered with respect to other stores.<SPAN>&nbsp; </SPAN>But, in the absence of data dependence,<br />
loads can be reordered with respect to other loads and stores.<SPAN>&nbsp; </SPAN>Many X86 developers don’t realise that<br />
this reordering is potential, though it can lead to some awful failures under<br />
stress on large MP machines.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P></p>
<div class="interline"><a href="http://www.jbTop.com/" title="Help Desk Software">Help Desk Software</a>: Next generation of Live Chat. Jabber/XMPP Live Chat Service for your website.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">In terms<br />
of the above, the memory model for X86 can be delineated as:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<OL type="1"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">All stores are in reality store.release.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">All loads are normal loads.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Any use of the LOCK prefix (e.g. ‘LOCK CMPXCHG’ or ‘LOCK<br />
 INC’) makes a total fence.</FONT></LI></OL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Historically, Windows NT has kept going Alpha and MIPS computers.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Depending<br />
forrad, Microsoft has denoted that Windows will hold up Intel’s IA64 and<br />
AMD’s AMD64 processors.<SPAN>&nbsp; </SPAN>Finally,<br />
we require to port the CLR to wherever Windows runs.<SPAN>&nbsp; </SPAN>You can make an obvious conclusion from<br />
these facts.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">AMD64<br />
has the same memory model as X86.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">IA64<br />
qualifies a frail memory model than X86.<SPAN>&nbsp;<br />
</SPAN>Specifically, all loads and stores are normal loads and stores.<SPAN>&nbsp; </SPAN>The application must employ especial ld.acq<br />
and st.rel instructions to attain develop and release semantics.<SPAN>&nbsp; </SPAN>There’s too a total fence instruction,<br />
though I can’t call up the opcode (mf?).</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Be<br />
especially disbelieving when you take the next paragraph:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">There’s<br />
some reason to trust that current IA64 hardware in reality implements a firm<br />
model than is qualifyed.<SPAN>&nbsp; </SPAN>Based on<br />
informed hearsay and lots of data-based evidence, it reckons like normal store<br />
instructions on current IA64 hardware are retired in order with release<br />
semantics.</FONT></P></p>
<div class="interline"><a href="http://www.jbTop.com/" title="Live Person">Live Person</a>: Live Chat Solution for Online Customer Service on Website.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">If this<br />
is indeed the case, why would Intel condition something imperfect than what they have<br />
worked up?<SPAN>&nbsp; </SPAN>Presumptively they would do<br />
this to allow for the door undetermined for a imperfect (i.e. faster and more scalable)<br />
implementation in the future.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In fact,<br />
the CLR has behaved just the same thing.<SPAN>&nbsp;<br />
</SPAN>Section 12.6 of Partition I of the ECMA CLI specification explicates our<br />
memory model.<SPAN>&nbsp; </SPAN>This explicates the<br />
alignment rules, byte ordering, the atomicity of loads and stores, explosive<br />
semantics, puting away behavior, etc.<SPAN>&nbsp;<br />
</SPAN>According to that specification, an application must apply explosive loads<br />
and explosive stores to reach grow and release semantics.<SPAN>&nbsp; </SPAN>Normal loads and stores can be freely<br />
reordered, as seen by other CPUs.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">What is<br />
the hard-nosed implication of this?<SPAN>&nbsp;<br />
</SPAN>Regard the received double-locking in protocol:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">if (a == null)</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">{</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp; lock(obj)</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp; {</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp;&nbsp;&nbsp; if (a == null) a = new<br />
A();</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp; }</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">}</FONT></SPAN></P></p>
<div class="interline">Developing <a href="http://www.multisoftgroup.com/projects.html" title="Customer Relationship Management ">Customer Relationship Management</a> Solutions. Web, e-Commerce, Database Design and Software Development.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">This is<br />
a rough-cut technique for forefending a lock on the read of ‘a’ in the distinctive<br />
case.<SPAN>&nbsp; </SPAN>It acts just hunky-dory on<br />
X86.<SPAN>&nbsp; </SPAN>But it would be broken by a<br />
effectual but imperfect implementation of the ECMA CLI spec.<SPAN>&nbsp; </SPAN>It’s honest that, according to the ECMA<br />
spec, geting a lock has grow semantics and freing a lock has release<br />
semantics.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Even so,<br />
we have to accept that a series of stores have read place during construction<br />
of ‘a’.<SPAN>&nbsp; </SPAN>Those stores can be<br />
at random reordered, including the possibility of checking them until after<br />
the printing store which deputes the newfangled object to ‘a’.<SPAN>&nbsp; </SPAN>At that point, there is a little window<br />
before the store.release implied by providing the lock.<SPAN>&nbsp; </SPAN>Inside that window, other CPUs can<br />
navigate through the reference ‘a’ and realise a partially constructed<br />
instance.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">We could<br />
pay back this code in assorted ways.<SPAN>&nbsp; </SPAN>For<br />
example, we could sneak in a memory barrier of some sort after construction and<br />
before assignment to ‘a’.<SPAN>&nbsp; </SPAN>Or – if<br />
construction of ‘a’ has no side effects – we could displace the assignment outside<br />
the lock, and utilise an Interlocked.CompareExchange to ascertain that assignment but<br />
befalls one time.<SPAN>&nbsp; </SPAN>The GC would accumulate<br />
any redundant ‘A’ instances created by this race.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">I hope<br />
that this example has won over you that you put on’t desire to examine saving honest<br />
code against the documented CLI model.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">I saved<br />
a mediocre amount of “canny” lock-spare thread-dependable code in version 1 of the<br />
CLR.<SPAN>&nbsp; </SPAN>This let in techniques like<br />
lock-spare synchronization between the class loader, the prestub (which snares<br />
first off calls on methods so it can yield code for them), and AppDomain<br />
unlading indeed that I could backward-patch MethodTable slots expeditiously.<SPAN>&nbsp; </SPAN>But I have no desire to save any kind<br />
of code on a system that’s as frail as the ECMA CLI spec.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Still if<br />
I proved to save code that is robust under that memory model, I have no hardware<br />
that I could prove it on.<SPAN>&nbsp; </SPAN>X86, AMD64<br />
and (presumptively) IA64 are firm than what we stipulated.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In my<br />
opinion, we drove in up when we stipulated the ECMA memory model.<SPAN>&nbsp; </SPAN>That model is excessive<br />
because:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<UL type="disc"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">All stores to partaken in memory in truth ask a explosive<br />
 prefix.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">This is not a fat way to code.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Developers will much progress to mistakes as they trace this<br />
 burdensome discipline.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">These mistakes cannot be discovered through testing,<br />
 because the hardware is too firm.</FONT></LI></UL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Indeed what<br />
would reach a sensitive memory model for the CLR?</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Well,<br />
foremost we would desire to have a logical model across all CLI<br />
implementations.<SPAN>&nbsp; </SPAN>This would admit<br />
the CLR, Rotor, the Succinct Frameworks, SPOT, and – ideally – non-Microsoft<br />
implementations like Mono.<SPAN>&nbsp; </SPAN>Indeed<br />
casting a coarse memory model into an ECMA spec was decidedly a well<br />
idea.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">It goes<br />
without supposing that this model should be ordered across all potential<br />
CPUs.<SPAN>&nbsp; </SPAN>We’re in magnanimous trouble if<br />
everyone is testing on X86 but so deploying on Alpha (which had a notoriously<br />
fallible model).</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">We would<br />
as well desire to have a logical model between the aboriginal code generator (JIT or<br />
NGEN) and the CPU.<SPAN>&nbsp; </SPAN>It doesn’t reach<br />
sense to stiffen the JIT or NGEN to order stores, but so let the CPU to<br />
reorder those stores.<SPAN>&nbsp; </SPAN>Or vice<br />
versa.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Ideally,<br />
the IL generator would too trace the same model.<SPAN>&nbsp; </SPAN>In other words, your C# compiler should<br />
be permited to reorder whatever the aboriginal code generator and CPU are let to<br />
reorder.<SPAN>&nbsp; </SPAN>There’s some debate<br />
whether the converse is honest.<SPAN>&nbsp;<br />
</SPAN>Arguably, it is fine for an IL generator to employ more belligerent<br />
optimizations than the aboriginal code generator and CPU are allowed, because IL<br />
generation occurs on the developer’s box and is subject to testing.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Finally, that last point is a language decision sort of than a CLR<br />
decision.<SPAN>&nbsp; </SPAN>Some IL generators, like<br />
ILASM, will strictly give out IL in the sequence specified by the source<br />
code.<SPAN>&nbsp; </SPAN>Other IL generators, like<br />
Dealt C++, might quest for belligerent reordering based on their ain language<br />
rules and compiler optimization switches.<SPAN>&nbsp;<br />
</SPAN>If I had to suppose, IL generators like the Microsoft compilers for C# and<br />
VB.NET would make up one&#8217;s mind to value the CLR’s memory model.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">We’ve<br />
passed a lot of time flirting with what the right memory model for the CLR<br />
should be.<SPAN>&nbsp; </SPAN>If I had to think, we’re<br />
extending to switch from the ECMA model to the tracing model.<SPAN>&nbsp; </SPAN>I cogitate that we will test to carry<br />
other CLI implementations to take up this same model, and that we will prove to<br />
exchange the ECMA specification to contemplate this.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<OL type="1"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Memory ordering but applies to locations which can be<br />
 globally seeable or locations that are crossed out explosive.<SPAN>&nbsp; </SPAN>Any locals that are not direct<br />
 let out can be optimized without utilizing memory ordering as a constraint since<br />
 these locations cannot be touched by multiple threads in parallel.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Non-explosive loads can be reordered freely.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Every store (irrespective of explosive marking) is seen<br />
 a release.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Explosive loads are regarded develop.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Device orientated software may demand exceptional programmer<br />
 care.<SPAN>&nbsp; </SPAN>Explosive stores are yet<br />
 required for any access of device memory.<SPAN>&nbsp; </SPAN>This is typically not a concern for<br />
 the cared developer.</FONT></LI></OL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">If<br />
you’re cerebrating this depends an nasty lot like X86, AMD64 and (presumptively) IA64,<br />
you are correct.<SPAN>&nbsp; </SPAN>We likewise cerebrate it<br />
strikes the seraphic spots for compilers.<SPAN>&nbsp;<br />
</SPAN>Reordering loads is much more crucial for enabling optimizations than<br />
reordering stores. </FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Indeed what<br />
happens in 10 years when these architectures are passed and we’re all utilising<br />
futurist Starbucks computers with an extremist-imperfect model?<SPAN>&nbsp; </SPAN>Well, hopefully I’ll be experiencing the well<br />
life in retirement on Maui.<SPAN>&nbsp; </SPAN>But the CLR’s aboriginal code generators<br />
will render whatever instructions are necessary to hold stores arranged when<br />
runing your bing programs.<SPAN>&nbsp;<br />
</SPAN>Evidently this will give some performance.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">The<br />
trade-off between developer productivity and computer performance is truly an<br />
economical one.<SPAN>&nbsp; </SPAN>If there’s sufficient<br />
incentive to save code to a fallible memory model so it can run expeditiously on<br />
next computers, so developers will do indeed.<SPAN>&nbsp; </SPAN>At that point, we will permit them to<br />
cross off their assemblies (or item-by-item methods) to argue that they are “frail<br />
model unobjectionable”.<SPAN>&nbsp; </SPAN>This will allow the<br />
aboriginal code generator to give out normal stores kind of than store.release<br />
instructions.<SPAN>&nbsp; </SPAN>You’ll be capable to<br />
attain eminent performance on imperfect machines, but this will e&#8217;er be “opt<br />
in”.<SPAN>&nbsp; </SPAN>And we gained’t work up this<br />
capability until there’s a veridical demand for it.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">I<br />
in person trust that for mainstream figuring, imperfect memory models will ne&#8217;er<br />
get on with human developers.<SPAN>&nbsp;<br />
</SPAN>Human productivity and software reliability are more crucial than the<br />
increment of performance and surmounting these models allow.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Last,<br />
I cogitate the person asking about memory models was in truth interested in where he<br />
should utilise explosive and fences in his code.<SPAN>&nbsp; </SPAN>Here’s my advice:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<UL type="disc"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Apply cared locks like Monitor.Enter (C# lock / VB.NET<br />
 synclock) for synchronization, except where performance in truth expects you to<br />
 be “cagy”.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">When you’re being “canny”, accept the relatively firm<br />
 model I delineated higher up.<SPAN>&nbsp; </SPAN>Only<br />
 loads are open to re-ordering.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">If you have more than a few places that you are utilizing<br />
 explosive, you’re in all probability being too cagy.<SPAN>&nbsp; </SPAN>See indorsing off and employing cared<br />
 locks rather.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">See that synchronization is expensive.<SPAN>&nbsp; </SPAN>The total fence implied by<br />
 Interlocked.Increment can be many 100’s of cycles on forward-looking hardware.<SPAN>&nbsp; </SPAN>That penalty may carry on to develop, in<br />
 proportional terms.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">See locality and hiving up effects like blistering spots due to<br />
 imitation sharing.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Stress test for days with the largest MP box you can get<br />
 your hands on.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Read everything I said with a grain of<br />
salt.</FONT></LI></UL><img src="http://blogs.msdn.com/aggbug.aspx?PostID=51445" width="1" height="1"></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Guy Proves Anyone with a Keyboard can be Stupid</title>
		<link>http://kerrysoft16.edublogs.org/2008/03/25/this-guy-proves-anyone-with-a-keyboard-can-be-stupid/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/03/25/this-guy-proves-anyone-with-a-keyboard-can-be-stupid/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 08:00:16 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[ERP solution]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/03/25/this-guy-proves-anyone-with-a-keyboard-can-be-stupid/</guid>
		<description><![CDATA[Also see: Silverlight 2 DataGrid walk-through posted I don&#8217;t know if Leanord Shapiro is a blogger or whether his work appears in the Washington Post on a regular basis. What I do know is that this post about Mixed Martial Arts and CBS is absolutely ridiculous and worthless. Nor do I have any idea what [...]]]></description>
			<content:encoded><![CDATA[<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/silverlight-2-datagrid-walk-through-posted/" title="Silverlight 2 DataGrid walk-through posted">Silverlight 2 DataGrid walk-through posted</a></i></p>
<p>I don&#8217;t know if Leanord Shapiro is a blogger or whether his work appears in the Washington Post on a regular basis. <br />What I do know is that this post about Mixed Martial Arts and CBS is absolutely ridiculous and worthless.</p>
<p>Nor do I have any idea what &#8220;<font size="2"> Special to washingtonpost.com&#8221; means. Does it mean that this is exclusive to the newspaper&#8217;s website ? My guess is that in this case it actually describes Mr Shapiro&#8217;s reduced faculties and no one wants to use a pejorative adjective. Hence the use of the word &#8220;special&#8221;. </p>
<p>What I do know is that Mr Shapiro is hopelessly out of touch, and unquestionably uneducated about Mixed Martial Arts and the athletes that participate when he says &#8220;</font>You put two guys (usually heavily tattooed) in a ring enclosed by a cage, surrounded by a howling mob, and just watch the blood flow as they pummel themselves into submission, or occasionally break a bone or three. That&#8217;s entertainment?&#8221;</p>
<p>The he shows his sexist side with &#8221; Oh yes, women will also fight it out on CBS, yet another revolting development.&#8221;</p>
<p>Then to show how little mis-informed he is &#8221; Dallas Mavericks owner Mark Cuban is getting involved, promoting MMA matches and also airing them on his HDNet channel on DirecTV. For that alone David Stern ought to fine and suspend him. He probably yells at those refs, too &#8220;. </p>
<p>Hey Leanord, HDNet is on every smart cable and satellite provider reaching more than 66mm homes. But if you get us on DirecTV, thats great. Maybe yo<span id="more-27"></span>u should actually try watching one of our MMA events, or Inside MMA on Friday Nights on H
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/25/important-changes-to-the-base-element-for-ie-7-2/" title="Important changes to the BASE element for IE 7">Important changes to the BASE element for IE 7</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/a-first-stab-at-basen-encoding-with-a-focus-on-general-alphabet-encoding-2/" title="A first stab at BaseN encoding with a focus on general alphabet encoding.">A first stab at BaseN encoding with a focus on general alphabet encoding.</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/a-first-stab-at-basen-encoding-with-a-focus-on-general-alphabet-encoding-2/" title="A first stab at BaseN encoding with a focus on general alphabet encoding.">A first stab at BaseN encoding with a focus on general alphabet encoding.</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/transparentproxy-2/" title="TransparentProxy">TransparentProxy</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/blogging-and-newspapers-a-lesson-in-how-not-to-brand-and-market-2/" title="Blogging and Newspapers, a Lesson in How Not to Brand and Market">Blogging and Newspapers, a Lesson in How Not to Brand and Market</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/24/applied-metamodelling-a-foundation-for-language-driven-development/" title="A Foundation for Language Driven Development">Applied Metamodelling: A Foundation for Language Driven Development</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/dare-obasanjo-on-c-anonymous-types-2/" title="Dare Obasanjo on C# Anonymous Types">Dare Obasanjo on C# Anonymous Types</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/25/should-membership-stores-be-permitted-in-redmonds-manufacturing-park-zone-2/">Should &#8220;Membership Stores&#8221; Be Permitted in Redmond&#8217;s Manufacturing Park Zone?</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/25/loadassemblyname-2/" title="Load(AssemblyName)">Load(AssemblyName)</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/24/applied-metamodelling-a-foundation-for-language-driven-development/" title="A Foundation for Language Driven Development">Applied Metamodelling: A Foundation for Language Driven Development</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/24/bloggers-in-the-mavs-locker-room-2/" title="Bloggers in the Mavs Locker Room ?">Bloggers in the Mavs Locker Room ?</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/25/should-membership-stores-be-permitted-in-redmonds-manufacturing-park-zone-2/">Should &#8220;Membership Stores&#8221; Be Permitted in Redmond&#8217;s Manufacturing Park Zone?</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/devweek-2008-cross-platform-silverlight-demos-2/" title="DevWeek 2008 Cross Platform Silverlight Demos">DevWeek 2008 Cross Platform Silverlight Demos</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/25/important-changes-to-the-base-element-for-ie-7-2/" title="Important changes to the BASE element for IE 7">Important changes to the BASE element for IE 7</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/an-interview-with-robin-milner/" title="An Interview with Robin Milner">An Interview with Robin Milner</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/devweek-2008-cross-platform-silverlight-demos-2/" title="DevWeek 2008 Cross Platform Silverlight Demos">DevWeek 2008 Cross Platform Silverlight Demos</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/devweek-2008-cross-platform-silverlight-demos-2/" title="DevWeek 2008 Cross Platform Silverlight Demos">DevWeek 2008 Cross Platform Silverlight Demos</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/24/java-perfomance-talk/" title="Java perfomance talk">Java perfomance talk</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/23/microformats-are-like-rfid-tags-for-the-web/" title="Microformats are like RFID tags for the Web">Microformats are like RFID tags for the Web</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/25/natural-sorting-in-c-2/" title="Natural Sorting in C#">Natural Sorting in C#</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/microformats-are-like-rfid-tags-for-the-web-2/" title="Microformats are like RFID tags for the Web">Microformats are like RFID tags for the Web</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/22/sigplan-workshop-on-undergraduate-programming-language-curriculum/" title="SIGPLAN Workshop on Undergraduate Programming Language Curriculum">SIGPLAN Workshop on Undergraduate Programming Language Curriculum</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/25/important-changes-to-the-base-element-for-ie-7-2/" title="Important changes to the BASE element for IE 7">Important changes to the BASE element for IE 7</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/introducing-microsoft-tagspace-2/" title="Introducing Microsoft Tagspace">Introducing Microsoft Tagspace</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/nothing-says-holidays-like-beer-and-raffles-2/">Nothing says &#8220;holidays&#8221; like beer and raffles</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/merry-christmas-indeed-2/" title="Merry Christmas Indeed!">Merry Christmas Indeed!</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/24/bloggers-in-the-mavs-locker-room-2/" title="Bloggers in the Mavs Locker Room ?">Bloggers in the Mavs Locker Room ?</a></i></p>
<p>DNet. You might learn what MMA fans have come to love about the sport. Its one of strategy, discipline, athleticism and determination. What I really love about MMA is that anyone can be beaten on any given day. Its not a cliche. The number of undefeated fighters at the top of the ranks are few and far between and even those fighters will tell you it would be tough to stay undefeated. More importantly, the top fighters in the sport from Randy Couture, to Fedor, to St Pierre, to Silva to Jackson and more want to fight the best. Thats what makes this, and any sport fun. Recognizing the best striving to be the best.</p>
<p>To your question &#8220;So why is it that nearly any time I happen to surf past the Spike or Showtime cable networks that currently carry MMA events, the combatants are beating the bloody bejabbers out of each other?&#8221;</p>
<p>Maybe rather than surfing past the fights, you should actually watch one. Or better yet, since you apparently cover Football, talk to a player on the Redskins or better yet, the team doctor and ask them if they &#8220;beat the bloody bejabbers out of each other&#8221;. Then ask them this, &#8220;are there automatic suspensions for any hints of concussions or injury after every game or simply for precautionary reasons ?&#8221; There are after every fight in MMA </p>
<p>In fact, the argument can easily be made that MMA is far more science and humane than boxing has been. In MMA a fighter must know multiple disciplines in order to be successful. In MMA, a
<div>Developing <a href="http://www.multisoftgroup.com/projects.html" title="Customer Relationship Management ">Customer Relationship Management</a> Solutions. Web, e-Commerce, Database Design and Software Development.
</div>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/updated-finalization-and-hosting-2/" title="Updated Finalization and Hosting">Updated Finalization and Hosting</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/22/claimspace-against-a-well-designed-reputation-system/" title="Against a Well-designed Reputation System">Claimspace: Against a Well-designed Reputation System</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/updated-finalization-and-hosting-2/" title="Updated Finalization and Hosting">Updated Finalization and Hosting</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/blogging-and-newspapers-a-lesson-in-how-not-to-brand-and-market-2/" title="Blogging and Newspapers, a Lesson in How Not to Brand and Market">Blogging and Newspapers, a Lesson in How Not to Brand and Market</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/23/quick-attempt-at-a-validating-roman-numeral-parser-lots-of-gotchas/" title="Quick attempt at a validating roman numeral parser... Lots of gotchas.">Quick attempt at a validating roman numeral parser&#8230; Lots of gotchas.</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/linq-the-uber-findcontrol-2/" title="LINQ - The Uber FindControl">LINQ &#8211; The Uber FindControl</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/startup-shutdown-and-related-matters-2/" title="Startup, Shutdown and related matters">Startup, Shutdown and related matters</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/merry-christmas-indeed-2/" title="Merry Christmas Indeed!">Merry Christmas Indeed!</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/a-first-stab-at-basen-encoding-with-a-focus-on-general-alphabet-encoding-2/" title="A first stab at BaseN encoding with a focus on general alphabet encoding.">A first stab at BaseN encoding with a focus on general alphabet encoding.</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/introducing-microsoft-tagspace-2/" title="Introducing Microsoft Tagspace">Introducing Microsoft Tagspace</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/24/bloggers-in-the-mavs-locker-room-2/" title="Bloggers in the Mavs Locker Room ?">Bloggers in the Mavs Locker Room ?</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/blogging-and-newspapers-a-lesson-in-how-not-to-brand-and-market-2/" title="Blogging and Newspapers, a Lesson in How Not to Brand and Market">Blogging and Newspapers, a Lesson in How Not to Brand and Market</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/merry-christmas-indeed-2/" title="Merry Christmas Indeed!">Merry Christmas Indeed!</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/24/new-posting-on-msdn-about-script-leak-patterns-and-how-to-fix-them-for-anyone-that-builds-dynamic-web-apps/" title="New posting on MSDN about script leak patterns and how to fix them for anyone that builds dynamic web apps.">New posting on MSDN about script leak patterns and how to fix them for anyone that builds dynamic web apps.</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/merry-christmas-indeed-2/" title="Merry Christmas Indeed!">Merry Christmas Indeed!</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/generics-and-net-2/" title="Generics and .NET">Generics and .NET</a></i></p>
<p><i>Also see: <a href="http://simma2000.rticlz.com/2008/03/24/spring-web-flow-features-and-feedback-request/" title="Spring Web Flow features and feedback request">Spring Web Flow features and feedback request</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/updated-finalization-and-hosting-2/" title="Updated Finalization and Hosting">Updated Finalization and Hosting</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/25/avoid-devpath-2/" title="Avoid DevPath">Avoid DevPath</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/24/claimspace-a-long-tail-recognition-system-2/" title="Claimspace, a Long Tail Recognition System">Claimspace, a Long Tail Recognition System</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/25/applied-metamodelling-a-foundation-for-language-driven-development-2/" title="A Foundation for Language Driven Development">Applied Metamodelling: A Foundation for Language Driven Development</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/22/java-perfomance-talk/" title="Java perfomance talk">Java perfomance talk</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/linq-the-uber-findcontrol-2/" title="LINQ - The Uber FindControl">LINQ &#8211; The Uber FindControl</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/youtube-tries-to-get-legal-2/" title="YouTube Tries to Get Legal">YouTube Tries to Get Legal</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/24/devweek-2008-cross-platform-silverlight-demos-2/" title="DevWeek 2008 Cross Platform Silverlight Demos">DevWeek 2008 Cross Platform Silverlight Demos</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/linq-the-uber-findcontrol-2/" title="LINQ - The Uber FindControl">LINQ &#8211; The Uber FindControl</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/ide-day-in-genoa-italy/" title="IDE Day in Genoa, Italy">IDE Day in Genoa, Italy</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/23/merry-christmas-indeed-2/" title="Merry Christmas Indeed!">Merry Christmas Indeed!</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/23/ide-day-in-genoa-italy/" title="IDE Day in Genoa, Italy">IDE Day in Genoa, Italy</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/22/java-perfomance-talk/" title="Java perfomance talk">Java perfomance talk</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/24/a-couple-of-my-rules-for-startups-2/" title="A Couple of My Rules for Startups">A Couple of My Rules for Startups</a></i></p>
<p> fighter need not fight until he or she is knocked out. Unlike the shame of &#8220;throwing in the towel&#8221; or &#8220;No Mas&#8221; its acceptable to tapout and avoid injury when a fighter is beaten.</p>
<p>Furthermore, to refer to MMA fans as &#8221; a howling mob &#8221; further proves your ignorance.</p>
<p>I could go on and on about MMA. Its always easy to dismiss what you don&#8217;t understand. As you prove.</p>
<p>MMA is easily the fastest growing sport in America. Participation is growing with kids starting classes as young as 6. Its this generation&#8217;s equivalent to karate classes for kids of previous generations. Which makes the prospects for MMA even more exciting. Today&#8217;s crop of athletes started by learning a single discipline and then adding others. Future generations will learn them all and add their own enhancements. The best is yet to come.<br />
<h6></h6>
<p>Permalink &#160;|&#160;Email this &#160;|&#160;Linking&#160;Blogs &#160;|&#160;Comments </p>
<p>http://www.blogmaverick.com/2008/03/18/this-guy-proves-anyone-with-a-keyboard-can-be-stupid/</p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/03/25/this-guy-proves-anyone-with-a-keyboard-can-be-stupid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brad Abrams&#8217; pixel8 Interview Podcast posted</title>
		<link>http://kerrysoft16.edublogs.org/2008/03/23/brad-abrams-pixel8-interview-podcast-posted/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/03/23/brad-abrams-pixel8-interview-podcast-posted/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 12:48:13 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[ERP solution]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/03/23/brad-abrams-pixel8-interview-podcast-posted/</guid>
		<description><![CDATA[Also see: Big in Japan Also see: Hello world! Also see: Exception Handling in Running a Business I just noticed that the good folks at Pixel8 posted a podcast I did with them a while back.&#160; It was a fun conversation about a bit of.NET history as well as where we are going.&#160; Landing Page [...]]]></description>
			<content:encoded><![CDATA[<p><i>Also see: <a href="http://chatter66.rticlz.com/2008/03/23/big-in-japan/" title="Big in Japan">Big in Japan</a></i></p>
<p><i>Also see: <a href="http://chatter66.rticlz.com/2008/03/21/hello-world/" title="Hello world!">Hello world!</a></i></p>
<p><i>Also see: <a href="http://chatter66.rticlz.com/2008/03/21/exception-handling-in-running-a-business/" title="Exception Handling in Running a Business">Exception Handling in Running a Business</a></i></p>
<p><P>I just noticed that the good folks at Pixel8 posted a podcast I did with them a while back.&nbsp; It was a fun conversation about a bit of.NET history as well as where we are going.&nbsp; </P><br />
<P> </P><br />
<BLOCKQUOTE><br />
<P>Landing Page &nbsp; Download show </P></BLOCKQUOTE><br />
<P>I&#8217;d love the hear what you think!</P><img src="http://blogs.msdn.com/aggbug.aspx?PostID=8145871" width="1" height="1"><br />
http://blogs.msdn.com/brada/archive/2008/03/15/brad-abrams-pixel8-interview-podcast-posted.aspx</p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/03/23/brad-abrams-pixel8-interview-podcast-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ &#8211; The Uber FindControl</title>
		<link>http://kerrysoft16.edublogs.org/2008/03/21/linq-the-uber-findcontrol/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/03/21/linq-the-uber-findcontrol/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 20:01:39 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM software]]></category>
		<category><![CDATA[ERP solution]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/03/21/linq-the-uber-findcontrol/</guid>
		<description><![CDATA[Also see: Blogs at work With a simple extension method to ControlCollection to flatten the control tree you can use LINQ to query the control tree:public static class PageExtensions { public static IEnumerable&#60;Control&#62; All(this ControlCollection controls) { foreach (Control control in controls) { foreach (Control grandChild in control.Controls.All()) yield return grandChild; yield return control; } [...]]]></description>
			<content:encoded><![CDATA[<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/19/blogs-at-work-2/" title="Blogs at work">Blogs at work</a></i></p>
<p><P>With a simple extension method to ControlCollection to flatten the control tree you can use LINQ to query the control tree:</P><PRE>public static class PageExtensions<br />
{<br />
 public static IEnumerable&lt;Control&gt; All(this ControlCollection controls)<br />
 {<br />
 foreach (Control control in controls)<br />
 {<br />
 foreach (Control grandChild in control.Controls.All())<br />
 yield return grandChild;</p>
<p> yield return control;<br />
 }<br />
 }<br />
}<br />
</PRE><PRE>Now I can do things like this:</PRE><PRE>// get the first empty textbox<br />
TextBox firstEmpty = accountDetails.Controls<br />
.All()<br />
.OfType&lt;TextBox&gt;()<br />
.Where(tb =&gt; tb.Text.Trim().Length == 0)<br />
.FirstOrDefault();</p>
<p>// and focus it<br />
if (firstEmpty != null)<br />
 firstEmpty.Focus();<br />
</PRE><br />
.csharpcode,.csharpcode pre<br />
{<br />
	font-size: small;<br />
	color: black;<br />
	font-family: consolas, &#8220;Courier New&#8221;, courier, monospace;<br />
	background-color: #ffffff;<br />
	/*white-space: pre;*/<br />
}<br />
.csharpcode pre { margin: 0em; }<br />
.csharpcode.rem { color: #008000; }<br />
.csharpcode.kwrd { color: #0000ff; }<br />
.csharpcode.str { color: #006080; }<br />
.csharpcode.op { color: #0000c0; }<br />
.csharpcode.preproc { color: #cc6633; }<br />
.csharpcode.asp { background-color: #ffff00; }<br />
.csharpcode.html { color: #800000; }<br />
.csharpcode.attr { color: #ff0000; }<br />
.csharpcode.alt<br />
{<br />
	background-color: #f4f4f4;<br />
	width: 100%;<br />
	margin: 0em;<br />
}<br />
.csharpcode.lnum { color: #606060; }</p>
<p><span id="more-3"></span><P>Pretty cool! I can do all sorts of querying of the control tree now. LINQ you are my h
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/19/versioningdeploying-unmanaged-files-2/" title="Versioning/Deploying Unmanaged Files">Versioning/Deploying Unmanaged Files</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/21/from-c-to-java-part-3-2/" title="From C# to Java:  Part 3">From C# to Java:  Part 3</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/uniqueness-typing-simplified-2/" title="Uniqueness Typing Simplified">Uniqueness Typing Simplified</a></i></p>
<p><i>Also see: <a href="http://chatter66.rticlz.com/2008/03/21/alexbarn-leaves-microsoftargh/" title="Alexbarn Leaves Microsoft...ARGH!">Alexbarn Leaves Microsoft&#8230;ARGH!</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/single-source-code-base-for-silverlight-and-wpf-solutions-2/" title="Single source code base for Silverlight and WPF solutions">Single source code base for Silverlight and WPF solutions</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/21/generating-wpf-content-with-linq-2/" title="Generating WPF Content with LINQ">Generating WPF Content with LINQ</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/from-c-to-java-part-4-2/" title="From C# to Java:  Part 4">From C# to Java:  Part 4</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/aspnet-mvc-in-codeplex-and-extensible-unit-testing-2/" title="ASP.NET MVC in CodePlex and Extensible Unit Testing">ASP.NET MVC in CodePlex and Extensible Unit Testing</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/i-love-clearcontext-2/" title="I love ClearContext!!">I love ClearContext!!</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/19/versioningdeploying-unmanaged-files-2/" title="Versioning/Deploying Unmanaged Files">Versioning/Deploying Unmanaged Files</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/using-ironpython-for-dynamic-expressions-2/" title="Using IronPython for Dynamic Expressions.">Using IronPython for Dynamic Expressions.</a></i></p>
<p><i>Also see: <a href="http://spacechat.blogsome.com/2008/03/21/the-influence-of-style-upon-methodology-2/" title="The influence of style upon methodology...">The influence of style upon methodology&#8230;</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/the-exception-model-2/" title="The Exception Model">The Exception Model</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/21/chicago-geek-dinner-1122-2/" title="Chicago geek dinner 11/22">Chicago geek dinner 11/22</a></i></p>
<p><i>Also see: <a href="http://thelivechatsoftware.blogsome.com/2008/03/20/uniqueness-typing-simplified-2/" title="Uniqueness Typing Simplified">Uniqueness Typing Simplified</a></i></p>
<p>ero.</P><img src="http://weblogs.asp.net/aggbug.aspx?PostID=2975485" width="1" height="1"><br />
http://weblogs.asp.net/dfindley/archive/2007/06/29/linq-the-uber-findcontrol.aspx</p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/03/21/linq-the-uber-findcontrol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

