World of Warcraft did a thing. New Next.js and AWS blog development. Dev vlogs. Lower Decks. Fairy Tale. Thanksgiving vacation. A work presentation. Jupyter.

Next.js - November 2023 Part 2

2,536 words.

Next.js - November 2023 Part 2

I’ve started using IA Writer on my MacBook to write these Markdown posts. It’s a “focused writer” application, and has a few more “writerly” features than Visual Studio Code. For example, it will highlight adverbs in the the text so I can squish them, which is cool. What’s not so cool is how it seems to have bugs and drops keystrokes now and then.

Otherwise, the bulk of my free time the last few weeks has been spent on a Next.js blog project which I started as an experiment, but I think I might try to switch over to it for a live test by the end of the year.

Gaming

Another few weeks have passed where I haven’t played much of anything, except occasionally firing up Snowrunner on the PS5 while I listen to an audiobook before bed. I have to strictly manage my playtime though because controllers make my left thumb hurt pretty quickly.

So that’s two months in a row now where I haven’t lived the life of a gamer. Still don’t really miss it. I have tons of other fun hobbies to spend time on. Too many, to be honest. I genuinely can’t find the time to keep up with all the hobbies I like to tinker with. It would be nice if there was one hobby out there that brought together all the different creative things I enjoy doing.

By the way, I failed to mention last time there were some new World of Warcraft announcements after BlizzCon that caused some stir in the blogosphere, a stir that, from the titles, sounded like, “Well, we don’t care that much either but we know WoW means guaranteed views, so here’s the info.” Anyway I haven’t played the last two(?) expansions so I doubt I’ll be playing any of these next three(?) either. There’s nothing really wrong with WoW, it’s just that it’s always the same.

Wait, really? Those are the only four posts I could find on it? Yeesh MMORPG blogging really is dead.

I’m suddenly hearing some buzz about an MMORPG called Tarisland. It’s still in closed beta, so I have to take the skeptical view and assume it’s going to be another iteration of another new MMORPG that everyone gets excited about in the private beta, everyone enjoys the extra clicks and attention from the FOMO, then it launches, then we find out it’s only half finished, then we find out they didn’t fix anything that was reported in the beta, then a week or two later everyone moves on to find the next thing people will click on.

Maybe that’s cynical, but when you gain some understanding of how the Internet click economy works, and see something happen seemingly a thousand times in a row without exception, it doesn’t seem unreasonable to assume it will happen again.

From the screenshots, it doesn’t seem that impressive. A… wait for it… WoW clone?

Blog Development

I’ve been working on a parallel version of the blog written as a Next.js application, which will make a kind of hybrid static/dynamic site. I hope to keep the blog post content relatively static, but also add a search, and ActivityPub mentions, and some other dynamic server-side features like pingback handling.

At some point I’ll write a post about it, but there’s just so much to document. (See below.)

If you’re a programmer-type, I’m developing it right out in public over on GitHub. (Update: I archived that repo and I’ve moved it here.) As I browse the files at that link just now to see if it’s ready to show to the world, I see hundreds of problems and things I need to document better before I mention it in a job interview. Luckily I don’t think anyone reads my blog anymore. (I have no stats so I have no way of knowing, to be honest.) Anyway I’ve never written anything like this before so it’s all new to me and I’m learning as I go by trial and error and Google and ChatGPT.

My main unanswered question is how much it will cost to host it in AWS. As yet I have no idea, and I probably won’t know until or unless I switch the domain name over to it and watch 10 years of traffic flow into it for a while. The cost since November 15, when I’ve been running tons of builds and pushing tons of data around far in excess of normal operation, is about $7. It currently costs $2-3 a month to run the static site, so I’d love to be able to keep the cost of a Next.js site to somewhere around $10 a month. If it goes higher than that, I’ll start thinking about different hosting options, like maybe a VPS. But there’s a lot of puzzles pieces that need to fit together.

The trick isn’t going to be figuring out how to seamlessly switch over to it for a test, the real trick is going to be figuring out how to switch back if it ends up costing too much. It will be my most ambitious personal blog switchover to date. (Of the roughly three I’ve done in my life. Haven’t lost any content or traffic yet!) I’ll probably aim to do it in December. Possibly at the start of my Christmas vacation.

Luckily all my blog post content has one “source of truth,” as they say in the biz, so I can switch to any number of different methods of displaying the posts without disrupting the writing process. Yay Markdown!

Media Production

I started to realize that I’ve been learning and doing so many new things on this Next.js blog project over the last few weeks that I’d never be able to remember anything I did unless I started to record some vlogs.

So I’ve been recording “dev vlogs,” where I capture my MacBook Pro screen and talk about what I’ve accomplished, how I did it, and all the problems I encountered on the way. They definitely aren’t meant to be entertaining, and not even informative exactly, they’re mainly a memory aid and a historical record.

They’re the kind of thing you’d see in a sprint review if you work on a scrum team. Programmer-types could potentially find them interesting (I would, which is why I’m recording them), especially if you’re new to AWS and looking for “real talk” on the trials and tribulations of cloud native development without the implicit sales pitches typically found in most developer-focused YouTube videos, which are usually made by young upstarts trying to make a name for themselves.

I don’t have a content pipeline for releasing vlogs, though, let alone dev vlogs. But it’s something I’m thinking about. (For backing up the videos in case my NAS crashes again, if nothing else.) The important thing is that I can see the videos and remember what I did.

