Jeff Clough - Blog


Heat

I finally broke down and swapped out a storm window in my room for a screen. It was nearly 80 in my house, so this was pretty much a matter of survival. I can't sleep at those kinds of temperatures.

I've been putting this off because I still don't have my room set up the way I want it to be, I have three windows I could possibly open, and didn't really want an open window immediately next to my computer. Now that it's done? Eh, it's probably fine.

Anyway, the window really helped me last night. It was still a little rough, but I didn't wake up in a pool of my own sweat. I'll take the win.

This was much better than the night before, when I didn't really sleep before, like, one in the morning. I just sort of dozed, and struggled with bedding that kept wanting to stick to me.

As a result, I didn't get much of anything done, except a bit of housework and a tiny bit of note-taking for a project.

Today, I have an enormous list of errands and outside things to do. Most of the these are things I want to do, but I have to make a grocery store run and that's...not something I'm looking forward to.

I don't really know why, but the thought of blowing an hour to go shopping just irks me, today.

That said, if I do my errands today, that means I won't have to leave my house this weekend. And that means I can hide and work all I want over the next few days.

Tired and wonky

I spent most of yesterday feeling tired and dealing with various aches, pains, and joint issues. So that was neat.

Back in my early teens, I noticed that my right ankle "cracked" a lot, as one might crack their knuckles. Only my ankle cracked with nearly every step I took. This, combined with a shoulder which spontaneously dislocated if someone looked at it funny, led me to see a doctor about all of this.

The doctor did some exams, some x-rays, and told me: "Holy shit, your ligaments are totally fucked!"

Obviously he used more and different words, but the gist of it was that I had "loose ligaments" and that they were only going to get "looser" over time. This was going to result in increasingly poor stability in my joints, and a fair amount of pain.

(Note: It has been suggested to me by non-doctors that I may have a form of Ehlers-Danlos syndrome. And...maybe? It never came up in any office visits, and I don't recall them doing any testing for it. I also don't have the full checklist of symptoms, but given there are a dozen forms of the disorder---and I'm not a doctor---who can say?)

Anyway, the prognosis was that I'd probably have to have surgery to shorten my more annoying ligaments sometime in my early forties. "You'll want to wait as long as possible so you don't have to have another one," my doctor said. See, even if they shorten the ligaments, they'll eventually stretch out again. "You don't want to have this surgery when you're seventy."

Well, I'm pushing fifty now, and I have to say that, yeah, I really would have liked to have gotten this "fixed" about five years ago. And if I lived in a country with affordable healthcare, I would have done just that. But because I live in the United States of Fuck Off and Die, my approach has been: "Just don't do anything which requires you to rely on your ankles, knees, hips, or shoulders staying where you want them to."

"But surely you can do some kind of physical therapy to improve things," you say? Counterintuitively, physical therapy would actually make the problem worse. Any time I make my ligaments do their job---such as by moving at all---they get more stretched out.

Ultimately, I'm just screwed. Some days are better than others, and some days every step I take feels like a roll of the dice.

Yesterday was one of the dodgier days. Basically I just did not have a reliable right knee. There wasn't really any pain, it was more like every so often my lower leg would decide to not be fully connected to my upper leg. And yes, that feels even weirder than you think it does.

Anyway, add to that the fact that I never felt like I truly woke up yesterday, and you see why I did fuck all, and just went to bed stupid early.

This morning I'm feeling much better. I'm mostly awake, and my knee seems to have gotten with the program. It's a little sore, but it feels stable enough.

I'm still planning to take it easy and just work on the computer, but that's a disappointing thought. The weather was gorgeous yesterday, and it promises to be even better today. I'd really like to go out for a walk to enjoy it, and get some exercise in the process, but I also really like not falling over and breaking important body parts.

Sigh.

Restraint

Had a decent night of sleep. The thing in my back is still a thing, but it didn't really bother me like I'd feared. Hopefully this means that I can get some stuff done today.

But now, here's a rant! (I might move this out of the blog and into it's own page, but I don't think it's coherent enough.)

I was scrolling through Mastodon yesterday---as I often do---and ran across a series a posts about Discord in the context of tech support, bug tracking, and devops for software projects.

