Comic The Lives of X!Gloop updates!

The Lives of X!Gloop, my oldest comic, is updating this week! There were updates on June 1 and 2 while I was away, and there’ll be one later today and on Thursday. I started drawing this in 1989, making this the comic’s thirtieth anniversary – the exact day will be September 13.

I plan to update a lot more frequently this month and there will be a brand new webcomic starting on June 8. I’m tired of keeping projects on hold.

I have too many projects, so I started some more projects

Over the past few weeks, updating Obsession Du Jour and the Patreon has more or less fallen by the wayside as I found myself too busy with my day job and other activities to spend an hour at a time on writing text. While occasionally something like an illness happens that prevents me from working on my projects, my main problem is that I have too many different things going on for the amount of time that I have after work. So naturally the sane approach to solving this problem would be to look at my existing problems and cull them remorselessly, right?

I guess it would be but that’s not what I’m doing. My mind has been very restless lately and I keep finding new projects to start, and while I don’t actually have time for them, I’m also fed up with delaying things because I’m already blocked with other stuff. So I’m just letting the new projects come to me as they want. Most of them are a bit geeky and so they scratch an itch that working on a webcomic cannot; but there are also webcomic projects in the queue.

The first thing that I’m doing is actually a continuation of an existing project. About a year and a half ago, I got my old iBook that I bought in 2005 back from my parents, who had used it for a while but had left it sitting in a cabinet for a few years at that time. I wanted to do something with it, and decided to make it a study machine that I could put a free OS on so I could brush up on my Linux/UNIX skills. I used to use Linux as a daily driver, but it’s been a while since and it had started to bother me that I had forgotten so much. To upgrade a 12-year-old laptop, I ordered a 1 GB memory stick from America, which I installed immediately when it arrived, and a SSD drive, which is still waiting to be installed because apparently that is a procedure that can take multiple hours and a bit of skill. I don’t trust myself to do that.
I quickly learned that Linux on PPC has dwindling support, though several distributions still offer it, there is still development work being done on porting Linux apps to PPC systems and there’s a lively community on Facebook, spun off from the Low End Mac group: Linux on PowerPC Macs. I also learned that it was very easy to fill up my hard drive with dependencies I don’t need, and that there was a lot of PPC-specific effort involved for me for little practical benefit, including turning the machine on in the first place! So it went on the back burner. But I still want to maintain and improve my Unix-ish skills.

So a few weeks ago, Ubuntu 19.4 came out and I wanted to try it, but I didn’t want to go back to the iBook. Instead, I decided to look into virtual machines. I installed Virtualbox on my MacBook and built a virtual machine with Ubuntu 19.4. It was easy – and boring! But while I was tinkering with virtual machines, I also decided to build one with OpenBSD.
This is what Ubuntu 19.4 looks like in my Virtualbox:

Screenshot of Ubuntu 19.4 in Virtualbox on macOS High Sierra
Screenshot of a (nearly) fresh install of Ubuntu 19.4 in Virtualbox on macOS High Sierra

My impression was that (unlike what runs on the iBook), this would be immediately useful if my current laptop died and I needed a production system quickly – it ships with LibreOffice and there’s a faux App Store that will help you get your other software running quickly. It is pleasing to the eye in a bland, corporate way and… it just doesn’t float my boat. Whereas when you boot up the OpenBSD system that is installed as standard, and log in, you get this:

Screenshot of OpenBSD 6.5, after login, in Virtualbox on macOS High Sierra
Screenshot of a (nearly) fresh install of OpenBSD 6.5, after login, in Virtualbox on macOS High Sierra

Now that takes me back. I’ve worked on Unix systems on and off since 1994, and this looks like some of the earliest Unix systems I’ve ever worked with. It is not at all pleasing to the eye, but it’s ugly in a way that inspires me much more than the ready-to-go working environment that Ubuntu 19.4 offers. This is not a system I can use. But it’s a system I can learn, while setting it up manually the way I like it. So that’s what I’m going to do: follow some instructions to configure it in a way that meets my needs, make it practical but pretty and also different enough from my existing systems that it’s interesting to use. Then I take what I’ve learned and apply it to the iBook. My plan for that system is to create a keyboard-driven system for distraction-free writing and coding (more on coding later).

