Future-proof your skills with Linux, Python, vim & git as I share with you the most timeless and love-worthy tools in tech through my two great projects that work great together.

1 Text-file Journal For Life as Important as Formal Education

I'm a 52-year-old technology generalist who has been exploring the noosphere, the world of ideas and creativity. I've been building up my internal tools, such as Linux, Python, vim and git, to create potential. I'm now combining YAML and Markdown to create a 1-text-file journaling system that is more flexible and intuitive than other solutions. I'm exploring the power of text, and how it can be transformed and used to create something meaningful.

My Journey to Master Text-file Journaling for Life-Long Learning

By Michael Levin

Monday, May 1, 2023

I want to live in the noosphere. There’s something about doing things first in life that’s appealing. I should have been a scientist, but because of the old bully stereotypes of the eighties, I shied away from the more nerdy pursuits. I went for engineering. Yeah, much less nerdy. But Calc 102 & Physics 101 defeated me (a real crime) and I ended up a graphic designer… for a short while. All the subjectivity of graphic design drove me nuts and I gravitated towards the more objective world of web development and data mastering.

So here I am. 52 years old, and quite good at jockeying round data. I’ve more or less given up on web development because of the awful state of JavaScript frameworks and NodeJS, namely the constant churn & burn of your skills and know-how. The Web never really settled on fundamental tools or best practices, but there is hope. That hope is htmx and things like it, and I will venture back into it in good time as my projects demand it and the necessity to invest in immanently obsolete skills is reduced.

You’d think that the hunger to be part of first-time ideas and inventions would be at odds with the dislike of churn & burn, but it’s not. The tools are your eyes, ears, arms, legs, and brain. They’re not the hardware you can’t change. Or at least your lower-level tools are. Higher-level tools like language and the ability to read and write (literacy) are later-stage tools that get programmed into you, but might as well be hardware. Everything else gets built upon it, and swapping out early-stage low-level tools is tantamount to trying to swap out arms, legs, eyes, ears and brain.

With your nature-given hardware and the low-level tools programmed into you as a result of the circumstances of your birth (parents, society, etc.), you can work on the higher-level tools. Waking, talking, interaction with your environment and others like you. Math. With the tool of language now built-in, the power to make observations, draw conclusions, test hypothesis, incorporate in new learnings, modify beliefs, lather, rinse, repeat. Layer upon layer, the tools stack up until you’re a human being experiencing life.

Peoples’ experiences vary from each other, as do the precise nature and details of the tools they’ve built themselves up from. Many disordered people have wrong-tools or missing-tools or misaligned-tools built-in at those low-levels. It’s not quite as easy as a plug-and-play transplant to fix stuff because of the interrelatedness of it all. Nonetheless, we’re all built up this way, and it is our starting point at any given moment when looking out at the world and thinking “what next?” What to do? What to do? What to do?

If you’re in the fortunate situation of having been built up with advantageous tool-layers, in that they are functional and work the way you expect and intend most of the time, you can look for new things. Many don’t. Many look for the same old things because it suits their comfort level. They were taught fear at a young age and the primary programming is fear-avoidance. Defer every pleasure and experience at your disposal today for the assurance you’ll wake up safe and sound tomorrow morning and into your old age. Pshaw!

Fear is the mind-killer, and all that. Frank Herbert, the author of Dune, does some really awesome channeling. If you have recurring images in your mind that don’t seem to necessarily relate to your life in obvious ways, your subconscious is trying to tell you something exactly as with dreams, but intruding over that strange subconscious to consciousness boundary into your waking life. I’ve got 4 powerful metaphors that drive me at that level every day:

Makes sense, right? Perfect daily routine application of the 80/20-rule. You’d think I’d be further ahead by 52 years old abiding by this, huh? Well, maybe I am. Maybe I’ve avoided the experiential trappings of excessive financial success too early in life. But you can do more with savings and money in your pocket than without, right? Well, will a billionaire learn vim?

I have arguably better internalized tools in me, of the sort that really make me happy and in a perpetually “ready position” in life, than a billionaire. Sure, they have better numbers in some piece of software to look at which triggers the neurotransmitters they find so pleasurable, but I can sit down at almost any machine on earth and take control of it, given a terminal connection of the sort that almost every programmable machine on earth has.

I did not develop this ability out of a “having made it” feeling or attitude. I developed it out of the attitude of the tribe’s hunter who has to continue feeding their tribe given the unpredictability of the hunt, the seasons, and the very changing nature of the world. I looked around at all the potential game out there, the ease and difficulty of making sustenance out of it, and decided that the most reliable game was text. All text. Any text. All tech runs on text. All tech is text. Mastery of text is mastery of tech.

And so here I am a sort of modern hunter in the digital landscape, and new critters are popping up. Those critters are AIs, and the ones that are popular in the public’s mind at least, are the text-based ones. They are the ones that generate text. I mean of course visual always plays in too, because it’s another type of language that’s always running in parallel to the symbolic spoken one, and that’s Dall-E and Midjourney. And art has always nagged at me as the other language I should be developing more. Drawing, painting and general illustration skills.

So in addition to may daily metaphors from most-broken to rabbithole-awareness, the need to visually communicate and manifest pictures from thought has been a strong image. On that note, I should really be jumping on Midjourney and things like it. And I will. It’s just I’m perhaps not up to the picture part of the equation yet.

But I will be soon. Because every other one of those subconscious nagging images are… well, images. Foremost among them is the cutting of catapult ropes. My investing internally into myself over the years with Linux, Python, vim & git have created potential. There’s almost like an internal pressure inside of me now forcing its way out to being expressed, because my body detects I actually have the ability to do so now.

