Back to Index

lately-7

winsrewu
winsrewu

September 21, 2025

The author developed a custom blog platform to support multi-account blogging and address aesthetic preferences. This post details various technical challenges, including fixing HTML standards for site navigation, resolving caching issues with Next.js, and managing site monitoring. It also covers ongoing website refactoring plans, academic pressures, and side projects like updating riscv-mc content and integrating a music tokenization library.

Well, I wrote this thing over the weekend: https://github.com/JwbFut/simple-gistblog
Mainly because nothing on the market really fits my needs. "JwbFut" is theoretically an organization, so there might be blogs from more than one account, but not many platforms support that.
Also, aesthetics are a bit of an issue with some others.

Then there's SEO stuff. I replaced the icons for all active sites (the main API site and the gistblog) with SVGs.
It's pretty bad, actually. Because the resolution was too low, the left and right halves of the "J" are different thicknesses, but I can't think of a better icon.
So it stays like that.
I suspect it's because Bing rejected a previous ~25x30 PNG icon.
Then I worked on the sitemap and robots.txt, getting that sorted for both the main site and the gistblog.

While coding, I wanted to use Next.js's unstable_cache to cache results fetched from GitHub.
But it's truly unstable – somehow a map ended up as an empty dictionary.
During testing, I accidentally clicked on the deployed production page and wondered why the experience was so smooth (fast access to GitHub from outside the Chinese network).
I pushed directly, and it crashed.

I also fixed a bug on the main site. Originally, clicking the "J" in the footer would scroll to the top.
Somehow it stopped working. I found out that while name="top" used to work, now it needs id="top" for positioning.
HTML standards keep rolling forward. HTML5 doesn't support the old stuff anymore.
*Sigh

Another thing happened. Both my IN site and API have a rule that rejects requests not coming from Cloudflare.
This is done by checking for a specific header.
While reviewing the Cloudflare config, I casually deleted the rule adding the header for the IN site, thinking I had added it wrongly (maybe my subconscious already thinks the IN site is Vue).
Then the status monitor sent me an email, and I fixed it quickly.
The status monitor saved the day!
But this status monitor can't be made public. It's accessed via HTTPS with a certificate on an IPv4 address. Since it runs domestically in China and isn't registered in ICP, it can't use HTTPS + a domain name.
The new one needs to integrate a login system, which is scheduled after the website refactor, so it's slow going.

snavesutit has started working on Animated Java stuff and was going to review my PR, but he force-pushed twice, so I ended up creating two new ones for him.
I remembered the cherry-pick trick from watching that episode where Tian Gao messed up.

The status monitor uses Kener. The distributed version is still being written. Just after praising Kener, hey! It crashed!
The IN site kept failing ping checks, all red, for a long time. Curl from the server was normal, no idea why.
Also, I didn't put Kener at the website root path, causing a bunch of 404s. The logs are so long, ugh.

Parry is too old. The 1970s didn't even have C, and the project structure is terrible. It feels like assembly mixed with some weird stuff inside.
I can't even tell what each file is for. Really don't want to read it.
Might just throw together an Eliza and call it a day.

My computer's drives are almost full. The solution was to put Honkai Impact 3rd on an external hard drive. Haha.

Steam's big sale is coming soon. Planning to get Portal and Project Zomboid. Project Zomboid is pretty fun, gonna buy it properly this time.

Before I knew it, it's already November. Academic pressure is insane. I've already finished Portal, and probably won't touch Project Zomboid for the next few years.
snavesutit got really into coding and fixed those two bugs himself, so my PRs missed their chance. Tch.
Also updated a lot of riscv-mc content, mostly about setting up a C/C++ environment on bare metal.
It mainly came down to linker script stuff. Anyway, it's solved now, and it can run this: https://github.com/anthay/ELIZA/blob/master/src/eliza.cpp
The plan is to write an on-screen keyboard for the MC, quickly make a video, and wrap this up.
The website rewrite absolutely must be prioritized. I just found a good way to tokenize the music files: OpenL3. It's a python library, which means I may need another docker, just for generating the feature vectors. It should be simple, but it takes a loooot of time.

Oh, and I need to add i18n to this blog. Of course, the simplest i18n is to only write an English version. Haha

View on GitHub