Happy Sunday! While nothing much has been going on except work-work-work, I felt like writing a brief update as a way to exercise the new blogging system.
How's the Website Building Going?
I've made a LOT of little changes to the Srigarten Knowledge Management Platform, which is this website + its publishing tools. I don't know if that will be the real name, but I've been using it regularly for a few weeks now to take notes. Creating a new entry is very fast since it all happens on my local computer. For example, I can now do the following
> garten new journal 0320-temp.md
and a new page is created in the journal
directory, and is automatically opened in my editor of choice (Visual Studio Code). I can then preview it by visiting localhost:8080
on my browser and preview how it looks everytime I save, with the page automatically reloading on-save.
When everything looks ready to push, I type this:
> garten deploy
and the rsync
command is used to copy the entire site up to my webserver on Opalstack. Afterwards I can save my revisions using git
.
I would say that this new workflow feels 20 times faster than doing this in Wordpress, and is free from the distractions that Wordpress will often impose related to security warnings and plugin update notices. It's fast enough to use as a regular notepad while I'm working on other things.
The remaining hurdle is image support comparable to what I have on Wordpress. Since 2004 my Wordpress site at davidseah.com
has used a custom image plugin called LazyImageLayout (LZIL) so I could manage a directory of images AND generate cached versions that could be displays inline to the text in a way similar to a newspaper. Wordpress later added their own image support but it kind of sucked so I kept LZIL updated. It's awful code, written by copying/pasting fragments of PHP code from terrible examples I found on the internet. So I'm looking forward to using Eleventy's Image plugin, which seems to already offer the caching stuff and I can write the layout manager in Javascript. It should be pretty straightforward when I get some time to myself.
A separate issue is handling all the extra communications stuff like RSS feeds, sitemaps and canonical links. I have the first two working, but the last. The challenge is that I'd like to work on an entry in any one of the main categories, but be able to MOVE it to another category while maintaining a canonical link that does NOT change at the same time. I will have to make an enhanced version of the current "build system" to do this, so that will have to wait. This was already planned for the knowledge synthesis part of the system I'm designing, but in the meantime I have to avoid using crosslinks within articles because they are unreliable.
Other Project Stuff
I've been utterly hammered by my freelance project, implementing a visual script editing system from the ground-up. It's built upon another built-from-scratch system, a general purpose scripting engine for authoring realtime simulations across multiple web browsers. Looking back I'm amazed I could write something like this at all, but there is so much to do. I'm not that familiar with standard GUI development in web browsers---previously, I used Actionscript and before that C# and Macromedia Director---so it's been a process of mapping existing knowlege to their closest equivalents. While I'm familiar enough with how the web technologies work, I lack the idiomatic patterns used to implement common things like layout management in React, capturing and routing events, and even what built-in form elements / events exist. So it's been slow going as I have to look everything up and build my own reference materials.
I'm looking forward to taking a long sabbatical in the summer, when this project will presumably be finished. I'm really burned out and need a change, though I'm pretty happy with all the progress I've made over the years with the Javascript ecosystem. I know enough now to be more "intuitively expressive" with it, and that always feels good.
That's It for Now!
Not a super-exciting update, but it is nice to see that the system is working as expected! I did catch a couple of bugs in the page generator (bad date, wrong date order) but I could EASILY fox it without leaving the writing environment, as it is also the programming environment!!! SO COOL!