I'm a programmer, writer, and philosopher of all things. I post all kinds of stuff here.

Prismata
Prismata
I used to play this game devoutly, and wrote a lot of beginner guides and stuff for it.
Spem
Spem
The philosopher's conlang. Join me, and together we will rule our own minds.
Software
Software
As my primary skill set, I naturally love to talk about software.
Protagonism
Protagonism
Does it count as a religion if it's all a priori? 🤔
Argument
Argument
Wherein I talk about conversational tricks and the role of psychology in arguments, and debunk random bad ideas.
Music
Music
I'm a musician... sort of...
Game Design
Game Design
Many people think that different people enjoy different things and so all judgements of games are nothing more than personal preferences, but I don't subscribe to that nihilism.
Storytelling
Storytelling
What makes a good story? I'm not quite sure myself, but I have plenty of ideas.
Reviews
Reviews
I enjoy enumerating all the flaws in other people's stories and games, and occasionally gushing over good ones.
My Works
My Works
Novels, DDLC mods, poems
Counterplay Infinity
Counterplay Infinity
A minimalist, proof-of-concept fighting game I made a couple years ago that doesn't live up to its name.
Miscellany
Miscellany
Personal ramblings, stories, and secure contact info.

This site wouldn't be what it is without my dedicated contributor main_gi. He's been my de-facto editor for a long time, has helped me with CSS troubles, found two vulnerabilities in my comment feature, and even contributed valuable insight that got me to change some beliefs. His page is here.

The above photos, where they're not mine, are from: unknown pxhere user, Aaron Burden, sthenostudio, and César A. Mazillo Jr.

I also have a presence on Twitter, dev.to, Youtube (on Youtube I currently only post DDLC-related content), Medium (starting out), and minds.com (passively trying out, might start posting more in the future).


Recent update log:

May 28: I've made a new subcategory under Argument for platform design, moved the article on tag systems there, and added Against moderator action. I also reorganized some of the Protagonism pages, and deleted two: one that never really belonged as an article, and one that was old and the good thoughts in it are covered by the articles on moral values and consequentialism. I also moved my bystander story to Miscellany, and wrote Why I organize this site this way.

May 23: I posted Revolution is self-defense. I haven't wanted to write about this for obvious reasons, but I can't just not say it forever.

May 20: Lots of new stuff.

May 19: I reviewed The Iron Web.

May 17: I edited my article on consequentialism and also linked Michael Huemer's post on abortion from the Protagonism index.

May 15: I posted my Deltarune review.

May 12: New article: How I left axiological retribution.

May 11:

May 10: New poem: The Shaft.

May 7:

I finished the FastAPI/SQLAlchemy move!

I'd had the code pretty much done for a while and was just waiting on an answer on something about foreign key relationships from either r/sqlalchemy or Stack Overflow, but this change has been blocking so much else for so long, I decided to just go with it without assurance that I'm doing this the right way.

You'll notice that the comment IDs are ints now instead of UUIDs. My migration code automatically converted the old comments so all the discussion should be intact, but links to comments from articles or other comments couldn't be fixed the same way. Point them out if you find any broken.

May 6: I finished and reviewed Undertale.

May 5: New article: Stop with the arbitrary restrictions on passwords.

April 30: I added a point in my criticism of Renpy about the zorder system, improved my article on The enforcement fallacy, and posted The Concise Python Tutorial, part 7: Classes and Please exit the top menu cult.

April 28: I finally updated the article on my moral system and the one on retribution! Some of the places that reference them might still need a change, but I'll fix those as I notice them.

April 25: I reviewed Django. It's not the most comprehensive review since there's still a lot I don't know about it, but I think I've seen enough to review.

April 24: RTTP. Is. Released.

Good God, this feels so good! I can finally get up to other things: Haskell, SQLAlchemy, Spem, philosophy, connecting, and who knows what else.

In far less important news, I moved Wikipedia's neutrality policy is a sham from Protagonism to Argument.

April 21: New example on the What If Everyone fallacy, and new article: Is capitalism luck worship? And why you should believe in consent.

April 18: I edited the article on consequentialism to more explore "the basics" before getting to the organ transplant scenario.

