Monday, April 03, 2006

Generating DOCTYPE and ENTITY DECLs in XSLT

I ran into a very interesting challenge lately, and since RoboHelp has been EOL'd, I thought I'd try to benefit the rest of the community that might need to migrate content out of RoboHelp. There is an export handler in RoboHTML that will convert content to DocBook, but unfortunately, it doesn't provide very good or accurate markup, IMO.

Since the default RoboHTML export handler for DocBook wouldn't work for us, we created a new export handler, based on the original. What I wanted, was a book file that contained entity declarations for each topic. The trick was trying to generate the Doctype declaration, with the entity declarations. XSLT provides a way to generate a PUBLIC and SYSTEM identifier in the DOCTYPE declaration for an output document, but does not provide a way to write out the entity declarations as an internal DTD subset in that doctype decl.

Part of the solution is to not use the XML output method, but to use the TEXT method. This was working splendidly, until it came time to write the file entity reference in the content. From what I could tell, the problem is with the msxml parser that RoboHelp uses when exporting content. No matter how I tried to escape the "&", I would get & in the entity reference, which of course would not resolve.

Instead of building it into the export handler, I came up with a stylesheet to process the *_toc.xml file that resulted from the DocBook export.

Here are some snippets from the resulting code. The critical components are generating the DOCTYPE decl, generating the ENTITY decl, and then creating the entity reference.

<xsl:output method="text"  indent="yes"/>

<xsl:template match="/">
  <xsl:text disable-output-escaping="yes"><!DOCTYPE book PUBLIC "-//COMPANY//DTD DocBook-Based Extension v1.0//EN" "extended-docbook.dtd" [
    <!ENTITY glossary SYSTEM "glossary.xml">
  </xsl:text>
  <xsl:for-each select="//tocentry/ulink[normalize-space(@url)!= '']">
    <xsl:call-template name="generate_entity_decl">
      <xsl:with-param name="url" select="@url" />
      <xsl:with-param name="title" select="@title" />
    </xsl:call-template>
  </xsl:for-each>
  <xsl:text disable-output-escaping="yes">]></xsl:text>
  <book>
    <title><xsl:value-of select="title"/></title>
    <bookinfo>
      <xsl:call-template name="generate_publisher_info">
        <xsl:with-param name="rootnode" select="." />
      </xsl:call-template>
    </bookinfo>
<xsl:apply-templates/> 
    <xsl:text disable-output-escaping="yes">&</xsl:text>glossary;
  </book>
</xsl:template>

The above creates the DocType declaration, but relies on generating a valid entity name for the entity declarations:

  <!-- =========== generate_file_url template ============= -->
  <xsl:template name="entityName">  
    <xsl:param name="url"  />
    
    <xsl:choose>
      <xsl:when test="contains($url,'/')">        
        <xsl:value-of select="substring-before($url,'/')"/>
        <xsl:call-template name="entityName">          
          <xsl:with-param name="url" select="substring-after($url, '/')"/>         
        </xsl:call-template>       
      </xsl:when>     
      <xsl:when test="contains($url,'\')">        
        <xsl:value-of select="substring-before($url,'\')"/>
        <xsl:call-template name="entityName">          
          <xsl:with-param name="url" select="substring-after($url, '\')"/>         
        </xsl:call-template>       
      </xsl:when> 
      <xsl:otherwise>       
        <xsl:value-of select="$url"/>       
      </xsl:otherwise>     
    </xsl:choose>
    
  </xsl:template>
  
  <!-- ======== outputs entity references ======== -->
  <xsl:template name="generate_file_url">
    <xsl:param name="url" select="''" />
    <xsl:param name="title" select="''" />
    
    <xsl:variable name="transformedURL">
      <xsl:value-of select="translate(string($url), ' ()','_' )" />
    </xsl:variable>
    
    <xsl:variable name="entity.file.name">
      <xsl:call-template name="entityName">
        <xsl:with-param name="url" select="$transformedURL" />
      </xsl:call-template>
    </xsl:variable>
    
    <xsl:variable name="entity.name">
      <xsl:choose>
        <xsl:when test="contains($entity.file.name, 'htm')">
          <xsl:value-of select="substring-before($entity.file.name, '.htm')" />         
        </xsl:when>
        <xsl:when test="contains($entity.file.name, 'xml')">
          <xsl:value-of select="substring-before($entity.file.name, '.xml')" />         
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$entity.file.name" />
        </xsl:otherwise>
      </xsl:choose> 
    </xsl:variable>
    
    <!-- outputs entity reference -->
    <xsl:text disable-output-escaping="yes">&</xsl:text>
    <xsl:value-of select="$entity.name" />
    <xsl:text disable-output-escaping="yes">; 
    </xsl:text>
    
  </xsl:template>

The above templates create a valid entity name, based on the path to the file. I tried to adjust for both XML, HTML and unknown file names. Following is the template that creates the ENTITY declaration that needs to be a part of the internal subset in the DOCTYPE declaration.

  <!-- This generates an entity declaration: <!ENTITY foo SYSTEM "foo.xml"> -->
  <xsl:template name="generate_entity_decl">
    <xsl:param name="url" select="''" />
    <xsl:param name="title" select="''" />
    
    <xsl:variable name="transformedURL">
      <xsl:value-of select="translate(string($url), ' ()','_' )" />
    </xsl:variable>
    
    <xsl:variable name="entity.file.name">
      <xsl:call-template name="entityName">
        <xsl:with-param name="url" select="$transformedURL" />
      </xsl:call-template>
    </xsl:variable>
    
    <xsl:variable name="entity.name">
      <xsl:choose>
        <xsl:when test="contains($entity.file.name, 'htm')">
          <xsl:value-of select="substring-before($entity.file.name, '.htm')" />         
        </xsl:when>
        <xsl:when test="contains($entity.file.name, 'xml')">
          <xsl:value-of select="substring-before($entity.file.name, '.xml')" />         
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$entity.file.name" />
        </xsl:otherwise>
      </xsl:choose> 
    </xsl:variable>
    
    <!-- outputs entity declaration -->
    <xsl:text disable-output-escaping='yes'><!ENTITY </xsl:text><xsl:value-of select='$entity.name'/><xsl:text> SYSTEM
"</xsl:text><xsl:value-of select='$transformedURL'/><xsl:text>"</xsl:text><xsl:text disable-output-escaping='yes'>>
    </xsl:text> 
  </xsl:template>

As you can see, there are several variables that have been reused, and could probably be declared globally or more efficiently. The remaining task is to create the entity reference in the content. Since the RoboHelp export handler dumped everything as a tocentry/ulink, it's pretty easy to extract and re-write the entity reference we really want:

 
  <xsl:template match="tocpart">
    <chapter>
      <title>
        <xsl:value-of select="tocentry"/>
      </title>
      <xsl:apply-templates />
    </chapter>
  </xsl:template>
  
  <xsl:template match="tocchap">
    <xsl:choose>
      <xsl:when test="tocentry/ulink">
    <xsl:call-template name="generate_file_url">
      <xsl:with-param name="url">
        <xsl:value-of select="tocentry/ulink/@url"/>
      </xsl:with-param>
    </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <section>
          <title>
            <xsl:value-of select="tocentry" />
          </title>
          <xsl:apply-templates select="toclevel1"/>
        </section>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

The finer details will be left as an exercise to the reader, but this was a particularly interesting problem and solution. Hope this helps!

Categories: ,

Tuesday, March 28, 2006

DITA 2006 - morning sessions from Day 1

As I mentioned before, I thought day 1 of DITA 2006 was a little "marketing" heavy, meaning most of the sessions dealt with the benefits of DITA and not much technical detail.

Keynote: The Business Benefits Obtained from Using DITA at IBM – Dave Schell

Dave’s keynote was a good overview of the benefits of DITA. Key benefits are the same as other structured markup benefits: increased consistency of content, content reuse, multiple outputs from a single source, faster and cheaper globalization and enabling personalization. What I thought was interesting, were the numbers he shared. A typical infocenter at IBM contains about 5,000 topics! He said the content is maintained primarily in their source code control and tied to the software builds. I think if you are planning to author large amounts of topics in DITA, a content management system is essential.

DITA is Ready for Prime Time. Are you Ready for DITA? – Eliot Kimber

Eliot’s preso was one of the more interesting, and controversial of the conference. I enjoyed it immensely. Eliot commented, “The more interesting question is why would DITA not be the right answer?” Some of these reasons may include: a small writing group that cannot afford some of the tools that help to author DITA effectively, such as an author-friendly XML editor (Arbortext or XMetal) and a content management system (such as Documentum, Ixiasoft, or XyEnterprise).

