HN user

marcusbuffett

817 karma

marcusbuffett@me.com

Posts34
Comments70
View on HN
mbuffett.com 8mo ago

Improving in chess is hard. I built the most human-like chess AI to help me

marcusbuffett
3pts4
mbuffett.com 1y ago

An honest review of my first year as a full-time indie dev

marcusbuffett
2pts0
mbuffett.com 1y ago

My deep-cut book recommendations

marcusbuffett
1pts0
mbuffett.com 1y ago

A self-review of my last year building Chessbook

marcusbuffett
2pts0
mbuffett.com 1y ago

Treat your onboarding users like toddlers

marcusbuffett
1pts0
mbuffett.com 1y ago

Locality of Behavior, over the Single Responsibility Principle

marcusbuffett
2pts0
mbuffett.com 1y ago

A made-up name is better than no name

marcusbuffett
62pts81
supermaven.com 1y ago

Supermaven Joins Cursor

marcusbuffett
2pts0
mbuffett.com 1y ago

Creating an optimized keyboard layout for the next generation of the Datahand

marcusbuffett
2pts0
mbuffett.com 1y ago

The 2030 Rust Update

marcusbuffett
6pts0
mbuffett.com 2y ago

A bunch of programming advice I'd give to myself 15 years ago

marcusbuffett
544pts318
mbuffett.com 2y ago

Abstractions are the best, abstractions are the worst

marcusbuffett
2pts1
mbuffett.com 2y ago

Managing my motivation as a solo dev

marcusbuffett
336pts91
mbuffett.com 2y ago

Processing 6 Billion Chess Games in Less Than 2 Hours

marcusbuffett
1pts0
lichess.org 3y ago

Which chess openings lead to the shortest games? What about the longest games?

marcusbuffett
2pts0
old.reddit.com 3y ago

My setup for ergonomic and performant Zustand in React

marcusbuffett
1pts3
mbuffett.com 4y ago

It’s probably not just chess and language. How much potential is thrown away?

marcusbuffett
4pts0
mbuffett.com 4y ago

Generating Chess Puzzles Fast with Rust and Stockfish

marcusbuffett
2pts0
mbuffett.com 4y ago

Reviews of all 52 books I read in 2021

marcusbuffett
2pts0
mbuffett.com 4y ago

Scattered thoughts on why I waste my own time

marcusbuffett
312pts173
chessmadra.com 4y ago

Show HN: A site I made to train my chess visualization

marcusbuffett
5pts3
mbuffett.com 4y ago

Thoughts on chess improvement, after gaining 600 points in 6 months

marcusbuffett
331pts192
mbuffett.com 5y ago

An Incomplete Explanation of the Proc Macro That Saved Me 4000 Lines of Rust

marcusbuffett
2pts0
mbuffett.com 5y ago

How Much of the Hitchhiker's Guide to the Galaxy Can You Fit on a QR Code?

marcusbuffett
3pts0
mbuffett.com 5y ago

Making a Snake Clone with Bevy

marcusbuffett
60pts11
mbuffett.com 5y ago

Creating a Snake Clone in Rust, with Bevy

marcusbuffett
1pts0
mbuffett.com 5y ago

Thoughts on Structured Editing: Breaking Away from Syntax

marcusbuffett
3pts0
mbuffett.com 5y ago

Migrating from Redux to Pullstate

marcusbuffett
3pts0
mbuffett.com 5y ago

As a hobbyist rust developer, I want to think less about error handling

marcusbuffett
1pts0
mbuffett.com 5y ago

Unconventional React Things: Styling Edition

marcusbuffett
2pts0

I used this for spaced repetition for opening training on Chessbook, can vouch that the Rust package is excellent. Easy to use and immediately lowered the training load on our users while keeping retention high. FSRS is awesome.

I strongly recommend "A Philosophy of Software Design". It basically boils down to measuring the quality of an abstraction by the ratio of the complexity it contains vs the complexity of the interface. Or at least, that's the rule of thumb I came away with, and it's incredible how far that heuristic takes you. I'm constantly thinking about my software design in these terms now, and it's hugely helpful.

I didn't feel like my code became better or easier to maintain, after reading other programming advice books, including "Clean Code".

A distant second recommendation is Programming Pearls, which had some gems in it.

Yeah as someone working on educational software, anything hand-rolling their own SRS is a pretty big red flag. Beating FSRS is going to be next to impossible, especially FSRS with parameters optimized from your users’ review history.

Yeah this is a good shot at using existing verbiage, better than the candidates I came up with at least. Still not entirely self-descriptive, and has some overlap with usage in other parts of the codebase, like in data processing and user onboarding, but maybe that's a fine trade-off to make in order to use a normal word. I'd be equally fine with them being called "steps", but now I'm attached to my Keps :D

Oh god yeah I’ve been in this situation too. Working at Apple it was like “is everyone in this meeting cleared for Tigris?” And you’d be like “I don’t know, what the hell is Tigris”, and then it turns out after you check your clearances it’s just iOS 13, which is obviously no mystery that after 12 there will be a 13. Just call it that!

Nothing was named according to what it did either, I think our deploy tool was Carnival? Just codenames everywhere

It’s one made-up name in a 30,000 line codebase. I think if anyone else ever works with the project they’ll have a lot harder things to catch up on than this convention

I gave this a spin, this is the best iteration I've seen of a CLI agent, or just best agent period actually. Extremely impressed with how well it did making some modifications to my fairly complex 10,000 LOC codebase, with minimal instruction. Will gladly pay $99/mo when I run out of credits if it keeps up this level.

