Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Marcus Buffett

    mbuffett.com · Personal blog · on HN since 2014

    Marcus Buffett, a programmer and chess player, writes about Rust, chess tooling, compression experiments, and personal projects.

    Visit blogRSSHN submissions
    ProgrammingGames
    What HN says

    HN commenters point to his chess move compression posts, including the follow-up reaching 3.7 bits per move, and his Bevy snake tutorial.

    Stats for nerds
    27HN people shared it
    48linked in comments
    2.2Kstory points
    Jan 2025last shared
    2022people per year2025

    Top posts on HN

    1. 1
      A bunch of programming advice I'd give to myself 15 years ago
      1 person · 544 points · first shared 2024 · 318 comments on HN
    2. 2
      Managing my motivation as a solo dev
      1 person · 336 points · first shared 2024 · 91 comments on HN
    3. 3
      Thoughts on chess improvement, after gaining 600 points in 6 months
      2 people · 321 points · first shared 2021 · 188 comments on HN
    4. 4
      Scattered thoughts on why I waste my own time
      1 person · 312 points · first shared 2021 · 173 comments on HN
    5. 5
      Unironically using Kubernetes for my personal blog
      2 people · 273 points · first shared 2021 · 227 comments on HN
    6. 6
      Compressing chess moves for fun and profit
      2 people · 180 points · first shared 2024 · 135 comments on HN
    7. 7
      A made-up name is better than no name
      1 person · 62 points · first shared 2024 · 81 comments on HN
    8. 8
      Making a Snake Clone with Bevy
      3 people · 61 points · first shared 2020 · 11 comments on HN
    9. 9
      The 2030 Rust Update
      3 people · 15 points · first shared 2024 · Discussion on HN
    10. 10
      Compressing Chess Moves Even Further, to 3.7 Bits per Move
      6 people · 6 points · first shared 2024 · Discussion on HN

    What HN people wrote when they linked it

    • lelandbateyApr 2022

      > Cannot make a type in a foreign package implement an interface

      I would only push back on this point, and this point alone. Sure, it would be very convenient for me, an author to be able to just extend the implementation of anything that I import. However, when I am not an author and am instead a reader of code, doing this is the number-one way to causally make code totally unreadable. By allowing anyone to extend a type anywhere, it makes it impossible to just read the code. If the package that declares a type is the sole controller of that type, then reading code is easier.

      "Where is the definition of this method?" Answer: It's next to everything else for that type, in the package where that type is defined. However, if anyone can extend any other type, figuring out what methods even exist for a type becomes so difficult that you are forced to use a language-server (with all related dependencies installed) in order to use "go-to-definition". If someone wants to understand the code, requiring them to have a full-fledged IDE and/or development environment is pretty awful and quite onerous, and makes codebases tough to get into.

      For example, take this line[0] from a tutorial[1] on creating a simple snake game using the Bevvy engine in Rust. The main() function wires up loads of entities, including a `snake_eating()` function. But it also calls a mysterious `.after()` method of the snake_eating() function. If you do a ctrl-f on the file, you won't find an .after() method…

    • unshavedyakJan 2025

      Oh, related in this space: https://mbuffett.com/posts/structured-editing-syntax/

      I thought this blog post had an interesting idea too. Basically that a structural editor which truly knew the underlying AST could then alter the visual representation of the code entirely. Eg changing it to look like Python, or whatever insane thing.

      Not advocating for that of course, but the idea that the editor could be effectively transpiling the code in real time is an interesting area to explore too. I imagine not for the purpose of "Write Python that becomes Rust" or w/e, but just in general customizing the experience. Perhaps reducing clutter, /shrug

    • eternalbanJan 2023

      The Tacit Dimension, Michael Polanyi, 1966

      https://press.uchicago.edu/ucp/books/book/chicago/T/bo6035368.html

      Programming and Tacit Knowledge

      https://mbuffett.com/posts/all-tacit-knowledge/

      Tacit Knowledge blogpost series, Commoncog

      https://commoncog.com/the-tacit-knowledge-series/

      Acquiring and Sharing Tacit Knowledge in Software Development, 2013

      https://www.researchgate.net/publication/264125152_Acquiring_and_Sharing_Tacit_Knowledge_in_Software_Development_Teams_An_Empirical_Study

    • maxmcdMay 2024

      huh, I originally thought this would create unusually long URLs, but if it's just the sequence of moves it could stay pretty small.

      might more fun too, representing each state of play instead of just the board position.

      Also easily compressible if size is an issue: https://mbuffett.com/posts/compressing-chess-moves

      Would also mean all rules can be represented, and you'd be able to do cool things like highlight the previous move that was made.

      Nice, ok, might try and add this.

    • andrubyMar 2024

      That's exactly what the author seems to have done and describes in their subsequent post: https://mbuffett.com/posts/compressing-chess-moves-even-further/ (published yesterday)

    • joshkaMar 2024

      You might be interested in the author's follow up post where they reach 3.7 bits/move after compression. https://mbuffett.com/posts/compressing-chess-moves-even-further/

    Related

    Gary Marcusgarymarcus.substack.com203 people

    ChatGPT went berserk

    Gary Marcus
    Personal · last shared 2026
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    Giles Bowkettgilesbowkett.blogspot.com138 people

    Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

    Giles Bowkett
    Personal · last shared 2018
    Computer, Enhance!computerenhance.com72 people

    Turns are better than radians

    Computer, Enhance!
    Personal · last shared 2026
    jwzjwz.org880 people

    Watch a VC use my name to sell a con

    jwz
    Personal · last shared 2026
    Eli Benderskyeli.thegreenplace.net428 people

    Common Pitfalls in Go Benchmarking

    Eli Bendersky
    Personal · last shared 2026
    Notchnotch.tumblr.com102 people

    I'm Leaving Mojang

    Notch
    Personal · last shared 2021
    Not a Monad Tutorialnotamonadtutorial.com40 people

    Weld: Accelerating numpy, scikit and pandas as much as 100x with Rust and LLVM

    Not a Monad Tutorial
    Publication · last shared 2023