Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #12526

M

moria.us

Personal blog · moria.us/blog · on HN as dietricheppprogramminggamessystems

moria.us is a personal blog at moria.us about programming, games and systems. Since 2013, 6 different Hacker News readers have linked it 19 times, most often “Demystifying the LFSR”. No feed was found, so read it on the site itself.

No feed foundVisit the blog
19mentions?
6HN people?
2013–2026first – last linked?
Links on Hacker News per year · peak 6 in 2022

Too few sampled comments (2) to say how often HN recommends it.?

Why HN links it

HN readers link moria.us for articles on C++ and its standard library, including a piece arguing the iostream streams are hopelessly broken, and an article on the Atari Pitfall game's single-byte world generation.

Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

The author on HN?

dietrichepp · 4,384 karma · member since 2012

http://www.moria.us/

From their public HN profile, which links to this site.

Most-linked posts?

  1. Demystifying the LFSR
    3 people · 3 mentions · first linked 2022-08-24
  2. /articles/iostream-is-hopelessly-broken/
    2 people · 4 mentions · first linked 2020-05-24
  3. Dear Retro Community, Stop Writing Tools in C
    2 people · 2 mentions · first linked 2023-01-22

What Hacker News says?

  1. Nice article! I used similar techniques to find solutions for a game called “DStar”… including the choice to write the solver in Rust. You can play the game and see the optimal solutions on the web (not tested on mobile): https://www.moria.us/games/dstar/play A state in this game is: enum Active { Ball, Block, } struct State { coins: u32, // bitmask of which coins remain active: Active, // which player is active bal…

    Comment linking /games/dstar/play

    on “Solving NP-hard puzzles with the oldest trick in the book”
  2. Submitted Demystifying the LFSR as a story · 38 points

    HN discussion
  3. There was a puzzle game I had for the TI-86 called simply “dstar”. I always wondered who made it. When I looked it up, it looks like it was based on an HP-48 game by the same name. I’ve ported it to JavaScript, and it runs in the web browser. I also added the ability to show the solution to each level, and skip to any level. https://www.moria.us/games/dstar/play

    Comment linking /games/dstar/play

    on “The Insane Innovation of TI Calculator Hobbyists”
  4. Submitted Chaos Tomb: Visualizing Gameplay with D3 and SQL as a story · 15 points

    HN discussion
  5. This timeline also meant that wchar_t was fixed as 16 bits on Windows for compatibility, but ended up as 32 bits on macOS and Unix. It can't really be removed from the C or C++ standards, but there's nothing you can do with wchar_t that's both useful and portable. Well-meaning developers learn how to support Unicode with wchar_t only to discover that wchar_t is the worst way to support Unicode. https://www.moria.us/…

    Comment linking /articles/wchar-is-a-historical-accident/

    on “APFS is not safe to use with names which have Unicode normalisation issues”
  6. Submitted Dear Retro Community, Stop Writing Tools in C as a story · 1 points

    HN discussion
  7. I got nerd sniped and compressed it to under 28K, which was good enough for the goal of fitting it in a 32K NROM cartridge for the NES. On the NES, you don’t need to do better than that, because you get a separate 8K for graphics, and 4K is plenty of space to fit the code for your Wordle clone. https://www.moria.us/blog/2022/01/dictionary-compression The annoying part is that the NES only gives you four background p…

    Comment linking /blog/2022/01/dictionary-compression

    on “Game Boy Wordle clone: How to compress 12972 five-letter words to 17871 bytes”
  8. Submitted Dear Retro Community, Stop Writing Tools in C as a story · 1 points

    HN discussion
  9. I recently started work on an NES project, and wrote the first part of it up: https://www.moria.us/blog/2018/03/nes-development It's a lot of work. I've managed to get data from Tiled into my ROM image, and I'm working on figuring out an architecture for scrolling and displaying a status bar. Implementing scrolling and a status bar sounds simple but is actually a total pain. You only have two screens of tiles to wor…

    Comment linking /blog/2018/03/nes-development

    on “The NES Homebrew Scene”
  10. Submitted Chaos Tomb: Visualizing Gameplay with D3 and SQL as a story · 1 points

    HN discussion
  11. > Friends don't let friends use iostreams. Agreed. Had this discussion enough times that I put my thoughts in an article. <iostream> is just spectacularly bad. https://www.moria.us/articles/iostream-is-hopelessly-broken/

    Comment linking /articles/iostream-is-hopelessly-broken/

    on “Curious lack of sprintf scaling”
  12. I wrote an article specifically for the Nintendo 64 homebrew community: https://www.moria.us/blog/2021/07/9-reasons-why-nintendo-64-...

    Comment linking /blog/2021/07/9-reasons-why-nintendo-64-homebrew-projects-fail

    on “The harsh truth of video games programming”
  13. > what does the standard library not have that you think forces you to write boilerplate? The streams from the standard library are broken beyond repair, I avoid them at all costs: https://www.moria.us/articles/iostream-is-hopelessly-broken/ Even <stdio.h> C header is much better abstraction, despite 50 years old. To be useful, option types and tuples need language support. C++ doesn't have it. Similarly, to be usef…

    Comment linking /articles/iostream-is-hopelessly-broken/

    on “Porting Graphing Calculator from C++ to Swift”
  14. I have a more mathematical / software oriented article about LFSRs here: https://www.moria.us/articles/demystifying-the-lfsr/

    Comment linking /articles/demystifying-the-lfsr/

    on “Understanding Linear Feedback Shift Registers in FPGAs”
  15. Cool! I have trouble remembering all the things to do, so I died a couple times from hypothermio. On Safari, it seems to try to load Ogg files, which doesn't work. I also made an HTML5 game for Ludum Dare, but it was under the 48-hour solo rules. All my audio is encoded both as MP3 and as Vorbis, and I use audio.canPlayType() to choose the format. http://moria.us/ludumdare/ld26/play/

    Comment linking /ludumdare/ld26/play/

    on “Show HN: An HTML5 game we made in 72 hours for Ludum Dare”
  16. It’s really astonishing how bad <ostream> is. It’s not just one or two problems—the <ostream> interface is just a total disaster. In my mind, fmt is not just a replacement for <ostream>, it’s a replacement for <cstdio>, which is a much higher bar to clear. https://www.moria.us/articles/iostream-is-hopelessly-broken/

    Comment linking /articles/iostream-is-hopelessly-broken/

    on “Fmt – A Modern Formatting Library”
  17. LFSR algorithms are super interesting. Fabien Sanglard documents how it was used in Wolfenstein 3D's 'Fizzle effect' [1]. This is also covered in his book on the development of that game [2]. A detailed write up that goes into a bit of mathematics with code examples is 'Demystifying the LFSR' [3]. The 'Computerphile' Youtube channel did a whole episode on LFSR last year which is very accessible, highly recommended […

    Comment linking /articles/demystifying-the-lfsr/

    on ““Pitfall” for the Atari describes its whole world in a single byte”
  18. I remember playing this, but also a puzzle game called “dstar”, which I ported to the web: https://www.moria.us/games/dstar/play

    Comment linking /games/dstar/play

    on “Drugwars for the TI-82/83/83 Calculators”
  19. Strings in C++ are nice, especially now that we have std::string_view, but <iostream> is one of the worst pieces of the C++ standard library. - <iostream> makes localization more difficult, compared to printf (localizing <iostream> code is beyond awful) - <iostream> makes thread safety more difficult, compared to printf (it is safe to printf/fprintf from multiple threads, simultaneously, without any extra work) - Th…

    Comment linking /articles/iostream-is-hopelessly-broken/

    on “Show HN: Using C++23 <stacktrace> to get proper crash logs in C++ programs”

Search all of HN for moria.us