Archive for the ‘ECM & Portals’ Category

Elegant “contentEditable” Solution for XML

Wednesday, April 13th, 2011

If you’ve ever wanted to do WYSIWYG editing of XML in a browser, I think you’re going to like the elegant solution I stumbled across.  The idea actually culminated from reading Kurt Cagle’s excitement around XQuery in the Browser, and my desire to create a MLUC DemoJam entry that could excite publishers about my latest passion, HTML5.  At first I thought XQuery in the Browser opened a new possibility to do simple browser-based WYSIWYG editing, but as I dug into it I found it was much simpler to do the XSLT in MarkLogic, with granular pointers attached to each editable XML node.  This solution allows me to very simply and efficiently:

  • Render XML to final HTML using existing XSLT
    • only minor modifications are required to add “sourcePath” attributes to the HTML
    • MarkLogic’s xdmp:path function makes it simple to get precise paths to the source XML content
  • Allow WYSIWYG editing of the XML directly from the browser
    • HTML5′s contentEditable attribute makes this simple
  • Use very efficient AJAX calls for immediate update to the source XML document
    • MarkLogic’s xdmp:node-replace allows pin-point updates of only the changed node

All this in less than 100 lines of code!  The video below does better justice to what I’m talking about:

Please note that I’m not trying to demo a full-featured editor here.  This is just a proof of concept.  Obviously many features need to be added before this is usable.  Nevertheless, this simple demo shows an approach that could enable many highly usable solutions for publishers.

MarkLogic? A “NoSQL” Database? YES!

Wednesday, April 14th, 2010

The NoSQL movement had been garnering a lot of attention recently. It’s a trend largely facilitated by the changing demands of the transactional web. Today, the web is bidirectional and much more content oriented than it was in years past. The amount of user generated content has increased exponentially and relational databases are not tailored to handle massive amounts of semi-structured content.

One NoSQL option that we at Avalon are very excited about is Marklogic. Some will argue that it does not fit into their definition of “NoSQL,” but Mark Logic CEO Dave Kellogg did a good job of positioning Marklogic as a relational database alternative (aka NoSQL) in a post last week.

Recently I’ve been spending a lot of time exploring how Marklogic, as a powerful document (yes, key [aka URI] – value) and XML database, can be used to support social media and user generated content use cases. For example, threaded comments are much more naturally represented in a hierarchical, ordered format like XML. Marklogic and xQuery make it easier to store, manipulate, and search these data structures.

To demonstrate, I built a simple element reordering example using Marklogic and jQuery. Even this simple example would be non-trivial in a traditional relational model where lists and order with respect to other elements are unnatural at best.



So this is obviously a super simplified example, but hopefully it gives you a small glimpse into one of the capabilities greatly simplified by Marklogic through XML and xQuery.

I will be at the MarkLogic User conference in San Francisco May 4-6th. I hope to see you there!

Solr in 5 Minutes at Denver Open Source Users Group

Monday, February 1st, 2010

Tomorrow night (Feb 2) I’m excited to participate in the Denver Open Source Users Group’s (DOSUG) first “Lightning Talk” night where I will be presenting an overview of Solr, a leading open-source enterprise search engine. The event is an O’Reilly Ignite style event.  There will be 14+ short 5-minute presentations on various topics.

If you’re in Denver tomorrow night, come check it out and join in the fun. You can find the meeting details here.

Also, check out our latest news to see other events that Avalon will appear at in the coming months.

Managing Content Management

Wednesday, October 8th, 2008

“Make content owners responsible for their content.” That’s long been the mantra of web content management. IT departments and business units have embraced the concept. Highly-evolved enterprise content management systems (ECMS) have been designed so that content owners can manage their own content.

What many of us have come to realize is that enterprise content management operates under two fundamentally different rules from other enterprise systems.

Difference 1: Content is created in Production.

In a traditional enterprise application, code is developed and tested in a non-production environment and promoted through environments to a production system. Well-managed applications are supported by a set of non-production environments, each carefully configured for development, testing, disaster recovery and the like.

While code promotion is the same in an ECMS, the exact opposite is true for content. Content creators and editors work in the production system. The ECMS provides a content deployment process to publish the content to a live site, but the content is not promoted from a non-production environment into production. If production content is needed in a lower environment, it must be demoted, not promoted.

Difference 2: Content owners, not IT, change the system.

IT is normally responsible for configuration and change management, user access and permissions management. IT policy, process, and governance structures have all evolved to a culture of IT control over enterprise applications.

Again, ECMS is different. Content authors, editors and managers can use complex content types that change the behavior of portals, web sites and other applications that use and present content. Content management groups can, and often should, control user access and permissions – both within the ECMS and through personalization of content. Powerful workflow capabilities can be modified to meet changing business rules for how content is created and published. The organization and responsibility for the integrity of content resides outside the IT organization.

These differences create conflicts between the IT and business owners of an ECMS. Some of the more common conflicts are:

  • Disputes over who owns the application
  • Inadequate support funding because no one person is responsible for the full scope of support
  • Arguments over accountability when something goes wrong
  • Problems coordinating code releases in an environment of constant content updates
  • Challenges finding the root cause of problems
  • Insufficient business continuity because disaster recover sites lack current content
  • Gaps in documentation, training and end user support

These conflicts may seem irresolvable and they certainly are daunting.

We need a different approach to managing content management. Creating the right management structures and processes begins, like all change, with recognizing the problem. You will hear more from me over the coming months about both the dimensions of the problem and solutions you can bring into your organization. And I encourage you to make this a dialogue. I’d like to hear from you about your challenges and – even better – your successes. In the meantime, look for the next entry in this series, where I will look specifically at configuration management for an ECMS.