<?xml version="1.0" encoding="UTF-8"?>
<page>
  <created-at type="datetime">2008-09-17T21:23:23Z</created-at>
  <description>Project overview</description>
  <id type="integer">254</id>
  <name>Home</name>
  <number type="integer">47</number>
  <person-id type="integer">3926</person-id>
  <text>= RuDI: Ruby Utilities for DITA processing =

This project is aimed at improving collaboration and production processes for DITA-based web documents, by providing high-end CMS features using inexpensive open-source tools. 

The project has several aspects:

* '''[http://kenai.com/projects/rudi/sources/subversion/content/lib/rudi/xml_transform.rb Ruby-based XML Styles and Transforms (RXSLT)]:''' A Ruby-based XML transformation engine that lets you write transforms in a Ruby-ized version of XSLT, but which puts the power of Ruby at your disposal to do conditional processing, use subroutines, store values for later use, and do anything else that Ruby lets you do (a lot!). 

* '''[[Flexible, Template-Based Production System|DITA Publishing using DreamWeaver Templates]]:''' A set of tools that uses the Ruby transformation engine to merge DITA content into DreamWeaver templates. The  templates let designers focus on the results they want to produce, and minimizes the amount of code the production team has to write to generate it. Pipeline processing lets the production team specify transforms in more flexible and more powerful ways. This system doesn't replace the DITA toolkit, but rather augments it by adding add post-processing steps--which also means that the DITA toolkit can be upgraded at will, without having to retrofit dozens of customizations. 

* '''[[Man Page Processing]]:''' [''in progress''] A utility and suite of processing scripts that uses Ruby processing to generate nroff/troff man pages from HTML generated by the DITA Open Toolkit (OT). Solves some problems that prevents OT-generated troff output from working as a man page. And, because it exists as a separate utility, both it and the OT can be updated separately, so there is no need to re-integrate the utility when you update the OT.

