42

Another year, another birthday I didn’t expect to see.

The number 42 is important for nerds like me. Douglas Adams immortalized it in his The Hitchhiker’s Guide to the Galaxy series, and geekdom picked it up from there. It’s the answer to the ultimate question of life, the universe, and everything. What’s the question? Nobody knows. What I do know is that I’m exhausted, and I have no answers.

I also don’t have much to say for the last year. I worked. I even got paid for it sometimes. But those times seem to be over, so it’s back to the torture of trying to get a tech job, now with the added weight of being too old to hire. Impossible odds, as I see it, and yet more likely than the other big event that may or may not be looming in the future.

About two months ago, I proposed. And she said yes. That joy, like all other joys in my existence, was short-lived. The wedding is still planned for next October, six days before I would be writing another post like this, but my lack of income (or prospects or hope or anything like that) is leaving that very precarious indeed. We don’t know if we’ll be able to pull it off. Even if we do, we don’t know what the future will hold. And that’s just not the way to enter a marriage.

So that’s where I stand at the start of my 42nd year: uncertain and, to put it mildly, frightened. I only have two realistic options, as far as I can see. I’m not good enough (or brown enough, which is more important in today’s world) to pull a job out of thin air, and I’m not brave enough to break this off before the point of no return.

Happy birthday to me. Yay.

What’s in the pipeline – June 2025

As usual, I have a ton of different things I’m working on in my spare time, but I’m prioritizing some of them. I really do think these few are "big" enough to deserve being called out now, so here goes.

Altidisk

Altidisk is my latest and now greatest conlang project. In about a year and a half, it’s grown to a lexicon of almost 6000 words and a corpus of nearly 15,000, which makes it far bigger than Suvile, Virisai, or any other language I’ve created. And this is the first one I’ve seriously constructed for other people to speak, which is one reason why I’m able to be so productive with it. I have incentive.

I also have the relative ease of Altidisk being derived from Proto-Germanic in a lot of ways, and thus more of a cousin to English than something completely a priori. That means a great amount of overlap in grammar and vocabulary, although there are some "false friends" in there, owing to linguistic evolution over the past couple of millennia. (As an example, quick in Altidisk is pronounced the same as in English, but doesn’t mean "fast" so much as "alive". This is, in fact, the original connotation of the English word, too.)

At the moment, I’m about 75% of the way through a personal translation of The Little Prince, thanks to seeing someone on the old mailing list doing that. It’s the biggest translation project I’ve ever done by a wide margin, clocking in at nearly 12,000 words already. I probably won’t release it publicly, but I may post snippets and use extracts for the grammar sketch that I want to get out by the end of this year.

Pixeme

I’ve talked about Pixeme before, and it’s something I’ve been kicking around for years now. The basic idea is similar to Tatoeba, in that it’s a crowdsourced translation site. But Pixeme is different because it’s image-based. Instead of a simple word or phrase or sentence, you’ll see translations of a sentence with an image associated.

The more I think about the concept, the more I’d like to develop it. One important aspect is the "topic" of the image, and that’s something I’m not quite sure how to convey. For example, if you see a picture with a woman walking a dog through a park on a sunny afternoon, which part of that are you highlighting? Yes, "all of them" is an acceptable answer, but it complicates the structure, and it can lead to ambiguity.

But the basic principle is one I’ve tested on myself. Granted, I don’t learn in the same way as most people, but I’m also old enough that I can’t properly learn a new language, so I’d say that evens out.

What I still haven’t decided—and this is the reason Pixeme has never really gotten going—is which tech stack I want to use. I’m tired of Python and FastAPI. I deal with them at work all the time, and I want to try something different. Unfortunately, most of the other good options are equally flawed, whether it’s from being shackled to a horrible server-side language (Nest.js, Phoenix) or developed by people who promote the genocide of my race (Django Ninja).

Board With It

Out in the real world, I don’t do much, but that’s something I’d like to change. Over the past couple of years, I’ve considered an idea that…well, it’s out there. I’m calling it "Board With It", because I like puns, and it’s a fairly simple concept. Basically, it’s a nonprofit that helps children and teens (and possibly young adults later on) to learn critical thinking and social skills through playing board games.