Yeah I'm also sick of seeing articles cite this mythical trade-off, where any increase in programming output must be correlated with being a bad team member, churning out bad code, and generally being a pain to work with.

Anyone that's worked with engineers can tell you that there are simply some people getting more done than others, in the same amount of time. Are there people producing bad code? Yes. But I don't think output is inversely correlated with code quality. In fact the people I've worked with that have the most output, also had some of the highest quality code. I've never experienced this mythological 10x rockstar figure that works alone creating impossible to maintain systems, and I've worked closely with dozens of engineers. He probably exists somewhere, but not with the sort of prevalence that justifies every programming productivity article ripping on his archetype.

These seem just as abstract as mine, if not more so, plus at least I provided examples where I could. Feels weird to criticize my post for general advice + examples, then come up with your own general advice without examples.

Also this was just an analogy I know, but doctors definitely don’t hurt people for years while trying to save them, very different profession from ours, if anything doctors earlier in their career have been shown to have better results.

I think Ozempic cost somewhere around $3 billion to research and develop. What’s the steel man argument for how we could charge the same for the drug in America, and fund future research with the proceeds? I don’t want to be paying $800/mo for my drugs, but if the alternative is that everyone is paying $5/mo and there’s no hope of recouping the R&D costs, then we just won’t get biomedical breakthroughs like this at all.

I think it’s easy to look at places in Europe that get drugs virtually for free, and want to be like that, but the US despite being 1/20 of the world’s population, funds something like 80% of the biomedical industry, due to our lack of price controls.

There’s so many areas of medicine where we don’t see progress because the ROI just isn’t worth it. Do we want to risk making all medicine like that?

The only real treatment for ADHD is to medicate, and I’ve seen some studies that show your brain creates more dopamine pathways (forget the actual term, but basically more efficient at getting rid of dopamine) over time, which means that if I were to go off the medication, I’m potentially worse off than before. That seems too high of a cost.

I have tried it before though, it certainly works.

Yeah I think there’s definitely something to this. I’ve had periods of time working at companies that I wasn’t aligned with, where motivation was virtually unreachable.

That said even if you’re working on something you love, there will be weeks where the work just isn’t fun, and that’s where this stuff comes in. I love the project I work on now, a chess improvement site, but sometimes I need to take a week to move cloud providers, or deal with App Store review, or work on marketing. Can’t always be fun even if the overall project is directionally aligned.

Basically just setup a discord webhook, and most languages will have a discord client you can use. Just when you get a subscription webhook event from stripe/apple/google, send a notification to that webhook

Yeah there’s some nuance to the zero days thing. If it’s a day I’ve already set aside that’s fine, but I’ve found myself unable to decide in the moment “not feeling it today, this will be a zero day”, and be okay with that emotionally. Unless I’ve shipped a massive feature recently or something, then it’s okay. Motivation is a mess, is what I’m getting at :)

Haha I share in your frustration with the crickets launch, anything I post here that I actually care about people seeing, gets shuttled off to the shadow realm, then stuff like this that’s just musing tends to hit the front page.

I tried React Native, but ended up re-writing and going with SolidJS + Capacitor, and I love the setup. I've barely thought about performance since switching, people think the iOS/Android apps feel native, there's almost never any differences in behavior between the platforms, it's a fantastic setup for a solo dev.

The problem I’m facing with storing roughly 600 million shorter PGNs is that the database is 100GB or so, and I’m grabbing thousands of them sort of at random. This makes the query IO bound, even though the finding the pages they’re on is virtually instant with the indexes. So a smaller database means less pages read when I do these large reads, ideally. I also have other ideas on ordering the database in a smarter way, but hoping this part helps.

I have actually, alongside my work of compressing moves. My compression scheme averages about 150 bits per position, or about 35% of the standard text notation in EPD format.

The thing I optimized for is that there’s very often repeated blank spaces or repeated pawns on the same rank.

Also instead of storing castling status separately, it’s stored as a separate piece on the appropriate rook.

These take advantage of the fact that there’s 6 pieces, so 3 bits to encode them leaves two options remaining. One is PawnRepeating and the other is RookCastleAvailable, in my scheme.

There’s probably improvements to be made. I’ll write a post on it when it’s finalized.

Postgres as queue 2 years ago

I looked at some solutions that were more specifically meant for queues, for my site, but decided to keep the infra simple by using my Postgres DB for the worker queues. There’s 10,000 jobs a day, at that rate theres virtually zero additional load. It runs fast, I know exactly how it works, can extend it easily, local dev doesn’t get any more complicated, and there’s not another point of failure in the form of a new piece of infra.

If I get millions of users I’ll swap it out, in the meantime it took like a day to implement and I haven’t looked back.

I personally find Wtfhappenedin1971 to be super interesting, even if the conclusion about floating currencies could be wrong. The author here hand-picks like 4 things out of the 50 charts, and IMO the least interesting ones.

There’s some massive trends that started around 1971, where healthcare, national debt, education costs, housing, etc all just start to skyrocket, outside of just inflation.

I think the 1971 author is certainly motivated in his reasoning to explain what’s going on through his lens, but the OP here seems equally motivated to decide that actually nothing is going on.

As someone who loves to stay in the terminal when possible, this looks awesome. The lack of multi-line input is a bit of a bummer but I guess I can c+p from my editor or something