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

    Mike Izbicki

    izbicki.me · Personal blog · on HN since 2011

    Mike Izbicki, a computer scientist, writes about Haskell, machine learning, probability, and offbeat projects like unfair coins and loaded dice.

    Visit blogHN submissions
    MathAI & Machine LearningLanguages & Compilers
    What HN says

    Commenters call it a site with great posts, including the AK-47 ladle one, and debate whether his unfair coin claims hold up physically.

    Stats for nerds
    35HN people shared it
    42linked in comments
    1.3Kstory points
    Jan 2025last shared
    2012people per year2025

    Top posts on HN

    1. 1
      Using loaded dice to cheat at Settlers of Catan, and p-values to avoid suspicion
      2 people · 415 points · first shared 2017 · 116 comments on HN
    2. 2
      Teaching open-source software in North Korea
      2 people · 172 points · first shared 2021 · 103 comments on HN
    3. 3
      Gaussian distributions are monoids and why machine learning experts should care
      3 people · 144 points · first shared 2012 · 31 comments on HN
    4. 4
      Markov Networks, Monoids, and Futurama (2013)
      2 people · 98 points · first shared 2013 · 8 comments on HN
    5. 5
      Fast Nearest Neighbor Queries in Haskell
      2 people · 82 points · first shared 2015 · 19 comments on HN
    6. 6
      HLearn: A Machine Learning Library for Haskell (2013) [pdf]
      1 person · 80 points · first shared 2017 · 21 comments on HN
    7. 7
      Nuclear weapon statistics using monoids, groups, and vector spaces in Haskell
      2 people · 68 points · first shared 2013 · 23 comments on HN
    8. 8
      How to create a biased coin and prove it with math
      1 person · 66 points · first shared 2011 · 20 comments on HN
    9. 9
      How to create an unfair coin and prove it with math (2011)
      10 people · 52 points · first shared 2015 · 10 comments on HN
    10. 10
      How we serve 150 free meals every week for less than $30
      1 person · 36 points · first shared 2012 · 5 comments on HN

    What HN people wrote when they linked it

    • ndriscollJan 2025

      Taking that one step further, a monoid homomorphism is a function that transforms one monoid into another while preserving that essential structure (homo-morph: same-shape), so that map-then-reduce is the same as reduce-then-map. Being able to swap the two might be a useful optimization if one is more expensive than the other, for example. e.g. `e^(a+b) = e^a*e^b` turns addition into multiplication. Fourier transforms turn convolution (expensive, complicated) into multiplication (cheap, simple), if you know what that is.

      In some other contexts, it's useful to talk about transforming your problem while preserving its essential structure. e.g. in engineering a Fourier transform is a common isomorphism (invertible homomorphism) which lets you transform your problem into an easier one in the frequency domain, solve it, and then pull that solution back into the normal domain. But to understand what's going on with preserving structures, you need to first understand what structures are even present in your problems in the first place, and what it means to preserve them.

      This stuff isn't strictly necessary to understand to get real work done, but without it, you get lots of engineers that feel like the techniques they learn in e.g. a differential equations class are essentially random magic tricks with no scaffold for them to organize the ideas.

      Another useful purpose of these concepts is to have the vocabulary to ask questions: A semigroup is a monoid without a unit. Given a…

    • zygomegaMay 2017

      The author addresses the potential benefits of immutability and laziness in a note on cover trees[0]. Last time I checked, this is still the world's fastest NN algorithm.

      Haskell could shine in numerical computing. I think the key is polymorphism: a vector is a matrix is a tensor is a number, and they can all be multiplied in the same way, once you define what multiply is.

      Poor support is more about the lack of haskell coders doing ML. It's hard to compete without the numbers that other platforms enjoy.

      [0] https://izbicki.me/blog/fast-nearest-neighbor-queries-in-haskell.html

    • paulmdMar 2022

      despite all the theoretical work, it's not physically possible to bias a coin to any notable degree. Unlike a die you can't weight one of the faces, you can bend the coin but it takes about a 90 degree bend in a coin to be able to say that a coin is biased with statistical confidence. Or in other words, if the coin appears reasonably flat, it's fair enough that you won't notice.

      https://izbicki.me/blog/how-to-create-an-unfair-coin-and-prove-it-with-math.html

      I get the idea as shorthand for a binary outcome, but the way you make a coin fair is to flip it.

    • imhOct 2016

      If haskell is that much harder, it should benefit from better tooling that much more. I think there really is a big difference in the priorities. I've never played around with GHC, so I have no idea how hard tooling is, but I know some good old humans are at least able to contribute (https://izbicki.me/blog/error-messages-in-ghc-vs-g%2B%2B.html).

      edit: It looks like the error message changes may have been reverted (https://phabricator.haskell.org/rGHC92c924e07dfef327509555c27a5478d9851ec9fa) :( Sad that they reverted it instead of fixed it.

    • JohnHaugelandAug 2015

      It is very easy to bias a coin. Ask any stage magician. You can bend them, you can taper the outer edge, you can cover one side in a thin layer of something bounce-deadening (like rubber cement), et cetera.

      There's a big difference between "you can't bias a coin using weight" and "you can't bias a coin."

      https://izbicki.me/blog/how-to-create-an-unfair-coin-and-prove-it-with-math.html

    • toblenderDec 2017

      If I'm playing with someone that is making AK47's into utensils, I would think twice about raising my concerns regarding the loaded dice.

      Hmm the dice are behaving funny, but that's fine, everything is just fine...

      https://izbicki.me/blog/turning-an-ak-47-into-a-serving-ladle.html

    Related

    A Neighborhood of Infinityblog.sigfpe.com185 people

    Why is nuclear fusion so hard?

    A Neighborhood of Infinity
    Personal · last shared 2026
    LessWronglesswrong.com2.4k people

    The Best Textbooks on Every Subject

    LessWrong
    Publication · last shared 2026
    Edward Z. Yangblog.ezyang.com165 people

    PyTorch Internals: Ezyang's Blog

    Edward Z. Yang
    Personal · last shared 2026
    Trevor Blackwelltlb.org34 people

    Balancing Scooter Version 2

    Trevor Blackwell
    Personal · last shared 2025
    Jeremy Kunjeremykun.com194 people

    A Programmer's Introduction to Mathematics

    Jeremy Kun
    Personal · last shared 2026
    Michael Burgemichaelburge.us20 people

    Write your next Ethereum contract in Pyramid Scheme

    Michael Burge
    Personal · last shared 2024
    Paul Johnsonpaulspontifications.blogspot.com17 people

    Patent 5,893,120 reduced to mathematical formulae

    Paul Johnson
    Personal · last shared 2016
    Stephen Diehlstephendiehl.com209 people

    What I Wish I Knew When Learning Haskell

    Stephen Diehl
    Personal · last shared 2026