Chris Blume

Chris Blume

@programmax.net

Retired software engineer. Volunteering as chair for the W3C PNG Working Group. Formerly Google & Twitch.

196 followers77 following675 posts

Mountain of Woe?? Yeah right! This place is paydirt. Farm this specific rock, charm weapons that sell for a ton...

Chrono Trigger on PC only has achievements for seeing the different endings. *THIS* should be an achievement. Spekkio has different forms depending on your level. And it is difficult to get to him in the level 1-9 form.

When tech companies measure their uptime, I feel like it would be fair to not include when someone else messes up their BGP settings. However, the end user doesn't care what a BGP is. To them, it is down. From that perspective, I feel like it should be included.

About eMudhra's private key being just 4... I need to revisit how this works. I thought the numbers had to be prime. The point is factoring primes is hard, right?

I think that is the first time I saw AI misspell something. I wonder if this is an intentional marker to detect copying.

In the age of AI, I think us programmers need to shift our interpretation of "good, fast, cheap--pick 2". With AI, I am able to accomplish more quickly. However, I do still need to babysit it. I could not babysit and it'll be fast and bad. Or I can throw tokens at it (fast $$).

I've always preferred to pin "good" and let the tradeoff be fast/cheap. I know a *lot* of programmers & companies who prefer to pin fast. I think our underlying preferences still show with AI. I'll take the time to babysit and clean up its output. That is a slowdown.

The @valheimgame.bsky.social team crushed it with the 1.0 update. The Deep North was amazing. That final boss was amazing. The ending cutscene was amazing. Thank you for making this. My friends and I hung up our final weapons and the crown.

The amount of tech that goes into just the vegetation for Alan Wake 2 is insane. Plants have "bones" so they can sway in the wind. Oh yeah, wind is computed. The plants are broken into meshlets, each of which has its own bounding sphere. The GPU checks that sphere's visibility.

Friggin' AI coding...I really don't want to like it but... It just tested >10k queries against two builds to find and understand where they diverge. Sure, I could have coded up a way to that diff queries. But understanding why they're different would have taken eyeball time.

I had a time-of-check to time-of-use bug across two processes. I'll be honest: I don't think I ever would have fixed a bug like that before AI.

Sony publishes games on Steam. Microsoft publishes games on Steam. Imagine if Nintendo did, too. I would buy so many games day 1.

Over the last week or two, I worked on adding sufficient conformance tests and documentation for the phoenix architecture. The idea is I completely delete the code (including unit tests, integration tests) and have AI rebuild it from just those conformance tests & documentation.

I finally ran the exercise today. It took very little time and money on my end. It also produced nearly the same program. The benefit of this IMHO is handling tech debt. So long as we document & test the parts that matter, the design and implementation is easy to rewrite.

This podracing game (I'm calling it that) is great! Also, it is hard! Right now, <20% of players have made it out of qualifiers. I have not.

You know when you shut down your computer and "Still waiting on these programs: Explorer". I feel like that is very telling.

Fun debugging: Sometimes, CI is fast. Sometimes, it is dog slow. I have some code that archives data on the hour. But that data comes from the network. I gave it a timeout of 10 minutes past the hour for all data to have arrived. Sure enough, if I run my tests at 9:00am...

<me, to coworker> Some coding tasks are no longer interesting or challenging. I struggle with motivation on them. I wish I had a junior dev who would find them interesting. *monkey's paw curls* *Google releases the transformer paper that ushers in the age of AI*

In the age of AI programming, I think we're going to see a LOT more tests. Not just unit/integration tests. Conformance, contract...

Another AI-related introspection: When I want something coded a specific way, I don't trust AI to follow the existing code base. I've tried and end up rewriting it. But when I don't care about code details and take a manager's view, I do trust AI--I can see the feature works.

I've seen people say coding with AI is making them bad at programming. I interpreted that as they forgot how to be good, which made me doubtful. However, I recognize something in myself. Manually coding feels a bit like cleaning my house. It is nice. But it is tedious.

Or maybe it is just tedious to clean up AI's code. Greenfield programming is always a joy. Cleaning up someone else's messy project isn't fun.

Blender is an amazing example of open source success. It is wonderful. I need to check Gimp again. I feel like it needs some love, too.

It is easy for me to envision when to use performance cores (time-critical) vs. efficiency cores (not). But there are cores in the middle I don't get. Surely it isn't just "not time critical but don't take too long". Maybe efficiency cores are missing certain units? SIMD?

omg I *just* learned there is a Win32 MsgWaitForMultipleObjects(), with "Msg" at the front. (The message queue isn't exposed as a handle and so there previously was no way to sleep until a message *or* an event.) Today is a good day!

Huh. There is no way for a program compiled with /SUBSYSTEM:WINDOWS to know that it was launched with CREATE_NO_WINDOW. The flag is used to run a console program silently. My program creates a console. And it has no way to check if it should be silent.

Correction: AllocConsoleWithOptions() handles this. But that was only introduced in Windows 11 24H2. So the problem I described has existed for a long, long time.

Probably a spicy take but I think variable scope clarity in programming languages could be improved. bool flag = false; if (foo) { ...many lines... flag=true; } ...many lines... if (flag) { Really, flag just needs to exist in both of those blocks, no the parent block.

Said another way: Currently, the only way to share a variable between two blocks is to put that variable in a shared parent block. Even if the parent doesn't care and the other blocks/code don't care. It feels like there has to be a better way.

I'm designing a simple DIY CPU that can be made easily enough with discrete components. This means limiting transistor count. I'm seriously considering dropping conditional branches in favor of the PDP-8's style conditional skip.

How is it 2026 and Windows doesn't have a way to set a per-program default network adapter? I'm sure we'll get 100 more hated features before it's on someone's TODO list, too.

I wouldn't be surprised if this is already happening behind the scenes and waiting for privacy to dip enough to monetize it. I suspect 'associations' will be tracked. IE you and these 3 other people all suddenly saw this wifi point. And again on these occasions.

I want to play Star Wars Zero Company. But I *hate* that they furloughed their people. I do not want to support a company that does that.