2013/Custom Markup for Working and Writing
We show how both doing work and writing about work are enhanced by special purpose markup hosted by federated wiki plugins.
Speaker: Ward Cunningham
Return to this session's details
Federated Wiki - Plugins, recent experience with plugins
Wikis are great for recording how to work, but not a great place to DO work [what about learning?]
Can talk about time off policy, but not register it. Wiki is first and foremost a document
Versions of data entry, flow model - powerful model but still breaks down routinely (feels fragile, hard to debug) - pattern language (federated wiki)
Bunch of wiki pages, can come from different sites, can drag things between them, can put things on there that communicate between those pages (arrows are photoshopped [thought: why? can we make this a feature to show 'flow' on the page?]
You can go in there and do work, having to do with design, wiki handles calculation
Wiki pages federated are a pipeline, like unix pipeline, casual computing.
Story pipe in unix, K+R boss promoted for a decade before unix pipe, talked them into pipe.
Pipe as unit of wiki composition.
Federated wiki. Wiki shared space on a disk through a web interface. Fed is reverse, shares between a bunch of disks through a web interface.
Instead of zooming in, zooming out. Calculation happens, pages from one site over another mixed together, here is some data, goes into calculator How to write a calculator in this environment. Info moving between sites, pulled together in your browser to some visualization. Back and forth is important.
here is detail. Each Paragraph has a different markup. Down below, computing values, specialized markup. Put numbers where you want numbers, names for assignments. Code behind 'verbs' is very simple, direct mapping of language. Look up verb, do the thing.
Has to be super simple.
HTML markup was nice. This markup is for DOING things.
Routine reached back into wiki.
Wiki refers to computation, computations refer back to the wiki.
Looking at sites from different directions look different. [blending of data, focused points of view] like OOP overriding.
Want to support communities of interest that overlap.
Different entities cooperating.
Multiple communities. Manufacturesrs, data journalists ngos and other advocates science the public suppliers etc
Today - how we take words like "SUM" and "PRODUCT" and give them meaning. Dispatching.
This idea came from Ada Lovelace - analysis of analytical engine - notes Observation - this isn't about calculating - this is about representing anything
"by the word operation [on punch cards], we mean any process which alters the mutual relation of two or more things … and would include all subjects in the universe" ALL subjects in the universe.
Bytecode dispatch - interpret one language on top of a conventional computer
Dispatch - instruction decoding into a virtual machine by jumping to code with meaning
CODE with MEANING
out-of-the box computing company ootbcomp.com http://ootbcomp.com/ - videos - stanford talk, new architecture for computing new feature - instructions - formatting and instructions (slides) interesting - two caches for decode to exec - math in one cache, else in other no meaning in cache, meaning when it passes through the decoder, gives the bytes meaning
federated wiki - same thing. Browser has meaning, socket to disk, remote devices, Reference - Talk online - nodepdx http://video.nodepdx.org/speaker/21/ward-cunningham "My sensors love node"
Can attach something to my server, not interfere with other server. Reinterpretation and meaning on BOTH sides, made by markup
Example fed wiki page Special code - when revised send report Schedule Double click for markup Caps words meaning to dispatcher, rest is data.
Aza Raskin - Algorithm ink http://azarask.in/projects/algorithm-ink/ Simple algorithm rules, draws picture surrounding interpreter whole framework for tools. Wiki already does the sharing. What wiki doesn't do, is have the calculator for images.
We want to put this in a wiki plugin. words run routines through dispatching, state tracked strategy on about page [docs and code in one environment, nice!]
Live coding example
[build status talking through stages is great. "client" "test" "plug-ins" "done" (or failed) ]
all on github as smallest federated wiki https://github.com/WardCunningham/Smallest-Federated-Wiki
Continued live debugging, coding (see video)
example command drawing dot divs over page
various verb commands, emit, fetch, mark, pretty, bind, compile, apply, emit, fork, [drawing: ] go, left, right
The federated wiki: http://fed.wiki.org/view/welcome-visitors
morse code forever
Qs: Federated wiki - and idea of doing stuff
Are those separate ideas? two separate ideas in the sense that a computer is good for computing and communicating. You have dispatch and connection. Reinvented computing in a way that is CC share alike, community. Community that wasn't present at the beginning of the web.
Q: Little languages - sort of like mcarthys lisp, not general. Reason you are writing little languages? Why not general? If I had just one, sure, general. But we have many languages, just enough to get it to do what I need it to do. Does just enough, can pass them around. Programming in a general sense, can't resist temptation to pour more into that program. Small is beautiful philosophy. One thing I want to bring to wiki is dispatching.