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

M

Mickey Donaghy

Personal blog · m50d.github.io · on HN as lmmprogramming

Mickey Donaghy is a personal blog at m50d.github.io about programming. Since 2013, 6 different Hacker News readers have linked it 42 times. The last post was in 2022, but the archive is still widely read.

Visit the blog
42mentions?
6HN people?
2013–2026first – last linked?
Links on Hacker News per year · peak 10 in 2015

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

Why HN links it

The only comment is about the site failing to render Markdown over HTTP, not about the writing. The thread title, "When Rust Makes Sense, or The State of Typed Languages", suggests the posts cover Rust and typed languages.

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

The author on HN?

lmm · 47,752 karma · member since 2011

I'm known as m50d some places, including github; my blog (such as it is) is at https://m50d.github.io/

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

What Hacker News says?

  1. I tried to write a bit about my use cases at http://m50d.github.io/2014/05/16/signs-your-java-program.htm... and http://m50d.github.io/2015/04/21/effects.html (apologies for formatting issues). Basically I find the really useful problem that advanced type systems solve is keeping track of cross-cutting concerns (e.g. database transactions, audit logging - the kind of thing you'd be tempted to use AOP for) in a consi…

    Comment linking /2015/04/21/effects.html

    on “NPM and Left-Pad: Have We Forgotten How to Program?”
  2. Submitted People who disagree aren't trying to make things complex as a story · 237 points

    HN discussion
  3. I agree with a lot of his position, but HTML is so tiresome to write by hand (all those angle brackets) and the tools to manage it already exist. My blog ( http://m50d.github.io ) is all about text like the OP, but I still use strapdown so that I can write markdown rather than html.

    Comment linking /

    on “This is a web page”
  4. Submitted My Latte is Worth It - No Fun Allowed as a story · 233 points

    HN discussion
  5. > You sound like programming in another level higher than mine. I applaud that. I'll revisit Spray/Scala _when_ I found a definitive use-case for this. For now, Java seems to fit the bill for pretty much 99% my use-cases and fit my taste as well (less low-level code stuff because it is built-in the framework that is well-architected/well-designed so that I can focus on business logic code). Sometimes you don't need…

    Comment linking /2014/05/16/signs-your-java-program.html

    on “Java for Everything”
  6. Submitted When Rust Makes Sense, or The State of Typed Languages as a story · 75 points

    HN discussion
  7. That's a very broad question. Rust does the things that I would say are table stakes for a decent programming language these days: decent type system (similar safety to Java) with type inference (similar conciseness to Python), a sensible approach to errors (errors are values as in Go, but since Rust is a non-joke language it doesn't need to special-case errors at the language level, they're just another type of val…

    Comment linking /2015/09/28/when-rust-makes-sense.html

    on “Announcing Rust 1.8”
  8. Submitted Why Scala is the best language available today as a story · 64 points

    HN discussion
  9. Agree 100% on just showing the real code. Don't tell me what a monad is, tell me a problem I can solve with it. (I've made my own attempt at http://m50d.github.io/2013/01/16/generic-contexts.html )

    Comment linking /2013/01/16/generic-contexts.html

    on “What I Wish I Knew When Learning Haskell”
  10. Submitted Why Do Decent People Accept Bitcoins? as a story · 39 points

    HN discussion
  11. I've never got the hate for Maven - all the design decisions people dislike seem to be the same things that people praise Cargo et al for. If anything it suffers for being ahead of its time. Use the Scalor plugin, https://github.com/random-maven/scalor-maven-plugin , and then Scala.js just works. I actually hooked it up to Netlify by treating Maven as a static site generator: http://m50d.github.io/2018/11/29/deployi…

    Comment linking /2018/11/29/deploying-scalajs-with-netlify

    on “The Hard Part of Learning a Language”
  12. Submitted Medium is Winning as a story · 18 points

    HN discussion
  13. An abstraction is only useful if you can use it. What sold me on applicatives was being able to write "traverse", and similar operations, that would be m * n if you had to write them for each (traversable, applicative) pair but can be m + n instead ( http://m50d.github.io/2013/01/16/generic-contexts.html ). That's a very concrete code saving. Having three examples of things that form categories is great - but can we…

    Comment linking /2013/01/16/generic-contexts.html

    on “The category design pattern”
  14. Submitted When Rust Makes Sense, or the State of Typed Languages (2015) as a story · 5 points

    HN discussion
  15. When I found out about monads it was after I'd already implemented the same abstraction. It actually comes up quite a lot (async calls, error handling, audit logging, database access). http://m50d.github.io/2013/01/16/generic-contexts.html . Just like when I was told about "the visitor pattern", my reaction was mostly "that? I've been doing that for years. So that's what it's called". Still, it's worth knowing the n…

    Comment linking /2013/01/16/generic-contexts.html

    on “Everyday hassles in Go”
  16. Submitted Infrastructure as code would be easy if we cared – No Fun Allowed as a story · 4 points

    HN discussion
  17. A nomad is a wanderer. A monad is just a particular abstract interface that turns out to come up a lot and so lead to very reusable code. It's hard to talk about monads in general because the concept is very abstract, I find the best thing is to understand a couple of specific examples first (Writer and Future are good simple cases, and then Nondeterminism or Continuation gives you some idea of the powerful things y…

    Comment linking /2013/01/16/generic-contexts

    on “Attitudes That Lead to Maintainable Code”
  18. Submitted Becoming More Functional as a story · 3 points

    HN discussion
  19. Monad is an interface which a lot of useful "context" types conform to - I find that if a function returns any kind of "secondary value" or "effect" (think the sort of things aspect-oriented programming is supposed to be for - permissions, logging, database transaction boundaries) this can usually be represented by a type which will form a monad. http://blog.sigfpe.com/2007/04/homeland-security-threat-leve... is a s…

    Comment linking /2013/01/16/generic-contexts

    on “Are Monads a Waste of Time?”
  20. Submitted My Five Years of Scala as a story · 3 points

    HN discussion
  21. I can't explain the "a monad is just a monoid in the category of endofunctors" thing simply; I barely understand it myself, and I'm actually sceptical that it's even true at all. I certainly don't think it's a useful way of learning anything. If you're asking about monads in general, I think trying to understand the generic concept before understanding a bunch of concrete examples is the problem. https://m50d.github…

    Comment linking /2013/01/16/generic-contexts

    on “Monads are monoids in the category of endofunctors”
  22. Submitted Object Oriented Essentialism as a story · 3 points

    HN discussion
  23. I actually agree with this much. Explaining monads before explaining a lot of concrete examples of monads is putting the cart before the horse, and is where a lot of these tutorials go wrong ( https://m50d.github.io/2013/01/16/generic-contexts is my own effort at taking the opposite approach). But calling something a functor when it isn't is extremely unhelpful; the whole point of using a special-purpose term like f…

    Comment linking /2013/01/16/generic-contexts

    on “Monads are monoids in the category of endofunctors”
  24. Submitted Signs your Java program wants to be written in Scala as a story · 3 points

    HN discussion
  25. I found that when I tried to use up goer five speak (e.g. http://m50d.github.io/2013/01/18/girl-with-not-real-power.ht... ) I used many more words to express the same number of concepts. So I'd be interested to see how much more or less compressible it actually makes things.

    Comment linking /2013/01/18/girl-with-not-real-power.html

    on “Shakespeare.txt.jpg: A JPEG compression experiment”
  26. Submitted My Latte is Worth It (2012) as a story · 2 points

    HN discussion
  27. It's not about I/O. It's about being able to handle cross-cutting concerns like logging, or error handling, or dependency injection, or async, with ordinary refactor-safe functions rather than global variables. http://m50d.github.io/2013/01/16/generic-contexts.html was my effort.

    Comment linking /2013/01/16/generic-contexts.html

    on “Functors, Applicatives, and Monads in Pictures (2013)”
  28. Submitted Effects – No Fun Allowed as a story · 2 points

    HN discussion
  29. > Sure, you could write that algorithm as three nested list comprehensions, but does that accomplish anything other than showing off? Ask different programmers this and you'll get different answers. One group will say that the list comprehensions reduces ceremony and makes the essential business logic clear, and writing out a loop longhand would serve no purpose other than showing off your knowledge of implementatio…

    Comment linking /2018/12/11/people-who-disagree

    on “Write Dumb Code (2018)”
  30. Submitted An Arrow that Points Back to Where we Started as a story · 1 points

    HN discussion

Search all of HN for m50d.github.io