Okay, not just board games. Since I initially thought of it, I’ve expanded the scope of Board With It to include RPGs and card games. Tabletop, in general, though definitely not a TCG or CCG like Magic: the Gathering. I want to teach kids how to socialize, not get addicted.

It’s not a bad idea. It just takes a lot to make it work. Time, mostly, which is something I’m perpetually short on. Space, preferably a public or semi-private space. (I’ve even considered looking for a church around here that would offer a classroom or something!) Oh, and volunteers: the beta test I’ve envisioned is a four-week trial run consisting of eight sessions, each about 1-2 hours long. The first few sessions would introduce the kids (ages 8-12) to tabletop gaming in general, as something more than just playing Monopoly or Risk with your family. Then would come the emphasis on gaming as a social hobby that also trains your brain. Simple.

Microcosm

Last, and most recent, is Microcosm. This is kind of an umbrella project, and isn’t yet well-defined. My hope for it is that it becomes a community project for retro computing, low-level programming, microcontroller-focused maker work, and things like that. Basically anything running on the really, really low end. Think 6502s, or tiny MCUs that cost a buck apiece. There would be tutorials, dev tools, links to articles, and so on.

Really, because this one is so vast and nebulous, there’s not much I can say about it yet. On the other hand, it feels like the one that’s the most fun, and fun is something I desperately need these days. So keep watching microcosm.works for that…once I put something up, that is.

Summer Reading List 2025

Sometimes I forget things. As I grow older, that’s becoming more and more common, much to my dismay. Fortunately for all of us, I didn’t forget that today’s Memorial Day, the start of the Summer Reading List challenge!

I was talking about it over the weekend, and I commented that I started doing it "maybe around 2019". That’s the forgetting part, because I didn’t start it in 2019. No, the original post is dated 5/30/16. 2016. That means this is the 10th Annual Summer Reading List! Hard to believe I’ve been doing this for a decade.

In that time, I’ve read a lot of interesting books, and a few that were…not very interesting. I’ve enjoyed the experience most of all, however, whether I’m reading Jules Verne, Marcus Aurelius, or some random book I spotted on Libgen. My self-imposed rules (which I’ll recap below, as always) are great for pushing me to try new things, and my changing tastes are evident in the "safe" picks I use each time around.

Looking back on the last ten years has also shown how I’ve changed. Early on, you can see the excitement of finding new things, of discovery and exploration. During the dark years of the fake pandemic, my bitterness and despair showed in both what I read and how I talked about it. And the most recent entries paint me as a curious mix of romantic and cynic, which isn’t far from the truth, I’ll admit.

Anyway, on to the rules. They’re a familiar sort by now, with only minor changes as I’ve tweaked them over the years.

  1. The goal is to read 3 new (to you) books between Memorial Day (May 26) and Labor Day (September 1) in the US, the traditional "unofficial" bounds of summer. Southern Hemisphere readers get a winter challenge, probably a better idea because of the long nights.

  2. A "book", for the purposes of the challenge, is anything non-periodical, so no comics, serialized graphic novels, or manga. Anything else works, including standalone graphic novels and light novels. If you’re not sure, just use common sense. Also, audiobooks are acceptable as long as 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. Even if they’re still being edited. Before you ask, this rule exists solely to keep me from just rereading my books.

That’s really all there is to it. I’ll post my thoughts on my selected books here, as usual, and on whatever fediverse account is actually working this summer. (Seriously, I’ve gone through 5 of the things since I started this challenge!) Feel free to post on Facebook, Twitter, or whatever you like, too. Use the hashtag "#SummerReadingList2025" to spread the word. Most of all, have fun. This isn’t an assignment.

Enjoy your summer, enjoy your books, and keep reading!

A warning about Amazon

Amazon has very quietly made the unfortunate decision that those who purchase books through the Kindle Store are not entitled to basic customer rights under the doctrine of first sale, and will no longer be allowed to copy those books to anything other than another Kindle. Since this is a violation of the fundamental expectations of a storefront, I feel I must act as someone whose wares are available through that storefront.

