A Foolish Blunder
Friday April 25th, 2025
Tags: blog, food, outside, personal
Today on my lunch break 5K,1 I decided to stop at a gas station, one of a small handful of stores within a 30-minute radius of work, to get something different for lunch. It's not a good gas station, like a 7-Eleven or Sheetz, it's a second-tier regional chain inexplicably named "Par Mar".2 But they at least have some refrigerator sandwiches.
They're one of many stores in my college town that won't let you in if you have a backpack, so I took out the bike lock I keep for this purpose and secured it to a disused air dispenser at the side of the store. I looped it through the fabric top-handle, which isn't the most secure thing in the world, someone with a decently sharp knife could saw through it, but I would only be a couple minutes, it's mainly to keep people from grabbing it and running off.
I picked out my items as quickly as possible, and I was in the checkout line when it occurred to me I didn't think to look at the combination before I closed the lock and scrambled it. Well, it had been awhile since I used it, but I knew for certain the first digit is a 2 and the last digit is a 6. The other two digits will come to me, I reassured myself. In fact, I was pretty sure it was 2586
.
Well, I got out with my sandwich and jalapeño cheese puffs, and I entered the combination and realized that the numbers don't go up to 8. They only go up to 6. Okay, I thought, the 3 could easily be mistaken for an 8, so it must be 2536
. Still no luck.
Panic set in. I tried a few more adjacent combinations, none of them worked. My lunch break time was steadily ticking away, and I had no idea what I was going to do. I started fiddling with it aimlessly, thinking about all the passers-by wondering what the hell I was doing for so long. I thought about going into the store and asking if they had a pair of bolt cutters I could borrow to destroy the lock, or barring that, a big knife to destroy my backpack. Finally, through sheer dumb luck I fell on the right combination. It's 2532
.
So I'm back at work just as my hour was up, eating my crappy microwave burger3 and writing this as my inaugural post in my new blog, because if I post about it maybe I'll embarrass myself thoroughly enough to remember to check the combination next time 🦝
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
I.e., my 5000-step walk. ↩︎
-
Which I'm unable to think about without my brain appending the word "superstar". Also, I looked it up on their website (they have a website! 😮) and apparently the name comes from Parkersburg (WV) + Marietta (Ohio). So are we supposed to be pronouncing it "par mare"? Bad name. ↩︎
-
It cost $5.50. Remember when Hardee's (Carl's Jr. for you westies) had a promotional item called "The Six Dollar Burger"? It only cost like $3.50 or something, but the idea was that the quality was what one might expect to pay $6.00 for in a fancy sit-down restaurant. Such luxury! Such decadence! How far we've fallen. ↩︎
Android Browsers are Weird
Tuesday May 06th, 2025
Tags: blog, crafting, phones, tech
In the old days, Android phones all came with an app installed that was just called Browser. This was usually an official Google app, and it was just a wrapper around android's WebView. This is a system component that's always been part of Android, and it's a web renderer that any app can use. If you use an app like Instagram or Facebook and click a link, it often uses WebView to render it, rather than opening a dedicated browser. This is because Facebook wants to keep you using Facebook, and if it opens a full browser, you can type in a URL or open a new tab to go somewhere else. Facebook wants you to just tap the "back" button and go back to Facebook, so unless you start clicking links, that's the only option you get.
The popular third-party browsers on early Android, like Kiwi and Dolphin, were simply wrappers around the WebView API that offered additional features or a better UI than the default Android browser. Some mobile browsers, like Brave and Opera,1 market themselves heavily and include malware or deceptive services to profit off the users in some way; but fundamentally they're just the same WebView implementation under the hood.2
There are exceptions; the android version of Firefox still uses a version of their Gecko engine, but as a result it's slower and clunkier than the ones that use WebView.
I use Via. It's also just a wrapper around WebView like Kiwi and Dolphin were, but unlike those browsers, it hasn't yet capitalized on its popularity by adding ads or other malware. It's fast, it stays out of the way, and it even has some basic ad-blocking functionality. It's not as comprehensive as uBlock Origin, but it makes the corporate web somewhat usable on a mobile device.
Now, I haven't mentioned the elephant in the room, which is Chrome: at some point, Android stopped coming with an app called "Browser"3 and started including Chrome, which makes sense: they want to unify all their OS stuff under the Chrome umbrella, because in many ways, everything is becoming a web app. ChromeOS can run Android apps, and many modern Android apps are made with the same javascript frameworks that websites are made with. The distinction is becoming less meaningful.
Here's what I don't understand: surely the android version of Chrome is also a wrapper around WebView, right? So why do sites look different on Chrome than they do in Via? I've been mildly obsessed with this question, because I opened my site in Chrome and noticed a lot of text is the wrong size. Other than <h1> <h2>
etc, and the navigation bar and footer, all the text on this site should be exactly the same size. I carefully crafted page elements so that, for example, the Browse section of the front page is two neat columns in harmony with the rest of the text. But on Chrome, the text in those columns is smaller. The "browse" item in the navbar is too small, the navbar items don't line up nicely in three rows, and the overall text size is much larger than it should be.
I've pored over the CSS. I can't figure out where the discrepancy is coming from. I can't figure out why it doesn't look exactly the same as it does in Via. It should. Chrome must use WebView under the hood, right? Or maybe now it's more accurate to say WebView is using Chrome. Either way, it should all be the same. The Chrome app is 30MB, which is bigger than Via's 12 MB, but that's probably accounting for Chrome's google profile integration and other data-mining malware. There's no way it contains an entirely separate rendering engine; the desktop version is around 200MB. Idkwtf.
In Mobile Data Banditry, I used my browser's development tools4 to modify my mobile carrier's web site to insert an <iframe>
and see if it would allow me to bypass their data restrictions.5 I complained about the user experience on a phone:
But it was at least possible in 2022. Now it doesn't seem to be. There may be some browser that offers this functionality, but crucially, I can't use the developer tools on mobile Chrome to see what CSS it's applying and why. Mobile Chrome doesn't even seem to have a view source function. It's 100% for consumption.
I have a tendency to fixate on small details---you wouldn't believe how long it took me to make sure the little arrow on the "Browse" drop-down changes back and forth correctly---but here, I'm going to have to tap out. I don't have a comb fine-toothed enough to figure out how to make the CSS look normal in Chrome, nor do I have the spoons to care. My official recommendation is not to use Chrome; if you do, zooming out to 90% makes it look closer to how I intend. Beyond that, I can't help you 🦝
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
Opera used to be great; it was my go-to browser for most of the 2000s, back when there was an actual browser ecosystem. It was bought by a vulture capital cabal in 2016 and has since used its name recognition to facilitate scams. ↩︎
-
Reader Goofpunk believes Brave and Opera are in fact using Chromium components rather than WebView; I haven't installed either browser (for obvious reasons) but if true, this makes the whole ecosystem that much more confusing to me: Why would they choose to use Chromx instead of WebView? What's the difference, but more importantly, why is there a difference?? ↩︎
-
Your phone may still come with an app called Browser, but it's probably from your phone manufacturer or carrier, not Google. Samsung phones in particular like to change your default browser back to Samsung's Browser every time your device has an update: it's a wrapper around WebView with some added malware. ↩︎
-
In that entry, I incorrectly stated that Android browsers are based on Chromium; my understanding now is that "Chromium" is just the name used by the open-source components of Chrome. If you want to get technical, the engine used by all of these browsers is called Blink. Hopefully you can understand my confusion. What is the exact relationship between WebView, Blink and mobile Chrome? ↩︎
-
It didn't, but I still think it was a clever idea. ↩︎
Blind Spots
Thursday May 08th, 2025
Tags: blog, personal
The other day, my spouse was telling me about how one of her friends, who is Christian, didn't know what Lent is. My spouse had to explain it to her. I don't know what denomination her friend belongs to, but it's a very open-minded and progressive church, which is cool. My spouse's friend shrugged and said "I thought it was just a Catholic thing."
I was very surprised by this, because even I, a lifelong non-religious person, knows about Lent. I thought it was so ingrained in secular US culture that everyone knows about it; we often hear jokes like "I'm giving up exercise for Lent". I didn't understand how a Christian of any denomination could be unfamiliar.
But it made me think of how recently I was in a car for the first time in awhile, and I forgot how to tell whether the door is locked. The lock had an orange position and a not-orange position. Orange is the color of caution, so I assumed orange meant Danger! If you close the door, you'll be locked out! Make sure you have your key! But it's actually the opposite, warning you that the door is unlocked-I assume because people keep valuable things in their cars, and they don't want strangers getting in and taking them.1 2
To someone steeped in car culture, it probably seems just as improbable as not knowing what Lent is. So before we judge someone for not knowing something, we should think about our own blind spots. It's an infinitely complex universe, and none of us can know about everything, so share your knowledge with joy so that others might share theirs with you.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
No one can actually "hot-wire" a car, right? That's just a thing on TV? Maybe cars were designed that way in the 20th century, but surely modern cars are more secure? It's too fantastical to be real. ↩︎
-
Prokyonid has kindly provided some insight on the previous footnote: "You can't really 'hotwire' most cars like you used to be able to, which was just jumping the starter circuit usually completed by turning the key to the 'start' position, because that circuit has been complicated with various security checks that if failed will cause the engine computer to shut down the vehicle. / However, many vehicles can still be driven off with if you can get underhood access and jump both the fuel pump and starter circuits, although they'll run very poorly." Many thanks for the explanation. ↩︎
IP Theater, Congrats to Rabbit, Bloggodynamism
Thursday May 01st, 2025
Tags: blog, copyright, correspondence, crafting, meta, no-ai
I was thinking about the art I use from openclipart and opengameart and it made me feel bad about publishing with a noderivs license. Having public domain art to draw from adds a lot of life to this website and my other projects, and it would be cool if someone liked one of my stories and wanted to turn it into a comic, or read it on a podcast, or use it as inspiration for a game. I'd be proud if something I made could contribute to open culture, too; I just put the noderivs clause on there as a feeble protest against AI scraping. But this is kind of silly. Technically the "non-commercial" clause should protect me, now that OpenAI is no longer a "non-profit" there's no legal argument that their activity is non-commercial, but the sad reality is that corporations are going to do whatever the fuck they want and I as an individual have no legal recourse, because the system is designed to protect capital and nothing else. So fuck it, I'm going to switch to CC-BY-SA. The only thing ND does is discourage the people who might actually get some value from my work and use it ethically. I'll keep the no-ai disclaimer even though I don't think it legally does anything; I can't legally do anything, anyway. Maybe someday I'll be part of a class-action brought by the EFF or something, that's the best I can hope for. Maybe I should just go full public domain with everything. In practice this is all just intellectual property theater. Legal cosplay. I'm not a member of the class that's allowed protection so I get exploited. That's the game I'm forced to play, so I might as well try to help my team.
Congrats to Rabbit!
Rabbit at jackalope.city finished 100 days to offload! Completing a challenge to blog 100 days in a year doesn't sound that hard on paper, it only requires a 27.4% posting frequency, but if you're not used to that amount of output, it can be quite an adjustment. It takes moxy to stick with a new habit. It takes grit to stay self-motivated. It takes courage to write even on days it doesn't come easy. Well done!
I finished the challenge in July 2022, and in typical me fashion, I didn't tag any of my posts or really talk about it much until I was done. I don't know why I'm so resistant to self-congratulation; I have this knee-jeek reaction that I would be perceived as conceited or narcissistic, but I don't think it's conceited or narcissistic when other people are proud of their accomplishments. Maybe I should try the Be Kind To Myself For 100 Days challenge.
My 100-day challenge was the self-imposed kick in the butt I needed to think of myself as a writer again. Although my output slowed down in 2023 and significantly in 2024, the bug is still with me, hopefully for good.
I'm not doing any kind of official challenge this year, but I'm well on my way to 100 posts again: 40 posts already and it's only May. I think I'm going to be more motivated to write now that I'm doing it on my own website, too. I don't have to worry about spamming any feeds, because I'm not sharing it with anyone else. I have free reign over my domain! Oops, there I go thinking like a landlord. It's hard not to when most of the rest of the internet treats us like digital serfs.
Bloggodynamism
So, I went kind of ham with the custom dynamic variables: I have not one but three custom emoji: pat
, nb
and lander
give you
1
I'm sure I'll add a few more, but I'll try to use them sparingly in the blog: they probably won't show up right in the feed, because they rely on external stylesheets for the formatting. You can't just drop an img src
tag into the middle of a sentence and call it good, you have to make a tiny div that uses the image as a background if you want to be able to size and position it properly. Way too much hassle to do it manually, but a piece of cake with the power of PHP.
But, it kind of leaves feed readers out in the cold, so I'll try not to rely too heavily on them. In fact, most of this stuff is only going to be relevant to page visitors, sorry! Feed readers can skip this section.
I created variables for each of the buttons at the bottom of the blog post: likebutton
, sharebutton
and replybutton
. Just in case I ever want to use them individually. Hey, it could happen! But I also made pagebuttons
so I can drop in all three at once, which is what I'll be doing all the time.
This wasn't that much friction before, because I could include the code in my post template, but now all that ugly HTML is hidden away in the guts of the computer, instead of messing up my nice orderly markdown files. Plus, if I want to change something about them, I can do so on every page at once! If I decide I don't want them, I can replace them with an empty string. Anything I want repeated over and over, it's always better to have a function rather than doing it by hand.
I also created blogtop
, which generates the entire top section of the blog post: the h1
title (including the pagetitle
id attribute that makes the share button work), the block quote div, the date and the tags. For pages, there's pagebottom
which shows a blockquote div with the tags and the date the page was last modified. Ideally, there shouldn't be a single page that you look at and wish you knew when it was from. I find that sort of thing frustrating. There are pages where it's not necessary, I don't think anyone is going to look at the contact page and think "what's the context for this??!", and it seems excessive to use the full pagebottom
on every single topic page. But all the main stuff should have some form of date stamp.
I also cleaned up the buttons: the share button previously broke everything if it was on a page without a pagetitle
id, but now if that attribute doesn't exist, it'll just copy the URL. To encourage inter-blog communication, the reply button will now show you a field to enter a URL to ping me from your own site (a great idea shamelessly stolen from Rabbit), with a link to the contact form if you want to send a message. I'm not using webmentions or anything, it just uses the same script as the contact form and guestbook to send me an email. Webmentions would be cool if every blog was running them and set up to automatically ping every other blog that's mentioned, but since that's not a thing, it might as well just be an email. Maybe the glorious webmention future will arrive someday.
Rather than post all the new code, I'll just link to the repository I set up as a site backup. It's a snapshot of all the HTML generated in static mode, all the markdown files and all the bits of custom code in conveniently-labeled folders. The idea is to do backups on the last day of each month, so if anything happens and I lose my webhosting again, I won't lose that much history. I kinda wish I was doing that with my oddmuse site, there's probably some stuff in there that I would like to have kept maybe I'll try to do weekly backups of my markdown...
Anyway, there are only two more features I want to hack in to call it "done":2 I want the "what's new" section to automatically display the dates and titles of the three most recent blog posts with links to view more,3 and I want the /blog
landing page to automagically show links to all the blog posts. I use a lot of images and footnotes, so I don't think doing a simple tag sort will be the best way to browse the entire blog, especially once I have hundreds of posts here.
I'd prefer if tag search worked more like bear, where it just shows you links to everything with that tag instead of full pages, and I'd like it if I could have a page that shows every tag. There's no easy way to do that with kiki. Which isn't a big deal right now, but you know, I'd like this to be my forever home. Someday, muse willing, this site will contain vast multitudes. I think I'll be able to hack all this in, I feel more confident after messing with dynamic variables and looking at the pagegen code. It'll be a lot more complicated, but it's doable. I know how to do a for loop. I can see which part of the code looks at the page tags and how. I know how to put a div together piece by piece. The main problem is figuring out at which point in the program the variables I need to work with are in scope. It's challenging to figure out by reading the code which variables I can use where.
I know I can do it, but I really, really need to take a break from programming now. I love it but it has taken over my brain. I have a site that I'm really happy with, it's time to use and enjoy it
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
And now
sad
gives me , which I added for this post. ↩︎ -
But I have the curse of the tinkerer, nothing will ever be done unless I force myself to accept it as done, there will always be bits I look at and think "I should make this different". Lord grant me the wisdom to not change the things that don't need changing. ↩︎
-
I was using an RSS 2 HTML widget for this, which is really handy when you're on neocities and stuck with HTML and js, but I can find a much more elegant way to do it here. Plus, it would sometimes take too long and prevent the rest of the page from loading for several seconds, and for whatever reason the async attribute was making it break the page layout, so something about it doesn't play nice with the pagegen code. ↩︎
Brain ups and downs
Tuesday May 27th, 2025
Tags: blog, books, personal
I'm reading again, that's the important thing. After I finished Sick Little Monkeys, the subject of my Ren & Stimpy post, I thought "wow, now I remember how good reading makes me feel. I should keep doing it." And I did.
I also got back into audiobooks. It's been a distressingly long time since I've taken the chance on an audio book, but not long ago, my library hold on John Green's Everything is Tuberculosis, which I placed back in March, finally became available. I listened to that and it was very good. Five stars.
I'll post a short summary and review of what I've been reading soon, but the important thing I've learned is, I should always have a book to read at home and an audiobook to listen to at work. Reading is maybe the best thing I can do with my leisure time. The effect that it's had on my attention span and overall amount of stress and anxiety is enormous. I'm calmer, I can think more clearly, and I feel more confident in myself. I tend to hit lulls because after I finish a book, I try to find the perfect book to read next. I hem and haw and usually wait so long to start something new that I end up losing all my inertia and forgetting that I like to read. I've learned that it's best to just start reading something else immediately, it doesn't have to be something new or big or important, it can be a re-read of a favorite book, a novella, an entry in a trashy but readable fantasy series, anything to keep the momentum going... and even the trashiest fantasy novel is probably going to be better for my brain than whatever else I do to relax.
I'm already disinclined from watching movies and TV, but I also spend a lot of time in front of my computer doing... essentially nothing? I rewatch youtube videos a lot. I watch new ones, but the number of subscriptions I have is fairly low. I guess I read a lot of blogs and articles and stuff I get recommended on fedi, but in an unintentional, easily distracted kind of way. Now when I get home from work, instead of plopping in front of the computer and loading up youtube, I'll lie down and read for an hour or two. Sunny's been very helpful in this regard.
Sunny, a black cat, lies on my stomach and looks relaxed as I pet her back. She laid on me while I read for nearly 2 hours.
Reading on a cool quiet day with a cat on me is one of the very best things in life. I recommend it.
Now here's the bad part: I'm currently on day 2 without my meds. They were due on Sunday, during a dreaded three-day weekend. Naturally, I didn't think to contact my doctor's office for a refill until Friday, because I don't think about this shit a week in advance. Nobody came in on Friday, and Monday was a holiday, so I finally got the refill today and I can take it again starting tomorrow. Hopefully my brain isn't complete mush tomorrow and I can start a longer entry about what I've been reading. If you're on The StoryGraph and you want a sneak preview, feel free to follow me, but I pretty much just use it to track what books I read and give star ratings, my actual thoughts will go here. I started a challenge to read 30 books this year, and I fell embarrasingly, hilariously behind almost immediately: I've read 7 books and I need to read 5 more to get back on track with my goal. But considering 4 of those 7 have been in the past month, I think I'm more than able to get caught up, as long as I don't stop. Having my brain in the habit of reading has definitely reduced the amount of suffering in the last couple days. I must remember this. Now if you'll excuse me, it's 21h30 and I need to go collapse into bed.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Quick Note on Captchas
Wednesday May 07th, 2025
Tags: blog, meta
Well, the "negative captcha" I talked about a few days ago didn't do shit. The oldest reference to the idea I can find is from 2007, so I should've guessed that trick would no longer work. I've been getting a ton of spam in the guestbook for websites about finding pre-owned cars in Ukraine. Even if I were a Ukrainian car-driver, I'd probably have more pressing issues at the moment.
So there's a captcha again, and this time it should be something that's trivial for humans to answer but hopefully subjective enough to trip up a bot-and also not based on image recognition, because that can cause accessibility issues, and doing an audio captcha is a pain.
I expect that these bots are doing some sort of LLM query now, which seems nuts-if my tiny nothing of a website with no external links is a target, the bots must be spamming at a massive scale, and doing an LLM query for thousands or millions of websites must be super expensive; I hardly see how spamming my little website with rounding-error traffic can possibly be worth it. But spambots were able to figure out what color the sky is, and tell me, so there must be some amount of language processing going on.
I feel like identifying that a word "sounds like" another word is something even LLMs would struggle with,1 so hopefully this cuts the spam without being too much of a burden. I mean, I guess I could ask "how many Rs are in the word strawberry" and it'd be effective forever, but that might trip some people up, too.
Also, when I was setting this up, I realized that the form for mention URLs when you press the "reply" button was configured incorrectly, so if you sent any of those, I haven't been receiving them. It should be working now, so feel free to resubmit if you like and sorry about the error. There's no captcha on that form at the moment, but I might add one if it becomes a problem too.
Finally, to the reader who sent a reply to Neurodivergence around when I was messing with the captcha stuff, your message came through and I'll reply when I get a chance. Sorry for all the weirdness.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
When I got home from work, I asked one of the leading chatbots to answer and sure enough it flubbed it in spectacular fashion. It clearly didn't understand the question and the rationale for its wrong answer made no sense even in a vacuum. ↩︎
Coding as a Craft
Saturday April 26th, 2025
Tags: blog, crafting, kiki, mental health, meta, programming
Learning about bash and working on whirltube has got me feeling the programming itch again, and I'm not sure what to do with it. Part of me wants to keep adding stuff to whirltube even though I don't need to, but that way lies madness. I need to find a new project (or go back to an existing one.)
I've never approached coding like a programmer. My interest in programming lies in my ability make tangible things. I wasn't blessed with natural artistic talent, I can't paint a painting, or record an album, or build a chair, or grow a garden, or weave a tapestry; but I can create a program. I can visualize what I want a piece of software to look like and do, and I can start with nothing, and I can build it brick by brick.
Most professional software devs will tell you you're a fool if you start from scratch, that you should use existing libraries as much as possible. Why reinvent the wheel? But to me, the invention is the joyful part of the process. It's fun to invent the wheel. There are a lot of wheels I could use, but this one is mine. To me, it's like saying "why paint Mt. Fuji? There are already lots of paintings of Mt. Fuji, just look at one of those."
It's inefficient, of course it is, the same way painting a picture is inefficient compared to taking a photo, or writing a blog post is inefficient compared to telling an ai to write one for me, or watching the sunset is inefficient compared to work. The inefficiency is the point.
This is an unorthodox view of programming, because historically, the efficiency has always been the point. Back in the 60s and 70s, computers had so little processing power and memory to work with, efficiency was everything. You had to be a technical sorcerer to make a computer do anything, much less do it well. High level languages like BASIC and COBOL made computing more approachable, but you had to use machine code to make anything real-time or impressive.
Fast-forward to today, and computers can do billions of things per second, many of them simultaneously, and hold vast libraries in their volatile memory. A bit of inefficiency isn't going to hurt anything. I have no interest in optimizing my program until it can execute commands in 0.005 seconds instead of 0.01.
Video Game Tangent
This optimization fetish is still fairly common among programmers, and we see it manifest in niche game genres. I was excited for the Zachtronics game Exapunks, and pre-ordered the edition that came with the physical zines and other feelies. I loved the retro hacker aesthetic (still do) and was excited to jump into a game that involves actual programming. I thought it would be right up my alley.
I got nothing out of the game and gave up on it almost immediately. I was solving the puzzles, but it didn't feel like fun to me, it felt like work. The game showed me how quickly my friends' programs completed and in how few lines of code. It expected me to want to try to beat their scores, but why would I? I solved the puzzle. Why would I care about solving it better? I achieved the goal.
We see the same zeal for optimization in sims like Factorio and Stardew Valley, and in sandbox games like Minecraft. I get no dopamine at all from these sorts of games. I bought My Time at Portia thinking it'd be an Animal Crossing-esque chill social life sim game with more mechanical depth, and was disappointed when it devolved into optimization porn. I reached a point in the gameplay loop where I was expected to build intricate clockwork systems of widgets creating and refining materials to use to make other widgets, and I was done. It started feeling like drudgery. I came to realize that playing and creating are two very different mindsets for me. With play, I'm extrinsically goal-oriented. I want a game to present fun systems for me to interact with to achieve concrete goals. I also want an interesting world to explore and a character to represent "me" in the world.
Creation is different. My goals are all intrinsic. I want to visualize a thing and have the building blocks I need to make it, self-directed. I want to turn nothing into something. My attitude when I play Minecraft is, why would I build something in this game when I could be building my own game? As usual, this bridge between what I like and what everyone else likes is a shaky one of unattainable passage, but at least I've figured out how my brain works and can adjust my expectations accordingly.
Back To Programming
That was a very long tangent, but hopefully it helps illustrate why I approach programming as a craft and not a science. This isn't to downplay the importance of efficient, optimized, low-level code for the functions that need it. For example, compression algorithms. Our entire media ecosystem is dependent on image, audio, and video compression. These are getting better all the time, and we've seen some truly staggering gains in file size and efficiency, which means we need less bandwidth and less storage for media of higher quality than was possible just a few years ago. I can't even begin to grok the math and physics required to make this possible, and I'm in no way comparing myself to the actual computer scientists. I'm grateful for all their work.
I guess in technical terms one could call me a "front-end developer", although most folks who self-identify this way would probably not accept me into their club, either. My idea of what makes a good interface isn't state of the art.
I think TUIs, or text user interfaces, are cool. I think mouse-driven interfaces are good for UIs that require a lot of non-linear decisions in a small amount of space, like a hypertext document or a LucasArts adventure game. But for a menu-driven interface where each menu only has a few options, I think keyboard control is the way to go. If a menu only has four things to do, why make me move my mouse between them? Why hide options behind multiple clicks? If a menu can be controlled exclusively by the four main fingers of my left hand, it requires almost no thought or effort.
When GUIs were the new hotness in the late 80s and early 90s, and everyone was getting used to this strange new tool called the "mouse", every peg started getting hammered into the "mouse" slot whether it made sense or not. I think that's a shame.
On the extreme other end, which I also don't like, is the command line interface, which I don't really think is an interface at all. It's an interface for other programs, not people. One of my main beefs with linux is that many programs are written with the assumption that people will enjoy interacting with the computer this way, and I don't. I don't want to have to type --help
and scroll through a myopia-inducing codex of arcane glyphs to figure out how to do what I want. I strongly believe that if you invoke a program without any arguments, it should give you a basic TUI with the most commonly-used options and let you select one. That's what whirltube is, it's what I would expect to see if I type "yt-dlp" on the command line and press enter, if the world worked in a way that makes sense to me.
So, TUIs are cool. You know what else is cool? Websites.
What's Next
When I started writing this, I didn't know what my next project would be, but now I know. It's my website.
Kiki came along, and it's exactly what I've been looking for in a "CMS".1 It's a wiki and a blog engine written in PHP, but it's not a gigantic monster of a framework like Wordpress or Mediawiki. It's also not a stripped-down static site generator that requires building on the command line.2 It's a web 1.0 creation tool for the 21st century. You don't have to install node or react or ember or any JavaScript frameworks; you don't need any frameworks whatsoever. Just a webserver that supports PHP (or any webserver at all if you're using it in static mode.)
In Self-Hosting Again I reckoned that I wouldn't be moving off bear anytime soon:
It'd be nice if there was a self-hostable CGI blog CMS for normal people, but [...] that's not really a thing.
Kiki is that thing! It exists! It supports a markdown flavor that's basically exactly the same as what bear uses, so my writing workflow is the same. I can post entries and create pages from my website, without needing to FTP into my site. When I can FTP into my site, that's when it gets really fun.
I forgot how much I enjoy having full control over the l tech stack. I can edit HTML and CSS, but I can also get in and hack the PHP engine itself. I can change any aspect that doesn't suit me. I can add new functionality! I just need to learn how to do it in PHP, which despite what the tech world would have you believe is still quite functional and stable. I can even add a bit of javascript, for fun. I've softened on my anti-javascript stance. Writing raw JS is a good time. I can add all sorts of fun little widgets and Easter eggs. No, as I noted in a recent footnote, the enemy isn't javascript, it's frameworks.
The Mozilla Developer Network says:
JavaScript frameworks are an essential part of modern front-end web development
I live in the modern era, so I guess I still don't qualify as a front-end developer; but you can call me a web crafter 🦝
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
My headphones keep crashing
Monday May 19th, 2025
Tags: blog, LinuxSaga, tech
Occasionally my headphones will suddenly start repeating the last audio sample it received, machine-gun-like; this lasts about 10 seconds, then the headphones disconnect, then a few seconds later they reconnect. It sounds just like when a game crashes and your sound driver doesn't know what to do with the garbled data, so it just repeats the last sample over and over until you either kill the program or restart your computer.
It's tempting to blame this development entirely on linux, but it's happening with my phone, too. It's much less frequent on my phone, and I can go most of a workday with only one or two crashes, but at home, it's reaching a point where I can't even get through a 30-minute video without a crash or two. Linux seems to be the catalyst, but it's not quite so clear-cut.
If you're a regular reader, you might be aware that I use a somewhat specialized pair of headphones:
These are 3M Worktunes Connect headphones, and despite their poor rating on the product page, they're the best headphones I've found that meet my needs. They provide 24dB of noise reduction, they're fully wireless and they have a battery that lasts all day on a charge. They've really become an indispensable part of my kit. They protect me from the noise pollution of urban life,1 but more importantly, they've improved my executive function tremendously. I can leave them on for most of the day and listen to things as I do what needs doing. I can listen to podcasts, videos, audiobooks and music all day at work. When I get home, I usually disconnect them from my phone and pair them to my computer. That way, whatever I'm watching or listening to, I can continue watching or listening to when I get up and do something else. I can make dinner, or wash dishes, or take care of Sunny's needs without it feeling like a chore, because my focus isn't interrupted.
I have a pair of wired headphones I use for streaming2 and I've been using those until I can figure out what's going on with these. The cable isn't long enough to reach the computer on my desk, so I have my microphone on its tripod plugged in via USB, and my headphones are plugged into that. It works, but it's a lot harder to get up and do something when I have to pause whatever I'm listening to.
Bluetooth has always been a terrible unreliable technology, but I never had anywhere near this many problems before I started using linux. They never crashed like this, and I've been using them for a long time. I'm on my third pair. They typically last 1-2 years, and when they fail, it's always been a physical fault: the wire frame snaps from repeated flexing, or the button breaks. I've never had to replace them because of a software issue before. Sometimes they'll disconnect from whatever they're paired to for no reason, bluetooth is flaky, but never like this. The fact that it's also happening with my phone makes me wonder what in the world can be happening.
I don't know much about how bluetooth works, but here's my theory: the headphones must have some small amount of memory to store the device address of every bluetooth device it's been paired with. I believe this is necessary because every bluetooth connection is a handshake between two devices; even though they don't have a display and their input is limited to a single button, the headphones must contain a tiny computer to make this handshake, and because it would be annoying to complete the pairing process every time, it has a small amount of flash memory to store the device history. How many devices will a person pair the headphones to in the lifetime of the product? The headphones can probably store like 50-100 addresses, which the designers assumed is massive overkill, nobody will ever pair them to that many audio devices.
Well, the linux bluetooth driver, being open-source and thus not as purpose-made or well-tested as manufacturer's driver, may be doing something to cause this storage to fill up. It's not using a different address every time, because I don't have to "re-pair" the headphones each time they crash. There might be some sort of garbage collection that's not being done properly, causing the buffer to overrun and the headphones, not designed to deal with this failure mode, simply crash.
This is all conjecture, but that's the only story that makes sense to me. That would explain why they're much more stable with my phone, and why I never had this issue before switching to linux. All that said, I'm not sure exactly how I'm supposed to fix it. The manual says the headphones have a "factory reset" mode that can be activated by continuing to hold the button for 7 seconds after I turn them off, but that doesn't seem to do anything on mine
At some point I intend to get a dedicated bluetooth transmitter, like this:
That way I can just connect my computer with a 3.5mm headphone jack and hopefully won't have to worry about software at all. It'll degrade the audio quality somewhat, but I mostly listen to speech when I'm at home anyway, and if I'm listening to music, it's usually through my good speakers.
The transmitter pictured is currently $35 at the Bezos Bazaar, which is more than I'd like to spend just to get headphone functionality back. There are cheaper options, but they mostly seem designed for car use, so I don't expect the range will be very good at all. Having a dedicated transmitter with a proper antenna will hopefully give me a better connection, because it also tends to break up if I move too far away from the source, turn on the microwave, etc.
What's unclear at this point is whether I'll also need to replace my headphones. At this point in time they're working fine, I'm at work and they've been connected to my phone all morning without issue. But without the ability to do a factory reset, or troubleshoot them at a hardware level, it's hard to be 100% sure the crashing won't persist. I don't want to spend $35 and find out the problem really was the headphones all along.3
I say all this now before my next proper linux update, because this is the biggest issue I've experienced since switching, and I can't even definitively blame it on linux. But you have to admit, the circumstantial evidence is hard to ignore. Other than this, it's been relatively smooth! Tune in next time to hear about the good stuff! And a handful of minor nitpicks!
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
Some might be wondering why I don't "just" get active noise-cancelling headphones. I've tried them, and they don't work for me. They work fine for the consistent drone of the bus engine, but every time it hits a bump or pothole, the sound shoots through my skull as if the headphones are little ear trumpets funneling the sound directly into my auditory cortex. ↩︎
-
Bluetooth headphones add an unacceptable amount of lag for streaming, because I hear myself a split second after I talk. The 3M headphones have a 3.5mm jack for wired mode, but incredibly the audio is still processed as if it's being used in bluetooth mode. The lag is still present and the battery needs to have a charge, so they don't turn into normal headphones once the non-replaceable battery dies, they just become e-waste unhinged engineering. ↩︎
-
There are some cheaper options in the Ma Market, and ethically I really don't know if there's much difference these days, but there is a greater risk of not getting what I paid for. I checked ebay and, like all common household goods, I don't see any used ones being sold at a second-hand appropriate price. What a pointless website that turned out to be, huh? ↩︎
Debian is my smoothest Linux experience yet
Thursday May 22nd, 2025
Tags: blog, LinuxSaga, tech
General desktop experience
It's been over a month since I made the switch to Debian from Windows 7, so how's it going? Not bad! I've been able to get a desktop experience pretty similar to what I'm used to, and in fact I like Bluecurve more than any of the styles available on Windows 7. My installation has been rock solid so far, and I don't believe I've needed to restart my computer once. Minor nitpick #1: I usually put my computer to sleep when I'm not using it, but for some reason it now always immediately wakes up when I try to do so. So I've been using "hibernate" instead, which means to wake it up, I have to physically raise the screen of the laptop slightly. Which isn't that bad, and it keeps me from accidentally waking up the computer by bumping the mouse, so it might be an improvement.
Once I got past the initial setup phase, I've barely had to type my password at all. I'm not installing or updating software at a rate anywhere close to where it'd be an annoyance. Critically, Debian doesn't constantly nag me to update shit. I can keep using the programs that work for me and update what I need, when I need to. This hasn't been the case even on other Debian-based distributions, so I'm very happy to have such a peaceful computing environment.
Nitpick #2: there have been a couple instances where the version of a program in the apt store doesn't work---yt-dlp comes to mind---but grabbing the binary and adding it to my path
has been painless. This is a general linux development, not something specific to debian, but I'm pleased with how often I'm able to download a binary and it'll just work. The era of expecting the home user to compile shit from source to do anything appears to be over.
Games
Now, I haven't been doing anything all that complex yet. It's still a 10-year-old laptop, so the only games I've been playing have been NES roms and small indie games from itch, which have been working fine. I haven't been streaming or needed to edit video: I was disappointed to learn that most of the Archipelago randomizers that didn't work on Windows 7 don't work on linux either. I don't know why I didn't think to check this---I assumed that since archipelago is cross-platform, the developers would try to be cross-platform as well, and I just needed a current OS. Sadly, many of them seem built solely for Windows 10 or 11, even games that have native linux ports like VVVVVV and Rogue Legacy. I tried to get the randos working with proton but the whole arrangement is just too janky. Bummer!
Crafting
Most of my creative work in the last month has been this blog and website, and debian has been just fine. Filezilla doesn't have the weird development drama that the windows version has had, so that's been my ftp interface. It's missing a few nice features that WinSCP has, like I can't right-click in a remote folder and create a file directly, I have to make it locally first and upload it, but it's not a huge deal.
For editing I've been using mousepad, the default text editor for XFCE, and it's great. It's like notepad except that it has nice dark themes, line numbers and syntax highlighting, all the features I want from a full IDE without all the cruft.
Nitpick #3: the find-and-replace in mousepad is busted. I found this reddit thread suggesting this is a long-standing bug, so as recommended, I've been using gedit for my find-and-replace needs; but I don't want to use it as my default editor because the UI is awful. That thread is 6 years old, and when I tracked down the bug it does appear to have been fixed, so I'm going to try to update to a newer version of mousepad and hope the UI is unfuckedwith.
Nitpick #4: image editors
Speaking of fucky UIs, one of my primordial frustrations with linux is the lack of an image editor with a normal UI. On windows, Irfanview and paint.net have been indispensable parts of my image-editing workflow for over a decade. Irfanview is the best program for operations like cropping, resizing, adjusting colors, rotating, and exporting. It's unbelievably fast and lightweight. It's so good I even paid the voluntary 10€ registration fee, back when I was making more than a living wage and could support projects like this, that's how important irfanview is, and it has no equivalent on linux. I did get it working under wine, but it's janky. It takes a long time to start up. If I try to paste the contents of the clipboard into a new image, it creates a canvas with the correct dimensions but is completely transparent. Certain keyboard shortcuts don't work: I can't alt-click to create a ratio-bound selection because in linux, pressing alt and click-dragging resizes the window. Enough little frictions that add up to an experience that's sadly not really usable.
Paint.net has an intuitive paintbrush-like UI with essential features like layers, magic wand select, and plugins that enable feathering and stroke fill. For as good as Irfanview is for basic image editing, paint.net is good for intermediate image editing. It's a shame that it'll probably be forever windows-only: it relies too much on .net libraries to work under wine. It's theoretically possible to create a linux version with mono, that's how Bizhawk handles their linux port, but paint.net is free-as-in-beer, not open-source, and the developers don't seem to have any interest in changing that.
Pinta was once a workable paint.net clone, but it's always had issues. When I used it back in the day, it crashed a lot, and to this day, it doesn't support any scaling algorithms. It works for pixel art, where the only scaling I need to do is integer nearest-neighbor, but for any other use-case it makes images unacceptably crunchy. Recent versions have fucked up the UI, using small, indistinguishable monochrome icons, so it's no longer even a good paint.net clone.
There's the image editor with the shitty name. I've tried it. The less said about that one, the better.
Krita seems like it would be a great program for people who use a drawing tablet to create digital paintings, or are used to the quirks of this type of software; for me, the UI is unintelligible nonsense. Any image editor that requires me to look up a tutorial to figure out how to erase is, to me, a bad piece of software. I found a reddit thread titled I just want to erase something expressing the same frustration I was having. Here's the advice the person was given:
If you want an eraser to work on a click instead of sliding over the unwanted pixel you'll need to make an eraser brush out of a stamp. Stamps are designed to work without movement across pixels , brushes are designed to never do that, otherwise we'd all be making unintentional marks each time we positioned the brush.
Just pick any stamp brush at all, change the tip to the plain square or circle and change the blending mode to erase. You can then save this new preset if you wish.
Statements dreamed up by the utterly deranged.
I put out a call on fedi to ask if anyone knew of an image editor I was overlooking, and Rylie at Game Making Tools suggested LazPaint. It's the closest thing I've found to a normal, functional image editor. It starts up instantaneously, has most of the functions I need from paint.net, and has a UI that mostly makes intuitive sense. There are some quirks; for example, I'm used to having buttons to move layers up or down, and LazPaint seems to only allow me to drag them; when I save an image, the descriptions for image quality and bit depth settings are the same color as the background, so I have to kind of guess what I'm doing from the sliders and drop-downs; the way the color selector works is a bit wonky compared to what I'm used to; but overall, it's the first linux image editor I've found that's generally usable. All of this site's merch was made with LazPaint, which I know doesn't look that impressive, but it's the only way I could make it at all. It allowed something in my head to exist as opposed to not exist. To me, that's a win.
Videos
Youtube continues to be a nightmare website. I can barely watch videos at 480p in firefox; when I do, I have to use "theater" mode, because having other thumbnails on the screen drops the video playback to shoe size FPS.1
Luckily, yt-dlp continues to work fine. I use whirltube to streamline the process, and most short videos download in less time than it takes the video page to fully load in firefox. If I stuck with Windows 7 it would only be a matter of time before the developers dropped support; the releases on the GitHub page now say you need windows 8+, so I think it already happened. I'm glad I no longer have to worry about that.
Nitpick #5: I'm having a surprising number of issues with VLC. Most youtube videos I download work fine, but any video from another source is a roll of the dice. When I was doing research and taking screenshots for the Ren and Stimpy post, videos would start with a strange "strobe" effect where it would show the video for a few frames and go black for a few frames; this went away when I scrubbed forward in the video and scrubbed back to the beginning. But videos also had a strange artifact in the form of a corrupted stripe at the bottom of the frame. Here's what the first image from the R&S article looked like before I cropped it:
No idea what's causing this. I've been watching Rocky & Bullwinkle with my spouse, one of her childhood favorites, and those episodes have the same issue. The built-in video player is called Parole, and it doesn't do this, but the UI sucks and there's no way to capture screenshots. I'm surprised it's so janky, I don't think I've ever had a single issue with VLC on windows.2 It almost feels like some sort of PAL/NTSC conversion issue, but that makes no sense with a digital file, right? Even if they were ripped from PAL DVDs, surely there's no difference once they've been codec'd and deinterlaced, right?
Some videos won't play in VLC at all. The player opens and immediately crashes. For those, I have to use the built-in media player. It's called Parole, and it doesn't have any of the issues that VLC has, but the UI is bad. Scrubbing through the video is janky and imprecise. It can cause playback freezes and desyncs. It doesn't have a snapshot feature. Perhaps it's time to find a different program. It's hard to imagine VLC not being the gold standard, though. Even the android version, for how clunky the UI is, works.
Misc. nitpicks
The clock doesn't sync from the internet. I had to set it manually, and it drifts by several minutes over the course of weeks. If I completely shut the computer down, it'll be off by however many hours it was off; luckily, it seems to know how long it's been hibernating and adjust the clock accordingly. My understanding is that I can fix this by installing something called ntp, and it doesn't seem that complicated, but it hasn't been high enough priority for me to fix it yet. It's odd in 2025 to have a system that doesn't just keep the time synced out of the box.
The numlock state keeps flipping on its own. I always want to use the numpad for numbers, I'll never want to use those keys for navigation, so this is frustrating. I installed a program called numlockx, and followed instructions to add it to my xinit
file (which works kinda like autoexec.bat) and that mostly did the trick, numlock doesn't get switched off every time the screensaver kicks on anymore; but I still occasionally try to type numbers and can't because it's been flipped. Idk why, there doesn't seem to be any rhyme or reason to it.
Headphone update
I owe linux an apology, my theory was wrong and I'm almost certain my headphones crashing is due to a physical fault. This is because the crashes are strongly correlated with moving the headphones in some way, like pulling an ear cup to scratch my head, pushing the button, putting them around my neck, taking them off or putting them on. I had suspected this might be the case, but I dismissed the possibility because I couldn't reproduce it. No amount of wiggling the headphones or the wires could trigger an intentional crash. After spending some more time with them, it's too strong a correlation to be a coincidence. The reason it happens less often at work is because I move less: I spend most of the day doing the same work, or at least the same category of work, with minimal movement except when I get up for breaks. At home I move both myself and the headphones a lot more. It sucks that I need to replace them but I'm glad I know what the issue is.
Unknowns
In the late 2000s, I had a netbook, as was the style at the time. I went through a period, much like now, where my primary computer died and I had to use the netbook as my main system in the meantime. To squeeze more performance out of it, I used something called Ubuntu Netbook Remix, which was a stripped-down version intended for low-performance processors and limited RAM. It worked okay for most basic tasks, but one of my most negative experiences with linux happened when I needed to print something.
I shit you not when I say it took the better part of the day figuring out how to do this. I spent a good 6-7 hours on one of my days off looking at forums, documentation and tutorials, trying to piece together contradictory information about CUPS, postscript, spoolers, daemons, and other assorted buzzwords that made no sense to me. I did eventually get it to work, but I vowed that once I got my desktop up and running, I would never touch linux again.3 One of the most unpleasant troubleshooting experiences of my life for what was, in my mind, one of the primary functions of a computer.
These days I don't have many reasons to print at home. In the rare cases I need to print something, I can usually do it at work. We to through so much paper and toner that the occasional personal document is unnoticeable. I ran out of toner at home and haven't bothered to replace the cartridge yet. I dread the day something changes at work and I once again need to figure out how to use my printer, although it has to be better now, right? God, I hope so.
Well, that's the long and short of it. I still don't know how my setup will hold up to more intensive games, streaming, video editing, etc. because the computer itself is the bottleneck. I talked a lot about nitpicks, but my experience has mostly been remarkable for just how unremarkable it is. The OS, for the most part, stays out of my way and lets me do what I need to do. I don't think it's a drop-in replacement for windows for most people, and I'm fortunate that I'm somewhat technically inclined, enough to make it behave the way I want---but I don't have to be a full-time, card-carrying certified Computer Toucher to make it work, and my hair remains untornout. I hereby declare Debian the winner of linux. Congrats to Deb and Ian for their success
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
US shoe sizes, so like, 5-20. ↩︎
-
Other than the lack of a "go back a frame" button, but this is a well-documented religious objection on the part of the developers. ↩︎
-
Microsoft made a liar out of me. I couldn't imagine how bad things would get, but it's now clear that open source is the only viable future under capitalism. ↩︎
Work is annihilating my soul
Friday June 13th, 2025
Tags: blog, health, personal, work
Tuesday1 was my quarterly doctor visit. Medical appointments are always stressful, because I still don't have any paid leave or sick time benefits. I have to manage my schedule to try to miss as little time as possible, and then try to make up that time at some point during the week. I usually try to schedule appointments as early in the day as possible for telehealth, or as late in the day as possible for physical appointments. Leaving in the middle of the day on the bus, having my appointment and coming back on the bus would easily wipe out half of my workday. This time my appointment was at 16h40, so I only had to leave 1h15m early, which is easy to make up.
Going to the doctor that late is kind of creepy. Barely anyone has appointments that late and a lot of the office staff has already gone home for the day. They didn't have the AC on, so it was too hot and far too quiet. The doctor is an anxious experience even at the best of times, but going in the evening dials the uncanny vibes up to 11. I did okay, though. My blood pressure was normal for the first time I think ever? It's never been outrageously high, but they almost always have to tell me it's elevated because it's a few points above the "normal healthy adult" target of 120/80. This time it was 118/74 which is doubly impressive because I haven't been taking my blood pressure medication. Not because I'm anti-medication, but because it's very difficult for me to remember to take any drug that doesn't have an immediate, obvious effect. My brain just can't be bothered if there isn't a cause/effect relationship between doing something and feeling better. This is bad! I need to train my brain not to be like this. But this time I managed to beat the system, and I suspect I have my 10,000 step/day program to thank. Take that, big pharma, I found one weird trick to dodge your poison pills. Doctors hate it! It's diet and exercise.
Wednesday and Thursday at work were rough. My immediate supervisor, Caribou,2 was out for several days last week on medical leave. Her spouse is very sick and needs intensive regular medical care; for most of May 26-29, she was scheduled to be out of the office for a visit to a hospital in another state. She was supposed to return on Monday, but she didn't. I don't know exactly what's going on, and I don't want to pry too much into her personal life, but there were complications that prevented her from coming into the office most of last week.
My work is mostly self-directed, and there's still a big backlog of stuff to work on, so this didn't effect my main duties. However, her being out for so long has made things more complicated. You see, my main day-to-day tasks are fairly mindless grunt work. That's how I can listen to podcasts and audiobooks while I work, nothing I do requires all that much brainpower. Occasionally I encounter an issue with a task that I need to give to Caribou before I can complete it. It's not that I'm not able to solve these problems, but they require granularity and attention to detail, so for assembly-line efficiency, I normally set those aside for her so I don't have to break my workflow.
She's been out for her spouse's medical needs before, and I always felt bad about giving her a big pile of problems to deal with when she returns, but I never tried to do her part of the job because I've technically never been trained or asked to do it, and I didn't want to risk doing something wrong. But she's never been out for this long, and the emails from down the chain asking about these problems have become increasingly insistent and urgent. I would probably technically not get in trouble if I ignored these emails.
But, well, this time things are obviously really bad for her to be out this long, and I couldn't bear to give her hundreds of urgent problems to deal with when she gets back. I've watched her solve these issues from being included on the email chains, and I knew I can't permanently fuck anything up by trying to step in and help. The worst that can happen is being told "this is wrong" by someone further down the chain, at which point I'll either set that one aside or ask someone else for help. If I have to ask someone of high status a dumb question and look like an ass, so be it. Whatever annoyances I cause will be tiny droplets compared to the bucketfuls I'm bailing out to keep the ship afloat.
On Thursday Squirrel, a co-worker I don't see that often because I work in another part of the office, came to me with some questions. She's also been doing her best to help with Caribou's workload and was also feeling overwhelmed. It felt good to have an ally. There are tasks that I know how to do and she doesn't, and tasks she knows how to do that I don't, so we traded problems, which helped a lot. I also took the initiative to create a shared spreadsheet to help keep track of issues as they come up and track what's been done to solve them. Caribou is very kind, but she's never been the most organized or technically-inclined critter. I've often thought her job would be a lot less stressful if she just had some better systems in place. Squirrel thought the spreadsheet is a great idea and has been using the spreadsheet as well, which made me feel good. Most of the problems involve a great deal of e-mail tag with multiple organizations, some of which are good at communicating and some of which are very bad. With the spreadsheet, we can easily see which problems have been fixed, which ones are waiting for a response and which ones have generated additional issues without needing to wade through a sea of badly organized email reply chains to find the relevant information. If we get a nastygram from up the ladder asking why something still hasn't been fixed, we can easily look at the spreadsheet and say "we reached out to XYZ Inc. on such-and-such date and haven't received a response; I'll follow up with them now."
Health interlude
The above text has been sitting in a draft on my phone for almost a week. I've had no mental or physical energy or time to add to it. I've still been taking walks on my lunch hour. I dare not lose all my inertia there. But other than that, I've been spending every available minute at work working. I haven't been listening to my audiobook. Just music and youtube bullshit. I haven't felt like reading when I got home. I haven't felt like doing anything. I've gone through busy periods at work and I've rarely felt this bad. I've been eating a normal amount and getting exercise. I wasn't sure what I was doing wrong.
Well, I just figured out one potential culprit: the sprayer on my inhaler broke. I noticed it wasn't working like it used to, the spray wasn't as noticeable, but the counter showing the remaining sprays was decreasing, so I thought maybe it was in my head. Well, I tried spraying it with the nozzle pressed tight against my hand, and the spot completely dry. This goes a long way towards explaining why my whole body has been so sore and I haven't been able to think: my muscles and brain haven't been getting enough oxygen. My daily walks have probably been doing more harm than good. I've been overexerting myself. I've been underestimating the importance of oxygen. All my life I assumed it was always there, then when I was almost 40 I was diagnosed with exercise-induced asthma and suddenly my whole life made sense. Well, made more sense.
I don't know how the sprayer broke. I keep the cap on and the inhaler in my backpack. I guess I set my backpack down too forcefully one day and the plastic snapped. I'll need to be more careful. Perhaps I'll try to fashion some sort of foam-padded case.
Back to work
So yeah, having the spreadsheet has made it easier to keep the stuff organized. At the risk of outing myself as irresistibly cool and sexy, I love a good spreadsheet. But I still need to spend a big chunk of my day writing and responding to emails. So I guess that's where my writing energy has been going.
I don't like being the person who has to write emails. I'm fine responding to them, I can respond to emails all day. I'm quite good at it. I can read an entire email, distill the important information, and follow all of the instructions.
This is how the average exchange goes when I have to write an email:
Monday
🦝: Hey, this document is incorrect. Could you please submit a revision without 🍎, 🍌 or 🍒?
Wednesday
🐰: Attached is the revised document, we have removed 🍎 per your request. Please let us know if you have any other concerns.
🦝: Thank you! The document still has 🍌 and 🍒, please resubmit with these removed and we'll process it as soon as possible.
Friday
🐰: Whoops! Here is an amended document without 🍌. Good thing it's Friday 😅 LOL! Have a good weekend!
🦝: Thank you. Now we just need a version with 🍒 removed and we'll get this taken care of as soon as possible.
Tuesday
🐰: 🍒 is how we've been doing it all along. We were instructed to do 🍒 in email exchange with 🐴 on Mar. 31 2022, is that no longer accurate? Please advise.
🦝: 🐴 has not been with this organization for 6 years and it would have been illegal for us to process the documents from this period if you had been doing 🍒. Could you be thinking of policy 🍓?
Friday
🐰: You're right, sorry! Here is the document with only 🍓, 🍎 and 🍌 as per your original request, have a great day.
🦝: Thank you. I have taken a vow of silence and decided to live in the forest effective Monday. If you need any nuts or berries, please write your request on a pinecone and flush it down the toilet. Thanks for all your help.
Somewhere in the back of my mind is the faint hope that taking the initiative and going above and beyond to help in a crisis will lead to something resembling positive career movement down the line, because that's how I was always told it works when I was growing up, and what other options do I really have? Caribou is set to retire in a few years, and in light of recent events may need to take an early retirement. I've demonstrated that I'm skilled and capable of handling many aspects of her job, not to mention many of Cockatoo's job duties when she was on extended leave. I've hopefully demonstrated my ability and willingness to learn whatever needs doing. Everyone I work with agrees I'm a great asset to the organization; surely I should reach the next rung of the ladder any day now?
I'm not getting my hopes up, because I know from experience that's not how it works for people of my social strata. Whatever initiative I show, however far above and beyond I go, that'll become the new normal. I'll be expected to continue with every new responsibility I take on without increased compensation or benefits, until I eventually get so overwhelmed that I crash and burn in the manner society expects of me.
All of the adults who told me showing initiative and giving 110% is how to get ahead came of age before Reaganomics. That's not how anything has worked for as long as I've been alive. The people responsible for allocating funds and making hiring decisions have less than zero interest in skill, talent, loyalty, dependability, flexibility, cooperation, any of the meaningful parts of human work. Their job is to fill the bare minimum number of slots in a personnel list as cheaply as possible. They're totally disconnected from the actual work.
They don't see the demoralizing effects of crew skeletonization. They have no conception of institutional knowledge, or the ways losing it damages the organization over time. I'm just an interchangable line item in a spreadsheet. I have no leverage or bargaining power with which to advocate for myself, because the people who control the money can't see 5 minutes into the future. If I leave, this place is fucked. They'll probably need to hire 3 people to properly replace me, but no one will care if I threaten to leave. They'll hire one replacement, and no one in charge will connect the massive productivity loss to my departure. No one will take steps to make life bearable for the people doing good work. Everyone will suffer forever.
Anyway, sorry for all the negativity. Let's take my mind off my troubles and see what's going on in the news.
...oh.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Kiki URL Rewrites With Managed Hosting
Saturday April 26th, 2025
Tags: blog, kiki, meta, tech
Just a quick note about URL redirects with kiki: the user guide gives some steps for enabling URL rewriting (under the heading "SEO-Friendly Permalinks") for use with the "easy" style of permalinks. For example, instead of example.com/index.php?page=blog
, it's much cleaner to simply have example.com/blog
.) I figure most people using kiki would prefer this setup, if possible.
The steps in the documentation assume you're running your own apache server1 and have access to the configuration, but with a managed hosting provider (such as mine) the process is different. It took some figuring out, but here's what worked for me:
Create a file in your root folder called .htaccess
. It should be a text file with only the following lines:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
Here's what each line does:
RewriteEngine on enables the URL rewriting feature.
RewriteCond %{REQUEST_FILENAME} !-d says this rule only applies to anything that isn't an existing folder name.
RewriteCond %{REQUEST_FILENAME} !-f says this rule only applies to anything that isn't an existing file name.
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] is what does the rewriting. ^(.*)$
is what's know
as a "wildcard expression".2 It ensures that the rule applies to whatever the visitor types after the .com/
.3 the $1 is a reference tag. It refers to whatever appears in the first (in this case only) set of parentheses. So if a visitor types example.com/whatever
, as long as "whatever" isn't an existing file or folder name, that it'll display as if the person instead visited example.com/index.php?page=whatever
. Importantly, this doesn't forward the visitor, it actually changes the URL. That's the difference between a rewrite and a redirect; I confused the terminology in a previous draft, sorry about that.
[L,QSA] is part of the Apache rule. L
means "last", i.e. "stop after you process this rule." QSA
is a flag that allows the rule to work with queries, i.e. anything after the ?
in the URL.4
Big thanks to RaVBaker for helping me piece this together, particularly his extended example. This stuff is tricky and most of the tutorials out there do not explain things well.
The solution may be different for you depending on your hosting provider, but hopefully this will point you in the right direction.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
I unfortunately don't have any information about nginx. ↩︎
-
To get even more into the weeds: the
^
means "the beginning of the line". The$
means "the end of the line". The.
means "any letter, number or symbol". The*
means "I'll keep looking for the previous thing until you tell me to stop". Putting the wildcard in parentheses like(.*)
means you can refer to whatever is between them later in the expression with$1
. Regular expressions are very powerful, but they can make your head spin a bit. ↩︎ -
Or in my case of course,
.zone/
↩︎ -
See RewriteRule Flags at Apache.org. ↩︎
The L.A. Noire Video Didn’t Hit
Saturday May 03rd, 2025
Tags: blog, games, youtube
Follow-up to There's A New Action Button Video
I watched the first part of the L.A. Noire video in HD, and I'm glad I did. The production values are tremendous. The opening titles capture that old detective movie feel quite convincingly. The set, costume and props all look fantastic. You can tell a lot of work went into the production.
I knew from the title--Action Button Presents as opposed to Action Button Reviews--that this was going to be a different sort of video, but I wasn't quite sure what. I've watched a little over half of it, and the best way to describe it is the world's most well-produced Let's Play. It seems to be telling the entire story of L.A. Noire through the framing device of Tim, playing a 1950s private detective, investigating the official narrative and trying to untangle the mysteries of Cole Phelps, the protagonist.
I'm not disappointed that he did something different--I really enjoyed the Let's Play portion of his Tokimeki Memorial review, and I don't think a full video with that approach is inherently a bad idea, especially one with such a cool framing device. The beginning of the video is great. He stays in character the entire time, and the way he presents the actions of the player as surreal personality quirks of in-universe Cole is brilliant. I very much enjoyed the descriptions of Cole investigating every irrelevent object he comes across, his generally homicidal driving technique, the way he's dedicated to progressing through the ranks by collecting 18/18 pieces of evidence for each case he works on, at how he gets distracted and runs off to do something unrelated while his witnesses wait patiently for hours to be interviewed: all this stuff is presented with a dry, deadpan delivery that delivered a lot of laughs.
Here's the problem: L.A. Noire is an extremely boring game. Once the jokes about how the player controls Cole have played out, all you're really left with is a collection of one hardboiled detective story trope after another. Tim tries his best to make it entertaining, and there are a lot of great lines sprinkled throughout, but you can't spread frosting on a bale of hay and call it a cake.
I'm nearly five hours into the video and I couldn't name a single non-Cole character in the game except Rusty, and that's mostly because Tim made a point of noting that Rusty is Cole's first partner with a punchy name. Rusty, unlike most characters, has two character traits: he's a drunk, and he always immediately suspects the boyfriend or husband in any incident of violence against a woman.1 Every other partner, chief of police, crime boss, witness, suspect, every other character in the game is a zero-dimensional plot puppet with no distinguishing characteristics. Which wouldn't be a problem per se, you can make an interesting video just about Cole, but it's not enough to sustain a nine-hour watch.
The Let's Play portion of Tokimeki Memorial is "only" 2.5 hours long, and it's a much more successful example of storytelling through play. Every character has a personality that made me interested in them immediately. Yuina with her mad scientist world domination ambitions, Mio with her silent book-reading dates, Saki with her H.R. Giger fandom, Megumi with her shyness and love of animals,2 Rei with his over-the-top rich dick energy, and of course the mysterious Shiori, whose personality and hopes and dreams and fears and insecurities are only revealed over multiple playthroughs and a laser focus on forging a connection.
L.A. Noire is a quintessential example of everything I hated about video games in 2011. It plays it safe and doesn't subvert any of expectations. The face capture technology is the publisher dangling a shiny object in front of the player and hoping they don't notice the comprehensive lack of interesting mechanics, plot, characters or message. In spite of the marketing focus on character personality and interaction, the game exists primarily as a vehicle for intense shooting violence, because that's what you did in a video game in 2011. From what I've seen, it's 100% copaganda with no serious attempt at subversion. Tim, with his cop-disliking private detective character, does his best to hang a lampshade on the tropes and make fun of the game's shortcomings, and it would've made a great 1- or 2-hour video, but the game doesn't deserve the trademark Action Button Deep Dive.
All that said, Tim has commented that this is his favorite thing he's ever made and it's doing fairly well, so I'm not upset that this is how things played out. Maybe if I played the game I'd get more out of the comprehensive roasting, but I didn't and I don't, and that's fine. Not everything has to be for me!
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Got a lot accomplished this laundry day
Sunday June 08th, 2025
Tags: blog, cats, games, tech
A gray and white cat I've never seen before approached me outside the laundry room. It was a little shy, but I put my hand out and it eventually sniffed me and decided I was safe to dispense some pets. It meowed very gently at me, and didn't seem quite ready to get in my lap, but flopped over and stretched out next to me for a bit.
I don't know where it came from. A neighbor came by and greeted us and said he's never seen it before either. I think some people have decided our neighborhood is a perfectly fine dumping ground for cats they don't want, which sucks, but I'm glad for their company if they want to give it. It makes laundry less of a chore.
I need to update the cats page with my new friend, and also post Laundry Cat updates. I hadn't seen her in so long that I was worried she went to live on a farm upstate, but she's come around the last two weeks and jumped right up in my lap like no time has passed at all. I didn't see her this week. She was quite pregnant last week, so maybe she's off taking care of new kittens. I was very happy to see she's okay. I can't believe I've known her for nearly 4 years now, and that she still remembers me after months and months of adventures. Hopefully my new friend sticks around too. If they do, I'll need to think of a name, cuz "Laundry Cat" is taken.
Laundry day accomplishment #2
I got all the achievements in Gold Brick Simulator.
I guarantee I'm the GBS world champion, unless different platforms have different leaderboards, and unless people have played and not submitted their high scores. But of the players on the leaderboard, I'm the first and so far only one who's gotten all the achievements. Come for my crown, if you dare.
Okay, this was just going to be a cutepost on fedi, but I forgot that Mastodon still won't let you make a post that has both a video and a JPG attached. It's quite stupefying. I had some time to kill while I waited for laundry to finish, so I tried to figure out some way around this limitation. I used a screen-recording app to capture a short still clip of my achievements in GBS, and was going to awkwardly edit it into the end of the cat video, but android's built-in video editing tool will inexplicably only allow you to splice two clips together if you first agree to upload them to google's cloud image platform, which I wasn't willing to do. So "fuck it", I thought, "I'll do it when I get home." What was supposed to be a simple social media cutepost has now turned into a project, and if it's a project, that means it gets a blog post instead. Mastodon doesn't want my post, fine. Blog-exclusive content it is
I really don't understand Mastodon's one-video policy. I guess it's because they don't want people uploading multiple huge videos because they assume it'll be a lot of storage and bandwidth, but my video is 2MB and the image is only an extra 60k on top of that. Meanwhile they'll happily let people upload four 8MB ultra-high-res photos per post. Maybe there's some other technical reason for the limitation, idk, but if bandwidth/storage concerns are the issue, I think their priorities could use some work.
That's it, just a short post for today. I'm working on one about how my job has been kicking my ass, that'll probably be up in the next day or two.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
May books - technofeudalism, tuberculosis, polyamory
Sunday June 01st, 2025
Tags: blog, books, review
Sick Little Monkeys
by Thad Komorowski (❤️❤️❤️️️🖤🖤)
I wrote about this book here. I've been thinking it over, wondering if 3 is the right score, and I think it is. It's a perfectly fine book, especially for one that seems to be the work of only one person. I disagree with a lot of the author's opinions, and sometimes found the way he expressed them frustrating. I wish he had at least explained and tried harder to justify them, but it doesn't bring down the story as a whole.
Technofeudalism
By Yanis Varoufakis (❤️❤️❤️❤️❤️)
I heard good things about this book from various sources, and was mostly inspired to read it by dr. molly tov's glowing recommendation. It's a short, very digestible book about how capitalism is being replaced with something worse. The author, the former Minister of Finance for Greece, is extremely knowledgeable but forgoes complex technical jargon in favor of a plain-language explanation as if he were having a conversation with his father. It's a bleak book, but also somewhat inspirational, because we still have the choice to reject this new system. In very brief summary, the premise is that an economy based on providing goods and services is being phased out in favor of a technological feudalism-like system in which the corporations are the landowners and the rest of us are digital serfs, providing value in the form of our personal data, unpaid labor and unwilling engagement. It's a compelling argument. If I hadn't already cut ties with every major corporate tech platform (except google, I still can't quite exist in the world without a phone) and started my own website, this book would've gotten me fired up to do so.
Everything is Tuberculosis
By John Green (❤️❤️❤️❤️❤️)
I put a hold on the audiobook at my library as soon as I watched Dr. Angela Collier's video about it back in March. I hadn't yet got back into my reading habit and thought the audio version would be easier to digest. It's short, about 6 hours long, and it's read by the author, who's also a public speaker via his own youtube channel, so the narration is excellent. This isn't a science book, it's about people and systems. It's about how tuberculosis, thought of in the west as an "old timey" disease that we've pretty much gotten rid of, is in fact still the most deadly infectious disease on the planet. It killed 1.25 million people in 2023, mostly in the global south. We have the capacity to eradicate the disease1 and we don't, because the people it kills are deemed less worthy by the technocratic medical establishment and the treatments are deemed "not cost effective" because the people it kills are mostly impoverished black and brown people. The book follows the story of Henry, a man in Sierra Leone with drug-resistant TB, struggling to get lifesaving treatment isolated in underfunded, resource-scarce, prison-like hospitals. Green does a good job of centering Henry and his family without inserting himself into the story and turning it into a white savior narrative, which is always a risk of this sort of book. It also goes into the history of TB and how it was so rampant in post-industrial Britain that it perversely became seen as fashionable, how TB patients were viewed as noble sufferers whose quiet, dignified deaths were imbued with a kind of tragic beauty. It's a fascinating part of our history, and a good reminder of the ways we trivialize and normalize the unthinkable.
More: A Memoir of Open Marriage
By Molly Roden Winter (❤️❤️❤️❤️❤️)
I promise I didn't intend to read nothing but 5-star books this month. I went into this fully expecting not to like it, because I watched a youtube video completely roasting it. I don't want to link to the video, because having now read the book, I consider the youtuber's summary tacky and misleading. She cherry-picks the parts of the story that make the author and her husband seem unlikable and irredeemable. She presents a straightforward "the straights are not okay" narrative about a man trying to manipulate his wife into an open marriage purely for his own selfish benefit, and his long-suffering wife in complete denial about the situation, with an unearned happily-ever-after ending that comes out of nowhere with no character growth. That's not what the book is at all, though.
I started reading the book because the excerpts the youtuber quoted were salacious, and I wanted to see the whole messy story. I went in expecting to dislike the author and her husband, and I experienced a complete 180°. It's a beautifully-written memoir about a woman on a journey of self-love and her complicated relationships with men, her mother, and society.
The inciting incident for the open marriage is Molly meeting a younger man at a bar, flirting harmlessly to get some free drinks, and giving the man her number. She had gone out for an angry walk after a stressful evening at home, happened to bump into a former colleague, and accepted her offer to go out for drinks despite not having her phone and wallet. She had a great time, and when she got home, her husband Stewart questioned her about where she had gone and who she had met. He saw the text from the man on Molly's phone. Molly said she had no intentions of further contact with the man, but rather than being upset, Stewart encouraged her to pursue a relationship. This is something they had discussed before: Stewart gets sexually excited by fantasizing about Molly with other men, and is into the idea of opening the marriage. He also thinks it could be good for Molly, who didn't have as much sexual experience as Stewart when they got married, and so Stewart suggested it could help build her confidence. Nothing had ever come of these conversations before, but this time Molly agreed to try it.
She enjoys her time with Matt, the man she met at the bar, but still isn't quite sure if an open marriage is for her. Stewart likes hearing about Molly's extramarital sex, but Molly's conflicted. She's unsure if she actually enjoys the sex on her own terms, or because it's satisfying her long-held people-pleasing tendencies. She feels emotionally unsatisfied by her experiences, but is unsure if a strong emotional connection is something she can or should be looking for. Her fear is that if she allows herself to fall in love with someone else, it'll cause irreparable harm to her marriage, which in spite of its problems, she wants to save. Molly and Stewart have two children, and she's afraid of the ways the open marriage might harm them, and her relationship with them.
Things get more complicated when Stewart, having enthusiastically accepted his wife's sexual adventures, asks about reconnecting with an old flame of his. Molly, who hadn't thought through the logical ramifications of what opening the marriage might mean, gets upset. Her feelings go beyond mere jealousy approaching a kind of deep existential panic. Her behavior towards her husband feels unfair and immature. They agree to a system in which Molly tells Stewart about her affairs, but Stewart doesn't tell Molly about any of his. It's an uneasy truce, and Molly harbors deep resentments about Stewart's affairs, his motivations, and his perceived lack of dedication to their relationship.
Both parties behave in ways that are unlikable, and if this is all the book was, I can see why the reviewer in the video I watched didn't like it. Stewart worked long hours at his office and "didn't have time" for many of the household maintenance and child-rearing duties that should be expected of him, but suddenly had time for multiple sexual partners, which I agree is suspicious. The universal consensus seems to be that Stewart was cheating on Molly prior to the opening of their marriage, but I don't think that's a given. There's no direct evidence of cheating, Molly never brings up the possibility, and once they do open the marriage, Stewart seems open and honest, and he respects the rules and boundaries Molly needs to feel comfortable. My impression is that Stewart was missing joy and a sense of purpose in his personal life, and that he was trying to fill the hole with an unnecessarily intense focus on work. Workohol is, despairingly, still a socially respectable coping mechanism, and it's easy to justify selfish behavior when it's in service of the cult of hard work. I could be wrong, but I think it's unfair to assume he was cheating all along.
That doesn't mean Stewart is blameless: he was shirking his duties, it was making Molly's life harder, and him barely showing up at home and rarely helping with the kids was straining their relationship to its breaking point. I don't think opening the relationship was a good way to deal with these problems, but nonetheless it was the catalyst for change. Molly started talking to a therapist, and eventually they started seeing a marriage counselor. They both had a series of sexual partners. Some of Molly's partners were awful, with no redeeming qualities, but most of her relationships were complicated. She had some beautiful, fulfilling experiences with other men, which compounded her internal sense of guilt and shame. It was a messy, complicated arrangement, and she's shockingly open and honest about her feelings and behavior. She doesn't sugarcoat or tiptoe around the parts that make her look bad, and she doesn't sensationalize the parts that make Stewart look bad. It feels refreshingly true.
While all this is going on, Molly is also reconnecting emotionally with her mother, who's suffering a health decline due to Parkinson's Disease, which is only correctly diagnosed after a lot of suffering. Molly questions her mother about her open marriage, which Molly learned about as an adult but which was never discussed. Molly's mother got involved in a health cult when Molly was a child, and had affairs with members of this cult, which Molly's father accepted. It was one of those hippie 70s cults that eschewed "modern medicine" in favor of orthorexic beliefs about diet and exercise, not unlike the beliefs that eventually killed Steve Jobs. Molly had a lot of unexamined resentment towards her mother, but once they started talking about it Molly realized that her mother was a victim, that the cult members exploited the same people-pleasing tendencies that Molly herself struggles with. Molly's mother now accepts modern medicine, and with treatment her Parkinson's symptoms start to improve. They have a beautiful bonding experience at a writer's retreat, which helps Molly rediscover her love of songwriting and (it's implied) her mother rediscover her love of poetry. Molly realizes that this is what was missing from her life: things that bring her joy and personal fulfillment outside of the context of any sexual or romantic relationship.
The video I watched doesn't talk about any of this, which was the most humanizing and redeeming part of the story. It's pretty shocking in hindsight how deceptive it was, and I'm glad I read the book for myself. I'm surprised how many people who've read the book have a negative opinion of it. It was acclaimed by mainstream critics, but it has some scathing reviews on goodreads and storygraph. It's true that there were parts of the book that made me roll my eyes, become annoyed, wonder how anyone could be this naive and illogical and self-centered, but the gradual story crescendo in which Molly learns to love herself, center her own needs and unpack her emotional baggage, I thought, was masterfully told. I went in expecting to hate it and by the end, 5 stars was the only honest score I could give it. I think if you go in desiring a simplistic narrative with a hero to root for and a villain to hate, you're going to be disappointed. The story's as messy and as complicated and as real and as beautiful as life is.
In progress
Cryptonomicon, by Neal Stephenson. I read this book in the early 2000s, and remember liking it, but I don't remember a lot about how it ends. After I finished Everything is Tuberculosis, I looked for another audiobook avaiable through my library, found Cryptonomicon, and figured it might be worth a re-read. It's an eye-popping 42 hours long, which could be good or bad. I got burned by the audiobook for Reamde by the same author, which is a similar length, but I found an interminable slog I couldn't finish. I'm enjoying Cryptonomicon a lot more, and I'm shocked to find out that the last thing I remember about it happens at around the 25% mark. Either I never actually finished the book, or my reading comprehension was a lot worse than I was even aware of. It's embarrassing to think about. Anyway, Stephenson is notorious for not being very good at endings, so we'll see how I feel when I finish it, but I've gotten a lot out of it so far.
A Confederacy of Dunces, by John Kennedy Toole. This is another reread, one that was prompted by another Angela Collier video in which she discusses when unlikable protagonists work and when they don't. It's delightful, and again, I'm shocked by how much more I appreciate it now, with the knowledge and reading comprehension skill I've accumulated since my early 20s.
It reminds me of this paper I read recently about how a shocking number of English majors lack basic reading comprehension skills. I'd like to think that I wasn't quite as bad as some of the students quoted in the study, but I definitely relate to passages like this:
The majority of these subjects could understand very little of Bleak House and did not have effective reading tactics. All had so much trouble comprehending concrete detail in consecutive clauses and phrases that they could not link the meaning of one sentence to the next. Although it was clear that these subjects did try to use various tactics while they read the passage, they were not able to use those tactics successfully. For example, 43 percent of the problematic readers tried to look up words they did not understand, but only five percent were able to look up the meaning of a word and place it back correctly into a sentence. The subjects frequently looked up a word they did not know, realized that they did not understand the sentence the word had come from, and skipped translating the sentence altogether.
I have memories of reading challenging books, struggling to piece together meaning from allusions and language I didn't understand, and trying to at least come away with a general feeling about the text when I was unable to truly understand it. A lot of ACoD is essays written by Ignatius, the protagonist, given to demonstrate his pseudo-intellectual reactionary narcissism, and I don't think I really got any of it the first time I read it. I was still entertained, but my takeaway was more "haha this guy is nuts" than a meaningful understanding of the satire. I wish I could better articulate what happened between then and now to make me a better reader. "Age and experience" is the obvious answer, but it feels like an unhelpful cop-out that doesn't really explain anything. I had the internet when I read these books. I could've looked up the stuff I didn't understand. Why didn't I? Why was I content to stumble my way through with guessing and vibes? Did I think this is what reading is supposed to be like, or did I just assume and accept that I was deficient in some way? The past is truly a foreign land.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
It's probably not possible to eliminate the TB bacteria like we did with the smallpox virus, because of its long infection period, difficulty of detection and transmissibility between animals and humans; but we could get infection numbers down to effectively nil and eradicate it as a fatal disease of humanity. ↩︎
Sunny Merch Now Available! + Giveaway Contest!
Monday May 12th, 2025
Tags: blog, merch
Good news for Sunny fans! If you remember the charming fridge portrait that capped off the kittens saga, it's now available as a sticker!
Show off your good taste in critters and adorn your water bottle, laptop, or whatever other kind of objects humans own with an ode to the sphinx of black quartz in all of her photorealistic, color-accurate splendor. If you'd like to obtain this fine product for yourself, simply click here and all of your wishes will come true. Her glorious visage is also available on magnets, coffee mugs, pillows, and some other products that aren't really suitable for this design but are available nonetheless.
But that's not all! Redbubble requires you to have five designs to open a shop, so four other designs are also available. Show off your state pride with a "State Motto" sticker (new for 2024!) or signal your mastery of Quest For The Radiant Cake with an official Slime & Goo product. Accept no imitations!
All this and more now available at Matt's Sticker Shack. You'll have to pay for shipping anyway, so why not buy several? Give em to your friends, they make great stocking stuffers. Christmas is only 7½ months away. Beat the rush!
To celebrate the shop's grand opening, I'm holding a contest. Can you name every reference in this site's banner image? Click here to get a closer look. The background is from Phantasy Star 4, the ASCII cat is kiki, and the title is from Adventures of Lolo. If you think you know the rest, click here to submit your entry. There are eight games. The first three readers who name the most, and include their email address so I can respond, will win a small sticker of their choice. Good luck!
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Why my titles are terrible, and what I intend to do about it
Thursday May 15th, 2025
Tags: blog, meta, writing
The age of online diaries
I started writing on the internet a few months before the term "blog" was invented. I started on websites like scribble.nu, diaryland and livejournal, which all were very much intended as "online diaries". Being public and writing for an audience was more of a side effect than the intended function. Scribble.nu was first, and I don't remember it having a directory or built-in way to find other people who used it. The only way anyone would know it exists is if I gave them the URL directly, or if they saw it linked on my geocities site.
When you write in a paper journal, you generally don't give your entries titles. At least, I never did. I would write the date at the top of each entry, and it was a chronological log of thoughts and events from that day. A title would feel out of place and maybe a little pretentious. Like what, do I fancy myself a newspaper columnist? My "articles" need "headlines" now? Give me a break, me 🙄
This was very much the mindset with these early online diaries—I don't think scribble.nu even had a way to set a title on a metadata level. Like, I could write one at the top of each entry, but why would I? It has the date.
Livejournal had a "subject" field, but it was optional. I usually left it blank. My journal had a title, and when you read it, it has the entries in reverse chronological order with the date. You rarely look at individual entries, so it was easy to keep thinking of it as a paper diary in a slightly different form. There was a calendar view, where you can view entries written in a given week, month, or year. This was the only time I viewed multiple entries in list form, and they were mostly "(no subject)" followed by the date. Pretty unhelpful when I went searching for something I've written! This also predates tags, which wouldn't be added until 2005, so I was still very much thinking of it as a paper journal in website form, with no organizational structure whatsoever.
I remember at one point lamenting on livejournal that I was "bad at thinking of titles", so pretty early on I thought of titles as something that should have some quality of attention-getting or entertainment value that I was simply unequipped to provide; I don't know why I thought this, or why I never thought to just use simple descriptive titles that would if nothing else allow me to catalog my old entries. It would take awhile for this to occur to me.
The commercial blog era
In the mid-2000s, blogs became big business. This brought about the rise of "click bait", a phenomenon where commercial blogs and news outlets would trick people into clicking links to their articles with headlines that are sensationalist or misleading, because the only metric that mattered was ad impressions. This practice exploded once social media came about, and we all know the tactics they used, even the parodies have become cliches: one weird trick. Top 10 tips they don't want you to know. Is absurd statement true?? (Betteridge's law: no). I won't belabor it.
The point is, in protest against click bait, I tried to make sure, once I did start using titles, that they were as boring or as offputting as possible. I wanted my headlines to be anti-clickbait. I wanted expectations to be zero. I wanted no one to ever think "that didn't really deliver on the promise in the headline."
Because in my mind, clickbait isn't just an intentional tactic to mislead: if a headline is interesting enough to make me click, but the article isn't interesting, that's clickbait. Much the same way I define spam as "any message I don't want".
The sad part
Am I saying I don't think what I write is interesting enough to read? On some level, yeah. Like many childhood abuse survivors, I grew up with an extreme negative opinion of myself, and no matter how much teachers and other positive adult figures in my life encouraged me, I never managed to shake this kind of negative self-thought. The proof, in my mind, was that nobody has ever seemed all that interested in reading the things I write independently. I got good grades on assignments, and scored well on tests, but for all the praise I got academically, no one ever volunteered to read the stuff that's actually important and meaningful to me when I told them about it. I think this is probably true for most writers, right up to the point that it isn't, but with my internalized sense of inferiority instilled in me by my father, I never thought my writing was worth anything. So writing for other people to read was never my priority: I'd write for my own satisfaction, put it out there, and if anyone happened to like it, I'd consider it a nice bonus. So there was some truth to my "anti-clickbait" justification, but it was and is rooted in my insecurity.
Why I'm thinking about this
I read How to title your blog post or whatever by Dynomight (h/t maya, the source of most of the interesting articles I read these days) and it got me thinking about my own relationship with titles. I like how this person writes, and most of what they say makes sense to me, so I thought it'd be a good idea to apply their thought process to my own writing and see if it still makes sense.
You should try to make a good thing, that many people would like. That presents certain challenges.
I think it'd be prudent of me not to gloss over this. Do I make good things that people like? I think, in genre of personal blogging, my stuff is above-average. I try to write the kind of blog I want to read. I value nuance and introspection. For people who value the same things I do, I think my blog would be, if not one of their favorites, at least a respectable example of the genre. I tend to compare myself to the best of the best, the nonfiction books and podcasts and video essays that make up the bulk of my media diet, and that's not fair to me. That's not my genre. I wish it could be, and maybe someday it will be, but that's not what I'm doing here.
A title has two goals. First, think of all the people in the world who, if they clicked on your thing, would finish it and love it. Ideally, those people would click. That is, you want there to be people in the like + click region.
Other people will hate your thing. It’s fine, some people hate everything. But if they click on your thing, they’ll be annoyed and tell everyone you are dumb and bad. You don’t want that. So you don’t want people in the hate + click region.
Since starting therapy and dealing with some of my trauma, "person who hates everything" is a type of person I've become quite familiar with. I've become pretty good at identifying haters, and telling when criticism isn't being made in good faith. I'm not perfect, but I'm a lot less sensitive than I used to be. My dad was a hater; I've learned I can disregard everything he ever said to me. There's no point trying to separate the useful criticism from the abuse, because the source is poisoned.
My bad title philosophy was mostly about avoiding haters, who proliferated on the internet communities I found myself in and mainstream social media. Now I'm on the fediverse, here, and nowhere else. I don't have to worry about an onslaught of haters. If one pops up, I can simply block them and move on.
One must be careful not to fall into a mindset where you think everyone who disagrees or criticizes you is being a hater. I'm a fairly perceptive critter, so I don't think I'm at much risk of that, but I can't let myself get complacent.
Everyone is deluged with content. Few people will hate your thing, because very few will care enough to have any feelings about it at all.
The good news is that it’s a big world and none of us are that unique. If you make a thing that you would love, then I guarantee you at least 0.0001% of other people would love it too. That’s still 8000 people! The problem is finding them.
This basically sums up the reason I still write on the internet, and is a good reminder of why my "intentionally bad title" strategy is self-defeating: there's a vanishingly small chance of the 0.0001% of people who would like my work finding me, and if I make the titles intentionally bad, you can tack on a few more zeroes.
That’s hard. Because—you don’t like most things, right? So you start with a strong prior that most things are bad (for you). Life is short, so you only click on things when there’s a very strong signal they’ll be good (for you).
This is a great point, and it seems so obvious to me now: I should pay attention to the titles that (1) make me click on them, and (2) aren't, in retrospect, annoying or misleading, and try to emulate them. "Trying to emulate people" is something I struggle with, because I don't want to be seen as hack or derivative, but a title isn't really a creative pursuit in itself, and I should try to start treating it as functional. Cuz that's what it is.
Say you write a post about concrete. Should you call it, “My favorite concrete pozzolanic admixtures”, even though 99.9% of people have no idea what pozzolanic means? Well, think of the people who’d actually like your thing. Do they know? If so, use “pozzolanic”. That gives a strong signal to Concrete People: “Hey! This is for you! And you know I’m not lying about that, because I’ve driven away all the noobs.”
Another great piece of advice that should be obvious---the title should match the content. I do occasionally write about very niche interests, and I should make sure the title reflects that to draw in the people who would be interested and let the people who aren't interested know they can skip it.
Be careful imitating famous people. If Barack Obama made a thing called “Thoughts on blockchain”, everyone would read it, because the implicit title is “Thoughts on blockchain, by Barack Goddamn Obama”. Most of the titles you see probably come from people who have some kind of established “brand”. If you don’t have that, you probably don’t want to choose the same kind of titles.
I'm definitely not trying to write like I'm a celebrity, but I do tend to pick titles that will only draw in people who already know who I am, and that they like my work, for all the aforementioned reasons.
Traditional advice says that you should put your main “message” in the title. I have mixed feelings about that. On the one hand, it provides a lot of signal. On the other hand, it seems to get people’s hackles up. The world is full of bad things that basically pick a conclusion and ignore or distort all conflicting evidence. If you’re attempting to be fair or nuanced, putting your conclusion in the title might signal that you’re going to be a typical biased/bad thing. It will definitely lead to lots of comments “refuting” you from people who didn’t read your thing.
This touches a bit on my anti-clickbait ethos: a title with a really strong take can get people to click, but it can also be a source of backlash. I think I'm somewhat insulated by not having a "comments section": when people won't see their comments appear immediately, they won't get the same dopamine rush of having "owned" me. People who would take the time to write their own response on their blog or send an email are usually going to be the same type of person who would actually read what you wrote.
I'm also protected from backlash because, well, my takes usually aren't all that spicy. Take one of my recent posts with one of the worst titles: Ren and Stimpy. I have no idea what an interesting title for that post would look like. I don't have any grand conclusions. It's sort of a book review, sort of a show review, and sort of a jumble of personal thoughts. I could've called it "Reviewing the unauthorized Ren and Stimpy book", but that's only partially true, and it's not exactly a barn-burner either. I could've called it "The Ren And Stimpy Book Is Okay But I Have Problems With It". Is that attention-getting? I don't feel like it is. People don't want wishy-washy, they want confidence! But like, these are my actual opinions. Sometimes I don't have a strong take. Sometimes an experiment is inconclusive. Sometimes I'm not sure how I feel.
Conventional (i.e., commercial) wisdom would suggest that I either lie in the headline or don't write the thing at all, but this isn't a commercial endeavor. It's blogging. The honest personal experience is the point. So I should probably accept that some things I write will be more interesting than others, and pick my titles appropriately. I settled on "Ren and Stimpy" because, well, it's probably the only thing I'm going to write about Ren and Stimpy. The title serves the function of making people be able to find that post. That was all the thought I put into it. But honestly, I could do better. Even "I'm conflicted about the Ren and Stimpy" book contains a kernel of an idea, and it still contains the keywords. It's boring, but as Dynomight goes on to point out:
Boring titles are OK. I know that no one will click on “Links for April” who doesn’t already follow me. But I think that’s fine, because I don’t think anyone else would like it.
But then suggests a tactic I'm not on board with:
Consider title-driven thing creation. That is, consider first choosing a title and then creating a thing that delivers on the title. It’s sad to admit, but I think there are many good things that simply don’t have good titles. Consider not making those things. The cynical view of this is that without a good title, no one will read your thing, so why bother? The optimistic view is that we’re all drowning in content, so what the world actually needs is good things that can find their way to the people who will benefit from them. In practice, it’s often something in the middle: You start to create your thing, then you choose a title, then you structure your thing to deliver on the title.
Even if I wanted to, my brain doesn't work like this. The writing will always come first. If I tried to think of a good title for my post about the Ren and Stimpy book first, I wouldn't have written it. If I approached writing from the perspective of "will anyone be interested in this?" I wouldn't have a blog at all. I'd second-guess myself and talk myself out of writing anything. This is probably good advice if attracting readers is your main motivation.1
My favorite thing category is “Lucid examination of all sides of an issue which finds some evidence pointing in various directions and doesn’t reach a definitive conclusion because the world is complicated”. Some people make fun of me for spending so much time researching seed oils and then lamely calling my thing “Thoughts on seed oil”. But what should I have called that instead? Lots of bloggers create things in this category, and no one seems to have solved the problem.
I like that category of thing too. I think attracting this type of reader is hard because curiosity goes hand-in-hand with skepticism. One strategy could be a title like "Seed oils are more complicated than you ever imagined" or "Forget everything you thought you knew about seed oils". But the sort of person who'd be interested in the topic is also more likely to judge it as clickbait, even if, had they read the article, they would find it to be true.
I think a good approach could be a personal connection to your own curiosity, like "I fell down a rabbit hole about seed oil" or "I never thought I'd care this much about seed oil." Curious people like reading about other curious people's rabbit hole journeys. But if you do it too much it might come to be seen as formulaic. Finding the right balance is key.
Conclusion
I'm going to be thinking about all these ideas when I blog in the future, and I'm going to spend more than 0.5 seconds thinking about the title. I'm going to try to figure out a title that I would want to click, that matches the content of the post and wouldn't leave me feeling disappointed. It might attract more haters, but I think I'm at a point in my life that I can deal with them. Not every post will have a natural good title, so if one doesn't come I'm not going to force it. I will do this for one year, and see if it increases the satisfaction I get out of this blog. Even if it doesn't, it probably won't hurt anything, and it'll be a habit by then, so I reckon I'll keep doing it.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
I.e., if your goal is writing something to get a lot of views and make ad revenue. But if you don't care about being hated, you could probably write nothing but misleading clickbait headlines and it'll work out for you. ↩︎
Neurodivergence
Monday May 05th, 2025
Tags: blog, mental health
💡 More information available on the topic page.
My neurodivergence is the primary lens through which I understand my mental illness and disability. I've been diagnosed with ADHD, and I've been treated for it since 2016. I believe a combination of medicine and therapy has led to me becoming a happier, healthier person, but at the same time it greatly limits the things I'm able to do. I'm able to work, with accommodations, but I'm unable to live a full and satisfying life on top of that. I'm unable to maintain social relationships outside of the one with my spouse, and I'm unable to accomplish long-term goals. With treatment, my mind is quite functional during the day, but 8 hours of work leaves me feeling drained and needing rest no matter what that works entails.
In terms of gainful employment, I work best when I can be by myself, in a distraction-free environment, and listening to something that provides mental stimulation while I endure the tedious task. I use similar coping strategies to tolerate tedious chores at home, and have used podcasts, audiobooks and youtube videos to gain a level of executive function I never had before those things were available to me. My brain experiences tedium and drudgery in a way that's comparable to physical pain, and I often have emotional breakdowns after long stretches of unstimulating work.
Through therapy and self-reflection, I've made a lot of progress towards seeing this as a disability rather than a personal moral failing. I try to live my life with an attitude of forgiveness and acceptance towards my differences, but it's hard in a world very much not designed for me.
I also suffer from high sensory sensitivity, and wear thick noise-blocking headphones to protect myself from the constant aural assault of urban life, primarily the noise of cars I'm forced to coexist with. I also dislike overhead lights, am sensitive to certain textures, and have a long-time food pickiness disorder that I've made some progress towards overcoming. I also have great difficulty relating to other people, due to an inability to make myself be interested in things that interest the people around me. Even when I do find a common connection, I often struggle because I'm not interested in exactly the same way someone else is. It's made me feel like an alien for most of my life. But of course that's silly, I'm not an alien, I'm a raccoon 🦝
I'm also diagnosed with generalized anxiety and major depressivw disorder, and I think my neurodivergence is at the root of those problems, too. I tried to treat these issues unsuccessfully for years before receiving the ADHD diagnosis, at which point my anxiety and depression improved somewhat.
It's been suggested that I may have autism, and I wouldn't reject a diagnosis of autism if one was given to me, but there are characteristics of autism I don't identify with. I took one of those online autism assessments tests---not a "real" one, since those apparently costs hundreds to thousands of dollars and no doctor I've spoken to has been willing to look into the logistics of getting insurance to pay for it---but the unofficial free assessment put me right in the middle of the "do you have autism?" binary. It's the most definitive "maybe" I've ever received.
It's possible that I have what I've seen people refer to as "AuDHD", but I don't know enough to say what that would mean. I understand there's a certain amount of symptomatic crossover between autism and ADHD, but I don't know how much crossover there would need to be to consider it a third thing or combination of two things. I hope there's more research on this in the future.
I'm not so concerned with the specific diagnosis, because no matter what diagnosis I have, I know how my mind works and I'm the authority on what accomodations I need. I don't need a doctor to tell me what I need, I just need people to believe me when I tell them how I feel.
This isn't to say I have all the answers, I'm constantly coming to new understandings about how my brain works and figuring out new coping stratgies, but the solution definitely isn't "I need to try harder to be normal". It didn't work for 30+ years and it's not going to work now. It's only after learning to accept myself, limitations and all, that I was able to see myself as someone deserving of love and understanding.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Stop Using Relative Timestamps
Thursday May 01st, 2025
Tags: blog, information, meta
I talked briefly in the previous entry about how much I value timestamps, and how frustrating it is to come across information and have no idea when it was presented. Well, as if to underline that point in red ink, I just came across a screenshot of a social media post from an application that showed the time posted as "8 hours ago".
Is it 8 hours ago... from the time the person posted the screenshot? Did they take the screenshot themselves? If not, do they have any idea when it was taken? What could have changed about the contents of the screenshot in the unknown amount of time since it was taken? Who knows?
Relative timestamps are but one small asssult on a healthy information space, but it's an easy fix: don't use them!
They're no good in the long term, either. If you come across an article that states it was published "177 days ago", can you say off the top of your head when that was? I can't. If I take a monute, I can think "Well, 180 days is half a year, so 6 months ago would've been like early November?" I still might not realize until putting it into Wolfram Alpha that 177 days ago was November 5, 2024. US election day. Potentially pretty important context!
And honestly, I usually wouldn't put in the effort, and I think most people wouldn't. Our brains just parse it as "awhile ago" and move on. Relative timestamps are no good for anything.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Ren and Stimpy
Sunday May 11th, 2025
Tags: blog, books, review, tv
I reached the portion of my No More Whoppers relisten where they discuss the 2013 book Slimed: An Oral History of Nickelodeon's Golden Age. I didn't read the book last time and I didn't read it this time---I don't find a simple transcription of interview material compelling as a book---but listening to them talk about it was entertaining enough. The book briefly touched on the schism that happened in season 2 of Ren & Stimpy in which the show's creator, John Kricfalusi, was fired from his own show. The show was fairly important to the warping of my young mind and shaping the person I'd eventually become, and I had always wondered what exactly happened. I was too young to understand anything about the situation at the time, I only had the vaguest notion that cartoons were actually made by people, but as I got older and perpetually watched the show in reruns, I got a picture of a narrative---John K. was too much of a creative genius and Nickelodeon was too much of a sterile corporate machine to properly nurture his artistic talent. And I knew even at the time that this narrative was bullshit. Seasons 1 and 2 had plenty of rotten episodes, and the seasons after his ousting had plenty of great ones. So what exactly was the deal? It made me wonder if some sort of tell-all book about the situation has been written, so I went looking and found Sick Little Monkeys: The Unauthorized Ren & Stimpy Story by Thad Komorowski. I found a copy at the library and proceeded to read it in a couple days.
In 2018, John K. was revealed to be a child sexual predator who groomed and abused two teenage fans who eventually also ended up working for him. The book was published in 2013 and doesn't go into any of this part of John K.'s life, even though it's been described as an "open secret" about John K. This is obviously worse than anything he's done in an artistic or professional context, and my interest in the Nickelodeon details is not meant to minimize the horror his victims experienced. I had close to zero respect for John K. even before I learned about his child sexual abuse, and only have a continuing interest in Ren & Stimpy because it was such a formative part of my childhood.
All that said, the book was pretty good. I gave it three stars on Storygraph. It was well written but in dire need of an editor. The number of grammatical and usage mistakes was quite distracting, but not enough to take me out of the book completely. What was more distracting was the author's opinionated approach. He's a historian of animation, and it felt like at least half of the book was an excuse for him to shit on every animated TV Show and movie that's not Ren & Stimpy or Looney Tunes shorts from the 1940s and 50s. Like, he's correct that animation in the 80s was a wasteland of cheap, zero-effort shows primarily made as extended toy commercials, and R&S represented a sea change away from this attitude; but in 2013, he writes as if there had not been an animated show of any redeeming value since R&S ended in 1995, disparaging even the then-recent Cartoon Network hits Regular Show and Adventure Time. I haven't seen enough of either show to be an expert---I really should, at some point---but I've seen enough and I know enough to say that they're groundbreaking works of animation.
John K. and the author of this book both share the frustrating opinion that the only animation of any value is an extremely specific style pioneered by Warner Bros. directors Bob Clampett, Chuck Jones and Tex Avery. This philosophy eschews the idea that cartoons should have writers or scripts---all the writing should be done by the artists themselves during the "layout" portion of production. Layout is the step between storyboard and actual animation, in which a large number of drawings are made with specific, meticulous instructions for the animators.1
Ren, wearing his producer hat (a golden fasces with the letter P) berates Stimpy for his work during the layout phase of his project in Stimpy's Cartoon Show (Season 3).
Now, there is some wisdom to this no-script approach. Artists and animators know better than anyone else what's possible with animation. When they have a large amount of input over the story, they'll take the medium in a direction that's fun and interesting to look at. When cartoons are pre-scripted by people who aren't hands-on with the art and animation, there's a risk that the characters will be merely flat, lifeless vessels through which the writers' jokes are delivered, and we can see that most clearly in the shitty post-Simpsons wave of adult animation like South Park and Family Guy.2 (The Simpsons itself would of course eventually head down this path as well.) There's no question that Ren and Stimpy breathed new life into animation as a medium, and that its techniques helped sparked a renaissance in the art form.
But this single-minded dedication to animation was also the show's downfall. The system was not set up to allow this level of artist/animator control, and Spümcø was perpetually missing deadlines and going over budget. The other shows that kicked off Nickelodeon's animation library were Doug and Rugrats, and they were able to consistently deliver new episodes every week, while R&S floundered and had to go into reruns almost immediately. Doug and Rugrats were also great shows, no matter what the animation snobs have to say on the subject. Were the characters as expressive? Were the highs as high? Are they as influential? No, but they were consistently imaginative and entertaining. They told good stories. I haven't watched either show in years, and they're not as memorable as R&S, but I'm confident that if I were to go back, there would be more solid episodes of both shows than R&S.
John K. was a huge part of Ren and Stimpy's failure, and I'd argue played only the smallest role in its success. His slavish dedication to animation above all did make the studio produce some legendary episodes, but his obsessive attention to detail and insistence on authoritarian control ruined the show not just at a financial level but also artistically. Even today, people blame Nickelodeon for putting budgetary concerns over the art, but if Spümcø had unlimited time and money in the early 90s, they would've made a worse product. John K. has never understood what makes a good TV show or been able to manage a project, and there's no better proof of that than the unwatchable revival from 2003, Ren & Stimpy "Adult Party Cartoon".
Sick Little Monkeys is a well-researched book, with plenty of information from primary sources close to Ren & Stimpy, but Komorowski was still unable to determine the exact sequence of events that led to John K. getting control of a Ren & Stimpy reboot. The cable Network TNN had designs on rebranding to an edgier, male Gen-X demographic-oriented channel called Spike TV, and a cornerstone of their blueprint was going to be a block of adult animation. Someone involved in the process was apparently a big enough fan of R&S that they pulled the right strings at Viacom (the parent company of both Nickelodeon and Spike) to greenlight the project and give John K. full creative control. They told him to pull out all the stops and make the show that he wanted to make at Nickelodeon but was unable to. He had a team of all the Spümcø loyalists who refused to continue working on the show at Games Animation, Nickelodeon's in-house studio, after Kricfalusi's ousting during Season 2. Spike TV gave him a budget and a contract for 9 episodes with practically no oversight.
Spümcø only produced three episodes on time, at the cost of the entire 9-episode budget. Only the first 3 episodes ever aired, with 3 more eventually coming out on DVD. It's the worst TV show I've ever seen. John K. "pulled out all the stops", alright: the gross-out humor and juvenile shock jock horseshit was turned up to 11, with some homophobia thrown in for good measure. Ren & Stimpy's sexual relationship, once subtextual, was made explicit and not in an accepting, open-minded "coming out of the closet" kind of way. It was played purely for shock value and cheap laughs. There is no redeeming value to the plots or characters. It's John K.'s id on full display, and it fucking sucks.
The animation is very lively, since that's the only thing Kricfalusi thinks matters in a cartoon. It was lively to an extreme fault. From the book:
During the production of the episode Fire Dogs 2, Kricfalusi came up with a “really stupid rule,” Cory said, that “you were never allowed to hold a frame of drawing. You always had to have it changing.” Hence, Ren and Stimpy have an instant reaction to every single frame of an animated Ralph Bakshi on the toilet, gesticulating incessantly, further undermining the difficulty his animators had in getting his drawings to work. [...]
This painstaking attention to every frame of film was the ultimate undoing of the show, financially and critically. Kricfalusi’s insistence on over-posing scenes in the layout stage goes against his maxim of returning to “cartoony” cartoons, as he became increasingly intent on instilling “human” acting into his characters. As he has noted, live-action actors do not act pose-to-pose, like in limited animation. Rather, you can “see the change in the thought process from one expression to the other and there’s a lot of things happening in between. The more subtle and rich that is, the more the audience believes it and the more real it seems.” Therefore, Kricfalusi’s rule of never using the same expression twice is a means to this end and why Ren gesticulates in a half-dozen ways during a single bit of dialog.
End quote.
A naked Ralph Bakshi from Fire Dogs 2 holds Ren and Stimpy captive in his meaty arms. They all have distorted expressions of non-specific misery.
The author's attitude towards John K. in the book is odd. He correctly takes him to task for all the ways his ego got in the way of making a good show, but at the same time I feel like Komorowski gives him far too much credit. His animation-above-all ideology makes him treat John K. as the savior of all cartoons for bringing back the Looney Tunes style, and I don't think that factor is nearly as important as he makes it out to be. It was a factor, sure, but there are so many other elements I think were equally or more important. None of my childhood memories of the show are about how good the animation is. As a child I never once thought "wow, this is good because it's like the old Looney Tunes cartoons!". Sure, I watched Looney Tunes as a kid, but I didn't hold it up as the be-all end-all of entertainment. That's apparently the lens through which Komorowski viewed the show, and that's fine if it's his special interest, but he constantly shits on every other form of animation without really justifying his criticism. Doug and Rugrats weren't as animation-first as Ren & Stimpy, but they certainly had more artistic merit than the toy commercial cartoons of the 1980s.3 As an anxious nerdy kid whose daydreams bounced between fantasy and catastrophe, and who eschewed "masculine" pursuits like sports in favor of "feminine" ones like journaling, Doug was more relatable to me than anything I'd ever seen on TV or in film. It helped me feel less alone, like I'm not the only one who had these sort of thoughts, and it helped me feel like it might be possible for me to have friends in spite of my weird brain. It was the closest thing I had at the time to "representation." But the author paints every cartoon that's not Looney Tunes or Ren and Stimpy with the same brush, disregarding any potential value because of the "bad animation", and that left a bad taste in my mouth.
My favorite parts of the book were the ones where he describes the production process. He made it very clear that everyone who worked on Ren & Stimpy did so with an incredible amount of passion and dedication. I can still go back and enjoy Ren & Stimpy the way I can't with, say, Woody Allen films, and it's because I know how little Kricfalusi ultimately had to do with it. His main role in the production was 1. coming up with the funny cat and dog characters,4 and 2. getting out of his team's way. That's an oversimplification, but fuck it, that's what he deserves. Bob Camp, Jim Smith, Lynne Naylor and the rest of the team were able to make a good show in spite of John K.'s narcissistic self-sabotage, and the show would've been better without him from the beginning. Adult Party Cartoon should be the only proof anyone needs.
Yeah, the Games Studio era had some stinkers, but so did the John K. era. Here the author's opinions about what makes a good cartoon diverge radically from my own; he doesn't discredit the entire Games run, but in his appendiceal episode guide, none of the Games episodes are given the highest 4-star rating; in the John K. era, he correctly identifies Space Madness and Stimpy's Invention as two of the best episodes, while simultaneously giving four-star ratings to Man's Best Friend, the loathsome George Liquor vehicle Nickelodeon rightly refused to air, and Svën Höek, a tedious slog of an episode devoid of any wit or charm, which leans on one joke for the entire episode. I hated it even as a kid. They both feel like they wouldn't be out of place in the Adult Party Cartoon era, but they're both exemplified I guess because the animation is good or whatever.
Meanwhile Bob Camp's In The Army, one of the episodes that consistently cracks me up even today, is given a paltry **½, I reckon because it's mostly sight gags, timing and Camp's brilliantly unhinged performance as the drill sergeant that elevates it, and not Looney Tunes-caliber animation.
A miserable Ren and a blissfully ignorant Stimpy are given KP Duty peeling h-bombs for their unit's mess hall as punishment for disobeying the Sarge.
Anyway, judgmental opinions aside, it's a good book and provided a lot of insight into how cartoons are made. It's a subject that fascinates me and I know very little about, so getting a peek into the technical process was a treat. Kricfalusi's sacking wasn't as dramatic or interesting as I thought it would be. The animation world was unready for a cartoon as technically intricate as Ren & Stimpy (the studio at Games continued to struggle with deadlines, a fact that John K. defenders were all too quick to point out) and John's obsession with control and refusal to work with others made the problem worse. After Adult Party Cartoon failed and Spümcø closed its doors, John resigned himself to his blog, where he came up with terrible ideas for cartoons, basked in the adoration of his misguided fans, hurled abuse at anyone who critiqued his crackpot ideas, and sold NFTs charmingly named "inbred kitties".
"If you want to be a genius, it's easy. All you gotta say is, 'everything stinks'! Then you're never wrong." The elderly and desiccated Wilbur Cobb, legendary cartoon director, lectures Ren and Stimpy from behind his mahogany desk in a creepy, poorly-lit office.
The book doesn't really get into John's Post-R&S disgrace, and I guess there aren't a lot of reasons to. It's the story of Ren and Stimpy, and that story ended in 2006.
The book got a second edition in 2017; I don't know how much is changed compared to the version I read, but it's hard to imagine 4 years of hindsight would make it worse, so that's probably the one to check out if you can. The Buzzfeed article where John's victims spoke out references a line in the book about "a girl he had been dating since she was fifteen years old", and that's not in my version, so hopefully it paints a more complete picture of the person John was and is.
Thad Komorowski has his own blog, where he expresses animation opinions that are slightly more level-headed; in recent years he's become more involved with animation restoration and preservation, and his company is currently fulfilling a kickstarter for a collection of Paul Terry's "Aesop's Fables" cartoons from the 1920s, which I think is an excellent use of his passion and expertise. I wish him the best.
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
-
None of the actual animation was done in-house at Spümcø's Hollywood studio, it was always shipped to third-party animation houses in Canada---or, often, sweatshop studios in Southeast Asia. The author heavily criticizes the animation produced by these sweatshops, and to his credit he correctly blames the inferior product on the workers' inhumane conditions. He laments that their work will never be acknowledged and I agree, it's an injustice. ↩︎
-
Then again, this description could also apply to Home Movies, and that show's great. Maybe "a vessel for the writer's jokes" isn't such a bad thing for a cartoon to be if the art has charm and the jokes are good. ↩︎
-
Like most successful American cultural products, both shows would eventually be driven into the ground and lose all of their charm, Doug being sold off to Disney and Rugrats being subjected to a series of theatrical films and "All Grown Up" spin-offs; but the Nicktoons label would continue making great cartoons for years, reaching its peak in the mid-aughts with Avatar: The Last Airbender, one of the most beloved and influential cartoons of the 21st century. ↩︎
-
John K. can't even be fully credited with creating the concept, because Ren and Stimpy originated as background characters in a pitch for a show starring his awful Jimmy the Idiot Boy character---it took someone at Nickelodeon pointing out the characters and saying "they're cute, why not make a show about them?" to get the idea off the ground. ↩︎
Website, Kiki, Brain
Tuesday April 29th, 2025
Tags: blog, crafting, kiki, mental health, meta, programming
Most of my creative energy for the past few days has gone into my website. I'm really happy with how it's coming along. My goal was a design that combined the simplicity of my bearblog with the colorful personalization of my old neocities site, and I think I nailed it. I solved the navigation problem by putting all the major site categories in a well-designed and accessible drop-down menu in the navigation bar. I've always wanted a site with a drop-down menu, but always balked because doing it with pure CSS or a details/summary hack never looked or behaved quite the way I wanted. Like I'm sure it's possible if I beat my head against it long enough, but instead, I just used javascript. Every big website is three javascript frameworks in a trenchcoat, so I can have a little script or two. It looks great.
I think I'm pretty happy with the design and structure of my site, most of the changes I want to make now will involve hacking the PHP to streamline and automate some processes. I'm not going to rush it, because I need to take a break from programming for awhile. I love it, but I tend to get "lost in the sauce" a little bit. It's like the good version of what I experienced during my Linux ordeal. Instead of addiction fueled by frustration, it's fueled by the joy of creation. It's good, but hacking the PHP will be much more challenging than anything I've done with kiki this far and I need to slow my brain down.
Kiki
Speaking of kiki, I'm still very happy with it. There are some functions from other wiki/blog solutions I wish it had, but it's still been a joy to work with. I can't believe how long my workflow for having a website was "writing HTML in the Neocities editor". I don't like writing HTML under the best circumstances, and I love neocities philosophically, but their file management/editing UI is straight-up dog trash. Maybe it's just the devil I know, but markdown works for my brain. Making a new page on neocities involved: deciding what template I want to use, copying and pasting the template, making sure to change all the fiddly bits (there are still pages on the old portfolio site with the wrong title attribute because I just couldn't make myself care,) writing the page, checking the formatting, fixing the formatting, checking the page again, checking the links, fixing the links, and hopefully adding a link to the main page (checking it 2 or 3 more times to make sure everything works properly, usually fixing at least one more thing after it's live...)
With kiki, the process is: create a link to the new page. Click the link. Fill out metadata. Write markdown. Save. Done. I'm still not perfect, but I make way fewer mistakes because markdown stays out of my way. It feels like writing++, not writing subsystem for hypertext
.
Anyway, I've copied most of my stuff from the old site and linked to most of my stuff on third-party sites. There's still probably a lot of blog posts I want to copy over to the archive, but so far I've just got a few recent ones and a few old ones that stick out in my memory. If you've been a reader on bearblog and you think any particular entries are worth highlighting, please let me know.
In other website news, I'm thinking of ditching the guestbook, at least for now. I checked my dashboard to see if all the recent activity has impacted my hosting fees at all, and no, not really; but I noticed that the cost of a SQL database is almost as much as the rest of my website combined. Which is still barely anything, but like, the guestbook is kind of broken anyway. It doesn't escape characters properly, which wouldn't be a big deal, except that it breaks if someone uses an apostrophe,1 which is a pretty important character. Like if you're going to write English with a limited character set, you can get by with just periods, commas and apostrophes. Losing any of those 3 is kind of a dealbreaker. I can fix it by editing the database, but I don't relish the idea of it looking like trash until I notice it and am at home where I can fix it.
I could debug it, but I'd rather spend my energy on a guestbook module I can cleanly incorporate into kiki, preferably using flat files instead of a database.
I mean... I guess the simplest option would be to just use my existing contact form, and if you put "guestbook" in the subject line then I'll add your message to a guestbook. I'll just make a "guestbook" tag and give each entry its own page. Boom, problem solved. People might not want to use it if the message doesn't appear instantaneously, but then they can just not use it. There are plenty of places on the internet for instantaneity, my personal website doesn't have to be one of them. It's cool.
Also, I realized my captcha approach was totally unnecessary. I changed it to a "negative captcha". The idea is, bots that spam forms on websites will put something in each input field. They're not designed to leave anything blank. So I have a captcha field on the form that's invisible to humans but visible to bots. If that field contains anything when the form is submitted, it's identified as a bot submission and rejected. I read about this technique years ago, and apparently it works, I don't know why I didn't think to do that before now. I guess "bots fill out every field" feels slightly more superstitious to me than "bots can't identify emoji". Like, is it true? I feel like I've seen spam comments on blogger where the bot didn't bother to fill out the URL field. Which seems counter-intuitive to the purpose of spam, but nothing about spam makes sense to me. Anyway, I guess I'll see if I get any spam and report back. If it doesn't, I might try giving the bot traps ID attributes like "message" and "email" and see if it's more inclined to fill them out. The actual message and email fields could have gibberish IDs, they only matter to me and the computer.
Brain
So, I just did all the work I talked about for the guestbook. At work, on my phone, even though it would've been way easier if I waited til I got home. This is the problem with my brain problems: if I have an idea, I need to act on it immediately, because I have the motivation now, I may not have the motivation later. A lifetime of ADHD executive dysfunction has trained me to strike while the iron is hot, do the thing now because when I get home, it may be too late. Even though my ADHD is treated, and I'm a lot more likely to be able to follow up on an idea, old habits die hard.
Even as I was writing this, I thought "Now that I integrated the guestbook page into kiki, I know I can do the same with the contact form." Previously both functions were in their own separate sandbox, and I crudely copied the HTML generated from one of my pages to make it appear to be smoothly integrated. But there were seams. I knew I could do it right.
The only PHP function in the form is one that parses the URL for a ?subject=
query and auto-fills the subject field if there's anything in there. Following the instructions in the user guide, I added a new variable to the load_page()
function to allow me to do this from within kiki:
if ($page_source)
{
... snip ...
if (isset($_GET["subject"]))
{
$dynamic_content["subject"] = $_GET["subject"];
} else {
$dynamic_content["subject"] = "";
}
... snip ...
}
Now in my contact form all I have to do is add value="$subject$"
2 to the subject field, and it works! It's seamless!
This is something I was never able to do with oddmuse. I had to use the "copy the HTML" method and keep the contact form sandboxed, because the contact form was PHP and oddmuse was perl.
It's a very small thing, but this is the first time I've actually changed the kiki code for a dynamic function, and not just adding a <title>
attribute or header image. Getting it to work feels incredible, I'm unstoppable. I already know what my next hack will be: custom emoji! It should be dead simple to add a $$headpat$$ variable that will drop in this critter:
See, this is what my brain does. I shouldn't be doing any of this. Remember what I said the other day about debugging PHP on your phone? And how you should not? I can't take my own advice. I said I needed to take a break from programming and slow down and then I did this in the same afternoon. My brain makes me do things I shouldn't. I wish it didn't have a mind of its own
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.
Weird things I want
Tuesday June 03rd, 2025
Tags: blog, books, GarbageDigest, tech
A personal codex
I was watching a video by an ex-mormon about the mormon cookie craze, and at one point the host pulled out a copy of her personal LDS Bible. It's an impressively thick soft leather-bound tome officially known as the Standard Works, nicknamed the "quad" after the four books it contains: The Bible (old & new testaments), the Book of Mormon, and two additional LDS books called the Doctrine and Covenants and Pearl of Great Price. It has black thumb-index divots for quickly finding the section you want to reference.
Obviously I have no need for religious texts, especially one for a creepy cult, but there's something about a thick codex with thumb divots and tiny text on onion skin paper I find inherently appealing. It's such a dense brick of information! It looks so official and important! Maybe it's because I'm reading Cryptonomicon, so my current interest in arcane texts and esoterica is higher than usual, but it'd just be cool to have a big codex I can pull out and look studious and mysterious. But what would I put in it?
I think there should be a service that'll let you paste a bunch of links from wikipedia or project Gutenberg, it'll calculate how many of the ~2500 pages each text document will use at the requested font size, and print-on-demand a personal codex of your most sacred texts. Trying to figure out what I'd fill it with would be an interesting exercise. One could go with the top X wikipedia articles, or maybe a random selection from the "good article" category. This would be good if you want a book with a bunch of stuff you can learn about, but not very "personal". Maybe it could be half wikipedia and half fiction? I could type up a list of stories I'd include, but the number of "classics" I've read and enjoyed is shamefully low. There are a bunch that I bet I could read and enjoy if I made the effort to; maybe I'd be more willing to try if they were presented in a mysterious-looking tome.
What about if copyright weren't an issue? That's an easier list to build:
- Cat's Cradle
- The Crying of Lot 49
- The Dispossessed
- The Hitchhiker's Guide to the Galaxy
- The Little Prince
- Moxyland
- The Pale King
- The Wee Free Men
- Winnie the Pooh (both books)
- A Wrinkle in Time
That seems like a lot, but most of those are under 200 pages. I think I could squeeze them into 2500 pages or standard paperback-size print. (Let's be real, if the font is any smaller I'm not gonna want to read it.)
What would you put in your personal codex?
A photovoltaic hat
I'm still trying to get my 10,000 steps a day now that it's getting a lot sunnier, and I realized that my head is getting all this direct sunlight that's just going to waste. Why not wear a hat that can charge my phone? Flexible solar panels are a thing, and a hatsworth wouldn't be all that expensive. A plain wide-brimmed black hat like the one worn by the Oats Quaker would probably be the most fashionable, but you could do a cowboy hat or sombrero for additional juice/shade if you don't mind some funny looks. A "stovepipe" hat would be the most thematically appropriate; maybe it's time to bring those back? All the kids these days love Lincoln.
You could put a power bank in the "bowl" (?) of the hat, but keeping a bunch of li-ion cells in a sealed heat dome next to your brain probably isn't the best idea. Better to just have a USB cable running from the hat to the phone in your pocket. It probably wouldn't be enough to charge it, not while the phone's on, but if it could help the battery drain less slowly, that's something.
Or wait, what about a solar umbrella?! That'd be rad. The "stem" (?) could have a built-in phone holder with a charging dock! That's way better. No unsightly cables, better sun protection, more surface area = more power, and you wouldn't have to wear a hat. I hate hats, why did I think of hats first? Solar umbrellas all the way.
A phone case with like 20-30 fake cameras on the back
I recently learned about a depressing category of product from the early 90s: personal cassette players shaped like personal CD players. To make people who don't look too closely think you can afford a personal CD player.
Vwestlife, A Discman that plays cassette tapes - Suntone CD100
My immediate thought was that the modern equivalent of this would be a phone case with a fake camera bump on the back to make people think your $30 TCL phone from Walmart is the latest $1600 apple phone. I can't find any examples of this (I'm having trouble even thinking of what search terms to use) but I'm sure this product must exist somewhere. It's probably something you can only find in signless mall kiosks that are mysteriously empty when you return the next day to demand a refund for your melted "USB-G Adaqtor".
But then I thought, why stop there? Recent trends have clearly demonstrated that more cameras = more luxury. Just cover the whole thing with fake cameras, of varying shapes and sizes. Make it out of thick enough plastic to include a fake cutout so it looks like the cameras are on the actual phone. You'd have to cover the real cameras to make it look seamless, but who cares about taking photos when you have the exclusive Mitsui Vuitton Optic Sapphire 24S to show off? It's the world's first biblically accurate phone.
The Light L16, a camera from 2018 with only 16 smartphone lens modules.
Feel free to take any or all of these ideas on Shark Tank, just send me a freebie if it works
If you mentioned this post on your own site and would like to notify me, please enter the URL here:
If you have a fediverse-compatible account, you can reply to the post here.
Otherwise, click here to send a message.