<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="http://www.google.com/reader">Google Reader</generator><id>tag:google.com,2005:reader/user/13668608591451703896/state/com.google/broadcast</id><title>Arnon's shared items in Google Reader</title><gr:continuation>CI3Vh_HWg5cC</gr:continuation><author><name>Arnon</name></author><updated>2008-11-21T19:50:46Z</updated><link rel="self" href="http://feeds.feedburner.com/ARGOReadings" type="application/atom+xml" /><entry gr:crawl-timestamp-msec="1227297046796"><id gr:original-id="http://www.infoq.com/news/2008/11/Singularity-Open">tag:google.com,2005:reader/item/c18b778841ba820c</id><title type="html">Singularity: Microsoft&amp;#39;s Open Source Operating System</title><published>2008-11-18T14:49:00Z</published><updated>2008-11-18T14:49:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461112877/Singularity-Open" type="text/html" /><summary xml:base="http://www.infoq.com/" type="html">The second release of the Singularity Research Development Kit is now available as both source code and as a bootable CD. Singularity is an operating system based almost entirely on managed code with a very high degree of isolation between processes. In an unusual move by Microsoft, Singularity is soliciting patches and offering full developer rights on CodePlex. &lt;i&gt;By Jonathan Allen&lt;/i&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461112877" height="1" width="1"/&gt;</summary><author><name>Jonathan Allen</name></author><source gr:stream-id="feed/http://www.infoq.com/rss/rss.action?token=pnh3tDf0ZtgBsB2JJ70MoS0Ie5s6Ccgw"><id>tag:google.com,2005:reader/feed/http://www.infoq.com/rss/rss.action?token=pnh3tDf0ZtgBsB2JJ70MoS0Ie5s6Ccgw</id><title type="html">InfoQ Personalized Feed for Arnon Rotem-Gal-Oz</title><link rel="alternate" href="http://www.infoq.com" type="text/html" /></source><feedburner:origLink>http://www.infoq.com/news/2008/11/Singularity-Open</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227296972328"><id gr:original-id="">tag:google.com,2005:reader/item/098216a7625a6e39</id><title type="html">IBM's alphaWorks has released HeapAnalyzer 2.9, a tool for locating possible memory leaks through "heuristic search engine and analysis of the Java heap dump in Java applications.</title><published>2008-11-21T19:49:32Z</published><updated>2008-11-21T19:49:32Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461112878/" type="text/html" /><summary xml:base="http://www.cafeaulait.org/" type="html">IBM's alphaWorks has released HeapAnalyzer 2.9, a tool for locating possible memory leaks through "heuristic search engine and analysis of the Java heap dump in Java applications. Java heap areas define objects, arrays, and classes. When the Garbage Collector allocates areas of storage in the heap, an object continues to be live while a reference to it exists somewhere in the active state of the JVM; therefore the object is reachable. When an object ceases to be referenced from the active state, it becomes garbage and can be reclaimed for reuse. When this reclamation occurs, the Garbage Collector must process a possible finalizer and also ensure that any internal JVM resources that are associated with the object are returned to the pool of such resources. Java heap dumps are snap shots of Java heaps at specific times." This is a bug fix release.&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461112878" height="1" width="1"/&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://www.cafeaulait.org/today.rss"><id>tag:google.com,2005:reader/feed/http://www.cafeaulait.org/today.rss</id><title type="html">Cafe au Lait Java News and Resources</title><link rel="alternate" href="http://www.cafeaulait.org/" type="text/html" /></source><feedburner:origLink>http://www.cafeaulait.org/#November_19_2008_25189</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227296819902"><id gr:original-id="http://ayende.com/Blog/archive/2008/11/21/implementing-methodologies.aspx">tag:google.com,2005:reader/item/6836e7c8161a997e</id><category term="Development" /><title type="html">Implementing Methodologies</title><published>2008-11-21T19:26:11Z</published><updated>2008-11-21T19:26:11Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461112879/implementing-methodologies.aspx" type="text/html" /><summary xml:base="http://ayende.com/Blog/Default.aspx" type="html">&lt;br&gt;
I am writing this in a bar in Malmo. Sitting with a bunch of guys and discussing software methodologies. I had an observation that I really feel that I should share.&lt;br&gt;
&lt;br&gt;
Most software methodologies are making a lot of implicit assumptions. The most common implicit assumption is that the people working on the software are Good people. That is, people who care, know how and willing to do.&lt;br&gt;
&lt;br&gt;
This work, quite well, in the early adopters phase, since most early adopters trend toward these set of qualities anyway. The problem is when the early adoption phase is over, and the methodologies hit the main stream. At this point, the implicit assumption about Good people no longer hold true.&lt;br&gt;
&lt;br&gt;
Just to annoy Scott Bellware, here is a big problem that I can find with Lean just from the things that I heard about Lean from him. Toyota hires the top 2% of the engineers that they interview. A lot of the methodology assume a competent team, or at the very least, a competent chief engineer.&lt;br&gt;
&lt;br&gt;
I don't think that I need to state that competency is not universal.&lt;br&gt;
&lt;br&gt;
If your methodology assumes competence, and most of the methodologies that we (as in I and like minded people) would find favorable do assume competence, it is going to fail in the treches.&lt;img src="http://ayende.com/Blog/aggbug/10625.aspx" width="1" height="1"&gt;&lt;p&gt;&lt;a href="http://theloungenet.com/feeds/redirect/DOTNETRSS/AYENDE/F739070EEA048E74A701D7138233F6649DB96AD5"&gt;&lt;img src="http://theloungenet.com/feeds/img/DOTNETRSS/AYENDE/F739070EEA048E74A701D7138233F6649DB96AD5"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AyendeRahien/~4/461089694" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461112879" height="1" width="1"/&gt;</summary><author><name>Ayende Rahien</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/AyendeRahien"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/AyendeRahien</id><title type="html">Ayende @ Rahien</title><link rel="alternate" href="http://ayende.com/Blog/Default.aspx" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/AyendeRahien/~3/461089694/implementing-methodologies.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227294855626"><id gr:original-id="http://www.rubyinside.com/?p=1342">tag:google.com,2005:reader/item/1e9f2366e1ae257e</id><category term="Tools" /><category term="bdd" /><category term="cucumber" /><category term="rspec" /><category term="testing" /><title type="html">Cucumber: The Latest in Ruby Testing</title><published>2008-11-19T19:35:20Z</published><updated>2008-11-19T19:35:20Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461074512/cucumber-the-latest-in-ruby-testing-1342.html" type="text/html" /><content xml:base="http://www.rubyinside.com/" type="html">&lt;p&gt;&lt;img src="http://www.rubyinside.com/wp-content/uploads/2008/11/cucumber.png" alt="" width="129" height="91" style="margin:0px 8px 8px 0px;float:left"&gt;Testing is a firmly ingrained part of the Ruby culture: you probably ran across &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html"&gt;Test::Unit&lt;/a&gt; not long after you first started writing Ruby code (though it wouldn't be surprising if you ignored it for a while). But it hasn't been a static part of Ruby - we've seen the simple availability of tests evolve into test-driven development (TDD) that in turn gave rise to behavior-driven development (BDD). Along the way, Ruby has spawned a variety of testing tools and frameworks.&lt;strong&gt; The latest, Aslak Hellesoy's&lt;/strong&gt; &lt;strong&gt;&lt;a href="http://github.com/aslakhellesoy/cucumber/tree/master"&gt;Cucumber&lt;/a&gt;, is the latest addition to the RSpec family of tools.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cucumber is designed to allow you to execute feature documentation written in plain text (often known as "stories").&lt;/em&gt; I've been experimenting with it as a replacement for integration tests in Rails. With Cucumber, you can write tests that look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
Scenario: See all vendors
    Given I am logged in as a user in the administrator role
    And There are 3 vendors
    When I go to the manage vendors page
    Then I should see the first 3 vendor names
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With Cucumber, that it an executable specification that you can discuss with the customer and then use to verify the correct behavior of tests. Behind the scenes, you make it work by writing "steps," which are regex matchers that execute Ruby code. Here's one of the steps for that scenario:&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;Given&lt;/span&gt; &lt;span&gt;/&lt;/span&gt;&lt;span&gt;there&lt;/span&gt; &lt;span&gt;are&lt;/span&gt; &lt;span&gt;(\&lt;/span&gt;&lt;span&gt;d&lt;/span&gt;&lt;span&gt;+)&lt;/span&gt; &lt;span&gt;vendors&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;i&lt;/span&gt; &lt;span&gt;do&lt;/span&gt; &lt;span&gt;|&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;|&lt;/span&gt;
  &lt;span&gt;Vendor&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;transaction&lt;/span&gt; &lt;span&gt;do&lt;/span&gt;
    &lt;span&gt;Vendor&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;destroy_all&lt;/span&gt;
    &lt;span&gt;n&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;to_i&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;times&lt;/span&gt; &lt;span&gt;do&lt;/span&gt; &lt;span&gt;|&lt;/span&gt;&lt;span&gt;n&lt;/span&gt;&lt;span&gt;|&lt;/span&gt;
      &lt;span&gt;Factory&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;create&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;:vendor&lt;/span&gt;&lt;span&gt;,&lt;/span&gt; &lt;span&gt;:business_name&lt;/span&gt; &lt;span&gt;=&amp;gt;&lt;/span&gt; &lt;span&gt;"&lt;/span&gt;&lt;span&gt;Vendor &lt;span&gt;#{n}&lt;/span&gt;&lt;/span&gt;&lt;span&gt;")&lt;/span&gt;
    &lt;span&gt;end&lt;/span&gt;
  &lt;span&gt;end&lt;/span&gt;