Some of the people in this conversation were of the opinion that collecting and keeping all of a project's Q & As, HOW-TOs, and workarounds in Discord is a Bad Thing, and this information would be better kept on the open web, or forums, or some such.

One person, though, was explicitly for Discord, and claimed that all other ways of organizing and archiving such information were worse.

I did not involve myself in this conversation, because I'm into my fourth decade of being online, and have learned I can just let people be wrong on the Internet without replying to them.

But OH MY GOD!

I've been involved in the FOSS community since the mid-nineties. I've seen communication channels come and go, I've seen documentation and information aggregation take on various forms, and I've seen all of the various combinations of these things have their strengths and weaknesses.

But if you're looking at Discord for this, and thinking "'tis peak, my lord," then I don't even know what to tell you.

Beyond the Official Documentation for a project, as well as a Bug/Issue Tracker, you need three basic forms of communication:

Instant(-ish) messages

I have a quick, one-liner question. Where can I ask that? This used to be covered by IRC back in the day. Now? This is where Discord is the most useful. There are other options, like Matrix/Element, but if you call Discord the best for instant messaging, I won't argue.

Long-form, detail-heavy messages

If I've spent four hours trying to diagnose a config issue, and want to reach out for help, I'm going to want to describe the problem, what I've done to solve the problem, and maybe even post my configs. This kind of stuff used to go to a USENET group or a mailing list. Then it became a forum on an Official Website. Then it became Reddit or Stack Exchange. Discord is terrible for this.

Aggregate information

Sitting somewhere between Official Documentation and the collected "long-form messages" sitting in an archive somewhere, there should be a place where the most common issues are addressed with their most common solutions. This used to be FAQs and HOW-TO collections. Then it became Wikis. Discord is terrible for this.

Discord is built around an IRC-like model of short, channelized chat messages. It's good for getting a quick answer to a simple question. It is bad for long-form content in general, and the options for searching through these messages are universally painful.

As an "ideal solution," I would probably use Discord today as a replacement for IRC, but couple it with a mailing list and a Wiki for anything that involves more than a couple hundred words.

And I would give a serious side-eye to anyone who straight-facedly tells you that Discord is the best we can do.

Casual notes...

Slept pretty well last night, and woke up feeling mostly human. It's amazing what happens when you don't stay up several hours past your normal bedtime.

In other news, in no particular order...

So, yeah, assuming I don't lose power, I'm hoping to get a bunch of things done, not the least of which is to cook up a batch of Hungarian goulash.

Hurumph

I had a very good day, yesterday, but I stayed up far too late.

Grocery shopping went smoothly, I went out to breakfast as planned, and my anxiety levels didn't really flicker at all. Sweet!

But...

Mistakes were made. And I stayed up until midnight watching things. Specifically, I decided it was time to re-watch "Some Kind of Wonderful," which is hands down my favorite John Hughes teen movie. Awesome, but worth it? Not according to my head this morning.

I also checked a few things off my list, including some overdue system updates and backups. I'm usually pretty good with such things, but it had been about a week since my last go round.

I also did some installation, testing, and configuring of something that I can't talk about now. Perhaps I'll write about it in the future.

And on that note, I need more coffee.

Humaning like a boss

Gods be praised, I actually woke up feeling like a human this morning.

I was able to get to sleep before seven, got up about three thirty, and felt pretty good about both of those things. My brain seems functional, and I'm not too angry about needing to go to the grocery store this morning.

I'm going to try to get a handful of things done on the computer this morning before shopping, and I might even go out to breakfast today. I haven't been even remotely up to being around other people lately, so we'll have to see how I feel in a few hours.

It's amazing what sleep can do!

Improvement? Maybe?

I slept a little better last night. Still had trouble falling asleep, but I didn't wake up too many times, nor did I have any fucked up dreams.

I'll take it.

I'm starting to wonder if the reason I'm having so much trouble getting to sleep---or even just feeling tired enough to try sleeping---is because of how much later the sun goes down. I don't recall having this trouble much before, but since I'm a chronic insomniac, how would I even chart that?

Whatever. What's a world without mystery?