The most controversial part of Eliot’s preso was the comment that

“In order to use DITA effectively, you have to Specialize!”

Derived types can inherit processing defined for their ancestors. Industries can also create a set of specific types for their needs. DITA Specializations, by design, reduce the risk of creating customizations (where with a DocBook customization you have to be careful about maintaining your customization when the standard changes).

Eliot also discussed some of the hidden traps you can run into with DITA:

  • Inefficient processes – automating an inefficient process will fail to deliver the expected benefits and cost savings!
  • organizational boundaries – must focus on the enterprise bigger picture if it’s to be done right.
  • technology limitations – no OOB DITA solution. info analysis still necessary to determine additional specs, format analysis and stylesheet dev, legacy data conversion, integration with other tools (translation memory, DAM, CMS, etc.)
  • resource utilization – SMEs perform time consuming formatting tasks, indexing content, redundant content creation, maintenance of reused content, using expensive resources for copyediting and production functions.

My other favorite quote from Eliot:

“Do not underestimate the level of expertise and effort involved to implement DITA smoothly.”

Tony DiSilva also started the recurring question at the conference:

“How do you know when you should be using DocBook and when you should be using DITA?”

Specialization is essential for larger companies. The decision for smaller enterprises may be fuzzier between DITA and DocBook. With DITA, you will likely need a CMS (increasing the cost). DITA 1.1 is focusing on adding features to enable books. (front and back matter, indexing, etc.). This will make it harder to decide between DITA and DocBook.

How can they play together? Perhaps DocBook could adopt some form of DITA specialization mechanisms for fallback processing of customizations. The two standards could/should align some of the core element types in DITA 2.0/DocBook 6.0. For example, DocBook predates HTML, so those tags weren’t adopted. DITA started with the HTML tags.

IMO, if you already have your content in DocBook, there is no compelling reason to switch or migrate your content to DITA. As Norm Walsh has pointed out previously, with possibly one exception, everything that you can do in DITA can be done with DocBook. We have helped several of our customers do DITA-like implementations using DocBook. If your content is unstructured, and you are moving to a structured markup standard, the decision is on more equal footing. Key considerations are: youth of DITA vs. maturity of DocBook, robustness of markup and toolsets, ease of exchange with other partners or groups (what standard are they using? how portable do you need your content? what is the expected lifespan of the content? what is the current structure of the content, and how much rework will be needed as part of the migration?).

My Discussions with the founding fathers of DITA

One of the great things about this conference is access to the founding fathers of DITA! I had a chance to chat with Michael Priestley, Don Day and Rob Anderson about several topics:

Is DITA planning to use/provide RelaxNG schemas?
Don Day – not really. RelaxNG doesn’t have default attributes, and DITA relies heavily on attributes.

Do you see any tie between DITAMaps and Topic Maps?
Michael Priestly – they are very different. DITA maps are much more hierarchical and constraining, where XTMs focus on relationships and are non-constraining.

Looks like this post is getting a little long, so I'll split up my posts. Stay tuned for more DITA 2006!

Categories:

Sunday, March 26, 2006

DITA 2006

I’m traveling home after attending the DITA 2006 conference in Raleigh, NC. In all, it was a pretty good conference. It was definitely the 1.0 conference, as the first day was primarily touting the benefits of DITA and a little lax on technical content.

Being able to chat with the experts like Michael Priestly, Don Day, Robert Anderson, Paul Prescod, Eliot Kimber, Norm Walsh and Bob Stayton was worth the price of admission alone!

By far, my favorite sessions were: Eliot Kimber's "Are you ready for DITA?", Norm Walsh's "Reflections on DocBook and DITA", Jennifer Linton's "Developing DITA Maps", and Michael Priestly's "Specialization"

Stay tuned for a series of posts with a summary of the sessions I attended, and a few pics thrown in for fun! I did try to moblog throughout the conference, but apparently Raleigh was not as friendly to T-Mobile, and my posts never made it to blogger.

Categories:

Tuesday, March 21, 2006

New DITA XML.org Focus Area

The OASIS DITA TC has officially launched a Focus Area site at: http://dita.xml.org/

The site features three main sections:

  1. DITA Knowledge Base, which provides a technical and educational background on the standard, as compiled by the site's Editorial Board;
  2. DITA Today, which serves as a community bulletin board and directory; and
  3. DITA Wiki, which enables the public to dynamically collaborate on documents and add new pages.

Check it out!

Categories: ,

DocBook to SCORM conversion

Sasha Philippov has announced the release of a free command-line tool for DocBook to SCORM 2004 conversion. It is the command-line Ant-based java application intended to generate SCORM 2004 compliant packages from DocBook 4.4 sources. It's free to use but not open source. It uses XSL stylesheets from DocBook project on SourceForge to generate HTML resources.

You can find more information on the tool at: http://pyxx.org/DocBook2SCORM/overview.html

Michael Smith reported an "Unsupported major.minor version 49.0" error with Java 1.4.2, so you may want to use the latest version of Java.

I am also doing some work with clients on authoring eLearning content in DocBook and exporting to SCORM, so I will definitely be giving this a try! Will post my results later...

Update: Sasha has recompiled the converter to support JRE 1.3 and higher.

Categories: , ,

Monday, March 20, 2006

Doctor Who: The Next Regeneration

My wife and I were pleasantly surprised to see the Sci-Fi Channel carrying Doctor Who! We've been looking for a new show, as Battlestar is getting a little too dark, and we can't seem to stay on top of Stargate (time-commitment, as opposed to not understanding plotlines). The show will be part of Sci-Fi Fridays.

My friend Cam first introduced me to Doctor Who through the boardgame (Doctor Who: The Game of Time and Space) and also the TV series starring Tom Baker.

I'd lost touch with Doctor Who, since I also liked classic Buck Rogers, Battlestar Galactica, Star Trek, Star Trek:The Next Generation, and more...

When I saw the series promo on Sci-Fi, I thought it was new! Turns out after research on Wikipedia, that the series being broadcast is from 2005, starring Christopher Eccleston. There is already a new Doctor, David Tennant.

From the two episodes we saw this past Friday, starring Christopher Eccleston and Billie Piper, we are very excited to watch!

Categories:

Monday, March 13, 2006

My Favorite Martian

Check out what Google just released! Google Mars! I've always dreamt about going to Mars, but this is the next best thing to being there...

I thought it was also cool that the MRO (Mars Recon. Orbiter) entered orbit around Mars on my 10th Anniversary on Friday! Details on this mission are here: http://mars.jpl.nasa.gov/mro/. This mission/spacecraft should give Google Mars some GREAT images to use!

Categories:

Friday, March 10, 2006

Ten years of wedded bliss!

  Posted by Picasa

Today, Dawn and I mark ten years of marriage! We are planning a trip to Scotland this year to celebrate. Tonight we are getting together with many of our original wedding party. It will be fun to see everyone again. For those not with us, we will be thinking of you!

Categories: ,

New DocBook releases

Norm Walsh has published the following new DocBook releases:

Version 4.5CR2. This is the Committee Specification version of DocBook V4.5 with a minor bug-fix to citebiblioid. The reference documentation has also been updated.

Version 5.0b4. This incorporates a number of changes including a new "cover" element, a fix for title-ordering in info elements, a few minor renamings, and a build fix to correct the totally unusable XSD files distributed with b2 and b3. The reference documentation has also been updated.

Simplified DocBook V1.2CR1. This fixes a bug in 1.1 that requires a caption on an informaltable. It is also based on 4.5CR2.

The schemas are available here: DocBook 4.5CR2, DocBook 5.0b4, Simplified DocBook 1.2CR1

Thanks, Norm!

Categories:

Thursday, March 09, 2006

Agile Publishing with XML

Michael Fitzgerald (of XML Hacks fame) has written an interesting article on Agile Publishing.

Agile publishing shouldn't need to worry about common tools, as long as everyone on the project is using a common format (XML) and common schema/DTD (e.g. DocBook). Each person could work on whatever section of the document they want using the XML editor of their choice (vim, jedit, Arbortext, oXygen, you name it!) as long as there is some validation prior to checking it back in!

What is desperately needed are more XML editors that support RelaxNG. Thank you oXygen! However, we need the more author-friendly tools to support RelaxNG. (Psst! That means you, Arbortext and XMetal!)

Categories:

Wednesday, March 08, 2006

DocBook specialization made easy

Jirka Kosek has created a most excellent summary of how to easily create a custom specialization of DocBook, using the DocBook v5.0 spec. Check it out at:
http://xmlguru.cz/2006/03/easy-docbook-specialization. As Jirka says, "Dumb easy!"

