{"about-federated-wiki":{"title":"About Federated Wiki","story":[{"type":"paragraph","id":"92d3cd023c11efd2","text":"We remain excited about this platform and have become increasingly confident that it embodies important new ideas. We will explain."},{"type":"paragraph","id":"3a6b0f4f179e9372","text":"In public we say federated wiki to distinguish our work from other wiki implementations. Here when we say wiki we mean this wiki, federated wiki."},{"type":"paragraph","id":"8769d1d11dab3003","text":"We write in English on laptop computers. We aspire to be in all languages on all platforms but have always had something more exciting to do first. Forgive us."},{"type":"markdown","id":"54dd46484881afd2","text":"# Basics"},{"type":"paragraph","id":"0770e8a2b8b33024","text":"Click links to open new pages. Use the browser's back button to go back."},{"type":"paragraph","id":"02bb08d746443229","text":"Use arrow keys to scroll left and right between pages. The first page, Welcome Visitors, is a good place to start."},{"type":"markdown","id":"ffa05e309dbb0482","text":"# Ideas"},{"type":"paragraph","id":"ab121c266eb7925b","text":"We started with a few simple ideas and have remained committed to showing them to be sound."},{"type":"paragraph","id":"36d2d6cadd149b5b","text":"[[Mixed Content]] on pages sufficient to get work done."},{"type":"paragraph","id":"0dd8924cbf5bef3a","text":"[[Profligate Copying]] as a foundation for creativity."},{"type":"markdown","id":"4636da41130d8661","text":"# Discoveries"},{"type":"paragraph","id":"2996e3a402699dae","text":"We find surprise in the mechanisms that have emerged from our daily use of a system still in active development."},{"type":"paragraph","id":"2a973e632e768188","text":"[[Workflows]] composed from primitive actions replace interfaces engineered for purpose."},{"type":"paragraph","id":"04f1407f380260c6","text":"[[Structures]] aggregate through transformations applied by pages chosen for effect."},{"type":"paragraph","id":"5c7e13b743ae81e8","text":"[[Neighborhoods]] called up for the activity at hand outperform static structures no matter how well intentioned."}],"journal":[{"type":"create","item":{"title":"About Federated Wiki","story":[]},"date":1469219743873},{"item":{"type":"factory","id":"92d3cd023c11efd2"},"id":"92d3cd023c11efd2","type":"add","date":1469219760938},{"type":"edit","id":"92d3cd023c11efd2","item":{"type":"paragraph","id":"92d3cd023c11efd2","text":"We remain excited about this platform and have become increasingly confident that it embodies important new ideas. We will explain."},"date":1469220167465},{"type":"add","id":"3a6b0f4f179e9372","item":{"type":"paragraph","id":"3a6b0f4f179e9372","text":"In public we say federated wiki to distinguish our work from other wiki implementations. Here when we say wiki we mean this wiki, federated wiki."},"after":"92d3cd023c11efd2","date":1469220239998},{"type":"add","id":"8769d1d11dab3003","item":{"type":"paragraph","id":"8769d1d11dab3003","text":"We write in English on laptop computers. We aspire to be in all languages on all platforms but have always had something more exciting to do first. Forgive us."},"after":"3a6b0f4f179e9372","date":1469220407442},{"type":"add","id":"54dd46484881afd2","item":{"type":"paragraph","id":"54dd46484881afd2","text":"# Basics"},"after":"8769d1d11dab3003","date":1469220512877},{"type":"add","id":"0770e8a2b8b33024","item":{"type":"paragraph","id":"0770e8a2b8b33024","text":"Click links to open new pages. Use the browser's back button to go back."},"after":"54dd46484881afd2","date":1469220555434},{"type":"add","id":"02bb08d746443229","item":{"type":"paragraph","id":"02bb08d746443229","text":"Use arrow keys to scroll left and right between pages. The first page, Welcome Visitors, is always a good starting place."},"after":"0770e8a2b8b33024","date":1469220808166},{"type":"edit","id":"02bb08d746443229","item":{"type":"paragraph","id":"02bb08d746443229","text":"Use arrow keys to scroll left and right between pages. The first page, Welcome Visitors, is a good place to start."},"date":1469220826785},{"type":"edit","id":"54dd46484881afd2","item":{"type":"markdown","id":"54dd46484881afd2","text":"# Basics"},"date":1469220840394},{"type":"add","id":"ffa05e309dbb0482","item":{"type":"paragraph","id":"ffa05e309dbb0482","text":"# Ideas"},"after":"02bb08d746443229","date":1469220875593},{"type":"add","id":"ab121c266eb7925b","item":{"type":"paragraph","id":"ab121c266eb7925b","text":"We started with a few simple ideas and have remained committed to showing them to be sound."},"after":"ffa05e309dbb0482","date":1469220947050},{"type":"add","id":"36d2d6cadd149b5b","item":{"type":"paragraph","id":"36d2d6cadd149b5b","text":"[[Mixed Content]] on pages sufficient to get work done."},"after":"ab121c266eb7925b","date":1469221048134},{"type":"edit","id":"ffa05e309dbb0482","item":{"type":"markdown","id":"ffa05e309dbb0482","text":"# Ideas"},"date":1469221396832},{"type":"add","id":"0dd8924cbf5bef3a","item":{"type":"paragraph","id":"0dd8924cbf5bef3a","text":"[[Profligate Copying]] as a foundation for creativity."},"after":"36d2d6cadd149b5b","date":1469221797184},{"type":"add","id":"4636da41130d8661","item":{"type":"paragraph","id":"4636da41130d8661","text":"# Discoveries"},"after":"0dd8924cbf5bef3a","date":1469221889987},{"type":"add","id":"2996e3a402699dae","item":{"type":"paragraph","id":"2996e3a402699dae","text":"We find surprise in the mechanisms that have emerged from our daily use of a system still in active development."},"after":"4636da41130d8661","date":1469222496803},{"type":"edit","id":"4636da41130d8661","item":{"type":"markdown","id":"4636da41130d8661","text":"# Discoveries"},"date":1469222507622},{"type":"add","id":"2a973e632e768188","item":{"type":"paragraph","id":"2a973e632e768188","text":"[[Workflows]] composed from primitive actions replace interfaces engineered for purpose."},"after":"2996e3a402699dae","date":1469222681592},{"type":"add","id":"04f1407f380260c6","item":{"type":"paragraph","id":"04f1407f380260c6","text":"[[Structures]] aggregate through transformations applied by pages chosen for effect."},"after":"2a973e632e768188","date":1469224129076},{"type":"add","id":"5c7e13b743ae81e8","item":{"type":"paragraph","id":"5c7e13b743ae81e8","text":"[[Neighborhoods]] called up for the activity at hand outperform large static structures no matter how well intentioned."},"after":"04f1407f380260c6","date":1469224957680},{"type":"edit","id":"5c7e13b743ae81e8","item":{"type":"paragraph","id":"5c7e13b743ae81e8","text":"[[Neighborhoods]] called up for the activity at hand outperform static structures no matter how well intentioned."},"date":1469224975210},{"type":"fork","date":1495802390197}]},"about-mathjax-plugin":{"title":"About MathJax Plugin","story":[{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTeX mathematical notation imbedded within an otherwise normal paragraph."},{"type":"paragraph","id":"5d3817548c32cb38","text":"Read about the MathJax display engine at [http://www.mathjax.org/ mathjax.org]."},{"type":"paragraph","id":"1734820a1be9fce6","text":"See [https://github.com/fedwiki/wiki-plugin-mathjax GitHub] for plugin source."},{"type":"html","id":"7b6da595c4441d1b","text":"
Escapes
"},{"type":"html","id":"0ec67ffa5abf3384","text":"Enclose LaTeX within backslashed parens when you want to imbed an expression fragment within running text."},{"type":"html","id":"952bbfe603e3eac5","text":"Enclose LaTeX within backslashed square brackets when you want to write complete expressions on lines by themselves."},{"type":"html","id":"e82ffe59fe537c54","text":"Limitations
"},{"type":"paragraph","id":"c36b8db6fdf61c20","text":"The engine expects to scan a complete html page for escapes. The plugin makes use of the advanced engine api attempting to focus the engine on only recently rendered items of type mathjax. "},{"type":"paragraph","id":"e8482440f4be2a73","text":"We load the engine from the MathJax content deliver network (cdn). This means that a laptop based wiki will not render LaTeX unless the laptop also has network connectivity."}],"journal":[{"type":"create","id":"3ec0daa7d893563d","item":{"title":"About MathJax Plugin"},"date":1342315153889},{"item":{"type":"factory","id":"1f4c86f9fa066640"},"id":"1f4c86f9fa066640","type":"add","date":1342315182159},{"type":"edit","id":"1f4c86f9fa066640","item":{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTex mathematical notation imbedded within an otherwise normal paragraph."},"date":1342315311811},{"type":"edit","id":"1f4c86f9fa066640","item":{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTeX mathematical notation imbedded within an otherwise normal paragraph."},"date":1342315412288},{"item":{"type":"factory","id":"5d3817548c32cb38"},"id":"5d3817548c32cb38","type":"add","after":"1f4c86f9fa066640","date":1342315414250},{"type":"edit","id":"5d3817548c32cb38","item":{"type":"paragraph","id":"5d3817548c32cb38","text":"Read about the MathJax display engine at [http://www.mathjax.org/ mathjax.org]."},"date":1342315449119},{"type":"add","item":{"type":"mathjax","id":"e3fec2556bc095f6","text":"Probability of getting \\(k\\) heads when flipping \\(n\\) coins\n\\[ P(E) = {n \\choose k} p^k (1-p)^{ n-k } \\]"},"after":"1f4c86f9fa066640","id":"e3fec2556bc095f6","date":1342315501907},{"item":{"type":"factory","id":"7b6da595c4441d1b"},"id":"7b6da595c4441d1b","type":"add","after":"5d3817548c32cb38","date":1342315571737},{"type":"edit","id":"7b6da595c4441d1b","item":{"type":"paragraph","id":"7b6da595c4441d1b","text":"Escapes"},"date":1342315592298},{"item":{"type":"factory","id":"0ec67ffa5abf3384"},"id":"0ec67ffa5abf3384","type":"add","after":"7b6da595c4441d1b","date":1342315596152},{"type":"edit","id":"0ec67ffa5abf3384","item":{"type":"paragraph","id":"0ec67ffa5abf3384","text":"Enclose LaTeX within backslashed parens when you want to imbed an expression fragment within running text."},"date":1342315704895},{"item":{"type":"paragraph","id":"952bbfe603e3eac5","text":""},"id":"952bbfe603e3eac5","type":"add","after":"0ec67ffa5abf3384","date":1342315705400},{"type":"edit","id":"952bbfe603e3eac5","item":{"type":"paragraph","id":"952bbfe603e3eac5","text":"Enclose LaTeX within backslashed square brackets when you want to write complete expressions on lines by themselves."},"date":1342315750566},{"type":"edit","id":"952bbfe603e3eac5","item":{"type":"paragraph","id":"952bbfe603e3eac5","text":"Enclose LaTeX within backslashed square brackets when you want to write complete expressions on lines by themselves."},"date":1342315758206},{"item":{"type":"factory","id":"0495785ef34f065b"},"id":"0495785ef34f065b","type":"add","after":"952bbfe603e3eac5","date":1342316068284},{"type":"remove","id":"0495785ef34f065b","date":1342316113739},{"item":{"type":"paragraph","id":"e82ffe59fe537c54","text":""},"id":"e82ffe59fe537c54","type":"add","after":"952bbfe603e3eac5","date":1342316116636},{"type":"edit","id":"e82ffe59fe537c54","item":{"type":"paragraph","id":"e82ffe59fe537c54","text":"The engine expects to scan a complete html page for escapes. The plugin makes use of the advanced engine api attempting to focus the engine on only recently rendered items of type mathjax. "},"date":1342316269016},{"item":{"type":"factory","id":"e8482440f4be2a73"},"id":"e8482440f4be2a73","type":"add","after":"e82ffe59fe537c54","date":1342316300470},{"type":"edit","id":"e8482440f4be2a73","item":{"type":"paragraph","id":"e8482440f4be2a73","text":"We load the engine from the MathJax content deliver network (cdn). This means that a laptop based wiki will not render LaTeX unless the laptop has network connectivity."},"date":1342316425507},{"type":"edit","id":"e82ffe59fe537c54","item":{"type":"paragraph","id":"e82ffe59fe537c54","text":"Limitations"},"date":1342316445330},{"item":{"type":"paragraph","id":"c36b8db6fdf61c20","text":"The engine expects to scan a complete html page for escapes. The plugin makes use of the advanced engine api attempting to focus the engine on only recently rendered items of type mathjax. "},"id":"c36b8db6fdf61c20","type":"add","after":"e82ffe59fe537c54","date":1342316445836},{"item":{"type":"paragraph","id":"1734820a1be9fce6","text":""},"id":"1734820a1be9fce6","type":"add","after":"5d3817548c32cb38","date":1342316532188},{"type":"edit","id":"1734820a1be9fce6","item":{"type":"paragraph","id":"1734820a1be9fce6","text":"See [https://github.com/hng/Smallest-Federated-Wiki/tree/master/client/plugins/mathjax GitHub] for plugin source."},"date":1342316546408},{"type":"edit","id":"e8482440f4be2a73","item":{"type":"paragraph","id":"e8482440f4be2a73","text":"We load the engine from the MathJax content deliver network (cdn). This means that a laptop based wiki will not render LaTeX unless the laptop also has network connectivity."},"date":1342316599269},{"type":"edit","id":"1734820a1be9fce6","item":{"type":"paragraph","id":"1734820a1be9fce6","text":"See [https://github.com/fedwiki/wiki-plugin-mathjax GitHub] for plugin source."},"date":1389178796139},{"type":"edit","id":"7b6da595c4441d1b","item":{"type":"html","id":"7b6da595c4441d1b","text":"Escapes"},"date":1418317073264},{"type":"edit","id":"7b6da595c4441d1b","item":{"type":"html","id":"7b6da595c4441d1b","text":"Escapes
"},"date":1418317080519},{"type":"edit","id":"0ec67ffa5abf3384","item":{"type":"html","id":"0ec67ffa5abf3384","text":"Enclose LaTeX within backslashed parens when you want to imbed an expression fragment within running text."},"date":1418317082679},{"type":"edit","id":"952bbfe603e3eac5","item":{"type":"html","id":"952bbfe603e3eac5","text":"Enclose LaTeX within backslashed square brackets when you want to write complete expressions on lines by themselves."},"date":1418317084727},{"type":"edit","id":"e82ffe59fe537c54","item":{"type":"html","id":"e82ffe59fe537c54","text":"Limitations"},"date":1418317086183},{"type":"edit","id":"e82ffe59fe537c54","item":{"type":"html","id":"e82ffe59fe537c54","text":"Limitations
"},"date":1418317092585},{"type":"remove","id":"e3fec2556bc095f6","date":1475355681562}]},"collaborative-link":{"title":"Collaborative Link","story":[{"type":"paragraph","id":"f345b9a30bc7ab75","text":"The web became more collaborative with wiki's introduction of the [[Internal Link]]. Link names were drawn from a shared space backed up at the time by shared storage. Federated wiki's internal links preserves the shared space but not the shared storage making it the ideal link for the distributed collaborative web."},{"type":"paragraph","id":"b6634a67558b53d9","text":"The creative commons' attribution agreement combined with html5's cross-origin resource sharing provide the missing mechanisms that make the distributed collaborative link work."},{"type":"paragraph","id":"01e372e1e64bfc5e","text":"In short, we know where a page came from and we know how to find more."},{"type":"paragraph","id":"fbb0aec0e6208071","text":"When we mashup a page that has been well circulated we can still expect its links to work even if the cited pages have not been similarly copied. A click on a collaborative link works backwards through current and previous authors until the desired page is found. "},{"type":"paragraph","id":"bfae5278a2342ec6","text":"When communities meet and share a page or two they have opened a portal between each web that future readers will follow within the one site they have become."},{"type":"markdown","id":"16c1a0ad66380097","text":"# Mechanism"},{"type":"paragraph","id":"7b923457f07b3321","text":"We now describe collaborative links in the abstract and as implemented in federated wiki."},{"type":"paragraph","id":"a3d0fff41b4af9bd","text":"As pages are copied (forked) they accumulate attributions sufficient to locate originals in their original linking context."},{"type":"paragraph","id":"cd51d34cdcd1c820","text":"Federated wiki uses individually owned domain names as attribution expecting author identification and related pages to be served according to well established conventions."},{"type":"paragraph","id":"c87e736afd324edc","text":"Link click handling consults the accumulated attributions in a most-recent first priority search for the desired page."},{"type":"paragraph","id":"b828efcce47366d9","text":"Federated wiki javascript polls sites in order handling 404s until it finds the desired page. If not found, it offers to create the page locally while also consulting sitemaps for any other sites in recent browsing history."},{"type":"paragraph","id":"d94c9bbdd8740469","text":"Community awareness is provided by acknowledging older and newer versions of pages as their availability becomes known."},{"type":"paragraph","id":"50cdd506575f3fbb","text":"Federated wiki fetches automatically maintained sitemaps for each attribution it encounters. This informs available versions as well as 404, search and recent changes."},{"type":"paragraph","id":"a8890908c86a2cb3","text":"The reader controls the collection of sites dynamically merged into one based on their own needs and interests of the moment."},{"type":"paragraph","id":"a168d91b5659f8a9","text":"Federated wiki maintains a distinct neighborhood for each browser tab. Features like drag and drop between tabs and collected rosters of likely participants provide quick and controlled neighborhood expansion while browsing."},{"type":"markdown","id":"29110eeff6ceb0ee","text":"# Experience"},{"type":"paragraph","id":"47da15a0d748060e","text":"Federated wiki creates new sites on first reference. We've found this to be liberating in that each site provides a unique vocabulary for the writing that takes place there. "},{"type":"paragraph","id":"3c57029e8528ec65","text":"We fork pages that have utility in multiple contexts. This frees each site to be as independent and connected as convenient. We've adopted an abrupt, to the point, easily refactored writing style that regains context by surrounding pages."},{"type":"paragraph","id":"953f1c5eb2ef33cb","text":"Emergent site structures tend to be topical, chronological or reflective. Pages are written quickly and then updated occasionally. A page copied to a new environment will be adjusted to fit."},{"type":"paragraph","id":"8a30cd60345c15a1","text":"We designed for desktop authoring while viewing three to five wiki pages at once, tablet reading while viewing two or three page and smartphone reference retrieval showing only one or two. We have not yet shown this to be the prefered use of touch devices."},{"type":"paragraph","id":"8ca7564f01cda870","text":"Our design favor non-conversational collaborations suitable for more thoughtful writing. Authors are not guaranteed to know what has become of their words."},{"type":"paragraph","id":"03b2fde3b8fef190","text":"Random identifiers are created for each paragraph. These survive through editing and copying. Pages sharing a paragraph of common origin remain implicitly and bi-directionally linking by id. Search engines then become the external link-store that makes bi-directional links possible."},{"type":"paragraph","id":"c0e47847f868e693","text":"We have been crawling the visible federation since October of last year. We found 776 sites then which has grown to 1067 now. We see 300,000 uniquely identified paragraphs, a number which is growing by 3000 a month. We settle for slow but steady growth by insisting that participants launch their own servers."},{"type":"markdown","id":"bf7c15571e759ae6","text":"# Related"},{"type":"paragraph","id":"e6d2e49ee6324960","text":"[[TEDx Portland]] 2012. Describes improved link."},{"type":"paragraph","id":"917d4fd5b483a351","text":"[[Writing with Strangers]] 2015. Emotional reflection. "},{"type":"paragraph","id":"970cf013d0de58fd","text":"[[Natural Genetic Infrastructure]] 1996. Call to action."},{"type":"paragraph","id":"3a29cf65664eedd7","text":"[[Decentralized Web Summit]] 2016. Inspired this page."}],"journal":[{"type":"create","item":{"title":"Collaborative Link","story":[]},"date":1463704689498},{"item":{"type":"factory","id":"f345b9a30bc7ab75"},"id":"f345b9a30bc7ab75","type":"add","date":1463704727789},{"type":"edit","id":"f345b9a30bc7ab75","item":{"type":"paragraph","id":"f345b9a30bc7ab75","text":"The web became more collaborative with wiki's introduction of the internal link. Link names were drawn from a shared space backed up at the time by shared storage. Federated wiki preserves the shared space but not the shared storage making its links ideal for the distributed collaborative web."},"date":1463704946244},{"item":{"type":"factory","id":"cffe82a70693bd98"},"id":"cffe82a70693bd98","type":"add","after":"f345b9a30bc7ab75","date":1463704967098},{"type":"remove","id":"cffe82a70693bd98","date":1463705088553},{"type":"edit","id":"f345b9a30bc7ab75","item":{"type":"paragraph","id":"f345b9a30bc7ab75","text":"The web became more collaborative with wiki's introduction of the [[Internal Link]]. Link names were drawn from a shared space backed up at the time by shared storage. Federated wiki preserves the shared space but not the shared storage making its links ideal for the distributed collaborative web."},"date":1463705125819},{"type":"edit","id":"f345b9a30bc7ab75","item":{"type":"paragraph","id":"f345b9a30bc7ab75","text":"The web became more collaborative with wiki's introduction of the [[Internal Link]]. Link names were drawn from a shared space backed up at the time by shared storage. Federated wiki's internal links preserves the shared space but not the shared storage making it the ideal link for the distributed collaborative web."},"date":1463705171223},{"type":"add","id":"b6634a67558b53d9","item":{"type":"paragraph","id":"b6634a67558b53d9","text":"The creative commons' attribution agreement combined with html5's cross-origin resource sharing provide the missing mechanisms that make the collaborative link work."},"after":"f345b9a30bc7ab75","date":1463706652182},{"type":"add","id":"01e372e1e64bfc5e","item":{"type":"paragraph","id":"01e372e1e64bfc5e","text":"In short, we know where that page came from and we know how to find more."},"after":"b6634a67558b53d9","date":1463706741619},{"type":"edit","id":"b6634a67558b53d9","item":{"type":"paragraph","id":"b6634a67558b53d9","text":"The creative commons' attribution agreement combined with html5's cross-origin resource sharing provide the missing mechanisms that make the distributed collaborative link work."},"date":1463706862512},{"type":"add","id":"fbb0aec0e6208071","item":{"type":"paragraph","id":"fbb0aec0e6208071","text":"When you mashup a page that has been around you can expect its links to still work even if the cited page has not been copied. A click on a collaborative link works backwards through current and previous authors until the desired page is found. "},"after":"01e372e1e64bfc5e","date":1463707171720},{"type":"add","id":"bfae5278a2342ec6","item":{"type":"paragraph","id":"bfae5278a2342ec6","text":"When communities meet and share a page or two they have opened a portal between each web that future readers will follow as if they were one. They now are."},"after":"fbb0aec0e6208071","date":1463707308823},{"type":"edit","id":"bfae5278a2342ec6","item":{"type":"paragraph","id":"bfae5278a2342ec6","text":"When communities meet and share a page or two they have opened a portal between each web that future readers will follow as the one they have become."},"date":1463753838514},{"type":"edit","id":"bfae5278a2342ec6","item":{"type":"paragraph","id":"bfae5278a2342ec6","text":"When communities meet and share a page or two they have opened a portal between each web that future readers will follow as the one site they have become."},"date":1463753848972},{"type":"edit","id":"bfae5278a2342ec6","item":{"type":"paragraph","id":"bfae5278a2342ec6","text":"When communities meet and share a page or two they have opened a portal between each web that future readers will follow within the one site they have become."},"date":1463753886674},{"item":{"type":"factory","id":"16c1a0ad66380097"},"id":"16c1a0ad66380097","type":"add","after":"bfae5278a2342ec6","date":1463753924472},{"type":"edit","id":"16c1a0ad66380097","item":{"type":"markdown","id":"16c1a0ad66380097","text":"# Mechanism"},"date":1463753933164},{"item":{"type":"factory","id":"a3d0fff41b4af9bd"},"id":"a3d0fff41b4af9bd","type":"add","after":"16c1a0ad66380097","date":1463753936208},{"type":"edit","id":"a3d0fff41b4af9bd","item":{"type":"paragraph","id":"a3d0fff41b4af9bd","text":"As pages are copied (forked) they accumulate attributions sufficient to locate originals in their original linking context."},"date":1463754267604},{"type":"add","id":"cd51d34cdcd1c820","item":{"type":"paragraph","id":"cd51d34cdcd1c820","text":"Federated wiki uses individually owned domain names as attribution expecting author identification and related pages to be served according to well established conventions."},"after":"a3d0fff41b4af9bd","date":1463754610350},{"type":"add","id":"c87e736afd324edc","item":{"type":"paragraph","id":"c87e736afd324edc","text":"Link click handling consults the accumulated attributions in a most-recent first priority search for the desired page."},"after":"cd51d34cdcd1c820","date":1463754768773},{"type":"add","id":"b828efcce47366d9","item":{"type":"paragraph","id":"b828efcce47366d9","text":"Federated wiki javascript polls sites in order handling 404s until it finds the desired page. If not found, it offers to create the page locally while also consulting sitemaps for any other sites in recent browsing history."},"after":"c87e736afd324edc","date":1463755035207},{"type":"add","id":"d94c9bbdd8740469","item":{"type":"paragraph","id":"d94c9bbdd8740469","text":"Community awareness is provided by acknowledging older and newer versions of a page as their availability becomes known."},"after":"b828efcce47366d9","date":1463755131678},{"type":"edit","id":"d94c9bbdd8740469","item":{"type":"paragraph","id":"d94c9bbdd8740469","text":"Community awareness is provided by acknowledging older and newer versions of pages as their availability becomes known."},"date":1463755145509},{"type":"add","id":"50cdd506575f3fbb","item":{"type":"paragraph","id":"50cdd506575f3fbb","text":"Federated wiki fetches automatically maintained sitemaps for each attribution it encounters. This informs available versions as well as 404 handling, search and recent changes."},"after":"d94c9bbdd8740469","date":1463755411341},{"type":"edit","id":"50cdd506575f3fbb","item":{"type":"paragraph","id":"50cdd506575f3fbb","text":"Federated wiki fetches automatically maintained sitemaps for each attribution it encounters. This informs available versions as well as 404, search and recent changes."},"date":1463755424816},{"type":"add","id":"a8890908c86a2cb3","item":{"type":"paragraph","id":"a8890908c86a2cb3","text":"The reader controls the neighborhood of sites dynamically merged into one based on their own needs and interests of the moment."},"after":"50cdd506575f3fbb","date":1463755539221},{"type":"add","id":"a168d91b5659f8a9","item":{"type":"paragraph","id":"a168d91b5659f8a9","text":"Federated wiki maintains a distinct neighborhood for each browser tab. Features like drag and drop between tabs and collected rosters of likely participants provide quick and controlled neighborhood expansion while browsing."},"after":"a8890908c86a2cb3","date":1463755750148},{"type":"add","id":"7b923457f07b3321","item":{"type":"paragraph","id":"7b923457f07b3321","text":"We describe collaborative links in the abstract and as implemented in federated wiki."},"after":"a3d0fff41b4af9bd","date":1463756645262},{"type":"move","order":["f345b9a30bc7ab75","b6634a67558b53d9","01e372e1e64bfc5e","fbb0aec0e6208071","bfae5278a2342ec6","16c1a0ad66380097","7b923457f07b3321","a3d0fff41b4af9bd","cd51d34cdcd1c820","c87e736afd324edc","b828efcce47366d9","d94c9bbdd8740469","50cdd506575f3fbb","a8890908c86a2cb3","a168d91b5659f8a9"],"id":"7b923457f07b3321","date":1463756649199},{"type":"fork","date":1463756719330},{"type":"edit","id":"a8890908c86a2cb3","item":{"type":"paragraph","id":"a8890908c86a2cb3","text":"The reader controls the collection of sites dynamically merged into one based on their own needs and interests of the moment."},"date":1463756783632},{"item":{"type":"factory","id":"29110eeff6ceb0ee"},"id":"29110eeff6ceb0ee","type":"add","after":"a168d91b5659f8a9","date":1463757078145},{"type":"edit","id":"29110eeff6ceb0ee","item":{"type":"markdown","id":"29110eeff6ceb0ee","text":"# Experience"},"date":1463757091740},{"item":{"type":"factory","id":"47da15a0d748060e"},"id":"47da15a0d748060e","type":"add","after":"29110eeff6ceb0ee","date":1463757178265},{"type":"edit","id":"47da15a0d748060e","item":{"type":"paragraph","id":"47da15a0d748060e","text":"emergent structure, topical and chronological"},"date":1463757229433},{"type":"edit","id":"47da15a0d748060e","item":{"type":"paragraph","id":"47da15a0d748060e","text":"emergent structure, topical, chronological and retrospective."},"date":1463757253137},{"type":"add","id":"8ca7564f01cda870","item":{"type":"paragraph","id":"8ca7564f01cda870","text":"non-conversational and lightly linked."},"after":"47da15a0d748060e","date":1463757309167},{"type":"add","id":"03b2fde3b8fef190","item":{"type":"paragraph","id":"03b2fde3b8fef190","text":"implicit linking through item identity and search"},"after":"8ca7564f01cda870","date":1463757552981},{"type":"add","id":"8a30cd60345c15a1","item":{"type":"paragraph","id":"8a30cd60345c15a1","text":"unrealized touch experience."},"after":"03b2fde3b8fef190","date":1463757629160},{"type":"add","id":"c0e47847f868e693","item":{"type":"paragraph","id":"c0e47847f868e693","text":"steady observable growth."},"after":"8a30cd60345c15a1","date":1463757713665},{"type":"move","order":["f345b9a30bc7ab75","b6634a67558b53d9","01e372e1e64bfc5e","fbb0aec0e6208071","bfae5278a2342ec6","16c1a0ad66380097","7b923457f07b3321","a3d0fff41b4af9bd","cd51d34cdcd1c820","c87e736afd324edc","b828efcce47366d9","d94c9bbdd8740469","50cdd506575f3fbb","a8890908c86a2cb3","a168d91b5659f8a9","29110eeff6ceb0ee","47da15a0d748060e","8ca7564f01cda870","8a30cd60345c15a1","03b2fde3b8fef190","c0e47847f868e693"],"id":"8a30cd60345c15a1","date":1463757717197},{"type":"move","order":["f345b9a30bc7ab75","b6634a67558b53d9","01e372e1e64bfc5e","fbb0aec0e6208071","bfae5278a2342ec6","16c1a0ad66380097","7b923457f07b3321","a3d0fff41b4af9bd","cd51d34cdcd1c820","c87e736afd324edc","b828efcce47366d9","d94c9bbdd8740469","50cdd506575f3fbb","a8890908c86a2cb3","a168d91b5659f8a9","29110eeff6ceb0ee","47da15a0d748060e","8a30cd60345c15a1","8ca7564f01cda870","03b2fde3b8fef190","c0e47847f868e693"],"id":"8a30cd60345c15a1","date":1463757745110},{"type":"add","id":"18f6004549465560","item":{"type":"paragraph","id":"18f6004549465560","text":"tedx and other references."},"after":"c0e47847f868e693","date":1463757833114},{"type":"edit","id":"fbb0aec0e6208071","item":{"type":"paragraph","id":"fbb0aec0e6208071","text":"When we mashup a page that has been well circulated we can still expect its links to work even if the cited pages have not been similarly copied. A click on a collaborative link works backwards through current and previous authors until the desired page is found. "},"date":1463842905174},{"type":"edit","id":"47da15a0d748060e","item":{"type":"paragraph","id":"47da15a0d748060e","text":"Federated wiki creates new sites on first reference. We've found this to be liberating in that each site provides a unique vocabulary for the writing that takes place there. We fork pages that have utility in multiple contexts. This frees each site to be as independent and connected as convenient."},"date":1463845908078},{"type":"add","id":"c19c5be1c055ea11","item":{"type":"paragraph","id":"c19c5be1c055ea11","text":"We've adopted an abrupt, to the point, easily refactored writing style that regains context by surrounding pages. TL;DR."},"after":"47da15a0d748060e","date":1463847628457},{"type":"edit","id":"c19c5be1c055ea11","item":{"type":"paragraph","id":"c19c5be1c055ea11","text":"We've adopted an abrupt, to the point, easily refactored writing style that regains context by surrounding pages."},"date":1463847829176},{"type":"edit","id":"47da15a0d748060e","item":{"type":"paragraph","id":"47da15a0d748060e","text":"Federated wiki creates new sites on first reference. We've found this to be liberating in that each site provides a unique vocabulary for the writing that takes place there. "},"date":1463847847038},{"type":"add","id":"3c57029e8528ec65","item":{"type":"paragraph","id":"3c57029e8528ec65","text":"We fork pages that have utility in multiple contexts. This frees each site to be as independent and connected as convenient."},"after":"47da15a0d748060e","date":1463847848488},{"type":"remove","id":"c19c5be1c055ea11","date":1463847872246},{"type":"edit","id":"3c57029e8528ec65","item":{"type":"paragraph","id":"3c57029e8528ec65","text":"We fork pages that have utility in multiple contexts. This frees each site to be as independent and connected as convenient. We've adopted an abrupt, to the point, easily refactored writing style that regains context by surrounding pages."},"date":1463847874385},{"type":"add","id":"953f1c5eb2ef33cb","item":{"type":"paragraph","id":"953f1c5eb2ef33cb","text":"Emergent site structures tend to be topical, chronological or reflective. Pages are written quickly and then occasionally maintained."},"after":"3c57029e8528ec65","date":1463848061109},{"type":"edit","id":"953f1c5eb2ef33cb","item":{"type":"paragraph","id":"953f1c5eb2ef33cb","text":"Emergent site structures tend to be topical, chronological or reflective. Pages are written quickly and occasionally maintained."},"date":1463848073184},{"type":"edit","id":"953f1c5eb2ef33cb","item":{"type":"paragraph","id":"953f1c5eb2ef33cb","text":"Emergent site structures tend to be topical, chronological or reflective. Pages are written quickly and then updated occasionally."},"date":1463848093456},{"type":"edit","id":"953f1c5eb2ef33cb","item":{"type":"paragraph","id":"953f1c5eb2ef33cb","text":"Emergent site structures tend to be topical, chronological or reflective. Pages are written quickly and then updated occasionally. A page copied to a new environment will be adjusted to fit."},"date":1463848127257},{"type":"edit","id":"8a30cd60345c15a1","item":{"type":"paragraph","id":"8a30cd60345c15a1","text":"We designed for desktop authoring viewing three to five pages, tablet reading viewing two or three and smartphone reference retrieval showing one or two. We have not yet shown this utility on touch devices."},"date":1463848456251},{"type":"edit","id":"8a30cd60345c15a1","item":{"type":"paragraph","id":"8a30cd60345c15a1","text":"We designed for desktop authoring while viewing three to five wiki pages at once, tablet reading while viewing two or three page and smartphone reference retrieval showing only one or two. We have not yet shown this to be the prefered use of touch devices."},"date":1463848677753},{"type":"edit","id":"8ca7564f01cda870","item":{"type":"paragraph","id":"8ca7564f01cda870","text":"Our design favor non-conversational collaborations suitable for more thoughtful writing. Authors are not guaranteed to know what has become of their words."},"date":1463849067235},{"type":"edit","id":"03b2fde3b8fef190","item":{"type":"paragraph","id":"03b2fde3b8fef190","text":"Random identifiers are created for each paragraph. These survive through editing and copying. Pages sharing a paragraph of common origin remain implicitly and bi-directionally linking by id. Search engines then become the external link-store that makes bi-directional links possible."},"date":1463849372720},{"type":"edit","id":"c0e47847f868e693","item":{"type":"paragraph","id":"c0e47847f868e693","text":"We have been crawling the visible federation since October of last year. "},"date":1463850045985},{"type":"edit","id":"c0e47847f868e693","item":{"type":"paragraph","id":"c0e47847f868e693","text":"We have been crawling the visible federation since October of last year. We found 776 sites then which has grown to "},"date":1463850111626},{"type":"edit","id":"c0e47847f868e693","item":{"type":"paragraph","id":"c0e47847f868e693","text":"We have been crawling the visible federation since October of last year. We found 776 sites then which has grown to 1067 now. "},"date":1463850170848},{"type":"edit","id":"c0e47847f868e693","item":{"type":"paragraph","id":"c0e47847f868e693","text":"We have been crawling the visible federation since October of last year. We found 776 sites then which has grown to 1067 now. We see 300,000 uniquely identified paragraphs, a number which is growing by 3000 a month. We settle for slow but steady growth by insisting that participants launch their own servers."},"date":1463850356252},{"item":{"type":"factory","id":"bf7c15571e759ae6"},"id":"bf7c15571e759ae6","type":"add","after":"18f6004549465560","date":1463850565656},{"type":"edit","id":"bf7c15571e759ae6","item":{"type":"markdown","id":"bf7c15571e759ae6","text":"# Related"},"date":1463850583392},{"item":{"type":"factory","id":"e6d2e49ee6324960"},"id":"e6d2e49ee6324960","type":"add","after":"bf7c15571e759ae6","date":1463850708640},{"type":"edit","id":"e6d2e49ee6324960","item":{"type":"paragraph","id":"e6d2e49ee6324960","text":"[[TEDx Portland]]"},"date":1463850727552},{"type":"add","id":"970cf013d0de58fd","item":{"type":"paragraph","id":"970cf013d0de58fd","text":"[[Natural Genetic Infrastructure]]"},"after":"e6d2e49ee6324960","date":1463850821320},{"type":"remove","id":"18f6004549465560","date":1463850842400},{"type":"edit","id":"e6d2e49ee6324960","item":{"type":"paragraph","id":"e6d2e49ee6324960","text":"[[TEDx Portland]] 2012. Explains improvements on the link."},"date":1463851017553},{"type":"edit","id":"970cf013d0de58fd","item":{"type":"paragraph","id":"970cf013d0de58fd","text":"[[Natural Genetic Infrastructure]] 1996. Alexander's call to action."},"date":1463851077695},{"type":"edit","id":"970cf013d0de58fd","item":{"type":"paragraph","id":"970cf013d0de58fd","text":"[[Natural Genetic Infrastructure]] 1996. Call to action."},"date":1463851090893},{"type":"edit","id":"e6d2e49ee6324960","item":{"type":"paragraph","id":"e6d2e49ee6324960","text":"[[TEDx Portland]] 2012. Describes improved link."},"date":1463851181958},{"type":"add","id":"917d4fd5b483a351","item":{"type":"paragraph","id":"917d4fd5b483a351","text":"[[Writing with Strangers]] "},"after":"e6d2e49ee6324960","date":1463851446914},{"type":"edit","id":"917d4fd5b483a351","item":{"type":"paragraph","id":"917d4fd5b483a351","text":"[[Writing with Strangers]] 2015. Emotional reflection. "},"date":1463851515155},{"type":"add","id":"3a29cf65664eedd7","item":{"type":"paragraph","id":"3a29cf65664eedd7","text":"[Decentralized Web Summit]"},"after":"970cf013d0de58fd","date":1463851783940},{"type":"edit","id":"3a29cf65664eedd7","item":{"type":"paragraph","id":"3a29cf65664eedd7","text":"[http://www.decentralizedweb.net/ Decentralized Web Summit] 2016. Inspiration for this page."},"date":1463851815970},{"type":"edit","id":"3a29cf65664eedd7","item":{"type":"paragraph","id":"3a29cf65664eedd7","text":"[[Decentralized Web Summit]] 2016. Inspiration for this page."},"date":1463851844742},{"type":"edit","id":"3a29cf65664eedd7","item":{"type":"paragraph","id":"3a29cf65664eedd7","text":"[[Decentralized Web Summit]] 2016. Inspired this page."},"date":1463851858022},{"type":"edit","id":"01e372e1e64bfc5e","item":{"type":"paragraph","id":"01e372e1e64bfc5e","text":"In short, we know where a page came from and we know how to find more."},"date":1463853823442},{"type":"edit","id":"7b923457f07b3321","item":{"type":"paragraph","id":"7b923457f07b3321","text":"We now describe collaborative links in the abstract and as implemented in federated wiki."},"date":1463870357141},{"type":"fork","site":"ward.bay.wiki.org","date":1469244586087},{"type":"fork","date":1469244587929}]},"computational-plugins":{"title":"Computational Plugins","story":[{"type":"paragraph","id":"ef719cb8dc4032e1","text":"We wanted wiki to be able to compute. These plugins developed our notion of cooperating computational engines."},{"type":"html","id":"a2b16907864170ed","text":" Exploring"},{"type":"paragraph","id":"953fe90bc8955ff2","text":"We started with the notion of a calculating markup that we had invented for the sole purpose of working out expenses. We converted this from awk to javascript and saw it work. See [[About Calculator Plugin]]"},{"type":"paragraph","id":"504309223f122d26","text":"We wanted to see how data could move between pages and even those pages that were not yet visible on the server. We built calculator that summed repeated queries to a metabolic dataset. See [[About Metabolism Plugin]]"},{"type":"html","id":"1dc99874ff443808","text":" Deploying"},{"type":"paragraph","id":"3a8a5b2537fa3dd2","text":"We developed the more general calculator that get and set values by name. Later this was extended to include unit calculations. See [[About Method Plugin]]"},{"type":"paragraph","id":"58a8b844b0f6f9ee","text":"We showed how we could assemble a dataset from a large collection of pages, each with a variety of methods. See [[About Rollup Plugin]]"},{"type":"paragraph","id":"c88f94bd22842e9e","text":"We showed how we could recompute a calculation spread across many pages at interactive speeds. This included the ability to translate the calculation to spreadsheet formulas. See [[About Reduce Plugin]]"}],"journal":[{"type":"create","item":{"title":"Computational Plugins"},"date":1349376823681},{"item":{"type":"factory","id":"ef719cb8dc4032e1"},"id":"ef719cb8dc4032e1","type":"add","date":1349376836559},{"type":"edit","id":"ef719cb8dc4032e1","item":{"type":"paragraph","id":"ef719cb8dc4032e1","text":"We wanted wiki to be able to compute. These plugins developed our notion of cooperating computational engines."},"date":1349376934315},{"item":{"type":"paragraph","id":"dc3763036316d586","text":""},"id":"dc3763036316d586","type":"add","after":"ef719cb8dc4032e1","date":1349376934818},{"type":"remove","id":"dc3763036316d586","date":1349376940223},{"item":{"type":"factory","id":"a2b16907864170ed"},"id":"a2b16907864170ed","type":"add","after":"ef719cb8dc4032e1","date":1349376946592},{"type":"edit","id":"a2b16907864170ed","item":{"type":"paragraph","id":"a2b16907864170ed","text":" Exploring"},"date":1349376971064},{"item":{"type":"paragraph","id":"1dc99874ff443808","text":""},"id":"1dc99874ff443808","type":"add","after":"a2b16907864170ed","date":1349376971568},{"type":"edit","id":"1dc99874ff443808","item":{"type":"paragraph","id":"1dc99874ff443808","text":" Deploying"},"date":1349376985386},{"type":"add","item":{"type":"paragraph","id":"953fe90bc8955ff2","text":"calculator"},"after":"a2b16907864170ed","id":"953fe90bc8955ff2","date":1349376990537},{"type":"add","item":{"type":"paragraph","id":"504309223f122d26","text":"metabolism"},"after":"953fe90bc8955ff2","id":"504309223f122d26","date":1349376998125},{"type":"add","item":{"type":"paragraph","id":"3a8a5b2537fa3dd2","text":"method"},"after":"1dc99874ff443808","id":"3a8a5b2537fa3dd2","date":1349377002850},{"type":"add","item":{"type":"paragraph","id":"58a8b844b0f6f9ee","text":"rollup"},"after":"3a8a5b2537fa3dd2","id":"58a8b844b0f6f9ee","date":1349377008078},{"type":"edit","id":"953fe90bc8955ff2","item":{"type":"paragraph","id":"953fe90bc8955ff2","text":"[[About Calculator Plugin]]"},"date":1401546798930},{"type":"edit","id":"504309223f122d26","item":{"type":"paragraph","id":"504309223f122d26","text":"[[About Metabolism Plugin]]"},"date":1401546818644},{"type":"edit","id":"3a8a5b2537fa3dd2","item":{"type":"paragraph","id":"3a8a5b2537fa3dd2","text":"[[About Method Plugin]]"},"date":1401546834087},{"type":"edit","id":"58a8b844b0f6f9ee","item":{"type":"paragraph","id":"58a8b844b0f6f9ee","text":"[[About Rollup Plugin]]"},"date":1401546849685},{"item":{"type":"paragraph","id":"c88f94bd22842e9e","text":""},"id":"c88f94bd22842e9e","type":"add","after":"58a8b844b0f6f9ee","date":1401546853072},{"type":"edit","id":"c88f94bd22842e9e","item":{"type":"paragraph","id":"c88f94bd22842e9e","text":"[[About Reduce Plugin]]"},"date":1401546861400},{"type":"edit","id":"953fe90bc8955ff2","item":{"type":"paragraph","id":"953fe90bc8955ff2","text":"We started with the notion of a calculating markup that we had invented for the sole purpose of working out expenses. We converted this from awk to javascript and saw it work. See [[About Calculator Plugin]]"},"date":1401547913947},{"type":"edit","id":"504309223f122d26","item":{"type":"paragraph","id":"504309223f122d26","text":"We wanted to see how data could move between pages and even those pages that were not yet visible on the server. We built calculator that summed repeated queries to a metabolic dataset. See [[About Metabolism Plugin]]"},"date":1401548070352},{"type":"edit","id":"3a8a5b2537fa3dd2","item":{"type":"paragraph","id":"3a8a5b2537fa3dd2","text":"We developed the more general calculator that get and set values by name. Later this was extended to include unit calculations. See [[About Method Plugin]]"},"date":1401548229581},{"type":"edit","id":"58a8b844b0f6f9ee","item":{"type":"paragraph","id":"58a8b844b0f6f9ee","text":"We showed how we could assemble a dataset from a large collection of pages, each with a variety of methods. See [[About Rollup Plugin]]"},"date":1401548327824},{"type":"edit","id":"c88f94bd22842e9e","item":{"type":"paragraph","id":"c88f94bd22842e9e","text":"We showed how we could recompute a calculation spread across many pages at interactive speeds. See [[About Reduce Plugin]]"},"date":1401548537737},{"type":"edit","id":"c88f94bd22842e9e","item":{"type":"paragraph","id":"c88f94bd22842e9e","text":"We showed how we could recompute a calculation spread across many pages at interactive speeds. This included the ability to translate the calculation to spreadsheet formulas. See [[About Reduce Plugin]]"},"date":1401548578572},{"type":"edit","id":"a2b16907864170ed","item":{"type":"html","id":"a2b16907864170ed","text":" Exploring"},"date":1420343440865},{"type":"edit","id":"1dc99874ff443808","item":{"type":"html","id":"1dc99874ff443808","text":" Deploying"},"date":1420343443272},{"type":"fork","site":"ward.fed.wiki.org","date":1469327434078}]},"curl-a-page":{"title":"Curl a Page","story":[{"type":"paragraph","id":"fb9bda378130a410","text":"We share pages by fetching them in json format over the open internet. Here we will look into a few pages to get a better idea of how they are made."},{"type":"paragraph","id":"4a33e33bc7e8b529","text":"We'll use unix command line tools to perform experiments. Curl fetches pages, jq parses json, wc counts words, sort sorts files, uniq counts duplicates."},{"type":"paragraph","id":"865326c5f010fe69","text":"A slug is a page title squeezed into mostly lower case."},{"type":"paragraph","id":"acf0ce7efce4f2df","text":"See [[About Federated Wiki]]"},{"type":"code","id":"c7c9a1ed88f366fb","text":"SITE=about.fed.wiki\nSLUG=about-federated-wiki"},{"type":"paragraph","id":"15fdb7a3344bb9f7","text":"A page has a story made up of items of various types. Here we use paragraph for plain text and markdown for emphasis. Our versions of both use the same square bracket notation for links."},{"type":"code","id":"9718f10c4e0ca692","text":"curl $SITE/$SLUG.json | \\\n jq '.story[].type'"},{"type":"code","id":"06fc19682b0f7478","text":"\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"markdown\"\n\"paragraph\"\n\"paragraph\"\n\"markdown\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"markdown\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n"},{"type":"paragraph","id":"669332d464d102bd","text":"A more complicated page has more various types. Reduce aggregates calculations from other pages."},{"type":"paragraph","id":"0ab4dd4aa067e0e0","text":"See [[About Reduce Plugin]]"},{"type":"code","id":"30fc893762e556c9","text":"SLUG=about-reduce-plugin"},{"type":"code","id":"95d4ed43bc25b47f","text":"\"paragraph\"\n\"reduce\"\n\"paragraph\"\n\"paragraph\"\n\"html\"\n\"paragraph\"\n\"html\"\n\"html\"\n\"html\"\n\"pagefold\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"pagefold\"\n\"paragraph\"\n\"html\"\n\"paragraph\"\n"},{"type":"paragraph","id":"6ce2a0d3dff1337a","text":"Each page has a journal that is made up of actions, also with types, but drawn from a much smaller and fixed set."},{"type":"code","id":"0ce58edc58244324","text":"curl $SITE/$SLUG.json | \\\n jq '.jornal[].type'"},{"type":"code","id":"ff9c2d08318cc86b","text":"\"create\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"edit\"\n\"move\"\n\"add\"\n\"edit\"\n\"move\"\n\"edit\"\n\"add\"\n\"move\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"remove\"\n\"edit\"\n\"edit\"\n\"add\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n"},{"type":"paragraph","id":"cb2627d3db40c4f1","text":"Here tallied with unix sort and uniq."},{"type":"code","id":"bf01dfc95f40d562","text":"... | sort | uniq -c | sort -n"},{"type":"code","id":"3255fc38fee729c1","text":" 1 \"create\"\n 1 \"remove\"\n 3 \"move\"\n 18 \"add\"\n 30 \"edit\"\n"},{"type":"paragraph","id":"517a87c55cdffa25","text":"See [[Curl this Site]] to see how pages fit into a larger whole."}],"journal":[{"type":"create","item":{"title":"Curl a Page","story":[]},"date":1495814686679},{"item":{"type":"factory","id":"fb9bda378130a410"},"id":"fb9bda378130a410","type":"add","date":1495814713763},{"type":"edit","id":"fb9bda378130a410","item":{"type":"paragraph","id":"fb9bda378130a410","text":"We share pages by fetching them in json format over the open internet. Here we will look into a few pages to get a better idea of how they are made."},"date":1495814815604},{"type":"add","item":{"type":"paragraph","id":"4a33e33bc7e8b529","text":"We'll use unix command line tools to perform experiments. Curl fetches pages, jq parses json, wc counts words, sort sorts files, uniq counts duplicates."},"after":"fb9bda378130a410","id":"4a33e33bc7e8b529","date":1495814836684},{"type":"add","item":{"type":"code","id":"c7c9a1ed88f366fb","text":"SITE=about.fed.wiki"},"after":"4a33e33bc7e8b529","id":"c7c9a1ed88f366fb","date":1495814847021},{"type":"edit","id":"c7c9a1ed88f366fb","item":{"type":"code","id":"c7c9a1ed88f366fb","text":"SITE=about.fed.wiki\nSLUG=about-federated-wiki"},"date":1495814909371},{"item":{"type":"factory","id":"865326c5f010fe69"},"id":"865326c5f010fe69","type":"add","after":"c7c9a1ed88f366fb","date":1495814925533},{"type":"edit","id":"865326c5f010fe69","item":{"type":"paragraph","id":"865326c5f010fe69","text":"A slug is a page title squeezed into mostly lower case."},"date":1495814959634},{"item":{"type":"factory","id":"15fdb7a3344bb9f7"},"id":"15fdb7a3344bb9f7","type":"add","after":"865326c5f010fe69","date":1495815015601},{"type":"edit","id":"15fdb7a3344bb9f7","item":{"type":"paragraph","id":"15fdb7a3344bb9f7","text":"A page has a story made up of items of various types. Here we use paragraph for plain text and markdown for emphasis."},"date":1495815094284},{"item":{"type":"factory","id":"9718f10c4e0ca692"},"id":"9718f10c4e0ca692","type":"add","after":"15fdb7a3344bb9f7","date":1495815098295},{"type":"edit","id":"9718f10c4e0ca692","item":{"type":"code","id":"9718f10c4e0ca692","text":"curl $SITE/$SLUG.json | \\\n jq '.story[].type'"},"date":1495815140883},{"item":{"type":"factory","id":"06fc19682b0f7478"},"id":"06fc19682b0f7478","type":"add","after":"9718f10c4e0ca692","date":1495815144561},{"type":"edit","id":"06fc19682b0f7478","item":{"type":"code","id":"06fc19682b0f7478","text":"\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"markdown\"\n\"paragraph\"\n\"paragraph\"\n\"markdown\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"markdown\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n"},"date":1495815149013},{"type":"edit","id":"15fdb7a3344bb9f7","item":{"type":"paragraph","id":"15fdb7a3344bb9f7","text":"A page has a story made up of items of various types. Here we use paragraph for plain text and markdown for emphasis. Both use square brackets for links."},"date":1495815171046},{"type":"edit","id":"15fdb7a3344bb9f7","item":{"type":"paragraph","id":"15fdb7a3344bb9f7","text":"A page has a story made up of items of various types. Here we use paragraph for plain text and markdown for emphasis. Our versions of both use the same square bracket notation for links."},"date":1495815213097},{"type":"move","order":["fb9bda378130a410","4a33e33bc7e8b529","865326c5f010fe69","c7c9a1ed88f366fb","15fdb7a3344bb9f7","9718f10c4e0ca692","06fc19682b0f7478"],"id":"865326c5f010fe69","date":1495815229647},{"item":{"type":"factory","id":"669332d464d102bd"},"id":"669332d464d102bd","type":"add","after":"06fc19682b0f7478","date":1495815310473},{"type":"edit","id":"669332d464d102bd","item":{"type":"paragraph","id":"669332d464d102bd","text":"A more complicated page has more various types. Reduce aggregates calculations from other pages."},"date":1495815406894},{"item":{"type":"factory","id":"1a66e155df0f916c"},"id":"1a66e155df0f916c","type":"add","after":"669332d464d102bd","date":1495815426294},{"type":"edit","id":"1a66e155df0f916c","item":{"type":"paragraph","id":"1a66e155df0f916c","text":"SLUG=about-reduce-plugin"},"date":1495815448109},{"type":"remove","id":"1a66e155df0f916c","date":1495815453962},{"item":{"type":"factory","id":"30fc893762e556c9"},"id":"30fc893762e556c9","type":"add","after":"669332d464d102bd","date":1495815455720},{"type":"edit","id":"30fc893762e556c9","item":{"type":"code","id":"30fc893762e556c9","text":"SLUG=about-reduce-plugin"},"date":1495815460834},{"type":"add","id":"acf0ce7efce4f2df","item":{"type":"paragraph","id":"acf0ce7efce4f2df","text":"See [[About Federated Wiki]]"},"after":"865326c5f010fe69","date":1495815487309},{"type":"add","id":"0ab4dd4aa067e0e0","item":{"type":"paragraph","id":"0ab4dd4aa067e0e0","text":"See [[About Reduce Plugin]]"},"after":"669332d464d102bd","date":1495815503386},{"item":{"type":"factory","id":"95d4ed43bc25b47f"},"id":"95d4ed43bc25b47f","type":"add","after":"30fc893762e556c9","date":1495815579309},{"type":"edit","id":"95d4ed43bc25b47f","item":{"type":"code","id":"95d4ed43bc25b47f","text":"\"paragraph\"\n\"reduce\"\n\"paragraph\"\n\"paragraph\"\n\"html\"\n\"paragraph\"\n\"html\"\n\"html\"\n\"html\"\n\"pagefold\"\n\"paragraph\"\n\"paragraph\"\n\"paragraph\"\n\"pagefold\"\n\"paragraph\"\n\"html\"\n\"paragraph\"\n"},"date":1495815584888},{"item":{"type":"factory","id":"6ce2a0d3dff1337a"},"id":"6ce2a0d3dff1337a","type":"add","after":"95d4ed43bc25b47f","date":1495815838038},{"type":"edit","id":"6ce2a0d3dff1337a","item":{"type":"paragraph","id":"6ce2a0d3dff1337a","text":"Each page has a journal that is made up of actions, also with types, but drawn from a much smaller and fixed set."},"date":1495815870158},{"item":{"type":"factory","id":"0ce58edc58244324"},"id":"0ce58edc58244324","type":"add","after":"6ce2a0d3dff1337a","date":1495815887315},{"type":"edit","id":"0ce58edc58244324","item":{"type":"code","id":"0ce58edc58244324","text":"curl $SITE/$SLUG.json | \\\n jq '.jornal[].type'"},"date":1495815896654},{"item":{"type":"factory","id":"ff9c2d08318cc86b"},"id":"ff9c2d08318cc86b","type":"add","after":"0ce58edc58244324","date":1495815935355},{"type":"edit","id":"ff9c2d08318cc86b","item":{"type":"code","id":"ff9c2d08318cc86b","text":"\"create\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"add\"\n\"edit\"\n\"move\"\n\"add\"\n\"edit\"\n\"move\"\n\"edit\"\n\"add\"\n\"move\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"add\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"remove\"\n\"edit\"\n\"edit\"\n\"add\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n\"edit\"\n"},"date":1495815939390},{"item":{"type":"factory","id":"cb2627d3db40c4f1"},"id":"cb2627d3db40c4f1","type":"add","after":"ff9c2d08318cc86b","date":1495816030358},{"type":"edit","id":"cb2627d3db40c4f1","item":{"type":"paragraph","id":"cb2627d3db40c4f1","text":"Here tallied with unix sort and uniq."},"date":1495816065014},{"item":{"type":"factory","id":"bf01dfc95f40d562"},"id":"bf01dfc95f40d562","type":"add","after":"cb2627d3db40c4f1","date":1495816067393},{"type":"edit","id":"bf01dfc95f40d562","item":{"type":"code","id":"bf01dfc95f40d562","text":"... | sort | uniq -c | sort -n"},"date":1495816077372},{"item":{"type":"factory","id":"3255fc38fee729c1"},"id":"3255fc38fee729c1","type":"add","after":"bf01dfc95f40d562","date":1495816098993},{"type":"edit","id":"3255fc38fee729c1","item":{"type":"code","id":"3255fc38fee729c1","text":" 1 \"create\"\n 1 \"remove\"\n 3 \"move\"\n 18 \"add\"\n 30 \"edit\"\n"},"date":1495816103983},{"item":{"type":"factory","id":"517a87c55cdffa25"},"id":"517a87c55cdffa25","type":"add","after":"3255fc38fee729c1","date":1495816203221},{"type":"edit","id":"517a87c55cdffa25","item":{"type":"paragraph","id":"517a87c55cdffa25","text":"See [[Curl this Site]] to see how pages fit into a larger whole."},"date":1495816228339}]},"curl-this-site":{"title":"Curl this Site","story":[{"type":"paragraph","id":"060c17ef9b948e97","text":"This site is made up of about thirty pages containing around 8000 words. We can fetch the whole site in export format, a hash of pages, and examine it with jq."},{"type":"paragraph","id":"4a33e33bc7e8b529","text":"We'll use unix command line tools to perform experiments. Curl fetches pages, jq parses json, wc counts words, sort sorts files, uniq counts duplicates."},{"type":"code","id":"c7c9a1ed88f366fb","text":"SITE=about.fed.wiki"},{"type":"paragraph","id":"0f9956b0084102eb","text":"We fetch the story from each page and the text from each item of the story."},{"type":"code","id":"2b9bb64d249c85d8","text":"curl $SITE/system/export.json | \\\n jq '.[].story[].text' | \\\n wc -w"},{"type":"code","id":"f7651420f80f39e4","text":" 7974"},{"type":"paragraph","id":"c05ff566231929c5","text":"The edit history of each page is stored as actions in the journal. We see there if a page has forked one from another site. We use the unix idiom, sort|uniq|sort to tally their locations."},{"type":"code","id":"e65bb203345f3571","text":"curl $SITE/system/export.json | \\\n jq '.[]|.journal[].site' | \\\n sort | \\\n uniq -c | \\\n sort -n"},{"type":"code","id":"3d7b389811e31de3","text":" 1 \"garden.asia.wiki.org\"\n 1 \"hello.ward.bay.wiki.org\"\n 1 \"house.asia.wiki.org\"\n 1 \"plugins.fed.wiki.org\"\n 1 \"splash.fed.wiki.org\"\n 1 \"ward.asia.wiki.org\"\n 2 \"ward.bay.wiki.org\"\n 3 \"forage.ward.fed.wiki.org\"\n 3 \"glossary.asia.wiki.org\"\n 4 \"ward.fed.wiki.org\"\n1123 null\n"},{"type":"paragraph","id":"590a02f88d99b542","text":"We see pages here have come from ten other sites. Four of them have been copied from multiple times. This means a third to a half of the thirty pages here started elsewhere."},{"type":"paragraph","id":"f97b9c82a6944bd8","text":"See [[Curl a Page]] to look deeper into our json."}],"journal":[{"type":"create","item":{"title":"Curl this Site","story":[]},"date":1495813069175},{"item":{"type":"factory","id":"060c17ef9b948e97"},"id":"060c17ef9b948e97","type":"add","date":1495813072834},{"type":"edit","id":"060c17ef9b948e97","item":{"type":"paragraph","id":"060c17ef9b948e97","text":"This site is made up of about thirty pages containing around 8000 words. We can fetch the whole site in export format, a hash of pages, and examine it with jq."},"date":1495813195356},{"item":{"type":"factory","id":"c7c9a1ed88f366fb"},"id":"c7c9a1ed88f366fb","type":"add","after":"060c17ef9b948e97","date":1495813256341},{"type":"edit","id":"c7c9a1ed88f366fb","item":{"type":"code","id":"c7c9a1ed88f366fb","text":"SITE=about.fed.wiki"},"date":1495813275789},{"item":{"type":"factory","id":"b02ca1e67dc821b7"},"id":"b02ca1e67dc821b7","type":"add","after":"c7c9a1ed88f366fb","date":1495813286289},{"type":"remove","id":"b02ca1e67dc821b7","date":1495813304541},{"item":{"type":"factory","id":"2b9bb64d249c85d8"},"id":"2b9bb64d249c85d8","type":"add","after":"c7c9a1ed88f366fb","date":1495813337519},{"type":"edit","id":"2b9bb64d249c85d8","item":{"type":"code","id":"2b9bb64d249c85d8","text":"curl $SITE/system/export.json | \\\n jq '.[].story[].text | \\\n wc -w"},"date":1495813430013},{"type":"edit","id":"2b9bb64d249c85d8","item":{"type":"code","id":"2b9bb64d249c85d8","text":"curl $SITE/system/export.json | \\\n jq '.[].story[].text' | \\\n wc -w"},"date":1495813439600},{"item":{"type":"factory","id":"f7651420f80f39e4"},"id":"f7651420f80f39e4","type":"add","after":"2b9bb64d249c85d8","date":1495813507661},{"type":"edit","id":"f7651420f80f39e4","item":{"type":"code","id":"f7651420f80f39e4","text":" 7974"},"date":1495813512624},{"type":"add","id":"0f9956b0084102eb","item":{"type":"paragraph","id":"0f9956b0084102eb","text":"We fetch the story from each page and the text from each item of the story."},"after":"060c17ef9b948e97","date":1495813553633},{"type":"move","order":["060c17ef9b948e97","c7c9a1ed88f366fb","0f9956b0084102eb","2b9bb64d249c85d8","f7651420f80f39e4"],"id":"0f9956b0084102eb","date":1495813559570},{"item":{"type":"factory","id":"c05ff566231929c5"},"id":"c05ff566231929c5","type":"add","after":"f7651420f80f39e4","date":1495813665379},{"type":"edit","id":"c05ff566231929c5","item":{"type":"paragraph","id":"c05ff566231929c5","text":"The edit history of each page is stored as actions in the journal. We see there if a page has forked one from another site."},"date":1495813788016},{"item":{"type":"factory","id":"e65bb203345f3571"},"id":"e65bb203345f3571","type":"add","after":"c05ff566231929c5","date":1495813810635},{"type":"edit","id":"e65bb203345f3571","item":{"type":"code","id":"e65bb203345f3571","text":"curl $SITE/system/export.json | \\\n jq '.[]|.journal[].site' | \\\n sort | \\\n uniq -c | |\n sort -n"},"date":1495813867740},{"type":"edit","id":"c05ff566231929c5","item":{"type":"paragraph","id":"c05ff566231929c5","text":"The edit history of each page is stored as actions in the journal. We see there if a page has forked one from another site. We use the unix idiom, sort|uniq|sort to tally their locations."},"date":1495813912684},{"item":{"type":"factory","id":"3d7b389811e31de3"},"id":"3d7b389811e31de3","type":"add","after":"e65bb203345f3571","date":1495813930245},{"type":"edit","id":"3d7b389811e31de3","item":{"type":"code","id":"3d7b389811e31de3","text":" 1 \"garden.asia.wiki.org\"\n 1 \"hello.ward.bay.wiki.org\"\n 1 \"house.asia.wiki.org\"\n 1 \"plugins.fed.wiki.org\"\n 1 \"splash.fed.wiki.org\"\n 1 \"ward.asia.wiki.org\"\n 2 \"ward.bay.wiki.org\"\n 3 \"forage.ward.fed.wiki.org\"\n 3 \"glossary.asia.wiki.org\"\n 4 \"ward.fed.wiki.org\"\n1123 null\n"},"date":1495813951103},{"type":"add","id":"4a33e33bc7e8b529","item":{"type":"paragraph","id":"4a33e33bc7e8b529","text":"We'll use unix command line tools to perform experiments. Curl fetches pages, jq parses json, wc counts words, sort sorts files, uniq counts duplicates."},"after":"060c17ef9b948e97","date":1495814140098},{"type":"edit","id":"e65bb203345f3571","item":{"type":"code","id":"e65bb203345f3571","text":"curl $SITE/system/export.json | \\\n jq '.[]|.journal[].site' | \\\n sort | \\\n uniq -c | \\\n sort -n"},"date":1495814172149},{"item":{"type":"factory","id":"590a02f88d99b542"},"id":"590a02f88d99b542","type":"add","after":"3d7b389811e31de3","date":1495814254422},{"type":"edit","id":"590a02f88d99b542","item":{"type":"paragraph","id":"590a02f88d99b542","text":"We see pages here have come from ten other sites. Four of them have been copied from multiple times. This means a third to a half of the thirty pages here started somewhere else."},"date":1495814423675},{"type":"edit","id":"590a02f88d99b542","item":{"type":"paragraph","id":"590a02f88d99b542","text":"We see pages here have come from ten other sites. Four of them have been copied from multiple times. This means a third to a half of the thirty pages here started elsewhere."},"date":1495814438016},{"type":"add","id":"f97b9c82a6944bd8","item":{"type":"paragraph","id":"f97b9c82a6944bd8","text":"See [[Curl a Page]] to look deeper into our json."},"after":"590a02f88d99b542","date":1495814663398}]},"familiar-workflows":{"title":"Familiar Workflows","story":[{"type":"paragraph","id":"3cee1803b52b90e5","text":"Many simple things that could be a button in a centralized system turn into a series of steps in federated wiki. We'll catalog them here as we notice them."},{"type":"paragraph","id":"d1e60683b61a3fbe","text":"[[Broadcast Workflow]] from authority to community."},{"type":"paragraph","id":"e27c44e4db5b4d8d","text":"[[Rename Workflow]] for better titles everywhere."},{"type":"paragraph","id":"853c3d1cd9633f6e","text":"[[Reflection Workflow]] for systematic understanding."},{"type":"paragraph","id":"fcb4e814c73eda8a","text":"[[Topic Split Workflow]] when one title is not enough."}],"journal":[{"type":"create","item":{"title":"Familiar Workflows","story":[]},"date":1469302415758},{"type":"add","item":{"type":"paragraph","id":"3cee1803b52b90e5","text":"Many simple things that could be a button in a centralized system turn into a series of steps in federated wiki. We'll catalog them here as we notice them."},"id":"3cee1803b52b90e5","date":1469302433983},{"type":"add","item":{"type":"paragraph","id":"d1e60683b61a3fbe","text":"[[Broadcast Workflow]] from authority to community."},"after":"3cee1803b52b90e5","id":"d1e60683b61a3fbe","date":1469302437217},{"type":"add","item":{"type":"paragraph","id":"e27c44e4db5b4d8d","text":"[[Rename Workflow]] for better titles everywhere."},"after":"d1e60683b61a3fbe","id":"e27c44e4db5b4d8d","date":1469302442774},{"type":"add","item":{"type":"paragraph","id":"853c3d1cd9633f6e","text":"[[Reflection Workflow]] for systematic understanding."},"after":"e27c44e4db5b4d8d","id":"853c3d1cd9633f6e","date":1469302446822},{"type":"add","item":{"type":"paragraph","id":"fcb4e814c73eda8a","text":"[[Topic Split Workflow]] when one title is not enough."},"after":"853c3d1cd9633f6e","id":"fcb4e814c73eda8a","date":1469302451800},{"type":"fork","date":1469302598182},{"type":"fork","site":"forage.ward.fed.wiki.org","date":1469302607352}]},"federated-wiki-at-one":{"title":"Federated Wiki at One","story":[{"type":"paragraph","id":"fe1782f59023ecbb","text":"In one year we've converted vague notions of a new wiki into a working software platform with sufficient plugins to meet a demanding open-data application. Here we reflect on this experience from a software development perspective."},{"type":"html","id":"75e1f2cec7c118f0","text":" Background"},{"type":"paragraph","id":"fb02a6751716a69a","text":"I noticed early in my experience with wiki that I had inadvertently concentrated power when the web's architecture was intended to distribute it. Correcting this mistake remained a long term goal."},{"type":"paragraph","id":"0bd6401fd1180747","text":"[[Folk Memory]] was conceived while attending a distributed computing conference. I thought, the natural properties of a distributed system were features, not flaws to be overcome. [http://static.usenix.org/publications/library/proceedings/coots97/ conference]"},{"type":"paragraph","id":"48fdb39bae867d1b","text":"[[Sister Sites]] joined namespaces among cooperating wiki sites. My original wiki spawned several more. I asked that their hosts participate as a Sister Site if they took content from mine. I promoted this idea at the first WikiSym. [http://www.oopsla.org/2005/ShowEvent.do?id=816 conference]"},{"type":"paragraph","id":"fdbf2938829e2c13","text":"[[Smallest Federated Wiki]] was imagined as a weekend project to explore the Folk Memory concept of \"trails\". Soon after, I proposed continuing this barely started effort within my responsibilities as an open-data fellow. [http://indiewebcamp.com/Smallest_Federated_Wiki camp]"},{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 COOTS\nOCTOBER 2005 WikiSym\nJUNE 2011 IndieWebCamp"},{"type":"html","id":"a4294137e8350b87","text":" Pilot Sites"},{"type":"paragraph","id":"b4df32e6fe69980e","text":"As a Nike fellow, I set out to develop SFW as an open-data platform. Under the influence of numerous interviews with potential users I began to create pilot sites. These guided ongoing development while demonstrating concepts I felt to be important."},{"type":"image","id":"bd01371c4ee3b419","url":"data:image/jpeg;base64,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","caption":"Uploaded image","text":"Russel Senior adjusts the wireless network in the community garden shed."},{"type":"paragraph","id":"8346a0925ba9fd5b","text":"[[Community Garden]] provided data that could be collected and streamed off premise without attracting too much attention. I suggested that data-streams be approved for release, not data-sets."},{"type":"paragraph","id":"6a9221046b3ed966","text":"[[Sensor Server]] data was converted from one flat file format to another using a perl program running as a cron job. The latter was the json expected by the emerging SFW client. I updated it every 5 minutes but argued that every 3 months would still be \"real time\" if it were similarly automated and didn't require additional review."},{"type":"paragraph","id":"e96fff6ea9ed8bfa","text":"[[Factories]] included historical and geographical data. This seemed ideal for feeding visualizations cast as d3.js animations. I explored force layout on a base map as a \"usefully inaccurate\" representation of densely located sites. I expected the enter/exit \"join\" mechanism of d3.js to show dramatically when reporting methodology lead to a jump in reported locations."},{"type":"paragraph","id":"7d5541ffedd4143d","text":"[[Batch Jobs]] managed via relational database and hand-made visio diagrams became another target of d3.js force layout. I sorted 44,000 records into 12,000 pages and then organized these along corporate organizational boundaries. I argued that each department to manage their own jobs and that these could be \"forked\" back and forth with corporate IT."},{"type":"paragraph","id":"fb43c99d9d93b860","text":"[[Material Sustainability Index]] was a soon-to-be-released dataset that had been reviewed and found too hard to understand and change. I suggested federated wiki could address both issues."},{"type":"paragraph","id":"e427920d41449ed5","text":"[[Pattern Efficiency]] as measured by image analysis performed client-side in the wiki."},{"type":"html","id":"afc236bfa5bb69ab","text":" Material Data"},{"type":"paragraph","id":"21a16d9adc7b6b63","text":"While SFW continued as an open-source project, executive support was sought and received for delivering material data in that medium. The workbook and accompanying pdf were revised. Wiki supplemented this as either a read-only version that could explain the data and methods or a read-write version that could support long-term maintenance of the dataset."},{"type":"paragraph","id":"a1647f9e6d4344bc","text":"[[Phrase Analysis]] of existing documentation showed terms related to measurement, framing, indexing, policy and evolution. These were assembled into an influence hierarchy which guided further design."},{"type":"image","id":"764ef67852716bc3","url":"data:image/jpeg;base64,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","caption":"Uploaded image","text":"Proposed information architecture for wiki materials sustainability data."},{"type":"paragraph","id":"8259702e8cf5e86b","text":"[[Information Architecture]] at the page level (modeled with cards) showed data flowing left to right and ending in a visualization. "},{"type":"paragraph","id":"32d000e103e01ff5","text":"[[Representational Plugins]] for tabular data and its rendering in scatter charts and radar diagrams."},{"type":"paragraph","id":"7891321112572dd1","text":"[[Workbook Export]] from excel to checkers, parsers and finally page builders."},{"type":"paragraph","id":"60f69d3153135a1f","text":"[[Wiki Import]] interpreting workbook conventions and translating them to left to right, top to bottom data flow."},{"type":"paragraph","id":"1bc7312043863507","text":"[[Computational Plugins]] for forward dataflow in methods and reverse flow in rollups."},{"type":"html","id":"f56ae60e2a0b32c7","text":" Experience"},{"type":"paragraph","id":"fd1087d90a2a6fff","text":"[[Workbook Analysis]] using Parselets and Graphviz."},{"type":"paragraph","id":"89faf87eed778f29","text":"[[Development Methods]] based on mockup, code generation and test agains excel as oracle. Enhanced checks and traceability."},{"type":"paragraph","id":"c87f0cf240e73c61","text":"[[Trouble Sources]] from inventory, oracle, manipulation of workbooks; case, code and value variation of data; size and complexity of builder; asynchronous evaluation in client code. "}],"journal":[{"type":"create","item":{"title":"Federated Wiki at One"},"date":1347731769187},{"item":{"type":"factory","id":"fe1782f59023ecbb"},"id":"fe1782f59023ecbb","type":"add","date":1347731783602},{"type":"edit","id":"fe1782f59023ecbb","item":{"type":"paragraph","id":"fe1782f59023ecbb","text":"In one year we've converted vague notions on how to improve the wiki experience into a working software platform with sufficient plugins to meet a demanding open-data application. Here we reflect on this experience from a software development perspective."},"date":1347731923772},{"type":"edit","id":"fe1782f59023ecbb","item":{"type":"paragraph","id":"fe1782f59023ecbb","text":"In one year we've converted vague notions of a new wiki into a working software platform with sufficient plugins to meet a demanding open-data application. Here we reflect on this experience from a software development perspective."},"date":1347731961443},{"item":{"type":"factory","id":"75e1f2cec7c118f0"},"id":"75e1f2cec7c118f0","type":"add","after":"fe1782f59023ecbb","date":1347731977727},{"type":"edit","id":"75e1f2cec7c118f0","item":{"type":"paragraph","id":"75e1f2cec7c118f0","text":" Background"},"date":1347732071272},{"item":{"type":"paragraph","id":"fb02a6751716a69a","text":""},"id":"fb02a6751716a69a","type":"add","after":"75e1f2cec7c118f0","date":1347732071779},{"type":"edit","id":"fb02a6751716a69a","item":{"type":"paragraph","id":"fb02a6751716a69a","text":"I noticed early in my experience with wiki that I had inadvertently concentrated power when the web's architecture was intended to distribute it. Correcting this mistake remained a long term goal."},"date":1347732214572},{"item":{"type":"paragraph","id":"0bd6401fd1180747","text":""},"id":"0bd6401fd1180747","type":"add","after":"fb02a6751716a69a","date":1347732215077},{"type":"edit","id":"0bd6401fd1180747","item":{"type":"paragraph","id":"0bd6401fd1180747","text":"[[Folk Memory]] was conceived while attending a distributed computing conference. I thought, the natural properties of a distributed system were features, not flaws to be overcome."},"date":1347732300578},{"item":{"type":"paragraph","id":"48fdb39bae867d1b","text":""},"id":"48fdb39bae867d1b","type":"add","after":"0bd6401fd1180747","date":1347732301084},{"type":"edit","id":"48fdb39bae867d1b","item":{"type":"paragraph","id":"48fdb39bae867d1b","text":"[[Sister Sites]] joined namespaces among cooperating wiki sites. My original wiki spawned several more. I asked that their hosts participate as a Sister Site if they took content from mine."},"date":1347732423639},{"item":{"type":"paragraph","id":"fdbf2938829e2c13","text":""},"id":"fdbf2938829e2c13","type":"add","after":"48fdb39bae867d1b","date":1347732424144},{"type":"edit","id":"fdbf2938829e2c13","item":{"type":"paragraph","id":"fdbf2938829e2c13","text":"[[Smallest Federated Wiki]] was imagined as a weekend project to explore the Folk Memory concept of \"trails\". Soon after, I proposed continuing this barely started effort within my responsibilities as an open-data fellow."},"date":1347732578227},{"item":{"type":"paragraph","id":"a4294137e8350b87","text":""},"id":"a4294137e8350b87","type":"add","after":"fdbf2938829e2c13","date":1347732578732},{"type":"edit","id":"a4294137e8350b87","item":{"type":"paragraph","id":"a4294137e8350b87","text":" Pilot Sites"},"date":1347732690112},{"item":{"type":"factory","id":"b4df32e6fe69980e"},"id":"b4df32e6fe69980e","type":"add","after":"a4294137e8350b87","date":1347732717626},{"type":"edit","id":"b4df32e6fe69980e","item":{"type":"paragraph","id":"b4df32e6fe69980e","text":"Under the influence of numerous interviews with potential users I began to create pilot sites. These guided ongoing development while demonstrating concepts I felt to be important."},"date":1347732832229},{"item":{"type":"paragraph","id":"8346a0925ba9fd5b","text":""},"id":"8346a0925ba9fd5b","type":"add","after":"b4df32e6fe69980e","date":1347732832735},{"type":"edit","id":"8346a0925ba9fd5b","item":{"type":"paragraph","id":"8346a0925ba9fd5b","text":"[[Community Garden]] provided data that could be collected and streamed off premise without attracting too much attention. I suggested that data-streams be approved for release, not data-sets."},"date":1347732971658},{"item":{"type":"paragraph","id":"6a9221046b3ed966","text":""},"id":"6a9221046b3ed966","type":"add","after":"8346a0925ba9fd5b","date":1347732972162},{"type":"edit","id":"6a9221046b3ed966","item":{"type":"paragraph","id":"6a9221046b3ed966","text":"[[Sensor Server]] data was converted from one flat file format to another using a perl program running as a cron job. The latter was the json expected by the emerging SFW client. I updated it every 5 minutes but argued that every 3 months would still be \"real time\" if it were similarly automated and didn't require additional review."},"date":1347733176212},{"item":{"type":"paragraph","id":"696d925f5b4e77b4","text":""},"id":"696d925f5b4e77b4","type":"add","after":"6a9221046b3ed966","date":1347733176718},{"type":"remove","id":"696d925f5b4e77b4","date":1347733219344},{"item":{"type":"paragraph","id":"e96fff6ea9ed8bfa","text":""},"id":"e96fff6ea9ed8bfa","type":"add","after":"6a9221046b3ed966","date":1347733255579},{"type":"edit","id":"e96fff6ea9ed8bfa","item":{"type":"paragraph","id":"e96fff6ea9ed8bfa","text":"[[Factories]] included historical and geographical data. This seemed ideal for feeding visualizations cast as d3.js animations. I explored force layout on a base map as a \"usefully inaccurate\" representation of densely located sites. I expected the enter/exit \"join\" mechanism of d3.js to show dramatically when reporting methodology lead to a jump in reported locations."},"date":1347733605256},{"item":{"type":"paragraph","id":"7d5541ffedd4143d","text":""},"id":"7d5541ffedd4143d","type":"add","after":"e96fff6ea9ed8bfa","date":1347733644919},{"type":"edit","id":"7d5541ffedd4143d","item":{"type":"paragraph","id":"7d5541ffedd4143d","text":"[[Batch Jobs]] managed via relational database and hand-made visio diagrams became another target of d3.js force layout. I sorted "},"date":1347733792963},{"type":"edit","id":"7d5541ffedd4143d","item":{"type":"paragraph","id":"7d5541ffedd4143d","text":"[[Batch Jobs]] managed via relational database and hand-made visio diagrams became another target of d3.js force layout. I sorted 44,000 records into 12,000 pages and then organized these along corporate organizational boundaries. I argued that each department to manage their own jobs and that these could be \"forked\" back and forth with corporate IT."},"date":1347734021077},{"item":{"type":"paragraph","id":"fb43c99d9d93b860","text":""},"id":"fb43c99d9d93b860","type":"add","after":"7d5541ffedd4143d","date":1347734080780},{"type":"edit","id":"fb43c99d9d93b860","item":{"type":"paragraph","id":"fb43c99d9d93b860","text":"[[Material Sustainability Index]] was a soon-to-be-released dataset that had been reviewed and found too hard to understand and change. I suggested federated wiki could address both issues."},"date":1347734227256},{"item":{"type":"paragraph","id":"afc236bfa5bb69ab","text":""},"id":"afc236bfa5bb69ab","type":"add","after":"fb43c99d9d93b860","date":1347734227761},{"type":"edit","id":"afc236bfa5bb69ab","item":{"type":"paragraph","id":"afc236bfa5bb69ab","text":" Material Data"},"date":1347734245359},{"item":{"type":"paragraph","id":"b49fda411d841046","text":""},"id":"b49fda411d841046","type":"add","after":"afc236bfa5bb69ab","date":1347734245863},{"type":"remove","id":"b49fda411d841046","date":1347734271293},{"item":{"type":"paragraph","id":"a1647f9e6d4344bc","text":""},"id":"a1647f9e6d4344bc","type":"add","after":"afc236bfa5bb69ab","date":1347750572161},{"type":"edit","id":"a1647f9e6d4344bc","item":{"type":"paragraph","id":"a1647f9e6d4344bc","text":"[["},"date":1347750597126},{"type":"edit","id":"a1647f9e6d4344bc","item":{"type":"paragraph","id":"a1647f9e6d4344bc","text":"[[Computational Terms Analysis]]"},"date":1347750706275},{"type":"edit","id":"a1647f9e6d4344bc","item":{"type":"paragraph","id":"a1647f9e6d4344bc","text":"[[Phrase Analysis]] of existing documentation showed terms related to measurement, indexing, "},"date":1347750827693},{"type":"edit","id":"a1647f9e6d4344bc","item":{"type":"paragraph","id":"a1647f9e6d4344bc","text":"[[Phrase Analysis]] of existing documentation showed terms related to measurement, framing, indexing, policy and evolution. An info"},"date":1347750928659},{"type":"edit","id":"a1647f9e6d4344bc","item":{"type":"paragraph","id":"a1647f9e6d4344bc","text":"[[Phrase Analysis]] of existing documentation showed terms related to measurement, framing, indexing, policy and evolution. These were assembled into an influence hierarchy which guided further design."},"date":1347750993141},{"item":{"type":"paragraph","id":"8259702e8cf5e86b","text":" "},"id":"8259702e8cf5e86b","type":"add","after":"a1647f9e6d4344bc","date":1347750993647},{"type":"edit","id":"8259702e8cf5e86b","item":{"type":"paragraph","id":"8259702e8cf5e86b","text":"[[Information Architecture]] at the page level (modeled with cards) showed data flowing left to right and ending in a visualization. "},"date":1347751190166},{"item":{"type":"paragraph","id":"7891321112572dd1","text":""},"id":"7891321112572dd1","type":"add","after":"8259702e8cf5e86b","date":1347751218965},{"type":"edit","id":"7891321112572dd1","item":{"type":"paragraph","id":"7891321112572dd1","text":"[[Workbook Export]] from excel to checkers, parsers and finally page builders."},"date":1347751340955},{"item":{"type":"paragraph","id":"60f69d3153135a1f","text":""},"id":"60f69d3153135a1f","type":"add","after":"7891321112572dd1","date":1347751341461},{"type":"edit","id":"60f69d3153135a1f","item":{"type":"paragraph","id":"60f69d3153135a1f","text":"[[Wiki Import]] interpreting workbook conventions and translating them to left to right, top to bottom data flow."},"date":1347751460185},{"item":{"type":"paragraph","id":"32d000e103e01ff5","text":""},"id":"32d000e103e01ff5","type":"add","after":"8259702e8cf5e86b","date":1347751464744},{"type":"edit","id":"32d000e103e01ff5","item":{"type":"paragraph","id":"32d000e103e01ff5","text":"[[Representational Plugins]] for tabular data and its rendering in scatter charts and radar diagrams."},"date":1347751507335},{"item":{"type":"paragraph","id":"1bc7312043863507","text":""},"id":"1bc7312043863507","type":"add","after":"60f69d3153135a1f","date":1347751519261},{"type":"edit","id":"1bc7312043863507","item":{"type":"paragraph","id":"1bc7312043863507","text":"[[Computational Plugins]] for forward dataflow in method plugins and reverse flow in rollup plugins."},"date":1347751594133},{"type":"edit","id":"32d000e103e01ff5","item":{"type":"paragraph","id":"32d000e103e01ff5","text":"[[Representational Plugins]] for tabular data plugins and its rendering in scatter chart and radar diagram plugins."},"date":1347751618980},{"type":"edit","id":"32d000e103e01ff5","item":{"type":"paragraph","id":"32d000e103e01ff5","text":"[[Representational Plugins]] for tabular data and its rendering in scatter chart and radar diagram."},"date":1347751636283},{"type":"edit","id":"1bc7312043863507","item":{"type":"paragraph","id":"1bc7312043863507","text":"[[Computational Plugins]] for forward dataflow in methods and reverse flow in rollups."},"date":1347751648315},{"type":"edit","id":"32d000e103e01ff5","item":{"type":"paragraph","id":"32d000e103e01ff5","text":"[[Representational Plugins]] for tabular data and its rendering in scatter charts and radar diagrams."},"date":1347751659635},{"item":{"type":"paragraph","id":"f56ae60e2a0b32c7","text":""},"id":"f56ae60e2a0b32c7","type":"add","after":"1bc7312043863507","date":1347751707243},{"type":"edit","id":"f56ae60e2a0b32c7","item":{"type":"paragraph","id":"f56ae60e2a0b32c7","text":" Experience"},"date":1347751721314},{"item":{"type":"paragraph","id":"fd1087d90a2a6fff","text":""},"id":"fd1087d90a2a6fff","type":"add","after":"f56ae60e2a0b32c7","date":1347751721819},{"type":"edit","id":"fd1087d90a2a6fff","item":{"type":"paragraph","id":"fd1087d90a2a6fff","text":"[[Workbook Dataflow Analysis]] using Parselets and Graphviz."},"date":1347751792880},{"item":{"type":"paragraph","id":"89faf87eed778f29","text":""},"id":"89faf87eed778f29","type":"add","after":"fd1087d90a2a6fff","date":1347751793384},{"type":"edit","id":"89faf87eed778f29","item":{"type":"paragraph","id":"89faf87eed778f29","text":"[[Development Methods]] based on mockup, code generation and test agains excel as oracle."},"date":1347751937292},{"item":{"type":"paragraph","id":"c87f0cf240e73c61","text":""},"id":"c87f0cf240e73c61","type":"add","after":"89faf87eed778f29","date":1347751937797},{"type":"edit","id":"c87f0cf240e73c61","item":{"type":"paragraph","id":"c87f0cf240e73c61","text":"[[Trouble Sources]] from inventory, oracle, manipulation of workbooks; case, code and value variation of data; size and complexity of builder; asynchronous evaluation in client code. "},"date":1347752376393},{"type":"edit","id":"89faf87eed778f29","item":{"type":"paragraph","id":"89faf87eed778f29","text":"[[Development Methods]] based on mockup, code generation and test agains excel as oracle. Enhanced checks and traceability."},"date":1347752413504},{"type":"move","order":["fe1782f59023ecbb","75e1f2cec7c118f0","fb02a6751716a69a","0bd6401fd1180747","48fdb39bae867d1b","fdbf2938829e2c13","a4294137e8350b87","b4df32e6fe69980e","8346a0925ba9fd5b","6a9221046b3ed966","e96fff6ea9ed8bfa","7d5541ffedd4143d","fb43c99d9d93b860","afc236bfa5bb69ab","a1647f9e6d4344bc","8259702e8cf5e86b","32d000e103e01ff5","7891321112572dd1","60f69d3153135a1f","1bc7312043863507","f56ae60e2a0b32c7","fd1087d90a2a6fff","c87f0cf240e73c61","89faf87eed778f29"],"id":"c87f0cf240e73c61","date":1347752421309},{"item":{"type":"paragraph","id":"21a16d9adc7b6b63","text":""},"id":"21a16d9adc7b6b63","type":"add","after":"afc236bfa5bb69ab","date":1347752544283},{"type":"edit","id":"21a16d9adc7b6b63","item":{"type":"paragraph","id":"21a16d9adc7b6b63","text":"While SFW continued as an open-source project, executive support was sought and received for delivering material data in that medium."},"date":1347752968555},{"item":{"type":"paragraph","id":"6907aa2df6bba582","text":""},"id":"6907aa2df6bba582","type":"add","after":"f56ae60e2a0b32c7","date":1347752977602},{"type":"remove","id":"6907aa2df6bba582","date":1347753000825},{"type":"edit","id":"21a16d9adc7b6b63","item":{"type":"paragraph","id":"21a16d9adc7b6b63","text":"While SFW continued as an open-source project, executive support was sought and received for delivering material data in that medium. The workbook and accompanying pdf were revised. Wiki supplemented this as either a read-only version that could explain the data and methods or a read-write version that could support long-term maintenance of the dataset."},"date":1347753169470},{"item":{"type":"paragraph","id":"86c7e1c2c27ba9d1","text":""},"id":"86c7e1c2c27ba9d1","type":"add","after":"f56ae60e2a0b32c7","date":1347753180212},{"type":"remove","id":"86c7e1c2c27ba9d1","date":1347753189225},{"type":"edit","id":"fd1087d90a2a6fff","item":{"type":"paragraph","id":"fd1087d90a2a6fff","text":"[[Workbook Analysis]] using Parselets and Graphviz."},"date":1347753422993},{"type":"move","order":["fe1782f59023ecbb","75e1f2cec7c118f0","fb02a6751716a69a","0bd6401fd1180747","48fdb39bae867d1b","fdbf2938829e2c13","a4294137e8350b87","b4df32e6fe69980e","8346a0925ba9fd5b","6a9221046b3ed966","e96fff6ea9ed8bfa","7d5541ffedd4143d","fb43c99d9d93b860","afc236bfa5bb69ab","21a16d9adc7b6b63","a1647f9e6d4344bc","8259702e8cf5e86b","32d000e103e01ff5","7891321112572dd1","60f69d3153135a1f","1bc7312043863507","f56ae60e2a0b32c7","fd1087d90a2a6fff","89faf87eed778f29","c87f0cf240e73c61"],"id":"89faf87eed778f29","date":1347753427472},{"type":"add","item":{"type":"image","id":"bd01371c4ee3b419","url":"data:image/jpeg;base64,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","caption":"Uploaded image","text":"Russel Senior adjusts the wireless network in the community garden shed."},"after":"b4df32e6fe69980e","id":"bd01371c4ee3b419","date":1347821544135},{"type":"add","item":{"type":"image","id":"764ef67852716bc3","url":"data:image/jpeg;base64,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","caption":"Uploaded image","text":"Proposed information architecture for wiki materials sustainability data."},"after":"a1647f9e6d4344bc","id":"764ef67852716bc3","date":1347822115599},{"type":"edit","id":"b4df32e6fe69980e","item":{"type":"paragraph","id":"b4df32e6fe69980e","text":"As a Nike fellow, I set out to develop SFW as an open-data platform. Under the influence of numerous interviews with potential users I began to create pilot sites. These guided ongoing development while demonstrating concepts I felt to be important."},"date":1350580609226},{"item":{"type":"paragraph","id":"e427920d41449ed5","text":""},"id":"e427920d41449ed5","type":"add","after":"c87f0cf240e73c61","date":1355005320022},{"type":"edit","id":"e427920d41449ed5","item":{"type":"paragraph","id":"e427920d41449ed5","text":"[[Pattern Efficiency]] as measured by image analysis performed client-side in the wiki."},"date":1355005358850},{"type":"move","order":["fe1782f59023ecbb","75e1f2cec7c118f0","fb02a6751716a69a","0bd6401fd1180747","48fdb39bae867d1b","fdbf2938829e2c13","a4294137e8350b87","b4df32e6fe69980e","bd01371c4ee3b419","8346a0925ba9fd5b","6a9221046b3ed966","e96fff6ea9ed8bfa","7d5541ffedd4143d","fb43c99d9d93b860","e427920d41449ed5","afc236bfa5bb69ab","21a16d9adc7b6b63","a1647f9e6d4344bc","764ef67852716bc3","8259702e8cf5e86b","32d000e103e01ff5","7891321112572dd1","60f69d3153135a1f","1bc7312043863507","f56ae60e2a0b32c7","fd1087d90a2a6fff","89faf87eed778f29","c87f0cf240e73c61"],"id":"e427920d41449ed5","date":1355005381382},{"item":{"type":"factory","id":"41935a9184493ace"},"id":"41935a9184493ace","type":"add","after":"c87f0cf240e73c61","date":1360000360450},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 Folk Memory"},"date":1360000393885},{"type":"move","order":["fe1782f59023ecbb","75e1f2cec7c118f0","41935a9184493ace","fb02a6751716a69a","0bd6401fd1180747","48fdb39bae867d1b","fdbf2938829e2c13","a4294137e8350b87","b4df32e6fe69980e","bd01371c4ee3b419","8346a0925ba9fd5b","6a9221046b3ed966","e96fff6ea9ed8bfa","7d5541ffedd4143d","fb43c99d9d93b860","e427920d41449ed5","afc236bfa5bb69ab","21a16d9adc7b6b63","a1647f9e6d4344bc","764ef67852716bc3","8259702e8cf5e86b","32d000e103e01ff5","7891321112572dd1","60f69d3153135a1f","1bc7312043863507","f56ae60e2a0b32c7","fd1087d90a2a6fff","89faf87eed778f29","c87f0cf240e73c61"],"id":"41935a9184493ace","date":1360000544573},{"type":"move","order":["fe1782f59023ecbb","75e1f2cec7c118f0","fb02a6751716a69a","0bd6401fd1180747","48fdb39bae867d1b","fdbf2938829e2c13","41935a9184493ace","a4294137e8350b87","b4df32e6fe69980e","bd01371c4ee3b419","8346a0925ba9fd5b","6a9221046b3ed966","e96fff6ea9ed8bfa","7d5541ffedd4143d","fb43c99d9d93b860","e427920d41449ed5","afc236bfa5bb69ab","21a16d9adc7b6b63","a1647f9e6d4344bc","764ef67852716bc3","8259702e8cf5e86b","32d000e103e01ff5","7891321112572dd1","60f69d3153135a1f","1bc7312043863507","f56ae60e2a0b32c7","fd1087d90a2a6fff","89faf87eed778f29","c87f0cf240e73c61"],"id":"41935a9184493ace","date":1360000553193},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 WikiSym"},"date":1360000700734},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 WikiSym\nOCT 2005 WikiSym\n"},"date":1360001694845},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 WikiSym\nOCT 2005 WikiSym"},"date":1360001699539},{"type":"edit","id":"48fdb39bae867d1b","item":{"type":"paragraph","id":"48fdb39bae867d1b","text":"[[Sister Sites]] joined namespaces among cooperating wiki sites. My original wiki spawned several more. I asked that their hosts participate as a Sister Site if they took content from mine. [http://www.oopsla.org/2005/ShowEvent.do?id=816 WikiSym]"},"date":1360001811273},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 WikiSym\nOCTOBER 2005 WikiSym"},"date":1360001878485},{"type":"edit","id":"0bd6401fd1180747","item":{"type":"paragraph","id":"0bd6401fd1180747","text":"[[Folk Memory]] was conceived while attending a distributed computing conference. I thought, the natural properties of a distributed system were features, not flaws to be overcome. [http://static.usenix.org/publications/library/proceedings/coots97/ coots]"},"date":1360002032611},{"type":"edit","id":"0bd6401fd1180747","item":{"type":"paragraph","id":"0bd6401fd1180747","text":"[[Folk Memory]] was conceived while attending a distributed computing conference. I thought, the natural properties of a distributed system were features, not flaws to be overcome. [http://static.usenix.org/publications/library/proceedings/coots97/ conference]"},"date":1360002045682},{"type":"edit","id":"48fdb39bae867d1b","item":{"type":"paragraph","id":"48fdb39bae867d1b","text":"[[Sister Sites]] joined namespaces among cooperating wiki sites. My original wiki spawned several more. I asked that their hosts participate as a Sister Site if they took content from mine. [http://www.oopsla.org/2005/ShowEvent.do?id=816 conference]"},"date":1360002061994},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 COOTS\nOCTOBER 2005 WikiSym"},"date":1360002094736},{"type":"edit","id":"fdbf2938829e2c13","item":{"type":"paragraph","id":"fdbf2938829e2c13","text":"[[Smallest Federated Wiki]] was imagined as a weekend project to explore the Folk Memory concept of \"trails\". Soon after, I proposed continuing this barely started effort within my responsibilities as an open-data fellow. [http://indiewebcamp.com/Smallest_Federated_Wiki camp]"},"date":1360002337978},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 COOTS\nOCTOBER 2005 WikiSym\nJUNE 2011 IndieWebCamp"},"date":1360002357354},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"MARCH 1995 Wiki\nJUNE 1997 COOTS\nOCTOBER 2005 WikiSym\nJUNE 2011 IndieWebCamp"},"date":1360002521542},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"AUGUST 1994 PLoP\nJUNE 1997 COOTS\nOCTOBER 2005 WikiSym\nJUNE 2011 IndieWebCamp"},"date":1360002570197},{"type":"edit","id":"41935a9184493ace","item":{"type":"calendar","id":"41935a9184493ace","text":"JUNE 1997 COOTS\nOCTOBER 2005 WikiSym\nJUNE 2011 IndieWebCamp"},"date":1360002733848},{"type":"edit","id":"48fdb39bae867d1b","item":{"type":"paragraph","id":"48fdb39bae867d1b","text":"[[Sister Sites]] joined namespaces among cooperating wiki sites. My original wiki spawned several more. I asked that their hosts participate as a Sister Site if they took content from mine. I promoted this idea at the first WikiSym. [http://www.oopsla.org/2005/ShowEvent.do?id=816 conference]"},"date":1360002793655},{"type":"edit","id":"75e1f2cec7c118f0","item":{"type":"html","id":"75e1f2cec7c118f0","text":" Background"},"date":1420300105626},{"type":"edit","id":"a4294137e8350b87","item":{"type":"html","id":"a4294137e8350b87","text":" Pilot Sites"},"date":1420300109041},{"type":"edit","id":"afc236bfa5bb69ab","item":{"type":"html","id":"afc236bfa5bb69ab","text":" Material Data"},"date":1420300113073},{"type":"edit","id":"f56ae60e2a0b32c7","item":{"type":"html","id":"f56ae60e2a0b32c7","text":" Experience"},"date":1420300116377},{"type":"fork","site":"ward.fed.wiki.org","date":1469327764390}]},"federated-wiki-design-principles":{"title":"Federated Wiki Design Principles","story":[{"type":"paragraph","id":"99925eb76e8e8b34","text":"We have concentrated on a small number of idealistic principles, beliefs even, while ignoring considerable established practice. Only by such intense focus can we expect to find fresh solutions to persistent problems."},{"type":"paragraph","id":"d44f1ffb289153a2","text":"With my first wiki I became comfortable with ideas duplicated under different names. I found, if they were important ideas, they would eventually find each other."},{"type":"paragraph","id":"3fd2f9c14f30a5f7","text":"[[Emergent Value in Proliferation]]"},{"type":"paragraph","id":"082d1099318f28fa","text":"I recognized early that wiki favors the writer at the expense of the reader who must traverse pages repeatedly to maintain any sense of context. Now I seek simplifications that favor writing even more."},{"type":"paragraph","id":"9f018da774572248","text":"[[High Awareness in Foraging]]"},{"type":"paragraph","id":"42b254369ef85026","text":"[[Mutable Linear Form]]"},{"type":"paragraph","id":"9719db90a672e7e8","text":"With a new medium I can support traditional needs new ways. My solutions may seem awkward. But they embody decisions based on a lifetime of reflection."},{"type":"paragraph","id":"e159609269eb7f53","text":"[[Authority from Trail Climbing]]"},{"type":"paragraph","id":"c2ee74e1166e1ada","text":"[[Locality of Voice and Jargon]]"},{"type":"paragraph","id":"81aeb34f6f8484e3","text":"[[Expectation of Service]]"},{"type":"paragraph","id":"43c0f1ea0adc81bb","text":"These links provide portals into three years of content produced mostly by me and mostly to experience wiki as it developed. They have thus created a neighborhood in the federation that will grow for all time forward."}],"journal":[{"type":"create","item":{"title":"Federated Wiki Design Principles","story":[]},"date":1413950292788},{"item":{"type":"factory","id":"99925eb76e8e8b34"},"id":"99925eb76e8e8b34","type":"add","date":1413950319093},{"type":"edit","id":"99925eb76e8e8b34","item":{"type":"paragraph","id":"99925eb76e8e8b34","text":"We have concentrated on a small number of idealistic principles, beliefs even, while ignoring considerable established practice. Only by such intense focus can we expect to find fresh solutions to persistent problems."},"date":1413950701828},{"item":{"type":"factory","id":"3fd2f9c14f30a5f7"},"id":"3fd2f9c14f30a5f7","type":"add","after":"99925eb76e8e8b34","date":1413951143931},{"type":"edit","id":"3fd2f9c14f30a5f7","item":{"type":"paragraph","id":"3fd2f9c14f30a5f7","text":"[[Emergent Value in Proliferation]]\n\n"},"date":1413951158740},{"item":{"type":"paragraph","id":"9f018da774572248","text":"High Awareness in Forrageing\n\nMutable Linear Form\n\nStructure in Parallel Constructions\n\nAuthority from Trail Climbing\n\nLocality of Voice and Jargon\n\nExpectation of Service\n\nWeakening Layers of Conformance"},"id":"9f018da774572248","type":"add","after":"3fd2f9c14f30a5f7","date":1413951158752},{"type":"edit","id":"9f018da774572248","item":{"type":"paragraph","id":"9f018da774572248","text":"[[High Awareness in Foraging]]\n\n"},"date":1413951169793},{"item":{"type":"paragraph","id":"42b254369ef85026","text":"Mutable Linear Form\n\nStructure in Parallel Constructions\n\nAuthority from Trail Climbing\n\nLocality of Voice and Jargon\n\nExpectation of Service\n\nWeakening Layers of Conformance"},"id":"42b254369ef85026","type":"add","after":"9f018da774572248","date":1413951169801},{"type":"edit","id":"42b254369ef85026","item":{"type":"paragraph","id":"42b254369ef85026","text":"[[Mutable Linear Form]]\n"},"date":1413951180741},{"item":{"type":"paragraph","id":"57b421e4c3c76174","text":"Structure in Parallel Constructions\n\nAuthority from Trail Climbing\n\nLocality of Voice and Jargon\n\nExpectation of Service\n\nWeakening Layers of Conformance"},"id":"57b421e4c3c76174","type":"add","after":"42b254369ef85026","date":1413951180749},{"type":"edit","id":"57b421e4c3c76174","item":{"type":"paragraph","id":"57b421e4c3c76174","text":"[[Structure in Parallel Constructions]]"},"date":1413951188945},{"item":{"type":"paragraph","id":"e159609269eb7f53","text":"\nAuthority from Trail Climbing\n\nLocality of Voice and Jargon\n\nExpectation of Service\n\nWeakening Layers of Conformance"},"id":"e159609269eb7f53","type":"add","after":"57b421e4c3c76174","date":1413951188952},{"type":"edit","id":"e159609269eb7f53","item":{"type":"paragraph","id":"e159609269eb7f53","text":"[[Authority from Trail Climbing]]"},"date":1413951196243},{"item":{"type":"paragraph","id":"c2ee74e1166e1ada","text":"\nLocality of Voice and Jargon\n\nExpectation of Service\n\nWeakening Layers of Conformance"},"id":"c2ee74e1166e1ada","type":"add","after":"e159609269eb7f53","date":1413951196250},{"type":"edit","id":"c2ee74e1166e1ada","item":{"type":"paragraph","id":"c2ee74e1166e1ada","text":"[[Locality of Voice and Jargon]]"},"date":1413951203792},{"item":{"type":"paragraph","id":"81aeb34f6f8484e3","text":"\nExpectation of Service\n\nWeakening Layers of Conformance"},"id":"81aeb34f6f8484e3","type":"add","after":"c2ee74e1166e1ada","date":1413951203801},{"type":"edit","id":"81aeb34f6f8484e3","item":{"type":"paragraph","id":"81aeb34f6f8484e3","text":"[[Expectation of Service]]"},"date":1413951211885},{"item":{"type":"paragraph","id":"f68fa67415b92cc5","text":"\nWeakening Layers of Conformance"},"id":"f68fa67415b92cc5","type":"add","after":"81aeb34f6f8484e3","date":1413951211895},{"type":"edit","id":"f68fa67415b92cc5","item":{"type":"paragraph","id":"f68fa67415b92cc5","text":"[[Weakening Layers of Conformance]]"},"date":1413951221022},{"type":"edit","id":"3fd2f9c14f30a5f7","item":{"type":"paragraph","id":"3fd2f9c14f30a5f7","text":"[[Emergent Value in Proliferation]]"},"date":1413951259995},{"type":"edit","id":"9f018da774572248","item":{"type":"paragraph","id":"9f018da774572248","text":"[[High Awareness in Foraging]]"},"date":1413951264151},{"type":"edit","id":"42b254369ef85026","item":{"type":"paragraph","id":"42b254369ef85026","text":"[[Mutable Linear Form]]"},"date":1413951267780},{"type":"edit","id":"57b421e4c3c76174","item":{"type":"paragraph","id":"57b421e4c3c76174","text":"[[Relation from Parallel Constructions]]"},"date":1413953507668},{"type":"edit","id":"57b421e4c3c76174","item":{"type":"paragraph","id":"57b421e4c3c76174","text":"[[Parallels Suggesting Relation]]"},"date":1413953622106},{"type":"edit","id":"57b421e4c3c76174","item":{"type":"paragraph","id":"57b421e4c3c76174","text":"[[Parallels Suggest Relation]]"},"date":1413953632744},{"type":"edit","id":"57b421e4c3c76174","item":{"type":"paragraph","id":"57b421e4c3c76174","text":"[[Structure from Parallels]]"},"date":1413954045103},{"type":"edit","id":"f68fa67415b92cc5","item":{"type":"paragraph","id":"f68fa67415b92cc5","text":"[[Weakening Conformance]]"},"date":1413958048684},{"type":"edit","id":"f68fa67415b92cc5","item":{"type":"paragraph","id":"f68fa67415b92cc5","text":"[[Weak Conformance]]"},"date":1413958130149},{"type":"edit","id":"f68fa67415b92cc5","item":{"type":"paragraph","id":"f68fa67415b92cc5","text":"[[Required Weak Conformance]]"},"date":1413958142690},{"type":"edit","id":"f68fa67415b92cc5","item":{"type":"paragraph","id":"f68fa67415b92cc5","text":"[[Weakening Requirements]]"},"date":1413958249066},{"item":{"type":"paragraph","id":"d44f1ffb289153a2","text":""},"id":"d44f1ffb289153a2","type":"add","after":"99925eb76e8e8b34","date":1413991583587},{"type":"edit","id":"d44f1ffb289153a2","item":{"type":"paragraph","id":"d44f1ffb289153a2","text":"With my first wiki I became comfortable with ideas duplicated under different names. I found, if they were important ideas, they would eventually find each other."},"date":1413991660619},{"item":{"type":"paragraph","id":"082d1099318f28fa","text":""},"id":"082d1099318f28fa","type":"add","after":"3fd2f9c14f30a5f7","date":1413991678232},{"type":"edit","id":"082d1099318f28fa","item":{"type":"paragraph","id":"082d1099318f28fa","text":"I recognized early that wiki favors the writer at the expense of the reader who must traverse pages repeatedly to maintain any sense of context."},"date":1413991766804},{"type":"edit","id":"082d1099318f28fa","item":{"type":"paragraph","id":"082d1099318f28fa","text":"I recognized early that wiki favors the writer at the expense of the reader who must traverse pages repeatedly to maintain any sense of context. With federation we push that balance further."},"date":1413991812081},{"type":"edit","id":"082d1099318f28fa","item":{"type":"paragraph","id":"082d1099318f28fa","text":"I recognized early that wiki favors the writer at the expense of the reader who must traverse pages repeatedly to maintain any sense of context. Now I seek simplifications that favor writing even more."},"date":1413991946488},{"item":{"type":"paragraph","id":"9719db90a672e7e8","text":""},"id":"9719db90a672e7e8","type":"add","after":"57b421e4c3c76174","date":1413991963778},{"type":"edit","id":"9719db90a672e7e8","item":{"type":"paragraph","id":"9719db90a672e7e8","text":"With a new medium I can support traditional needs new ways. My solutions may seem awkward. But they embody decisions based on a lifetime of reflection."},"date":1413992363486},{"item":{"type":"paragraph","id":"43c0f1ea0adc81bb","text":""},"id":"43c0f1ea0adc81bb","type":"add","after":"f68fa67415b92cc5","date":1413992380962},{"type":"edit","id":"43c0f1ea0adc81bb","item":{"type":"paragraph","id":"43c0f1ea0adc81bb","text":"These links provide portals into three years of content produced mostly by me and mostly to experience wiki as it developed. They have thus created a neighborhood in the federation that will grow for all time forward."},"date":1413992709101},{"type":"remove","id":"57b421e4c3c76174","date":1414130661696},{"type":"remove","id":"f68fa67415b92cc5","date":1414135134910},{"type":"add","item":{"type":"paragraph","id":"579b3e6f17d0c7c7","text":"The ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity embraces all aspects of software construction and delivery to make it the premier conference at the intersection of programming, languages, and software engineering. [http://2014.splashcon.org/home website]"},"id":"579b3e6f17d0c7c7","date":1414173378057},{"type":"remove","id":"579b3e6f17d0c7c7","date":1414173411719},{"type":"fork","site":"splash.fed.wiki.org","date":1469226973368}]},"field-guide-to-the-federation":{"title":"Field Guide to the Federation","story":[{"type":"paragraph","id":"1eb0999952e0c847","text":"We show you what we find interesting in the federation and suggest how you can make yourself at home here."},{"type":"paragraph","id":"96fb4c9bb0463f56","text":"Tip: Use the browser's back button to go back. Use the arrow keys to scroll left and right. Don't use touch until you understand how wiki works (it could work better)."},{"type":"paragraph","id":"6b95cf9425142c87","text":"[[You're New Here]] so make yourself comfortable."},{"type":"paragraph","id":"9a5d18bcf23308b0","text":"[[Featured Sites]] that show how we like to write."},{"type":"paragraph","id":"8b6536865792e0ed","text":"[[Watch Everything]] that is new in the federation."},{"type":"paragraph","id":"9102503c5b1c9a53","text":"[[Welcome Your Community]] to work this way."},{"type":"paragraph","id":"4298e056e51456a4","text":"[[Keep Safe]] from yourself, others and the march of time."}],"journal":[{"type":"create","item":{"title":"Field Guide to the Federation","story":[]},"date":1465750303628},{"item":{"type":"factory","id":"1eb0999952e0c847"},"id":"1eb0999952e0c847","type":"add","date":1465750327845},{"type":"edit","id":"1eb0999952e0c847","item":{"type":"paragraph","id":"1eb0999952e0c847","text":"We show you what we find interesting in the federation and suggest how you can make yourself at home here."},"date":1465750393944},{"type":"add","id":"6b95cf9425142c87","item":{"type":"paragraph","id":"6b95cf9425142c87","text":"[[You're New Here]] so make yourself comfortable."},"after":"1eb0999952e0c847","date":1465750472348},{"type":"add","id":"96fb4c9bb0463f56","item":{"type":"paragraph","id":"96fb4c9bb0463f56","text":"Use the browser's back button to go back."},"after":"1eb0999952e0c847","date":1465750767712},{"type":"add","id":"6378d5eb44ea7f6e","item":{"type":"paragraph","id":"6378d5eb44ea7f6e","text":"Use the arrow keys to scroll left and right."},"after":"96fb4c9bb0463f56","date":1465750796365},{"type":"edit","id":"96fb4c9bb0463f56","item":{"type":"paragraph","id":"96fb4c9bb0463f56","text":"Tip: Use the browser's back button to go back."},"date":1465750843856},{"type":"remove","id":"6378d5eb44ea7f6e","date":1465750848604},{"type":"edit","id":"96fb4c9bb0463f56","item":{"type":"paragraph","id":"96fb4c9bb0463f56","text":"Tip: Use the browser's back button to go back. Use the arrow keys to scroll left and right."},"date":1465750851121},{"type":"edit","id":"96fb4c9bb0463f56","item":{"type":"paragraph","id":"96fb4c9bb0463f56","text":"Tip: Use the browser's back button to go back. Use the arrow keys to scroll left and right. Don't use touch until you understand how wiki works."},"date":1465750877971},{"type":"edit","id":"96fb4c9bb0463f56","item":{"type":"paragraph","id":"96fb4c9bb0463f56","text":"Tip: Use the browser's back button to go back. Use the arrow keys to scroll left and right. Don't use touch until you understand how wiki works (it could work better)."},"date":1465750892428},{"type":"add","id":"9a5d18bcf23308b0","item":{"type":"paragraph","id":"9a5d18bcf23308b0","text":"[[Featured Sites]] that show how we like to write."},"after":"6b95cf9425142c87","date":1465752423709},{"type":"add","id":"8b6536865792e0ed","item":{"type":"paragraph","id":"8b6536865792e0ed","text":"[[Watch Everything]] that is new in the federation."},"after":"9a5d18bcf23308b0","date":1465757095163},{"type":"add","id":"9102503c5b1c9a53","item":{"type":"paragraph","id":"9102503c5b1c9a53","text":"[[Welcome Your Community]] to work this way."},"after":"8b6536865792e0ed","date":1465758088668},{"type":"add","id":"4298e056e51456a4","item":{"type":"paragraph","id":"4298e056e51456a4","text":"[[Keep Safe]] from yourself, others and the march of time."},"after":"9102503c5b1c9a53","date":1488335368485},{"type":"fork","site":"hello.ward.bay.wiki.org","date":1498487118820}]},"formatting-strengths":{"title":"Formatting Strengths","story":[{"type":"paragraph","id":"8551fb8f447427ff","text":"Wiki offers various markups for formatting text, each with a corresponding plugin that performs the transformation, and each with its own speciality. All implement the same markup for our specialty, the [[Collaborative Link]]."},{"type":"markdown","id":"2887ff42cffcdc87","text":"# Paragraph"},{"type":"paragraph","id":"0454458e6ade816e","text":"We call our version of plain text Paragraphs. It is the default when no effort is made to select any other markup. We write in long lines that fold as needed. Unicode characters offer formatting spice like bullets ■ arrows ➨ and check marks ✔︎ See [[About Paragraph Plugin]]"},{"type":"paragraph","id":"1dbce48c25f493ad","text":"Paragraphs automatically spawn new Paragraphs as one types return. A backspace can 'erase' the newline returning edit back to the original item. This is generalized to split and join from the middle of a Paragraph."},{"type":"markdown","id":"8ccd3a252b9221cf","text":"# Markdown"},{"type":"paragraph","id":"b2533c3a22d91bee","text":"We use Markdown conventions for bold, italic, headings and tightly spaced bullets. See [[About Markdown Plugin]]"},{"type":"paragraph","id":"9aeb39eccf509822","text":"A special feature of our flavor of Markdown is the GitHub inspired checklists. A click of a checkbox toggles the check, which translates to a page editing operation timestamped and logged in the journal."},{"type":"markdown","id":"6bbdc1d41e530b4b","text":"# MathJax"},{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTeX mathematical notation imbedded within or between the lines of an otherwise normal paragraph. See [[About MathJax Plugin]]"},{"type":"mathjax","id":"e3fec2556bc095f6","text":"Probability of getting \\(k\\) heads when flipping \\(n\\) coins\n\\[ P(E) = {n \\choose k} p^k (1-p)^{ n-k } \\]"},{"type":"markdown","id":"e487ef72d8b6f50f","text":"# HTML"},{"type":"paragraph","id":"da252184f7f7de7c","text":"Use HTML tags for routine formatting not available in our other plugins. This includes underline, strike-through, sub and superscripts, nested bullets and tables. We scrub clean this markup with the Caja sanitizer so you don't catch malware from other sites. See [[About HTML Plugin]]"},{"type":"html","id":"93cd68dd4dd63924","text":"
\n\nMarkup\n | Strength\n |
\nParagraph\n | Split\n |
\nMarkdown\n | Checklist\n |
\nMathJax\n | Math\n |
\nHTML\n | Forms\n |
"},{"type":"paragraph","id":"1b33401772ce1e02","text":"We can write fill-in-the-blank forms using the HTML plugin and have a remote server return a new wiki page that can be forked into the wiki if one chooses."}],"journal":[{"type":"create","item":{"title":"Formatting Strengths","story":[]},"date":1475354151096},{"item":{"type":"factory","id":"8551fb8f447427ff"},"id":"8551fb8f447427ff","type":"add","date":1475354163018},{"type":"edit","id":"8551fb8f447427ff","item":{"type":"paragraph","id":"8551fb8f447427ff","text":"Wiki offers various markups for formatting text, each with a corresponding plugin that performs the transformation, and each with its own speciality."},"date":1475354244971},{"type":"edit","id":"8551fb8f447427ff","item":{"type":"paragraph","id":"8551fb8f447427ff","text":"Wiki offers various markups for formatting text, each with a corresponding plugin that performs the transformation, and each with its own speciality. All implement the same markup for our specialty, [[Collaborative Links]]."},"date":1475354286778},{"type":"edit","id":"8551fb8f447427ff","item":{"type":"paragraph","id":"8551fb8f447427ff","text":"Wiki offers various markups for formatting text, each with a corresponding plugin that performs the transformation, and each with its own speciality. All implement the same markup for our specialty, [[Collaborative Link]]."},"date":1475354295764},{"type":"edit","id":"8551fb8f447427ff","item":{"type":"paragraph","id":"8551fb8f447427ff","text":"Wiki offers various markups for formatting text, each with a corresponding plugin that performs the transformation, and each with its own speciality. All implement the same markup for our specialty, the [[Collaborative Link]]."},"date":1475354307085},{"type":"add","id":"2887ff42cffcdc87","item":{"type":"paragraph","id":"2887ff42cffcdc87","text":"# Paragraph"},"after":"8551fb8f447427ff","date":1475354353510},{"type":"add","id":"0454458e6ade816e","item":{"type":"paragraph","id":"0454458e6ade816e","text":"We call our version of plain text Paragraphs. It is the default when no effort is made to select any other markup. We write in long lines that fold as needed. Unicode characters offer some formatting spice like bullets ■ arrows ➨ and check marks ✔︎."},"after":"2887ff42cffcdc87","date":1475354677916},{"type":"add","id":"1dbce48c25f493ad","item":{"type":"paragraph","id":"1dbce48c25f493ad","text":"Paragraphs automatically spawn new Paragraphs as one types return. A backspace can 'erase' the newline returning edit back to the original item. This is generalized to split and join from the middle of a Paragraph."},"after":"0454458e6ade816e","date":1475354899131},{"type":"edit","id":"2887ff42cffcdc87","item":{"type":"markdown","id":"2887ff42cffcdc87","text":"# Paragraph"},"date":1475354904098},{"type":"add","id":"8ccd3a252b9221cf","item":{"type":"paragraph","id":"8ccd3a252b9221cf","text":"# Markdown"},"after":"1dbce48c25f493ad","date":1475354934977},{"type":"add","id":"b2533c3a22d91bee","item":{"type":"paragraph","id":"b2533c3a22d91bee","text":"We use Markdown conventions for bold, italic, headings and tightly spaced bullets. See [[About Markdown Plugin]]"},"after":"8ccd3a252b9221cf","date":1475355201776},{"type":"add","id":"9aeb39eccf509822","item":{"type":"paragraph","id":"9aeb39eccf509822","text":"A special feature of our flavor of Markdown is the GitHub inspired checklists. A click of a checkbox toggles the check, which translates to a page editing operation timestamped and logged in the journal."},"after":"b2533c3a22d91bee","date":1475355382140},{"type":"edit","id":"8ccd3a252b9221cf","item":{"type":"markdown","id":"8ccd3a252b9221cf","text":"# Markdown"},"date":1475355388087},{"type":"add","id":"6bbdc1d41e530b4b","item":{"type":"paragraph","id":"6bbdc1d41e530b4b","text":"# MathJax"},"after":"9aeb39eccf509822","date":1475355485984},{"type":"add","id":"c2604cf75f58cde8","item":{"type":"paragraph","id":"c2604cf75f58cde8","text":"See [[About MathJax Plugin]]"},"after":"6bbdc1d41e530b4b","date":1475355523225},{"type":"add","item":{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTeX mathematical notation imbedded within an otherwise normal paragraph."},"after":"6bbdc1d41e530b4b","id":"1f4c86f9fa066640","date":1475355583940},{"type":"remove","id":"c2604cf75f58cde8","date":1475355654185},{"type":"edit","id":"1f4c86f9fa066640","item":{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTeX mathematical notation imbedded within an otherwise normal paragraph. See [[About MathJax Plugin]]"},"date":1475355656532},{"type":"add","item":{"type":"mathjax","id":"e3fec2556bc095f6","text":"Probability of getting \\(k\\) heads when flipping \\(n\\) coins\n\\[ P(E) = {n \\choose k} p^k (1-p)^{ n-k } \\]"},"after":"1f4c86f9fa066640","id":"e3fec2556bc095f6","date":1475355681565},{"type":"edit","id":"1f4c86f9fa066640","item":{"type":"paragraph","id":"1f4c86f9fa066640","text":"The MathJax plugin renders LaTeX mathematical notation imbedded within or between the lines of an otherwise normal paragraph. See [[About MathJax Plugin]]"},"date":1475355731443},{"type":"edit","id":"6bbdc1d41e530b4b","item":{"type":"markdown","id":"6bbdc1d41e530b4b","text":"# MathJax"},"date":1475355742852},{"item":{"type":"factory","id":"c42d2bc8c350edf3"},"id":"c42d2bc8c350edf3","type":"add","after":"e3fec2556bc095f6","date":1475355783829},{"type":"edit","id":"c42d2bc8c350edf3","item":{"type":"markdown","id":"c42d2bc8c350edf3","text":"We use Markdown conventions for _bold_, italic, headings and tightly spaced bullets. See [[About Markdown Plugin]]"},"date":1475355796066},{"type":"edit","id":"c42d2bc8c350edf3","item":{"type":"markdown","id":"c42d2bc8c350edf3","text":"We use Markdown conventions for __bold__, _italic_, headings and tightly spaced bullets. See [[About Markdown Plugin]]"},"date":1475355808753},{"type":"remove","id":"c42d2bc8c350edf3","date":1475355833514},{"type":"add","id":"e487ef72d8b6f50f","item":{"type":"paragraph","id":"e487ef72d8b6f50f","text":"# HTML"},"after":"9aeb39eccf509822","date":1475355914435},{"type":"move","order":["8551fb8f447427ff","2887ff42cffcdc87","0454458e6ade816e","1dbce48c25f493ad","8ccd3a252b9221cf","b2533c3a22d91bee","9aeb39eccf509822","6bbdc1d41e530b4b","1f4c86f9fa066640","e3fec2556bc095f6","e487ef72d8b6f50f"],"id":"e487ef72d8b6f50f","date":1475355919235},{"type":"edit","id":"e487ef72d8b6f50f","item":{"type":"markdown","id":"e487ef72d8b6f50f","text":"# HTML"},"date":1475355962456},{"item":{"type":"factory","id":"da252184f7f7de7c"},"id":"da252184f7f7de7c","type":"add","after":"e487ef72d8b6f50f","date":1475355968294},{"type":"edit","id":"da252184f7f7de7c","item":{"type":"paragraph","id":"da252184f7f7de7c","text":"Use HTML tags for routine formatting not available in our other plugins. This includes underline, strike-through, sub and superscripts, nested bullets and tables."},"date":1475356128077},{"type":"edit","id":"da252184f7f7de7c","item":{"type":"paragraph","id":"da252184f7f7de7c","text":"Use HTML tags for routine formatting not available in our other plugins. This includes underline, strike-through, sub and superscripts, nested bullets and tables. We scrub clean this markup with the Caja sanitizer so that we don't distribute malware from wiki to wiki."},"date":1475356261580},{"type":"add","id":"1b33401772ce1e02","item":{"type":"paragraph","id":"1b33401772ce1e02","text":"We can write fill-in-the-blank forms using the HTML plugin and have a remote server return a new wiki page that can be forked into the wiki if one chooses."},"after":"da252184f7f7de7c","date":1475356431230},{"item":{"type":"factory","id":"93cd68dd4dd63924"},"id":"93cd68dd4dd63924","type":"add","after":"1b33401772ce1e02","date":1475356512523},{"type":"edit","id":"93cd68dd4dd63924","item":{"type":"html","id":"93cd68dd4dd63924","text":"\n\nMarkup\n | Feature\n |
\nParagraph\n | Split\n |
\nMarkdown\n | Checklist\n |
\nMathJax\n | Math\n |
\nHTML\n | Forms\n |
"},"date":1475356695733},{"type":"edit","id":"93cd68dd4dd63924","item":{"type":"html","id":"93cd68dd4dd63924","text":"\n\nMarkup\n | Feature\n |
\nParagraph\n | Split\n |
\nMarkdown\n | Checklist\n |
\nMathJax\n | Math\n |
\nHTML\n | Forms\n |
"},"date":1475356717385},{"type":"edit","id":"93cd68dd4dd63924","item":{"type":"html","id":"93cd68dd4dd63924","text":"\n\nMarkup\n | Feature\n |
\nParagraph\n | Split\n |
\nMarkdown\n | Checklist\n |
\nMathJax\n | Math\n |
\nHTML\n | Forms\n |
"},"date":1475356749860},{"type":"edit","id":"93cd68dd4dd63924","item":{"type":"html","id":"93cd68dd4dd63924","text":"\n\nMarkup\n | Feature\n |
\nParagraph\n | Split\n |
\nMarkdown\n | Checklist\n |
\nMathJax\n | Math\n |
\nHTML\n | Forms\n |
"},"date":1475356758586},{"type":"move","order":["8551fb8f447427ff","2887ff42cffcdc87","0454458e6ade816e","1dbce48c25f493ad","8ccd3a252b9221cf","b2533c3a22d91bee","9aeb39eccf509822","6bbdc1d41e530b4b","1f4c86f9fa066640","e3fec2556bc095f6","e487ef72d8b6f50f","da252184f7f7de7c","93cd68dd4dd63924","1b33401772ce1e02"],"id":"93cd68dd4dd63924","date":1475356771295},{"type":"edit","id":"0454458e6ade816e","item":{"type":"paragraph","id":"0454458e6ade816e","text":"We call our version of plain text Paragraphs. It is the default when no effort is made to select any other markup. We write in long lines that fold as needed. Unicode characters offer some formatting spice like bullets ■ arrows ➨ and check marks ✔︎. See [[About Paragraph Plugin]]"},"date":1475356865178},{"type":"edit","id":"0454458e6ade816e","item":{"type":"paragraph","id":"0454458e6ade816e","text":"We call our version of plain text Paragraphs. It is the default when no effort is made to select any other markup. We write in long lines that fold as needed. Unicode characters offer formatting spice like bullets ■ arrows ➨ and check marks ✔︎. See [[About Paragraph Plugin]]"},"date":1475356879174},{"type":"edit","id":"da252184f7f7de7c","item":{"type":"paragraph","id":"da252184f7f7de7c","text":"Use HTML tags for routine formatting not available in our other plugins. This includes underline, strike-through, sub and superscripts, nested bullets and tables. We scrub clean this markup with the Caja sanitizer so that we don't distribute malware from wiki to wiki. See [[About HTML Plugin]]"},"date":1475356900520},{"type":"edit","id":"da252184f7f7de7c","item":{"type":"paragraph","id":"da252184f7f7de7c","text":"Use HTML tags for routine formatting not available in our other plugins. This includes underline, strike-through, sub and superscripts, nested bullets and tables. We scrub clean this markup with the Caja sanitizer so you don't catch malware from other sites. See [[About HTML Plugin]]"},"date":1475356949836},{"type":"edit","id":"93cd68dd4dd63924","item":{"type":"html","id":"93cd68dd4dd63924","text":"\n\nMarkup\n | Strength\n |
\nParagraph\n | Split\n |
\nMarkdown\n | Checklist\n |
\nMathJax\n | Math\n |
\nHTML\n | Forms\n |
"},"date":1475357008087},{"type":"add","item":{"type":"markdown","id":"07d659385974ece9","text":"- [x] Wake up, fall out of bed\n- [x] Drag a comb across my head\n- [ ] Find my coat and grab my hat\n- [ ] Make the bus in seconds flat"},"after":"9aeb39eccf509822","id":"07d659385974ece9","date":1475357188720},{"type":"remove","id":"07d659385974ece9","date":1475357241162},{"type":"edit","id":"0454458e6ade816e","item":{"type":"paragraph","id":"0454458e6ade816e","text":"We call our version of plain text Paragraphs. It is the default when no effort is made to select any other markup. We write in long lines that fold as needed. Unicode characters offer formatting spice like bullets ■ arrows ➨ and check marks ✔︎ See [[About Paragraph Plugin]]"},"date":1475357726179}]},"hacking-wikis-methods":{"title":"Hacking Wiki's Methods","story":[{"type":"paragraph","id":"93bd372715f31c9a","text":"The Method plugin has already grown complex interacting across pages and between other plugins. Here I consider how I approached a large increment in functionality when I added units and expressions."},{"type":"paragraph","id":"e591e7d6fcfa467f","text":"A method sums a column of numbers."},{"type":"method","id":"aaef6ab7ae8a028a","text":"2 Family\n3 Friends\n5 Children\nSUM For Dinner"},{"type":"paragraph","id":"5359c1955afec33c","text":"See [[About Method Plugin]]."},{"type":"html","id":"e6b2e07d9a42e879","text":" Context"},{"type":"paragraph","id":"6635b10a1e87dda1","text":"A Method looks above and to the left for other sources of variable bindings. These could be other Methods, Data sets or any item advertising radarData. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L389-L395 github]"},{"type":"paragraph","id":"570e2f483e8a632e","text":"A Method offers its output as radarData to be consumed by, say, Radar plugins. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L389-L395 github]"},{"type":"paragraph","id":"802e7e2469420895","text":"A Method plugin can be instantiated independent of a displayed page and \"force fed\" items to be evaluated. The Rollup and Reduce plugins use this mechanism."},{"type":"paragraph","id":"2aa84399a8d4ed47","text":"See [[About Reduce Plugin]], [https://github.com/fedwiki/wiki-plugin-reduce/blob/1ac5bdb6ac69ded484935854c85c9aaaae80de25/client/reduce.coffee#L97-L120 github]"},{"type":"paragraph","id":"2b888e30424eb171","text":"The page load refresh is careful to sequentially evaluate Methods for the top to bottom, left to right flow of data holds. [https://github.com/fedwiki/wiki-client/blob/a54316b63b7412cf3fbf48f4009db501a16ee915/lib/refresh.coffee#L160-L167 github]"},{"type":"html","id":"d47f6b10590ea97a","text":" Specification"},{"type":"paragraph","id":"fe21004eb5a0d507","text":"I wrote casual specifications of both unit and equation extensions to Method and asked that Michael Mehaffy, the first intended user, review these. I created checklists from these while coding."},{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":"See [[Method Unit Conversions]]."},{"type":"paragraph","id":"a53e9d1ed01d4188","text":"See [[Method Expressions]]."},{"type":"paragraph","id":"cf419d60a86a0c03","text":"See [[Method Unit Coding]]."},{"type":"paragraph","id":"9c18f158f84af056","text":"I wrote Mocha tests for calculations that were already known to work. I ran these through the runtests.html interface available on the Ruby/Sinatra server implementation. I ran these from localhost using Mocha's grep option to focus on Method. [http://localhost:1111/runtests.html?grep=method localhost]"},{"type":"paragraph","id":"aa091b280c6047b9","text":"Given some conversion factors. [http://www.oregonlive.com/gasprices/ gas]"},{"type":"method","id":"34a03307fc9384e8","text":"3.59 Gas Price (dollars) given (gallons)\n24 Fuel Economy (miles) given (gallons)\n1.60934 Metric Distance (km) given (miles)"},{"type":"paragraph","id":"1309effff7fc453e","text":"Estimate gas money required for a drive from Vancouver to Portland and beyond. [http://goo.gl/maps/WKpWt maps]"},{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)"},{"type":"paragraph","id":"1ab617507b09bd3c","text":"See [[Method Control Loops]] for more emerging features."},{"type":"html","id":"4cb9a4f95b30ea82","text":" Code"},{"type":"paragraph","id":"8b15372316d3ec9e","text":"Units. Utility functions that extract values and units from objects, parse labels as units, and perform likely coercions. All new except for asValue which anticipated units. This could reasonably be another module. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L139 github]"},{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. Only here do we know what kind of coercion will be applied. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},{"type":"method","id":"7c867ac6911b4ae1","text":"Driving from Vancouver (km)\nDriving to S.F. (miles)\nCosts Money (dollars)\nCALC dollars / ( from + to )\nSHOW Gas Money"},{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. All new. Variables are retrieved from local bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L194-L248 github]"},{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for operation keywords, line by line, with long labels for variable names. Accumulates \"local\" bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L378 github]"},{"type":"paragraph","id":"6159595073489254","text":"Interface. The emit and bind of the wiki interface as well as the module interface used by the tests. Prints extra if \"debug\" variable exists and is non-zero. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L380-L434 github]"},{"type":"html","id":"67fb56c0f6a8cbce","text":" Development"},{"type":"paragraph","id":"548d0dc1f3a3680e","text":"We will use at least two repos during development: one to build the plugin, the other to serve the built plugin."},{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo. Expose this location for linking. Start grunt doing builds. You will do your editing here. Watch for test results on save."},{"type":"code","id":"24204bd2c81d3379","text":"git clone ... wiki-plugin-method.git\ncd wiki-plugin-method\nnpm install\nnpm link\ngrunt watch"},{"type":"paragraph","id":"8ad4bfee4a5652c6","text":"Clone a test version of the server. Link it to the plugin directory. Start the server. Browse. [http://localhost:3030 localhost]"},{"type":"code","id":"6c94ed8f754113a1","text":"git clone ... wiki-node.git\ncd wiki-node\nnpm link ../wiki-plugin-method\nnode bin/server.js -p 3030 &\n"},{"type":"paragraph","id":"6578067257139e79","text":"Hard link plugin documentation to your server pages."},{"type":"code","id":"04b493635814b5fb","text":"cd wiki-plugin-method\nln pages/about-method-plugin ~/.wiki/pages"},{"type":"paragraph","id":"56062cb3bfce865e","text":"Write tests. Pass them. Revise documentation. Commit to a branch. Push to github and issue pull request."},{"type":"code","id":"93ffd43274416147","text":"git checkout -b you/feature\ngit commit -a -m \"your feature explained\"\ngit push origin you/feature"},{"type":"paragraph","id":"3e6eff675af6317f","text":"We will merge your feature. Test it. Bump the version. Publish. Update the repo tags."},{"type":"code","id":"7c849e15199bd029","text":"cd wiki-plugin-method\ngit pull\ngrunt test\nnpm version patch\nnpm plublish\ngit push --tags"}],"journal":[{"type":"create","item":{"title":"Hacking Wiki's Methods","story":[]},"date":1390421020713},{"item":{"type":"factory","id":"93bd372715f31c9a"},"id":"93bd372715f31c9a","type":"add","date":1390421022496},{"type":"edit","id":"93bd372715f31c9a","item":{"type":"paragraph","id":"93bd372715f31c9a","text":"The Method plugin has already grown complex interacting across pages and between other plugins. Here I consider how I approached a large increment in functionality when I added units and expressions."},"date":1390421129974},{"item":{"type":"factory","id":"e6b2e07d9a42e879"},"id":"e6b2e07d9a42e879","type":"add","after":"93bd372715f31c9a","date":1390449528324},{"type":"edit","id":"e6b2e07d9a42e879","item":{"type":"paragraph","id":"e6b2e07d9a42e879","text":" Context"},"date":1390449543709},{"item":{"type":"paragraph","id":"6635b10a1e87dda1","text":""},"id":"6635b10a1e87dda1","type":"add","after":"e6b2e07d9a42e879","date":1390449544215},{"type":"edit","id":"6635b10a1e87dda1","item":{"type":"paragraph","id":"6635b10a1e87dda1","text":"A Method looks above and to the left for other sources of variable bindings. These could be other Methods, Data sets or any item advertising radarData."},"date":1390449813284},{"item":{"type":"paragraph","id":"570e2f483e8a632e","text":""},"id":"570e2f483e8a632e","type":"add","after":"6635b10a1e87dda1","date":1390449813796},{"type":"edit","id":"570e2f483e8a632e","item":{"type":"paragraph","id":"570e2f483e8a632e","text":"A Method offers its output as radarData to be consumed by, say, Radar plugins."},"date":1390449847494},{"item":{"type":"paragraph","id":"802e7e2469420895","text":""},"id":"802e7e2469420895","type":"add","after":"570e2f483e8a632e","date":1390449848000},{"type":"edit","id":"802e7e2469420895","item":{"type":"paragraph","id":"802e7e2469420895","text":"A Method plugin can be instantiated independent of a displayed page and \"force fed\" items to be evaluated. The Rollup and Reduce plugins use this \"eval\" capability to evaluate Methods on pages they fetch directly from servers."},"date":1390450216570},{"item":{"type":"paragraph","id":"0811767d1efd11d4","text":""},"id":"0811767d1efd11d4","type":"add","after":"802e7e2469420895","date":1390450217076},{"type":"remove","id":"0811767d1efd11d4","date":1390450231166},{"type":"edit","id":"802e7e2469420895","item":{"type":"paragraph","id":"802e7e2469420895","text":"A Method plugin can be instantiated independent of a displayed page and \"force fed\" items to be evaluated. The Rollup and Reduce plugins thus evaluate off screen pages."},"date":1390450275736},{"item":{"type":"paragraph","id":"d5bc472d2591d262","text":""},"id":"d5bc472d2591d262","type":"add","after":"802e7e2469420895","date":1390450287032},{"type":"remove","id":"d5bc472d2591d262","date":1390450302646},{"type":"edit","id":"802e7e2469420895","item":{"type":"paragraph","id":"802e7e2469420895","text":"A Method plugin can be instantiated independent of a displayed page and \"force fed\" items to be evaluated. The Rollup and Reduce plugins use this mechanism."},"date":1390450344230},{"item":{"type":"paragraph","id":"2b888e30424eb171","text":""},"id":"2b888e30424eb171","type":"add","after":"802e7e2469420895","date":1390450344736},{"type":"edit","id":"2b888e30424eb171","item":{"type":"paragraph","id":"2b888e30424eb171","text":"The page load refresh is careful to sequentially evaluate Methods so that the top to bottom, left to right flow of data holds."},"date":1390450455379},{"type":"edit","id":"2b888e30424eb171","item":{"type":"paragraph","id":"2b888e30424eb171","text":"The page load refresh is careful to sequentially evaluate Methods for the top to bottom, left to right flow of data holds."},"date":1390450532305},{"item":{"type":"factory","id":"d47f6b10590ea97a"},"id":"d47f6b10590ea97a","type":"add","after":"2b888e30424eb171","date":1390450540043},{"type":"edit","id":"d47f6b10590ea97a","item":{"type":"paragraph","id":"d47f6b10590ea97a","text":" Method"},"date":1390450558616},{"item":{"type":"paragraph","id":"fe21004eb5a0d507","text":""},"id":"fe21004eb5a0d507","type":"add","after":"d47f6b10590ea97a","date":1390450559121},{"type":"edit","id":"fe21004eb5a0d507","item":{"type":"paragraph","id":"fe21004eb5a0d507","text":"I wrote casual specifications of both unit and equation extensions to Method and asked that Michael Mehaffy, the first intended user, review these."},"date":1390450614268},{"item":{"type":"paragraph","id":"db8cd8c373dded18","text":""},"id":"db8cd8c373dded18","type":"add","after":"fe21004eb5a0d507","date":1390450614774},{"type":"remove","id":"db8cd8c373dded18","date":1390450623815},{"item":{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":""},"id":"0e4ff6ca8ba2eb41","type":"add","after":"fe21004eb5a0d507","date":1390450639397},{"type":"edit","id":"0e4ff6ca8ba2eb41","item":{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":"See [[Method Unit Converstions]]."},"date":1390450654300},{"item":{"type":"paragraph","id":"a53e9d1ed01d4188","text":""},"id":"a53e9d1ed01d4188","type":"add","after":"0e4ff6ca8ba2eb41","date":1390450654806},{"type":"edit","id":"a53e9d1ed01d4188","item":{"type":"paragraph","id":"a53e9d1ed01d4188","text":"See [[Method Expressions]]."},"date":1390450669500},{"item":{"type":"paragraph","id":"4034360545d9c483","text":""},"id":"4034360545d9c483","type":"add","after":"a53e9d1ed01d4188","date":1390450670005},{"type":"remove","id":"4034360545d9c483","date":1390450671906},{"type":"edit","id":"d47f6b10590ea97a","item":{"type":"paragraph","id":"d47f6b10590ea97a","text":" Specification"},"date":1390450687595},{"item":{"type":"factory","id":"8e77575eac5a098b"},"id":"8e77575eac5a098b","type":"add","after":"a53e9d1ed01d4188","date":1390450698445},{"type":"remove","id":"8e77575eac5a098b","date":1390450754558},{"type":"edit","id":"0e4ff6ca8ba2eb41","item":{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":"See [[Method Unit Converstions]] and [[Method Unit Coding]]."},"date":1390450785463},{"type":"edit","id":"fe21004eb5a0d507","item":{"type":"paragraph","id":"fe21004eb5a0d507","text":"I wrote casual specifications of both unit and equation extensions to Method and asked that Michael Mehaffy, the first intended user, review these. I created checklists from these while coding."},"date":1390450809000},{"type":"edit","id":"0e4ff6ca8ba2eb41","item":{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":"See [[Method Unit Converstions]]."},"date":1390450820993},{"item":{"type":"paragraph","id":"cf419d60a86a0c03","text":"[[Method Unit Coding]]."},"id":"cf419d60a86a0c03","type":"add","after":"0e4ff6ca8ba2eb41","date":1390450821498},{"type":"edit","id":"cf419d60a86a0c03","item":{"type":"paragraph","id":"cf419d60a86a0c03","text":"See [[Method Unit Coding]]."},"date":1390450823943},{"item":{"type":"paragraph","id":"9c18f158f84af056","text":""},"id":"9c18f158f84af056","type":"add","after":"a53e9d1ed01d4188","date":1390450851038},{"type":"edit","id":"9c18f158f84af056","item":{"type":"paragraph","id":"9c18f158f84af056","text":"I wrote Mocha tests for calculations that were already known to work. I ran these through the runtests.html interface available on the Ruby/Sinatra server implementation."},"date":1390451005852},{"type":"edit","id":"0e4ff6ca8ba2eb41","item":{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":"See [[Method Unit Converstion]]."},"date":1390451108326},{"type":"edit","id":"0e4ff6ca8ba2eb41","item":{"type":"paragraph","id":"0e4ff6ca8ba2eb41","text":"See [[Method Unit Conversions]]."},"date":1390451137129},{"type":"edit","id":"9c18f158f84af056","item":{"type":"paragraph","id":"9c18f158f84af056","text":"I wrote Mocha tests for calculations that were already known to work. I ran these through the runtests.html interface available on the Ruby/Sinatra server implementation. I ran these from localhost using Mocha's grep option to focus on Method. [http://localhost:1111/runtests.html?grep=method mocha]"},"date":1390451322352},{"item":{"type":"paragraph","id":"35ea9d4e1921f975","text":""},"id":"35ea9d4e1921f975","type":"add","after":"9c18f158f84af056","date":1390451412157},{"type":"edit","id":"35ea9d4e1921f975","item":{"type":"paragraph","id":"35ea9d4e1921f975","text":"I worked test-driven through my checklists. "},"date":1390451499844},{"item":{"type":"factory","id":"4cb9a4f95b30ea82"},"id":"4cb9a4f95b30ea82","type":"add","after":"35ea9d4e1921f975","date":1390452305653},{"type":"edit","id":"4cb9a4f95b30ea82","item":{"type":"paragraph","id":"4cb9a4f95b30ea82","text":" Code"},"date":1390452333244},{"item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":""},"id":"fe17a4449d38fe9a","type":"add","after":"4cb9a4f95b30ea82","date":1390452333754},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"[https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L140-L194 github]"},"date":1390452361620},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L140-L194 github]"},"date":1390452410436},{"item":{"type":"paragraph","id":"8b15372316d3ec9e","text":""},"id":"8b15372316d3ec9e","type":"add","after":"4cb9a4f95b30ea82","date":1390452460231},{"type":"edit","id":"8b15372316d3ec9e","item":{"type":"paragraph","id":"8b15372316d3ec9e","text":"Units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390452472370},{"item":{"type":"paragraph","id":"4f08665880653adf","text":""},"id":"4f08665880653adf","type":"add","after":"fe17a4449d38fe9a","date":1390452514223},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390452522979},{"item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":""},"id":"ad532f2f9e34da6b","type":"add","after":"4f08665880653adf","date":1390452565678},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L379 github]"},"date":1390452580283},{"item":{"type":"paragraph","id":"6159595073489254","text":""},"id":"6159595073489254","type":"add","after":"ad532f2f9e34da6b","date":1390452669385},{"type":"edit","id":"6159595073489254","item":{"type":"paragraph","id":"6159595073489254","text":"Interface. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L380-L434 github]"},"date":1390452680846},{"type":"edit","id":"8b15372316d3ec9e","item":{"type":"paragraph","id":"8b15372316d3ec9e","text":"Units. Utility functions that extract values and units from objects, parse labels as units, and perform likely coercions. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390453014057},{"type":"edit","id":"8b15372316d3ec9e","item":{"type":"paragraph","id":"8b15372316d3ec9e","text":"Units. Utility functions that extract values and units from objects, parse labels as units, and perform likely coercions. This could reasonably be another module. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390453074489},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L140-L194 github]"},"date":1390453271877},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar.[https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390453612539},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. Variables are retrieved from bindings local to the Method.[https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390453651790},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. Variables are retrieved from local bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L140 github]"},"date":1390453672210},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for keywords, line by line, with long labels for variable names. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L379 github]"},"date":1390453901358},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for operation keywords, line by line, with long labels for variable names. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L379 github]"},"date":1390453952135},{"type":"edit","id":"6159595073489254","item":{"type":"paragraph","id":"6159595073489254","text":"Interface. The emit and bind of the wiki interface as well as the module interface used by the tests. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L380-L434 github]"},"date":1390454082631},{"item":{"type":"factory","id":"aaef6ab7ae8a028a"},"id":"aaef6ab7ae8a028a","type":"add","after":"6159595073489254","date":1390577569136},{"type":"edit","id":"aaef6ab7ae8a028a","item":{"type":"method","id":"aaef6ab7ae8a028a","text":"2 Family\n3 Friends\n5 Children\nSUM For Dinner"},"date":1390577575262},{"type":"move","order":["93bd372715f31c9a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2b888e30424eb171","aaef6ab7ae8a028a","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","35ea9d4e1921f975","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"aaef6ab7ae8a028a","date":1390577584904},{"item":{"type":"factory","id":"34a03307fc9384e8"},"id":"34a03307fc9384e8","type":"add","after":"6159595073489254","date":1390577643760},{"type":"edit","id":"34a03307fc9384e8","item":{"type":"method","id":"34a03307fc9384e8","text":"3.59 Gas Price (dollars) given (gallons)\n24 Fuel Economy (miles) given (gallons)\n1.60934 Metric Distance (km) given (miles)"},"date":1390577648651},{"type":"move","order":["93bd372715f31c9a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2b888e30424eb171","aaef6ab7ae8a028a","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","35ea9d4e1921f975","34a03307fc9384e8","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"34a03307fc9384e8","date":1390577661856},{"item":{"type":"factory","id":"782a1ac832c7d6de"},"id":"782a1ac832c7d6de","type":"add","after":"6159595073489254","date":1390577689053},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)"},"date":1390577693864},{"type":"move","order":["93bd372715f31c9a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2b888e30424eb171","aaef6ab7ae8a028a","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","35ea9d4e1921f975","34a03307fc9384e8","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"782a1ac832c7d6de","date":1390577698685},{"item":{"type":"paragraph","id":"e591e7d6fcfa467f","text":""},"id":"e591e7d6fcfa467f","type":"add","after":"93bd372715f31c9a","date":1390577754298},{"type":"edit","id":"e591e7d6fcfa467f","item":{"type":"paragraph","id":"e591e7d6fcfa467f","text":"A method sums a column of numbers."},"date":1390577763320},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","35ea9d4e1921f975","34a03307fc9384e8","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"aaef6ab7ae8a028a","date":1390577767439},{"item":{"type":"paragraph","id":"aa091b280c6047b9","text":""},"id":"aa091b280c6047b9","type":"add","after":"35ea9d4e1921f975","date":1390577919321},{"type":"edit","id":"aa091b280c6047b9","item":{"type":"paragraph","id":"aa091b280c6047b9","text":"Given some conversion factors. [http://www.oregonlive.com/gasprices/ gas]"},"date":1390577922826},{"item":{"type":"paragraph","id":"1309effff7fc453e","text":""},"id":"1309effff7fc453e","type":"add","after":"aa091b280c6047b9","date":1390577943099},{"type":"edit","id":"1309effff7fc453e","item":{"type":"paragraph","id":"1309effff7fc453e","text":"We'll work out units planning our next trip. [http://goo.gl/maps/WKpWt maps]"},"date":1390577944375},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","35ea9d4e1921f975","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"1309effff7fc453e","date":1390577947745},{"type":"remove","id":"35ea9d4e1921f975","date":1390577984776},{"type":"edit","id":"1309effff7fc453e","item":{"type":"paragraph","id":"1309effff7fc453e","text":"Estimate gas money for a drive down the coast. [http://goo.gl/maps/WKpWt maps]"},"date":1390578063408},{"type":"edit","id":"1309effff7fc453e","item":{"type":"paragraph","id":"1309effff7fc453e","text":"Estimate gas money for a drive from Vancouver to Portland and beyond. [http://goo.gl/maps/WKpWt maps]"},"date":1390578133893},{"type":"edit","id":"1309effff7fc453e","item":{"type":"paragraph","id":"1309effff7fc453e","text":"Estimate gas money required for a drive from Vancouver to Portland and beyond. [http://goo.gl/maps/WKpWt maps]"},"date":1390578148569},{"type":"edit","id":"2b888e30424eb171","item":{"type":"paragraph","id":"2b888e30424eb171","text":"The page load refresh is careful to sequentially evaluate Methods for the top to bottom, left to right flow of data holds. [https://github.com/fedwiki/wiki-client/blob/a54316b63b7412cf3fbf48f4009db501a16ee915/lib/refresh.coffee#L160-L167 github]"},"date":1390578592922},{"type":"edit","id":"6635b10a1e87dda1","item":{"type":"paragraph","id":"6635b10a1e87dda1","text":"A Method looks above and to the left for other sources of variable bindings. These could be other Methods, Data sets or any item advertising radarData. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L389-L395 github]"},"date":1390578687134},{"type":"edit","id":"570e2f483e8a632e","item":{"type":"paragraph","id":"570e2f483e8a632e","text":"A Method offers its output as radarData to be consumed by, say, Radar plugins. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L389-L395 github]"},"date":1390578741514},{"item":{"type":"paragraph","id":"2aa84399a8d4ed47","text":""},"id":"2aa84399a8d4ed47","type":"add","after":"802e7e2469420895","date":1390579108195},{"type":"edit","id":"2aa84399a8d4ed47","item":{"type":"paragraph","id":"2aa84399a8d4ed47","text":"See [[About Reduce Plugin]], [https://github.com/fedwiki/wiki-plugin-reduce/blob/1ac5bdb6ac69ded484935854c85c9aaaae80de25/client/reduce.coffee#L97-L120 github]"},"date":1390579126215},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. Variables are retrieved from local bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L194-L249 github]"},"date":1390579399880},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. Variables are retrieved from local bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L194-L248 github]"},"date":1390579454907},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390579538642},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for operation keywords, line by line, with long labels for variable names. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L378 github]"},"date":1390579617903},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC Cost / (km + miles)"},"date":1390580185344},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC Money / (km + miles)"},"date":1390580203633},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC Money / (from + to)"},"date":1390580235718},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC dollars / (from + to)"},"date":1390580280587},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC dollars / (from + to)\nCALC dollars / (to + from)"},"date":1390580384690},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC dollars / (from + to)"},"date":1390580399528},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC dollars / ( from + to )"},"date":1390580484202},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC dollars / ( from + to )\nSHOW Trip Expense"},"date":1390580637641},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)\nCALC dollars / ( from + to )"},"date":1390580651638},{"type":"edit","id":"6159595073489254","item":{"type":"paragraph","id":"6159595073489254","text":"Interface. The emit and bind of the wiki interface as well as the module interface used by the tests. Prints extra if \"debug\" exists and is non-zero.[https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L380-L434 github]"},"date":1390580849393},{"type":"edit","id":"6159595073489254","item":{"type":"paragraph","id":"6159595073489254","text":"Interface. The emit and bind of the wiki interface as well as the module interface used by the tests. Prints extra if \"debug\" variable exists and is non-zero. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L380-L434 github]"},"date":1390580864835},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for operation keywords, line by line, with long labels for variable names. Extra code to recognize units.[https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L378 github]"},"date":1390580993191},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for operation keywords, line by line, with long labels for variable names. Accumulates \"local\" bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L378 github]"},"date":1390581070011},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. All new. Variables are retrieved from local bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L194-L248 github]"},"date":1390581123715},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. All new, except asValue which anticipated units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581167776},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. All new except asValue which anticipated units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581178801},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. All new except for asValue which anticipated units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581191001},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581273001},{"type":"edit","id":"8b15372316d3ec9e","item":{"type":"paragraph","id":"8b15372316d3ec9e","text":"Units. Utility functions that extract values and units from objects, parse labels as units, and perform likely coercions. All new except for asValue which anticipated units. This could reasonably be another module. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L139 github]"},"date":1390581298064},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. The type of coercion depends on the operation, sum and product are different. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581426311},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. The type of coercion depends on the operation, sum vs. product. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581443243},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. Only here do we know what kind of coercion will be applied. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1390581511567},{"item":{"type":"factory","id":"7c867ac6911b4ae1"},"id":"7c867ac6911b4ae1","type":"add","after":"6159595073489254","date":1390582547336},{"type":"edit","id":"7c867ac6911b4ae1","item":{"type":"method","id":"7c867ac6911b4ae1","text":"CALC dollars / ( from + to )"},"date":1390582580338},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","7c867ac6911b4ae1","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"7c867ac6911b4ae1","date":1390582585825},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)"},"date":1390582629118},{"type":"edit","id":"7c867ac6911b4ae1","item":{"type":"method","id":"7c867ac6911b4ae1","text":"Driving from Vancouver (km)\nDriving to S.F. (miles)\nCosts Money (dollars)\nCALC dollars / ( from + to \nSHOW Gas Money"},"date":1390582695644},{"type":"edit","id":"7c867ac6911b4ae1","item":{"type":"method","id":"7c867ac6911b4ae1","text":"Driving from Vancouver (km)\nDriving to S.F. (miles)\nCosts Money (dollars)\nCALC dollars / ( from + to )\nSHOW Gas Money"},"date":1390582702529},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","7c867ac6911b4ae1","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"7c867ac6911b4ae1","date":1390582714151},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","7c867ac6911b4ae1","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"7c867ac6911b4ae1","date":1390582876894},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","7c867ac6911b4ae1","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254"],"id":"7c867ac6911b4ae1","date":1390582884308},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)"},"date":1390685763984},{"type":"edit","id":"782a1ac832c7d6de","item":{"type":"method","id":"782a1ac832c7d6de","text":"505 Driving from Vancouver (km)\n635 Driving to S.F. (miles)\nSUM Burns Gas (gallons)\nSUM Costs Money (dollars)"},"date":1390685784389},{"item":{"type":"paragraph","id":"67fb56c0f6a8cbce","text":""},"id":"67fb56c0f6a8cbce","type":"add","after":"6159595073489254","date":1390686131302},{"type":"edit","id":"67fb56c0f6a8cbce","item":{"type":"paragraph","id":"67fb56c0f6a8cbce","text":" Development"},"date":1390686140751},{"item":{"type":"paragraph","id":"449c6a43c82e465f","text":""},"id":"449c6a43c82e465f","type":"add","after":"67fb56c0f6a8cbce","date":1390686141259},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"npm install wiki"},"date":1390686199109},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"npm install wiki-node"},"date":1390686234061},{"item":{"type":"paragraph","id":"b845de4ca333558f","text":""},"id":"b845de4ca333558f","type":"add","after":"449c6a43c82e465f","date":1390686234566},{"type":"remove","id":"b845de4ca333558f","date":1390686238382},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo and start grunt watching for new code."},"date":1390686364706},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo. Start grunt doing builds."},"date":1390686388600},{"item":{"type":"factory","id":"24204bd2c81d3379"},"id":"24204bd2c81d3379","type":"add","after":"449c6a43c82e465f","date":1390686392966},{"type":"edit","id":"24204bd2c81d3379","item":{"type":"code","id":"24204bd2c81d3379","text":"git clone ... wiki-plugin-method.git\ncd wiki-plugin-git\ngrunt watch\n\n\n"},"date":1390686492850},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo. Start grunt doing builds. You will do your editing here."},"date":1390686506411},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo. Start grunt doing builds. You will do your editing here. Watch for test results with each save."},"date":1390686531139},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo. Start grunt doing builds. You will do your editing here. Watch for test results on save."},"date":1390686546457},{"type":"edit","id":"24204bd2c81d3379","item":{"type":"code","id":"24204bd2c81d3379","text":"git clone ... wiki-plugin-method.git\ncd wiki-plugin-git\ngrunt watch"},"date":1390686554797},{"item":{"type":"factory","id":"8ad4bfee4a5652c6"},"id":"8ad4bfee4a5652c6","type":"add","after":"24204bd2c81d3379","date":1390686577182},{"type":"edit","id":"8ad4bfee4a5652c6","item":{"type":"paragraph","id":"8ad4bfee4a5652c6","text":"Clone a test version of the server. Link it to the plugin directory. Start the server."},"date":1390686645014},{"item":{"type":"paragraph","id":"77acc3d6d7613f0c","text":""},"id":"77acc3d6d7613f0c","type":"add","after":"8ad4bfee4a5652c6","date":1390686645521},{"type":"remove","id":"77acc3d6d7613f0c","date":1390686648191},{"item":{"type":"factory","id":"e967270c166e825e"},"id":"e967270c166e825e","type":"add","after":"8ad4bfee4a5652c6","date":1390686651378},{"type":"edit","id":"e967270c166e825e","item":{"type":"method","id":"e967270c166e825e","text":"git clone ... wiki-node.git\ncd wiki-node\nnode bin/server.js -p 3030 &\nnpm link ../wiki-plugin-method"},"date":1390686804052},{"type":"remove","id":"e967270c166e825e","date":1390686820618},{"item":{"type":"factory","id":"6c94ed8f754113a1"},"id":"6c94ed8f754113a1","type":"add","after":"8ad4bfee4a5652c6","date":1390686823949},{"type":"edit","id":"6c94ed8f754113a1","item":{"type":"code","id":"6c94ed8f754113a1","text":"git clone ... wiki-node.git\ncd wiki-node\nnode bin/server.js -p 3030 &\nnpm link ../wiki-plugin-method"},"date":1390686828589},{"type":"edit","id":"6c94ed8f754113a1","item":{"type":"code","id":"6c94ed8f754113a1","text":"git clone ... wiki-node.git\ncd wiki-node\nnpm link ../wiki-plugin-method\nnode bin/server.js -p 3030 &\n"},"date":1390686851947},{"type":"edit","id":"24204bd2c81d3379","item":{"type":"code","id":"24204bd2c81d3379","text":"git clone ... wiki-plugin-method.git\ncd wiki-plugin-method\ngrunt watch"},"date":1390686866770},{"type":"edit","id":"8ad4bfee4a5652c6","item":{"type":"paragraph","id":"8ad4bfee4a5652c6","text":"Clone a test version of the server. Link it to the plugin directory. Start the server. Browse. [http://localhost:3030 localhost]"},"date":1390686920503},{"type":"edit","id":"24204bd2c81d3379","item":{"type":"code","id":"24204bd2c81d3379","text":"git clone ... wiki-plugin-method.git\ncd wiki-plugin-method\nnpm link\ngrunt watch"},"date":1390686999551},{"type":"edit","id":"449c6a43c82e465f","item":{"type":"paragraph","id":"449c6a43c82e465f","text":"Clone the Method repo. Expose this location for linking. Start grunt doing builds. You will do your editing here. Watch for test results on save."},"date":1390687036940},{"item":{"type":"factory","id":"6578067257139e79"},"id":"6578067257139e79","type":"add","after":"6c94ed8f754113a1","date":1390687206889},{"type":"edit","id":"6578067257139e79","item":{"type":"paragraph","id":"6578067257139e79","text":"Write tests. Pass them. Commit to a branch. Push to github then issue pull request."},"date":1390687423360},{"item":{"type":"factory","id":"93ffd43274416147"},"id":"93ffd43274416147","type":"add","after":"6578067257139e79","date":1390687426598},{"type":"edit","id":"93ffd43274416147","item":{"type":"code","id":"93ffd43274416147","text":"git branch you/feature\ngit checkout you/feature"},"date":1390687477969},{"type":"edit","id":"93ffd43274416147","item":{"type":"code","id":"93ffd43274416147","text":"git checkout -b you/feature\ngit commit -a -m \"your feature explained\"\ngit push origin you/feature"},"date":1390687595089},{"item":{"type":"factory","id":"3e6eff675af6317f"},"id":"3e6eff675af6317f","type":"add","after":"93ffd43274416147","date":1390687683072},{"type":"edit","id":"3e6eff675af6317f","item":{"type":"paragraph","id":"3e6eff675af6317f","text":"We will merge your feature. Test it. Bump the version. Publish. Update the repo."},"date":1390687903731},{"item":{"type":"paragraph","id":"e0e5da4e5107d5ac","text":""},"id":"e0e5da4e5107d5ac","type":"add","after":"3e6eff675af6317f","date":1390687904245},{"type":"edit","id":"e0e5da4e5107d5ac","item":{"type":"paragraph","id":"e0e5da4e5107d5ac","text":"cd wiki-plugin-method"},"date":1390687938810},{"item":{"type":"paragraph","id":"0ab75a261bf1964f","text":""},"id":"0ab75a261bf1964f","type":"add","after":"e0e5da4e5107d5ac","date":1390687939317},{"type":"remove","id":"0ab75a261bf1964f","date":1390687945419},{"type":"remove","id":"e0e5da4e5107d5ac","date":1390687950688},{"item":{"type":"factory","id":"7c849e15199bd029"},"id":"7c849e15199bd029","type":"add","after":"3e6eff675af6317f","date":1390687953045},{"type":"edit","id":"7c849e15199bd029","item":{"type":"code","id":"7c849e15199bd029","text":"cd wiki-plugin-method\ngit pull\ngrunt test\nnpm version patch\nnpm plublish\ngit push --tags"},"date":1390688020318},{"type":"edit","id":"3e6eff675af6317f","item":{"type":"paragraph","id":"3e6eff675af6317f","text":"We will merge your feature. Test it. Bump the version. Publish. Update the repo tags."},"date":1390688027965},{"item":{"type":"paragraph","id":"548d0dc1f3a3680e","text":""},"id":"548d0dc1f3a3680e","type":"add","after":"67fb56c0f6a8cbce","date":1390688055285},{"type":"edit","id":"548d0dc1f3a3680e","item":{"type":"paragraph","id":"548d0dc1f3a3680e","text":"We will use at least two repos during development: one to build the plugin, the other to serve our experimental builds."},"date":1390688377268},{"type":"edit","id":"548d0dc1f3a3680e","item":{"type":"paragraph","id":"548d0dc1f3a3680e","text":"We will use at least two repos during development: one to build the plugin, the other to serve our build plugin."},"date":1390688395131},{"type":"edit","id":"24204bd2c81d3379","item":{"type":"code","id":"24204bd2c81d3379","text":"git clone ... wiki-plugin-method.git\ncd wiki-plugin-method\nnpm install\nnpm link\ngrunt watch"},"date":1390759276096},{"type":"edit","id":"6578067257139e79","item":{"type":"paragraph","id":"6578067257139e79","text":"Hard link plugin documentation to your server pages."},"date":1390773356295},{"item":{"type":"paragraph","id":"56062cb3bfce865e","text":"Write tests. Pass them. Commit to a branch. Push to github then issue pull request."},"id":"56062cb3bfce865e","type":"add","after":"6578067257139e79","date":1390773356808},{"item":{"type":"factory","id":"04b493635814b5fb"},"id":"04b493635814b5fb","type":"add","after":"7c849e15199bd029","date":1390773363338},{"type":"edit","id":"04b493635814b5fb","item":{"type":"code","id":"04b493635814b5fb","text":"ln pages/about-method-plugin ~/.wiki/pages"},"date":1390773416272},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","7c867ac6911b4ae1","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254","67fb56c0f6a8cbce","548d0dc1f3a3680e","449c6a43c82e465f","24204bd2c81d3379","8ad4bfee4a5652c6","6c94ed8f754113a1","6578067257139e79","04b493635814b5fb","56062cb3bfce865e","93ffd43274416147","3e6eff675af6317f","7c849e15199bd029"],"id":"04b493635814b5fb","date":1390773422964},{"type":"edit","id":"56062cb3bfce865e","item":{"type":"paragraph","id":"56062cb3bfce865e","text":"Write tests. Pass them. Revise documentation. Commit to a branch. Push to github then issue pull request."},"date":1390773453624},{"type":"edit","id":"04b493635814b5fb","item":{"type":"code","id":"04b493635814b5fb","text":"cd wiki-plugin-method\nln pages/about-method-plugin ~/.wiki/pages"},"date":1390773517473},{"type":"edit","id":"548d0dc1f3a3680e","item":{"type":"paragraph","id":"548d0dc1f3a3680e","text":"We will use at least two repos during development: one to build the plugin, the other to serve the built plugin."},"date":1390773793461},{"type":"edit","id":"56062cb3bfce865e","item":{"type":"paragraph","id":"56062cb3bfce865e","text":"Write tests. Pass them. Revise documentation. Commit to a branch. Push to github and issue pull request."},"date":1390773836708},{"item":{"type":"paragraph","id":"5359c1955afec33c","text":""},"id":"5359c1955afec33c","type":"add","after":"e591e7d6fcfa467f","date":1390773943935},{"type":"edit","id":"5359c1955afec33c","item":{"type":"paragraph","id":"5359c1955afec33c","text":"See [[About Method Plugin]]"},"date":1390773957057},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","5359c1955afec33c","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","cf419d60a86a0c03","a53e9d1ed01d4188","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","7c867ac6911b4ae1","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254","67fb56c0f6a8cbce","548d0dc1f3a3680e","449c6a43c82e465f","24204bd2c81d3379","8ad4bfee4a5652c6","6c94ed8f754113a1","6578067257139e79","04b493635814b5fb","56062cb3bfce865e","93ffd43274416147","3e6eff675af6317f","7c849e15199bd029"],"id":"5359c1955afec33c","date":1390773961932},{"type":"edit","id":"5359c1955afec33c","item":{"type":"paragraph","id":"5359c1955afec33c","text":"See [[About Method Plugin]]."},"date":1390773991879},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","5359c1955afec33c","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","a53e9d1ed01d4188","cf419d60a86a0c03","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","7c867ac6911b4ae1","fe17a4449d38fe9a","4f08665880653adf","ad532f2f9e34da6b","6159595073489254","67fb56c0f6a8cbce","548d0dc1f3a3680e","449c6a43c82e465f","24204bd2c81d3379","8ad4bfee4a5652c6","6c94ed8f754113a1","6578067257139e79","04b493635814b5fb","56062cb3bfce865e","93ffd43274416147","3e6eff675af6317f","7c849e15199bd029"],"id":"a53e9d1ed01d4188","date":1390970403432},{"type":"edit","id":"9c18f158f84af056","item":{"type":"paragraph","id":"9c18f158f84af056","text":"I wrote Mocha tests for calculations that were already known to work. I ran these through the runtests.html interface available on the Ruby/Sinatra server implementation. I ran these from localhost using Mocha's grep option to focus on Method. [http://localhost:1111/runtests.html?grep=method localhost]"},"date":1391302412564},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","5359c1955afec33c","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","a53e9d1ed01d4188","cf419d60a86a0c03","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","7c867ac6911b4ae1","4f08665880653adf","ad532f2f9e34da6b","6159595073489254","67fb56c0f6a8cbce","548d0dc1f3a3680e","449c6a43c82e465f","24204bd2c81d3379","8ad4bfee4a5652c6","6c94ed8f754113a1","6578067257139e79","04b493635814b5fb","56062cb3bfce865e","93ffd43274416147","3e6eff675af6317f","7c849e15199bd029"],"id":"7c867ac6911b4ae1","date":1391933956389},{"item":{"type":"paragraph","id":"1ab617507b09bd3c","text":""},"id":"1ab617507b09bd3c","type":"add","after":"1309effff7fc453e","date":1395612197627},{"type":"edit","id":"1ab617507b09bd3c","item":{"type":"paragraph","id":"1ab617507b09bd3c","text":"See [[Control Loop Methods]]"},"date":1395612217934},{"type":"edit","id":"1ab617507b09bd3c","item":{"type":"paragraph","id":"1ab617507b09bd3c","text":"See [[Method Control Loops]] for more evolving specifications."},"date":1395612269357},{"type":"move","order":["93bd372715f31c9a","e591e7d6fcfa467f","aaef6ab7ae8a028a","5359c1955afec33c","e6b2e07d9a42e879","6635b10a1e87dda1","570e2f483e8a632e","802e7e2469420895","2aa84399a8d4ed47","2b888e30424eb171","d47f6b10590ea97a","fe21004eb5a0d507","0e4ff6ca8ba2eb41","a53e9d1ed01d4188","cf419d60a86a0c03","9c18f158f84af056","aa091b280c6047b9","34a03307fc9384e8","1309effff7fc453e","782a1ac832c7d6de","1ab617507b09bd3c","4cb9a4f95b30ea82","8b15372316d3ec9e","fe17a4449d38fe9a","7c867ac6911b4ae1","4f08665880653adf","ad532f2f9e34da6b","6159595073489254","67fb56c0f6a8cbce","548d0dc1f3a3680e","449c6a43c82e465f","24204bd2c81d3379","8ad4bfee4a5652c6","6c94ed8f754113a1","6578067257139e79","04b493635814b5fb","56062cb3bfce865e","93ffd43274416147","3e6eff675af6317f","7c849e15199bd029"],"id":"1ab617507b09bd3c","date":1395612274898},{"type":"edit","id":"1ab617507b09bd3c","item":{"type":"paragraph","id":"1ab617507b09bd3c","text":"See [[Method Control Loops]] for more emerging specifications."},"date":1395612320939},{"type":"edit","id":"1ab617507b09bd3c","item":{"type":"paragraph","id":"1ab617507b09bd3c","text":"See [[Method Control Loops]] for more emerging features."},"date":1395612338843},{"type":"edit","id":"e6b2e07d9a42e879","item":{"type":"html","id":"e6b2e07d9a42e879","text":" Context"},"date":1418517402425},{"type":"edit","id":"d47f6b10590ea97a","item":{"type":"html","id":"d47f6b10590ea97a","text":" Specification"},"date":1418517409083},{"type":"edit","id":"4cb9a4f95b30ea82","item":{"type":"html","id":"4cb9a4f95b30ea82","text":" Code"},"date":1418517417766},{"type":"edit","id":"8b15372316d3ec9e","item":{"type":"paragraph","id":"8b15372316d3ec9e","text":"Units. Utility functions that extract values and units from objects, parse labels as units, and perform likely coercions. All new except for asValue which anticipated units. This could reasonably be another module. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L2-L139 github]"},"date":1418517446465},{"type":"edit","id":"fe17a4449d38fe9a","item":{"type":"paragraph","id":"fe17a4449d38fe9a","text":"Calculation. Functions to perform sums, products and related operations with attention to units. Only here do we know what kind of coercion will be applied. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L141-L193 github]"},"date":1418517456093},{"type":"edit","id":"4f08665880653adf","item":{"type":"paragraph","id":"4f08665880653adf","text":"Expression. A lexer/parser/evaluator that calls calculation functions as specified by the expression grammar. All new. Variables are retrieved from local bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L194-L248 github]"},"date":1418517466362},{"type":"edit","id":"ad532f2f9e34da6b","item":{"type":"paragraph","id":"ad532f2f9e34da6b","text":"Interpreter. The \"middle-school\" evaluator looks for operation keywords, line by line, with long labels for variable names. Accumulates \"local\" bindings. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L249-L378 github]"},"date":1418517476680},{"type":"edit","id":"6159595073489254","item":{"type":"paragraph","id":"6159595073489254","text":"Interface. The emit and bind of the wiki interface as well as the module interface used by the tests. Prints extra if \"debug\" variable exists and is non-zero. [https://github.com/fedwiki/wiki-plugin-method/blob/fec681fac1518507f334be334de76984bf974510/client/method.coffee#L380-L434 github]"},"date":1418517488074},{"type":"edit","id":"67fb56c0f6a8cbce","item":{"type":"html","id":"67fb56c0f6a8cbce","text":" Development"},"date":1418517491492},{"type":"fork","site":"ward.fed.wiki.org","date":1419702336589},{"type":"fork","site":"forage.ward.fed.wiki.org","date":1469454952859}]},"hip-portland":{"title":"Hip Portland","story":[{"type":"paragraph","id":"0684afe5a3a04813","text":"Where might one stay in a residential rental to enjoy the coffee shops and street life of the gentrified Portland neighborhoods."},{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5508259, -122.6755285 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379 Hawthorn [https://www.travelportland.com/collection/hawthorne/ more]\nBOUNDARY\nLINEUP\n"},{"type":"paragraph","id":"01cdd82d87d0635b","text":"[https://www.travelportland.com/things-to-do/neighborhoods-regions/ Travel Portland] appears to be a good overview of the major Portland neighborhoods. Any of them other than Old Town and the Central Eastside should meet your criteria. Actual, most of the Google search results for “Portland Neighborhoods” look pretty useful including maps, etc."},{"type":"paragraph","id":"d9cfda66400d3ba1","text":"See [[Street Map]] or [[Topo Map]]"},{"type":"paragraph","id":"ec0b55a7974ce113","text":"See [[Where Colleagues Live]]"},{"type":"paragraph","id":"ea8b735065698738","text":"See [[Biketown]] for nearby city bike rentals."},{"type":"paragraph","id":"140f40e2e0cf96c4","text":"These are some less hip places around Portland that have well known geo coordinates. I add them to show how map markers move between pages. Shift-click a link to pile them up in the lineup."},{"type":"paragraph","id":"9237a37006be71cd","text":"[[Portland Confluences]] that I've visited."},{"type":"paragraph","id":"36475912d183b403","text":"[[2001 Geocaches]] that I've placed."},{"type":"paragraph","id":"74a0fd82cd56c7e7","text":"[[Ward's Home Page]] where I've lived all my life."}],"journal":[{"type":"create","item":{"title":"Hip Portland","story":[]},"date":1468852548713},{"item":{"type":"factory","id":"0684afe5a3a04813"},"id":"0684afe5a3a04813","type":"add","date":1468852551050},{"type":"edit","id":"0684afe5a3a04813","item":{"type":"paragraph","id":"0684afe5a3a04813","text":"Where might one stay in a residential rental to enjoy the coffeeshops and street life of the gentrified Portland neighborhoods."},"date":1468852781652},{"item":{"type":"factory","id":"97d88fe07f126a1f"},"id":"97d88fe07f126a1f","type":"add","after":"0684afe5a3a04813","date":1468852784130},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended Portland Neighborhoods"},"date":1468852814454},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended Portland Neighborhoods\n45.5289870, -122.6817298"},"date":1468852914348},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended Portland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]"},"date":1468852944377},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]"},"date":1468852971940},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312"},"date":1468853048883},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]"},"date":1468853094717},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630"},"date":1468853273316},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]"},"date":1468853297897},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041"},"date":1468853364671},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]"},"date":1468853386110},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365"},"date":1468853557864},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]"},"date":1468853581459},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037"},"date":1468853739208},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]"},"date":1468853767383},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379"},"date":1468853902382},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379 Hawthorn [https://www.travelportland.com/collection/hawthorne/ more]"},"date":1468853923453},{"item":{"type":"factory","id":"01cdd82d87d0635b"},"id":"01cdd82d87d0635b","type":"add","after":"97d88fe07f126a1f","date":1468854274699},{"type":"edit","id":"01cdd82d87d0635b","item":{"type":"paragraph","id":"01cdd82d87d0635b","text":"[https://www.travelportland.com/things-to-do/neighborhoods-regions/ Travel Portland] appears to be a good overview of the major Portland neighborhoods. Any of them other than Old Town and the Central Eastside should meet your criteria. Actual, most of the Google search results for “Portland Neighborhoods” look pretty useful including maps, etc."},"date":1468854304041},{"type":"edit","id":"0684afe5a3a04813","item":{"type":"paragraph","id":"0684afe5a3a04813","text":"Where might one stay in a residential rental to enjoy the coffee shops and street life of the gentrified Portland neighborhoods."},"date":1468854374856},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5568668, -122.6759630 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379 Hawthorn [https://www.travelportland.com/collection/hawthorne/ more]\n45.5508259, -122.6755285"},"date":1468854618538},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5508259, -122.6755285 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379 Hawthorn [https://www.travelportland.com/collection/hawthorne/ more]\n"},"date":1468854641401},{"type":"add","id":"ec0b55a7974ce113","item":{"type":"paragraph","id":"ec0b55a7974ce113","text":"See [[Where Colleagues Live]]"},"after":"01cdd82d87d0635b","date":1468854926548},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\nLINEUP\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5508259, -122.6755285 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379 Hawthorn [https://www.travelportland.com/collection/hawthorne/ more]\n"},"date":1468855465182},{"type":"edit","id":"97d88fe07f126a1f","item":{"type":"map","id":"97d88fe07f126a1f","text":"Recommended\nPortland Neighborhoods\n45.5289870, -122.6817298 Perl District [https://www.travelportland.com/collection/pearl-district/ more]\n45.5269140, -122.6985312 Northwest Portland [https://www.travelportland.com/collection/northwest-portland-nob-hill/ more]\n45.5508259, -122.6755285 Mississippi Aveneue [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5507890, -122.6667041 North Williams [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5590522, -122.6419365 Alberta Arts [https://www.travelportland.com/collection/mississippiwilliams/ more]\n45.5047935, -122.6335037 Division [https://www.travelportland.com/collection/division-clinton/ more]\n45.5120416, -122.6258379 Hawthorn [https://www.travelportland.com/collection/hawthorne/ more]\nBOUNDARY\nLINEUP\n"},"date":1468855525277},{"item":{"type":"factory","id":"140f40e2e0cf96c4"},"id":"140f40e2e0cf96c4","type":"add","after":"ec0b55a7974ce113","date":1468872372416},{"type":"edit","id":"140f40e2e0cf96c4","item":{"type":"paragraph","id":"140f40e2e0cf96c4","text":"These are some less hip places around Portland that have well known geo coordinates."},"date":1468872455480},{"type":"add","item":{"type":"paragraph","id":"9237a37006be71cd","text":"[[Portland Confluences]] that I've visited."},"after":"140f40e2e0cf96c4","id":"9237a37006be71cd","date":1468872471685},{"type":"add","item":{"type":"paragraph","id":"36475912d183b403","text":"[[2001 Geocaches]] that I've placed."},"after":"9237a37006be71cd","id":"36475912d183b403","date":1468872475508},{"type":"edit","id":"140f40e2e0cf96c4","item":{"type":"paragraph","id":"140f40e2e0cf96c4","text":"These are some less hip places around Portland that have well known geo coordinates. I add them to show how map markers move between pages. Shift-click a link to pile some up."},"date":1468872615922},{"type":"edit","id":"140f40e2e0cf96c4","item":{"type":"paragraph","id":"140f40e2e0cf96c4","text":"These are some less hip places around Portland that have well known geo coordinates. I add them to show how map markers move between pages. Shift-click a link to pile them up in the lineup."},"date":1468872642138},{"type":"add","item":{"type":"paragraph","id":"74a0fd82cd56c7e7","text":"[[Ward's Home Page]] where I've lived all my life."},"after":"36475912d183b403","id":"74a0fd82cd56c7e7","date":1468872724213},{"type":"add","id":"ea8b735065698738","item":{"type":"paragraph","id":"ea8b735065698738","text":"See [[Biketown]] for nearby city bike rentals."},"after":"ec0b55a7974ce113","date":1469116675239},{"type":"add","id":"d9cfda66400d3ba1","item":{"type":"paragraph","id":"d9cfda66400d3ba1","text":"See [[Street Map]] or [[Topo Map]]"},"after":"01cdd82d87d0635b","date":1469202835446},{"type":"fork","site":"ward.asia.wiki.org","date":1469458233553}]},"json-schema":{"title":"JSON Schema","story":[{"type":"paragraph","id":"82d16f9d0dd6be0a","text":"We define the schema for federated wiki pages to the depth that we know it. We use a BNF-like notation to suggest JSON elements. Any ambiguity will be resolved by examining the example. We close with a brief reflection on the successes of the format."},{"type":"paragraph","id":"784016c54305672a","text":"A page is an object with three optional fields."},{"type":"code","id":"095fb4c1f4ee5b84","text":"page = { title, story, journal }"},{"type":"paragraph","id":"0282fe54cb349bf2","text":"A title is an ascii string in mixed case with spaces and punctuation. Wiki converts titles to slugs in hyphenated lower case."},{"type":"code","id":"adf03550263aa76b","text":"title = \"War and Peace\""},{"type":"paragraph","id":"9889b9fa672f52b9","text":"A story is an array of paragraph-like items. The type identifies the plugin that can render the item."},{"type":"paragraph","id":"177061214a7f16f1","text":"Items have an id that is preserved through edits. Some precaution (aliasing) should ensure that ids are not duplicated within a page."},{"type":"code","id":"d50e80d8d5a269cd","text":"story = [ item ]\nitem = { type, id, text }\ntype = \"paragraph|image|factory|reference|...\"\nid = \"67b842ac89e61cc3\"\ntext = \"The strongest of all warriors...\""},{"type":"paragraph","id":"59960603b6bf69b1","text":"Many pages contain text of a type-specific markup. "},{"type":"paragraph","id":"45afb1c5f8a604c2","text":"The journal contains a sequence of actions that creates the story. Actions are of a small number of types relating to editing actions."},{"type":"paragraph","id":"3299a2e55be9a6b2","text":"The date and id identify when and where the action took place. The item as modified is copied in the action."},{"type":"paragraph","id":"f5ef66da40dc1cd8","text":"When site is present it means that the contents came from another site. The \"fork\" action means an entire page was copied from another site."},{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item, site }\ntype = \"create|add|move|edit|remove|fork\"\nid = \"67b842ac89e61cc3\"\ndate = 1383278468000\nsite = \"fed.wiki.org\"\n"},{"type":"html","id":"d117104a09658b32","text":" Example"},{"type":"paragraph","id":"3fa659e251bb97d1","text":"Here we provide a complete example by creating a new page, adding a factory, and then double-clicking the factory to make a paragraph."},{"type":"code","id":"58efd8a07ffc9dc4","text":"{\n \"title\": \"War and Peace\",\n \"story\": [\n {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n }\n ],\n \"journal\": [\n {\n \"type\": \"create\",\n \"item\": {\n \"title\": \"War and Peace\",\n \"story\": []\n },\n \"date\": 1383279726841\n },\n {\n \"type\": \"add\",\n \"item\": {\n \"type\": \"factory\",\n \"id\": \"08eaf0295b21d267\"\n },\n \"id\": \"08eaf0295b21d267\",\n \"date\": 1383279861391\n },\n {\n \"type\": \"edit\",\n \"item\": {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n },\n \"id\": \"08eaf0295b21d267\",\n \"date\": 1383279872956\n }\n ]\n}"},{"type":"paragraph","id":"af2f69ba79453935","text":"The JSON of any page is available for viewing from a link at the bottom of each page. Refresh the web page if the JSON does not include recent change."},{"type":"paragraph","id":"4e2262dbe393eb93","text":"Some items will display their JSON when shift-double-clicked."},{"type":"paragraph","id":"a7f4d6f4b8370e0c","text":"To see an action's JSON, click the action and then double-click the timestamp of the retrieved version."},{"type":"html","id":"b728a5ed46e578ea","text":" Extensions"},{"type":"paragraph","id":"bdd0bdb72b2c4559","text":"The item types name plugins that interpret the remainder of the json subtree for the item. One server (the origin server) provides all the plugins for the content being browsed in a single browser window."},{"type":"paragraph","id":"de9aa6ac063700cf","text":"It is possible that unexpected item types will be encountered. One can turn to the source site for the plugins it uses. These plugins will include documentation that describes where to find source code and support community for any new data format."},{"type":"paragraph","id":"0852fa5f988a2cff","text":"Plugins have the freedom to communicate with each other between pages in the browser. This has some analogies with unix commands connected with pipes. In both cases, small is beautiful."},{"type":"paragraph","id":"6719bfdc3c57b890","text":"See [[Abstraction of Method]]"},{"type":"html","id":"aa67e4488b443dfe","text":" Importers"},{"type":"paragraph","id":"1c966eabe6937159","text":"The simplicity of the format and wiki's tolerance of omission makes writing foreign format importers easy. They've been written perl or even shell with no support from JSON libraries. The more complex importers use a nested DSL style of callbacks in script languages that favor that style. [https://github.com/WardCunningham/vw-sfw-script node] [https://github.com/WardCunningham/msi ruby]"},{"type":"paragraph","id":"eb0da94e2822068d","text":"The \"create\" action facilitates inserting whole pages from imports into the journal. Multiple runs of an importer can add multiple creates for comparing improvements to the import logic. It is also convenient to stash certification and provenience details in each create. I've included the git commit of the importer code."},{"type":"paragraph","id":"de3ac47543babac3","text":"Where an importer performs complex transformations, say from excel formulas to method plugin formulas, I've found it convenient to capture the source line numbers of the transformation code and include it in the method items. When numbers don't match a quick peek at the JSON (shift-double-click for methods) directs ongoing importer development."},{"type":"paragraph","id":"e53c718939dbf016","text":"See How To [[Import Documents]]"},{"type":"paragraph","id":"9ab33be809ebc4f3","text":"See also [[Coding Tips]]"}],"journal":[{"type":"create","item":{"title":"JSON Schema"},"date":1383277608172},{"item":{"type":"factory","id":"82d16f9d0dd6be0a"},"id":"82d16f9d0dd6be0a","type":"add","date":1383277610283},{"type":"edit","id":"82d16f9d0dd6be0a","item":{"type":"paragraph","id":"82d16f9d0dd6be0a","text":"We define the schema for federated wiki pages to the depth that we know it."},"date":1383277645689},{"item":{"type":"paragraph","id":"5d3daca297c678d8","text":""},"id":"5d3daca297c678d8","type":"add","after":"82d16f9d0dd6be0a","date":1383277646195},{"type":"remove","id":"5d3daca297c678d8","date":1383277685247},{"item":{"type":"factory","id":"095fb4c1f4ee5b84"},"id":"095fb4c1f4ee5b84","type":"add","after":"82d16f9d0dd6be0a","date":1383277687884},{"type":"edit","id":"095fb4c1f4ee5b84","item":{"type":"code","id":"095fb4c1f4ee5b84","text":"page = { title, story, journal }\n\ntitle = \"War and Peace\"\n\nstory = [ item ]\nitem = { type, id, text }\ntype = \"paragraph\"\nid = \"67b842ac89e61cc3\"\ntext = \""},"date":1383278111681},{"type":"edit","id":"095fb4c1f4ee5b84","item":{"type":"code","id":"095fb4c1f4ee5b84","text":"page = { title, story, journal }\n\ntitle = \"War and Peace\"\n\nstory = [ item ]\nitem = { type, id, text }\ntype = \"paragraph\"\nid = \"67b842ac89e61cc3\"\ntext = \"The strongest of all warriors...\"\n"},"date":1383278220299},{"item":{"type":"factory","id":"b2a327e04b763179"},"id":"b2a327e04b763179","type":"add","after":"095fb4c1f4ee5b84","date":1383278224957},{"type":"edit","id":"b2a327e04b763179","item":{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item }\ntype = \"create\" | \"add\" | \"edit\" | \"delete\" | \"fork\"\nid ="},"date":1383278386472},{"type":"edit","id":"b2a327e04b763179","item":{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item }\ntype = \"create\" | \"add\" | \"edit\" | \"delete\" | \"fork\"\nid = \"67b842ac89e61cc3\"\ndate ="},"date":1383278456166},{"type":"edit","id":"b2a327e04b763179","item":{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item, site }\ntype = \"create\" | \"add\" | \"edit\" | \"delete\" | \"fork\"\nid = \"67b842ac89e61cc3\"\ndate = 1383278468000\nsite = \"fed.wiki.org\"\n"},"date":1383278527507},{"type":"edit","id":"095fb4c1f4ee5b84","item":{"type":"code","id":"095fb4c1f4ee5b84","text":"page = { title, story, journal }"},"date":1383278551366},{"item":{"type":"factory","id":"adf03550263aa76b"},"id":"adf03550263aa76b","type":"add","after":"b2a327e04b763179","date":1383278553507},{"type":"edit","id":"adf03550263aa76b","item":{"type":"code","id":"adf03550263aa76b","text":"title = \"War and Peace\""},"date":1383278566504},{"type":"move","order":["82d16f9d0dd6be0a","095fb4c1f4ee5b84","adf03550263aa76b","b2a327e04b763179"],"id":"adf03550263aa76b","date":1383278569933},{"item":{"type":"factory","id":"d50e80d8d5a269cd"},"id":"d50e80d8d5a269cd","type":"add","after":"b2a327e04b763179","date":1383278572244},{"type":"edit","id":"d50e80d8d5a269cd","item":{"type":"code","id":"d50e80d8d5a269cd","text":"story = [ item ]\nitem = { type, id, text }\ntype = \"paragraph\"\nid = \"67b842ac89e61cc3\"\ntext = \"The strongest of all warriors...\""},"date":1383278584288},{"type":"move","order":["82d16f9d0dd6be0a","095fb4c1f4ee5b84","adf03550263aa76b","d50e80d8d5a269cd","b2a327e04b763179"],"id":"d50e80d8d5a269cd","date":1383278587882},{"item":{"type":"paragraph","id":"784016c54305672a","text":""},"id":"784016c54305672a","type":"add","after":"82d16f9d0dd6be0a","date":1383278621266},{"type":"edit","id":"784016c54305672a","item":{"type":"paragraph","id":"784016c54305672a","text":"A page is an object with three optional fields."},"date":1383278635882},{"item":{"type":"paragraph","id":"0282fe54cb349bf2","text":""},"id":"0282fe54cb349bf2","type":"add","after":"784016c54305672a","date":1383278645001},{"type":"edit","id":"0282fe54cb349bf2","item":{"type":"paragraph","id":"0282fe54cb349bf2","text":"A title is an ascii string in mixed case with spaces and punctuation. Wiki converts titles to slugs in hyphenated lower case."},"date":1383278729129},{"type":"move","order":["82d16f9d0dd6be0a","784016c54305672a","095fb4c1f4ee5b84","0282fe54cb349bf2","adf03550263aa76b","d50e80d8d5a269cd","b2a327e04b763179"],"id":"0282fe54cb349bf2","date":1383278732551},{"item":{"type":"paragraph","id":"9889b9fa672f52b9","text":""},"id":"9889b9fa672f52b9","type":"add","after":"0282fe54cb349bf2","date":1383278746287},{"type":"edit","id":"9889b9fa672f52b9","item":{"type":"paragraph","id":"9889b9fa672f52b9","text":"A story is an array of paragraph-like items. The type identifies the plugin that can render the item."},"date":1383278890971},{"item":{"type":"paragraph","id":"177061214a7f16f1","text":" "},"id":"177061214a7f16f1","type":"add","after":"9889b9fa672f52b9","date":1383278891477},{"type":"edit","id":"177061214a7f16f1","item":{"type":"paragraph","id":"177061214a7f16f1","text":"Items have an id that is preserved through edits. Some precaution (aliasing) should ensure that ids are not duplicated within a page."},"date":1383278994208},{"item":{"type":"paragraph","id":"59960603b6bf69b1","text":" "},"id":"59960603b6bf69b1","type":"add","after":"177061214a7f16f1","date":1383278994715},{"type":"edit","id":"59960603b6bf69b1","item":{"type":"paragraph","id":"59960603b6bf69b1","text":"Many pages contain text of a type-specific markup. "},"date":1383279021502},{"type":"move","order":["82d16f9d0dd6be0a","784016c54305672a","095fb4c1f4ee5b84","0282fe54cb349bf2","adf03550263aa76b","9889b9fa672f52b9","177061214a7f16f1","59960603b6bf69b1","d50e80d8d5a269cd","b2a327e04b763179"],"id":"adf03550263aa76b","date":1383279030298},{"item":{"type":"paragraph","id":"45afb1c5f8a604c2","text":""},"id":"45afb1c5f8a604c2","type":"add","after":"59960603b6bf69b1","date":1383279105357},{"type":"edit","id":"45afb1c5f8a604c2","item":{"type":"paragraph","id":"45afb1c5f8a604c2","text":"The journal contains a sequence of actions that creates the story. Actions are of a small number of types relating to editing actions."},"date":1383279214854},{"type":"move","order":["82d16f9d0dd6be0a","784016c54305672a","095fb4c1f4ee5b84","0282fe54cb349bf2","adf03550263aa76b","9889b9fa672f52b9","177061214a7f16f1","59960603b6bf69b1","d50e80d8d5a269cd","45afb1c5f8a604c2","b2a327e04b763179"],"id":"45afb1c5f8a604c2","date":1383279218748},{"type":"edit","id":"b2a327e04b763179","item":{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item, site }\ntype = \"create\" | \"add\" | \"move\" | \"edit\" | \"delete\" | \"fork\"\nid = \"67b842ac89e61cc3\"\ndate = 1383278468000\nsite = \"fed.wiki.org\"\n"},"date":1383279252608},{"type":"edit","id":"b2a327e04b763179","item":{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item, site }\ntype = \"create|add|move|edit|delete|fork\"\nid = \"67b842ac89e61cc3\"\ndate = 1383278468000\nsite = \"fed.wiki.org\"\n"},"date":1383279295565},{"item":{"type":"paragraph","id":"3299a2e55be9a6b2","text":""},"id":"3299a2e55be9a6b2","type":"add","after":"45afb1c5f8a604c2","date":1383279317430},{"type":"edit","id":"3299a2e55be9a6b2","item":{"type":"paragraph","id":"3299a2e55be9a6b2","text":"The id of an action is that of the story item edited."},"date":1383279350876},{"item":{"type":"paragraph","id":"c43214e2cbfd7183","text":""},"id":"c43214e2cbfd7183","type":"add","after":"3299a2e55be9a6b2","date":1383279351381},{"type":"remove","id":"c43214e2cbfd7183","date":1383279365172},{"type":"edit","id":"3299a2e55be9a6b2","item":{"type":"paragraph","id":"3299a2e55be9a6b2","text":"The date and id identify when and where the action took place. The item as modified is copied in the action."},"date":1383279537719},{"item":{"type":"paragraph","id":"f5ef66da40dc1cd8","text":""},"id":"f5ef66da40dc1cd8","type":"add","after":"3299a2e55be9a6b2","date":1383279538224},{"type":"edit","id":"f5ef66da40dc1cd8","item":{"type":"paragraph","id":"f5ef66da40dc1cd8","text":"When site is present it means that the contents came from another site. The \"fork\" action means an entire page was copied from another site."},"date":1383279679571},{"type":"move","order":["82d16f9d0dd6be0a","784016c54305672a","095fb4c1f4ee5b84","0282fe54cb349bf2","adf03550263aa76b","9889b9fa672f52b9","177061214a7f16f1","d50e80d8d5a269cd","59960603b6bf69b1","45afb1c5f8a604c2","3299a2e55be9a6b2","f5ef66da40dc1cd8","b2a327e04b763179"],"id":"d50e80d8d5a269cd","date":1383279850257},{"item":{"type":"factory","id":"d117104a09658b32"},"id":"d117104a09658b32","type":"add","after":"b2a327e04b763179","date":1383279943773},{"type":"edit","id":"d117104a09658b32","item":{"type":"paragraph","id":"d117104a09658b32","text":"Here we provide a complete example by creating a new page, adding a factory, and then double-clicking the factory to make a paragraph."},"date":1383280022128},{"item":{"type":"factory","id":"58efd8a07ffc9dc4"},"id":"58efd8a07ffc9dc4","type":"add","after":"d117104a09658b32","date":1383280028371},{"type":"edit","id":"58efd8a07ffc9dc4","item":{"type":"code","id":"58efd8a07ffc9dc4","text":"{\n \"title\": \"War and Peace\",\n \"story\": [\n {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n }\n ],\n \"journal\": [\n {\n \"type\": \"create\",\n \"item\": {\n \"title\": \"War and Peace\",\n \"story\": []\n },\n \"date\": 1383279726841\n },\n {\n \"item\": {\n \"type\": \"factory\",\n \"id\": \"08eaf0295b21d267\"\n },\n \"id\": \"08eaf0295b21d267\",\n \"type\": \"add\",\n \"date\": 1383279861391\n },\n {\n \"type\": \"edit\",\n \"id\": \"08eaf0295b21d267\",\n \"item\": {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n },\n \"date\": 1383279872956\n }\n ]\n}"},"date":1383280033440},{"type":"edit","id":"d117104a09658b32","item":{"type":"paragraph","id":"d117104a09658b32","text":" Example"},"date":1383280084966},{"item":{"type":"paragraph","id":"3fa659e251bb97d1","text":"Here we provide a complete example by creating a new page, adding a factory, and then double-clicking the factory to make a paragraph."},"id":"3fa659e251bb97d1","type":"add","after":"d117104a09658b32","date":1383280085473},{"type":"edit","id":"82d16f9d0dd6be0a","item":{"type":"paragraph","id":"82d16f9d0dd6be0a","text":"We define the schema for federated wiki pages to the depth that we know it. We use a BNF-like notation to suggest JSON elements. Any ambiguity will be resolved by examining the example."},"date":1383280197659},{"item":{"type":"factory","id":"af2f69ba79453935"},"id":"af2f69ba79453935","type":"add","after":"58efd8a07ffc9dc4","date":1383280249666},{"type":"edit","id":"af2f69ba79453935","item":{"type":"paragraph","id":"af2f69ba79453935","text":"The JSON of any page is available for viewing from a link at the bottom of each page. Refresh the web page if the JSON does not include recent change."},"date":1383280336833},{"item":{"type":"paragraph","id":"aa67e4488b443dfe","text":""},"id":"aa67e4488b443dfe","type":"add","after":"af2f69ba79453935","date":1383319373662},{"type":"edit","id":"aa67e4488b443dfe","item":{"type":"paragraph","id":"aa67e4488b443dfe","text":" Reflection"},"date":1383319506198},{"item":{"type":"paragraph","id":"1c966eabe6937159","text":""},"id":"1c966eabe6937159","type":"add","after":"aa67e4488b443dfe","date":1383319506712},{"type":"edit","id":"1c966eabe6937159","item":{"type":"paragraph","id":"1c966eabe6937159","text":"The simplicity of the format and wiki's tolerance of omission makes writing foreign format importers easy. They've been written perl or even shell with no support from JSON libraries. "},"date":1383319669257},{"type":"edit","id":"1c966eabe6937159","item":{"type":"paragraph","id":"1c966eabe6937159","text":"The simplicity of the format and wiki's tolerance of omission makes writing foreign format importers easy. They've been written perl or even shell with no support from JSON libraries. [https://github.com/WardCunningham/vw-sfw-script node]"},"date":1383322093732},{"type":"edit","id":"1c966eabe6937159","item":{"type":"paragraph","id":"1c966eabe6937159","text":"The simplicity of the format and wiki's tolerance of omission makes writing foreign format importers easy. They've been written perl or even shell with no support from JSON libraries. [https://github.com/WardCunningham/vw-sfw-script node] [https://github.com/WardCunningham/msi ruby]"},"date":1383322142794},{"type":"edit","id":"1c966eabe6937159","item":{"type":"paragraph","id":"1c966eabe6937159","text":"The simplicity of the format and wiki's tolerance of omission makes writing foreign format importers easy. They've been written perl or even shell with no support from JSON libraries. The more complex importers use a nested DSL style of callbacks in script languages that favor that style.[https://github.com/WardCunningham/vw-sfw-script node] [https://github.com/WardCunningham/msi ruby]"},"date":1383322252922},{"type":"edit","id":"1c966eabe6937159","item":{"type":"paragraph","id":"1c966eabe6937159","text":"The simplicity of the format and wiki's tolerance of omission makes writing foreign format importers easy. They've been written perl or even shell with no support from JSON libraries. The more complex importers use a nested DSL style of callbacks in script languages that favor that style. [https://github.com/WardCunningham/vw-sfw-script node] [https://github.com/WardCunningham/msi ruby]"},"date":1383322259303},{"item":{"type":"paragraph","id":"eb0da94e2822068d","text":""},"id":"eb0da94e2822068d","type":"add","after":"1c966eabe6937159","date":1383322292432},{"type":"edit","id":"eb0da94e2822068d","item":{"type":"paragraph","id":"eb0da94e2822068d","text":"The \"create\" action facilitates inserting whole pages from imports into the journal. Multiple runs of an importer can add multiple creates for comparing improvements to the import logic. It is also convenient to stash certification and provenience details in each create. I've included the git commit of the importer code."},"date":1383322560846},{"item":{"type":"paragraph","id":"de3ac47543babac3","text":""},"id":"de3ac47543babac3","type":"add","after":"eb0da94e2822068d","date":1383322561355},{"type":"edit","id":"de3ac47543babac3","item":{"type":"paragraph","id":"de3ac47543babac3","text":"Where an importer performs complex transformations, say from excel formulas to method plugin formulas, I've found it convenient to capture the source line numbers of the transformation code and include it in the method items. When numbers don't match a quick peek at the JSON directs ongoing importer development."},"date":1383322876607},{"type":"edit","id":"de3ac47543babac3","item":{"type":"paragraph","id":"de3ac47543babac3","text":"Where an importer performs complex transformations, say from excel formulas to method plugin formulas, I've found it convenient to capture the source line numbers of the transformation code and include it in the method items. When numbers don't match a quick peek at the JSON (shift-double-click for methods) directs ongoing importer development."},"date":1383322968986},{"type":"edit","id":"82d16f9d0dd6be0a","item":{"type":"paragraph","id":"82d16f9d0dd6be0a","text":"We define the schema for federated wiki pages to the depth that we know it. We use a BNF-like notation to suggest JSON elements. Any ambiguity will be resolved by examining the example. We close with a brief reflection on the successes of the format."},"date":1383323017041},{"item":{"type":"paragraph","id":"9ab33be809ebc4f3","text":""},"id":"9ab33be809ebc4f3","type":"add","after":"de3ac47543babac3","date":1383323945571},{"type":"edit","id":"9ab33be809ebc4f3","item":{"type":"paragraph","id":"9ab33be809ebc4f3","text":"See also [[Coding Tips]]"},"date":1383323955006},{"item":{"type":"paragraph","id":"4e2262dbe393eb93","text":""},"id":"4e2262dbe393eb93","type":"add","after":"af2f69ba79453935","date":1383341499789},{"type":"edit","id":"4e2262dbe393eb93","item":{"type":"paragraph","id":"4e2262dbe393eb93","text":"Some items will display their JSON when shift-double-clicked."},"date":1383341540791},{"item":{"type":"paragraph","id":"a7f4d6f4b8370e0c","text":""},"id":"a7f4d6f4b8370e0c","type":"add","after":"4e2262dbe393eb93","date":1383341541298},{"type":"edit","id":"a7f4d6f4b8370e0c","item":{"type":"paragraph","id":"a7f4d6f4b8370e0c","text":"To see an action's JSON, click the action and then double-click the timestamp of the retrieved version."},"date":1383341588558},{"type":"edit","id":"b2a327e04b763179","item":{"type":"code","id":"b2a327e04b763179","text":"journal = [ action ]\naction = { type, id, date, item, site }\ntype = \"create|add|move|edit|remove|fork\"\nid = \"67b842ac89e61cc3\"\ndate = 1383278468000\nsite = \"fed.wiki.org\"\n"},"date":1383341667747},{"type":"edit","id":"d50e80d8d5a269cd","item":{"type":"code","id":"d50e80d8d5a269cd","text":"story = [ item ]\nitem = { type, id, text }\ntype = \"paragraph|image|reference|changes ...\"\nid = \"67b842ac89e61cc3\"\ntext = \"The strongest of all warriors...\""},"date":1383372679794},{"type":"edit","id":"d50e80d8d5a269cd","item":{"type":"code","id":"d50e80d8d5a269cd","text":"story = [ item ]\nitem = { type, id, text }\ntype = \"paragraph|image|reference|changes...\"\nid = \"67b842ac89e61cc3\"\ntext = \"The strongest of all warriors...\""},"date":1383372689343},{"type":"edit","id":"d50e80d8d5a269cd","item":{"type":"code","id":"d50e80d8d5a269cd","text":"story = [ item ]\nitem = { type, id, text }\ntype = \"paragraph|image|factory|reference|...\"\nid = \"67b842ac89e61cc3\"\ntext = \"The strongest of all warriors...\""},"date":1383372732767},{"item":{"type":"paragraph","id":"e53c718939dbf016","text":""},"id":"e53c718939dbf016","type":"add","after":"de3ac47543babac3","date":1383404540520},{"type":"edit","id":"e53c718939dbf016","item":{"type":"paragraph","id":"e53c718939dbf016","text":"See How To [[Import Documents]]"},"date":1383404553941},{"type":"edit","id":"58efd8a07ffc9dc4","item":{"type":"code","id":"58efd8a07ffc9dc4","text":"{\n \"title\": \"War and Peace\",\n \"story\": [\n {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n }\n ],\n \"journal\": [\n {\n \"type\": \"create\",\n \"item\": {\n \"title\": \"War and Peace\",\n \"story\": []\n },\n \"date\": 1383279726841\n },\n {\n \"type\": \"add\",\n \"item\": {\n \"type\": \"factory\",\n \"id\": \"08eaf0295b21d267\"\n },\n \"id\": \"08eaf0295b21d267\",\n \"date\": 1383279861391\n },\n {\n \"type\": \"edit\",\n \"id\": \"08eaf0295b21d267\",\n \"item\": {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n },\n \"date\": 1383279872956\n }\n ]\n}"},"date":1383670124417},{"type":"edit","id":"58efd8a07ffc9dc4","item":{"type":"code","id":"58efd8a07ffc9dc4","text":"{\n \"title\": \"War and Peace\",\n \"story\": [\n {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n }\n ],\n \"journal\": [\n {\n \"type\": \"create\",\n \"item\": {\n \"title\": \"War and Peace\",\n \"story\": []\n },\n \"date\": 1383279726841\n },\n {\n \"type\": \"add\",\n \"item\": {\n \"type\": \"factory\",\n \"id\": \"08eaf0295b21d267\"\n },\n \"id\": \"08eaf0295b21d267\",\n \"date\": 1383279861391\n },\n {\n \"type\": \"edit\",\n \"item\": {\n \"type\": \"paragraph\",\n \"id\": \"08eaf0295b21d267\",\n \"text\": \"The strongest of all warriors...\"\n },\n \"id\": \"08eaf0295b21d267\",\n \"date\": 1383279872956\n }\n ]\n}"},"date":1383670240429},{"type":"edit","id":"aa67e4488b443dfe","item":{"type":"paragraph","id":"aa67e4488b443dfe","text":" Importers"},"date":1385426697329},{"item":{"type":"paragraph","id":"b728a5ed46e578ea","text":""},"id":"b728a5ed46e578ea","type":"add","after":"a7f4d6f4b8370e0c","date":1385426701167},{"type":"edit","id":"b728a5ed46e578ea","item":{"type":"paragraph","id":"b728a5ed46e578ea","text":" Extension"},"date":1385426707744},{"item":{"type":"paragraph","id":"bdd0bdb72b2c4559","text":""},"id":"bdd0bdb72b2c4559","type":"add","after":"b728a5ed46e578ea","date":1385426708249},{"type":"edit","id":"bdd0bdb72b2c4559","item":{"type":"paragraph","id":"bdd0bdb72b2c4559","text":"The item types name plugins that interpret the remainder of the json subtree for the item. "},"date":1385426833743},{"type":"edit","id":"b728a5ed46e578ea","item":{"type":"paragraph","id":"b728a5ed46e578ea","text":" Extensions"},"date":1385426836704},{"type":"edit","id":"bdd0bdb72b2c4559","item":{"type":"paragraph","id":"bdd0bdb72b2c4559","text":"The item types name plugins that interpret the remainder of the json subtree for the item. One server (the origin server) provides all the plugins for the content being browsed in a single browser window."},"date":1385427069317},{"item":{"type":"paragraph","id":"de9aa6ac063700cf","text":""},"id":"de9aa6ac063700cf","type":"add","after":"bdd0bdb72b2c4559","date":1385427069822},{"type":"edit","id":"de9aa6ac063700cf","item":{"type":"paragraph","id":"de9aa6ac063700cf","text":"It is possible that unexpected item types will be encountered. One can turn to the source site for the plugins it uses. These plugins will include documentation that describes where to find source code and support community for any new data format."},"date":1385427384642},{"item":{"type":"paragraph","id":"0852fa5f988a2cff","text":""},"id":"0852fa5f988a2cff","type":"add","after":"de9aa6ac063700cf","date":1385427397657},{"type":"edit","id":"0852fa5f988a2cff","item":{"type":"paragraph","id":"0852fa5f988a2cff","text":"Plugins have the freedom to communicate with each other between pages in the browser. This has some analogies with unix commands connected with pipes. In both cases, small is beautiful."},"date":1385427509880},{"item":{"type":"paragraph","id":"6719bfdc3c57b890","text":""},"id":"6719bfdc3c57b890","type":"add","after":"0852fa5f988a2cff","date":1385427555989},{"type":"edit","id":"6719bfdc3c57b890","item":{"type":"paragraph","id":"6719bfdc3c57b890","text":"See [[Abstraction of Method]]"},"date":1385427563351},{"type":"edit","id":"b728a5ed46e578ea","item":{"type":"html","id":"b728a5ed46e578ea","text":" Extensions"},"date":1418516779547},{"type":"edit","id":"aa67e4488b443dfe","item":{"type":"html","id":"aa67e4488b443dfe","text":" Importers"},"date":1418516782839},{"type":"edit","id":"d117104a09658b32","item":{"type":"html","id":"d117104a09658b32","text":" Example"},"date":1418516871338},{"type":"fork","site":"ward.fed.wiki.org","date":1418516965190},{"type":"fork","site":"plugins.fed.wiki.org","date":1469481128881}]},"list-of-plugins":{"title":"List of Plugins","story":[{"type":"paragraph","id":"2d56a84e7d9678bd","text":"This server has many plugins installed. Some are experiments old or new. A few provide basic mechanisms. The rest have some purpose explained in the About pages embedded in the plugin."},{"type":"paragraph","id":"2be9683ecef756ad","text":"About pages have green borders. Look there for examples, markup explaination and links to source code. "},{"type":"plugins","id":"c6a5fd30900ac191","text":"$"}],"journal":[{"type":"create","item":{"title":"List of Plugins","story":[]},"date":1469229028867},{"item":{"type":"factory","id":"c6a5fd30900ac191"},"id":"c6a5fd30900ac191","type":"add","date":1469229030572},{"type":"edit","id":"c6a5fd30900ac191","item":{"type":"plugins","id":"c6a5fd30900ac191","text":"$"},"date":1469229037451},{"item":{"type":"factory","id":"2d56a84e7d9678bd"},"id":"2d56a84e7d9678bd","type":"add","after":"c6a5fd30900ac191","date":1469229051163},{"type":"edit","id":"2d56a84e7d9678bd","item":{"type":"paragraph","id":"2d56a84e7d9678bd","text":"This server has many plugins installed. Some are experiments old or new. A few provide basic mechanisms. The rest have some purpose explained in the About pages embedded in the plugin."},"date":1469229223043},{"type":"move","order":["2d56a84e7d9678bd","c6a5fd30900ac191"],"id":"c6a5fd30900ac191","date":1469229237417},{"type":"add","id":"2be9683ecef756ad","item":{"type":"paragraph","id":"2be9683ecef756ad","text":"Look for examples in the about pages as well as links to the source code repositories where they live."},"after":"2d56a84e7d9678bd","date":1469229314101},{"type":"edit","id":"2be9683ecef756ad","item":{"type":"paragraph","id":"2be9683ecef756ad","text":"Look for examples in the about pages, descriptions of their special markup, and links to the source code repositories where they live."},"date":1469229402711},{"type":"edit","id":"2be9683ecef756ad","item":{"type":"paragraph","id":"2be9683ecef756ad","text":"Look for examples in the about pages, descriptions of their special markup, and links to the source code repositories where they live. Plugin pages have a green border."},"date":1469229456998},{"type":"edit","id":"2be9683ecef756ad","item":{"type":"paragraph","id":"2be9683ecef756ad","text":"Look for examples in the about pages, descriptions of their special markup, and links to the source code repositories where they live. About pages have a green border."},"date":1469229480518},{"type":"edit","id":"2be9683ecef756ad","item":{"type":"paragraph","id":"2be9683ecef756ad","text":"About pages have green borders. Look there for examples, markup documentation and links to source code. "},"date":1469229584064},{"type":"edit","id":"2be9683ecef756ad","item":{"type":"paragraph","id":"2be9683ecef756ad","text":"About pages have green borders. Look there for examples, markup explaination and links to source code. "},"date":1469229607290}]},"mixed-content":{"title":"Mixed Content","story":[{"type":"paragraph","id":"0a443facec05721e","text":"Wiki extends its twenty year old namesake by providing an unbounded complement of markups of which only a few offer specific syntax for formatting text. The remaining markups configure plugins to show or do work we usually associate with applications."},{"type":"paragraph","id":"0203cd780eb84d57","text":"See [[Formatting Strengths]] of various text markups."},{"type":"paragraph","id":"dc20a19dfba52f05","text":"Just as web pages have grown to become web apps, wiki pages have grown to be the web application you can edit."},{"type":"paragraph","id":"a84cb04ce884a66e","text":"Plugins straddle the boundary between the javascript written by programmers and the pages written by authors. Authors choose and configure plugins to meet the needs of the pages they write. Programmers anticipate these needs and write plugins that work together for the author."},{"type":"paragraph","id":"9eb64571db45888a","text":"See [[List of Plugins]] installed here."},{"type":"paragraph","id":"189cecaf50ea8436","text":"Plugins decide if and how they can be configured by markup. Try double-clicking an item to see if can be edited. Type ctrl/alt-s to exit. Type cmd-i for information while editing. Your edits here will be saved in your browser's local storage."},{"type":"paragraph","id":"e3e939ce471f5d26","text":"See [[Local Changes]] to discard changes."},{"type":"paragraph","id":"b70d888868b00e3c","text":"Some plugins offer unique editing mechanisms. Clicking check-boxes, Dragging graph nodes, Typing morse code and Marking map locations all affect markup changes that can be viewed, revised or replicated as plain text."},{"type":"paragraph","id":"f0f47fb9480da291","text":"Some plugins get or put internet files. Grep reads other wiki pages, Flagmatic writes new flag icons, Search consults a database, Shell runs server programs and Transport imports other web content."},{"type":"paragraph","id":"b86e297a0aed3f6c","text":"Some plugins source or sink data. Method and Data share values with other Methods or Radar and Scatter charts, Graphs source data to Transport, Maps and Bikeshare send location data to each other. "},{"type":"paragraph","id":"57dbb8b03fefe287","text":"See [[Structures]] aggregated through page transformations."},{"type":"paragraph","id":"fe8549113456fe00","text":"Plugins are represented and versioned as JSON objects that are expected to outlive the plugin javascript that interprets them. A page is the tree trunk with branches and leaves made of plugin objects."},{"type":"paragraph","id":"09c3ce92627547b3","text":"See [[JSON Schema]] used on disk and over the wire."},{"type":"paragraph","id":"f004cfc787d6417e","text":"See [[Curl this Site]] for real data from our pages."}],"journal":[{"type":"create","item":{"title":"Mixed Content","story":[]},"date":1469227337475},{"item":{"type":"factory","id":"0a443facec05721e"},"id":"0a443facec05721e","type":"add","date":1469227388893},{"type":"edit","id":"0a443facec05721e","item":{"type":"paragraph","id":"0a443facec05721e","text":"Wiki extends its twenty year old namesake by providing an unbounded complement of markups of which only a few offer specific syntax for formatting text. The remaining markups configure plugins to show or do work we usually associate with applications."},"date":1469227779696},{"type":"add","id":"dc20a19dfba52f05","item":{"type":"paragraph","id":"dc20a19dfba52f05","text":"Just as web pages have grown to become web apps, wiki has grown to be the web application you can edit."},"after":"0a443facec05721e","date":1469227891977},{"type":"add","id":"a84cb04ce884a66e","item":{"type":"paragraph","id":"a84cb04ce884a66e","text":"Plugins straddle the boundary between the javascript written by programmers and the pages written by authors. Authors choose and configure plugins to meet the needs of the pages they write. Programmers anticipate "},"after":"dc20a19dfba52f05","date":1469228329763},{"type":"add","id":"9eb64571db45888a","item":{"type":"paragraph","id":"9eb64571db45888a","text":"See [[List of Plugins]] installed here."},"after":"a84cb04ce884a66e","date":1469229023325},{"type":"edit","id":"a84cb04ce884a66e","item":{"type":"paragraph","id":"a84cb04ce884a66e","text":"Plugins straddle the boundary between the javascript written by programmers and the pages written by authors. Authors choose and configure plugins to meet the needs of the pages they write. Programmers anticipate these needs and write plugins that work together for the author."},"date":1469229689614},{"type":"add","id":"189cecaf50ea8436","item":{"type":"paragraph","id":"189cecaf50ea8436","text":"Plugins decide if and how they can be configured by markup. Try double-clicking an item to see if can be edited. Type ctrl/alt-s to exit. Type cmd-i for information while editing. Your edits here will be saved in your browser's local storage."},"after":"9eb64571db45888a","date":1469230003295},{"type":"add","id":"e3e939ce471f5d26","item":{"type":"paragraph","id":"e3e939ce471f5d26","text":"See [[Local Changes]] to review and discard your changes."},"after":"189cecaf50ea8436","date":1469230032297},{"type":"edit","id":"e3e939ce471f5d26","item":{"type":"paragraph","id":"e3e939ce471f5d26","text":"See [[Local Changes]] to review/discard your changes."},"date":1469230041830},{"type":"edit","id":"e3e939ce471f5d26","item":{"type":"paragraph","id":"e3e939ce471f5d26","text":"See [[Local Changes]] to discard changes."},"date":1469230075878},{"type":"add","id":"b70d888868b00e3c","item":{"type":"paragraph","id":"b70d888868b00e3c","text":"Some plugins offer unique editing mechanisms. Clicking check-boxes, Dragging graph nodes, Typing morse code and Marking map locations all affect markup changes that can be viewed, revised or replicated as plain text."},"after":"e3e939ce471f5d26","date":1469232419162},{"type":"add","id":"f0f47fb9480da291","item":{"type":"paragraph","id":"f0f47fb9480da291","text":"Some plugins get or put internet files. Grep reads other wiki pages, Flagmatic writes new flag icons, Search consults a database, Shell runs server programs and Transport imports other web content."},"after":"b70d888868b00e3c","date":1469232744883},{"type":"add","id":"b86e297a0aed3f6c","item":{"type":"paragraph","id":"b86e297a0aed3f6c","text":"Some plugins source or sink data. Method and Data share values with other Methods or Radar and Scatter charts, Graphs source data to Transport, Maps and Bikeshare send location data to each other. "},"after":"f0f47fb9480da291","date":1469233244525},{"type":"add","id":"57dbb8b03fefe287","item":{"type":"paragraph","id":"57dbb8b03fefe287","text":"See [[Structures]] aggregated through page transformations."},"after":"b86e297a0aed3f6c","date":1469233302392},{"type":"add","id":"fe8549113456fe00","item":{"type":"paragraph","id":"fe8549113456fe00","text":"Plugins are represented and versioned as JSON objects that are expected to outlive the plugin javascript that interprets them. A page is the tree trunk with branches and leaves made of plugin objects."},"after":"57dbb8b03fefe287","date":1469233497972},{"type":"add","id":"09c3ce92627547b3","item":{"type":"paragraph","id":"09c3ce92627547b3","text":"See [[JSON Schema]] to understand wiki's permanent format on disk and over the wire."},"after":"fe8549113456fe00","date":1469233598148},{"type":"edit","id":"09c3ce92627547b3","item":{"type":"paragraph","id":"09c3ce92627547b3","text":"See [[JSON Schema]] for wiki's format on disk and over the wire."},"date":1469233631007},{"type":"edit","id":"09c3ce92627547b3","item":{"type":"paragraph","id":"09c3ce92627547b3","text":"See [[JSON Schema]] used on disk and over the wire."},"date":1469233655443},{"type":"add","id":"0203cd780eb84d57","item":{"type":"paragraph","id":"0203cd780eb84d57","text":"See [[Formatting Strengths]] of various markups."},"after":"0a443facec05721e","date":1475354147285},{"type":"edit","id":"0203cd780eb84d57","item":{"type":"paragraph","id":"0203cd780eb84d57","text":"See [[Formatting Strengths]] of various text markups."},"date":1485122552695},{"type":"edit","id":"dc20a19dfba52f05","item":{"type":"paragraph","id":"dc20a19dfba52f05","text":"Just as web pages have grown to become web apps, wiki pages have grown to be the web application you can edit."},"date":1485122577838},{"type":"add","id":"f004cfc787d6417e","item":{"type":"paragraph","id":"f004cfc787d6417e","text":"See [[Curl this Site]] for real data."},"after":"09c3ce92627547b3","date":1495813049221},{"type":"edit","id":"f004cfc787d6417e","item":{"type":"paragraph","id":"f004cfc787d6417e","text":"See [[Curl this Site]] for real data from our pages."},"date":1495816475450}]},"names-of-things":{"title":"Names of Things","story":[{"type":"paragraph","id":"f05d2bfd0f0ff28c","text":"We throw around a lot of terms when we talk about federated wiki that come from a variety of sources. Here we look at the sources and mention the most common names they provide."},{"type":"paragraph","id":"048c2f897e59ef7f","text":"[[Interface Names]] for what one sees."},{"type":"paragraph","id":"cfb4284a4de13280","text":"[[Plugin Names]] for many ways to write."},{"type":"paragraph","id":"1601fc9a53ea8492","text":"[[Keystroke Names]] for making things happen."},{"type":"paragraph","id":"6f744a1342951fc5","text":"[[Networking Names]] for where things are."},{"type":"paragraph","id":"1579722fef48f151","text":"[[Project Names]] for how we got here."},{"type":"paragraph","id":"db18bd94322e6019","text":"Programmers will find earlier and more technical definitions in the [[Bibliography]]."}],"journal":[{"type":"create","item":{"title":"Names of Things","story":[]},"date":1420991540112},{"item":{"type":"factory","id":"f05d2bfd0f0ff28c"},"id":"f05d2bfd0f0ff28c","type":"add","date":1420991622689},{"type":"edit","id":"f05d2bfd0f0ff28c","item":{"type":"paragraph","id":"f05d2bfd0f0ff28c","text":"We throw around a lot of terms when we talk about federated wiki that come from a variety of sources. Here we look at the sources and mention the most common names they provide."},"date":1420991761701},{"item":{"type":"factory","id":"048c2f897e59ef7f"},"id":"048c2f897e59ef7f","type":"add","after":"f05d2bfd0f0ff28c","date":1420991764392},{"type":"edit","id":"048c2f897e59ef7f","item":{"type":"paragraph","id":"048c2f897e59ef7f","text":"[[Interface Names]]"},"date":1420991857556},{"type":"add","id":"6a33f45ee5c59ad7","item":{"type":"paragraph","id":"6a33f45ee5c59ad7","text":"[[Package Names]]"},"after":"048c2f897e59ef7f","date":1420991869180},{"type":"add","id":"cfb4284a4de13280","item":{"type":"paragraph","id":"cfb4284a4de13280","text":"[[Plugin Names]]"},"after":"6a33f45ee5c59ad7","date":1420991905900},{"type":"add","id":"6f744a1342951fc5","item":{"type":"paragraph","id":"6f744a1342951fc5","text":"[[Networking Names]]"},"after":"048c2f897e59ef7f","date":1420997588141},{"type":"move","order":["f05d2bfd0f0ff28c","048c2f897e59ef7f","6f744a1342951fc5","cfb4284a4de13280","6a33f45ee5c59ad7"],"id":"cfb4284a4de13280","date":1421001540794},{"type":"edit","id":"048c2f897e59ef7f","item":{"type":"paragraph","id":"048c2f897e59ef7f","text":"[[Interface Names]] using wiki"},"date":1421003317582},{"type":"edit","id":"6f744a1342951fc5","item":{"type":"paragraph","id":"6f744a1342951fc5","text":"[[Networking Names]] for where things are"},"date":1421003405029},{"type":"edit","id":"048c2f897e59ef7f","item":{"type":"paragraph","id":"048c2f897e59ef7f","text":"[[Interface Names]] for what one sees"},"date":1421003430059},{"type":"edit","id":"cfb4284a4de13280","item":{"type":"paragraph","id":"cfb4284a4de13280","text":"[[Plugin Names]] for diversity of content"},"date":1421003453878},{"type":"edit","id":"6a33f45ee5c59ad7","item":{"type":"paragraph","id":"6a33f45ee5c59ad7","text":"[[Package Names]] for opening the source"},"date":1421003532462},{"type":"edit","id":"f05d2bfd0f0ff28c","item":{"type":"paragraph","id":"f05d2bfd0f0ff28c","text":"We throw around a lot of terms when we talk about federated wiki that come from a variety of sources. Here we look at the sources and mention the most common names they provide. By [[Ward Cunningham]]"},"date":1421003609230},{"type":"edit","id":"f05d2bfd0f0ff28c","item":{"type":"paragraph","id":"f05d2bfd0f0ff28c","text":"We throw around a lot of terms when we talk about federated wiki that come from a variety of sources. Here we look at the sources and mention the most common names they provide. by [[Ward Cunningham]]"},"date":1421003625067},{"type":"edit","id":"f05d2bfd0f0ff28c","item":{"type":"paragraph","id":"f05d2bfd0f0ff28c","text":"We throw around a lot of terms when we talk about federated wiki that come from a variety of sources. Here we look at the sources and mention the most common names they provide."},"date":1421003754049},{"item":{"type":"factory","id":"9bfc331f8e112215"},"id":"9bfc331f8e112215","type":"add","after":"6a33f45ee5c59ad7","date":1421003756827},{"type":"remove","id":"9bfc331f8e112215","date":1421003776330},{"item":{"type":"factory","id":"db18bd94322e6019"},"id":"db18bd94322e6019","type":"add","after":"6a33f45ee5c59ad7","date":1421005464289},{"type":"edit","id":"db18bd94322e6019","item":{"type":"paragraph","id":"db18bd94322e6019","text":"For gluttons, I've attached a bibliography of earlier definitions to my about page. See [[Ward Cunningham]]"},"date":1421005542426},{"type":"edit","id":"db18bd94322e6019","item":{"type":"paragraph","id":"db18bd94322e6019","text":"For gluttons, I've attached a bibliography of earlier definitions to my about page, [[Ward Cunningham]]"},"date":1421005574957},{"type":"edit","id":"db18bd94322e6019","item":{"type":"paragraph","id":"db18bd94322e6019","text":"For gluttons, I've attached a bibliography of earlier definitions to my about page, [[Ward Cunningham]]."},"date":1421005593982},{"type":"edit","id":"db18bd94322e6019","item":{"type":"paragraph","id":"db18bd94322e6019","text":"For gluttons, I've created a [[Bibliography]] of earlier pages of definitions."},"date":1423065944355},{"type":"edit","id":"db18bd94322e6019","item":{"type":"paragraph","id":"db18bd94322e6019","text":"For gluttons, I've created a [[Bibliography]] of earlier pages of definitions more oriented to programmers than authors."},"date":1423065970625},{"type":"add","id":"9d6dbbf45533fa93","item":{"type":"paragraph","id":"9d6dbbf45533fa93","text":"I've also created a presentation that shows how these things work together. [http://asia.wiki.org/things.pdf pdf]"},"after":"db18bd94322e6019","date":1423066816747},{"type":"edit","id":"9d6dbbf45533fa93","item":{"type":"paragraph","id":"9d6dbbf45533fa93","text":"I've also created a presentation that shows how these things work together. This is best viewed by flipping through looking at whole pages. [http://asia.wiki.org/things.pdf pdf]"},"date":1423066897471},{"type":"edit","id":"9d6dbbf45533fa93","item":{"type":"paragraph","id":"9d6dbbf45533fa93","text":"I've also created a presentation that shows how these things work together. This is best viewed as a slide show looking at whole pages. [http://asia.wiki.org/things.pdf pdf]"},"date":1423066929533},{"type":"edit","id":"9d6dbbf45533fa93","item":{"type":"paragraph","id":"9d6dbbf45533fa93","text":"I've also created a presentation that shows how these things work together. This is best viewed as a slide show looking at one whole page at a time. [http://asia.wiki.org/things.pdf pdf]"},"date":1423066945612},{"type":"remove","id":"6a33f45ee5c59ad7","date":1423683606989},{"type":"move","order":["f05d2bfd0f0ff28c","048c2f897e59ef7f","cfb4284a4de13280","6f744a1342951fc5","db18bd94322e6019","9d6dbbf45533fa93"],"id":"cfb4284a4de13280","date":1423683614204},{"type":"edit","id":"048c2f897e59ef7f","item":{"type":"paragraph","id":"048c2f897e59ef7f","text":"[[Interface Names]] for what one sees."},"date":1423683623686},{"type":"edit","id":"cfb4284a4de13280","item":{"type":"paragraph","id":"cfb4284a4de13280","text":"[[Plugin Names]] for diversity of content."},"date":1423683627404},{"type":"edit","id":"6f744a1342951fc5","item":{"type":"paragraph","id":"6f744a1342951fc5","text":"[[Networking Names]] for where things are."},"date":1423683630473},{"type":"edit","id":"db18bd94322e6019","item":{"type":"paragraph","id":"db18bd94322e6019","text":"Programmers will find earlier and more technical definitions in the [[Bibliography]]."},"date":1423683785188},{"type":"edit","id":"9d6dbbf45533fa93","item":{"type":"paragraph","id":"9d6dbbf45533fa93","text":"We've created a presentation that shows how these things work together. This is best viewed as a slide show looking at one whole page at a time. [http://asia.wiki.org/things.pdf pdf]"},"date":1423683826751},{"type":"add","id":"1579722fef48f151","item":{"type":"paragraph","id":"1579722fef48f151","text":"[[Project Names]] for how we got here."},"after":"6f744a1342951fc5","date":1424203795532},{"type":"edit","id":"cfb4284a4de13280","item":{"type":"paragraph","id":"cfb4284a4de13280","text":"[[Plugin Names]] for diverse content and markup."},"date":1424203818194},{"type":"edit","id":"cfb4284a4de13280","item":{"type":"paragraph","id":"cfb4284a4de13280","text":"[[Plugin Names]] for many ways to write."},"date":1424203868270},{"type":"fork","site":"glossary.asia.wiki.org","date":1424541560446},{"type":"add","id":"1601fc9a53ea8492","item":{"type":"paragraph","id":"1601fc9a53ea8492","text":"[[Keystroke Names]] for making things happen."},"after":"6f744a1342951fc5","site":"glossary.asia.wiki.org","date":1424541560442},{"type":"fork","date":1424541577604},{"type":"move","order":["f05d2bfd0f0ff28c","048c2f897e59ef7f","1601fc9a53ea8492","cfb4284a4de13280","6f744a1342951fc5","1579722fef48f151","db18bd94322e6019","9d6dbbf45533fa93"],"id":"1601fc9a53ea8492","date":1424541584946},{"type":"move","order":["f05d2bfd0f0ff28c","048c2f897e59ef7f","cfb4284a4de13280","1601fc9a53ea8492","6f744a1342951fc5","1579722fef48f151","db18bd94322e6019","9d6dbbf45533fa93"],"id":"1601fc9a53ea8492","date":1424541590433},{"type":"remove","id":"9d6dbbf45533fa93","date":1434987578404},{"type":"fork","site":"glossary.asia.wiki.org","date":1469226783452}]},"neighborhoods":{"title":"Neighborhoods","story":[{"type":"paragraph","id":"146780f65e9abf2e","text":"Pages move freely throughout the federation which we subdivide into regions of various scale so as to have the pages we want and avoid the pages that would conflict or distract."},{"type":"paragraph","id":"93500535dd0cc0ca","text":"A page accumulates context as it is forked from site to site. Links when clicked are resolved within this context."},{"type":"paragraph","id":"6ca183082848f17e","text":"A tab accumulates a neighborhood of sites as browsing exposes it to many contexts. "},{"type":"paragraph","id":"250367e85f815d65","text":"Search consults sitemaps fetched for each neighbor. Results are most relevant when the neighborhood is not too big or too small."},{"type":"markdown","id":"ec91a81230de706f","text":"# Curation"},{"type":"paragraph","id":"2f23ecc4105988cf","text":"Community depends on the attention of others. We have devised various schemes for collecting and maintaining lists of sites that make good neighbors."},{"type":"paragraph","id":"3a2e98b634166568","text":"A page from one site can be joined to another by drag and drop followed by fork."},{"type":"paragraph","id":"b7d733558d6693a0","text":"A page from one site can be referenced another by drag and drop to a Factory which creates a Reference."},{"type":"paragraph","id":"29535891e0b2a415","text":"A page of References can represent a useful neighborhood that can be retrieved by revisiting the page."},{"type":"paragraph","id":"a303b0e430124b58","text":"A site full of Reference pages offers a searchable index of curated keywords. Entries come from a Transporter."},{"type":"paragraph","id":"b1ff8737fdd5519d","text":"A Roster offers a compact lists of sites likely participating in some collaboration. See [[About Roster Plugin]]"},{"type":"paragraph","id":"8d626fef29e6899b","text":"A Roster of index sites distributes collection responsibility between multiple curators, categorized if needed."},{"type":"paragraph","id":"df77a2d75e67e18f","text":"A search engine can produce Rosters from queries or new discoveries. See [[Recent Activity]]"},{"type":"markdown","id":"1a53e1f597cac0eb","text":"# Caulfield"},{"type":"paragraph","id":"95306fe25064ce34","text":"Mike Caulfield has explored many ways to write for and participate in communities."},{"type":"paragraph","id":"d12a3c2da9aa6edc","text":"Write for your future self by keeping a journal. Write about what you read every day. Quote liberally. Keep chronologically. Note connections as they surface."},{"type":"paragraph","id":"f209eb3da1d57ddd","text":"Recruit colleagues to write together quoting or copying from each other over a period of weeks or months as a happening."},{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. By his design pod leadership can expel bad actors from the shared roster."},{"type":"paragraph","id":"2c2f38cff97f547f","text":"Extract wiki's best ideas and bring them to other systems like wordpress blogs and open educational resources."},{"type":"markdown","id":"8b62ba5840a9264a","text":"# Bovill"},{"type":"paragraph","id":"8a131679103e31ca","text":"David Bofill has explored many ways to configure and apply community resources."},{"type":"paragraph","id":"f3bf49a98dab1600","text":"Integrate wiki with blockchain technology in particular the IPFS effort lead by Juan Benet."},{"type":"paragraph","id":"ba567b7be3219815","text":"Support ad-hoc communities with clusters of Raspberry-Pi computers operating on site at events."},{"type":"paragraph","id":"d0f11698c6a8775c","text":"Delegate import formatting to remote services using a plugin of his design. See [[About Transport Plugin]]"},{"type":"paragraph","id":"1215a4453af07895","text":"Author structured content for other systems that may or may not include ongoing collaboration in wiki. "},{"type":"markdown","id":"6219eb1de9483156","text":"# Beyond"},{"type":"paragraph","id":"0f7cd7cda1e8c526","text":"We imagine a lasting medium that is diverse but not divisive. With humans in every loop we are most likely to serve our future selves well."},{"type":"paragraph","id":"dabc4b80275d04ce","text":"We read to write and write for action. We close this loop with immediate publication where we expect to accelerate progress. See [[Writing with Strangers]]"},{"type":"paragraph","id":"d823404e7bfff1e7","text":"We've engineered a platform with visible texture at multiple scales and little hidden information. We can watch ourselves be us. See [[Social Chromatography]]"}],"journal":[{"type":"create","item":{"title":"Neighborhoods","story":[]},"date":1469246310353},{"item":{"type":"factory","id":"146780f65e9abf2e"},"id":"146780f65e9abf2e","type":"add","date":1469305927696},{"type":"edit","id":"146780f65e9abf2e","item":{"type":"paragraph","id":"146780f65e9abf2e","text":"Pages move freely throughout the federation which we subdivide into regions of various scale so as to have the pages we want and avoid the pages that would conflict or distract."},"date":1469306204877},{"type":"add","id":"93500535dd0cc0ca","item":{"type":"paragraph","id":"93500535dd0cc0ca","text":"A page accumulates context as it is forked from site to site. Links when clicked are resolved within this context."},"after":"146780f65e9abf2e","date":1469306270313},{"item":{"type":"factory","id":"6ca183082848f17e"},"id":"6ca183082848f17e","type":"add","after":"93500535dd0cc0ca","date":1469309694081},{"type":"edit","id":"6ca183082848f17e","item":{"type":"paragraph","id":"6ca183082848f17e","text":"A tab accumulates a neighborhood of sites as browsing exposes it to many contexts. "},"date":1469309799758},{"type":"add","id":"250367e85f815d65","item":{"type":"paragraph","id":"250367e85f815d65","text":"Search consults the sitemaps fetched for each neighbor. This works best when the neighborhood is not too be and not too small."},"after":"6ca183082848f17e","date":1469309920525},{"type":"edit","id":"250367e85f815d65","item":{"type":"paragraph","id":"250367e85f815d65","text":"Search consults the sitemaps fetched for each neighbor. This works best when the neighborhood is not too big or too small."},"date":1469309944513},{"type":"edit","id":"250367e85f815d65","item":{"type":"paragraph","id":"250367e85f815d65","text":"Search consults sitemaps fetched for each neighbor. Results are most relevant when the neighborhood is not too big or too small."},"date":1469310021720},{"item":{"type":"factory","id":"f2cf7d2761a7f878"},"id":"f2cf7d2761a7f878","type":"add","after":"250367e85f815d65","date":1469329701647},{"type":"edit","id":"f2cf7d2761a7f878","item":{"type":"paragraph","id":"f2cf7d2761a7f878","text":"# Style"},"date":1469329713370},{"type":"add","id":"1a53e1f597cac0eb","item":{"type":"paragraph","id":"1a53e1f597cac0eb","text":"# Happenings"},"after":"f2cf7d2761a7f878","date":1469329739255},{"type":"add","id":"8b62ba5840a9264a","item":{"type":"paragraph","id":"8b62ba5840a9264a","text":"# Outreach"},"after":"1a53e1f597cac0eb","date":1469329820303},{"type":"edit","id":"f2cf7d2761a7f878","item":{"type":"paragraph","id":"f2cf7d2761a7f878","text":"# Writing"},"date":1469329826642},{"type":"add","id":"ec91a81230de706f","item":{"type":"paragraph","id":"ec91a81230de706f","text":"# Curation"},"after":"250367e85f815d65","date":1469374022170},{"type":"add","id":"2f23ecc4105988cf","item":{"type":"paragraph","id":"2f23ecc4105988cf","text":"We have devised various schemes for collecting and maintaining lists of sites that make good neighbors."},"after":"ec91a81230de706f","date":1469374200512},{"type":"add","id":"3a2e98b634166568","item":{"type":"paragraph","id":"3a2e98b634166568","text":"A page from one site can be joined to another by drag and drop followed by fork."},"after":"2f23ecc4105988cf","date":1469374369280},{"type":"add","id":"b7d733558d6693a0","item":{"type":"paragraph","id":"b7d733558d6693a0","text":"A page from one site can be referenced another by drag and drop to a Factory which creates a reference."},"after":"3a2e98b634166568","date":1469374411212},{"type":"edit","id":"b7d733558d6693a0","item":{"type":"paragraph","id":"b7d733558d6693a0","text":"A page from one site can be referenced another by drag and drop to a Factory which creates a Reference."},"date":1469374444226},{"type":"add","id":"29535891e0b2a415","item":{"type":"paragraph","id":"29535891e0b2a415","text":"A page of references can represent a useful neighborhood that can be retrieved by revisiting the page."},"after":"b7d733558d6693a0","date":1469374487280},{"type":"edit","id":"29535891e0b2a415","item":{"type":"paragraph","id":"29535891e0b2a415","text":"A page of References can represent a useful neighborhood that can be retrieved by revisiting the page."},"date":1469374569894},{"type":"add","id":"a303b0e430124b58","item":{"type":"paragraph","id":"a303b0e430124b58","text":"A site full of Reference pages offers a searchable index of curated keywords."},"after":"29535891e0b2a415","date":1469374777052},{"type":"add","id":"b1ff8737fdd5519d","item":{"type":"paragraph","id":"b1ff8737fdd5519d","text":"A Roster offers a compact lists of sites likely participating in some collaboration."},"after":"a303b0e430124b58","date":1469374899202},{"type":"add","id":"df77a2d75e67e18f","item":{"type":"paragraph","id":"df77a2d75e67e18f","text":"A search engine can produce Rosters from queries or from collected recent activity."},"after":"b1ff8737fdd5519d","date":1469374970912},{"type":"edit","id":"2f23ecc4105988cf","item":{"type":"paragraph","id":"2f23ecc4105988cf","text":"Community depends on the attention of others. We have devised various schemes for collecting and maintaining lists of sites that make good neighbors."},"date":1469375071778},{"type":"edit","id":"ec91a81230de706f","item":{"type":"markdown","id":"ec91a81230de706f","text":"# Curation"},"date":1469375073523},{"type":"add","id":"8d626fef29e6899b","item":{"type":"paragraph","id":"8d626fef29e6899b","text":"A Roster of index sites distributes collection responsibility between multiple curators."},"after":"b1ff8737fdd5519d","date":1469375459625},{"type":"edit","id":"a303b0e430124b58","item":{"type":"paragraph","id":"a303b0e430124b58","text":"A site full of Reference pages offers a searchable index of curated keywords. Drag and drop entries come from the \"cite\" Transporter."},"date":1469375653816},{"type":"edit","id":"a303b0e430124b58","item":{"type":"paragraph","id":"a303b0e430124b58","text":"A site full of Reference pages offers a searchable index of curated keywords. Entries come from the \"cite\" Transporter."},"date":1469375665644},{"type":"edit","id":"a303b0e430124b58","item":{"type":"paragraph","id":"a303b0e430124b58","text":"A site full of Reference pages offers a searchable index of curated keywords. Entries come from a Transporter."},"date":1469375678868},{"type":"edit","id":"8d626fef29e6899b","item":{"type":"paragraph","id":"8d626fef29e6899b","text":"A Roster of index sites distributes collection responsibility between multiple curators, categorized and retrieved for purpose."},"date":1469375782640},{"type":"edit","id":"8d626fef29e6899b","item":{"type":"paragraph","id":"8d626fef29e6899b","text":"A Roster of index sites distributes collection responsibility between multiple curators, categorized if needed."},"date":1469375803741},{"type":"edit","id":"df77a2d75e67e18f","item":{"type":"paragraph","id":"df77a2d75e67e18f","text":"A search engine can produce Rosters from queries or new discoveries. See [[Recent Activity]]"},"date":1469376031436},{"type":"edit","id":"b1ff8737fdd5519d","item":{"type":"paragraph","id":"b1ff8737fdd5519d","text":"A Roster offers a compact lists of sites likely participating in some collaboration. See [[About Roster Plugin]]"},"date":1469377968626},{"type":"remove","id":"f2cf7d2761a7f878","date":1469381048756},{"type":"add","id":"95306fe25064ce34","item":{"type":"paragraph","id":"95306fe25064ce34","text":"Mike Caulfield has explored many ways to write for and participate in communities."},"after":"1a53e1f597cac0eb","date":1469381170376},{"type":"add","id":"d12a3c2da9aa6edc","item":{"type":"paragraph","id":"d12a3c2da9aa6edc","text":"Write for your future self by keeping a journal. Write about what you read every day. Quote liberally. Keep chronologically. Note connections as they surface. "},"after":"95306fe25064ce34","date":1469381283437},{"type":"edit","id":"d12a3c2da9aa6edc","item":{"type":"paragraph","id":"d12a3c2da9aa6edc","text":"Write for your future self by keeping a journal. Write about what you read every day. Quote liberally. Keep chronologically. Note connections as they surface."},"date":1469381315393},{"type":"add","id":"f209eb3da1d57ddd","item":{"type":"paragraph","id":"f209eb3da1d57ddd","text":"Recruit colleagues to write together quoting or copying from each other over a period of weeks or months as a happening."},"after":"d12a3c2da9aa6edc","date":1469381417844},{"type":"add","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. Pod leadership can remove bad actors from a roster that others transclude."},"after":"f209eb3da1d57ddd","date":1469381684240},{"type":"add","id":"2c2f38cff97f547f","item":{"type":"paragraph","id":"2c2f38cff97f547f","text":"Extract wiki's best ideas and bring them to other systems like wordpress blogs and open educational resources."},"after":"52d13ae900095e0e","date":1469381911271},{"type":"edit","id":"1a53e1f597cac0eb","item":{"type":"paragraph","id":"1a53e1f597cac0eb","text":"# Caulfield"},"date":1469381940530},{"type":"edit","id":"1a53e1f597cac0eb","item":{"type":"markdown","id":"1a53e1f597cac0eb","text":"# Caulfield"},"date":1469381942535},{"type":"edit","id":"8b62ba5840a9264a","item":{"type":"paragraph","id":"8b62ba5840a9264a","text":"# Bovill"},"date":1469381970418},{"type":"add","id":"8a131679103e31ca","item":{"type":"paragraph","id":"8a131679103e31ca","text":"David Bofill has explored many ways to configure and apply community resources."},"after":"8b62ba5840a9264a","date":1469382067738},{"type":"add","id":"f3bf49a98dab1600","item":{"type":"paragraph","id":"f3bf49a98dab1600","text":"Integrate wiki with blockchain technology in particular the IPFS effort lead by"},"after":"8a131679103e31ca","date":1469382166447},{"type":"edit","id":"f3bf49a98dab1600","item":{"type":"paragraph","id":"f3bf49a98dab1600","text":"Integrate wiki with blockchain technology in particular the IPFS effort lead by Juan Benett."},"date":1469382201679},{"type":"edit","id":"f3bf49a98dab1600","item":{"type":"paragraph","id":"f3bf49a98dab1600","text":"Integrate wiki with blockchain technology in particular the IPFS effort lead by Juan Benet."},"date":1469382229356},{"type":"add","id":"ba567b7be3219815","item":{"type":"paragraph","id":"ba567b7be3219815","text":"Support ad-hoc communities with clusters of Raspberry-Pi computers operating on site at events."},"after":"f3bf49a98dab1600","date":1469382338104},{"type":"add","id":"d0f11698c6a8775c","item":{"type":"paragraph","id":"d0f11698c6a8775c","text":"Delegating page import and formatting to remote transporters using the Transport plugin of his design."},"after":"ba567b7be3219815","date":1469382427493},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster of his design. Pod leadership can remove bad actors from a roster that others transclude."},"date":1469382492419},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. Pod leadership can remove bad actors from a roster that others transclude, a feature of his design."},"date":1469382558302},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. Pod leadership can remove bad actors from a roster that others transclude, a feature he designed."},"date":1469382576730},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. Pod leadership can remove bad actors from a roster others transclude, a feature he designed."},"date":1469382608472},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. By his design pod leadership can remove bad actors from a roster others transclude."},"date":1469382638949},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. By his design pod leaders can remove bad actors from a roster others transclude."},"date":1469382652766},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. By his design pod leaders can remove bad actors from a roster the community transcludes."},"date":1469382675996},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. By his design pod leaders can remove bad actors from a shared roster."},"date":1469382707387},{"type":"edit","id":"52d13ae900095e0e","item":{"type":"paragraph","id":"52d13ae900095e0e","text":"Organize students or other communities into pods defined by a charter and a Roster. By his design pod leadership can expel bad actors from the shared roster."},"date":1469382743293},{"type":"edit","id":"d0f11698c6a8775c","item":{"type":"paragraph","id":"d0f11698c6a8775c","text":"Delegating page import and formatting to remote transporters using the Transport plugin of his design. See [[About Transport Plugin]]"},"date":1469382797686},{"type":"edit","id":"d0f11698c6a8775c","item":{"type":"paragraph","id":"d0f11698c6a8775c","text":"Delegate import and formatting to remote services using the Transport plugin of his design. See [[About Transport Plugin]]"},"date":1469382874355},{"type":"edit","id":"d0f11698c6a8775c","item":{"type":"paragraph","id":"d0f11698c6a8775c","text":"Delegate import formatting to remote services using a plugin of his design. See [[About Transport Plugin]]"},"date":1469382900796},{"type":"edit","id":"8b62ba5840a9264a","item":{"type":"markdown","id":"8b62ba5840a9264a","text":"# Bovill"},"date":1469382930990},{"type":"add","id":"1215a4453af07895","item":{"type":"paragraph","id":"1215a4453af07895","text":"Author structured content for other systems that may or may not include ongoing collaboration in wiki. "},"after":"d0f11698c6a8775c","date":1469383221787},{"type":"add","id":"6219eb1de9483156","item":{"type":"paragraph","id":"6219eb1de9483156","text":"# Beyond"},"after":"1215a4453af07895","date":1495802642133},{"type":"add","id":"0f7cd7cda1e8c526","item":{"type":"paragraph","id":"0f7cd7cda1e8c526","text":"We imagine a lasting medium that is diverse but not divisive. With humans in every loop we are most likely to serve our future selves."},"after":"6219eb1de9483156","date":1495802898968},{"type":"edit","id":"6219eb1de9483156","item":{"type":"markdown","id":"6219eb1de9483156","text":"# Beyond"},"date":1495802901932},{"type":"edit","id":"0f7cd7cda1e8c526","item":{"type":"paragraph","id":"0f7cd7cda1e8c526","text":"We imagine a lasting medium that is diverse but not divisive. With humans in every loop we are most likely to serve our future selves well."},"date":1495802933872},{"type":"add","id":"d823404e7bfff1e7","item":{"type":"paragraph","id":"d823404e7bfff1e7","text":"We've engineered a platform with visible texture at multiple scales and little hidden. We can watch ourselves be us. See [[Social Chromatography]]"},"after":"0f7cd7cda1e8c526","date":1495803372510},{"type":"edit","id":"d823404e7bfff1e7","item":{"type":"paragraph","id":"d823404e7bfff1e7","text":"We've engineered a platform with visible texture at multiple scales and little hidden information. We can watch ourselves be us. See [[Social Chromatography]]"},"date":1495803391026},{"type":"add","id":"dabc4b80275d04ce","item":{"type":"paragraph","id":"dabc4b80275d04ce","text":"We read to write and write for action. We close this loop with immediate publication where we expect to accelerate progress. See [[Writing with Strangers]]"},"after":"0f7cd7cda1e8c526","date":1495803971171}]},"patterns-together":{"title":"Patterns Together","story":[{"type":"paragraph","id":"dbf806bc979d654c","text":"We join sites by listing them together and then looking for 'twins' listed at the top of pages shared in common."},{"type":"paragraph","id":"4b041d373435d50f","text":"This Roster lists the two extractions and a limited distribution of the book from which the names are drawn. Click the » link for extractions and then start browsing."},{"type":"roster","id":"d92ccffc2849656c","text":"Extractions\n\nhouse.asia.wiki.org\ngarden.asia.wiki.org\n\nFull Reference\n\napl.localhost"},{"type":"paragraph","id":"ff5767e0a82fefd4","text":"Browse from the shared patterns [[Fruit Trees]], [[Greenhouse]] or [[Garden Growing Wild]]"},{"text":"\n\n
\n\n
\n Patterns in a Semilattice inspired by Timeless Way of Building.\n [http://c2.com/wiki/semilattice/house.png source]\n
\n
\n","type":"html","id":"0b3de1551cc5f262"},{"text":"\n\n
\n\n
\n Patterns in a Semilattice. From Timeless Way of Building.\n [http://c2.com/wiki/semilattice/garden.jpeg source]\n
\n
\n","type":"html","id":"b4507c129d5eb0a7"}],"journal":[{"type":"create","item":{"title":"Patterns Together","story":[]},"date":1462488078371},{"item":{"type":"factory","id":"dbf806bc979d654c"},"id":"dbf806bc979d654c","type":"add","date":1462488081436},{"type":"edit","id":"dbf806bc979d654c","item":{"type":"paragraph","id":"dbf806bc979d654c","text":"We join sites by listing them together and then looking for 'twins' listed at the top of pages shared in common."},"date":1462488174182},{"type":"add","id":"4b041d373435d50f","item":{"type":"paragraph","id":"4b041d373435d50f","text":"This Roster lists the two extractions and a limited distribution of the book from which the names are drawn. Click the » link for extractions and then start browsing."},"after":"dbf806bc979d654c","date":1462488293495},{"item":{"type":"factory","id":"d92ccffc2849656c"},"id":"d92ccffc2849656c","type":"add","after":"4b041d373435d50f","date":1462488297635},{"type":"edit","id":"d92ccffc2849656c","item":{"type":"roster","id":"d92ccffc2849656c","text":"Extractions\n\nhouse.asia.wiki.org\ngarden.asia.wiki.org\n\nFull Reference\n\napl.localhost"},"date":1462488364211},{"item":{"type":"factory","id":"ff5767e0a82fefd4"},"id":"ff5767e0a82fefd4","type":"add","after":"d92ccffc2849656c","date":1462488412705},{"type":"edit","id":"ff5767e0a82fefd4","item":{"type":"paragraph","id":"ff5767e0a82fefd4","text":"Browse from [[Garden Growing Wild]]"},"date":1462488438314},{"type":"edit","id":"ff5767e0a82fefd4","item":{"type":"paragraph","id":"ff5767e0a82fefd4","text":"Browse from [[Greenhouse]] or [[Garden Growing Wild]]"},"date":1462488534324},{"type":"add","item":{"text":"\n\n
\n\n
\n Patterns in a Semilattice inspired by Timeless Way of Building.\n [http://c2.com/wiki/semilattice/house.png source]\n
\n
\n","type":"html","id":"0b3de1551cc5f262"},"after":"ff5767e0a82fefd4","id":"0b3de1551cc5f262","date":1462489558030},{"type":"fork","site":"house.asia.wiki.org","date":1462489632113},{"type":"add","item":{"text":"\n\n
\n\n
\n Patterns in a Semilattice. From Timeless Way of Building.\n [http://c2.com/wiki/semilattice/garden.jpeg source]\n
\n
\n","type":"html","id":"b4507c129d5eb0a7"},"after":"0b3de1551cc5f262","id":"b4507c129d5eb0a7","date":1462489651372},{"type":"edit","id":"ff5767e0a82fefd4","item":{"type":"paragraph","id":"ff5767e0a82fefd4","text":"Browse from [[Fruit Trees]], [[Greenhouse]] or [[Garden Growing Wild]]"},"date":1465160780116},{"type":"edit","id":"ff5767e0a82fefd4","item":{"type":"paragraph","id":"ff5767e0a82fefd4","text":"Browse from shared patterns [[Fruit Trees]], [[Greenhouse]] or [[Garden Growing Wild]]"},"date":1465160799576},{"type":"edit","id":"ff5767e0a82fefd4","item":{"type":"paragraph","id":"ff5767e0a82fefd4","text":"Browse from the shared patterns [[Fruit Trees]], [[Greenhouse]] or [[Garden Growing Wild]]"},"date":1465160820746},{"type":"fork","site":"garden.asia.wiki.org","date":1469456614570}]},"profligate-copying":{"title":"Profligate Copying","story":[{"type":"paragraph","id":"91827feb363969c5","text":"We disregard the industry tradition of normalizing data and refactoring code in order to avoid duplication. We instead look to life and culture for creative inspiration."},{"type":"paragraph","id":"cad9c7dcf4730400","text":"We embrace the Creative Commons in code where everything we do in public is automatically with attribution and share alike. We have workflows that coexist with other source licences and accept that additional friction."},{"type":"paragraph","id":"90642f7224102112","text":"We have been compared to GitHub which is similarly inclined but the two are distinguished in one important way. Wiki is a document editor, not a source code manager, and thus knows exactly what edits took place and saves them like any other editor for undo and redo."},{"type":"markdown","id":"9ae83271a5f7252e","text":"# Editing"},{"type":"paragraph","id":"d58c1613ce1e887a","text":"Wiki can add, delete, move or edit any item on a page. The historical sequence of item actions, along with page actions create and fork, is sufficient to recreate any revision along the path to the present page."},{"type":"paragraph","id":"bc02f0455e554d12","text":"We call the history of editor actions the journal. It travels with the other two components of the page, the title and the current list of items called the story."},{"type":"paragraph","id":"3a604e1802a59577","text":"All items within the story, often paragraphs, but sometimes images or datasets or visualizations, are identified by a probabilistically unique identifier that stays with the item throughout its history of movement and editing."},{"type":"paragraph","id":"883e74d180186242","text":"Wiki favors small sites with original content speaking to a specific audience. Common practice supplements this with reference material forked into a site to make the site whole. When someone claims another's words as their own, they are under some obligation to align these words with their own thought. But such alignment does not count as new content from the identification perspective."},{"type":"method","id":"262cd4ebf72706db","text":"309115 Original Story (items)\n1139 Wiki Server (sites)\nRATIO Average (items / sites)"},{"type":"paragraph","id":"25fa167b10c9252a","text":"We find, using numbers from July 2016, that the average number of newly created and identified story items to be in the small hundreds per site. This is consistent with using sites as one might use documents in a traditional desktop."},{"type":"markdown","id":"4233ca929c8c0e2f","text":"# Foraging"},{"type":"paragraph","id":"5be533dc17674fab","text":"We expect a site to have one owner but an owner to have many sites. An owner authoring in one site is as likely to fork content from their other sites as any belonging to a different author."},{"type":"paragraph","id":"1200bcbeef319d99","text":"Wiki has many affordances to aid browsing from site to site while writing in one origin site that is owned. For example, a page forked from another site will resolve links back to that site for pages that are not present on the current site."},{"type":"paragraph","id":"cab9b9f890296a94","text":"See [[Collaborative Link]] for how this happens."},{"type":"paragraph","id":"f77dd13e6c3006ea","text":"Wiki's side by side viewing of related pages, including one time identical pages, includes highlighting and scroll alignment of page with items and actions identified as of a common origin."},{"type":"paragraph","id":"26114270997015cc","text":"Pages forked from one site to another retain the same name and are hence forth referred to as twins. When browsing multiple sites, should a page viewed have twins in that scope, then the page is annotated with newer, older and same aged pages called out in the page headline."},{"type":"paragraph","id":"03edf655fcd62578","text":"Search looks through all of the pages for sites visited within one browsing tab. Search results quotes how many pages have become known throughout one browsing session. Foraging strategies differ on how many sites should be present in the search. "},{"type":"paragraph","id":"11e1e760640d64d8","text":"See [[Neighborhoods]] for emergent scope management."},{"type":"paragraph","id":"da9e6ab99c963056","text":"Protocols exist for exporting whole sites and then importing page by page from export copies. Whole site copies are useful for backup and search engines but experience shows live management of sites while browsing a suitably better experience than hoarding copies that have not been read."}],"journal":[{"type":"create","item":{"title":"Profligate Copying","story":[]},"date":1469238280738},{"item":{"type":"factory","id":"91827feb363969c5"},"id":"91827feb363969c5","type":"add","date":1469238333338},{"type":"edit","id":"91827feb363969c5","item":{"type":"paragraph","id":"91827feb363969c5","text":"We disregard the industry tradition of normalizing data and refactoring code in order to avoid duplication. We instead look to life and culture for guidance "},"date":1469238570347},{"type":"edit","id":"91827feb363969c5","item":{"type":"paragraph","id":"91827feb363969c5","text":"We disregard the industry tradition of normalizing data and refactoring code in order to avoid duplication. We instead look to life and culture for creative inspiration. "},"date":1469238615163},{"type":"edit","id":"91827feb363969c5","item":{"type":"paragraph","id":"91827feb363969c5","text":"We disregard the industry tradition of normalizing data and refactoring code in order to avoid duplication. We instead look to life and culture for creative inspiration."},"date":1469238713629},{"type":"add","id":"cad9c7dcf4730400","item":{"type":"paragraph","id":"cad9c7dcf4730400","text":"We embrace the Creative Commons in code where everything we do in public is automatically with attribution and share alike."},"after":"91827feb363969c5","date":1469238823029},{"type":"edit","id":"cad9c7dcf4730400","item":{"type":"paragraph","id":"cad9c7dcf4730400","text":"We embrace the Creative Commons in code where everything we do in public is automatically with attribution and share alike. We have workflows that coexist with other source licences and accept that additional friction."},"date":1469238953647},{"item":{"type":"factory","id":"90642f7224102112"},"id":"90642f7224102112","type":"add","after":"cad9c7dcf4730400","date":1469239024190},{"type":"edit","id":"90642f7224102112","item":{"type":"paragraph","id":"90642f7224102112","text":"We have been compared to GitHub which is similarly inclined but are distinguished in one important way. Wiki is a document editor, not a source code manager, and thus knows exactly what edits took place and saves them like any other editor for undo and redo."},"date":1469239157170},{"type":"add","id":"9ae83271a5f7252e","item":{"type":"paragraph","id":"9ae83271a5f7252e","text":"# Editing"},"after":"90642f7224102112","date":1469239266510},{"type":"add","id":"d58c1613ce1e887a","item":{"type":"paragraph","id":"d58c1613ce1e887a","text":"Wiki can add, delete, move or edit any item on a page. The historical sequence of item actions, along with page actions create and fork, is sufficient to recreate any revision along the path to the present. "},"after":"9ae83271a5f7252e","date":1469239557194},{"type":"edit","id":"9ae83271a5f7252e","item":{"type":"markdown","id":"9ae83271a5f7252e","text":"# Editing"},"date":1469239560538},{"type":"edit","id":"d58c1613ce1e887a","item":{"type":"paragraph","id":"d58c1613ce1e887a","text":"Wiki can add, delete, move or edit any item on a page. The historical sequence of item actions, along with page actions create and fork, is sufficient to recreate any revision along the path to the present page."},"date":1469239590045},{"type":"edit","id":"d58c1613ce1e887a","item":{"type":"paragraph","id":"d58c1613ce1e887a","text":"Wiki can add, delete, move or edit any item on a page. The historical sequence of item actions, along with page actions create and fork, is sufficient to recreate any revision along the path to the present page. We call this history the journal and it travels with the rest of the page, the title and the story."},"date":1469242240602},{"type":"edit","id":"d58c1613ce1e887a","item":{"type":"paragraph","id":"d58c1613ce1e887a","text":"Wiki can add, delete, move or edit any item on a page. The historical sequence of item actions, along with page actions create and fork, is sufficient to recreate any revision along the path to the present page."},"date":1469242250721},{"type":"add","id":"bc02f0455e554d12","item":{"type":"paragraph","id":"bc02f0455e554d12","text":"We call the history of editor actions the journal. It travels with the other two components of the page, the title and the current list of items called the story."},"after":"d58c1613ce1e887a","date":1469242342112},{"type":"edit","id":"90642f7224102112","item":{"type":"paragraph","id":"90642f7224102112","text":"We have been compared to GitHub which is similarly inclined but the two are distinguished in one important way. Wiki is a document editor, not a source code manager, and thus knows exactly what edits took place and saves them like any other editor for undo and redo."},"date":1469242413015},{"type":"add","id":"3a604e1802a59577","item":{"type":"paragraph","id":"3a604e1802a59577","text":"The items of the story, often paragraphs, but sometimes images or datasets or visualizations, are identified by a probabilistically unique identifier that stays with the item throughout its history of movement and editing. "},"after":"bc02f0455e554d12","date":1469242632374},{"type":"edit","id":"3a604e1802a59577","item":{"type":"paragraph","id":"3a604e1802a59577","text":"All items within the story, often paragraphs, but sometimes images or datasets or visualizations, are identified by a probabilistically unique identifier that stays with the item throughout its history of movement and editing."},"date":1469242825420},{"item":{"type":"factory","id":"262cd4ebf72706db"},"id":"262cd4ebf72706db","type":"add","after":"3a604e1802a59577","date":1469242918261},{"type":"edit","id":"262cd4ebf72706db","item":{"type":"method","id":"262cd4ebf72706db","text":"309120 Unique Story (items)\n1030 Wiki Server (sites)\nRATIO"},"date":1469243044044},{"type":"edit","id":"262cd4ebf72706db","item":{"type":"method","id":"262cd4ebf72706db","text":"309120 Unique Story (items)\n1030 Wiki Server (sites)\nRATIO (items / sites)"},"date":1469243095670},{"type":"edit","id":"262cd4ebf72706db","item":{"type":"method","id":"262cd4ebf72706db","text":"309120 Unique Story (items)\n1139 Wiki Server (sites)\nRATIO (items / sites)"},"date":1469243134347},{"type":"edit","id":"262cd4ebf72706db","item":{"type":"method","id":"262cd4ebf72706db","text":"309115 Unique Story (items)\n1139 Wiki Server (sites)\nRATIO (items / sites)"},"date":1469243170489},{"type":"edit","id":"262cd4ebf72706db","item":{"type":"method","id":"262cd4ebf72706db","text":"309115 Unique Story (items)\n1139 Wiki Server (sites)\nRATIO Average (items / sites)"},"date":1469243195139},{"type":"add","id":"883e74d180186242","item":{"type":"paragraph","id":"883e74d180186242","text":"Wiki favors small sites with original content speaking to a specific audience. Common practice supplements this with reference material forked into a site to make the site whole. When someone claims another's words as their own, they are under some obligation to align these words with their own thought. But such alignment does not count as new content from the identification perspective."},"after":"3a604e1802a59577","date":1469243590855},{"item":{"type":"factory","id":"25fa167b10c9252a"},"id":"25fa167b10c9252a","type":"add","after":"262cd4ebf72706db","date":1469243621648},{"type":"edit","id":"25fa167b10c9252a","item":{"type":"paragraph","id":"25fa167b10c9252a","text":"We find the average number of newly created and identified story items to be in the small hundreds per site. This is consistent with using sites as one might use documents in traditional desktop systems."},"date":1469243809197},{"type":"edit","id":"25fa167b10c9252a","item":{"type":"paragraph","id":"25fa167b10c9252a","text":"We find, using numbers from July 2016, that the average number of newly created and identified story items to be in the small hundreds per site. This is consistent with using sites as one might use documents in traditional desktop systems."},"date":1469243851075},{"type":"edit","id":"25fa167b10c9252a","item":{"type":"paragraph","id":"25fa167b10c9252a","text":"We find, using numbers from July 2016, that the average number of newly created and identified story items to be in the small hundreds per site. This is consistent with using sites as one might use documents in a traditional desktop."},"date":1469243882500},{"item":{"type":"factory","id":"4233ca929c8c0e2f"},"id":"4233ca929c8c0e2f","type":"add","after":"25fa167b10c9252a","date":1469243925603},{"type":"edit","id":"4233ca929c8c0e2f","item":{"type":"paragraph","id":"4233ca929c8c0e2f","text":"# Foraging"},"date":1469243934752},{"type":"edit","id":"262cd4ebf72706db","item":{"type":"method","id":"262cd4ebf72706db","text":"309115 Original Story (items)\n1139 Wiki Server (sites)\nRATIO Average (items / sites)"},"date":1469243975646},{"type":"add","id":"5be533dc17674fab","item":{"type":"paragraph","id":"5be533dc17674fab","text":"We expect a site to have one owner but an owner to have many sites. An owner authoring in one site is as likely to fork content from their other sites as any belonging to a different author."},"after":"4233ca929c8c0e2f","date":1469244409008},{"type":"add","id":"1200bcbeef319d99","item":{"type":"paragraph","id":"1200bcbeef319d99","text":"Wiki has many affordances to aid browsing from site to site while writing in one origin site that is owned."},"after":"5be533dc17674fab","date":1469244508989},{"type":"edit","id":"1200bcbeef319d99","item":{"type":"paragraph","id":"1200bcbeef319d99","text":"Wiki has many affordances to aid browsing from site to site while writing in one origin site that is owned. For example, a page forked from another site will resolve links back to that site for pages that are not present on the current site."},"date":1469244667904},{"type":"add","id":"cab9b9f890296a94","item":{"type":"paragraph","id":"cab9b9f890296a94","text":"See [[Collaborative Link]] for how this happens."},"after":"1200bcbeef319d99","date":1469244704727},{"type":"edit","id":"4233ca929c8c0e2f","item":{"type":"markdown","id":"4233ca929c8c0e2f","text":"# Foraging"},"date":1469244745321},{"type":"add","id":"f77dd13e6c3006ea","item":{"type":"paragraph","id":"f77dd13e6c3006ea","text":"Wiki's side by side viewing of related pages, including one time identical pages, includes highlighting and scroll alignment of page with items and actions identified as of a common origin."},"after":"cab9b9f890296a94","date":1469245036668},{"type":"add","id":"26114270997015cc","item":{"type":"paragraph","id":"26114270997015cc","text":"Pages forked from one site to another retain the same name and are hence forth referred to as twins. When browsing multiple sites, should a page viewed have twins in that scope, then the page is annotated with newer, older and same aged pages called out in the page headline."},"after":"f77dd13e6c3006ea","date":1469245209445},{"type":"add","id":"03edf655fcd62578","item":{"type":"paragraph","id":"03edf655fcd62578","text":"Search looks through all of the pages for sites visited within one browsing tab. Search results quotes how many pages have become known throughout one browsing session. Foraging strategies differ on how many sites should be present in the search. "},"after":"26114270997015cc","date":1469245445724},{"type":"add","id":"11e1e760640d64d8","item":{"type":"paragraph","id":"11e1e760640d64d8","text":"See [[Neighborhoods]] for including/excluding sites from search."},"after":"03edf655fcd62578","date":1469245587128},{"type":"edit","id":"11e1e760640d64d8","item":{"type":"paragraph","id":"11e1e760640d64d8","text":"See [[Neighborhoods]] for emergent scope management."},"date":1469245622268},{"type":"add","id":"da9e6ab99c963056","item":{"type":"paragraph","id":"da9e6ab99c963056","text":"Protocols exist for exporting whole sites and then importing page by page from export copies. Whole site copies are useful for backup and search engines but experience shows live management of sites while browsing a suitably better experience than hoarding copies that have not been read."},"after":"11e1e760640d64d8","date":1469245903238}]},"recent-activity":{"title":"Recent Activity","story":[{"type":"paragraph","id":"09148e3caea19a53","text":"This Roster collects active sites from the visible federation. Newly observed sites appear on a second line."},{"type":"paragraph","id":"96d97e6748ef7008","text":"Click » to add any row to this tab's neighborhood. See [[This Week's Changes]] tracking your selections."},{"type":"roster","id":"d9e4b08f2afbead9","text":"ROSTER search.fed.wiki.org:3030/recent-activity"},{"type":"paragraph","id":"6401f288b417599c","text":"See [[About Roster Plugin]] for how we share this content."}],"journal":[{"type":"create","item":{"title":"Recent Activity","story":[]},"date":1469376036178},{"item":{"type":"factory","id":"09148e3caea19a53"},"id":"09148e3caea19a53","type":"add","date":1469376048430},{"type":"edit","id":"09148e3caea19a53","item":{"type":"paragraph","id":"09148e3caea19a53","text":"This Roster collects sites from the visible federation with activity in any recent six hour period. "},"date":1469376140014},{"item":{"type":"factory","id":"d9e4b08f2afbead9"},"id":"d9e4b08f2afbead9","type":"add","after":"09148e3caea19a53","date":1469376157690},{"type":"edit","id":"d9e4b08f2afbead9","item":{"type":"roster","id":"d9e4b08f2afbead9","text":"ROSTER search.fed.wiki.org:3030/recent-activity"},"date":1469376165056},{"type":"edit","id":"09148e3caea19a53","item":{"type":"paragraph","id":"09148e3caea19a53","text":"This Roster collects sites from the visible federation with activity in any recent six hour period. New sites appear on a second line."},"date":1469376212628},{"type":"add","id":"96d97e6748ef7008","item":{"type":"paragraph","id":"96d97e6748ef7008","text":"Click » to add any row to this tab's neighborhood. See [[Recent Changes]] to view activity."},"after":"09148e3caea19a53","date":1469376330606},{"type":"edit","id":"96d97e6748ef7008","item":{"type":"paragraph","id":"96d97e6748ef7008","text":"Click » to add any row to this tab's neighborhood. See [[This Week's Changes]] to view activity."},"date":1469376507320},{"type":"edit","id":"96d97e6748ef7008","item":{"type":"paragraph","id":"96d97e6748ef7008","text":"Click » to add any row to this tab's neighborhood. See [[This Week's Changes]] for your selections."},"date":1469376535904},{"type":"edit","id":"96d97e6748ef7008","item":{"type":"paragraph","id":"96d97e6748ef7008","text":"Click » to add any row to this tab's neighborhood. See [[This Week's Changes]] tracking your selections."},"date":1469376565836},{"type":"edit","id":"09148e3caea19a53","item":{"type":"paragraph","id":"09148e3caea19a53","text":"This Roster collects sites from the visible federation with activity in any recent six hour period. Newly observed sites appear on a second line."},"date":1469376926583},{"type":"edit","id":"09148e3caea19a53","item":{"type":"paragraph","id":"09148e3caea19a53","text":"This Roster collects active sites from the visible federation. Newly observed sites appear on a second line."},"date":1469377003414},{"item":{"type":"factory","id":"6401f288b417599c"},"id":"6401f288b417599c","type":"add","after":"d9e4b08f2afbead9","date":1469380897245},{"type":"edit","id":"6401f288b417599c","item":{"type":"paragraph","id":"6401f288b417599c","text":"See [[About Roster Plugin]] to see how we transclude this content."},"date":1469380933416},{"type":"edit","id":"6401f288b417599c","item":{"type":"paragraph","id":"6401f288b417599c","text":"See [[About Roster Plugin]] to see how we share this content."},"date":1469380962603},{"type":"edit","id":"6401f288b417599c","item":{"type":"paragraph","id":"6401f288b417599c","text":"See [[About Roster Plugin]] for how we share this content."},"date":1469380970854}]},"social-chromatography":{"title":"Social Chromatography","story":[{"type":"paragraph","id":"48ce0a46eaf91ac8","text":"We expect some pages to be more mobile in the federation than others. With statistically significant flows between neighborhoods we will have the opportunity to separate ideas from their carriers based on affinities that we need not know in advance."},{"type":"paragraph","id":"b5e7e2069b329881","text":"We have already separated our hypertext into two graphs: the site structure and the link structure. These are analogous to the mobile phase and the stationary phase in chromatography. [https://en.wikipedia.org/wiki/Chromatography wikipedia]"},{"type":"paragraph","id":"a6babefd4d5ddc59","text":"We have already tagged each element of every page with a code that simplifies detection and correlation of net flows and rates. We encourage a writing style of atomic paragraphs eschewing transition conventions of less dynamic media. "},{"type":"paragraph","id":"fa456f5e41b06ddc","text":"We will explore the metaphorical productivity of chromatography, electrophoresis and spectroscopy in our ongoing graph analysis of pages and their journals."},{"type":"paragraph","id":"a694b1a428331281","text":"It is possible through the study of large populations we will uncover properties applicable to individual encounters but previously hidden due to accidental circumstance."},{"type":"paragraph","id":"6c668886035a96d9","text":"See [[Kuhn Cycle]]"},{"type":"paragraph","id":"a407b0fad2bcad8b","text":"See [[Visualizing High-Order Graphs]]"}],"journal":[{"type":"create","item":{"title":"Social Chromatography","story":[]},"date":1454730336712},{"item":{"type":"paragraph","id":"48ce0a46eaf91ac8","text":"We expect some pages to be more mobile in the federation than others. With statistically significant flows between neighborhoods we will have the opportunity to separate ideas from their carriers based on affinities that we need not know in advance."},"id":"48ce0a46eaf91ac8","type":"add","date":1454730352187},{"type":"edit","id":"48ce0a46eaf91ac8","item":{"type":"paragraph","id":"48ce0a46eaf91ac8","text":"We expect some pages to be more mobile in the federation than others. With statistically significant flows between neighborhoods we will have the opportunity to separate ideas from their carriers based on affinities that we need not know in advance."},"date":1454730849376},{"type":"add","id":"b5e7e2069b329881","item":{"type":"paragraph","id":"b5e7e2069b329881","text":"We have already separated our hypertext into two graphs: the site structure and the link structure. These are analogous to the mobile phase and the stationary phase in chromatography."},"after":"48ce0a46eaf91ac8","date":1454731226102},{"type":"add","id":"fa456f5e41b06ddc","item":{"type":"paragraph","id":"fa456f5e41b06ddc","text":"We will explore the metaphorical productivity of chromatography, electrophoresis and spectroscopy in our ongoing graph analysis of pages and their journals."},"after":"b5e7e2069b329881","date":1454731359654},{"type":"edit","id":"fa456f5e41b06ddc","item":{"type":"paragraph","id":"fa456f5e41b06ddc","text":"We will explore the metaphorical productivity of chromatography, electrophoresis and spectroscopy in our ongoing graph analysis of pages and their journals."},"date":1454731385230},{"type":"edit","id":"fa456f5e41b06ddc","item":{"type":"paragraph","id":"fa456f5e41b06ddc","text":"We will explore the metaphorical productivity of chromatography, electrophoresis and spectroscopy in our ongoing graph analysis of pages and their journals."},"date":1454731532936},{"type":"edit","id":"fa456f5e41b06ddc","item":{"type":"paragraph","id":"fa456f5e41b06ddc","text":"We will explore the metaphorical productivity of chromatography, electrophoresis and spectroscopy in our ongoing graph analysis of pages and their journals."},"date":1454731548678},{"type":"add","id":"a694b1a428331281","item":{"type":"paragraph","id":"a694b1a428331281","text":"It is possible through the study of large populations we will uncover properties applicable to individual encounters but previously hidden due to accidental circumstance."},"after":"fa456f5e41b06ddc","date":1454732023383},{"type":"add","id":"6c668886035a96d9","item":{"type":"paragraph","id":"6c668886035a96d9","text":"See [[Kuhn Cycle]]"},"after":"a694b1a428331281","date":1454732236069},{"type":"add","id":"a407b0fad2bcad8b","item":{"type":"paragraph","id":"a407b0fad2bcad8b","text":"See [[Visualizing High-Order Graphs]]"},"after":"6c668886035a96d9","date":1454732373234},{"type":"edit","id":"a694b1a428331281","item":{"type":"paragraph","id":"a694b1a428331281","text":"It is possible through the study of large populations we will uncover properties applicable to individual encounters but previously hidden due to accidental circumstance."},"date":1454732745767},{"type":"edit","id":"a6babefd4d5ddc59","item":{"type":"paragraph","id":"a6babefd4d5ddc59","text":"We have already tagged each element of every page with a code that simplifies detection and correlation of net flows and rates. We encourage a writing style of atomic paragraphs eschewing transition conventions of less dynamic media. "},"date":1454733412497},{"type":"edit","id":"fa456f5e41b06ddc","item":{"type":"paragraph","id":"fa456f5e41b06ddc","text":"We will explore the metaphorical productivity of chromatography, electrophoresis and spectroscopy in our ongoing graph analysis of pages and their journals."},"date":1454733434609},{"type":"fork","date":1454745535402},{"type":"move","order":["48ce0a46eaf91ac8","b5e7e2069b329881","a6babefd4d5ddc59","fa456f5e41b06ddc","a694b1a428331281","6c668886035a96d9","a407b0fad2bcad8b"],"id":"a6babefd4d5ddc59","date":1454745565270},{"type":"edit","id":"b5e7e2069b329881","item":{"type":"paragraph","id":"b5e7e2069b329881","text":"We have already separated our hypertext into two graphs: the site structure and the link structure. These are analogous to the mobile phase and the stationary phase in chromatography. [https://en.wikipedia.org/wiki/Chromatography wikipedia]"},"date":1455020717322},{"type":"fork","site":"ward.bay.wiki.org","date":1495802240731}]},"structures":{"title":"Structures","story":[{"type":"paragraph","id":"6fe04cb3bf7d6b82","text":"Wiki's roots go back to pattern languages where pages represent information that can be applied in the context created by its antecedents. We extend application to computations performed by plugins using data found before it in the lineup."},{"type":"paragraph","id":"2172d91f9dbc5577","text":"We promised our initial supporter we would create a data wiki, something that would do for numbers what the first wiki did for words."},{"type":"paragraph","id":"0279ec5333afa4b5","text":"We translated an awk script from the '80s to a plugin to show we could capture useful computation within the wiki's text format. See [[About Calculator Plugin]]"},{"type":"paragraph","id":"cd9b2d477bb6a5a8","text":"We our first year of exploration completed with specific attention on the complex and many dimensioned sustainability properties of materials. We paused to look back before heading forward without further financial support. See [[Federated Wiki at One]]"},{"type":"markdown","id":"e1b7c61413806e8b","text":"# Numbers"},{"type":"paragraph","id":"d0d150d89063d9ad","text":"Michael Mehaffy understood why I had spread calculations across the pages that explain them. His own interests were in quantifying the properties of neighborhood scale pattern languages so that social and environmental impacts could be made more real to planners, designers and the ultimate inhabitants of a space. See [[Wiki as Pattern Language]]"},{"type":"paragraph","id":"1ef51d1742ff06db","text":"We improved the Method plugin as needed for modeling in the pattern language WikiPLACE where each pattern chosen amends a basic calculation with adjustments even when chosen from different sites."},{"type":"paragraph","id":"d81c21583e01d9b2","text":"We developed methods for recalculation of pattern sequences listed only by name and subsequent interactive adjustment by multiple parameter sliders. See [[About Reduce Plugin]]"},{"type":"paragraph","id":"34128e69a6ef6c09","text":"We extended Method calculations to include formulas, conversion factors and validated or inferred units in support of Mehaffy's greenhouse gas modeling. See [[Hacking Wiki's Methods]]"},{"type":"markdown","id":"0ba3071fd938a4c4","text":"# Graphs"},{"type":"paragraph","id":"cecc536342d5bafc","text":"We became interested in the graph structure of the growing federation. We built several scrapers and visualizations using d3.js and neo4j. But our users reminded us that they were more interested in graphs, such as knowledge graphs, in wiki rather than of wiki."},{"type":"paragraph","id":"47f653b1b8af6c13","text":"We integrated the elaborate Cytoscape graph rendering engine in pilot form in a video conference during the Mozilla Festival Science Fair. See [[About CytoDemo Plugin]]"},{"type":"paragraph","id":"f44a80e9d0d8ca89","text":"We were unsure how to exploit the versatility of the Cytoscape package with input from a federation. We revisited the federating strategy that had worked with numbers by making a small plugin that would capture a fragment of a larger graph and later combined across a lineup chosen from the federation. See [[About Graph Plugin]]"},{"type":"paragraph","id":"d97b054bb62010f0","text":"The CytoDemo could then render whatever graph was assembled from parts. We added the GRAPH configuration to the Transport plugin that would trigger the same assembly. With this we could export to the venerable Graphviz package (or any other server-side application) and bring back its rendering as an SVG image."},{"type":"paragraph","id":"d39585f5404957b5","text":"We developed drag and drop editing of graphs and used it to reconstruct two different sub languages extracted from Alexander's A Pattern Language. Each resides in a different site but can cross and merge when assembling with both in the neighborhood. See [[Patterns Together]]"},{"type":"markdown","id":"0a1e983e8962c613","text":"# Places"},{"type":"paragraph","id":"59a1fc413ba96fdb","text":"Through a similar collaboration we put new energy into the Map plugin which had languished for several years. With ambition to do much with GeoJSON we started small with place markers that could be entered as markup text copied from elsewhere."},{"type":"paragraph","id":"89f08da2a7bb6c78","text":"We extended the plugin so that it could source markers to other plugins and read those markers itself too. This lead to an organization where place pages would contain a map with a single marker. With a series of these open one was offered to show places together on a map configured to do so. See [[About Map Plugin]]"},{"type":"paragraph","id":"1bc1554d0cf7ead6","text":"We developed various workflows involving other online map services. We felt the need for interactive planting of places on an existing Map, much like our drag and drop Graph editing. We adopted a mixed approach where shift-double-click would plant a marker and double-click would open the markup for labeling the coordinates just added."},{"type":"paragraph","id":"3915c1d122e5bb7a","text":"We integrated our Map plugin with the newly inaugurated Portland Biketown system with a plugin, Bikeshare, which reads the GBFS station information format used by any number of cities. This plugin could source hundreds of markers for a whole system but became more interesting when it read places of interest from upstream pages and then added only bikeshare stations near these. See [[About Bikeshare Plugin]]"},{"type":"paragraph","id":"0a3d3a619b4bc381","text":"In use we found sometimes we liked maps with lots of places and sometimes only one. We revised the Map marker sourcing logic to do both, one when one has been selected with a popup identification and all markers otherwise. See [[Hip Portland]]"}],"journal":[{"type":"create","item":{"title":"Structures","story":[]},"date":1469238270150},{"item":{"type":"factory","id":"6fe04cb3bf7d6b82"},"id":"6fe04cb3bf7d6b82","type":"add","date":1469304429994},{"type":"edit","id":"6fe04cb3bf7d6b82","item":{"type":"paragraph","id":"6fe04cb3bf7d6b82","text":"Wiki's roots go back to pattern languages where pages represent information that can be applied in the context created by its antecedents."},"date":1469304683496},{"type":"edit","id":"6fe04cb3bf7d6b82","item":{"type":"paragraph","id":"6fe04cb3bf7d6b82","text":"Wiki's roots go back to pattern languages where pages represent information that can be applied in the context created by its antecedents. We extend application to computations performed by plugins using data found before it in the lineup."},"date":1469304784267},{"item":{"type":"factory","id":"2172d91f9dbc5577"},"id":"2172d91f9dbc5577","type":"add","after":"6fe04cb3bf7d6b82","date":1469326824478},{"type":"edit","id":"2172d91f9dbc5577","item":{"type":"paragraph","id":"2172d91f9dbc5577","text":"We promised our initial supporter we would create a data wiki, something that would do for numbers what the first wiki did for words."},"date":1469326883635},{"type":"add","id":"0279ec5333afa4b5","item":{"type":"paragraph","id":"0279ec5333afa4b5","text":"We translated an awk script from the '80s to a plugin to show we could capture useful computation within the wiki's text format. "},"after":"2172d91f9dbc5577","date":1469327017373},{"type":"edit","id":"0279ec5333afa4b5","item":{"type":"paragraph","id":"0279ec5333afa4b5","text":"We translated an awk script from the '80s to a plugin to show we could capture useful computation within the wiki's text format. See [[About Calculator Plugin]]"},"date":1469327044544},{"type":"add","id":"e1b7c61413806e8b","item":{"type":"paragraph","id":"e1b7c61413806e8b","text":"# Numbers"},"after":"0279ec5333afa4b5","date":1469327207441},{"type":"add","id":"cd9b2d477bb6a5a8","item":{"type":"paragraph","id":"cd9b2d477bb6a5a8","text":"We our first year of exploration completed with specific attention on the complex and many dimensioned sustainability properties of materials. We paused to look back before heading forward without further financial support. See [[Federated Wiki at One]]"},"after":"0279ec5333afa4b5","date":1469327755926},{"type":"add","id":"0ba3071fd938a4c4","item":{"type":"paragraph","id":"0ba3071fd938a4c4","text":"# Graphs"},"after":"e1b7c61413806e8b","date":1469329625300},{"type":"add","id":"0a1e983e8962c613","item":{"type":"paragraph","id":"0a1e983e8962c613","text":"# Places"},"after":"0ba3071fd938a4c4","date":1469329640637},{"type":"add","id":"d0d150d89063d9ad","item":{"type":"paragraph","id":"d0d150d89063d9ad","text":"Michael Mehaffy understood why I had spread calculations across the pages that explain them. His own interests were in quantifying the properties of neighborhood scale pattern languages so that social and environmental impacts could be made more real to planners, designers and the ultimate inhabitants of a space. See [[Wiki as Pattern Language]] "},"after":"e1b7c61413806e8b","date":1469453749850},{"type":"edit","id":"e1b7c61413806e8b","item":{"type":"markdown","id":"e1b7c61413806e8b","text":"# Numbers"},"date":1469454124407},{"type":"edit","id":"d0d150d89063d9ad","item":{"type":"paragraph","id":"d0d150d89063d9ad","text":"Michael Mehaffy understood why I had spread calculations across the pages that explain them. His own interests were in quantifying the properties of neighborhood scale pattern languages so that social and environmental impacts could be made more real to planners, designers and the ultimate inhabitants of a space. See [[Wiki as Pattern Language]]"},"date":1469454128239},{"type":"add","id":"1ef51d1742ff06db","item":{"type":"paragraph","id":"1ef51d1742ff06db","text":"We improved the Method plugin as needed for modeling in the pattern language WikiPLACE where each pattern chosen amends a basic calculation with adjustments."},"after":"d0d150d89063d9ad","date":1469454329994},{"type":"add","id":"d81c21583e01d9b2","item":{"type":"paragraph","id":"d81c21583e01d9b2","text":"We developed interactive parameter adjustment and recalculation of patterns listed only by name. See [[About Reduce Plugin]]"},"after":"1ef51d1742ff06db","date":1469454401863},{"type":"edit","id":"d81c21583e01d9b2","item":{"type":"paragraph","id":"d81c21583e01d9b2","text":"We developed methods for recalculation of pattern sequences listed only by name and subsequent interactive adjustment by multiple parameter sliders. See [[About Reduce Plugin]]"},"date":1469454661972},{"type":"add","id":"34128e69a6ef6c09","item":{"type":"paragraph","id":"34128e69a6ef6c09","text":"We extended Method calculations to include formulas, conversion factors and validated or inferred units."},"after":"d81c21583e01d9b2","date":1469454866321},{"type":"edit","id":"34128e69a6ef6c09","item":{"type":"paragraph","id":"34128e69a6ef6c09","text":"We extended Method calculations to include formulas, conversion factors and validated or inferred units in support of Mehaffy's greenhouse gas modeling. See [[Hacking Wiki's Methods]]"},"date":1469455060247},{"type":"add","id":"cecc536342d5bafc","item":{"type":"paragraph","id":"cecc536342d5bafc","text":"We became interested in the graph structure of the growing federation. We built several scrapers and visualizations using d3.js and neo4j. But our users reminded us that they were more interested in graphs, such as knowledge graphs, in wiki rather than of wiki."},"after":"0ba3071fd938a4c4","date":1469455314337},{"type":"add","id":"47f653b1b8af6c13","item":{"type":"paragraph","id":"47f653b1b8af6c13","text":"We integrated the elaborate Cytoscape graph rendering engine in pilot form in a video conference during the Mozilla Sciencefest."},"after":"cecc536342d5bafc","date":1469455457664},{"type":"edit","id":"47f653b1b8af6c13","item":{"type":"paragraph","id":"47f653b1b8af6c13","text":"We integrated the elaborate Cytoscape graph rendering engine in pilot form in a video conference during the Mozilla Festival Science Fair. See [[CytoDemo plugin]]"},"date":1469455542420},{"type":"edit","id":"47f653b1b8af6c13","item":{"type":"paragraph","id":"47f653b1b8af6c13","text":"We integrated the elaborate Cytoscape graph rendering engine in pilot form in a video conference during the Mozilla Festival Science Fair."},"date":1469455557631},{"type":"edit","id":"47f653b1b8af6c13","item":{"type":"paragraph","id":"47f653b1b8af6c13","text":"We integrated the elaborate Cytoscape graph rendering engine in pilot form in a video conference during the Mozilla Festival Science Fair. See [[About CytoDemo Plugin]]"},"date":1469455639692},{"type":"edit","id":"1ef51d1742ff06db","item":{"type":"paragraph","id":"1ef51d1742ff06db","text":"We improved the Method plugin as needed for modeling in the pattern language WikiPLACE where each pattern chosen amends a basic calculation with adjustments even when chosen from different sites."},"date":1469455699156},{"type":"add","id":"f44a80e9d0d8ca89","item":{"type":"paragraph","id":"f44a80e9d0d8ca89","text":"We were unsure how to exploit the versatility of the Cytoscape package with input from a federation. We revisited the federating strategy that had worked with numbers by making a small plugin that would capture a fragment of a larger graph and later combined across a lineup chosen from the federation. See [[About Graph Plugin]]"},"after":"47f653b1b8af6c13","date":1469455948607},{"type":"add","id":"d97b054bb62010f0","item":{"type":"paragraph","id":"d97b054bb62010f0","text":"The CytoDemo could then render whatever graph was assembled from parts. We added the GRAPH configuration to the Transport plugin that would trigger the same assembly. With this we could export to the venerable Graphviz package (or any other server-side application) and bring back its rendering as an SVG image."},"after":"f44a80e9d0d8ca89","date":1469456324109},{"type":"add","id":"d39585f5404957b5","item":{"type":"paragraph","id":"d39585f5404957b5","text":"We developed drag and drop editing of graphs and used it to reconstruct two different sub languages extracted from Alexander's A Pattern Language. Each resides in a different site but can cross and merge when assembling with both in the neighborhood."},"after":"d97b054bb62010f0","date":1469456492295},{"type":"edit","id":"d39585f5404957b5","item":{"type":"paragraph","id":"d39585f5404957b5","text":"We developed drag and drop editing of graphs and used it to reconstruct two different sub languages extracted from Alexander's A Pattern Language. Each resides in a different site but can cross and merge when assembling with both in the neighborhood. See [[Patterns Together]]"},"date":1469456630814},{"type":"edit","id":"0ba3071fd938a4c4","item":{"type":"markdown","id":"0ba3071fd938a4c4","text":"# Graphs"},"date":1469456791463},{"type":"add","id":"59a1fc413ba96fdb","item":{"type":"paragraph","id":"59a1fc413ba96fdb","text":"Through a similar collaboration we put new energy into the Map plugin which had languished for several years. With ambition to do much with GeoJSON we started small with place markers that could be entered as markup text copied from elsewhere."},"after":"0a1e983e8962c613","date":1469456976421},{"type":"add","id":"89f08da2a7bb6c78","item":{"type":"paragraph","id":"89f08da2a7bb6c78","text":"We extended the plugin so that it could source markers to other plugins and read those markers itself too. This lead to an organization where place pages would contain a map with a single marker. With a series of these open one was offered to show places together on a map configured to do so. See [[About Map Plugin]]"},"after":"59a1fc413ba96fdb","date":1469457233519},{"type":"edit","id":"0a1e983e8962c613","item":{"type":"markdown","id":"0a1e983e8962c613","text":"# Places"},"date":1469457243049},{"type":"add","id":"1bc1554d0cf7ead6","item":{"type":"paragraph","id":"1bc1554d0cf7ead6","text":"We developed various workflows involving other online map services. We felt the need for interactive planting of places on an existing Map, much like our drag and drop Graph editing. We adopted a mixed approach where shift-double-click would plant a marker and double-click would open the markup for labeling the coordinates just added."},"after":"89f08da2a7bb6c78","date":1469457507267},{"type":"add","id":"3915c1d122e5bb7a","item":{"type":"paragraph","id":"3915c1d122e5bb7a","text":"We integrated our Map plugin with the newly inaugurated Portland Biketown system with a plugin, Bikeshare, which reads the GBFS station information format used by any number of cities. This plugin could source hundreds of markers for a whole system but became more interesting when it read places of interest from upstream pages and then added only bikeshare stations near these."},"after":"1bc1554d0cf7ead6","date":1469458017404},{"type":"add","id":"0a3d3a619b4bc381","item":{"type":"paragraph","id":"0a3d3a619b4bc381","text":"In use we found sometimes we liked maps with lots of places and sometimes only one. We revised the Map marker sourcing logic to do both, one when one has been selected with a popup identification and all markers otherwise."},"after":"3915c1d122e5bb7a","date":1469458132944},{"type":"edit","id":"3915c1d122e5bb7a","item":{"type":"paragraph","id":"3915c1d122e5bb7a","text":"We integrated our Map plugin with the newly inaugurated Portland Biketown system with a plugin, Bikeshare, which reads the GBFS station information format used by any number of cities. This plugin could source hundreds of markers for a whole system but became more interesting when it read places of interest from upstream pages and then added only bikeshare stations near these. See [[About Bikeshare Plugin]]"},"date":1469458153263},{"type":"edit","id":"0a3d3a619b4bc381","item":{"type":"paragraph","id":"0a3d3a619b4bc381","text":"In use we found sometimes we liked maps with lots of places and sometimes only one. We revised the Map marker sourcing logic to do both, one when one has been selected with a popup identification and all markers otherwise. See [[Hip Portland]]"},"date":1469458189941}]},"this-weeks-changes":{"title":"This Week's Changes","story":[{"type":"paragraph","id":"13c803dae8c44ec9","text":"Here we list neighborhood titles that have changed in the last week with the most recent first and to the right."},{"type":"activity","id":"e9e9f102158e1382","text":"SINCE 7 days"}],"journal":[{"type":"create","item":{"title":"This Week's Changes","story":[]},"date":1469376575596},{"item":{"type":"factory","id":"13c803dae8c44ec9"},"id":"13c803dae8c44ec9","type":"add","date":1469376577741},{"type":"edit","id":"13c803dae8c44ec9","item":{"type":"paragraph","id":"13c803dae8c44ec9","text":"Here we list neighborhood pages that have changed in the last week with the most recent changes first."},"date":1469376686507},{"type":"add","item":{"type":"activity","id":"e9e9f102158e1382"},"after":"13c803dae8c44ec9","id":"e9e9f102158e1382","date":1469376695465},{"type":"fork","date":1469376760452},{"type":"edit","id":"e9e9f102158e1382","item":{"type":"activity","id":"e9e9f102158e1382","text":"SINCE 7 days"},"date":1469376774104},{"type":"edit","id":"13c803dae8c44ec9","item":{"type":"paragraph","id":"13c803dae8c44ec9","text":"Here we list neighborhood pages that have changed in the last week with the most recent changes first and to the right."},"date":1469379844564},{"type":"edit","id":"13c803dae8c44ec9","item":{"type":"paragraph","id":"13c803dae8c44ec9","text":"Here we list neighborhood titles that have changed in the last week with the most recent first and to the right."},"date":1469379898050}]},"ward-cunningham":{"title":"Ward Cunningham","story":[{"type":"paragraph","id":"a02e13042dbd8518","text":"I am a continual proponent of the wiki style, where structure in the work emerges unmanaged by assumptions of programmers. This is the exact opposite of the sinister \"algorithm\" that now rules popular social software. I've now pushed this style into a computational realm where collaborators can do computing as well as talk about the computing they do. Every result ends up a story."},{"type":"paragraph","id":"dc935a0a586f2247","text":"I've written [[About Federated Wiki]] for those who take an academic interest in our work and want most to relate it to other innovations in communities of purpose."},{"type":"paragraph","id":"c0e71b2a4b998bea","text":"I've created similar sites but with a different intended audience and at different points in this wiki's history."},{"type":"paragraph","id":"4d4463e46b6bdbb6","text":"[[Names of Things]] explains the jargon we use so routinely we may not recognize it as such."},{"type":"paragraph","id":"62b21baaa06299a5","text":"[[Field Guide to the Federation]] will show you what we find interesting here and suggest how you can make yourself at home in a site of your own."},{"type":"paragraph","id":"9abc3ec89c41f0cf","text":"[[Federated Wiki Design Principles]] describes our beliefs that most strongly influenced this work."}],"journal":[{"type":"create","item":{"title":"Ward Cunningham","story":[]},"date":1469226152736},{"item":{"type":"factory","id":"dc935a0a586f2247"},"id":"dc935a0a586f2247","type":"add","date":1469226282142},{"type":"edit","id":"dc935a0a586f2247","item":{"type":"paragraph","id":"dc935a0a586f2247","text":"I've written [[About Federated Wiki]] for those who take an academic interest in our work and want most to relate it to other innovations in communities of purpose."},"date":1469226454320},{"type":"add","id":"c0e71b2a4b998bea","item":{"type":"paragraph","id":"c0e71b2a4b998bea","text":"I've created similar sites but with a different intended audience and at different points in this wiki's history."},"after":"dc935a0a586f2247","date":1469226527081},{"type":"add","id":"62b21baaa06299a5","item":{"type":"paragraph","id":"62b21baaa06299a5","text":"[[Field Guide to the Federation]] will show you what we find interesting here and suggest how you can make yourself at home."},"after":"c0e71b2a4b998bea","date":1469226634982},{"type":"edit","id":"62b21baaa06299a5","item":{"type":"paragraph","id":"62b21baaa06299a5","text":"[[Field Guide to the Federation]] will show you what we find interesting here and suggest how you can make yourself at home in a site of your own."},"date":1469226649671},{"type":"add","id":"4d4463e46b6bdbb6","item":{"type":"paragraph","id":"4d4463e46b6bdbb6","text":"[[Names of Things]] explains the jargon we use so routinely we may not recognize it as such."},"after":"c0e71b2a4b998bea","date":1469226855155},{"type":"add","id":"9abc3ec89c41f0cf","item":{"type":"paragraph","id":"9abc3ec89c41f0cf","text":"[[Federated Wiki Design Principles]] describes our beliefs that most strongly influenced this work."},"after":"62b21baaa06299a5","date":1469227135524},{"type":"add","id":"a02e13042dbd8518","item":{"type":"paragraph","id":"a02e13042dbd8518","text":"I am a continual proponent of the wiki style, where structure in the work emerges unmanaged by assumptions of programmers. This is the exact opposite of the sinister \"algorithm\" that now rules popular social software. I've now pushed this style into a computational realm where collaborators can do computing as well as talk about the computing they do. Every result ends up a story."},"after":"dc935a0a586f2247","date":1469453193275},{"type":"move","order":["a02e13042dbd8518","dc935a0a586f2247","c0e71b2a4b998bea","4d4463e46b6bdbb6","62b21baaa06299a5","9abc3ec89c41f0cf"],"id":"a02e13042dbd8518","date":1469453196926}]},"welcome-visitors":{"title":"Welcome Visitors","story":[{"text":"Welcome to this [[Federated Wiki]] site. From this page you can find who we are and what we do. New sites provide this information and then claim the site as their own. You will need your own site to participate.","id":"7b56f22a4b9ee974","type":"paragraph"},{"type":"paragraph","id":"821827c99b90cfd1","text":"Pages about us."},{"type":"paragraph","id":"63ad2e58eecdd9e5","prompt":"Link to a page about yourself here. Type your name enclosed in double square brackets. Then press Command/ALT-S to save.\n\nMake all pages here yours alone with the login below.","text":"[[Ward Cunningham]]"},{"type":"paragraph","id":"2bbd646ff3f44b51","text":"Pages where we do and share."},{"type":"paragraph","id":"05e2fa92643677ca","prompt":"Create pages about things you do on this wiki. Type a descriptive name of something you will be writing about. Enclose it in square brackets. Then press Command/ALT-S to save.","text":"[[About Federated Wiki]]"},{"type":"paragraph","id":"ee416d431ebf4fb4","text":"You can edit your copy of these pages. Press [+] to add more writing spaces. Read [[How to Wiki]] for more ideas. Follow [[Recent Changes]] here and nearby."}],"journal":[{"type":"create","item":{"title":"Welcome Visitors","story":[]},"date":1420938191608},{"type":"add","item":{"text":"Welcome to this [[Federated Wiki]] site. From this page you can find who we are and what we do. New sites provide this information and then claim the site as their own. You will need your own site to participate.","id":"7b56f22a4b9ee974","type":"paragraph"},"id":"7b56f22a4b9ee974","date":1420938199166},{"type":"add","item":{"type":"paragraph","id":"821827c99b90cfd1","text":"Pages about us."},"after":"7b56f22a4b9ee974","id":"821827c99b90cfd1","date":1420938202921},{"type":"add","item":{"type":"factory","id":"63ad2e58eecdd9e5","prompt":"Link to a page about yourself here. Type your name enclosed in double square brackets. Then press Command/ALT-S to save.\n\nMake all pages here yours alone with the login below."},"after":"821827c99b90cfd1","id":"63ad2e58eecdd9e5","date":1420938208737},{"type":"add","item":{"type":"paragraph","id":"2bbd646ff3f44b51","text":"Pages where we do and share."},"after":"63ad2e58eecdd9e5","id":"2bbd646ff3f44b51","date":1420938212624},{"type":"add","item":{"type":"factory","id":"05e2fa92643677ca","prompt":"Create pages about things you do on this wiki. Type a descriptive name of something you will be writing about. Enclose it in square brackets. Then press Command/ALT-S to save."},"after":"2bbd646ff3f44b51","id":"05e2fa92643677ca","date":1420938216782},{"type":"add","item":{"type":"paragraph","id":"ee416d431ebf4fb4","text":"You can edit your copy of these pages. Press [+] to add more writing spaces. Read [[How to Wiki]] for more ideas. Follow [[Recent Changes]] here and nearby."},"after":"05e2fa92643677ca","id":"ee416d431ebf4fb4","date":1420938220851},{"type":"edit","id":"63ad2e58eecdd9e5","item":{"type":"paragraph","id":"63ad2e58eecdd9e5","prompt":"Link to a page about yourself here. Type your name enclosed in double square brackets. Then press Command/ALT-S to save.\n\nMake all pages here yours alone with the login below.","text":"[[Ward Cunningham]]"},"date":1469219676586},{"type":"edit","id":"05e2fa92643677ca","item":{"type":"paragraph","id":"05e2fa92643677ca","prompt":"Create pages about things you do on this wiki. Type a descriptive name of something you will be writing about. Enclose it in square brackets. Then press Command/ALT-S to save.","text":"[[About Federated Wiki]]"},"date":1469219698612}]},"wiki-as-pattern-language":{"title":"Wiki as Pattern Language","story":[{"type":"paragraph","id":"e90d4f2d7bc9936e","text":"We describe the origin of wiki technology, which has become widely influential, and its relationship to\nthe development of pattern languages in software. We show here how the relationship is deeper than\npreviously understood, opening up the possibility of expanded capability for wikis, including a new\ngeneration of “federated” wiki. "},{"type":"paragraph","id":"0121d7811acac17e","text":"Ward Cunningham and Michael Mehaffy. [http://www.hillside.net/plop/2013/papers/Group6/plop13_preprint_51.pdf pdf] [http://dl.acm.org/citation.cfm?id=2725707 acm]"}],"journal":[{"type":"create","item":{"title":"Wiki as Pattern Language","story":[]},"date":1469453878042},{"item":{"type":"factory","id":"e90d4f2d7bc9936e"},"id":"e90d4f2d7bc9936e","type":"add","date":1469453906594},{"type":"edit","id":"e90d4f2d7bc9936e","item":{"type":"paragraph","id":"e90d4f2d7bc9936e","text":"We describe the origin of wiki technology, which has become widely influential, and its relationship to\nthe development of pattern languages in software. We show here how the relationship is deeper than\npreviously understood, opening up the possibility of expanded capability for wikis, including a new\ngeneration of “federated” wiki. "},"date":1469453915795},{"type":"add","id":"0121d7811acac17e","item":{"type":"paragraph","id":"0121d7811acac17e","text":"Ward Cunningham and Michael Mehaffy."},"after":"e90d4f2d7bc9936e","date":1469453961421},{"type":"edit","id":"0121d7811acac17e","item":{"type":"paragraph","id":"0121d7811acac17e","text":"Ward Cunningham and Michael Mehaffy. [http://www.hillside.net/plop/2013/papers/Group6/plop13_preprint_51.pdf pdf]"},"date":1469453977821},{"type":"edit","id":"0121d7811acac17e","item":{"type":"paragraph","id":"0121d7811acac17e","text":"Ward Cunningham and Michael Mehaffy. [http://www.hillside.net/plop/2013/papers/Group6/plop13_preprint_51.pdf pdf] [http://dl.acm.org/citation.cfm?id=2725707 acm]"},"date":1469454002450}]},"workflows":{"title":"Workflows","story":[{"type":"paragraph","id":"9e53e8f4bb3a22ee","text":"Workflows describe productive activities that are well supported but not enforced by wiki."},{"type":"paragraph","id":"c8996bee85f30adc","text":"We rely on discovered sequences of primitive actions to complete tasks that might be directly supported by designed features in a monolithic system. Primitives, cautiously created when needs arise, are closely aligned with the necessary software operations."},{"type":"paragraph","id":"9546cd7a78d5db48","text":"Workflows might start life as a workaround for a missing feature only to be recognized later to be a versatile solution that does not require additional user affordance."},{"type":"paragraph","id":"4b999cb5a07dfdce","text":"Workflows avoid the unfortunate, inscrutable and wholly unintended feature interactions common in designed systems. "},{"type":"paragraph","id":"8226cf4cc09db588","text":"See [[Familiar Workflows]] for some specific cases."},{"type":"markdown","id":"3ad1bf897c65a8dc","text":"# Features"},{"type":"paragraph","id":"0fd1c100885b236d","text":"Some workflows revolve around unfamiliar capabilities for managing or sharing our work."},{"type":"paragraph","id":"eec77992cf2419e3","text":"We rely on domain names for identity and make subdomain creation automatic. We expect but do not require an author profile page for each new site. "},{"type":"paragraph","id":"5819956696e68942","text":"We often make new pages as ghostly versions of their future selves that can be read, even borrowed from, but are not saved until forked."},{"type":"paragraph","id":"f7134154d7cf6127","text":"We present useful versions of specific plugins as companions to the standard about pages. Recent Changes, Grep for Errors and Topo Map are useful versions of Activity, Grep and Map plugins."},{"type":"paragraph","id":"a9191b065dae7207","text":"We employ Template pages and Transport services to construct new pages with consistent format and organization structure."},{"type":"markdown","id":"f6a8c63111a92864","text":"# Limitations"},{"type":"paragraph","id":"92aab5e132f67f5b","text":"We live within limitations, some enforced by browsers and others of our own choice, that preclude operations familiar to database driven sites."},{"type":"paragraph","id":"d8fde44bc415e4af","text":"We limit notifications to the discovery of twin pages in already known and visited sites. We can know what our friends are doing only if we go look. We offer affordances for observing but do not subject authors to spam."},{"type":"paragraph","id":"c7aaa2b546f7bd58","text":"We collect more history than might be desired especially when a page with many edits to large items becomes bulky. Clever refactoring and forks from history provide handy journal manipulations."},{"type":"paragraph","id":"7b0abd2e9090e686","text":"We live within the visibility constraints of firewalls but find use for carefully placed staging sites from which we can fork to public visibility pages once reviewed."},{"type":"markdown","id":"e0b01f41e7a9dc70","text":"# Incompleteness"},{"type":"paragraph","id":"ee7c4cc04864c7ce","text":"We do without some convenience features because we simply haven't made providing them a priority."},{"type":"paragraph","id":"eaef5f2f768712dd","text":"We have good support for comparing pages, often three, four or more pages, by scrolling each to align paragraphs that may have moved in different versions. But we don't yet red-green diff individual lines."},{"type":"paragraph","id":"309a03e616c99de4","text":"We learn strategies for opening and abandoning pages to the point that we don't miss the ability to close from the middle or otherwise rearrange the lineup."},{"type":"paragraph","id":"dd68067817607a58","text":"We don't handle deleting pages except in the case of browser local storage where they can inescapably hide desired content. This requires retrieving the more empowered Local Changes variation of Recent Changes."}],"journal":[{"type":"create","item":{"title":"Workflows","story":[]},"date":1469246304478},{"item":{"type":"paragraph","id":"9e53e8f4bb3a22ee","text":"Workflows describe productive activities that are well supported but not enforced by wiki."},"id":"9e53e8f4bb3a22ee","type":"add","date":1469296517832},{"type":"edit","id":"9e53e8f4bb3a22ee","item":{"type":"paragraph","id":"9e53e8f4bb3a22ee","text":"Workflows describe productive activities that are well supported but not enforced by wiki."},"date":1469296556729},{"item":{"type":"paragraph","id":"c8996bee85f30adc","text":"We rely on discovered sequences of primitive actions to complete tasks that might be directly supported by designed features in a monolithic system. Primitives, cautiously created when needs arise, are closely aligned with the necessary software operations."},"id":"c8996bee85f30adc","type":"add","after":"9e53e8f4bb3a22ee","date":1469296630662},{"type":"edit","id":"c8996bee85f30adc","item":{"type":"paragraph","id":"c8996bee85f30adc","text":"We rely on discovered sequences of primitive actions to complete tasks that might be directly supported by designed features in a monolithic system. Primitives, cautiously created when needs arise, are closely aligned with the necessary software operations."},"date":1469297296992},{"type":"add","id":"9546cd7a78d5db48","item":{"type":"paragraph","id":"9546cd7a78d5db48","text":"Workflows might start life as a workaround for a missing feature only to be recognized later to be a versatile solution that does not require additional user affordance."},"after":"c8996bee85f30adc","date":1469297904653},{"type":"add","id":"4b999cb5a07dfdce","item":{"type":"paragraph","id":"4b999cb5a07dfdce","text":"Workflows avoid the unfortunate, inscrutable and wholly unintended feature interactions common in designed systems. "},"after":"9546cd7a78d5db48","date":1469298077327},{"type":"edit","id":"4b999cb5a07dfdce","item":{"type":"paragraph","id":"4b999cb5a07dfdce","text":"Workflows avoid the unfortunate, inscrutable and wholly unintended feature interactions common in designed systems. "},"date":1469298180133},{"type":"add","id":"3ad1bf897c65a8dc","item":{"type":"markdown","id":"3ad1bf897c65a8dc","text":"# Features"},"after":"4b999cb5a07dfdce","date":1469298220225},{"type":"add","id":"f6a8c63111a92864","item":{"type":"markdown","id":"f6a8c63111a92864","text":"# Limitations"},"after":"3ad1bf897c65a8dc","date":1469298227345},{"type":"add","id":"e0b01f41e7a9dc70","item":{"type":"markdown","id":"e0b01f41e7a9dc70","text":"# Incompleteness"},"after":"f6a8c63111a92864","date":1469298260183},{"type":"add","id":"0fd1c100885b236d","item":{"type":"paragraph","id":"0fd1c100885b236d","text":"Some workflows revolve around unfamiliar capabilities for managing or sharing our work."},"after":"3ad1bf897c65a8dc","date":1469298401344},{"type":"add","id":"eec77992cf2419e3","item":{"type":"paragraph","id":"eec77992cf2419e3","text":"We rely on domain names for identity and make subdomain creation automatic. We expect but do not require an author profile page for each new site. "},"after":"0fd1c100885b236d","date":1469298577635},{"type":"add","id":"5819956696e68942","item":{"type":"paragraph","id":"5819956696e68942","text":"We often make new pages as ghostly versions of their future selves that can be read, even borrowed from, but are not saved until forked."},"after":"eec77992cf2419e3","date":1469298759912},{"type":"add","id":"f7134154d7cf6127","item":{"type":"paragraph","id":"f7134154d7cf6127","text":"We present useful versions of specific plugins as companions to the standard about pages. Recent Changes, Grep for Errors and Topo Map are useful versions of Activity, Grep and Map plugins."},"after":"5819956696e68942","date":1469299188300},{"type":"edit","id":"3ad1bf897c65a8dc","item":{"type":"markdown","id":"3ad1bf897c65a8dc","text":"# Features"},"date":1469299197491},{"type":"add","id":"a9191b065dae7207","item":{"type":"paragraph","id":"a9191b065dae7207","text":"We employ Template pages and Transport services to construct new pages with consistent format and organization structure."},"after":"f7134154d7cf6127","date":1469299607766},{"type":"add","id":"92aab5e132f67f5b","item":{"type":"paragraph","id":"92aab5e132f67f5b","text":"We live within limitations, some enforced by browsers and others of our own choice, that preclude operations familiar to database driven sites."},"after":"f6a8c63111a92864","date":1469299767793},{"type":"edit","id":"f6a8c63111a92864","item":{"type":"markdown","id":"f6a8c63111a92864","text":"# Limitations"},"date":1469299867832},{"type":"add","id":"d8fde44bc415e4af","item":{"type":"paragraph","id":"d8fde44bc415e4af","text":"We limit notifications to the discovery of twin pages in already known and visited sites. We can know what our friends are doing only if we go look. We offer affordances for observing but do not subject authors to spam."},"after":"92aab5e132f67f5b","date":1469300462947},{"type":"edit","id":"d8fde44bc415e4af","item":{"type":"paragraph","id":"d8fde44bc415e4af","text":"We limit notifications to the discovery of twin pages in already known and visited sites. We can know what our friends are doing only if we go look. We offer affordances for observing but do not subject authors to spam."},"date":1469300483529},{"type":"add","id":"c7aaa2b546f7bd58","item":{"type":"paragraph","id":"c7aaa2b546f7bd58","text":"We collect more history than might be desired especially when a page with many edits to large items becomes bulky. Clever refactoring and forks from history provide handy journal manipulations."},"after":"d8fde44bc415e4af","date":1469300775410},{"type":"add","id":"7b0abd2e9090e686","item":{"type":"paragraph","id":"7b0abd2e9090e686","text":"We live within the visibility constraints of firewalls but find use for carefully placed staging sites from which we can fork to public visibility pages once reviewed."},"after":"c7aaa2b546f7bd58","date":1469301129000},{"type":"edit","id":"7b0abd2e9090e686","item":{"type":"paragraph","id":"7b0abd2e9090e686","text":"We live within the visibility constraints of firewalls but find use for carefully placed staging sites from which we can fork to public visibility pages once reviewed."},"date":1469301146707},{"type":"edit","id":"e0b01f41e7a9dc70","item":{"type":"markdown","id":"e0b01f41e7a9dc70","text":"# Incompleteness"},"date":1469301221108},{"item":{"type":"paragraph","id":"ee7c4cc04864c7ce","text":"We do without some convenience features because we simply haven't made providing them a priority."},"id":"ee7c4cc04864c7ce","type":"add","after":"e0b01f41e7a9dc70","date":1469301226632},{"type":"edit","id":"ee7c4cc04864c7ce","item":{"type":"paragraph","id":"ee7c4cc04864c7ce","text":"We do without some convenience features because we simply haven't made providing them a priority."},"date":1469301352703},{"type":"add","id":"eaef5f2f768712dd","item":{"type":"paragraph","id":"eaef5f2f768712dd","text":"We have good support for comparing pages, often three, four or more pages, by scrolling each to align paragraphs that may have moved in different versions. But we don't yet red-green diff individual lines."},"after":"ee7c4cc04864c7ce","date":1469301537647},{"type":"add","id":"309a03e616c99de4","item":{"type":"paragraph","id":"309a03e616c99de4","text":"We learn strategies for opening and abandoning pages to the point that we don't miss the ability to close from the middle or otherwise rearrange the lineup."},"after":"eaef5f2f768712dd","date":1469301646740},{"type":"add","id":"dd68067817607a58","item":{"type":"paragraph","id":"dd68067817607a58","text":"We don't handle deleting pages except in the case of browser local storage where they can inescapably hide desired content. This requires retrieving the more empowered Local Changes variation of Recent Changes."},"after":"309a03e616c99de4","date":1469302086680},{"type":"edit","id":"dd68067817607a58","item":{"type":"paragraph","id":"dd68067817607a58","text":"We don't handle deleting pages except in the case of browser local storage where they can inescapably hide desired content. This requires retrieving the more empowered Local Changes variation of Recent Changes."},"date":1469302148068},{"type":"add","id":"8226cf4cc09db588","item":{"type":"paragraph","id":"8226cf4cc09db588","text":"See [[Workflows]] for some specific cases."},"after":"dd68067817607a58","date":1469302283858},{"type":"move","order":["9e53e8f4bb3a22ee","c8996bee85f30adc","9546cd7a78d5db48","4b999cb5a07dfdce","8226cf4cc09db588","3ad1bf897c65a8dc","0fd1c100885b236d","eec77992cf2419e3","5819956696e68942","f7134154d7cf6127","a9191b065dae7207","f6a8c63111a92864","92aab5e132f67f5b","d8fde44bc415e4af","c7aaa2b546f7bd58","7b0abd2e9090e686","e0b01f41e7a9dc70","ee7c4cc04864c7ce","eaef5f2f768712dd","309a03e616c99de4","dd68067817607a58"],"id":"8226cf4cc09db588","date":1469302300887,"error":{"type":"error","msg":"Internal Server Error","response":"Server Ignoring move. Try reload."}},{"type":"fork","date":1469302358390},{"type":"edit","id":"8226cf4cc09db588","item":{"type":"paragraph","id":"8226cf4cc09db588","text":"See [Familiar [Workflows]] for some specific cases."},"date":1469302401892},{"type":"edit","id":"8226cf4cc09db588","item":{"type":"paragraph","id":"8226cf4cc09db588","text":"See [[Familiar Workflows]] for some specific cases."},"date":1469302410737}]},"writing-with-strangers":{"title":"Writing with Strangers","story":[{"type":"paragraph","id":"887069397423c540","text":"Writing in the presence of rampant forking calls into question what it means to write and how to do it well."},{"type":"paragraph","id":"f79b1c662d3fb37e","text":"Descartes tells us that our thought is the only sure evidence that we are anything at all."},{"type":"paragraph","id":"5e70dec702497290","text":"But we as social animals come from a very long line of communicators who have now concocted a new way to share our thoughts with others through machines."},{"type":"html","id":"3290abbbff988a10","text":" Thought"},{"type":"paragraph","id":"0ad9a59a7a3a14d1","text":"Words help us think but they are not our thoughts. While speaking or writing we may struggle to find language that fits the moment, that extends the moment, that sharpens it for us and for others. See [[Conduit Metaphor]]"},{"type":"paragraph","id":"5f744d35b5ec9730","text":"Words may come out before a thought is complete. Sometimes a sentence will trail off as the mind races ahead. Colleagues may try to complete a thought that has stalled. It is a guessing game. See [[Some Talk to Think]]"},{"type":"paragraph","id":"5e456c6b90315372","text":"How long should we hold onto thoughts before we expose them to others? With who should we expose the incompleteness of our thinking? Do we have property rights over our thoughts that should be protected? Would we dare mind-meld with someone as smart as Star Trek's Spock. What would he think of us later?"},{"type":"paragraph","id":"281091e439c2777a","text":"Thoughts expressed do take on a life of their own. We can choose metaphor carefully so as to guide them downhill in the landscape of competing ideas. Science suggests we assemble the best evidence from the natural world before we subject ideas to the scrutiny of our peers. But even this process is recognized as conversation. See [[Kuhn Cycle]]"},{"type":"html","id":"7aff4bd4ebe2b0bf","text":" Strategy"},{"type":"paragraph","id":"d07455661e5c847e","text":"Face to face conversation takes place in turns. A skilled listener can postpone posturing for their own turn so that they can concentrate on the speaker and best hear what is being said. Skilled debate moves the posturing into preparation but leaves the winner knowing only what they studied as only judges have time to listen."},{"type":"paragraph","id":"8ec83b38e017e681","text":"We aspire to solve large social problems that require more careful thought than just winning in an argument in the moment. Our medium admits incomplete ideas, expressed and titled, to flow within a community that need not take turns to perfect them."},{"type":"paragraph","id":"83e865e474f40915","text":"We aspire to hear others more clearly by taking our colleagues expressions and making them our own. We do this for our own satisfaction, not for their approval. We do this in our own time merging our own thought with those of many others to make what for us seems whole."},{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page we sever the connection with the original thinkers. Their expression becomes our expression, not copies of their thoughts as with the Vulcan mind-meld. The page simply expresses something that we have heard, something that has meaning to us, something that we choose to repeat even if we suspect that meaning might be incomplete or untrue."},{"type":"paragraph","id":"cee9e4987febdd7f","text":"As curators of a forked page we have some obligation to incorporate our own thought in the expression in a way that will be clear to our own readers. As the new owner we can renovate without apology. Our reader will understand that we have thought many things, often contradictory things, and that this one thing, the forked page, fits into our thinking a little or a lot."},{"type":"paragraph","id":"a9d9f27ef5a2adeb","text":"We have shown sufficient respect to other authors when we allow our readers to seek their expression in their words unadulterated by us but possibly revised since we took to understanding them. This citation is automatic in the fork and convenient for both readers and authors."},{"type":"html","id":"7cfccd4ffbb730a0","text":" Scholarship"},{"type":"paragraph","id":"35dddffdd5e768c3","text":"This leaves the question as to what a scholar should think of this new medium. Writing here might put an established reputation at risk. "},{"type":"paragraph","id":"232754eb2a06a444","text":"One might fear that they would be exposed as a careless thinker of incomplete or incorrect thoughts. In the competition to be paid for thinking this could be disasterous."},{"type":"paragraph","id":"01e84abfc0417654","text":"One might fear that their best ideas will be recognized by others before they are fully developed by themselves. Again, in a competitive space such hoarding might make sense."},{"type":"paragraph","id":"398d7df70b7c1cc1","text":"A young scholar might take a different view. While the federation is small anyone choosing to write here has a better than average chance that their ideas will grow and flourish to dominate conversations for many years to come. This page is our best advice to those who choose this path."}],"journal":[{"type":"create","item":{"title":"Writing with Strangers","story":[]},"date":1429278248138},{"item":{"type":"factory","id":"887069397423c540"},"id":"887069397423c540","type":"add","date":1429278264885},{"type":"edit","id":"887069397423c540","item":{"type":"paragraph","id":"887069397423c540","text":"Writing in the presence of rampant forking calls into question what it means to write and how to do it well."},"date":1429278312278},{"type":"add","id":"f79b1c662d3fb37e","item":{"type":"paragraph","id":"f79b1c662d3fb37e","text":"Decart "},"after":"887069397423c540","date":1429278489845},{"type":"edit","id":"f79b1c662d3fb37e","item":{"type":"paragraph","id":"f79b1c662d3fb37e","text":"Descartes tells us that our thought is the only sure evidence that we are anything at all."},"date":1429278589336},{"type":"add","id":"5e70dec702497290","item":{"type":"paragraph","id":"5e70dec702497290","text":"But as social animals we all come from a very long line of communicators and have now concocted a new way to share our thoughts with others."},"after":"f79b1c662d3fb37e","date":1429278730562},{"type":"edit","id":"5e70dec702497290","item":{"type":"paragraph","id":"5e70dec702497290","text":"But we as social animals come from a very long line of communicators who have now concocted a new way to share our thoughts with others through machines."},"date":1429278827067},{"item":{"type":"factory","id":"5f744d35b5ec9730"},"id":"5f744d35b5ec9730","type":"add","after":"5e70dec702497290","date":1429278941308},{"type":"edit","id":"5f744d35b5ec9730","item":{"type":"paragraph","id":"5f744d35b5ec9730","text":"write to think"},"date":1429278948989},{"type":"add","id":"d07455661e5c847e","item":{"type":"paragraph","id":"d07455661e5c847e","text":"waiting to speak"},"after":"5f744d35b5ec9730","date":1429278976108},{"type":"add","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"why cite others"},"after":"d07455661e5c847e","date":1429279220714},{"type":"add","id":"281091e439c2777a","item":{"type":"paragraph","id":"281091e439c2777a","text":"gift of memes"},"after":"d9ae823f6f8c67cc","date":1429279319165},{"type":"move","order":["887069397423c540","f79b1c662d3fb37e","5e70dec702497290","5f744d35b5ec9730","281091e439c2777a","d07455661e5c847e","d9ae823f6f8c67cc"],"id":"281091e439c2777a","date":1429279614088},{"type":"add","id":"0ad9a59a7a3a14d1","item":{"type":"paragraph","id":"0ad9a59a7a3a14d1","text":"Words help us think but they are not our thoughts. While speaking or writing we may struggle to find language that fits the moment, that extends the moment, that sharpens it for us and for others."},"after":"5e70dec702497290","date":1429279868009},{"type":"edit","id":"0ad9a59a7a3a14d1","item":{"type":"paragraph","id":"0ad9a59a7a3a14d1","text":"Words help us think but they are not our thoughts. While speaking or writing we may struggle to find language that fits the moment, that extends the moment, that sharpens it for us and for others. See [[Conduit Metaphor]]"},"date":1429280048946},{"type":"edit","id":"5f744d35b5ec9730","item":{"type":"paragraph","id":"5f744d35b5ec9730","text":"Words may come out before a thought is complete. Sometimes a sentence will trail off as the mind races ahead. Colleagues may try to complete a thought that has stalled. It is a guessing game. See [[Some Talk to Think]]"},"date":1429280250610},{"type":"add","id":"5e456c6b90315372","item":{"type":"paragraph","id":"5e456c6b90315372","text":"How long should we hold onto thoughts before we expose them to others? With who should we expose the incompleteness of our thinking? Do we have property rights over our thoughts that should be protected? Would we dare mind-meld with someone as smart as Star Trek's Spock. What would he think of us later?"},"after":"5f744d35b5ec9730","date":1429280600487},{"type":"add","id":"35dddffdd5e768c3","item":{"type":"paragraph","id":"35dddffdd5e768c3","text":"a strategy for scholarship"},"after":"d9ae823f6f8c67cc","date":1429280694078},{"type":"edit","id":"281091e439c2777a","item":{"type":"paragraph","id":"281091e439c2777a","text":"Thoughts expressed do take on a life of their own. We can choose metaphor carefully so as to guide them downhill in the landscape of competing ideas. Science suggests we assemble"},"date":1429281786244},{"type":"edit","id":"281091e439c2777a","item":{"type":"paragraph","id":"281091e439c2777a","text":"Thoughts expressed do take on a life of their own. We can choose metaphor carefully so as to guide them downhill in the landscape of competing ideas. Science suggests we assemble the best evidence from the natural world before we subject ideas to the scrutiny of our peers. But even this process is recognized as conversation."},"date":1429281900482},{"type":"add","id":"3290abbbff988a10","item":{"type":"paragraph","id":"3290abbbff988a10","text":" Thought"},"after":"5e70dec702497290","date":1429281925227},{"type":"edit","id":"3290abbbff988a10","item":{"type":"html","id":"3290abbbff988a10","text":" Thought"},"date":1429281931241},{"type":"add","id":"7aff4bd4ebe2b0bf","item":{"type":"paragraph","id":"7aff4bd4ebe2b0bf","text":" Strategy"},"after":"281091e439c2777a","date":1429281982671},{"type":"edit","id":"7aff4bd4ebe2b0bf","item":{"type":"html","id":"7aff4bd4ebe2b0bf","text":" Strategy"},"date":1429281985382},{"type":"edit","id":"281091e439c2777a","item":{"type":"paragraph","id":"281091e439c2777a","text":"Thoughts expressed do take on a life of their own. We can choose metaphor carefully so as to guide them downhill in the landscape of competing ideas. Science suggests we assemble the best evidence from the natural world before we subject ideas to the scrutiny of our peers. But even this process is recognized as conversation. See [[Khun]]"},"date":1429282395282},{"type":"edit","id":"281091e439c2777a","item":{"type":"paragraph","id":"281091e439c2777a","text":"Thoughts expressed do take on a life of their own. We can choose metaphor carefully so as to guide them downhill in the landscape of competing ideas. Science suggests we assemble the best evidence from the natural world before we subject ideas to the scrutiny of our peers. But even this process is recognized as conversation. See [[Kuhn]]"},"date":1429282409922},{"type":"edit","id":"281091e439c2777a","item":{"type":"paragraph","id":"281091e439c2777a","text":"Thoughts expressed do take on a life of their own. We can choose metaphor carefully so as to guide them downhill in the landscape of competing ideas. Science suggests we assemble the best evidence from the natural world before we subject ideas to the scrutiny of our peers. But even this process is recognized as conversation. See [[Kuhn Cycle]]"},"date":1429282423228},{"type":"edit","id":"d07455661e5c847e","item":{"type":"paragraph","id":"d07455661e5c847e","text":"Face to face conversation takes place in turns. A skilled listener can postpone posturing for their own turn so that they can concentrate on the speaker and best hear what is being said. Skilled debate moves the posturing into preparation but leaves the winner knowing only what they studied."},"date":1429284658166},{"type":"add","id":"8ec83b38e017e681","item":{"type":"paragraph","id":"8ec83b38e017e681","text":"We aspire to solve large social problems that require more careful thought than just winning in an argument in the moment. Our medium admits incomplete ideas, expressed and titled, to flow within a community that need not take turns."},"after":"d07455661e5c847e","date":1429285451123},{"type":"add","id":"83e865e474f40915","item":{"type":"paragraph","id":"83e865e474f40915","text":"We aspire to hear others more clearly by taking our colleagues expressions and making them our own. "},"after":"8ec83b38e017e681","date":1429285509514},{"type":"edit","id":"83e865e474f40915","item":{"type":"paragraph","id":"83e865e474f40915","text":"We aspire to hear others more clearly by taking our colleagues expressions and making them our own. We do this for our own satisfaction, not for their approval. We do this in our own time merging our own thought with many others."},"date":1429285575343},{"type":"edit","id":"8ec83b38e017e681","item":{"type":"paragraph","id":"8ec83b38e017e681","text":"We aspire to solve large social problems that require more careful thought than just winning in an argument in the moment. Our medium admits incomplete ideas, expressed and titled, to flow within a community that need not take turns. Their they will improve."},"date":1429285618167},{"type":"edit","id":"8ec83b38e017e681","item":{"type":"paragraph","id":"8ec83b38e017e681","text":"We aspire to solve large social problems that require more careful thought than just winning in an argument in the moment. Our medium admits incomplete ideas, expressed and titled, to flow within a community that need not take turns to perfect them."},"date":1429285641783},{"type":"edit","id":"83e865e474f40915","item":{"type":"paragraph","id":"83e865e474f40915","text":"We aspire to hear others more clearly by taking our colleagues expressions and making them our own. We do this for our own satisfaction, not for their approval. We do this in our own time merging our own thought with those of many others to make what for us seems whole."},"date":1429285700232},{"type":"edit","id":"d07455661e5c847e","item":{"type":"paragraph","id":"d07455661e5c847e","text":"Face to face conversation takes place in turns. A skilled listener can postpone posturing for their own turn so that they can concentrate on the speaker and best hear what is being said. Skilled debate moves the posturing into preparation but leaves the winner knowing only what they studied as only judges have time to listen."},"date":1429285753958},{"type":"edit","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page into a site we own we sever "},"date":1429285883108},{"type":"edit","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page we sever the connection with the original thinkers. "},"date":1429286048310},{"type":"edit","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page we sever the connection with the original thinkers. They become our thoughts, not copies of another's thought, they become something that we have heard, something that has meaning to us even if we suspect that meaning might be incomplete or untrue."},"date":1429286161885},{"type":"edit","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page we sever the connection with the original thinkers. Their expression becomes our expression, not copies of their thought which remains their own."},"date":1429286314186},{"type":"edit","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page we sever the connection with the original thinkers. Their expression becomes our expression, not copies of their thought which remains their own. The page expresses something that we have heard, something that has meaning to us, something that we choose to repeat even if we suspect that meaning might be incomplete or untrue."},"date":1429286379871},{"type":"edit","id":"d9ae823f6f8c67cc","item":{"type":"paragraph","id":"d9ae823f6f8c67cc","text":"When we fork a page we sever the connection with the original thinkers. Their expression becomes our expression, not copies of their thoughts as with the Vulcan mind-meld. The page simply expresses something that we have heard, something that has meaning to us, something that we choose to repeat even if we suspect that meaning might be incomplete or untrue."},"date":1429286611564},{"type":"add","id":"cee9e4987febdd7f","item":{"type":"paragraph","id":"cee9e4987febdd7f","text":"As curators of a forked page we have some obligation to incorporate our own thought in the expression in a way that will be clear to our own readers. As the new owner we can renovate without apology. Our reader will understand that we have thought many things, often contradictory things, and that this one thing, the forked page, fits into our thinking a little or a lot."},"after":"d9ae823f6f8c67cc","date":1429287023001},{"type":"add","id":"a9d9f27ef5a2adeb","item":{"type":"paragraph","id":"a9d9f27ef5a2adeb","text":"We have shown sufficient respect to other authors when we allow our readers to seek their expression in their words unadulterated by us but possibly revised since we took to understanding them. This citation is automatic in the fork and convenient for both readers and authors."},"after":"cee9e4987febdd7f","date":1429287504728},{"type":"edit","id":"35dddffdd5e768c3","item":{"type":"paragraph","id":"35dddffdd5e768c3","text":"This leaves the question as to what a scholar should think of this new medium. Writing here might put an established reputation at risk. "},"date":1429287894600},{"type":"add","id":"232754eb2a06a444","item":{"type":"paragraph","id":"232754eb2a06a444","text":"One might fear that they would be exposed as a careless thinker of incomplete or incorrect thoughts. In the competition to be paid for thinking this could be disasterous."},"after":"35dddffdd5e768c3","date":1429288048390},{"type":"add","id":"01e84abfc0417654","item":{"type":"paragraph","id":"01e84abfc0417654","text":"One might fear that their best ideas will be recognized by others before they are fully developed by themselves. Again, in a competitive space such hoarding might make sense."},"after":"232754eb2a06a444","date":1429288122304},{"type":"add","id":"398d7df70b7c1cc1","item":{"type":"paragraph","id":"398d7df70b7c1cc1","text":"A young scholar might take a different view. While the federation is small anyone choosing to write here has a better than average chance that their ideas will grow and flourish to dominate conversations for many years to come."},"after":"01e84abfc0417654","date":1429288492059},{"type":"add","id":"7cfccd4ffbb730a0","item":{"type":"paragraph","id":"7cfccd4ffbb730a0","text":" Scholarship"},"after":"a9d9f27ef5a2adeb","date":1429288565768},{"type":"edit","id":"7cfccd4ffbb730a0","item":{"type":"html","id":"7cfccd4ffbb730a0","text":" Scholarship"},"date":1429288571086},{"type":"edit","id":"398d7df70b7c1cc1","item":{"type":"paragraph","id":"398d7df70b7c1cc1","text":"A young scholar might take a different view. While the federation is small anyone choosing to write here has a better than average chance that their ideas will grow and flourish to dominate conversations for many years to come. This page is our best advice to those who choose this path."},"date":1429288732439},{"type":"fork","site":"forage.ward.fed.wiki.org","date":1495804048641}]}}