A Lovely Harmless Monster

Neurodivergence

💡 Note

This topic is long.

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 the condition still 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 complete 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 sensory sensitivities, 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 depressive disorder, and I think my neurodivergence is at the root of those problems, too---or, more accurately, society's refusal to accommodate it. 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.

I understand that autism isn't a monolith, but here are some of the traits I commonly see people with autism relate to that I don't:

I don't struggle to understand how people feel based on their tone, facial expression and body language. If anything, I'm over-sensitive to these markers: I often assume people are feeling emotions that they're not, or assume whatever emotion they're feeling is stronger than it actually is.

I don't "infodump"---I tend to assume other people aren't interested in the same things as me, and won't volunteer information about myself or my interests unless prompted. Because of my tendency to over-analyze other people's reactions, if someone seems bored or annoyed when I talk, I internalize this and become very anxious about ever opening up to them again. I've seen this described as "rejection sensitive dysphoria", and it's true that in the past I've experienced emotional distress at the inference of rejection, but I've become more (for lack of a better term) "zen" about these experiences, and tend to disconnect and withdraw rather than get upset. It's not as stressful, but it can be quite lonely.

I don't have "special interests"---in fact, quite the opposite. There is no one thing that I'm always going to be very interested in no matter what. The closest I come to a special interest is in games, and the way in which I want to engage with games is changing constantly. There's no one game I will go back to over and over forever; no matter how much I like a game, at some point I need to be done with it and move on to something else.

This same quality impedes my ability to find a meaningful career: I can't "get a job doing what I love", because no matter how much I love doing something, I'm eventually going to want to stop and do something else. It follows, then, that I'm going to have to work every day for the rest of my life my depression is fairly well-managed these days, but letting myself dwell on this conclusion is one way to make myself spiral, so I try my best not to think about it.

Routine is important to me to an extent, but this is mostly because I'm forced to exist on a rigid timetable for work. If I didn't have to go to work, there would be a few broad strokes to my daily routine, but the details would change dramatically from one day to the next, and I'd be very comfortable with it. My brain is novelty-seeking, and I feel stifled and unfree if I'm not allowed to explore new things spontaneously.

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.

Tags: topics, mental health

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:

Otherwise, click here to send a message.

  1. "Content Management System" is such a gross turn of phrase. I feel like no one uses "CMS" anymore, which is good, but I don't know if anything has replaced it. Can we call them "hypertext engine construction kits"? HECK yeah, we can. ↩︎

  2. But it can be used this way! It's very flexible. ↩︎

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:

Otherwise, click here to send a message.

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:

Otherwise, click here to send a message.

  1. Yes, technically it's a "single quotation mark", but you know what I mean. It's the key on the keyboard that everyone uses as an apostrophe. ↩︎

  2. But with two dollar signs on each side instead of one. Even in <pre> tags and using HTML shortcodes, dynamic variables still get parsed! ↩︎