HNHacker News
TopNewBestAskShowJobs

jeremyloy_wt

158 karma · joined January 7, 2019

submissionscomments
jeremyloy_wt··on Decapitating a MacBook (2025)
I could not grasp the “why” here, not for the life of me. A Mac mini/studio would have been so much straightforward for the actual cited problem of “needing to develop on Apple hardware”.

Sometimes we do things just for “the love of the game” and learn something along the way but I couldn’t help scratching my head the entire time while reading this

jeremyloy_wt··on Go 1.27
I’m so happy Russ still contributes even though he isn’t lead anymore. I always enjoy reading his blog posts
jeremyloy_wt··on Models Are Getting Dumber on Purpose
Admittedly I’m pretty ignorant of the details, but I thought this was the mixture of experts architecture
jeremyloy_wt··on Rewriting Bun in Rust
They napkin math is fairly easy to do. One human works around 250 days per year, and if we assume Bay Area salaries we could assume ~300k/y conservatively for a fully loaded cost.

$1200 per day.

Your estimation is 50*11 days so $660,000. That’s 4x what Claude cost.

That’s assuming that you actually get those 50 people to work without blockers, stepping on each other, or other coordination issues. The coordination complexity alone is astounding.

I don’t like it necessarily, but Claude wins here, easily. It’s not close.

jeremyloy_wt··on GLM 5.2 and the coming AI margin collapse
And if the engineer bills for $100/hr or more, the trade off is worth it
jeremyloy_wt··on APC–2 – A professional record cutter for producing original playback discs
> the way music is recorded and mixed today takes all the soul out of music

> So much precision is required that session musicians are playing most of the things you hear, not the actual artists

I’m sure the session musicians don’t appreciate this statement. Just because they can play with high precision and reliability doesn’t mean they are playing without soul.

If the featured artists can’t do so on their own, that’s sort of a knock on them, isn’t it?

jeremyloy_wt··on LLMs are eroding my software engineering career and I don't know what to do
I think there will always be some sort of mastery element to communicating with AI. You can see that nowadays with juniors who blow through tokens and still don’t produce good results. There will always be some group of people using AI better than others. Maybe the results will be equal in the far future, but some other dimension like cost may be better used by some people
jeremyloy_wt··on Pokemon Emerald Ported to WebAssembly (100k FPS)
Emerald is well regarded as the best of Generation 3, which is the final of the traditional 2D games and can trade with Fire Red/Leaf Green (remakes of the classic)

So you have available all of the original Pokémon

jeremyloy_wt··on My adventure in designing API keys
I don’t understand your explanation on mitigating the confused deputy. If the attacker has access to the database, can’t they just read the IDs for the target row they are overriding first so they can generate the correct hash?
jeremyloy_wt··on Agentic Engineering Patterns
> we as humans can guide the LLM toward a rigorous test suite, rather than one that has a lot of "coverage" but doesn't actually provide sound guarantees about behavior.

I have a hard enough time getting humans to write tests like this…

jeremyloy_wt··on The time picker on the iPhone's alarm app isn't circular, it's just a long list
Funnily enough, the Sleep Schedule settings screen on iOS (accessed through the Health app) looks very similar to this.
jeremyloy_wt··on Waitgroups: What they are, how to use them and what changed with Go 1.25
This isn’t necessary anymore as of Go 1.22

https://go.dev/blog/loopvar-preview

jeremyloy_wt··on Codex CLI is going native
The official Typescript compiler is being rewritten in Go as we speak.
jeremyloy_wt··on Toasty, an async ORM for Rust
The second that you would benefit from using a DBMS specific feature, the ORM begins getting in the way. It is highly unlikely that an ORM provides support, much less a good abstraction, over features that only 1/N supported DBMS have.

Your code ends up using the driver raw in these cases, so why not just use the driver for everything? Your codebase would be consistent at that point