* '''Link-Management, Topic Search, and Version Control:''' [''future''] One of the really important features of any content management system is the ability to keep links intact in the face of renames, moves, and deletes of files and directories. The goal here is to provide those features in the context of one or more open source version control systems like [http://subversion.tigris.org/ Subversion]. (At this point, the [[link management algorithms]] have been defined, but not implemented.) When sophisticated search-and-replace functionality is added to that, the result will be a low-cost solution for topic storage that rivals a high-end CMS. 

*  '''End-To-End Solution:''' [''future''] When the DITA publishing solution and link management capabilities are integrated with Claude Vedovini's [http://www.dita-op.org/ DITA open platform] for web-based editing, the result will be a complete, end-to-end solution for DITA authoring, storage, and production.

* '''Collaboration:''' [''future''] The goal here is to effectively author DITA documents online. Since others are currently working in that space, the idea will be to integrate these tools and support those systems. (Some worth keeping an eye on are [http://www.inmediusdita.com/ DITAStorm ], [http://xopus.com XOpus], and David Green's [http://greensopinion.blogspot.com/2008/11/mylyn-wikitext-targets-oasis-dita.html Wiki-&gt;DITA] tool.) Then--given the ability to collaborate on DITA documents--it becomes possible to enable [http://blogs.sun.com/coolstuff/entry/enabling_collaborative_design_and_decision collaborative design-and-decision-making online] using DITA specializations. 

* '''Localization Support:''' [''future''] A version control system accumulates many changes to a document, but localization teams typically translate only a few of a those versions. To be of maximum benefit to translators, the system must be able to interact with localization systems. Translators need to be able to store identification information for the last version number they worked with (either in the DITA system or in their own system), and get differences between that version and the current version, for translation. ['''Note:''' Such tools can also benefit collaborators, who need an option to get a display that highlights changes from the last version they read.]

The result, ideally, will be a fully integrated system that users can easily set up to produce well-styled, highly readable HTML pages. Those pages will include links to editing tools that use Wiki-text, an online editor like DITAStorm, or a desktop editor like oXygen or XMetaL. At the end of the day, changes made to those topics will ripple through the PDFs and other documents that depend on them, and go out through a variety of delivery channels.

== A Note on Licensing ==

I've avoided the whole discussion of licenses for years. Just not something I wanted to spend my time on. (I know it's important. But I have limited brain cycles.) To set up this project, however, I needed to make a selection from the 18 or 20 &quot;recommended&quot; license models.

Google is your friend. I typed in the names of several promising candidates, to find a page that compared them. I came across this one, and relied on it to make a decision:
[http://weblogs.java.net/blog/evanx/archive/2006/05/cddling_up_with_1.html this page].

To summarize the points made in that page:

* GPL licenses are &quot;viral&quot;, so they're not friendly to a company that wants to use your stuff to make money.  But they do ensure that all improvements and extensions go back to the community.

* BSD licenses (and derivatives like the Apache license) are &quot;use at your own risk&quot; licenses. They're business friendly, but do not ensure the growth of the code in the &quot;software commons&quot;.

* The Mozilla license was really good, but had a couple of bugs.

* The CDDL license claims to fix those bugs. In the process, it distinguishes between &quot;derived  works&quot; (new files) and &quot;modifications&quot; (changes to existing files). You're not required to contribute derived works back to the community (although you can--and should, whenever possible), but you are required to submit modifications back to the community for approval and adoption.

The CDDL seemed like the right idea, so that's the license I chose. (I haven't spent the time reading the license and consulting with lawyers to be sure that it actually does all that, but it sounds like it is trying to do the right thing, at least. So it looked like the best choice available at the time.)</text>
  <text-as-html>&lt;h1&gt;&lt;a name='RuDI:_Ruby_Utilities_for_DITA_processing'&gt;&lt;/a&gt; RuDI: Ruby Utilities for DITA processing &lt;/h1&gt;
&lt;p&gt;
This project is aimed at improving collaboration and production processes for DITA-based web documents, by providing high-end CMS features using inexpensive open-source tools. 

&lt;/p&gt;&lt;p&gt;The project has several aspects:

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;&lt;a class='external' href=&quot;http://kenai.com/projects/rudi/sources/subversion/content/lib/rudi/xml_transform.rb&quot;&gt;Ruby-based XML Styles and Transforms (RXSLT)&lt;/a&gt;:&lt;/b&gt; A Ruby-based XML transformation engine that lets you write transforms in a Ruby-ized version of XSLT, but which puts the power of Ruby at your disposal to do conditional processing, use subroutines, store values for later use, and do anything else that Ruby lets you do (a lot!). 
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;&lt;a href='&lt;?url_for_page Flexible, Template-Based Production System?&gt;' class='&lt;?class_for_page_link Flexible, Template-Based Production System?&gt;'&gt;DITA Publishing using DreamWeaver Templates&lt;/a&gt;:&lt;/b&gt; A set of tools that uses the Ruby transformation engine to merge DITA content into DreamWeaver templates. The  templates let designers focus on the results they want to produce, and minimizes the amount of code the production team has to write to generate it. Pipeline processing lets the production team specify transforms in more flexible and more powerful ways. This system doesn't replace the DITA toolkit, but rather augments it by adding add post-processing steps--which also means that the DITA toolkit can be upgraded at will, without having to retrofit dozens of customizations. 
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;&lt;a href='&lt;?url_for_page Man Page Processing?&gt;' class='&lt;?class_for_page_link Man Page Processing?&gt;'&gt;Man Page Processing&lt;/a&gt;:&lt;/b&gt; [&lt;i&gt;in progress&lt;/i&gt;] A utility and suite of processing scripts that uses Ruby processing to generate nroff/troff man pages from HTML generated by the DITA Open Toolkit (OT). Solves some problems that prevents OT-generated troff output from working as a man page. And, because it exists as a separate utility, both it and the OT can be updated separately, so there is no need to re-integrate the utility when you update the OT.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;Link-Management, Topic Search, and Version Control:&lt;/b&gt; [&lt;i&gt;future&lt;/i&gt;] One of the really important features of any content management system is the ability to keep links intact in the face of renames, moves, and deletes of files and directories. The goal here is to provide those features in the context of one or more open source version control systems like &lt;a class='external' href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;. (At this point, the &lt;a href='&lt;?url_for_page link management algorithms?&gt;' class='&lt;?class_for_page_link link management algorithms?&gt;'&gt;link management algorithms&lt;/a&gt; have been defined, but not implemented.) When sophisticated search-and-replace functionality is added to that, the result will be a low-cost solution for topic storage that rivals a high-end CMS. 
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;  &lt;b&gt;End-To-End Solution:&lt;/b&gt; [&lt;i&gt;future&lt;/i&gt;] When the DITA publishing solution and link management capabilities are integrated with Claude Vedovini's &lt;a class='external' href=&quot;http://www.dita-op.org/&quot;&gt;DITA open platform&lt;/a&gt; for web-based editing, the result will be a complete, end-to-end solution for DITA authoring, storage, and production.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;Collaboration:&lt;/b&gt; [&lt;i&gt;future&lt;/i&gt;] The goal here is to effectively author DITA documents online. Since others are currently working in that space, the idea will be to integrate these tools and support those systems. (Some worth keeping an eye on are &lt;a class='external' href=&quot;http://www.inmediusdita.com/&quot;&gt;DITAStorm &lt;/a&gt;, &lt;a class='external' href=&quot;http://xopus.com&quot;&gt;XOpus&lt;/a&gt;, and David Green's &lt;a class='external' href=&quot;http://greensopinion.blogspot.com/2008/11/mylyn-wikitext-targets-oasis-dita.html&quot;&gt;Wiki-&amp;gt;DITA&lt;/a&gt; tool.) Then--given the ability to collaborate on DITA documents--it becomes possible to enable &lt;a class='external' href=&quot;http://blogs.sun.com/coolstuff/entry/enabling_collaborative_design_and_decision&quot;&gt;collaborative design-and-decision-making online&lt;/a&gt; using DITA specializations. 
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; &lt;b&gt;Localization Support:&lt;/b&gt; [&lt;i&gt;future&lt;/i&gt;] A version control system accumulates many changes to a document, but localization teams typically translate only a few of a those versions. To be of maximum benefit to translators, the system must be able to interact with localization systems. Translators need to be able to store identification information for the last version number they worked with (either in the DITA system or in their own system), and get differences between that version and the current version, for translation. [&lt;b&gt;Note:&lt;/b&gt; Such tools can also benefit collaborators, who need an option to get a display that highlights changes from the last version they read.]
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The result, ideally, will be a fully integrated system that users can easily set up to produce well-styled, highly readable HTML pages. Those pages will include links to editing tools that use Wiki-text, an online editor like DITAStorm, or a desktop editor like oXygen or XMetaL. At the end of the day, changes made to those topics will ripple through the PDFs and other documents that depend on them, and go out through a variety of delivery channels.

&lt;/p&gt;&lt;h2&gt;&lt;a name='A_Note_on_Licensing'&gt;&lt;/a&gt; A Note on Licensing &lt;/h2&gt;
&lt;p&gt;
I've avoided the whole discussion of licenses for years. Just not something I wanted to spend my time on. (I know it's important. But I have limited brain cycles.) To set up this project, however, I needed to make a selection from the 18 or 20 &amp;quot;recommended&amp;quot; license models.

&lt;/p&gt;&lt;p&gt;Google is your friend. I typed in the names of several promising candidates, to find a page that compared them. I came across this one, and relied on it to make a decision:
&lt;a class='external' href=&quot;http://weblogs.java.net/blog/evanx/archive/2006/05/cddling_up_with_1.html&quot;&gt;this page&lt;/a&gt;.

&lt;/p&gt;&lt;p&gt;To summarize the points made in that page:

&lt;/p&gt;&lt;ul&gt;&lt;li&gt; GPL licenses are &amp;quot;viral&amp;quot;, so they're not friendly to a company that wants to use your stuff to make money.  But they do ensure that all improvements and extensions go back to the community.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; BSD licenses (and derivatives like the Apache license) are &amp;quot;use at your own risk&amp;quot; licenses. They're business friendly, but do not ensure the growth of the code in the &amp;quot;software commons&amp;quot;.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; The Mozilla license was really good, but had a couple of bugs.
&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; The CDDL license claims to fix those bugs. In the process, it distinguishes between &amp;quot;derived  works&amp;quot; (new files) and &amp;quot;modifications&amp;quot; (changes to existing files). You're not required to contribute derived works back to the community (although you can--and should, whenever possible), but you are required to submit modifications back to the community for approval and adoption.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
The CDDL seemed like the right idea, so that's the license I chose. (I haven't spent the time reading the license and consulting with lawyers to be sure that it actually does all that, but it sounds like it is trying to do the right thing, at least. So it looked like the best choice available at the time.)&lt;/p&gt;</text-as-html>
  <updated-at type="datetime">2010-01-16T21:26:26Z</updated-at>
  <wiki-id type="integer">949</wiki-id>
</page>