Cutting catapult ropes would be a good description of what I did when I altered my 1-long-page journaling system that only really used markdown and simulated the existence of data-fields by inferring stuff about the first and second headline, which had to be a date and title respectively, into explicit data-fields according to the YAML standard.

Markdown is a markup language. It’s a minimal markup language, thus the “down” of markdown. But YAML is not a markup language. Wanna know what YAML stands for? YAML is not a markup language.

There have been things like it before that have mixed data and markup, namely XML. But XML was so overweight and burdened by its difficult to type and difficult to read HTML-like pointy brackets, along with its strange parsing model that requires it abides by these very stringent rules of well-formedness (proper nesting) and self-terminating elements, and the parsers being highly opinionated, incompatible with each other, and mostly written in C and only installable at the OS-level… ugh, flashbacks!

YAML is a breath of fresh air. It’s a data serialization language that’s actually readable by humans. It’s a superset of JSON, which is another data serialization language that’s actually readable by humans that taught us there’s a better way than XML. Better, but not good enough. Those pointy-bracket are tough to read and type, right? Well are curly braces really any better? If the data structure is just implied through natural looking hyphens as bullet-points, indents as groups and dashes as separators, then why introduce all that pointy/curly-bracket noise?

The area of the noosphere I’m exploring is connecting some dots so that I can organize information with more flexibility, deliberateness and creativity than I’ve ever been able to put into it before. Content management systems (CMS) like from the olden days like Documentum, Interwoven, and Vignette were all way too complex, straight out of the world of XML and worse, SGML. The modern web replacements such as Joomla, Drupal, Django, and Wordpress are all too web-tech and implementation specific. They’re hardwired to the strong opinions of their creators, and the concept of just generically and artistically transforming the data from out of those systems for other uses, such as alternative publishing presentation layers, which while possible especially for site-migration between systems, was not a first-class citizen of the system.

And so we have YAML, a better markup language for this sort of thing, right? No, YAML is not a markup language! It just follows so many of the simplifying principles of one, especially in today’s massive uptake of markdown, that it’s irresistible to think of it that way. So irresistible headline fact that maybe YAML should be seamlessly intertwined with markdown in such a way that each offers its own strengths for what they do best, and together they do stuff better than anything else.

And indeed, this combination has taken the world by storm in the form of static site generators (SSGs). The most popular of these is Jekyll, which is the default SSG for GitHub Pages. But there are many others. And many of them use the same basic YAML front matter. There’s also TOML, which is another that’s also less syntax heavy than JSON, but more syntax-heavy than YAML in how TOML strives to eliminate ambiguity. Leave out syntax and you rely on “conventions”. YAML requires you just knowing these conventions while TOML tries to make them explicit. But Jekyll chose YAML, and so do I in the spirit of leaning into the sweet-spot strengths of your tools, in precisely the same way I’m choosing Jekyll over the faster and Python-native static site generator called Hugo.

Jekyll, YAML, Hugo, TOML… you’d think this was just another barrage of imminently obsolete alphabet soup that’s just going to be replaced by the next thing. But I don’t think so. These are simple text-techs. They’re easy to read and most importantly, easy to transform. Start out with Jekyll/YAML and switch to Hugo/TOML? No problem. It’s almost a 1-to-1 mapping.

So what’s new in the noosphere if all this is solved problems? Having it all in 1 file! Jekyll uses YAML front-matter over potentially thousands of files, spread across potentially hundreds of folders, and you’re back into the same old incomprehensible conundrum of the old CMS days. Text files spread across creation are no better than locked up in a database. Alternative transforms to knit it all together into a user experience aren’t obvious and intuitive. But put all your content in one text file and just alternate between markdown and YAML, and you’ve got something. Something new.

Well, technically not new. There must be other solutions out there. I couldn’t be the first to think of this. The “now moment” is not a precise thing. In the now, I happen to have brought this realization to reality perhaps better than other folks. I’ve toyed with such systems on and off for years, but now the tools really are providing those sweet-spots to lean into.

Once I was enjoying the benefits of markdown on a literal daily basis through switching my already existing 1-file-for-life journaling system to markdown and started using parsed headline fields at the top of daily entries as data-fields and discovered YAML, it clicked. I was already mixing YAML and text files this way with Jekyll front matter. It makes sense. It works. It reduces the friction of all that XML/JSON stuff and it uses conventions that are getting adopted across all static site generators. It only made sense to put it all in 1 file and use the same conventions for the same data-fields across all files. Thus, YAMLchop was born.

Ideas are struggling and competing with each other and the circumstances of your life to penetrate into your psyche and perchance be noticed, and perchance be paid attention to, and perchance to be captured, and perchance to be expressed, acted upon and actualized, realized, or otherwise made a more meaningful part of our existence.

Billion dollar ideas rain down on our heads every day. All of us. It’s the proverbial mana from the sky. But we’re too busy to notice. We’re too wrapped up in the inspiration-blocking mechanics of the daily grind.

Journaling is a good start. Journaling at least makes you notice this eventually, and over time maybe come to make more deliberate decisions. But journaling is an undisciplined and unstructured endeavor for most, especially if you’re starting out with the blank page of a text file. And so proprietary journaling tools are chosen which lock-up your very thoughts on platforms destined to go away. Reset! Reset, reset, reset! It’s a never-ending cycle that’s desired by those who are thinking deliberately and have decided it’s better that the masses not, least they lose their tenuous grip on power.

So the best thing you can do for yourself, up there with “general” education, and arguably even much better, is to journal into a plain text file, superimposing some lightweight, sensible and intuitive structure with YAML and markdown. And then, when you’re ready, you can transform that into something else. Publish it as a site the way I’m doing. Use it like memory. Or let a large language model learn from it for whatever purpose you can imagine.