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

<channel>
	<title>kominetz &#187; Documentum</title>
	<atom:link href="http://kominetz.com/tag/documentum/feed/" rel="self" type="application/rss+xml" />
	<link>http://kominetz.com</link>
	<description>Software, Technology, Productivity</description>
	<lastBuildDate>Fri, 29 Jul 2011 19:57:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Beating a Dead dmHorse</title>
		<link>http://kominetz.com/2010/08/12/beating-a-dead-dmhorse/</link>
		<comments>http://kominetz.com/2010/08/12/beating-a-dead-dmhorse/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 16:23:15 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Aspects]]></category>
		<category><![CDATA[BOF]]></category>
		<category><![CDATA[DFC]]></category>
		<category><![CDATA[DMCL]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[quality]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=861</guid>
		<description><![CDATA[My response to Pie&#8217;s Quality of Documentum Over the Years bears repeating, even if I am beating a dead dmHorse: I started with version 2, back when I was just a newly-minted UNIX geek. One thing you missed with the &#8230; <a href="http://kominetz.com/2010/08/12/beating-a-dead-dmhorse/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_862" class="wp-caption alignright" style="width: 310px"><a href="http://kominetz.com/wp-content/uploads/2010/08/1268416725-puppies.jpg"><img class="size-medium wp-image-862" title="Puppies!" src="http://kominetz.com/wp-content/uploads/2010/08/1268416725-puppies-300x240.jpg" alt="Puppies!" width="300" height="240" /></a><p class="wp-caption-text">Don&#39;t google &quot;dead horse&quot; for images.</p></div>
<p>My response to Pie&#8217;s <a title="Quality of Documentum Over the Years -- wordofpie.com" href="http://wordofpie.com/2010/08/03/quality-of-documentum-over-the-years/#comment-19463">Quality of Documentum Over the Years</a> bears repeating, even if I am beating a dead dmHorse:</p>
<p>I started with version 2, back when I was just a newly-minted UNIX geek.  One thing you missed with the transition to 4i was the introduction of the DFC.  DMCL had a very UNIX feel; a simple, open API designed to be glued into any programming language. DFC was just Java then, with a COM layer growing over it later. That was also the point where EMC became more marketing-driven and started chasing the Internet bubble at the expense of their existing clients.</p>
<p>Both were attempts to capitalize on hot topics of the time, Java and the Web. I never bought that the DFC would make a whole pool of talent available; Documentum&#8217;s about the model, not the means. However,  the marketroids successfully reframed it. Hiring managers now believe they can take Java people and mold them into Documentum people, and I hear gasps of disbelief when I say Java or Visual Studio aren&#8217;t requirements to do Documentum&#8211;a good Java programmer is not necessarily a good Documentum developer.</p>
<p><em>This Java mentality did increase the number of people with Documentum on their resumes, but the talent didn&#8217;t increase as much as the volume. It just diluted (maybe also tainted) the pool. It became harder to find good people in the now-mirky waters.</em></p>
<p>The lack of focus then is what brings us to the lack of quality now. Innovation at the model and server level is rare, and frankly I don&#8217;t give Documentum much geek cred anymore because of it. Great ideas like BOF and Aspects are stapled into an API rather than made an inherent part of the product. Too much work up the stack (and on vertical solutions) has made the product top-heavy and tottery. EMC continues to chase markets (i.e., case management) rather than concentrate on making a solid core product.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2010/08/12/beating-a-dead-dmhorse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documentum &amp; The Private Option</title>
		<link>http://kominetz.com/2010/06/22/documentum-the-private-option/</link>
		<comments>http://kominetz.com/2010/06/22/documentum-the-private-option/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 01:26:44 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Private Equity]]></category>
		<category><![CDATA[SAP]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=835</guid>
		<description><![CDATA[I want a private equity fund to buy Documentum from EMC and give it a real shot at regaining its former glory. Noted rumor-monger  Brilliant Leap speculates about Documentum in a world without EMC. Tongues were already wagging at EMC World about &#8230; <a href="http://kominetz.com/2010/06/22/documentum-the-private-option/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I want a private equity fund to buy Documentum from EMC and give it a real shot at regaining its former glory.</p>
<p><img class="alignright" style="border: 0px initial initial;" title="#26698 Smart Cow Playing Dead To Avoid Going To The Butcher Shop Clipart by DJArt - Clipart" src="http://www.imageenvision.com/150/26698-smart-cow-playing-dead-to-avoid-going-to-the-butcher-shop-clipart-by-djart.jpg" border="0" alt="#26698 Smart Cow Playing Dead To Avoid Going To The Butcher Shop Clipart by DJArt" width="150" height="98" />Noted rumor-monger  <a href="http://www.brilliantleap.com/">Brilliant Leap</a> speculates about <a title="Documentum, where go thou? --Brilliant Leap" href="http://www.brilliantleap.com/blog/2010/06/some-rumors-are-simply-too-delicious-to-dismiss-off-handheres-one-sap-is-going-to-buy-documentum-from-emctheres-no-point.html">Documentum in a world without EMC</a>. Tongues were already wagging at EMC World about the SAP-EMC partnership leading to <a title="Potential of SAP acquiring Documentum -- TSG Blog" href="http://blog.tsgrp.com/2010/06/14/potential-of-sap-acquiring-documentum/">something a little more intimate</a>. It has enough of the smell of truth to make an irresistible rumor.</p>
<p>As rumors go, I still prefer the Microsoft angle because of the <a title="June Momentum Newsletter - EMC" href="http://info.emc.com/mk/get/DBM7846-8815_web_lp">obscene anatomy kissing that IIG is </a><strong><a title="June Momentum Newsletter - EMC" href="http://info.emc.com/mk/get/DBM7846-8815_web_lp">still</a></strong><a title="June Momentum Newsletter - EMC" href="http://info.emc.com/mk/get/DBM7846-8815_web_lp"> doing</a>.  Truth is it&#8217;s just to easy to dispel: Why buy the cow when you get the milk for free? I doubt Microsoft will be stamping shrink-wrapped boxes of SharePoint with <em><a title="Putting Documentum Web Publisher to bed -- Brilliant Leap" href="http://www.brilliantleap.com/blog/2010/03/putting-documentum-webpublisher-to-bed.html">Documentum Inside!</a></em> anytime soon, but I&#8217;d bet they have an infinite number of code monkeys banging away to make their own document management <em>Hamlet</em>. Once they do, it&#8217;s bye-bye Documentum! Then all those monkeys will get down to business and start flinging feces IIG&#8217;s way.</p>
<p><a href="http://en.wikipedia.org/wiki/File:Cinderella_-_Project_Gutenberg_etext_19993.jpg"><img class="alignleft size-medium wp-image-837" title="Cinderella - Project Gutenberg" src="http://kominetz.com/wp-content/uploads/2010/06/422px-Cinderella_-_Project_Gutenberg_etext_19993-211x300.jpg" alt="" width="127" height="180" /></a>Part of Documentum&#8217;s doom was being a software company bought by a hardware company; however, it won&#8217;t be saved if another software company buys it next. Such companies (SAP included) would buy Documentum to augment their flagship product, not eclipse it.  With no Fairy Godmother rescue from being passed around from one wicked step-mother to the next, this story&#8217;s ending will be more <em>Le Boheme</em> than <em>Cinderella</em>. Or worse, a more-jackal-than-wolf company that hasn&#8217;t innovated for decades might gobble it up to suck the last trickle of marrow from its cracked bones.  <strong>*cough* computer associates *cough*</strong></p>
<p>I am no Wall Street cheerleader, especially after my time in Big Finance, but the closest thing to a Fairy Godmother out there is a technology-oriented private equity fund. Such a fund buys troubled companies to turn them around and sell them for a profit. Unlike most of Wall Street, they take the long view of years rather than a quarter or the milliseconds around a stock&#8217;s uptick.</p>
<p>Their methods can be harsh, but their goal unlike any step-mother&#8217;s would be to make Documentum the best product and most profitable (and saleable) brand it can be.  There may still be an ounce of brand left to save. By going private, the recuperating Documentum wouldn&#8217;t be burdened with public company regulation or the tyranny of speculative stockholders. It&#8217;s an imperfect cure for the age of gratuitous IPOs and acquisitions fueled more by irrational exuberance than smart business.</p>
<p>We have a test case with <a title="AOL sells networking site Bebo - LubbockOnline" href="http://lubbockonline.com/stories/062010/mon_656511772.shtml">AOL selling Bebo to Criterion Capital Partners, LLC</a> instead of just shutting it down. Taking Valdes&#8217;s animal shelter metaphor a little further, I&#8217;m sure Criterion will euthanize Bebo and reap their own &#8220;meaningful tax deduction&#8221; if the old dog can&#8217;t learn new tricks. Sometimes I think I&#8217;d rather see that happen to Documentum than sit through the EMC&#8217;s little opera until <a title="Tuberculosis - Wikipedia" href="http://en.wikipedia.org/wiki/Tuberculosis">the consumption</a> takes it.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2010/06/22/documentum-the-private-option/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EMC discovers Magnetic Poetry</title>
		<link>http://kominetz.com/2010/05/16/emc-discovers-magnetic-poetry/</link>
		<comments>http://kominetz.com/2010/05/16/emc-discovers-magnetic-poetry/#comments</comments>
		<pubDate>Mon, 17 May 2010 04:54:34 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=828</guid>
		<description><![CDATA[I can&#8217;t find a video of the Mark Lewis keynote from EMC World 2010. Instead I&#8217;m depending on reporting from the event like Ron Miller&#8217;s article [Documentum group gets new name and new direction] and Pie&#8217;s tweets and blog posts. &#8230; <a href="http://kominetz.com/2010/05/16/emc-discovers-magnetic-poetry/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.imdb.com/title/tt0077533/"><img class="size-full wp-image-829 alignright" style="margin: 8px;" title="Faces of Death" src="http://kominetz.com/wp-content/uploads/2010/05/skull.jpg" alt="" width="89" height="133" /></a></p>
<p>I can&#8217;t find a video of the Mark Lewis keynote from EMC World 2010. Instead I&#8217;m depending on reporting from the event like Ron Miller&#8217;s article [<a href="http://www.fiercecontentmanagement.com/story/documentum-group-gets-new-name-and-new-direction/2010-05-12">Documentum group gets new name and new direction</a>] and <a title="Word of Pie" href="http://wordofpie.com/">Pie&#8217;s tweets and blog posts</a>. It&#8217;s probably for the better; I never had a taste for gruesome videos since Faces of Death, and this may be EMC finally decapitating the Documentum brand.  Rather than plunging into a pages-long diatribe about EMC&#8217;s unconditional surrender to the commoditizing of content management or the latest dish of scorn Lewis served up to Documentum veterans, let&#8217;s talk names.</p>
<p><em>Information Intelligence Group</em> is EMC&#8217;s new moniker for the product that shall not be named. Lewis breaks down the name for us on his blog [<a href="http://marksblog.emc.com/2010/05/episode-91-emc-world-2010-the-birth-of-the-information-intelligence-group.html">Episode 91: EMC World 2010 - The Birth of the Information Intelligence Group</a>]. It&#8217;s hard to read&#8211;let alone say&#8211;the name with a straight face, and this breakdown doesn&#8217;t help. At least the cumbersome and uninspired <em>Content Management and Archiving</em> accurately conveyed something about the product.  This new name is too broad and inherently meaningless; it will continue to erode mindshare for a product that was the de facto definition of document management. Let&#8217;s hope this new name doesn&#8217;t prove itself a compound oxymoron to boot.</p>
<p><a href="http://www.magneticpoetry.com/poetgame/create.cfm?k=1"><img class="size-full wp-image-830 alignleft" style="margin: 8px;" title="Screen shot 2010-05-17 at 00.00.41" src="http://kominetz.com/wp-content/uploads/2010/05/Screen-shot-2010-05-17-at-00.00.41.png" alt="Magnetic Poetry" width="96" height="123" /></a></p>
<p>The &#8220;Intelligent&#8221; product silos aren&#8217;t much better. Granted, this is a product that has to publish a separate guide with each new release to map old product names to new. Not a sheet or a few pages, a <em>document</em>. However, these new silos are so vertically restrictive that EMC had to toss the content server into case management.  Having done case management and having paid my dues in lines of server code, I&#8217;m perplexed. It&#8217;s like they had a very limited box of magnetic poetry to play with.</p>
<p>The continuing erosion of a strong brand means less mindshare among potential customers. Everybody knows SharePoint even though most don&#8217;t know what it really is. I&#8217;ve seen first-hand how good marketing trumps good product. Documentum had that name recognition&#8211;still does in many parts&#8211;and EMC seems determined to stamp it out without something sticky to replace it.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2010/05/16/emc-discovers-magnetic-poetry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Misses the Mark with Mentions</title>
		<link>http://kominetz.com/2009/04/19/twitter-misses-the-mark-with-mentions/</link>
		<comments>http://kominetz.com/2009/04/19/twitter-misses-the-mark-with-mentions/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 17:30:07 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=263</guid>
		<description><![CDATA[When Twitter changed their reply functionality, now called mentions, my initial reaction was unmentionable.  After a few weeks to ponder and play with it, I still think they made a big mistake.  A reply was originally a message that began &#8230; <a href="http://kominetz.com/2009/04/19/twitter-misses-the-mark-with-mentions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_269" class="wp-caption alignright" style="width: 160px"><img class="size-thumbnail wp-image-269" title="twitter_bird_bleep" src="http://kominetz.com/wp-content/uploads/2009/04/twitter_bird_bleep-150x150.jpg" alt="Unmentionable!" width="150" height="150" /><p class="wp-caption-text">Unmentionable!</p></div>
<p>When Twitter changed their reply functionality, now called mentions, my initial reaction was unmentionable.  After a few weeks to ponder and play with it, I still think they made a big mistake.  A reply was originally a message that began with a twitter username, like this:</p>
<pre style="padding-left: 30px;">@zorak No, really?</pre>
<p>Replies were public, but Twitter added a link so you could see just your replies and options to filter other people&#8217;s replies out of your friends stream.  According to <a title="How Replies Work &gt; blog.twitter.com" href="http://blog.twitter.com/2008/05/how-replies-work-on-twitter-and-how.html">the Twitter blog</a>, the community came up with the convention that Twitter later embraced and enhanced.  Then Twitter added a separate API call and a &#8220;swoosh&#8221; button to their web site:</p>
<p><img class="alignnone size-full wp-image-265" title="twitterswoosh" src="http://kominetz.com/wp-content/uploads/2009/04/twitterswoosh.png" alt="twitterswoosh" width="561" height="79" /></p>
<p><img src="file:///Users/johnk/Desktop/Picture%202.png" alt="" /></p>
<p>Just what I wanted! Twitter added metadata underneath so that a reply remembered which tweet it replies to.  Pretty soon every Twitter client included swoosh buttons and &#8220;in reply to&#8221; links.  This was a philosophical break for Twitter&#8211;whether they know it or not&#8211;because there was no way to distinguish swoosh and &#8220;@user &#8230;&#8221; via SMS.  Supporting SMS creates a larger potential user base, but it drastically limits functionality.  Until everybody has an iPhone, fledgling social networks like <a title="BrightKite" href="http://brightkite.com/" target="_blank">Brightkite</a> must consider this trade-off.</p>
<p>The original reply syntax is still supported and continued to create confusion as <a title="Replying to Multiple Users &gt; blog.atebits.com" href="http://blog.atebits.com/2009/02/replying-to-multiple-users/" target="_blank">Tweetie developer AteBits explained on his blog</a>.  People put multiple names in the message or put the @ in the body of the message, assuming the right people would see the replies:</p>
<pre style="padding-left: 30px;">@me @myself @I Remember the milk.
Give @me some sugar, @baby!</pre>
<p>Only @me sees the first tweet as a reply; nobody sees the second.  Search was already catching on thanks to other community-grown initiatives like hash tags; users and client developers began using search on @user instead of the reply API to catch such grammatically incorrect tweets.  Apparently this is a bad thing, or at least something Twitter discouraged, perhaps because of its impact on Twitter&#8217;s call throttling.  That and other scaling problems should make for a few good dissertations; I just hope Twitter is keeping the historical record and will be willing to share it.</p>
<p>This brings us to mentions which are basically just searches on @user.  Although it&#8217;s a good thing that Twitter learns from their community, the big mistake here was changing the functionality under the existing API calls.  I agree that instantly supporting new functionality in all Twitter clients is attractive to a provider, but it can&#8211;and did&#8211;create unintended consequences.  All those clients blessed with catching those malformed reply tweets were also cursed by all those side-bar mentions crowding the replies page.  Twitterati like @wilw <a title="@wilw &gt; Twitter.com" href="http://twitter.com/wilw/status/1432136045" target="_blank">get many more mentions than direct replies</a>, and now there&#8217;s no easy way to sort out the two.</p>
<p>The lesson here is that it&#8217;s safer to create new API and UI elements for new-ish functionality and let the community migrate over than to replace the guts and hope nothing breaks.  As any API designer knows, developers will do all kinds of unexpected things once your API is released into the wild.  The Twitter community&#8217;s active, inventive role in shaping Twitter also provides for some real &#8220;They did what?&#8221; moments.  Tweaking reply functionality to support only swooshes and adding new methods for mentions would have made everybody happy.</p>
<p>There&#8217;s one thing I want from Twitter that they promise in the API FAQ; I want to see all replies for a given tweet.  I disagree the assertion in the Twitter blog post above that people don&#8217;t want to wander into the middle of an ongoing conversation.  Sometimes that&#8217;s the best way to discover new topics and interesting people.  When that happens, there is a need to go back and discover the source and all its tributaries.  Twitter is aware of the need, as this <a title="Get All Repies -- Twitter API Wiki FAQ &gt; apiwiki.twitter.com" href="http://apiwiki.twitter.com/FAQ#HowdoIgetallrepliestoaparticularstatus">quote from the Twitter API Wiki FAQ shows</a>:</p>
<blockquote><p><strong>How do I get all replies to a particular status?</strong><br />
For now, there&#8217;s not a great way to do this. We&#8217;ve heard the requests, though, and we&#8217;ll be providing a solution for it before too long.</p></blockquote>
<p>Conversation functionality is cropping up in Twitter clients like <a title="Nambu -- Twitter Client for Mac &gt; Nambu.com" href="http://www.nambu.com/" target="_blank">Nambu</a> and the soon-to-be-released <a title="Tweetie for Mac &gt; atebits.com" href="http://www.atebits.com/tweetie-mac/" target="_blank">Tweetie for Mac</a> (20 April 2009).  Looks like Nambu constructs conversations based on cached tweets, building little trees as it discovers reply pointers to other already-fetched tweets.  This single-linked list structure makes it easy to find your immediate predecessor but difficult to walk up, across, and back down the tree.</p>
<p>Hmm, where have I seen this problem before?  Oh yeah, version trees in Documentum.  Every document remembers its immediate predecessor (<strong>i_antecedent_id</strong>) and the root of its version tree family (<strong>i_chronicle_id</strong>).  A single query on i_chronicle_id returns every version of that document.  That&#8217;s just what I want Twitter to do!</p>
<p>Twitter already has its own<strong> i_antecedent_id</strong>&#8211;with a better name I hope.  So add an equivalent to <strong>i_chronicle_id</strong> and a new getAllReplies API call.  I suggest<strong> topic_id</strong> since that&#8217;s what the root tweet of a tree of replies becomes.  It would be nice to go back and stitch up all the previous replies-of-replies, but I would understand if the hit on the database would be too big.  How many tweets are in there anyway?</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2009/04/19/twitter-misses-the-mark-with-mentions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Like Comparing Apples and Content Addressable Storage Arrays</title>
		<link>http://kominetz.com/2009/01/02/like-comparing-apples-and-content-addressable-storage-arrays/</link>
		<comments>http://kominetz.com/2009/01/02/like-comparing-apples-and-content-addressable-storage-arrays/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 02:49:04 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[Joe Tucci]]></category>
		<category><![CDATA[Steve Jobs]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=179</guid>
		<description><![CDATA[Don&#8217;t blame me!  Brilliant Leap baited me into talking about Apple with her post and subsequent tweet about Rob Enderle&#8217;s article in Enterprise Storage Forum: Apple Could Learn A Lot From EMC.  Oh? Let&#8217;s deal with the underlying issue here: &#8230; <a href="http://kominetz.com/2009/01/02/like-comparing-apples-and-content-addressable-storage-arrays/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t blame me!  Brilliant Leap baited me into talking about Apple with <a title="Brilliant Leap - Apple could learn a lot from EMC (really?) Part one" href="http://brilliantleap.com/blog/2009/01/apple_could_learn_a_lot_from_e.html">her post</a> and <a title="Twitter" href="http://twitter.com/brilliantleap/statuses/1092270147">subsequent tweet</a> about Rob Enderle&#8217;s article in Enterprise Storage Forum: <a title="Enterprise Storage Forum - Apple Could Learn A Lot From EMC" href="http://www.enterprisestorageforum.com/article.php/3792511">Apple Could Learn A Lot From EMC</a>.  Oh?</p>
<p>Let&#8217;s deal with the underlying issue here:  The ESF article is talking about the other 99% of EMC that bought Documentum to sell disk.  EMC friends, <em>I&#8217;m just kidding</em><em>!</em>  <em>I can joke, right?</em>  Since storage is not my expertise beyond some hacking around with Centera as primary content stores, I suppose EMC might really knock their customers&#8217; socks off in the storage arena, but I doubt it.</p>
<p>Network disk isn&#8217;t something you see until it isn&#8217;t there, just like any good support technology.  It&#8217;s not sexy.  Apple&#8217;s products are shameless show-boaters meant to hog the spotlight.  They are meant to be seen, to be touched, and&#8211;dare I admit&#8211;even licked. Maybe that&#8217;s not a recommended way to unlock an iPhone, but what else can you do about winter, thick gloves, and a touch screen?</p>
<p>Would the average EMC storage user know the EMC logo on sight?  Would the average Apple user?</p>
<table border="0" cellspacing="6" cellpadding="6" align="center">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-181" title="apple_logo" src="http://kominetz.com/wp-content/uploads/2009/01/images.jpeg" alt="apple_logo" width="107" height="129" /></td>
<td><img class="alignnone size-full wp-image-180" title="emc_logo.jpg" src="http://kominetz.com/wp-content/uploads/2009/01/images-1.jpeg" alt="emc_logo.jpg" width="150" height="73" /></td>
</tr>
</tbody>
</table>
<p>OK, so the EMC logo actually says &#8220;EMC&#8221; in it.  You get the point though, right?</p>
<p>Enderle&#8217;s article talks about quality, metrics, and customer loyalty.  All those things are important to Apple, although the often-excellent quality of Apple products is marred on a regular basis with things like incendiary power supplies and the worst product launch ever: iPhone 3G + MobileMe.  WORST!  LAUNCH!  EVER!</p>
<p>Only Starbucks matches Apple&#8217;s skill at selling Lifestyle. The synergy of Apple&#8217;s well-designed, well-integrated components had <a title="kominetz.com - Apple Gives Good Upgrade" href="http://kominetz.com/2008/12/18/apple-gives-good-upgrade/">this caged bird singing gaily</a> a few posts ago despite a healthy fear of monoculture coming from a science background.  That all misses the point, the one reason the whole discussion is apples and oranges:  Innovation.</p>
<p>Apple sets the bar for technology after technology:  operating systems, mp3 players, online music retailing, and of course smart phones.  The integration, the cool, the marketing are all icing on the cake because Apple does something better than anybody else:  They innovate, and they do it where they can define the market rather than chase it.</p>
<p>I don&#8217;t think Big Disk lives or dies on such radical innovation. In fact, their customers probably fear change more than most.  Change is not good for 24/7 availability.  I can hear the compliance officers, archivists, and system admins shrieking in terror at the thought of something that might as likely store their entire repositories on a postage stamp or burst into flames if looked at the wrong way.</p>
<p>There is a relentless integrity of concept, simplicity, and message spanning all Apple products that likely has a single source, Steve Jobs.  Such single-mindedness is what makes big, ambitious, risky, not-for-the-faint-of-heart products succeed or fail spectacularly.  Apple&#8217;s done both regularly.  It allows org-wide turn-on-a-dime changes, something that another industry titan *cough*Bill Gates*cough* executed brilliantly after completely missing the Internet as the Next Big Thing.</p>
<p>That conceptual integrity, that vision from the top is also why Apple clung to its single-button mouse a decade too long and why the iPod Touch and iThingThatWillNotBeNamed are missing the aesthetically unpleasing extra two or three buttons needed for touch-without-sight operation.  Because that&#8217;s how Steve Jobs sees it, end of story.</p>
<p>I&#8217;m sure Joe could give Steve a few helpful hints on running disk farms for MobileMe or handling eDiscovery for the next options scandal, but that&#8217;s not the point.  It&#8217;s what Jobs teaches his successor and if that successor has the Right Stuff to wield Apple as a single instrument of innovation, lest Apple repeat the recent catastrophes of their rivals to the North.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2009/01/02/like-comparing-apples-and-content-addressable-storage-arrays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy New 2009!</title>
		<link>http://kominetz.com/2009/01/01/happy-new-2009/</link>
		<comments>http://kominetz.com/2009/01/01/happy-new-2009/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 01:41:52 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[folders]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=175</guid>
		<description><![CDATA[The new year is here, and I&#8217;m sure some of you are hoping I never blog about the iPhone again. I&#8217;m not in the habit of making New Year&#8217;s resolutions, so I&#8217;ll make no promises beyond skewing future posts towards &#8230; <a href="http://kominetz.com/2009/01/01/happy-new-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The new year is here, and I&#8217;m sure some of you are hoping I never blog about the iPhone again. I&#8217;m not in the habit of making New Year&#8217;s resolutions, so I&#8217;ll make no promises beyond skewing future posts towards programming in <a title="Wikipedia - Objective C" href="http://en.wikipedia.org/wiki/Objective-C">Objective C</a> and the using the iPhone APIs rather than reviewing apps or fawning over the device like a fan-boy.</p>
<p>I have some long-time draft Documentum posts that should see daylight soon as well, and the new <a title="EMC - Smart Container Demo" href="https://community.emc.com/docs/DOC-2489">smart container feature in D6.5</a> has me pondering the fate of virtual documents and EMC&#8217;s folder fetish. Thanks to <a title="Brilliant Leap" href="http://brilliantleap.com">Brilliant Leap</a> for sending me the link and distracting me from iPhone adoration for a few minutes.</p>
<p>Finally, kudos to the makers of <a title="WordPress" href="http://wordpress.org/">WordPress 2.7</a>.  Constant interface changes make me a little crazy (glares at Lotus Notes), but this truly was a big step forward for the project.  I&#8217;m looking forward to what they do in 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2009/01/01/happy-new-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Events Since 14 September 2008</title>
		<link>http://kominetz.com/2008/12/09/events-since-14-september-2008/</link>
		<comments>http://kominetz.com/2008/12/09/events-since-14-september-2008/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 00:33:45 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[flu]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MacBook Pro]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=148</guid>
		<description><![CDATA[I bought a unibody MacBook Pro. Aside from being a thing of beauty, the improved GPU means all my games run well under Boot Camp; the Dell XPS 600 may get an early retirement (in the Blade Runner sense).  I &#8230; <a href="http://kominetz.com/2008/12/09/events-since-14-september-2008/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 330px"><img class=" " style="margin: 8px;" title="Have you ever retired a Mac by mistake?  No." src="http://www.biffma.com/images/film/resize/BladeRunner.jpg" alt="" width="320" height="208" /><p class="wp-caption-text">Have you ever retired a Mac by mistake?  No.</p></div>
<p><strong>I bought a <a title="MacBook Pro -- apple.com" href="http://www.apple.com/macbookpro/">unibody MacBook Pro</a>.</strong> Aside from being a thing of beauty, the improved GPU means all my games run well under Boot Camp; the Dell XPS 600 may get an early <a title="Retirement -- urbandictionary.com" href="http://www.urbandictionary.com/define.php?term=retirement">retirement (in the Blade Runner sense)</a>.  I love the trackpad and found myself forgoing a mouse while traveling&#8211;except under Windows where it&#8217;s squirrelly and inconsistent.  I hope Apple starts squeezing out Boot Camp updates as fast as iPhone updates to fix the track pad problem and take full advantage of the dual GPU.  Please cross all appropriate appendages.</p>
<p><strong>I ended my contract in Rockville, MD.</strong>  The commute got to me and I ended my contract with F. after a one month extension to see one of my projects through its first deployment to prod. I&#8217;m making a pattern of very long separations to help with transition, and that&#8217;s both good and bad: Good this time because I think it really made a difference in the deployment; bad because I missed out on the before-end-of-year hiring cycle.  I hope it reboots as usual in the beginning of the new year despite the grim economic situation.</p>
<p><strong>I got the flu.</strong>  My last day in Rockville was when the fever kicked in.  The following three weeks were pretty miserable, and I still have a bit of a cough after another two.  Next year I&#8217;m definitely getting a flu shot, and I&#8217;m wondering if I should still get one this year since they typically treat a handful of the most common strains.  Any medical professionals care to comment?</p>
<p><strong>I drank the Kool Aid and bought an <a title="iPhone -- apple.com" href="http://www.apple.com/iphone/">iPhone</a>.  </strong>Expect a subsequent post with some of my favorite apps.  I&#8217;m testing how long it can last in stand-by mode with power consumption optimization (WiFi and 3G only when needed, no push, hourly pull) and it looks like the answer&#8217;s 72 hours.  I may have to bump my SMS messages up to 1500 from 200 which irks me to no end, but that&#8217;s one of a handful of gripes that are more about AT&amp;T than the device itself.  Otherwise, it&#8217;s a Good Thing &#8482;.</p>
<p><strong>I attended <a title="MJD's Blog -- plover.com" href="http://blog.plover.com/">MJD</a>&#8216;s talk at <a title="PLUG -- phillylinux.org" href="http://www.phillylinux.org/">Philadelphia Linux Users Group (PLUG)</a> about strong typing.</strong>  The <a title="Atypical Types -- plover.com" href="http://blog.plover.com/talk/atypical-types.html">slides for Atypical Types</a> are on MJD&#8217;s site.  We agree that <a title="Gimme Some Syntactic Sugar, Baby! -- kominetz.com" href="http://kominetz.com/2007/09/13/java-15-gimme-some-syntactic-sugar-baby/">Java 1.5 is the first usable version</a> of the 1970s-style programming language but for different reasons:  He asserted at the talk that Java typing got better because a Haskell guy rewrote the 1.5 compiler and force fed Java some good medicine like generics. Is <a title="Haskell -- wikipedia.org" href="http://en.wikipedia.org/wiki/Haskell_(programming_language)">Haskell</a> the new programming language incubator?  Given things like type inference, how a smart compiler removes all strong-type clutter that stupid compilers require, could be.</p>
<p><strong>I corrected a long-standing mistake about Documentum Composer in my </strong><a title="I'd Rather Be in Philadelphia -- kominetz.com" href="http://kominetz.com/2008/07/02/id-rather-be-in-philadelphia/"><strong>I&#8217;d Rather Be in Philadelphia</strong></a><strong> blog post.</strong>  Despite being a newer Documentum customer, F. had enough invested in its 5.3 architecture and how it integrated into their corp-wide build process to make Composer a non-starter.  I&#8217;m looking forward to a contract in the future where I get to use all the new 6.5 stuff without the drag of a 5.x (or even 6.0) install base.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2008/12/09/events-since-14-september-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resume Updated</title>
		<link>http://kominetz.com/2008/09/03/resume-updated/</link>
		<comments>http://kominetz.com/2008/09/03/resume-updated/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 06:44:37 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[resume]]></category>
		<category><![CDATA[software architect]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=138</guid>
		<description><![CDATA[I&#8217;ve updated my resume to include my current assignment.  The clock&#8217;s running down and I&#8217;m finding Maryland to be too long a haul, so ping me if you hear about anything interesting happening in the Philadelphia area. Resume of John &#8230; <a href="http://kominetz.com/2008/09/03/resume-updated/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated my resume to include my current assignment.  The clock&#8217;s running down and I&#8217;m finding Maryland to be too long a haul, so ping me if you hear about anything interesting happening in the Philadelphia area.</p>
<p><a href="http://kominetz.com/wp-content/uploads/2008/09/resume-kominetz-20080903.pdf">Resume of John Kominetz (20080903)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2008/09/03/resume-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Duplicate Folders Mystery, Part II</title>
		<link>http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/</link>
		<comments>http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 10:47:10 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[desktop client]]></category>
		<category><![CDATA[DMCL]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[folders]]></category>
		<category><![CDATA[i_folder_id]]></category>
		<category><![CDATA[r_folder_path]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[webtop]]></category>

		<guid isPermaLink="false">http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/</guid>
		<description><![CDATA[I was staring at the impossible in early 2004: Two folders named &#8220;Reports&#8221; in the same place. That&#8217;s just not supposed to happen. (Refresh your memory on why with Part I.) After some idql and iapi snooping, here were the &#8230; <a href="http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://kominetz.com/wp-content/uploads/2008/01/folderisalie.thumbnail.png" alt="The Folder Is a Lie" align="right" hspace="16" vspace="16" />I was staring at the impossible in early 2004:  Two folders named &#8220;Reports&#8221; in the same place.  That&#8217;s just not supposed to happen.  (Refresh your memory on why with <a href="http://kominetz.com/2008/01/04/the-duplicate-folders-mystery-part-i/" title="The Duplicate Folders Mystery, Part I -- kominetz.com">Part I</a>.)  After some idql and iapi snooping, here were the facts:</p>
<ol>
<li>Both folders did indeed have identical object names without leading or trailing whitespace.</li>
<li>They did NOT have any values in common between their i_folder_ids, so they weren&#8217;t really in the same place.  But Desktop Client though otherwise.</li>
<li>One had r_folder_path values with trailing whitespace in one of its containing folders.<br />
e.g. &#8220;/cabinet/folder1 /folder2/folder3&#8243; &#8212; Hard to eyeball the space after &#8220;folder1&#8243; unless you&#8217;re looking for it!</li>
</ol>
<p>After that, I couldn&#8217;t reproduce the problem.  This docbase was well known for having &#8220;issues&#8221;, so nobody (including Documentum) was surprised that something impossible and inexplicable was happening.  I mentally filed it under &#8220;Documentum moving in mysterious ways&#8221;, gave the business administrators a tedious but effective work-around, and got back to more urgent concerns.</p>
<p>The next year I ran into this problem again from the engineering side instead of the business unit.  As a particular project wrapped up or budget ran out, the company passed me around to different groups.   I&#8217;d worked in engineering back in 2001, and my knowledge of the company&#8217;s custom environment made letting me go difficult.</p>
<p>I ended up helping out with the 4.2.8/5.2.5 upgrades by developing a triage procedure and fixing some of the more dire problems.   Ever see those pictures of  tumorous, sooty lungs the Cancer Society uses to scare people away from cigarettes?  That&#8217;s what some of these docbases looked like on the inside.  Not fun.  Not pretty.</p>
<p>After triaging a hundred docbases, I discovered some of them also had corrupt r_folder_paths, although in smaller numbers than the original-problem docbase.  Thankfully it didn&#8217;t interfere with the upgrade procedure.     I made a few more notes before continuing onto my next engineering task, the arduous quest to get  Documentum to fix the horribly-broken-under-Sybase content replication process.</p>
<p>Another year passed, I was passed along to another business unit, and a new folder-related problem emerged.  Business users (in webtop) reported empty folders and missing documents.  The document management group  (in desktop client) reported the documents were right where they filed them.  If you guessed those empty folders had corrupt r_folder_paths, you were right.  Webtop uses a slightly different query to determine folder contents than desktop client and as a result couldn&#8217;t &#8220;see&#8221; the contents of such a corrupt folder.</p>
<p><strong>There Will Be Pain </strong></p>
<p><em>You may want to take some ibuprofen before continuing &#8230; </em></p>
<p>This particular client as a rule doesn&#8217;t allow anybody to talk directly to the Sybase DBAs.  Don&#8217;t ask why.  Healthy docbases require attentive, knowledgeable DBAs working with developers and docbase administrators.  I would probably have figured this problem out by year one if I&#8217;d had that kind of healthy relationship, but I didn&#8217;t.</p>
<p>Some suggested I master Sybase.  Frankly, that&#8217;s wasted effort since it&#8217;s such a small part of Documentum&#8217;s market.  If this were Oracle or SQL Server, sure.  Thing is, the client desperately needs DBAs cross-trained in Documentum if they were going to tame the growing performance and stability problems.  Despite getting a few people in management to shake their heads yes when I said this, nothing ever came of it.  Sigh.</p>
<p>So I found the next-best thing to a current Sybase DBA, an ex-DBA in my part of the organization.  I started asking questions, and he casually mentioned the &#8220;obvious&#8221; fact that the Sybase API strips all leading and trailing whitespace from VARCHARs passed to it.  I was dumbfounded.</p>
<p>Call me a purist, but this is data corruption by design. If I programmatically pass a string to a database,  I expect  the exact same string back when I ask for it.  That&#8217;s just common sense&#8211;unless you live on Planet Sybase&#8211;but it didn&#8217;t really explain the problems.</p>
<p>Most of the affected docbases either had custom scripts or Input Accel adding content, and they all had several layers of folders that related to content metadata.  This was the second big clue; both methods of adding content had to sometimes create several layers of new folders to file the first document for a particular client, counterparty, or deal.  That&#8217;s still didn&#8217;t explain it all.</p>
<p>The DMCL caches metadata for newly-created, fetched, and modified objects.  That includes folders.  It turns out that the cache doesn&#8217;t automatically refresh from the database after a save.  Now we have the three components needed for the impossible to happen.  Let&#8217;s walk through the process.</p>
<ol>
<li>Open iapi and connect to a docbase.</li>
<li>Create a new folder &#8220;B &#8221; whose name has a space at the end (OCR, bad typing, etc.), link it into cabinet &#8220;A&#8221;, and save it.  The cache has object_name as &#8220;B &#8221; and r_folder_path as &#8220;/A/B &#8220;.  Sybase stores them as &#8220;A&#8221; and &#8220;/A/B&#8221;.</li>
<li>Create another new folder &#8220;C&#8221; <em>in the same session</em>, link it to &#8220;B&#8221;, and save it.  It fetches &#8220;B&#8221;&#8216;s r_folder_path <em>from the cache</em> and generates its own r_folder_path as &#8220;/A/B /C&#8221;.  Note the space after &#8220;B&#8221;, and also note that sybase doesn&#8217;t have anything to trim because the space is within the string.</li>
<li>Put some stuff in &#8220;C&#8221; and close this session.</li>
<li>Navigate down through the new folders in desktop client and &#8220;C&#8221; has content.</li>
<li>Navigate down through the new folders in webtop and &#8220;C&#8221; appears empty.</li>
</ol>
<p>Both client applications use &#8220;r_folder_path&#8221; in the query to find a folder&#8217;s content. One remembers and builds the path with some whitespace trimming as it goes along, the other uses literal values from r_folder_path.  Can you figure out which is which?  That difference is the root of the disappearing content mystery.</p>
<p>The duplicate folders mystery arises from the fact that the DMCL won&#8217;t remove corrupt r_folder_path entries when relinking a parent folder triggers a cascade update on its children.  That junk stayed in the r_folder_path of the moved &#8220;Reports&#8221; folder but didn&#8217;t block scripts from creating another &#8220;Reports&#8221; folder there since the validation is on i_folder_id.  Both end up with the same corrupt path, as would a third after moving the second, and so on.</p>
<p>There you go.  A combination of the DMCL cache, Sybase trimming whitespace, a DMCL application building several levels of folders, one of the non-leaf folders having trailing whitespace, and relinking predecessor folders causes data corruption that manifests itself in several different ways.  Fighting other fires, Sybase strangeness, and the improbability of it all kept everybody guessing for years.</p>
<p>By the way, I couldn&#8217;t retrieve the API code from the client that demonstrates the problem, but savvy readers should be able to reproduce it.</p>
<p><strong>What should developers do about this?</strong></p>
<p>In custom DMCL code, either trim the whitespace yourself before setting the folder&#8217;s name or do a revert/refresh on each folder object right after saving it.  I seem to recall that was advice often ignored in the early days of DMCL programming.</p>
<p>In Input Accel, if you can&#8217;t hack it with VB or something to do the same, it&#8217;s time for a dm_job running dm_fix_folders as often as necessary.  Running it regularly would be a good thing for everybody to do actually.</p>
<p>I think the DFC didn&#8217;t manifest the problem, and that may explain why I couldn&#8217;t reproduce the problem with webtop or Desktop Client&#8211;that or those apps trim whitespace along with other client-side validations.</p>
<p><strong>What should Documentum and Sybase do about this?</strong></p>
<p>It&#8217;s probably unreasonable to expect Sybase to simply stop trimming whitespace since it may break many systems depending on the behavior.  They could however add configuration options to turn off trimming at the database and session levels.  Then Documentum could provide options for both on their end, maybe in server.ini.  Some installations may depend on standard Sybase behavior when sharing or exposing registered tables to other Sybase instances, so a session option would be polite.</p>
<p>Until and unless Sybase gives the docbase server or DBA some way to deactivate the offending behavior, Documentum could do the same things a DMCL programmer would do explicitly in the DMCL.  I still can&#8217;t stand the idea of an API trimming whitespace, so I&#8217;d prefer they force a cache update on a folder object after a save.  The representation in the persistent store should take precedence over a cache to assure consistency with other processes that may have pulled a fresh copy of their own.</p>
<p><strong>Does SQL Server have the same problem?</strong></p>
<p>I never got around to testing SQL Server.  Being a Sybase derivative, I wonder.  Oracle definitely doesn&#8217;t have the problem, but I&#8217;d appreciate if somebody with a SQL Server docbase would test this out and post a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2008/02/29/the-duplicate-folders-mystery-part-ii/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>An Aspect of My Disappointment</title>
		<link>http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/</link>
		<comments>http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 21:39:30 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Aspects]]></category>
		<category><![CDATA[D6]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[jython]]></category>

		<guid isPermaLink="false">http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/</guid>
		<description><![CDATA[I found EMC&#8217;s webinar, Leveraging Composer and Aspects, informative given the format and one hour time limit. Composer is the Eclipse plug-in and looks good overall. An aspect is a software design technique which could revolutionize Documentum data architecture. How &#8230; <a href="http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I found EMC&#8217;s webinar, <em>Leveraging Composer and Aspects</em>, informative given the format and one hour time limit.  Composer is the Eclipse plug-in and looks good overall.  An <a href="http://en.wikipedia.org/wiki/Aspect_%28computer_science%29" title="Aspect (Computer Science) -- wikipedia.org" target="_blank">aspect is a software design technique</a> which could revolutionize Documentum data architecture.  How EMC implemented aspects, however, repeats their architectural mistake with DBOF.  Oh well.</p>
<p>Composer looks competently-enough done to be a welcome replacement to the persnickety Documentum Application Builder (DAB).   The look and feel (and clutter) is pure Eclipse&#8211;no sexy Apple minimalist influence here.  The win here is one-stop shopping:  Developers won&#8217;t split their attention (nor workstations their resources) across two programs.  That&#8217;s definitely a Good Thing.</p>
<p>Aspects in theory are great.   They allow per-instance extension of both state and behavior, so objects get what they need when they need it.  The reduction in type bloat alone is worth it.  There&#8217;s no need for all those &#8220;optional attributes&#8221; just in case a particular instance becomes a document of record or gets included in a submission.  Fabulous.  In happy wonderful fantasy land, I&#8217;d scrap dm_document completely for a true lightweight object, then staple on versioning, lifecycles, web content, retention, and whatever as needed.</p>
<p>Aspects bring some real architectural benefits, too.  Adding an aspect at runtime doesn&#8217;t require ALTER TYPE activity which can crap out the database on some really big (or really underpowered) docbases.   Older docbases will also benefit from this easy way to add <em>and remove</em> new functionality without the potential dangers of hacking around the existing type hierarchy.  Documentum architects now have a built-in way to do composition, a technique that is largely replacing inheritance in OOP design theory because it keeps the design open and adaptable.</p>
<p>Aspects in practice aren&#8217;t so great.  My fear that aspects would use the DBOF model of requiring Java code client-side has been confirmed, although they made an effort to minimally support DQL since attributes are involved.  (No word on DQL limitations imposed by aspects yet.)  Turning the docbase into a JAR pusher has improved the deployment situation, but it&#8217;s still pushing functionality too far up the stack for my liking.  More moving parts mean more things can fail, get out of sync, or confound.</p>
<p>This design flaw will persist for as long as EMC is swinging their Java hammer, even on screws like scripting. Perhaps <a href="http://developer.emc.com/developer/articles/using_jython_with_dfc.htm" title="Using Jython to connect ... -- developer.emc.com" target="_blank">EMC catching onto jython</a> a few months back means they&#8217;re reaching back into the toolbox.  Funny how they had to make a simple script look so big with all the extraneous print statements&#8211;very Java of them.  If only there were another way to pass messages from a client to Documentum without the DFC.  Hmmm.</p>
<p>Here&#8217;s what I&#8217;m thinking:  All custom client applications and integrations should use DFS going forwrd&#8211;assuming it doesn&#8217;t have its own issues.  DFC programming should be restricted to the uber-server, that big  box drawn around the <em>real</em> docbase servers, webtop servers, DFC servers, full-text indexing servers, site caching servers, etcetera.  Only push DARs&#8211;yes, they had to go there&#8211;to Documentum application servers.  What goes on in the uber-server stays in the uber-server&#8211;including every single line of DFC code.</p>
<p>Aspects are too useful to discount for a few architectural missteps&#8211;as long as you&#8217;re careful where you walk.</p>
<p>Tech Deep Dive:  Exploring Documentum Architecture &#8212; Leveraging Composer and Aspects<br />
Available soon on <a href="http://www.emc.com/events/ondemand-events.esp" target="_blank" title="EMC Events On Demand">EMC Events On Demand</a> (developer access may be required)</p>
]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2008/02/28/the-aspects-of-my-disappointment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