None of this is intended as a slight against Linux in general or Ubuntu 19.4 in particular. I’m really glad that it exists and that if I do have a catastrophic breakdown of my existing computer systems, I have something available to get back on my feet quickly.

Like I said, I don’t actually have time for this project and I’m doing it by snagging 15 minutes here and there, whenever they’re available. For the past two weeks, I’ve done no work on it and I’m in danger of forgetting not just what I learned, but also where I found it. I’m using the following resources:

As if this wasn’t enough of a time sink, I’ve started some other geeky projects at the same time: I am trying to learn more about Jekyll and I’ve started learning/using Emacs Org Mode. My reasons for studying these things are closely related: I want to stop using a CMS for my webcomics and deploy them in the form of static pages instead. The CMS I’m using, WillowCMS, is great, but it’s had some issues relating to updates in the language it’s written in, PHP, lately, and it’s a one-person project that isn’t being updated much because the one person has her own things going on. In addition, like all CMSes, it has multiple attack vectors for hacks and spam. Finally, I barely use most of the features it offers, including some that I asked for. I have stopped caring much about comments and started caring much more about speed and safety. I think static pages can offer that speed and safety, but I don’t want to go back to hand-coding every webcomic page individually like I did in 2000. So I need a system that can spit them out based on information I input. Jekyll is one option and while talking about it, I got in touch with a webcartoonist from Belgium, Yncke, who had created a webcomic template and page generator for Jekyll for themself and has been very helpful in adapting it to something that can meet my needs as well.

Emacs Org (or Org-mode) was suggested to me by Matthew Graybosch and others as a way to manage workflows and create templates as well, which may be used to generate HTML pages directly or fed to Jekyll for further processing. It also offers a simple Markdown-like markup language plus to-do lists, time tracking and other things I can use while working on projects. I am interested in using it also because it’s another thing that I want to relearn. 20 years ago, I was reasonably proficient at using Emacs, but I’ve forgotten most of it. Integrating it into my work process will help me bring some of those lost skills, and more, back. Of the three geeky side-projects, this is actually progressing best: I’ve been using Org for my to-do lists and am in fact writing this blog post in it, as well as a new White House in Orbit story.

As far as structured learning is concerned, I’m still in the beginners’ tutorial, but thanks to the greater discoverability that Aquamacs allows, I’ve been able to try a few things outside the tutorial structure as well and those have already been useful. There is also a tutorial for making Org and Jekyll work together, though that is not the only way to do it: multiple plugins exist.

In the longer term, I would like to learn a programming language, probably Ruby, but that’s not currently an active project at all. I have too many!

Site is back up!

Thanks to the efforts of my friend Branko, the whole rocr.net site including the backend is back up. I haven’t tried to upload any new content, because there isn’t any for me to upload, but it seems to be working just fine at first glance. I’ll look for flaws and work to future proof things a bit next.

I still want to learn Jekyll because I have a few side-projects going that I’m not currently self-hosting, and I want to bring those to my website but not necessarily within WillowCMS.But it’s less urgent now.

Learning Jekyll

I’ve been trying to teach myself how to use Jekyll to see if it can help me set up static websites that aren’t dependent on a CMS with a database. My needs have changed and for the state of my webcomic site today, WillowCMS is very over-engineered. For example, I no longer allow comments on the website; the website updates sporadically and most of the features that WillowCMS supports have never been used. Some of those features are now obsolete because they’re API calls to external services that no longer exist. Even though Willow works pretty fast, it still has considerable overhead and maintenance needs that are no longer worth it for me. So I’m looking at alternatives.
For the past year, my thinking about what to do with the website is that the images should be larger and everything else should be smaller, in terms of both screen real estate and file size. The new placeholder page has a minimalist HTML template with a very simple style sheet, no javascript, no external embeds and no logo images. As it happens, the placeholder does not have a comic image either, but that won’t be the case for a full webcomic site, obviously. The total code for the HTML+CSS is about 4 KB in decimal KBs. Because it is not served through a scripting language and a database, it gets rendered almost instantaneously. I want that for the website as a whole: rendering so fast that on a good internet connection, it is almost like an eBook, and on a satellite connection in some rural backwater in the United States, it’s still pretty tolerable and doesn’t use up limited data. So, since authoring 1300 static pages by hand is a bit of a drag, I’m looking at static site generators, and Jekyll seems to fit the bill.

