<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Craig's Musings</title>
	
	<link>http://craigrandall.net</link>
	<description>Thoughts about software architecture, books and life</description>
	<lastBuildDate>Thu, 02 Jul 2009 01:29:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/craigrandall" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Documentum RESTful Services EAP</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/FOCC2nsIlqE/</link>
		<comments>http://craigrandall.net/archives/2009/07/dctm-restful-svcs-eap/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 07:01:00 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[Documentum RESTful Services]]></category>
		<category><![CDATA[EAP]]></category>
		<category><![CDATA[EDN]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[ROA]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[WOA]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1132</guid>
		<description><![CDATA[
Today I&#8217;m pleased to announce a new Early Access Program (EAP) for a new RESTful HTTP-based interface to the EMC Documentum ECM Platform called Documentum RESTful Services. The engineering team has been hard at work on this and is looking forward to sharing the first early access release (EA1) with you via a community site [...]]]></description>
			<content:encoded><![CDATA[<p align="middle"><img src="http://craigrandall.net/images/restahead.jpg" alt="Rest Area" /></p>
<p>Today I&#8217;m pleased to announce a new Early Access Program (EAP) for a new RESTful HTTP-based interface to the EMC Documentum ECM Platform called Documentum RESTful Services. The engineering team has been hard at work on this and is looking forward to sharing the first early access release (EA1) with you via a community site on the EMC Community Network.</p>
<p>Please go <a title="ECN | Labs | Documentum RESTful Services" href="https://community.emc.com/community/labs/dctm_rest">here</a> to see what <strong>Documentum RESTful Services</strong> is about and to apply for the EAP.</p>
<p>We&#8217;re looking forward to working closely with you during this EAP. Cheers! <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=FOCC2nsIlqE:bCvZ3GX0Th0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=FOCC2nsIlqE:bCvZ3GX0Th0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=FOCC2nsIlqE:bCvZ3GX0Th0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=FOCC2nsIlqE:bCvZ3GX0Th0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=FOCC2nsIlqE:bCvZ3GX0Th0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/FOCC2nsIlqE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/07/dctm-restful-svcs-eap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/07/dctm-restful-svcs-eap/</feedburner:origLink></item>
		<item>
		<title>Automated post signature in WordPress</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/AHHYVSASGYk/</link>
		<comments>http://craigrandall.net/archives/2009/06/auto-post-sig/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 18:21:32 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[Syndication]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[DDAddSig]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[signature]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1122</guid>
		<description><![CDATA[Recently I noticed that my colleague, Steve Todd, has adopted a consistent signature to his blog posts. This seems like a good idea, especially as one who&#8217;s been &#8220;syndicated&#8221; elsewhere without my approval.
While he&#8217;s a TypePad guy, I favor WordPress. Fortunately, WordPress has rich plugin ecosystem, and there are already plugins that support automated signatures.
Although [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I noticed that my colleague, <a title="Information Playground" href="http://stevetodd.typepad.com/my_weblog/" target="_blank">Steve Todd</a>, has adopted a consistent signature to his blog posts. This seems like a good idea, especially as one who&#8217;s been &#8220;syndicated&#8221; elsewhere without my approval.</p>
<p>While he&#8217;s a TypePad guy, I favor <a href="http://wordpress.org" target="_blank">WordPress</a>. Fortunately, WordPress has rich plugin ecosystem, and there are already plugins that support automated signatures.</p>
<p>Although not yet listed in the <a title="WordPress plugins tagged with 'signature'" href="http://wordpress.org/extend/plugins/tags/signature" target="_blank">codex</a>, I adopted <a title="Dagon Design's Add Signature Plugin for WordPress" href="http://www.dagondesign.com/articles/add-signature-plugin-for-wordpress/" target="_blank">DDAddSig</a> for my needs.</p>
<p>Once I activated the plugin, I simply went to my WordPress dashboard Settings | DDAddSig panel, edited my Primary Signature and checked the Usage box &#8220;Display on posts.&#8221; Voilà! <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=AHHYVSASGYk:0RTvoCw9_Lg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=AHHYVSASGYk:0RTvoCw9_Lg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=AHHYVSASGYk:0RTvoCw9_Lg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=AHHYVSASGYk:0RTvoCw9_Lg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=AHHYVSASGYk:0RTvoCw9_Lg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/AHHYVSASGYk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/06/auto-post-sig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/06/auto-post-sig/</feedburner:origLink></item>
		<item>
		<title>Subject To Change</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/MAGm7n8-HcY/</link>
		<comments>http://craigrandall.net/archives/2009/06/subject-to-change/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 17:11:57 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Non-fiction]]></category>
		<category><![CDATA[Reading]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[experience design]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1097</guid>
		<description><![CDATA[I recently finished reading Subject To Change: Creating Great Products &#038; Services for an Uncertain World, and I can recommend this book to anyone who wants, for example, to build software that resonates with its users.
Here are a list of thoughts and quotes this read produced:

Empathy is an understanding of a person or group&#8217;s subjective [...]]]></description>
			<content:encoded><![CDATA[<p>I recently finished reading <a href="http://www.amazon.com/gp/product/0596516835?ie=UTF8&#038;tag=crasmus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596516835">Subject To Change: Creating Great Products &#038; Services for an Uncertain World</a><img src="http://www.assoc-amazon.com/e/ir?t=crasmus-20&#038;l=as2&#038;o=1&#038;a=0596516835" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, and I can recommend this book to anyone who wants, for example, to build software that resonates with its users.</p>
<p>Here are a list of thoughts and quotes this read produced:</p>
<ul>
<li>Empathy is an understanding of a person or group&#8217;s subjective experience by sharing that experience vicariously that can be developed and cultivated through practice (i.e. it&#8217;s not innate). Using your sense of empathy can help you focus on the experience you want to deliver in a manner that is effective for those who will engage with it. Don&#8217;t confuse customer briefings with developing customer-focused empathy; there&#8217;s more to it!</li>
<li>Experience accounts for motivations, expectations, perceptions, abilities, flow, and culture.</li>
<li>Parity isn&#8217;t a strategy; neither is being the best.</li>
<li>Don&#8217;t craft the story of a product in isolation form the actual creation of that product.</li>
<li>Human life is complex&#8211;embrace this reality; don&#8217;t ignore it. Capture complexity with qualitative research (e.g. conduct interviews to elicit stories about experiences). Differentiate process (i.e. the how and why) from outcomes (i.e. the what, where, and when).</li>
<li>Sometimes experience strategy isn&#8217;t about hiding complexity as much as it&#8217;s about managing it (e.g. distribute complexity across a system so as not to overwhelm at any particular point). That is, the overall experience should never become too complex. There needs to be coordination among the experiences touch points, allowing each to fully exhibit its strengths.</li>
<li>&#8220;You have to recognize that a system will degrade, and make it such that such entropy doesn&#8217;t shatter the entire experience. The true success of experience design isn&#8217;t how well it works when everything is operating as planned, but how well it works when things start going wrong.&#8221; For example, provide meaningful seams into which people can insert themselves (i.e. leave an impression).</li>
<li>Great experience is difficult to plan for, and almost impossible to specify.</li>
<li>Good experiences require systematic coordination with the customer in mind (i.e. a focus on <em>qualitative</em> customer insights).</li>
<li>&#8220;Design is a way of approaching problem solving, decision making, and strategy planning that can yield better outcomes.&#8221;</li>
<li>&#8220;[Design-centric organizations] peer into the needs and desires of their customers, identify patterns of behavior, refine ideas that tap into those behaviors, then push into the unknown&#8211;or at least the uncertain.&#8221; -<a title="Tough Love" href="http://www.fastcompany.com/node/57947/print" target="_blank">Roger Martin</a></li>
<li>&#8220;You can&#8217;t build a design competency overnight; it requires difficult changes in process, skills, and perhaps most importantly, culture.&#8221;</li>
<li>In my development organization we deploy a risk-driven iterative development process, with phases we call inception, elaboration, construction and transition. I&#8217;d liked the book&#8217;s description of &#8220;the fuzzy front end,&#8221; which I would liken to inception (e.g. &#8220;anticipation exceeds insight&#8221;).</li>
<li>&#8220;Good ideas need to fail early and often so you can arrive sooner at a great one.&#8221; Process won&#8217;t turn mundane ideas into stars&#8211;nor will great effort (strong execution). Therefore, avoid premature execution of an idea. For example, presuppose multiple solutions and suggest alternatives based on partial data. Define constraints that drive great solutions (e.g. think like a newbie, leverage empathy (that you&#8217;re developing, right? <img src='http://craigrandall.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ).</li>
<li>&#8220;Strategy should bring clarity to an organization; it should be a signpost for showing people where you, as their leader, are taking them&#8211;and what they need to do to get there&#8230;. People need to have a visceral understanding&#8211;an image in their minds&#8211;of why you&#8217;ve chosen a certain strategy and what you&#8217;re attempting to create with it&#8230;. Because it&#8217;s pictorial, design describes the world in a way that&#8217;s not open to many interpretations.&#8221; -<a title="Strategy by Design" href="http://www.fastcompany.com/node/52795/print" target="_blank">Tim Brown</a></li>
</ul>
<p>On Monday, I noted 11 years with EMC (via its acquisition of Documentum). I can certainly say that &#8220;change happens&#8221; in the content management space and my own career.</p>
<p>My first engineering responsibilities were centered around the Documentum Desktop (aka Desktop Client) offering&#8211;client/server architecture implemented as a mixture of C++ and VB. Then I was called on to drive the first major release of WDK, a web-based application implemented in Java, JSP, HTML and XML. Next stop: creating an integration bridge between Documentum and authoring environments like Office, Adobe and XML editors (i.e. Application Connectors), which was specified as an N-tier architecture implemented as a mixture of C# (on the desktop) and Java (on the middle tier. Currently I&#8217;m focused on providing a rich set of services (i.e. local Java APIs, WSDL-based web services and RESTful web services) that drive a diverse set of applications, each with its own presentation layer technology decisions (e.g. Flash/Flex, ExtJS/DWR, etc.).</p>
<p>And &#8220;tomorrow&#8221; this will all be <em>subject to change</em> once again&#8230; <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=MAGm7n8-HcY:Wjr59PkB4jo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=MAGm7n8-HcY:Wjr59PkB4jo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=MAGm7n8-HcY:Wjr59PkB4jo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=MAGm7n8-HcY:Wjr59PkB4jo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=MAGm7n8-HcY:Wjr59PkB4jo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/MAGm7n8-HcY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/06/subject-to-change/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/06/subject-to-change/</feedburner:origLink></item>
		<item>
		<title>Inoculating a Reply All plague</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/5IN5ttMJspI/</link>
		<comments>http://craigrandall.net/archives/2009/06/reply-all/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 18:29:51 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[Lessons]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Reply All]]></category>
		<category><![CDATA[rule]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1087</guid>
		<description><![CDATA[The &#8220;Reply All&#8221; feature of most email programs like Outlook is a convenience ripe for abuse. Unfortunately such abuse seems to occur about once a quarter or so where I work. Folks add an alias to their message (To or Cc) that ends up involving a multitude of folks who could care less about the [...]]]></description>
			<content:encoded><![CDATA[<p>The &#8220;Reply All&#8221; feature of most email programs like Outlook is a convenience ripe for abuse. Unfortunately such abuse seems to occur about once a quarter or so where I work. Folks add an alias to their message (To or Cc) that ends up involving a multitude of folks who could care less about the message just received.</p>
<p>So, unfortunately (!), what many folks do in reply is <em>Reply All, yet again</em>. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>When you Reply All to a Reply All asking not to Reply All, you defeat your purpose. Instead, <strong>be surgical and just educate the offenders</strong>. That is, be sure to remove all aliases from your reply&#8211;if you really feel the need to reply in the first place&#8211;and communicate solely with individuals on the To line of the diseased message.</p>
<p>Surely there is a way in Outlook to establish a rule as follows:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;Apply this rule after the message arrives<br />
&nbsp;&nbsp;&nbsp;&nbsp;with <u>INOCULATION_KEYWORD(S)_HERE</u> in the subject<br />
&nbsp;&nbsp;&nbsp;&nbsp;reply using <u>INOCULATION_EMAIL_TEMPLATE_HERE</u><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and move it to the <u>Deleted Items</u> folder</p>
<p>If you really feel compelled to Reply All, then at least do others the favor of changing the Reply-To address in your message to something less hideous (e.g. (in Outlook) Options | Direct Replies To | Have replies sent to: no-reply@&#8230;).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=5IN5ttMJspI:Ehy_3X-Iim0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=5IN5ttMJspI:Ehy_3X-Iim0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=5IN5ttMJspI:Ehy_3X-Iim0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=5IN5ttMJspI:Ehy_3X-Iim0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=5IN5ttMJspI:Ehy_3X-Iim0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/5IN5ttMJspI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/06/reply-all/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/06/reply-all/</feedburner:origLink></item>
		<item>
		<title>EMC Documentum Developer Edition</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/F4MkJ3jAcqw/</link>
		<comments>http://craigrandall.net/archives/2009/05/emc-documentum-developer-edition/#comments</comments>
		<pubDate>Thu, 14 May 2009 17:03:43 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Development Toolbox]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Content Server]]></category>
		<category><![CDATA[content-enabled applications]]></category>
		<category><![CDATA[content-enabled apps]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Documentum Developer Edition]]></category>
		<category><![CDATA[EMC]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1071</guid>
		<description><![CDATA[Today we launched a new EMC Documentum developer-oriented community within the EMC Community Network. Front and center is the new developer edition of the EMC Documentum ECM Platform.
So, what does this developer edition include? We believe it includes a lot of goodness for the development of content-enabled applications.

First of all, free software for developers
A new [...]]]></description>
			<content:encoded><![CDATA[<p>Today we launched a new <a title="EMC Documentum Developer Community" href="https://community.emc.com/community/edn/documentum" target="_blank">EMC Documentum developer-oriented community</a> within the <a href="https://community.emc.com/index.jspa" target="_blank">EMC Community Network</a>. Front and center is the new developer edition of the EMC Documentum ECM Platform.</p>
<p>So, what does this developer edition include? We believe it includes a lot of goodness for the development of <a title="Building content-enabled applications" href="http://craigrandall.net/archives/2009/04/building-content-enabled-apps/">content-enabled applications</a>.</p>
<ul>
<li>First of all, <em>free</em> software for developers</li>
<li>A new one-click installation process for the core of the EMC Documentum ECM Platform</li>
<li>xDB and new XML components &#8211; please visit the just-launched <a href="https://community.emc.com/community/edn/xmltech" target="_blank">XML Technology Developer Community</a> for more details about our native XML database and other technologies</li>
<li>Integration between the resulting development environment and <a href="https://community.emc.com/community/edn/documentum" target="_blank">online community</a> resources and support mechanisms &#8211; think of this as a starting point and means to the ends <em>you want to pursue</em>, not an end in itself</li>
</ul>
<p>Essentially, we&#8217;re trying to provide a low-touch, <a title="Do it yourself" href="http://en.wikipedia.org/wiki/Do_it_yourself" target="_blank">DIY</a> experience. That being said, by integrating your local installation to an online community, the developer edition enables you to reach out to fellow developers and EMC employees as your pursuit your content management development interests grows. For example, you&#8217;ll find a range of white papers, documents and videos, as well as sample code in, for example, Java and C# (.NET). Topical tutorials available online are drawn from our Education Services library.</p>
<p>So, what is the process to obtain the free developer edition? We hope that it&#8217;s straightforward.</p>
<ol>
<li>Browse <a title="EMC Documentum Developer Community" href="https://community.emc.com/community/edn/documentum" target="_blank">here</a> and login into ECN/EDN</li>
<li>Navigate <a title="Documentum Content Server Developer Edition (registration)" href="https://developer-content.emc.com/downloads/documentum_dev_edition.htm" target="_blank">here</a> and complete a short (less than 30 seconds) registration form. Click the &#8220;Continue&#8221; button to proceed to the download site. (You may need to add ecn_communications@emc.com to your email safe senders list so as not to miss messages from that address (i.e. have them interpreted by Outlook as junk).)</li>
<li>Navigate the EMC SubscribeNet links to arrive at the FTP download (or HTTPS-based download, if you prefer). Note that the download is a bit more than 1.73 GB and represents a Zip archive, which means that you should ensure adequate disk space to extract, deploy, etc.</li>
<li>Commence your download.</li>
</ol>
<p>In a follow-up post, I&#8217;ll walk you through the installation experience and how to leverage the version of DFS that comes with the developer edition. BTW, if you&#8217;re too anxious to dive in and can&#8217;t wait for my post, go for it! There is an online getting started guide as well as an online tutorial for building your first application.</p>
<p>Cheers! <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Update 5/20/2009: Well, I&#8217;m about to take a much needed vacation, and I have yet to follow-up with a walk-thru post. So, I wanted to at least provide some details here as to what this software requires system-wise. System requirements are as follows (and are displayed in the initial installer screen):</p>
<ul>
<li>No Microsoft SQL Server or SQL Server Express installed [1]</li>
<li>No other Documentum software installed [2]</li>
<li>Microsoft .NET 2.0 or higher [3]</li>
<li>Browser with Sun JRE 5.0 update 16 or higher [4]</li>
<li>Minimum of 3 GB RAM (4 GB RAM is recommended)</li>
<li>5 GB of free disk space [5]</li>
<li>Intel x86 CPU</li>
<li>Operating system&#8211;again 32-bit only for this release&#8211;is one of the following: Windows XP SP3, Windows Server 2003 SP2 or Windows Server 2003 R2 SP2</li>
<li>You must be logged in as a member of the Windows Administrators group, but not necessarily as Administrator</li>
</ul>
<p>Notes:<br />
[1] Be aware that if you already have Visual Studio (e.g. 2005 or 2008) installed on your target machine, you may need to first uninstall the version of SQL Server that may have been installed with the IDE. If you are running Windows SharePoint Services or UDDI on your target (Windows Server 2003) machine, you may also need to see what embedded database is supporting these services before proceeding with this developer edition installation.<br />
[2] Be sure to understand where you may still have Documentum-related configuration files on disk (e.g. dfc.properties, C:\Documentum, etc.).<br />
[3] Microsoft .NET Framework 3.0 is required for <a title="My posts tagged with both 'DFS' and 'WCF'" href="http://craigrandall.net/archives/tag/dfs+wcf/">WCF-based consumption of DFS endpoints</a>; so, I recommend .NET 3.0, which includes (requires as its foundation) .NET 2.0. .NET 3.5 is also supported by DFS, if you prefer to leverage WCF &#8220;v2.&#8221;<br />
[4] This is supported by Webtop and DA.<br />
[5] Keep in mind that, as I noted above, the Zip archive download is a bit more than 1.73 GB. The total size of its extracted contents is not that much larger, but you&#8217;re also starting to approach 4 GB; so, I recommend that you have 10 GB free disk space in order to complete the installation with room to spare before cleaning up the extracted bits and the original archive to reclaim that 4 GB.</p>
<p>&#8230;and, welcome, <a href="http://www.cmswire.com/cms/enterprise-cms/emc-releases-free-documentum-developer-edition-enterprise-cms-004660.php" target="_blank">CMS Watch</a> readers! <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=F4MkJ3jAcqw:JsUJwaMvw6s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=F4MkJ3jAcqw:JsUJwaMvw6s:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=F4MkJ3jAcqw:JsUJwaMvw6s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=F4MkJ3jAcqw:JsUJwaMvw6s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=F4MkJ3jAcqw:JsUJwaMvw6s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/F4MkJ3jAcqw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/05/emc-documentum-developer-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/05/emc-documentum-developer-edition/</feedburner:origLink></item>
		<item>
		<title>Content-enabled applications empathized</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/arxxccG06HY/</link>
		<comments>http://craigrandall.net/archives/2009/05/content-enabled-apps-empathized/#comments</comments>
		<pubDate>Fri, 01 May 2009 17:37:46 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[case management]]></category>
		<category><![CDATA[content-enabled applications]]></category>
		<category><![CDATA[content-enabled apps]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[xCelerated Composition Platform]]></category>
		<category><![CDATA[xCP]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1040</guid>
		<description><![CDATA[Laurence Hart was kind enough to pick-up my previous post on content-enabled applications and add his thoughts to the subject, especially concerning the role CMIS can play.
From my first post: Content-enabled applications should facilitate the convergence of content, collaboration, interaction, and process.
I agree with Laurence (aka JaneDoePie) that content is an enabler, not the center. [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Word of Pie" href="http://wordofpie.com/" target="_blank">Laurence Hart</a> was kind enough to pick-up my previous post on <a title="Building content-enabled applications" href="http://craigrandall.net/archives/2009/04/building-content-enabled-apps/">content-enabled applications</a> and add <a title="Content-Enabled Applications in the Age of CMIS" href="http://wordofpie.com/2009/04/28/content-enabled-applications-in-the-age-of-cmis/" target="_blank">his thoughts</a> to the subject, especially concerning the role <a title="Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a> can play.</p>
<p>From my first post: <strong>Content-enabled applications should facilitate the convergence of content, collaboration, interaction, and process.</strong></p>
<p>I agree with Laurence (aka <strike>JaneDoe</strike>Pie) that content is <em>an enabler</em>, not the center. All content-enabled applications &#8220;should be shaped to work with and enhance the process the users use to perform their work.&#8221;</p>
<p>Laurence offers case management as his favorite, generic content-enabled application in order to further ground the point that success is determined by the combination of content, user experience (interaction, more than just UI, IMHO) and process (e.g. collaborative workflow).</p>
<p>I&#8217;m in the middle of reading <a title="Subject To Change: Creating Great Products &#038; Services for an Uncertain World: Adaptive Path on Design" href="http://www.amazon.com/Subject-Change-Creating-Products-Uncertain/dp/0596516835" target="_blank">Subject To Change</a>, and already I&#8217;ve found its message highly relevant to the subject of content-enabled applications. For example, the book focuses on <em>experience strategy</em> and how to develop organizational <em>empathy</em> where the target users of your products or services are concerned. Specifically, in the case of case management, the book would argue that you, as case management application architect/designer, need to actually observe case workers in their native setting to appreciate how case management really works (or doesn&#8217;t). Go beyond theory and someone else&#8217;s analysis. Experience business activity firsthand in order to model reality into your solution.</p>
<p>Recently as part of the <strike>Case Management Solution Framework</strike>&nbsp;<a title="EMC Documentum xCelerated Composition Platform" href="http://www.emc.com/solutions/business-need/collaboration/documentum-xcelerated-composition-platform.htm" target="_blank">xCelerated Composition Platform</a> (xCP) released for D6.5 SP1, a sample application for grants management was shipped that illustrates how <a title="EMC Documentum Process Suite" href="http://www.emc.com/products/detail/software/process-suite.htm" target="_blank">Process Suite</a> components can be used to build case-based, content-enabled applications. You can <a title="Documentum Case Management Solution Framework Grants Management Sample Application, Version 6.5 SP1" href="https://emc.subscribenet.com/control/dctm/download?element=2192753" target="_blank">download this package from Powerlink</a> (authentication required). The easiest way to run this sample application is to install it using the express installer, which will install all the right components (with their compatible versions) and the <a title="A bit more detail on Documentum ARchives from Paul Warren" href="http://paulcwarren.wordpress.com/2009/01/09/documentum-composer-whats-in-an-install/" target="_blank">DAR file</a>. <strike>You can also download the express installer from Powerlink (authentication required).</strike>Please see the update below for the correct link.</p>
<p>A goal of a solution framework is to make it easier to build content-enabled applications such as those for case management. A solution framework should allow you to invest more time in becoming empathic in order to ship solutions that resonate well with your users and drive more efficient business as a result.</p>
<p>In this response, I wanted to focus on empathy&#8217;s role. Separately, I plan to pick up the <a title="Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a> angle raised by Laurence. Thanks in advance for joining our discussion online&#8230;</p>
<p>Update 5/1/2009: A PM colleague pointed out to me that the link to the &#8220;one click&#8221; installer that takes one from state &#8220;zero&#8221; (i.e. Windows but not database) to state &#8220;ready for proof of concept&#8221; is as follows: <a title="Documentum Case Management Solution Framework Installer, Version 6.5 SP1" href="https://emc.subscribenet.com/control/dctm/download?element=2193203" target="_blank">https://emc.subscribenet.com/control/dctm/download?element=2193203</a> (authentication required). Cheers!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=arxxccG06HY:r6ujsmN-dxw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=arxxccG06HY:r6ujsmN-dxw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=arxxccG06HY:r6ujsmN-dxw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=arxxccG06HY:r6ujsmN-dxw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=arxxccG06HY:r6ujsmN-dxw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/arxxccG06HY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/05/content-enabled-apps-empathized/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/05/content-enabled-apps-empathized/</feedburner:origLink></item>
		<item>
		<title>Revisiting the passage of time via a tree</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/UOCXctUyjKY/</link>
		<comments>http://craigrandall.net/archives/2009/04/time-tree-2/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 03:20:29 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[growth]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[tree]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1036</guid>
		<description><![CDATA[Back on 7/30/2005, I marked time by reporting a new tree plant. Until now, I hadn&#8217;t followed with how time has &#8220;grown&#8221; since.

When you compare the first original picture to the one above, it&#8217;s clear that the tree has grown quite nicely. In addition, you can see why this particular variety of tree was planted&#8211;for [...]]]></description>
			<content:encoded><![CDATA[<p>Back on 7/30/2005, I marked time by <a title="Marking the passage of time" href="http://craigrandall.net/archives/2005/07/time-tree/">reporting a new tree plant</a>. Until now, I hadn&#8217;t followed with how time has &#8220;grown&#8221; since.</p>
<p align="middle"><img src="http://craigrandall.net/images/090423-growing-tree.jpg" alt="Healthy Purple Robe Locust tree" /></p>
<p>When you compare the first original picture to the one above, it&#8217;s clear that the tree has grown quite nicely. In addition, you can see why this particular variety of tree was planted&#8211;for its beautiful color.</p>
<p align="middle"><img src="http://craigrandall.net/images/090423-growing-tree-detail.jpg" alt="Detail of flowering Purple Robe Locust tree" /></p>
<p>I&#8217;m fortunate to have the same type of trees directly outside my office windows at work (three stories up).</p>
<p>Yes, you have to sweep up after the tree when its blooms fall to the ground. However, they&#8217;re not sticky, which puts the &#8220;downside&#8221; way above the downside of the rest of the sap-dropping city plants lining the rest of the street.</p>
<p>There are other interesting aspects about the time between the original picture of the newly planted tree and the more recent picture, which are not as obvious:</p>
<ul>
<li>The neighbors widened their driveway with more concrete.</li>
<li>The neighbors painted the outside of their house.</li>
<li>We replaced the car in the full-size original picture.</li>
<li>We replaced the entire fence around our property, including the shared segment in view of both pictures.</li>
<li>Just as I had to repair the surrounding sprinkler system while originally planting the tree, I recently had to go underground to repair a node on the same line.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=UOCXctUyjKY:P6reTOHlmQo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=UOCXctUyjKY:P6reTOHlmQo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=UOCXctUyjKY:P6reTOHlmQo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=UOCXctUyjKY:P6reTOHlmQo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=UOCXctUyjKY:P6reTOHlmQo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/UOCXctUyjKY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/04/time-tree-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/04/time-tree-2/</feedburner:origLink></item>
		<item>
		<title>Getting Twitter</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/yMgb56A0FUA/</link>
		<comments>http://craigrandall.net/archives/2009/04/getting-twitter/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 16:36:39 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Development Toolbox]]></category>
		<category><![CDATA[Lessons]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[MindManager]]></category>
		<category><![CDATA[SAF]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[TweetDeck]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1015</guid>
		<description><![CDATA[
Yeah, I know that Twitter lately is all about Oprah, CNN and Ashton Kutcher, but it’s also about brief remarks, gripes and triumphs related to products and/or services that you send into the world wide market. (And if you were waiting for The Tipping Point, it’s already occurred for Twitter, IMHO.)
BTW, before I go any [...]]]></description>
			<content:encoded><![CDATA[<p align="middle"><img src="http://craigrandall.net/images/twitter256sq.png" alt="Twitter" /></p>
<p>Yeah, I know that <a href="http://twitter.com/" target="_blank">Twitter</a> lately is all about Oprah, CNN and Ashton Kutcher, but it’s also about brief remarks, gripes and triumphs related to products and/or services that you send into the world wide market. (And if you were waiting for <a title="The possibility of sudden, significant change" href="http://craigrandall.net/archives/2005/04/the-possibility-of-sudden-significant-change/">The Tipping Point</a>, it’s already occurred for Twitter, IMHO.)</p>
<p>BTW, before I go any further, I&#8217;m <a href="http://twitter.com/craigsmusings" target="_blank"><strong>@craigsmusings</strong></a> on Twitter. (Thanks, Dan.)</p>
<p>If a tree falls in a forest, it always makes a noise&#8211;regardless of your presence there. There are social conversations that occur online (e.g. Facebook, blogs, wikis, Twitter, newsgroups, IIRC, etc.), and they will continue to occur regardless of your presence there, too. However, that’s an especially risky position to take these days&#8211;see the conversation but not engage.</p>
<p>Consider the following conversation on Twitter:</p>
<blockquote><p>
http://twitter.com/johnsmith<br />
Very disappointed in _YOUR_PRODUCT_HERE_, does not appear to have very much to it at all&#8230;.if anything!<br />
12:10 AM Apr 23rd from TweetDeck </p>
<p>http://twitter.com/janedoe<br />
@johnsmith Did you see a live presentation or play with it,<br />
4:45 AM Apr 23rd from TwitterBerry </p>
<p>http://twitter.com/johnsmith<br />
@janedoe Had a play with it, will blog later this week, does not seem to give us anything to use as an accelerator<br />
4:52 AM Apr 23rd from TweetDeck in reply to janedoe</p>
<p>http://twitter.com/janedoe<br />
@johnsmith Ouch! That&#8217;s the point in theory.<br />
4:58 AM Apr 23rd from TwitterBerry
</p></blockquote>
<p>So, what will John Smith blog exactly? He’s indicated that his post is forthcoming but also that there may be time to engage him&#8211;understand his concern and possibly influence him after listening by demonstrating value.</p>
<p>Jane appears to be an interested party, too. Is Jane a known advocate, possibly trying to reach out on your behalf? Is Jane known to be skeptical?</p>
<p>How can you &#8220;see&#8221; this conversation?</p>
<p>I use <a href="http://www.tweetdeck.com/" target="_blank">TweetDeck</a>, an <a href="http://www.adobe.com/products/air/" target="_blank">Adobe AIR</a>-based Twitter client, for my tweeting, etc. It works equally well on both MacOS and Windows. (There are many other clients out there, too!)</p>
<p align="middle"><a href="http://www.tweetdeck.com/" target="_blank"><img src="http://craigrandall.net/images/tweetdeck.jpg" alt="TweetDeck" /></a></p>
<p>TweetDeck allows me to do a number of useful things. </p>
<ul>
<li>For example, the leftmost column/pane is a group. (You can read that tiny font, right? <img src='http://craigrandall.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) In my case, I filtered All Friends (i.e. those I follow in Twitter) into just the subset that tweets about content management. (You can see that there is a horizontal scroll bar on the bottom, and the default “All Friends” column/pane is off to the far right (where I moved it to reduce <em>seen</em> UI changes).)</li>
<li>The “Replies” column/pane is just what it implies—tweets in reply to me from others.</li>
<li>The “Direct Messages” column/pane contains DM’s from me and DM’s to me.</li>
<li>The two rightmost columns/panes in view above are searches. Since these are Twitter-based searches&#8211;one for tweets containing “CMIS” and another for tweets containing both “EMC” and “Documentum”&#8211;I receive traffic updates that apply in near realtime (unlike, e.g., a Google search that requires one to hit Refresh to see new results).</li>
</ul>
<p>Anyway, I can visit John Smith&#8217;s Twitter profile to learn that he has a 70:30 ratio (i.e. he’s following 70 twitters and 30 twitters are following him). Clearly, Mr. Smith is not a “rock star” by Twitter standards. (Certainly, I am not either!)</p>
<p>However, consider the junior high campfire song’s sentiment: “It only takes a spark, to get a fire going&#8230;” This goes back to my point above: there may be time to engage him&#8211;understand his concern and possibly influence him after listening by demonstrating value (and create a <em>positive</em> fire&#8211;however big or small&#8211;about your product or service).</p>
<p>The truth is that, although I’ve been blogging for awhile now, I’m relatively new to Twitter. Fortunately for me, I have great resources in my &#8220;2.0 type&#8221; EMC colleagues and elsewhere online. For example, I recommend that you check out <a title="Twitter Job Aid - work in progress" href="http://gminks.edublogs.org/2009/04/12/twitter-job-aid-work-in-progress/" target="_blank">Gina Minks&#8217; Twitter Cheat Sheet</a>. (I understand from Gina that a v2.0 release is due out in time for EMC World, too.)</p>
<p>I recall during last year&#8217;s Microsoft Strategic Architect Forum (SAF) that a good industry colleague of mine suggested a &#8220;I don&#8217;t get Twitter&#8221; topic for the open space segment of that afternoon. I egged him on to make the suggestion; so, of course I attended&#8230;and I think that everyone learned a fair bit in the process.</p>
<p>Since then I&#8217;ve only recently begun to seriously tweet. Already that engagement has paid dividends, and due to the fact that most of my cross-domain architect colleagues don&#8217;t yet tweet, I thought I&#8217;d humbly offer this post to get them to &#8220;dive into&#8221; Twitter, too, in a way that&#8217;s both meaningful to them and meaningful to their communities. (You know who you are. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>For those who weren&#8217;t at or don&#8217;t know about SAF, Microsoft worked with <a href="http://www.mindjet.com/" target="_blank">Mindjet</a> to mind map the <a href="http://www.openspaceworld.org/cgi/wiki.cgi?AboutOpenSpace" target="_blank">open space</a> sessions. Here are the notes from the &#8220;I don&#8217;t get Twitter&#8221; session in mind map form&#8211;just click the following image for the .mmap (MindManager 8 format) file:</p>
<p align="middle"><a title="SAF08 topic - 'I don't get Twitter' (notes as mind map)" href="http://craigrandall.net/files/081120-SAF08-I-don't-get-Twiter.mmap" target="_blank"><img src="http://craigrandall.net/images/081120-SAF08-I-don't-get-Twiter.jpg" alt="SAF08 topic - 'I don't get Twitter' (notes as mind map)" /></a></p>
<p>So, what do you think of Twitter? If you find it useful, how do you receive value from it?</p>
<p>Update 4/30/2009: <a title="Adventures in Corporate Education" href="http://gminks.edublogs.org/" target="_blank">Gina Minks</a> just published a new <a title="Twitter on Your Phone Cheat Sheet" href="http://portfolio.ginaminks.com/job_aides/TwitteronYourPhoneCheatSheet.pdf" target="_blank">cheat sheet for tweeting from your phone</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=yMgb56A0FUA:XEpjBnzlTZg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=yMgb56A0FUA:XEpjBnzlTZg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=yMgb56A0FUA:XEpjBnzlTZg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=yMgb56A0FUA:XEpjBnzlTZg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=yMgb56A0FUA:XEpjBnzlTZg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/yMgb56A0FUA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/04/getting-twitter/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/04/getting-twitter/</feedburner:origLink></item>
		<item>
		<title>First 100K concurrent user ECM benchmark</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/EyHqIi_Omz8/</link>
		<comments>http://craigrandall.net/archives/2009/04/1st-100k-usr-bnchmrk/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 23:24:24 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[D6.5]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[FAQ]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[Load Runner]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Webtop]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=1002</guid>
		<description><![CDATA[Earlier today, EMC formally announced the results of its significant Enterprise Content Management benchmark with Microsoft and HP.
The newly released study is one of the largest-ever benchmarks in the ECM industry, demonstrating 100,000 [concurrent] users of Documentum 6.5 [SP1] engaging in a variety of content management-related transactions and sustaining that workload over the course of [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today, EMC formally <a title="EMC Documentum Reaches New Heights in Scalability and Performance in Enterprise Content Management (ECM) Performance Benchmark" href="http://www.emc.com/about/news/press/2009/20090420-02.htm" target="_blank">announced</a> the results of its significant Enterprise Content Management benchmark with Microsoft and HP.</p>
<blockquote><p>The newly released study is one of the largest-ever benchmarks in the ECM industry, demonstrating 100,000 [concurrent] users of Documentum 6.5 [SP1] engaging in a variety of content management-related transactions and sustaining that workload over the course of a 12-hour workday. Transactions included the most common content management activities.</p></blockquote>
<p>Here&#8217;s a picture of the EMC-HP-Microsoft team:</p>
<p align="middle"><img src="http://craigrandall.net/images/benchmark-team.png" alt="EMC-HP-MSFT benchmark team" /></p>
<p>From left to right:</p>
<ul>
<li>Surdeep Sharma &#8211; Microsoft SQL Server Premier Field Engineer</li>
<li>Pat Kirby &#8211; EMC Documentum Performance Engineer</li>
<li>Vishnu Badikol &#8211; EMC Documentum Performance Engineer</li>
<li>Joseph Isenhour &#8211; Microsoft Enterprise Engineering Center Program Manager</li>
<li>Gordon Newman &#8211; EMC Documentum Sr. Manager Performance Engineering</li>
<li>Gunter Zink (photographer hence not pictured) &#8211; HP Integrity Superdome Engineering Group Manager</li>
</ul>
<p>Here&#8217;s another picture that I copied from Gordon showing Pat and Vishnu working with a type of &#8220;geek heaven&#8221; (i.e. a view of PerfMon on a 64-core machine <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ):</p>
<p align="middle"><img src="http://craigrandall.net/images/benchmark-64-core-perfmon.png" alt="What a 64-core PerfMon UI looks like" /></p>
<p>I encourage you to listen to my colleagues Gordon, Pat and Vishnu talk about their experiences configuring and running this benchmark via <a title="<br />
100,000 Concurrent User Benchmark Study" href="https://community.emc.com/docs/DOC-3237" target="_blank">this video</a>. While you&#8217;re watching the video, download the attached <a title="Joint EMC-Microsoft Benchmark Whitepaper (PDF)" href="https://community.emc.com/servlet/JiveServlet/download/3237-14-3473/Joint%20EMC%20-%20Microsoft%20Benchmark%20Whitepaper.pdf" target="_blank">joint whitepaper</a>, <a title="100K Benchmark Summary (PDF)" href="https://community.emc.com/servlet/JiveServlet/download/3237-14-3109/100K%20Benchmark%20Summary.pdf" target="_blank">summary</a> and <a title="100K Benchmark Full Study (PDF)" href="https://community.emc.com/servlet/JiveServlet/download/3237-14-3275/100K%20Benchmark%20Full%20Study.pdf" target="_blank">detailed results</a>, too.</p>
<p>Of course, EMC isn&#8217;t resting on its laurels here. In fact, we&#8217;re already working to address lessons learned from this benchmark, which will result in even greater scalability. Kudos to my Performance Engineering colleagues!</p>
<p>Update 5/27/2009: The benchmark FAQ is now available <a title="100,000 Concurrent User Benchmark Study FAQ" href="https://community.emc.com/docs/DOC-3871" target="_blank">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=EyHqIi_Omz8:9ebMkXpFvMs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=EyHqIi_Omz8:9ebMkXpFvMs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=EyHqIi_Omz8:9ebMkXpFvMs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=EyHqIi_Omz8:9ebMkXpFvMs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=EyHqIi_Omz8:9ebMkXpFvMs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/EyHqIi_Omz8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/04/1st-100k-usr-bnchmrk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/04/1st-100k-usr-bnchmrk/</feedburner:origLink></item>
		<item>
		<title>Addressing MaxReceivedMessageSize issues</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/xWeIt67nL5Q/</link>
		<comments>http://craigrandall.net/archives/2009/04/maxreceivedmessagesize/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 19:02:00 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[DFS]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[app.config]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Charles]]></category>
		<category><![CDATA[CommunicationException]]></category>
		<category><![CDATA[Fiddler]]></category>
		<category><![CDATA[MaxReceivedMessageSize]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[web debugging proxy]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://craigrandall.net/archives/2009/04/maxreceivedmessagesize/</guid>
		<description><![CDATA[If you’re a .NET-based consumer of Enterprise Content Services (e.g. those offered via Documentum Foundation Services) and you experience a Windows Communication Foundation CommunicationException having to do with MaxReceivedMessageSize, you may be interested in the details of this post. This post applies both to direct-to-WSDL consumers and also to consumers that leverage the DFS productivity [...]]]></description>
			<content:encoded><![CDATA[<p>If you’re a .NET-based consumer of Enterprise Content Services (e.g. those offered via <a href="http://craigrandall.net/archives/2007/05/documentum-foundation-services/">Documentum Foundation Services</a>) and you experience a Windows Communication Foundation CommunicationException having to do with MaxReceivedMessageSize, you may be interested in the details of this post. This post applies both to <a title="DFS Object service consumer #2 (2-part post)" href="http://craigrandall.net/archives/2008/07/dfs-object-service-consumer-2b/">direct-to-WSDL consumers</a> and also to <a title="DFS Object service consumer #1" href="http://craigrandall.net/archives/2008/07/dfs-object-service-consumer-1/">consumers that leverage the DFS productivity layer for .NET</a>. Guidance herein has more to do with WCF in general; however, it will be offered in a ECS/DFS context.</p>
<p>Depending on the size of incoming messages from services to your application, you may discover the need to increase the maximum received message size. For example, your application experiences the following exception raised by WCF:</p>
<blockquote><p>System.ServiceModel.CommunicationException : The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.</p>
</blockquote>
<p>An example of exceeding quota could be application requests that result in data package-based responses with a large number of data objects and/or a set of data objects with significant metadata and/or content (e.g. ObjectService.get).</p>
<p>If you implement a direct-to-WSDL consumer of this service using Visual Studio and WCF’s Add Service Reference designer, you will by default introduce a per service binding application configuration file into the overall solution. Therefore, to declaratively increase the maximum received message size, you will edit app.config by focusing on increasing the value of the MaxReceivedMessageSize attribute on the appropriate (named) binding element from the default value in configuration as follows:</p>
<pre class="csharpcode"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span><span class="kwrd">=&quot;1.0&quot;</span> <span class="attr">encoding</span><span class="kwrd">=&quot;utf-8&quot;</span> ?<span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">configuration</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">system.serviceModel</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">bindings</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">basicHttpBinding</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html"><strong>binding</strong></span> <span class="attr">name</span><span class="kwrd">=&quot;ObjectServicePortBinding&quot;</span> <span class="attr">closeTimeout</span><span class="kwrd">=&quot;00:01:00&quot;</span> <span class="attr">openTimeout</span><span class="kwrd">=&quot;00:01:00&quot;</span> <span class="attr">receiveTimeout</span><span class="kwrd">=&quot;00:10:00&quot;</span> <span class="attr">sendTimeout</span><span class="kwrd">=&quot;00:01:00&quot;</span> <span class="attr">allowCookies</span><span class="kwrd">=&quot;false&quot;</span> <span class="attr">bypassProxyOnLocal</span><span class="kwrd">=&quot;false&quot;</span> <span class="attr">hostNameComparisonMode</span><span class="kwrd">=&quot;StrongWildcard&quot;</span> <span class="attr">maxBufferSize</span><span class="kwrd">=&quot;65536&quot;</span> <span class="attr">maxBufferPoolSize</span><span class="kwrd">=&quot;524288&quot;</span> <span class="attr"><strong>maxReceivedMessageSize</strong></span><span class="kwrd">=&quot;65536&quot;</span> <span class="attr">messageEncoding</span><span class="kwrd">=&quot;Text&quot;</span> <span class="attr">textEncoding</span><span class="kwrd">=&quot;utf-8&quot;</span> <span class="attr">transferMode</span><span class="kwrd">=&quot;Buffered&quot;</span> <span class="attr">useDefaultWebProxy</span><span class="kwrd">=&quot;true&quot;</span><span class="kwrd">&gt;</span>
          <span class="kwrd">&lt;</span><span class="html">readerQuotas</span> <span class="attr">maxDepth</span><span class="kwrd">=&quot;32&quot;</span> <span class="attr">maxStringContentLength</span><span class="kwrd">=&quot;8192&quot;</span> <span class="attr">maxArrayLength</span><span class="kwrd">=&quot;16384&quot;</span> <span class="attr">maxBytesPerRead</span><span class="kwrd">=&quot;4096&quot;</span> <span class="attr">maxNameTableCharCount</span><span class="kwrd">=&quot;16384&quot;</span> <span class="kwrd">/&gt;</span>
          <span class="kwrd">&lt;</span><span class="html">security</span> <span class="attr">mode</span><span class="kwrd">=&quot;None&quot;</span><span class="kwrd">&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">transport</span> <span class="attr">clientCredentialType</span><span class="kwrd">=&quot;None&quot;</span> <span class="attr">proxyCredentialType</span><span class="kwrd">=&quot;None&quot;</span> <span class="attr">realm</span><span class="kwrd">=&quot;&quot;</span> <span class="kwrd">/&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">message</span> <span class="attr">clientCredentialType</span><span class="kwrd">=&quot;UserName&quot;</span> <span class="attr">algorithmSuite</span><span class="kwrd">=&quot;Default&quot;</span> <span class="kwrd">/&gt;</span>
          <span class="kwrd">&lt;/</span><span class="html">security</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;/</span><span class="html">binding</span><span class="kwrd">&gt;</span>
        . . .
      <span class="kwrd">&lt;/</span><span class="html">basicHttpBinding</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">bindings</span><span class="kwrd">&gt;</span>
    . . .
  <span class="kwrd">&lt;/</span><span class="html">system.serviceModel</span><span class="kwrd">&gt;</span>
  . . .
<span class="kwrd">&lt;/</span><span class="html">configuration</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>As in the case of a direct-to-WSDL consumer, a productivity layer-based consumer of the DFS Object service may also need to declaratively increase the value of MaxReceivedMessageSize more compatible with actual runtime requirements.</p>
<p>In the etc\config directory path of your local DFS SDK you should find an example App.config file. Please note that this app.config file is oriented toward productivity layer consumers, not direct-to-WSDL consumers via WCF. That being said, the same binding attributes apply to a solution here, too. The difference is how the bindings are declared in app.config. </p>
<p>The productivity layer oriented declaration names a single binding, DfsDefaultService, to act as the binding for all DFS services, except for DFS runtime services, which have separate, named bindings declared. So, Object service gets its (WCF- based) binding configuration from the “DfsDefaultService” binding…and so does, for example, Query service.</p>
<p>To declaratively increase the maximum received message size in productivity layer oriented app.config, you will most likely edit the MaxReceivedMessageSize attribute on the “DfsDefaultService” binding element from the default value in configuration as follows:</p>
<pre class="csharpcode"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span><span class="kwrd">=&quot;1.0&quot;</span> <span class="attr">encoding</span><span class="kwrd">=&quot;utf-8&quot;</span>?<span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">configuration</span><span class="kwrd">&gt;</span>
  . . .
  <span class="kwrd">&lt;</span><span class="html">system.serviceModel</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">bindings</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">basicHttpBinding</span><span class="kwrd">&gt;</span>
        . . .
        <span class="kwrd">&lt;</span><span class="html"><strong>binding</strong></span> <span class="attr">name</span><span class="kwrd">=&quot;DfsDefaultService&quot;</span> <span class="attr">closeTimeout</span><span class="kwrd">=&quot;00:01:00&quot;</span> <span class="attr">openTimeout</span><span class="kwrd">=&quot;00:01:00&quot;</span> <span class="attr">receiveTimeout</span><span class="kwrd">=&quot;00:10:00&quot;</span> <span class="attr">sendTimeout</span><span class="kwrd">=&quot;00:01:00&quot;</span> <span class="attr">allowCookies</span><span class="kwrd">=&quot;false&quot;</span> <span class="attr">bypassProxyOnLocal</span><span class="kwrd">=&quot;false&quot;</span> <span class="attr">hostNameComparisonMode</span><span class="kwrd">=&quot;StrongWildcard&quot;</span> <span class="attr">maxBufferSize</span><span class="kwrd">=&quot;1000000&quot;</span> <span class="attr">maxBufferPoolSize</span><span class="kwrd">=&quot;10000000&quot;</span> <span class="attr"><strong>maxReceivedMessageSize</strong></span><span class="kwrd">=&quot;1000000&quot;</span> <span class="attr">messageEncoding</span><span class="kwrd">=&quot;Text&quot;</span> <span class="attr">textEncoding</span><span class="kwrd">=&quot;utf-8&quot;</span> <span class="attr">transferMode</span><span class="kwrd">=&quot;Buffered&quot;</span> <span class="attr">useDefaultWebProxy</span><span class="kwrd">=&quot;true&quot;</span><span class="kwrd">&gt;</span>
          <span class="kwrd">&lt;</span><span class="html">readerQuotas</span> <span class="attr">maxDepth</span><span class="kwrd">=&quot;32&quot;</span> <span class="attr">maxStringContentLength</span><span class="kwrd">=&quot;8192&quot;</span> <span class="attr">maxArrayLength</span><span class="kwrd">=&quot;16384&quot;</span> <span class="attr">maxBytesPerRead</span><span class="kwrd">=&quot;4096&quot;</span> <span class="attr">maxNameTableCharCount</span><span class="kwrd">=&quot;16384&quot;</span> <span class="kwrd">/&gt;</span>
          <span class="kwrd">&lt;</span><span class="html">security</span> <span class="attr">mode</span><span class="kwrd">=&quot;None&quot;</span><span class="kwrd">&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">transport</span> <span class="attr">clientCredentialType</span><span class="kwrd">=&quot;None&quot;</span> <span class="attr">proxyCredentialType</span><span class="kwrd">=&quot;None&quot;</span> <span class="attr">realm</span><span class="kwrd">=&quot;&quot;</span> <span class="kwrd">/&gt;</span>
            <span class="kwrd">&lt;</span><span class="html">message</span> <span class="attr">clientCredentialType</span><span class="kwrd">=&quot;UserName&quot;</span> <span class="attr">algorithmSuite</span><span class="kwrd">=&quot;Default&quot;</span> <span class="kwrd">/&gt;</span>
          <span class="kwrd">&lt;/</span><span class="html">security</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;/</span><span class="html">binding</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;/</span><span class="html">basicHttpBinding</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">bindings</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">system.serviceModel</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">configuration</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>You may notice that the DFS SDK-based app.config binding element attribute values differ from direct-from-WCF defaults (i.e. maxBufferSize&#8211;1000000 versus 65536, maxBufferPoolSize&#8211;1000000 versus 524288, and maxReceivedMessageSize&#8211;1000000 versus 65536). This is simply a change to <em>lessen</em> the likelihood of encountering WCF CommunicationExceptions having to do with MaxReceivedMessageSize values.</p>
<p>One technique you can employ to determine what a reasonable MaxReceivedMessageSize value should be for your application is to set the value of your binding attribute/property to the absolute maximum in order to profile actual runtime message size using a web debugging proxy like <a title="Charles - my preferred web debugging proxy" href="http://www.charlesproxy.com/" target="_blank">Charles</a> or <a title="Fiddler - a free web debugging proxy" href="http://www.fiddlertool.com/" target="_blank">Fiddler</a>. That is, temporarily set MaxReceivedMessageSize to 2147483648 (i.e. Int32.MaxValue), pass your SOAP messages through, for example, Charles via port forwarding, review response message content length values, and reset your default runtime MaxReceivedMessageSize value accordingly.</p>
<p>If you prefer to take a declarative approach to WCF binding configuration for your application but you’re concerned about a user setting the value too low, you can always interrogate values at runtime in order to ensure that they’re sufficient. </p>
<p>For example, a productivity layer-based client could do as follows:</p>
<pre class="csharpcode">System.Reflection.FieldInfo appConfigInfo = <span class="kwrd">typeof</span>(ContextFactory).GetField(<span class="str">&quot;appConfig&quot;</span>, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
System.Reflection.FieldInfo agentServiceBindingInfo = <span class="kwrd">typeof</span>(AppConfig).GetField(<span class="str">&quot;m_agentServiceBinding&quot;</span>, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
System.Reflection.FieldInfo contextRegistryServiceBindingInfo = <span class="kwrd">typeof</span>(AppConfig).GetField(<span class="str">&quot;m_contextRegistryServiceBinding&quot;</span>, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
System.Reflection.FieldInfo defaultServiceBindingInfo = <span class="kwrd">typeof</span>(AppConfig).GetField(<span class="str">&quot;m_defaultServiceBinding&quot;</span>, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
BasicHttpBinding binding = <span class="kwrd">new</span> BasicHttpBinding();
binding.MaxReceivedMessageSize = 0x7fffffffL;
binding.MaxBufferSize = 0x7fffffffL;
agentServiceBindingInfo.SetValue(appConfigInfo.GetValue(contextFactory), binding);
contextRegistryServiceBindingInfo.SetValue(appConfigInfo.GetValue(contextFactory), binding);
defaultServiceBindingInfo.SetValue(appConfigInfo.GetValue(contextFactory), binding);</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Of course, in a production app, I’d ensure that there is a log (auditable event) of such programmatic override activity. I might also consider presenting the user with a suggestion, requesting that the software be given the opportunity to auto-correct the value (e.g. updating the effective application configuration file). </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=xWeIt67nL5Q:zbGHXlOLVpw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=xWeIt67nL5Q:zbGHXlOLVpw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=xWeIt67nL5Q:zbGHXlOLVpw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=xWeIt67nL5Q:zbGHXlOLVpw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=xWeIt67nL5Q:zbGHXlOLVpw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/xWeIt67nL5Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/04/maxreceivedmessagesize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/04/maxreceivedmessagesize/</feedburner:origLink></item>
		<item>
		<title>Building content-enabled applications</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/efPlKCnX3B8/</link>
		<comments>http://craigrandall.net/archives/2009/04/building-content-enabled-apps/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 21:28:12 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[CEVA]]></category>
		<category><![CDATA[content-enabled applications]]></category>
		<category><![CDATA[content-enabled apps]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[EMC World]]></category>
		<category><![CDATA[EMC World 2009]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=969</guid>
		<description><![CDATA[Both Pie and Marko have blogged about content-enabled applications, or what Gartner calls CEVAs (content-enabled vertical applications).
As it so happens, I&#8217;ll be presenting there will be a session on this subject next month at EMC World 2009.
Based on my research of what folks label a content-enabled application, two things rise to the top: process (surrounding [...]]]></description>
			<content:encoded><![CDATA[<p>Both <a title="Vendor Support for CMIS" href="http://wordofpie.com/2008/09/11/vendor-support-for-cmis/" target="_blank">Pie</a> and <a title="Where Have All the CEVA’s Gone?" href="http://bigmenoncontent.com/2009/04/01/where-have-all-the-cevas-gone/" target="_blank">Marko</a> have blogged about content-enabled applications, or what <a title="Use CEVAs to Generate Value From Your Content" href="http://www.gartner.com/DisplayDocument?doc_cd=137675" target="_blank">Gartner calls</a> CEVAs (content-enabled <em>vertical</em> applications).</p>
<p>As it so happens, <strike>I&#8217;ll be presenting</strike> there will be <a title="Building content-enabled applications with DFS: Developer Track @ EMC World 2009" href="https://community.emc.com/thread/2809" target="_blank">a session on this subject</a> next month at <a href="http://www.emcworld.com/">EMC World 2009</a>.</p>
<p>Based on my research of what folks label a <em>content-enabled application</em>, two things rise to the top: <strong>process</strong> (surrounding content) and <strong>subject matter expertise</strong> (individual or group surrounding process), and <strong>context</strong>. OK, three things.</p>
<p>For example, <a title="The Forrester Wave™: Content-Centric Applications, Q1 2006" href="http://www.forrester.com/Research/Document/Excerpt/0,7211,37684,00.html" target="_blank">Forrester defines</a> content-<em>centric</em> applications as &#8220;solutions that put the business&#8217; content to use, and add context along the way&#8211;to support line-of-business needs.&#8221; Example solutions include customer self-service, claims processing, proposal management, contract management, and <a title="EMC Documentum Case Management Solution Framework " href="http://www.emc.com/solutions/business-need/collaboration/case-management-solution-framework.htm" target="_blank">case management</a>.</p>
<p>Other CEVA vendors argue that content-enabled applications are <em>process-oriented</em>, not content-centric. I tend to prefer this viewpoint. A claim is valueless in itself. Only once is claim <em>is processed</em> is value realized, including taking a future liability off the books.</p>
<p>Content-enabled applications should facilitate the convergence of content, collaboration, interaction, and process.</p>
<p>Before you leverage your content in an application to generate value, ask yourself few questions:</p>
<ul>
<li>Who uses the content? Why? How?</li>
<li>What processes does the content support?</li>
<li>If I&#8217;m not a subject matter expert for this type of content, who can I involve to design a better application experience?</li>
<li>What processes does it support?</li>
<li>What context is involved, either centrally or peripherally?</li>
</ul>
<p>Start with something familiar to just about anyone these days: email (or IM, micro-blogging, etc.). Answer the questions. See how applications, for example, around email have evolved. Think about where current email applications may have untapped potential. Etc.</p>
<p>So, where <em>have</em> all the CEVAs gone (as Marko asks)?</p>
<ul>
<li>I think that we in the content management business do ourselves a disservice by overly complicating concepts (e.g. behind <a title="Three-letter acronym" href="http://en.wikipedia.org/wiki/Three-letter_acronym" target="_blank">TLA</a>s or FLAs). Although fine as a conceptual catalyst, CEVA is self-defeating, IMHO, as a rallying label.</li>
<li>I agree that <a title="Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a> has great potential to increase the availability of content-enabled applications, if for no other reason, because application development that consumes the proposed standard should have a greater return on investment by being applicable to multiple content repositories. (ECM vendor partners are you listening?)</li>
<li>In the end, it&#8217;s the application, not the content or the process or the people. That is, if you&#8217;re just adding a document and perhaps a workflow to some code, you may have an app&#8230;but it won&#8217;t be used. Focus on user experience (i.e. the meaningful, intuitive presentation of content, context and process together).</li>
</ul>
<p>Back to EMC World&#8230;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://craigrandall.net/images/emc-world-2009.jpg" alt="Orlando, FL - May17-21" /></p>
<p>I&#8217;ll miss interacting with <a title="The Road to EMC World 2009" href="http://storagezilla.typepad.com/storagezilla/2009/03/the-road-to-emc-world-2009.html" target="_blank">&#8216;Zilla</a> at the conference. It was at <a title="i.e. the first public presentation of DFS" href="http://craigrandall.net/archives/2007/05/documentum-foundation-services/">EMC World in 2007</a> (also held in Orlando, FL) that I <a title="Opening in Orlando" href="http://craigrandall.net/archives/2007/05/opening-in-orlando/">first met Mark in person</a>.</p>
<p>If you are able to make the conference and consider yourself to be a &#8220;2.0 type,&#8221; you may be interested in <a title="EMC World 2009" href="http://lensblog.typepad.com/ebiz/2009/03/emc-world-2009.html" target="_blank">Len&#8217;s advert</a>. Looks like there is even a <a title="EMC World 2009" href="http://events.linkedin.com/EMC-World-2009/pub/37519" target="_blank">LinkedIn event</a> established for the conference.</p>
<p>I plan to <a title="@craigsmusings" href="http://twitter.com/craigsmusings" target="_blank">tweet</a> the conference and otherwise engage with the community. In the meantime, if you plan to attend my session (<em>as presented by others</em>), please feel free to comment (here or <a title="Building content-enabled applications with DFS: Developer Track @ EMC World 2009" href="https://community.emc.com/thread/2809" target="_blank">ECN</a>) on your thoughts about content-enabled applications and what you&#8217;d like discussed or demoed. Thanks in advance.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=efPlKCnX3B8:oLeF9IEJaeA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=efPlKCnX3B8:oLeF9IEJaeA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=efPlKCnX3B8:oLeF9IEJaeA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=efPlKCnX3B8:oLeF9IEJaeA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=efPlKCnX3B8:oLeF9IEJaeA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/efPlKCnX3B8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/04/building-content-enabled-apps/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/04/building-content-enabled-apps/</feedburner:origLink></item>
		<item>
		<title>CMIS panel discussion at AIIM info360</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/intMDkuPYrU/</link>
		<comments>http://craigrandall.net/archives/2009/04/cmis-panel-discussion/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 14:00:50 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[AIIM]]></category>
		<category><![CDATA[iECM]]></category>
		<category><![CDATA[info360]]></category>
		<category><![CDATA[OASIS]]></category>
		<category><![CDATA[TC]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=958</guid>
		<description><![CDATA[Tomorrow at 11:30am local time there will be an informal CMIS panel at the AIIM info360 conference in Philadelphia (i.e. Doculabs expo booth 434). This panel is organized by AIIM (Betsy Fanning). Thomas Pole, iECM co-chair and organizer of the CMIS demo, will be the moderator.
My EMC colleague and OASIS CMIS TC chair, Dr. David [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow at 11:30am local time there will be an informal <a title="Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a> panel at the <a title="AIIM International Exposition and Conference" href="http://www.aiimexpo.com/aiimexpo/v42/index.cvn" target="_blank">AIIM info360</a> conference in Philadelphia (i.e. <a title="Doculabs LIVE!" href="http://www.aiimexpo.com/aiimexpo/v42/index.cvn?id=10254" target="_blank">Doculabs expo booth 434</a>). This panel is organized by <a href="http://www.aiim.org/" target="_blank">AIIM</a> (Betsy Fanning). Thomas Pole, <a title="Interoperable Enterprise Content Managment" href="http://craigrandall.net/archives/2006/07/iecm/">iECM</a> co-chair and organizer of the <a href="http://craigrandall.net/archives/2009/03/aiim-iecm-demo-of-cmis/">CMIS demo</a>, will be the moderator.</p>
<p>My EMC colleague and <a title="OASIS Content Management Interoperability Services Technical Committee" href="http://www.oasis-open.org/committees/cmis/" target="_blank">OASIS CMIS TC</a> chair, Dr. David Choy, will provide an overview of CMIS at 11:30am leading into the panel discussion. As a reminder to my fellow TC&#8217;ers, the panel is open to any TC member.</p>
<p>So, if you&#8217;re at AIIM info360 and want to learn more about CMIS, please join the discussion. You can also stop by the EMC booth (#825) for the duration of the expo. Cheers!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=intMDkuPYrU:pV9hEx6wMz4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=intMDkuPYrU:pV9hEx6wMz4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=intMDkuPYrU:pV9hEx6wMz4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=intMDkuPYrU:pV9hEx6wMz4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=intMDkuPYrU:pV9hEx6wMz4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/intMDkuPYrU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/04/cmis-panel-discussion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/04/cmis-panel-discussion/</feedburner:origLink></item>
		<item>
		<title>AIIM iECM demo of CMIS</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/_W7XD3qGrQo/</link>
		<comments>http://craigrandall.net/archives/2009/03/aiim-iecm-demo-of-cmis/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 15:59:07 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[AIIM]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[iECM]]></category>
		<category><![CDATA[info360]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=954</guid>
		<description><![CDATA[Yesterday at the AIIM info360 conference in Philadelphia, the iECM committee announced its sponsored demonstration of CMIS. The AIIM press release has more details here.
Today that demo is live: http://aiim-iecm.org/cmisdemoc/. If you&#8217;re at AIIM info360, please stop by the EMC booth (#825) for a personal tour of the demo application.
If you want to understand how [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday at the <a title="AIIM International Exposition and Conference" href="http://www.aiimexpo.com/aiimexpo/v42/index.cvn" target="_blank">AIIM info360</a> conference in Philadelphia, the <a title="Interoperable Enterprise Content Managment" href="http://craigrandall.net/archives/2006/07/iecm/">iECM</a> committee announced its sponsored demonstration of <a title="Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a>. The AIIM press release has more details <a title="AIIM iECM Demonstrates Implementation of CMIS at info360: Industry Leaders Create Federated Content Environment" href="http://www.aiim.org/ResourceCenter/AIIMNews/PressReleases/Article.aspx?ID=36058" target="_blank">here</a>.</p>
<p>Today that demo is live: <strong><a title="AIIM iECM's Demonstration of CMIS" href="http://aiim-iecm.org/cmisdemoc/" target="_blank">http://aiim-iecm.org/cmisdemoc/</a></strong>. If you&#8217;re at AIIM info360, please stop by the EMC booth (#825) for a personal tour of the demo application.</p>
<p>If you want to understand how the demo was made, I encourage you to <a title="How the iECM CMIS Demo for the AIIM Conference was Made" href="http://wordofpie.com/2009/03/31/how-the-iecm-cmis-demo-for-the-aiim-conference-was-made/" target="_blank">read Pie&#8217;s account</a>, especially since he was a central figure in producing the application above <a title="EMC Documentum CMIS EA2" href="http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/">compliant repositories</a>, including EMC.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=_W7XD3qGrQo:vPQGeO4dUkY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=_W7XD3qGrQo:vPQGeO4dUkY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=_W7XD3qGrQo:vPQGeO4dUkY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=_W7XD3qGrQo:vPQGeO4dUkY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=_W7XD3qGrQo:vPQGeO4dUkY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/_W7XD3qGrQo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/03/aiim-iecm-demo-of-cmis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/03/aiim-iecm-demo-of-cmis/</feedburner:origLink></item>
		<item>
		<title>Recovering well</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/CE5Wibh-atg/</link>
		<comments>http://craigrandall.net/archives/2009/03/recovering-well/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 00:37:15 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Lessons]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Achilles]]></category>
		<category><![CDATA[basketball]]></category>
		<category><![CDATA[injury]]></category>
		<category><![CDATA[patience]]></category>
		<category><![CDATA[therapy]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=941</guid>
		<description><![CDATA[Last month I revealed that I suffered a basketball injury (i.e. a high rupture of my right Achilles tendon, requiring surgical repair). Yesterday marked the six-week point since surgery. Today I completed my third week of physical therapy and being out of a cast and in a walking boot. This afternoon was my three-week follow-up [...]]]></description>
			<content:encoded><![CDATA[<p>Last month I <a title="Fallen weekend warrior" href="http://craigrandall.net/archives/2009/02/fallen-weekend-warrior/">revealed</a> that I suffered a basketball injury (i.e. a high rupture of my right Achilles tendon, requiring surgical repair). Yesterday marked the six-week point since surgery. Today I completed my third week of physical therapy and being out of a cast and <a href="http://craigrandall.net/archives/2009/02/fallen-weekend-warrior/#comment-20738">in a walking boot</a>. This afternoon was my three-week follow-up with my surgeon.</p>
<p>Those professionally helping me in my recovery say that I&#8217;m making excellent progress. Given where I am calendar-wise since the injury, my range of motion is great and my strength is good, too. Perhaps next week, I&#8217;ll be able to spend time out of my walking boot in a regular shoe assisted by a crutch. This will allow me to work on re-establishing my normal gait.</p>
<p>Already this experience has been rich in life lessons for me:</p>
<ul>
<li>When you listen to your care givers, good things can and do happen! (Wish I&#8217;d learned this in my twenties.)</li>
<li>I still have a ways to go until I&#8217;m a consistently patient person. (Sometimes, I&#8217;m not a patient <em>patient</em>!)</li>
<li>I value my independence, and I have a hard time asking for help.</li>
<li>Handicapping injuries offer a great opportunity to slow down and experience the subtler, finer points of life (e.g. wonderful family moments).</li>
<li>When operating on a single crutch, the crutch goes on the strong side, not alongside the injury. (My physical therapist had a good laugh&#8211;and said that it&#8217;s not uncommon to see patients operate incorrectly.)</li>
<li>I thrive on communication (e.g. interacting with colleagues at work). While I&#8217;m grateful to be able to work regularly from home&#8211;even more so since my injury&#8211;there is simply no substitute for face-to-face communication.</li>
<li>Be conservative in your recovery goals, allowing more opportunity to be pleasantly surprised. Don&#8217;t confuse this with owning your recovery, being confident and taking initiative.</li>
<li>The human walk is truly elegant. It seems so simple, but there&#8217;s a lot to it when you have to deconstruct and re-learn it. Coordination requires more effort and focus than strength requires.</li>
</ul>
<p>You may have noticed that I&#8217;ve been light on blogging this month, after starting the year off at a better pace (for me, anyway). Needless to say, I&#8217;ve been focusing my spare (and non-spare) time on my recovery. Let&#8217;s see&#8230;post a blog&#8230;regain ability to walk&#8230;blog&#8230;walk&#8230;hmmm&#8230;  <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Suffice it to say, for now, that plenty of good things are happening where my professional life is concerned, too (e.g. cool new software features and products forthcoming from EMC). More on that later.</p>
<p>In the meantime, thanks for all the well-wishes and support. Cheers&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=CE5Wibh-atg:51wD00socFk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=CE5Wibh-atg:51wD00socFk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=CE5Wibh-atg:51wD00socFk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=CE5Wibh-atg:51wD00socFk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=CE5Wibh-atg:51wD00socFk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/CE5Wibh-atg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/03/recovering-well/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/03/recovering-well/</feedburner:origLink></item>
		<item>
		<title>CMIS Interoperability</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/O-qf5EbPoEw/</link>
		<comments>http://craigrandall.net/archives/2009/03/cmis-interoperability/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 19:50:43 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[CMIS Explorer]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[interoperability]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=924</guid>
		<description><![CDATA[CMS Wire recently picked up the development of CMIS Explorer by Shane Johnson (@shane_dev) at CityTech. CMIS Explorer (download) is a browser application written in Adobe AIR and Flex that uses the RESTful AtomPub binding of the proposed CMIS standard to interact with CMIS-compliant repositories.
Already early access support for CMIS is available from EMC, IBM [...]]]></description>
			<content:encoded><![CDATA[<p>CMS Wire recently <a title="Hiking Through CMIS Repos with CMIS Explorer" href="http://www.cmswire.com/cms/enterprise-cms/hiking-through-cmis-repos-with-cmis-explorer-004027.php" target="_blank">picked up the development of CMIS Explorer</a> by <a title="Shane's blog" href="http://blogs.citytechinc.com/sjohnson/" target="_blank">Shane Johnson</a> (<a title="Shane on Twitter" href="http://twitter.com/shane_dev" target="_blank">@shane_dev</a>) at CityTech. CMIS Explorer (<a href="http://code.google.com/p/cmis-explorer/" target="_blank">download</a>) is a browser application written in Adobe AIR and Flex that uses the RESTful AtomPub binding of the proposed CMIS standard to interact with CMIS-compliant repositories.</p>
<p>Already <a title="EMC Documentum CMIS EA2" href="http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/" target="_blank">early access support for CMIS</a> is available from EMC, IBM and Alfresco. Such support makes it possible for applications like <a href="http://blogs.citytechinc.com/sjohnson/?p=60" target="_blank">CMIS Explorer</a> to be applied to a variety of content repositories in ways not possible before <a title="CMIS - Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a>.</p>
<p>As fellow OASIS CMIS TC member Florent Guillaume from Nuxeo <a title="Hiking Through CMIS Repos with CMIS Explorer" href="http://www.cmswire.com/cms/enterprise-cms/hiking-through-cmis-repos-with-cmis-explorer-004027.php" target="_blank">comments</a>, though, CMIS is not yet a formal (fixed) standard. It is under development and somewhat fluid.</p>
<p>When a content repository vendor provides draft support, don&#8217;t <em>assume</em> that such support fully conforms to the current draft specification (e.g. v0.5). If you&#8217;re an application developer like Shane, you can <em>know</em> conformance exists by first building against what is specified on <a title="OASIS Content Management Interoperability Services (CMIS) TC" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis" target="_blank">the OASIS site for CMIS</a> and then pointing your application at desired content repository or repositories.</p>
<p>For example, you can point CMIS Explorer at a Documentum content repository via EMC CMIS support EA2 to search and to see types.</p>
<p align="middle"><img src="http://craigrandall.net/cmis/cmis-explorer-search.jpg" alt="Searching a Docbase via CMIS Explorer" /></p>
<p align="middle"><img src="http://craigrandall.net/cmis/cmis-explorer-types.jpg" alt="Reviewing Docbase types via CMIS Explorer" /></p>
<p>However, while basic interoperability seems OK, something prevents actual browsing functionality in CMIS Explorer from working with Documentum. In its com.citytechinc.cmis.Repository.setFolder() method, CMIS Explorer tries to get folder objects from root children via the following condition:<br /><code>f.object.properties.propertyString.(@name=='BaseType').value == "folder"</code><br />However, draft CMIS specification v0.5 does not define a BaseType property, not does the EMC CMIS support EA2 contain this property. As a result, CMIS Explorer cannot find any folder object in root children, which prevents it from being able to browse a Docbase.</p>
<p>To be fair, my colleague, Norrie Quinn, has already pointed out this matter on <a href="http://blogs.citytechinc.com/sjohnson/?p=60" target="_blank">Shane&#8217;s post</a>, and Shane has replied.</p>
<p>My focus here is simply as follows: <strong>It&#8217;s important for applications to leverage the currently proposed CMIS bindings from OASIS rather than a particular vendor&#8217;s implementation of these bindings in order to promote interoperability.</strong></p>
<p>It will be good to see the emergence of CMIS-based applications that go beyond exploration, navigation and portal-style user experiences. Such applications will help to influence the CMIS roadmap beyond version 1.0.</p>
<p>In the meantime, it&#8217;s great to see open source efforts like CMIS Explorer take root today. Thanks, Shane.</p>
<p>P.S. It would be good to see a community form around CMIS-based application development (e.g. shine a light on individual efforts, potentially pool interest and resources, solicit ideas and challenges, etc.). If you&#8217;re interested in something like, please leave me a comment. In the meantime, I plan to promote community efforts here as best I can. Thanks.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=O-qf5EbPoEw:8mD239ckRPw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=O-qf5EbPoEw:8mD239ckRPw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=O-qf5EbPoEw:8mD239ckRPw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=O-qf5EbPoEw:8mD239ckRPw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=O-qf5EbPoEw:8mD239ckRPw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/O-qf5EbPoEw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/03/cmis-interoperability/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/03/cmis-interoperability/</feedburner:origLink></item>
		<item>
		<title>Fallen weekend warrior</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/q8pEwu8AhbQ/</link>
		<comments>http://craigrandall.net/archives/2009/02/fallen-weekend-warrior/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 22:48:38 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Achilles]]></category>
		<category><![CDATA[basketball]]></category>
		<category><![CDATA[cast]]></category>
		<category><![CDATA[injury]]></category>
		<category><![CDATA[surgery]]></category>

		<guid isPermaLink="false">http://craigrandall.net/archives/2009/02/fallen-weekend-warrior/</guid>
		<description><![CDATA[“What happened to you?”
Since my return to the office this week, it’s pretty obvious that something did, indeed, happen to me.

No, I didn’t work on “Red Dog” (i.e. Windows Azure)—for those of you were attended last year’s PDC and saw the bright red shoes worn proudly by those on the main stage during keynotes.
What you [...]]]></description>
			<content:encoded><![CDATA[<p>“What happened to you?”</p>
<p>Since my return to the office this week, it’s pretty obvious that something did, indeed, happen to me.</p>
<p align="middle"><img src="http://craigrandall.net/images/090219-cast2.jpg" /></p>
<p>No, I didn’t work on “Red Dog” (i.e. <a title="Azure is like NT" href="http://craigrandall.net/archives/2008/11/azure-is-like-nt/">Windows Azure</a>)—for those of you were attended last year’s PDC and saw the bright red shoes worn proudly by those on the main stage during keynotes.</p>
<p>What you see in the picture above, unfortunately, is a <em>cast</em>—my second cast in a series of casts, too. Red is the color chosen by my son, who I empowered to be my “awkward restraint device” designer. Currently the leading color for my next cast is maroon—although camouflage is a close second. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>While playing a league basketball game on Sunday 2/8 I ruptured my Achilles tendon, as per the ER doctor&#8217;s opinion. This diagnosis was confirmed when I saw an orthopedic doctor on Tuesday 2/10. I had a successful surgery to repair my tendon on Wednesday 2/11.</p>
<p>By the way, if you have a ruptured Achilles tendon, you don&#8217;t want <em>the kind I apparently have</em>. My rupture involves my calf muscle, too (i.e. more where the tendon and muscle connect than just the tendon alone). So, my recovery time will be extended. </p>
<p>Yesterday I had my stitches removed—I look like Frankenstein where my incision exists—and received my second cast. Boy, did it feel good not to have anything touching my skin for that brief period of time!</p>
<p>Basically I’ll be in a series of casts for the next several weeks, being put into a new cast roughly every week. The goal of this process is to stretch the repaired tendon so that my foot is perpendicular to my lower leg (i.e. bent at a 90 degree angle). So, with each new cast, my foot will be positioned with more tension/stretch toward that goal. Yesterday I began at 50 degrees.</p>
<p>Achieving 90 degrees will allow me to proceed into my next phase of recovery: physical therapy. It will also mean the end of casts and the start of a wearing a walking boot instead.</p>
<p>At the outside, it will be about six months until I fully recover (i.e. I can run and play basketball again).</p>
<p>Fun, eh?</p>
<p>But I’m thankful for a very loving and supportive wife and family. My employer, EMC, and my work colleagues are great, too. I’m fortunate to have a job that doesn’t require me to be on my feet or to perform heavy physical labor—especially during these tough economic times.</p>
<p>Besides, this will all pass before you know it. I certainly won’t take my ability to walk unassisted let alone run anytime soon… <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>P.S. I wasn’t fouled while playing basketball either, although I thought that someone took a bat to my leg right above my heel at the time. I understand through teammates that I was actually alone while making a defensive rebound. Regardless of playing the incident over and over in my mind, I can’t recall if the “pop” I heard (internally) was before or after landing—just recall landing like a bag of rocks on the hardwood floor.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=q8pEwu8AhbQ:lxsOz2xWqYE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=q8pEwu8AhbQ:lxsOz2xWqYE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=q8pEwu8AhbQ:lxsOz2xWqYE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=q8pEwu8AhbQ:lxsOz2xWqYE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=q8pEwu8AhbQ:lxsOz2xWqYE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/q8pEwu8AhbQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/02/fallen-weekend-warrior/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/02/fallen-weekend-warrior/</feedburner:origLink></item>
		<item>
		<title>JIRA Client for OASIS</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/GREPd2_dXhk/</link>
		<comments>http://craigrandall.net/archives/2009/02/jira-client-for-oasis/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 13:30:18 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Development Toolbox]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ALM Works]]></category>
		<category><![CDATA[issue tracker]]></category>
		<category><![CDATA[JIRA Client]]></category>
		<category><![CDATA[OASIS]]></category>
		<category><![CDATA[TC]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=890</guid>
		<description><![CDATA[Thanks to a recent IT change concerning the OASIS JIRA server, I can now leverage ALM Works JIRA Client to work OASIS CMIS TC issues.

Furthermore, all OASIS Issue Trackers in the single OASIS JIRA server are available to me&#8211;or any other OASIS member!
Here is how&#8230;

Visit ALM Works and download JIRA Client.
Install JIRA Client and choose [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to a recent IT change concerning the OASIS JIRA server, I can now leverage <a title="JIRA Client overview" href="http://almworks.com/jiraclient/overview.html" target="_blank">ALM Works JIRA Client</a> to work <a title="OASIS Content Management Interoperability Services Technical Committee" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis" target="_blank">OASIS CMIS TC</a> issues.</p>
<p align="middle"><img src="http://craigrandall.net/cmis/oasis-site-license-splash-dialog.jpg" alt="JIRA Client for OASIS splash screen" /></p>
<p>Furthermore, <strong>all OASIS Issue Trackers in the single OASIS JIRA server are available to me&#8211;<em>or any other OASIS member</em></strong>!</p>
<p>Here is how&#8230;</p>
<ol>
<li>Visit ALM Works and <a title="JIRA Client download" href="http://almworks.com/jiraclient/download.html" target="_blank">download JIRA Client</a>.</li>
<li>Install JIRA Client and choose &#8220;Run JIRA Client&#8221; before exiting the installer.</li>
<li>Enter your license key. That is, download <a title="JIRA Client license file for OASIS usage" href="http://craigrandall.net/cmis/deskzilla_oasis.license" target="_blank">deskzilla_oasis.license</a> to your local %USERPROFILE%\.JIRAClient directory (e.g. C:\Documents and Settings\YourUserName\.JIRAClient, on a Windows XP machine), and point your JIRA Client instance to your local license file (i.e. select it).</li>
<li>Verify the following license data is presented upon selection:<br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Site license<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Licensed to: open-source community<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Support ID: 4000383<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supported servers:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JIRA [http://tools.oasis-open.org/issues]</code></li>
<li>Restart JIRA Client in order for this license to take effect (i.e. Start | Programs | JIRA Client | JIRA Client).</li>
<li>Configure connection (i.e. enter your OASIS member login credentials).</li>
<li>Connect and select the OASIS issue trackers of interest.</li>
<li>Initialize connection, which may take a short amount of time during first-time initialization.</li>
</ol>
<p>At this point you should be able to leverage JIRA Client against OASIS issue trackers (e.g. <a title="Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS</a>).</p>
<p>Credits&#8230;</p>
<ul>
<li>A big thank you to ALM Works founder, <a href="http://www.linkedin.com/in/igorsereda" target="_blank">Igor Sereda</a>, for his support of open source projects and organizations like OASIS.</li>
<li>Thanks also go to Mary McRae of OASIS for gently vetting JIRA Client licensing details, since I&#8217;m not an OASIS employee.</li>
</ul>
<p>Just to be clear, this ALM Works software is not being provided by, nor licensed to OASIS as an organization. The JIRA Client license from ALM Works isn’t granted to OASIS, but it’s restricted to access the OASIS JIRA repository. Each person who installs will need to determine whether or not they are able to accept the licensing agreements for their organization.</p>
<p>Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=GREPd2_dXhk:ZD94qf3v3aU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=GREPd2_dXhk:ZD94qf3v3aU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=GREPd2_dXhk:ZD94qf3v3aU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=GREPd2_dXhk:ZD94qf3v3aU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=GREPd2_dXhk:ZD94qf3v3aU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/GREPd2_dXhk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/02/jira-client-for-oasis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/02/jira-client-for-oasis/</feedburner:origLink></item>
		<item>
		<title>Updated DFS Developer Guide on EDN</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/ZYncvEvtMnY/</link>
		<comments>http://craigrandall.net/archives/2009/02/updated-dfs-dev-guide-on-edn/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 21:09:12 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[dev guide]]></category>
		<category><![CDATA[EDN]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=885</guid>
		<description><![CDATA[My colleague and technical writer, Joe Ferrie, just uploaded the second edition of the DFS 6.5 Development Guide to the EMC Developer Network (EDN) here. The information here is applicable to DFS 6.5 and DFS 6.5 SP1.
(I&#8217;m still working on this, but at least this content is available via EDN.)
Some highlights of this edition are [...]]]></description>
			<content:encoded><![CDATA[<p>My colleague and technical writer, Joe Ferrie, just uploaded the <strong>second edition of the DFS 6.5 Development Guide</strong> to the EMC Developer Network (EDN) <a title="EMC Documentum Foundation Services 6.5 Development Guide" href="https://community.emc.com/docs/DOC-2820" target="_blank">here</a>. The information here is applicable to DFS 6.5 and DFS 6.5 SP1.</p>
<p>(I&#8217;m still working on <a title="Wikify Documentum already" href="http://craigrandall.net/archives/2007/11/wikify-documentum-already/">this</a>, but at least this content is available via <a title="EMC Developer Network" href="https://community.emc.com/community/edn" target="_blank">EDN</a>.)</p>
<p>Some highlights of this edition are as follows:</p>
<ul>
<li>A new content transfer chapter, with practical information about uploading and downloading content using Base64 and MTOM, as well as using UrlContent to get content from Accelerated Content Services (ACS). Examples are provided for WSDL-based consumers, as well as productivity layer consumers. Unified Client Facilities (UCF) now gets its own chapter.</li>
<li>Details of Java productivity layer dependencies so that you can more easily understand what JAR files you need on your ClassPath given for your particular development scenario</li>
<li>A new chapter comparing DFC and DFS, which is expected to be useful for DFC developers who are ramping up with DFS and want to compare the general approach and specific operations</li>
<li>A revised explanation of the sometimes confusing restrictions on retrieving deep relationships in DataObjects.</li>
</ul>
<p>Thanks, Joe!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=ZYncvEvtMnY:gw1wO6pqvVg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=ZYncvEvtMnY:gw1wO6pqvVg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=ZYncvEvtMnY:gw1wO6pqvVg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=ZYncvEvtMnY:gw1wO6pqvVg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=ZYncvEvtMnY:gw1wO6pqvVg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/ZYncvEvtMnY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/02/updated-dfs-dev-guide-on-edn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/02/updated-dfs-dev-guide-on-edn/</feedburner:origLink></item>
		<item>
		<title>Dynamic value assistance using DFS</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/ZiiW9XbAG6Y/</link>
		<comments>http://craigrandall.net/archives/2009/02/dynamic-value-assistance-using-dfs/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 05:09:16 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[value-assist]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://craigrandall.net/archives/2009/02/dynamic-value-assistance-using-dfs/</guid>
		<description><![CDATA[Continuing my collaboration with John Sweeney (or his collaboration with me), today we’ll examine the DFS Schema service and do so in .NET as a direct-to-WSDL consumer. This tutorial builds upon a previous tutorial; so, if you’re not already familiar with it, please read this post and play with this sample. You’ll also need and [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my collaboration with John Sweeney (or his collaboration with me), today we’ll examine the <a title="Documentum Foundation Services" href="http://craigrandall.net/archives/2007/05/documentum-foundation-services/" target="_blank">DFS</a> Schema service and do so in .NET as a direct-to-WSDL consumer. This tutorial builds upon a previous tutorial; so, if you’re not already familiar with it, please read <a title="Consuming DFS WSDL in Visual Studio" href="http://craigrandall.net/archives/2009/01/consuming-dfs-wsdl-in-visual-studio/" target="_blank">this post</a> and play with <a title="Direct-to-WSDL DFS services consumer sample" href="https://community.emc.com/docs/DOC-2604" target="_blank">this sample</a>. You’ll also need and be familiar with using Documentum Administrator (DA) and Documentum Composer 6.5 SP1.</p>
<p>Thanks to John for doing the legwork in this tutorial and for allowing me to share it all with you here. (Although, I’d really like to see John blog about this directly; he has a lot to share.)</p>
<p>Not only can the DFS Schema service return value-assist values, it also supports dynamic value assistance, including the handling of dependencies (e.g. one attribute value-assist dynamically built based on the value of another attribute).</p>
<p>This tutorial demonstrates how to use the DFS Schema service to perform dynamic value-assist tasks. Knowledge of Documentum Administrator, Documentum Composer 6.5 SP1, DFS 6.5 SP1, Visual Studio 2008 and WSDL-based consumption of DFS with .NET is assumed. </p>
<p>Before we begin, we&#8217;ll need to create users, groups and an object type to use as test data.</p>
<p><strong>Step 1 – Create users and groups</strong> (to be performed with Documentum Administrator)</p>
<p>1. Create three groups named writers, reviewers and publishers in your repository.</p>
<p>2. Create six users. Name them appropriately, but for this tutorial, they will be referred to as User1–6. Put the users in the new groups, as specified in the following chart:</p>
<p align="middle">
<table cellspacing="0" cellpadding="5" width="296" border="1">
<tbody>
<tr>
<td valign="top" width="150"><font color="#0000ff">&#160; Group</font></td>
<td valign="top" width="144"><font color="#0000ff">&#160; Members</font></td>
</tr>
<tr>
<td valign="top" width="152">&#160; writers</td>
<td valign="top" width="145">&#160; User1, User2</td>
</tr>
<tr>
<td valign="top" width="152">&#160; reviewers</td>
<td valign="top" width="146">&#160; User3, User4</td>
</tr>
<tr>
<td valign="top" width="152">&#160; publishers</td>
<td valign="top" width="146">&#160; User5, User6</td>
</tr>
</tbody>
</table>
<p></p>
<p><strong>Step 2 – Create a new object type</strong> (to be performed with Documentum Composer 6.5 SP1)</p>
<p>1. Open Documentum Composer and create a new project.</p>
<p>2. Add a new type called kb_document with a supertype of dm_document.</p>
<p>3. Add a new attribute to the type named document_state (as shown in the following image).</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-01.jpg" /></p>
<p>4. Expand the document_state attribute and select Value mapping.</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-02.jpg" /></p>
<p>5. In the Conditional Assistance section, click New&#8230;</p>
<p>6. Add Draft,Review,Publish as values of Fixed List (as shown in the following image) and click OK.</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-03.jpg" /></p>
<p>Your Conditional Assistance section should now look like this:</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-04.jpg" /></p>
<p>7. Add another new attribute to the type named assigned_to as shown in the following image.</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-05.jpg" /></p>
<p>8. Expand the assigned_to attribute and select Value mapping.</p>
<p>9. In the Conditional Assistance section, click New&#8230;</p>
<p>10. Add the following query:</p>
<p><code>select users_names from dm_group where group_name = 'writers'</code></p>
<p>Set the other fields (as shown in the following image).</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-06.jpg" /></p>
<p>The value-assist list will be populated with users who are members of the writers group by default, when document_state does not have a value of Review or Publish.</p>
<p>11. In the Conditional Assistance section, click New&#8230;</p>
<p>12. Add the following query:</p>
<p><code>select users_names from dm_group where group_name = 'reviewers'</code></p>
<p>Set the other fields (as shown in the following image).</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-07.jpg" /></p>
<p>The value in the Expression field will cause the value-assist list to be populated with users who are members of the reviewers group, but only when document_state has a value of &quot;Review.&quot;</p>
<p>13. In the Conditional Assistance section, click New&#8230;</p>
<p>14. Add the following query:</p>
<p><code>select users_names from dm_group where group_name = 'publishers'</code></p>
<p>Set the other fields (as shown in the following image).</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-08.jpg" /></p>
<p>The value in the Expression field will cause the value-assist list to be populated with users who are members of the publishers group, but only when document_state has a value of &quot;Publish.&quot;</p>
<p>Your Conditional Assistance section should now look like the following:</p>
<p align="middle"><img src="http://craigrandall.net/dfs/schema-tutorial-09.jpg" /></p>
<p>15. Install the Documentum project to your repository.</p>
<p><strong>Step 3 – Retrieve the value-assist list</strong> (using C# and the .NET Framework 3.0 or higher)</p>
<p>Note: the ServiceContextHeader class used in this tutorial comes from <a title="Direct-to-WSDL DFS services consumer sample" href="https://community.emc.com/docs/DOC-2604" target="_blank">this prior sample</a>, as noted above.</p>
<p>The following code snippet will return group members in the ValueAssist Values list. A PropertySet is created for document_state. The value of document_state will alter the dynamic-assist values for the assigned_to property.</p>
<pre class="csharpcode"><span class="rem">// Get a reference to the DFS Schema service</span>
SchemaServicePortClient schemaService =
    <span class="kwrd">new</span> SchemaServicePortClient(<span class="str">&quot;SchemaServicePort&quot;</span>); 

StringProperty sp = <span class="kwrd">new</span> StringProperty();
sp.name = <span class="str">&quot;document_state&quot;</span>;
<span class="rem">// assigned_to will have different dynamic-assist values, </span>
<span class="rem">// depending upon the value set here</span>
sp.Value = <span class="str">&quot;Publish&quot;</span>; <span class="rem">// or Review or Draft</span>

<span class="rem">// Create a PropertySet for document_state, which assigned_to depends upon</span>
PropertySet ps = <span class="kwrd">new</span> PropertySet();
ps.Properties = <span class="kwrd">new</span> Property[1];
ps.Properties[0] = sp; 

<span class="kwrd">using</span> (OperationContextScope scope =
           <span class="kwrd">new</span> OperationContextScope(schemaService.InnerChannel))
{
    <span class="rem">// Add the ServiceContextHeader info to the outgoing request</span>
    OperationContext.Current.OutgoingMessageHeaders.Add(
        <span class="kwrd">new</span> ServiceContextHeader(repositoryName, userName, password)); 

    <span class="rem">// Get the values for the assigned_to property</span>
    ValueAssist valueAssist = schemaService.getDynamicAssistValues(
        repositoryName, <span class="str">&quot;DEFAULT&quot;</span>, <span class="str">&quot;kb_document&quot;</span>, <span class="str">&quot;assigned_to&quot;</span>, ps, <span class="kwrd">null</span>); 

    <span class="rem">// Display the values</span>
    <span class="kwrd">if</span> (valueAssist != <span class="kwrd">null</span> || valueAssist.Values != <span class="kwrd">null</span>)
    {
        <span class="kwrd">foreach</span> (<span class="kwrd">string</span> s <span class="kwrd">in</span> valueAssist.Values)
            MessageBox.Show(s, <span class="str">&quot;Value Assist Value&quot;</span>);
    }
}</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>The following table shows the expected results:</p>
<p align="middle">
<table cellspacing="0" cellpadding="5" width="296" border="1">
<tbody>
<tr>
<td valign="top" width="150"><font color="#0000ff">&#160; document_state value</font></td>
<td valign="top" width="144"><font color="#0000ff">&#160; assigned_to values</font></td>
</tr>
<tr>
<td valign="top" width="152">&#160; Draft</td>
<td valign="top" width="145">&#160; User1, User2</td>
</tr>
<tr>
<td valign="top" width="152">&#160; Review</td>
<td valign="top" width="146">&#160; User3, User4</td>
</tr>
<tr>
<td valign="top" width="152">&#160; Publish</td>
<td valign="top" width="146">&#160; User5, User6</td>
</tr>
</tbody>
</table>
<p></p>
<p>It is worth noting that if you execute SchemaService.getTypeInfo for kb_document, and examine the assigned_to property, you can determine that the property has dependencies. The returned TypeInfo.PropertyInfos[n].Dependencies will contain an entry for document_state. You can check this beforehand as a way of determining if setting one property (document_state) should trigger a refresh of the value list (calling getDynamicAssistValues again). This is very useful for a picklist property page where the values of one list depend on the value of another.</p>
<p>Here endeth the lesson&#8230; <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Update 2/6/2009: In order for you to spend more time understanding dynamic value assistance with DFS, I&#8217;ve uploaded a Visual Studio project to EDN <a title="<br />
Dynamic value assistance using DFS<br />
" href="https://community.emc.com/docs/DOC-2830" target="_blank">here</a>. Enjoy.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=ZiiW9XbAG6Y:6OEUbVkdxFw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=ZiiW9XbAG6Y:6OEUbVkdxFw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=ZiiW9XbAG6Y:6OEUbVkdxFw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=ZiiW9XbAG6Y:6OEUbVkdxFw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=ZiiW9XbAG6Y:6OEUbVkdxFw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/ZiiW9XbAG6Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/02/dynamic-value-assistance-using-dfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/02/dynamic-value-assistance-using-dfs/</feedburner:origLink></item>
		<item>
		<title>Mr. Infrastructure</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/WBT3zHLsjDw/</link>
		<comments>http://craigrandall.net/archives/2009/02/mr-infrastructure/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 19:08:09 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[GRC]]></category>
		<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=875</guid>
		<description><![CDATA[My EMC colleague, Edward Newman, CTO of the Infrastructure Consulting Services organization, recently started to blog. Edward is quietly conspiring behind the scenes to change IT.  
]]></description>
			<content:encoded><![CDATA[<p>My EMC colleague, Edward Newman, CTO of the Infrastructure Consulting Services organization, recently started to <a title="Mr. Infrastructure" href="http://mrinfrastructure.com/" target="_blank">blog</a>. Edward is quietly conspiring behind the scenes to change IT. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=WBT3zHLsjDw:_S7YPgAuCzA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=WBT3zHLsjDw:_S7YPgAuCzA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=WBT3zHLsjDw:_S7YPgAuCzA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=WBT3zHLsjDw:_S7YPgAuCzA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=WBT3zHLsjDw:_S7YPgAuCzA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/WBT3zHLsjDw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/02/mr-infrastructure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/02/mr-infrastructure/</feedburner:origLink></item>
		<item>
		<title>Consuming CMIS WSDL in Visual Studio</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/PwItXXzKEzw/</link>
		<comments>http://craigrandall.net/archives/2009/01/consuming-cmis-wsdl-in-visual-studio/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 19:48:12 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[AtomPub]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://craigrandall.net/archives/2009/01/consuming-cmis-wsdl-in-visual-studio/</guid>
		<description><![CDATA[As indicated previously, I’ve uploaded a CMIS v0.5 sample to EDN. This sample works with EMC Documentum CMIS EA2.
This CMIS sample is intentionally similar to a sample produced previously for DFS 6.5 SP1. The intent is to help you compare and contrast one set of service contracts from the other. In doing so, please keep [...]]]></description>
			<content:encoded><![CDATA[<p>As indicated previously, I’ve uploaded a <strong><a title="Direct-to-WSDL CMIS services consumer sample" href="https://community.emc.com/docs/DOC-2688" target="_blank">CMIS v0.5 sample</a></strong> to <a title="EMC Developer Network" href="https://community.emc.com/community/edn" target="_blank">EDN</a>. This sample works with <a title="EMC Documentum CMIS EA2" href="http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/" target="_blank">EMC Documentum CMIS EA2</a>.</p>
<p>This CMIS sample is intentionally similar to a <a title="Consuming DFS WSDL in Visual Studio" href="http://craigrandall.net/archives/2009/01/consuming-dfs-wsdl-in-visual-studio/" target="_blank">sample</a> produced previously for DFS 6.5 SP1. The intent is to <em>help you compare and contrast one set of service contracts from the other</em>. In doing so, please keep in mind that CMIS is focused on basic library services for content management—common features across supporting repositories—while DFS is focused on the broader richness of the EMC Documentum ECM Platform.</p>
<p>It’s worth noting that in the case of its CMIS Repository service interaction, this sample EXE was also used by IBM during this week’s <a title="OASIS CMIS TC f2f" href="http://craigrandall.net/archives/2009/01/cmis-f2f/" target="_blank">TC meeting</a> against their P8-based WSDL endpoint—requiring only a binding configuration change (i.e. zero code changes).</p>
<p>I mentioned that the CMIS AtomPub service (introspection) document for EA2 is accessible as follows: &lt;code&gt;http://host:port/resources/cmis&lt;/code&gt;. Let’s say your EA2 installation is running at localhost on 8080, then a request for this document will return the following type of response:</p>
<pre class="csharpcode"><span class="kwrd">&lt;?</span><span class="html">xml</span> <span class="attr">version</span><span class="kwrd">=&quot;1.0&quot;</span> <span class="attr">encoding</span><span class="kwrd">=&quot;UTF-8&quot;</span> <span class="attr">standalone</span><span class="kwrd">=&quot;yes&quot;</span>?<span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">ns3:service</span> <span class="attr">xmlns</span><span class="kwrd">=&quot;http://www.w3.org/2005/Atom&quot;</span> <span class="attr">xmlns:ns2</span><span class="kwrd">=&quot;http://www.cmis.org/2008/05&quot;</span> <span class="attr">xmlns:ns3</span><span class="kwrd">=&quot;http://www.w3.org/2007/app&quot;</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">ns3:workspace</span> <span class="attr">ns2:id</span><span class="kwrd">=&quot;dfs&quot;</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>dfs<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns2:repositoryInfo</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:repositoryId</span><span class="kwrd">&gt;</span>dfs<span class="kwrd">&lt;/</span><span class="html">ns2:repositoryId</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:repositoryName</span><span class="kwrd">&gt;</span>dfs<span class="kwrd">&lt;/</span><span class="html">ns2:repositoryName</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:repositoryDescription</span><span class="kwrd">&gt;</span>dfs<span class="kwrd">&lt;/</span><span class="html">ns2:repositoryDescription</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:vendorName</span><span class="kwrd">&gt;</span>EMC<span class="kwrd">&lt;/</span><span class="html">ns2:vendorName</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:productName</span><span class="kwrd">&gt;</span>Documentum<span class="kwrd">&lt;/</span><span class="html">ns2:productName</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:productVersion</span><span class="kwrd">&gt;</span>6.5.0.033<span class="kwrd">&lt;/</span><span class="html">ns2:productVersion</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:rootFolderId</span><span class="kwrd">&gt;</span>0c00302180000105<span class="kwrd">&lt;/</span><span class="html">ns2:rootFolderId</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:capabilities</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityMultifiling</span><span class="kwrd">&gt;</span>true<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityMultifiling</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityUnfiling</span><span class="kwrd">&gt;</span>false<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityUnfiling</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityVersionSpecificFiling</span><span class="kwrd">&gt;</span>true<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityVersionSpecificFiling</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityPWCUpdateable</span><span class="kwrd">&gt;</span>false<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityPWCUpdateable</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityPWCSearchable</span><span class="kwrd">&gt;</span>false<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityPWCSearchable</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityAllVersionsSearchable</span><span class="kwrd">&gt;</span>true<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityAllVersionsSearchable</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityQuery</span><span class="kwrd">&gt;</span>both<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityQuery</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityJoin</span><span class="kwrd">&gt;</span>inneronly<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityJoin</span><span class="kwrd">&gt;</span>
        <span class="kwrd">&lt;</span><span class="html">ns2:capabilityFullText</span><span class="kwrd">&gt;</span>fulltextandstructured<span class="kwrd">&lt;/</span><span class="html">ns2:capabilityFullText</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;/</span><span class="html">ns2:capabilities</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">ns2:cmisVersionsSupported</span><span class="kwrd">&gt;</span>0.5<span class="kwrd">&lt;/</span><span class="html">ns2:cmisVersionsSupported</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns2:repositoryInfo</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns3:collection</span> <span class="attr">href</span><span class="kwrd">=&quot;http://localhost:8080/resources/cmis/repositories/dfs/objects/0c00302180000105/children&quot;</span> <span class="attr">ns2:collectionType</span><span class="kwrd">=&quot;root-children&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>root-children<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns3:collection</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns3:collection</span> <span class="attr">href</span><span class="kwrd">=&quot;http://localhost:8080/resources/cmis/repositories/dfs/objects/0c00302180000105/descendants&quot;</span> <span class="attr">ns2:collectionType</span><span class="kwrd">=&quot;root-descendants&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>root-descendants<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns3:collection</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns3:collection</span> <span class="attr">href</span><span class="kwrd">=&quot;http://localhost:8080/resources/cmis/repositories/dfs/types&quot;</span> <span class="attr">ns2:collectionType</span><span class="kwrd">=&quot;types-children&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>types-children<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns3:collection</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns3:collection</span> <span class="attr">href</span><span class="kwrd">=&quot;http://localhost:8080/resources/cmis/repositories/dfs/types&quot;</span> <span class="attr">ns2:collectionType</span><span class="kwrd">=&quot;types-descendants&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>types-descendants<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns3:collection</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns3:collection</span> <span class="attr">href</span><span class="kwrd">=&quot;http://localhost:8080/resources/cmis/repositories/dfs/checkedout&quot;</span> <span class="attr">ns2:collectionType</span><span class="kwrd">=&quot;checkedout&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>checkedout<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns3:collection</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ns3:collection</span> <span class="attr">href</span><span class="kwrd">=&quot;http://localhost:8080/resources/cmis/repositories/dfs/queries&quot;</span> <span class="attr">ns2:collectionType</span><span class="kwrd">=&quot;query&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">title</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span><span class="kwrd">&gt;</span>query<span class="kwrd">&lt;/</span><span class="html">title</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ns3:collection</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">ns3:workspace</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">ns3:service</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Your repository name and object identifiers will likely differ from the example references above, but hopefully you get the gist of the response payload.</p>
<p>Comparing the RESTful AtomPub binding to the SOAP binding in CMIS, one has to make two service requests to yield the same repository information (i.e. the block of data represented by &lt;code&gt;repositoryInfo&lt;/code&gt; above) as follows:</p>
<pre class="csharpcode">repositories = repositoryService.getRepositories();
<span class="kwrd">foreach</span> (cmisRepositoryEntryType repository <span class="kwrd">in</span> repositories)
{
  cmisAnyXml repositorySpecificInformation;
  <span class="kwrd">string</span> repositoryId = repository.repositoryID,
         repositoryRelationship,
         repositoryDescription,
         vendorName,
         productName,
         productVersion,
         rootFolderId,
         cmisVersionsSupported;
  cmisRepositoryCapabilitiesType capabilities;
  XmlAttribute[] AnyAttr;
  XmlElement[] Any;
  repositoryService.getRepositoryInfo(<span class="kwrd">ref</span> repositoryId, <span class="kwrd">out</span> repositoryRelationship,
         <span class="kwrd">out</span> repositoryDescription, <span class="kwrd">out</span> vendorName, <span class="kwrd">out</span> productName,
         <span class="kwrd">out</span> productVersion, <span class="kwrd">out</span> rootFolderId, <span class="kwrd">out</span> capabilities,
         <span class="kwrd">out</span> cmisVersionsSupported, <span class="kwrd">out</span> repositorySpecificInformation,
         <span class="kwrd">out</span> Any, <span class="kwrd">out</span> AnyAttr);
  . . .
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Comparing CMIS Repository service WSDL consumption with DFS Search service WSDL consumption, the same DFS-based consumer code is as follows:</p>
<pre class="csharpcode">Repository[] repositories = searchService.getRepositoryList(<span class="kwrd">null</span>);
<span class="kwrd">foreach</span> (Repository repository <span class="kwrd">in</span> repositories)
{
  . . .
}</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>To be clear, these examples are not provided for me to argue that one approach is better than another but rather to <em>show how approaches</em> <em>differ</em> based on domain model, use cases, etc.</p>
<p>I’ll leave it as an exercise for the reader to perform similar comparisons where query support and object support is concerned between DFS and CMIS. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Perhaps it’s also useful to comment on how WS-Security header information is passed to CMIS WSDL endpoints, since CMIS WSDL doesn’t currently declare headers explicitly in the service contract.</p>
<p>This sample injects WS-Security headers via app.config-based declaration (versus programmatically):</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">extensions</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">behaviorExtensions</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">add</span> <span class="attr">name</span><span class="kwrd">=&quot;usernameToken&quot;</span> <span class="attr">type</span><span class="kwrd">=&quot;SecurityMessageInspector.UsernameTokenBehaviorExtensionElement, SecurityMessageInspector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&quot;</span><span class="kwrd">/&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">behaviorExtensions</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">extensions</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;</span><span class="html">behaviors</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;</span><span class="html">endpointBehaviors</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">behavior</span> <span class="attr">name</span><span class="kwrd">=&quot;UsernameTokenBehavior&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">usernameToken</span> <span class="attr">username</span><span class="kwrd">=&quot;Administrator&quot;</span> <span class="attr">password</span><span class="kwrd">=&quot;emc&quot;</span> <span class="attr">passwordType</span><span class="kwrd">=&quot;PasswordText&quot;</span><span class="kwrd">/&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">behavior</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">endpointBehaviors</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">behaviors</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Right away, understand that this is a <em>sample</em>—you will likely want to take a more secure approach to managing user credentials. Certainly, if you employed this approach, you should employ a <em>secure</em> transport (i.e. SSL). Please see the sample solution’s README file for more details if a more programmatic approach is desired (with or without SSL).</p>
<p>There are other ways to &quot;wire&quot; WS-Security header creation and passing into applications. This particular sample takes a more subtle (less in-your-face) approach to accomplish this concern. Regardless, <em>implicit SOAP headers in a contract require extra coding on the part of a consumer</em>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=PwItXXzKEzw:oBkTqwg1hWI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=PwItXXzKEzw:oBkTqwg1hWI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=PwItXXzKEzw:oBkTqwg1hWI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=PwItXXzKEzw:oBkTqwg1hWI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=PwItXXzKEzw:oBkTqwg1hWI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/PwItXXzKEzw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/consuming-cmis-wsdl-in-visual-studio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/consuming-cmis-wsdl-in-visual-studio/</feedburner:origLink></item>
		<item>
		<title>OASIS CMIS TC f2f</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/GYdZypDS2AU/</link>
		<comments>http://craigrandall.net/archives/2009/01/cmis-f2f/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 23:50:52 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[f2f]]></category>
		<category><![CDATA[OASIS]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=864</guid>
		<description><![CDATA[Earlier today, John Newton posted a nice summary of what the OASIS CMIS Technical Committee (TC) accomplished this Monday through Wednesday. Anyone interested in the CMIS progress will want to read John&#8217;s post.
Earlier this week, EMC released its second Early Access bits that support both bindings in the current draft specification.
It was great to spend [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today, John Newton posted a nice <a title="CMIS Face to Face at Microsoft in Redmond" href="http://newton.typepad.com/content/2009/01/cmis-face-to-face-at-microsoft-in-redmond.html" target="_blank">summary</a> of what the OASIS CMIS Technical Committee (TC) accomplished this Monday through Wednesday. Anyone interested in the CMIS progress will want to read John&#8217;s post.</p>
<p>Earlier this week, EMC released its second <a title="EMC Documentum CMIS EA2" href="http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/" target="_blank">Early Access bits</a> that support both bindings in the current draft specification.</p>
<p>It was great to spend time focusing on technical issues and discussing proposals to resolve them. Sometimes there simply isn&#8217;t a substitute for working with others in the same room! It was also nice to catch up with prior colleagues&#8211;John and Dave Caruana&#8211;and establish new report with others in the Enterprise Content Management industry.</p>
<p>In particular, I appreciate the effort made by TC&#8217;ers from EMC and IBM to get our bits&#8211;both REST and SOAP&#8211;interoperating together. We did make demonstrable progress&#8211;however <em>difficult</em> the technical environment (i.e. lack of viable network onsite) proved to be. (I&#8217;ll post my WCF test client (CMIS WSDL endpoint consumer) separately.)</p>
<p>(By the way, if you ever test MTOM content transfer while outputting messages to a console window, think twice about logging all HTTP traffic. I think that folks in the lobby of building 40 thought my laptop was a bomb when I rushed to leave the TC meeting after I couldn&#8217;t get my computer alarm to silence or stop&#8211;until a hard power-down action was applied.  <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>Update 1/31/2009: Thanks to Dennis Hamilton, here is a group photo of those physically present at the TC meeting:</p>
<p align="middle"><a title="2009-01-28 OASIS CMIS TC Group Photograph" href="http://www.flickr.com/photos/orcmid/3242255998/in/set-72157606487285841/" target="_blank"><img src="http://craigrandall.net/cmis/090128-oasis-cmis-tc-at-f2f.jpg" alt="090128 OASIS CMIS TC group photo" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=GYdZypDS2AU:jfddxYQaiJo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=GYdZypDS2AU:jfddxYQaiJo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=GYdZypDS2AU:jfddxYQaiJo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=GYdZypDS2AU:jfddxYQaiJo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=GYdZypDS2AU:jfddxYQaiJo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/GYdZypDS2AU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/cmis-f2f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/cmis-f2f/</feedburner:origLink></item>
		<item>
		<title>EMC Documentum CMIS EA2</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/89TyKnS09Kg/</link>
		<comments>http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 06:56:23 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[AIIM]]></category>
		<category><![CDATA[AtomPub]]></category>
		<category><![CDATA[Early Access]]></category>
		<category><![CDATA[EDN Labs]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[iECM]]></category>
		<category><![CDATA[SOAP]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=852</guid>
		<description><![CDATA[Earlier today, the second Early Access (EA2) release of EMC Documentum ECM Platform support for the proposed CMIS standard (i.e. current v0.5 draft) was made publicly available via EDN Labs.
EA2 features support for both bindings in the proposed draft standard: SOAP and AtomPub.

CMIS EA2 WSDL endpoints are available as follows:http://host:port/services/cmis/service?wsdl(e.g. http://localhost:8080/services/cmis/RepositoryService?wsdl)
CMIS EA2 AtomPub service document [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today, the second Early Access (EA2) release of EMC Documentum ECM Platform support for the proposed <a title="CMIS - Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/" target="_blank">CMIS</a> standard (i.e. <a title="CMIS specification v0.5 (full)" href="http://community.emc.com/docs/DOC-1605" target="_blank">current v0.5 draft</a>) was made publicly available via <a title="EDN Labs: Content Management Interoperability Services" href="https://community.emc.com/community/labs/cmis/" target="_blank">EDN Labs</a>.</p>
<p>EA2 features support for <em>both</em> bindings in the proposed draft standard: <a title="CMIS specification v0.5 - SOAP binding" href="https://community.emc.com/docs/DOC-1584" target="_blank">SOAP</a> and <a title="CMIS specification v0.5 - AtomPub binding" href="https://community.emc.com/docs/DOC-1583" target="_blank">AtomPub</a>.</p>
<ul>
<li>CMIS EA2 WSDL endpoints are available as follows:<br /><code>http://host:port/services/cmis/service?wsdl</code><br />(e.g. <code>http://localhost:8080/services/cmis/RepositoryService?wsdl</code>)</li>
<li>CMIS EA2 AtomPub service document is available as follows:<br /><code>http://host:port/resources/cmis</code></li>
<li>CMIS EA2 WADL for the AtomPub resources (not covered by the CMIS specification):<br /><code>http://host:port/resources/application.wadl</code></li>
</ul>
<p>You&#8217;ll find more deployment details in the associated <a title="EMC Documentum CMIS EA2 Deployment Guide" href="https://community.emc.com/docs/DOC-2086" target="_blank">guide</a>.</p>
<p>EMC is committed to CMIS and the standards process. Just as there was an EA1 before this update, there will be subsequent EA releases in the future. Hopefully by making CMIS support available to you as the proposed standard develops and matures, you will consider exercising the draft bindings and submitting your feedback. Thanks in advance!</p>
<p>Update 1/27/2008: Pie (Laurence Hart) has <a title="AIIM’s iECM Committee, Validating CMIS" href="http://wordofpie.wordpress.com/2009/01/26/aiims-iecm-committee-validating-cmis/" target="_blank">posted</a> about AIIM&#8217;s intention to demonstrate CMIS-based interoperability at its upcoming Expo via a prototype. EMC is looking forward to participating in this effort, which will provide a nice proof point for ECM customers, partners and vendors all.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=89TyKnS09Kg:yzO3tzNDZj4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=89TyKnS09Kg:yzO3tzNDZj4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=89TyKnS09Kg:yzO3tzNDZj4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=89TyKnS09Kg:yzO3tzNDZj4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=89TyKnS09Kg:yzO3tzNDZj4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/89TyKnS09Kg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/emc-documentum-cmis-ea2/</feedburner:origLink></item>
		<item>
		<title>Big Men on Content</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/7ypkeOygxBs/</link>
		<comments>http://craigrandall.net/archives/2009/01/big-men-on-content/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 01:17:30 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[BMoC]]></category>
		<category><![CDATA[CMSWire]]></category>
		<category><![CDATA[colleagues]]></category>
		<category><![CDATA[EMC]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=849</guid>
		<description><![CDATA[Hopefully you&#8217;ve already been reading the musings of Lee Dallas and Marko Sillanpaa over at their Big Men on Content blog. If not, I recommend that you give them a read; I do, regularly.
Anyway, this post is a belated acknowledgment of the fact that both Lee and Marko are EMC colleagues now. Marko joined EMC [...]]]></description>
			<content:encoded><![CDATA[<p>Hopefully you&#8217;ve already been reading the musings of Lee Dallas and Marko Sillanpaa over at their <a title="Big Men on Content" href="http://bmoc.wordpress.com/" target="_blank">Big Men on Content</a> blog. If not, I recommend that you give them a read; I do, regularly.</p>
<p>Anyway, this post is a belated acknowledgment of the fact that both Lee and Marko are <em>EMC colleagues</em> now. Marko joined EMC last quarter and is focused on enabling strategic SI&#8217;s to develop solutions on top of the CMA platforms. Marko also <a title="CMSwire search results for Marko" href="http://www.cmswire.com/s/results/?cx=006171070544741918777%3Avcodaewypvc&#038;q=marko&#038;cof=FORID%3A9#965" target="_blank">writes for CMSWire</a>. Although not a <em>package deal</em>&#8211;&#8221;might have exceeded weight limitations,&#8221; to quote Marko*&#8211;, Lee joined around the same time and is part of the same group supporting our system integration partners.</p>
<p>So, welcome Lee and Marko to the EMC team!</p>
<p>* Reference the <a title="Big Men on Content" href="http://bmoc.wordpress.com/" target="_blank">BMoC</a> tagline and about panel for context, please. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=7ypkeOygxBs:jWzq1P5c67g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=7ypkeOygxBs:jWzq1P5c67g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=7ypkeOygxBs:jWzq1P5c67g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=7ypkeOygxBs:jWzq1P5c67g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=7ypkeOygxBs:jWzq1P5c67g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/7ypkeOygxBs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/big-men-on-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/big-men-on-content/</feedburner:origLink></item>
		<item>
		<title>Speaking of CMIS</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/P0NMpuRPZ9o/</link>
		<comments>http://craigrandall.net/archives/2009/01/speaking-of-cmis/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 16:14:55 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content management]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[BMoC]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[EMC]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=843</guid>
		<description><![CDATA[&#8230;there&#8217;s a discussion over at Big Men on Content.
]]></description>
			<content:encoded><![CDATA[<p>&#8230;there&#8217;s a discussion over at <a title="Delivering Integrated ECM" href="http://bmoc.wordpress.com/2009/01/14/delivering-integrated-ecm/" target="_blank">Big Men on Content</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=P0NMpuRPZ9o:5N6hELy9BTc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=P0NMpuRPZ9o:5N6hELy9BTc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=P0NMpuRPZ9o:5N6hELy9BTc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=P0NMpuRPZ9o:5N6hELy9BTc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=P0NMpuRPZ9o:5N6hELy9BTc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/P0NMpuRPZ9o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/speaking-of-cmis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/speaking-of-cmis/</feedburner:origLink></item>
		<item>
		<title>Consuming DFS WSDL in Visual Studio</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/Vftzy-RBq9I/</link>
		<comments>http://craigrandall.net/archives/2009/01/consuming-dfs-wsdl-in-visual-studio/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 06:04:45 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Content management]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ to XML]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=830</guid>
		<description><![CDATA[Earlier today I posted to EDN a new sample project that demonstrates consuming DFS web services directly from their WSDL in a Visual Studio 2008 environment. Right up front, I want to credit my colleague John Sweeney, who really should start blogging, with providing the original work contained in this sample. My subsequent contribution was [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I posted to <a title="EMC Developer Network" href="https://community.emc.com/community/edn" target="_blank">EDN</a> a <a title="EDN: Direct-to-WSDL DFS services consumer sample" href="https://community.emc.com/docs/DOC-2604" target="_blank">new sample project</a> that demonstrates consuming <a title="Documentum Foundation Services" href="http://craigrandall.net/archives/2007/05/documentum-foundation-services/" target="_blank">DFS</a> web services directly from their WSDL in a Visual Studio 2008 environment. Right up front, I want to credit my colleague John Sweeney, <em>who really should start blogging</em>, with providing the original work contained in this sample. My subsequent contribution was mostly UI/UX-related. Thanks, John!</p>
<p>After downloading and extracting the sample to your local development machine, open the solution in Visual Studio 2008. The default code assumes that you&#8217;re running the DFS web services locally (i.e. IP 127.0.0.1 and port 8080). You should, of course, modify the IP address and port to match your particular development environment.</p>
<p><img alt="Main sample UI" src="http://craigrandall.net/dfs/DFSWSDLConsumer-main-form.gif" /></p>
<p>The main intent of this sample is to demonstrate various ways to authenticate via DFS. It’s worth noting that this sample doesn’t cover single sign-on (SSO) support in DFS, nor does it cover WS-Security header-based authentication. Good demos to be certain…</p>
<p>As the user interface (UI) above tries to clearly state upfront, content repository (aka Docbase) name cannot be null or empty, regardless of authentication approach. Given authentication via ServiceContext header, user name and password cannot be null or empty. Given authentication via ContextRegistry runtime service, when token is null or empty, user name and password cannot be null or empty, and when user name and password are both null or empty, token cannot be null or empty.</p>
<p>One thing that is still a bit obscure in the current UI is that authentication via DFS can be a two-step or one-step process, depending on the situation. If you choose &quot;Via ContextRegistry…&quot; and a Context Registry token isn’t provided to DFS, two runtime service invocations will be made. In all other cases, there is one service invocation.</p>
<p>Assuming that your connection details are valid given your authentication approach, this sample will (a) retrieve a repository list, (b) retrieve cabinets, and (c) retrieve content (i.e. transfer MenuItemTemplate.ini to your desktop).</p>
<p>A previous direct-to-WSDL DFS consumer sample I <a title="Part 2 of 2: DFS Object service consumer" href="http://craigrandall.net/archives/2008/07/dfs-object-service-consumer-2b/" target="_blank">posted</a>, targeted .NET 3.0 and WCF &quot;v1.&quot; This sample targets .NET 3.5 and WCF &quot;v2&quot; instead, along with support for Silverlight 2. It accomplishes this change via LINQ to XML (e.g. leverages System.Xml.Linq.XDocument instead of System.Xml.XmlDocument).</p>
<p>If you need to target this sample at .NET 3.0, in addition to adjusting the project build properties, removing the project reference to the System.Xml.Linq.dll assembly, and removing the System.Xml.Linq namespace declaration in ServiceContextHeader.cs, you’ll need to change the relevant code within OnWriteHeaderContents. For example:</p>
<pre class="csharpcode">  XDocument doc = <span class="kwrd">null</span>;
  <span class="kwrd">using</span> (StringWriter sw = <span class="kwrd">new</span> StringWriter(CultureInfo.CurrentCulture))
  {
      XmlSerializer xs = <span class="kwrd">new</span> XmlSerializer(<span class="kwrd">typeof</span>(ServiceContext));
      xs.Serialize(sw, serviceContext);
      doc = XDocument.Load(<span class="kwrd">new</span> StringReader(sw.ToString()));
  }</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>would become:</p>
<pre class="csharpcode">  XmlDocument doc = <span class="kwrd">null</span>;
  <span class="kwrd">using</span> (StringWriter sw = <span class="kwrd">new</span> StringWriter(CultureInfo.CurrentCulture))
  {
      XmlSerializer xs = <span class="kwrd">new</span> XmlSerializer(<span class="kwrd">typeof</span>(ServiceContext));
      xs.Serialize(sw, serviceContext);
      doc = XmlDocument.LoadXml(<span class="kwrd">new</span> StringReader(sw.ToString()));
  }</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>etc.</p>
<p>Although, it&#8217;s not currently employed in the sample, there is also code to add a ContentTransferProfile to the ServiceContext header. </p>
<p>As always, consult the DFS Developer Guide for complete details on everything that may be passed in the ServiceContext header.</p>
<p>I do expect that this sample will be incorporated into the DFS SDK and DFS technical publications content; however, I wanted to get this into your hands sooner rather than later. Cheers&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=Vftzy-RBq9I:6BA6Gh6sCb4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=Vftzy-RBq9I:6BA6Gh6sCb4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=Vftzy-RBq9I:6BA6Gh6sCb4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=Vftzy-RBq9I:6BA6Gh6sCb4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=Vftzy-RBq9I:6BA6Gh6sCb4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/Vftzy-RBq9I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/consuming-dfs-wsdl-in-visual-studio/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/consuming-dfs-wsdl-in-visual-studio/</feedburner:origLink></item>
		<item>
		<title>Simplexity</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/wFPcFfA80D0/</link>
		<comments>http://craigrandall.net/archives/2009/01/simplexity/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 21:15:33 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Non-fiction]]></category>
		<category><![CDATA[complexity research]]></category>
		<category><![CDATA[pop science]]></category>
		<category><![CDATA[simplexity]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=800</guid>
		<description><![CDATA[After reading Simplexity: Why Simple Things Become Complex (and How Complex Things Can Be Made Simple), I find myself taking pause. It&#8217;s harder than usual to coalesce my thoughts.

This book is an easy enough read, but it&#8217;s also a bit disconnected. As author Jeffrey Kluger suggests, &#8220;simplicity and complexity may masquerade as each other,&#8221; but [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://www.amazon.com/gp/product/1401303013?ie=UTF8&#038;tag=crasmus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1401303013">Simplexity: Why Simple Things Become Complex (and How Complex Things Can Be Made Simple)</a><img src="http://www.assoc-amazon.com/e/ir?t=crasmus-20&#038;l=as2&#038;o=1&#038;a=1401303013" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, I find myself taking pause. It&#8217;s harder than usual to coalesce my thoughts.</p>
<p align="middle"><img src="http://craigrandall.net/images/complexity-figure.jpg" alt="Complexity figure" /></p>
<p>This book is an easy enough read, but it&#8217;s also a bit disconnected. As author <a title="The Art of Simplexity" href="http://www.time.com/time/printout/0,8816,1814175,00.html" target="_blank">Jeffrey Kluger suggests</a>, &#8220;simplicity and complexity may masquerade as each other,&#8221; but I&#8217;m still left feeling like the mask hasn&#8217;t been adequately identified or removed. Perhaps I expected too much from the text. After all, as the author points out, complexity research is still a young scientific pursuit&#8211;an unsettled (formative) field. If the science is young, the pop science equivalent seems all the more premature.</p>
<p>I do have a few take-aways to share from my read, though:</p>
<ul>
<li>View a conference as <em>a group of people exchanging information and insights, keynoting ideas and tempering whatever action is eventually taken by exploring lots of options first</em>. Conferences are indeed great opportunities for milling and annealing&#8211;<em>it&#8217;s the networking, stupid</em>! Thanks to <a href="http://simonguest.com/blogs/smguest/default.aspx" target="_blank">Simon Guest</a> and his vision to bring <a title="What is open space?" href="http://www.openspaceworld.org/cgi/wiki.cgi?AboutOpenSpace" target="_blank">open space</a> to events like the <a href="http://mvp.support.microsoft.com/gp/MVPsummit">Microsoft MVP Global Summit</a> and the Microsoft Strategic Architect Forum (SAF), I&#8217;m surprised that more conferences don&#8217;t feature <em>open space</em> more prominently.</li>
<li>With respect to social signaling, signaling abilities are influenced from building group connections. For example, a signaler you know well becomes more persuasive than a signaler you don&#8217;t. The amount of time your spend with other individuals changes their ability to influence you and your ability to influence them. (I realize that this take-away is rather obvious, but it bears (personal) repeating.)</li>
<li>Referring to <a title="Innovation Versus Complexity: What Is Too Much of a Good Thing?" href="http://www.harvardbusiness.org/b02/en/search/searchResults.jhtml;jsessionid=HSPNN4L3ZVYDEAKRGWCB5VQBKE0YOISW?Ma=1&#038;sid=2D35IBHW3LYEKAKRGWDR5VQBKE0YIISW&#038;userView=GENERAL&#038;N=514132+4294963587" target="_blank">work by Mark Gottfredson and Keith Aspinall</a>, I appreciated becoming aware of a so-called Model T analysis to find one&#8217;s <a title="Finding your innovation fulcrum" href="http://www.bain.com/bainweb/publications/publications_detail.asp?id=23848" target="_blank">innovation fulcrum</a> and <a title="24/7 Innovation = Hype?" href="http://ideas4innovation.blogspot.com/2007/01/247-innovation-hype.html" target="_blank">stay perched there</a> upon the respective complexity arc.</li>
<li>Having seen the power of strongly held beliefs myself, I appreciated the following turn of words in evidence of complexity confusion: &#8220;The entrenched anthropology of the place, however, turned out to be more powerful than the new lessons.&#8221;</li>
<li>&#8220;A bunch of isolated [sports] conferences is like a bunch of isolated economies. If you don&#8217;t allow them to mix, they stay primitive because you have no way of comparing them.&#8221; -<a title="Massey Ratings" href="http://www.masseyratings.com/" target="_blank">Ken Massey</a> (For example, will <a title="CMIS - Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/" target="_blank">CMIS</a> impact the ECM industry in ways similar to inter-league play in <a title="Major League Baseball" href="http://www.mlb.com/" target="_blank">MLB</a>?)</li>
<li>&#8220;We pride ourselves on being the only species that understands the concept of risk, yet we have a confounding habit of worrying about mere possibilities while ignoring probabilities, building barricades against perceived dangers while leaving ourselves exposed to real ones.&#8221; (So, what do you confuse for a snooze alarm that should be a wake-up call, or vice versa? What is only temporarily agitating that deserves longer-lasting follow-through? What is over- or under-thought?)</li>
<li>&#8220;The nature of people who love electrons and bits is very different from the nature of people who love atoms.&#8221;</li>
<li>&#8220;If you have to ask what jazz is, you&#8217;ll never know.&#8221; -<a href="http://en.wikipedia.org/wiki/Louis_Armstrong" target="_blank">Louis Armstrong</a></li>
</ul>
<p>Toward the end of his work, Mr. Kluger states: &#8220;Understanding the hard science of a thing is not always the same as being able to make any use of that knowledge.&#8221; I still need to understand the hard science of complexity (e.g. go beyond software engineering&#8217;s <em>essential complexity versus accidental complexity</em> debates). <em>Simplexity</em> wasn&#8217;t my ticket to this performance.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=wFPcFfA80D0:MWRVmVcVtGs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=wFPcFfA80D0:MWRVmVcVtGs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=wFPcFfA80D0:MWRVmVcVtGs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=wFPcFfA80D0:MWRVmVcVtGs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=wFPcFfA80D0:MWRVmVcVtGs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/wFPcFfA80D0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/simplexity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/simplexity/</feedburner:origLink></item>
		<item>
		<title>An MVP again</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/SmbmjxglGys/</link>
		<comments>http://craigrandall.net/archives/2009/01/an-mvp-again/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 18:03:29 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[award]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVP]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=809</guid>
		<description><![CDATA[Thank you, Microsoft, Simon and Miha, for awarding me Solutions Architect MVP status once again. I&#8217;m especially grateful that you listened to this group of architects and worked with us to bring this program back (even better!) after a relatively brief hiatus.
]]></description>
			<content:encoded><![CDATA[<p>Thank you, Microsoft, <a title="Simon Guest" href="http://simonguest.com/blogs/smguest/default.aspx" target="_blank">Simon</a> and <a title="<br />
Miha Kralj" href="http://www.linkedin.com/in/mihak" target="_blank">Miha</a>, for awarding me <a title="Solution Architect MVPs" href="https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&#038;competency=Solutions+Architect" target="_blank">Solutions Architect MVP</a> status once again. I&#8217;m especially grateful that you listened to this group of architects and worked with us to bring this program back (even better!) after a relatively brief hiatus.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=SmbmjxglGys:817V9pxbj_8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=SmbmjxglGys:817V9pxbj_8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=SmbmjxglGys:817V9pxbj_8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=SmbmjxglGys:817V9pxbj_8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=SmbmjxglGys:817V9pxbj_8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/SmbmjxglGys" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2009/01/an-mvp-again/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2009/01/an-mvp-again/</feedburner:origLink></item>
		<item>
		<title>This year blogging</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/b_l8_VNQcfA/</link>
		<comments>http://craigrandall.net/archives/2008/12/this-year-blogging/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 18:57:56 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Site]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[discipline]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=787</guid>
		<description><![CDATA[Not including this post, I posted 50 blogs this year, which received 67 comments. Clearly, I&#8217;m not prolific (!), but I&#8217;m happy to see more comments than posts, and I&#8217;m content with roughly a post-a-week average for 2008. (For those with a young, active families and with jobs that aren&#8217;t centrally about blogging, I&#8217;d love [...]]]></description>
			<content:encoded><![CDATA[<p>Not including this post, I posted 50 blogs this year, which received 67 comments. Clearly, I&#8217;m not prolific (!), but I&#8217;m happy to see more comments than posts, and I&#8217;m content with roughly a post-a-week average for 2008. (For those with a young, active families and with jobs that aren&#8217;t centrally about blogging, I&#8217;d love to know how pull-off a higher posting average without impacting your quality of life and quality of work. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>Blogging is a discipline, and it&#8217;s something I intend to continue pursuing in the coming year. So, with that in mind, here is how things online ranked here in 2008:</p>
<p><em>Top 10 posts written in 2008</em></p>
<ol>
<li><a title="DFS tutorial" href="http://craigrandall.net/archives/2008/01/dfs-tutorial/">DFS tutorial</a></li>
<li><a title="CMIS - Content Management Interoperability Services" href="http://craigrandall.net/archives/2008/09/cmis/">CMIS &#8211; Content Management Interoperability Services</a> &#8211; received the most comments this year</li>
<li><a title="DFS best practices" href="http://craigrandall.net/archives/2008/05/dfs-best-practices/">DFS best practices</a></li>
<li><a title="Download PDC2008 presentations" href="http://craigrandall.net/archives/2008/10/download-pdc2008-presentations/">Download PDC2008 presentations</a> &#8211; i.e. essentially a public service post</li>
<li><a title="Blue Ocean Strategy" href="http://craigrandall.net/archives/2008/01/blue-ocean-strategy/">Blue Ocean Strategy</a> &#8211; i.e. one of <a title="Book reviews" href="http://craigrandall.net/books/#Books_Reviewed">my book reviews</a> (and not <a title="The Big Switch" href="http://craigrandall.net/archives/2008/08/the-big-switch/">the one I expected</a> either)</li>
<li><a title="Documentum 6.5 with services in mind" href="http://craigrandall.net/archives/2008/07/documentum-65-with-services-in-mind/">Documentum 6.5 with services in mind</a></li>
<li><a title="DFS Object service consumer #1" href="http://craigrandall.net/archives/2008/07/dfs-object-service-consumer-1/">DFS Object service consumer #1</a></li>
<li><a title="DFS Object service consumer #2a" href="http://craigrandall.net/archives/2008/07/dfs-object-service-consumer-2a/">DFS Object service consumer #2a</a> &#8211; second most comments this year</li>
<li><a title="DFS Object service consumer #2b" href="http://craigrandall.net/archives/2008/07/dfs-object-service-consumer-2b/">DFS Object service consumer #2b</a></li>
<li><a title="DFC, Microsoft developers, .NET and DFC PIA" href="http://craigrandall.net/archives/2008/06/dfc-msft-devs-dotnet-and-dfc-pia/">DFC, Microsoft developers, .NET and DFC PIA</a> &#8211; i.e. a post about pre-DFS development using Documentum in a Microsoft environment</li>
</ol>
<p><em>Top 10 posts (ever)</em></p>
<ol>
<li><a title="Documentum Foundation Services" href="http://craigrandall.net/archives/2007/05/documentum-foundation-services/">Documentum Foundation Services</a> (DFS)</li>
<li>DFS tutorial (see above)</li>
<li>CMIS &#8211; Content Management Interoperability Services (see above)</li>
<li><a title="Ruby coding conventions, standards and best practices" href="http://craigrandall.net/archives/2006/09/ruby-coding-stds-etc/">Ruby coding conventions, standards and best practices</a></li>
<li><a title="Spell checking Java source code" href="http://craigrandall.net/archives/2007/10/spell-checking-java-source-code/">Spell checking Java source code</a></li>
<li><a title="Great NASA observatories" href="http://craigrandall.net/archives/2004/01/great-nasa-observatories/">Great NASA observatories</a></li>
<li>DFS best practices (see above)</li>
<li>Download PDC2008 presentations (see above)</li>
<li><a title="The Starbucks Experience" href="http://craigrandall.net/archives/2007/02/the-starbucks-experience/">The Starbucks Experience</a>- i.e. another <a title="Book reviews" href="http://craigrandall.net/books/#Books_Reviewed">book review</a> of mine</li>
<li><a title="What’s new in DFS 6.0 SP1" href="http://craigrandall.net/archives/2007/12/whats-new-in-dfs-60-sp1/">What’s new in DFS 6.0 SP1</a></li>
</ol>
<p><em>Top three pages in 2008</em></p>
<ol>
<li><a title="Music" href="http://craigrandall.net/music/">Music</a> &#8211; i.e. over 3x the number of visits versus #2</li>
<li><a title="About" href="http://craigrandall.net/about/">About</a></li>
<li><a title="Books" href="http://craigrandall.net/books/">Books</a></li>
</ol>
<p>As 2008 comes to a close, I hope that you have a safe and hopeful new year.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=b_l8_VNQcfA:Hh4vHPX28t8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=b_l8_VNQcfA:Hh4vHPX28t8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=b_l8_VNQcfA:Hh4vHPX28t8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=b_l8_VNQcfA:Hh4vHPX28t8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=b_l8_VNQcfA:Hh4vHPX28t8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/b_l8_VNQcfA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2008/12/this-year-blogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2008/12/this-year-blogging/</feedburner:origLink></item>
		<item>
		<title>Outliers</title>
		<link>http://feedproxy.google.com/~r/craigrandall/~3/5Yt4aopbMQI/</link>
		<comments>http://craigrandall.net/archives/2008/12/outliers/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 14:28:46 +0000</pubDate>
		<dc:creator>Craig Randall</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Lessons]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Non-fiction]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[deliberate practice]]></category>
		<category><![CDATA[Gladwell]]></category>
		<category><![CDATA[Hofstede]]></category>
		<category><![CDATA[legacy]]></category>
		<category><![CDATA[opportunity]]></category>
		<category><![CDATA[outlier]]></category>
		<category><![CDATA[Outliers]]></category>
		<category><![CDATA[PDI]]></category>
		<category><![CDATA[success]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://craigrandall.net/?p=759</guid>
		<description><![CDATA[Since reading Blink: The Power of Thinking without Thinking and The Tipping Point: How Little Things Can Make a Big Difference, I&#8217;ve been looking forward to Malcolm Gladwell&#8217;s next book. Outliers: The Story of Success didn&#8217;t disappoint, and I recommend reading it yourself.
As the book&#8217;s title suggests, Gladwell&#8217;s text is about success and outliers; however, [...]]]></description>
			<content:encoded><![CDATA[<p>Since reading <a title=""Extraordinary power of thin-slicing href="http://craigrandall.net/archives/2005/03/extraordinary-power-of-thin-slicing/">Blink: The Power of Thinking without Thinking</a> and <a title="The possibility of sudden, significant change" href="http://craigrandall.net/archives/2005/04/the-possibility-of-sudden-significant-change/">The Tipping Point: How Little Things Can Make a Big Difference</a>, I&#8217;ve been looking forward to <a href="http://gladwell.com" target="_new">Malcolm Gladwell</a>&#8217;s next book. <a href="http://www.amazon.com/gp/product/0316017922?ie=UTF8&#038;tag=crasmus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0316017922">Outliers: The Story of Success</a><img src="http://www.assoc-amazon.com/e/ir?t=crasmus-20&#038;l=as2&#038;o=1&#038;a=0316017922" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> didn&#8217;t disappoint, and I recommend reading it yourself.</p>
<p>As the book&#8217;s title suggests, Gladwell&#8217;s text is about success and outliers; however, he engages the reader from the get-go by starting with a definition of outlier expressly to follow-up by quickly suggesting a concrete redefinition of what is truly an outlier and what determines success. Gladwell challenges the reader to think in less-conventional terms (e.g. thinking about health in terms of community&#8211;beyond just the individual): &#8220;&#8230;there is something profoundly wrong with the way we make sense of success.&#8221;</p>
<p>Outliers has two parts, focused on opportunity and legacy, respectively. Part one emphasizes &#8220;from-ness&#8221; (i.e. from <em>where</em> (e.g. birthplace), from <em>when</em> (e.g. time, era, norms), from <em>how</em> (e.g. culture, legacy), etc.). In doing so, part one indicates by one example after another why <em>merely personal explanations of success don&#8217;t work</em>.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Where are you from?</p>
<blockquote><p>Do you see the consequences of the way we have chosen to think about success? Because we so profoundly personalize success, we miss opportunities to lift others onto the top rung. We make rules that frustrate achievement We prematurely write off people as failures. We are too much in awe of the those who succeed and far too dismissive of those who fail. And, most of all, we become much too passive. We overlook just how large a role we all play&#8211;and by &#8216;we&#8217; I mean society&#8211;in determining who makes it and who doesn&#8217;t.</p></blockquote>
<p>Gladwell states, &#8220;Achievement is talent plus preparation.&#8221; He then goes on to uncover patterns of achievement and underachievement as well as patterns of encouragement and discouragement. He focuses on the work ethic of those who are purposeful, single-minded, intentional&#8211;who achieve success by working much, much harder.</p>
<ul>
<li>Adversity presenting itself as opportunity</li>
<li>Developing skills amidst obscurity</li>
<li><em>Meaningful</em> &#8211; complexity, autonomy and a relationship between effort and reward in doing creative work</li>
<li>&#8220;Hard work is a prison sentence only if it does not have meaning.&#8221;</li>
</ul>
<p>For example, the &#8220;10,000 hour rule&#8221; is discussed (i.e. its typically takes 10K hours of <em>deliberate practice</em> to develop true expertise and world-class mastery). The point of the discussion is not to admire those who earn such mastery as much as it is to understand the kinds of obstacles most of us encounter in the pursuit of such commitment. Furthermore, it concerns the <em>creation of (more) equal opportunities for practicing</em> in order to reach greater common potential: &#8220;Practice isn&#8217;t the thing you do once you&#8217;re good. It&#8217;s the thing you do that makes you good.&#8221;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Are you regularly practicing what your core profession requires<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(e.g. modeling, design, coding, testing, writing)?</p>
<p><strong>&#8220;Success arises out of a steady accumulation of advantages.&#8221;</strong><br />
&#8220;Extraordinary achievement is less about talent than it is about opportunity.&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Talent: intellect, &#8220;general intelligence,&#8221; innate ability<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opportunity: imagination, savvy, &#8220;practical intelligence,&#8221; surrounding<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;community, family background, demographics, virtues and values<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(e.g. frugality, initiative, sacrifice)</p>
<p>&#8220;General intelligence&#8221; and &#8220;practical intelligence&#8221; are orthogonal (i.e. presence of one doesn&#8217;t imply the presence of the other); therefore, keep clear and separate (i.e. don&#8217;t confuse one for the other).</p>
<p>Part two, moves from opportunity to legacy and starts by focusing on cultural legacies (e.g. a culture of honor, where reputation is of foremost concern). The focus becomes about teamwork and communication (e.g. &#8220;mitigated speech&#8221;). For example, understanding cultural legacy as a way to effectively combat mitigation (i.e. developing clearer and more assertive communication where both transmitter and receiver are not a afraid to speak up or to speak straight).</p>
<p>To bring cultural legacy into better focus, Gladwell leverages the <a title="Geert Hofstede™ Cultural Dimensions" href="http://www.geert-hofstede.com/" target="_blank">Cultural Dimensions work of Geert Hofstede</a> (e.g. IDV &#8211; Individualism (i.e. what Gladwell refers to as the <em>individualism-collectivism scale</em>), UAI &#8211; Uncertainty Avoidance Index, PDI &#8211; Power Distance Index). For example, the <a title="Hofstede Dimensions for the United States" href="http://www.geert-hofstede.com/hofstede_united_states.shtml" target="_blank">United States</a> has the highest IDV score and the fifth-lowest PDI score.</p>
<p>Mitigated speech and high PDI influence communication, especially when the person speaking (transmitter) and the person listening (receiver) have different orientation. In Western cultures, communication tends to be transmitter-oriented (i.e. speaker is responsible to communicate ideas clearly and unambiguously). However, in Asian cultures, communication tends to be receiver-oriented (i.e. listener is responsible to make sense of what is being said). For this reason, I believe that communication is both my responsibility and also a two-way discipline (i.e. if you don&#8217;t understand something speak up&#8211;I&#8217;m trying my best to be clear). It&#8217;s why I prefer more interactive sessions at conferences, etc.</p>
<p>As a mathematician by training, I was fascinated to learn that, as human beings, we store digits in a memory loop that runs for about two seconds. When you compare the fairly transparent Asian number system with the highly irregular number system in English, it starts to become clearer how English-speaking (English-thinking) student accumulate a disadvantage. <a title="Can language and memory explain why Asians are good at math?" href="http://www.stoweboyd.com/mind/2008/11/can-language-an.html" target="_blank">Stowe Boyd goes into more detail of Gladwell&#8217;s treatment of this cultural legacy</a>. (I need to start thinking <em>si</em> instead of <em>four</em>, <em>qi</em> instead of <em>seven</em>, etc. <img src='http://craigrandall.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>Cultural legacy suggests to me that it would be naive to apply an American timeline to the future development of, for example, China. Rice paddies aren&#8217;t fields of corn or wheat (i.e. skill-oriented versus mechanically-oriented farming tradition). So why should it take the Chinese the same amount of time to &#8220;modernize&#8221; as it did take Americans?</p>
<p>You&#8217;ve likely heard or seen the business cliché &#8220;Your attitude determines your altitude.&#8221; Well, <em>Outliers</em> posits that success is not much about ability as it is about attitude. That is, success is a function of persistence, doggedness and willingness to work hard. Success is more about out-learning than it is about being smarter. School <em>works</em>, but there just isn&#8217;t enough of it (e.g. 180 days versus 243 days&#8211;American versus Japanese school year). Or said another way, school isn&#8217;t the problem as much as summer vacation may be.</p>
<p>In closing:</p>
<ul>
<li>&#8220;Outliers are those who have been given opportunities&#8211;and who have had the strength and presence of mind to seize them.&#8221;</li>
<li><strong>Success is a gift.</strong></li>
<li>&#8220;To build a better world we need to replace the patchwork of lucky breaks and arbitrary advantages that today determine success&#8211;the fortunate birth date and the happy accidents of history&#8211;with a society that provides opportunities for all.&#8221;</li>
</ul>
<p>P.S. I recently began a major revision of my <a href="http://craigrandall.net/books/">Books</a> page. You can now more easily see other <a href="http://craigrandall.net/books/#Books_Reviewed">book reviews</a> I&#8217;ve posted herein. Soon you&#8217;ll be able to see what else is in my book library (i.e. just the <a href="http://craigrandall.net/books/#Books_Business">business-related</a> or <a href="http://craigrandall.net/books/#Books_Software">software-related</a> non-fiction therein). Why? Well, if you&#8217;re nearby and you see something of interest, please ask to borrow books of interest. If you&#8217;re not (i.e. regardless of your location to me), I&#8217;m hoping that opening up my library will help to solicit feedback as to what the especially good reads are (and why). I typically have multiple books queued up to read; so, knowing what should be top-of-list from my readers would be welcome feedback. Cheers&#8230;</p>
<p>Update 12/26/2008: Today I was able to get to watching the second part of Charlie Rose&#8217;s show on performance where, after interviewing Malcolm Gladwell in the first half, he interviewed the author of <a href="http://www.amazon.com/gp/product/1591842247?ie=UTF8&#038;tag=crasmus-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1591842247">Talent Is Overrated: What Really Separates World-Class Performers from Everybody Else</a><img src="http://www.assoc-amazon.com/e/ir?t=crasmus-20&#038;l=as2&#038;o=1&#038;a=1591842247" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, Geoff Colvin. Mr. Colvin referenced the little known body of scientific work concerning <em>deliberate practice</em>, much like Mr. Gladwell drew upon it in Outliers. I appreciated Mr. Colvin&#8217;s belief, based on conversation with this scientific community, that the research frontier here is <em>parenting</em>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/craigrandall?a=5Yt4aopbMQI:G9H2B3dp5Eg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=5Yt4aopbMQI:G9H2B3dp5Eg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=5Yt4aopbMQI:G9H2B3dp5Eg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/craigrandall?i=5Yt4aopbMQI:G9H2B3dp5Eg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/craigrandall?a=5Yt4aopbMQI:G9H2B3dp5Eg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/craigrandall?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/craigrandall/~4/5Yt4aopbMQI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://craigrandall.net/archives/2008/12/outliers/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://craigrandall.net/archives/2008/12/outliers/</feedburner:origLink></item>
	</channel>
</rss>
