<?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>Thu, 22 Mar 2012 21:12:20 +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>Traits in #NGIS: Cautious Optimism on the #Documentum Back End</title>
		<link>http://kominetz.com/2012/02/27/traits-in-ngis-cautious-optimism-on-the-documentum-back-end/</link>
		<comments>http://kominetz.com/2012/02/27/traits-in-ngis-cautious-optimism-on-the-documentum-back-end/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 03:33:12 +0000</pubDate>
		<dc:creator>john.kominetz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Documentum Architect]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NGIS]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Traits]]></category>

		<guid isPermaLink="false">http://kominetz.com/?p=1097</guid>
		<description><![CDATA[Traits are a total break from the traditional object model in Documentum.  With the Next Generation Information Server (NGIS) being built from the ground up with new technologies and design principles, EMC could seize the opportunity to transform rather than &#8230; <a href="http://kominetz.com/2012/02/27/traits-in-ngis-cautious-optimism-on-the-documentum-back-end/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[
<p>Traits are a total break from the traditional object model in Documentum.  With the Next Generation Information Server (NGIS) being built from the ground up with new technologies and design principles, EMC could seize the opportunity to transform rather than merely update server-side Documentum as we know it.  However, such breaks are rarely clean and can penalize existing users with migration, training, and change management issues.</p>
<div id="attachment_1114" class="wp-caption alignright" style="width: 250px"><img class=" wp-image-1114   " title="YE" src="http://kominetz.com/wp-content/uploads/2012/02/YE-300x225.jpg" alt="" width="240" height="180" /><p class="wp-caption-text">Previously on DCTM: The Next Generation</p></div>
<p><strong>Yesterday&#8217;s Docbase</strong></p>
<p>There has been a growing disconnect between how we design for the back end and the front end. The front end developer can apply agile methodologies, use new patterns like composition over inheritance, and organize data based on tags and facets instead of deep hierarchies.  Back-end developers are getting these benefits from new systems like NoSQL databases, but Documentum architects are stuck in the 90s with the current content server&#8211;in no small part because it runs on relational databases like Oracle.  Documentum did an excellent job marrying objects and tables before ORM (object-relational mapping) was a catchy initialism; the inherent disparity between the models that was inconvenient before, but now it actively hinders new ideas on the back end.  Basing NGIS on EMC&#8217;s XML database xDB changes all that, and traits are a windfall from that decision.</p>
<p>The latest details on traits comes from <a title="Next Generation Information Server: Traits Explained - emccrazycontent.com" href="http://emccrazycontent.com/2011/12/16/next-generation-information-server-traits-explained/">a video by Jeroen van Rotterdam</a>, IIG&#8217;s Chief Architect.  There are two basic constructs for designing with traits:  Trait definitions group data definitions, services, and event models into packages that are attached to objects at runtime.  Type definitions control which traits can or must be attached to objects and how those traits resolve conflicts; e.g., order of precedence or mutual exclusion.  Objects end up being truly lightweight&#8211;only an ID attribute for sure and very probably a type attribute as well.  This will be a very different world than the present-day Documentum schema of data-only inheritance, tacked-on type-aware behavior, and a bloated base object type with every possible attribute stuffed into it.</p>
<p>For Documentum architects and server-side programmers, this is the first exciting thing to happen to Documentum since, well, forever.  The model is one of the things that made Documentum stand out; it painted a rich, complex picture of what a document could be. Instead of document as file, a document included versions, renditions, and complex structures with flexible binding (i.e., virtual documents).  A document was a different thing (or collection of things) based on context and function.  It also stepped beyond the straight jacket of the relational model to include multi-value (repeating) attributes and SQL extensions that recognized the world is more like objects than tables.  Although this perspective on document management is still valid today, the methodologies to realize it feel outdated. Traits represent almost two decades of lessons learned since the first docbase schemas struggled out of the primordial scanned-document/shared-folder ooze.</p>
<p>Changes of this magnitude don&#8217;t happen often in software systems.  A mature market doesn&#8217;t take well to fundamental shifts that aren&#8217;t backward compatible, so there&#8217;s significant risk here assuming EMC wants to keep its current customers happy. Discussion about migration paths from the current content server to NGIS are still little more then speculation. Given how many customers are turning to other options, being bold may be the solution if EMC can make a better product with a less onerous migration path.  Let&#8217;s put aside those messy details for now and consider what traits may mean for the Documentum architect.</p>
<div id="attachment_1106" class="wp-caption alignright" style="width: 310px"><img class=" wp-image-1106  " title="favorite-things" src="http://kominetz.com/wp-content/uploads/2012/02/favorite-things1.jpg" alt="" width="300" height="250" /><p class="wp-caption-text">Will this become my new Linkedin profile picture?</p></div>
<p><strong>A  Few of My Favorite Things</strong></p>
<p>It&#8217;s hard to say if the implementation of traits will live up to the potential from what we know so far.  I had similar high hopes for DBOF, light-weight objects, Aspects, and DFS when talked about in theory, but they all fell short in implementation either in outright design or by being born prematurely.  Letting my inner optimist out of his cage for a moment, these are some things I hope to see the implementation of traits bring about:</p>
<p style="padding-left: 30px;"><em>Attributes become rich data rather than columns in a database.</em> Defining and constraining attributes using XSD is an easy win since NGIS sits atop EMC&#8217;s XML-based xDB instead of an RDBMS, and it gets rid of the stapled-on data dictionary in the current Documentum toolbox.  I hope this means that attributes can contain complex data&#8211;perhaps small XML documents and certainly associative arrays&#8211;but removing size constraints and character set problems (odd escape characters, special characters, unicode, etc.) is a huge win regardless. Maybe this will help people realize that attributes aren&#8217;t all metadata.  Sometimes, they <em>are</em> the data; e.g., non-content objects.</p>
<p style="padding-left: 30px;"><em>The broken promises of DBOF and Aspects can finally be fully realized.</em>  A weakness in Documentum&#8217;s original model was the separation of data and behavior.  Being object-based, there were familiar ways to organize data (e.g., inheritance) that fell short of real OOP because they didn&#8217;t equally apply to behavior.  DBOF was the first attempt to relate code to the type hierarchy; it was hobbled by being duct-taped onto the side of the client libraries (DFC) instead of integrated into the server directly.  Then Aspects repeated DBOF&#8217;s same fundamental mistakes.  Traits appear to marry data and behavior nicely, and I can&#8217;t imagine them being handled anywhere but together on the server.</p>
<p style="padding-left: 30px;"><span style="color: #000000;"><em>Traits eliminate the need for inheritance and fat objects.</em>  Inheritance as a design principle has been under fire for years:  Single inheritance is restricting; multiple inheritance introduces pitfalls along with greater flexibility; both are difficult to refactor.  The single inheritance nature of the Documentum object model wasn&#8217;t as restrictive then because it only included data.  With behavior coming along for the ride in NGIS, it becomes a bigger issue.  Just like in programming, it looks like EMC is favoring <a title="Composition Over Inheritance - wikipedia.org" href="http://en.wikipedia.org/wiki/Composition_over_inheritance">composition over inheritance</a>.  I haven&#8217;t seen anything showing inheritance for types or traits in NGIS yet, and I won&#8217;t be surprised if it doesn&#8217;t.  Another consequence of this composition-based approach is the object becomes really, really lightweight&#8211;little more than identity on one end and trait container on the other.  That looks surprisingly like the really, really lightweight document in MongoDB with it&#8217;s single _ID default attribute.</span></p>
<p style="padding-left: 30px;"><em>The Documentum architect gets a whole new (NoSQL) toolbox to build and extend systems.</em> Although Documentum grew out of the relational database culture of the time, it broke major relational conventions because the document management problem space felt more object-oriented than table-oriented; i.e., repeating attributes, virtual documents, object-ish extensions to SQL.  Now that NoSQL is here, it&#8217;s obviously a better fit:  Documentum architects taking a look at <a title="MongoDB Schema Design Principles &amp; Practice - 1oGen" href="http://www.10gen.com/presentations/webinar/mongodb-schema-design-principles-and-practice">10Gen&#8217;s webinar on schema design in MongoDB</a> should quickly recognize the familiar ground.  What&#8217;s new is how dynamic, real-time the data model becomes with traits because they are only attached as needed at runtime, and objects can have different versions of a trait at the same time allowing for upgrades in a conditional or rolling manner.  The docbase will no longer be where content goes to die; it becomes a <a title="Livin' Thing by Electric Light Orchestra - amazon.com" href="http://www.amazon.com/Livin-Thing/dp/B00136LM0C">Livin&#8217; Thing</a>. Hopefully sizing, deploying, and scaling NGIS systems will also look more NoSQL than relational, but traits don&#8217;t give us any hints there.</p>
<div id="attachment_1111" class="wp-caption alignright" style="width: 232px"><img class="size-medium wp-image-1111 " title="scream" src="http://kominetz.com/wp-content/uploads/2012/02/scream-222x300.jpg" alt="" width="222" height="300" /><p class="wp-caption-text">Me if dm_history repeats itself</p></div>
<p><strong>Cautious Optimism</strong></p>
<p>I&#8217;ll admit to some cautious optimism here; traits may be a sign that NGIS will make Documentum architecture interesting again.  Beyond just updating the toolbox, the new capabilities may inspire organizations to start solving new, interesting problems again. Documentum did a good job of getting people to think about document management the first time around, but now everybody &#8220;knows&#8221; what document management is and what Documentum is &#8220;good for&#8221;.  Traits hint that NGIS could be a game changer on the much-less-talked-about back end; it won&#8217;t directly delight the New User, but a pretty front end on a shaky server foundation won&#8217;t be particularly <em>useful</em> to the New User. It&#8217;s up to EMC to get the implementation right and get the word out.</p>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><em>Based on the blog post <a href="http://emccrazycontent.com/2011/12/16/next-generation-information-server-traits-explained/">Next Generation Information Server: Traits Explained | Jeroen&#8217;s Crazy Content</a> and video:</em></p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/jpPdtfwjmc4?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2012%252F02%252F27%252Ftraits-in-ngis-cautious-optimism-on-the-documentum-back-end%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Traits%20in%20%23NGIS%3A%20Cautious%20Optimism%20on%20the%20%23Documentum%20Back%20End%22%20%7D);"></div>

]]></content:encoded>
			<wfw:commentRss>http://kominetz.com/2012/02/27/traits-in-ngis-cautious-optimism-on-the-documentum-back-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2010%252F08%252F12%252Fbeating-a-dead-dmhorse%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Beating%20a%20Dead%20dmHorse%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2010%252F06%252F22%252Fdocumentum-the-private-option%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Documentum%20%26%20The%20Private%20Option%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2010%252F05%252F16%252Femc-discovers-magnetic-poetry%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22EMC%20discovers%20Magnetic%20Poetry%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2009%252F04%252F19%252Ftwitter-misses-the-mark-with-mentions%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Twitter%20Misses%20the%20Mark%20with%20Mentions%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2009%252F01%252F02%252Flike-comparing-apples-and-content-addressable-storage-arrays%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Like%20Comparing%20Apples%20and%20Content%20Addressable%20Storage%20Arrays%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2009%252F01%252F01%252Fhappy-new-2009%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Happy%20New%202009%21%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2008%252F12%252F09%252Fevents-since-14-september-2008%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Events%20Since%2014%20September%202008%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2008%252F09%252F03%252Fresume-updated%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Resume%20Updated%22%20%7D);"></div>

]]></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>
<div class="topsy_widget_data topsy_theme_blue" style="margin: 1em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fkominetz.com%252F2008%252F02%252F29%252Fthe-duplicate-folders-mystery-part-ii%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22The%20Duplicate%20Folders%20Mystery%2C%20Part%20II%22%20%7D);"></div>

]]></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>
	</channel>
</rss>