Problem is, the learning process is not going well. Part of it is my own impatience: I did about half of the basic tutorial on the Jekyll website before I started thinking about what I needed specifically to run a webcomic site through it, which is not a default use case and wasn’t really addressed in the rest of the tutorial when I skimmed through it. Webcomics have needs such as scheduled incremental updates (less of a problem for me today) and the ability to process a large number of very similar image files into separate web pages quickly. The tutorial is light on info on how to work with images and the use cases that Jekyll showcases aren’t very like a webcomics site. So I googled and found some plugins and themes that would be able to handle the webcomics use case.

The first I looked at was the Jekyll webcomics plugin from Nompute. The webpage for that showed the code and an explanation of what it does, and had a statement at the end that inspired confidence:

There’s probably a more efficient way to do this, but the code works well enough for a couple hundred comic pages.

I thought “a couple hundred comic pages will do quite nicely”. I had already decided that my test project would be only ten pages long, but it would be nice to know that an archive the size of Rogues of Clwyd-Rhan would be within the plugin’s capabilities. I’m learning that the Jekyll community puts a high value on speed of output generation. Personally, that is nowhere near as important to me as the speed at which the static pages can be served to readers, but I might change my mind if I had to generate a site over and over again.

Unfortunately, the first build of my test site using this plugin failed with the error jekyll 3.8.5 | Error: no implicit conversion of nil into String and I entirely lack the skill to follow up on that*, beyond a Google search that left me none the wiser.
Another problem was that while there is program logic included, it does not come with the layout files or instructions on how to use the variables. Probably not a problem if you already know Jekyll well, but for me as a beginner, I need a little more to work with.
After some deliberation, I abandoned this plugin and went to the second option I’d found, the Webcomic Jekyll Theme from Peahatlanding.

Eh. I don’t even remember what went wrong when I tried to run it locally, but it didn’t seem to do much. Because the instruction for this theme relied heavily on GitHub, I tried to run it on my own GitHub account with GitHub pages, but files did not appear to be generated even when the instructions said they would. As there were apparently technical difficulties behind the scene (site updates not working at all, according to emails from GitHub with the recommendation to try again later), I decided that I was not going to spend any more time on that one either. GitHub isn’t any easier to use than the local shell if you’ve never used GitHub for anything before.

OK, so a common theme is that when I abandoned the tutorial for whatever shiny trinket I’d found on the web, I was clearly trying to run before I could walk. I simply lack the expertise to tackle problems as they occur. But I do think the complexity and the sheer number of dependencies aren’t helping. Jekyll relies on Liquid templating, which relies on Ruby which runs in the command line or inside GitHub. It consists of a large number of small program files and plugins, any of which could be a failure point. Compared to simply hardcoding dozens of very similar pages in an editor, there’s a trade-off: less tedious, repetitive and error-prone work, a greater risk of the whole thing falling apart intractably.

I have one more plugin I want to try for my test project. It was given to me personally by Yncke of Yncke.be who uses it for webcomics in multiple languages, and they kindly supplied layout templates as well. But I’ve decided to sit on it and go back to the tutorial for a bit, followed by an attempt at making a simple site. So my new project is expanding the ROCR.net placeholder (link may vanish once the site is back up fully) into a small emergency website with about pages and whatever I can salvage from the cast pages, before tackling a small webcomic project with actual webcomic pages. Then I will start looking at Yncke’s plugin again.

And indeed, it turns out that there are places where Jekyll simply breaks on my system. It took me about an hour of trial and error getting template code to show on character pages to determine that, on my MacBook Pro, Front Matter Defaults do nothing at all. I have to hand-code the front matter on every individual character page. Or, as I type this, I realize it may be a mistake on my part after all. But I’m trying to limit the time spent to a few hours a day and this time is already up, so I will revisit that tomorrow or whenever I have some time**.

*update: I have learned how to backtrace in Jekyll and that may help.
**update 2: It was an error on my part that I have now fixed. I was literally in the middle of a sentence that said “but having to hand-code that stuff is no big deal as I would need to put empty front matter on any page that has front matter defaults anyway”, when I realized that I had removed the front matter entirely after specifying the defaults. So I restored the defaults in _config.yml, edited the front matter in the affected pages and tried again, and lo, it worked. This is exactly why I write walls of text like this: so I can both track what I’ve learned and what I’m still struggling with, and go over my thought process once again so I can come up with solutions.

