Adj framework release


This is an informal announcement of the first public release of the open source Adj framework.

Adj commands modify SVG.

One significant feature is “relative constraints”.

The original purpose of the Adj framework has been to facilitate creation and long-term maintenance of system diagrams. Adj has been designed specifically for diagrams of large complexity. Because of its general nature, other uses may be possible.

There has been working code for some time and there is a user guide.

You could be using it. The only file you really need is adj.js. Free of charge, forever.

You could improve on it, if so inclined.

Read the rest of this entry »

Why I started the Adj framework


I’d not have spent time making the Adj framework unless I badly wanted it – and couldn’t get it.

As a prerequisite, I’d not want it unless it were an essential communication tool for work I’m doing.

Here is a little exploration into whether this work is part of a tradition, how much I am building on the work of others, whether I am doing this to have means to express myself, whether this is about enabling others.

Read the rest of this entry »

Adj with XML syntax


The number one question on release of Adj was “why aren’t the commands in XML elements, why in comments?”

Adj commands are in XML elements now, in a separate namespace. Read its documentation or get it. Free of charge, forever.

I had considered that option previously, but then hadn’t been able to satisfy concerns about compatibility. This time, after getting more feedback, we found encouraging words regarding extensibility by using XML namespaces, in the SVG standard documentation SVG 1.1 2nd ed 23 Extensibility.

Read the rest of this entry »

Adj features galore


This is an announcement of new features of the open source Adj framework, which is at version 3.5.6.

The original announcement of Adj still has relevant information which is not being repeated here. So does the version 2 announcement.

For a formal reference, there is the user guide.

What is new:

Writing SVG files back to disk


If you have been around SVG, XML, browsers, and computer graphics for a while, you may have noticed an upsetting dichotomy:

For SVG, browsers support DOM and JavaScript. Pretty well by now, in 2013. Browsers aren’t written in JavaScript, but they can run JavaScript.

SVG editors, however, such as Inkscape, Adobe Illustrator, etc., are written in anything but JavaScript. There may be performance reasons, or a least there may have been performance reasons. SVG editors, for all practical purposes, cannot run JavaScript.

Read the rest of this entry »

The duality of a graphics library


Most any machine one makes or designs one can get so involved in that one is preoccupied with the making or the workings of that machine, one could forget there was a purpose.

Having worked to make Adj viable, in several ways, now this very moment I am not directly facing any of the enterprise software design problems that originally made me want to have Adj. I am sure some will occur sooner or later, complexity is here to stay – just try to understand your CPU chip, all its transistors, how it works, or how it is made.

This made me think though, how do others see Adj? Is Adj

  • something to use, or
  • something to develop?

Read the rest of this entry »

Non-unique IDs in markup language


A prevalent pattern is for IDs to be unique. More than one document has been written about it.

As an exception from that rule, a practical use case for and an implementation of non-unique IDs in markup language have been provided and documented within the open source Adj framework.

Read the rest of this entry »