User talk:JamesCrook/Interactive Diagrams

Hi James,

Well done on your initiative. I'd be careful about inventing a new language as there are already many around. A graphical (block-based) one is especially difficult to diff or print. Do you intend to create an IDE?

Perhaps I'm not thinking ambitiously enough, but I've found many things SVG can already do without Javascript. It may just be a matter of writing a wrapper to make them easier to develop. Here are some examples:


 * 1) Fading things not immediately relevant e.g. on the Metabolic Metro Map
 * 2) [ On hover only using CSS] (widely supported)
 * 3) [ On hover and click using SMIL] (not on IE)
 * 4) Interactive timelines
 * 5) [ On hover only using CSS] (widely supported)
 * 6) [ On hover and click using SMIL] (not on IE)
 * 7) [ Simple 3D viewer] (uses the same technique as 2.1 above)
 * 8) [ Enhanced tooltips]

Some things I was unable to do:


 * 1) Crosshairs on a graph to let values be easily read without having a tooltip for every possible pointer position.
 * 2) Real zoom on different parts of diagrams (can be faked using multiple renderings)
 * 3) Real 3D graphics (can be faked using multiple views)
 * 4) Drag and drop

More of my experiments are at user:cmglee/Dynamic_SVG_for_Wikimedia_projects

Cheers, cm&#610;&#671;ee&#9094;&#964;a&#671;&#954; 23:14, 30 June 2019 (UTC)

P.S. Please me when you reply as I may not see it. And do you plan to go to Wikimania 2019?

Thanks for your comments!

It is impressive what you have done using existing capabilities. The kind of wrapper you talk of would be good.

I've written some partial answers on the main page. I am going to think more about exactly why compiled textual languages need IDEs and interpreted block based languages need little more than a visual editor. Collaborative Wikipedia IS different to a solo Scratch project so some of the pressures for a true IDE may apply because of that.

Diff of diagrams is in general a hard problem, which I am not solving. I think the most procedural parts will diff nicely, because of the equivalence between blocks and text. So why use blocks at all? Because (a) they visibly reduce the barrier to programming for beginners. (b) assembling certain diagrams by clicking blocks together is a very natural way to build diagrams from reusable components.

I don't plan to be at Wikimania in Stockholm, but do plan to be in Cambridge in November 2019 for an Audacity meet up.

JamesCrook (talk) 10:02, 10 July 2019 (UTC)


 * Thanks! If the Audacity meet up is open to the public, please send me a link.


 * It'd be good to see you there. I'm not too familiar with developing full-fledged web apps, especially graphical ones, but can provide help within my ability. I can contribute more on the SVG and Javascript side. [ Here's an example SVG] with various bits commented.


 * Cheers, cm&#610;&#671;ee&#9094;&#964;a&#671;&#954; 11:28, 10 July 2019 (UTC)