Rocr.net is dead, likely to remain so for a while.

My webhost upgraded to PHP 7 this week, and while I was warned, I was unable to meaningfully act on this warning, because I don’t know PHP and don’t have the time I need to learn enough PHP to fix things like this:

PHP 7.0 error message
PHP 7.0 error message

I lack the resources to deal with this myself and am dependent on a third party to help me with problems like this in their spare time, which is as scarce as mine. It may take a while before things are fixed. Please follow the comic on rocr.thecomicseries.com; it might update one day. Stranger things have happened.

The blog is on WordPress, so it will continue updating until WordPress becomes unusable for its original purpose of powering blogs, which given the rumors I read may be sooner rather than later.

This is my brain on the flu.

I’ve been working while sick in my day job and I didn’t realize until Saturday just how bad I a shape I was in. Even as I managed to hold it together day-job wise, I didn’t touch my drawing tools for a whole week because it was wake up, work, come home, zonk out. I also didn’t schedule any updates for this blog, which is why there’s no new post on my NaNoMango project out today or yesterday. Everything that wasn’t the day job just stopped dead. That didn’t stop my brain from doing this to me:
Me (literally on the toilet while at work):
Brain: “You know, the Betty’s Mad Dash skits from the rightly-forgotten British sketch comedy Glam Metal Detectives would make a good retro game”
Me: “Shut up, brain, I’m trying to take a shit and then I need to get back to work.”
Brain: “No really, here’s the game mechanics. [itemized list of actions and movements that can happen in the game.”
Brain. “We’ve been over this. I don’t have time. I can’t code for shit. I don’t even play games because I decided that they were an addictive thing that I need to avoid back when the earth was still cooling. SHUT. UP”.
Brain: “Can you at least pass this on to your friends in Signal? They’ll get a laugh out of it”.
Me: “Oh, all right then. Tell you what, I’ll do a cryptic post on my Mastodon account and then we’ll both forget this ever happened”.
Brain: “OK, sounds good. Hey, you should ask around what people use to draw sprites.”
Me: “BRAIN. NO.”
So I wrap up work, go home, eat and go to bed. I mention the idea a few times to my wife before bedtime but my brain has finally started to settle down. But I don’t sleep well and at 7 AM my brain comes knocking.
Brain: “Hey, you know the reason you can’t code is you’re too impatient to learn the syntax of a language and handle brackets and stuff. So, here’s the core game logic as a crude pseudocode of my own devising to get you started.”
Me: “AAAARGH LET ME SLEEP”
Luckily I got to spend much of Saturday in bed recuperating and my brain’s massively misplaced enthusiasm for an idea I cannot possibly turn into a reality in the time I have left in my life* is finally dying down. But this is what my brain does to me when I’m sick. It has no mercy whatsoever.

* I have no reason to presuppose that that won’t be another 40 years, though this weekend it sure felt like I was about to snuff it.

NaNoMango 2018, Part 2: The Beholderverse angle

I’m a big fan of The Cosmic Beholder and while I was working on this project, I was also preparing for a scene in Abúi’s Travels where Abúi and Adrienne interrupt Captain Evening’s team in the showers. Among others, I did character sketches of Jung-La:

Jung-La as she would appear, briefly, in Abúi's Travels, where no one wears clothes if I can help it.
Jung-La as she would appear, briefly, in Abúi’s Travels, where no one wears clothes if I can help it.

And Aideen:

Aideen, as she appears in Abúi's Travels, where no one wears clothes if I can help it
Aideen, as she appears in Abúi’s Travels, where no one wears clothes if I can help it

Aideen is the property of the artist known as Cyberkitten01 on DeviantArt, and as such is herself a borrowed character within the Beholderverse. Aideen is a small, loud and sweary Northern Irish girl who can transform into one of her ancestors, the warrior goddess Liath:

Liath, the warrior goddess
Liath, the warrior goddess

I thought it would be fun to write an adventure set in the Beholderverse, so I made Jung-La and Aideen the protagonists of my NaNoMango project. That didn’t work. When writing Jung-La’s dialog in particular, I found I needed the character to be more of an ingenue to balance out the brashness of Aideen and her magical transformation into a seven-foot warrior. So out went Jung-La and in came Tess:

Tess, the protagonist of 'Cultish Manners'
Tess, the protagonist of ‘Cultish Manners’

Tess is not familiar with the Goth scene in her city, so she can have things explained to her by Aideen as they move through the story. She can react to a crisis as if for the first time, while still stepping up to the plate, and she can be constantly surprised by both Aideen’s antics and her transformations. Perfect.

They are, of course, best buds. Tess’s emotional stability is what Aideen needs in her life:

Tess and Aideen on the couch at the end of an adventure
Tess and Aideen on the couch at the end of an adventure

NaNoMango 2018, Part 1: The Cult of XünÿX

After a successful Inktober with 30 out of 31 slots filled, NaNoMango turned out to be a lot harder going for me. There were multiple reasons for that: my day job picked up; shorter daylight meant I had more difficulty motivating myself late in the evening and early in the morning; there wasn’t as much of a support structure of other participants as during Inktober; and finally, drawing full comics pages is just that much harder than doing individual illustrations. I did get a few comics pages finished, but they’re out of order and I’m not willing to share them just yet. Instead, over the next handful of days, I will post some of the preliminary and character art that I did for this. The comics will have to wait until more of them are finished. The May edition of NaNoMango is just around the corner and that’s when I’ll be getting back to this project.

Frits from the Cult of XünÿX
Frits from the Cult of XünÿX

Yesterday’s Inktober drawing of the Goth band got my brain running. It also got some positive feedback, which got my brain running some more. I started imagining the band’s life behind the scenes, what their names would be and what they’d be like. I had already decided that they would take some of their background from the real Goth band Clan of Xymox, but without being based on them (Clan of Xymox seem to have a more consistent level of success and a stable lineup that includes the lead singer’s life partner and the lead singer himself has aged very gracefully). I already knew that this band, The Cult of XünÿX, had only two real members used hired rhythm sections from local punk bands and that this would be a source of friction. The band leader quickly got a name: meet Frits Zuniga, born and raised in the Dutch countryside, which he escaped as soon as he could. Frits is gay, in his late fifties and has a heroin addiction. But there’s more to him than that.

Zig, the drummer of the Cult of XünÿX
Zig, the drummer of the Cult of XünÿX. For now.

Zig is the hired drummer for a series of gigs in the unnamed area that the story is set in. It could be New York! It could be somewhere else! One dirty secret of the Cult of XünÿX is that the two main guys are somewhat unreliable as musicians. Zig and her boyfriend/bassist Tag have fifteen years’ worth of experience playing in local punk bands, and while they’re not subtle players, they are tight as nails. So there’s a source of conflict there, because the better musicians are not the ones who get to make the decisions.

Frits realises that people can see the creature shadowing him
Frits realises that people can see the creature shadowing him

Before doing whole pages, but after creating the first pages of script, I drew some separate panels as individual drawings to get a feel for how I wanted the art to look. Here’s Frits realizing that other people can see the beast on his back.

Tomorrow we’ll look at the audience for the Cult of XünÿX gig!

Inktober 2018, Day 31: The Trybe of Kürzwÿl

Last one for Inktober. The next challenge I took part in was NaNoMango, but that wasn’t a successful project. I made only a few finished comics pages and I’m not ready to post even those. However, I will post a selection of character and other preliminary and supporting artwork I made during the month.

Day 31:

The Trybe of Kürzwÿl, a 1980s Goth band that just keeps on trucking.
The Trybe of Kürzwÿl, a 1980s Goth band that just keeps on trucking.

What I wrote about this at the time:

No prompt followed.
I had a work in progress that followed the ‘Slice’ prompt but it wasn’t going well and I was ready to call time on my Inktober project. But then I got bored during a meeting and this Darkwave band turned up. The Trybe of Kürzwÿl are one of the most venerable in the genre, dating back to the mid-1980s when they were simply known as Kürzwÿl. These days they’re down to two original members and whenever they tour, they hire their rhythm sections from local punk bands. This has considerably improved the quality of their playing even though working relations can be strained.
Originally done in ballpoint on lined paper. I re-inked it digitally to clean it up while trying to preserve the energy of the original doodle.

It turns out I liked the idea of this band, with Tag and Zig from two earlier entries as the rhythm section, a lot and so they played a part in the NaNoMango project as well.