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 · #12248

D

Dmitrii Aleksandrov

Personal blog · home.expurple.me/posts · on HN as Expurpleprogramming

Dmitrii Aleksandrov's personal blog at home.expurple.me covers programming. Since 2024, 6 different Hacker News readers have linked it 29 times, most often “Non-Profit FOSS Solves the Conflict of Interest”. It is still writing: the last post was on 2026-10-15, and you can follow it by feed.

Visit the blog
29mentions?
6HN people?
2024–2026first – last linked?
Links on Hacker News per year · peak 15 in 2025

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

Why HN links it

HN readers link this blog for posts on Rust error handling, including a rebuttal to 'exceptions suck' arguments, and on trust and dependency choices in the Rust crate ecosystem.

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.

Dmitrii Aleksandrov's personal website

The author on HN?

Expurple · 302 karma · member since 2023

https://home.expurple.me

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

Most-linked posts?

  1. Non-Profit FOSS Solves the Conflict of Interest
    2 people · 3 mentions · first linked 2025-07-16
  2. A Big Standard Library Is Overkill
    2 people · 2 mentions · first linked 2026-07-01

What Hacker News says?

  1. This is a very good description of the modern issues with slop "content" and advertising plaguing everything they touch. (including human-made slop, as the author correctly identifies) But I disagree on LLMs being "worse than useless". Sure, "vibe coding" an entire app from a short prompt will always give you fragile, subtly broken nonsense. *Code is the spec*. In most cases, you can't meaningfully "compress" your r…

    Comment linking /posts/my-take-on-llms-for-coding/

    on “The Rise of Whatever”
  2. Submitted Why Use Structured Errors in Rust Applications? as a story · 77 points

    HN discussion
  3. I've even decided to turn my parent comment into a blog post [1]. It also fixes numerous typos, so qoute the blog version. [1] https://home.expurple.me/posts/go-did-not-get-error-handling...

    Comment linking /posts/go-did-not-get-error-handling-right/

    on “Error handling in Rust”
  4. Submitted Rust Solves the Issues with Exceptions as a story · 23 points

    HN discussion
  5. It's kinda similar, but Rust also solves the problems of checked exceptions: https://home.expurple.me/posts/rust-solves-the-issues-with-e...

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Error handling in Rust”
  6. Submitted Destructure as a Reminder as a story · 4 points

    HN discussion
  7. The boilerplate is more meaningful than it seems: https://home.expurple.me/posts/why-use-structured-errors-in-...

    Comment linking /posts/why-use-structured-errors-in-rust-applications/

    on “Error handling in Rust”
  8. Submitted How to Make an Open-Source Project Suit Your Needs as a story · 3 points

    HN discussion
  9. > Stronly disagree: https://home.expurple.me/posts/rust-solves-the-issues-with-e ... 50% at least of these tiresome "here's why exceptions suck" articles begin by talking about how "try" is un-ergonomic. The people writing these things misunderstand exceptions, probably never having actually used them in a real program. These writers think of exceptions as verbose error codes, and think (or pretend to think) that us…

    Comment linking /posts/rust-solves-the-issues-with-e

    on “Error handling in Rust”
  10. Submitted Non-Profit FOSS Solves the Conflict of Interest as a story · 3 points

    HN discussion
  11. > Overuse of macros is a symptom of missing language capabilities. Agree. > I think non-local flow control (i.e. exceptions) with automated causal chaining (like Python) is a good language design point Stronly disagree: https://home.expurple.me/posts/rust-solves-the-issues-with-e... > There should also have been an enforced "does not panic" annotation like noexcept in C++. noexcept DOES NOT mean that the function ca…

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Error handling in Rust”
  12. Submitted Agents Make Rebase a No-Brainer as a story · 2 points

    HN discussion
  13. Fair enough. That's what they seem to be saying. But then I want to chime in and argue that the repetitive syntax isn't even close to being the main problem with Go: https://home.expurple.me/posts/go-did-not-get-error-handling...

    Comment linking /posts/go-did-not-get-error-handling-right/

    on “A Rust shaped hole”
  14. Submitted Dear Null as a story · 2 points

    HN discussion
  15. Hi, I'm the author of the article. As I've learned when discussing my older article about exceptions, the real problem is that methods can't have an unknown, generic, composable set of checked exceptions! https://home.expurple.me/posts/rust-solves-the-issues-with-e...

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Why Use Structured Errors in Rust Applications?”
  16. Submitted A Big Standard Library Is Overkill as a story · 1 points

    HN discussion
  17. Indeed, that's a very important thing to foster! In fact, I published a post about this just two days ago: https://home.expurple.me/posts/non-profit-foss-solves-the-co...

    Comment linking /posts/non-profit-foss-solves-the-conflict-of-interest/

    on “In the long run, GPL code becomes irrelevant (2015)”
  18. Submitted Flat Error Codes Are Not Enough as a story · 1 points

    HN discussion
  19. My personal opinion on each of those: JSON: there are a ton of different ways to do serialization and deserialization, each with their own tradeoffs, and serde (the most popular) is far from universally agreed upon. The same goes for JSON specifically, there are many different serialization formats with different tradeoffs. regex: Owned by the rust-lang organization already. You get the benefits of trust (if you tru…

    Comment linking /posts/a-big-standard-library-is-overkill/

    on “Malicious Rust Crate Arrayref Runs a Build-Time Payload”
  20. Submitted Designing Error Types in Rust Applications as a story · 1 points

    HN discussion
  21. Sure. Thanks for the conversation. If you're interested in the follow up, I have an RSS feed: https://home.expurple.me/posts/index.xml

    Comment linking /posts/index.xml

    on “Rust Solves the Issues with Exceptions”
  22. Submitted Fearless Website Updates with Hugo as a story · 1 points

    HN discussion
  23. > Sometimes it's better to call throwing functions and get needed data before modifying the private data Haha! Here we go back to the topic of unchecked exceptions and "the lesser evil". With unchecked exceptions, every function is throwing ! Even if it shouldn't throw today according to the docs: 1. The docs could be simply wrong. 2. It isn't a semver breaking change to start throwing in a future version. The compi…

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Rust Solves the Issues with Exceptions”
  24. Submitted Non-Profit FOSS Solves the Conflict of Interest as a story · 1 points

    HN discussion
  25. It's equivalent to having to "catch or specify" [1]. IMO, it's a lesser evil than unchecked exceptions [2]. Explicit and mandatory handling is desirable for most errors. The caller has the responsibility to decide whether it needs to handle the error. If it simply wants to propagate it, there's the `?` operator. If it doesn't care about defining a wrapper type and/or preserving the error details, there's `Box<dyn Er…

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Rust Solves the Issues with Exceptions”
  26. > isn't 'the error' just a case of valid data that shouldn't be thrown as exception at all? That's the thing! Errors are just a case of return data! To me, it just makes more sense to model them like that rather than like checked exceptions. Checked exceptions are simply unnecessary if the language has sum types, Result and some syntax like Rust's `?` for propagating errors easily like exceptions. Checked exceptions…

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Rust Solves the Issues with Exceptions”
  27. > have a single Exception type at the root of the Exception type hierarchy and make your library only throw sub-types of that. Then you may handle specializations of that, but you need to also handle the root type in case an unknown variant comes along. Hm, I haven't considered this solution. It works exactly like a #[non-exhaustive] enum. It's a wrapper type that provides type info about specific known variants (su…

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Rust Solves the Issues with Exceptions”
  28. You should compare exceptions to Result-style tagged unions in a language with exhaustiveness checks, like Rust. Not to return codes in C, lmao. Everyone (except Go devs) knows that those are the worst. Exceptions are better, but still less reliable than Result. https://home.expurple.me/posts/rust-solves-the-issues-with-e...

    Comment linking /posts/rust-solves-the-issues-with-exceptions/

    on “Banned C++ Features in Chromium”
  29. You don't need a test suite. Your website is the test suite. You can build it with an old version of Hugo, build it with a new version of Hugo, and then diff the output folders: https://home.expurple.me/posts/fearless-website-updates-with...

    Comment linking /posts/fearless-website-updates-with-hugo/

    on “Jeffgeerling.com has been Migrated to Hugo”

Search all of HN for home.expurple.me