Hyper Cyber
Table of Contents
Pay no attention to the man behind the curtain. I'm an artist who struggles to create beauty. A writer who struggles to tell stories. Just a cat, alone in a big scary world.
This is a somewhat disjoint collection of notes that are slowly converging on digital culture as a motif. It started as the mirror of a wiki, but has since become the home of new philosophy and research notes. In turn, some of the writing here grew wings and found more fertile ground elsewhere. Progress continues.
1. Writing
This is a wiki about writing, wikis and the web. It's all very meta. It's also very personal. There may be some bad takes in here. Some bad analogies, too. Proceed at your own risk.
Anyway, writing. It's been called mankind's greatest invention. It's one of the simplest things one can do with a computer, yet one of the most important. As a programmer, you really have to get this part right. Really.
The Unix operating system was written with the ed text editor, you know.
1.1. Note-taking
I wish school had taught me how to take notes properly instead of making me hate the very idea. It would have come in handy later in life.
Then again note-taking is hard to teach, because the trick isn't how to do it but what to write down. And a rule of thumb that helped me a lot is: write down what matters to you, not a generic synopsis. Those belong in textbooks.
But notetaking isn't just a memory aid. It's a meditative practice and a creative outlet; a tool for thought and a kind of poetry. Even a place to let rough ideas take shape before you commit to them.
1.1.1. Outlining
When it comes to writing fiction, outlining is a trap. That said, it works well for things like note-taking and world-building. It's also useful for planning a work of non-fiction, but if your outline doesn't change completely in the process, you're doing it wrong.
1.2. Stories
Story doesn't just mean "fairy tale". Stories are what we tell ourselves and each other to make sense of the world and answer important questions like:
- who we are;
- how the world works;
- what truly matters in our lives.
One thing writing taught me is that non-fiction tells a story too. It made me a better writer.
1.2.1. Journaling
I've been blogging since 2006, sometimes two-three times a week for years at a stretch. I recommend keeping a journal instead.
A journal is more relaxed and personal. It's about letting people know what you've been doing, when you feel ready to share. There's no pressure, and no need to be profound. Just more thoughtful than when rattling off quips on a microblog.
It did take me me a couple of years to be happy with my journaling setup:
- First there's my monthly journal that I accrue in Zim Wiki before posting it to my website; it's the only one I keep in English.
- Then an activity journal in JourNote (my own app!) with weekly entries where I write a couple of lines each day to remember what I've been doing.
- Last but not least, the personal journal I keep on paper: daily entries about life, weather, home and stuff like that.
Highly recommended.
1.3. Philosophy reference
What is philosophy, exactly? Wiktionary offers several definitions, among which: a comprehensive system of belief; a general principle; an academic discipline that seeks truth through reasoning rather than empiricism.
This last one is more useful than it sounds: turns out, a lot of useful truths are abstract, so you can't apply empiricism to them.
Mostly I'm interested in figuring out why we do certain things but not others, and why we do those things in certain ways but not others. That seems to fall under philosophy of mind, but I prefer to call it being self-aware and doing things with purpose.
1.3.1. Language
Lately I've been thinking more about the autistic tendency to put parentheses in parentheses (because every statement is qualified (that's a good thing!) and multi-layered) which strikes me as very appropriate for the internet age. We struggle to express ourselves using linear language in a meandering medium with breadth and depth. At least #hashtags have become the accepted way to add meta-textual nuance like mood or context. Scheme programmers should feel right at home.
More recently, :emoji notation: is an increasingly popular alternative. But what happened to using fake HTML tags? <thinking/>
1.4. Advice
Don't listen to advice about writing. Most of it is bad. In particular:
- outline if you like, but don't feel obligated;
- rewrite if you like, but don't feel obligated;
- write as long or short as the story demands.
That said, in my experience it's easier to add than to cut; if in doubt write sketchily and flesh it out later.
2. Wikis
Back in 1995, a wiki was a specific kind of web app, but nowadays the term denotes a broad range of documents. That's a good thing. What we do matters more than details of implementation. If an org file is used as a personal wiki, then it is one. In fact many apps are wiki-like at the very least.
2.1. What is a wiki? links lists
It's hard to say, because opinions vary; Bouncepaw has a good overview of recent discussions. Let's just say that originally, a wiki was a kind of CMS that worked differently from others, in a few key ways:
- There's a big button labeled "edit" on every page, right in the front-end; there's no separate "management interface" or other bureaucracy.
- To link between pages one simply marks up the words, usually in double square brackets; there's no need for special expertise, or a complicated GUI.
- Links can be added even before a page exists, and following the link to a non-existent page invites the user to create it right away.
Speaking of which, by default all users can edit any page, even each other's profiles; any errors are discussed and fixed ("it's easier to ask forgiveness than to ask permission"). Page history and diffs help.
Nowadays the practice has changed. Wikis aren't as open as they used to be, as a general rule. Many are personal, and/or don't even use a wiki engine anymore. But the spirit of immediacy and simplicity has changed how we work with knowledge online.
2.2. Engines apps
Choice of engine matters. This wiki started out as a Gemini capsule, went through a PmWiki phase (twice), then became a TiddlyWiki instance, and now it's an org file.
This happens because each engine encourages a certain style and structure, shaping the text entrusted to it.
2.2.1. PmWiki
I started with PmWiki in 2007, used it until 2017, then tore it all down.
I tried going back later, more than once. Made several skins for it. They're still good and useful. But my last two setups barely saw any use, and in the end I took them down again.
Can't help but notice how this side of 2020 PmWiki is described as a CMS. It's not the only wiki engine to go that way. Wonder if that's really helping. But yeah. Nothing beats the ease of making themes for this one. No wonder it's the top feature advertised on the home page.
2.2.2. TiddlyWiki quine
TiddlyWiki seemed like sci-fi when it first came out, over ten years ago as of this writing: a whole wiki in a single web page, that you can save straight from the browser and copy around freely. Back then I still trusted in standards, and the web's future. Everyone did; things inspired confidence at the time.
Not anymore, hence this alternative. But I'm enjoying it while it lasts.
2.2.3. WabiSabi reference
From Wikipedia, the free encyclopedia:
In traditional Japanese aesthetics, wabi-sabi (侘寂) is a world view centered on the acceptance of transience and imperfection. The aesthetic is sometimes described as one of appreciating beauty that is "imperfect, impermanent, and incomplete" in nature.
See also: wabi tek sabi.
I named my first wiki engine after this concept, because programmers are quick to appropriate East Asian philosophy; it's kind of a tradition in our field. (In fact, "wiki" is also appropriated, from a whole other culture in the same region.) In my defense, it felt right at the time.
The irony is how my second engine, made 10 years later, is called BrutalWiki instead. Pretty much the polar opposite, despite having started from the same codebase. Or is it?
Either way, the original is long gone. A descendant named WabiSabi960 was still online as of 2022 at wabisabi.cg.net.ru, but hadn't been updated in literally ten years, and was taken down since.
2.2.4. BrutalWiki lists
It took me ten years to make a second wiki engine, and what came out was a mirror universe version of WabiSabi:
- informed by modern European architecture instead of old Japanese aesthetics;
- backed by an in-memory database instead of many little text files;
- driven by a wiki syntax based on simple text substitutions instead of regular expressions.
About the only thing left is the secret-based authentication and overall architecture, though considerably cleaned up. Not just because I'm a better programmer now, either.
2.2.5. Oddmuse
Oddmuse is one of the few surviving wiki engines that are 1) written in Perl and 2) still maintained as of 2023. It's two decades old as of this writing, but was updated a few years ago to the HTML5 standard. Its creator is Alex Schroeder, who also uses it on his personal website.
Oddmuse has a tiny core, but ships with hundreds of plugins. It has built-in journaling support, which can be further extended. Since pages are rendered on save (and then cached), markup plugins can be changed without breaking anything, at least until the next edit.
Unusually, the only way to alter a wiki's appearance is via CSS. Even so, there used to be a large collection of stylesheets.
2.2.6. Feather Wiki quine
Some things really are as good as they sound. At under 64KB in size, Feather Wiki belongs to the new generation of Markdown-based wiki engines, which can be useful for migrating data from other sources. It's also explicitly inspired by TiddlyWiki. Good uses:
- online books
- making a link directory
- website mirroring
Feather Wiki also has rich text editing, which solves a longstanding accessibility issue, and pages can be arranged in an outline.
2.3. People
The internet links people together, not computers.
2.3.1. Alex Schroeder links
Alex Schroeder is the creator of Oddmuse and a philosopher of the wiki community. His long-running blog holds many thoughts about this and other topics.
2.3.2. Bouncepaw links
As of 2022, Bouncepaw is one of the few people trying to keep wikis alive as a community and movement, not just web apps. He develops a personal engine meant for a digital garden.
2.3.3. Robbie Antenesse links
When it comes to wikis, few people are starting from scratch nowadays. As the creator of Feather Wiki and enthusiastic promoter of similar technologies, Robbie Antenesse is an exception well worth mentioning.
2.4. Personal
The first wiki was a community, and for a long time the two concepts appeared inextricable. Then people saw that wikis were good, and started using such on their personal websites. Early on these privately-run wikis were still open, but then spam became unbearable, so most of them were locked down, becoming essentially single-user. From there to their evolution into digital gardens there was only one step.
For me, the turning point was likely the release of TiddlyWiki, which can't even be edited online out of the box, but only when opened as a file from disk (server-side setups exist). As Bouncepaw points out, that can be a problem, because how do you edit your wiki on the go then? But as it turns out, I don't do that very often at all, and then there are ways.
Editing a wiki is still a very solitary activity when not even your friends want the editor password.
2.5. Notes lists
- People not used to wikis (even techies) get spooked by WikiWords and flag them as typos. Use free links.
- The Don't Repeat Yourself principle, a.k.a. DRY, sounds great… until your original source poofs. Redundancy is resilient.
- I once wrote that a wiki without the community is just an overly technical CMS. Even so, nothing can match the immediacy of a wiki. It matters.
- My first wiki engine was called WabiSabi. My second is named Brutal. What a difference ten years make.
- I love reading what wiki theorists wrote back when Wikipedia was new. But to someone from the distant future of 2021 it sounds hopelessly naive. They claimed to be writing a grand unified theory of online communities informed by their new, beloved medium, but in fact only described a brief moment in time.
- That said, they were right about one thing: an "everything wiki" doesn't work. It must have a focus, or mission. But it can be hard to articulate well.
3. Web
The web is eating the world. It has subsumed most other facets of the internet, to the point that young people no longer realize e-mail or chat exist outside the browser. It's everything to everyone, and then some. One ring to rule them all.
The web is huge. Each part of my personal website has a link directory of its own, on top of the big one with everything else in it. I'm not alone in this, either. We all need to do it just to keep track of stuff somewhat, and it's still overwhelming. But we can! That's what links are for. That's how the web works, by design.
The web is made by all of us together. The very first web browser had an integrated editor as a matter of fact. By the time it stopped being a thing, we already had Geocities and the first wiki. Then blogging software became a thing. Now it's easier than ever. Sure enough, many people do it. Yet often it seems there's only a handful of enthusiasts preaching to the choir.
3.1. HTML
HTML is a programming language. There, I said it.
It's a programming language because it lets people tell the computer to do cool stuff. In this case, show all kinds of things on screen. That's not much, you say? So what. It's fun. Meaningful. Often even useful.
So, you can't use HTML to perform computation. Big deal. It's been a long time since computers were all, or even mainly, about computation. Deal with it.
3.1.1. HTML5
I once described HTML5 as an admission by manufacturers that major browsers never truly implemented the previous 4.0 standard. That's a bad thing; as a friend pointed out, web standards are now dictated by Google, and we're even worse off (in this regard) than two decades ago before Firefox came out. But at least we're more honest now about how the web actually works in practice.
Besides, you can use it for example to add graphics right into a web page via SVG.
3.2. SVG
I like vector graphics because you can tell the computer, "here's a blue box, there's a red circle and on top of them it says 'geometry' in big letters". I prefer this way of thinking about art; it's not just splotches of color.
I like SVG because you can turn an image description into code much the same way you'd write a web page (in fact it's also a web standard).
Even better, with modern browsers you can embed SVG in HTML, thus making text and art equals on the web.
3.3. Link directory links
The age of big, impersonal directories has passed, but web curation is more important than ever. The big search engines have betrayed people. There's a new generation, but it will need time to catch up. And it's not easy to make a search engine.
A link directory can be as simple as one web page divided into sections. In fact an awesome list or blogroll is little more than that. Yet they hold the web together. And nobody needs permission to make their own.
3.3.1. Awesome list links
Formally, an awesome list is no different from a simple, one-page link directory. But since the first one a few years ago, they've become a cultural phenomenon, if an exclusionary one: they require having a GitHub account and being comfortable with pull requests.
Besides, it's right there in the name: these lists are meant to be awesome. It's not just community curation, but a certain way of doing it.
3.4. Digital garden links
Digital gardens are the modern term for what old-timers like me would call a personal wiki. There are many definitions. Some of them might even be correct. What matters is that the concept can prove surprisingly useful even when not applied directly as such.
For example: knowledge wants to be used, grown and connected. Add links to your pages. Then add stories to the links, so you don't forget what the point was.
See also: On Blogs and Digital Gardens.
3.5. Sitelets links
Courtesy of Robbie Antenesse, I learned a new word. Sitelets are apparently those little websites with maybe a dozen pages that we need more of. The kind I made SlenderSite for. His own solution is called siteleteer: yet another wiki engine that runs in the browser. Except this one is different: it's fully handcrafted with no dependencies, so you can press Ctrl-U and see how it all works on the inside, data and code alike. Suddenly it's no longer magic, but simply some clever JavaScript. Just like the web used to be when we old farts learned our craft.
3.6. Internet
The internet is more than the capital-W Web:
- it's MUDs and the Gopher protocol;
- it's IRC and Jabber;
- it's good old e-mail too.
The internet is a meta-medium. The sci-fi dream we didn't know we wanted. It's been designed to withstand anything, and paradoxically that made it a target.
4. Cybertext
Meatball Wiki has a lot to say about cybertext, but it's really simple.
Wikis are cybertext. So are text adventures. Anything that requires following links or otherwise making choices to keep reading, as opposed to simply pressing the spacebar. But to me this definition is iffy. For one thing, that doesn't require a computer. Gamebooks, anyone? Conversely, there are kinds of text that only make sense on a computer and/or get fundamentally shaped by the medium, even if they're not interactive. For example org files.
In other words, my definition is closer to that of electronic literature.
4.1. Plain text links
Plain text is the universal medium. That's both good and bad.
Good, because it can in principle express anything: prose, code, even art. It can be worked with universal tools, that don't need to know what it means, where it comes from or where it will go from there.
Bad, because structure is in the eye of the beholder, and text files have limited means of expressing what they're supposed to be. And computers hate ambiguity.
4.2. Markup
Marking up text has been a thing since way before computers. Think underlining a passage, or drawing a vertical line down the side. But in the digital realm it gained new dimensions, for at least two reasons:
- It has to be in-band, because plain text has no concept of drawing lines or whatever.
- A computer can act on markup, and render it as a link or spoiler, requiring interaction.
Nowadays the word "markup" has become almost synonymous with things like org files and Markdown, as opposed to HTML.
4.2.1. Markdown reference
Markdown is one of those technologies that succeeded despite massive technical problems. It's infamously ambiguous, hard to parse correctly (or at all), arguably overhyped…
And nobody cares, because it's the most readable and human-friendly out there. That was the point. But it does put a burden on those who have to create and/or integrate implementations.
Markdown has been standardized in 2014, with little success.
4.3. Outline
I don't like outlines. They enforce hierarchy and promote linearity. Any outline is by definition prescriptive, wanting to impose a predetermined view on the world.
And yet… directories work.
4.3.1. Org file
By itself, an org file is just plain text using a lightweight markup language. But load it into an outliner like Orgzly and it becomes alive, with folding sections, tags, checkboxes and reminders.
Org files were born in the Emacs text editor, but they have genuine qualities outside of it. The Orgdown spec tries to popularize other uses.
4.4. WikiWords
4.6. Links
Wikis exposed a problem with the web. Namely, that not all links are created equal. There are at least two types: internal links, that point to pages within the same application and can be easily checked for validity; and external links, pointing to an arbitrary address online that you can't vouch for in any way. The internal kind can be further divided into regular links, which point to other pages, and tags or categories, that set up an ontology.
Here's where things get interesting: the earliest wikis distinguished between internal (using WikiWords) and external links. As later engines moved to free links, something was lost. MediaWiki still does it right. Ironically, so do those that use Markdown, out of necessity.
Note how any modern wiki engine displays external links differently even if it uses a unified syntax otherwise. That's basically an admission that the distinction matters.
4.6.1. Wiki links
The very first wiki used WikiWords to create links. That made a lot of people angry and has been widely regarded as a bad move. Modern wikis almost all use the double-square-bracket format instead; it's now almost as well-known as hashtags.
Either way, wiki links aren't just easier to write than in HTML. They also refer to another page by name rather than asking people to think about addresses and protocols.
On the minus side, each wiki engine has its own way to turn a page name into an address. TiddlyWiki keeps the page name intact, complete with letter case, so text has to be carefully planned. At the opposite extreme, PmWiki munges links in a clever way, which lets many different phrasings refer to the same page.
4.7. Code
Code is mathematics brought to life. It must still communicate information to people, but also has a measure of concreteness: does it run? Does it produce anything like the expected output? This matters: the adage that if your code wasn't tested then it's broken holds true in my experience.
That said, what makes code tricky and the importance of notation ought to be explained a lot better to laypeople.
5. Software
Code is law. That's a bad thing. We need better checks and balances.
Besides, not all apps are created equal. Each imposes its unique style and structure on the text you put in. So it's worth choosing them consciously.
5.1. Wiki-like apps
While wikis as a medium aren't as popular as they once were (or rather, they have faded into the background), the concept has also become entrenched in digital culture, and many apps borrow from it. The highly popular Zim for example styles itself as a desktop wiki, but it could also be said to be an outliner, or note-taking app. Domino, while being closer to a mind-mapping app, was explicitly inspired by TiddlyWiki, and preserves many of the same qualities. Other note-taking apps, often based on Markdown, allow for links between notes. See below.
5.1.1. Zim
Available from zim-wiki.org, this is a popular note-taking app that works like a cross between a wiki engine (except on the desktop) and an outliner. It also exports to the web, thus could be considered a static site generator as well. It keeps data in readable plain text files (also supported by other apps) and has rich text editing, a rare feature in its class.
Zim lacks important markup such as block quotes, but supports indented paragraphs. It's arguably most useful when you already have a folder full of little text files and want to handle them more easily than with a file manager plus text editor.
5.1.2. Domino quine
It might seem odd to call Domino (from kool.tools) a wiki; in fact it looks and works more like a mind mapper. But it was explicitly inspired by TiddlyWiki and works in much the same way, allowing people to quickly take short notes and organize them; it's a good example of the strange new directions the concept can go when not bound to the old ways.
5.2. Content management system
"Content management system" sounds so pompous, but it's just a web app that lets people work on a website right from the browser, without access to the server or knowledge of how to make and upload pages. At least that's the theory; in practice, laypeople still won't touch them, while those who are willing to get technical can just as easily learn HTML and CSS. In fact they used to do it for fun in the Geocities era, and lately it's becoming a thing again.
Use of a CMS puts a burden of performance and security on the server, but there are advantages as well: automation of repetitive tasks like ordering and tagging blog posts, or the ability to post updates from anywhere, for example with a mobile device.
Wikis were the original CMS. The more conventional kind, exemplified by WordPress, peaked roughly between 2005 and 2015, and is now suffering a backlash.
5.2.1. WordPress
As of 2022, WordPress has been the world's most popular blogging platform for well over ten years, with a huge chunk of the market share. That's a bad thing.
5.3. Outliner apps
An outliner promises to help navigate the inherent bureaucracy of outlines. For example, this document was created in Orgzly, on an Android tablet. But after the nth time frantically folding and unfolding sections, trying to locate a particular one, that promise starts to ring hollow.
Outliners work with outlines, that's just it. They are tools of the system.
5.4. Text editor
Text editors are the universal computer software. That's both good and bad.
Good, because plain text is as simple as it gets. No moving parts. Only what you put there, no more and no less. Forever accessible.
Bad, because the text editor is a jack of all trades, but a master of none. Mastery matters. Also text files have no structure except what we attribute to them. And often it's not clear what the intent was.
5.4.1. Emacs
Emacs is the elder god of text editors, and the original home of the org file format. It's huge, slow, clunky, decades old and showing its age badly. It's also absurdly powerful, exerting a massive gravitational pull on all others by sheer power of example. No other editor can escape comparison with Emacs.
5.5. Programming
People mistakenly assume that programming is the activity of writing code. A lot of misunderstandings and bad blood result from this.
6. Journal
There's a tension between the timely and the atemporal online. Wikis want to be the latter, but end up needing the former. Then there's the implicit timeliness of recent changes versus an explicit act of journaling. In the end, you always need both.
6.1.
- Fleshed out the preface somewhat; removed note about hosting.
- Updated the section on PmWiki, mainly to add explicit dates.
- Removed or updated a bunch of broken old links.
6.2.
Added sections about programming and code. Pretty much just stubs now, but one has to start somewhere.
Fleshed out introductory text too, and the section on journaling.
6.3.
This entry is antedated because I have little better to do on the last day of 2025.
As hinted at in the preface, over the holidays I picked up Emacs and Org Mode to maintain this document. It should make things much easier going forward. Other changes include proper timestamps on journal entries, and weeding out more legacy text that didn't fit in.
6.4.
I bit the bullet and deleted almost everything in the writing section. Now to fill it up again with stuff that can be linked with the rest.
6.5.
I changed the title of this file to something more specific, but mainly over the top (hopefully in a good way). Suddenly its point is a lot more clear, even though the mission statement hasn't changed.
In other news, I started adding links using the custom ID support recently implemented in Orgzly. Much better.
6.6.
It's been a while since the last update. As of two days ago, this document no longer shares a name with the original wiki. I also deleted some old writing that now lives elsewhere, to make room for something more on-topic. Still not sure which way to go from here, but it's a start.
6.7.
(This entry is backdated by a week because I forgot.)
I finally got rid of the Writing -> Thoughts section. It contained a couple of bad takes, only kept around as filler, and for lack of better ideas. They now live in my private notes again, until there will be some context for them at least. There's plenty of good writing here now, so that's hardly a loss.
6.8.
Two days ago, I finally made a clean break between this document and the wiki it's based on. The two will continue to share content where it makes sense, while otherwise going their own separate ways.