Personal Hypertext Report #10

With the change tracking text editor completed in its first stage, I can imagine that a lot of people can’t make a lot of use with the XML output it produces. In order to extend it to a full writing system, I currently look into programming a „change instruction navigator“, which is planned to have a rich editor control for the additions to be highlighted in green and the deletions to be highlighted in red. Two buttons at the bottom should allow the navigation backwards and forwards in history. There could be an option to jump to a specific instruction, and another button (optional) to select a specific version. On calling the program, one could immediately jump to a specific change instruction.

I think I’ll keep a stream object on the file which will lock it, and realized that the Java StAX API doesn’t allow to move backwards, so I’m looking into developing „Reverse StAX“, and to make things easier, I try to start a C++ reference implementation to later port it to Java, based on my existing CppStAX code. This will delay work on the navigator, but I’m not willing to keep all the instructions in memory, so I hope that it is worthwile to invest into more powerful XML tooling.

This text is licensed under the GNU Affero General Public License 3 + any later version and/or under the Creative Commons Attribution-ShareAlike 4.0 International. See the history of how this text developed.

Personal Hypertext Report #9

Finally, I’ve managed to get the „change_tracking_text_editor_1“ capability working reliable enough for beta testing and prepared a downloadable package: hypertext-systems.org/downloads.php. Java 1.6 or higher is required. A description of the tool/capability can be found in this video.

From here, plenty of very interesting options to extend it present themselves, but I find important to point out that in my opinion, tracking the development of a text is fundamental for a hypertext system and serious writing on a computer. Without it, versioning and revision can only be done retrospectively with heuristical diffs as after-the-fact analysis, which can be wrong and lacks information like the order of changes or changes that later got overwritten again. With the text’s history recorded, every individual character as the most atomic element can be addressed with a higher resolution than with indifferent, agnostic diff/patch blocks.

For a hypertext system, one has to ask where the texts it’s supposed to manage come from. If they’re from old sources, only compiled, merged, consolidated versions without record of the history of their writing may be available, but for new texts I write myself today, I don’t want to immitate the old constraints imposed by physical production and instead make full use of the potential of digital. With writing covered for now (although very primitive initially), I can continue with tools/capabilities for resource management, publishing and reading, to eventually arrive at an integrated system for more convenience than using the capabilities individually.

Besides the prototype of a hyperglossary capability (video) and WordPress post retriever (with subsequent conversion to different target formats), the „Change Tracking Text Editor“ is the only other contribution I was able to prepare for the 50th anniversary of Douglas Engelbart’s Great Demo while loosely participating in the Doug@50 effort during the year 2018.

Related books I’ve read while working on the editor: „Track Changes“ by Matthew Kirschenbaum and „The Work of Revision“ by Hannah Sullivan.

This text is licensed under the GNU Affero General Public License 3 + any later version and/or under the Creative Commons Attribution-ShareAlike 4.0 International. See the history of how this text developed.