Using OBS on a MacBook Pro is journey of trial and error all on its own, though. It randomly doesn’t record video right, or records audio from the wrong place. Once it recorded the tinny mic of a bluetooth speaker I happened to have connected at the time instead of the main mic. (The invisible mic built somewhere into my MacBook Pro actually sounds pretty dern good, incidentally.) And I can’t get any global hotkeys to work to start or stop recordings. So primitive. Maybe there’s something better out there for Macs.

Media Consumption

Television

Taskmaster 16 and David Mitchell’s Outsiders 3 have concluded, and just in time, because I ran out of motivation for watching them. Haven’t kept up with any of the actual plays in my regular lineup. I think High Rollers started a new campaign but I’ve only seen a few minutes of it.

I still have Paramount+ after the big October horror movie binge, so I had a crazy idea that I might watch some of the new Star Trek stuff, even though I haven’t really liked Star Trek since the 90s. I couldn’t bring myself to click on any of the broody-looking live action shows so I started with Lower Decks. I’m as surprised as anyone, but it’s pretty entertaining. Who would have thought a Star Trek property could ever accomplish that again.

While on Paramount+, I also watched Star Trek: The Animated Series, which I’d never seen before. Funny stuff. Surprisingly similar to the original series, just with more aliens on the bridge voiced by James Doohan.

Audiobooks

I finished Stephen King’s Fairy Tale audiobook. It’s pretty good, although it takes a big turn in the middle. I found the first half very difficult to listen to, since there’s a lot about an old reclusive hermit living by themself which sounded disturbingly similar to myself, and about taking care of an old dog that can’t take care of itself, something I’ve been through somewhat recently. The second half is, well, a fairy tale, somewhat in the vein of the Gunslinger books. You can never tell where Stephen King books are going to end up based on where they start. I found the first half more memorable and affecting than the second half.

I started Kevin Hearne’s Ink & Sigil, read by Luke Daniels. He’s one of those audiobook narrators that could read a dictionary and still make it entertaining to listen to. Anyway the whole thing is in a Scottish accent (with occasional robotic-sounding British as from a computer), and it’s not actually that entertaining so far, to be honest.

Day Job

There were only about 6 days in my sprint because I took off the whole week of Thanksgiving. My day job is luxuriously generous with paid time off, and in fact has required me to take off an absurdly large amount of time by the end of the year, more than any job has ever given me before in my life. I genuinely don’t know what to do with all the benefits this job gives me.

But that’s a whole different topic. With nothing more to do on last sprint’s executive dashboard in the immediate future, I took on yet another work item to do something I’ve never done before in my life. That’s pretty much what my day job is: Getting up every day and trying to figure out how to do something I’ve never done before.

My company has an internal “data lake” and an ecosystem of tools to read, write, and transform data within it. It’s based heavily around Apache Airflow and Apache Spark. Anyway, our team has just carved out a tiny space in that data lake for an ETL pipeline we need to build. I have a task this sprint to figure out how to make a table in that data lake, so others can begin building the ETL. It’s an easy task, except I have no idea how to access this data lake or do anything with it, and there’s little or no current documentation.

It turns out that connection to this data lake environment is accomplished using a virtual, web-based “notebook” (a.k.a. IDE) based on an open source tool called Jupyter, which I’d never heard of before, but is apparently popular among educational and research folk who like Python. Learning is fundamental.

(Cat) Health and Wellness

My troublesome, high maintenance outdoor cat Marbles somehow lost a big chunk of flesh from behind his right ear, leaving a shallow but nasty-looking wound. I don’t know if something bit him (seems unlikely, I don’t know of any cat predators in the vicinity, other than cats, and it doesn’t look like something another cat would have done–if he was bitten, he’s had his shots so he should be relatively safe from disease, and shows no signs of behavioral changes), or he got tangled up in some thorns out in the woods and ripped his skin getting free (seems more likely as there are a lot of thorns growing in the woods).

It doesn’t seem to bother him, and I think it will heal on its own eventually, but when he scratches at the scab it opens up again and it’s back to square one. The risk of infection is real. And this is not a cat that’s going to tolerate one of those anti-scratching cones, sleeping quietly indoors for several days while he heals. He’s a cat-on-the-go. I’ve been trying to dump hydrogen peroxide on it now and then but even that’s an ordeal. Cats generally don’t like having wet stuff dumped on them. He trusts me but he doesn’t trust me that much.

The major drawback of taking care of half-feral outdoor cats is you have to accept that they lead their own lives and they might one day get themselves killed. I keep hoping he’ll want to live more indoors but he’s not very comfortable inside except when it’s cold or raining. (Not to mention my indoor cat Gracie is a bit of a bully and only barely tolerates sharing me and her space with Marbles. They tend to chase each other back and forth through the house in a manner that is more playing than fighting, but it’s pretty rough playing. They run into things and knock things over and sometimes one or the other cat looks like they’re getting genuinely annoyed so I have to step in and separate them.)

Just before publication I can report that Marbles is healing quite nicely and there’s just a small scab left in the middle of a big pink bald spot of skin behind his ear.

World Context

As yet I don’t know what to replace TweetDeck with for news.

* I hate linking to Yahoo News, which I think just scrapes news from God only knows where, like Apple News does. I prefer to reference only Wikipedia or BBC or, for partisan mudraking too controversial for U.S. sources to cover objectively, the Indian Express.

Bye!

Hey look, I added comments again, because it was easy and free. I don't recommend writing anything that you don't want to lose, because I don't know anything about the stability of this platform.