If you have purchased one of my books in digital form through Amazon at any point, and you are not able to copy or transfer it to your PC, tablet, or other device, please reach out, and I will send you a DRM-free copy of the book or books you have purchased.

In the meantime, I will be looking for other platforms and storefronts to make my works available as widely as possible, and as freely as possible. Innocence Reborn is already available as an ebook through Barnes & Noble, so that will be the first site I intend to focus my efforts on.

Welcome to 2025

Munder Nüjersdag 2025 fram Altidisk!

In case you couldn’t tell, I’ve gotten back on the conlang train over the past year, and I want to use 2025 to ride that train to its next destination. So that’s the big project for the new year, and I’m going to use this post to talk a bit about Altidisk: what it is, why it’s interesting, and why it’s the first time I’m constructing a language explicitly for other people to speak.

Communication and community

Languages are a part of culture. In a very real sense, those who speak a certain language have a shared bond that comes from it, a group distinction that separates them, gives them a way to communicate that recognizes their commonality.

English, being the major language of the world now, lacks that common bond. Because everyone is expected to speak English, or at least know someone who does, those of us who have it as our native language don’t see it as part of our heritage or community. English, alone among the living languages of the world, no longer has an established culture. In that, it’s like Latin after the fall of the Roman Empire, or even Sumerian in ancient times. Long gone are the days where speaking English meant you had some connection to England.

Our native tongue’s closest living relatives don’t have that problem. The other Germanic languages are, by and large, spoken in their traditional homelands and by a small group of expats and colonists, most of whom still remember and respect their ancestry. Germans know they’re German, even in Argentina. Swedes know they’re Swedish, whether they’re in Stockholm or St. Paul. Only English, by virtue of the British Empire’s storied history, has lost what it means to be itself.

That was my first motivation behind Altidisk. Because every Germanic language, while different in many ways, has a lot in common. For that matter, every Germanic culture has a lot in common. We all share a deep instinct, almost like genetic memory, that recalls the way of life our ancestors had 2000 years ago. To be Germanic is to descend from a people who prized courage, family, and honor. Three things, coincidentally enough, that are considered disgraceful or even "toxic" in modern times.

The people’s speech

There are other "auxiliary" languages out there. Indeed, the most well-known conlang of them all, Esperanto, is one such. Add in Ido, Interlingua, and a few less-notable cases, and the space is pretty crowded already. The difference is that Altidisk, unlike Esperanto, isn’t intended to be a world language. Its goal is not to replace English. Instead, I want it to augment the Germanic linguistic cultures, to help rebuild that shared bond.

To that end, the words are derived from Proto-Germanic, the common ancestor of English, German, Dutch, Swedish, and so on. Grammar is derived from the same source, though with a lot more variation due to the way the individual languages evolved. If you speak any of those languages, you’ll be able to get a good idea of what’s being said without even learning…or that’s one of the goals. I don’t know how well it’ll work in practice.

But the other goal, restoring the cohesion of the Germanic peoples, is just as important. That’s why the language is called "Altidisk" in the first place. Tidisk is its own word for "of the people"—cognate to Deutsch and Teutonic, as a matter of fact—and al is just "all". Thus, "language of all peoples", but specifically all the Germanic peoples. (It also self-identifies as the Viterens Folkspaka: "white folks’ speech", with "white" here used to refer specifically to the people around the shores of the North Sea.)

Resolution

As of today, Altidisk has a lexicon of over 4000 words, and over 5000 semantic meanings; there’s a great deal of homophony in the "core" vocabulary, owing to the way words were derived from Proto-Germanic. I also have translations of a few "classic" conlang texts: the Babel Text (Genesis 11:1-9), the Lord’s Prayer (Matthew 6:9-13), and the entirety of McGuffey’s First Eclectic Reader, which has become a kind of exhibition for a budding language.

All told, the corpus is somewhere around 8000 words in total, and I hope to at least double that in the coming year. I also want to do a few more translations, mostly to pin down some of the more obscure corners of the grammar. And then I want to compile that grammar in a format others can use, along with vocabulary lists, lessons, and the like. In short, I’m starting 2025 with the goal that, by the end of it, people—specifically Germanic-descended people—can start communicating in Altidisk.

