“The biggest challenge of the 21st century is the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.”
Interests
Dogs, Cats, Post-scarcity, Space Habitats, Triplestores, Nutrition, Eating More Fruits And Vegetables, Healthy Living, The Challenge of Supernormal Stimuli, The Challenge of The Pleasure Trap, Sensemaking, Public Intelligence, Open Government, Science Fiction, Walking, Writing, Smalltalk, JavaScript, TypeScript, D3, Homeschooling, Unschooling, History, Museums, Gardening, Storytelling, 2D and 3D Data Visualization, D3, Voxel.js, Minecraft, Parenting, Family, Talking with My Wife, Playing With My Kid, Community, Robotics, Alternative Economics, Basic Income, Distributed Systems, Message-Passing Systems, Open Manufacturing, Positive Psychology, Fasting, Vitamin D, Iodine, Healthy Fats, Treadmill Workstations, Speech Recognition, Alan Kay, James P. Hogan, Isaac Asimov, Buckminster Fuller, Douglas Engelbart, MEMEX, The Skills of Xanadu, Theodore Sturgeon, Robert Steele, Debugging, Optimization, OSCOMAK, Twirlip, Rakontu, NarraFirma, Pointrel, PataPata, StoryHarp, PlantStudio, EvoJazz, Musical Phrases, Narratopia, Debian, Raspberry Pi, Arduino, FOSS, The Humor Project, Patch Adams Gesundheit! Institute, The Singularity, Laughter Yoga, Monty Python, Thinking, Reading, Programming, Humming, Mandolin Orange, Mystery Men, Silent Running, Fast-Forward Radio, World Transformed, Scanning Old Papers, Digitizing Books, Digital Video, Low-Latency Voice Communications, World of Tanks, Conversation, Miriam Makeba, Sting, Message In a Bottle, Volunteering, Gift Economy, Planning, Five Interwoven Economies, The Richest Man In The World, 3D Printing, Electronics, The Lost Art of Democratic Debate, Dan Pink, Theories of Motivation, Manuel De Landa, Chaordic Commons, Stigmergy, Putamayo World Music, Dark Nights of The Soul, Thomas Moore, Chickens, Sustainability, Cold Fusion, LENR, Solar Energy, Fault Tolerance, Resiliency, Thriving, Structured Arguments, Compendium, Concept Maps, Clustering Diagrams, IBIS, Simulation, Self-Replicating Systems, Twilight Zone, Phineas and Ferb, Watersheds, Monchatea, Single-Page Webapps, WordPress, socket.io, Node.js, Automattic, Trees, Permaculture, Porcupines, Burbling Streams, Books, Archiving, Libraries, OpenVirgle, Aikido, Downton Abbey, Jane Austin, Participatory Narrative Inquiry, Tog’ls, Historical Societies, Spaceship Earth, Philosophy, Poetry and Knowledge Management, Meshworks Hierarchies and Interfaces, Old Guy Cybertank Novels, EarthCent Ambassador Novels, Educational Alternatives, Informal Education, Cognitive Diversity, Ursula K. Le Guin, A Wizard of Earthsea, Statistical Graphics, James R. Beniger, Lots of other stuff…
WordPress Origin Story
While I’ve known about WordPress for a long time (almost since its beginning, as a long-time Slashdot reader), I have mostly maintained our own sites using plain HTML (generated sometimes by scripts from non-HTML source). This was mainly to reduce maintenance and security worries. Slashdot discussed a lot of WordPress vulnerabilities over the years. 🙂 Thankfully, that is mostly a thing of the past, especially now with automatic updates. Plus, of course, I’ve always had my own never-enough-time-to-realize ideas for content management system called “Pointrel/Twirlip” based loosely on the ideas of using a triplestore to implement a “social semantic desktop”. And of course, like many experienced software developers, I’ve long thought PHP was a problematical language, even as it continues to improve — although I could say the same about JavaScript which I code mainly in now (mostly as TypeScript to make JavaScript refactoring a bit less problematical). I used Zope and Plone for a time, and did some other stuff in Django as well, because I much preferred Python over PHP. I just could not really stomach the idea of running PHP software back in the mid-2000s.
Years later, as WordPress and PHP both continued to improve, I set up one small toe-dipping WordPress site around 2009-2010 (at beyondajoblessrecovery.org). I exported that content to a static site to reduce maintenance needs when I stopped posting there after about a year.
I first started using WordPress significantly for a formal organization only in early 2014. I set up a site hosted at WordPress.com for a local historical society for which I am a trustee, migrating a static HTML site to WordPress (at edinburghistoricalsociety.org). I chose WordPress after considering and setting up test sites in WordPress, Drupal, Omeka, and Google Apps. WordPress seemed to have the broadest support — for good reasons. Omeka might have been better as a museum-focused WordPress plugin. Drupal’s flexibility appealed to me as a software developer, but Drupal required a bunch of manual effort for upgrades, and I read of people abandoning it from user interface complexity. Google Apps was proprietary, was surprisingly confusing to use, and would also force people to log into Google often which had extra privacy issues. So, the question then was where to host WordPress?I installed WordPress a few times locally, on shared hosting, and on Amazon Web Services to test it. I got WordPress to work in all of those places (even with getting outgoing email working on AWS via Amazon’s SES email services). However, I decided that hosting at WordPress.com was the most reliable option for the society. Most of the society’s board and membership has limited computer expertise (let alone knowledge about the details of computer security). We on the historical society board all agree what a pain in the backside computers can be — although my own feelings on that topic may be a bit more complex and for different reasons — as a software developer with decades of experience all the way back to my first computer — a KIM-1 with 1K of RAM. 🙂
Going through the process of evaluating options for our historical society helped me to understand better how the web was changing. I began to see what a positive force WordPress was in providing a potentially decentralized alternative to using centralized proprietary services like Facebook and Google Apps (even if, in practice, it is a good idea for many people to host at WordPress.com instead of elsewhere). Also, my wife and I began to see that her Rakontu project for story sharing communities (written for Google App Engine in 2009) would have been be most easily installed and used as WordPress plugins and thus reached the largest potential audience that way instead of fading away as unapproachable except by very technical people (which were not Rakontu’s intended audience).
Having learned our lesson about the power of WordPress, we designed our new JavaScript-based NarraFirma webapp for “Participatory Narrative Inquiry (PNI)” to work with WordPress. NarraFirma can be used for market research through collecting real-life experiential stories about a product, or can be used for collective sensemaking about difficult community issues, or can be used for many other things. NarraFirma can actually run either as a “decoupled” WordPress app (for easy install using WordPress as an application server, which is how we expect most people will use it) or as a Node.js application (for stand-alone performance and easier development testing). We expect more and more people will make a similar choice about how to develop new software applications in the near future — to write them mostly in JavaScript (or languages that compile to JavaScript) and run them mostly on WordPress.
You can try our JavaScript-based NarraFirma WordPress plugin at narrafirma.com or install it yourself with one click via WordPress.org. It is fully featured out of the box. NarraFirma has about 40 virtual pages as a single-page webapp that leads people step-by-step through the PNI process. The webapp downloads all the project data at startup (which can take 20 seconds for a typical project with a few hundred stories), but after it loads, it is snappy. It is designed to be used for hours at a time — however, you can have multiple instances open in your browser and they will all keep themselves synchronized. There is a common JSON API to talk between the JavaScript in the browser and either the WordPress of Node.js backend. NarraFirma is also fully multi-user without requiring either a “save” button or a “refresh” button. Most of the application is in TypeScript (which we switched to after 100 JavaScript files got hard to refactor easily). NarraFirma uses Mithril (similar to React) for the UI. It uses D3 for charts and clustering diagrams. There is very small amount of server code either in PHP (for WordPress) or JavaScript (for Node.js) that implements a triplestore and some other basic storage-related functionality, but almost all the code is in the front end and runs in the browser. That means you don’t need as big a server to run the application, although you need a modern web browser on modern hardware.
NarraFirma was a year-long labor of love by my wife and me,. It was based on her Creative-Commons-licensed 700 page textbook called “Working With Stories in Your Community or Organization”. We hope the NarraFirma WordPress plugin increases demand for my wife’s consulting services as an investment. But even if it doesn’t, it was nice to feel we helped make the web and the world a better place as with some other free software projects we’ve written together over the years. We wrote our “Garden With Insight” Garden Simulator together in the mid 1990s and made a soul-searching choice to released it under the GPL on the web in 1997 (along with its extensive help documentation about the science of gardening) instead of trying to sell it. We then spent years digging out from debt we incurred while writing it. 🙂 We used to tell ourselves: “At least we got the web in return, so it was still a good deal…” 🙂 The return to us and the world on the NarraFirma WordPress plugin is still to be seen, but that is the way the “message in a bottle” gift economy works. 🙂 Michel Valdrighi threw a GPL “b2 cafelog” message in a bottle onto the web, and then Matt Mullenweg found it and threw it back onto the web with additions, and Mike Little found it, and so on and so on. Now look what has happened as a result, with the growth of the terrific WordPress community that makes the web a much better place to be. Thanks Michel! Thanks Matt! Thanks Mike! And thanks as well to everyone else who has contributed to making the WordPress community the wonderful place it is.