I'm a programmer, writer, and philosopher of all things. I post all kinds of stuff here.
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.
Recent update log:
February 21: Two new articles on software: Why I live as root and Stop trying to take the user's choice.
Added the load more button on recent comments. Enjoy,
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 :)
I haven't posted in a long time, but today I bring some Spem updates. Added
January 31: I posted part 3 of The Concise Python Tutorial.
January 26: I added the second part of my Python tutorial and a rebuttal to Shane Killian on utilitarianism.
Fixed a slight bug where if you loaded the Spem search page with the
c query param, like from a recent comments link, it would load the whole dictionary because it would see that you loaded it with some query params, but no filters.
I also posted the first part of my Python tutorial. There are an infinite number of them, I know, but I haven't seen a single one I like, and I really wanted to do it.
January 22: Tons of new words added to Spem! The word count is over 560 now :) New articles on software: Incomplete list of formats, standards, and technologies that should die and Why readability is important. I also added "rule of law" to Propaganda words and phrases.
I found out the most horrifying thing I learned about America in a long time. In happier news, updates to Spem:
January 19: I finally got around to editing my attempt at a complete formulation of the ethics of ownership with what I learned from the folks at r/DebateAnarchism. I haven't edited the article on capitalism yet.
Long-term improvement: the page URLs no longer have
.html. Requesting the
.html version should redirect to the new version.
January 14: I've changed my philosophy on simplicity in game design a bit after discussion with 231 in the comments. I've edited the articles on Depth and Simplicity.
January 13: New arguments: Oh my god, please stop writing dashes without spaces, Yujiri's First Law and Yujiri's Second Law.
January 12: New articles: The inherent logical problem with identity politics, The Cosmic Slot Machine actually works..., and my Nginx review. I really missed talking about software.
Later today, I fixed the navbar/URL title for the Software category. I originally called it "computing", because I wanted it to be more general than "programming" etc, but the right name didn't come to mind until the Jan 6 improvements.
January 9: One small but significant technical improvement: the section id links are less ugly now; they use the standard formula instead of a bare URL-safe encoding of the header text. The reason I didn't do this before was because I had some difficulty figuring out how to use Trent's Markdown library for this, so I put it off, but I wanted to get this out of the way before I gain much popularity.
Changes to Spem:
January 7: New rebuttal: First Round Capital is Sexist.
January 6: Category images added! I still have a few dissatisfactions with the change, but it looks so much fancier I couldn't wait to push it out.
More substantial updates to Spem, including the shortening of
January 3: I've got one small general improvement for today: the recent comment links link to the particular comment, so it's easier to find what's new on pages that have a ton. Unfortunately due to the way fragment scrolling works and that the comments load after the page, this doesn't scroll all the way down to the comment, but to the comment section, and I don't have an obvious way to fix that. I imagine the change is still appreciated though.
There's also some pretty cool Spem updates:
January 2: New articles: Hypocritical Objectivism and Socialism Is Not Greedy.
January 1: New article: The separation of legislation and enforcement is harmful.
On the Spem dictionary page, notes search by regex is finally available.
The Spem ASCII transliteration scheme has been defined.
A minor improvement to the Markdown system: fenced code blocks no longer put the <code> inside of the <pre> (which made the <code> styling apply only to the text and not the whole block).
The big one: We got header links now! Check 'em out. Let me know if you find any that don't work.
New page with Spem open questions. I plan to start using that page as a general page to keep track of everything I'm looking for input on, but I'm not merging the page about variable derefencing into there yet.
The old articles on the problems with "harm", "self-defense", and "extremism" have been merged into a new article on Propaganda words and phrases that includes all of them and some more.
December 30: I've been making some changes to the Spem articles. In particular the tradeoffs of parts of speech and default identifiers have been edited.
December 22: I'd decided to redo my article on the status of children in society, to expand it a lot and divide the topics I covered into three separate articles, of which I've just finished two, and three other new articles. There's now Children are not property, Sheltering children is harmful, and Children aren't as immature as you think..., Stockholm syndrome is human nature, and All statists have Stockholm syndrome.
I really need to decide on a capitalization convention for article names. My inconsistency is painful.
December 21: New article, and my first rebuttal to a Youtube video: The origin of consciousness.
December 20: Woohoo! RTTP Part 2 is out!
December 19: I've implemented comment subtree viewing! I know that ideally it should do this without reloading the page, but I'll stop here for now.
I'm trying to delete my old (bad) liberty.me account to start anew, but unfortunately I can't because I don't have access to the old email address anymore, and I can't change it because Wordpress sends a confirmation email to do that... to the new address... but apparently they have mail routing issues and closed the support thread where a dozen people reported it a year ago without resolution :/
Update to Spem articles Linking clauses and should.
Some important new words added also (mi jini yam kor θɑr),
incl keθɪs 'yɑri' (i yo), 'vien', 'dimu', i tir
yɪŋ ɪl verbs ŋel ki kei; i jinu kazu i kanu - tem ʌ zu.
I've also done some more under-the-hood improvements: I added the <input-list> element, and it can work
with <select>s too. So I've got my Spem admin interface back. Finally, I added an article I started
drafting a while ago: The loss of the concept of Consent.
December 17: I finally completed the Lit-Element move! Phew, this took most of 4 days. I probably put almost 30 hours into it. But it's done! Noticeable improvements:
The authentication popup is way better! No more HTTP Basic auth; I use the mwc-dialog element, so the field asking for your email doesn't have to be labeled "username" anymore.
Relatedly, you'll see an area in the top-left when you're logged in showing who as and giving a link to the notification settings page.
A minor aesthetic change: I've added a slight box-shadow around comments. Let me know what you think of it.
Most important of all: I've added an email entry field to the comment element, so you don't have to make an account separately. When you use this field, your account is automatically created and subscribed to the one comment. I didn't want to do that without confirmation before, but I realized that a spammer can already spam you with confirmation emails, so it doesn't really make anything worse if they can subscribe you to a single comment, as long as they can't mess with your settings once you've got your account. Finally, entering the email address (which is auto-filled by a cookie) on the comment submit form auto-subscribes you to it, so you won't have to login and click subscribe on all your comments.
This was the biggest blocker to my publicity pushes. I didn't want to go for traffic when I had a flaw that I thought would cause most commenters to never come back. Once I'm sure everything's working, I think it's time to start a liberty.me account and go debate either Eso or Filthy...
Instead of having different paragraph elements for errors to show up and me having to worry about targeting the right one and clearing it when the request succeeds, I use lit-toast to show error and success messages.
main_gi found another XSS vulnerability, although less severe. My markdown processor escapes HTML first but doesn't stop bookmarklet links generated from Markdown. This should be fixed.
I've also improved my tmpl.py script on the backend, and merged an old repo that didn't have anything else I was still using into the main one. And the navbar path is computed by the frontend now, rather than stored during templating.
And finally, there've been some more mundane updates. I've improved Power Doesn't Corrupt You, Idiot and significantly edited my critiques of Lord of the Rings and Mass Effect.
December 15: It's been a while since I posted normal articles, but today I've got two: Relativism Is Not Inconsistent and The Condescending Fake Intellectualism of Conservatives.
The Web Components move is coming. Today and yesterday I got a break from my job and managed to get a lot of progress on it. The site will look fancier, have a better authentication popup with non-misleading labels, and if all goes according to plan it'll land at the same time as the last major interface change I want to make before I start pushing for publicity.
RTTP is also coming! The script is completed, it just needs testing/debugging and some editing.
December 11: No content update, but I looked into the Web Components thing a bit and found out the build didn't have to be that big. I had it set to build for development, which made it way bigger. I've done some more exploring of Web Component building systems and I've found at least two promising options, so I'm back to being fairly sure I'll do the move. Just gotta do some more investigation to find out what the best solution is and then set aside a day for it.
December 8: I got banned from r/ShitStatistsSay for pointing out a double standard that holds children to have less rights than adults, and had a hilarious exchange with the moderators about it. I added details and screenshots to the relevant Protagonism article.
I spent a few hours tonight looking into my ambition to migrate to Lit-Element, but this time, I'm starting to think
the dream is just a bust. I found a compiler solution using Webpack that only required me to install the one package
(no Babel needed!)... with its >300 dependencies, of course. I actually started making components, but then I looked
at the bundle.js being generated even with only using the one small library and two MWC components to make the
theme switch better, and for some goddamn reason it was 14,000 lines. And that's without the sourcemap, without which
I can't reasonably debug. So I decided you know what, that's not even worth it. Screw web components. Screw
npm forever. I continued in the good old primitive ways and added the ability for me to delete comments
from the web interface.
I'm also starting to hate Django more, since I found out today that apparently it swallows uncaught exceptions
unless I specifically catch them and
traceback.print_exc(). I didn't think it used to do that. Its
admin interface is borderline useless since I can't filter or search objects at all, and today I found out it won't
accept me creating an object if I don't put non-empty values in certain fields that don't have a non-empty constraint
(doing it from
psql worked). But the database management is still so valuable...
December 4: Today I finished and reviewed Jedi: Fallen Order, and posted a new Spem conlang article: The phonetic mapping, and Languages are not easier to learn as a kid.
Sigh... lastly, I've been reminded that I somehow forgot to note the addition of Spem conlang open question: variable dereferencing?.
December 3: I updated my article on the "What If Everyone" fallacy to add an example I encountered today. It was too gold to pass up.