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

    Armin Ronacher

    lucumr.pocoo.org · Personal blog · on HN since 2007

    Armin Ronacher, creator of Flask, writes about Python, packaging, Unicode, async, and more recently AI agents and tooling.

    Visit blogRSSHN submissions
    ProgrammingAI & Machine LearningWeb Development
    What HN says

    Commenters cite it for its clean design, his posts on model tool-calling, and his durable workflows project for Postgres.

    Stats for nerds
    417HN people shared it
    405linked in comments
    18Kstory points
    Aug 2026last shared
    2013people per year2026

    Top posts on HN

    1. 1
      996
      1 person · 1.1K points · first shared 2025 · 532 comments on HN
    2. 2
      You can't Rust that
      1 person · 462 points · first shared 2018 · 117 comments on HN
    3. 3
      Rust for Python Programmers
      7 people · 447 points · first shared 2015 · 143 comments on HN
    4. 4
      Agent design is still hard
      2 people · 429 points · first shared 2025 · 258 comments on HN
    5. 5
      Python's Hidden Regular Expression Gems
      3 people · 405 points · first shared 2015 · 47 comments on HN
    6. 6
      I don't understand Python's Asyncio
      8 people · 381 points · first shared 2016 · 207 comments on HN
    7. 7
      A Fresh Look at Rust
      2 people · 379 points · first shared 2014 · 154 comments on HN
    8. 8
      I'm not feeling the async pressure
      6 people · 373 points · first shared 2020 · 100 comments on HN
    9. 9
      Tech Debt: My Rust Library Is Now a CDO
      2 people · 363 points · first shared 2024 · 240 comments on HN
    10. 10
      Be careful about what you dislike
      4 people · 352 points · first shared 2016 · 169 comments on HN

    What HN people wrote when they linked it

    • sircluelessDec 2016

      > the text model of Python 2 is a giant mess and makes it very hard to correctly deal with non-ascii text for any non-trivial software

      There are counter-arguments to this. Armin Ronacher, author of (among other software) the excellent Flask web framework, thinks that Python 2's system of codecs and byte streams is better in practice [1][2]. Reasons include: You can do byte -> byte conversions with codecs that are no longer possible. You can better handle text encodings besides UTF-8 (and here he describes several embarassing failures of Python 3 to handle OS paths correctly). You can write single APIs that handle byte streams like gzip and text encodings like UTF-8.

      [1]: http://lucumr.pocoo.org/2011/12/7/thoughts-on-python3/
      [2]: http://lucumr.pocoo.org/2014/5/12/everything-about-unicode/

    • qwertyuiop924Aug 2016

      The man, the myth, the legend Steve Yegge's blog(s) are worth reading if you haven't yet:

      https://sites.google.com/site/steveyegge2/blog-rants

      http://steve-yegge.blogspot.com/

      Armin Ronacher's blog is also excellent:

      http://lucumr.pocoo.org

      For the Schemer, or the compiler hacker, Andy Wingo's blog is fantastic

      http://wingolog.org

      For insights into debugging, kernels, and debugging kernels, Bredan Gregg's blog is fantastic.

      http://www.brendangregg.com/blog/index.html

      Finally, I wish to list a non-blog: and unblog, or perhaps the remnants of a blog once passed. This is an archive of John Carmack's .plan between 1996, and about 2005.

      https://github.com/ESWAT/john-carmack-plan-archive

      It is still a fascinating read.

    • deweyJun 2026

      > There are lots of purpose-built bullet proof queuing systems that are simple to setup and administer (or just use SQS).

      Because in 99% of cases you don't need a purpose built solution (Even if engineers often think that) at the scale that most people operate in. Nothing is easier to setup and administer than the database you already use.

      We are using Postgres as a worker queue in production for many years, with millions of items being processed at any time and it's been perfectly fine. If you have hundreds like in your example...might as well use sqlite.

      There's great projects like https://github.com/NikolayS/pgque and https://lucumr.pocoo.org/2026/4/4/absurd-in-production/ that give you even some tooling around that.

    • resc1440Nov 2015

      Mitsuhiko has written extensively about Py3 unicode problems, e.g. http://lucumr.pocoo.org/2014/5/12/everything-about-unicode/

      I think a lot of it boils down to, sometimes you really really don't want to care about unicode. Linux filenames are one thorny issue - Linux thinks of them as strings of bytes, and a tool is broken if it can't also deal with them that way. Py3 makes it very difficult to do that correctly. There are also issues with stdin/out being opened as unicode vs byte streams.

      For web development, the "unicode sandwich" (http://nedbatchelder.com/text/unipain.html) works great in my experience. However, I can see his point that for some kinds of tasks, Py3 is unambiguously a downgrade.

    • llamavoreJul 2025

      Great article, the previous related one goes into a lot more detail on some of pythons different concurrency implementation details: https://lucumr.pocoo.org/2024/11/18/threads-beat-async-await/

      Something which would be immensely helpful for the community is to create a test suite of pathological problems with existing python concurrency patterns and libraries.

      At that point it should just be a matter of time before the right implementation and PEP(s) can be iterated on that solves said problems while maximizing for devex.

      For anyone interested in learning more about different concurrency models I can highly recommend Paul Butcher's: Seven Concurrency Models in Seven Weeks.

    • siddhantAug 2018

      I've been writing web apps using Tornado since 2013 and that has been an excellent experience.

      But I'm not sure if I have the same opinion of asyncio. To be honest, I don't even know if I understand it completely. There are so many concepts and IMHO they're not really intuitive, so it's difficult to put pieces together and find out how those individual concepts relate to each other or work with each other.

      On the surface it looks simple, but it's really like going down a rabbit hole. The more I try to understand it, the more I agree with Armin Ronacher's article on asyncio [1].

      [1]: http://lucumr.pocoo.org/2016/10/30/i-dont-understand-asyncio/

    Related

    Hynek Schlawackhynek.me83 people

    I’m a productive programmer with a memory of a fruit fly

    Hynek Schlawack
    Personal · last shared 2026
    S.Lottslott-softwarearchitect.blogspot.com15 people

    The COBOL Problem

    S.Lott
    Personal · last shared 2021
    Ned Batcheldernedbatchelder.com208 people

    Print this file, your printer will jam (2008)

    Ned Batchelder
    Personal · last shared 2026
    Brett Cannonsayspy.blogspot.com31 people

    A core Python committer's (very shallow) thoughts on Dart

    Brett Cannon
    Personal · last shared 2022
    Miguel Grinbergblog.miguelgrinberg.com94 people

    Python 3.14 is here. How fast is it?

    Miguel Grinberg
    Personal · last shared 2026
    fasterthanli.mefasterthanli.me236 people

    A half-hour to learn Rust

    fasterthanli.me
    Personal · last shared 2026
    Victor Stinnervstinner.github.io15 people

    The History and rationale of the Python 3 Unicode model for the operating system

    Victor Stinner
    Personal · last shared 2025
    Manish Goregaokarmanishearth.github.io97 people

    Picking Apart the Crashing iOS String

    Manish Goregaokar
    Personal · last shared 2026