Do you find the bots on chess.com play human-like chess? I'm not sure what they're using under the hood but I assume they've also put some effort into this sort of stuff.
HN user
marcusbuffett
marcusbuffett@me.com
Yeah the intention is to make them available on my chess site eventually (Chessbook). It's in very early alpha though, so it's breaking constantly as I tweak things and try playing against it with different configurations.
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.
No I actually do mean the feedback you get as a developer when you realize which “bad” decisions actually end up being tech debt and which were totally fine and just saved time
That was more of a subtle joke than anything substantive. I think JIRA is probably fine as long as it’s not like a religion
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
I love this, I’m going to start doing this. It’ll help me actually start writing tests too lol
This is the one I use, should have mentioned in the article
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 did end up doing something like this: https://mbuffett.com/posts/compressing-chess-moves-even-furt...
You’re spot on about the performance reason I didn’t want to do this originally, but I did some testing and turns out move generation in the library I use is Blazing Fast and wouldn’t be a bottleneck
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.
I mention Huffman in my follow-up post: https://mbuffett.com/posts/compressing-chess-moves-even-furt... , but chose arithmetic encoding instead.
Your intuition here is right on the money. I wrote a subsequent post with pretty much that exact approach: https://mbuffett.com/posts/compressing-chess-moves-even-furt...
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.
Thanks for mentioning this, has been fixed!
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