Then we speakers of English and its cousins can, I hope, find our culture again. And that is a good resolution for the new year.

Summer Reading List Challenge 2024

Is it already that time of the year? 2024 seems like it’s just flying by, or maybe that’s because I’m old now. Whatever the case, it’s Memorial Day, and that means time to start a new Summer Reading List challenge! Take a look at the original post if you want to see how this all started. If you don’t really care that this is the 9th straight year I’m doing this challenge, then read on.

The rules are the same as always, because they just fit the challenge perfectly. As always, remember that the "rules" presented here are intended to be guidelines rather than strictures. This is all in fun. You won’t be graded, so all you have to do is be honest with yourself.

  1. The goal is to read 3 new (to you) books between Memorial Day (May 27) and Labor Day (September 2) 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.)

Social media is an awful place these days, and even my usual fediverse haunt is in flux at the moment. I’ll try to post on my alt @nocturne@bae.st, but don’t hold your breath. Instead, just wait for me to write something here. Of course, you can post wherever you like, even if that’s to Facebook, Twitter (I’m not calling it anything else), or something weird like Threads.

Have fun, and keep reading!

Crux Eternal

I’ve finally done it. I’ve made a game.

Okay, okay. It’s just a demo for now, but it’s complete in that regard. It’s called Crux Eternal (the name is an inside joke, I’ll admit) and it’s a simple puzzle game based on the “Kakuro” or “Cross Sums” puzzles I’ve worked since I was a kid. They’re a bit like Sudoku mixed with a crossword, and they can be surprisingly difficult.

This demo version includes 15 puzzle configurations, all in the smallest size that made sense to me. There’s a timer, and the game does track your best times for each configuration. Puzzles are randomly generated to fit the pattern, so there’s some replayability, as well.

I’d certainly love to flesh out Crux Eternal into a full-fledged game. This was the first time I’d brought a Godot project (or any gamedev project, for that matter) from inception to completion, and I’d like to keep it going. I also have a few other game ideas rattling around in my head, though, so maybe I’ll work on them instead.

Anyway, you can play Crux Eternal online in your browser, or you can download local versions for Linux and Windows. The source is available over on my Gitlab, and it’s MIT-licensed.

Release: Homeward From Afar (Orphans of the Stars, Book 3)

You didn’t read that wrong. This is a book release post. I know, right?

Earth is the cradle of humanity, but everyone outgrows the cradle.

The children and teens of the Innocence have seen things no one else, no matter their age, has ever lived to tell. Out of billions of humans scattered among hundreds of planets, they alone have the best knowledge of how vast the galaxy truly is. Now, it’s time to take a break, and where better than the birthplace of humanity, the center of human space?

For some, it’s a chance to return home, to see the changes time has wrought. For others, it will be a first impression they will never forget. Yet tensions are rising throughout the human worlds, and the Innocence is unwittingly fueling them. The youngest crew in history might be celebrities, but that fame also brings them into a brewing battle for hearts and minds of humans everywhere.

Homeward From Afar is the third book in my Orphans of the Stars sci-fi series, and it definitely hits the hardest of any so far. I started it in 2019, back before it was obvious that the world had gone mad. In fact, when I started writing it, I still believed it would release on Patreon! Now that the so-called elites have shown their true colors, this has become more of a private release. For now, you can only get it on Amazon in paperback or Kindle versions. (If you ask nicely, I’ll probably send you a proper EPUB in exchange for…something. I haven’t decided what yet.)

I’ve already finished the draft of Book 4, titled Time in the Sun. I’m about halfway through writing Book 5, On the Stellar Sea, but…I don’t know how much I’ll be able to finish. And the final three books in the series (Horizons Unseen, The Cradle Earth, and Suspended in a Sunbeam) probably won’t get done. I have a few notes for them, and I would love to write them. I just don’t think I have time before I enter a much longer sleep than anything the Innocence kids endured.

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!