I've spent the last few days mostly watching hardcore nerd shit on YouTube. DEFCON talks, engineering channels, tech reviews---basically whatever the algorithm shoves my way, with a minimal amount of curating.

I'm not sure that counts as "productive," been it's certainly been enjoyable, and it's what I intend to do for most of today as well.

Chilling by day, freaking by night

Yesterday was kind of weird mix. I had an incredibly shitty night of little sleep and lots of dreams. I got up at five, but basically didn't feel even close to human until about nine. After that, though, I felt pretty good.

Spent most of the day watching videos of lectures and talks that I've been meaning to see, and just sort of chilling out.

Well, last night, my sleep wasn't much better. It took forever to fall asleep, and when I was asleep, the dreams were so vivid and disturbing that they woke me up. Over and over and over.

So that's neat. I stayed in bed until about six thirty, when my back was tired of being horizontal.

Right now, it's a bit after eight, and I'm once again starting to feel awake and pretty good.

No idea what's going on, but I'd like my brain to dial down the nightly freak fest.

Assuming I can recruit enough working brain cells this morning, I should be able to cross a few things off my list. Not sure exactly what, but I basically have a whole day to myself.

I should probably do something with it.

Mental health? In this economy?

Got a semi-decent amount of sleep last night, which is good. And my bowels seem to have recovered from the dietary roller coaster I've recently put it through, which is also good.

Even better? I woke up this morning actually wanting to do things. You know, other than laying under a blanket in the dark.

I should probably get on that.

Well that sucked

I spent most of the day under a blanket wanting to die. The "keto flu" hit some extreme levels that I was not prepared for. Also? I really wasn't seeing the benefits I had before.

So, that's that, then. There's a limit to how crappy I'll feel in the short term in order to feel better in the long term. At this point, I'm going back to balancing nutrients and being tighter on portion control.

Suffice it to say, I got almost nothing of substance done. And given I have to go to the grocery store today, and didn't get a whole lot of sleep last night, I figure today's going to be much the same.

I did get to spend a pleasant hour laying in bed just relaxing before my alarm went off. It's been a few days since I did that.

My mental health has really been in the toilet these last couple of months. There are a lot of specific reasons I can point to for that, some beyond my control, some not, but knowing the why's doesn't really help when I can't do fuck all about most of them.

One thing that's really fucking me is the weather. Winter is just hanging on for dear life, and there have been very few days I've even wanted to sit on the porch, let alone go for a walk.

And the bouncing-betty temperature makes it extremely difficult for me to sleep. I'm either always just a little too hot, or a little too cold at night.

Regular exercise and decent sleep are two of the best things for my brain, and right now I've got nothing approaching either.

The long range forecast is snow, snow mixed with rain, rain mixed with snow, and rain. There's an island of sun predicted for Monday, and maybe another one on Thursday. Other than that, it's cold, wet, and gloomy all the way down.

Fantastic.

Improving

Day six of the carnivore diet is upon me, and while the "keto flu" has been generally mild, it's still a thing. On Friday, I have to go to the grocery store again, so that will be the day I make the decision as to whether to stick with carnivore, do a broader keyo diet, or change things up entirely.

Today I'm baking a ham, so that will be a couple of days worth of food sorted.

I didn't get a lot done yesterday, but I did make some progress on things. Maybe today will be better?

I've kind of been in a lazy mood lately. Some of that is down to a lack of energy, but mostly I've just been fine with sitting around and watching things, as opposed to doing things. My guess is that this is me continuing to unwind from the stress of *gestures widely*.

It also bears repeating that it's hard to Make Plans and Do Things during an apocalypse.

Continuous

Mistakes were, again, made last night. I finished my semi-regular re-watch of "The Matrix" movies, but at what cost.

And yes, I watched the fourth one again as well.

When "Resurrections" first came out, I thought it was reasonably good. Definitely not as good as the original, slightly better than the second and third movies. Since then, I've seen it several more times, and after each viewing I liked it less and less. Today? The film is firmly in "Just O.K." territory.

I don't mind watching it, but I don't really enjoy it either.

Beyond movie watching, I basically did next to nothing yesterday. And I'm pretty sure that trend will continue today. I want to play around on the computer, but I also want to curl up in a blanket and do a whole lot of nothing.

