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 an embarrassing vulnerability in my comment feature, and even contributed valuable insight that got me to change some beliefs.
October 14: I've switched the site to a dark color scheme. White on black is easier on the eyes and on the battery.
Phew! I fixed the table CSS. I don't know if anyone noticed but yesterday evening I noticed some horrible issues with the
Spem dictionary search page and everything I tried to do to fix it created other problems.
I got so frustrated with it that I gave up for the night and went to bed. Today I got it - the magic is to wrap the table
in a div that has
overflow-x: auto instead of setting it on the table itself :)
In the Spem dictionary search page, pressing enter now submits a search.
Spem words now have categorical tags that you can search by. I haven't gotten around to tagging most of them yet mostly because there's one more backend change I need to make that will make it a lot easier to do that.
I made massive CSS improvements! (Under the hood only.)
position:stickywas what I was looking for all along with the navbar. No more shitty
Big news (again only under the hood): I changed the way I do my pages in the backend, so the templating is done ahead of time. This shouldn't affect performance much, but it simplifies my code a lot, and it's a bit safer now since me messing with uWSGI won't break the articles, only the comments and Spem dictionary. It does introduce new room for failure in the way of the pages getting out of sync, but I have a script to autoupdate them when I make changes, so that probably won't be an issue.
I guess I'm not moving to Django after all. I was really hyped for it and spent a few hours trying to get it to work today, but I found out it's support for lists is abysmal. There's apparently no built-in widget to allow editing list fields of database objects from its admin interface, which was something I'd already more or less implemented myself, so that killed a lot of the appeal. I could implement it myself in Django's framework but that would feel so terrible, learning Django's UI customization API just for that when I already have the skills in HTML and Django knowledge won't transfer to other framworks. And it also looks like I'd have to write the search feature myself to search for values in list fields.
I guess the next big thing I need to do besides that little backend improvement is CSRF prevention. I think I know how to do it, but it'll take at least a few hours to get it done.
I also looked into header shortcut links today. I found a workable HTML parsing library (the Python stdlib one I don't
think counts as workable) and figured out how to use it to add the pilcrow elements or whatever. I was pretty close
to getting it working but then I realized even with
position:sticky the navbar covers the jumped-to header.
October 10: I've added the first few dozen words to Spem! I'm realizing that maybe I should have a way of adding "tags" to words so it's easier to categorize them.
October 9: I added my opinion of SQLite.
I feel kinda bad that of my 5 software reviews so far only 1 of them has been positive. I don't want to look like I'm one of those Mr. Plinkett-style reviewers who just negatively reviews everything because it's fun to read negative reviews and twists the facts or just ignores everything good about the work. I do have predominately positive words of Nginx and Haskell coming (and maybe Postgres if I didn't feel like I already did in the SQLite review), but I can't review Haskell for a long time yet because I'm still way underqualified to do that. I might be for another year. Nginx I just need to do a lot of research to confirm; I'm not lacking in experience or understanding.
October 7: New articles: Why you shouldn't trust any web service with a forgot password button, and Screenshots Prove Nothing. I also reorganized the argument index into the column layout since it has more than enough articles for that now.
October 6: I posted a few pages on my conlang (see above), although I haven't posted any of the vocab yet.
October 4: I added The two righteous philosophies of "deserve".
October 3 (late night): I added Righteous rules don't need to be specified.
October 3: I migrated the comment database to a different DBMS. I'm pretty sure everything's working again and there are fewer single points of failure now. I also noticed a bug with comment sorting: when you post a new top-level comment, it would appear at the bottom and assume its rightful position when you reloaded the page (replies were sorted correctly). This has been fixed.
I also cleared out the comments on the index page. I don't think it's good to leave the place polluted with testing comments like that.
October 2: My belief in "the Principle of Contingent Uncertainty" has been scrapped now that I understand better how the metaphysics of beliefs work. I've renamed the remaining parts of that article to The legitimate answer to the Cartesian evil spirit scenario.
Later: I made it so you don't have to reload the page after posting a comment 💪, and added an article: There's no such thing as a promise.
September 26: Ugh... looks like there's another article I forgot to mention when I added: What If Everyone Thought That Way Is One Big Fallacy.
September 25: It's been brought to my attention that I forgot to mention two new articles I wrote on September 13: The Anarchist Storyteller's Dilemma and Why Cliches Are Bad. I also made an attempt to improve the formatting of my Prismata attacker rankings on narrow screens. I'm not sure this is the best way to do it, but it has to be better cramming the text into a 10em-wide area.
(Late tonight) I added PSA: Rational people, stop wasting your time on irrational people.
September 24: Check it out! I added the recent comments panel above.
September 22: I added an entry on Wikipedia's Neutrality Policy Is A Sham and posted a new article: Group identity: the single biggest problem with the world.
After that, I was messing with the database schema to add information about how many requests are using http2 and I made a mistake and deleted all the comments. This is the part where I regret not setting up ZFS snapshots on the server :/ The one important comment I managed to piece together the content of from my terminal scrollback and restore it.
I'm working on showing recent comments somewhere. I already added the endpoint (/recent_comments returns the ten most recent across the site), I just need to do the frontend to lay out a summary on this page somewhere or something.
I've also been thinking about how to enable notifications for comments you post. I think I've finally got a good idea that won't require making an account before commenting or being unable to get notifs on comments you made before. I'll have a typical email-confirmation system where you can prove ownership of an email address, and you can subscribe the email address to notifications on whatever comments you want. After all, I've been frustrated with reddit not allowing you opt-in to notifications on posts other than your own, so I'm gonna make it so you can subscribe your email address to notifications on any comments you want - the whole site, just replies to a username, replies to any article your username has commented on, replies to specific comments, or what have you.
Oh, one last thing! Comments are markdown-enabled now.
September 18: I noticed a few days ago that my backend was not parsing the if-modified-since header correctly, and so some requests were not returning 304 Not Modified when they should've. It should be fixed now.
September 16: New computery article: What escape sequences are.
September 14: I added my new article on RNG in games which I apparently forgot to put in the index after all my philosophies got reorganized. Also, we have a new guest article from main_gi: How JRPGs Can Do Better: Every Mario RPG.
September 13: I added secure contact and donation info as you can see above, and I've been making a lot of minor edits. Most notably I realized the Prismata absorber personality test was broken during the move to uWSGI. I fixed it.
September 12: I've acted on the decision to consider compassion and retribution as two sides of the same coin rather than orthogonal values in my moral system.
September 11, second entry: I added a bunch of user account management-related commands to the Unix command reference, which more or less gets the project to "version 1.0" status. I'm a little unsure what I should do with that article. The original plan was to enumerate all the built-in commands I find to be significantly useful, but which commands are installed by default varies by operating system and especially between Linux and BSD. But it would be totally unreasonable to list every installable command. Even still the names of the packages vary between distributions.
I also added An Overview of Programming Paradigms, and added some content to my opinion on Python, including some elaboration on my biggest two criticisms and the addition of a smaller one about the way it deals with timestamps.
September 10: Comments are live! They're pretty janky, but they should work. A few things to know:
There's no authentication of any kind. You can't post comments as me though; the exact name 'Yujiri' is special.
You have to reload the page to see your comment.
There's currently no way to edit or delete your comments (since there's no authentication).
I use reddit-style tree structure!
September 9: A CSS improvement: links in spoilers no longer show through. Also, comments are coming! I'd been entertaining the idea since a couple months ago and started to plan out how I would implement it a couple weeks ago. Today I started seriously grinding on it. More than half the work is done; with luck, I'll push the feature to production in the next two or three days.
September 7: I've added the article you can see above explaining the symbolism of my logo, and I finally completed the major revamp of my game design articles! Check 'em out. Thanks again to main_gi for guidance on the decision.
September 4: I completed two major improvements today! First of all, the site now has a favicon! It's highly symbolic and I plan to post an article explaining it. More momentously, but less apparent, I finally implemented templating for my pages! I no longer have the same ten or so lines of boilerplate repeated in all my files. I'm using a backend script to generate them by filling out a template with the article contents. The novels still use the old approach since converting those would have been a little more complicated - they can't use the same template. I plan to look into redoing the CSS there anyway with everything I've learned about CSS since I wrote that layout. Let me know if any pages are broken. For the time being, the old versions should still be accessible at static.yujiri.xyz. I also decided to make this update log not use bullet points and to drop the entries from before the beginning of August. I don't think history that far back matters.
August 29: New game design article: Why Forcing The Player Can Be Good, and a new Unix tutorial article: Filesystem concepts. I also separated out the section on Unix manual pages into its own article, and added more commands to my Unix command reference. I even color-coded the commands by importance! Finally I revised some of my points in My Opinion On The Go Language; I elaborated on some of the praise points and upgraded the one on tooling to an h1.
August 27: I posted new articles on programming: My Opinion On Go and The Truth About Object Oriented Programming. I also made some CSS improvements; images and <pre> blocks should no longer cause horizontal scrolling on small screens (except the Prismata attacker list; not sure what to do about that).
August 25: I redid my article on The Misrepresentation And Underappreciation of Philosophy, and added two new articles: Why You Should Learn Programming Even If You Don't Plan To Be A Software Developer, and an Opinion On The Python Language.
August 24: I updated my article on the anatomy of a soul with my new understanding of how beliefs are a facet of Instinct.
August 23: I organized the game design index into a column layout like the other indexes with tons of content, and I added the first content of a new section: computer/programming stuff.
August 22: I extracted my discussion of brute force skills in game design out into its own article, and added How JRPGs Can Do Better: Bowser's Inside Story. I really need to make the game design index column-arranged...
August 20: I edited my article on children in society.
August 18: Four new articles! The real meaning of political 'left' and 'right', An insight on the common error behind leftist economics, Don't amoralize your moral arguments, and Polymorphic values - and why you should avoid them.
August 13: I've gained a ton of new insight lately about how sleep, dreams, and death work, and finally got around to making an article. I also renamed my three theorems about choice and motivation to "axioms", since I found out a "theorem" is usually understood to be something proven with other premises - so basically the opposite of what I was using it to mean.
August 11, second entry: (Fist pump) I figured out CSS Grids and made the column formatting super sicku! Not only do the columns stay aligned now, but the rows don't disbalance anymore; they'll even out as much as possible. And no more shitty hacks with div.row:after or any of that crap :)
August 11: Okay, maybe this is starting to get funny. Or maybe it's stopped being funny. I don't know, but I'm laughing at it a bit right now. I made another momentous revision to my moral system: freedom is no longer a prime value. I actually think I was taking out parts of Agency and Consent and making a third separate value where there isn't one.
And no, of course I'm not going to stay at 7 values :P (At least I hope not...) I'm also thinking about combining Compassion and Retribution into one value. After all, they're strictly diametric, aren't they? I mean they never get weighed against each other in the way that the other values do because they just cancel each other out in the first place and leave only the remaining magnitude of whichever was stronger. I mean obviously they can get played against each other in a complex situation where multiple people are involved, but that's only the sense in which any value could be played against itself. They never conflict on the same person in the same situation.
I've been occasionally using the phrase "the treatment rule" in my thoughts to refer to the combination of the two. I'll probably combine them once I figure out exactly what the treatment rule is (there are some questions I need to answer about how, mathematically speaking, the factors play together - I'd think the subject's moral merit has to be a multiplier in the formula, but then there'd have to be a 0 point, and that seems impossible).
It's extra poetic because I was recently swiftly convinced that base 6 is the best number system, whereas I had previously resigned myself to that not lining up with the number of cardinal moral values (I had eight and advocated base 12). It would be nice to have that back. Especially if the number of cardinal emotions ends up being 18 when I figure that out.
August 4: I edited my article on the anatomy of the soul with a new insight that memory reduces to instinct.
August 1: Phew! Today I migrated the server. It was a pretty involved process, reinstalling everything on a new operating system, but this will be better in the long run. No need to reboot every couple of days when nothing's changed. Learned a lot more about FreeBSD service files in the process.