This document provides an overview of installing and using the DITA Open Toolkit to generate output from DITA content. It discusses downloading and installing the toolkit, testing the installation, generating output using Ant scripts, customizing the output by creating plugins, and specifying custom CSS. The presentation encourages best practices like creating plugins to make changes, keeping documentation of changes, and using the toolkit as intended by not modifying core files. It promotes further exploration of related technologies and keeping modifications within the plugin folder.
Content reuse is one of the main “selling points” of DITA. Without a solid strategy and tracking method, however, reuse is inconsistent and neither a time nor money saver. With the proper planning, content reuse is indeed one of the greatest benefits of DITA. This presentation discusses some of the ways that groups new to DITA can lay a solid foundation for reuse. It describes some of the ways to inventory content to discover opportunities for reuse. It also discusses the importance of deciding early on what granularity of reuse is going to be implemented and mentions some of the caveats of reused content, especially in translation. Finally, the presentation stresses the importance of tracking reused content and discusses several methods of doing so.
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016IXIASOFT
Presented by Alex Kozaris, IXIASOFT IT Specialist at the IXIASOFT User Conference 2016.
Murphy’s Law says that if something can go wrong, it will. But don’t let Murphy tell you what to do; instead come to this presentation where Alex will take you through effective troubleshooting procedures for the issues that he commonly sees with his extensive experience of solving issues involving the IXIASOFT DITA CMS.
Friction Logging and Internal Advocacy, DevRel/Asia 2020Emma Haruka Iwao
One of the core functions of DevRel is to advocate for developers and make developer experience frictionless. We, DevRel at Google, use friction logs to create and provide structured feedback for products for different scenarios and help product teams deliver consistent experience across multiple products and features. In this talk, you will learn: - What is a friction log - Working as an internal outsider - How to write a friction log - How friction logs are different from bugs - Continuing conversations with product teams The goal is to be able to confidently write cross-product, experience-focused feedback.
Content reuse is one of the main “selling points” of DITA. Without a solid strategy and tracking method, however, reuse is inconsistent and neither a time nor money saver. With the proper planning, content reuse is indeed one of the greatest benefits of DITA. This presentation discusses some of the ways that groups new to DITA can lay a solid foundation for reuse. It describes some of the ways to inventory content to discover opportunities for reuse. It also discusses the importance of deciding early on what granularity of reuse is going to be implemented and mentions some of the caveats of reused content, especially in translation. Finally, the presentation stresses the importance of tracking reused content and discusses several methods of doing so.
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016IXIASOFT
Presented by Alex Kozaris, IXIASOFT IT Specialist at the IXIASOFT User Conference 2016.
Murphy’s Law says that if something can go wrong, it will. But don’t let Murphy tell you what to do; instead come to this presentation where Alex will take you through effective troubleshooting procedures for the issues that he commonly sees with his extensive experience of solving issues involving the IXIASOFT DITA CMS.
Friction Logging and Internal Advocacy, DevRel/Asia 2020Emma Haruka Iwao
One of the core functions of DevRel is to advocate for developers and make developer experience frictionless. We, DevRel at Google, use friction logs to create and provide structured feedback for products for different scenarios and help product teams deliver consistent experience across multiple products and features. In this talk, you will learn: - What is a friction log - Working as an internal outsider - How to write a friction log - How friction logs are different from bugs - Continuing conversations with product teams The goal is to be able to confidently write cross-product, experience-focused feedback.
Web development, from git flow to github flowCaesar Chi
software development, website development, we move develope way from git flow to github flow.
what is github flow's advantage and who we change it, check it out.
Docman - The swiss army knife for Drupal multisite docroot management and dep...Aleksey Tkachenko
Introducing Docman (available on github, alpha state, but used already in production environment): the Swiss Army Knife for Drupal multisite docroot management and deployment. Docman acts as a layer between your docroot – usually a git repository somewhere, but not limited to it– and multiple vendors working on different websites using your standards and predefined sets of modules.
Provides an overview of the DITA 1.3 use of RELAX NG for all DITA vocabulary and then describes how to use the RELAX NG-to-DTD and XSD converter plugin for the Open Toolkit to generate your own DTD document type shells and vocabulary and constraint modules
NWDUG's unconference talk about deployer which can be downloaded at https://deployer.org. This presentation goes into how to use deployer in Drupal 8. The talk also described how to make your own custom tasks.
Duke Docker Day 2014: Research Applications with DockerDarin London
This talk was presented at the first annual Duke Docker Day presented by the Duke Office of Information Technology. It describes a reproducible analysis pipeline using Docker images
Von Entwicklern zu tiefst verachtet und in vielen Situationen dennoch heiß geliebt, ist eine ausführliche Dokumentation des Quellcodes. Grade, wenn es um die Anpassung und/oder Erweiterung von legacy Code geht, wird der Ruf nach Dokumentation laut.
PhpDocumentor ist eines von vielen Tools, die uns Entwicklern das dokumentatorische Leben etwas leichter machen können. Es scannt den Quellcode nach Annotationen, Vererbungen, etc. und generiert strukturierte Dokumentationen daraus.
Dieser Vortrag stellt PhpDocumentor im Detail vor und geht nicht nur auf die zahlreichen Möglichkeiten dieses Tools ein, sondern zeigt detailliert anhand von Beispielen, wie diese optimal eingesetzt werden können.
The most hated thing a developer can imageine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
Take care of hundred containers and not go crazyHonza Horák
Imagine you have four different databases, five popular languages, and six other interesting technologies, that you want to put into container image, make them nicely run in OpenShift, and support for few years. However, you soon realize that you want to support not only one version of the particular technology, and the images are not based on one distribution only. Then you easily find yourself developing and maintaining hundred of container images or more.
Something similar happened to us and I admit we did not know all the tricks from the first minute. Come and hear what issues we met during the way, so you do not repeat them as well. We will cover upstream/downstream design, de-duplication of the sources from more perspectives, automation based on Jenkins, and of course testing.
An introduction to using Docker Engine. We'll containerize a very simple web application and then talk about some easy ways to try out Docker Engine in your own way.
Docker helped to bring container technologies to the masses. Already, giants joined the movement, either claiming long time usage (like Google) or trying to catch up momentum (like Microsoft). This talk was about discovering docker and its ecosystem, from a devops and practical point of view. My slides presented at Anchor Coworking on December 27th, 2014.
The most hated thing a developer can imagine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
Entering new language markets requires more than just translation. To succeed, you must provide the same quality product or service to each market-a unified, localized customer experience. One team or department cannot do this alone. Sales, marketing, product development, support, training, and more all need to work together and share their area expertise.
Going global requires a localization strategy. For that strategy to succeed, people from across your organization need to collaborate and begin thinking globally. This session focuses on the formation of such a strategy. You will learn:
What content and information assets are needed
Who to involve and at what levels in your localization strategy
How to identify and harness the strengths of your teams and departments
How to successfully manage the localization effort (how to herd cats)
What pitfalls await and how to avoid them
Best practices for a healthy and effective localization strategy
Presented by Bill Swallow
Web development, from git flow to github flowCaesar Chi
software development, website development, we move develope way from git flow to github flow.
what is github flow's advantage and who we change it, check it out.
Docman - The swiss army knife for Drupal multisite docroot management and dep...Aleksey Tkachenko
Introducing Docman (available on github, alpha state, but used already in production environment): the Swiss Army Knife for Drupal multisite docroot management and deployment. Docman acts as a layer between your docroot – usually a git repository somewhere, but not limited to it– and multiple vendors working on different websites using your standards and predefined sets of modules.
Provides an overview of the DITA 1.3 use of RELAX NG for all DITA vocabulary and then describes how to use the RELAX NG-to-DTD and XSD converter plugin for the Open Toolkit to generate your own DTD document type shells and vocabulary and constraint modules
NWDUG's unconference talk about deployer which can be downloaded at https://deployer.org. This presentation goes into how to use deployer in Drupal 8. The talk also described how to make your own custom tasks.
Duke Docker Day 2014: Research Applications with DockerDarin London
This talk was presented at the first annual Duke Docker Day presented by the Duke Office of Information Technology. It describes a reproducible analysis pipeline using Docker images
Von Entwicklern zu tiefst verachtet und in vielen Situationen dennoch heiß geliebt, ist eine ausführliche Dokumentation des Quellcodes. Grade, wenn es um die Anpassung und/oder Erweiterung von legacy Code geht, wird der Ruf nach Dokumentation laut.
PhpDocumentor ist eines von vielen Tools, die uns Entwicklern das dokumentatorische Leben etwas leichter machen können. Es scannt den Quellcode nach Annotationen, Vererbungen, etc. und generiert strukturierte Dokumentationen daraus.
Dieser Vortrag stellt PhpDocumentor im Detail vor und geht nicht nur auf die zahlreichen Möglichkeiten dieses Tools ein, sondern zeigt detailliert anhand von Beispielen, wie diese optimal eingesetzt werden können.
The most hated thing a developer can imageine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
Take care of hundred containers and not go crazyHonza Horák
Imagine you have four different databases, five popular languages, and six other interesting technologies, that you want to put into container image, make them nicely run in OpenShift, and support for few years. However, you soon realize that you want to support not only one version of the particular technology, and the images are not based on one distribution only. Then you easily find yourself developing and maintaining hundred of container images or more.
Something similar happened to us and I admit we did not know all the tricks from the first minute. Come and hear what issues we met during the way, so you do not repeat them as well. We will cover upstream/downstream design, de-duplication of the sources from more perspectives, automation based on Jenkins, and of course testing.
An introduction to using Docker Engine. We'll containerize a very simple web application and then talk about some easy ways to try out Docker Engine in your own way.
Docker helped to bring container technologies to the masses. Already, giants joined the movement, either claiming long time usage (like Google) or trying to catch up momentum (like Microsoft). This talk was about discovering docker and its ecosystem, from a devops and practical point of view. My slides presented at Anchor Coworking on December 27th, 2014.
The most hated thing a developer can imagine is writing documentation but on the other hand nothing can compare with a well documented source code if you want to change or extend some code. PhpDocumentor is one of many tools enabling you to parse the inline documentation and generate well structured and referenced documents. This tallk will show you how to get the most out of phpDocumentor and shall enable you to write fantastic documentation.
Similar to Down the Rabbit Hole: Getting Started with the DITA Open Toolkit (20)
Entering new language markets requires more than just translation. To succeed, you must provide the same quality product or service to each market-a unified, localized customer experience. One team or department cannot do this alone. Sales, marketing, product development, support, training, and more all need to work together and share their area expertise.
Going global requires a localization strategy. For that strategy to succeed, people from across your organization need to collaborate and begin thinking globally. This session focuses on the formation of such a strategy. You will learn:
What content and information assets are needed
Who to involve and at what levels in your localization strategy
How to identify and harness the strengths of your teams and departments
How to successfully manage the localization effort (how to herd cats)
What pitfalls await and how to avoid them
Best practices for a healthy and effective localization strategy
Presented by Bill Swallow
Developing training websites in multiple languages with (mostly) open-source ...Scriptorium Publishing
This case study shows how Scriptorium Publishing created the free DITA learning website LearningDITA.com by combining the DITA learning and training specialization, GitHub, XSLT, video, and WordPress—and how parson AG adapted those technologies to develop the German site, LearningDITA.de.
Webcast: Balancing standardization against the need for creativityScriptorium Publishing
Structured content lets you enforce standards and ensure consistency, but how do you accommodate the creative aspects of content creation and delivery in a structured workflow?
In short case studies, Alan Pringle shows you how companies balance the creative requirements against structural standards. Topics include: designers communicating layout specifications to programmers for automated publishing, flexibility in layout as a critical business need, and the true costs of highly customized layouts and structures.
Sarah O'Keefe presentation, first delivered at tcworld 2015, November 2015, in Stuttgart, Germany. Discusses how to unify content development across technical communication, marketing, and technical support organizations.
Content Strategy Triage: Who lives? Who dies? Who do you fight to save?Scriptorium Publishing
First delivered at LavaCon 2015 in New Orleans. Sarah O'Keefe discusses how to use triage principles to prioritize content strategy efforts. This is the 20-minute keynote version.
First delivered at LavaCon 2015 in New Orleans. Sarah O'Keefe discusses how to use triage principles to prioritize content strategy efforts. This is the 60-minute breakout session.
Content strategy has seen an interesting evolution of focus, from authoring and publishing smarter to embracing social media and personalization. The Internet of Things adds another layer of complexity: event-triggered communication. Devices and services can (and do) talk to each other in fragments, but at some point information about those interactions need to be organized and communicated in a human-friendly form. Proper localization planning is critical in this model. In this session we will look at content development and localization practices for these scenarios.
Slide deck for Sarah O'Keefe's presentation from LocWorld Berlin, first delivered on June 4, 2015. Discusses the need for mature localization strategy to integrate with customer journey.
Implementing a content strategy often involves overcoming significant technological and cultural challenges, but some of these challenges are so scary, so heinous, that they earn a place among the undead because they Just. Won’t. Die!
In this webcast, which debuted at Lavacon 2014, Bill Swallow will take a look at these nightmare-inducing monsters—from unrelenting copy-and-paste zombies to life-draining, change-avoiding vampires—and show you what can be done to keep your content strategy implementation from turning into a fright fest.
Our popular trends panel is back for 2015! Alan Pringle, Bill Swallow, and Gretyl Kinsey discuss what’s happening in the world of content strategy. Sarah O’Keefe moderates.
In this presentation from tcworld 2014, Sarah O'Keefe and Alan Pringle describe the adjustments needed to deliver content developed in Europe into the US market.
Implementing a content strategy often involves overcoming significant technological and cultural challenges, but some of these challenges are so scary, so heinous, that they earn a place among the undead because they Just. Won’t. Die! In this session, Bill Swallow will take a look at these nightmare-inducing monsters—from unrelenting copy-and-paste zombies to life-draining, change-avoiding vampires—and show you what can be done to keep your content strategy implementation from turning into a fright fest.
In this webcast recording, Sarah O'Keefe discusses the future of content strategy.
The purpose of content strategy is to support your organization's business goals. Content strategists need to understand how content across the organization—marketing, technical, and more—contributes to the overall business success.
The Bottom Line: Globalization and the Dependence on Intelligent ContentScriptorium Publishing
What is intelligent content's role in global markets? How does the content lifecycle affect business results? Though we are often concerned with cost of translation when developing content for global markets, traditional cost reduction practices (translation memory, reduced rates) simply aren't enough. Instead, we need to establish a profitable revenue stream by delivering quality product in global markets. By employing intelligent content with attention to globalization, we can ensure that the information we produce meets market and delivery demands in a timely manner. Delivered by Bill Swallow at the Intelligent Content Conference, February 2014.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Climate Impact of Software Testing at Nordic Testing Days
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit
1. Down
the
Rabbit
Hole:
Getting
Started
with
the
DITA
Open
Toolkit
Sarah O’Keefe
Scriptorium Publishing
Wednesday, February 22, 12
2. Sarah
O’Keefe
❖ Founder and president, Scriptorium
Publishing
❖ Content strategy for
technical communication
❖ Interested in collision of
content, publishing, and
technology
Wednesday, February 22, 12
3. Overview
❖ Installing the DITA Open Toolkit
❖ Generating output
❖ Customizing output
Wednesday, February 22, 12
5. Installing
the
OT
❖ Download from dita-ot.sourceforge.net
❖ Use version 1.5.4 for today
❖ DITA-OT1.5.4_full_easy_install_bin.zip
❖ USB drives contain DITA-OT1.5.4,
unzipped for your convenience
Wednesday, February 22, 12
6. Best
practices
❖ Set up in top-level directory
❖ Do not use spaces in file names or
directory names
❖ Use a stable build and not the
development builds
Wednesday, February 22, 12
8. Testing
your
installation
❖ Open a command window
❖ Navigate to your DITA OT folder
❖ Run
❖ ./startcmd.sh (UNIX)
❖ startcmd.bat (Windows)
❖ ant -f build_demo.xml
Wednesday, February 22, 12
9. $ cd /DITA-OT1.5.4
$ ./startcmd.sh
DITA_HOME environment variable is
empty or not set
You need to edit the
startcmd.sh file.
Wednesday, February 22, 12
10. #!/bin/sh
# This file is part of the DITA Open
Toolkit project hosted on Add this line.
SPACES MATTER!
# Sourceforge.net. See the accompanying
license.txt file for
# applicable licenses.
# (c) Copyright IBM Corp. 2006 All
Rights Reserved.
DITA_HOME="/DITA-OT1.5.4"
if [ "${DITA_HOME:+1}" != "1" ]; then
echo "DITA_HOME environment variable
is empty or not set";
exit 127;
fi
...
Wednesday, February 22, 12
11. $ ./startcmd.sh
$ ant -f build_demo.xml
Buildfile: build_demo.xml
prompt.init:
[....]
prompt.output:
[echo]
[echo] output in the out directory
[echo]
[echo] Before rebuilding, please
delete the output or the directory.
BUILD SUCCESSFUL
Total time: 33 seconds
$ “Your OT is installed
and working.”
Wednesday, February 22, 12
12. It
gets
better.
(No,
it
doesn’t.)
flickr: wadem
Wednesday, February 22, 12
14. Generating
output
Theory
ant -f build.xml
-Dargs.input=input-ditamap
-Doutput.dir=output-folder
-Dtranstype=transformation-type
Example
ant -f build.xml -Dargs.input=C:/DITA-
OT1.5.4/doc/userguide.ditamap
-Doutput.dir=C:/out
-Dtranstype=xhtml
Wednesday, February 22, 12
16. flickr: Robobobobo
Best
practice:
Create
a
plugin
Wednesday, February 22, 12
17. Creating
a
plugin
❖ Create a folder for the plugin
❖ Set up the plugin.xml and
conductor.xml files
❖ Verify the installation with a tiny
customization
Wednesday, February 22, 12
18. Creating
a
folder
for
the
plugin
❖ Plugins go in the OT’s plugins directory.
❖ Naming convention is:
❖ <your domain>.<your plugin>
❖ com.scriptorium.myhtml
Wednesday, February 22, 12
19. Set
up
plugin.xml
❖ Copy from org.dita.xhtml folder
❖ Simplify
<plugin id="com.scriptorium.myhtml">
<feature extension="dita.xsl.xhtml"
file="xsl/myxsl.xsl"/>
</plugin>
Wednesday, February 22, 12
20. Set
up
conductor.xml
❖ Copy from org.dita.xhtml
❖ No changes
Wednesday, February 22, 12
22. Integrate
your
changes
$ ant -f integrator.xml
Buildfile: integrator.xml
lax:
integrate:
BUILD SUCCESSFUL
Total time: 1 second
$
Wednesday, February 22, 12
23. Test
the
new
plugin
❖ Same command as before
$ ant -f build.xml -Dargs.input=/DITA-
OT1.5.4/doc/userguide.ditamap -Doutput.dir=
/out -Dtranstype=xhtml
Wednesday, February 22, 12
24. More
XSL
customization
❖ Copy template from dita2xhtml.xsl (or
referenced files) into myxhtml.xsl
❖ Modify as you like
Wednesday, February 22, 12
25. Specifying
custom
CSS
flickr: ffg
Wednesday, February 22, 12
26. Specifying
custom
CSS
❖ Set up your own build file
❖ Fix file paths
❖ Point build file at the custom CSS you
want
Wednesday, February 22, 12
27. Creating
a
custom
build
file
❖ In samples/ant_sample, locate
sample_xhtml.xml
❖ Put a copy in the root OT folder and
rename it: build_myxhtml.xml
Wednesday, February 22, 12
28. Fix
the
file
paths
in
custom
build
file
<property name="sample.output.dir"
value="/out/sample"/>
<property name="css.source.dir"
location="${dita.dir}/plugins/
com.scriptorium.myhtml/css"/>
Wednesday, February 22, 12
29. Optionally,
modify
other
settings
❖ args.input to specify the ditamap to
process
❖ args.css for the CSS file name
❖ args.csspath for the CSS directory path
Wednesday, February 22, 12
30. Run
custom
build
and
admire
the
results flickr: tompeters1994
Wednesday, February 22, 12
31. Run
custom
build
and
admire
the
results
❖ Arguments are not needed if you
customized the build file with your
exact settings
$ ant -f build_myxhtml.xml -Dargs.input=/
Users/okeefe/Documents/CSinTC/csintc.ditamap
-Doutput.dir=/out -Dtranstype=xhtml
Wednesday, February 22, 12
32. flickr: jpockele
Beyond
the
basics
Wednesday, February 22, 12
33. You
will
need…
❖ XHTML or HTML5
❖ CSS
❖ Apache Ant
❖ XSLT
❖ XML DTDs
❖ XSL-FO (for PDF customization)
Wednesday, February 22, 12
34. Take
care
of
formalities
flickr: Carly & Art
Wednesday, February 22, 12
35. Keep
changes
in
plugins
folder
and
custom
build
files
❖ Do not change core Open Toolkit
❖ Use code comments extensively
Wednesday, February 22, 12