I got up with a headache and general, physical "oogie-ness," which probably explains this desire. Other than that, though, I'm feeling pretty good! The "keto flu" hasn't kicked my ass nearly as hard as it has in the past.

Still, I'm definitely not operating at 100 percent.

In other news, the Servo maintainers announced that they're considering letting AI-generated bullshit into the project, and asked the community what they thought of it. Needless to say, there was a resounding chorus of "oh fuck no no no" in response. My own reply was...

"JFC...no! Spicy auto-complete plagiarism engines destroying the Internet and boiling the planet are at least *half* the reason people are starting to give a shit about Servo. What even the fuck is wrong with you for entertaining this!?!"

I'm not sure, but I think that earned me a block, since I appear to no longer be following their account. Normally, I'd feel bad about that sort of thing---and my choice of words, in general---but I can't even pretend to be polite over shit like this anymore.

The only reason I give a shit about Servo is that maybe, someday, it will become the life-raft I need to escape Firefox. And the reason I want to escape Firefox is because Mozilla is burning twice as brightly in their quest to enshittify it. And one of the ways they're enshittifying it is by wholeheartedly embracing generative AI.

Even the faintest whiff of AI-nonsense in a project is a huge turn-off for me at this point, and it's incredibly disappointing to see Servo even thinking about doing this.

Unless they listen to the huge outpouring of negative feedback they're getting, I think Servo has a good chance to fade into irrelevance before they even hit version 1.0.

The GitHub post announcing this proposed change to their AI policy has a grand total of five "thumbs up" and two hundred fourteen "thumbs down," so maybe there's hope.

Proceeding

Mistakes were made last night. Among them was that I stayed up too late watching a movie.

On the plus side, I slept incredibly well, and didn't get up until my alarm went off at five. Back on the minus side, I slept too well, and didn't get up until my alarm went off at five.

I'm feeling a little "off" this morning. While that can mostly be explained by the above, I think the "keto flu" is starting to come in. So far, it's been very smooth sailing, so I'm not going to complain.

Anyway, I got a ton of work done yesterday. Not as much as I'd like to have done, of course, but that's always the case---my Inner Critic is never satisfied. I'd like to have a repeat performance today, but I won't know if that's even possible until I've woken up.

I've had some fun conversations about programming lately. On sub-topics ranging from which programming language someone should learn first (Python) to why writing reliable and secure code is so hard (C).

After the most recent discussion, I decided it was time to re-read/skim the "Unix-Haters' Handbook" again. I have to say it holds up remarkably well---much to the collective shame of computer geeks everywhere.

Specific bugs, long since patched, have been replaced by equally-frustrating bugs. Design inconsistencies have become Official Standards. And all of the sins of the fathers (X-Windows) are being committed by the sons (Wayland).

And of course, all of this got me thinking that the computer on my desk today really isn't that much faster than the computer I had on my desk twenty years ago. Moore's Law has been trotting along, sure, but human beings haven't seen much of the benefit.

Most of the raw CPU gains have gone to the computer itself. Crypto-mining and LLMs being the two most recent, most obvious examples of things humans didn't really want or need, but are still gobbling up computing resources and developer time which could be spent on actual improvements to the human condition.

I remember, back in late 2007, I bought an Xbox 360 and a few games. One of these games was the then-brand-spanking-new "BioShock." I remember first firing that up, seeing the opening cinematic with the plane crash and landing in the water, then waiting for the film to end so I could start playing.

And I waited.

Then I accidentally nudged an analog stick and saw the screen move.

My jaw was on the floor. A couple of days later, I had friends over, and put one of them down in front of the television so they could play.

They did the same thing, and just sat there while their character tread water.

"That's not a cut scene," I said. And the room was filled "no fucking way" and "are you fucking kidding me".

I think that was the last time I was impressed by how far computers had come.

And with that random nonsense out of the way, I'm going to go grab another cup of coffee.

Improvement?

I had zero energy yesterday, and enough brain fog to turn a town into Silent Hill. I'd say I spent most of it watching television, but it'd be more accurate to say I spent most of it waiting to go to bed while moving pictures played on my screen.

Today, though, I feel much better. And while it's only day three, my brain is better than it's been in weeks.

