<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEYGQno5fSp7ImA9WhRUEkQ.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820</id><updated>2012-01-22T22:22:03.425-07:00</updated><category term="Social Media" /><category term="MathML" /><category term="Usability" /><category term="Microsoft" /><category term="Sociology" /><category term="Doxsl" /><category term="Tools that don't suck" /><category term="GEDCOM" /><category term="Geneaology" /><category term="Guns of Brixon" /><category term="ODRL" /><category term="Review" /><category term="Leaky Abstractions" /><category term="Anonymous" /><category term="EPUB" /><category term="4chan" /><category term="Catching Up" /><category term="Live Writer" /><category term="Recession" /><category term="XQuery" /><category term="Keys and Keyrefs" /><category term="transclusion" /><category term="XML Tools" /><category term="DRM" /><category term="Annotation" /><category term="Economic Opportunity" /><category term="Xalan" /><category term="Saxon" /><category term="Structured Markup Languages" /><category term="HTML5" /><category term="Modular DocBook" /><category term="Sex Pistols" /><category term="DITA" /><category term="ROI" /><category term="Publishing" /><category term="XSLT" /><category term="WikiLeaks" /><category term="Mulvihill" /><category term="IP Rights Management" /><category term="MSXSL" /><category term="Rights Management" /><category term="interoperability" /><category term="IPRM" /><category term="XML" /><category term="Dublin Core" /><category term="Art" /><category term="Open Toolkit" /><category term="Open Publish" /><category term="Indirect Linking" /><category term="XProc" /><category term="Business" /><category term="conditional processing" /><category term="Conferences" /><category term="XPath" /><category term="DocBook" /><category term="XML Standards" /><category term="Arab Spring" /><category term="XMetaL" /><category term="HTML" /><category term="Punk" /><category term="80/20 Rule" /><category term="Wiki" /><category term="Severson" /><category term="Data vs. Content" /><category term="Kate Earley" /><category term="contextual" /><category term="metadata" /><category term="SOPA" /><category term="filtering" /><category term="The Clash" /><title>Jim's Thoughtspot</title><subtitle type="html">Over time this blog will provide my thoughts and ideas about technology, particularly in (but not limited to)  the area of Information Management, focusing on XML, XSLT, XPath and XQuery.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://jims-thoughtspot.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/fsMyk" /><feedburner:info uri="blogspot/fsmyk" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A04ESX8_eCp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-6356673525133032229</id><published>2012-01-17T15:28:00.001-07:00</published><updated>2012-01-17T15:38:28.140-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T15:38:28.140-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ODRL" /><category scheme="http://www.blogger.com/atom/ns#" term="DRM" /><category scheme="http://www.blogger.com/atom/ns#" term="Publishing" /><category scheme="http://www.blogger.com/atom/ns#" term="Rights Management" /><category scheme="http://www.blogger.com/atom/ns#" term="IP Rights Management" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><title>A First Look at ODRL v2</title><content type="html">With other things taking high priority over the last 6 months, this is the first opportunity I’ve had to look at the progression of ODRL Version 2.0, and evaluating where it’s improved from the earlier versions.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
First things first, ODRL has migrated to the W3C as a &lt;a href="http://www.w3.org/community/odrl/" target="_blank"&gt;Community Working Group&lt;/a&gt;.&amp;nbsp; Overall, this is a good thing.&amp;nbsp; It opens it up to the wider W3C community, gives greater credence to the effort and more importantly, more exposure.&amp;nbsp; Well done.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
On to my first impressions: &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1 .&lt;/strong&gt; &lt;strong&gt;The model has been greatly simplified. &lt;/strong&gt;&amp;nbsp; With ODRL 1.x, it was possible to express the same rights statement in several different ways.&amp;nbsp; The obvious implication was that it was virtually impossible to build a generalized API for processing IP Rights, save running &lt;a href="http://jaxb.java.net/jaxb20-ea/docs/xjc.html" target="_blank"&gt;XJC&lt;/a&gt; on the schema, which isn't necessarily always what I want.&amp;nbsp; It wasn’t all bad news though, the 1.x extension model was extremely flexible and enabled the model to support additional business-specific rights logic.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. Flexible Semantic Model.&lt;/strong&gt;&amp;nbsp; The 2.0 model has a strong RDF-like flavor to it.&amp;nbsp; Essentially, all of the entities, assets, parties (e.g., rightsholders, licensees), permissions, prohibitions, and constraints are principally URI-based resource pointers that imply semantics to each of the entities.&amp;nbsp; Compared to 1.x, this is a vast improvement to its tag-based semantics, which meant that you were invariably extending either the ODRL content model, data dictionary, or both.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;strong&gt;3. Needs More Extensibility. &lt;/strong&gt;&amp;nbsp; The &lt;a href="http://www.w3.org/community/odrl/two/xml/#appendix-a" target="_blank"&gt;current normative schema&lt;/a&gt;, still in draft, does need some additional design.&amp;nbsp; Out of the box testing with Oxygen shows that only one element is exposed (&lt;em&gt;policy&lt;/em&gt;).&amp;nbsp; All of the other element definitions are embedded within the complexType models, which means makes it difficult to extend the model with additional structural semantics.&amp;nbsp; This is extremely important on a number of fronts:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The current model exposes assets as explicit members of a permission or prohibition.&amp;nbsp; Each “term” (i.e., permission or prohibition) is defined by an explicit action (print, modify, sell, display).&amp;nbsp; It’s not uncommon to have a policy that covers dozens or hundreds of assets.&amp;nbsp;&amp;nbsp; So for each &lt;em&gt;term&lt;/em&gt;, I have to explicitly call out each asset.&amp;nbsp; This seems a little redundant.&amp;nbsp; The 1.x model had the notion of &lt;em&gt;terms&lt;/em&gt; that applied to all declared assets at the beginning of the policy (or in the 1.x semantics, &lt;em&gt;rights&lt;/em&gt;).&amp;nbsp; I’d like to see this brought back into the 2.0 model.  &lt;/li&gt;
&lt;li&gt;The constraint model is too flat.&amp;nbsp; The new model is effectively a tuple of: &lt;em&gt;constraintName, operator, operand.&lt;/em&gt;&amp;nbsp; This works well for simple constraints like the following psuedo-code : “print”, “less than”, “20000”, but doesn’t work well for situations where exceptions may occur (e.g., I have exclusive rights to use the asset in the United States until 2014, except in the UK; or I have worldwide rights to use the asset in print, except for North Korea, and the Middle East).&amp;nbsp;&amp;nbsp; Instead, I have to declare the same constraint twice:&amp;nbsp; once within a &lt;em&gt;permission,&lt;/em&gt; and second time as a &lt;em&gt;prohibition.&lt;/em&gt;&amp;nbsp;&amp;nbsp; I’d like the option to extend the constraint model to enable more complex expressions like the ones above. &lt;br /&gt;&lt;br /&gt;Additionally list values within constraints are expressed tokenized strings within the &lt;em&gt;rightOperand&lt;/em&gt; attribute.&amp;nbsp; While completely valid to store values in this, I have a nit against these types of token lists, especially if the set of values is particularly long, like it can for things like countries using ISO-3166 codes.&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
I shouldn’t have to extend the whole complexType declaration in order to extend the model with my own semantics. However the current schema is structured that way.&amp;nbsp;&amp;nbsp; Instead, I’d like to see each entity type exposed as an “abstract” element, bound to a type, which ensures that my extension elements would have to at least conform to the base model.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Takeaways&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;
I’m looking forward to using this with our Rights Management platform.&amp;nbsp; The model is simple and clean and has a robust semantics strategy modeled on an RDF-like approach.&amp;nbsp; This will make it easier to use the out-of-the-box model.&amp;nbsp; That said, it’s missing some key structures that would make it easier to use and extend if I have to, but that can be address with a few modifications to the schema.&amp;nbsp; (I have taken a stab at refactoring to test this theory – it’s pretty clean and I’m able to add my “wish list” extensions with very little effort.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Link:&amp;nbsp;&lt;/b&gt;&lt;a href="http://dl.dropbox.com/u/29013483/odrl-v2-proposed.xsd"&gt;http://dl.dropbox.com/u/29013483/odrl-v2-proposed.xsd&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-6356673525133032229?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q0aUelPRFQwLFU9AnrQfewDGFtA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q0aUelPRFQwLFU9AnrQfewDGFtA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q0aUelPRFQwLFU9AnrQfewDGFtA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q0aUelPRFQwLFU9AnrQfewDGFtA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/afJAyLD76Jc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/6356673525133032229/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=6356673525133032229" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/6356673525133032229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/6356673525133032229?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/afJAyLD76Jc/first-look-at-odrl-v2.html" title="A First Look at ODRL v2" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2012/01/first-look-at-odrl-v2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcMSH05cSp7ImA9WhRWE0o.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-4827840582509379871</id><published>2011-12-31T15:59:00.001-07:00</published><updated>2011-12-31T16:28:09.329-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T16:28:09.329-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Guns of Brixon" /><category scheme="http://www.blogger.com/atom/ns#" term="Anonymous" /><category scheme="http://www.blogger.com/atom/ns#" term="Social Media" /><category scheme="http://www.blogger.com/atom/ns#" term="WikiLeaks" /><category scheme="http://www.blogger.com/atom/ns#" term="Punk" /><category scheme="http://www.blogger.com/atom/ns#" term="Arab Spring" /><category scheme="http://www.blogger.com/atom/ns#" term="Sex Pistols" /><category scheme="http://www.blogger.com/atom/ns#" term="4chan" /><category scheme="http://www.blogger.com/atom/ns#" term="The Clash" /><title>Parallels between Punk and Anonymous</title><content type="html">&lt;strong&gt;Prologue:&lt;/strong&gt;&amp;nbsp; Before starting my career in the tech world 15+ years ago,&amp;nbsp; I was a graduate student in Sociology studying political movements and economies.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
At any rate, what’s intriguing about technology is not only about 0s or 1s, data structures, angle brackets, optimized queries or distributed architectures (don’t get me wrong, I love elegant code&amp;nbsp; and design as much as any other geek) – it’s also the intended and unintended consequences it has on society at large.&amp;nbsp;&amp;nbsp; As the automobile and large manufacturing re-shaped our society a hundred years ago, the internet and all of the emerging technologies are transforming our social interactions today.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
2011 was a landmark year.&amp;nbsp; We saw “Arab Spring” unfold before us in large part because of mobile devices and social media (granted, the other necessary ingredients – anger, resentment, disenfranchisement, chronic poverty and unemployment – have been brewing for many years).&amp;nbsp; The “Occupy” movement harnessed the same political, social, economic, and technological ingredients along with a sprinkling of hyper-aggressive tactics of the NYPD and transformed a seemingly innocuous protest into a worldwide meme.&amp;nbsp; WikiLeaks, rightly or not, also changed the way we view government, particularly when sensitive or embarrassing information is exposed.&amp;nbsp; And to that end, this year demonstrated that the combination of mobile and social technology meant that information could spread virally, beyond the full control of any one entity.&amp;nbsp; This has spurred new tensions between individuals who interact with data and entities who provide and/or control the data.&lt;br /&gt;
&lt;br /&gt;
In this case, I see many interesting parallels between the Punk subculture of the 1970s and early 1980s and the nascent subculture of Anonymous that is growing today.&amp;nbsp; Both have emerged during periods of economic turmoil, and both have a strong anti-authoritarian sentiment that are willing to challenge the current establishment.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
I love the Sex Pistols (and the Smiths, the Cure, The Damned, Souixsie and Banshees, and so on, and on, etc.).&amp;nbsp; I can listen to “Anarchy in the UK”, “God Save the Queen”, or “Pretty Vacant” any time. It’s loud and raucous.&amp;nbsp; It’s fun.&amp;nbsp; It’s… well, rebellious.&amp;nbsp; Johnny Rotten’s menacing, sarcastic vocals epitomized the political, social and philosophical undertones of the Punk subculture of the mid-to-late 1970s. &lt;br /&gt;
&lt;br /&gt;
From many accounts, the Punk subculture, particularly in the UK, emerged during the mid-1970s in part because of the poor economy.&amp;nbsp; Disenfranchised youths with few economic prospects gravitated to a style of music and dress that was non-conformist by nature and expressed their anger and frustration against society and government. &lt;br /&gt;
&lt;br /&gt;
The ethos, or ideology of Punk is well described here (source:&amp;nbsp; &lt;a href="http://www.bunnysneezes.net/page192.html"&gt;http://www.bunnysneezes.net/page192.html&lt;/a&gt;):&lt;br /&gt;
&lt;blockquote&gt;
It is passionate, preferring to encounter hostility rather than complacent indifference; working class in style and attitude if not in actual socio-economic background; defiant, unconventional, bizarre, shocking; starkly realistic, anti- euphemism, anti-hypocrisy, anti-bullshit, anti-escapist, happy to rub people's noses in realities they don't wish to acknowledge; angry, aggressive, confrontational, tough, willing to fight — yet this stance is derived from an underlying vulnerability, for the archetypal Punk is young, small, poor, and powerless, and he knows it very well; sceptical, especially of authority, romance, business, school, the mass media, promises, and the future; socially critical, politically aware, pro-outlaw, anarchistic, anti-military; expressive of feelings which polite society would censor out; anti-heroic, anti-"rock star" ("Every musician a fan and every fan in a band!"); disdainful of respectability and careerism; night-oriented; with a strong, ironic, satirical (often self-satirical), put-on-loving sense of humor, which is its saving grace; stressing intelligent thinking and deriding stupidity; frankly sexual, frequently obscene; apparently devoted to machismo, yet welcoming "tough" females as equals (and female Punks are often as defiant of the males as of anyone else) and welcoming bisexuals, gays, and sexual experimentation generally; hostile to established religions but sometimes deeply spiritual; disorganized and spontaneous, but highly energetic; above all, it is honest.&lt;/blockquote&gt;
Compare this to the first two parts of Quinn Norton’s (Wired Magazine) well-done analysis of Anonymous in “Anonymous: Beyond the Mask” (Part 1 here:&amp;nbsp; &lt;a href="http://www.wired.com/threatlevel/2011/11/anonymous-101/all/1"&gt;http://www.wired.com/threatlevel/2011/11/anonymous-101/all/1&lt;/a&gt;; Part 2 here: &lt;a href="http://www.wired.com/threatlevel/2011/12/anonymous-101-part-deux/"&gt;http://www.wired.com/threatlevel/2011/12/anonymous-101-part-deux/&lt;/a&gt;).&amp;nbsp; One of the first things this series does incredibly well is to identify Anonymous for what it is – a culture, or more accurately, a counter-culture.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Like Punk, Quinn goes on to describe the Anonymous culture:&lt;br /&gt;
&lt;blockquote&gt;
The birthplace of Anonymous is a website called &lt;a href="http://www.4chan.org/"&gt;4chan&lt;/a&gt; founded in 2003, that developed an “anything goes” random section known as the /b/ board. &lt;br /&gt;
…&lt;br /&gt;
Like &lt;a href="http://en.wikipedia.org/wiki/V_(comics)"&gt;Alan Moore’s character V&lt;/a&gt; who inspired Anonymous to adopt the Guy Fawkes mask as an icon and fashion item, you’re never quite sure if Anonymous is the hero or antihero. The trickster is attracted to change and the need for change, and that’s where Anonymous goes. But they are not your personal army – that’s Rule 44 – yes, &lt;a href="http://knowyourmeme.com/memes/rules-of-the-internet#.Trhw3PSXuso"&gt;there are rules&lt;/a&gt;. And when they do something, it never goes quite as planned. The internet has no neat endings.&lt;/blockquote&gt;
What’s more, both are media savvy in their own ways, leveraging them for their own purpose.&amp;nbsp; Obviously, in the ‘70s and ‘80s, the internet wasn’t even a twinkle in our eyes yet, so they relied on &lt;a href="http://en.wikipedia.org/wiki/Punk_zine"&gt;print&lt;/a&gt; and radio (typically either on small, low-band college stations or on pirate radio stations since mainstream radio stations wouldn’t give them airplay) to get their message out.&amp;nbsp;&amp;nbsp; Anonymous, however, have the luxury of the internet and search engines, where information is easily accessible and available: &lt;br /&gt;
&lt;blockquote&gt;
But to be historical, let’s start with 4chan.org, a wildly popular board for sharing images and talking about them, and in particular, 4chan’s &lt;a href="http://boards.4chan.org/b/"&gt;/b/ board&lt;/a&gt; (Really, really, NSFW). /b/ is a web forum where posts have no author names and there are no archives and it’s explicitly about anything at all. This technological format meeting with the internet in the early 21st Century gave birth to Anonymous, and it remains the mother’s teat from which Anonymous sucks. (Rule 22) &lt;/blockquote&gt;
Both follow its own rules, many of which run counter to conventionally accepted protocols, and frequently meant to shock, ridicule and otherwise laugh at mainstream society.&amp;nbsp; &lt;br /&gt;
&lt;blockquote&gt;
/b/ is the id of the internet, the collective unconscious’s version of the place from which the base drives arise. There is no sophistication in the slurs, sexuality, and destruction in the savage landscape of /b/ — it is the natural state of networked man.&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
In this, it has a kind of innocence and purity. Terms like ‘nigger’ and ‘faggot’ are common, but not there because of racism and bigotry – though racism and bigotry are easily found there. Their use is there to keep you out. These words are heads on pikes warning you that further in it gets much worse, and it does.&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
Nearly any human appetite is acceptable, nearly any flaw exploited, and probably photographed with a time stamp. But /b/ reminds us that the id is the seat of creative energy. Much of it, hell even most of it, is harmless or even sweet. People reach out for help on /b/, and they find encouragement and advice. The id and /b/ are the foxholes of those who feel powerless and disenfranchised.&lt;/blockquote&gt;
And like Punk, it never intended to be overtly political.&amp;nbsp; Rather, the circumstances and events of the time instigated it.&amp;nbsp; “The Guns of Brixton”, written by The Clash about the &lt;a href="http://en.wikipedia.org/wiki/1981_Brixton_riot"&gt;1981 Brixton Riots&lt;/a&gt; is one of many examples.&amp;nbsp; For Anonymous, its forays into political protest were spurred on by their collective belief that Julian Assange and WikiLeaks were wrongfully targeted by governments and large, multinational corporations, and that fellow “compatriots” at BitTorrent site, Pirate Bay, were wrongfully attacked.&amp;nbsp; In all cases, the common thread was a belief of suppression by the establishment.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Where they differ, however, is in their means of expression.&amp;nbsp; Punk is analog.&amp;nbsp; It could only reach those in proximity to a radio signal (or the &lt;a href="http://www.youtube.com/watch?v=p25SdQEnhHI"&gt;occasional TV appearance&lt;/a&gt;), a concert venue, or to a “zine”.&amp;nbsp; It’s effect and impact on society at large could only scale to the number of members it could congregate in any one physical location, which meant that it could remain largely contained and isolated.&amp;nbsp; On the other hand, Anonymous is digital.&amp;nbsp; Its reach is unbounded and its impact on society much more significant.&amp;nbsp; The virtual nature of Anonymous means that they are able to challenge mainstream society more directly with little or no impunity.&amp;nbsp; With tools like the Low Orbit Ion Cannon for DDOS attacks, and with more talented hacker members able to break into corporate and government servers and stealing sensitive information from them, governments and corporations see them as a real threat. &lt;br /&gt;
&lt;br /&gt;
At its essence, the Punk subculture provided its members a means of “flipping off” mainstream culture, through its music, dress, art, literature, and language.&amp;nbsp; Yet, it was easy for mainstream society to ignore early punk youth, since their access to media was relatively limited.&amp;nbsp; Anonymous shares this same “f--- you” attitude along with the same antipathy toward authority, yet they have the means to express their views more dramatically, and with greater reach, particularly because the internet, social media, and mobile devices enable members of Anonymous to be anywhere, or anyone. &lt;br /&gt;
&lt;br /&gt;
Punk has evolved over the decades.&amp;nbsp; The music has changed; the aesthetics are different, and to some extent, what was considered shocking then is widely accepted now.&amp;nbsp; Yet, the &lt;em&gt;idea&lt;/em&gt; of Punk is still here.&amp;nbsp; Anonymous is just the latest manifestation of it, and it could potentially have even greater impact on society-at-large.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-4827840582509379871?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VHlynlulLmQEuuJpbzfoWnw75lY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VHlynlulLmQEuuJpbzfoWnw75lY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VHlynlulLmQEuuJpbzfoWnw75lY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VHlynlulLmQEuuJpbzfoWnw75lY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/RtZ_gjqYmaw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/4827840582509379871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=4827840582509379871" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4827840582509379871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4827840582509379871?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/RtZ_gjqYmaw/parallels-between-punk-and-anonymous.html" title="Parallels between Punk and Anonymous" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2011/12/parallels-between-punk-and-anonymous.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGSXs5cSp7ImA9WhRQGU4.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-7561405385255960738</id><published>2011-12-14T23:14:00.001-07:00</published><updated>2011-12-14T23:47:08.529-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-14T23:47:08.529-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SOPA" /><category scheme="http://www.blogger.com/atom/ns#" term="ODRL" /><category scheme="http://www.blogger.com/atom/ns#" term="IPRM" /><category scheme="http://www.blogger.com/atom/ns#" term="DRM" /><title>SOPA Will Be Our Generation’s McCarthy Witch Hunt</title><content type="html">&lt;p&gt;In the late 1940s and early 1950s Joseph McCarthy was determined to eradicate the &lt;a href="http://en.wikipedia.org/wiki/Red_Scare"&gt;Red Scare&lt;/a&gt; by accusing numerous Americans of treason and being communists.&amp;nbsp; It resulted in many actors being &lt;a href="http://en.wikipedia.org/wiki/Hollywood_blacklist"&gt;blacklisted&lt;/a&gt;, and resulted in the now infamous question to the “Hollywood Ten” from the House Committee on Un-American Activities – “Are you now or have you ever been a member of the Communist Party?”&amp;nbsp; They exercised their 5th Amendment rights and refused to answer the question, principally because they felt their First Amendment rights were being impinged.&lt;/p&gt; &lt;p&gt;In its current form, the “Stop Online Piracy Act” (SOPA) would allow the Department of Justice and Copyright holders to seek injunction against websites that are accused of enabling, facilitating or engaging in copyright infringement.&amp;nbsp; It doesn’t stop there:&amp;nbsp; It would force search engines to remove all indexes for that site, mandate that ISPs block access to the site, and require 3rd party sites like PayPal from engaging or transacting with the offending website.&amp;nbsp; All because the copyright holder (or DOJ) makes an accusation.&amp;nbsp; The burden of proof is on the ISPs, the search engines and the 3rd party vendors to show that the “offending website” is not violating any copyright (So perhaps Congress should consult the &lt;a href="http://en.wikipedia.org/wiki/Sixth_Amendment_to_the_United_States_Constitution"&gt;6th Amendment&lt;/a&gt;).&amp;nbsp;&amp;nbsp; The implications are severe even for websites that reference these infringing sites.&amp;nbsp; They could be shut down too. &lt;/p&gt; &lt;p&gt;Let’s be clear, I’m not condoning piracy of any kind.&amp;nbsp; Intellectual Property vis-à-vis copyright is the coin of the realm of many companies, even whole industries like Publishing, Media, Software, and yes, the Entertainment world, and they should protect their assets. They should derive value and profit from their IP.&amp;nbsp; An author who pours their heart into a publication, or an artist whose performance I like should be paid.&amp;nbsp; Likewise, content producers – studios, publishers, media companies – should be able to garner payment for their role in providing content.&amp;nbsp; But they are looking at the whole piracy issue the wrong way. &lt;/p&gt; &lt;p&gt;Brute-force tactics to protect copyright have been epic failures.&amp;nbsp; DRM approaches don’t work.&amp;nbsp; In fact, they &lt;a href="http://gigaom.com/2011/12/14/what-louis-ck-knows-that-most-media-companies-dont/"&gt;incite piracy&lt;/a&gt;, and worse, they &lt;a href="http://www.antipope.org/charlie/blog-static/2011/11/cutting-their-own-throats.html"&gt;harm the very companies they try to protect&lt;/a&gt;.&amp;nbsp; In 2007, Radiohead released their album &lt;a href="http://boingboing.net/2007/10/09/radioheads-new-downl.html"&gt;“In Rainbows” DRM-free&lt;/a&gt;.&amp;nbsp; A year later, &lt;a href="http://weblogs.variety.com/thesetlist/2008/10/radioheads-publ.html"&gt;they had sold over 1.75 &lt;em&gt;million&lt;/em&gt; copies and 1.2 &lt;em&gt;million&lt;/em&gt; fans would buy tickets to their show&lt;/a&gt;.&amp;nbsp;&amp;nbsp; Bottom line:&amp;nbsp; Locking down content doesn’t protect copyright holders.&amp;nbsp; Instead, DRM tactics will end up frustrating consumers who legally purchase content but can’t use it or copy it to a new device and, as a result, &lt;em&gt;diminishes revenue.&amp;nbsp; &lt;/em&gt;And at that point, the &lt;a href="http://en.wikipedia.org/wiki/Opportunity_cost"&gt;opportunity cost&lt;/a&gt; of future purchases with the same DRM constraints will grow higher and higher.&amp;nbsp; Media, publishing and entertainment executives know that DRM has failed, and feel that their only recourse is through SOPA.&lt;/p&gt; &lt;p&gt;There will always be a small percentage of consumers who will use pirated content.&amp;nbsp; But it needn’t be a negative sum game.&amp;nbsp; In some cases, it should be written off as a business cost in order to generate more revenue:&amp;nbsp; a pirated song, might lead to the offending consumer to purchase a ticket to a concert, or to the next movie because they can’t wait.&amp;nbsp; Yet, to prevent wholesale piracy, technology exists today that can protect copyrighted content:&amp;nbsp; XMP (even &lt;a href="http://odrl.net"&gt;ODRL&lt;/a&gt; can be serialized into XMP), digital fingerprinting for starters.&amp;nbsp; By using these, along with other tools that can scan the internet for matching assets, asset producers can identify and isolate pirated copies.&amp;nbsp; Then they can go after the offending sites directly.&amp;nbsp; &lt;/p&gt; &lt;p&gt;SOPA won’t stop piracy, but it will impact everyone’s access on the Internet.&amp;nbsp; And in that vein, SOPA legitimizes the piracy of 1st Amendment rights, much in the same way that McCarthyism censored free though in the 1950s, simply by accusation of copyright infringement.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;NOTE:&amp;nbsp; &lt;/strong&gt;The views expressed in this post and on this blog are my own.&amp;nbsp; They do not reflect the views of my employer, its employees or its partners.&amp;nbsp; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-7561405385255960738?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0Vq1szG_39GJgU1RCk8XY680u0A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0Vq1szG_39GJgU1RCk8XY680u0A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0Vq1szG_39GJgU1RCk8XY680u0A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0Vq1szG_39GJgU1RCk8XY680u0A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/0aEGCaClrn0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/7561405385255960738/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=7561405385255960738" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7561405385255960738?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7561405385255960738?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/0aEGCaClrn0/sopa-will-be-our-generations-mccarthy.html" title="SOPA Will Be Our Generation’s McCarthy Witch Hunt" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2011/12/sopa-will-be-our-generations-mccarthy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4BRH8yeip7ImA9WhRSGU8.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-1290710049099388717</id><published>2011-11-21T17:01:00.001-07:00</published><updated>2011-11-21T18:22:35.192-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-21T18:22:35.192-07:00</app:edited><title>Note to Fanboys: Don’t Hate the Player, Hate the Game…</title><content type="html">This is a bit of a rant.&amp;nbsp; I get tired of hearing and reading fanboy comments that go along the lines of:&amp;nbsp; “X rules, Y[,Z] drools…”, “You’re just a hater…"&amp;nbsp; Blah. Blah Blah. It’s like listening to reverb on PA system.&lt;br /&gt;&lt;br /&gt;
My irritation stems from an article I read recently about the potential repercussions of &lt;a href="http://www.infoworld.com/d/application-development/will-adobes-html5-strategy-really-help-developers-178568"&gt;Adobe’s move to stop development of Flash for mobile devices&lt;/a&gt;.&amp;nbsp; The article, in my opinion, was well balanced and made the point that while Flash is on the decline, there’s plenty of room for Adobe to maneuver and claim a stake in the RIA/HTML5 world.&amp;nbsp;&amp;nbsp; What struck me though were the comments.&amp;nbsp; Several of them were antagonistic and claiming author bias against Flash.&lt;br /&gt;&lt;br /&gt;
The comments also struck a chord with me in that I recently ran into a buzzsaw-like argument with a client with respect to implementing and deploying a No-SQL data solution against trying to do the same thing in one of the big RDBMSs.&amp;nbsp; The debate was that they felt that there wasn’t anything their current RDBMS couldn’t do that the intended NO-SQL system did.&amp;nbsp; Sure, their system could, but it didn’t the specific kinds of things they wanted to do with the NO-SQL system nearly as well.&amp;nbsp; In fact some of the things were bolted on with the technical equivalent of bailing wire and duct tape, and in the long run, cost them more in overhead and maintenance.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
After the debate, I took some time to reflect on their argument.&amp;nbsp; The underlying theme that occurred to me was this:&amp;nbsp; they &lt;em&gt;understood&lt;/em&gt; RDBMS; they &lt;em&gt;didn’t understand&lt;/em&gt; the NO-SQL system we recommended they implement.&amp;nbsp; Bottom line:&amp;nbsp; Go with what you know.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
Yet I’ve seen this kind of resistance to various technologies throughout my career.&amp;nbsp; I’ve seen the esoteric debates between the DocBook and DITA content models and architecture, the religious orthodoxy of Windows vs. Linux vs. Mac, and more recently, the pissing contests of iOS vs. Android.&amp;nbsp; The main contention between camps always seems to boil down to “mine or bigger/better/faster/cooler than yours.”&amp;nbsp; My 5 year old twins do it better than anyone, but to hear it from grown-up professionals is like listening to a murder of cackling crows.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
If we’re intellectually honest, all of these arguments/dogmatic disputes boil down to the same time-tested axiom:&amp;nbsp; all of us will tend to gravitate to tools/technologies/practices that we’re familiar with, understand, are (reasonably) good at, scratch a particular (set of) itch(es), or just think are cool.&amp;nbsp; Any variance from these, or the suggestion that something is better/faster/cooler than what exists in your comfort zone warrants unabashed trolling, simply because they don’t fit within our particular paradigm.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
Tools and technology are applied to solve a specific set of problems, under a specific finite set of assumptions. Don’t like the “evil empire” Microsoft, but appreciate commodity hardware? here comes Linux; like beautiful form, closed, but controlled functionality? Mac seems a good fit.&amp;nbsp; Need structured data without a lot of noise?&amp;nbsp; JSON might be a good fit, however if your data is rich and structured?&amp;nbsp; XML is game for it.&amp;nbsp; Want a single seamless experience for your smartphone?&amp;nbsp; iPhone; want to use an open-source mobile platform with many choices of devices? Android.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
The point is this - When a problem veers away from these binding assumptions, or new assumptions are introduced, either the tool or technology must be modified/enhanced to fit these assumptions, or other technologies will be built to replace it.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
I’m not&amp;nbsp; entrenched in the idea that “&lt;a href="http://drmacros-xml-rants.blogspot.com/2006/02/all-tools-suck.html"&gt;all tools suck&lt;/a&gt;, some worse than others”.&amp;nbsp; Every tool and technology has limitations -&amp;nbsp; we need look no further than Joel Spolsky’s seminal work, “&lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;The Law of Leaky Abstractions&lt;/a&gt;.”&amp;nbsp; For instance, we rely heavily on virtualized environments for our development work.&amp;nbsp; Works great for most Linux and Windows environments, but you’re out of luck for Macs.&amp;nbsp;&amp;nbsp; Does that mean Macs suck?&amp;nbsp; For working in the virtualized environment we have, it’s a buzzkill; but overall no.&amp;nbsp; We also do a lot of work with XML standards like DITA and DocBook.&amp;nbsp; DITA’s great for its flexibility and reusability; but DocBook still has a place too especially for longer content components where minimalism is not applicable.&lt;br /&gt;&lt;br /&gt;
But now we can begin to boil down tools and technology down to their real “suck factor”:&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
In the grand scheme the evolution of technology plays out very much like &lt;a href="http://en.wikipedia.org/wiki/The_Structure_of_Scientific_Revolutions"&gt;Thomas Kuhn’s seminal work&lt;/a&gt;.&amp;nbsp; In many cases, it doesn’t build on older work, but rather there is a creative destruction and replacement with new technology.&amp;nbsp; During that process, there is a polarization between the two technical/philosophical camps.&amp;nbsp; Eventually, as the new technology attains enough momentum through adoption, the other older technology relinquishes (perhaps not to complete obscurity, and sometimes becoming a small, niche player).&lt;br /&gt;&lt;br /&gt;
As mentioned above, all tools and technology are constrained by the the underlying assumptions they were built on, and within the bounding box of a specific problem set.&amp;nbsp; &lt;em&gt;Assumptions are rarely ever static&lt;/em&gt; – they evolve over time, and when they do, the underlying premise on which a particular tool or technology is built on will start to falter.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
For example, Flash works pretty damn well on my laptop with Firefox or Chrome – it works reasonably well on my Android phone, even though it does eat up my battery.&amp;nbsp; Flash basically did things that HTML + Javascript could never do (well).&amp;nbsp; Along comes HTML5, and the underlying assumptions are changing, and they are building in specifications into the standard that will make it possible to create rich internet applications natively (&lt;a href="http://jims-thoughtspot.blogspot.com/2011/07/html5-well-maybe.html"&gt;though not right away&lt;/a&gt;).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
Additionally, smart mobile devices are exceedingly becoming users’ primary access to the internet meaning that lightweight, small footprint applications are incredibly important.&amp;nbsp; Combine these with sprinkle of animosity/frustration/angst/whatever from Steve Jobs and Apple, and the foundations on which your technology are built will inevitably weaken.&lt;br /&gt;&lt;br /&gt;
Throw in some market forces and what you think is the greatest thing since Gutenberg’s press turns out to be yet another Edsel on the trash heap of “other great ideas”.&amp;nbsp; Case in point: we can argue ‘til the cows come home that BetaMax was far superior than VHS, but that and a couple of dollars will buy you a cup of coffee.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
So now that I’ve gone on a somewhat random dissertation of my original rant,&amp;nbsp; I’ll leave all any fanboys with the key message:&amp;nbsp; &lt;a href="http://www.youtube.com/watch?v=fcIH5DQY6U8"&gt;Don’t hate the player, hate the game&lt;/a&gt;.&amp;nbsp; Technology comes and goes.&amp;nbsp; Assumptions change constantly.&amp;nbsp; Try to keep an open mind and recognize when you’re falling into the familiarity trap.&amp;nbsp; Improvise and adapt, or you’ll be left behind like yesterday’s news.&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Full Disclosure&lt;/strong&gt;&lt;br /&gt;
In full disclosure, and keeping with the theme of intellectual honesty:&lt;br /&gt;&lt;br /&gt;
I own an Android phone, because my carrier didn’t support iPhone at the time.&amp;nbsp; I like my Android and continue to go with what I know, and like that it’s built on open source software.&amp;nbsp; I think the latest generation of iPhones with Siri are pretty amazing though.&lt;br /&gt;&lt;br /&gt;
I’ve used several Linux variants throughout my career, but do most of my work on Windows because that’s what’s on my laptop, and it works well with the tools I use everyday.&amp;nbsp; My last real experience with Mac was back in 1997-1998 when I was in grad school.&amp;nbsp; So I won’t claim any real knowledge here. &lt;br /&gt;&lt;br /&gt;
I use Eclipse plus numerous plugins for Java development, Microsoft Visual Studio for .NET development (though SharpDevelop is pretty cool too!), and Oxygen for XML development.&amp;nbsp; I prefer Notepad++ over TextPad, and I like Chrome over Firefox and use IE only when I have to.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
I use JSON when I’m working with jQuery, Dojo or YUI, and I use XML for structured authoring and when I work with XML databases, XSLT, and XQuery and for things like Rights Management.&amp;nbsp; I like Flex for building UIs quickly for prototypes (hey, demos are in controlled environments, right? :), but recognize its limitations when it comes to device support and will consider my options carefully in a production environment.&lt;br /&gt;&lt;br /&gt;
I like REST over SOAP over other RPC protocols.&amp;nbsp; RESTEasy rocks for simple apps; Spring for bigger implementations.&amp;nbsp; &lt;a href="http://guide.couchdb.org/draft/consistency.html"&gt;Eventual Consistency&lt;/a&gt; is in; &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;ACID&lt;/a&gt; is out.&lt;br /&gt;&lt;br /&gt;
I still think HTML5 is a work in progress and needs maturity among the “Big Three” browsers and think Flash is still a few years from replacement (Firefox, IE, and Chrome/Safari – OK, I mention 4 but I lump Chrome and Safari together for their use of WebKit). While it’s still very early, I’m eager to see if Google Dart has legs and can displace Javascript (I’m not a big fan debugging other’s JS code when it comes to determining data types or scope).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
I’m still trying to grok my way through XProc pipelines and tend to use XSLT 2.0 in somewhat creative ways that it wasn’t intended for, and use Ant for processing pipelines even though I know that it is IO-bound. &lt;br /&gt;&lt;br /&gt;
And finally, I’m truly into Spanish Riojas right now, and only drink Merlots or Cabernets when I have to :)&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-1290710049099388717?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-YqsWyw18HB2ccgmfOCv-4pIGa0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-YqsWyw18HB2ccgmfOCv-4pIGa0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-YqsWyw18HB2ccgmfOCv-4pIGa0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-YqsWyw18HB2ccgmfOCv-4pIGa0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/TeqXe2Q4iQ4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/1290710049099388717/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=1290710049099388717" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/1290710049099388717?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/1290710049099388717?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/TeqXe2Q4iQ4/this-is-bit-of-rant.html" title="Note to Fanboys: Don’t Hate the Player, Hate the Game…" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2011/11/this-is-bit-of-rant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQnwzcSp7ImA9WhdSFEs.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-8344974396664958499</id><published>2011-07-23T16:41:00.001-06:00</published><updated>2011-07-23T17:10:23.289-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-23T17:10:23.289-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Publishing" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML5" /><category scheme="http://www.blogger.com/atom/ns#" term="MathML" /><category scheme="http://www.blogger.com/atom/ns#" term="EPUB" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>HTML5: Well, Maybe.</title><content type="html">&lt;p&gt;I just finished reading an &lt;a href="http://www.businessinsider.com/roger-mcnamee-video-2011-7?op=1" target="_blank"&gt;article&lt;/a&gt; about Roger McNamee’s bold predictions about social media.&amp;nbsp; Aside from some the interesting business predictions (e.g., don’t invest in new social media startups: that train has left the station) that I mostly agree with, he is strongly emphasizing the emergence of HTML5 as the technology that will drive application development in the future.&amp;nbsp; On this point, I’m not ready to throw my FlexBuilder, Visual Studio, Eclipse and Android SDK development environments in the dust bin just yet.&amp;nbsp; Forget about scrapping my Notepad++ or Oxygen environments, these are keepers for the long, long term.&lt;/p&gt; &lt;p&gt;Yeah, HTML5 definitely has much promise:&amp;nbsp; Canvas alone is just cool.&amp;nbsp; I’ve seen some really interesting things done with this, and it can only get better from there.&amp;nbsp; Yet one cool enhancement for a browser isn’t enough to keep my attention long term, nor is it a game-changer that will revolutionize how users interact with application interfaces.&amp;nbsp; &lt;/p&gt; &lt;p&gt;So what kinds of things will keep me saying, “you had me at hello.”?&amp;nbsp;&amp;nbsp; The big deal for me is looking at the world through the publishing industry’s collective eye:&amp;nbsp; Many of the big publishers are in the midst of what can considered a paradigmatic shift – while print will still be a prominent part of their business model, it won’t be the dominant model.&amp;nbsp; This is a significant change.&amp;nbsp; Publishers will transform themselves from &lt;em&gt;content designers&lt;/em&gt; to &lt;em&gt;media conduits&lt;/em&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;OK, so how what will HTML5 need to have to be compelling for publishers to adopt it?&amp;nbsp; I see three things, all of which are requirements for the browser vendors to reconcile:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Media Codec Standardization  &lt;li&gt;Support other key technical standards (EPUB, MathML, etc.)  &lt;li&gt;Form-factor scaling&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;strong&gt;Media Codec Standardization&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Right now, there are myriad of audio and video standards like H.264, Ogg (Theora for audio; Vorbis for video), MP3, Speex, AAC, WAV, and so on and on and on.&amp;nbsp; The problem is that none of the current browsers support a common set of these, and even when they do support them, their support varies.&amp;nbsp; Until they figure that out, HTML5 will not be able to leverage its full capability and publishers will be reluctant to adopt it.&lt;/p&gt; &lt;p&gt;References:&amp;nbsp; &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5_Media"&gt;http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5_Media)&lt;/a&gt;; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Native Support for other Standards&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;OK, this one is a big, huge stretch and probably not going to happen anytime really soon.&amp;nbsp; Well, OK.&amp;nbsp; Ever. That said, these are the types of challenges that publishers have to face currently as well as going forward.&amp;nbsp; EPUB is the biggest stretch only because it leverages HTML (and ZIP compression) anyway, but the capability to embed EPUB in an HTML container would be a big win.&amp;nbsp; Yet for technical publishers, i.e., engineering, science and math publishers,&amp;nbsp; there hasn’t been a good solution for displaying all manner of math equations in browsers – they’ve had to rely on either transforming the equation to a raster image (and only recently to vector images like SVG) or rely on plugins to render the equation.&amp;nbsp; More recently, we’ve seen developments like MathJAX (&lt;a href="http://mathjax.org"&gt;http://mathjax.org&lt;/a&gt;) that rely on Javascript libraries to consume LaTeX scripts and display equations.&amp;nbsp; A bit better, but not quite as elegant as leveraging structural markup.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The bottom line is that this requirement is probably more of a “nice to have,” but for STM publishers, its key to their business.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Form Factor&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;This is probably the most significant limitation today.&amp;nbsp; It would be one thing if all applications/browsers were bound to desktops and laptops.&amp;nbsp; The reality is that mobile devices, all of which have different dimensions ranging from relatively small smart phones to now tablets means that application interfaces have added challenges to support these different form factors.&amp;nbsp; Today, I would be hard-pressed to recommend HTML5 UI libraries over native mobile OS UI controls.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;The Future&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Will HTML5 become the preeminent technology platform? My magic 8-ball on my smart phone says “Ask again later…”&amp;nbsp; This resonates the same for me.&amp;nbsp; I’m hopeful that HTML5 can live up to the promise and can become the common technology platform for all applications.&amp;nbsp; But right now, there’s just too many holes in the various browser engines to make it practical.&amp;nbsp; Don’t expect browser vendors to patch these holes quickly.&amp;nbsp; In the meantime, several factors will impede HTML5 adoption:&amp;nbsp; Flash, warts and all, is still largely ubiquitous.&amp;nbsp; Its influence is slowly diminishing, but it won’t go away anytime soon.&amp;nbsp; In addition, Javascript libraries like JQuery, YUI and Dojo are maturing, but I think we’ll need to see how they shake out over time.&amp;nbsp; I’ll defer to Javascript experts to tell me which of these will become integral for HTML5 applications.&lt;/p&gt; &lt;p&gt;Lastly, HTML5 won’t be promoted to true standard status for &lt;a href="http://www.techrepublic.com/blog/programming-and-development/html-5-editor-ian-hickson-discusses-features-pain-points-adoption-rate-and-more/718" target="_blank"&gt;another 10 – 11 years&lt;/a&gt;.&amp;nbsp; This is a lifetime, almost an epoch, for technology.&amp;nbsp; Lots can happen in that time.&amp;nbsp; It’s hard to predict right now what emerging technologies will come along that will impact content and media, but chances are something will.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update (7/23/2011 05:08 PM MST):&lt;/strong&gt;&amp;nbsp; Even more articles are coming out suggesting HTML5 will be a boom industry (see &lt;a href="http://gigaom.com/2011/07/22/the-html5-boom-is-coming-fast/"&gt;http://gigaom.com/2011/07/22/the-html5-boom-is-coming-fast/&lt;/a&gt;):&amp;nbsp; Could be real, but could be a bubble.&amp;nbsp; I’m not convinced yet that browsers are up to the task – yet.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-8344974396664958499?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9kOpF5553PSnBBjxINJvCBnqDNE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9kOpF5553PSnBBjxINJvCBnqDNE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9kOpF5553PSnBBjxINJvCBnqDNE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9kOpF5553PSnBBjxINJvCBnqDNE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/M8QyzFo_V18" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/8344974396664958499/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=8344974396664958499" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8344974396664958499?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8344974396664958499?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/M8QyzFo_V18/html5-well-maybe.html" title="HTML5: Well, Maybe." /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2011/07/html5-well-maybe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHSHY9fCp7ImA9WhZbGEg.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-7422353053869429327</id><published>2011-06-23T10:49:00.003-06:00</published><updated>2011-06-23T11:27:19.864-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-23T11:27:19.864-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ODRL" /><category scheme="http://www.blogger.com/atom/ns#" term="IPRM" /><category scheme="http://www.blogger.com/atom/ns#" term="DRM" /><category scheme="http://www.blogger.com/atom/ns#" term="Rights Management" /><category scheme="http://www.blogger.com/atom/ns#" term="IP Rights Management" /><title>IPRM != DRM</title><content type="html">Over the last year, I've been developing strategies that allow publishers to define and identify IP Rights.  The big difference between &lt;q&gt;digital rights management&lt;/q&gt; (DRM), and &lt;q&gt;IP rights management&lt;/q&gt; IPRM is that DRM is about locking down assets to mitigate against piracy.  IPRM is about identifying and calculating clearance to use assets for any given context, and enabling publishers to make informed decisions about using specific assets.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://odrl.net/"&gt;ODRL&lt;/a&gt;, or &lt;q&gt;Open Digital Rights Language&lt;/q&gt;, is a well-established, robust, extensible XML markup designed specifically for this purpose.  At it's core is the ability to define relationships between parties, assets, and permissions (i.e., print, display, execute).  But it's real power is the ability to express complex permissions that include conditions and constraints.  For example, "&lt;i&gt;a licensee can use an asset in a printed book, but the print run is limited to 2,000 copies, and the asset creator must be given proper attribution and will receive two copies of the book prior to its release"&lt;/i&gt;, or "&lt;i&gt;the asset can be used in print, except that it can't be distributed in North Korea"&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;This is powerful, and gives publishers the capability to monitor and evaluate rights clearance while the product is in development.  Using an XML Database and XQuery, it's relatively trivial to calculate clearances for all assets for a product and to display the information in a dashboard.  Editors can monitor the progress of rights clearances against all assets and determine whether to acquire additional rights to use assets that haven't been cleared, or to use other assets instead.  Publishers can also track asset usage to ensure that the proper royalties are paid.  It also helps publishers in "what if" scenarios:  they can easily determine the cost and feasibility of adapting a product for a different market, which will tell them how many of the existing assets are cleared for use in that market and how many remain that either need additional clearance or should be replace with other assets. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another scenario we're working on is using ODRL for wholly-owned assets.  Publishers frequently commission third parties to produce photos, images, and other rich media for which the publisher retains the rights to.  They want to reuse these assets for obvious cost savings, however, they don't want to over-expose assets.  Frequently, editorial teams are primarily focused on one project or program, and have little insight as to what others are doing, so it's quite possible that an image could be used by more than one product at the same time.  Not that this is always a bad thing, but it can lead to over-exposure.  Using ODRL to manage access to assets, using embargo dates and other usage information, editorial groups can quickly make informed decisions whether to use an asset or look for another.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pretty cool stuff&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-7422353053869429327?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NsHvrA_okusj5rDmndbbKldRdNo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NsHvrA_okusj5rDmndbbKldRdNo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NsHvrA_okusj5rDmndbbKldRdNo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NsHvrA_okusj5rDmndbbKldRdNo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/3iX9ZybmvH8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/7422353053869429327/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=7422353053869429327" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7422353053869429327?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7422353053869429327?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/3iX9ZybmvH8/iprm-drm.html" title="IPRM != DRM" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2011/06/iprm-drm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADSXc4fCp7ImA9WhZbGEk.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-4704294439056317479</id><published>2011-06-23T09:03:00.002-06:00</published><updated>2011-06-23T09:09:38.934-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-23T09:09:38.934-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GEDCOM" /><category scheme="http://www.blogger.com/atom/ns#" term="DITA" /><category scheme="http://www.blogger.com/atom/ns#" term="Geneaology" /><title>Using DITA for Genealogical Data</title><content type="html">&lt;p&gt;I’ve been working on putting my family history together for the last few years.&amp;nbsp; Most of the genealogical applications have some pretty nice features, but none seemed to have all of the features I wanted.&amp;nbsp; I wanted the ability to manage all of the summary information and relationships (all applications do this), but also cross reference the factual data with individual biographies.&amp;nbsp; And, I want to be able to display the information in different ways and formats – not just the ones supported by any particular application.&lt;/p&gt; &lt;p&gt;I started looking at the format that most genealogy programs store the data into.&amp;nbsp; With few exceptions, they all use &lt;a href="http://homepages.rootsweb.ancestry.com/~pmcbride/gedcom/55gctoc.htm" target="_blank"&gt;GEDCOM&lt;/a&gt;, or &lt;strong&gt;GE&lt;/strong&gt;nealogical &lt;strong&gt;D&lt;/strong&gt;ata &lt;strong&gt;COM&lt;/strong&gt;munication.&amp;nbsp; The standard was developed by the Church of Jesus Christ of Latter-day Saints as a means of creating a portable data format to express information about individuals, families and sources (bibliography). &lt;/p&gt; &lt;p&gt;GEDCOM is line-delimited field format that identifies the start of a new record with the number 0.&amp;nbsp; Fields within a record are identified with an incremented number.&amp;nbsp; For example a first level field line would start with the number 1.&amp;nbsp; A subfield (e.g, the given name of a person’s full name) would start with the next highest number. The following is an example record for an individual&lt;/p&gt; &lt;ol&gt;&lt;pre&gt;  0 @1@ INDI&lt;br /&gt;    1 NAME  &lt;b&gt; Robert Eugene/Williams/&lt;/b&gt;&lt;br /&gt;    1 SEX  &lt;b&gt; M&lt;/b&gt;&lt;br /&gt;    1 BIRT&lt;br /&gt;      2 DATE  &lt;b&gt; 02 OCT 1822&lt;/b&gt;&lt;br /&gt;      2 PLAC  &lt;b&gt; Weston, Madison, Connecticut&lt;/b&gt;&lt;br /&gt;      2 SOUR  &lt;b&gt; @6@&lt;/b&gt;&lt;br /&gt;        3 PAGE  &lt;b&gt; Sec. 2, p. 45&lt;/b&gt;&lt;br /&gt;        3 EVEN  &lt;b&gt; BIRT &lt;/b&gt;&lt;br /&gt;          4 ROLE  &lt;b&gt; CHIL&lt;/b&gt;&lt;br /&gt;    1 DEAT&lt;br /&gt;      2 DATE  &lt;b&gt; 14 APR 1905&lt;/b&gt;&lt;br /&gt;      2 PLAC  &lt;b&gt; Stamford, Fairfield, CT&lt;/b&gt;&lt;br /&gt;    1 BURI&lt;br /&gt;      2 PLAC  &lt;b&gt; Spring Hill Cem., Stamford, CT&lt;/b&gt;&lt;br /&gt;    1 RESI&lt;br /&gt;      2 ADDR  &lt;b&gt; 73 North Ashley&lt;/b&gt;&lt;br /&gt;        3 CONT  &lt;b&gt; Spencer, Utah UT84991&lt;/b&gt;&lt;br /&gt;      2 DATE  &lt;b&gt; from 1900 to 1905&lt;/b&gt;&lt;br /&gt;    1 FAMS  &lt;b&gt; @4@&lt;/b&gt;&lt;br /&gt;    1 FAMS  &lt;b&gt; @9@&lt;/b&gt;&lt;/pre&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Other than the line/sequencing delimiters, the data structures are pretty free form, and is parser dependent.&amp;nbsp; Even the field names, outside the common set supplied by GEDCOM are parser dependent.&amp;nbsp; So if you use one genealogy tool, it can understand these fields, but if you try to load it in another, it blows up.&amp;nbsp; Gah!&amp;nbsp; Add to that, GEDCOM just isn’t that great for handling rich content like pictures in a biography. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;This sounds like a job for XML.&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;So the first question I had to address is how to model this.&amp;nbsp; I’ve looked at some the of GEDCOM XML sites, and they suffer from the same problems as the text data structure do.&amp;nbsp; Just not enough rich data.&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;The answer I came up with was to use DITA, which has several things going for it:&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;I can easily mimic GEDCOM’s data structure with a specialized map &lt;br /&gt;&lt;li&gt;I can extend the model to support other potentially valuable metadata &lt;br /&gt;&lt;li&gt;I can easily model rich biographical content as a topic specialization &lt;br /&gt;&lt;li&gt;DITA’s numerous linking mechanisms work well for the various types of links I would need:&amp;nbsp; internal references within a map, rel-tables, cross-references, external hyperlinks to third-party websites and content.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;The first thing I did was to model and create a map specialization that mimics the GEDCOM data.&amp;nbsp; For the sake of brevity, I’ll show a sample of a specialized map.&amp;nbsp; If you want more information, ping me:&lt;/p&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br&gt;&amp;lt;!DOCTYPE familytree SYSTEM "file:/opt/dita/1.2/dtd1.2/genealogy/dtd/familytree.dtd"&amp;gt;&lt;br&gt;&amp;lt;familytree&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Schmoe Family Tree&amp;lt;/title&amp;gt;&lt;br /&gt;&lt;p&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;individual id="I1" keys="I000001" gender="male"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;vitals&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;firstname&amp;gt;Joseph&amp;lt;/firstname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;firstname type="nickname"&amp;gt;Joe&amp;lt;/firstname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;middlename&amp;gt;Aloysius&amp;lt;/middlename&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastname&amp;gt;Schmoe&amp;lt;/lastname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;generationidentifier&amp;gt;III&amp;lt;/generationidentifier&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/personname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;birth&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;day&amp;gt;1&amp;lt;/day&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;month&amp;gt;1&amp;lt;/month&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;year&amp;gt;1968&amp;lt;/year&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;location&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;placename&amp;gt;The Stork Factory&amp;lt;/placename&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;addressdetails&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;locality&amp;gt;Anytown&amp;lt;/locality&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;administrativearea&amp;gt;Anystate&amp;lt;/administrativearea&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;country&amp;gt;USA&amp;lt;/country&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/addressdetails&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/location&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/birth&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/vitals&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/individual&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;individual id="I2" keys="I00002" gender="male"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;vitals&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;firstname type="nickname"&amp;gt;Jack&amp;lt;/firstname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;middlename&amp;gt;Michael&amp;lt;/middlename&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastname&amp;gt;Schmoe&amp;lt;/lastname&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/personname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;birth&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;date&amp;gt;&amp;lt;day&amp;gt;1&amp;lt;/day&amp;gt;&amp;lt;month&amp;gt;1&amp;lt;/month&amp;gt;&amp;lt;year&amp;gt;1948&amp;lt;/year&amp;gt;&amp;lt;/date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/birth&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/vitals&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/individual&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;individual id="I000003" keys="I000003" gender="female"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;vitals&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;firstname&amp;gt;Jane&amp;lt;/firstname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;middlename&amp;gt;&amp;lt;/middlename&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastname type="maidenname"&amp;gt;Doe&amp;lt;/lastname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;lastname type="marriedname"&amp;gt;Schmoe&amp;lt;/lastname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/personname&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;birth&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;day&amp;gt;1&amp;lt;/day&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;month&amp;gt;1&amp;lt;/month&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;year&amp;gt;1947&amp;lt;/year&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/birth&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/vitals&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/individual&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;family id="f1" keys="F1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;familymeta&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;marriage&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;day&amp;gt;1&amp;lt;/day&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;month&amp;gt;1&amp;lt;/month&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;year&amp;gt;1967&amp;lt;/year&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/date&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/marriage&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/familymeta&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;child keyref="I000001"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/family&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;familyreltable&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;record&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;indi&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personref keyref="I00001"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/indi&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;famc&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;familyref keyref="F1"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/famc&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fams/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/record&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;record&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;indi&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;personref keyref="I00002"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/indi&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;famc/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fams&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;familyref keyref="F1"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fams&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/record&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;record&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;indi&amp;gt;&amp;lt;personref keyref="I00003"/&amp;gt;&amp;lt;/indi&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;famc&amp;gt;&amp;lt;/famc&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fams&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;familyref keyref="F1"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fams&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/record&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/familyreltable&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;/familytree&amp;gt;&lt;br&gt;&lt;/p&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-4704294439056317479?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qk7bw5LTsKjMcpfwlFAvsICGhgI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qk7bw5LTsKjMcpfwlFAvsICGhgI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qk7bw5LTsKjMcpfwlFAvsICGhgI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qk7bw5LTsKjMcpfwlFAvsICGhgI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/TIkMMf3YmGo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/4704294439056317479/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=4704294439056317479" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4704294439056317479?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4704294439056317479?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/TIkMMf3YmGo/using-dita-for-genealogical-data.html" title="Using DITA for Genealogical Data" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2011/06/using-dita-for-genealogical-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYARn86fCp7ImA9Wx5SGUw.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-6766244762599903109</id><published>2010-08-15T16:06:00.002-06:00</published><updated>2010-08-15T17:49:07.114-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-15T17:49:07.114-06:00</app:edited><title>The Butterfly Effect of Oracle’s Lawsuit Against Google</title><content type="html">&lt;p&gt;No one knows with any degree of certainty what the outcome will be from &lt;a href="http://www.infoworld.com/d/the-industry-standard/oracle-sues-google-over-java-use-in-android-852" target="_blank"&gt;Oracle’s patent infringement lawsuit against Google&lt;/a&gt;.&amp;nbsp; While the impetus of the lawsuit is largely focused on &lt;a href="http://www.dalvikvm.com/" target="_blank"&gt;Dalvik&lt;/a&gt;, Google’s mobile VM based on Java, the consequences of legal action will likely reverberate through the larger Java world.&amp;nbsp; &lt;/p&gt; &lt;p&gt;I don’t have a dog in this fight.&amp;nbsp; Yet. On the one hand, Oracle appears to be hell bent on reversing Sun’s decision to release Java to the open source community, according to an &lt;a href="http://www.infoworld.com/t/languages-and-standards/oracle-launches-scorched-earth-fight-profit-java-875?page=0,1" target="_blank"&gt;InfoWorld article&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;It's no secret that Larry Ellison wants to make money from Java, something Sun's execs, whom Ellison &lt;a href="http://blogs.barrons.com/techtraderdaily/2010/05/13/oracles-ellison-sun-execs-were-astonishingly-bad-managers/"&gt;held in contempt&lt;/a&gt;, was never able to do. It may be that Oracle wants nothing more than a cut of Google's Android revenue -- IDC's Will Stofega told Bloomberg News that the case will probably end with &lt;a href="http://www.bloomberg.com/news/2010-08-13/oracle-says-google-s-android-operating-system-infringes-its-java-patents.html"&gt;Google agreeing to pay to license Oracle's patents&lt;/a&gt;. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;On the flip side, it sure looks like &lt;a href="http://perens.com/blog/d/2010/8/13/33/" target="_blank"&gt;Google didn't do any favors for itself&lt;/a&gt; either.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Whatever the case, there are potential &lt;a href="http://www.zdnet.com/blog/open-source/oracle-google-suit-challenges-open-source-establishment/7142?tag=content;feature-roto" target="_blank"&gt;far reaching implications of Java in the open source world&lt;/a&gt;.&amp;nbsp; For one, it will &lt;a href="http://techcrunch.com/2010/08/07/why-we-need-to-abolish-software-patents/" target="_blank"&gt;reinvigorate the debate around software patents&lt;/a&gt;. More specific to my interests here, XML was, and is, heavily influenced by Java and open source. Think &lt;a href="http://xerces.apache.org/" target="_blank"&gt;Xerces&lt;/a&gt; and &lt;a href="http://xalan.apache.org/" target="_blank"&gt;Xalan&lt;/a&gt;, &lt;a href="http://xalan.apache.org/" target="_blank"&gt;Saxon&lt;/a&gt;, &lt;a href="http://xmlgraphics.apache.org/fop/" target="_blank"&gt;FOP&lt;/a&gt;, &lt;a href="http://ant.apache.org" target="_blank"&gt;Ant&lt;/a&gt;, and more recently &lt;a href="http://xmlcalabash.com/" target="_blank"&gt;Calabash&lt;/a&gt; and &lt;a href="https://community.emc.com/community/edn/xmltech" target="_blank"&gt;Calumet&lt;/a&gt;.&amp;nbsp; It also factors in to related technologies like the APIs&amp;nbsp; for &lt;a href="http://exist.sourceforge.net/" target="_blank"&gt;eXist&lt;/a&gt; and &lt;a href="http://www.marklogic.com" target="_blank"&gt;MarkLogic&lt;/a&gt;, and fuels reference implementations of standards like DITA (see the &lt;a href="http://ditaot.sourceforge.net" target="_blank"&gt;DITA Open Toolkit&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;My immediate reaction is the cat’s already out of the bag: Java is already open source, which means nothing will change for XML technologies.&amp;nbsp; For now.&amp;nbsp; In the short term, it’s very likely the only ones affected are Android application developers.&amp;nbsp; Longer term, however, Oracle’s behavior might well impact a wide array of technologies, including XML, by deterring developers from using Java in the first place.&amp;nbsp; That would be a huge detriment to XML across many technologies and industries.&amp;nbsp; Let’s hope it doesn’t get to that point.&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4d12200a-ee3a-4083-8283-c6ea06e46fbe" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/XML" rel="tag"&gt;XML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Oracle" rel="tag"&gt;Oracle&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open+Source" rel="tag"&gt;Open Source&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-6766244762599903109?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hQm0Ks2XTgAiqcwr1LiLfp9gHH4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hQm0Ks2XTgAiqcwr1LiLfp9gHH4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hQm0Ks2XTgAiqcwr1LiLfp9gHH4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hQm0Ks2XTgAiqcwr1LiLfp9gHH4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/3tN_b_Z2mLY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/6766244762599903109/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=6766244762599903109" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/6766244762599903109?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/6766244762599903109?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/3tN_b_Z2mLY/butterfly-effect-of-oracles-lawsuit.html" title="The Butterfly Effect of Oracle’s Lawsuit Against Google" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2010/08/butterfly-effect-of-oracles-lawsuit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4DR3Y8eSp7ImA9WxBUE00.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-8322282998174566623</id><published>2010-02-27T13:40:00.003-07:00</published><updated>2010-02-27T14:42:56.871-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-27T14:42:56.871-07:00</app:edited><title>Cancer Sucks</title><content type="html">My Grandparents died from it.  My mother had it (in remission), but now she needs to have a full mastectomy because a genetic marker indicates she's at higher risk to get it again (she has surgery on March 7).  And now, a friend and colleague of mine has it.  This guy is healthier than 95% of other men his age, has like zero body fat, and is always encouraging everyone to ride with him (more like follow from a long distance).  That's just hard to take in and process.  While he's the one that has his world rocked, cancer also has a nasty side effect on family and friends. Put it bluntly: Cancer sucks.&lt;br /&gt;&lt;br /&gt;Few other spoken words, irregardless of language or dialect, can evoke as much emotion as 'cancer'.  Even as scary as influenza and other diseases like AIDS are, and as much devastation they can bring to an individual, a family, a community, and even the world, there's something about cancer that is so viscerally scary to us.  For me it's because cancer is, in my non-medical, simpleton view, a mutation of cells.  It's not like a virus or an infection where a foreign organism is making you sick, and you can take medication to kill off the nasty invaders - it's your own cells that, for some reason have started going haywire.  That's just downright frightening to me.  And that cancer is so seemingly random and unpredictable just makes that much more hard to take - you could be in the best possible physical shape and still get it.&lt;br /&gt;&lt;br /&gt;Science and medicine have come so far when it comes to curing many forms of cancer. Many people have a good chance of living long, healthy lives if they catch the disease early. But often they have to go down through the depths of hell physically and emotionally to get to the finish line: cancer-free. Yet, they keep their eyes on the prize.&lt;br /&gt;&lt;br /&gt;I'm pretty sure my friend will beat this.  His odds are really high, and his outlook on life and his current illness are positive, which also increases his chances.   &lt;br /&gt;&lt;br /&gt;If nothing else, it's a reminder that life is too short, so live it to its fullest. It's so easy to become burdened with frustration, stress, angst, even hatred. In other words, we lose sight of the forest within the trees. I'm probably the most susceptible to this.  &lt;br /&gt;&lt;br /&gt;In short: Work hard.  Play harder.  Laugh more.  Celebrate with your family and friends.  Find something everyday that is good.  A sunrise or sunset, a laugh with your kids, a hug or a kiss with your spouse or significant other, a walk in the park with your dog.  It's your life - own it.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-8322282998174566623?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/onjeYpC3qGX1Azkpiylt3jaEZ4A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/onjeYpC3qGX1Azkpiylt3jaEZ4A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/onjeYpC3qGX1Azkpiylt3jaEZ4A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/onjeYpC3qGX1Azkpiylt3jaEZ4A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/Z9waixZOJWA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/8322282998174566623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=8322282998174566623" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8322282998174566623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8322282998174566623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/Z9waixZOJWA/cancer-sucks.html" title="Cancer Sucks" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2010/02/cancer-sucks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYEQH8yfSp7ImA9WxBXFk0.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-5765792080550053800</id><published>2010-01-27T07:35:00.002-07:00</published><updated>2010-01-27T07:38:21.195-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-27T07:38:21.195-07:00</app:edited><title>Apple to Release Tablet PC Today: e-Books are One Target Market</title><content type="html">&lt;p&gt;&lt;a href="http://news.cnet.com/8301-31021_3-10440931-260.html?tag=contentMain;contentBody"&gt;Apple is releasing their tablet PC today.&lt;/a&gt;&amp;#160; According to &lt;a href="http://www.npr.org/templates/story/story.php?storyId=122994968"&gt;NPR&lt;/a&gt;, they plan to include an e-reader.&amp;#160; As I mentioned in a &lt;a href="http://jims-thoughtspot.blogspot.com/2010/01/tablet-pcs-what-does-this-mean-for-e.html"&gt;previous post,&lt;/a&gt; I though that the tablet was the perfect medium for e-books, and would supplant the Kindle, Nook and other current e-book devices.&amp;#160; Only time will tell for sure.&lt;/p&gt;  &lt;p&gt;The move by Apple is brilliant.&amp;#160; It already has a first class distribution model with iTunes pushing out applications and music for the iPhone and iPod.&amp;#160; e-Books are just a natural progression.&amp;#160; &lt;/p&gt;  &lt;p&gt;From an XML publishing standpoint, EPUB is a relatively easy format to render. The DocBook XSLT stylesheets has an EPUB format built in.&amp;#160; I'm not aware of one for DITA yet, but I can't imagine that it would be too far behind, or difficult to build.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-5765792080550053800?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N4G-i2a-0GFAxLg8aE_hPOX1mbk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N4G-i2a-0GFAxLg8aE_hPOX1mbk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N4G-i2a-0GFAxLg8aE_hPOX1mbk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N4G-i2a-0GFAxLg8aE_hPOX1mbk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/5AqJmyXRZu0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/5765792080550053800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=5765792080550053800" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/5765792080550053800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/5765792080550053800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/5AqJmyXRZu0/apple-to-release-tablet-pc-today-e.html" title="Apple to Release Tablet PC Today: e-Books are One Target Market" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2010/01/apple-to-release-tablet-pc-today-e.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04DSXk6eip7ImA9WxBQGEo.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-47606246324103793</id><published>2010-01-18T21:39:00.001-07:00</published><updated>2010-01-18T21:39:38.712-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-18T21:39:38.712-07:00</app:edited><title>Tablet PCs - What does this mean for e-Readers?</title><content type="html">&lt;p&gt;&lt;a href="http://www.pcworld.com/article/186160/hps_multitouch_tablet_previewed_arrives_later_2010.html"&gt;HP previewed their new tablet PC at the 2010 Consumer Electronics Show&lt;/a&gt;.&amp;#160; Apple will release their version later this spring.&amp;#160; Sounds to me like this could supplant the Kindle, Nook and other e-Reader devices.&amp;#160; It might also be the impetus for EPUB distribution.&amp;#160; e-Readers are nice, but they're one trick ponies.&amp;#160; &lt;/p&gt;  &lt;p&gt;From an education publishing perspective, this could really open the door to new revenue models for schools at all levels to distribute published content.&amp;#160; It also opens the door for new models for authors writing content.&amp;#160; &lt;/p&gt;  &lt;p&gt;More on these ideas later.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-47606246324103793?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Pm8hNjF8x10kYOzaxZ3RDgU6XRA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pm8hNjF8x10kYOzaxZ3RDgU6XRA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Pm8hNjF8x10kYOzaxZ3RDgU6XRA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pm8hNjF8x10kYOzaxZ3RDgU6XRA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/2y2VuIiZGPc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/47606246324103793/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=47606246324103793" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/47606246324103793?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/47606246324103793?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/2y2VuIiZGPc/tablet-pcs-what-does-this-mean-for-e.html" title="Tablet PCs - What does this mean for e-Readers?" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2010/01/tablet-pcs-what-does-this-mean-for-e.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCQHc5fCp7ImA9WxNaFUw.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-5408178805468666193</id><published>2009-11-29T10:30:00.002-07:00</published><updated>2009-11-29T11:26:01.924-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-29T11:26:01.924-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XProc" /><category scheme="http://www.blogger.com/atom/ns#" term="Doxsl" /><title>Fun With XProc</title><content type="html">&lt;p&gt;I've been so busy with clients over the last 6 months that I haven't had much time to tinker with XProc much.   I took the Thanksgiving holiday week off with the hope of having a little time to dabble with the language.  Up until yesterday, I didn't open my computer once (has to be a new record) since we were busy with other things.  A side note: If you're in Denver before February 7th, I highly recommend you see the &lt;a href="http://www.dmns.org/gk/"&gt;Ghengis Khan&lt;/a&gt; exhibit at the Museum of Nature and Science.&lt;/p&gt;  &lt;p&gt;As I often do, I had already done some preliminary reading beforehand.  &lt;a href="http://www.wordsinboxes.com/"&gt;James Sulak's blog&lt;/a&gt; is a must-read. Another very useful and informative website is from EMC:  &lt;a href="https://community.emc.com/docs/DOC-3337"&gt;"XProc: Step By Step"&lt;/a&gt;, originally authored by Vojtech Toman.  Even the &lt;a href="http://www.w3.org/TR/xproc/"&gt;W3C specification&lt;/a&gt; is generally helpful.&lt;/p&gt;  &lt;p&gt;The biggest hurdle for me was to stop thinking of XProc working in the same way I think of Ant. While Ant &lt;em&gt;does &lt;/em&gt;process XML content, it isn't the tool's principle focus - Ant was principally designed as Java implementation of MAKE tools.  For that purpose, Ant has become the de facto standard.  Before XProc was conceived, many of us used Ant as a way to control the sequencing of complex XML publishing pipelines.  I worked on XIDI, a DocBook-based publishing system at HP, which was principally based on Ant scripts;  the DITA Open Toolkit is an Ant-based build environment.  For the most part Ant works admirably, but there are limitations.  The biggest limitation is the &lt;strong&gt;xslt &lt;/strong&gt;task's static parameter declarations, and the indirect nature by which parameter values are passed to an XSL Transformation through property values.  It works, but it can get kludgy pretty fast for complex stylesheets. More importantly, Ant is primarily a developer's tool that acts like a Swiss Army knife that has a tool for just about every purpose. Most of these tools work very well for very specific tasks, but they aren't intended to perform specialized tasks.  For that, you'll need to create custom Ant tasks or use other specialized tools.  XProc is one of these specialized tools that is designed specifically for XML processing.&lt;/p&gt;  &lt;p&gt;So the biggest conceptual difference to grok in XProc (I like this…) is how &lt;em&gt;steps&lt;/em&gt; are connected together to form a complete pipeline process.  Rather than using target dependencies and explicit target calls like you do in Ant, XProc uses the concept of &lt;em&gt;pipes&lt;/em&gt; to connect the output of one step to the input of the next step.  It's very much like Unix shell or DOS command line pipelines.  For example:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Courier New;"&gt;ps -ax | tee processes.txt | more&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Since many steps (including the &lt;em&gt;p:xslt&lt;/em&gt; step) can have more than one input and one or more outputs (think of xsl:result-document in XSLT 2.0) we need to explicitly bind uniquely named output streams to input streams of subsequent steps.  It's very analogous to plumbing, and another way that XProc is different than Ant:  Ant's tasks are very dependent on the file system to process inputs and outputs; XProc pipelines are in-memory input and output streams until you explicitly serialize to the file system. &lt;/p&gt;  &lt;p&gt;With this I was able to create my first "real" XProc pipeline to generate &lt;a href="http://doxsl.sourceforge.net/"&gt;Doxsl&lt;/a&gt; output.  Here it is:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&amp;lt;p:declare-step name="doxsl" type="dxp:generate-doxsl-docs"  &lt;br /&gt; psvi-required="false"&lt;br /&gt; xmlns:p="&lt;/span&gt;&lt;a href="http://www.w3.org/ns/xproc%22"&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;http://www.w3.org/ns/xproc"&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;&lt;pre style="font-family:Courier New;font-size:78%;"&gt;    xmlns:dxp="urn:doxsl:xproc-pipeline:1.0"&amp;gt;  &lt;br /&gt; &amp;lt;p:input port="source" kind="document" primary="true"   &lt;br /&gt;     sequence="false" /&amp;gt;   &lt;br /&gt; &amp;lt;p:input port="parameters" kind="parameter" primary="false"   &lt;br /&gt;     sequence="true"/&amp;gt;   &lt;br /&gt; &amp;lt;p:output port="result" primary="true" sequence="false" &amp;gt;   &lt;br /&gt;     &amp;lt;p:pipe step="transform" port="result"/&amp;gt;   &lt;br /&gt; &amp;lt;/p:output&amp;gt;   &lt;br /&gt; &amp;lt;p:output port="secondary" primary="false" sequence="true" &amp;gt;   &lt;br /&gt;     &amp;lt;p:pipe step="transform" port="secondary" /&amp;gt;   &lt;br /&gt; &amp;lt;/p:output&amp;gt;   &lt;br /&gt; &amp;lt;p:option name="format" select="'dita'"/&amp;gt;   &lt;br /&gt; &amp;lt;p:choose name="select-stylesheet"&amp;gt; &lt;br /&gt;     &amp;lt;p:when test="$format='dita'"&amp;gt;  &lt;br /&gt;         &amp;lt;p:output port="result" primary="true"   &lt;br /&gt;             sequence="false" &amp;gt;   &lt;br /&gt;             &amp;lt;p:pipe step="load-dita-stylesheet"   &lt;br /&gt;                 port="result"/&amp;gt;   &lt;br /&gt;         &amp;lt;/p:output&amp;gt;   &lt;br /&gt;         &amp;lt;p:load name="load-dita-stylesheet"&amp;gt;   &lt;br /&gt;             &amp;lt;p:with-option name="href"   &lt;br /&gt;                 select="'../../dita/doxsl.xsl'" &amp;gt;   &lt;br /&gt;                 &amp;lt;p:empty/&amp;gt;   &lt;br /&gt;             &amp;lt;/p:with-option&amp;gt;   &lt;br /&gt;         &amp;lt;/p:load&amp;gt;   &lt;br /&gt;     &amp;lt;/p:when&amp;gt;   &lt;br /&gt;     &amp;lt;p:when test="$format='html'"&amp;gt;   &lt;br /&gt;         &amp;lt;p:output port="result" primary="true"   &lt;br /&gt;             sequence="false"&amp;gt;   &lt;br /&gt;             &amp;lt;p:pipe port="result"&lt;br /&gt;                step="load-html-stylesheet"/&amp;gt;   &lt;br /&gt;         &amp;lt;/p:output&amp;gt;   &lt;br /&gt;         &amp;lt;p:load name="load-html-stylesheet"&amp;gt;   &lt;br /&gt;             &amp;lt;p:with-option name="href"   &lt;br /&gt;                select="'../../html/doxsl.xsl'"/&amp;gt;   &lt;br /&gt;         &amp;lt;/p:load&amp;gt;   &lt;br /&gt;     &amp;lt;/p:when&amp;gt;   &lt;br /&gt; &amp;lt;/p:choose&amp;gt;   &lt;br /&gt; &amp;lt;p:xslt name="transform"&amp;gt;   &lt;br /&gt;     &amp;lt;p:input port="source" &amp;gt;   &lt;br /&gt;         &amp;lt;p:pipe step="doxsl" port="source"/&amp;gt;   &lt;br /&gt;     &amp;lt;/p:input&amp;gt;   &lt;br /&gt;     &amp;lt;p:input port="stylesheet" &amp;gt;   &lt;br /&gt;         &amp;lt;p:pipe step="select-stylesheet" port="result"/&amp;gt;   &lt;br /&gt;     &amp;lt;/p:input&amp;gt;   &lt;br /&gt;     &amp;lt;p:input port="parameters"&amp;gt;   &lt;br /&gt;         &amp;lt;p:pipe port="parameters" step="doxsl"/&amp;gt;   &lt;br /&gt;     &amp;lt;/p:input&amp;gt;   &lt;br /&gt;     &amp;lt;p:with-param name="debug" select="'true'"/&amp;gt;   &lt;br /&gt; &amp;lt;/p:xslt&amp;gt;   &lt;br /&gt;&amp;lt;/p:declare-step&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here's a diagram, built with EMC's &lt;a href="http://137.69.120.115:8080/designer-20090703-1510/"&gt;XProc Designer&lt;/a&gt;.&amp;#160; This tool is a great way to visualize and start your XProc scripts:&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_aw9JIJGuHBo/SxK7FeO3wfI/AAAAAAAAABc/nlA7GeQ7X6I/s1600/doxsl-xproc.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 253px;" src="http://1.bp.blogspot.com/_aw9JIJGuHBo/SxK7FeO3wfI/AAAAAAAAABc/nlA7GeQ7X6I/s320/doxsl-xproc.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5409591805114565106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Essentially, I used the &lt;em&gt;p:declare-step&lt;/em&gt; declaration so that I can declare it as a custom step (dxp:generate-doxsl-docs), which will allow it to be integrated into other pipelines.  It has one option, &lt;em&gt;format,&lt;/em&gt; which is used to specify which output format to generate (for Doxsl, 'html' and 'dita' are supported).  The first step ("select-stylesheet") evaluates the &lt;em&gt;format&lt;/em&gt; option and loads the appropriate stylesheet into the step's "result" output stream.  This is used by the second step's ("transform") stylesheet port.  The transform's source file (the XSLT stylesheet to be documented) is bound to the root step's source port, as is the parameters port.  I also set the stylesheet's 'debug' parameter to true to inject output to the "transform" step's result port.&lt;/p&gt;  &lt;p&gt;All of this is done in memory and not serialized to the file system.  This is intentional so that other pipelines can integrate this custom step. &lt;/p&gt;  &lt;p&gt;I've tested this with &lt;a href="http://xmlcalabash.com/"&gt;Calabash&lt;/a&gt;.  I still need to evaluate with &lt;a href="https://community.emc.com/docs/DOC-4242#comment-2527"&gt;Calumet&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Right now, these are baby steps.  I think that XProc has a lot of potential.  I think the next big task is to consider an XProc implementation for DITA XML processing.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-5408178805468666193?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k7hKHLMEoX21Q48FbIaPPdVdTlg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k7hKHLMEoX21Q48FbIaPPdVdTlg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k7hKHLMEoX21Q48FbIaPPdVdTlg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k7hKHLMEoX21Q48FbIaPPdVdTlg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/TUBOIG8BJ7U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/5408178805468666193/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=5408178805468666193" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/5408178805468666193?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/5408178805468666193?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/TUBOIG8BJ7U/fun-with-xproc.html" title="Fun With XProc" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_aw9JIJGuHBo/SxK7FeO3wfI/AAAAAAAAABc/nlA7GeQ7X6I/s72-c/doxsl-xproc.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/11/fun-with-xproc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8NRHw4eyp7ImA9WxJSGUQ.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-979219948652562197</id><published>2009-05-10T16:18:00.001-06:00</published><updated>2009-05-10T16:18:15.233-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-10T16:18:15.233-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DITA" /><category scheme="http://www.blogger.com/atom/ns#" term="Keys and Keyrefs" /><category scheme="http://www.blogger.com/atom/ns#" term="Indirect Linking" /><category scheme="http://www.blogger.com/atom/ns#" term="80/20 Rule" /><title>DITA’s New Keys and the 80/20 Rule</title><content type="html">&lt;p&gt;Have you ever used the lorem() function in Microsoft Word? How about the rand() function? Do you know all the &lt;a href="http://support.microsoft.com/KB/211982"&gt;function keys&lt;/a&gt;? Most of us have used Microsoft Word for countless years and don’t know about all of the “hidden” functionality that it offers. Chances are, you’ll know a few of these, but you won’t know all of them simply because you’ve never needed them. Many of these functions are extremely powerful utilities that make Word a versatile application beyond a standard formatted text editor. But they’re available if you ever have the need.&lt;/p&gt;  &lt;p&gt;The same is true with some of the new functionality being made available in the forthcoming DITA 1.2 release currently being worked on. Of particular interest is the introduction of &lt;em&gt;keys&lt;/em&gt;. Keys provide a way for authors to create addresses to resources through the use of a named identifier rather than to a specific URI pointer. In other words, I can create an easy-to-remember key, like “ms-word-functions” that actually resolves to a URL “&lt;em&gt;http://support.microsoft.com/kb/211982” &lt;/em&gt;and link to this URL using the key name in my DITA topic.&lt;/p&gt;  &lt;p&gt;Here’s an example of how it works. In my map, I define a topicref and set the &lt;em&gt;keys &lt;/em&gt;attribute with an identifier. I also set my &lt;em&gt;href&lt;/em&gt; to the physical location of the resource I want to reference.&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;lt;map&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;topicref &lt;strong&gt;keys=&lt;/strong&gt;&amp;quot;ms-word-functions&amp;quot;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; href=&amp;quot;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;em&gt;http://support.microsoft.com/kb/211982&amp;quot;       &lt;br /&gt;&lt;/em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; scope=&amp;quot;external&amp;quot;/&amp;gt;      &lt;br /&gt;&amp;lt;/map&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In my topic file, I can reference the key that's defined in my map:&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;lt;topic id=&amp;quot;my.topic&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;title&amp;gt;SampleTopic&amp;lt;/title&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;body&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;p&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Lorem ipsum dolor sitamet,&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; consectetuer adipiscing elit. Maecenas      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; porttitor conguemassa. Fusce posuere, agna&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sed pulvinar ultricies, purus      &lt;br /&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;em&gt;&lt;strong&gt;&amp;lt;xref keyref=&amp;quot;ms-word-function&amp;quot;&amp;gt;lectus&amp;lt;/xref&amp;gt;&lt;/strong&gt;        &lt;br /&gt;&lt;/em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; malesuada libero, sit amet commodo magna eros      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; quisurna.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/p&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/body&amp;gt;      &lt;br /&gt;&amp;lt;/topic&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now, when the topic is rendered, it will resolve itself to the Microsoft URL defined in my map. Pretty cool stuff. And powerful too. This has many potential uses: localizers can create translated versions of a resource using the same key reference and resolve the link to a locale-specific version of the reference. Consumers can be directed to different resources based on their profile or context within a website.&lt;/p&gt;  &lt;p&gt;From an authoring perspective, there's another neat user story: I can reference a &amp;quot;yet-to-be-determined&amp;quot; resource via a key, and when that resource has been created, the key's definition in the map file will resolve the key reference.&lt;/p&gt;  &lt;p&gt;Technically, a key definition doesn't need to be reside directly in the map that references that topic. It can live in an &amp;quot;ancestor&amp;quot; map that pulls in the topic indirectly by way of the map referencing that topic. In fact key values can be overridden: Let's assume that I define a key, called &amp;quot;company-website&amp;quot; in Map A that points to &amp;quot;www.company-a.com&amp;quot;, and in Map B, I define the same key as&amp;quot;www.company-b.com&amp;quot;. Map B also references Topic-1.dita which contains a keyref to &amp;quot;company-website&amp;quot;. Map A references Map B. When the Topic-1.dita is rendered in the context of Map B as the primary map, the keyref will resolve to&amp;quot;www.company-b.com&amp;quot;; when Map A is the primary map, the same topic willreference www.company-a.com.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Map A     &lt;br /&gt;Key: company-website = &amp;quot;www.company-a.com&amp;quot;       &lt;ul&gt;       &lt;li&gt;Map B         &lt;br /&gt;Key: company-website = “www.company-b.com”           &lt;ul&gt;           &lt;li&gt;Topic-1.dita             &lt;br /&gt;keyref: company-website              &lt;br /&gt;&lt;em&gt;resolves to: www.company-a.com&lt;/em&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Map B     &lt;br /&gt;Key: company-website = “www.company-b.com”       &lt;ul&gt;       &lt;li&gt;Topic-1.dita         &lt;br /&gt;keyref: company-website          &lt;br /&gt;&lt;em&gt;resolves to: www.company-b.com&lt;/em&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;With all great power comes even greater responsibility. Any time a topic makes use of a key reference, that topic is explicitly binding itself to a map(or many maps), meaning that a topic is no longer a unit of information that is completely independent of any particular context in which it is assembled into. You could make the argument that any reference defined in a topic to an external resource (e.g., an image or a cross-reference to another topic) by definition creates a dependency on that topic. And arguably, the &lt;em&gt;referenced&lt;/em&gt; (the endpoint) resource is unaware of the object that is referencing it, regardless of whether it's a topic reference or a cross-reference. But there is an additional dependency in the case of keys: Any map that references a topic with a key reference must define the key. So in a sense, not only does the map (or an ancestor map) need to know &lt;em&gt;about&lt;/em&gt; the topic, it needs to discover what the topic is &lt;em&gt;about&lt;/em&gt;, specifically related to any key references it points to. Consequently, somewhere along the line, at least one map must define the keys used by a topic.&amp;#160; Did you get all that?&amp;#160; Imagine what your XML authoring tools, CMS systems, and rendering platforms will need to do to manage this.&lt;/p&gt;  &lt;p&gt;This is pretty sophisticated and powerful functionality.&amp;#160; But the question is, do you need to use &lt;em&gt;keys&lt;/em&gt; and &lt;em&gt;keyrefs&lt;/em&gt; in order to use DITA?&amp;#160; More importantly, will your tools need to support keys to take advantage of DITA's other capabilities?&amp;#160; The short answer is &lt;em&gt;no.&lt;/em&gt;&amp;#160; In fact, I would expect that &lt;em&gt;keys/keyref&lt;/em&gt; -enabled DITA support is still a way off for most DITA-enabled tools.&amp;#160; Nevertheless, you can still use DITA with the current tools and get most, if not all, of what you need.&amp;#160; Just like Microsoft Word with features like MailMerge, keys and keyref will be there if you need them, but chances are, you can get by without them for most content without ever knowing you missed it. &lt;/p&gt;  &lt;p&gt;Finally,&amp;#160; the possibility of defining indirect links has opens the door to many different possibilities for dynamically driven, profile- and locale-specific content.&amp;#160; This is very cool stuff - the kind of thing XML folks like me get excited about.&amp;#160; But from a practical standpoint, there are potential downsides too.&amp;#160; Keys and key references add another layer of complexity to planning the authoring, deployment and management of DITA content.&amp;#160; In reality, most tools aren't ready for this complexity just yet.&amp;#160; So while the the standard is ahead of the game, the rest of the industry will be playing catch up.&amp;#160; Still, Ride the Wave.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-979219948652562197?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nLiCPx1_D6GMkkgF-tBHtIe6itU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nLiCPx1_D6GMkkgF-tBHtIe6itU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nLiCPx1_D6GMkkgF-tBHtIe6itU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nLiCPx1_D6GMkkgF-tBHtIe6itU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/quj2YqB3etQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/979219948652562197/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=979219948652562197" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/979219948652562197?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/979219948652562197?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/quj2YqB3etQ/ditas-new-keys-and-8020-rule.html" title="DITA’s New Keys and the 80/20 Rule" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/05/ditas-new-keys-and-8020-rule.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CRXo_fip7ImA9WxJSEE4.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-4987987390707562519</id><published>2009-04-29T13:56:00.001-06:00</published><updated>2009-04-29T13:56:04.446-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-29T13:56:04.446-06:00</app:edited><title>Content Management Strategies/DITA North America Conference Review</title><content type="html">&lt;p&gt;I wasn’t able to attend many of the session since I was manning the Flatirons Solution booth.&amp;#160; Yet from talking with the attendees who visited with us, here are some of the key takeaways:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;DITA is here to stay&lt;/strong&gt;. This is not news, but the key point here is that organizations are adopting the standard in earnest, as evidenced by the 150-200 attendees who came despite a bad economy, and discretionary budgets being whittled to next to nothing.&amp;#160; This means that organizations are thinking about DITA as an integral part of their long term strategy. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DITA’s scope is not only Technical Publications.&lt;/strong&gt;&amp;#160; Again, not earth-shattering news.&amp;#160; With specializations like Machine Industry, Learning Objects, and gobs of others, DITA is extending its reach to whole industries that haven’t been able to take advantage of XML before now.&amp;#160; At the conference, I spoke to attendees in a wide range of industries including bio-tech, and manufacturing.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Shifting focus from Content Authoring to Content Management and Content Delivery Services.&lt;/strong&gt;&amp;#160; This is a fundamental shift.&amp;#160; Eric Severson emphasized this point when he demonstrated that Microsoft Word &lt;em&gt;could&lt;/em&gt; be used to create DITA for a &lt;em&gt;specific&lt;/em&gt; class of users that aren’t the primary audience for more conventional XML authoring solutions.&amp;#160; Obviously this raised a few eyebrows in the audience, but the point is that DITA’s architecture is such that even casual contributors, given a few minor constraints in Word, can certainly provide content that can be easily turned into DITA. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;DITA will live in Middleware.&lt;/strong&gt; This is a key point. While the focus of the conference was centered around DITA and content management, there’s more here than meets the eye.&amp;#160; I had the opportunity to sit in on the open forum that discussed upcoming v1.2 features.&amp;#160; Many of these features are centered around link handling (things like &lt;em&gt;keyref&lt;/em&gt;, &lt;em&gt;conref push,&lt;/em&gt; and &lt;em&gt;conref keys [conkeyref]&lt;/em&gt;).&amp;#160; There will be greater emphasis on managing all kinds of linking, including indirect links that could&amp;#160; have significant implications on vendors’ existing&lt;strong&gt;&amp;#160;&lt;/strong&gt;architectures.&amp;#160; While it still will be possible to manage small projects from simple file management strategies (including things like Subversion), larger projects and enterprise-wide implementations, particularly those that want to take advantage of these new features will need more sophisticated applications (read: a content management system) to manage the myriad of link strategies being made available.&amp;#160; &lt;br /&gt;      &lt;br /&gt;Even rendering tools will need to be more sophisticated to support these new features.&amp;#160; The DITA Open Toolkit is currently working on a new version (1.5) to support these.&amp;#160; Other rendering applications will need to start thinking about how they plan to support these features.       &lt;br /&gt;      &lt;br /&gt;I’ll have more thoughts on this particular topic later.&amp;#160;&amp;#160; Suffice it to say that there are some key assumptions that current DITA adopters take for granted and make impact how they design and create content in the future. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;XML Authoring tools will get more complex.&amp;#160; &lt;/strong&gt;To support all the new features coming in DITA 1.2, DITA-aware XML authoring tools will need to be &lt;u&gt;tightly&lt;/u&gt; integrated into middleware systems, particularly the CMS.&amp;#160; There will also be a strong emphasis for authoring tools to handle a wide variety of link and referencing strategies.&amp;#160; I anticipate that these applications will be more process-intensive, with larger footprints on a user’s PC.&amp;#160; I also anticipate that the level of sophistication required to “operate” these tools will be much higher.&amp;#160; So the emphasis for XML Authoring tool vendors will have to focus on both features and usability.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This conference was illuminating on many different facets.&amp;#160; Even the vendors I spoke to seemed to realize that DITA is a truly &lt;em&gt;disruptive technology&lt;/em&gt; that has changed the way the entire industry thinks about XML. In the current economic reality, this is the perfect time to be thinking about what this all means and how organizations can take advantage of these innovations in their environment.&amp;#160; Ride the wave.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-4987987390707562519?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/21dRZFBdIwooYeVkuxeH98Z322Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/21dRZFBdIwooYeVkuxeH98Z322Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/21dRZFBdIwooYeVkuxeH98Z322Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/21dRZFBdIwooYeVkuxeH98Z322Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/08Em7bmr_40" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/4987987390707562519/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=4987987390707562519" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4987987390707562519?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4987987390707562519?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/08Em7bmr_40/content-management-strategiesdita-north_29.html" title="Content Management Strategies/DITA North America Conference Review" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/04/content-management-strategiesdita-north_29.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUCRHgzcCp7ImA9WxJTFkQ.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-8800455423277533884</id><published>2009-04-25T15:50:00.002-06:00</published><updated>2009-04-25T15:51:05.688-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T15:51:05.688-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DITA" /><category scheme="http://www.blogger.com/atom/ns#" term="Open Toolkit" /><category scheme="http://www.blogger.com/atom/ns#" term="XProc" /><title>XProc and DITA: Random Thoughts</title><content type="html">&lt;p&gt;I’ve been following &lt;a href="http://www.wordsinboxes.com/"&gt;James Sulak's Blog&lt;/a&gt;.  He has some pretty impressive detailed discussions about using &lt;a href="http://www.w3.org/TR/xproc/"&gt;XProc&lt;/a&gt;.  XProc is an XML pipeline processing language, specifically designed to provide instructions for processing XML content. The Recommendation specifies many different kinds of “steps” that can be assembled in virtually any order to control the sequencing and output from one step to another.&lt;/p&gt;  &lt;p&gt;Right now, DITA’s &lt;em&gt;reference implementation&lt;/em&gt;, the DITA Open Toolkit (DITA OT) uses Apache Ant and custom tasks to process DITA XML content.  One of the principle limitations with the DITA OT is its reliance on XSLT 1.0 and extensions (particularly the Idiom FO Plugin) to handle the rendering.   &lt;/p&gt;  &lt;p&gt;With XProc-enabled tools like &lt;a href="http://www.xmlcalabash.com/"&gt;Calabash&lt;/a&gt;, it seems like DITA could easily processed using XProc, along with an upgrade of the stylesheets to 2.0.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-8800455423277533884?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/77J7w0vti6wq_9eWjAwQy9m0-6w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/77J7w0vti6wq_9eWjAwQy9m0-6w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/77J7w0vti6wq_9eWjAwQy9m0-6w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/77J7w0vti6wq_9eWjAwQy9m0-6w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/lSjxLQvjIpQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/8800455423277533884/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=8800455423277533884" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8800455423277533884?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8800455423277533884?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/lSjxLQvjIpQ/xproc-and-dita-random-thoughts.html" title="XProc and DITA: Random Thoughts" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/04/xproc-and-dita-random-thoughts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IMRHsycCp7ImA9WxJTFko.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-2152983646392911518</id><published>2009-04-25T08:56:00.001-06:00</published><updated>2009-04-25T08:59:45.598-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-25T08:59:45.598-06:00</app:edited><title>Content Management Strategies/DITA North America Conference</title><content type="html">&lt;p&gt;I’ll be attending the conference in St. Petersburg, FL.&amp;#160; Come visit the Flatirons Solutions booth while you’re there.&amp;#160; It should be a very interesting conference.&amp;#160; &lt;/p&gt;  &lt;p&gt;Eric Severson, CTO of Flatirons Solutions will be presenting a potentially “game-changing” presentation that speaks to lowering the “barrier to entry” into XML authoring. I recommend seeing this one.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-2152983646392911518?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6mgeEfquXELR0YOnyoY6BW-1a1k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6mgeEfquXELR0YOnyoY6BW-1a1k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6mgeEfquXELR0YOnyoY6BW-1a1k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6mgeEfquXELR0YOnyoY6BW-1a1k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/z-O7oAt3F68" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/2152983646392911518/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=2152983646392911518" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/2152983646392911518?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/2152983646392911518?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/z-O7oAt3F68/content-management-strategiesdita-north.html" title="Content Management Strategies/DITA North America Conference" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/04/content-management-strategiesdita-north.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMAR348fCp7ImA9WxVbEkg.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-5563833087687508674</id><published>2009-03-28T09:33:00.002-06:00</published><updated>2009-03-28T10:24:06.074-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-28T10:24:06.074-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DITA" /><category scheme="http://www.blogger.com/atom/ns#" term="DocBook" /><category scheme="http://www.blogger.com/atom/ns#" term="Modular DocBook" /><title>DocBook Going Modular</title><content type="html">&lt;p&gt;Scott Hudson, Dick Hamilton, Larry Rowland and I (AKA, “The Colorado DocBook Coalition”) recently drafted a proposal to support “modular” DocBook and presented it to the DocBook TC yesterday.  In general, this proposal is in response to huge demand for DITA-like capabilities for DocBook.  &lt;/p&gt; Many core business factors are driving DocBook in this direction:  &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;more distributed authoring&lt;/strong&gt;: authors are responsible for specific content areas rather than whole manuals.  Content could be authored by many  different authors, even some in different organizations altogether. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;content reuse&lt;/strong&gt;: This has long been a "holy grail" of information architects:  write content once, reuse in many different contexts &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;change management&lt;/strong&gt;:  isolate the content that has changed.  This is a key driver for companies that have localization needs.  By modularizing their content, they can drive down costs by targeting only the changed content  for translation. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Additionally, there are additional downstream opportunities for modularized content:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;dynamic content assembly&lt;/strong&gt;:  create "publications" on the fly using an external assembly file that identifies the sequence and hierarchy of modular components rather than creating a single canonical instance. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The following excerpts from the proposal detail the preliminary features (Important: these are not yet set in stone and are subject to change).  The final version will be delivered with the 5.1 release.  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Assemblies&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The principle metaphor for Modular DocBook is the “assembly”.  An &lt;em&gt;assembly&lt;/em&gt; defines the resources, hierarchy and relationships for a collection of DocBook components.  The &lt;span style="font-family:Consolas;"&gt;&amp;lt;assembly&amp;gt;&lt;/span&gt; element can be the structural equivalent of any DocBook component, such as    &lt;br /&gt;a book, a chapter, or an article.  Here’s the proposed content model in RelaxNG Compact mode:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;db.assembly =     &lt;br /&gt;  element assembly {      &lt;br /&gt;    db.info?, db.toc*, db.resources+, db.relationships*      &lt;br /&gt;  }&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The &amp;lt;resources&amp;gt; element is high-level container that contains one or more resource objects that are managed by the &amp;lt;assembly&amp;gt;.  An &amp;lt;assembly&amp;gt; can contain 1 or more &amp;lt;resources&amp;gt; containers to allow users to organize content into logical groups based on profiling attributes.&lt;/p&gt;  &lt;p&gt;Each &amp;lt;resources&amp;gt; element must contain 1 or more &amp;lt;resource&amp;gt; elements. &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;db.resources =     &lt;br /&gt;   &lt;/span&gt;&lt;span style="font-family:Consolas;"&gt;element resources {     &lt;br /&gt;      db.common.attributes, db.resource+      &lt;br /&gt;   }&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Specifying Resources&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The &amp;lt;resource&amp;gt; element identifies a "managed object" within the assembly. Typically, a &amp;lt;resource&amp;gt; will point to a content file that can be identified by a valid URI.  However a &amp;lt;resource&amp;gt; can also be a 'static' text value that behaves similarly to a text entity. &lt;/p&gt;  &lt;p&gt;Every &amp;lt;resource&amp;gt; MUST have a unique ID value within the context of the entire &amp;lt;assembly&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;db.resource =     &lt;br /&gt;  element resource {      &lt;br /&gt;    db.common.attributes,      &lt;br /&gt;    attribute fileref { text }?,      &lt;br /&gt;    attribute resid {text}?,      &lt;br /&gt;    text?      &lt;br /&gt;  }&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Content-based resources can also be content fragments within a content file, similar to an URI fragment:  &lt;em&gt;file.xml/#ID&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;Additionally, a resource can point to another resource.  This allows users to create "master" resource that can be referenced in the current assembly, and indirectly point the underlying resource that the referenced resource identifies.&lt;/p&gt;  &lt;p&gt;For example:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;&amp;lt;resource     &lt;br /&gt;    id="master.resource" &lt;br /&gt;    fileref="errormessages.xml"/&amp;gt;     &lt;br /&gt;&amp;lt;resource      &lt;br /&gt;   id="class.not.found"      &lt;br /&gt;   resid="{master.resource}/#classnotfound"/&amp;gt;     &lt;br /&gt;&amp;lt;resource      &lt;br /&gt;   id="null.pointer"      &lt;br /&gt;   resid="{master.resource}/#nullpointer"/&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;The added benefit of indirect references is that users can easily point the resource to a different content file, provided that it used the same underlying fragment ids internally.  It could also be used for creating locale-specific resources that reference the same resource id. &lt;/p&gt;  &lt;p&gt;Text-based resources behave similarly to XML text entities.  A content-based resource can reference a resource, provided that both the text resource and the content resource are managed by the same assembly. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;assembly.xml:&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;...  &lt;br /&gt;&lt;span style="font-family:Consolas;"&gt;&amp;lt;resource id="company.name"&amp;gt;Acme Tech, Inc.&amp;lt;/resource&amp;gt;    &lt;br /&gt;&amp;lt;resource id="company.ticker"&amp;gt;ACMT&amp;lt;/resource&amp;gt;     &lt;br /&gt;&lt;/span&gt;... &lt;/p&gt;  &lt;p&gt;&lt;em&gt;file1.xml:&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;&amp;lt;para&amp;gt;&amp;lt;phrase resid="company.name"/&amp;gt; (&amp;lt;phrase resid="company.ticker"/&amp;gt;) is a     &lt;br /&gt;publicly traded company...&amp;lt;/para&amp;gt;&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Organizing Resources into a Logical Hierarchy&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The &amp;lt;toc&amp;gt; element defines the sequence and hierarchy of content-based resources that will be rendered in the final output.  It behaves in a similar fashion to a DITA map and &lt;em&gt;topicrefs&lt;/em&gt;.  However, instead of each &amp;lt;tocentry&amp;gt; pointing to a URI, it points to a resource in the &amp;lt;resources&amp;gt; section of the assembly: &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;&amp;lt;toc&amp;gt;    &lt;br /&gt;    &amp;lt;tocentry linkend="file.1"/&amp;gt;     &lt;br /&gt;    &amp;lt;tocentry linkend="file.2"&amp;gt;     &lt;br /&gt;        &amp;lt;tocentry linkend="file.3"/&amp;gt;     &lt;br /&gt;    &amp;lt;/tocentry&amp;gt;     &lt;br /&gt;&amp;lt;/toc&amp;gt;&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Consolas;"&gt;&amp;lt;resources&amp;gt;    &lt;br /&gt;    &amp;lt;resource id="data.table" fileref="data.xml"/&amp;gt;     &lt;br /&gt;    &amp;lt;resource id="file.1" fileref="file1.en.xml"/&amp;gt;     &lt;br /&gt;    &amp;lt;resource id="file.2" fileref="file2.en.xml"/&amp;gt;     &lt;br /&gt;    &amp;lt;resource id="file.3" fileref="{data.table}/#table1"/&amp;gt;     &lt;br /&gt;&amp;lt;/resources&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Creating Relationships Between Resources&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One of the more clever aspects of DITA’s architecture is the capability to specify relationships between topics within the context of the map (and independent of the topics themselves).  The DocBook TC is currently considering several proposals that will enable resources to be related to each other within the assembly.&lt;/p&gt;  &lt;h3&gt;The Benefits of a Modular DocBook&lt;/h3&gt;  &lt;p&gt;There is a current mindset (whether it’s right or wrong is irrelevant) that DocBook markup is primarily targeted for “monolithic” manuscripts.  With this proposal, I think there many more possibilities for information architects to create new types of content: websites, true help systems, mashups, dynamically assembled content based on personalized facets (Web 2.0/3.0 capabilities), a simplified Localization strategy like that which has been advocated in DITA.&lt;/p&gt;  &lt;p&gt;What’s more: the design makes no constraints on the type of content resources referenced in an assembly:  In fact they can be any type: sections, chapters, images, even separate books (or assemblies) to mimic DocBook’s &lt;em&gt;set&lt;/em&gt; element.&lt;/p&gt;  &lt;p&gt;The design takes into account existing DocBook content that currently exists as “monolithic” instances, but is flexible enough to support other applications like IMF manifests for SCORM-compliant content, making it easy to create e-Learning content.&lt;/p&gt;  &lt;p&gt;As the first draft of the proposal, I would expect that there will be changes between now and the final spec.  Yet, the core of the proposal should remain relatively intact.  If you would like to get involved or have other ideas, let me know.  Stay tuned.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a1d377ac-5a80-4c6b-9e73-5b957f522996" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DITA" rel="tag"&gt;DITA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DocBook" rel="tag"&gt;DocBook&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Modular+DocBook" rel="tag"&gt;Modular DocBook&lt;/a&gt;&lt;/div&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:23cd70ad-038d-412a-a0fb-dcb7b112f9c1" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/DocBook" rel="tag"&gt;DocBook&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Modular+DocBook" rel="tag"&gt;Modular DocBook&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/DITA" rel="tag"&gt;DITA&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-5563833087687508674?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IcOGaGNWgEGA5PBCGYc3a5dDILk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IcOGaGNWgEGA5PBCGYc3a5dDILk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IcOGaGNWgEGA5PBCGYc3a5dDILk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IcOGaGNWgEGA5PBCGYc3a5dDILk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/Pv0Q26xwKGk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/5563833087687508674/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=5563833087687508674" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/5563833087687508674?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/5563833087687508674?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/Pv0Q26xwKGk/docbook-going-modular.html" title="DocBook Going Modular" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/03/docbook-going-modular.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQDQX8zeyp7ImA9WxVXFUk.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-1836329082122716656</id><published>2009-02-13T10:32:00.001-07:00</published><updated>2009-02-13T10:32:50.183-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-13T10:32:50.183-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Review" /><category scheme="http://www.blogger.com/atom/ns#" term="XMetaL" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><title>XMetaL Reviewer Webinar</title><content type="html">&lt;p&gt;I attended a webinar yesterday hosted by Just Systems for their XMReviewer product.&amp;#160; The problem space is that conventional reviewing processes are cumbersome and inefficient, particularly when there are multiple reviewers that need to review a document concurrently.&amp;#160; In general, most review processes rely on either multiple draft copies being sent out, one to each reviewer, and then it’s up to the author to “merge” the comment feedback into the source.&lt;/p&gt;  &lt;p&gt;With XMReviewer, the entire review process is centralized on the XM Reviewer server:&amp;#160; Reviewers simply access the document online, provide their comments and submit. What’s really cool is that reviewers are notified in almost real time when another reviewer has submitted their comments and can integrate their fellow reviewer’s comments into their own.&lt;/p&gt;  &lt;p&gt;The real advantage is that authors have all reviewer comments integrated and merged into a single XML instance, and &lt;em&gt;in context&lt;/em&gt;. Very Nice.&amp;#160; &lt;/p&gt;  &lt;p&gt;There’s also a web service API that allows you to integrate XMReviewer with other systems including a CMS that can automatically deploy your content to the XMReviewer server.&lt;/p&gt;  &lt;p&gt;There are some nice general reporting/auditing features built in as well.&amp;#160; However, I didn’t see anything that would allow me to customize the reports or to manipulate the data, but I wouldn’t consider that a show stopper.&lt;/p&gt;  &lt;p&gt;For folks used to “offline” reviews, e.g., providing comments at home, or on a plane, this won’t work for you as it is a server application.&amp;#160; Nonetheless, having the ability to have full &lt;em&gt;control&lt;/em&gt; and &lt;em&gt;context&lt;/em&gt; for review comments far outweighs the minor inconvenient requirement of being online and getting access to the server (most companies these days have VPN, so it’s not a showstopper).&amp;#160; Though, I can envision the possibility of the server downloading and installing a small-footprint application that would allow users to review the document “offline” and being able to “submit” the comments back to the server when the reviewer is back online.&amp;#160; &lt;/p&gt;  &lt;p&gt;The only other limitation right now is that XMReviewer doesn’t support DITA map-level reviews in which you can provide comments on multiple topics within a map.&amp;#160; This is currently in development for a future release – stay tuned.&lt;/p&gt;  &lt;p&gt;Overall, XMReviewer looks great and can simplify your content review process.&amp;#160; Check it out.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-1836329082122716656?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uFXa_betfJ-2xm4xa04m8cqglAA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uFXa_betfJ-2xm4xa04m8cqglAA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uFXa_betfJ-2xm4xa04m8cqglAA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uFXa_betfJ-2xm4xa04m8cqglAA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/bwJUpM7oAKU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/1836329082122716656/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=1836329082122716656" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/1836329082122716656?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/1836329082122716656?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/bwJUpM7oAKU/xmetal-reviewer-webinar.html" title="XMetaL Reviewer Webinar" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/02/xmetal-reviewer-webinar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIDQH85fyp7ImA9WxVXE0o.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-8891643143177083589</id><published>2009-02-11T11:39:00.001-07:00</published><updated>2009-02-11T11:39:31.127-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-11T11:39:31.127-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Live Writer" /><category scheme="http://www.blogger.com/atom/ns#" term="Tools that don't suck" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title>Microsoft Live Writer Convert</title><content type="html">&lt;p&gt;After reading a few blogs here and there, I’ve seen a few posts about Microsoft’s Live Writer for creating blog posts.&amp;#160; Always on the lookout for new toys and tools, I decided to download it and try it out. I gotta admit, I’m sold.&amp;#160; This is a pretty nice application that allows me to work offline to write and edit my posts and when I am ready and able to connect, I simply push the “Publish” button and away it goes.&amp;#160; Sweet.&lt;/p&gt;  &lt;p&gt;It’s simple to install, and simple to configure to point to virtually any blog host out there.&amp;#160; In short: &lt;em&gt;It just works.&lt;/em&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;This is what software should be like.&amp;#160; It should solve a particular set of problems and only those problems well without requiring massively complex installation and configuration steps.&amp;#160; The interface should be intuitive (Live Writer is &lt;em&gt;wickedly intuitive&lt;/em&gt;) and should help rather than hinder me in my productivity.&amp;#160; This tool does that.&amp;#160; Well done, Microsoft!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-8891643143177083589?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_V678wGId3iK9yD9thnOeHb574U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_V678wGId3iK9yD9thnOeHb574U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_V678wGId3iK9yD9thnOeHb574U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_V678wGId3iK9yD9thnOeHb574U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/yZY1vOSZQ6U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/8891643143177083589/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=8891643143177083589" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8891643143177083589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8891643143177083589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/yZY1vOSZQ6U/microsoft-live-writer-convert.html" title="Microsoft Live Writer Convert" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/02/microsoft-live-writer-convert.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcDQXs5fip7ImA9WxVXEkk.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-4764374253244519450</id><published>2009-02-09T21:27:00.001-07:00</published><updated>2009-02-09T21:27:50.526-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-09T21:27:50.526-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DITA" /><category scheme="http://www.blogger.com/atom/ns#" term="Economic Opportunity" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="Recession" /><category scheme="http://www.blogger.com/atom/ns#" term="DocBook" /><category scheme="http://www.blogger.com/atom/ns#" term="XML Standards" /><title>Implementing XML in a Recession</title><content type="html">&lt;p&gt;With the economic hard times, a lot of proposed projects that would allow companies to leverage the real advantages of XML are being shelved until economic conditions improve.&amp;#160; Obviously, in my position, I would love to see more companies pushing to using XML throughout the enterprise. We’ve all heard of the advantages of XML: reuse, repurposing, distributed authoring, personalized content, and so on. These are underlying &lt;em&gt;returns on investment&lt;/em&gt; for implementing an XML solution.&amp;#160; The old business axiom goes, “you have to spend money to make money.”&amp;#160; A corollary to that might suggest that getting the advantages of XML must mean spending &lt;em&gt;lots&lt;/em&gt; of money.&lt;/p&gt;  &lt;p&gt;However, here’s the reality: implementing an Enterprise-wide XML strategy &lt;em&gt;doesn’t have to break the bank.&lt;/em&gt; In fact, with numerous XML standards that are ready to use out of the box, like DITA and DocBook for publishing and XBRL for business, the cost of entry is reduced dramatically compared to a customized grammar.&amp;#160; &lt;/p&gt;  &lt;p&gt;And while no standard is always a 100 percent perfect match for any organization’s business needs, at least one is likely to support at least 80 percent.&amp;#160; We often consult our clients to use a standard directly out of the box (or with very little customization) until they have a good “feel” of how well it works in their environment before digging into the real customization work.&amp;#160; Given that funding for XML projects is likely to be reduced, this is the perfect opportunity to begin integrating one of these standards into your environment, try it on for size while the economy is slow, and when the economy improves, &lt;em&gt;then&lt;/em&gt; consider how to customize your XML content to fit your environment.&lt;/p&gt;  &lt;p&gt;Any XML architecture must encompass the ability to create content and to deliver it, even one on a budget.&amp;#160; Here again, most XML authoring tools available on the market have built-in support for many of these standards, with little to no effort, you can use these authoring environments out of the box and get up to speed.&amp;#160; &lt;/p&gt;  &lt;p&gt;On the delivery side, these same standards, and in many cases the authoring tools have prebuilt rendering implementations that can be tweaked to deliver high-quality content, with all of the benefits that XML offers.&amp;#160; In this case, you might want to spend a little more to hire an expert in XSLT.&amp;#160; But it doesn’t have to break the bank to make it look good.&lt;/p&gt;  &lt;p&gt;The bottom line: A recessionary economy is a golden opportunity to introduce XML into the enterprise. In the short term, keep it simple, leverage other people’s work and industry best practices and leave your options open for when you &lt;em&gt;can&lt;/em&gt; afford to do more.&amp;#160; Over time when funding returns, then you can consider adding more “bells and whistles” that will allow you to more closely align your XML strategy with your business process.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-4764374253244519450?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ikWmtiRQIvILuO1-EWo0GE5oVgs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ikWmtiRQIvILuO1-EWo0GE5oVgs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ikWmtiRQIvILuO1-EWo0GE5oVgs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ikWmtiRQIvILuO1-EWo0GE5oVgs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/dDWniY8NO_k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/4764374253244519450/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=4764374253244519450" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4764374253244519450?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/4764374253244519450?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/dDWniY8NO_k/implementing-xml-in-recession.html" title="Implementing XML in a Recession" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/02/implementing-xml-in-recession.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DR346eyp7ImA9WxVXEEw.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-7460539400373392179</id><published>2009-02-06T23:22:00.007-07:00</published><updated>2009-02-07T08:19:36.013-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-07T08:19:36.013-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XSLT" /><category scheme="http://www.blogger.com/atom/ns#" term="Doxsl" /><title>DOXSL: Reflexive Code Documentation and Testing, and other random XSLT thoughts</title><content type="html">One of the cool things about Doxsl is that I can test it on itself.  Since Doxsl is an XSLT application (v2.0), I can create documentation using itself.  I'll be posting these on the Sourceforge project website soon - when I finish documenting my own code.  Hmmm... walking the talk and eating your own dogfood at the same time - who woulda thunk it?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's something about reflexive tools that is just pretty cool.  I built another application to document the DocBook RelaxNG schemas into DocBook.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Doxsl DocBook stylesheets are coming along.  If I can manage to get some free time at night, I might be able to finish these in about a week.  The one thing I really need to do is check out &lt;a href="http://code.google.com/p/xspec/w/list"&gt;xspec&lt;/a&gt; to see if I can write test cases against the code.  I've tried XMLUnit about a year ago, but the critical difference is that it tests the artifact of the transform, rather than the code itself.  Implicit testing is better than no testing at all, but it doesn't mean that it's optimal.  I &lt;span class="Apple-style-span" style="font-style: italic;"&gt;love&lt;/span&gt; JUnit and NUnit for testing my Java and .NET code, and it's great for the large enterprise-wide projects I work on.  While Doxsl is just a teeny, tiny little application (tool is more like it), there is enough code right now that even simple changes can cause big problems.  I'll let you know what I think about xspec when I've had a chance to tinker with it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another XSL application I've been working over the last year or so is an alternative to the DITA Open Toolkit.  The OT is OK as a reference implementation, but it can be a bear to work with even to handle minor customizations.  Part of the problem, in my opinion, is that the OT's stylesheets are dependent on the Ant scripts that drive it.  In fact, it takes some fancy footwork to get the stylesheets to run outside of the ant environment.  And here again, Ant &lt;span class="Apple-style-span" style="font-style: italic;"&gt;is&lt;/span&gt; the tool for creating a consistent and reliable sequence of build steps for a development environment.  Where it falls short is dealing with sophisticated XSLT applications that have lots of parameters (optional or otherwise).  The parameters have to be "hardcoded" into the XSLT task.  Not my idea of extensible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Add to that: the stylesheets are still using XSLT 1.0 - ehhh.  I'll use 1.0 if I &lt;span class="Apple-style-span" style="font-style: italic;"&gt;have&lt;/span&gt; to (thanks Microsoft).  There's just so much more that 2.0 provides that makes stylesheet development much, much easier.  At any rate, I've been working on my own implementation of DITA using XSLT 2.0 and with relying on Ant.  HTML and CHM are working, FO is the hard part.  What I find interesting is that I can process a map containing over 160 topics into HTML in about 20 seconds with my stylesheets.  It takes over 2 minutes with the OT! The results are anecdotal , and I haven't really tested the stylesheets on anything really big, but I like what I see so far (in fact the &lt;a href="http://doxsl.sourceforge.net/"&gt;DOXSL&lt;/a&gt; website uses DITA and my stylesheets to render it).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-7460539400373392179?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LodNZCQaeOd_NfpiGt0ytXh2kRM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LodNZCQaeOd_NfpiGt0ytXh2kRM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LodNZCQaeOd_NfpiGt0ytXh2kRM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LodNZCQaeOd_NfpiGt0ytXh2kRM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/JFmb1vjUYzs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/7460539400373392179/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=7460539400373392179" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7460539400373392179?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7460539400373392179?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/JFmb1vjUYzs/doxsl-reflexive-code-documentation-and.html" title="DOXSL: Reflexive Code Documentation and Testing, and other random XSLT thoughts" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/02/doxsl-reflexive-code-documentation-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBQXk6fip7ImA9WxVQGE0.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-3951874304104567290</id><published>2009-02-04T20:43:00.003-07:00</published><updated>2009-02-04T21:14:10.716-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-04T21:14:10.716-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XSLT" /><category scheme="http://www.blogger.com/atom/ns#" term="Doxsl" /><title>DOXSL Shout out</title><content type="html">I recently found a post by a former client of mine, &lt;a href="http://www.wordsinboxes.com/"&gt;James Sulak&lt;/a&gt; who had some very positive feedback for my open source project, &lt;a href="http://doxsl.sourceforge.net/"&gt;DOXSL&lt;/a&gt;. &lt;a href="http://www.wordsinboxes.com/2008/07/documenting-xslt.html"&gt;Check out his post&lt;/a&gt;.  Thanks for the shout out, James!&lt;br /&gt;&lt;br /&gt;On that front, I &lt;em&gt;have&lt;/em&gt; been working on a new release. There are a few bugs I've discovered when I started processing some DITA stylesheets, particularly when trying to look for overrides using DITA's matching patterns (e.g., &lt;span style="font-family:courier new;"&gt;*[contains(@class,'- &lt;em&gt;topic-type&lt;/em&gt;/&lt;em&gt;element-name&lt;/em&gt; ')]&lt;/span&gt; - things got borked with speicializations when the class tokens contain the "parent" token.&lt;br /&gt;&lt;br /&gt;There's still the other things on my roadmap to work on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DocBook output (I have some designs in mind, specifically around modularity)&lt;/li&gt;&lt;li&gt;The Comment Stub Generator:  this is a high priority for me&lt;/li&gt;&lt;li&gt;Comment Collector: This is similar to what .NET does when it compiles code documentation into a single XML file.  The intent is to make the XSLT less "noisy"&lt;/li&gt;&lt;li&gt;There are additional validation ideas that Ken Holman suggested that I'd like to build in.  &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Progress is slow, given that my day job still takes precedence.  Stay tuned.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-3951874304104567290?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zCF76acSuTZ1ArJsFuVkRWIVzns/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zCF76acSuTZ1ArJsFuVkRWIVzns/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zCF76acSuTZ1ArJsFuVkRWIVzns/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zCF76acSuTZ1ArJsFuVkRWIVzns/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/S-0JI4dwtFs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/3951874304104567290/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=3951874304104567290" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/3951874304104567290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/3951874304104567290?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/S-0JI4dwtFs/doxsl-shout-out.html" title="DOXSL Shout out" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/02/doxsl-shout-out.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8DQXo5fCp7ImA9WxVQGE0.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-8323255397333502586</id><published>2009-02-04T20:09:00.002-07:00</published><updated>2009-02-04T20:34:30.424-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-04T20:34:30.424-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Catching Up" /><title>It's Been Awhile</title><content type="html">It's been a long time since I've posted to this blog.  Life and work have been a bit insane.  Work-wise, I've been working on a very complex project that marries DITA modular architecture with a more conventional monolithic document approach.  It's been an interesting excercise - one that I will discuss in more detail later.&lt;br /&gt;&lt;br /&gt;Personally, my father passed away on December 17th.  He was in ICU since the beginning of December, and had been ill for quite some time before that.  Needless to say, blogging was the last thing on mind.&lt;br /&gt;&lt;br /&gt;I did have a presentation prepared for the XML 2008 conference, called "Optimizing Schemas for Enterprise Content", which I had intended to attend, but couldn't make it due to my father's illness.  Thankfully, Eric Severson graciously and adeptly stepped in for me.  From all accounts, it was received well.  The premise behind the paper is that schemas shouldn't be the end-all/be-all for constraining content models (e.g., validation).  Instead, I offer other strategies for controlling content.&lt;br /&gt;&lt;br /&gt;In the meantime, I'm getting back in the swing with the DITA TC, hopefully having more time to devote to moving the v1.2 spec along.  I'm also working on a proposal for creating "modular DocBook."  There are some interesting concepts I'm playing around with in the proposal.  Hopefully, I'll have enough to present to the DocBook TC later this month.&lt;br /&gt;&lt;br /&gt;So much to do, so little time.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-8323255397333502586?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fVCClNUT7Wfozim9-Fpo6GPAdpQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fVCClNUT7Wfozim9-Fpo6GPAdpQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fVCClNUT7Wfozim9-Fpo6GPAdpQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fVCClNUT7Wfozim9-Fpo6GPAdpQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/aDQAZUwxA10" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/8323255397333502586/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=8323255397333502586" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8323255397333502586?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/8323255397333502586?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/aDQAZUwxA10/its-been-awhile.html" title="It's Been Awhile" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2009/02/its-been-awhile.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYDSXw_fip7ImA9WxdRFk4.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-7669353779888116428</id><published>2008-06-04T20:28:00.004-06:00</published><updated>2008-06-04T20:32:58.246-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-04T20:32:58.246-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Art" /><category scheme="http://www.blogger.com/atom/ns#" term="Kate Earley" /><title>Off Topic: Kate Earley's Website</title><content type="html">My sister, Kate, is an extremely talented artist (me on the other hand, have trouble drawing stick figures). She started up a new website with some of her work. Hopefully, she'll post more of her work for all to see. It's pretty amazing stuff.  Here's the link:  &lt;a href="http://www.infinityillustrations.com/index.html"&gt;http://www.infinityillustrations.com/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-7669353779888116428?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Po-FbQo0AgDkhMUdtGEI7uoCaMc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Po-FbQo0AgDkhMUdtGEI7uoCaMc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Po-FbQo0AgDkhMUdtGEI7uoCaMc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Po-FbQo0AgDkhMUdtGEI7uoCaMc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/oPW56XonNqQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/7669353779888116428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=7669353779888116428" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7669353779888116428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/7669353779888116428?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/oPW56XonNqQ/off-topic-kate-earleys-website.html" title="Off Topic: Kate Earley's Website" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2008/06/off-topic-kate-earleys-website.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8NSHk6fyp7ImA9WxZaGEo.&quot;"><id>tag:blogger.com,1999:blog-5052457920976107820.post-92150007529246350</id><published>2008-05-03T21:14:00.000-06:00</published><updated>2008-05-03T21:14:59.717-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-03T21:14:59.717-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Usability" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><category scheme="http://www.blogger.com/atom/ns#" term="XML Tools" /><category scheme="http://www.blogger.com/atom/ns#" term="XML Standards" /><title>I Don't Care How the Sausage Is Made</title><content type="html">There's a common notion that you don't want to know how sausage is made if you like eating them. In fact, there's a butcher (reminiscent of days gone by) down the street from where I live who makes all kinds of sausage from "old family recipes". What I read into this sort of thing is the butcher is saying, "Don't ask, I'm not telling." To which my reply would be, "I won't, because it tastes good."&lt;br /&gt;&lt;br /&gt;In much the same fashion as I don't want to know what goes into the sausage, many writers I've had the experience of working with or consulting for really don't want to know or care about angle brackets, tags, attributes, containment, content models, namespaces, DTDs, schemas or processing instructions. In other words, "Let me write, and get out of my way!"&lt;br /&gt;&lt;br /&gt;Part of this sturm und drang over markup languages is partly the unintended consequences of sophisticated desktop publishing tools that enable virtually anyone to create publication-ready content. The problem is that structure and semantics takes a back seat to formatting and presentation. And for the last 15-plus years, DTP applications have been the main tool in the writing tool chest. It didn't matter that the underlying format was proprietary - it just worked.&lt;br /&gt;&lt;br /&gt;But the price of "freedom" with using these tools resulted in additional overhead to ensure that "publication-ready" content conformed to internal company standards for style and format.So here comes XML, with its promise of unlocking content from format and proprietary binary formats read only by proprietary applications. Structure and semantics now matter. In so many ways, this is a great thing. Consistency can be enforced by the underlying schema - no rogue "Heading 1" styles followed by a "Heading 3" or funky new format styles that deviate from the corporate template.  Better yet, no more tedious hours reformatting content from other sources like OEM content, or being limited to "one-off" copies from originals.&lt;br /&gt;&lt;br /&gt;The rub is that the tools needed to write XML put more onus on the writer to understand the content model.  Even if these tools hide or abstract the content model, there is still a significant change management issue to train users that structured content authoring is signficantly different than what they might be used to.  In exchange for "creative freedom," back-end publishing systems now have a reliable content to work with.  But the problem is that some folks creating the content feel like they've gotten the short end of the stick.  For those that do feel short shrifted, it feels like they're right in the middle of the sausage factory.&lt;br /&gt;&lt;br /&gt;The real challenge is to develop tools that make XML content creation simple.  Users don't want to know a hyperlink or image is marked up, they simply want to identify the URL and link text.  Similarly, some users don't care if the content model is using a CALS or OASIS Exchange or HTML table model, they want to insert rows and cells.   In many respects, this seems to suggest that the current markup complexity is getting in the way. &lt;br /&gt;&lt;br /&gt;Many of the tools do have WYSIWYG-ish views into the content.  Yet, as Eric Armstrong pointed out, even these tools fall short and tend to confuse users when they want to insert a particular element or structure not allowed in the context of the current cursor location.In many regards, this is too much overhead for the average user.  They want to have a tool that allows them to insert paragraphs, lists, tables, images and section headings.  One suggestion might have a higher level abstraction layer that all tools can easily support, and build the more complex XML markup under the covers. &lt;br /&gt;&lt;br /&gt;One possible approach might be to use HTML-like WYSIWYG editors that support basic content structures.  Under the covers, it can convert the HTML into more complex structures required by grammars like DocBook and DITA.  In fact, the Interoperability Framework Scott Hudson and I have worked on uses this same approach.&lt;br /&gt;&lt;br /&gt;While this type of approach takes away some control over very specific semantics, it reduces the complexity and clutter that more structured models introduce. That doesn't preclude editing tools to be smarter about how they enable more specific semantics.  Much in the same way many HTML editors display a popup dialog for users to specify the URL and text for a hyperlink, tools can provide users with other dialogs for specifying (more like classifying) an abstract span element to indicate more detailed meaning. &lt;br /&gt;&lt;br /&gt;This is not to suggest that "non-narrative" content, like data structures or configurations that are are used by many modern applications will want to use this approach.  However, publication level markup can take advantage of this type of approach to simplify how users create content, and honor their request to remain unaware of how the sausage is made and will be happier to create content in a model they do understand.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://blogsearch.google.com/ping?name=Jim%27s+Thoughtspot&amp;url=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2F&amp;changesURL=http%3A%2F%2Fjims-thoughtspot.blogspot.com%2Fatom.xml"&gt;&lt;/a&gt;
&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5052457920976107820-92150007529246350?l=jims-thoughtspot.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L4jUaJ7kkAJVIgxRG8vN33wHraI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L4jUaJ7kkAJVIgxRG8vN33wHraI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L4jUaJ7kkAJVIgxRG8vN33wHraI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L4jUaJ7kkAJVIgxRG8vN33wHraI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fsMyk/~4/0tgyw_EPLmI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jims-thoughtspot.blogspot.com/feeds/92150007529246350/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5052457920976107820&amp;postID=92150007529246350" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/92150007529246350?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5052457920976107820/posts/default/92150007529246350?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fsMyk/~3/0tgyw_EPLmI/i-dont-care-how-sausage-is-made.html" title="I Don't Care How the Sausage Is Made" /><author><name>Jim Earley</name><uri>https://profiles.google.com/101407824313723121137</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-GRd1h-GbhLY/AAAAAAAAAAI/AAAAAAAAAOM/GW9PTU0586c/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jims-thoughtspot.blogspot.com/2008/05/i-dont-care-how-sausage-is-made.html</feedburner:origLink></entry></feed>