&lt;span&gt;end&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Ideally, you'll do this all in true BDD fashion: write the Cucumber features first, watch them fail, implement code to make them pass (with lower-level tests written with RSpec or Test::Unit), and repeat.&lt;/p&gt;
&lt;p&gt;Cucumber is under rapid development, but it's already a useful part of my testing toolbox. In addition to integrating with RSpec and Rails, it works with Merb, Sinatra, and the Webrat web-testing framework (as well as, of course, pure Ruby projects). It also has translations into 20 languages and the ability to run FIT-style tabular tests. If you're looking for a higher level of abstraction in your tests, it's definitely worth checking out.&lt;/p&gt;
&lt;p style="font-family:verdana;font-style:italic;padding:8px;font-size:12px"&gt;Supported by: &lt;strong&gt;&lt;a href="http://gearsquare.com/actiongear/"&gt;ActionGear&lt;/a&gt; is a menu-bar app for task management on your Mac.&lt;/strong&gt; It's lightweight, quick, and helps you get stuff done. &lt;strong&gt;&lt;a href="http://gearsquare.com/actiongear/"&gt;Try it out for free.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/RubyInside?a=EKNFD6"&gt;&lt;img src="http://feeds.feedburner.com/~a/RubyInside?i=EKNFD6" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~f/RubyInside?a=qqbjN"&gt;&lt;img src="http://feeds.feedburner.com/~f/RubyInside?i=qqbjN" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RubyInside?a=zjS8n"&gt;&lt;img src="http://feeds.feedburner.com/~f/RubyInside?i=zjS8n" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RubyInside?a=QoUBn"&gt;&lt;img src="http://feeds.feedburner.com/~f/RubyInside?i=QoUBn" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/RubyInside?a=DMZVn"&gt;&lt;img src="http://feeds.feedburner.com/~f/RubyInside?i=DMZVn" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyInside/~4/458738638" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461074512" height="1" width="1"/&gt;</content><author><name>Mike Gunderloy</name></author><source gr:stream-id="feed/http://www.rubyinside.com/feed/"><id>tag:google.com,2005:reader/feed/http://www.rubyinside.com/feed/</id><title type="html">Ruby Inside</title><link rel="alternate" href="http://www.rubyinside.com" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/RubyInside/~3/458738638/cucumber-the-latest-in-ruby-testing-1342.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227294748141"><id gr:original-id="http://journal.bitshaker.com/articles/2008/11/19/a-shift-in-attitude/">tag:google.com,2005:reader/item/ef09886efb52f207</id><title type="html">Joe Homs: A Shift In Attitude</title><published>2008-11-19T20:14:10Z</published><updated>2008-11-19T20:14:10Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461074513/" type="text/html" /><summary xml:base="http://blogs.thoughtworks.com/" type="html">&lt;p&gt;Agile is about a shift in attitude more than process. It requires a shift in focus that is easy to explain, but hard to put in practice.&lt;/p&gt;
&lt;p&gt;A useful way to view making the change is as an investment. There are many advantages to thinking this way about how you change an organization.&lt;/p&gt;
&lt;p&gt;Being disciplined about investing in people, testing out theory, evaluation and constant improvement go a long way.&lt;/p&gt;
&lt;p&gt;When you look to implement this kind of change, process only takes you part of the way. The mechanics of analysis, for instance, can be taught in a few weeks, but it takes a deliberate shift in thinking as well as practice to get good.&lt;/p&gt;
&lt;p&gt;Shifting language is a good first step to shifting attitudes. Language around collaboration rather than commitees and processes. Shifting from requirements to goals and priorities.&lt;/p&gt;
&lt;p&gt;When you change language, you can start to change minds. It’s a long road and it helps to have experts to guide you along the way. Don’t expect a magic process and if you work with me, expect a conversation.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461074513" height="1" width="1"/&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/PlanetTw"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/PlanetTw</id><title type="html">Planet TW</title><link rel="alternate" href="http://blogs.thoughtworks.com/" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/PlanetTw/~3/458830446/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227294679693"><id gr:original-id="tag:typepad.com,2003:post-58674466">tag:google.com,2005:reader/item/190709d5bfecf896</id><category term="JP Morgenthal" scheme="http://www.sixapart.com/ns/types#category" /><category term="RIA" scheme="http://www.sixapart.com/ns/types#category" /><title type="html">Does Adobe Have What It Takes To Win the RIA Race?</title><published>2008-11-18T16:56:19Z</published><updated>2008-11-20T16:55:30Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461074514/does-adobe-have-what-it-takes-to-win-the-ria-race.html" type="text/html" /><content xml:base="http://apsblog.burtongroup.com/" xml:lang="en-US" type="html">&lt;div&gt;&lt;p&gt;&lt;a href="http://www.burtongroup.com/AboutUs/Bios/PrintBio.aspx?Id=186c970c-800wi"&gt;&lt;img alt="jmorgenthal_biopic" border="0" height="124" src="http://bgaps.typepad.com/.a/6a00d8345208e269e20105360a31cc970c-800wi" style="margin:0px 5px 5px 0px;float:left" title="jmorgenthal_biopic" width="100"&gt;&lt;/a&gt; Blogger: &lt;a href="http://www.burtongroup.com/AboutUs/Bios/PrintBio.aspx?Id=186"&gt;JP Morgenthal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m attending Adobe MAX this week in San Francisco (Nov 17-19, 2008).  There’s been some very strong announcements by Adobe regarding the expansion of the Flash platform for enterprise and consumer markets.  Through it all one craw still stick in my hat and that is does Adobe have what it takes to win in the rich internet application race?&lt;/p&gt;
&lt;p&gt;Take a quick glance at the RIA market and you will see that Adobe has a very strong presence in everything from media to enterprise applications.  With support from the likes of Salesforce.com and SAP, it would seem that they are a clear market leader.  That is if you discount Ajax&lt;span style="color:#1f497d"&gt; &lt;/span&gt;as a platform unto itself and the fact that Microsoft has been a keen comeback competitor.  Moreover, Google is not likely to go linger about quietly in this race.&lt;/p&gt;
&lt;p&gt;Additionally, up till now, Adobe’s success has been its ability to play nicely with other platforms.   PDF readers and Flash plug-ins are available for just about all critical platforms.  Will attempts by Adobe to take an ownership stake that steals thunder from these platforms affect their status?  To answer this we need to look at who would be affected by this.&lt;/p&gt;
&lt;p&gt;The most significant victim is the desktop Java Runtime Environment.  The write-once, run-anywhere mantra is slowly being consumed by the Flash player and Adobe AIR.  Moreover, with Sun’s inability to gain support for Java FX, their current structural instability, &lt;strong&gt;&lt;span style="color:red"&gt;&lt;/span&gt;&lt;/strong&gt;Adobe’s growing presence on the desktop and in the browser, and the increase in the number of Flex programmers, the Java applet should be nothing more than a memory within a couple of years.&lt;/p&gt;
&lt;p&gt;Next in line to be impacted is Google.  Google is a strong component of Ajax &lt;strong&gt;&lt;span style="color:red"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#1f497d"&gt;&lt;/span&gt;and invested heavily in tools and technologies that leverage Ajax&lt;span style="color:#1f497d"&gt; &lt;/span&gt;for rich internet applications.  Unlike Sun, which has been unable to leverage their large installed base of server-side developers, Google has enabled Web developers to deliver very usable Web applications without requiring a significant learning curve.   Moreover, Google&amp;#39;s main revenue stream is advertising and Flash-clients consuming Google services without also delivering the associated advertising has a limited life span.  This will require Google to act as a competitor to Adobe in the RIA race.&lt;span style="color:#1f497d"&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color:red"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finally, and never to be discounted, is Microsoft with Silverlight.  Currently a nascent player, Microsoft is bargaining for a position at the table and does not like to lose.  Microsoft’s .NET platform, which is the basis for Silverlight, has some powerful application features and offers more programming languages than just ActionScript, which could be an influential factor in attracting developers to the platform.  In addition, there are a number of .NET programmers now familiar with XAML and Windows Presentation Framework.&lt;strong&gt;&lt;span style="color:red"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Adobe has always offered the market good adjunct capabilities, I hope with this recent attempt to gain adoption of a much larger platform, they haven’t bitten off more than they can chew.&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461074514" height="1" width="1"/&gt;</content><author><name>JP Morgenthal</name></author><source gr:stream-id="feed/http://apsblog.burtongroup.com/atom.xml"><id>tag:google.com,2005:reader/feed/http://apsblog.burtongroup.com/atom.xml</id><title type="html">Application Platform Strategies Blog</title><link rel="alternate" href="http://apsblog.burtongroup.com/" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/ApplicationPlatformStrategiesBlog/~3/458520148/does-adobe-have-what-it-takes-to-win-the-ria-race.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227294592021"><id gr:original-id="tag:www.innoq.com,2008:/blog/st//3.2797">tag:google.com,2005:reader/item/761ce200f95637c9</id><title type="html">How Toxic is Your Code?</title><published>2008-11-21T06:26:24Z</published><updated>2008-11-21T06:26:41Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461074515/how_toxic_is_your_code.html" type="text/html" /><content xml:base="http://www.innoq.com/blog/st/" xml:lang="en" type="html">&lt;p&gt;&lt;a href="http://erik.doernenburg.com/2008/11/how-toxic-is-your-code/"&gt;Erik Doernenburg&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Now, as a developer, how do you help managers and business people understand the internal quality of code? They generally want a bit more than “it’s horrible” before they prioritise cleaning up the code over implementing new features that directly deliver business value. Or even: how do you figure out for yourself how bad some code actually is in relation to some other code?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nice visualization of problems in a Java codebase. Given that I'm currently involved in assessing a 15000 line Rails codebase, I wonder whether something similar exists for Ruby?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461074515" height="1" width="1"/&gt;</content><author><name>Stefan Tilkov</name></author><source gr:stream-id="feed/http://www.innoq.com/blog/st/atom.xml"><id>tag:google.com,2005:reader/feed/http://www.innoq.com/blog/st/atom.xml</id><title type="html">Stefan Tilkov&amp;#39;s Random Stuff</title><link rel="alternate" href="http://www.innoq.com/blog/st/" type="text/html" /></source><feedburner:origLink>http://www.innoq.com/blog/st/2008/11/how_toxic_is_your_code.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227294558987"><id gr:original-id="http://www.simonsegal.net/blog/2008/11/19/jesse-libertys-silverlight-tutorials-in-pdf-format/">tag:google.com,2005:reader/item/306d44e15360f391</id><category term="Silverlight" /><category term="XAML" /><title type="html">Jesse Liberty’s Silverlight tutorials in PDF format.</title><published>2008-11-19T04:17:08Z</published><updated>2008-11-19T04:17:08Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461074516/" type="text/html" /><content xml:base="http://www.simonsegal.net/blog" type="html">&lt;p&gt;&lt;a href="http://www.simonsegal.net/blog/CodeDownloads/Jesse%20Liberty&amp;#39;s%20Silverlight%20Tutorials.zip"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" src="http://www.simonsegal.net/blog/wp-content/uploads/2008/11/jesse-tutorials.png" border="0" alt="jesse_tutorials" width="109" height="150" align="left"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ever since reading Programming C# I have been a fan of &lt;a href="http://silverlight.net/blogs/jesseliberty/"&gt;Jesse Liberty’s&lt;/a&gt; unique way of writing learning material and so when I was looking for Silverlight content I was very pleased to find Jesse’s tutorials.&lt;/p&gt;
&lt;p&gt;I found these &lt;a href="http://silverlight.net/learn/tutorials.aspx"&gt;tutorials&lt;/a&gt; useful however I am one of those people that need to print material that I use to learn from rather than flipping from window to window (or monitor to monitor). So as per my modus operandi I condensed Jesse’s tutorial’s into a single PDF and you find it &lt;a href="http://www.simonsegal.net/blog/CodeDownloads/Jesse%20Liberty&amp;#39;s%20Silverlight%20Tutorials.zip"&gt;here&lt;/a&gt; if your like me and prefer to print the whole lot out. Here are the &lt;a href="http://silverlight.net/learn/tutorials.aspx"&gt;original&lt;/a&gt; posts.&lt;/p&gt;
&lt;p&gt;
    &lt;a name="a2a_dd" href="http://www.addtoany.com/bookmark?sitename=Living%20in%20the%20Tech%20Avalanche%20Generation&amp;amp;siteurl=http%3A%2F%2Fwww.simonsegal.net%2Fblog%2F&amp;amp;linkname=Jesse%20Liberty%E2%80%99s%20Silverlight%20tutorials%20in%20PDF%20format.&amp;amp;linkurl=http%3A%2F%2Fwww.simonsegal.net%2Fblog%2F2008%2F11%2F19%2Fjesse-libertys-silverlight-tutorials-in-pdf-format%2F"&gt;&lt;img src="http://www.simonsegal.net/blog/wp-content/plugins/add-to-any/share_save_171_16.gif" width="171" height="16" border="0" alt="Share/Save/Bookmark"&gt;&lt;/a&gt;
    
    

	&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461074516" height="1" width="1"/&gt;</content><author><name>Simon Segal</name></author><source gr:stream-id="feed/http://www.simonsegal.net/blog/feed/"><id>tag:google.com,2005:reader/feed/http://www.simonsegal.net/blog/feed/</id><title type="html">Living in the Tech Avalanche Generation</title><link rel="alternate" href="http://www.simonsegal.net/blog" type="text/html" /></source><feedburner:origLink>http://www.simonsegal.net/blog/2008/11/19/jesse-libertys-silverlight-tutorials-in-pdf-format/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227294023052"><id gr:original-id="http://ayende.com/Blog/archive/2008/11/21/stealing-from-your-client.aspx">tag:google.com,2005:reader/item/aaf9919d9ca4579b</id><category term="Development" /><title type="html">Stealing from your client</title><published>2008-11-21T12:24:07Z</published><updated>2008-11-21T12:24:07Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461059828/stealing-from-your-client.aspx" type="text/html" /><summary xml:base="http://ayende.com/Blog/Default.aspx" type="html">&lt;p&gt;I had a (great) talk yesterday, introducing Active Record. During this talk, I reused Jeremy's &lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2008/11/07/how-to-design-your-data-connectivity-strategy.aspx"&gt;statements&lt;/a&gt; about data access. If you write data access code, you are &lt;em&gt;stealing&lt;/em&gt; from your client.&lt;/p&gt;
