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

<channel>
	<title>super-structure &#187; Tech Writer</title>
	<atom:link href="http://www.jasoncoleman.net/category/tech-writer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasoncoleman.net</link>
	<description>All the makings of a real web site, plus my stuff.</description>
	<lastBuildDate>Mon, 06 Feb 2012 18:43:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
		<item>
		<title>Think Inside the Box</title>
		<link>http://www.jasoncoleman.net/2012/02/06/think-inside-the-box/</link>
		<comments>http://www.jasoncoleman.net/2012/02/06/think-inside-the-box/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 17:44:43 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Tech Writer]]></category>
		<category><![CDATA[manuals]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[tech-comm]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=1436</guid>
		<description><![CDATA[I saw this video today demoing a very interesting user manual concept. Essentially, the manual wraps around a device with queues to manipulate the actual device, rather than some screenshots or photos. Basically the manual is more of a physical &#8230; <a href="http://www.jasoncoleman.net/2012/02/06/think-inside-the-box/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I saw this video today demoing a very interesting user manual concept. Essentially, the manual wraps around a device with queues to manipulate the actual device, rather than some screenshots or photos. Basically the manual is more of a physical template (or jig, since I&#8217;m using template in the craftsman sense).</p>
<p><iframe src="http://player.vimeo.com/video/26489936?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/26489936">Out of the box</a> from <a href="http://vimeo.com/vitamins">Vitamins</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>However, I can&#8217;t think of a worse device to apply this idea to than a touchscreen smartphone.</p>
<p>Let me explain: I&#8217;ve been using an Apple iPhone for about the past four years now<sup><a href="http://www.jasoncoleman.net/2012/02/06/think-inside-the-box/#footnote_0_1436" id="identifier_0_1436" class="footnote-link footnote-identifier-link" title="Yes, this is the part where I start coming off as an Apple fan boy, but bear with me&amp;hellip; it applies to any smartphone or other touch-screen device">1</a></sup>. As much as I initially opposed the idea, Apple was correct in taking things like the SIM card and phone battery out of the hands of the user<sup><a href="http://www.jasoncoleman.net/2012/02/06/think-inside-the-box/#footnote_1_1436" id="identifier_1_1436" class="footnote-link footnote-identifier-link" title="Sure, you can still get to the SIM card on an iPhone, but compared to any other phone, it holds virtually no data beyond the user&amp;#8217;s account credentials or phone number.">2</a></sup>. It&#8217;s a far superior user experience to design those out of the experience all together, in my opinion. That being said, if you&#8217;re going to force your user into awkward set-up necessities, this is about as painless a way to do it as possible. I can image some layered gadget packaging where each section the user opens, they are presented with the next step in setup or assembly (would work great for Ikea products, too!).</p>
<p>Now, as for instructing the user how to do anything on the phone: with a generous sized touch screen, there&#8217;s simply no reason why all of these instructions can&#8217;t just present themselves on the screen. My favorite apps on th the iPhone are those where the instructions appear as modal dialogs pointing to the most-used features. Add&#8217;l help can get included to, but the top two or three tools are called out as soon as the app launches, making any user almost instantly proficient.</p>
<p>So, as much as I like this concept, I&#8217;d much rather see all of this <em>inside</em> the box&mdash;er, phone&mdash;than in some bulky, physical thing that isn&#8217;t going to be with you at all times.</p>
<p>In short: I think the <q>manual</q> for a smart phone should simply be one short sentence: Push the power button.</p>
<p>Via <a href="https://twitter.com/theskypirate/status/166561403552014336">Johne Cook</a>, by way of <a href="https://twitter.com/techcommdood/status/166564402978492418">Bill Swallow</a> &amp; <a href="https://twitter.com/raygallon/status/166571010278178816">Ray Gallon</a></p>
<ol class="footnotes"><li id="footnote_0_1436" class="footnote">Yes, this is the part where I start coming off as an Apple fan boy, but bear with me&hellip; it applies to any smartphone or other touch-screen device</li><li id="footnote_1_1436" class="footnote">Sure, you can still get to the SIM card on an iPhone, but compared to any other phone, it holds virtually no data beyond the user&#8217;s account credentials or phone number.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2012/02/06/think-inside-the-box/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>A DITA &amp; DITA Open Toolkit Reading List</title>
		<link>http://www.jasoncoleman.net/2012/01/13/a-dita-dita-open-toolkit-reading-list/</link>
		<comments>http://www.jasoncoleman.net/2012/01/13/a-dita-dita-open-toolkit-reading-list/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 20:00:20 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Tech Writer]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=1428</guid>
		<description><![CDATA[I was in the process of reorganizing my computer science and technical writing shelf today during lunch when I began to notice a pattern: I have quite a few books related to DITA and the underlying technologies of the DITA &#8230; <a href="http://www.jasoncoleman.net/2012/01/13/a-dita-dita-open-toolkit-reading-list/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was in the process of reorganizing my computer science and technical writing shelf today during lunch when I began to notice a pattern: I have quite a few books related to DITA and the underlying technologies of the DITA Open Toolkit. Well, this isn&#8217;t by coincidence. It&#8217;s a big part of my job and something I&#8217;m really interested in. But it occurred to me just how much time I&#8217;ve spent pouring through these texts of structured authoring and XML-based technology&mdash;all in hopes of grokking this for my job.</p>
<p><a href="http://www.flickr.com/photos/jason_coleman/6690788969/" title="Some Light Reading on DITA by super-structure, on Flickr"><img src="http://farm8.staticflickr.com/7009/6690788969_d730e20373.jpg" width="500" height="333" alt="Some Light Reading on DITA"></a></p>
<p>So, in no particular order, here&#8217;s a list of some of my books on the subject:</p>
<h2>DITA</h2>
<ul>
<li><em><a href="http://www.amazon.com/gp/product/0557125960/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0557125960">Practical DITA</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0557125960" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
</em> by Julio Vazquez</li>
<li><a href="http://www.amazon.com/gp/product/0557072913/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0557072913">DITA 101</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0557072913" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
 by Ann Rockley, Charles  Cooper, &amp; Steve Manning</li>
<li><a href="http://www.amazon.com/gp/product/B004S81MOI/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B004S81MOI">The DITA Style Guide: Best Practices for Authors</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=B004S81MOI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
 by Tony Self (Kindle edition)</li>
</ul>
<h2>XML</h2>
<ul>
<li><a href="http://www.amazon.com/gp/product/0596004206/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596004206">Learning XML, Second Edition</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596004206" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Erik Ray<sup><a href="http://www.jasoncoleman.net/2012/01/13/a-dita-dita-open-toolkit-reading-list/#footnote_0_1428" id="identifier_0_1428" class="footnote-link footnote-identifier-link" title="I have the first edition. I&amp;#8217;d recommend getting the later edition.">1</a></sup></li>
<li><a href="http://www.amazon.com/gp/product/0596007647/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596007647">XML in a Nutshell, Third Edition</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596007647" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Elliot Harold &amp; W. Scott Means</li>
<li><a href="http://www.amazon.com/gp/product/0596100507/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596100507">XML Pocket Reference (Pocket Reference (O&#8217;Reilly))</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596100507" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Simon St. Laurent &amp; Michael Fitzgerald</li>
<li><a href="http://www.amazon.com/gp/product/0596003277/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596003277">Learning XSLT</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596003277" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Michael Fitzgerald</li>
<li><a href="http://www.amazon.com/gp/product/0764543814/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0764543814">XSLT: Programmer&#8217;s Reference (Programmer to Programmer)</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0764543814" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Michael Kay</li>
<li><a href="http://www.amazon.com/gp/product/0596003552/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596003552">XSL-FO</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596003552" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Dave Pawson</li>
<li><a href="http://commons.oreilly.com/wiki/index.php/SVG_Essentials">SVG Essentials</a> by J. David Eisenberg (free at O&#8217;Reilly Commons)</li>
<li><a href="http://www.amazon.com/gp/product/0596527330/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596527330">CSS: The Definitive Guide</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596527330" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Eric Meyer</li>
</ul>
<p>A couple of books on Ant &amp; JavaScript that I haven&#8217;t even gotten to yet:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/0596521871/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596521871">Learning JavaScript, 2nd Edition</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596521871" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Shelley Powers</li>
<li><a href="http://www.amazon.com/gp/product/0596006098/ref=as_li_ss_tl?ie=UTF8&#038;tag=superstructur-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0596006098">Ant: The Definitive Guide, 2nd Edition</a><img src="http://www.assoc-amazon.com/e/ir?t=superstructur-20&#038;l=as2&#038;o=1&#038;a=0596006098" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Steve Holzner</li>
</ul>
<p>And, some wider shots of my (sort of) organized bookshelves:</p>
<p><a href="http://www.flickr.com/photos/jason_coleman/6690982457/" title="Non-Fiction Bookshelves by super-structure, on Flickr"><img src="http://farm8.staticflickr.com/7151/6690982457_eba3230cc3.jpg" width="333" height="500" alt="Non-Fiction Bookshelves"></a><br />
<br />
<a href="http://www.flickr.com/photos/jason_coleman/6691105361/" title="Office Shelves by super-structure, on Flickr"><img src="http://farm8.staticflickr.com/7143/6691105361_c55f143961.jpg" width="500" height="333" alt="Office Shelves"></a></p>
<ol class="footnotes"><li id="footnote_0_1428" class="footnote">I have the first edition. I&#8217;d recommend getting the later edition.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2012/01/13/a-dita-dita-open-toolkit-reading-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Regular Expressions versus XSLT</title>
		<link>http://www.jasoncoleman.net/2011/12/02/regular-expressions-versus-xslt/</link>
		<comments>http://www.jasoncoleman.net/2011/12/02/regular-expressions-versus-xslt/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 22:08:05 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Tech Writer]]></category>
		<category><![CDATA[RegEx]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=1419</guid>
		<description><![CDATA[Last week I came across an epic rant within a forum thread1 about why using regular expressions for parsing XML is a bad idea. The &#60;center&#62; cannot hold it is too late. The force of regex and HTML together in &#8230; <a href="http://www.jasoncoleman.net/2011/12/02/regular-expressions-versus-xslt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week I came across <a href="http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454">an <em>epic</em> rant within a forum thread</a><sup><a href="http://www.jasoncoleman.net/2011/12/02/regular-expressions-versus-xslt/#footnote_0_1419" id="identifier_0_1419" class="footnote-link footnote-identifier-link" title="And when I say epic, I mean it goes from making a case as to why RegEx is simply insufficiently high-level enough to deal with HTML parsing to opening the gates of the abyss and letting the deep ones in to your mind.">1</a></sup> about why using regular expressions for parsing XML is a bad idea.</p>
<blockquote><p>The &lt;center&gt; cannot hold it is too late. The force of regex and HTML together in the same conceptual space will destroy your mind like so much watery putty.</p></blockquote>
<p>At first, I was a little surprised. I love using regular expressions to make bulk changes throughout an XHTML document or even across a project consisting of hundreds of files. But, after reading through the post several times and thinkng about what I&#8217;ve been able to accomplish with some (relatively) simple XSLT files and a XML parser, it occurred to me that it is absolutely correct.</p>
<p>You, see as great as regular expressions are, they are not aware of the context. They have no idea if your matching a pattern within a C++ routine or an XHTML file. They can only parse characters and short strings as they are, with no understanding of their meaning.</p>
<p>EXstensible Stylesheet Language Transforms, on the other hand, are solely for the purpose of manipulating XML content. By definition, they are aware of XML elements and their attributes. The entire purpose of them is high-level modifications. In fact, after having used them now to successfully convert some XHTML to DITA XML, I have to say the powers feel almost god-like.</p>
<p>RegEx still have their use with XML&mdash;particularly with badly formed SGML/HTML one might have had dumped in their lap. But if the need is actually manipulating XML elements or attributes within a file (or even across files), then it&#8217;s really foolish to try to accomplish something with multiple regular expressions when a single XSL template will do (and often without the unintended consequences of a greedy RegEx).</p>
<ol class="footnotes"><li id="footnote_0_1419" class="footnote">And when I say epic, I mean it goes from making a case as to why RegEx is simply insufficiently high-level enough to deal with HTML parsing to opening the gates of the abyss and letting the deep ones in to your mind.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2011/12/02/regular-expressions-versus-xslt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Hacking the DITA-OT to Print Multiple Pages from a HTML Help File</title>
		<link>http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/</link>
		<comments>http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 18:14:41 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Tech Writer]]></category>
		<category><![CDATA[XMetaL]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=1262</guid>
		<description><![CDATA[Here&#8217;s one that took a little poking around to figure out. One of the many (nay, countless) drawbacks of using HTML Help (.CHM files) is that printing from them is awful. Ideally, a user could print from the Help Viewer &#8230; <a href="http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s one that took a little poking around to figure out. One of the many (nay, countless) drawbacks of using HTML Help (.CHM files) is that printing from them is awful. Ideally, a user could print from the Help Viewer to get a hard copy &mdash; or at least a .PDF copy &mdash; of the manual. This would reduce the burden of trying to continue to produce .PDF deliverables for writers like myself and keep all of the help in one place for the user, allowing them to print what they need<sup><a href="http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/#footnote_0_1262" id="identifier_0_1262" class="footnote-link footnote-identifier-link" title="In engineering, it is occasionally necessary to print off some of the technical reference or methodology sections of design software documentation for clients.">1</a></sup>.</p>
<h2>The Problem</h2>
<p>So, as a writer, I&#8217;d like to be able to style differently for the screen and for print. There are a whole host of reasons why (different readability  issues, scale issues, etc.) but often as not because web browsers just don&#8217;t print everything they render for the screen. Background colors or images, for instance, don&#8217;t get sent to the printer. This can quickly go from a style issue to a readability issue.</p>
<p>While CSS gives the writer a fair bit of control over the display medium, good &#8216;ole HTML Help is right there to block you. It all works just fine when you print only the current topic. However, HTML Help offers this wonderful little feature which allows you to print the current topic and all child topics (for example, the Chapter heading and all contents of that chapter). Sounds great, right? Except for how it is implemented breaks all links/references between files.</p>
<div class="photo-right"><img src="http://www.jasoncoleman.net/images/html_help_print_options.png" title="The cause of all this trouble" alt="Print Topic dialog in HTML Help Viewer" />
<p>The Print Topic dialog: The cause of all this trouble.</p>
</div>
<p>That&#8217;s right. Hyperlinks? Broken. JavaScript? Not only broken, but will now present big, scary error warnings to your user<sup><a href="http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/#footnote_1_1262" id="identifier_1_1262" class="footnote-link footnote-identifier-link" title="God only knows we&amp;#8217;ll get calls about viruses on this one&amp;hellip;">2</a></sup>! And CSS? Completely busted.</p>
<p>You see, when you select this option in HTML Help, Windows copies all of your files (conveniently renaming them, thus breaking links between your topics) into some temporary folder and them concatenates them into one long HTML file, which it then prints just as it would have the single topic file (minus all of the CSS, scripting, and other things I, as a the writer, spent weeks on).</p>
<h2>The Solution</h2>
<p>Fortunately, we can use one of Windows&#8217; other oddities to combat this one. That is, the very strange behavior of .CHM files in the file system. For some insanely odd reason which I cannot fathom, Windows simply doesn&#8217;t care about the folder where a .CHM file was placed. Upon opening it, it sends it to some <q>other place</q> where directories and folders don&#8217;t exist and you simply only need to call for the name of the file and it will locate it no matter where it is on your machine.<sup><a href="http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/#footnote_2_1262" id="identifier_2_1262" class="footnote-link footnote-identifier-link" title="Truly, this has the potential to wreak havoc should you have two or more .CHM files of the same name on your local drive. However, for the most part, it is completely invisible. I can assure you, I have  oodles of copies of various .CHM files with the same name and I only recently learned about this Windows weirdness.">3</a></sup></p>
<p>So, where we would have put a relative file path within the .CHM file&#8217;s internal folders, we will use the MS-ITS syntax call to bring it forth! There is no place safe for these temporary print files that Windows creates due to it&#8217;s own absurd behavior. </p>
<p>Now, obviously, this all applies to <em>any</em> HTML Help file, not just one created using the <a href="http://dita.xml.org/wiki/the-dita-open-toolkit">DITA Open Toolkit</a>. However, I&#8217;ll show you some of the extra know-how it takes to pull this off from within you&#8217;re authoring tools if you&#8217;re using DITA. Some other help authoring tools have options to correct for this<sup><a href="http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/#footnote_3_1262" id="identifier_3_1262" class="footnote-link footnote-identifier-link" title="MadCap Flare, for instance, has an option to correct the appearance of multi-page printing for .CHM files which I&amp;#8217;m fairly certain does the same thing as I describe here.">4</a></sup>.</p>
<h2>The Hack</h2>
<ol>
<li>Create a new style sheet for use with print display or simply use an <code>@media print { }</code> block to add print-relates styles to an existing style sheet. You can reference the same style sheet multiple times in the same HTML file with (apparently, in HTML Help Viewer, at least) no ill effects.</li>
<li>
<p>Locate the XSL file responsible for adding the <code>&lt;head&gt;</code> contents into your HTML files: <code>dita2htmlImpl.xsl</code></p>
<p>For example, for XMetaL, this file is located in <code>C:\Users\&lt;user.name&gt;\AppData\Roaming\SoftQuad\XMetaL Shared\DITA_OT\xsl\xslhtml\</code>, where <code>&lt;user.name&gt;</code> is your Windows user name. On older version of Windows, <code>AppData</code> is <code>Application Data</code> and this is usually a hidden system folder.</p>
</li>
<li>
<p>Near the end of this long XSL file, you&#8217;ll find a number of <code>&lt;xsl:template&gt;</code>s, one of which is used to generate links to CSS files.</p>
<p>Hint: Just do a search for the string &quot;text/css&quot;.</p>
</li>
<li>
<p>Go to the end of this Template (the <code>&lt;/xsl:template&gt;</code> line) and add the following link:</p>
<p><code>&lt;link rel="stylesheet" type="text/css" href="MS-ITS:&lt;your.filename&gt;.chm://&lt;file.path&gt;/&lt;stylesheet.name&gt;.css" media="print" /&gt;</code></p>
<p>Where: <code>&lt;your.filename&gt;.chm</code> is the name of the HTML Help file you&#8217;re generating. Note that you&#8217;ll need to update this file for any different output filenames you generate, unless you want Windows opening up some random .CHM file every time the user clicks Print.</p>
<p><code>&lt;file.path&gt;/&lt;stylesheet.name&gt;.css</code> is the relative file path and stylesheet name <em>inside</em> the HTML Help file. If you really just aren&#8217;t sure, grap a copy of 7Zip and use it to peek inside your .CHM  (it can read them just like a .ZIP file; awesome thing to have in your toolkit).</p>
</li>
</ol>
<p>I&#8217;m fairly certain this concept can be applied to the issue of &lt;scripts&gt;, as well (though I haven&#8217;t gotten it to work thus far). However, it will never fix the issue of hyperlinks between topics as this system of concatenating files into a temporary file irrevocably breaks those links. You can&#8217;t do a one time <q>read this file back in the source .CHM</q> for that issue.</p>
<p>A huge credit goes to <a href="http://helpware.net/htmlhelp/how_to_merge.htm#Others%20Say">Yuko Ishida who sent the key to this over to Helpware.net</a>. I should also point out that this hack was tested in HTML Help Workshop v 4.74.8702, Windows 7 64-bit, XMetaL Author v5.5, and DITA-OT v1.2.</p>
<ol class="footnotes"><li id="footnote_0_1262" class="footnote">In engineering, it is occasionally necessary to print off some of the technical reference or methodology sections of design software documentation for clients.</li><li id="footnote_1_1262" class="footnote">God only knows we&#8217;ll get calls about viruses on this one&hellip;</li><li id="footnote_2_1262" class="footnote">Truly, this has the potential to wreak havoc should you have two or more .CHM files of the same name on your local drive. However, for the most part, it is completely invisible. I can assure you, I have  oodles of copies of various .CHM files with the same name and I only recently learned about this Windows weirdness.</li><li id="footnote_3_1262" class="footnote">MadCap Flare, for instance, has an option to correct the appearance of multi-page printing for .CHM files which I&#8217;m fairly certain does the same thing as I describe here.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2010/12/31/hacking-the-dita-ot-to-print-multiple-pages-from-a-html-help-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Designing User-Focused Context Sensitive Help</title>
		<link>http://www.jasoncoleman.net/2010/05/12/designing-user-focused-context-sensitive-help/</link>
		<comments>http://www.jasoncoleman.net/2010/05/12/designing-user-focused-context-sensitive-help/#comments</comments>
		<pubDate>Wed, 12 May 2010 15:30:16 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Remainder]]></category>
		<category><![CDATA[Tech Writer]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=1153</guid>
		<description><![CDATA[This presentation by Matthew Ellison [Goog docs] given at last year&#8217;s Australasian Online Documentation and Content Conference (AODC 2009) has some excellent points on how to craft online help for context sensitive calls. This is something Bentley uses (a lot) &#8230; <a href="http://www.jasoncoleman.net/2010/05/12/designing-user-focused-context-sensitive-help/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://docs.google.com/viewer?a=v&#038;q=cache:DcjYwK59pBQJ:www.ellisonconsulting.com/downloads/UCD_of_CSH_AODC_2009.pdf+context+senstive+help+header+file+best+practices&#038;hl=en&#038;gl=us&#038;pid=bl&#038;srcid=ADGEEShLNBaBZ_iuPQ2OR5lzW2BD2isrBU3jpdet3kDOuGU8gEvS_0HfCW3uspIDL57f2Ssokp0vdLN-S0YBGnL3QKqzxNx2bNAdcrel65EzPqZXrkP35Ue-yRFqfQRKZsInHXmpUAYL&#038;sig=AHIEtbTclxm4KKTeGWYNJvPWConVc_vBFQ">This presentation by Matthew Ellison</a> [Goog docs] given at last year&#8217;s Australasian Online Documentation and Content Conference (<a href="http://www.aodc.com.au/">AODC</a> 2009) has some excellent points on how to craft online help for context sensitive calls. This is something Bentley uses (a lot) and I&#8217;m trying to catch up on. There are really a lot of excellent points in these slides. I believe that even if you aren&#8217;t employing context-sensitive help, structuring your help as though you were is just as likely to get your users to their answers faster.</p>
<p>Also, the slide in <a href="http://www.flickr.com/photos/gaffney/3555565343/in/set-72157618574022867/">this photo</a> (from the same conference) made me laugh out loud (literally, not in a LOL sort of way).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2010/05/12/designing-user-focused-context-sensitive-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Clarity Trumps Brevity</title>
		<link>http://www.jasoncoleman.net/2009/10/13/clarity-trumps-brevity/</link>
		<comments>http://www.jasoncoleman.net/2009/10/13/clarity-trumps-brevity/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 12:04:58 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Remainder]]></category>
		<category><![CDATA[Tech Writer]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=972</guid>
		<description><![CDATA[Dan Silverman doesn&#8217;t like his Avaya desktop phone1 very much. He explains how its cryptic buttons don&#8217;t really provide enough information to make sense of their function. He also includes this gem on what happens when industrial design fails (which &#8230; <a href="http://www.jasoncoleman.net/2009/10/13/clarity-trumps-brevity/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dan Silverman doesn&#8217;t like his Avaya desktop phone<sup><a href="#footnote-phone">1</a></sup> very much. <a href="http://blogs.harvardbusiness.org/silverman/2009/10/when-clarity-is-not-the-same-a.html">He explains</a> how its cryptic buttons don&#8217;t really provide enough information to make sense of their function. He also includes this gem on what happens when industrial design fails (which is almost always, to some extent):</p>
<blockquote><p>Yes, in the case of electronic devices, the design should intuitively convey how it works without the need for a manual. But if the design is bad, a manual is the next best thing.</p></blockquote>
<p>Writing the manual or the help should be integral to the process of design and not left until the end (or worse, after the product ships). Good manuals and help can indeed be the next best thing to an inspired design and make products far more usable.<br />
<br /><sup name="footnote-phone">1</sup>see how I invented a new phrase to describe an old thing based on the way we do things now?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2009/10/13/clarity-trumps-brevity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Open Source Documentation</title>
		<link>http://www.jasoncoleman.net/2009/03/24/open-source-documentation/</link>
		<comments>http://www.jasoncoleman.net/2009/03/24/open-source-documentation/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 20:51:20 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Remainder]]></category>
		<category><![CDATA[Tech Writer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=818</guid>
		<description><![CDATA[This is very humbling to me. Last week, at the DocTrain West conference, 25 writers produced a manual for FireFox in just two days as part of the FLOSS Manuals project. The manual is freely available online and is distributed &#8230; <a href="http://www.jasoncoleman.net/2009/03/24/open-source-documentation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is very humbling to me. Last week, at the DocTrain West conference, 25 writers produced <a href="http://en.flossmanuals.net/Firefox">a manual for FireFox</a> in just two days as part of the <a href="http://en.flossmanuals.net/">FLOSS Manuals</a> project. The manual is freely available online and is distributed in a Creative Commons CC-BY-SA license. You can purchase a print-on-demand copy of the manual from LuLu as well, which helps to support the FLOSS project. So a special thanks to all those folks who spent some time indoors (when they could have been enjoying Palm Springs) to help the open source community. I&#8217;ve already sent a link to the manual to my mom, who uses FireFox on her mac!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2009/03/24/open-source-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
		<item>
		<title>Using Variables with Find/Replace in Flare</title>
		<link>http://www.jasoncoleman.net/2009/03/13/using-variables-with-findreplace-in-flare/</link>
		<comments>http://www.jasoncoleman.net/2009/03/13/using-variables-with-findreplace-in-flare/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 05:13:52 +0000</pubDate>
		<dc:creator>Jason Coleman</dc:creator>
				<category><![CDATA[Flare]]></category>
		<category><![CDATA[Tech Writer]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[variables]]></category>

		<guid isPermaLink="false">http://www.jasoncoleman.net/?p=801</guid>
		<description><![CDATA[This one is a pretty simple trick and, to be honest, one that a lot of folks probably figured out sooner than I did. With just a little bit of work, you can easily replace oft-used words or phrases in &#8230; <a href="http://www.jasoncoleman.net/2009/03/13/using-variables-with-findreplace-in-flare/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This one is a pretty simple trick and, to be honest, one that a lot of folks probably figured out sooner than I did. With just a little bit of work, you can easily replace oft-used words or phrases in your Flare project with a variable. This is especially useful if you find yourself writing early on in the development process where some terminology of features or a product interface are subject to change.</p>
<p>Or, if you&#8217;re like me and you just don&#8217;t know what the hell such-and-such thing is called and the development team has yet to answer your e-mail asking because they&#8217;re too busy forwarding it to everyone else in the company who&#8217;ll get a good laugh out of the ridiculously silly question. Okay, that hasn&#8217;t actually happened (except for the part about me not knowing what something is actually called). At least not that I&#8217;m aware of.</p>
<p>So, here are the steps for finding all the instances of a term and replacing it with a variable:</p>
<ol>
<li>Create a Variable in the MyVarables set.
<p class="note"><strong>Note:</strong> It&#8217;s good practice to use camel notation when naming your variable. Keep it short, but make it something you can easily identify (variables don&#8217;t have dental records and teeth and such in the event of a serious accident). And be consistent in how you name things!</p>
</li>
<li>Launch the Find and Replace panel by selecting <em>Edit &gt; Find and Replace &gt; Find and Replace</em> from the menu bar, or just press <strong>Ctrl + F</strong>.</li>
<li>Enter the text you wish to substitute with a your new variable in the <em>Find What</em> field. Under the options section, select <strong>(whole project)</strong> for the <em>Find In:</em> field, <strong>Topics</strong> for <em>File Types</em>, and make sure the option for <em>Find in source code</em> is cleared (though we&#8217;ll use that option in a moment).</li>
<li>Click the <strong>Start</strong> button to locate the first instance of the text.</li>
<li>The searched-for text will be selected for you in the XML editor within a topic file. Click the topic&#8217;s tab along the editor window just to make that part of the program window active. Now, select <em>Insert &gt; Variable&hellip;</em> from the menu bar to open the Variables dialog.</li>
<li>Select the MyVariables set and then the variable you&#8217;ll be using to replace this particular text with. Click the <strong>OK</strong> button.</li>
<li>Now, you need to get the actual markup for this variable. The fastest way I know to do so is click the <strong>Locate in Content Explorer</strong> button in the Standard toolbar. Then, with the topic file now selected, right click and select <em>Open With &gt; Internal Text Editor</em>. Now, hunt around until you locate the variable tag. It looks like this:
<p><code>&lt;MadCap:variable name="MyVariables.SuchAndSuch" /&gt;</code></p>
<p>Select and copy this entire tag.
<p class="note"><strong>Note:</strong> You can also use the Send To menu button, also located on the standard toolbar. It&#8217;s the one that looks like an envelope and that you probably thought was just for e-mailing a file. However, it will actually open up the current file in an external program, including your handy text editor (I use TextPad).</p>
</li>
<li>Now, back in the Find and Replace panel, this is what you&#8217;ll paste into the <em>Replace with:</em> field. But now you&#8217;re going to make sure that the <em>Find in source code</em> option is now selected.</li>
<li>Click the <strong>Start</strong> button again (you changed the options since you last did so). Use the <strong>Replace </strong>and <strong>Find Next</strong> buttons to swap out the text with the variable markup one by one.</li>
</ol>
<h4>A Note of Caution</h4>
<p>You&#8217;re going to be replacing text in the source markup here so be careful. I <em>strongly</em> urge you to not use the Replace In All Files button. It&#8217;s fast but it&#8217;s also risky. You&#8217;ll replace any instance of the text; anywhere: keywords, etc. You might find yourself putting a variable tag where it really doesn&#8217;t belong. Fortunately, Flare will likely just give you a gentle scolding and ignore your silly little nonsense. But, you might just find a loophole you wish you hadn&#8217;t. It&#8217;s best to do this one-at-a-time, even if that takes a while.</p>
<p>Ideally, MadCap would add an option in the the Replace With field to just select one of your variables from there. This way, you don&#8217;t have to Find/Replace in source code and run the risk of doing something unintended (hopefully they&#8217;d handle all that under the hood). But until then, only replace what you are sure is <em>content</em> material and not anything else.</p>
<h4>Extend This Trick</h4>
<p>Now, you can also use this little trick for finding and replacing other code, so you could add a particular style to any instance of a phrase. Ex: replace &quot;OK button&quot; with &quot;&lt;strong&gt;OK&lt;/strong&gt; button&quot;. I&#8217;ve yet to find a limit to the number of characters available in the Find and Replace field, but I suspect it&#8217;s probably around 256 or so. I don&#8217;t think you&#8217;ll be replacing <em>A Tale of Two Cities</em> with <em>War and Peace</em> using this.</p>
<p>Further, you can use regular expression for &mdash; well &mdash; anything that you just about think of, I suppose. You can also use wildcards which though not as sexy as RegEx are still quite useful when just doing text search. If you&#8217;re just looking for any instance of noun &mdash; plural or singular; RegEx might be swatting flies with tanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasoncoleman.net/2009/03/13/using-variables-with-findreplace-in-flare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>
	</item>
	</channel>
</rss>