jeremyloy_wt··on Russ Cox is stepping down as the Go tech lead
https://go.dev/tour/welcome/1
jeremyloy_wt··on Russ Cox is stepping down as the Go tech lead
Can you elaborate on what problems you have with the MVS algorithm?
jeremyloy_wt··on Don't mock machine learning models in unit tests
> I’m going to take issue with to you’re use of the word never here

Perfectly fair. I shouldn’t have stated it as an absolute. If I could still edit it, I would change my statement to “don’t default to a mock”

> Would you mind explaining what you mean here

Gladly. Martin Fowler provides really clear definitions for the different types of test doubles.

https://martinfowler.com/articles/mocksArentStubs.html

Maintaining that your Fakes are correct takes work. An easy way that I’ve found to do that is to run the tests against a “real” component and the Fake component with the exact same set of assertions and set up. If that test breaks, then you know that consuming code should also break

jeremyloy_wt··on Don't mock machine learning models in unit tests
Counterpoint when using mocks - if Bs behavior changes, one may not remember to update A’s test which would be falsely passing.

This problem is exacerbated if B is a popular object used by many components.

IMO if you own A and B, never use mock. Possibly write a Fake B if B is non deterministic or slow. Then write a parity test for B and Fake B

jeremyloy_wt··on Compiling Rust is testing
Oh is that what the online/offline stuff in their docs mean? I’ve never heard of that technique being used before, that’s really interesting
jeremyloy_wt··on JetBrains' unremovable AI assistant meets irresistible outcry
I don’t understand the outrage. The plugin is installed by default and visible in the right tray so it’s basically an advertisement. That’s the only negative part and I understand the frustration with that.

You can disable it like any other plugin though? Really easily? And it’s a paid service. Just don’t pay for it.

Seems like rage bait that a lot of people are falling for.

Of course, if it turns out it’s phoning home with training data by default then I will also change my tune, but it doesn’t seem to be doing that

jeremyloy_wt··on Teach Yourself Programming in Ten Years (1998)
I personally think learning how to use ChatGPT and the like IS going out of the comfort zone.

To make an analogy to music, I see it like brass players at the advent of the valve.

It’s a new way of playing the instrument. The old ways and new ways aren’t congruent in all ways, but the new way does seem to have a higher skill ceiling

jeremyloy_wt··on Super Mario 64 on the Web
I am genuinely ignorant on the sandboxing and capabilities of wasm
jeremyloy_wt··on Super Mario 64 on the Web
Isn’t this a bit sketchy to just have a repo with no source and a wasm file? I understand not having the actual Mario64 source, but I’d feel more comfortable running this if the translation code was open source
jeremyloy_wt··on Error handling in Go web apps shouldn't be so awkward
I disagree in the context of error handling.

The go ecosystem frequently utilizes `go generate` to handle boilerplate code generation. That’s the exact same way `thiserror` utilizes macros to generate plain error structs. While macros can do more, in this case it’s the same.

jeremyloy_wt··on Error handling in Go web apps shouldn't be so awkward
thiserror and anyhow are hardly magic.

The former is just macros for error definition

The latter is just a wrapper around box dyn error

jeremyloy_wt··on The SHA256 for this sentence begins with: one, eight, two, a, seven, c and nine.
https://go.dev/play/p/6Lg9L2up5mI

Here is a slightly different version I wrote that has 0 allocations per loop.

Took about 26 seconds.

I'm welcome to suggestions on how to make it more readable! Its been a few years since I have written Go professionally

jeremyloy_wt··on C and C++ prioritize performance over correctness
> It appears the author is a Go advocate

A bit of an understatement. The author is the current Golang project lead and a member since it’s inception

jeremyloy_wt··on Htmx is part of the GitHub Accelerator
I can’t believe you aren’t crediting your hilarious and pervasive ~~psyops~~ meme campaign
jeremyloy_wt··on Go is about to get faster
Go errors are not stringly typed. You can assert that the error itself, or any error it wraps, is it a particular type through errors.Is and As.

If your past experience involved people comparing error.Error() strings I’m sorry. That’s awful and I can see why that would be a nightmare