&lt;p&gt;Frans Bouma puts it &lt;a href="http://weblogs.asp.net/fbouma/archive/2008/11/21/baby-sitter-framework-2-0-change-tracking-in-the-ef-v2-it-s-still-your-problem.aspx"&gt;beautifully&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;&lt;span style="font-family:Verdana;font-size:13px;line-height:13px"&gt;No customer should accept that the team hired for writing the line-of-business application has spend time on writing a report-control or for example a grid control. So why should a customer accept to pay for time spend on other plumbing code? Just because the customer doesn't know any better? If so, isn't that erm... taking advantage of the inability of the customer to judge what the 'software guys' did was correct?&lt;/span&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The context for Frans' post was a design decision from the Entity Framework team. I read Frans' post first, and I didn't quite know how to react to it, until I saw what the proposed design is. You can read the entire EF post &lt;a href="http://blogs.msdn.com/efdesign/archive/2008/11/20/n-tier-improvements-for-entity-framework.aspx"&gt;here&lt;/a&gt;, but I'll try to summarize it so you can actually understand the point without going and reading the whole thing.&lt;/p&gt;
&lt;p&gt;The problem is supporting change tracking in disconnected scenarios. In particular, you take an object from the database and send it to the presentation layer, some time later, you get the object from the presentation layer and persist it to the database again. There is a whole &lt;em&gt;host&lt;/em&gt; of bad practices and really bad design decisions that are implicit in the &lt;em&gt;problem statement&lt;/em&gt;, but we will leave that alone for now.&lt;/p&gt;
&lt;p&gt;This is still a pretty common scenario, and it is more than reasonable that you would want your data access approach to support this.&lt;/p&gt;
&lt;p&gt;Here is how you do this using NHibernate:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;session.Merge( entityFromPresentationLayer );&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Frans' LLBLGen support a very similar feature. In other words, it is the business of the data access framework to do this, none of the developer's business to do any such thing.&lt;/p&gt;
&lt;p&gt;The current proposed EF design problem can be summarized in a single line.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;&lt;span style="font-family:consolas;font-size:11px;line-height:18px"&gt;&lt;span style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;context.ChangeRelationship(&lt;br style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;
  customer1,&lt;br style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;
  order1,&lt;br style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;
  c=&amp;gt;c.Orders,&lt;/span&gt; &lt;span style="color:#2B91AF;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;&lt;br style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;
  EntityState&lt;/span&gt;&lt;span style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"&gt;.Added);&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is code that &lt;em&gt;you&lt;/em&gt; as the user of EF, is supposed to write.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you write this type of code, you are stealing from your client.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This design violates the Infrastructure Responsibility Principle: Developers doesn't write infrastructure code for supported scenarios.&lt;/p&gt;
&lt;p&gt;In other words, it is okay not to support a feature, but it is &lt;em&gt;not&lt;/em&gt; okay to say that this is how you are supporting a feature.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;This Is Broken, By Design&lt;/p&gt;
&lt;img src="http://ayende.com/Blog/aggbug/10623.aspx" width="1" height="1"&gt;&lt;p&gt;&lt;a href="http://theloungenet.com/feeds/redirect/DOTNETRSS/AYENDE/8ECB67D31F47BD23A8820E77EE94FE03F6BDFA16"&gt;&lt;img src="http://theloungenet.com/feeds/img/DOTNETRSS/AYENDE/8ECB67D31F47BD23A8820E77EE94FE03F6BDFA16"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AyendeRahien/~4/460712854" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461059828" height="1" width="1"/&gt;</summary><author><name>Ayende Rahien</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/AyendeRahien"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/AyendeRahien</id><title type="html">Ayende @ Rahien</title><link rel="alternate" href="http://ayende.com/Blog/Default.aspx" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/AyendeRahien/~3/460712854/stealing-from-your-client.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227293929199"><id gr:original-id="http://www.stucharlton.com/blog/archives/000576.html">tag:google.com,2005:reader/item/40dd7d2dcb918fe2</id><category term="Tech" /><category term="enterprisey" /><category term="hypermedia" /><category term="rest" /><title type="html">Designing Enterprise IT systems with REST</title><published>2008-11-21T16:21:05Z</published><updated>2008-11-21T16:21:05Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461059829/000576.html" type="text/html" /><summary xml:base="http://www.stucharlton.com/blog/" type="html">&lt;p&gt;My final presentation for the week is up &lt;a href="http://www.slideshare.net/StuC/designing-enterprise-it-systems-with-rest-qcon-san-francisco-2008-presentation/"&gt;on SlideShare&lt;/a&gt;.     &lt;/p&gt;

&lt;p&gt;At first I was worried this might be a bit too "out there" , but feedback has indicated the presentation was well received and provocative in  the right ways, particularly in getting people working on REST to talk more about areas that have been usually punted, particularly the design of "interaction-oriented" interfaces in hypermedia, using POST.&lt;/p&gt;

&lt;p&gt;Great seeing &lt;a href="http://jim.webber.name/"&gt;Jim&lt;/a&gt;, &lt;a href="http://steve.vinoski.net/"&gt;Steve&lt;/a&gt; again, and meeting &lt;a href="http://www.crummy.com/"&gt;Leonard&lt;/a&gt; and &lt;a href="http://iansrobinson.com/"&gt;Ian&lt;/a&gt; for the first time.  Though they left the conference before my session, I also briefly got to meet &lt;a href="http://tbray.org/ongoing"&gt;Tim&lt;/a&gt;, and &lt;a href="http://mnot.net"&gt;Mark Nottingham&lt;/a&gt;, two leaders in this space whom I've long respected.   &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461059829" height="1" width="1"/&gt;</summary><author><name>stu</name></author><source gr:stream-id="feed/http://www.stucharlton.com/blog/index.rdf"><id>tag:google.com,2005:reader/feed/http://www.stucharlton.com/blog/index.rdf</id><title type="html">Stu says stuff</title><link rel="alternate" href="http://www.stucharlton.com/blog/" type="text/html" /></source><feedburner:origLink>http://www.stucharlton.com/blog/archives/000576.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227293838810"><id gr:original-id="c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6749210">tag:google.com,2005:reader/item/536005ceabcc2664</id><category term=".NET General" scheme="http://weblogs.asp.net/fbouma/archive/tags/.NET+General/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/fbouma/archive/tags/General+Software+Development/default.aspx" /><category term="Visual Studio" scheme="http://weblogs.asp.net/fbouma/archive/tags/Visual+Studio/default.aspx" /><title type="html">If the Chief-Architect doesn't decide... who does?</title><published>2008-11-21T10:04:12Z</published><updated>2008-11-21T10:04:12Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461059830/if-the-chief-architect-doesn-t-decide-who-does.aspx" type="text/html" /><summary xml:base="http://weblogs.asp.net/fbouma/default.aspx" type="html">&lt;p&gt;
Yesterday I read this &lt;a href="http://blogs.msdn.com/ricom/archive/2008/11/18/the-visual-studio-tech-roadmap-starring-visual-studio-2010.aspx"&gt;great article about VS.NET's technical roadmap&lt;/a&gt;, posted by &lt;a href="http://blogs.msdn.com/ricom"&gt;Rico Mariani&lt;/a&gt;. Rico is the Chief Architect of Visual Studio, and he explains what that title means as follows:
&lt;blockquote&gt;I am the Chief Architect but I'm also *only* the Chief Architect, I don't make the final decisions about what goes in the product, not even combined with the other architects.  Jointly we come up with the long term technology roadmap, it indicates key problems that need to be solved for the long-term health of the product among other things, but these things cannot usually be mapped directly in to features in a particular release.  So, while it's true that I have a significant effect on what we do, it is inadvisable to take any of what I write as some kind of commitment to deliver particular features; rather I talk about examples of things that we might do that are in line with the roadmap. &lt;/blockquote&gt;
&lt;/p&gt;
&lt;p&gt;
If Rico doesn't decide what's in the package, then... who does? And more importantly: how can a person who's &lt;i&gt;not&lt;/i&gt; the chief architect, decide what's included in a version? Aren't decisions about what's in a version fundamentally important for the architecture of a version? I think it is, despite the fact that everything is done as modular as possible. 
&lt;/p&gt;
&lt;p&gt;
Of course, another question arises: &lt;i&gt;why&lt;/i&gt; is the chief architect not given the right to decide what's in the version of VS.NET? Interesting team management, if you ask me. For example: if for feature group X, the system itself (the VS.NET framework) has to get a new subsystem, and X isn't included, the new subsystem is unnecessary. I wonder if Eclipse, with its relatively small team works the same way...
&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6749210" width="1" height="1"&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~f/FransBouma?a=KmQ7N"&gt;&lt;img src="http://feeds.feedburner.com/~f/FransBouma?i=KmQ7N" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/FransBouma?a=5mmin"&gt;&lt;img src="http://feeds.feedburner.com/~f/FransBouma?i=5mmin" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/FransBouma?a=3APTn"&gt;&lt;img src="http://feeds.feedburner.com/~f/FransBouma?i=3APTn" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/FransBouma/~4/460612451" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461059830" height="1" width="1"/&gt;</summary><author><name>FransBouma</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/FransBouma"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/FransBouma</id><title type="html">Frans Bouma&amp;#39;s blog</title><link rel="alternate" href="http://weblogs.asp.net/fbouma/default.aspx" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/FransBouma/~3/460612451/if-the-chief-architect-doesn-t-decide-who-does.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227293702882"><id gr:original-id="http://blog.xebia.com/2008/11/21/qcon-san-francisco-2008-architects-agilists/">tag:google.com,2005:reader/item/2ebd1d288f701fd1</id><category term="Agile" /><category term="Architecture" /><category term="qcon" /><title type="html">QCon San Francisco 2008 - Architects &amp;amp; Agilists</title><published>2008-11-21T00:38:43Z</published><updated>2008-11-21T00:38:43Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461059831/" type="text/html" /><summary xml:base="http://blog.xebia.com/" type="html">&lt;div style="float:right;width:140px;padding-top:10px;margin-left:20px"&gt;
		&lt;/div&gt;&lt;p&gt;The &lt;a href="http://qconsf.com/"&gt;QCon San Francisco 2008 conference&lt;/a&gt; was opened with an interesting keynote by &lt;a href="http://www.thoughtworks.com/who-we-are/leadership-profiles/rebecca-parsons.html"&gt;Rebecca Parsons&lt;/a&gt; and &lt;a href="http://martinfowler.com/"&gt;Martin Fowler&lt;/a&gt;. In their talks they addressed the often strained relationship between traditional architects and agile development and how to improve this relationship to the benefit of both the agile development team and architects. These benefits include cross-project and cross-department  knowledge exchange, sharing of the architects many years of experience with the developers, and only working on the architecture that is actually needed.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The first part discussed the threat of agile development to the role of traditional architects and the distrust between developers and architects. Although many of the Ivory Tower Architect stereotypes may contain a grain of truth, the cause is often not the architects themselves. Many organizations put architects in a position that makes it hard or impossible to be successful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Goals like achieving 30% reuse - how to measure and promote this?&lt;/li&gt;
&lt;li&gt;Architects are not allowed to write code - so how can the architects keep up with the latest technology?&lt;/li&gt;
&lt;li&gt;Architects are often outnumbered by developers 30 to 1 or more - this leaves no time for being involved with projects or mentoring of the developers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Traditionally this leaves the architects with very few options, like specifying a reference architecture and requiring all projects to adhere to it, even when the architecture is not a good fit for the specific project. Not only does this clash with agile development, but agile development may even threaten this model. It is not surprising that this causes distrust between architects and agile teams.&lt;/p&gt;
&lt;p&gt;But this adversarial relationship is not necessary. The second part of the presentation addressed how agile development allows the architects to be successful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visibility in progress by delivering working software every iteration, allowing the architect to be involved and react.&lt;/li&gt;
&lt;li&gt;Up-to-date specifications of functionality through automated tests.&lt;/li&gt;
&lt;li&gt;Extracting reusable components from working code, instead of trying to build reusable components up-front that may never be used. &amp;quot;After the fact&amp;quot; instead of &amp;quot;design up front&amp;quot; reuse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So how can you involve the architects into the agile development process? By treating the architects as another stakeholder, just like the regular customer. The architectural requirements will need to be prioritized just like any other requirement. And requirements like &amp;quot;the system must be maintainable&amp;quot; will have to become specific and implementable, making the work of the architects more concrete and valuable.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://www.addthis.com/bookmark.php" title="Bookmark using any bookmark manager!"&gt;&lt;img src="http://s3.addthis.com/button1-bm.gif" width="125" height="16" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461059831" height="1" width="1"/&gt;</summary><author><name>Erik Rozendaal</name></author><source gr:stream-id="feed/http://blog.xebia.com/feed/rdf/"><id>tag:google.com,2005:reader/feed/http://blog.xebia.com/feed/rdf/</id><title type="html">Xebia Blog</title><link rel="alternate" href="http://blog.xebia.com" type="text/html" /></source><feedburner:origLink>http://blog.xebia.com/2008/11/21/qcon-san-francisco-2008-architects-agilists/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227293632347"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9131712">tag:google.com,2005:reader/item/d2763e8ed1729495</id><category term="Indigo" scheme="http://blogs.msdn.com/drnick/archive/tags/Indigo/default.aspx" /><category term="Messages" scheme="http://blogs.msdn.com/drnick/archive/tags/Messages/default.aspx" /><title type="html">Message Filters and Queries</title><published>2008-11-21T13:00:00Z</published><updated>2008-11-21T13:00:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461059832/message-filters-and-queries.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/drnick/default.aspx" type="html">&lt;p&gt;
Since a message filter and message query share a similar heritage, let's start by looking at the conceptually simpler message filter APIs.  You probably haven't seen message filters before unless you've gone out of your way to explore everything that comes with WCF.  They don't appear in the ordinary use of web services.
&lt;/p&gt;&lt;p&gt;
A message filter is basically a matching delegate that works on WCF messages.  There is not a lot of interesting message filter methods.
&lt;/p&gt;&lt;pre&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; MessageFilter&lt;br&gt;{&lt;br&gt;   &lt;span&gt;protected&lt;/span&gt; &lt;span&gt;internal&lt;/span&gt; &lt;span&gt;virtual&lt;/span&gt; IMessageFilterTable&amp;lt;FilterData&amp;gt; CreateFilterTable&amp;lt;FilterData&amp;gt;();&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;bool&lt;/span&gt; Match(Message message);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;bool&lt;/span&gt; Match(MessageBuffer buffer);&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;
As you might have guessed, there are Match methods for both messages and message buffers.  There's also this message filter table that you might not have expected.  The message filter table is used to optimize execution of message filters.  A message filter table contains a collection of related message filters and also has a slot for the application to store state data with each filter.
&lt;/p&gt;&lt;pre&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; MessageFilterTable&amp;lt;TFilterData&amp;gt; : IMessageFilterTable&amp;lt;TFilterData&amp;gt;, IDictionary&amp;lt;MessageFilter, TFilterData&amp;gt;, ICollection&amp;lt;KeyValuePair&amp;lt;MessageFilter, TFilterData&amp;gt;&amp;gt;, IEnumerable&amp;lt;KeyValuePair&amp;lt;MessageFilter, TFilterData&amp;gt;&amp;gt;, IEnumerable&lt;br&gt;{&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;bool&lt;/span&gt; GetMatchingFilter(Message message, &lt;span&gt;out&lt;/span&gt; MessageFilter filter);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;bool&lt;/span&gt; GetMatchingFilter(MessageBuffer buffer, &lt;span&gt;out&lt;/span&gt; MessageFilter filter);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;bool&lt;/span&gt; GetMatchingFilters(Message message, ICollection&amp;lt;MessageFilter&amp;gt; results);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;bool&lt;/span&gt; GetMatchingFilters(MessageBuffer buffer, ICollection&amp;lt;MessageFilter&amp;gt; results);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;int&lt;/span&gt; GetPriority(MessageFilter filter);&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;
I've picked a subset of the methods that help show how you can use the message filter table abstraction to change how the message filters execute.  For example, let's say that you've got a bunch of message filters in a message filter table and two of the filters share some common work.  When you execute the batch of message filters through the message filter table interface, the shared common work would ideally only get executed once.  Hiding the message filters behind the message filter table abstraction allows for these types of optimizations because the black box prevents an external observer from seeing the actual computations that get done.  The priority scheme is just an addon to deal with the fact that multiple message filters may match the same message.
&lt;/p&gt;&lt;p&gt;
A message query looks almost the same as a message filter except that message queries generate results instead of matches.
&lt;/p&gt;&lt;pre&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; MessageQuery&lt;br&gt;{&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;virtual&lt;/span&gt; MessageQueryCollection CreateMessageQueryCollection();&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; TResult Evaluate&amp;lt;TResult&amp;gt;(Message message);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; &lt;span&gt;abstract&lt;/span&gt; TResult Evaluate&amp;lt;TResult&amp;gt;(MessageBuffer buffer);&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;
The message query table similarly replaces results with matches.  I've again picked a subset of methods that demonstrate this.  You'll also notice that message queries are throughout emphasizing a multiple match mode rather than the single match mode of the message filter table.  This is due to the slightly different use cases that the two were designed for.
&lt;/p&gt;&lt;pre&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; MessageQueryTable&amp;lt;TItem&amp;gt; : IDictionary&amp;lt;MessageQuery, TItem&amp;gt;&lt;br&gt;{&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; IEnumerable&amp;lt;KeyValuePair&amp;lt;MessageQuery, TResult&amp;gt;&amp;gt; Evaluate&amp;lt;TResult&amp;gt;(Message message);&lt;br&gt;   &lt;span&gt;public&lt;/span&gt; IEnumerable&amp;lt;KeyValuePair&amp;lt;MessageQuery, TResult&amp;gt;&amp;gt; Evaluate&amp;lt;TResult&amp;gt;(MessageBuffer buffer);&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9131712" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461059832" height="1" width="1"/&gt;</summary><author><name>Nicholas Allen</name></author><source gr:stream-id="feed/http://blogs.msdn.com/drnick/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/drnick/rss.xml</id><title type="html">Nicholas Allen&amp;#39;s Indigo Blog</title><link rel="alternate" href="http://blogs.msdn.com/drnick/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/drnick/archive/2008/11/21/message-filters-and-queries.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227293606418"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9128396">tag:google.com,2005:reader/item/d437a7719f9844e5</id><category term="Indigo" scheme="http://blogs.msdn.com/drnick/archive/tags/Indigo/default.aspx" /><category term="Messages" scheme="http://blogs.msdn.com/drnick/archive/tags/Messages/default.aspx" /><title type="html">Future of Correlation Examples</title><published>2008-11-20T13:00:00Z</published><updated>2008-11-20T13:00:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/461059834/future-of-correlation-examples.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/drnick/default.aspx" type="html">&lt;p&gt;
Last time I talked about how WCF 4.0 standardizes many different types of correlations using a query mechanism and promised to go into more detail today.
&lt;/p&gt;&lt;p&gt;
You might already be familiar with the message filter engine in WCF 3.0.  If you haven't seen message filters before, then the message filter engine is just a way to check for matches in a message.  For example, you might have an implementation of a message filter that uses XPath expressions and then create the filter /s:Envelope/s:Body/x:FooRequestMessage/y:OrderId to match SOAP messages with a particular structure.  Instead of using an XPath to match the message content, you might instead have used an intrinsic function to match a message header or maybe even have described the filter in an entirely different language.  Evaluating the message filter tells you whether the particular message satisfies the rules of the filter.  The message filter engine manages a table of message filters so that the evaluation of many filters can be optimized.
&lt;/p&gt;&lt;p&gt;
For correlation, we created an equivalent to a message filter called a message query.  You can think of a message query as a message filter that both checks for matches in a message as well as returns the value that was matched.  For example, if you used the XPath message filter above, then it would tell you whether the message matched or not.  If you used the equivalent XPath message query, then the result of the match would also give you the value of the y:OrderId node.  Just like message filters, message queries are organized into tables by a message query engine to optimize the execution of many message queries at once.
&lt;/p&gt;&lt;p&gt;
You might see how to build correlations out of this query mechanism.  The correlation query describes the structure or piece of information that you'll be correlating on.  This information may be part of a message, a message header, or maybe even some function that gets run that doesn't depend on the message at all.  Some of the queries will return matches and produce query results.  These query results are then the value of the correlation that you'll be matching against.  For example, your correlation query may pick out the y:OrderId node from a message if it exists.  Let's say that it does and the node has the value 5.  Then, the message query result is the value 5, and you can match that value against a table of previously observed values to correlate this message with some previously created state.  Since you might have multiple pieces of information that are extracted, you want to have some way to hash and compare all of the matches at once.  That hash is the correlation key that I talked about last time.
&lt;/p&gt;&lt;p&gt;
Next time we'll look at the APIs for message filters and message queries to see exactly how this process works.
&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9128396" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/461059834" height="1" width="1"/&gt;</summary><author><name>Nicholas Allen</name></author><source gr:stream-id="feed/http://blogs.msdn.com/drnick/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/drnick/rss.xml</id><title type="html">Nicholas Allen&amp;#39;s Indigo Blog</title><link rel="alternate" href="http://blogs.msdn.com/drnick/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/drnick/archive/2008/11/20/future-of-correlation-examples.aspx</feedburner:origLink></entry><entry><title type="text">Links for 2008-11-17 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/456820230/arnonrgo" /><updated>2008-11-18T00:00:00-06:00</updated><id>http://del.icio.us/arnonrgo#2008-11-17</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.useit.com/alertbox/"&gt;Alertbox: Jakob Nielsen's Newsletter on Web Usability&lt;/a&gt;&lt;br/&gt;
A set of articles on different aspects of usability&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.useit.com/alertbox/"&gt;Alertbox: Jakob Nielsen's Newsletter on Web Usability&lt;/a&gt;&lt;br/&gt;
A set of articles on different aspects of usability&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/456820230" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-11-17</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227195031579"><id gr:original-id="">tag:google.com,2005:reader/item/371db3ce54a68ec6</id><title type="html">How to Control the Keyboard Using Silverlight</title><published>2008-11-18T02:45:00Z</published><updated>2008-11-18T02:45:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/459679883/" type="text/html" /><summary xml:base="http://msdn.microsoft.com/" type="html">This video shows you how to control your keyboard using Silverlight.&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/459679883" height="1" width="1"/&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://msdn.microsoft.com/architecture/rss.xml"><id>tag:google.com,2005:reader/feed/http://msdn.microsoft.com/architecture/rss.xml</id><title type="html">MSDN: U.S. Local Highlights</title><link rel="alternate" href="http://msdn.microsoft.com" type="text/html" /></source><feedburner:origLink>http://go.microsoft.com/?linkid=9636418</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227194222496"><id gr:original-id="http://www.engadget.com/2008/11/20/meizu-m8-captured-on-video-looking-smooth-doing-multitouch/">tag:google.com,2005:reader/item/ad8be9c09c090766</id><category term="demo" /><category term="j. wong" /><category term="J.Wong" /><category term="jack wong" /><category term="JackWong" /><category term="m8" /><category term="meizu" /><category term="meizu m8" /><category term="MeizuM8" /><category term="multitouch" /><category term="os" /><category term="ui" /><category term="user interface" /><category term="UserInterface" /><category term="video" /><title type="html">Meizu M8 captured on video looking smooth, doing multitouch</title><published>2008-11-20T14:58:00Z</published><updated>2008-11-20T14:58:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/459679884/" type="text/html" /><summary xml:base="http://www.engadget.com/" type="html">&lt;div align="center"&gt;&lt;img vspace="4" hspace="4" border="1" src="http://www.blogcdn.com/www.engadget.com/media/2008/11/m8_vid.jpg" alt=""&gt;&lt;br&gt;&lt;/div&gt;
Oh &lt;a href="http://www.engadget.com/tag/M8/"&gt;M8&lt;/a&gt;, you've grown up before our eyes. It seems like just yesterday we were looking at your early incarnations and their &lt;a href="http://www.engadget.com/2007/09/21/meizus-minione-m8-gui-exposed-shame-on-you-j-wong/"&gt;uncanny similarity to certain other devices&lt;/a&gt;. And how could we forget those times we spent together &lt;a href="http://www.engadget.com/2008/01/06/meizu-minione-to-miss-ces-jack-wong-promises-itll-be-at-cebit/"&gt;waiting for you&lt;/a&gt; at &lt;a href="http://www.engadget.com/2008/03/03/meizus-m8-a-cebit-no-show-just-like-ces-surprised/"&gt;trade shows&lt;/a&gt;, and &lt;strike&gt;mocking&lt;/strike&gt; &lt;a href="http://www.engadget.com/2008/03/04/video-meizu-m8-mini-one-os-looks-very-familiar/"&gt;checking out&lt;/a&gt; your early hardware? And now look at you, all grown up and caught on video doing your thing. You know what? This actually looks pretty damn nice. Sure, the obvious major iPhone influence is still there, but we have to say, Jack Wong and co. have done a pretty good job of smoothing out this UI -- and we didn't expect to see multitouch working this nicely. Of course, the clip says more than we ever could, so go and wrap yourself in your grandmother's afghan, grab a steaming cup of coffee, head out to the porch of your 19th century farmhouse, and just listen to the wind chimes and smooth sounds of this video as you take a tour of the Meizu M8... after the break.&lt;br&gt;&lt;br&gt;[Via &lt;a href="http://mp4nation.net/blog/?p=465"&gt;MP4 Nation Blog&lt;/a&gt;]&lt;p&gt;&lt;a href="http://www.engadget.com/2008/11/20/meizu-m8-captured-on-video-looking-smooth-doing-multitouch/" rel="bookmark"&gt;Continue reading &lt;em&gt;Meizu M8 captured on video looking smooth, doing multitouch&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Filed under: &lt;a href="http://www.engadget.com/category/cellphones/" rel="tag"&gt;Cellphones&lt;/a&gt;&lt;/p&gt;&lt;p style="padding:5px;background:#ddd;border:1px solid #ccc;clear:both"&gt;&lt;a href="http://www.engadget.com/2008/11/20/meizu-m8-captured-on-video-looking-smooth-doing-multitouch/"&gt;Meizu M8 captured on video looking smooth, doing multitouch&lt;/a&gt; originally appeared on &lt;a href="http://www.engadget.com"&gt;Engadget&lt;/a&gt; on Thu, 20 Nov 2008 09:58:00 EST.  Please see our &lt;a href="http://www.weblogsinc.com/feed-terms/"&gt;terms for use of feeds&lt;/a&gt;.&lt;/p&gt;&lt;h6 style="clear:both;padding:8px 0 0 0;height:2px;font-size:1px;border:0;margin:0;padding:0"&gt;&lt;/h6&gt;&lt;a href="http://www.engadget.com/2008/11/20/meizu-m8-captured-on-video-looking-smooth-doing-multitouch/" rel="bookmark" title="Permanent link to this entry"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.engadget.com/forward/1378028/" title="Send this entry to a friend via email"&gt;Email this&lt;/a&gt; | &lt;a href="http://www.engadget.com/2008/11/20/meizu-m8-captured-on-video-looking-smooth-doing-multitouch/#comments" title="View reader comments on this entry"&gt;Comments&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/459679884" height="1" width="1"/&gt;</summary><author><name>Joshua Topolsky</name></author><source gr:stream-id="feed/http://www.engadget.com/rss.xml"><id>tag:google.com,2005:reader/feed/http://www.engadget.com/rss.xml</id><title type="html">Engadget</title><link rel="alternate" href="http://www.engadget.com" type="text/html" /></source><feedburner:origLink>http://www.engadget.com/2008/11/20/meizu-m8-captured-on-video-looking-smooth-doing-multitouch/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227194163919"><id gr:original-id="http://www.dzone.com/links/135389.html">tag:google.com,2005:reader/item/4a9a5b5000887528</id><category term="research" /><category term="standards" /><category term="tools" /><title type="html">That thing about CI - Continous Integration</title><published>2008-11-20T14:47:35Z</published><updated>2008-11-20T14:47:35Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/459655694/shaafs_blog_blog_archive_that_thing_about_ci_cont.html" type="text/html" /><content xml:base="http://www.dzone.com/links/queue.html" type="html">&lt;a href="http://www.dzone.com/links/rss/shaafs_blog_blog_archive_that_thing_about_ci_cont.html"&gt;&lt;img src="http://cdn.dzone.com/images/thumbs/120x90/135389.jpg" style="width:120;height:90;float:left;vertical-align:top;border:1px solid #ccc"&gt;&lt;/a&gt;&lt;p style="margin-left:130px"&gt;Challenging Business requirements and the need for software development teams to remain agile and competitive while managing parallel development and releases requires a system which is adaptive to these demands.

Our approach to SCM enables unlimited and adaptable process models, which are ideally suited for parallel, distributed, and agile software development. Using state of the Art technologies from various vendors to automate processes such as branching, merging, build, and release keeps you a click away from software delivery.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.dzone.com/links/rss/shaafs_blog_blog_archive_that_thing_about_ci_cont.html"&gt;&lt;img src="http://www.dzone.com/links/voteCountImage?linkId=135389" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.dzone.com/~r/dzone/upcoming/~4/459641425" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/459655694" height="1" width="1"/&gt;</content><author><name>shaafshah</name></author><source gr:stream-id="feed/http://www.dzone.com/feed/queue/rss.xml"><id>tag:google.com,2005:reader/feed/http://www.dzone.com/feed/queue/rss.xml</id><title type="html">dzone.com: queued links</title><link rel="alternate" href="http://www.dzone.com/links/queue.html" type="text/html" /></source><feedburner:origLink>http://feeds.dzone.com/~r/dzone/upcoming/~3/459641425/shaafs_blog_blog_archive_that_thing_about_ci_cont.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227182662706"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:9119878">tag:google.com,2005:reader/item/cf2107af1a0652d7</id><category term="DSL Tools" scheme="http://blogs.msdn.com/keith_short/archive/tags/DSL+Tools/default.aspx" /><category term="Oslo" scheme="http://blogs.msdn.com/keith_short/archive/tags/Oslo/default.aspx" /><title type="html">Comments on Communication Between Doug Purdy and Lars Corneliussen</title><published>2008-11-18T19:37:00Z</published><updated>2008-11-18T19:37:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/459509209/comments-on-communication-between-doug-purdy-and-lars-corneliussen.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/keith_short/default.aspx" type="html">&lt;p style="margin:0in 0in 10pt"&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;Doug has published &lt;/font&gt;&lt;a href="http://douglaspurdy.com/2008/11/18/on-eclipse-oslo-and-how-to-invent-the-future-together/"&gt;&lt;font face="Calibri" size="3"&gt;a response&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt; to an Open Letter addressed to him from &lt;/font&gt;&lt;a href="http://startbigthinksmall.wordpress.com/2008/11/12/open-letter-to-douglas-purdy-eclipse-oslo-and-how-to-invent-the-future-together/"&gt;&lt;font face="Calibri" size="3"&gt;Lars Corneliussen&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;.&lt;span&gt;  &lt;/span&gt;I think Doug did a good job in addressing Lars’ concerns, and where not, to invite discussion.&lt;span&gt;  &lt;/span&gt;I wanted to add a couple of comments of my own.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt"&gt;&lt;span&gt;&lt;font face="Calibri" size="3"&gt;First: terminology connected with modeling, code generation and runtimes. Given my background in various modeling efforts at Microsoft over the last ten years, I know of the difficulty in seeming to redefine established terms. We faced a lot of the same concerns when, in 2004, we tried to help people understand the subtle distinctions between modeling with DSLs and using UML.&lt;span&gt;  &lt;/span&gt;As history showed, in many cases we were not very successful then, though these days (see several entries on &lt;/font&gt;&lt;a href="http://blogs.msdn.com/stevecook"&gt;&lt;font face="Calibri" size="3"&gt;Steve Cook’s blog&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt; especially &lt;/font&gt;&lt;a href="http://blogs.msdn.com/stevecook/archive/2008/10/07/uml-and-dsls.aspx"&gt;&lt;font face="Calibri" size="3"&gt;this one&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt; and &lt;/font&gt;&lt;a href="http://www.omg.org/docs/omg/08-09-03.pdf"&gt;&lt;font face="Calibri" size="3"&gt;this paper&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt; from Andrew Watson, Technical Director at the OMG), most people are willing to see how both approaches may combine to bring benefits to developers across the lifecycle.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;I for one have been using the term “model-driven software development” (or just “model-driven development” for short) for a number of years (actually going back to my pre-Microsoft years at Texas Instruments during the era of CASE tools). When Jack and I wrote the Software Factories book, we used the term model-driven development to encompass both “model-assisted” and “model-driven” as Doug uses those terms. We&lt;span&gt;  &lt;/span&gt;saw then, and still do today, that MDSD could involve models that transform to other models, which transform to code and which just “complete frameworks” by transforming into whatever is necessary (including no transformation) to drive a framework at runtime. For example, if I use a transform to build a logical data model, several workflows, and some service descriptions from a set of business process models, I think I’m doing more than just drawing, and I may be doing some code generation and model generation. Which of the three terms best describes this activity?&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt"&gt;&lt;span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt; &lt;/span&gt;As I explained in my previous blog entry concerning the &lt;/font&gt;&lt;/font&gt;&lt;a href="http://blogs.msdn.com/keith_short/archive/2008/11/06/oslo-and-the-dsl-toolkit.aspx"&gt;&lt;font face="Calibri" size="3"&gt;DSL Toolkit and Oslo&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt;, we are trying to help folks understand the specifics of Oslo in its first incarnation, with respect to pre-existing technologies from Visual Studio (and other parts of Microsoft). This leads us to seek terminology that helps us conduct that discussion, and in cases such as this, involves some subtle distinctions that are tough to differentiate. As Doug says: “&lt;/font&gt;&lt;/span&gt;&lt;span lang="EN"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;when you a birth a new product, naming/terminology is often the most difficult aspect of the process”.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0in 0in 10pt"&gt;&lt;span lang="EN"&gt;&lt;font face="Calibri" size="3"&gt;Second: Open Microsoft and Eclipse Modeling Project. I second Doug’s remarks wholeheartedly. I’d especially like to see discussion on relationships between EMF and oAW technologies.&lt;/font&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9119878" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/459509209" height="1" width="1"/&gt;</summary><author><name>Keith Short</name></author><source gr:stream-id="feed/http://blogs.msdn.com/keith_short/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/keith_short/rss.xml</id><title type="html">Keith Short&amp;#39;s Blog</title><link rel="alternate" href="http://blogs.msdn.com/keith_short/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/keith_short/archive/2008/11/18/comments-on-communication-between-doug-purdy-and-lars-corneliussen.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227181729064"><id gr:original-id="http://blog.softwareprojects.org/?p=797">tag:google.com,2005:reader/item/03d8e295193a5d8f</id><category term="Sites" /><title type="html">4 Big Ideas For Management</title><published>2008-11-20T05:23:04Z</published><updated>2008-11-20T05:23:04Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/459493038/big-ideas-for-management-797.html" type="text/html" /><content xml:base="http://blog.softwareprojects.org/" type="html">&lt;p&gt;If you want to dig a little deeper into new BIG ideas surrounding "management", I'll recommend the following four (have fun, it will take some time :))&lt;/p&gt;
&lt;p&gt;&lt;a href="http://linktosocialutions.com/?p=620"&gt;Socialutions&lt;/a&gt; (free ebook)&lt;/p&gt;
&lt;p&gt;"Companies must begin to apply Socialutions to their existing and future problems before the problems become social and public relations nightmares. For this reason we have just released a free eBook titled Socialutions: New Management Methods for the Social Era. This is a short ebook has nine chapters which cover the following topics:promotes this concept and is a movement for users to organize and set the agenda for the future of the web."&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;img src="http://blog.softwareprojects.org/wp-content/uploads/2008/11/idea.jpg" alt="idea 4 Big Ideas For Management" title="idea" width="414" height="167"&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.bioteams.com/2005/04/06/bioteaming_a_manifesto.html"&gt;Bioteaming&lt;/a&gt; (free manifesto)&lt;/p&gt;
&lt;p&gt;"A Conceptual Framework For The Successful Management Of Physically Distributed Collaborative Business Networks And Highly Mobile Virtual Teams."&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.audible.com/adbl/entry/offers/productPromo2.jsp?BV_SessionID=@@@@1626130787.1227116899@@@@&amp;amp;BV_EngineID=cccladefkdmmejjcefecekjdffidfgi.0&amp;amp;productID=FR_ADBL_000302"&gt;Tribes&lt;/a&gt; (free audio book by Seth Godin)&lt;/p&gt;
&lt;p&gt;"A tribe is any group of people, large or small, who are connected to one another, a leader, and an idea. For millions of years, humans have been seeking out tribes, be they religious, ethnic, economic, political, or even musical (think of the Deadheads). It's our nature."&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.bioteams.com/2008/11/13/p2p_an_introduction.html"&gt;Peer-To-Peer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;"P2P is a specific form of relational dynamic, is based on the assumed equipotency of its participants, organized through the free cooperation of equals in view of the performance of a common task, for the creation of a common good, with forms of decision-making and autonomy that are widely distributed throughout the network."&lt;/p&gt;
&lt;div&gt;&lt;span&gt;Related Posts&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://blog.softwareprojects.org/project-animals-the-deadly-basset-237.html" rel="bookmark" title="Permanent Link: Project Animals: The Deadly Basset"&gt;Project Animals: The Deadly Basset&lt;/a&gt;&lt;/span&gt;&lt;div&gt;I was brainstorming for some ideas to keep me busy the next few months (only got a gazillion ideas, ...&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://blog.softwareprojects.org/most-important-pm-task-94.html" rel="bookmark" title="Permanent Link: Most Important PM Task"&gt;Most Important PM Task&lt;/a&gt;&lt;/span&gt;&lt;div&gt;What is the most important task of a Project Manager? (makes a great dinner discussion if you want t...&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://blog.softwareprojects.org/motivate-your-team-members-248.html" rel="bookmark" title="Permanent Link: 25 Sure-fire Ways To Motivate Your Team Members"&gt;25 Sure-fire Ways To Motivate Your Team Members&lt;/a&gt;&lt;/span&gt;&lt;div&gt;Of all the resources utilized during a project, the team working on the project is the most complex ...&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://blog.softwareprojects.org/wtf-project-management-theories-3.html" rel="bookmark" title="Permanent Link: WTF: Project Management Theories?"&gt;WTF: Project Management Theories?&lt;/a&gt;&lt;/span&gt;&lt;div&gt;It is amazing how few Project Managers that are trained in a certain method actually know the underl...&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://blog.softwareprojects.org/sims-project-model-berts-lack-of-recognition-85.html" rel="bookmark" title="Permanent Link: Sims Project  Model: Bert&amp;#39;s Lack Of Recognition"&gt;Sims Project  Model: Bert's Lack Of Recognition&lt;/a&gt;&lt;/span&gt;&lt;div&gt;


If we take the ideas behind The Sims to a more office like situation, consider the following s...&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.softwareprojects.org/big-ideas-for-management-797.html"&gt;4 Big Ideas For Management&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/459493038" height="1" width="1"/&gt;</content><author><name>Bas de Baar</name></author><source gr:stream-id="feed/http://blog.softwareprojects.org/feed/"><id>tag:google.com,2005:reader/feed/http://blog.softwareprojects.org/feed/</id><title type="html">Project Shrink</title><link rel="alternate" href="http://blog.softwareprojects.org" type="text/html" /></source><feedburner:origLink>http://blog.softwareprojects.org/big-ideas-for-management-797.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1227181532853"><id gr:original-id="tag:blogger.com,1999:blog-6794675998088145034.post-8850447292051515030">tag:google.com,2005:reader/item/c31d5fff2ba930b5</id><title type="html">Peter Gillard-Moss: That's right: blame Agile</title><published>2008-11-19T19:19:00Z</published><updated>2008-11-19T19:19:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/459493039/leave-agile-out-of-it.html" type="text/html" /><summary xml:base="http://blogs.thoughtworks.com/" type="html">Before we start a small warning.  This is a rant and as such contains certain properties common to rants such as emotionally overstating unimportant points, glossing over and confusing important ones, over decorative language and taking the odd innocent as victim.  Bearing this in mind please remember though serious my tongue is sometimes placed firmly in cheek for dramatic effect.&lt;br&gt;&lt;br&gt;There has been a great debate happening over the airwaves of the blogosphere recently.  Sparked of by James Shore's post &lt;a href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html"&gt;The Decline and Fall of Agile&lt;/a&gt; it has gotten to some people declaring the death of agile and others calling for the rejection of the term altogether [link].  It's as if the Nazi party has just announced that the Third Reich was built on Scrum and suddenly everyone is trying to distance themselves: "no we never agreed with that agile stuff, what we were talking about is something completely different".&lt;br&gt;&lt;br&gt;Around the same time another debate is picking up steam started by Roy Osherove's post &lt;a href="http://weblogs.asp.net/rosherove/archive/2008/09/20/goodbye-mocks-farewell-stubs.aspx"&gt;Goodbye Mocks, Farewell Stubs&lt;/a&gt;.  Apparently people find testing too difficult to grok so we need to reject terms like mocks and stubs ('cos though accurate they are apparently confusing) and replace it with another: Fakes.  Oh the glaring irony as one side of the movement is rejecting marketing terms because too many people who use it don't know what it means while the other side try to introduce more marketing language to attract the people who don't know what it means.&lt;br&gt;&lt;br&gt;Uncle Bob has dropped in like Batman at the Jokers party and delivered his direct, powerful blow: &lt;a href="http://blog.objectmentor.com/articles/2008/11/16/dirty-rotten-scrumdrels"&gt;"the problem is you're all f*ing lazy"&lt;/a&gt;.  Although I feel that Uncle Bob is much closer to the truth than many other commentators he's not really offering a realistic solution out of the mess.&lt;br&gt;&lt;br&gt;So what exactly is the problem we've got here?  Both of these posts have something in common.  James Shore's issue stems from teams picking up words like Scrum and Sprint and forgetting that they have to write decent code as well.  Roy Osherove's post stems from the fact that getting teams to even write tests is met with constant failure.  Both posts talk about a general lack of engineering skill in IT.  In reaction different parties are offering up different solutions but they all fail to address the core issue.&lt;br&gt;&lt;br&gt;For those jumping the agile ship and getting onto the next coolest speedboat what exactly is that going to prove? Rather than improving the industry it leaves it helpless and sinking.  This is a rotten attitude that resolves nothing: when every PHP and VB programmer converts to Ruby what you gonna do then?  Oh it's OK Ola's writing Ioke and if that doesn't work we've always go Lisp (they'll never get that). Roy Osherove's solution of lowering barriers to entry is more commendable but will achieve just as little and is guilty of another great crime: dumbing down (though he's spot on about tool support).  I don't think the solution to poor engineering skills are to withdraw important technical terms: can you imagine the Bar rebranding legal terms because, y'know Lawyers just find it too difficult to understand this stuff or Doctors calling for less names for the organs 'cos med students these days just can't get the point of having the terms stomach and intestine and they keep operating on the wrong one.  Why can't we just call it the food processor?  Jay Fields' novel idea is to &lt;a href="http://blog.jayfields.com/2008/08/elephant-in-server-room.html"&gt;ask them all to politely leave&lt;/a&gt;  (50% of them in fact).  And if they don't?  Well then I guess we'll all get together and go around with a big seal club and sort it out that way (it's what I refer to as "The Great Culling" - there's those Nazi's marching past again).&lt;br&gt;&lt;br&gt;The real problem, the root cause to all this is simple (and on this most agree especially Uncle Bob and Jay): the gross under valuing of the skills which enable you to do your job.  The thing is it's nothing new.  It was there before agile and TDD had the impact they do today (they just laughed then).  Remember those not so long ago days when people thought the solution to delivering software wasn't skills or focus on quality but getting some glorified secretary to type up several hundred pages of requirements and then handing them to some supposed genius to design everything for the monkeys to punch in?  Well we're still there people: it's just they thought the solution to the mess that disaster caused was to do something called iterations, standing up and getting the monkeys to skip around the genius guy wrapping him in his own ribboned UML diagrams chanting "architect, architect, architect".&lt;br&gt;&lt;br&gt;Nothing's changed, agile or not.  The majority of the industry still doesn't value the basic, fundamental skills it takes to write software of acceptable quality.    It didn't before and it still doesn't now.  Instead it's obsessed with solving the problem by bringing in the right highly paid manager with the right powerpoint presented methodology.  Until the industry gets that ain't the way it will drag every shining beacon of light (agile, Ruby whatever) down into Hades with it.&lt;br&gt;&lt;br&gt;Writing software is about people People!  That's what agile and Lean and all their friends tell you again and again.  The fundamental principles are about people, not iterations, continuous integration and story boards.  Go check out the &lt;a href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt; and tell me where you see any of that stuff?  This bastard form of agile which only talks about tools and processes is like someone got the manifesto and spun it round (People OVER Process read it Again).  The practices and tools are there to actively encourage developers who are skilled, committed and know what they're doing and make them more empowered and productive and ultimately deliver MORE value and success, they are not there to replace them.&lt;br&gt;&lt;br&gt;So what is the solution?  The simple truth is that those of us who understand the problem have got to keep doing a great job, we've got to help those who want to do a great job but aren't sure how to do a great job and we've got help those who don't understand how to do a good job and may never will and may not even want to.  Sure it's depressing sometimes, it's frustrating but we can't just give up on the industry and jump away on the next term or simply dumb the whole thing down so the next generation can get it a little more but ultimately still fail to get it.&lt;br&gt;&lt;br&gt;Agile was never, is never going to be an quick, faultless success forever preserving an eternal purity.  Our industry is sick, real sick.  It's a beer guzzling, chain smoking, couch potato who's been told by his doctor to eat healthily, give up smoking and booze and get some exercise but instead just swallows the agile pill and hopes that's enough to save his sorry fat arse. And surprise surprise when the casualties start coming in their gonna blame those pills.&lt;br&gt;&lt;br&gt;We have generation after generation bought up on bad practices and incorrect assumptions (smoking isn't bad for you, exercise gives you heart attacks) and what's worse most of them don't even know how bad things are: they think this is NORMAL (sadly because IT IS), they've adjusted to a certain degree of failure.  IT projects are like lifts: sure your pissed off there broken down but your not surprised, you even kinda expected it.&lt;br&gt;&lt;br&gt;The mess is big and it's gonna take years to sort it out and a lot of hard work.  And yes, along the way people are going to buy the agile weight loss pill from some dodgy site on the Internet without seeking professional advice, get it wrong.  And why?  Because they're desperate!&lt;br&gt;&lt;br&gt;It was totally delusional to think agile was going to result in everyone suddenly rejecting their bad habits and come crawling on their knees and go XP Kosher.  And when that didn't work well there's always the prophesy of the True agile warriors standing in the post-apocolyptic world looking down on the dying as the last breath of those Tragic Lost sigh the now infamous regretful words "we wish we'd read our Domain Driven Designs".  Well don't worry because to become agile all you have to do is close your eyes and say "please Kent forgive us our hacks and deliver us not into Waterfall" and mean it, really mean it, and wait, above the mountain there what's that? is it who I think it is?  It is: the heavens are open and Martin Fowler is ascending into them.&lt;br&gt;&lt;br&gt;Let's get real here: developers who have never come across TDD before, who've never experienced it's value first hand, who've spent years doing things a certain way are struggling to grasp the concept and oh sorry that's surprising why?  I guess you were doing TDD from that first Hello World in Pascal?  And those people who go in and try Scrum for the first time and find they are riddled with technical debt because gave into pressure and didn't invest in quality.  Now stand up and be counted all you who never made that mistake.&lt;br&gt;&lt;br&gt;I'm not saying that we should just let these things go, hold our noses, ignore the smells and step over the shit.  Quite the opposite.  But we've got to accept that we're not going to walk into a room of professionals and get them to convert overnight (or year or possibly even decade).  How many years did it take before doctors accepted germ theory and started&lt;a href="http://softwarecraftsmanship.oreilly.com/news/2008/9/22/washing-your-hands"&gt; washing their hands&lt;/a&gt;?&lt;br&gt;&lt;br&gt;Though there is hope: the most effective weapon we have is success.  By being successful and then telling people about why and how we were successful.  That's how this whole agile thing started, that's how it built up it's great reputation and that's how it's going to survive and get better. The more success the more people will start to realize that what they're doing now isn't as good as they think.  Right now not testing, not caring about quality, high technical debt: that's the norm, that's expected.  Keep being successful and people will start asking the others those awkward questions: why does this application crash when my last team were virtually bug free, why does it take a weekend to get a release out when my last team did it in a few minutes?  Why does it take six months to implement a new feature when my last team took a week?  What do you mean there are ramifications and complications?  The more we deliver quality software the less room people will have to worm out of those questions and then the tipping point will come.&lt;br&gt;&lt;br&gt;Let's not be mistaken, it's going to be hard work: but isn't that the whole point?  Writing software is hard, agile doesn't change that and at first TDD certainly doesn't.  Yes it's frustrating and somedays you really want to scream and kick in the can but what's the alternative IT ghettos sucking in grads and with no way out?&lt;br&gt;&lt;br&gt;If, in the years to come, we want to work in a different industry then we've got to take some responsibility for helping create it.&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/459493039" height="1" width="1"/&gt;</summary><author><name>noreply@blogger.com (Peter Gillard-Moss)</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/PlanetTw"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/PlanetTw</id><title type="html">Planet TW</title><link rel="alternate" href="http://blogs.thoughtworks.com/" type="text/html" /></source><feedburner:origLink>http://feeds.feedburner.com/~r/PlanetTw/~3/458830448/leave-agile-out-of-it.html</feedburner:origLink></entry><entry><title type="text">Links for 2008-11-12 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/451485709/arnonrgo" /><updated>2008-11-13T00:00:00-06:00</updated><id>http://del.icio.us/arnonrgo#2008-11-12</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/dotnetopenid/"&gt;dotnetopenid - Google Code&lt;/a&gt;&lt;br/&gt;
OpenID implementation in .NET (C#)&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/dotnetopenid/"&gt;dotnetopenid - Google Code&lt;/a&gt;&lt;br/&gt;
OpenID implementation in .NET (C#)&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/451485709" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-11-12</feedburner:origLink></entry><entry><title type="text">Links for 2008-10-30 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/437682161/arnonrgo" /><updated>2008-10-31T00:00:00-05:00</updated><id>http://del.icio.us/arnonrgo#2008-10-30</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://channel9.msdn.com/tags/PDC2008/"&gt;pdc2008 | Tags | Channel 9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://channel9.msdn.com/tags/PDC2008/"&gt;pdc2008 | Tags | Channel 9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/437682161" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-10-30</feedburner:origLink></entry><entry><title type="text">Links for 2008-10-22 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/429276481/arnonrgo" /><updated>2008-10-23T00:00:00-05:00</updated><id>http://del.icio.us/arnonrgo#2008-10-22</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/IP/winpcap_basic.aspx"&gt;CodeProject: Introduction to the Winpcap Networking Libraries. Free source code and programming help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/WCF"&gt;WCF - Mono&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/IP/winpcap_basic.aspx"&gt;CodeProject: Introduction to the Winpcap Networking Libraries. Free source code and programming help&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mono-project.com/WCF"&gt;WCF - Mono&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/429276481" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-10-22</feedburner:origLink></entry><entry><title type="text">Links for 2008-09-16 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/394874486/arnonrgo" /><updated>2008-09-17T00:00:00-05:00</updated><id>http://del.icio.us/arnonrgo#2008-09-16</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://gigaom.com/2008/09/07/the-10-laws-of-cloudonomics/"&gt;The 10 Laws of Cloudonomics - GigaOM&lt;/a&gt;&lt;br/&gt;
a view on the benefits of Cloud computing&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://gigaom.com/2008/09/07/the-10-laws-of-cloudonomics/"&gt;The 10 Laws of Cloudonomics - GigaOM&lt;/a&gt;&lt;br/&gt;
a view on the benefits of Cloud computing&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/394874486" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-09-16</feedburner:origLink></entry><entry><title type="text">Links for 2008-09-10 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/389339224/arnonrgo" /><updated>2008-09-11T00:00:00-05:00</updated><id>http://del.icio.us/arnonrgo#2008-09-10</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://arctecgroup.net/pdf/WebServicesSecurityChecklist.pdf"&gt;SOA Web Services Security Consulting &amp;amp; Training www.arctecgroup.net ...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://arctecgroup.net/pdf/WebServicesSecurityChecklist.pdf"&gt;SOA Web Services Security Consulting &amp;amp; Training www.arctecgroup.net ...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/389339224" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-09-10</feedburner:origLink></entry><entry><title type="text">Links for 2008-08-25 [del.icio.us]</title><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/ARGOReadings/~3/374911569/arnonrgo" /><updated>2008-08-26T00:00:00-05:00</updated><id>http://del.icio.us/arnonrgo#2008-08-25</id><summary type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it"&gt;Latency is Everywhere and it Costs You Sales - How to Crush it | High Scalability&lt;/a&gt;&lt;br/&gt;
Todd Hoff writes an excellent article on both latency implications as well as several strategies to lower it&lt;/li&gt;
&lt;/ul&gt;</summary><content type="html">&lt;ul&gt;
&lt;li&gt;&lt;a href="http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it"&gt;Latency is Everywhere and it Costs You Sales - How to Crush it | High Scalability&lt;/a&gt;&lt;br/&gt;
Todd Hoff writes an excellent article on both latency implications as well as several strategies to lower it&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/ARGOReadings/~4/374911569" height="1" width="1"/&gt;</content><feedburner:origLink>http://del.icio.us/arnonrgo#2008-08-25</feedburner:origLink></entry></feed>
