<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>AllWrite Design's Blog</title>
	<atom:link href="http://allwritedesign.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://allwritedesign.wordpress.com</link>
	<description>Technical writing tools and Information engineering and</description>
	<lastBuildDate>Thu, 04 Feb 2010 09:32:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='allwritedesign.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>AllWrite Design's Blog</title>
		<link>http://allwritedesign.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://allwritedesign.wordpress.com/osd.xml" title="AllWrite Design&#039;s Blog" />
	<atom:link rel='hub' href='http://allwritedesign.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Who writes the SDK samples?</title>
		<link>http://allwritedesign.wordpress.com/2010/02/03/who-writes-the-sdk-samples/</link>
		<comments>http://allwritedesign.wordpress.com/2010/02/03/who-writes-the-sdk-samples/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 14:02:08 +0000</pubDate>
		<dc:creator>allwritedesign</dc:creator>
				<category><![CDATA[Documenting APIs and SDKs]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[code examples]]></category>
		<category><![CDATA[code samples]]></category>
		<category><![CDATA[Doxygen]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[technical writing]]></category>

		<guid isPermaLink="false">http://allwritedesign.wordpress.com/?p=49</guid>
		<description><![CDATA[There is wide agreement that in an API (SDK), perhaps the most vital element (and the one the uninitiated programmer always looks for) is the samples. So what is the writer&#8217;s role in all this? A technical writer must always come to grips with the problem and the proposed solution, from the customer point of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=49&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is wide agreement that in an API (SDK), perhaps the most vital element (and the one the uninitiated programmer always looks for) is the samples. So what is the writer&#8217;s role in all this? A technical writer must always come to grips with the problem and the proposed solution, from the <strong>customer </strong>point of view.</p>
<p>Representing the <strong>users</strong>, the technical writers, then, should be intimately involved with every word in the documentation set. And if the documentation set must include samples, the tech writer should create those too.</p>
<p>This is purist theory. Practically, this is not a requirement.</p>
<p>In all my time as an API writer, I was never once required to write an example myself. Moreover, I would not trust myself to do so. I have learned several programming languages, have worked daily in software engineering environments for over 15 years, but still wouldn&#8217;t say, &#8220;I can code in Java!&#8221;</p>
<p>My approach to documenting an SDK is to represent the user, guide the engineers through the topics a user would seek and have the engineers provide the rough source material. That is true for the overview, the reference material and the examples. In encouraging the engineers to come up with examples, I point them to the same tests they developed to QA their own units, or to code developed by Integration teams in the field (more often than not, SDKs grow out of customized APIs developed for specific users). The result of this approach is true-to-life samples that demonstrate broad applicability and that are accessible&#8211;again&#8211;to the <strong>users</strong>.</p>
<p>So, for the purposes of API documentation, I would prefer being a programmer-tech-writer to being a tech-writer. Notwithstanding, even if I were a programmer, I might defer to the field engineer or technical support engineer for accurate, practical and applicable samples.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allwritedesign.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/allwritedesign.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/allwritedesign.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/allwritedesign.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/allwritedesign.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/allwritedesign.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/allwritedesign.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/allwritedesign.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=49&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allwritedesign.wordpress.com/2010/02/03/who-writes-the-sdk-samples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88738135d71c059c53d4e6991cf2c6ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allwritedesign</media:title>
		</media:content>
	</item>
		<item>
		<title>Methods not Appearing</title>
		<link>http://allwritedesign.wordpress.com/2009/08/09/methods-not-appearing/</link>
		<comments>http://allwritedesign.wordpress.com/2009/08/09/methods-not-appearing/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 15:37:55 +0000</pubDate>
		<dc:creator>allwritedesign</dc:creator>
				<category><![CDATA[Documenting APIs and SDKs]]></category>

		<guid isPermaLink="false">http://allwritedesign.wordpress.com/2009/08/09/methods-not-appearing/</guid>
		<description><![CDATA[“I have documented methods in my C++ class but they are not appearing in the HTML output.” Surprised? Doxygen ignores the documentation of global entities (like functions) if the file that contains these is, itself, not documented. “To document a member of a C++ class, you must also document the class itself. The same holds [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=45&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>“I have documented methods in my C++ class but they are not appearing in the HTML output.”</p>
<p>Surprised? </p>
<p>Doxygen ignores the documentation of global entities (like functions) if the file that contains these is, itself, not documented. </p>
<p>“To document a member of a C++ class, you must also document the class itself. The same holds for namespaces. To document a global C function, typedef, enum or preprocessor definition you must first document the file that contains it (usually this will be a header file, because that file contains the information that is exported to other source files).</p>
<p>In other words, there must at least be a</p>
<p>/*! \file */</p>
<p>or a</p>
<p>/** @file */</p>
<p>line in this file.</p>
<p>See:</p>
<p>http://www.stack.nl/~dimitri/doxygen/</p>
<p>docblocks.html#structuralcommands</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allwritedesign.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/allwritedesign.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/allwritedesign.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/allwritedesign.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/allwritedesign.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/allwritedesign.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/allwritedesign.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/allwritedesign.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=45&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allwritedesign.wordpress.com/2009/08/09/methods-not-appearing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88738135d71c059c53d4e6991cf2c6ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allwritedesign</media:title>
		</media:content>
	</item>
		<item>
		<title>Chutzpah and the Velvet Revolution</title>
		<link>http://allwritedesign.wordpress.com/2009/01/28/chutzpah-and-the-velvet-revolution/</link>
		<comments>http://allwritedesign.wordpress.com/2009/01/28/chutzpah-and-the-velvet-revolution/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 11:09:10 +0000</pubDate>
		<dc:creator>allwritedesign</dc:creator>
				<category><![CDATA[Training and Management]]></category>
		<category><![CDATA[coaching]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[multicultural workplace]]></category>
		<category><![CDATA[technical writing]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://allwritedesign.wordpress.com/?p=32</guid>
		<description><![CDATA[I had experienced TechWriter Concussion in the past – you know, when expectations of management collide with the actual material and your head is somewhere in-between. My first day on site at ABC Telecom Solutions (an imaginary name), Czech Republic, employer of more than 900, was classical in that sense, only on a much grander [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=32&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had experienced TechWriter Concussion in the past – you know, when expectations of management collide with the actual material and your head is somewhere in-between. My first day on site at ABC Telecom Solutions (an imaginary name), Czech Republic, employer of more than 900, was classical in that sense, only on a much grander scale. </p>
<p>This was the scenario:</p>
<p><strong>Mandate</strong>: The documentation professional (that’s me) will produce a set of English-language product documentation for a first-release complex platform. The set (comprising an estimated 50 notable deliverables) will be ready for release in six months.</p>
<p><strong>Software availability</strong>: Modules are produced independently in R&amp;D centers in Bratislav, Minsk, Moscow and Prague. Modules “speak in different GUI languages and styles” and are “not on talking terms”.</p>
<p><strong>Existing documentation</strong>: a heap of engineering notes in English, Czech and Russian, deep inside the Mail Server. </p>
<p><strong>SMEs</strong>: a multi-national group of disgruntled programmers, most of them (mis-)operating as integrators on remote sites around the globe (in Asia and Africa).</p>
<p><strong>Writing team</strong>: Moshe and two engineering typists<br />
Seasoned consultant, notwithstanding, I was overcome with hot flushes (even though I am only 43). Was the prospect of the couldn’t-be-done too terrifying, or too ghastly to contemplate? No, it was laughable, ridiculous. My gut told me “flee”. I feigned jet-lag. Where could I lie down?</p>
<p>I needed partisans fast, had limited time and budget, so I forayed into every group in STS, coaxing management to reassign talent “temporarily” and came up with the following group:<br />
Genia, a Russian literature graduate from Novosibirsk, Siberia (seized from the translators group); the two resident engineering typists &#8212; both from the greater Prague area:  Michal, previously employed as a snowboarding instructor and Zdenĕk, a humanities graduate; Saša, a Czech literature major who hailed from St. Petersburg, Russia (once a translator in the company); Dima, a delightful Russian, endowed with loads of good will and then manager of a company group portal; Hana, a real-life Bohemian, passionate dancer and Czech language major at Charles University, Prague (also a translator); Tanya, an erstwhile physician from Minsk, and recently employed at the company as a translator; Adam, a long-time expat from the USA, in his recent past, a dilettante restaurateur and legal editor; Geoff, a bright American college graduate with a Czech girlfriend; Rose, a sound and lighting technician, with excessive experience at rock concerts.</p>
<p>A motley group indeed, working in an environment hostile to technical writers (where are they not?) in a country where there is still no translation for “technical writer”. Yet, at the end of my tenure (Jan 2008), management declared the major accomplishment of 2007 to be “Documentation”! </p>
<p>How did we pull it off? </p>
<p>I injected a generous dose of Israeli thrift and improvisation into a group possessing a unique blend of post-Communist inexperience and a traditionally Czech delight for independence of expression.</p>
<p>That energy formula produced 50 deliverables and more, several times over: users guides, installation manuals, integrators guides, SDKs, operation and maintenance manuals, functional specifications and more, in Word, in PDF, in online help (using ePublisher), in HTML, in Help v2 for .NET programming environments (using Sandcastle), all according to an exacting style guide, using strictly defined Word templates, within a predefined review timeline. Moreover, as ABC Telecom undertook more challenging projects, the group learned to support translation and localisation efforts too. In short, each of them had become an accomplished technical communicator; each of them a rich asset to the company; each possessing an enviable resume.</p>
<p>The experience for me was exhilarating. During our fascinating journey together, I was given almost complete carte blanche to express my full complement of skills, knowledge, and experience as a trainer, coach, mentor, technical communicator and micromanager to a group of greenfield writers. Chutzpah and the 1989 Velvet Revolution had collaborated to leverage resources to attain un-dreamt-of accomplishments. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allwritedesign.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/allwritedesign.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/allwritedesign.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/allwritedesign.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/allwritedesign.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/allwritedesign.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/allwritedesign.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/allwritedesign.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=32&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allwritedesign.wordpress.com/2009/01/28/chutzpah-and-the-velvet-revolution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88738135d71c059c53d4e6991cf2c6ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allwritedesign</media:title>
		</media:content>
	</item>
		<item>
		<title>Doxygen: adding abstracts to your examples</title>
		<link>http://allwritedesign.wordpress.com/2009/01/28/doxygen-adding-abstracts-to-your-examples/</link>
		<comments>http://allwritedesign.wordpress.com/2009/01/28/doxygen-adding-abstracts-to-your-examples/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 08:03:44 +0000</pubDate>
		<dc:creator>allwritedesign</dc:creator>
				<category><![CDATA[Documenting APIs and SDKs]]></category>
		<category><![CDATA[code examples]]></category>
		<category><![CDATA[documenting code]]></category>
		<category><![CDATA[Doxygen]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://allwritedesign.wordpress.com/?p=29</guid>
		<description><![CDATA[Today&#8217;s piece follows the last and describes how to tack on abstracts to examples using Doxygen. 1. Prepare a text file that contains only abstracts and associates each abstract to the example code it describes. Let&#8217;s call it examples_doc. The example shows two abstracts for two examples: /*! \example register.cc There are two possible scenarios [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=29&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s piece follows the last and describes how to tack on abstracts to examples using Doxygen.</p>
<p>1. Prepare a text file that contains only abstracts and associates each abstract to the example code it describes. Let&#8217;s call it examples_doc. The example shows two abstracts for two examples:</p>
<p>/*! \example register.cc </p>
<p>There are two possible scenarios when registering command line arguments.<br />
Both are useful but are intended for different work flows:</p>
<ul>
<li>The first is simpler and faster. It is suitable in cases where<br />
users define, parse, and use command line arguments in the same source file<br />
(typically, in the <tt>main()</tt> function).</p>
<li>The second method allows users to define the command line arguments in<br />
a library and to use it in any source by including the .h file where command line arguments<br />
are defined.
</ul>
<p>*/</p>
<p>/*! \example ScopesDef.cc</p>
<p>This example demonstrates:<br />
- How to define \c IdAbsDA subclasses corresponding to different scopes.<br />
- How to register IDs<br />
*/</p>
<p>Ensure that the name of the example following the \example tag is exactly the name of the example stored. Referencing ScopesDef.cpp when the name is ScopesDef.cc will not produce the results you need.</p>
<p>2. In the list of inputs referenced by the INPUT configuration parameter, add examples_doc.<br />
3. Make sure the EXAMPLE_PATH parameter points to the folder(s) that contain the examples.</p>
<p>Now run Doxygen and voila.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allwritedesign.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/allwritedesign.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/allwritedesign.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/allwritedesign.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/allwritedesign.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/allwritedesign.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/allwritedesign.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/allwritedesign.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=29&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allwritedesign.wordpress.com/2009/01/28/doxygen-adding-abstracts-to-your-examples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88738135d71c059c53d4e6991cf2c6ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allwritedesign</media:title>
		</media:content>
	</item>
		<item>
		<title>Example abstracts&#8211;not just &#8220;nice to have&#8221;.</title>
		<link>http://allwritedesign.wordpress.com/2009/01/19/example-abstracts-not-just-nice-to-have/</link>
		<comments>http://allwritedesign.wordpress.com/2009/01/19/example-abstracts-not-just-nice-to-have/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 14:19:53 +0000</pubDate>
		<dc:creator>allwritedesign</dc:creator>
				<category><![CDATA[Documenting APIs and SDKs]]></category>
		<category><![CDATA[code samples]]></category>
		<category><![CDATA[documenting code]]></category>
		<category><![CDATA[Doxygen]]></category>
		<category><![CDATA[SDKs]]></category>

		<guid isPermaLink="false">http://allwritedesign.wordpress.com/?p=22</guid>
		<description><![CDATA[Whether you are fashioning your C-language SDK in MS Word, or crafting a collection of .NET assemblies in an automated documentation tool, such as Document! X, provide your users the convenience of an abstract before each code sample. As the blurb on a book jacket, the outline or abstract provides an overview of the work [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=22&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Whether you are fashioning your C-language SDK in MS Word, or crafting a collection of .NET assemblies in an automated documentation tool, such as Document! X, provide your users the convenience of an abstract before each code sample.</p>
<p>As the blurb on a book jacket, the outline or abstract provides an overview of the work the example code performs and informs the user of its relevance to the task at hand&#8211;in short, gives her safe ground and invites her in.</p>
<p>Hold on! Why bother? Certainly, the geeky user can get by without the abstract, and content herself with the few comment lines inside the example&#8230;</p>
<p>Considered from a professional viewpoint, this approach is wanting. Commercial product that it is, an SDK must be fully capable of providing users all they need to accomplish the tasks they face, both in terms of the tools it provides and in terms of the documentation that accompanies the tools.</p>
<p>Next blog: using Doxygen to tack an abstract onto a code sample.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allwritedesign.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/allwritedesign.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/allwritedesign.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/allwritedesign.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/allwritedesign.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/allwritedesign.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/allwritedesign.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/allwritedesign.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=22&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allwritedesign.wordpress.com/2009/01/19/example-abstracts-not-just-nice-to-have/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88738135d71c059c53d4e6991cf2c6ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allwritedesign</media:title>
		</media:content>
	</item>
		<item>
		<title>Linking examples into your SDK using Doxygen</title>
		<link>http://allwritedesign.wordpress.com/2009/01/11/adding-linked-examples-using-doxygen/</link>
		<comments>http://allwritedesign.wordpress.com/2009/01/11/adding-linked-examples-using-doxygen/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 21:17:04 +0000</pubDate>
		<dc:creator>allwritedesign</dc:creator>
				<category><![CDATA[Documenting APIs and SDKs]]></category>

		<guid isPermaLink="false">http://allwritedesign.wordpress.com/?p=5</guid>
		<description><![CDATA[The hallmark of a well-conceived SDK is the quality and range of the examples you supply with it. The examples are the starting point for the vast majority of programmers. That&#8217;s where they stick their big toe in and test the water. Most programmers will be able to scan the example code and, with some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=5&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The hallmark of a well-conceived SDK is the quality and range of the examples you supply with it. The examples are the starting point for the vast majority of programmers. That&#8217;s where they stick their big toe in and test the water.</p>
<p>Most programmers will be able to scan the example code and, with some basic comments, be able to understand what they do&#8211;especially if the developers have tested the examples and seen that they actually run (not always obvious). But if you <strong>document </strong>the examples and catalog them, you add an extra dimension that sets your professional SDK apart from the rest.</p>
<p>In a series of pieces, I am going to show you how to do some cool things with examples using <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a>. Today&#8217;s describes how to generate automatic links from the programmer&#8217;s guide in your SDK (which includes the examples, in my view) to the dry class-and-method reference side.</p>
<p>Before I start, I am going to assume that since you are preparing a commercial SDK, you desire to expose certain classes and methods in your headers and hide others, meaning you have made the following Doxygen configuration settings:</p>
<p>HIDE_UNDOC_MEMBERS  = YES<br />
HIDE_UNDOC_CLASSES   = YES</p>
<p>The meaning of these settings is that your output will show only those classes and methods that you have documented. I stress this, because links between reference and examples are only possible where you have documented the relevant classes and methods.</p>
<p>Now the process:</p>
<p>1. You don&#8217;t have to keep all the examples in a single folder. Doxygen can handle examples in several sources. Personally, I prefer to keep the examples for a single library in one location, reproducing the same tree structure for the folder, relative to its parent library. It&#8217;s less management overhead and eases the collaborative effort between writers, R&amp;D and different teams within R&amp;D. </p>
<p>2. Once you know where your examples are located, point to the location using the EXAMPLES_PATH configuration parameter. </p>
<p>That&#8217;s it.</p>
<p>Now, the <strong>documented </strong>#includes in your example code are hyperlinked to the headers. Calls to methods are linked to the description of the classes and the methods they contain.</p>
<p>An extra to end: to make sure you enable all the links you can, add a compilation warning to flag the files and methods you have not documented, like this:</p>
<p>WARN_IF_UNDOCUMENTED   = YES</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/allwritedesign.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/allwritedesign.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/allwritedesign.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/allwritedesign.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/allwritedesign.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/allwritedesign.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/allwritedesign.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/allwritedesign.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=allwritedesign.wordpress.com&amp;blog=6133853&amp;post=5&amp;subd=allwritedesign&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://allwritedesign.wordpress.com/2009/01/11/adding-linked-examples-using-doxygen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88738135d71c059c53d4e6991cf2c6ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">allwritedesign</media:title>
		</media:content>
	</item>
	</channel>
</rss>