April 13: I added a retrospective to MC's Revenge. Also added a mention of Firelightning and links to his repo. I can't believe I had that up there the whole time without a mention of him! It was in the credits, but still should've been on the download page too.

Later I added a new rebuttal: Heimdal Security lies hysterically about the dark web. I wasn't sure about bothering with a rebuttal to this when I first found it so I noted it in a text file for later consideration. A few hours later I felt like doing it so I checked it out and... holy fuck. The article is orders of magnitude worse than I thought from reading the start. I was surprised by how much it ended up being about statism and anti-conversatism as well as the "dark web".

April 12: New article: Online privacy is overrated. I also posted my informal resume, even though I don't plan on doing anything that involves it soon.

April 8: New article: What's the case for data hiding?

April 7: New articles: Nil comparisons of software, The Concise Python Tutorial, part 5: Functions, and The Concise Python Tutorial, part 6: Exceptions and IO.

April 5: There's now an option under notification settings to not automatically subscribe to your own comments.

April 1: New article: The right programming tutorial structure.

March 31: New article: Why I don't debate in chat.

March 30: New article: Faction analysis: Anarcho-capitalists.

March 28: Well, I finally settled on using mistune as a Markdown processor. This won't be an acceptable permanent solution, but I'm so done struggling with this for now. I found two comments that were messed up and fixed them. Let me know if anything else is messed up (I'm sure something is). It also inspired me to write Has your favorite tool actually saved more time than it's costed?.

March 27: I feel bad about the total lack of new content in the last week, but I'm still grinding on this damn quest for a better markdown processor. It seems like a neverending toil of investment and disappointment. Anyway, I finally have a new article: Transgenderism in Fizzy's server.

March 21: New articles: Things we still can't do in CSS and The sins of quarantines.

March 20: New software article: How to make fragment links survive position:sticky.

March 16: I removed the timestamp from the navbar and put it in the comment-section. Comments made before the article was last modified now have orange timestamps. I hated doing this because it meant (shiver) dealing with Dates in Javascript, and I had to add a dependency to do it, but that navbar cramp had to be fixed.

I know the layout of the navbar is still imperfect (the top two elements look misaligned when logged in, but it's just because of the difference in width). I'll have to experiment a little more with squishing them into the center, and I also want to look into moving the homepage link to the center-top so it doesn't seem like it's being treated as part of the title.

Later this today: I did change the navbar some more, so the two top panes are aligned to the edges of the title. I think it's an improvement, but still not completely satisfactory. Also, I posted My names and the story of Evan.

March 15: I scrapped the article "Boilerplate rules". 231 made a really good comment on it back in January that I asked in response what I should do with the article, but since I never got a response I forgot about it. Of my three points, one was invalid, another was only half valid, and the other was basically summarizing another article I'd written. It didn't merit keeping the page around.

New articles: Objectivism in software and To add rights is to subtract rights.

March 14: New poem: Ode To Prismata.

March 13:

March 12: New article: Libertarian arguments for and against open borders. If it sounds very out-of-style for me, it's because I conceived it as a BHL post, but they still haven't responded to my other guest post request.

March 11: New articles: Platform designers: got common sense? and Problems with rating systems and how to fix them. I've noticed that I'm forming a topic with these two, the old one on reddit downvoting, and the one on tag systems, which only tangentially fits in argument/ and the tags one I put under software/. They should at least all be in the same category. I might have to move tags to argument/, but then I have to change its canonical URL and worry about the effect that might have on the dev.to crosspost.

March 10: The notifs panel will now show your current key fingerprint if you have a public key.

March 9: Improvements:

March 8: Phew! What an evening.

So around 6 PM I downed the server working on big changes. I thought I'd only need to down it for a few minutes, but things got hairer than I expected, and it ended up down for hours as I desperately fiddled with Google, Django and Postgres. I plan to post the story of how this happened to dev.to tomorrow, but for the time being, here are the upates I've brought you:

I won't be surprised if some of this is broken, but I feel pretty epic about today, especially since this was also a day I made more progress on RTTP than in the last week combined :)

March 6: I changed the navbar structure a bit so it's less cramped on mobile. There's probably still improvements to make, but this is less egregious on pages with really long titles.

March 4: New articles: Democracy is nihilism and The experience calculation problem. I went ahead and made the change: the miscellany category is a thing now.

March 3: I added the article Wearing many masks. It's not linked from any categories yet because I'm teetering on the decision of adding a "Misc" category. If I linked this from the root page, I'd have three image-card links that were just to a single article and had the logo as their image. I want to add a Misc category to put this contact info, and the logo explained under, but I'm not quite certain if I want to do that. Having the contact info be two clicks away from the root page is not an idea I'm attracted to...

I've also become sure that the site needs a more serious interface revamp, which might affect how I want to do this. The navbar is too cluttered on narrow viewports on a subcategory page. I'm pretty sure I want to keep the sticky navbar since it has the login status and the dark mode switch, and the timestamp is also important to be able to see while reading comments. One thing I'm thinking about is taking out the article title, and displaying it in an <h1> at the top of the article.

I don't like the way it would look, but that idea might have SEO benefits. Now that I'm using the <article> tag and crossposting, I've getting the impression that the article title shouldn't be outside of that element.

An obstacle is that if I used h1's for the article title, I probably couldn't use h1s in the body. I might have to use h2 as a max. That'd require reworking my software reviews. Maybe I could just use h2-h4 and have my stylesheet reduce the different in sizes, so an h4 is still bigger than normal text.

Another thing I've been thinking about is whether it would be a good idea to reduce the page width on fullsize screens and use the margin space for a recent comments panel. A lot of other sites show their recent comments panel on all pages. I'd been deterred from doing it here because of the category dissonance - someone might follow a link to a page in one category, and I might look like a link spammer if the first thing they see is comments on unrelated content. But it wouldn't be too difficult to make them scoped to just the category they're on.

Later today, I basically finished The Concise Python Tutorial part 4: Mutable types, but I haven't crossposted it to dev.to yet, as I think it could use some polishing/feedback. I also finally added a test case for the assignment in part 3, to make the intended behavior clearer.

March 2: New article: Punishment and reward are not alternatives.

March 1: New articles: Traditions of lying: Santa Claus and April Fools and I hate caching.

February 29: New articles: Kill software for great glory and Tag systems and the problem of variant tags, added PHP to Incomplete list of standards, formats, and technologies that should die, and a new (kinda?) poem: Henry The Hero.

I really wanted to write more poems. I have a few scraps I've been thinking about for longer than this one, but when I decided to work on it just flowed. I'm not sure about including the title in the page body like I did for the other two. It seems unnecessary when it's in the navbar, and especially awkward when it's also the first three words in the poem.

February 28: I've edited my Javascript review. I've gained a lot of knowledge since I first posted it, and I've added and removed a few points. Also added Change my mind: tests are overrated.

February 26: New article on software: Overempowering Javascript.

February 22: Some changes to Spem: yeli (on purpose) and vigi ('work' as in 'succeed') were merged into zɪl, fel renamed to wɪl, and yelu (on accident) and fugi (malfunction) merged into a new word bɪl. I also removed kɪtzu, since it seemed to mean ki ve.

February 21: Two new articles on software: Why I live as root and Stop trying to take the user's choice.

February 20: Added the load more button on recent comments. Enjoy, miki mi.

February 14: New article on storytelling (man, how long has it been?): The D&D alignment system is worthless.

February 10: Over the last couple days, I've revised most of my articles on storytelling. All of them dated back to when I was a nascent philosopher with ideas I cringe at now, as well as a much worse writer, and I think they're all in a presentable state now. I actually scrapped the articles on heroes, villains, and worldbuilding, because my whole framework for those ideas was wrong-headed, and I think I said next to nothing I still stand by in them. The only worthwhile stuff I said in the plot article is on its own now: Don't have POV characters lie to the audience.

I've also been revising my reviews. The early versions of a lot of them sounded more like a rant to remind myself why I hated the work than an earnest attempt to make the case for someone who wasn't already convinced.

February 7: Added comment previewing. Enjoy :)

February 6: I haven't posted in a long time, but today I bring some Spem updates. Added iv, eiv, tazi, and tafu, and renamed the combo verb tag to adverb.