Reflections on Graphviz Plugin

Excited and inspired by this collaboration with Ward Cunningham. Here we share a branching story of branching graphs in hopes of revealing federated wiki as a surprisingly powerful medium for learning.

We begin with a visual outline, of sorts. I grow comfortable using Graphviz's dot language for sketching concept maps. That motivated my original work on the graphviz plugin. What an unexpected explosion of connected work has grown from that seed.

strict graph { node [shape=box] "Ward\nCunningham" -- "Wiki Graph DSL" "David\nWoods" -- "Graceful\nExtensibility" { "Learning\nfrom masters" -- "Law of\nFluency" } -- { "Ward\nCunningham" "David\nWoods" "Graphviz" } "Graceful\nExtensibility" -- { "About\nGraphviz\nPlugin" "Wiki Graph DSL" "XP Norms" [label="XP and\nNormative Good"] } "Graphviz" -- "About\nGraphviz\nPlugin" -- "Wiki Graph DSL" -- { "Pattern\nLanguage" "Education\nReform" "XP Norms" "Facilitation\nof Group\nDynamics" } }

Perhaps the best advice I ever got from Dad: "Find people who ski better than you and try to keep up with them. Follow them down a run and turn where they turn. Ride the lift with 'em and ask how they do it. People love to share what they're good at." I generalized that advice and became a professional student of everything, seeking experts everywhere.

Boulder Aikikai is an exceptional place to learn aikido. Founded by Hiroshi Ikeda Shihan, who is world renown among aikidoka. His head student, Tres Hoffmeister, is also Shihan. It is rare to find a dojo with two 7th degree blackbelts. I have had the great privilege to train closely with both of them and numerous other accomplished students for many, many years. I pass on what I learn by teaching aikido at University of Colorado and teaching informs my own learning.

Ikeda Sensei was head student for Saotome Sensei who was among the head students of O'Sensei, Morihei Ueshiba, founder of Aikido. All three exhibit physical genius, learning profoundly subtle, sophisticated, effective movement effortlessly. A decade ago another senior student suggested we all watch Ikeda Sensei closely: "His technique is disappearing. Right now you might still be able to see what he's doing. Soon what he's doing will be as impossible to see as Saotome Sensei."

Woods' Law of Fluency: expertise hides the effort in work. source

I'm new to the Law of Fluency. However, it describes my experience so I already understand it deeply. It can be difficult to study with geniuses. One almost has to study with the students of geniuses in order to have any hope of learning The Magic.

Sufficiently advanced technique is indistinguishable from magic. Unless you have an expert guide who's also closely studying what makes it work.

I have been studying Ward's work for almost 20 years, by way of Extreme Programming, Object Oriented Design, and Design Patterns. I've only worked with his code by way of federated wiki for about five. I've had the great privilege to program with him in person (or by screenshare) for the past two.

I describe my collaboration with Ward on the graphviz plugin as a surprise. But I think that's my own fluency talking. I'm an expert student with deep experience learning from masters in many domains. Programming is both recreation and livelihood. I was paying attention when wandering the federation. Ward includes Graphviz among the tools he has returned to throughout his career.

I've been reflecting recently as to how well the unix shell has held up over time. What else have I used over and over?

Work goes quickly when steps are small, informative, and readily available. We set out to observe, record and organize the best techniques of our everyday developers.

I've mostly used the dot component of the suite of graph rendering programs.

I learned that graphviz had been ported to run in a web browser. I used that as an excuse to learn something about modern HTML5 web components. I combined that exercise with two other areas of interest: wiki on dat and on glitch.com. Working with browser technology is familiar terrain. DAT and Glitch and Web Components were frontiers. I explored.

We have been interested in developing a variant of the Federated Wiki client that stores wiki in dat sites for some time. After some early experiments, a port of the existing client was made during 2018.

Here we demonstrate using Glitch.com to host wiki for authors.

Almost as soon as I'd built the wiki plugin, Ward took an interest in building a domain-specific language (DSL) for constructing diagrams from links between federated wiki pages. Graphviz is a tool he's returned to throughout his career and now it is conveniently plugged into wiki. The results are surprising regardless of the law of fluency.

Ward is also an expert learner who also shares his explorations freely. Here's a page where he talks through his thought process while refining the DSL:

Here we start with as specific algorithm that is not large but has already defied an attempt at refactoring. We'll abstract it to pseudo-code and then suggest markup keywords that are both a simple and powerful replacement. See Growing Regions as Hypertext

One of Ward's many collaborators is Michael Mehaffy, an architect and student of Christopher Alexander who carries on the tradition of pattern language in the built environment. Ward has been helping provide a wiki companion to a printed book. Michael is an expert in the modular writing style of pattern language. That lends itself well to both wiki and the dynamically generated diagrams.

What force unites these patterns?

Neighborhood Patterns. source

Ward has also been collaborating with Thompson Morrison in an ambitious effort to bring agile methodologies to public education. Thompson has been collecting reflections in wiki for a while in hopes of discovering patterns that might apply to other public schools. He now adds graphs to help guide his readers while offering branches for their own exploration. The layers of learning in this story are especially rich.

There are many schools that model a creative, learning environment. ... The problem is that about 90% of our students in this country are in traditional public schools. The challenge of transforming a public school from a conventional teaching institution to a dynamic learning organization is far more difficult than simply building a new one from scratch. There are many internal and external barriers to change that challenge almost every step. It is a hard road. But it is an essential one.

Challenge of Transformation. source

A third collaborator Ward has supported with federated wiki is Tree Bressen who created a deck of cards for sharing patterns in group dynamics and facilitation. Ward converted the PDF document from which the cards were printed into wiki pages which are now adorned with graphs. The content as well as the medium are richly reinforced by each other.

Discover coherence and shared meaning to move toward convergence. By gathering knowledge and teasing out the threads of common understanding, you can arrive at consensus and clear outcomes.

Inquiry & Synthesis. source

Last, but not least, Ward and I have been studying David Woods' Theory of Graceful Extensibility with several of our colleagues at New Relic. Ward has revisited an analysis of Extreme Programming, breaking it into separate pages and adding annotations. The result lets us compare and contrast Ward's analysis with the groupings of proto-theorems in Graceful Extensibility.

Extreme Programming (xp) prescribes a dozen practices that reinforce each other so as to allow teams to make software development decisions. We examine the distribution of responsibilities required for, and means to arrive at, good decisions within this framework.

Inquiry & Synthesis. source

We stop here without an ending. This story, like the medium it explores, branches too widely, too deeply, for simple conclusion. Let the learning continue.

.

reflections-on-graphviz-plugin