Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #613

T

Tall, Snarky Canadian

Personal blog · snarky.caprogramming

Tall, Snarky Canadian is a personal blog at snarky.ca about programming. Since 2015, 100 different Hacker News readers have linked it 199 times, most often “The history behind the decision to move Python to GitHub”. It is still writing: the last post was on 2026-08-16, and you can follow it by feed.

Visit the blog
199mentions?
8recommend?
100HN people?
2015–2026first – last linked?
Links on Hacker News per year · peak 33 in 2021

Sometimes recommended · 8 of 40 sampled comments recommend it?

Why HN links it

HN readers link Brett Cannon's blog for clear, high-level explanations of Python internals, packaging, and the Python 2/3 and GitHub decisions, often as background reading.

Recommended for · 8 comments
called very informative, nice, informative, great, a good and an awesome overview, and one you might be interested in

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.

Python core developer. Tall, snarky Canadian.

Most-linked posts?

  1. The history behind the decision to move Python to GitHub
    10 people · 13 mentions · first linked 2017-02-09
  2. Proposing a Struct Syntax for Python
    7 people · 7 mentions · first linked 2023-06-02
  3. Why to use ‘python -m pip’
    6 people · 6 mentions · first linked 2019-11-02
  4. The social contract of open source
    6 people · 6 mentions · first linked 2021-04-25
  5. The Python Launcher for Unix
    6 people · 6 mentions · first linked 2021-08-14
  6. Why Python 3 exists
    5 people · 5 mentions · first linked 2017-01-19
  7. What the Heck Is Pyproject.toml?
    4 people · 6 mentions · first linked 2020-04-01
  8. Setting expectations for open source participation (2018)
    4 people · 5 mentions · first linked 2018-09-06
  9. How to pitch Python 3 to management
    4 people · 4 mentions · first linked 2016-03-09
  10. Classifying Python virtual environment workflows
    4 people · 4 mentions · first linked 2023-01-02