There's no one, single thing I can point to as evidence of that. Rather, it's a bunch of little things. Like, how quickly I got up, the fact that I remembered to put my tablet on the charger before leaving the room---lots of little efficiencies that when taken together paint a much different picture than what I'm used to dealing with.

I'm cautiously optimistic. As I said, it's only day three, and historically the next couple of days are going to bring the "keto flu." Still? It's hard not to be excited about having a functioning brain.

(I'd write something here about how it's only been in the last two years that mainstream medicine is taking a serious look at how diet---and keto in particular---impacts mental health, but that's an unhinged rant in and of itself.)

Anyway, I'm going to spend as much time working as I can today. If my brain continues to cooperate, I should be able to get a ton of stuff done. I'm still going to take it easy physically, but I have every intention of giving my keyboard a workout.

Speaking of which, I'm having mouse trouble.

I have two laptops, and for each of which I bought a super cheap bluetooth mouse. Well, about two weeks ago, the mouse I was using on my primary machine started doing this thing where the scroll wheel was freaking out.

I'm not exactly sure how to describe the behavior, but it's almost like scrolling was randomized. I'd scroll down or up one "flick," and there was about a sixty percent chance the mouse would do what I wanted. There was a twenty percent chance it did nothing, and a twenty percent chance it scrolled the opposite direction.

This happened no matter which application I was scrolling in, and it persisted after rebooting or powering off the mouse and turning it back on.

I figured the mouse was dying, and stole the mouse from my secondary laptop which I hadn't been using anyway. That worked for about a week, but a couple of days ago it started up with the exact same behavior.

I can kinda see this happening because we're talking about the exact same model of cheap mouse, and I bought them at roughly the same time, and maybe they have about the same number of miles on them. Still...it's a mighty fishy coincidence.

I plan on buying a new, slightly-less-cheap mouse next week and hoping for the best.

Sluggish

Well, day one of the diet is behind me, and the "purge" has officially begun.

As for today? I have very little energy. This makes sense, given I had zero carbs and my body is not yet even close to figuring out that it needs to burn fat for fuel and not sugar.

My plan for the next few days is to try to get whatever work done I can, but be prepared to spend most of my time laying in a recliner and watching television.

I keep reminding myself that after this week of misery, I'll be feeling ten times better. And I keep remembering my lived experience of having gone through this before, and gotten great results.

I'm still dreading it.

Anyway, I have the weekend mostly to myself, so the chances of my getting work done are better than they'd be otherwise.

We shall see.

Clenching all the things

Today, I begin my diet. I've decided to start with a few days of one carnivore meal a day, to give my body a reset, but may broaden out a fuller plan in a few days. I'll still keep it keto, however.

I've done all sorts of diets, either for weight loss, general physical health, and mental health. Elimination diets, deep calorie restriction, etc. To be honest, plant-based diets are the easiest for me to keep over the long-term. Keto and the like? Not so much.

What can I say? I love bread.

However, when I've done the "OMAD" carnivore thing, after about a week my mental health is vastly improved. Like, on a scale from 1 to 10, my baseline anxiety levels drop from a 6 to a 1.5. The brain fog is also greatly reduced, though that might just be because it's hard to concentrate when your brain is spending half its time panicking about nothing.

There are, however, two downsides to going full carnivore...

  1. The carb withdrawal on days three, four, and five.

  2. The three weeks of constant diarrhea.

Reader, I'm going to be talking about pooping a lot over the next couple of weeks.

See, the carb withdrawals are pretty bad. Your body goes all "Hey, where's my sugar?" and it gets more and more impatient with you for not sending down some pasta or donuts. By day three or four, you'll feel like you have the flu. By day five, you'll wonder if having the flu might be preferable. Usually, at least for me, this is over by the end of the first week, and I'm feeling better than ever.

But the diarrhea, oh, ho, ho! That's the gift that keeps on giving. When I do the OMAD (one meal a day) thing, I have to be very careful when I eat that meal. Because, about forty-five minutes after I eat, I spend the next two hours making mad dashes to the bathroom.

We are not talking about "loose" poops here. We are talking about an unrelenting fecal fire-hose which will have you envying the dead.

This happens primarily because most of your gut bacteria have spent their whole lives eating nothing but carbs, and so it, too, gets grouchy. And by "grouchy" I mean it dies off and in the course of dying turns your guts into a stew.

(Fun fact: A similar thing happens to a lot of people if they go plant-based. The standard, American diet is hideously deficient in fiber, so our guts don't really have the bacteria to handle it. When you go plant-based, your fiber intake usually skyrockets. This results in massive and uncontrollable farting, but usually no diarrhea.)

Anyway, so this week is going to be fun.

But can I just add something, here? I spelled the word "diarrhea" right on my very first try.

Pleasant days

Yesterday was pretty good. I didn't get as much done as I'd like, but I did get some hot "Dwarf Fortress" action in. Finally started getting migrants again, which is good, since I was able to fill out my first military squad.

Unfortunately, one of the new arrivals is a Necromancer.

I've honestly never had a Necromancer for a citizen before. I'd be concerned, but my dwarves don't seem to mind---they elected him Mayor.

(Yes, I know I can get rid of him, but where would the Fun in that be?)

I've been posting my dwarven adventures in the Discord server my friends and I use, mostly because it's fun, but also to try to lure them into sharing my obsession. Last night, my efforts paid off, and the first of my friends bought the game. Let's hope the friendship lasts.

I finished out the day by trying to watch YouTube on my TV without an ad blocker. Specifically, I tried to chill while watching a playlist of music videos. This, it turns out, was futile. YouTube insisted on showing me a 15-60 second ad before every video. That was not chill-inducing.

Anyway, today I'll have the house more or less to myself, and so I'm just going to be hands-on-keyboard for as much of it as possible.

What, specifically, I'll be doing with that keyboard is still up in the air.

Happy Birthday to me

Today marks another trip around the sun for me. I'm mostly OK with that.

This last year has been pretty shitty, not gonna lie. On a personal level, there were health crises galore for me and my family, spectacularly destructive interpersonal conflicts, and enough "little annoyances" to make most every week a slog.

I'm still here, which I'm told counts for something.

I'd probably feel better about that if I'd slept better.

It took me hours to get to sleep, and I kept waking up. Once again, it was the weather that got me. Too hot to use the blanket, too cold to not use it. Alternately shivering and sweating is not a recipe for good sleep. I finally got up at around 1:30, with the idea of taking a glorious nap later today.

On a positive note, I plan to spend today drinking coffee, writing code, and mucking about with sysadmin stuff. Dwarf Fortress might be involved, as well.

One of the things that's been on my list is getting a self-hosted email server up and running. That's harder than it sounds in this, the Year of Our Void 2025. Reliable email delivery outside the hallowed halls of Google has been a clusterfuck for something like a decade. And in order to Make It Go, one has to resort to a cargo cult-esque series of software packages and word-of-mouth hacks and tweaks.

"Oh? But I get email through my own domain and it works fine," you say?

I assure you that one or more of the following are true...

  1. It does not, in fact, work fine, and you are losing mail.

  2. You're really using Google---or some other Big Tech Company blessed by Google---on the back end.

  3. Your hosting company invests countless hours keeping the email hamsters alive on your behalf.

Many, many people I personally know run their own mail servers, some hosted on-premises, some hosted in a Big Tech cloud like AWS, others hosted on smaller ISPs. And every single one of these people, without exception, deeply regrets their life choices.

What's more, when asked about how they manage to make their email work, the conversation is always like this...

Me: "How do you make your email work?"

Them: "Don't do it."

Me: "Okay, but let's say I---"

Them: "It's the path of madness."

Me: "Well, I understand it's hard, but---"

Them: "Ȉ̸̫͓͖̝̼͂̃̒̒͝͝t̸̪̠̉̈́̌̈̕ ̸̢̬͔̫̥̪́́̀̓͝c̴̦͎͋̐̅̿̾̿̾͛ơ̴̠̣͓̈́͗͑͝͝m̴̢̹͉̠̰͙̈́̋͌͜͜e̶̜͓̗̥̪̣͐͐̈́́͐̂̈̇s̷̡͉̲̦̻̜̥̟̐͌͝.̴̱͈̖̠͐̔͝ ̶̪̋́̋Ḯ̴̡̈̎t̸̡̡̮̝̭̺̦̼̿̓̊̂̈́̋̚ ̴̡̢͔̗̭̦̇̿̐̓͊̕d̵͉̻̤̈́͌̄͘ë̵̺̠̮̫̱́̓̅̚͝͝v̵̻͍̥͔̯̒̃͂̐́̏͠ơ̴͉͍̘̂̓̽̎̓̉u̴͖̠͇̞̟̱̞͛ŕ̸̢̝̞͕̼̬s̵̨̝̥̄̎̃͂̃́̚̚.̴̲͓̫̭͐̅͘"

So that's not exactly encouraging.

Still, what better way to spend a birthday than descending into a Stygian pit of despair?

Flowing

It's April Fool's Day, also known as "People With Terrible Sense's of Humor Try and Fail to Be Funny on the Internet Day."

I was awake for less than fifteen minutes this morning before seeing someone fall for some bullshit. So, you know, it's a good day to consider just logging off.

Yesterday was an extremely productive day, so I'm pretty happy all things considered. And by "all things considered," I mean I really hate GUI programming.

The first environment I learned how to build GUIs in was HyperCard, an application and development tool developed by Apple for the Mac. (The first version was apparently written for the Apple IIGS. Who knew?)

HyperCard applications were basically dead-simple databases combined with editable, visual layouts and tied together with an automation language called HyperTalk---the ancestor of AppleScript.

You could make a lot of really cool things with HyperCard. The original version of the game Myst was built with it! And making interfaces was easy.

Want a button? You just drew it on the screen as if you were using a Paint program. Wanted it to do something? You just double-clicked it and wrote your code. Things just worked intuitively, for the most part, and there was very little boiler-plate code to write before you got to code the good bits.

After HyperCard, the next desktop GUI framework I used was Xlib, under FreeBSD. This was kind of like jumping out of the kiddie pool straight into the middle of the Pacific Ocean.

Even a simple "Hello World" application involved about a hundred lines of boiler-plate code, filled with inscrutable symbols like XGCValues and XStringListToTextProperty().

There were widget toolkits and various other libraries to make things "easier," but they all had their idiosyncrasies and they all tended to make your program bloat like crazy. As such, I mostly avoided them in favor of raw Xlib and careful commenting.

Fast forward a couple of years later, and the company I worked for mostly switched from UNIX-based systems to Windows. As part of that migration, I found myself with a full membership to whatever Microsoft called "DevNet" back then (maybe it was just "DevNet"?) which came with the entire Visual Studio development stack.

That was when I got my first taste of the Windows API. Co-incidentally, that was the first time I ever thought seriously about killing myself.

Every single call to the API that did anything even remotely interesting seemed to take no less than eight parameters, half of which were always NULL for reasons unknown to everyone including God. Hungarian notation abounded, turning function names into line noise that only vaguely hinted at their purpose if you squinted just right.

It was truly a monstrosity, and I'm honestly amazed that anyone has ever been able to do serious work with it.

Over the intervening years I've used a number of other GUI APIs, toolkits, and frameworks. None of them as clean and easy to use as HyperCard, but also none of them as inscrutable and infuriating as Windows.

In my opinion, the least bad of the modern, going-concern toolkits is GTK. I know that's a weird opinion to have, and if I used Apple products in my daily life, I'd probably have a different opinion. (I think Objective-C is a pretty decent language, and I remember XCode taking away a lot of the pain of creating an interface.)

Still, I find GTK incredibly frustrating to use. Maybe that's because I never got my head fully around GtkBuilder. Maybe it's because I use Emacs and your modern IDEs confuse and frighten me. Maybe it's because I spent too many years writing HTML where you basically get a UI for free.

I don't know. The point is that there's a reason most of the code I write either sits on a server, or has a command line interface, or has a GUI which consists of "just give me a window and let me arbitrarily draw on it."

Java was actually pretty good at the latter. I wrote a bunch of games in Java back in the day, and I think all I had to do was sub-class a JPanel and I was good to go.

Whatever. Today's mission is to continue trying to remember how to make GTK go.

In other news, it has been two days since I played "Dwarf Fortress."