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.
What HN saysCommenters call it a site with great posts, including the AK-47 ladle one, and debate whether his unfair coin claims hold up physically.
35HN people shared it
13linked it in comments
42stories submitted
1.3Kstory points
1 year agolast shared
2011people per year2026
Most-shared posts
- 1How to create an unfair coin and prove it with math (2011)10 people · 52 points · first shared 2015 · 10 comments on HN
- 2Haskell's HLearn 400x faster than Weka at cross-validation due to monoids4 people · 8 points · first shared 2013 · discussion on HN
- 3Gaussian distributions are monoids and why machine learning experts should care3 people · 144 points · first shared 2012 · 31 comments on HN
- 4Turning an AK-47 into a serving ladle3 people · 1 points · first shared 2015 · discussion on HN
- 5Using loaded dice to cheat at Settlers of Catan, and p-values to avoid suspicion2 people · 415 points · first shared 2017 · 116 comments on HN
- 6Teaching open-source software in North Korea2 people · 172 points · first shared 2021 · 103 comments on HN
- 7Markov Networks, Monoids, and Futurama (2013)2 people · 98 points · first shared 2013 · 8 comments on HN
- 8Fast Nearest Neighbor Queries in Haskell2 people · 82 points · first shared 2015 · 19 comments on HN
- 9Nuclear weapon statistics using monoids, groups, and vector spaces in Haskell2 people · 68 points · first shared 2013 · 23 comments on HN
- 10Scribal traditions of “ancient” Hebrew scrolls (2014)2 people · 4 points · first shared 2014 · discussion on HN
- 11Measuring corporate "evilness" by scraping litigation results2 people · 3 points · first shared 2011 · discussion on HN
- 12HLearn: A Machine Learning Library for Haskell (2013) [pdf]1 people · 80 points · first shared 2017 · 21 comments on HN
- 13How to create a biased coin and prove it with math1 people · 66 points · first shared 2011 · 20 comments on HN
- 14How we serve 150 free meals every week for less than $301 people · 36 points · first shared 2012 · 5 comments on HN
- 15Comparing AVL Trees in C++ and Haskell1 people · 14 points · first shared 2014 · 1 comments on HN
What HN people wrote when they linked it
ximeng · 2015-07-23
Some great posts on that site. https://izbicki.me/blog/turning-an-ak-47-into-a-serving-ladle.html is good from the non Haskell perspective.
jackpirate · 2012-12-16
Another shameless plug: http://izbicki.me
I have both technical AI type posts and also a bit of religion.
cbsmith · 2024-11-20
You're going to have a lot of fans amongst con men. ;-)
Unfair coins very much do exist: https://izbicki.me/blog/how-to-create-an-unfair-coin-and-prove-it-with…
paulmd · 2022-03-16
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…
I get the idea as shorthand for a binary outcome, but the way you make a coin fair is to flip it.
toblender · 2017-12-15
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
sillysaurus3 · 2017-11-18
Your AK-47 to serving spoon project is interesting too: https://izbicki.me/blog/turning-an-ak-47-into-a-serving-ladle.html
zygomega · 2017-05-25
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
imh · 2016-10-19
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/rGHC92c924e07dfef327509555c27a5478d985… :( Sad that they reverted it instead of fixed it.
paulgerhardt · 2016-05-18
How to create an unfair coin and prove it with math: https://izbicki.me/blog/how-to-create-an-unfair-coin-and-prove-it-with…
texthompson · 2015-09-20
Coins can be biased, they just need to be bent so far out of shape that it's obvious. Here's a fun example:
https://izbicki.me/blog/how-to-create-an-unfair-coin-and-prove-it-with…
JohnHaugeland · 2015-08-16
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…
afc · 2012-11-25
Would somebody explain this step in his explanation?
http://izbicki.me/blog/wp-content/plugins/optimized-latex/image.php?im…
How does he go from (a - b)^2 to a^2 - b^2? What am I missing?
ndriscoll · 2025-01-08
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…