Yesterday was a weird mix of getting things done and putting things off. I did some cleaning, cooking, and planning that I've had on the menu for a while. But I also continued to put off dealing with my room and spent a good part of the day under a blanket re-watching "Supernatural" for the hundredth time.
In my defense, though, it was a really cold and dreary morning, and the blanket was quite warm.
Today I need to get a grocery list together, though fortunately I won't have to go to the grocery store myself.
My anxiety has been extra extra about leaving the house lately. I'm hoping that goes away soon, but until then I'll just be grateful that I have people who can handle the Outside on my behalf.
Anyway, I also plan to spend the day playing around with C and GTK. This is mostly for shits and grins, but also because a number of projects I have in mind require either C/assembly, or a GUI.
As much as I'm tempted to write everything I can in Python, all of the GUI frameworks I've used thus far seem even more obtuse and clunky than anything I've ever done with C. Also? Shipping a Python application with things like pyinstaller just seems "wrong" to me.
I don't know. This is very much the unfrozen caveman part of me talking, I'm sure.
What I do know is when I went searching around for what the kids are doing when they need to make a desktop application, I kept running into "Electron." And I took one look at that bloated, insecure piece of shit and ran away screaming.
The moment someone suggested that every application should come bundled with its own outdated copy of Chromium, everyone else in the room should have locked the door and made like it was the Ides of March.
I never thought much about it, but the ubiquity of Electron explains why half of my apps across all platforms are bug-ridden, slow, and barely capable of interacting with each other.
But that's a rant for another day.
Today, I expect I'll be ranting about GTK, because about the only thing nice I've ever been able to say about it is that it isn't the Windows API.
Welp
Yeah, I shouldn't have installed "Dwarf Fortress." I got almost no work done, but at least my dwarves have a good start on their industry and a growing yak herd.
Alas, I haven't attracted any migrants since the first two waves. I'm guessing this is because I've kept the wealth of my fortress down while building up the military, but I'm worried I might have settled too far away from my home civilization.
Building up the population without migrants is...slow.
Anyway, that was fun, but I need to use today for something at least mildly productive. I have laundry to do, a shopping list to make out, and of course the ongoing mission to actually get off my ass and sort out my room.
What will ultimately happen? Who knows!
In other news, we're getting a bunch of freezing rain and ice as I write this. Predictions for how much ice are kind of all over the place, but given there's been a shortage of ice melt in our area---and we're down to less than half a bucket---we're kind of dreading the dawn.
Can't really do much if the car is frozen in carbonite.
Two days!
Today and tomorrow, I have zero outside commitments. Two glorious days of guiltlessly hiding in my house, away from people, and getting things done. Joyous.
I have several missions, the most important of which is to finally get my room sorted out and everything put away. This involves moving a printer, a table, a bookcase, and my computer desk. It will also involve a lot of griping about having to do those things.
Seriously, I knew I was probably going to have to move the bookcase before I filled it with books. Apparently, Past Jeff decided to just say "fuck you" to Future Jeff, who is now Present Jeff.
Past Jeff can be a real dick sometimes.
The setup I'm aiming for is to arrange my two tables in an "L" in one corner of the room, while somehow retaining access to a couple of windows, and leaving room for a third table to be acquired later.
The end goal? The computer and electronics lab I've always wanted.
One of my Side Quests is to get back into Amateur Radio and actually make use of the license I have. With any luck, and if the world doesn't end, I'll be able to spend next winter tinkering with a few radio and electronics projects I've wanted to do for years.
I also want enough workbench space so that if other people need help with their systems, they can bring their machines over and I can work on them efficiently. I seem to be doing more of that, lately, and expect the trend to continue.
That's half of the reason I've been dusting off sysadmin skills in the first place.
When people complain about locked-down, corporate-controlled software, it's easy to say: "You know, instead of using [proprietary software product], [FOSS alternative] might work for your needs." What's much more effective and helpful, though, is being willing and able to follow that up with: "Let me show you how that would look, and if you if you think it'll work for you, I can help you make the move."
That seems to be working out so far, anyway.
That said, I made the mistake of installing "Dwarf Fortress" yesterday. So...maybe all of these plans will be for naught.
In other news, I decided to shelve the Big Project for now and move on to another Main Quest. After sitting for another half a day with yesterday's thoughts, I honestly can't see myself taking it to its conclusion. Maybe if I didn't have to do all of the sysadmin stuff, plus the writing, I'd stick with it. But I do, so I won't.
I have some ideas about what the new Main Quest will be, so hopefully I'll be making progress by the end of the weekend.
That is, assuming the dwarves don't call me away.
Mostly chilled
I spent a good part of yesterday just chilling. It was nice to not have to do anything or talk to people for a while.
I did do that "tech demo" I had scheduled for the other day. It went mostly fine, a couple of glitches aside. At the very least, they seem to think the software could fill a need, so that's good.
I also spent part of the day thinking though the Big Project, mostly about whether I actually want to do it at all. My best guess is that it's going to take about a hundred hours to get it into a state where I can share it. And then maybe another two hundred hours to get the word out, get people to use it, and maybe get some other people on-boarded to help.
And that assumes there will be any utility or interest in it at all, which is a big question mark.
Three hundred hours is a lot of time to spend on something I'm not super passionate about, especially when I'm unconvinced there's any point to it at all.
My experience over three decades of taking on (or joining) Big Projects, is that they only work out if at least two of the following things are true...
I'm excited to work on it. No other motivation comes close to "pure joy" in it's ability to get my ass in the chair and my fingers on the keyboard. I can work "in cold blood," if I have to, but passion breeds persistence.
I think others will be excited to see it. Believing there's an audience, and believing I can meet that audience's needs, is really useful for keeping my excitement going when it's two in the morning and things aren't working.
I can break the project down into several milestones or "sub-projects," so I can release it in stages. Getting those intermittent dopamine hits from hitting "publish" early and often is also seriously motivating---as opposed to waiting weeks or months to get One Big Thing out the door. And there's always the risk that your "One Big Thing" will never make it out the door at all.
So far, I don't believe even one of these things is true, and I don't really know how to fix that. I mean, number three is kind of true, because I can launch with a small amount of content and build it up incrementally. But...yeah, those first two just aren't there.
All of which is to say I'm probably going back to the drawing board and will remain rudderless.
(Note: All of this overthinking on my part is the direct result of having dozens of projects fail over the decades because the ingredients weren't there. Successful launches feel great, even if what you launched ultimately goes no where. Failing to even get something out the door? That sucks.)
And let me just say, none of this is helped by the lurking question: "Will I and/or the world even be here to see this thing to completion?"
When the recession hits, I wonder what percentage of the decline in production will be caused by the simple fact that it's hard to be productive when "the fall of civilization" is an actual thing you have to worry about.
Manager: "When will the project be complete?"
Employee: "Assuming there are no global supply chain disruptions, nuclear exchanges, and the multiple pandemics and wildfires stay out of our region? Two months."
Manager: *applying camo paint to her face* "Right, two months it is. Unleash hell."
Employee: *cocks shotgun and heads for the door*
Where are my razorgirls, Mr. Gibson? I was promised razorgirls with my cyberpunk dystopia.
Meat robot blues
I've been dealing with higher-than-usual level of bodily aches and fatigue these last few days. So far, I've attributed this to stress, the quality of my diet, and my total lack of exercise for the last month. Now, though, I'm beginning to wonder if I haven't acquired a plague of some sort.
Anyway, today will be the first day in almost a month that I'll have almost entirely to myself. So if I can manage to make my brain work, I should be able to get a lot done.
The only question is what to actually do.
I don't think I can spend another day pounding YouTube videos into my skull without going crazy. I also don't think I want to spend the day evaluating content management systems.
The struggle is real.
Seriously, though, I have a growing stack of things to get through, a perfect day to make progress on those things, and a body/brain that seems to very much be voting NO on doing any of it.
It's not ideal.
Week of Hell: Part Two
I think I've demystified most of Open Stack to the extent that I need to care about it. I still have some lingering questions, but I believe my use cases are simple enough that I don't need to open the hood and fiddle with the tubes.
However, I've also come to question my decision to use MediaWiki for the Big Project.
I can't really even tell you why I have The Doubt. It's just an itch in the back of my mind that I'm missing something. I think what this really means is I don't have the design as hammered out as it needs to be.
Whatever, I'm rambling even more than usual. Smashing my head against videos for days on end will do that.
In better news, I played some "Stardew Valley" yesterday, so that was neat. So far, no real problems, although I am noticing some screen tearing, and haven't been able to fix it either with or without V-sync turned on. It's not a deal breaker, and I think I even saw it on Windows before, so I'm trying to ignore it.
So far that's working out.
Random notes from the fog
I've been taking entirely too much time getting up in the mornings. My meditation/lurking in the dark routine is pleasant, but not very conducive to getting things done.
I didn't get a lot done yesterday, partly because of the above, but mostly because I succeeded in distracting myself with random YouTube videos.
I have to do a "tech demo" today. I volunteered to help someone evaluate a few pieces of software to see which might fit their needs for a project. Now we need to have an online sit-down so I can show them what I've found and how it works. Been a while since I've had to do that sort of thing.
I made baked macaroni and cheese from scratch, yesterday. This was the first time I've made it that way. It turned out pretty good!
Alas, I probably won't be having much of that sort of thing in the near future. Next week, I'll be going on a diet and getting back on track with my walking and exercise routine. I've gone way off the rails these last couple of months due to *gestures widely*.
I still haven't made the time to play any games.
Week of Hell: Part One
One of the things I absolutely hated about going to school was having to sit at my desk, listening to the teacher ramble on, and not being able to do anything else.
Spoken explanations do almost nothing for me. Written explanations are mostly fine, to a point. But I really, really need to actually do the thing in order to learn it.
Fuck your slides, and fuck your lecture. Just give me the text, a few examples, and a problem set. Let me ask questions, but mostly just let me work through it.
I had exactly one teacher who understood how I learned. She got me immediately. She was a math teacher, who---on the second day of Algebra I---handed me the textbook, a stack of quizzes and tests, and said: "Go as far as you can, give me the quizzes and tests as you complete them, and if you have any questions come and see me."
And that's how I learned all of Algebra I in a month.
I'm not saying this to brag. I'm saying this because it is well and truly awful for people like me that almost all of the educational and informational content online has been put out in the form of videos.
Yes, it's wonderful that people have put out, for free, entire, twelve-hour courses on everything from HTML to Python to Docker. I think that's a great thing, and it's part of what makes the Internet a great thing. We are in a golden age of advanced, affordable education.
And that's really true. Never in all of human history has education been more affordable and accessible. Credentials like degrees have never been more expensive, to be sure. But the actual information and skills are there for the taking.
But videos? They're borderline useless for me. It's sitting at my desk in high school all over again, just listening to the teacher bang on about things.
So, how do I actually learn shit today, when nearly all of the information I want is locked inside of multi-hour moving pictures?
Painfully.
Every so often, I pick a specific day to sit down and watch something. I'll fire up the video on one screen, and a notes file on the other. I watch the video and practice every single "active listening" trick I've ever learned. I constantly write notes, even pausing the video to re-write explanations in my own words like I'm teaching someone else.
I will pause to open a new tab and go searching for keywords the presenter just dropped. I'll bring up technical documentation whenever I can for whatever they say. And whenever humanly possible, I'll pull up whatever tool I'm learning and play with it. I follow along, create five-line hacks, spin up whole virtual machines to try the different things they talked about.
I do anything and everything I can to stay engaged, and pound the concepts into my skull.
I call these days "Hell Days," and they're exhausting.
Well, yesterday, I declared a "Hell Week."
I'm going to spend every day this week up to my ears in video lectures and presentations. Because apparently books are for losers.
Yesterday's efforts went fairly well. I got Open Stack up and running in a VM to tinker with, and wrapped my head around the basic concepts. I don't know how much I need to know about this low-level stuff, but I'm taking it all in on the off-chance that it'll be useful.
Here's hoping that by the end of this Hell Week, I'll be able to work on the stuff I actually want to work on.
Mumble grumble
Alas, I did not play video games yesterday.
I had to do grocery shopping, then cook a roast, then get a bunch of small-yet-annoying things done. I spent the intervening time either surfing aimlessly or watching television.
Today, though, I should be able to fuck off good and proper once I get some work done on the Main Quest.
Unfortunately, that's easier said than done.
I have a laundry list of tools and technologies I have to learn in order to do what I want. And when I say "list," I mean "a maze of twisty passages all alike." It's a big ball of research and testing, and even figuring out where to start has been it's own adventure.
I wrote a few days ago about how web development has changed significantly since the last time I had to care deeply about it. And these changes are even more significant and necessary once you start adding dynamically-generated content and whatnot.
The proliferation of new technologies is really quite staggering, and there's not really one clear path you can take to learn it, partly because there's no one set of tools that's going to solve everything for everyone.
I'm at the point where I know most of the software and services that I'll be using for the Main Quest, but I still need to make some decisions. For instance, whether I can get away with Apache, or if it's time for me to learn nginx.
Then there's the "cloud" bullshit. Maybe I'm overthinking just how much I have to care about how the sausage is made, but the more I look at Open Stack, the more The Fear oozes to the surface.
(I'm looking at Open Stack because that's what my current hosting provider uses. Also? It seems to be the only way to build things and have even a chance to change platforms/providers at another date.
Then there's development and deployment. Like, can I use some combination of Ansible and Docker to roll a VM, fully-configured locally, work on that, then push it to production? And how do I get data in production synced back into my development image? Are these even words?
So, yeah, at guess, I'll finally be able to write actual content for the Main Quest some time in April. And maybe I'll have something I can actually share in June.
F, and I cannot stress this enough, ML.
At least I don't have to leave the house today.
Gaming? Gaming!
Yesterday, I lost my mind, and tried to play video games on Linux. Historically, this has been a bad idea, and it's almost always how my journey away from Linux and back to Windows starts.
Getting reasonably modern, mainstream video games to work under Linux has always been rocket surgery, and my success rate has been under 30 percent, give or take. It has involved convoluted layers of emulation, wrappers, non-trivial settings tweaks, and driver swapping. And once I've managed to get a game up and running, performance was usually poor, and the game tended to be unstable.
So, in the interests of preserving my sanity, I kept my expectations low, and aimed for the lowest-hanging fruit.
I installed the Steam snap via Ubuntu's App Center, since everything I've seen told me I'd have my best chance of success with Steam games which pinkie-swore they ran under Linux.
Getting Steam up and running took me about ten minutes, most of which was waiting for it to download and update itself. The installer recommended that I also install the 32bit NVIDIA drivers, and it even gave me the exact commands to run to do so. I bit my lip and followed the directions.
The first game I tried? Stardew Valley. It's almost a decade old, and even an iPod Nano probably meets its systems requirements. Steam said it would run under Linux, so I clicked "Install," waited, then clicked "Play."
It worked flawlessly.
I gotta say, even though this is basically the technological equivalent of an underhand softball pitch hung directly over the plate, I was still kind of impressed that Linux knocked it out of the park.
I looked at my library again, and saw Red Dead Redemption 2.
This is a game I've seriously been missing. I only have about eight hours on it, but that's because I was intentionally rationing my play time. After just two hours of RDR2, it became one of my favorites ever, and I wanted to really take my time enjoying it.
I clicked "Install," waited for the 120GB game to download, then held by breath and clicked "Play."
It. Just. Fucking. Worked.
Now, in the interests of full disclosure, I ran into one problem, which wasn't the game's fault. I have kind of a wonky sound setup, with multiple input and output devices. When I went into the game's sound settings, I apparently clicked on something it didn't like, and lost sound. That said, when I restarted the game, it sorted itself out without further incident.
Still, getting RDR2 running under Ubuntu 24.04 was actually easier than getting it running under Windows 10. When I first installed the game under Windows, the Rockstar Launcher somehow shit itself and I had to go into some ".ini" file or other to clean it up. (I don't remember the details, but I recall something about a black screen and needing to hand-hack a resolution or some such.)
I'm not quite ready to forgive Linux for its long history of gaming sins, but if it lets me spend a couple of uninterrupted days playing RDR2, I'll definitely give it a lot less shit.
At the very least, I'll write up a longer rant about the experience, and gaming on Linux in general.
Forboding
I'm starting to get the itch to play games, again.
I really hope that itch goes away, soon.
Because I really don't want to walk into the Mirkwood that is gaming on Linux.
Tinkering
I'm a little slow and tired this morning, but otherwise happy to be back on the schedule I like. So at least there's that.
Yesterday was laundry day. Like, five loads of laundry. That was more than I've had to do in a while. Also? Oddly satisfying.
I continue to make progress with MediaWiki. I keep running into little "glitches," which aren't really bugs, but still interrupt things and force me to resolve them.
"Oh, I'm not allowed to upload this file type."
"Okay, now I can upload it, but it looks like shit."
"Alright, so I installed a better converter, so how do I tell MediaWiki to actually use it?"
Nearly every single one of these headaches are just normal, "fresh install" things, though. So far, I haven't run into anything wildly misconfigured or broken, which is encouraging.
At the moment, I'm trying to wrap my head around how templates work, and how to manage and install extensions. I'm not being too discerning with which extensions I use and enable right now, but WordPress plug-ins have given me The Fear. I intend to go as barebones with the production server as I possibly can be.
That said, so far uBlock Origin hasn't blocked a single thing on the test server! That's absolutely astounding to me. With even a minimal WordPress install I was getting several with each page load.
"Don't be a privacy nightmare for my users," is right near the top of my list of requirements, and MediaWiki seems like it's doing the Right Thing.
I have a lot more to get through, and I have a bunch of stuff to do which isn't related to the Main Quest. Hopefully the caffeine will take the wheel, soon.
Adjustments
The move back to my "normal" sleep schedule is almost complete, which is a relief. Sometimes, when I get the great idea to change things around, it can take a week to get on track.
Today, I woke up at two, got up about ten mintues of three, and feel pretty good.
On the work front, I'm making good progress with MediaWiki.
Got it properly installed, sorted out a configuration bug, and I think I understand how to lock it down so it's not a security nightmare. Since I avoided the use of any pre-rolled/one-click installers, there was a lot more to get done on the backend than I'm used to.
In particular, it's been years since I had to care about loading PHP extensions or how ModRewrite rules worked. I was feeling all nostalgic at one point, until I remembered how much I hate working with PHP.
Has it gotten any better in the last decade? I'm guessing not, given the explosion of alternatives.
The actual setup and install of MediaWiki was kind of wonky. The web interface generates a "LocalSettings.php" file which you have to download, then you have to hand-hack it, and then you have to re-upload it to the server.
At least it's documented. Mostly.
As for actually using MediaWiki, it seems passable enough. The markup language seems clunky, but maybe I can do most of my work in the VisualEditor and tweak the source as needed?
Any sufficiently-complex markup language gives me strong WordPerfect "Show Codes" vibes, which reminds me of high school. And reminding me of high school isn't the best way to endear yourself to me.
I figure I'm a week away from understanding MediaWiki enough to start working on the Main Quest in earnest. And I figure I'm at least a month away from having anything I can share.
And that's all without factoring in learning about "Cloud Services." That's probably going to become a rant in and of itself, but...
See, back in the day, there were basically three kinds of "server" you could rent for your web site: Shared; Virtual Private Servers; and Dedicated Servers.
Shared servers (or "shared hosting") was just what it sounds like. You got a user account on a server shared with other customers, and under that account you had a directory where you put your content. You didn't have access to any of the "global" configuration stuff, but could maybe tweak settings for your own site either using special files or a web interface.
Virtual Private Servers, however, gave you a whole virtual machine, and root access so that you could install whatever you wanted and configure things however you needed. You had full control over the backend, which was nice, but it also meant if something went wrong, you didn't have customer support to fall back on. The best they were usually able to do for you was wipe your server and let you start fresh.
Lastly, you had Dedicated Servers, which again is just like it sounds. Instead of a virtual machine, you rented a real, physical box in the rack. This was the option you went with if you needed more resources than the hosting company handed out with their VPS packages, or otherwise didn't want to be sharing resources with the other customers.
Well, it turns out than since the Dark Ages when I last had to think about these sorts of things in depth, you basically don't get root on a VPS anymore. In fact, I'm struggling to understand just what you do get with a VPS, and why you'd want to use one at all. It seems like the definition of "VPS" changed, and we're talking about an entirely different animal than we were a decade ago.
Anyway, now we have "Cloud Services," which is---as near as I can tell---what we used to call VPS back in the day, only way more complicated and expensive. Or it's cheaper? Maybe it's both at the same time?
See, my biggest issue with these "Cloud Services" is that they have "usage based billing." In the marketing material, this is claimed to mean "you are billed for only the time your server is running and consuming resources." In practice, though, this means "you are billed an indeterminate and variable amount based on criteria you have little control over."
Now, I'm just an unfrozen caveman, and your modern ways confuse and frighten me, but not knowing what something is going to cost before I buy it seems like a bad thing.
Unfortunately, there's really no getting around this. It's the Way Cool New Modern Way to do things, in general. It's also the only way I'll be able to configure effective countermeasures to the ongoing "AI"-botswarm that's burning down servers left and right.
Even on this dinky little static site, I get a constant barrage of bot traffic. Some of it is obviously vulnerability scanning, some of it is from the occasional search engine spider, but a lot of it looks like the kind of traffic notoriously associated with LLM scrapers.
From what I can gather, with even a modest amount of content, a whole lot of dynamically-generated sites are just falling right the hell over. And many of these sites are run by people who actually know what they're doing.
All of which is to say, the "AI" bullshit is not only a useless, planet-boiling bubble which will probably take down our entire economy when it pops. It's also made it so hosting all but the simplest of projects online requires you to spend half of your time acting like a Blue Team in DDoS crisis mode.
FML.
Abort
I abandoned the attempt to adjust my sleep schedule. I was so zombified yesterday, and got so little work done, that I'm just going to start rolling it back.
I never even once felt awake yesterday.
Today, I have to go food shopping, which means I probably get little else done.
My main work-oriented goal today is to get a MediaWiki instance up and running so I can play around with it. And let me just say again, for the record, how awesome it is that I can just spin up a VM in minutes to do all of this tuff within.
But yeah, grocery shopping sucks.
Another day, another domain
I registered a new domain name for the Main Quest, yesterday. I wasn't quite sure I wanted to mentally commit to it yet, but when I saw that my first choice of domain was available, I was in.
I'm honestly shocked the name wasn't taken. Like, that could mean that I'm just utterly brilliant and no one is as awesome as me, but it probably means my idea is terrible and I'm a stupid, stupid man.
Now the question is which platform to host the site with. I have some strong opinions toward content management systems in general. However, I do not want to hack out all of the HTML for the site I'm imagining.
I'd also maybe someday like to share the workload of maintenance with others, so that kind of necessitates some sort of standard tooling.
I have some ideas, but they're all untested. I guess that's my project for today.
In other news, I'm trying to adjust my sleep schedule to see if I can human at the same time as my friends while still being productive.
My general plan each day has been to wake up between two and three in the morning, then go to bed around six at night. This is good because it gives me three or four hours of quiet first thing when I get up, and those hours are usually when I feel most energized and alert.
Unfortunately, passing out at six virtually eliminates all possibilities of seeing those of my fellow humans who are employed, including most of the specific humans I want to see.
So, I'm trying to adjust to getting up at five and going to bed at nine. If all goes well, and I can get four-to-six hours of work done every day, that would be swell. I figure I'll know how it's going by the end of the week.
Right now? I'm exhausted.
Meditation and Mastodon
I think my favorite activity lately is to wake up super early in the morning and just lay there in silent darkness for hours at a time. Sometimes I let my mind wander, sometimes I focus on one or two thoughts, sometimes I just allow myself to drift in and out of sleep.
This doesn't feel like depression-induced lethargy, because I actively enjoy it.
I'm calling it "meditation," because that sounds better than "lurking in the dark."
Got a little writing done yesterday, but mostly just did a whole lot of thinking about the Main Quest, and evaluating self-hosting options for Mastodon and some other tools I'd like to use.
Mastodon is great. It's easily my favorite social network. So much so that I have actual fun when I'm on there.
However...
Mastodon (and the Fediverse generally) is a decetralized network of servers operated by a diverse group of individuals. This is its strength, and is what makes Mastodon so awesome, but it also presents a problem.
If the admin of your particular server doesn't like what you do on it, they can wipe your account, deleting it and all of the content you have there.
Of course, this is a risk you also take when you use centralized, corporate-controlled social media. If Facebook's moderation system and/or team decides you did something naughty, off you go to Facebook Jail.
I don't have a problem with moderation, even up to and including losing your account for violating the rules.
What I do have a problem with is being moderated by uninformed, knee-jerky, Internet randos who let their personal whims take the wheel in lieu of having some kind of consistent policy.
Now, I have not ever even once been on the receiving end of a moderation action personally. But I've seen a few people who have been hit with suspensions for things like...
"Spreading disinformation"
I've seen people get dinged for simply not citing sources for something they posted about the news or state of the world. I'm sorry, but when I see this kind of stuff, my first thought is: "Sir, this is a toot, not a research paper."
I've also seen people get dinged for "disinformation" by sharing something from sources which aren't well known, or don't meet whatever other arbitrary criteria the admins consider the hallmark of trustworthiness. "You must be this corporate to ride," I guess?
I should add that when people say "I will stop the spread of disinformation" it's functionally no different than saying "I will decide what you can say and hear." I don't really want anyone making that decision for me, but if someone must, I'd prefer them to be transparent, consistent, and accountable when they get it wrong.
"Personal attacks"
There's definitely a line that can be crossed here, but calling someone names shouldn't be enough to get your account deleted. We can argue about frequency and severity, and banning someone for dropping slurs will always get my enthusiastic approval, but for fuck's sake some of these people act like they need a fainting couch when someone calls them an "asshole."
"Being rude"
Sometimes the most appropriate response to someone is to tell them to go fuck themselves. And I'm pretty sure if my own account ever gets banned, that'll be why.
For an extreme case: In this, the Year of Our Void 2025, the world is quite horrible. Some people are enthusiastically defending and celebrating the horror. I not only refuse to be nice to these people, I will be actively hostile to them.
There is also a certain type of person who seems to make it their life's mission to tell other people they're Internetting incorrectly. Telling these people "You seem fun!" shouldn't be an actionable offense.
I could go on, but you get the point. "Personal attacks" and "rudeness" are why the "Block" button exists. Account suspensions, limitations, or post deletion should be reserved for egregious violations of the social contract.
I've seen people get spanked for saying things far less troubling than what you'll hear if you try to cross against the light on a Boston street.
All of which is to say that I'm seriously pondering spinning up a server to host an invite-only Mastodon instance for myself, friends, and friends-of-friends.
At least then I can be reasonably sure that my account won't get locked for calling a fascist a fascist.
Writing and random
I spent a bunch of hours writing, yesterday. Quite a lot more than I've done in months. That probably explains why my back hurts right between my shoulder blades.
Remember to get up and stretch, people.
In other news...
I think I'm finally out of the anxiety storm for real. Also? The moving-related depression seems to have cleared away as well. And there was much rejoicing.
I've been putting a lot of crap into my body recently. I also haven't gone for a solid walk for, like, over a month. Now that my brain has decided to be approximately-human, I figure today's a good day to reverse these trends.
Trying to get some work done on the Main Quest this morning. I'm being intentionally vague right now, but it's going to be a rather large, ongoingly-updated "media project." However, I'm kind of stuck on the best form for it (video? text?) and where/how to host it (self-hosted? peertube? youtube?).
Relatedly, all of the answers I've seen to "How do I self-host videos?" are either terrible or expensive. And all of the answers I've seen to "Where do I host videos other than YouTube?" are either terrible or exclusive clubs which only offer creator accounts to established "stars." Basically, everything sucks.
Also relatedly, I'm a writer. I've got a face for radio and a voice for silent film. And I've done enough video editing to know that I hate it. So why am I even thinking about video at all?
I'm finally looking to do something about my Org-mode setup. When I made the switch to using Linux full-time, I cobbled together a really basic config which gets the job done, but is definitely not what I want to be using forever. Fixing that is probably my next Side Quest.
I'd really appreciate it if the coffee would start working soon.
That's better
I had a very relaxing day yesterday, and a pleasant night of sleep. My idea to intentionally and forcefully "hermit" seems to have kicked my brain into something approaching "normal," and I woke up a few minutes ago feeling rested and not exhausted.
Still, I think I'm going to repeat of the experiment today. There's nothing I need to do out and about, and no pressing matters to take care of around the house. I might even try to take a walk today, since I haven't gone for a proper stroll since I got here.
On the computer front, I looked at Spiderfoot yesterday, which is another OSINT "aggregator" and organization system like Maltego. Alas, it was a pain to install and even more of a pain to get running without it throwing hundreds of errors.
(And let me just say that the whole Python package management/virtual environment thing is batshit bonkers. I probably have a ten-thousand-word rant about it that I'll squirt out someday, but it's awful. And it's made more awful by the fact that I just spent a week playing with Rust and its Cargo system, which is an epic win by comparison.)
So far, I'm not super impressed by any of the note-taking and organizing tools I've been testing. Maltego is the best, so far, because they really seem to have nailed the whole "graph" thing. I haven't been able to test it with thousands of entities, yet, so I'm still not sure how it keeps things from becoming overwhelming. I suspect this is where collections come into play, but I just don't know.
That said, I'm really struggling to see where I'd want to use one of these tools instead of Emacs and Org-mode. Even trying to allow for the fact that I'm a dinosaur, and I've been using this software for thirty years, I'm still at a loss for why I'd want to switch.
Really giving myself "You kids get off my lawn!" vibes.
(Inspired by this post, I wrote a rant about why I use Emacs.)
Sputtering
Well breakfast didn't happen yesterday. Had a panic attack at the thought of being in public. Again.
I very specifically made no plans for today that involve me going outside. This is under the theory that giving myself a full day of confirmed hermiting will reset my brain.
We'll see how that goes.
In other news, I've been looking various note-taking and information-management tools like Maltego and such. This is under the theory that I should probably pry my unfrozen caveman fingers away from Emacs and Org-mode and learn what the kids are up to these days.
We'll see how that goes, too.
As for what I'm going to do today? Who knows. The coffee isn't working yet, and the words putting into sentence doing no.
Plumb tired
So, that clog in my kitchen sink? Turns out, it was a Major Problem.
The plumber---who has decades in this business---spent three hours trying to clear it, failing, and muttering "What the fuck?" in increasingly-bewildered tones. Three hours of trying to push it with water pressure, and sucking it with a vacuum.
He ultimately had to go under the house, open the pipe, and come at it both ways.
And, in the course of this operation, we had sewage flow up in our sink and bathtub.
"I've never seen anything like this in my life," he said.
But, he fixed it, and got our plumbing back together. He also didn't charge us nearly what we'd feared it would cost.
Oh, and in case you're interested, the clog wasn't anything special in and of itself. Just a decade or so of grease and not-at-all-concerning black goo that finally decided it wanted to be free, sloughed off the walls of the pipe, and got itself stuck good and proper.
Other than that, I did my best to hide out in my room and work on things as best as my brain would let me. It was a rough, panic-stricken day, just as I'd predicted.
I'm feeling a little better this morning, so we'll probably go out for breakfast and meet up with a friend of mine.
I really didn't want to get up this morning, though. My body is exhausted from holding tension all day yesterday.
That's something people without anxiety disorders don't ordinarily get to experience. If your body's all "Brace for impact!" for half a day, it's basically no different than overdoing a workout. The next day, you're going to be sore.
If I had my way, today's plan would consist of me getting a full body massage and remaining horizontal for several more hours.
Ugh
Mistakes were made last night.
In related news, I'm tired, sore, and feeling rather bleh this morning. And I very specifically don't want to deal with people today, but I have to.
The kitchen sink is clogged up beyond our ability to plunge, and the pipe fittings are leaking. We called our plumber, but he couldn't get here yesterday so maybe we'll have this fixed today?
And we have to go to the grocery store this morning. This is right up at the top of my "Shit I Do Not Want To Do" list.
We were also planning to go out for breakfast this morning, but there's just no way that's gonna be happening.
And my knee hurts in the special way it does right before it loses all stability.
All of which means that my plan is to do a tactical store run for the bare essentials, then spend as much of the morning as possible hiding in my room writing code.
Relaxing
I had a wonderful, relaxing, and almost-entirely unproductive day yesterday. After having spent most of the last week anxiously running around, and/or dealing with high amounts of stress, it was good to have a chill day.
What's more, I got some amazing sleep last night, which is kind of doubly-amazing since the time change usually screws me up.
About the only thing I did yesterday was play with my new Wi-Fi adapter. This was a bit more of an adventure than I expected, since I actually needed to install some drivers. It's been a while since I had to think about dkms, but it all went very well and smoothly.
Oh, I should mention that the Wi-Fi adapter came with a driver CD.
I think I actually gasped when I saw it.
Today, it's back to running around. My Dad has three appointments, and he asked me to go along with him for the first two. I think I've recovered from my previous humaning enough so that this will be fine.
Alas, this combined with the fact that I didn't get up until after four this morning means I'll almost certainly get nothing done today.
I don't have high hopes for tomorrow, either, since I need to go grocery shopping and might be getting together with a friend for breakfast.
At my previous place, I had to rely on a friend to drive me out to the stores and do other errands, so we usually did them all on Monday. This had its downsides, but it left me with six days in a row to hide in my room and get things done.
Here, I have access to a vehicle again, and basically haven't even gone two days in a row without running out to some place or another.
I really need to start limiting my activities to like two days a week.
Steady state
It's been a while since I had to unclog a toilet at four in the morning. Alas, I won't be able to say that again any time soon.
Yesterday was good, but exhausting. Had a bunch of errands to run, yet I managed to get enough work done in the morning to feel I accomplished something. Went to bed early, and stayed in bed late.
Being wrapped up cozy in silent darkness feels extra rewarding, lately. I'm sure *gestures widely* has nothing to do with that.
In other news, I ordered a new USB Wi-Fi adapter to experiment with. And therein lies a tale...
You probably understand that Wi-Fi is a family of network protocols---specifically, protocols based on the IEEE 802.11 family of standards---which allow devices to communicate with each other via radio signals.
There are a plethora of standards, a huge assortment of devices implementing various subsets of these standards, and several frequency bands used today. And if you're both a computer nerd and an Amateur/Ham Radio nerd, you probably want to take a peek at the underlying signals and maybe play around with them.
Well, you can!
Assuming your Wi-Fi chipset supports monitoring mode, you can inspect the raw packets as they fly through the air around you. And assuming your Wi-Fi chipset lets you construct and transmit arbitrary packets---also called "packet injection"---you can tinker to your heart's content.
Alas, these are big assumptions, because Wi-Fi vendors are koo-koo-bananapants, and appear to base their decision as to whether or not to include these features in a given chipset on rolls of the dice or the phase of the moon.
As far as I can tell, there's absolutely no rhyme or reason as to which chipset has monitor mode and packet injection capabilities. It's not cost, since you can find $60 Wi-Fi adapters which don't have it sitting on the shelf right next to $10 adapters which do.
Basically, in order to determine if the adapter your machine came with supports these features, you just have to try to enable it and see if it works. If, like me, you discover that it does not, then you have to go digging.
There are several lists floating around out there delineating which chipsets support which modes. There are also several lists of specific USB Wi-Fi adapters which are known to come with one of these chipsets.
I used to have this tiny little USB Wi-Fi adapter from TP-Link which supported monitor mode, but sadly it died sometime last year. It kept spontaneously and rapidly disconnecting and reconnecting, which neither my network stack nor my other USB devices appreciated very much.
Hopefully the new one will behave itself.
In the future, I'd like to get a software-defined radio which covers these bands, so I can play around with encoding/decoding the raw signals, but that's a Side Quest for another day.
(And yes, there are band allocations for the Amateur Radio Service which are in the Wi-Fi "sweet spots," so you can legally tinker there with home-brewed gear.)
Anyway, my plan for the day is to play on my computer and hide from the world as much as possible. It's been a long week, and I've reached the limit of my Humaning ability.
Long day, good night, slow morning
Getting up at 1am yesterday was a mistake. Longest. Day. Ever.
At ten in the morning, it felt like it should be three in the afternoon. By three in the afternoon, I was so tired that the kid from The Sixth Sense could see me.
At least I slept really well last night. Maybe a little too well again, given that the coffee is taking a while to do its thing.
I did get a lot done yesterday, though. Computer stuff, housework, errands, appointments---even if I only get half as much done today, I'll be happy.
I have some more errands to do today, which unfortunately also means more driving. I could really use a break from that sort of thing.
In other news, I finally figured out the last pieces of my schedule and what I'll be spending my time and energy on. Big Project/Main Quest, Side Quests, puttery-pokey things? Absent a detail or two, I've got a reasonable schedule and a solid plan.
I don't know if I've got some kind of ADHD thing going on---and I've never had a diagnosis---but when I look at shit like this, then listen to people who do have a diagnosis talk about the shit they go through, I hard relate a lot.
In other news, I've learned far more about WiFi cards this week than I ever thought I'd want to. I'm still not sure if I'm happy about that.
Also, I changed this blog a bit. Instead of one big page, I divided it up into one page per month, with an "Older" link at the bottom pointing to the previous month. I did it this way to preserve the feeling of reading a continuous "stream," while at the same time trying to keep the content manageable.
You're welcome.
Windy
It's ridiculously windy outside. I suppose the noise might partially explain why I was up at 1am, but mostly that's just my own fault for going to bed before six.
My Dad came home yesterday and he's doing well! He still has a lot of follow-up appointments, and he has to take it super easy for the next couple of weeks, but all signs point to good. Maybe now my anxiety will take it down a notch.
I got a fair bit of work done yesterday, but I also hit a seriously rough snag. Let's talk about KVM...
I've mentioned before how much I like virtual machines, and how I use them for all sorts of reasons. I don't like to clutter my OS install, so if I feel the urge to run a server, or want to do something which requires a lengthy tool chain, I'll spin one up speficially for that purpose.
In the past, I've used VirtualBox for this. It works well, runs on every platform I care about, and rarely gives me any trouble since I learned its quirks. However, it's not entirely FOSS, and it's controlled by Oracle. For me, this has been less than ideal for years, but today it's downright unacceptable.
So, I switched to KVM, or "Kernel-based Virtual Machine," which is a FOSS virtualization module built into the Linux kernel. The transition has been a little bumpy, but far less irritating than I feared.
Until yesterday.
Since migrating to it, I've been running into a problem where I couldn't seem to get bridged networking to work. What this means is that my virtual machines were stuck in their own network. They were able to reach outside of this network to the Internet, but couldn't reach any machines on my real internal network, nor could any of my other devices reach them, apart from the host machine.
Now, I'd say that for more than half of my use cases for VMs, this is fine. I usually only want to access a VM from the host machine, and I'd like to keep them isolated from the real network anyway.
There are some cases, though, where I want a VM to appear on my internal network. For example, I'd like my "smart" TV to be able to talk to a media server, but I'd like that media server to be segregated into a VM with read-only access to my "Videos" directory on my machine.
Well, try as I might, I couldn't get this to work. I read through I don't know how much documentation, and tried half-a-dozen recipes for things to throw at netplan and nmcli, and got nowhere.
Finally, it dawned on me that I was trying all of this over WiFi, which has distinctly different rules than Ethernet. After I head-desked and said to myself "it can't possibly be that," I did some more searching and...yes. Yes, it's that.
KVM doesn't support bridged networks over WiFi. VirtualBox (and VMWare, I guess?) both make this work by installing some form of proprietary kernel module. Whereas KVM---which is itself a kernel module---just says "Nah."
There's a workaround you can do using TUN/TAP devices and ARP proxy, but it's going to take me an afternoon to sort out how that works.
Now, I get it. WiFi chipsets are notoriously challenging to work with, and KVM is specifically built to be run on wired servers sitting in a rack. There are a host of reasons to explain why things work the way they do.
But exactly none of these reasons matter to Joe Random User who just wants to replace VirtualBox, and sees that KVM won't do what it can do fresh off the vine.
It's precisely these sorts of gotchas that make switching to FOSS a challenge for even experienced users, and an almost-impossibility for the average ones. (Not that the "average" user is spinning up virtual machines, but hanging on this specific instance misses the forest for the trees.)
Anyway, now I've got to add "learn how TAP works" to my ever-growing list of Side Quests and hope I can find a few hours someday to make it go.
Sigh.
Tentative optimism
My father's surgery went well! He called me a couple of times from his room in the hospital, sounded tired, but good. They're going to give him some tests this morning, and if everything looks solid, they're release him this afternoon or late this morning.
I also spoke to his surgeon myself, so that I could finally ask what his recovery would look like. How much pain he can expect? What his limitations will be? Etc. TUrns out, it should be pretty smooth sailing after the first day or so.
He'll probably be able to drive again by Monday, which is awesome, because I hate driving. (I hate cars in general, but that's a rant I'm not ready to write.)
I didn't do a whole lot yesterday apart from chewing on the furniture and various other anxiety-related activities. Specifically, I didn't start on the LFS project because I knew I wouldn't have the brain to diagnose any trouble if things went sideways.
I did do some more "sysadmin" things, and looking at various mini-PC options, though.
Let's say someone who's not very computer savvy asks me the question...
"How can I run Linux?"
I would like to be able to give them an answer of the form...
"Buy this exact computer, keyboard, mouse, and monitor which comes with Linux pre-installed and costs less than $300 all-in."
See, installing an OS from scratch is the Deep Magic to most people. And with Linux, it's slightly more challenging if you already have Windows on the machine.
Let's be honest, most people today run the OS their machine comes with and never touch it. Unless their OS auto-updates on them---usually much to their consternation---the only time they run a new OS is when they buy a new computer.
So, I'd like to have a dead simple, inexpensive machine to recommend to them which comes with Linux already.
I already knew there were a lot of vendors out there who'd sell you a machine with some distribution of Linux pre-installed. What I didn't know was that the price point of these systems had dropped so much.
You can get some pretty amazing performance out of $140 bricks. Throw in a $50 keyboard and mouse, and a $100 monitor, and you've got a machine roughly comparable to a mid-range "two-in-one" or Chromebook for about half the price.
Right now, I'm just collecting reviews and trying to narrow a very long list down to one or two candidates. The major delay in this effort is trying to decide between x86 and ARM. The latter tends to be better value for the money, especially on power consumption, but the compatibility isn't quite up to par, yet. (I've seen a small handful of edge-cases reported which might present an issue for the unprepared.)
Anyway, on a related note, I'm looking at various projects I can do with a Raspberry Pi, mostly in an attempt to justify my purchasing such a thing. I want to play around with the hardware, and I have two projects in mind for the Pi, but I'd like to have at least a couple more before I shell out the money and commit my time to them.
One of the projects I have in mind is experimenting with Software Defined Radio. I really need to dust off my Amateur Radio license this year. And since I'm once again living in a place where I can put up an antenna, I figure I should do just that.
In other news, I've given up on Rust. The language has a lot going for it, and if I was ten years younger I'd carry on, but for anything I'm actually going to do, C is fine.
Life's too short.
Slow
I got off to a slow start yesterday and never really picked up much speed. I managed to get a few things done, but it wasn't a rush of productivity by any means.
I'd say that I hope today will be better, but I have to bring my Dad to his surgery appointment this morning, and then it's a waiting game.
Assuming all goes well, I'll spend the day working, while getting period updates from the hospital. They're keeping him overnight, so in theory I won't have to leave the house again until tomorrow when I go pick him up.
In other news, Linux From Scratch just released version 12.3, so I'm seriously tempted to start in on that today.
Feels like it would be a good project to keep my mind off things.
Groggy
I slept too soundly last night. If you're a chronic insomniac, you know what I'm talking about. I also slept a bit later than I wanted, though I still got up before three, so that's good.
All of which is to say that I'm tired, a bit cranky, and still waiting for the coffee to do it's thing.
Yesterday was a long and busy and exhausting, but also very productive. We're about as ready for my Dad's surgery tomorrow as we're going to be, and shouldn't have to do any other errands or deal with anything else this week.
I also did a bunch of work, not the least of which is finishing that course I mentioned. So, I can move on to other things now.
Exactly which other things is still up in the air, but only just. I have it narrowed down to two choices, and will make that choice just as soon as the caffeine kicks in.
And regarding Mr. Skunk? We didn't smell him yesterday, so I guess the plan is to wait and see, rather than calling the trapper and being like: "Hey, are you coming over or what?"
I don't think this is the best plan, but it's a plan which doesn't require me to talk to people, so I'm excited to be a part of it.
The week ahead
My father goes in for a long-overdue surgery this week. It's been delayed for months---like many such procedures---on account of the whole IV bag shortage thing, which I won't get into. Suffice it to say, most of this week's activities are going to be either preparing for, or following up on that.
He's supposed to be in the hospital for one night after, then he can come home for what's expected to be two weeks of recovery. Neither one of us knows what that "recovery" will mean in terms of limitations, so we're playing it by ear.
Today we're hitting the grocery store to stock up various foodstuffs, then maybe doing a few other errands just to get them out of the way. He also has an appointment today, and I guess one tomorrow. Wednesday is the Big Event.
In the meantime, I've got stuff to do around the house, and work to do on my various Quests.
Today, I hope to wrap up a course I'm taking on Linux fundamentals. This is very much a review for me, but a necessary one. I cleaned out several dusty corners in my knowledge base, and a couple of things which were completely new to me.
After that's done, I'm thinking seriously about going to "Linux From Scratch" again. I did this once, way back in the day. I can't even remember if I finished it, then. Planning to do this run in a VM, but I"m seriously thinking this is a good excuse to finally get into tinkering with Raspberry Pi.
On the Rust front, I'm enjoying the language so far, but I still have many questions. Also? I'm nowhere near being able to use it for anything real.
One thing I can say about Rust right now is that I'm already in love with it's toolchain. The whole "cargo" thing feels like a dream come true, and I really like the integration of crates, modules, and permissions. I'm still a baby "Rustacean," but it really feels like they nailed this.
Another thing I can say about Rust is that I'm giving the side-eye to some of the several bits of syntactic sugar they've added. I get that "less typing" means "fewer typos" but I think they overshot the mark with some of their constructs. I can't point to any one in particular as being egregious, it just feels like the sum is too large.
I'll probably have different opinions once I've actually used the thing.
In other news, the trapper still hasn't come by to deal with Mr. Skunk. I'm not currently smelling our neighbor, but it's only a matter of time. The plan is to call him again today and be like: "Please come get our skunk? It's free!"
Some people just don't know a good deal when they see one.
Skunks and side quests
It has been zero days since I woke up to the smell of skunk in my house.
On Friday, we called the trapper we've used before, back a couple of years ago during our last major skunk invasion. "I'll be there tomorrow afternoon to set a trap," he said.
Reader, he was not here yesterday afternoon.
I got a lot of work done yesterday, though. I still haven't chosen an "official", Big Project, but the two Side Quests are humming along nicely. These would be...
Side Quest #1: Dust Off Sysadmin Skills
For most of the 1990s, I earned a paycheck doing one or more of programming, help-desking, and sysadmining. Often I did all three at once, under brutal deadlines, and for very little money. Naturally, I burnt out, and left the computer industry in 2002.
Since then, I've still written code, sysadmined my own machines, and grudgingly helped family and friends when they needed tech support. But, I steadfastly refused to do any of this crap for the general public, or as anything approaching a full-time job.
Well, in light of *gestures widely*, I've decided to shake the rust out of those ancient skills, bring them up to date, and try my best to help others take back at least some control over their digital lives.
This effort overlaps with the Big Project I'm considering, but it's involved enough that I'm counting it as a Side Quest all on its own. I mean, let's face it, I haven't thought systematically about this shit for twenty years. I've had/got a lot of catching up to do.
Side Quest #2: Learn Rust
This one I'm not so sure about, but it felt like the right time to pick up the language and use it for something.
Over the last decade, the programming language I've used the most is Python. It's absolutely the ideal language for ten-minute hacks, and you can even write fairly complex applications if you're disciplined enough.
Coming in at a distant second is C, with a smattering of Assembly. The C programming language has been my go-to for low-level stuff like boot loaders, or anything that needed to get intimate with *NIX system calls and internals.
(A distant third is Common Lisp, but I only write that when I'm depressed and want to feel even more depressed because using it reminds me we had everything figured out over thirty years ago.)
It's my understanding that Rust is good for the stuff that I'd normally choose to write in C. It's also my understanding that Rust has now evolved to the point where you'd actually want to use it.
So far, I like most of what I'm seeing. I've only given the side-eye to around half-a-dozen things, which is high praise from an unfrozen caveman like me. I've been taking notes on my random thoughts as I learn it, so maybe I'll put something up once I've done a real project in it.
I also managed to do a little crocheting yesterday, which was nice.
Today, the plan is for more of the same. Maybe I'll even throw in some Chess, just to get all crazy up in here.
Rebooting...
The last few weeks sucked.
Not only did I find myself having to move on extremely short notice, I had to move back to a town I really don't enjoy. There are up sides and down sides to living here, but on the whole? I'd rather be living almost anywhere else.
Add to this the fact that I now have to deal with things like snow removal, yard maintenance, and general house repair stuff...yeah.
As one might predict, I've felt bad. And I've been trying to fight past that feeling since I got here.
Well, for the last couple of days---and yesterday in particular---I stopped fighting and just let myself sit with those feelings. "This sucks," said I to myself. "Yes, it does," I replied.
It was very cathartic. And helpful.
I went to bed last night with the idea of "rebooting" in my head---getting a mental reset to clear away the detritus. And I actually woke up this morning, on time, and feeling reasonably ready to get on with things.
There's still a lot of bullshit I need to deal with, both little things and big things, but for the first time since the move I'm actually looking forward to today instead of secretly dreading it.
I'm also looking forward to the leftover Chinese food in my fridge. One perk of being back here? We have much better food choices than I was living a month ago.