Cultish Manners has launched

I was going to create a third post on my NaNoMango Project, following up on Part One and Part Two. But then things happened and I didn’t post much here for a while. Since then, I’ve decided to start publishing what I have of the project.

Cultish Manners is a one-shot that may become a longer series if people enjoy it and I have time. In this story, Tess, a baby Goth, goes to a darkwave show with her friend Aideen, a seasoned Goth, and she learns more than she bargained for. It’s set in a world that owes a lot to that of The Cosmic Beholder1 and can be presumed to be the same universe until I decide otherwise. Indeed, Tess was initially Beholder’s Jung-La until I decided that that was not the kind of foil that Aideen needed. The character Aideen is on loan from James Damaged, Cyberkitten01 on DeviantArt. Beware: Cyberkitten’s work is considerably more erotic and explicit than mine.

At the time of writing, there are six live pages on the site and I’m working on more. As with all my other comics, it will appear on an irregular schedule until done, though there is sort of a pipeline of pages that are at least partly done. I created Cultish Manners for NaNoMango in October 2018 and resumed work on it in May of this year.

The webdesign is an attempt at creating a super-minimalist webcomic template for Comicfury that works well on phones. Here it is on iPhone 6:

Test page on iOS, iPhone
Screenshot of the site in development, with a placeholder image, as it looked on iOS.
Screenshot of the website with a real comic image on iOS
Screenshot of the Cultish Manners website on iPhone 6, this time with a real comic image.
Bottom half of the front page of the Cultish Manners website on iOS, with a long text comment. This was taken at the same time as the screenshot with the placeholder image, when the site was still in development.
Screenshot of the bottom half of the front page of the Cultish Manners website on iOS, with a long text comment and a user comment. This was taken at the same time as the screenshot with the placeholder image, when the site was still in development.

What it lacks in visual pizazz, it makes up for in speed and compatibility. Indeed, it’s so fast that while I was working on it, whenever there was a change to the HTML code that had no visible impact, I could not tell if I had reloaded the page or not. Some small issues are still unsolved (see the user comment? The “Post a Comment” link under that is not aligned correctly) and I will eventually want a graphical header if I can spare the kilobytes – I am trying to keep the full load of each page under 300 kB.

For visually impaired readers, there are transcripts available that are hidden from computer screens but that a screen reader should be able to pick up. Let me know if this does not work. This is reflected in the way the page is displayed in Lynx:

Screenshot of the Cultish Manners comic in Lynx
Screenshot of the Cultish Manners comic in Lynx, showing the transcript, because Lynx ignores both CSS and images

Screenshot of Cultish Manners in Lynx
Continued: this is how the end of the transcript and the Author Notes look

Screenshot of the Cultish Manners comic in Lynx
Continued. No lay-out issues with the bottom of the comments section here!

Consistency in the design was helped by the use of the Vanilla CSS stylesheet which sets reasonable defaults for all major web browsers.



Link goes to The Beholder’s DeviantArt page. I like his Blogspot but today I’m in no mood to link to Google-owned properties.

When good habits aren’t

Back in October of last year, when I decided to do Inktober, I changed my schedule around so that I would have time first thing in the morning to draw: after shower, breakfast, walking the dogs and all the other necessary tasks of the morning, I would set aside at least half an hour before heading to work. That way, regardless of how much overtime I would run up, or what kind of busy situation I would return to afterwards (2018 was that kind of year), the goal of one drawing per day would be feasible. Or at least, because working in pen and ink means that sometimes you have to leave a drawing along to wait for ink to dry, there would be something ready at the end of that morning session that I would be able to finish very quickly.

This strategy was based on a combination of tips that I would often read from successful artists on social media: give yourself half an hour instead of always trying to carve out a four-hour block of time, find a time slot where you’re unlikely to be interrupted, work daily, challenge yourself with a difficult but achievable goal, get up early to do it, simple and done is better than highly advanced and stuck in your head, don’t wait for inspiration to strike. You can find advice like that from pro artists all over the place, whether you ask for it or not. It was also, on the terms of the Inktober challenge, very effective for me. I got 30 out of 31 drawings done, including two where because the prompt didn’t do much for me, I quickly made the choice to draw a different topic instead. I missed one day because I was a bit under the weather, cheated a little bit on one day by digitally fixing up an older drawing that was on-topic for that day’s prompt, and the final day of the challenge, I made the conscious decision to call it quits, then later drew something anyway. And in the evenings, I still had time, just about, to train for the 4 Mijl van Groningen once a week.

