Top all-time · #654
James Bennett
Personal blog · b-list.orgprogrammingweb
James Bennett's personal blog at b-list.org covers programming and web. Since 2007, 96 different Hacker News readers have linked it 146 times, most often “Let's Talk about LLMs”. It is still writing: the last post was on 2026-08-10, and you can follow it by feed.
Rarely recommended · 5 of 39 sampled comments recommend it?
Why HN links it
HN readers link James Bennett's Django and Python posts, especially the no-service post on Django architecture and a primer on usernames and passwords.
- Recommended for · 5 comments
- Service-layer post recommended; usernames 'very good primer'; magic 'interesting'; request post 'great starting point'.
Summarised by Claude from a sample of 39 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
I'm James, a software developer living in California.
Most-linked posts?
- Let's Talk about LLMs6 people · 6 mentions · first linked 2026-04-09
- Boring Python: dependency management (2022)5 people · 5 mentions · first linked 2022-05-13
- Against Service Layers in Django5 people · 5 mentions · first linked 2020-03-16
- Let's talk about WSGI4 people · 5 mentions · first linked 2009-08-10
- Variations on the Death of Python 24 people · 4 mentions · first linked 2020-05-05
- Truths programmers should know about case (2018)3 people · 4 mentions · first linked 2018-11-26
- On Python packaging3 people · 3 mentions · first linked 2008-12-14
- Django, Accelerated3 people · 3 mentions · first linked 2007-09-05
- Let’s talk about usernames3 people · 3 mentions · first linked 2018-02-11
- How Django processes a request2 people · 3 mentions · first linked 2011-04-23
What Hacker News says?
Mozilla is not funded by Google anymore, and hasn't been for several years (the Google contract ended back when I was still working at Mozilla). If you're interested, I wrote up some notes/thoughts from my experience in one of the sessions about EME and whether to implement it: http://www.b-list.org/weblog/2013/oct/16/eme/
Comment linking /weblog/2013/oct/16/eme/
on “W3C abandons consensus, standardizes DRM, EFF resigns”Submitted Let’s talk about usernames as a story · 900 points
HN discussionI was working for Mozilla when EME first came up, and sat in one of the big sessions at that year's Mozilla Summit about it. Wrote up some thoughts here: http://www.b-list.org/weblog/2013/oct/16/eme/
Comment linking /weblog/2013/oct/16/eme/
on “Save Firefox”Submitted Reddit takes a new direction as a story · 392 points
HN discussionJames Bennet is of the same opinion as you re service layers https://www.b-list.org/weblog/2020/mar/16/no-service/ https://www.b-list.org/weblog/2020/mar/23/still-no-service/
Comment linking /weblog/2020/mar/23/still-no-service/
on “Django for Startup Founders: A better software architecture for SaaS startups”Submitted Litestar is worth a look as a story · 343 points
HN discussionThose are interesting pointers; appreciate it! My own experience over the past three years has been similar. I tried using Pipenv, and then Poetry, for internal projects at my company; in both cases the tool seemed overly complicated for the problem, slow, and I had a hard time getting co-workers on board. About a year and a half ago, I saw [Boring Python: dependency management]( https://www.b-list.org/weblog/2022/m…
Comment linking /weblog/2022/may/13/boring-python-dependencies/
on “Uv: Python packaging in Rust”Submitted Django core no more as a story · 170 points
HN discussionI wrote about this a while back: http://www.b-list.org/weblog/2013/jan/29/persistence/ Since then I've started noticing services rolling out the ability to specify someone to take over your account after you die, and I suspect the legal framework around wills and estates is robust enough that you could leave instructions (and have them enforced) to delete things.
Comment linking /weblog/2013/jan/29/persistence/
on “Apple Is Said to Be Working on an iPhone Even It Can’t Hack”Submitted How Python does Unicode as a story · 165 points
HN discussionI recommend this post when thinking about fat models/service layers https://www.b-list.org/weblog/2020/mar/16/no-service/
Comment linking /weblog/2020/mar/16/no-service/
on “Django 4.0”Submitted Boring Python: dependency management (2022) as a story · 114 points
HN discussionThis seems reasonable if you are considering only English speakers sharing files with other English speakers. https://www.b-list.org/weblog/2018/nov/26/case/
Comment linking /weblog/2018/nov/26/case/
on “Reasons to prefer Linux over Windows (2014)”Submitted Destroy all hiring processes as a story · 112 points
HN discussionThis is very good primer on the topic, including unicode normalization, punycode and others, with ultra short python examples and links to more info. https://www.b-list.org/weblog/2018/feb/11/usernames/
Comment linking /weblog/2018/feb/11/usernames/
on “Best practices for user account, authorization and password management”- di · 2022-07-11
Submitted Yes, I have opinions on your open source contributions as a story · 104 points
HN discussion I don’t think GP was offering a comparison so much as a related item to check out. Why would you not recommend code that checks the hashed password against a local DB? See also the “pwned-passwords-django” process here: https://www.b-list.org/weblog/2018/mar/06/two-new-projects
Comment linking /weblog/2018/mar/06/two-new-projects
on “The Legitimisation of Have I Been Pwned”Submitted On "magic", once again (from James Bennet, Django dev) as a story · 83 points
HN discussionI think SQLAlchemy vs Django ORM was a 2007 blogging topic: https://www.b-list.org/weblog/2007/sep/04/orm-wars/
Comment linking /weblog/2007/sep/04/orm-wars/
on “Rewrite It in Rails”Submitted Truths programmers should know about case (2018) as a story · 80 points
HN discussionI think James Bennett's post on magic is interesting: http://www.b-list.org/weblog/2009/jul/23/magic/ In particular, there is a comment[0] that I think is particularly worth reading: There are two different definitions of magic in play here. 1. The use of advanced language features in a manner that might be confusing to a novice programmer. 2. The use of ANY language feature to automate some process that a programme…
Comment linking /weblog/2009/jul/23/magic/
on “How two Pythonistas accidentally fell in love with Rails”Submitted Let's talk about Python 3.0 as a story · 64 points
HN discussionAnother post on the same subject written a few years ago: http://www.b-list.org/weblog/2008/dec/14/packaging/
Comment linking /weblog/2008/dec/14/packaging/
on “Python Packaging: Hate, hate, hate everywhere”Submitted On Python packaging as a story · 50 points
HN discussionThat would require an array of 32 bit integers (basically UTF-32). It wastes a lot of space for most characters and doesn't help that much with indexing since user perceived characters can still be composed of many codepoints. Different languages take different approaches. Python 3.3+, I believe, looks at the string and chooses ASCII/UCS-2/UCS-4 based on the character that takes the highest amount of bytes [1]. Elix…
Comment linking /weblog/2017/sep/05/how-python-does-unicode/
on “Validating UTF-8 strings using as little as 0.7 cycles per byte”Submitted On branching as a story · 49 points
HN discussionSo I guess I pretty much vote no on this one thanks for asking Yeah, this is precisely the kind of stuff people said would cause JSON to "lose" to XML -- how could you ever build anything without schemas and types and bunches of metadata to ensure you were using it correctly? And this debate is not new; it's been around a long time, and I wrote about it at length literally ten years ago: http://www.b-list.org/weblog…
Comment linking /weblog/2006/dec/21/i-cant-believe-its-not-xml/
on “Fixing JSON”Submitted Let's talk about WSGI as a story · 48 points
HN discussionThat’s a hard spot to be in. I can hear your pain on how you want you idea to be launched. Honestly, learning django is no brainer. Django guys have done an amazing job building the framework. On a side note, why is your prototype taking that long? In today’s world, you can build complex apps faster than you can think off. Here is some links that can be handy for your django learning. All the best! This is a excelle…
Comment linking /weblog/2007/sep/04/django-accelerated/
on “Ask YC: Startup crisis. Out of money and tech co-founder has bailed.”Submitted Slicehost is smarter than I am as a story · 44 points
HN discussion