The already mentioned XML based CCMS "Calenco XML CMS" still available (see also my post "Open Source CCMS").
There is one more system which lately offers an already existing DITA based CCMS without any license cost: "SiberSafe DITA CMS". Read the EULA carefully but in case you need something to play with....
Both are no more open source. Their goal is not to get an open and shared development. They simple heading for lowering the barrier for customer entry.
What you see is that both cases are the company driving the implementation want to get in tough with you and both companies offers additional features with dedicated license costs.
I personal expect more product in this domain following the same approach. Why?
The specific domain of "technical documentation" is pretty small and there are many different and small companies out there which providing specific products to support this domain.
Even in huge installations the amount of licenses required to support the users dealing with technical information isn't very huge - this means the opportunity to sell a huge amount of licenses is limited. In addition most of the available tools are similar to each other - with individual advantages but with no structural differences.
This means this business model does not really scale and the amount required to sale the license is high.
On the other hand having a tool does not improves your information process and therefore does not add any business value to your organization. At the best case it supports your process with automated tasks. But first of all you need a optimized methods and processes (information process) at all before any tool can assist you as best as possible.
This means - the future is not to create and develop products looks like the today's CCMS system available on the market. The future is to create either information process driven productions where technical information is just one use-case OR focus on integration services to get the value out of existing information.
What are the limitations of todays CCMS system. And how more future oriented designs will look like? More to come in future blog posts....
Sunday, May 06, 2012
Not Open Source but Free CCMS (2)
Search and Replace on multiple files
Search & Replace is a common task in data processing environments. You cannot avoid to build process your data to replace or add a word, syntax or even multiple lines of text in several different resources.
If the task can be fully automated, means there is a unique algorithm to transform a resource A to A' based on the content of A than you will look for available methods and tools supporting you to do this kind of operation.
Methods
Regular expressions are very powerful rules to express not only finding common pattern in text based resources but also a good foundation to replace or extend existing content.
Compared to simple phrase based pattern most imaginable rules can be expressed and used as a source for the required transformation.
But regular expressions come with high cost of complexity. It is very likely to defines rules which results in "false positives", means matches that you didn't want to match.
Tools
Doing Search & Replace in the file system on multiple resources (files) is easy for IT people using linux tools like grep, ....
On Windows you also can install those tools and make them a powerful foundation for those kind of operations (see http://gnuwin32.sourceforge.net/packages/grep.htm).
TextCrawler
But not all people like to become an IT expert for simple replacing the term "foo" with "delicious" . On Windows you can use TextCrawler for this. One of the best UI based tools I'm aware of.
It provides
To avoid false positives you can
If the task can be fully automated, means there is a unique algorithm to transform a resource A to A' based on the content of A than you will look for available methods and tools supporting you to do this kind of operation.
Methods
Regular expressions are very powerful rules to express not only finding common pattern in text based resources but also a good foundation to replace or extend existing content.
Compared to simple phrase based pattern most imaginable rules can be expressed and used as a source for the required transformation.
But regular expressions come with high cost of complexity. It is very likely to defines rules which results in "false positives", means matches that you didn't want to match.
Tools
Doing Search & Replace in the file system on multiple resources (files) is easy for IT people using linux tools like grep, ....
On Windows you also can install those tools and make them a powerful foundation for those kind of operations (see http://gnuwin32.sourceforge.net/packages/grep.htm).
TextCrawler
But not all people like to become an IT expert for simple replacing the term "foo" with "delicious" . On Windows you can use TextCrawler for this. One of the best UI based tools I'm aware of.
It provides
- simple phrase based operation "Replace phrase A with B" on multiplier files
- more complex regular expression based operation
- and in addition a fuzzy search operation for more advanced search operations
To avoid false positives you can
- preview the hits before actual performing the replace operation
- use a dedicated regular expression tester to see what exactly match and what will replace
Concurrency: low-level design still matters
Todays design very focused on application level design. Using optimized operation for a given software service.
This means you try to create simple, atomic operations which can be called from your business process. Each service can be distributed and scale using mainstream deployment pattern.
So far so good. What you might see once you do this. Running one thread on a single hardware gives you the predictable performance you have to achieve, running 8 concurrent threads each single operation takes a much higher execution time.
You also seen this behavior in one of your applications? Than you probably faced with concurrency issues and once you eliminated all application related issues you get aware of that even today hardware related optimization is something you have to take care of. Really?
I see and know some application in my daily work doesn't scale very well on a single hardware - they are very basic in terms of application related algorithm but they using algorithm patterns causing memory contention....
Thus you still have to understand the low level architecture and ways to optimize the basic algorithm in your code.
Lock-Free Algorithm
Have a look at "Lock-Free Algorithm" to get a very good overview on how such things still affect concurrency behavior of your application. You should also read "Beginners guide-concurrency" from the Trisha Gee and Michael Barker.
You also gets hints and estimation how virtualization might affect you performance.
Summary
Choosing the right hardware still matters in operation scenarios where concurrency is used to scale your application AND scalability is a core success factor of the application.
This means you try to create simple, atomic operations which can be called from your business process. Each service can be distributed and scale using mainstream deployment pattern.
So far so good. What you might see once you do this. Running one thread on a single hardware gives you the predictable performance you have to achieve, running 8 concurrent threads each single operation takes a much higher execution time.
You also seen this behavior in one of your applications? Than you probably faced with concurrency issues and once you eliminated all application related issues you get aware of that even today hardware related optimization is something you have to take care of. Really?
I see and know some application in my daily work doesn't scale very well on a single hardware - they are very basic in terms of application related algorithm but they using algorithm patterns causing memory contention....
Thus you still have to understand the low level architecture and ways to optimize the basic algorithm in your code.
Lock-Free Algorithm
Have a look at "Lock-Free Algorithm" to get a very good overview on how such things still affect concurrency behavior of your application. You should also read "Beginners guide-concurrency" from the Trisha Gee and Michael Barker.
You also gets hints and estimation how virtualization might affect you performance.
Summary
Choosing the right hardware still matters in operation scenarios where concurrency is used to scale your application AND scalability is a core success factor of the application.
Monday, April 23, 2012
Open Source: data management and transformation library
Sumbled upon the following post http://flowingdata.com/2012/04/23/miso-an-open-source-toolkit-for-data-visualisation/
Relational data (or data can be stored in a table or matrix) is "old style" but still an an common use-case in todays web applications.
A new JavaScript library called "Miso Project" starts to implement components that simplifies the management and transformation of this kind of data (and will be extended with visualization use-case). This means that you are easy manage relational data on client side which can be very handy in certain use-cases. So its like a client side database with corresponding query syntax.
In case you have to develop a e.g. simple, standalone HTML application without a permanent server backend this library will help you without adding too much complexity in your (implementation) infrastructure.
Relational data (or data can be stored in a table or matrix) is "old style" but still an an common use-case in todays web applications.
A new JavaScript library called "Miso Project" starts to implement components that simplifies the management and transformation of this kind of data (and will be extended with visualization use-case). This means that you are easy manage relational data on client side which can be very handy in certain use-cases. So its like a client side database with corresponding query syntax.
One of the most common patterns we've found while building JavaScript-based interactive content is the need to handle a variety of data sources such as JSON files, CSVs, remote APIs and Google Spreadsheets. Dataset simplifies this part of the process by providing a set of powerful tools to import those sources and work with the data. Once data is in a Dataset, it becomes simple to select, group, and calculate properties of, the data. Additionally, Dataset makes it easy to work with real-time and changing data, which pose one of the more complex challenges to data visualization work.
In case you have to develop a e.g. simple, standalone HTML application without a permanent server backend this library will help you without adding too much complexity in your (implementation) infrastructure.
Sunday, April 08, 2012
QR Codes in your documents
QR codes are one method to ease the information exchange between classical medias and mobile devices (common usage direct link to the corresponding web page in paper based catalogs, manuals, ....).
But how to create those QR codes without too much complexity?
Google Chart API provides:
The following code is taken from "QR Codes in DTIA Output" which shows how to create QR codes for PDF output of the DITA-OT using XSL-FO:
Sample (code: <img src="http://chart.apis.google.com/chart?chs=200x100&cht=qr&chl=http%3A%2F%2Ftrent-intovalue.blogspot.de%2F2006%2F05%2Ftrent-definition.html" width="200" height="100" alt="" />):
But how to create those QR codes without too much complexity?
Google Chart API provides:
- chart wizard to create QR codes and corresponding styling
- infographics API to create static images based on posted chart definition (URLs)
The following code is taken from "QR Codes in DTIA Output" which shows how to create QR codes for PDF output of the DITA-OT using XSL-FO:
<!-- Insert QR code -->
<xsl:template match="*[contains(@class,' topic/xref ')]
[contains(@outputclass, 'qrcode')]">
<fo:external-graphic>
<xsl:attribute name="src"><xsl:value-of select="concat('https://chart.
googleapis.com/chart?cht=qr&chs=100x100&chl=', .)"/>
</xsl:attribute>
</fo:external-graphic>
</xsl:template>
see: http://ditanauts.org/2012/03/14/qr-codes-in-dita-ouput/Sample (code: <img src="http://chart.apis.google.com/chart?chs=200x100&cht=qr&chl=http%3A%2F%2Ftrent-intovalue.blogspot.de%2F2006%2F05%2Ftrent-definition.html" width="200" height="100" alt="" />):
how to preserve the value of big data over time....
Today the buzzword "Big data" getting more and more popular. Nice label for a common statement "the amount of data and the valuable usage getting important".
There are millions of information and products out there which promise to help you storing and analyzing those data. But one of the major issues with data is not current usage it is the maintenance of the information over time.
The "Web of Data" is one common example. It is the biggest data store we currently faced with. Pretty simple to access and analyze. So far so good. But there is one maintenance of this data (required?). Collect 100 links to resources on the web today. than 24 month later try access them...how many of those links still work, and if they work the resulting information still using the same semantic as it was once you build up the link?
The "Web of Data" currently decided not to maintain data just provide them now, enrich them and just replace them with different semantic...The Web Wayback machine (http://archive.org/web/web.php) is an approach to help individual users to keep their individual value of data for some scenarios.
Now think about your cooperate information you collect right now. The speed and adaption rate of this data will increase and new demands to enrich the data will appear. Do you ever thought about how you ensure that all that data can be adapt to new needs? Based on my personal experience at least more than 60 % of the over all project costs are related to data migration in IT project dealing with information in a certain domain of the organization. Those costs are related to adapting data to the new tools which maintains the data, converting data between different data models and formats and ensure the quality of the data and their usage in existing business processes.
What does this mean for each IT project dealing with data?
There are millions of information and products out there which promise to help you storing and analyzing those data. But one of the major issues with data is not current usage it is the maintenance of the information over time.
The "Web of Data" is one common example. It is the biggest data store we currently faced with. Pretty simple to access and analyze. So far so good. But there is one maintenance of this data (required?). Collect 100 links to resources on the web today. than 24 month later try access them...how many of those links still work, and if they work the resulting information still using the same semantic as it was once you build up the link?
The "Web of Data" currently decided not to maintain data just provide them now, enrich them and just replace them with different semantic...The Web Wayback machine (http://archive.org/web/web.php) is an approach to help individual users to keep their individual value of data for some scenarios.
Now think about your cooperate information you collect right now. The speed and adaption rate of this data will increase and new demands to enrich the data will appear. Do you ever thought about how you ensure that all that data can be adapt to new needs? Based on my personal experience at least more than 60 % of the over all project costs are related to data migration in IT project dealing with information in a certain domain of the organization. Those costs are related to adapting data to the new tools which maintains the data, converting data between different data models and formats and ensure the quality of the data and their usage in existing business processes.
What does this mean for each IT project dealing with data?
- Initial load is important
You always have to define how to get the data you need for the initial start (and not only during the regular operation of your business process) and how to verify that this data is valid for your future need. - Expandability of your data might be important
You can use static data models and tools (e.g. classical relational data models) compared to more flexible approaches like typed graphs of data where content using different models can simpler coexist. - Adaptability of your IT systems might be important
What happens to your existing data once the model will be extended, changed. Do not only take care of the data itself also take into account the relation to the data. Today you only access a specific level of your data few years later some use-case requires you to access the individual step or introduce an additional level not yet exists. - Ensure the maintenance of your data.
Do not "use" any data which you do not have any value in your primary business process. The usage of information requires the correctness of data. Your data will never be correct if the process creating this data does not have any value out of the data itself. This means that the data will be simple partially incorrect, incomplete.
Monday, November 07, 2011
Data-Driven Documents
Data-Driven Documents. What's that?
A good example of whats can be done is available here: http://www.visualizing.org/full-screen/16266
D3.js is a small, free JavaScript library for manipulating documents based on data.You have a data source requires visualization and a chart library is not enough for that purpose. This little library helps you to develop the visualization using the DOM model and data driven transformation.
A good example of whats can be done is available here: http://www.visualizing.org/full-screen/16266
Monday, October 24, 2011
Reactive documents
Stumbled upon a JavaScript library to simplify the creation of reactive documents, called Tangle.
Whenever you have to explain scenarios / alternatives in a sensible manner a reactive document is one possible way to do so. Changing a parameter and directly see the impact for all dependent parts of the information / document is a very sufficient way to teach certain problems / solution scenarios.
This library makes the creation very simple (from a technical point of view) and you are able to concentrate on the content scenario which is of course the harder part.
Whenever you have to explain scenarios / alternatives in a sensible manner a reactive document is one possible way to do so. Changing a parameter and directly see the impact for all dependent parts of the information / document is a very sufficient way to teach certain problems / solution scenarios.
This library makes the creation very simple (from a technical point of view) and you are able to concentrate on the content scenario which is of course the harder part.
XQuery - rare used but ramp-up gets easier
A very nice overview of what XQuery is, what are the relation to other XML based standards and why it is still very rare used is summarized here http://grtjn.blogspot.com/2011/10/xquery-novelties-revisited.html.
Once you want to dive into XQuery a bit deeper, get a feeling if the approach is sufficient for your use case you should try out BaseX. A XML database, open source. The main advantage for tryouts which are not available on alternative solution is a lightweight but very useful UI fronted for the content stored in the database.
Adding XML documents, try out queries and see how / what they match and last but not least a noticeable view of how information in a XML store looks like (from a conceptional point of view) comes aligned with easy install and ramp-up costs.
Alternatives (commercial and open source) are collected here: http://trent-intovalue.blogspot.com/2010/08/xquery-design-patterns.html
Once you want to dive into XQuery a bit deeper, get a feeling if the approach is sufficient for your use case you should try out BaseX. A XML database, open source. The main advantage for tryouts which are not available on alternative solution is a lightweight but very useful UI fronted for the content stored in the database.
Adding XML documents, try out queries and see how / what they match and last but not least a noticeable view of how information in a XML store looks like (from a conceptional point of view) comes aligned with easy install and ramp-up costs.
Alternatives (commercial and open source) are collected here: http://trent-intovalue.blogspot.com/2010/08/xquery-design-patterns.html
Tuesday, September 13, 2011
Valuable Information
Today I stumbled upon the following twitter post:
Sounds interesting and relevant in the context I'm working in. Than I tried to verify the source and basis for this statement.
That is a example of todays most common topic today:
Don't use and post a information which is not verified by at least
Don't forget: It is never cheap to gather valuable information. It was never and will never.
Every human intervention in a business process introduces a 4% chance of error. - B. Beims
Sounds interesting and relevant in the context I'm working in. Than I tried to verify the source and basis for this statement.
- Using google to search for the statement
- Using google to search for the author
- Finding second / third source for this statement
That is a example of todays most common topic today:
- more and more "characters" are accessable and flowing around the world, like "Chinese whispers" posted, re-posted, extended, ....
- less and less of the accessible" information" (in terms of percent based on the complete available total amount of "information") is relevant or valid
- Shorten / context less "information" does not lead to human usable information chain
Don't use and post a information which is not verified by at least
- a second, independent source
or - personal verification
or - background information which provides you with considerable background to trace the information
Don't forget: It is never cheap to gather valuable information. It was never and will never.
Sunday, September 04, 2011
Kevin Slavin: How algorithms shape our world
http://www.ted.com/talks/kevin_slavin_how_algorithms_shape_our_world.html
Writing code in most cases does not mean that you can ever control the usage and implication of the results.....
HTML5 and XML
HTML5 will be the main syntax for the Internet in the next few years and will replace the today most frequently used HTML 4.01. Main driver for this shift was Google and is now adapted by all major browser / OS vendors and organizations.
The main advantage of HTML5 are the new amount of build in features which reflect most of the todays common requirements for web based applications.
Why XHTML 1.0/1.1 failed so far? It mainly was much to strict for the web community - the web and also the world is a non perfect place and therefore HTML5 is much more suitable to fit into this world than the XML based approach of XHTML can provide.
Does this mean XML for the web has loose and does not make sense at all. No there is still space for the XML based standards beside HTML5:
A good summary of Polyglot XHTML and related XML based alternatives for HTML5 can be found here: http://www.xmlplease.com/xhtml/xhtml5polyglot/
The main advantage of HTML5 are the new amount of build in features which reflect most of the todays common requirements for web based applications.
Why XHTML 1.0/1.1 failed so far? It mainly was much to strict for the web community - the web and also the world is a non perfect place and therefore HTML5 is much more suitable to fit into this world than the XML based approach of XHTML can provide.
Does this mean XML for the web has loose and does not make sense at all. No there is still space for the XML based standards beside HTML5:
- XHTML5
XML serialization of HTML 5 with stricter parsing rules
mime-type: application/xhtml+xml - Polyglot XHTML (see http://dev.w3.org/html5/html-author/#polyglot-documents)
- Easier Reuse content for different channels using XSLT / XQuery
- Retrieve content as XHTML and extract only dedicated parts (views) required for different use-case
- Store and request the content using XQuery based infrastructure
A good summary of Polyglot XHTML and related XML based alternatives for HTML5 can be found here: http://www.xmlplease.com/xhtml/xhtml5polyglot/
Thursday, September 01, 2011
analyse and process DTDs
Working with DTD is still a common task for XML (/SGML) driven use-cases. Knowing this it is very amazing that there is no well know DTD visualization tool available supporting this task.
The good old "Near&Far Designer" is gone many years ago and the source is probably lost in the space of Open Text (the company bought Microstar Software Ltd in 1999). This tool is still in use by many organization having to deal with SGML DTDs (e.g. in the military or aircraft industry).
DTD documentation
There are a few open source scripts out there which converting a DTD into HTML pages for documentation purpose which are available free of charge:
There is one tool out there supporting graphical visualization, documentation and a few function to report key function within the given DTD:
TreeVision (http://www.ovidius.com/meta/download/treevision.html) from German company Ovidius. The tool is available free of charge and provides a very sufficient way to analyze XML / SGML DTDs.
Convert to XML Schema alternatives
If you have to process the content of a DTD for specific use-cases like analyzing the model based on custom specific rules the easiest way is to convert the DTD to RELAX NG (XML syntax) or W3C Schema language. Both are based on XML and therefore can be processed using regular XML based tools.
The best tool to do support this is trang (http://www.thaiopensource.com/relaxng/trang.html source is hosted on http://code.google.com/p/jing-trang/) initially created by James Clark. Compared to commercial alternatives the result is very predictable and for many use cases as good as possible.
DTDs will still exists for many years just because of the many legacy applications created around them. The amount of support is limited but still exists....
The good old "Near&Far Designer" is gone many years ago and the source is probably lost in the space of Open Text (the company bought Microstar Software Ltd in 1999). This tool is still in use by many organization having to deal with SGML DTDs (e.g. in the military or aircraft industry).
DTD documentation
There are a few open source scripts out there which converting a DTD into HTML pages for documentation purpose which are available free of charge:
There is one tool out there supporting graphical visualization, documentation and a few function to report key function within the given DTD:
TreeVision (http://www.ovidius.com/meta/download/treevision.html) from German company Ovidius. The tool is available free of charge and provides a very sufficient way to analyze XML / SGML DTDs.
Convert to XML Schema alternatives
If you have to process the content of a DTD for specific use-cases like analyzing the model based on custom specific rules the easiest way is to convert the DTD to RELAX NG (XML syntax) or W3C Schema language. Both are based on XML and therefore can be processed using regular XML based tools.
The best tool to do support this is trang (http://www.thaiopensource.com/relaxng/trang.html source is hosted on http://code.google.com/p/jing-trang/) initially created by James Clark. Compared to commercial alternatives the result is very predictable and for many use cases as good as possible.
DTDs will still exists for many years just because of the many legacy applications created around them. The amount of support is limited but still exists....
Monday, August 01, 2011
lost in email threads....
One of the most time expensive daily tasks is to identify the email required for the the current task in mind.
You know that you already received a email for a particular topic and you want reference it, you require the technical details for a certain topic, ....
Using email tags and full text search of todays email clients is a quite sufficient help to get those kind of tasks done. But once you find a particular email, they is almost ever part of a thread back and forth and getting what you want requires to get the context of the found email. To get the complete context in emails thread isn't trivial, even with thread functions of the common email tools. Most of them are limited in what is shown in particular for long running threads:
Pretty cool, it provides a visual graph of the email thread based on the currently selected email with different colors for different sender, length indication for time durations and direct popup help for the content of each item:
You know that you already received a email for a particular topic and you want reference it, you require the technical details for a certain topic, ....
Using email tags and full text search of todays email clients is a quite sufficient help to get those kind of tasks done. But once you find a particular email, they is almost ever part of a thread back and forth and getting what you want requires to get the context of the found email. To get the complete context in emails thread isn't trivial, even with thread functions of the common email tools. Most of them are limited in what is shown in particular for long running threads:
- you loosing the message context around the identified message because the threading function re-arrange the way your inbox is displayed
- you don't have an easy to use visibility of what really happens, what are the timings for each mail in the task the corresponding sender
- you do not have easy navigation without loosing the context
Pretty cool, it provides a visual graph of the email thread based on the currently selected email with different colors for different sender, length indication for time durations and direct popup help for the content of each item:
You see where you are, what was and after and who was the sender. Even threads you not receive are visible. A easy navigation between the emails, and popup previous for each of the thread items.
Viola, what else could you want? Of course there are things can be improved by the way the basic idea and implementation is worth to take a look at....
Monday, November 01, 2010
Open Source TMS: optentm2 / Open Source Localization framework: okapitools
The open standards in the world of localization becoming more and more mainstream. XLIFF as the main data model to carry localized information between the different automated and manual steps within the localization process, TMX as a format to exchange translation memories, ... the full list of standards can be find here http://www.opentag.com/okapi/wiki/index.php?title=Open_Standards.
This enables more and more open source or free available tools to support certain steps in the localization process without dealing with proprietary and complex formats and conventions.
Few weeks ago the new project "opentm2" released first stable release. Based on IBM TranslationManager this infrastructure claims:
In addition infrastructure helps to automate common tasks in localization and dealing with the mentioned standards are available as open source. The project "Okapi framework" provides a pipeline and several useful steps in localization processes, like
Hopefully the story continues.....
This enables more and more open source or free available tools to support certain steps in the localization process without dealing with proprietary and complex formats and conventions.
Few weeks ago the new project "opentm2" released first stable release. Based on IBM TranslationManager this infrastructure claims:
OpenTM2 provides an open platform for managing translation related activities with enterprise level scalability and quality. It serves as an open yet comprehensive localization tool that provides that integration platform. Ultimately, the goal is to create a cost-efficient and high-quality localization deliverable.Promising and goes into the same direction as GlobalSight mentioned in a previous post: http://trent-intovalue.blogspot.com/2009/05/open-source-tms-globalsight.html.
In addition infrastructure helps to automate common tasks in localization and dealing with the mentioned standards are available as open source. The project "Okapi framework" provides a pipeline and several useful steps in localization processes, like
- read several input formats
http://www.opentag.com/okapi/wiki/index.php?title=Filters - common steps in localization process
http://www.opentag.com/okapi/wiki/index.php?title=Steps - connection to common translation resources (like TMS)
http://www.opentag.com/okapi/wiki/index.php?title=Connectors
Hopefully the story continues.....
Link: Image Search Tools
Short post for useful list of image search tools posted here "7 Image Search Tools That Will Change Your Life". With the help of such tools you might be able to find images and not only search for it.....
DITA - Beyond OT
DITA-OT (Open Toolkit) is the reference implementation to transform DITA source into various output formats. The reference implementation is open source and maintained by increasing community:
The OT using Apache ANT as pipeline infrastructure. Thats OK in general, but there are several shortcomings once you have to integrate or extend the OT implementation for enterprise use cases (see e.g. discussion "Pipeline refactoring", "Diving Into Performance Improvements").
Because DITA-OT is "only" a reference implementation there might be other implementation out there already using a better approach because they started development once the limitation of the OT implementation already known?
Yes there are two available I'm aware of with different key aspects:
The OT using Apache ANT as pipeline infrastructure. Thats OK in general, but there are several shortcomings once you have to integrate or extend the OT implementation for enterprise use cases (see e.g. discussion "Pipeline refactoring", "Diving Into Performance Improvements").
Because DITA-OT is "only" a reference implementation there might be other implementation out there already using a better approach because they started development once the limitation of the OT implementation already known?
Yes there are two available I'm aware of with different key aspects:
- XMLmind DITA Converter (see http://www.xmlmind.com/ditac/what_is_ditac.html)
Key Aspects: Easier use, integration and improved output.
Reality: Bad and monolithic design with hard coded java based pipeline and a small user community. No real advantage compared to existing DITA-OT.
- DITA XProc Pipelines (see https://community.emc.com/docs/DOC-8740)
Key Aspects: greater flexibility, extensibility, portability, performance.
Reality:
Implementation based on XProc (XML Pipeline Language). The design is one step in the right direction and shows the much higher scalability (functional and non functional) of this design, e.g. in case you want to use a extended semantics for validation you can add ISO-Schematron based rules for validation using existing "ISO Schematron schema for DITA" stylesheet and build-in "p:validate-with-schematron" step in XProc and add it into the existing pipeline.
This implementation isn't perfect, it mainly use XProc markup for the implementation which makes the code long and hard to read / maintain. The usage of the right language for each step which is one advantage of XML pipelining isn't consequent implemented in this implementation. Based on currently available XProc Engines (http://tests.xproc.org/results/) this implementation is not yet ready for enterprise but this will change in the near future the more real world examples are available and used in production.
Tuesday, September 21, 2010
Usage of Wolfram|Alpha
Wolfram|Alpha started round about 1,5 years ago with big noise in the IT related press. Their goal to make "systematic knowledge immediately computable and accessible to everyone" (see http://www.wolframalpha.com/about.html) was promising from the beginning.
Up to now they make huge progress and their engine is a sufficient help for everyone using a computer on a daily basis.
Each day you have to answer question requires specific knowledge or algorithm. In many cases you can find specific Websites helping to answer those questions. But having one source, answer those questions, combine the results for as many domains as Wolfram|Alpha do is unique on the Net (AFAIK).
Samples
creating a wizard to convert any given unix timestamp to a given named timezone (specific query shown above) i created the following widget (it takes me 10 min. of my limited time ;-)
Limitation
There are still lots of limitations, e.g. for many knowledge domains only US based sources are available. The combination of knowledge is still limited, a fancy query, like "weather the day Jimmy Hendrix died" does not work for many scenarios right now. But they getting better each day....
Up to now they make huge progress and their engine is a sufficient help for everyone using a computer on a daily basis.
Each day you have to answer question requires specific knowledge or algorithm. In many cases you can find specific Websites helping to answer those questions. But having one source, answer those questions, combine the results for as many domains as Wolfram|Alpha do is unique on the Net (AFAIK).
Samples
- I have to offer 10,000 USD, how much is this in EUR?
Simple type e.g. "convert 10000 USD to EUR" - viola. - I want to arrange a telco with someone in Shanghai on a given date / time?
Simple type e.g. "12.10.2010 16:00 in Shanghai" - viola. - What is the human readable date / time for a given unix timestamp?
Simple type e.g. "unix timestamp 130464000 to cet" - viola. - Infos for a given Website
Simple type e.g. "www.orbeon.com" - What the hack was port 541 used for
Type "port 541" - ...you see what I mean?
creating a wizard to convert any given unix timestamp to a given named timezone (specific query shown above) i created the following widget (it takes me 10 min. of my limited time ;-)
Limitation
There are still lots of limitations, e.g. for many knowledge domains only US based sources are available. The combination of knowledge is still limited, a fancy query, like "weather the day Jimmy Hendrix died" does not work for many scenarios right now. But they getting better each day....
The end of power point....
My previous post (see http://trent-intovalue.blogspot.com/2010/09/end-of-documents.html) shows that a linear sequence of information is not a perfect match for the expression of complex technical content.
That is also true for presentations which are often supported by power point slides. If you already tried to introduce a complex topic and interact with the audience you might now that the right information is always a slide away.
Why all office application re-create power point instead of thinking of more flexible concepts? I'm not really sure. Few days ago i stumbled upon Prezi which tries to goes a different route. The content is organized in a tree of topics and navigation is much more focused on context / audience and concrete situation.
Sample:
That is also true for presentations which are often supported by power point slides. If you already tried to introduce a complex topic and interact with the audience you might now that the right information is always a slide away.
Why all office application re-create power point instead of thinking of more flexible concepts? I'm not really sure. Few days ago i stumbled upon Prezi which tries to goes a different route. The content is organized in a tree of topics and navigation is much more focused on context / audience and concrete situation.
Sample:
Why should you move beyond slides? on Prezi
This application is no silver bullet and not perfect at all but at least shows that different concepts of software based presentations are possible.
The end of documents....
Assumption
If you have to describe any technical subject you are aware that knowledge is hard to express in a straight linear sequence of information topics. In most cases you have to structure the information into information tropics and semantic connection between those => a network of information topics.
Nothing new and a trivial statement, you might say. All semantic concepts are using those principle buildup.
Yes, but why most technical subjects are still using documents or slide shows to express technical subjects?
Those media formats are linear by design. The reader has to follow the one and only linear flow defined by the author of the document. In the best case the author is able to find one of the sufficient linear paths through the network of information and the reader is therefore able to understand the described subject. But even in this case getting the hole picture, identify ways to extend the provided information, embed it to different subject etc. isn't possible or at least requires to re-construct the information tree in mind.
Ask yourself why you are using
Alternatives?
I'm pretty sure that in the future documents will be replaced with applications which providing a way to describe topics as short topics and makes it easy to connect those topics with semantic links (e.g. depends on, contains, .....). A document in this scenario is just one path through the network of information for one particular use case. This kind of application can replace todays word processing software without loosing any important feature.
In the domain of technical writing topic based authoring (e.g. using DITA information architecture) becomes more and more popular. The main use case there is to (re-)use information as much as possible to reduce creation and information maintenance costs. In my point of view that is "only" a important side effect of having the content defined in a much more usable form. Not a linear sequence of information reflecting a group of authors view but as more or less complete set of information topics linked together. The todays results are still linear documents of some format (pdf, online help formats, ....) but that only corroborate the belief that linear documents are mainstream.
Open Issue
The usability of topic based authoring isn't sufficient today. It is more or less a hand crafted creation of enriched information. To dive into the mainstream usability is the most important factor. The creation and linking of information must be at least as easy as using e.g. Mind Mapping tools (e.g. FreeMind, MindManager) combined with easy to use structured topic content editor (e.g. tools like Xopus or XMAX goes into this direction).
There’s more to come? Lets see....
If you have to describe any technical subject you are aware that knowledge is hard to express in a straight linear sequence of information topics. In most cases you have to structure the information into information tropics and semantic connection between those => a network of information topics.
Nothing new and a trivial statement, you might say. All semantic concepts are using those principle buildup.
Yes, but why most technical subjects are still using documents or slide shows to express technical subjects?
Those media formats are linear by design. The reader has to follow the one and only linear flow defined by the author of the document. In the best case the author is able to find one of the sufficient linear paths through the network of information and the reader is therefore able to understand the described subject. But even in this case getting the hole picture, identify ways to extend the provided information, embed it to different subject etc. isn't possible or at least requires to re-construct the information tree in mind.
Ask yourself why you are using
- A word processing software to define project information (requirements, design specification, test specification, ....)
- Power Point to introduce a particular problem domain
- A word processing software to trace a result of a workshop (also known as workshop protocol)
- ....
Alternatives?
I'm pretty sure that in the future documents will be replaced with applications which providing a way to describe topics as short topics and makes it easy to connect those topics with semantic links (e.g. depends on, contains, .....). A document in this scenario is just one path through the network of information for one particular use case. This kind of application can replace todays word processing software without loosing any important feature.
In the domain of technical writing topic based authoring (e.g. using DITA information architecture) becomes more and more popular. The main use case there is to (re-)use information as much as possible to reduce creation and information maintenance costs. In my point of view that is "only" a important side effect of having the content defined in a much more usable form. Not a linear sequence of information reflecting a group of authors view but as more or less complete set of information topics linked together. The todays results are still linear documents of some format (pdf, online help formats, ....) but that only corroborate the belief that linear documents are mainstream.
Open Issue
The usability of topic based authoring isn't sufficient today. It is more or less a hand crafted creation of enriched information. To dive into the mainstream usability is the most important factor. The creation and linking of information must be at least as easy as using e.g. Mind Mapping tools (e.g. FreeMind, MindManager) combined with easy to use structured topic content editor (e.g. tools like Xopus or XMAX goes into this direction).
There’s more to come? Lets see....
Subscribe to:
Posts (Atom)
