Top all-time · #852
Charles Leifer
Personal blog · charlesleifer.com/blog · on HN as cleiferprogrammingdata
Charles Leifer's personal blog at charlesleifer.com covers programming and data. Since 2009, 77 different Hacker News readers have linked it 179 times, most often “Your idea sucks”. It is still writing: the last post was on 2026-06-29, and you can follow it by feed.
Rarely recommended · 3 of 40 sampled comments recommend it?
Why HN links it
HN readers link Charles Leifer's blog for practical SQLite and Python material, such as compiling SQLite, transaction behaviour and embedded database benchmarks, plus a monospace font list.
- Recommended for · 3 comments
- Called 'pretty informative' on transactions and 'really great' on building SQLite; one urges reading his SQLite links.
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.
Most-linked posts?
- Your idea sucks5 people · 8 mentions · first linked 2017-05-05
- AsyncIO4 people · 4 mentions · first linked 2023-06-10
- Going Fast with SQLite and Python3 people · 4 mentions · first linked 2017-11-08
- Describing projects as “For Humans” must stop3 people · 3 mentions · first linked 2016-03-13
- Building a Markov-chain IRC bot with Python and Redis (2012)3 people · 3 mentions · first linked 2020-12-09
- What happened to Python?3 people · 3 mentions · first linked 2017-02-17
- New features planned for Python 4.03 people · 3 mentions · first linked 2020-07-02
- Five reasons you should use SQLite in 20163 people · 3 mentions · first linked 2016-01-07
- Tokens and Dreams2 people · 4 mentions · first linked 2026-05-05
- Using python and k-means to find dominant colors in images2 people · 3 mentions · first linked 2012-10-24
What Hacker News says?
New features planned for python 4.0: http://charlesleifer.com/blog/new-features-planned-for-pytho...
Comment linking /blog/new-features-planned-for-python-4-0/
on “Sunsetting Python 2”Submitted Nginx: a caching, thumbnailing, reverse proxying image server as a story · 209 points
HN discussionI put together a list of my own, including screenshots with a small code snippet. Might be helpful as this list does include some that are not listed on programmingfonts.org: http://charlesleifer.com/blog/monospace-font-favorites/
Comment linking /blog/monospace-font-favorites/
on “Programming Fonts – Test Drive”Submitted SQLite: Small, Fast, Reliable – Choose any three as a story · 208 points
HN discussionI compiled a large list of monospace coding fonts a couple years ago. Includes screenshots and links: http://charlesleifer.com/blog/monospace-font-favorites/ Hope someone else finds it useful.
Comment linking /blog/monospace-font-favorites/
on “Lesser Known Coding Fonts”Submitted Using python and k-means to find dominant colors in images as a story · 189 points
HN discussionNot the poster, but I did some benchmarks with embedded databases and Python if you're interested in completely useless, unscientific data: http://charlesleifer.com/blog/completely-un-scientific-bench...
Comment linking /blog/completely-un-scientific-benchmarks-of-some-embedded-databases-with-python/
on “We’re pretty happy with SQLite and not urgently interested in a fancier DBMS”Submitted Kyoto Tycoon in 2019 as a story · 111 points
HN discussionI have written several "Use Sqlite!" posts that have made the rounds on hackernews... reading this watered down post, which is devoid of any new, surprising or usable info, it strikes me that repping SQLite has achieved meme status. If you want tangible info you can actually use, read sqlites documentation. There's a wealth of information there. Here are some of posts, for the Python crowd: http://charlesleifer.com/…
Comment linking /blog/my-list-of-python-and-sqlite-resources/
on “We’re pretty happy with SQLite and not urgently interested in a fancier DBMS”Submitted Multi-threaded SQLite without the OperationalErrors (2017) as a story · 76 points
HN discussionThe source tree for sqlite3 now contains an extension named lsm1 that contains both the standalone lsm kv database as well as a virtual table extension which allows you to use it directly from sqlite3. Some info on python integration can be found here: http://charlesleifer.com/blog/using-sqlite4-s-lsm-storage-en... In peewee 3.0a I've also added built-in support for using the lsm1 virtual table if you're interested.
Comment linking /blog/using-sqlite4-s-lsm-storage-engine-as-a-stand-alone-nosql-database-with-python/
on “Work on SQLite4 has concluded”Submitted Peewee, a lightweight python ORM as a story · 75 points
HN discussion> Some SQLite wrappers (notably, Python's) mess with the start and rollbacks of transactions and make this appear buggy. @coleifer (author of peewee) has a pretty informative blog post exploring — in part — transactional semantics, which might be of value to people who want to know more about this. https://charlesleifer.com/blog/going-fast-with-sqlite-and-py...
Comment linking /blog/going-fast-with-sqlite-and-python/
on “How to Corrupt a SQLite Database File”Submitted Aspirational Clownmaxxing and Joey's cadillac todo list as a story · 51 points
HN discussionThis might benefit from SQLite's Virtual tables: https://sqlite.org/vtab.html With Virtual Tables you can expose any data source as a SQLite table -- then you can use every SQL feature that sqlite offers. You can just tell sqlite how to iterate through your data with a few functions, with an option to push down filtering information for efficiency. You can also create your own aggregates, functions etc. Here's an ar…
Comment linking /blog/extending-sqlite-with-python/
on “A Git query language”Submitted What happened to Python? as a story · 51 points
HN discussionCharles provided really great documentation on how to build this here: http://charlesleifer.com/blog/compiling-sqlite-for-use-with-... Or if you're feeling lazy (like I was), there's a fork of his library at https://github.com/karlb/pysqlite3 which compiles the 3.25.0 amalgamation by default. This worked for me: $ python3 -mvirtualenv venv $ source venv/bin/activate $ pip install git+git://github.com/karlb/pysqlite3…
Comment linking /blog/compiling-sqlite-for-use-with-python-applications/
on “SQLite Release 3.25.0 adds support for window functions”Submitted "j" for switching directories - hacking "cd" with python as a story · 46 points
HN discussionFor Python folks interested in using these features, you might be interested in this post [0] which describes how to compile the latest SQLite and the python sqlite3 driver. I've got a fork of the standard lib sqlite3 driver that includes support for user-defined window functions in Python as well which may interest you. [0] http://charlesleifer.com/blog/compiling-sqlite-for-use-with-... [1] https://github.com/colei…
Comment linking /blog/compiling-sqlite-for-use-with-python-applications/
on “SQLite Release 3.25.0 adds support for window functions”Submitted Shortcomings in the Django ORM and a look at Peewee, a lightweight alternative as a story · 37 points
HN discussionI experienced a twist on this. A guy who had very different aesthetic taste wanted me to merge some patches. He got real entitled about it, eventually I banned him. THEN he did the "appeal to Twitter" and made malicious edits to the project page on wikipedia. He made a huge stink and wasted hours of both of our time. It was unreal! I wish I was joking. I wrote about it, discussing my motivations for open source: htt…
Comment linking /blog/your-idea-sucks/
on “If it's not fun anymore, you get nothing from maintaining a popular package”Submitted My beef with gittip as a story · 18 points
HN discussion> some of the more complex SQL syntax that Postgres supports are missing, but more importantly, it can only ever do one write or read to the database predictably I don't know...it's recently added upsert compatible with Postgres syntax as well as support for window functions. Additionally, sqlite has a sophisticated json extension. > it can only ever do one write or read to the database predictably WAL mode addresse…
Comment linking /blog/going-fast-with-sqlite-and-python/
on “At 22 years old, Postgres might just be the most advanced database yet”Submitted Using Redis Pub/Sub and IRC for Error Logging with Python as a story · 14 points
HN discussionI had a similar thing happen. The CTO of a company was using a library I wrote, and he ran into things he wanted to change. When I disagreed, I was accused of sabotaging my own library, by refusing to fix it's obviously broken aspects. Guy went on a smear campaign on hn, Reddit, Twitter, Wikipedia. Literally made me miserable for weeks. I wrote about it, more here if you're curious: http://charlesleifer.com/blog/you…
Comment linking /blog/your-idea-sucks/
on “Matz: We are mere mortals”Submitted New features planned for Python 4.0 as a story · 13 points
HN discussionMy limitation with it is that it means I have to recompile sqlite for my use case. That's sometimes easy and obvious to do, but it's a lot more of a pain if it's, say, the sqlite embedded in my language interpreter and I just signed myself up for compiling a custom Python to support my project. That said, I just googled it and it turns out I'm being a bit dramatic— it's actually not super hard to dynamically link Py…
Comment linking /blog/compiling-sqlite-for-use-with-python-applications/
on “Show HN: Stanchion – Column-oriented tables in SQLite”Submitted Looking at registration patterns in Django as a story · 13 points
HN discussionIf you are into alternative storage engines for SQLite, there is also an LSM (Log-Structured Merge-tree) extension in the main repository that is not announced nor documented but seems to work. It’s based on the SQLite 4 project. https://github.com/sqlite/sqlite/tree/master/ext/lsm1 https://www.charlesleifer.com/blog/lsm-key-value-storage-in-...
Comment linking /blog/lsm-key-value-storage-in-sqlite3/
on “Show HN: Stanchion – Column-oriented tables in SQLite”Submitted More fun with Canvas - a JavaScript Starfield in as a story · 12 points
HN discussion