Categories: ,

Friday, February 24, 2006

Problem converting RNC/RNG annotations to XSD annotations with Trang

first, let me say "thank you!" to James Clark for all of your work on RelaxNG, Trang and Jing! I do all of my DocBook customization layers in RNC and convert to the appropriate supported schema language for my client's editors. It has made my life much easier!

I am trying to convert an RNC schema to XSD with annotations that look like:

##Foo: This element is the top level container for the entire
document. Attributes for this element
## provide information about the status of the document.
Foo =
 element Foo {blah
}

When I run Trang to convert the RNC (I've also tried RNC to RNG to XSD) to XSD, none of the annotations come across. When converting the RNC to RNG, the annotations come across, but are lost with the step to XSD.

 <define name="Foo">
   <a:documentation>Foo: This element is the top level
container for the entire document. Attributes for this element provide
information about the status of the document.</a:documentation>
   <element name="Foo">

I am confident I am using the appropriate markup, since the annotations carry over to RNG appropriately.

Does anyone have any fixes or suggestions for getting the appropriate XSD annotations? Such as:

  <xs:annotation>
     <xs:documentation>Foo: This element is the top level
container for the entire document. Attributes for this element provide
information about the status of the document.</xs:documentation>
   </xs:annotation>

Categories: , ,

Thursday, February 23, 2006

I've been released!

Okay, maybe not me. Khosuke Kawaguchi has released the latest version of Hudson, an automated build and test tool written in Java. Looks pretty interesting. I was hoping Khosuke-san had named it after me, but apparently he thinks of the tool as his butler...

Categories: ,

Tuesday, February 21, 2006

Wednesday, February 15, 2006

Dr. Kay and the Saxon Diaries

Big day for XML experts and their new blogs! It looks like Dr. Kay (author of the XSLT Programmer's Reference and creator of THE best XSL parser in the world) is now blogging: Saxon diaries.

If you don't use it already, you need to switch to Saxon (http://www.saxonica.com/). It is simply the most compliant, high performance parser available for processing XML with XSLT. He has also added support for XSLT 2.0 and XQuery.

Welcome to the blogosphere, Dr. Kay!

Categories:

Dr. Macro will see you now...

Eliot Kimber has finally started blogging:Dr. Macro's XML Rants. Welcome to the blogosphere, Eliot!

Eliot was the first person I'd ever seen in a Utilikilt, let alone speak at an XML conference (eXtreme Markup) in one! I've since purchased and worn a Utilikilt as well.

As an observer on the OASIS DITA TC, I've taken great interest in Eliot's insights/rants on the mail list. As his blog typically addresses that "all tools suck, but some suck less", I hope that his efforts will make sure that DITA will suck less as well.

Categories: ,

Monday, February 13, 2006

Moved In!

Moved in to the new Flatirons Solutions office today! The move went very smoothly, thanks to Alex, our IT guy, and all of the planning and coordination by Judy and others. I really like my new office/cube. It's got a great view, and near a fairly quiet group of folks.

Categories: , ,

Friday, February 10, 2006

RDF/Topic Map Interoperability survey

The Semantic Web Best Practices and Deployment Working Group has published:
"A Survey of RDF/Topic Maps Interoperability Proposals"

Editors include giants from the Topic Map world, such as Steve Pepper and Lars Marius Garshol.

I still think Topic Maps have tremendous potential, and I wish there was more adoption of them. I tried to set up a Topic Map for the Sun System Handbook, while I was at Sun, but couldn't get approval to publish and set it up as a navigation mechanism for the Handbook.

It's definitely an interesting read, especially section 4.3 on Semantic mapping issues. Lars Marius Garshol has done tremendous work in this area, and the Ontopia Knowledge Suite has some incredible features for viewing/interacting with Topic Maps.

Categories:

Lego Star Wars: The Original Trilogy game!

The sequel to the incredible Lego Star Wars game is still in development, but they've finally released some details: http://pc.ign.com/articles/687/687344p1.html

My kids and I absolutely loved the first game, so we are eagerly anticipating the sequel release this fall!

Categories:

Thursday, February 09, 2006

Stuck in the 80s

Found a pretty interesting podcast called Stuck in the 80s a few weeks ago. It's not necessarily family friendly, but is fun to reminisce about different subjects in the 80s.

A few memories that stick out from the 80s for me:

  • Coming home from school in 3rd grade and seeing the news that President Reagan had been shot.
  • My Max Headroom skateboard
  • Rubik's Cubes, the pyramid, the snake, and Links puzzles
  • Madonna's "Material Girl"
  • Checkerboard Vans shoes
  • 7th grade study hall, finding out about the Challenger explosion
  • Topps Trading cards for The Empire Strikes Back, Return of the Jedi, Pac-Man and Donkey Kong

Categories: ,

Wednesday, February 08, 2006

My new office and moblogging

Flatirons Solutions is growing! We are moving into our new offices this weekend. We were able to go check out the new facilities last night. Here's a sneak preview of my office.

This is also my first venture into moblogging, since I upgraded my phone to the Motorola V360 last weekend. Not a bad pic!

Categories: , ,

Tuesday, February 07, 2006

Ringtones are a RIPOFF

I've been a T-Mobile subscriber for several years now. This weekend, I upgraded our phones, and wanted to re-use the several ringtones and wallpaper I had downloaded during those years. The guy at the store said, "Just call Customer Service, I'm sure they can give you a credit or something". Unfortunately, I got the "or something" part, which was an apology. Turns out, you have to re-download the ringtones and they won't issue any credit. What a ripoff. I can't use something I already paid for!

If you own a cell, DO NOT buy ringtones! The companies are already making a killing for their services, and ringtones are their cash cow.

Instead, check with your phone manufacturer to see if they sell software to let you create your own ringtones and wallpaper. Since I got the V360, they have a package that does just that. This software also works for RAZRs and other models, too! Check it out at: http://www.bvrp.com/customers/motorola/upgrade/US/

Categories:

Wednesday, February 01, 2006

beta 3 is out!

Norm Walsh has just releasedDocBook V5.0b3

The schema is available at: http://docbook.org/xml/5.0b3/. Testing would be greatly appreciated.

Norm has also updated The Definitive Guide, as well! Thanks Norm!

Categories:

Tuesday, January 31, 2006

bobdc.blog: Putting semantics on the web

After reading Bob's blog entry (bobdc.blog: Putting semantics on the web), I looked at the source for his page. I noticed that metadata is applied using:

  <!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
        xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
   rdf:about="http://www.snee.com/bobdc.blog/2006/01/putting_semantics_on_the_web.html"
   trackback:ping="http://www.snee.com/cgi-sys/cgiwrap/bobd/managed-mt/mt-tb.cgi/93"
   dc:title="Putting semantics on the web"
   dc:identifier="http://www.snee.com/bobdc.blog/2006/01/putting_semantics_on_the_web.html"
   dc:subject="semantic web"
   dc:description="Painlessly adding RDF-compatible semantics to XHTML."
   dc:creator="Bob"
   dc:date="2006-01-31T09:17:35-05:00" />
</rdf:RDF>
-->

I have been using the Dublin Core recommendation (http://dublincore.org/documents/dcq-html/):

Also, with the recommendation in the RDF / A Primer, a different approach is used.

Is there a single, best practice for embedding the metadata for the Semantic Web? Are the above approaches compatible?

I have since found out that Bob is using Movable Type, and that's how the metadata is generated. I'm using macros in my blogger.com template. Another approach to consider is/are Microformats.

It would be nice [HINT, HINT to all you folks creating new standards] if there was a standard, easy to use approach for adding metadata for the Semantic Web. RDF and OWL by hand is painful, just like XML Schema. I want something easier like RNC is to Schema -- just as powerful, if not more, but easier to use!

Categories: , ,

Monday, January 30, 2006

Oxygen 7 review

I've used oXygen for quite a while now, and I completely agree with Kurt Cagel (On XMLish Things: Oxygen).

The app is quite robust, and even better, multi-platform! It is definitely the tool of choice for XML hacks. I first chose oXygen because of its support for RelaxNG and easy transformation features.

The only problem, is that it's not the easiest tool for basic authors who just need to write documents in XML. It's not quite WYSIWYG, so I still often recommend Arbortext Epic or BlastRadius XMetal for those folks.

I think the split tabs could work a little bit better (jEdit is fantastic in this regard), but otherwise very useful. I didn't know about dragging an element from the XML and having the template and XPath already created in the XSL. I think this will be a huge timesaver!

Categories: , ,

Sunday, January 29, 2006

Citizens of Heaven

Citizens of Heaven : Show your true nationality!

I had a brainstorm last week, and came up with some bumper sticker designs. Thanks to Cafe Press, I expanded that idea to shirts and hats!

Check these out:

Categories: , , ,

Roving Mars rocks!

We saw the new IMAX, Roving Mars, today!

It is absolutely incredible. Since I've been working with the Boeing Delta folks, it was especially impactful seeing the Delta II launch! I think that entire segment leading all the way to the rover bouncing and unfolding on Mars was my favorite part.

All of our kids really liked it, especially Connor (my Space Camp buddy!). I would highly recommend seeing it. If you get a chance, Magnificent Desolation is also a great IMAX to see. We waited too long, and we missed seeing it in Denver. I did get a chance to see it at the Smithsonian Air & Space, though.

If you haven't noticed, not only am I a space nut, but I'm also a huge Mars nut! I've always dreamt about what it would be like to walk on the Red Planet. We did an activity back when they launched the rovers, where we went on a rock hunt and sent in the rock to the Univ. of Arizona.They analyzed it with the same mass spectrometers that they used on Spirit and Opportunity and sent us the report and a certificate!

It's amazing how long those rovers have been able to continue operating. You can see more of Spirit and Opportunity at the JPL website.

Categories:

What's your life metaphor?

I've recently started reading "The Purpose Driven Life" by Rick Warren. In chapter 5, he asks the question: What's your view of life [your life metaphor]?

He goes on to say that some people describe their life as a carousel, circus, minefield, roller coaster, puzzle, card game (you have to play the hand you are dealt), etc.

It's your description of how life works and what you expect from it. ... It determines your expectations, your values, your relationships, your goals, and your priorities.

I'd have to say my life metaphor is a Rocket. I think life, specifically my life but also applies to others, is a very complex piece of machinery that requires the expertise and advisement of specialists from many different people.

I think my soul is the astronaut sitting in the capsule at the top of that rocket, and the rocket itself is all of my life experiences. Some of those experiences are from the specialists from a variety of disciplines that become a part of the rocket. In rocketry, those disciplines would include electrical, mechanical, propulsion, guidance, etc. In life, I'd say those disciplines would be work, home, friends, church, etc.

I have confidence because I believe God is over at Mission Control for my particular mission. For others, they may have transferred that Mission Control over to someone or something else. I also believe that because I'm in such good hands, my journey to the Heavens, as I slip the surly bonds of this Earth, will be a complete success.

Now, as with real rocketry, each component must go through very stringent tests during design, manufacture, assembly and launch preparation before the countdown can go down to T minus 0 and go for launch. Many times there are built in Holds during the countdown for final checks. Life can also be a series of tests, but they are all meant for a reason -- a successful mission.

Even though tests can be difficult, it is always better to endure. I don't know about you, but I don't want to end up as a fireball on the pad or in flight!

So what's your life metaphor? Are you on a sound path? These are questions I think everyone should ask themselves. Let me know what your metaphor is! I'm sure it will be an interesting read, as I hope mine has been.

Categories: , , ,

DITA Specialization -- what he said!

Norm has an interesting post about DITASpecialization and Extensibility. I think he brings up some great points.

First of all, DocBook is very customizable in it's very design. What may be missing is a "fallback" mechanism. One thing to consider, though: if you are going to do any useful exchange of content with a partner or between organizations, generalizing that content through a specialization will not preserve the semantic value provided in your customization. In other words, you've invested a lot of analysis and design in creating your customization for a reason; if that customization gets generalized, then your partner/department won't be able to take advantage of that semantic markup.

In order to do any valuable exchange of information, both parties should take a look at the customization and develop appropriate processing expectations. This is where I question the DITA approach. Sure, you will be able to present or process specialized content in a generic manner, but if you want to do useful interchange, then both sides should really meet and develop the processing expectations. If you are going to do that anyways, what else does moving to DITA buy you over DocBook?

Categories:

Friday, January 27, 2006

Listening for SuitSat

This is pretty cool! I'm going to have to try to listen for this with my mobile Ham rig:

Astronauts turn spacesuit into satellite | The Register: "all you need is 'an antenna (the bigger the better) and a radio receiver that you can tune to 145.990 MHz FM' to catch the 5-10 minute flyby as SuitSat passes over (you can calculate your next scheduled visit here).

What you'll hear is a 30-second transmission, followed by a 30 second pause followed by the message: 'This is SuitSat-1, RS0RS' and a prerecorded greeting in five languages. The transmission ends with an English-language report on 'telemetry: temperature, battery power and mission elapsed time'."

For more info, please visit: http://www.suitsat.org/ and http://www.amsat.org/amsat-new/articles/SuitSat/. Thanks to Joshua for the extra links!

Categories: ,

Wednesday, January 25, 2006

A Man's a Man For A' That

Thanks to Calum, I will hopefully be better prepared for Burns Night next year! As I have no Haggis, nor Scotch, I'll have to settle for some quiet reading of the great bard's works and maybe a wee bit o' Drambuie that I do have on hand!

A prince can mak a belted knight,
A marquis, duke, an' a' that;
But an honest man's abon his might,
Gude faith, he maunna fa' that!
For a' that, an' a' that,
Their dignities an' a' that;
The pith o' sense, an' pride o' worth,
Are higher rank than a' that.

Categories: ,

Sunday, January 15, 2006

Stardust lands safely!

I was hoping that Stardust would not suffer the same fate as the Genesis torpedo. Thankfully, it looks like everything went according to plan: Space.COM coverage and spaceflightnow.com coverage

Now comes your part: If you'd like to help look for grains of cosmic dust captured by the Stardust mission, check out the Stardust@home program: http://stardustathome.ssl.berkeley.edu/

I'm already signed up!

Categories:

Thursday, January 12, 2006

Space Tornado!

This is too cool. A tornado in space! Okay, if it's not on the ground, technically it should be called a funnel. Of course, since this Herbig-Haro object is almost 2 trillion miles long, maybe it should be classified as an F5 to the 10th power on the Fujita scale! :-)

For details and a picture, check out: SPACE.com -- Space Tornado! Cosmic Front Packs a Punch

The team that made the discovery was headed by John Bally of Colorado State University. Way to go, John! Go Rams!

Categories: ,

Saturday, December 31, 2005

A Quick Review of my 2005

This year has been a fulfillment of several of my life's dreams. I finally got to go to Space Camp with Connor. I have wanted to go since I was his age. With my new job at Flatirons Solutions, I've also been able to work at Cape Canaveral two different times this year on Boeing's Delta rocket program. It was hard leaving Sun after 9 years, and the extensive travel schedule, but I have grown tremendously both personally and professionally. I also spent quite a bit of time in New York City, Kansas City and Washington, D.C. As a family, we also traveled on several trains in Colorado, including the Georgetown Loop and Cumbres & Toltec; we hope to ride more trains next year, and see more of our magnificent state. We also enjoyed our trip for the 50th Anniversary of Disneyland, and spending time with family and friends.

To all my family, friends and blog readers:

Happy New Year
To One And All
Long Life, Happiness,
Peace and Prosperity to You
Lang May Yer Lum Lou
(may there always be the warmth of a fire in the home
and so employment and prosperity)

Categories:

Thursday, December 22, 2005

Space-Age music for the not-so-bachelor pad

I heard a very interesting rendition of "God Rest Ye Merry Gentlemen" on the radio this morning by a group called "Los Straightjackets". After Googling for their home page (http://www.straitjackets.com), I found I really like the music style! I asked my friend, Cam, if he'd heard of them and other Space-Age Bachelor Pad music. Here's his great recommendation:

If you're asking what I'm into lately or what is a good recommendation for S-ABM, I'd answer differently. To be honest, Esquivel is still the king and always will be in that genre.

Lately I've been into a couple of websites that post public domain records. Most of these are of that genre. There's also a lot that are more 'modern big-band' more along the style of Jackie Gleason or Herb Albert. Oh, and a LOT of Sergio Mendes. He's been hitting the spot just right.

If you're interested, check out:

For the top ten S-ABM picks:

1. Esquivel - He IS space-age. In fact, I think the whole genre name was invented because of him. No other artist will do in the space age bachelor pad. I imagine Esquivel lounging back with a martini while chatty it up with a girl in a go-go suit and classic Sean Connery while Jetson style space-cars fly by his window outside. I repeat, he IS space-age.

2. Sergio Mendes - He put 'Girl From Ipenema' on the map. What more can be said? While Esquivel introduced the genre, Sergio introduced the must have songs of the genre.

3. Roger Williams - Now this is a strange pick, and some may argue, but every good bachelor, space-aged or not, needs a moment of relaxation. Williams brought about 'Born Free' and the concept of waves and seagulls in the background of most of his tracks. If you must relax, either to his piano or guitar, Roger will lull you to another world.

4. Dean Martin - Just as Esquivel is to Space-Age, Dino is to Lounge. Lounge is the close twin brother to Space-Age, so it couldn't be overlooked in this list. The amazing thing is that Dino was the man that THE MAN, Frank, chose to listen to. It's said that Dean was actually one of the greatest singers as far as vocal skill and longevity, but because of life circumstances and the venues that the two men chose, Sinatra will be remembered as the easy listening king. But that's why Dean is the Lounge king.

5. Julie London - Sultry. That's the word. I can't explain her voice. She's equally sexy and maternal. You want her to sing you to sleep and you want her leading the latest red-hot band. She's incredible and her voice stood up over time taking her well into the 70's.

6. Nelson Riddle - Nelson's style is amazing. He is what you hear when you watch stylized action/adventure films from the '60's. That sound of swanky saxophone and what sounds like jungle music blends into something that fits only with Film Noir. It's part exotica mixed with part grungy New York. You can picture island girls dancing to it as well as imagining a lonely gumshoe lighting up a cig under Brooklyn bridge.

7. Les Baxter - Les and his orchestra INJECTED ultra-cool into the bachelor pad. I mean, this is the man that orchestrated Route '66. He is synonymous with muscle cars and the wind blowing through your hair as the Beach Boys are with surfing. He uses that jazzy trumpet mixed with a persistent cymbal rhythm that makes you want to don shades and talk like a hep-cat.

8. Billy May - Another close brother to Space Age is the Tiki. Tiki is the lounge scene of Las Vegas, only transplanted to a far away island. Tiki is about escapism. You listen to Tiki while drinking exotic sounding drinks with umbrellas in them. Now a lot of the men already discussed on this list dabbled in Tiki but one of the band leaders excelled at it. I dare say that the concept of Muzak came from Billy who took famous songs of the time and transplanted them in a cool samba version. He loved multiple trumpets and bizare rhythm instruments like sticks and bongos. He also had a strange love affair with the organ. If you can imagine a Polynesian native playing his people's music on an electric organ... that's Billy May.

9. Jackie Gleason - While better known for his acting and his 'Honeymooners' series, Jackie LOVED music and would have preferred to live his life in a night club. And it shows. His music is the stuff of champagne. And even more, his album covers are the artwork that inspired the exotica art that is classically associated with the music. You see, Jackie was also known for his women...

10. Ann Margaret - The thing about Ann Margaret is that she just had to pose and there was music. Her singing is the epitome of the seductive she-kitten motif. She's talented, but not the MOST talented. But you put her in a pink sweater and skin tight pants... FEVER! She was the perfect mascot of the genre and the first choice of any self respecting bachelor to share his pad with. Many of her songs have taken on mythic proportions over the years and I have seen few mixes where she isn't included.

The wonderful thing about this music is that at the time, everyone was doing it. It was the Rock'N'Roll of that time. And there wasn't mass marketing of bands either, so there are a LOT of people out there, a LOT of big bands, a LOT of singers... that are just waiting to be discovered again by the modern recording. If you read through the commentaries of most of the albums discussed on bellybongo you'll find that there were many recordings that were done in very small quantity and then only handed out to the area that the band's nightclub was in. So now with the Internet, there's a lot of artists that are starting to become big only because they're being heard for the first time in 60 some odd years. And they say that the electronic era is bringing about the death of music. :)

On top of this list is the 'ethnics'. In fact, I was hard pressed to include Tiki music into this list, but Tiki is so much a part of Space-Age. But aside from this, there was a huge Latin movement (Herb Albert), Hawaiian music, Polynesian music (that launched into the Tiki movement), and film scores (this was lead by Henry Mancini and the birth of a little ditty known as 'The Pink Panther')

Even though I'm not a bachelor, I think I'm hooked on this music style. I've been a fan of Herb Alpert since I started learning the trumpet back in 6th grade. Now I've got some additional choices to start listening to!

Categories:

Wednesday, December 21, 2005

Photo Fun for the Holidays!

Want to give that special someone a personalized movivational poster? Magazine cover? Movie poster? If so, you should check out the cool tools at http://flagrantdisregard.com/flickr/. You can also add conversation bubbles to photos, or make trading cards!

Here's a sample of what you can do:

Categories:

Thursday, December 08, 2005

Roundtripping DocBook and Word

Steve Ball has announced the release of a set of XSL stylesheets to transform DocBook to WordML and back with minimal structure loss. This is indeed a welcome development, as I've faced many painful migrations from Word or Frame to DocBook. Some solutions work better than others, but they ALL require cleanup. I'm very curious to try this method, and see if it is truly painless yet...

More details are available at: http://www.explain.com.au/oss/docbook/. These stylesheets will also be added to the DocBook XSL project in SourceForge in the wordml subdir.

There have been some concerns raised by Jens Stavnstrup, such as a lack of support for Chapter/Appendix, and some issues with Saxon.

Categories:

Wednesday, December 07, 2005

Blogger Categories - Thanks Freshblog!

By now you have probably noticed my new Topic links on the right side of my blog. This is all thanks to my friend Jason (for pointing it out to me!) and Freshblog!

Prior to this, I had only bookmarked my links (on the left side of my blog) in del.icio.us. It was a bit of a pain to go back through all 242 of my blog entries and tag them in del.icio.us, but I think having the Topic categories for my blog entries is definitely worth it, and improves some of the user experience on my blog.

I also quickly realized that I have a lot of tags, so I had to adjust the del.icio.us tagroll to only display my top 25 tags. The other benefit of this approach, is that Techorati will also pick up my tags.

Since I've also switched to Firefox 1.5, I used the new del.icio.us Firefox extension. It makes tagging a breeze!

There is also a cool foxylicious extension for adding your del.icio.us tags to your Firefox bookmarks. Hopefully Dietrich will add support for del.icio.us tag bundles in the near future.

Categories: , ,

Tuesday, December 06, 2005

Save those frequent flier miles!

Looks like I have something to save my frequent flier miles for! Too bad it's only on Virgin Airlines... Check it out: http://www.space.com/news/051206_virgin_galactic.html. Only 2 million domestic miles needed for me to get my Astronaut wings! :-)

Categories:

Tuesday, November 29, 2005

DocBook Tutorial slides now available!

Norm Walsh has been gracious enough to post his DocBook Tutorial slides from the XML 2005 conference. Norm's most excellent tutorial is available at: http://nwalsh.com/docs/tutorials/xml2005/.

Check it out!

Categories: ,

Tuesday, November 22, 2005

The New Voyages

The latest issue of Wired magazine brought Star Trek: The New Voyages (http://www.newvoyages.com/) to my attention. I used to be quite in touch with Trek, even through Star Trek: Enterprise, but since Paramount cancelled what I considered to be a quality show, my interest has waned.

I grew up on ST:TOS (Star Trek: The Original Series to the uninitiated...). My mom and I used to watch all of the classic episodes after I got home from school. Mr. Spock was actually my favorite, followed closely by Scotty (hence my blogname). I have tons of the novels, engineering guides, and various props. Sure, the effects are limited, but the best science fiction encourages the imagination, and is not merely about futuristic special effects.

Along with ST:TOS, I've loved The Time Machine, The Day The Earth Stood Still, The Forbidden Planet, War of the Worlds and other classic sci-fi shows and movies because of the science and imagination involved. In fact, I'm rather disappointed with the remakes because the focus is more on CGI effects, than story.

The New Voyages brings back that focus on story. It's a labor of love, and not a greedy $$-generator that Paramount has turned into. The producers are pouring their personal money into the project, and because they are using the characters and designs with permission, they are not allowed to make a red-cent on it. The episodes are freely distributed on the internet, as zip or torrent files, too!

I was able to get at least one episode downloaded, and am quite pleased with the production. Most fan films are parodies (like the one my friends and I made in high school, entitled "Star Wrek: The Home Video" or the popular "In the Pirkhinning"), but the New Voyages is earnestly finishing the 5-year voyage of the Enterprise, which was cancelled by NBC after its third season.

Check it out!

Categories:

Thursday, November 17, 2005

Take-aways from XML 2005

Well, another great XML conference has come to a close. It's always a pleasure to interact with the industry experts, and meet all the first-timers! My favorite sessions were David Megginson's closing keynote, Bob DuCharme's schema and XSLT sessions, Ken Holman's XSL case study, and Norm Walsh's XSL unit testing, and Bob Stayton's "Linking outside the box". Thursday had a heavy emphasis on XSLT, but all of the sessions were quite informative.

I learned a fair amount of new things this year. Here are just a few of my take-aways:

Cool things to follow up on:

Did you know?

DocBook XSL stylesheets consist of:

  • 2,500 match templates
  • 800 named templates
  • 250 modes
  • 115 modules
  • 62,000 lines
  • with 485 parameters

Subversion will allow you to set up pre-commit tests, to make sure all tests pass before checking the code in.

End to end XML processing performance estimates:

  • Best: XPath
  • JAX-RPC
  • SAX
  • Worst: DOM

Security and Identity Standards in the land of XML are complementary, not overlapping!

  • XML Signature – fine grained data origin authentication
  • XML Encryption – fine-grained confidentiality
  • XKMS – outsourced key management
  • SPML – user provisioning services
  • XACML – auth policy expression and evaluation
  • WS-Security – end to end SOAP messaging headers
  • SAML: the universal solvent for identity information

MS Linq is over my head...

Limitations of DITA: current stylesheets for FO are very limited, and not production quality. DITA is more complicated to produce output than DocBook.

Targeted search using XQuery in MarkLogic is lightning fast, and enables the creation of a variety of new outputs!

Not enough XML authoring tools provide validation against RelaxNG schemas! Good job, oXygen. Now, how 'bout the rest of you editors? Arbortext?! DocBook v5.0 is here!

I hope to see you all at XML 2006 in Seattle!

Categories: ,

Imperial Invasion?

It's amazing the way our minds can associate objects in reality with fantasy. For example, look at the proof of Imperial invasion in our solar system:

Tie Fighter in our solar system?
Tie Fighter?
that's no moon, it's a space station!
Death Star?

So, who's going to build a wedge-shaped spacecraft that looks amazingly like a Star Destroyer to complete this little Imperial fantasy? :-)

For the real stories, please see: http://www.nasa.gov/mission_pages/cassini/multimedia/pia05423.html
and http://antwrp.gsfc.nasa.gov/apod/ap051116.html

Categories:

Tuesday, November 15, 2005

Congratulations, Norm Walsh and Michael Kay: XML Cup recipients!

Today has been a big day for DocBook! Norm Walsh and Michael Kay both received the XML Cup award at XML 2005. Where would DocBook (and XML) be without these giants in the field?! I am biased, but Michael Kay's Saxon parser is THE preferred method for processing DocBook. Okay, my preferred method at a minimum. :-)

And speaking of processing DocBook, the great Bob Stayton gave an excellent presentation on "Linking Outside the Box" that explained olink in DocBook.

We also had the traditional DocBook Dinner this evening, with DocBook TC members Norm Walsh, Bob Stayton, Dick Hamilton, Gary Cornelius and myself. Since we are in Atlanta, we dined at Pitty Pats Porch - a Southern Dining experience. Good food and discussion all around.

Norm also submitted a poster announcing the release of DocBook v5.0b1. Norm, Eric Severson and myself also have posters detailing some perspectives on the DocBook vs. Dita debate, so check them out at the conference!

Categories: , ,

Self Contained

Be sure to check out my entry in the XML Artwork exhibit at the XML 2005 conference in Atlanta. The piece is entitled, "<Self_Contained/>".

There are many other great entries, so check them all out in the exhibit hall!

 Posted by Picasa

Categories: ,

Monday, November 14, 2005

XML 2005 Conference

The XML 2005 conference is finally here!I flew in to Atlanta yesterday, and am really looking forward to all of the great speakers and fellow XML'ers. The conference wiki is available at: http://2005wiki.xmlconference.org/wiki.

There is also a news page and Technorati tag:.

My interests, as you can tell by many of the posts on this blog, are: DocBook, XSLT, RelaxNG, Topic Maps, and Content Management. Some of the sessions I'm planning to attend include:

  • MONDAY
    • DocBook: From Markup to Publication
    • Cause-and-effect Web Application Development with XForms
  • TUESDAY
    • New Ecology of the Semantic Web (Jim Hendler keynote)
    • XML and Web Services: Blueprint for NextGen Web Services (Steven Harris keynote)
    • Linking Outside the Box
    • Performance in XML Application Data Structures
    • Federated Identity Management: An Overview of Concepts and Standards
    • Microsoft's Language Integrated Query and XML
    • Benefits of Avoiding Runtime/Build-Time Distinctions for Metadata Vocabularies
    • Intro to DITA
  • WEDNESDAY
    • Plugging into the pervasive XML Infrastructure (Soumitra Sengupta keynote)
    • The future of XML Information Management (Robert Picciano keynote)
    • Your schema and the industry-standard schema
    • XQuery By Example: Making O'Reilly Books Sing and Dance
    • XSL Transform Self-Documentation
    • XML Authoring Panel
  • THURSDAY
    • XSLT Throughout the Document Lifecycle
    • Global large-scale stylesheet deployment case study
    • Unit Testing in XSLT 2.0
    • Automated mass production of XSLT stylesheets
    • Developing a Business Case for XML-based Content Management Systems
    • The eXtensibility Manifesto: A Blueprint for XML Implementation
    • DITA Case Study: Encoding the Joseph Smith Papers
    • Reaching New Levels of Interoperability and Collaboration with DITA
    • Everyone's Using XML, but Does Anyone Care? (David Megginson keynote)
  • FRIDAY
    • RESTful Web Services: building them without tears, SOAP, or WSDL

Categories: ,

Friday, November 11, 2005

Thank you, Veterans!

I've been in D.C. for the past few weeks, and finally had a chance to take in a few of the sites I haven't seen before. My favorite, by far, was the World War II Memorial. I also got to see the FDR memorial and the Jefferson memorial.

The World War II memorial was especially stunning at night! Since my grandfather, Frank E. Mason, served in the Pacific theater during the war, it was especially meaningful. His brothers also served in the war, though in the Atlantic theater.

To all the Veterans: thank you for your years of service defending this wonderful country! I appreciate all of the training and hardships you have endured for our sake.

Posted by Picasa

Categories: ,

Monday, November 07, 2005

Get it while it's hot -- Saxon 8.6 now available!

Michael Kay has released Saxon 8.6. This is a complete and conformant implementation of the XSLT 2.0, XQuery 1.0, and XPath 2.0 Candidate Recommendations from the W3C! The saxon8.jar looks to be about twice the size of 8.5, so there should be lot's of good stuff in there.

If you're like me and want to use the latest and greatest right away with oXygen, remember to put it in the Oxygen/lib dir... Thank you Michael! A nice gift before XML 2005 and Christmas. :-)

Categories:

Tuesday, November 01, 2005

DocBook 5.0 - now in Beta!

Announcing DocBook 5.0! The DocBook Technical Committee has released an official Beta 1 of DocBook 5.0, also known as DocBook:NG

The schema is maintained in RelaxNG, which is transformed into W3C schema and DTD versions. RelaxNG is much easier to work with than W3C schema, IMO.

Norm Walsh has also blogged on the 5.0 release here: http://norman.walsh.name/2005/10/28/docbook50b1

Please give 5.0 a try! The stylesheets also support DocBook 5.0, so it's almost ready for prime time! As a member of the TC, I'm very proud of the work we've accomplished here. Also, special recognition goes to Norm and Jirka for the extra efforts on this release!

See also:

Monday, October 24, 2005

Norm blogs on DITA and DocBook

Norm Walsh has blogged a very extensive analysis of how to implement some of the features of DITA in DocBook.

I've not blogged on this topic as much as I would like, simply due to workload and time constraints. I have been looking at DITA quite a bit. At Flatirons Solutions, we have implemented very DITA-like solutions for customers using a combination of DocBook and a content management system (Documentum and IBM Document Manager). Simplified DocBook, IMO, is more compatible with the basic elements of DITA. In fact, I wish they had re-used more of the element names from DocBook, instead of introducing slightly different tag names with the same basic semantics...

DocBook sections are very much akin to DITA topics. That is the typical chunk level we have recommended in our implementations. Then, you have a "master document" that is an assembly of chunks and very much akin to DITA maps. Different master documents can use the same chunks in a variety of orders, in the same way that you can have different DITA maps. The master documents can be at the book, chapter or article level, depending on your business needs.

The biggest advantage of this approach, is that you can leverage existing DocBook tagged content (just chunked at the section level) and take advantage of the wide variety of tools for converting, editing and publishing DocBook. DITA is still relatively new, and has limited support compared to the tried and true DocBook model. You can even assign DITA topic types (reference, concept, task) in the role attribute, or add a DITA topic type attribute through a DocBook customization layer!

FYI, for those attending XML 2005, there will be several presentations and tutorials on DocBook, and Flatirons' CTO, Eric Severson, will be presenting on a DITA implementation we have done with BYU.

Follow-up: See also Eve Maler's interesting post on this subject at:
http://www.xmlgrrl.com/blog/archives/2005/11/02/topic-oriented-architecture/

See also:

A New Pair of Ears

Connor and I both got a new pair of ears recently. While his are from the special 50th Anniversary of Disneyland and help him make a great Steamboat Willie impersonation, mine are helping me at work.

My new ears are the Bose QuietComfort 2 headphones. They are noise cancelling, and I've tested them in my noisy work environment and on a noisy airplane. They are MARVELOUS! Since I bought them before October 16, I also got a free Samsung YP-T6 mp3 player! It's got an FM tuner and will convert from FM or line in to MP3.

If you work in any kind of noisy environment, but need to be able to concentrate above the din and roar of your co-workers, I highly recommend these headphones. Also, if you like Disney at all, I highly recommend getting to Disneyland, and check out the incredible 50th Anniversary fireworks show! Posted by Picasa

See also:

Friday, October 21, 2005

Transforming DocBook with dblatex

Benoit Guillon has released the 0.1.7 version of dblatex, a DocBook to PDF transform tool. This does require an existing Tex/LaTeX setup on your system. Why use this tool?

  • The project is end-user oriented, that is it tries to hide as much as possible the latex compiling stuff by providing a single clean script to produce directly DVI, PostScript and PDF output.
  • The actual output rendering is done not only by the XSL stylesheets transformation, but also by a dedicated LaTeX package. The purpose is to allow a deep LaTeX customisation without changing the XSL stylesheets.
  • Post-processing is done by Perl, to make publication faster, and to parse things not so easily done by the XSL stylesheets like tables.

Here are the details on this release:

The dblatex 0.1.7 release is now available from http://dblatex.sf.net. It 
can be directly downloaded from this URL: 
http://prdownloads.sourceforge.net/dblatex/dblatex-0.1.7.tar.bz2?download

This release mainly includes the callout support for both verbatim and 
graphic elements, some other improvements, and bug fixes. The release is 
synchronized with the SF CVS repository, with the tag v0_1_7.

More precisely the changes included in this release are:

* Callout support:
 -  and  supported, even for external
   files.
 -  supported.

* Better  or  support:
 - External files (eg, in ) are handled.
 - literal.lines.showall parameter added, to remove the empty last
   lines, when set to 0. Set by default to 1.

* Legalnotices are printed in the native docbook style.

* An abstract in an article is printed.

* Better  support:
 -  to a list with a title is possible.
 -  to a refentry is possible.

* Other improvements:
 - term.breakline parameter added to have the  on a new
   line below the .
 - Hyphenation forced for text using a typewriter font. Moreover
   the font is smaller.
 - doc.publisher.show parameter added, to print the dblatex logo on
   the cover page.
 - doc.pdfcreator.show parameter added, to have DBLaTeX filled in
   the Creator field of the PDF information section.
 - Running dblatex on a root element different from article or book
   does not fail anymore, except for .

* Bug fixes:
 - dbk_table.sty: make \@xmultirow long.
 - sgml2xml.pl: empty textdata element handled.

See also:

Monday, September 26, 2005

Running Arbortext Interchange in batch mode

I've been banging my head on my desk for several weeks trying to figure out how to run Arbortext Interchange in batch mode. For those unfamiliar with Interchange, it is an application that can convert Word, FrameMaker, Interleaf and other formats to XML.

I have successfully built a map file, mapping Word styles to DocBook XML tags, and run the map file successfully in the standalone application. My client, however, purchased the E3 content engine and has a large volume of Word documents that needed to be converted. Doing this manually was going to be a time-consuming manual task. I knew Interchange had a batch mode, but kept getting errors, or no output.

For those interested, here is the proper syntax (all on one line for each entry in the batch file):

C:\progra~1\Arbortext\E3\bin\epic.exe -E3w -b -c
 "import_doc('C:/temp/docs/infile.doc', 0, 'C:/temp/docs/outfile.xml',
 'C:/progra~1/Arbortext/E3/custom/doctypes/client/word-docbook-map.xml',
 'C:/progra~1/Arbortext/E3/custom/doctypes/client/import-template.xml',
 1,'C:/temp/docs/infile.log' ,1);quit"

I was missing the -E3w parameter in my script...

Categories: ,

Tuesday, September 20, 2005

DocBook element lookup for DocBook:The Definitive Guide

I usually use the quick bookmarks (see my earlier blog entry) to take me to the element reference in Norm Walsh's "DocBook:The Definitive Guide". Thanks to Michael Smith and techntonik, there is a new way to look up DocBook elements in TDG. Go to http://farplugins.sourceforge.net/test/docbook/index.php to try it out. They are looking for a permanent home for this script. Any takers?

I really like the suggested elements, when you first start typing your search. Try typing "ref" and it will give you a list of all the DocBook elements starting with "ref" (refclass, refdescriptor, refentry, refentryinfo, refentrytitle, reference, referenceinfo, refmeta, refmiscinfo, refname). Try it, you'll like it!

Update: Michael Smith has copied the code to http://docbook.sourceforge.net/element/, which should be a more permanent home than the farplugins page...

See also:

Monday, September 19, 2005

OpenOffice to DocBook converter

For those who have tried converting OpenOffice/StarOffice documents to DocBook or vice-versa, you probably experienced the pain of trying to get the built in stylesheets to work. I worked on some of the earlier versions of those stylesheets, and the stylesheets still have some obvious problems. There also was no way to limit the styles a user could apply to the document.

A new and promising add-on hopes to make the DocBook/OpenOffice integration easier! Enter ooo2dbk from Indesko. This package supports output to article or book documents that are DocBook 4.3 compliant, using a python script.

I'll provide a review when I get a chance to try it out. I'm also eager to test out the latest OpenOffice 2.0 beta 2, which provides support for XForms!

Update: Thanks to Laurent at Indesko, I was able to get this running on the latest Open Office 2.0 beta 2. You can install the ooo2dbk package by going to Tools > Package Manager. I restarted OpenOffice (to be safe), and the Indesko menu appears with the other menus. I opened the included template, and the ooo2dbk program is available to run from the Indesko menu. After saving the file to a .sxw file, from the command line (I used Cygwin), I ran the following command:

ooo2dbk --article --zipfile=document.zip document.sxw

which created a zip file with images and the DocBook XML file. I validated it in oXygen 6.2, and it worked just fine! I'll try linking to the XSLT directly from Open Office next, so I don't have to use the command line. Give it a try!

See also:

Oxygen 6.2 now available!

The folks at SyncRO Soft have released the 6.2 version of oXygen, my personal favorite XML/XSL/Schema editor! Details on the new features are available at: http://www.oxygenxml.com/index.html#new-version.

What I like about oXygen is it's standards support (especially RelaxNG!) and it's highly configurable parsing features. It has Xerces, Xalan, Saxon, FOP , Jing, Trang and xsltproc built in.

It's extremely powerful, including support for XML 1.0, namespaces, DTD, XML Schema 1.0, Relax NG, XSLT 1.0 and 2.0, XPath 1.0, XSL-FO, XQuery 1.0, SVG 1.1, WSDL, CSS, Unicode 3.2, DocBook 4.3, TEI and Schematron!

My other favorite feature: it's multi-platform. I have personally run it in Solaris, Mac OS X, and Windoze.

This editor isn't as user-friendly for the common author as Arbortext Epic, but for XML hacks, I'd say oXygen has all the other editors beat - hands down.

Try it for yourself. There's a free 30-day trial available on the site. I'd be interested in your comments on oXygen and other editors, too.

See also:

Tuesday, September 13, 2005

XQuery Basics with Saxon

The Abbey Workshop has posted an excellent tutorial on learning XQuery basics using the Saxon parser. Check it out at: http://www.abbeyworkshop.com/howto/xml/xql-saxon-basics/index.html.

I've tried to standardize on Saxon for all of my XSL parsing needs, as it has had the best performance and fewest problems of all the parsers I've tried. Michael Kay has done an excellent job adding support for the latest XML standards. I also use his book on a frequent basis - if you don't have his XSLT Programmer's Reference, you need it!

See also:

Sunday, September 11, 2005

We Live

On this, the fourth anniversary of the September 11 attack on the United States, I have the song "We Live" by Superchic[k] running in my head. The lyrics are particularly poignant and appropriate:

There's a cross on the side of the road
Where a mother lost a son
How could she know that the morning he left
Would be their last time she'd trade with him for a little more time
So she could say she loved him one more time
And hold him tight
But with life we never know

When we're coming up to the end of the road
So what do we do then
With tragedy around the bend?

Chorus:
We live we love
We forgive and never give up
Cuz the days we are given are gifts from above
Today we remember to live and to love
We live we love
We forgive and never give up
Cuz the days we are given are gifts from above
Today we remember to live and to love

There is a man who waits for the tests
To see if the cancer has spread yet
And now he asks, "So why did I wait to live till it was time to die?"
If I could have the time back how I'd live
Life is such a gift
So how does the story end?
Well this is your story and it all depends
So don't let it become true
Get out and do what we are meant to do

Chorus

Waking up to another dark morning
People are mourning
The weather in life outside is storming
But what would it take for the clouds to break
For us to realize each day is a gift somehow, someway
So get our heads up out of the darkness
And spark this new mindset and start to live life cuz it ain't gone yet
And tragedy is a reminder to take off the blinders
And wake up and live the life we're supposed to take up
Moving forward with all our heads up cuz life is worth living

Chorus (to fade)

We will never forget what happened that tragic day, nor even the recent events of Hurricane Katrina. We must live, love, forgive and never give up!

See also:

Wednesday, September 07, 2005

New, improved URL: http://scottysengineeringlog.net

Hi there, loyal readers! I bit the bullet and reserved an easier to remember URL for this blog: http://scottysengineeringlog.net! It's not any shorter to type, but hopefully easier to remember. Also, I don't have a great way to track hit stats on the blog, but if you enjoy reading the blog, please post a comment or send mail to scottys.log AT gmail.com I would enjoy hearing from you!

What's really funny, is that my old blog on blogs.sun.com still gets over 600 hits per day, and I left in February! So, now might be a good time to update those bookmarks :-)

Technorati Profile

See also:

Wednesday, August 31, 2005

Delta II Launch Pads


The Delta II Space Launch Complex (pads SLC-17A and SLC-17B) in the background. These pads were visible from the museum. We actually got an official tour the Delta IV HIF and drive right up to the Delta IV (SLC-37B) with the GOES-N rocket ready to launch, but I didn't dare take pictures. Those guards pack heat! Same reason I don't have any pics of Vandenberg AFB SLC-6...

See also:

To dream the impossible dream...


Scotty fulfilling a life goal: to work at NASA! I've wanted to be an astronaut since I was a boy. Even if that won't happen, working at NASA still fulfills that dream. The Boeing Delta LPD project has been extremely interesting. Even though I missed the Mars Recon Orbiter launch by a day, touring the Cape and VAFB has still been a highlight of my career!
Speaking of astronauts, check this out: Apollo Lunar Surface Journal and go see the new IMAX!

See also:

Boeing: Home of the "Can Do Team"


Boeing: Home of the "Can Do Team". I've been priviledged to work with the folks from the Boeing Delta Launch Preparation Documents team for the last several weeks, both at Cape Canaveral and Vandenberg AFB!

See also:

Launch Complex 14


Complex 14, launch site of the Free World's first man in orbit. We weren't sure how much access our badges allowed us, so we didn't get much closer. I also did not want to park in the bug guys parking spaces...

See also:

The Original Mission Control


The original Mission Control at Cape Canaveral

See also:

Sunset at the Cape


The most beautiful sunset I've ever seen, complete with palm tree and Mercury Redstone!


See also:

Tuesday, August 16, 2005

Congratulations, Brandon!

Congratulations to my cousin, Brandon, on the birth of his daughter!

Carina Akela was born on August 15th at 7:27pm via c-section. She was 6lbs 15oz and 20.5" long.

See also:

Monday, August 15, 2005

Single Sourcing for Beginners

I'm often asked for good resources on writing modular documentation for single-sourcing, chunking, and reuse. It's a learned skill, and a task that takes planning and effort, but can be immensely valuable.

This is by no means an exhaustive list, and has some Information Architecture and Schema development resources thrown in for good measure...

If you want an exhaustive list, visit: http://www.xmlbooks.com

There is also a course/book called Information Mapping that is good for getting authors to think about writing self-contained information objects, too.

For DocBook newbies, I'd recommend: Norm Walsh's Tutorials and, of course, DocBook: The Definitive Guide.

For those of you in the industry, what do you recommend?

See also:

DocBook XSL 1.69.1 available

This release was actually made available on Aug. 11 by Michael Smith, but I was working down at Cape Canaveral, and didn't get a chance to post on it.

The 1.69.1 release is production-quality, and fixes a minor bug-fix to the 1.69.0 test release, after a performance issue was identified with annotation support in xsltproc. The annotation.support parameter is now off by default.

I've been testing the 1.69.0 release on Saxon 6.5.4, and did not notice any performance issues.

The latest stylesheets are available at: http://sourceforge.net/projects/docbook/

Thanks Michael!

See also:

Sunday, August 07, 2005

For such a time as this

Timing. That's really what most of life is about. And only God knows the best timing for each of us.

For me, this year I wondered when was the right time to leave Sun. It turns out, the timing was perfect. Since working at Flatirons Solutions, not only have I been able to go to Space Camp with my son, but now I'll be working on a project for Boeing at Cape Canaveral!

So for bad timing, I didn't know when the Shuttle Discovery was scheduled to return when I bought my tickets, and it looks like I'll miss seeing the landing by about 12 hours (Godspeed and safe return, STS-114!). Then I scheduled my return home in time for the Perseid meteor shower peak (camping trip), but I'll miss the launch of Geostationary Operational Environmental Satellite N, or GOES N, for NASA and NOAA aboard a Boeing Delta 4 on Friday!

Oh well, for good timing, I've always wanted to be an astronaut on Mars, so I'm hoping to catch the Mars Reconnaissance Orbiter launch on Wed, Aug. 10 at SLC-41, Cape Canaveral Air Force Station, Florida.

See also:

Thursday, August 04, 2005

Definition: Cheesy Goodness

Cheesy Goodness
Gastronomic euphoria initiated by the consumption of heated artificial processed cheese-flavored substance from the culinary proprietors known as Taco Bell: Creators of the "I think I'm in Love" Talking Chihuahua™ and Baja Mountain Dew.

See also:

Shuttle audio for HAMs

Just found a link with info on listening to audio from the Space Shuttle on your ham radio: http://www.amsat.org/amsat/sarex/shutfreq.html (145.460 MHz in Boulder). I'll have to try it out. I've been a little lax on turning on the radio lately.

My primary reason for getting my ham license was for storm chasing. I wanted to be able to report in and warn people of dangerous weather. I've been a member of SKYWARN for a number of years, but seem to be under deadline at work when the best storms come up!

I've always wanted to talk to the Shuttle or ISS, so I'll have to try it some time.

In other space-related news, check out this cool blog: http://damarisbsarria.blogspot.com/. Good luck, Damaris!

See also:

Wednesday, August 03, 2005

Welcome to the Blogosphere, Dearest!

After much prompting, my wife has entered the blogosphere!

She's been thinking about writing a book for a while, and I've been encouraging her to start with a blog, and see how it goes first. We've taken and taught Growing Kids God's Way classes together, which she's taken a few ideas from.

She's also come up with a lot of her own great ideas on raising children. A lot of the techniques are tried and tested, on our kids as well as the Little Lambs (preschool) class at our church. The techniques are extremely effective, with the goal of raising children to be a blessing to everyone around them.

When we read Seth's advice for authors, she decided to take the plunge.

So, make way and please visit Shining Examples!

See also:

eXtreme parsing: Saxon 8.5 now available!

Michael Kay has just released the Saxon 8.5 parser, in time for eXtreme Markup, too! (wish I could be there...)

Saxon is by far the most powerful, and speedy XSLT parser I've ever used. Sure, I started with Xalan, but after working a lot with the DocBook stylesheets, Saxon is the best way to go. To be fair, I have also used xsltproc, but Saxon is usually my first "go to" parser.

Oleg Tkachenko's blog has a much deeper explanation of new features, but basically Saxon 8.5 provides:

  • hash join optimization for both XSLT and XQuery
  • binary disk representation of validated source documents
  • sequential XSLT processing of input documents without reading the whole document into memory for serial transformations
  • integrated processing of an entire directory of files using John Cowan's Tag Soup parser

You can download the latest version of Saxon at: http://saxon.sourceforge.net/

See also: