2023 Projects

I’m constantly dreaming up new ideas for side gigs and hobby projects. Anyone who read my posts before April 2021 knows that all too well. Lately, as my current job has begun to wind down and my relationship seems to be nearing a plateau, my brain has decided to kick back into high gear on this front. So here are some of the things I’m thinking about with my spare mental cycles. Some of them I’ll get to eventually. Some I’m already planning out. A few will likely never see the light of day.

Borealic

I haven’t done much with conlangs in the past couple of years. A few months back, I had another aborted start on an "engineered" language, this one based on a ternary number system. (The idea was to make something philosophical but also easily representable without words. I’m weird.)

Now, I’m doing serious work on what is my first real attempt at an auxiliary language. There are plenty of auxlangs already out there, of course: Esperanto, Lojban, and so on. Mine is slightly different, however. Instead of drawing on Latin as the primary source of vocabulary—or being some sort of amalgam of the world’s major languages—I’m developing a conlang intended as a pan-Germanic interlingua.

The core vocabulary is derived from actual Proto-Germanic roots, most of which are shared by at least two of the six major Germanic languages spoken today. Those are English, German, Dutch, Danish, Norwegian, and Swedish, for those of you keeping score at home. Icelandic, Frisian, and the other "minor" Germanic tongues also get their due, mostly as additional confirmation of a meaning that has drifted over the past 2500 years or so. (Gothic has been extinct basically forever, so I exclude it from consideration.)

In terms of grammar, "Borealic" (the external name; it calls itself "Altidisk") mostly follows the general pattern of West Germanic and North Germanic languages. Where these differ, I look for common ground, and I try going back to a common ancestor for inspiration. The basic word order, for example, is V2: verbs always try to fill the second slot in a sentence if possible. That’s a common theme throughout the Germanic world. So is a two-way tense distinction between past and non-past, with the future tense instead being indicated by an auxiliary verb.

My goal isn’t necessarily to create a conlang for everybody to use. No, this one is explicitly intended for purposes best described as nationalistic. Borealic is for the Germanic peoples of the world. It’s a way to connect with our shared culture, a culture that is increasingly under attack these days.

Borealic is what I’m working on as I write this post, so it’s the one I’ll probably be sharing soonest.

Word games

I still want to be a game developer, and I’m still working towards that goal. I have two concepts I’ve been fleshing out in my head, and I’m getting ready to start making something more concrete out of them.

First is "Fourwords". At its core, this is going to be a simple little fill-in word puzzle. Instead of a crossword, however, you get a chain of four different words. The last letter of one word is the first letter of the next, and all the words in a chain are connected by a theme which the player will see while working the puzzle. You get points based on the length of each word (they aren’t fixed, but are variable between 4-12 letters) and the perceived difficulty of the chain: more generic categories are considered harder, as are those for very specific niches.

I envision Fourwords as a mobile-first game. In other words (no pun intended), there will be sets of puzzles that unlock as the player progresses. I’ll have plenty of gamification elements thrown in there, and—as much as I hate it—probably some kind of builtin ad or IAP support. I’ll build it using the new 4.x version of the Godot Engine, which will be my first real foray into its new features. I imagine also needing a server to store player data and all that. Lucky for me, my "real" job requires me to learn AWS.

The second word game is much simpler, yet also much more complex. This one doesn’t have a name yet, and it’s little more than a Wordle clone at heart. It’s a Mastermind-like game using words of five or six letters; I haven’t decided which would work best. You have a secret word, and you have to try to guess what it is. If you’re right, you win! If you’re wrong, you get to see which letters are correct, and which ones are in the wrong places. Scoring is based on how many guesses you make and how long it takes you to get to the right word.

Since there are only so many words in the English language, this one necessarily has a well-defined endpoint. But I figure I can add in a timed mode with randomization to keep things a little fresh. Beyond that, the format doesn’t have much else going for it.

But here’s the kicker. This one isn’t going to come out on mobile. It’s not going to be on desktop, either. No, I want to make this game for a console. And not just any console, but a retro one. I must be getting crazy in my old age, because I am seriously considering making a game for the NES. That means 6502 assembly, low-res tile graphics, music that is more code than notes, and all those arcane incantations that game devs used to do. It’ll be a monumental undertaking, but what if I can pull it off?

Adventure

I’ve started writing again in recent weeks. Time is short, but I’ve been able to find an hour here and there to get back to On the Stellar Sea. Those poor kids have had to stay on that planet too long!

Writing on Orphans of the Stars has made me want to go back to the project I had originally imagined would accompany it. This one is almost another game dev project, but of a different sort. The Anitra Incident is technically a prequel to the novel series, but it’s one I plan to write as interactive fiction. In other words, you are the protagonist. The setting is about 200 years in the future, when humanity’s lunar and Mars colonies are up and running, and we now turn our eyes outward. A strange Main Belt asteroid catches our eye, and a manned mission is sent to explore it. What they—you—find will shock everyone.

That’s the gist of it. It’s kind of a CYOA game, kind of an exercise in descriptive writing, and hopefully a lot of fun. And the books have already referenced this particular era of the setting’s history, so part of me feels I have to write it. I’ll need to relearn Sugarcube, I suppose. Graphics should be a lot easier now, thanks to Stable Diffusion. I may even be able to do character portraits, something I never imagined I would be capable of. (That’s no joke. I’ve had great success generating portraits of some of the Innocence kids, and they make good writing references.)

Never enough

There are plenty of other things my brain has decided to focus on. Pixeme, my community-based language learning web platform idea, is starting to take shape. Concerto is another one I want to play around with some more; it’s a microkernel OS written in Nim, a language I’ve found that I really enjoy. Another one I just named yesterday is Stave: the goal with this one is to create a long-term stable virtual machine. As in really long term. I want to make a VM that will stand the test of time.

But I’ll get to that later. Right now, there’s so much to do, and nowhere near enough time to do it all.

Summer Reading List 2023

Here we go again. Sorry for being a little late on the post this year, but real life is increasingly becoming a factor. Once again, it’s time for my favorite annual tradition, the Summer Reading List challenge. I’m hoping to complete it for the 8th year in a row, and I’ll eventually get anyone else join in.

The rules haven’t changed from the beginning. They’re so unchanged, in fact, that I’m just going to copy them verbatim from last year’s post. The only added wrinkle for me is that I’m also doing my “Read 12 Great Books in 2023” challenge, so I’ll limit myself to only counting one of those for the Summer Reading List.

Really, they aren’t rules, but more like guidelines. This isn’t a competition. It’s a challenge. What’s important is that you’re honest with yourself.

  1. The goal is to read 3 new books between Memorial Day (May 29) and Labor Day (September 4) in the US, the traditional “unofficial” bounds of summer. (For those of you in the Southern Hemisphere reading this, it’s a winter reading list. If you’re in the tropics…I don’t know what to tell you.)
  2. A book is anything non-periodical, so no comics, graphic novels, or manga. Anything else works. If you’re not sure, just use common sense. Audiobooks are acceptable, but only if they’re books, not something like a podcast.
  3. One of the books should be of a genre you don’t normally read. For example, I’m big on fantasy and sci-fi, so I might read a romance, or a thriller, or something like that. Nonfiction, by the way, also works as a “new” genre, unless you do read it all the time.
  4. You can’t count books you wrote, because they obviously wouldn’t be new to you. (Yes, this rule exists solely to keep me from just rereading my books.)

As always, I’ll search for something new (at least to me!) and share it with you when I’ve finished reading it. I’ll post it over on the fediverse (mikey@freespeechextremist.com is my main account there for the time being) and in more depth here at PPC, but feel free to discuss your own reading adventures wherever you like.

Have fun, and keep reading!

Novel Month: End of an era

I’m not doing Nanowrimo this year. It pains me to say that, because it’s been a staple of November for over a quarter of my life. It was always something I looked forward to, something I eagerly anticipated before it happened, enjoyed while it was going on, and prided myself on completing. Not to mention the fact that my writing pushes resulted in some of my best work. Nocturne came out of Nanowrimo, for example.

This time around, I just can’t. When I wrapped up last year, I was in a very dark place. I couldn’t imagine taking the time to write another novel. Now that the time is upon us, I don’t have the time to take! My schedule is packed now. A full-time job, a full-time relationship, the imminent election and inevitable fallout, and the usual holiday rush have all conspired to make 50,000 words in a month impossible for me.

Even if I did want to try, though, so many of my books are incomplete that I feel starting something from scratch would do them a disservice. The fifth Orphans of the Stars novel still needs about 6 chapters. Otherworld #22 isn’t quite halfway done. I’ve left Endless Forms to languish for almost two years at this point, only a few chapters into its fourth book. I’d rather finish those first, and then work on Hidden Hills #3, Gateway #2, the Modern Minds shorts, or the Occupation Trilogy.

Yes, I still have a ton of ideas for stories, and a few of those are really great. It’s just the wrong time for them, unfortunately. It sucks, but…well, I won this thing ten years in a row. How many other authors can say that?

A little cleaning

For the first time in a long time, I’ve done some redecorating around PPC. You probably won’t notice many of the changes, but they’re there. Trust me.

First off, I now have an HTTPS version of the site. The “experts” say that every site on the web absolutely, positively must have an SSL certificate. I firmly disagree. I’d say that about 80% of sites have no use for it whatsoever. Yes, the increased security is a great thing. Encryption, especially encryption that is free from government and corporate backdoors, is a good thing. That said, the majority of sites out there neither have nor collect sensitive information, so…what’s the point? If you’re not logging in, if there isn’t even a form anywhere on the page, then why bother with the network and CPU overhead of HTTPS? It serves no purpose.

But Brave gets mad if you don’t have it, and the last good version of Waterfox is increasingly marginalized by larger sites. For those two reasons, I’ve had to do it. Yay for the future. Ugh.

And while we’re on the subject of dystopian futures (I promise this isn’t another rant against vaccine mandates), I’ve updated the version of WordPress that runs PPC. Okay, let me rephrase that. I updated PPC to use a better version of WordPress. It’s called ClassicPress, and it’s what WordPress should be.

See, I’ve used WP since this site’s inception in 2015, and I used it on the old potterpcs.net site starting all the way back in 2005. It’s not a bad platform, really. Problem is, the team behind it has completely given in to feature creep, as is so often the case in development.

The rot started a few years ago. When WordPress version 5.0 came out, it had a brand new editor: Gutenberg. This editor was to replace the “classic” one, a simple WYSIWYG or “rich” text box with a few formatting controls. Gutenberg is based around the concept of “blocks” as the basic page editing element, not something sane like, I don’t know, text.

Gutenberg was a buggy mess forced upon us, breaking not only workflows but any add-on designed to improve editing (like WP-Markdown, which I’m using here), and we users were told to suck it up and get used to it, because this is how things are going to be from now on. Oh, there’s a “Classic Editor” plugin, but it will be intentionally broken at the start of next year to prevent people from going back to the sensible method of editing text by editing text.

That annoyed me to no end, because it’s a theme I’ve seen repeated throughout the development world. Breaking things for no good reason and forcing your users to accept the brokenness as “the new way” is a time-honored tradition at this point. Look at Windows 10, Firefox 4, Firefox 24, Firefox 57, Firefox (Mobile) 71, Gnome 3, KDE 4, the entire concept of systemd…

I could go on, but I think you get the picture. Some people (and it’s usually designers, not the devs themselves) just can’t get it in their heads that we don’t like change for the sake of change. When something works, leave it alone. WordPress, like so many others, couldn’t do that. Never mind that they have a perfectly functioning editor, because all those “UX” people need something to do. So out came Gutenberg, in all its flawed glory.

I did my best to ignore it for 3 years. My hosting provider, Dreamhost, temporarily broke PPC in 2019, changing my “don’t touch this” setting to “automatically upgrade” without my approval. I had to contact support to rollback. Since then, I’ve stayed on version 4.9, the last without Gutenberg, and wondered what I’d do.

I’m also using WordPress for work, as the basis for a multi-tenant network. That project, since it’s for-profit, actually does need the latest and greatest. As it’s intended to be administered by people who don’t have my technical knowledge, it also has to be as idiot-proof as I can make it. Thus, I needed to find a way to allow only the most essential parts of Gutenberg, while also coding themes and plugins to take it into account.

While doing that earlier today, I found a reference to ClassicPress. Since I can’t do much work at the moment (long story), I read up on it and found that it is exactly what I’ve been looking for. Dreamhost might not offer it as a fancy prepackaged install, but who cares? This is WordPress as it used to be: a blog where you can get content onto the web as quickly as possible. No tracking down plugins to cut the bloat or digging through endless lists of blocks just to edit. Best of all, no breaking what’s already there.

Whether you can see it or not, then, PPC is no longer out of date. It’s running on the latest and greatest once again. That’s the beauty of open source software. If you screw it up badly enough, someone will care enough to fix your mistakes.

Summer Reading List Challenge 2021: Late start

In all the bustle of actually having a job, I completely lost track of time, and I forgot about the Summer Reading List Challenge!

Here are the rules again, for those curious:

  1. The goal is to read 3 books between the US holidays of Memorial Day (May 31) and Labor Day (September 6). Yes, that’s winter in the Southern Hemisphere. I can’t change that.

  2. A “book” is anything non-periodical, with very wide latitude. Comics, graphic novels, and manga are out. Just about anything else is in. And, thanks to the socializing I’ve gotten from having a job, I know to add something else to this: audiobooks count for the challenge if they would be considered books in written form.

  3. One of the books needs to be a genre outside your normal reading habits. Nonfiction, horror, whatever. Anything different, because one of the object of the challenge is to expand your reading horizons.

  4. Books you wrote don’t count. Even if you’re reading them for fun.

Now, because of my late start (which I can’t apologize enough for), you get a little extra time this year: the deadline is extended to September 17 if you haven’t already started something new since Memorial Day.

I’ll be posting my progress here and on the fediverse, where you can follow @mikey@mhp.singleuser.club. Have fun, have a great summer, and keep reading!

Writing updates for April 2021

I have updated The Big List to reflect a couple of minor progress notes. One, I’ve officially named Otherworld #19 as Forever Faithful. (I still don’t have a title for #20, and I have it on hold for numerous reasons. It’s looking more and more like Adventures in the Otherworld might not come out until 2023!)

Second, I’ve begun writing Pitch Shift, the fourth Endless Forms novel. How I’m going to juggle that and a job that can end up full-time, I have no idea, but never let it be said that I did things the easy way.

If you want something done right…

For my entire life, I have had to rely on others. And never have those others failed me more often than in our system of representative government. Whether in Chattanooga, Nashville, or Washington, the past two decades of adulthood have taught me that those who claim to rule in my name do not have my best interests at heart.

Like any good American, I’m ready to take matters into my own hands. Thus, it is with no small amount of trepidation that I say this:

I, Michael H. Potter, hereby declare my intent to seek the office of Representative for Tennessee’s 27th House District as an Independent in the 2022 General Election.

Democrats in this state’s offices are feckless, powerless. Republicans are willfully ignorant of the plight of the common Tennessean. I intend to stand for everyone in the 27th District, no matter their party affiliation (or lack thereof). No matter their race, sex, religion, ideology, or heritage.

If you live in Soddy-Daisy, I’ll represent you. If you live on Signal Mountain, I’ll represent you. Red Bank, Walden, Mowbray or Flat Top or Lookout Mountain, and anywhere in between: I’ll represent you. Because we are all Tennesseans. We are all Americans.


In the coming weeks, I will open my candidacy at MHP For Tennessee, and I will begin to grow my presence on alternative social media platforms that respect our rights as Americans.

For today, I would like to say that my platform is strictly defined by the Constitution of the United States and its associated amendments. To that end, my primary goals as your representative are as follows:

  • A statewide ban on all government-ordered mask and vaccine mandates related to COVID-19 or future minor pandemics, to be replaced by public education regarding infectious agents that is based on science rather than politics.

  • A requirement that any electronic voting machines used in Tennessee use open source software whose contents are available to the public, with independent security audits performed before and after any election.

  • A repeal of certain laws that disfavor local, in-state small businesses and cooperatives in favor of national or global corporations, such as the anti-municipal internet laws preventing all Tennesseans from benefiting from investment by local power companies.

  • The binding declaration of our great state as a sanctuary for the rights guaranteed by the First and Second Amendments, including freedom of speech, freedom of religion, the right to assemble peacefully, and the right to bear arms.

  • A focus on returning civics and critical thinking skills to our children’s education throughout the state, to combat the spread of harmful and anti-American doctrines such as Critical Race Theory.

  • The creation of public-private partnerships to emphasize skill-based training and hiring, thereby giving more Tennesseans entry or reentry into the workforce without the great expense of a college-level education in fields which have little need for it.

  • A continuous vigilance in pushing back against federal overreach, whether legislative or executive, by exercising our state’s powers of self-regulation under the Tenth Amendment.

HCW #2: Shot in the dark

Once again, I’ve posted an extended article over at Hardcore Worldbuilding, my Substack column. Or whatever you’re supposed to call them. The topic this time is guns. Specifically, I’m talking about guns and gunpowder weapons in fantasy. Considering how many stories I’ve written in that vein (Hidden Hills, some of the Otherworld episodes, the unfinished Shadows Before the Sun), it’s obvious where I stand on that argument.

Check it out, subscribe, and help me grow. Please. I’m begging you. I need validation!

Seriously, though, it’s one of my better articles, I think. On March 1, I’ll post #3, about the intersection of magic and education. From that point on, new posts will come on the 1st and 16th of each month. February’s short, so you got this one a day early.

Introducing Agena

I’ve been sick this past week. Sinus infections are always bad news, but this one has left me so out of sorts that I did something crazy. Okay, crazier than usual for me. Therefore, I give to you Agena.

What is it?

Agena is a server for the Gemini protocol, written in pure Python with no external dependencies. It supports static and dynamic routing, server-side scripting, virtual hosts, and wildcard SSL certificates while being light on resources and relatively easy to configure. It’s named after the Agena target vehicle, the unmanned rendezvous partner of the Gemini space missions, which was itself named after the star Agena, also known as Beta Centauri.

No, seriously, what is it?

Right. Let’s back up a step or two. First, Gemini. As you know, alt-tech is all the rage right now. If it isn’t where you live, it should be. Now that Google, Facebook, Twitter, and the other big players have shown themselves to be in opposition to basic human rights such as free speech and fair elections, while also exercising dictatorial control of their platforms by banning anyone whose ideology doesn’t perfectly align with that of the global elite, we need a change.

That change has already begun. Parler and Gab are two popular sites that have been attacked ruthlessly by Big Tech and the media for the crime of allowing free expression, while the superior alternative of the fediverse (note the link on this page) offers a truly decentralized option for social media.

But evading censorship isn’t the only reason to look at alt-tech. Some people like it because it’s new, because it’s a wide open space for experimentation, the way the internet was until it became overcommercialized in the last generation. (Wow. The internet has been around for generations now. I feel so old.)

Gemini, then, is one of a number of projects that aims to bring back some of the feel-good feel of old. Some of us still remember the glory days of Gopher, Usenet, and FTP sites, days when you didn’t need to download six megabytes of Javascript just to load a web page. Sure, those old platforms were limited, but that was by necessity; Gemini does it intentionally, replacing the HTTP protocol that underlies what we think of as the Web with a bare-bones alternative focused on content. There’s no CSS, client-side scripting, or even inline hyperlinks! In return, you get blazing speed and austere simplicity.

You get, in other words, something a decent programmer can write in a weekend.

The weekend project

Now, I’m not sure I’d be considered a decent programmer, but I did exactly that. To be fair, I needed a little longer, but that’s due to my own failings. I started on Wednesday, then slept. A lot. I haven’t been awake too much in the past few days, and most of my waking hours have been in the dead of night. The headaches and occasional dizziness make it hard to think straight sometimes.

Altogether, it took me about 8 hours of coding over 4 days to get a fully functional server. I could have finished it in a weekend, if I’d been physically capable. Sunday and Monday were for adding features: virtual hosts and server-side scripting, respectively.

No software project is ever complete. There are always bugs to be fixed, features to be added, and refactors to be, uh, refactored. Agena is no exception. I consider it beta quality (I’ve put it at version 0.4.2), and you probably shouldn’t use it for anything serious yet. That said, I’d like to keep working on it when I have the chance.

If you want to check it out, head to the Gitlab repo, where you can download a copy of the source, read the installation instructions, and all the usual Git goodness. It’s not often that I actually release something on the code side of things. It’s even rarer that it’s something I’m proud of.

But this is that time. I really feel a sense of accomplishment. Considering how down I’ve been the past few days, that’s saying something.

A new chance

Substack is all the rage right now, so I’ve decided to give it a shot. I’ll never stop posting my thoughts here at PPC, but I hope to use this as a way to get some of my “deeper” posts to a wider audience. I intend to post something there twice a month to start, assuming I can get my depression and anxiety under control. The content isn’t going to discuss any of that, though. This is all about writing and creating worlds.

So check out Hardcore Worldbuilding and subscribe. It’s free, because I’m a long way off from making it a paid deal. And tell your friends…but only if they like rambling. I’m good at that.

css.php