Top all-time · #223
Ned Batchelder
Personal blog · nedbatchelder.com/blogprogrammingmath
Ned Batchelder's personal blog at nedbatchelder.com covers programming and math. Since 2007, 212 different Hacker News readers have linked it 375 times, most often “Pragmatic Unicode”. It is still writing: the last post was on 2026-10-28, and you can follow it by feed.
Sometimes recommended · 12 of 40 sampled comments recommend it?
Why HN links it
HN readers link Ned Batchelder's blog for explanations of Python and Unicode, such as the Unicode sandwich, names versus values, and exception layering, and for his talks.
- Recommended for · 12 comments
- Called good, awesome, compelling, interesting or enjoyable; the Unicode and exception-layering posts made things click.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Ned Batchelder's personal web site, blog, writings, software, math, parenting, autism
Most-linked posts?
- Pragmatic Unicode10 people · 10 mentions · first linked 2012-03-16
- Stopping spambots with hashes and honeypots6 people · 7 mentions · first linked 2008-02-14
- Pragmatic Unicode (2012)6 people · 6 mentions · first linked 2018-11-04
- Python name and values (mental model)5 people · 8 mentions · first linked 2018-12-18
- Pickle’s Nine Flaws4 people · 5 mentions · first linked 2020-06-22
- Python's Eval Is Dangerous4 people · 5 mentions · first linked 2017-04-23
- Cog: Use pieces of Python code as generators in your source files4 people · 4 mentions · first linked 2019-04-03
- /text/hexwords.html4 people · 4 mentions · first linked 2018-06-24
- Print this file, your printer will jam (2008)4 people · 4 mentions · first linked 2008-11-25
- Two problems3 people · 3 mentions · first linked 2012-04-26
What Hacker News says?
> Have you given any kind of training or lessons in programming (honest question)? Everything can break down! I have actually, so I understand what you mean, that all sorts of confusions are possible no matter what. I agree with you on that part; I just disagree that the “boxes” metaphor is something that is necessary or “needed later” (what I understood from the wording “This method spares the reader one step, but…
Comment linking /text/names1.html
on “Eloquent JavaScript 4th edition (2024)”Submitted Bug #915: Please help as a story · 591 points
HN discussionIn what way does it break down? Maybe if one is thinking of boxes, going by "a change to the value of a "? The book says: > When a binding points at a value, that does not mean it is tied to that value forever. The = operator can be used at any time on existing bindings to disconnect them from their current value and have them point to a new one In this case: let a = 22; The binding a points to the value 22. let b =…
Comment linking /text/names1.html
on “Eloquent JavaScript 4th edition (2024)”Submitted Print this file, your printer will jam (2008) as a story · 492 points
HN discussionMy point is that it's not a simplification, it's precisely how the language works: bindings between values and names (JavaScript has no separate notion of memory pointer; everything is a "pointer"). (Similarly for Python: https://nedbatchelder.com/text/names1.html ) Describing variables in this way gives readers the correct understanding, and the analogy of tentacles is no harder than that of boxes. Such things are…
Comment linking /text/names1.html
on “Eloquent JavaScript 4th edition (2024)”Submitted Bug #915: Solved as a story · 345 points
HN discussionBecause that's not how variables work in JavaScript/Python etc (though it may be fine for say C++ in the case of value types and copy constructors). For example: I'm typing on phone so for a quick example: let a = []; let b = a; a.push(1); and consider the value of b now (or the fact that we could write "const" above because the binding is constant, even though we mutate the value). Or see the equivalent for Python…
Comment linking /text/names1.html
on “Eloquent JavaScript 4th edition (2024)”Submitted Goodbye Freenode as a story · 279 points
HN discussion> ... Batchelder's piece on the "Unicode Sandwich," ... Is this the piece you mean? https://nedbatchelder.com/text/unipain.html
Comment linking /text/unipain.html
on “UTF-8 is a brilliant design”Submitted Print this file, your printer will jam (2008) as a story · 248 points
HN discussionhttps://nedbatchelder.com/text/unipain.html When this came out, it made all the difference in understanding things.
Comment linking /text/unipain.html
on “Ask HN: Do you recall any book or course that made a topic finally click?”Submitted What’s in Which Python as a story · 214 points
HN discussionThis article and its associated HN comment section continue in the long tradition of Big O Notation explainers [0] and getting into a comment kerfuffle over the finer, technical points of such notation versus its practical usage [1]. The wheel turns... [0] https://nedbatchelder.com/text/bigo.html [1] https://nedbatchelder.com/blog/201711/toxic_experts.html
Comment linking /blog/201711/toxic_experts.html
on “A visual introduction to big O notation”Submitted Testing is better than data structures and algorithms as a story · 188 points
HN discussion> you dont get too far into python -- especially if you are reading (or copypastaing) other People's code -- before you see if __name__ == "__main__" First off, if you are teaching someone, you are showing that person the code, and not allowing copy-and-paste. Second, no, that comes up much less often than you'd expect. Third, it's the same as `if value == 'example':`. Underscores are not jargon. Fourth, it's trivia…
Comment linking /text/names1.html
on “Python’s new t-strings”Submitted Why a mock doesn’t work as a story · 173 points
HN discussionHere's Ned's blog post describing the solution: https://nedbatchelder.com/blog/202001/bug_915_solved.html
Comment linking /blog/202001/bug_915_solved.html
on “Bug #915: Please help”Submitted On Python security amidst recent Rails/YAML vulnerabilities as a story · 161 points
HN discussionOT: After the lamentation of the "Github Monoculture", why was development of coveragepy moved from bitbucket to github? https://bitbucket.org/ned/coveragepy/src/default/ original project https://nedbatchelder.com/blog/201405/github_monoculture.htm... original post https://news.ycombinator.com/item?id=7690897 HN comments
Comment linking /blog/201405/github_monoculture.html
on “Bug #915: Please help”Submitted GitHub monoculture as a story · 156 points
HN discussionNed Batchelder. Blog - http://nedbatchelder.com/ Stack Overflow answers - http://stackoverflow.com/users/14343/ned-batchelder Coverage.py - https://github.com/nedbat/coveragepy Twitter - https://twitter.com/nedbat Ned created coverage.py and is one of the most famous Python devs. He explains Python concepts in a very lucid, easy-to-understand way. Going through his stack overflow answers, his tallks in PyCon are wor…
Comment linking /
on “Ask HN: Which developers do you closely follow?”Submitted How to Be Helpful Online as a story · 154 points
HN discussionhttps://nedbatchelder.com/text/bigo/bigo.html is also a good intro read.
Comment linking /text/bigo/bigo.html
on “Big O Notation – Explained as easily as possible”Submitted I fixed a bug in Python as a story · 131 points
HN discussionhttps://twitpic.com/4a52sh A survey on this feature was done at Pycon 2011. Maybe things have changed since then, but at the time, most people didn't understand what for/else did. I think it's a bad construct because, as many have mentioned, a lot of people make the commonsense interpretation that the else block will only execute if the for block did not. Note, the link above come via Jeremy Avnet in the comments of…
Comment linking /blog/201110/forelse.html
on “Python’s For - Else”Submitted Cog: Use pieces of Python code as generators in your source files as a story · 121 points
HN discussionThis is a pretty good explanation of unicode in Python: http://nedbatchelder.com/text/unipain.html
Comment linking /text/unipain.html
on “Why Python 3 Exists”Submitted Python iteration as a story · 113 points
HN discussionI don't remember when in my Python career I learned about names vs. values, but it finally clicked for me that I'm predominately just binding a value to a name with the = assignment. Now everything I read has become very easy to reason about and understand. Ned Batchelder is a good resource for learning many things about python, and this talk he gave at Pycon some years ago is no exception: https://nedbatchelder.com…
Comment linking /text/names1.html
on “Reasons Python Sucks”Submitted Computing primes with CSS as a story · 111 points
HN discussion