So far, so good. I was proud to have finally developed a habit that I could stick to, and continued working through November and December on a slightly modified version of the same schedule, using different challenges: NaNoManGo in November and Fatvent Calendar 1in December2. But over time, sticking to that early-morning half hour became harder and the productivity effect faded. I did not have a succesful NaNoManGo and the Fatvent Calendar thing sizzled after just a week. Worse, I started to feel increasingly frustrated and stressed, and my physical condition and sense of well-being declined. What did I miss?

Well, the first part of it was that I am simply not a morning person. For every half hour that I get up earlier, I gain maybe 15 minutes of usable time, and that ratio gets worse the earlier I get up. That list of tasks I need to do before I could start on the half-hour time slot? easily adds up to 90 minutes, so to start drawing at 8, I have to set my alarm to 6:30, and there is no way I can even get to bed in time to get eight hours of sleep. Also, I especially hate getting up before dawn, or doing real work before dawn, so by the time Daylight Savings Time ended during the third weekend in October, I had a real problem. In hindsight, it was at that point during Inktober that I started to struggle.

In addition, I mentioned training for the 4 Mijl during October, but in reality, that was only two Thursday evenings in the first half of the month, sustaining momentum built up in the months before. After that, regular running was over. And because I had also sacrificed bicycling to work in order to carve out the time slot (saving 20 minutes each morning by taking the train), I was not getting the exercise I needed. Even though I was only aiming for half an hour to an hour, the measures I took to ensure I had that time were harming me physically and mentally. And that was before they stopped working altogether. The annual ebb and flow of work meant that my hours would lengthen, but early in 2019, as the company was reorganizing, meetings were out of control and the expected ebb didn’t happen, they didn’t shrink back again. We had our vacation in Spain where, it turned out, trying to be productive while traveling had its own problems, and by March and April I was suffering chronic stress and had to seek professional help.

Only after I sought professional help, the situation at work became more regular and predictable again, and by the time I got to speak to someone about my stress problems, things were already getting better by themselves. I dodged a bullet there, but I have had to rethink whether my new good habits were really all that great.

For now, the reasons I’m doing better seem to be:

  1. I recognised I had a chronic stress problem that I couldn’t solve on my own;
  2. The days were getting longer again so getting up early became less of an ordeal. At the moment, I wake up before the alarm because there’s sunlight and a dawn chorus. I still don’t get enough sleep, though;
  3. I recognised that other things than art practice were more vital to my health and well-being; instead of having comics or drawing as the non-negotiable thing that I have to practice, I now ride my bicycle to work five days a week again, and make myself available for more running events. After two months, I am definitely feeling much better even though I exhaust myself every day. I have more stamina and am more emotionally regulated. I am sad that art and comics cannot give me these things, but that’s how it is. 3
  4. I am a little kinder to myself: I let myself arrive at work later because that is both allowed and more compatible with my circadian rhythms; I have given up on daily art challenges for the time being, and I’m embracing the fact that my mind will always flit between projects. The worst thing that can happen if I add another project is that instead of, say, six projects that will progress at a glacial pace, I will have seven. Whereas if I don’t add it, it will sit at the back of my mind, in a holding pattern, and the six projects will still progress at a glacial pace but I will also be frustrated that I cannot get started on the seventh one.
  5. I take naps, because I’m not 20 anymore.
  6. Bicycling is so much fun! I had my road bike fixed and I now zoom zoom zoom through some of my childhood stomping grounds in search of longer routes to ride.

So I’m not out of the cult of the hustle yet; I’m just applying it differently, in more conventional ways. Sadly, the side effect of prioritizing physical activity over art means less art from me. But I will have a longer and healthier life to produce art in, I guess?

As I type this, a commercial social network with very clever algorithms is showing me Science tells us rest is vital. So why do we glorify sleep deprivation in our careers?, a post on the Dropbox blog making some of the same points. It makes for good further reading and suggests that the fact I’m still racking up sleep debt is a problem I will need to focus on some more.



Fatvent Calendar is not an official, participatory event, but I did not know that at the time.


I am now working on comics started for NaNoManGo and will soon resume posting work from art challenges on the blog and Patreon.


Also, per extra hour spent, I am getting much better results from exercise than from art. I progress faster and the rate of progress improves.

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 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