Site is back up!

Thanks to the efforts of my friend Branko, the whole 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 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 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. 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; 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.”
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.

Inktober 2018, Day 29: Double

Day 29:

Digital drawing of Countess Alcydia von Dönnerwetter trying to intmidate her double, Prudi the scullery maid.
Digital drawing of Countess Alcydia von Dönnerwetter trying to intmidate her double, Prudi the scullery maid.

What I wrote about this at the time:

A tribute to Greg Storm and Daniel Østvold’s story “The Double” in which the Countess Alcydia von Dönnerwetter discovers a scullery maid who can pass for her. Of course, she want to use this discovery to become Witch Queen instead of the Witch Queen.
Read it on the Chronicles of the Witch Queen site!
Indian ink on illustration board, with digital fixes in Sketchbook on iPad Pro; I’m figuring out how to do more of the ‘hidden’ steps in my process – import/export, levels adjustment, scaling, cropping, rotation, on the iPad as well, which will help me a lot in the future.