What Hacker News says?

  1. the coroutines are run sequentially by an "event loop"/"coroutine runner" that wakes them up and lets them run for a bit when appropriate, kind of like an OS's scheduler (on a single core machine). if the runner is the OS, `await foo(..)` is kind of like a syscall, where the coroutine is suspended and control is handed back to the runner to do whatever is requested. i guess the difference from normal threads (preemp…

    Comment linking /how-the-heck-does-async-await-work-in-python-3-5/

    on “Async-await on stable Rust”
  2. Submitted Why Python 3 Exists as a story · 418 points

    HN discussion
  3. Background info about why this migration and considered alternatives https://snarky.ca/the-history-behind-the-decision-to-move-py...

    Comment linking /the-history-behind-the-decision-to-move-python-to-github/

    on “Python moved to GitHub”
  4. Submitted What is the core of the Python programming language? as a story · 232 points

    HN discussion
  5. https://snarky.ca/the-history-behind-the-decision-to-move-py...

    Comment linking /the-history-behind-the-decision-to-move-python-to-github/

    on “Python moved to GitHub”
  6. Submitted Taking a month off from OSS volunteering as a story · 229 points

    HN discussion
  7. I commented on this in another thread, but I'll repeat it here. The guy in charge of making the decision weighed the fact that it's closed source, and it still won. > But to me, the development process is more important than worrying whether a cloud-based service publishes its source code... This is especially not a worry as GitHub is not a walled garden; its extensive SDK allows for downloading any and all data tha…

    Comment linking /the-history-behind-the-decision-to-move-python-to-github/

    on “Python moved to GitHub”
  8. Submitted Why to use ‘python -m pip’ as a story · 135 points

    HN discussion
  9. More details on the decision: https://snarky.ca/the-history-behind-the-decision-to-move-py...

    Comment linking /the-history-behind-the-decision-to-move-python-to-github/

    on “Python moved to GitHub”
  10. Submitted What the Heck Is Pyproject.toml? as a story · 133 points

    HN discussion
  11. Directly from core devs: https://snarky.ca/why-python-3-exists/

    Comment linking /why-python-3-exists/

    on “Removing Python 2.x support from Django for version 2.0”
  12. Submitted Use `Python -m Pip` as a story · 131 points

    HN discussion
  13. 3.7 makes it easier to use dynamic imports. https://snarky.ca/lazy-importing-in-python-3-7/

    Comment linking /lazy-importing-in-python-3-7/

    on “Python startup time: milliseconds matter”
  14. Submitted Why it took 4 years to get a lock files specification as a story · 123 points

    HN discussion
  15. kamyarg · 2017-01-30Recommends
    I would like to also add Brett Cannon: https://snarky.ca His blog is very informative.

    Comment linking /

    on “Ask HN: Which developers do you closely follow?”
  16. Submitted How I stay happy making open source software as a story · 115 points

    HN discussion
  17. From Brett Cannon http://www.snarky.ca/why-python-3-exists I think maybe the Python 2/3 split was a huge performance piece on how NOT to evolve a language, but we just copied Perl 6. Do you think a stop the world, forced upgrade is something that should be done in the future? Was it avoidable?

    Comment linking /why-python-3-exists

    on “Code that will break in Python 4”
  18. Submitted Where are we in the Python 3 transition? as a story · 110 points

    HN discussion
  19. With PEP-518 being 5 years old it's still relatively new, and most tools have implemented the support for it relatively recently. The key introduction article was written exactly one year ago: https://snarky.ca/what-the-heck-is-pyproject-toml/

    Comment linking /what-the-heck-is-pyproject-toml/

    on “How to make a Python package in 2021”
  20. Submitted Selecting a programming language can be a form of premature optimization as a story · 90 points

    HN discussion
  21. Even snarky.ca has moved, from Silvrback to Ghost! https://snarky.ca/why-i-changed-my-blogging-platform-to-ghos...

    Comment linking /why-i-changed-my-blogging-platform-to-ghost-pro/

    on “Why we transitioned from Medium back to our own blog”
  22. Submitted If I were designing Python's import from scratch as a story · 80 points

    HN discussion
  23. Funnily enough, an hour or so ago I was trying to track down a Python blog I used to enjoy and went on a "This blog has moved merry-go-round... http://sayspy.blogspot.co.uk/2013/07/moving-this-blog-to-med... https://medium.com/coder-who-says-py/i-have-moved-over-to-sv... https://nothingbutsnark.svbtle.com/moving-the-blog-to-silvrb... And eventually to https://snarky.ca

    Comment linking /

    on “Why we transitioned from Medium back to our own blog”
  24. Submitted Don't return named tuples in new APIs as a story · 72 points

    HN discussion
  25. kamyarg · 2016-10-30Recommends
    Python core developer Brett Cannon wrote a nice(and long) post about understanding it a couple of months ago[1], that might help. After reading that I felt like I could use it, but never got the chance to try. [1] http://www.snarky.ca/how-the-heck-does-async-await-work-in-p...

    Comment linking /how-the-heck-does-async-await-work-in-python-3-5

    on “I don't understand Python's Asyncio”
  26. Submitted The history behind the decision to move Python to GitHub as a story · 67 points

    HN discussion
  27. I 100% agree on this. But it's been pretty hilarious on how obstinate tool makers are about changing to Python's new pyproject.toml [1] Python packaging is a bit of a mess already, so when I recently started a new small package I wanted to choose tooling that would not clutter, but a fair amount of tool makers were reluctant to allow code into their repo that would use the unified toml rather than a ton of separate…

    Comment linking /what-the-heck-is-pyproject-toml/

    on “The creeping scourge of tooling config files in project root directories”
  28. Submitted How async/await works in Python 3.5 as a story · 63 points

    HN discussion
  29. > That was me in a parallel thread. Java and JavaScript internally use UTF-16 encoding. I also mentioned C, which treats strings as byte arrays, and C++, which supports C strings as well as introducing a string class that is still just byte arrays. C and C++ doesn't really have Unicode support, and most C and C++ applications don't support unicode. There are libraries that you need to use to get this kind of support…

    Comment linking /why-python-3-exists/

    on “Python 2.7.18, the last release of Python 2”
  30. Submitted Why `print` became a function in Python 3 as a story · 58 points

    HN discussion

Search all of HN for snarky.ca

Linked by the same people?