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

Top all-time · #1890

A

Artem Golubin

Personal blog · rushter.comprogrammingsystems

Artem Golubin's personal blog at rushter.com covers programming and systems. Since 2017, 41 different Hacker News readers have linked it 71 times, most often “Garbage collection in Python: things you need to know – Artem Golubin”. It is still writing: the last post was on 2026-10-16, and you can follow it by feed.

Visit the blog
71mentions?
41HN people?
2017–2026first – last linked?
Links on Hacker News per year · peak 22 in 2026

Home page of Artem Golubin

Most-linked posts?

  1. Garbage collection in Python: things you need to know – Artem Golubin
    5 people · 5 mentions · first linked 2017-10-17
  2. You probably don't need Oh My Zsh
    3 people · 3 mentions · first linked 2026-01-09
  3. Python's binary wheels and supply chain attacks
    3 people · 3 mentions · first linked 2026-10-17
  4. How Python saves memory when storing strings
    3 people · 3 mentions · first linked 2019-01-11
  5. How mass IP port scanner works
    3 people · 3 mentions · first linked 2022-05-03
  6. The rise of malicious repositories on GitHub
    3 people · 3 mentions · first linked 2026-03-15
  7. On Code Isolation in Python
    3 people · 3 mentions · first linked 2020-10-27
  8. Optimization tricks in Python: lists and tuples
    3 people · 3 mentions · first linked 2018-06-14
  9. ClickHouse Handles Strings
    2 people · 2 mentions · first linked 2026-01-16
  10. Writing a simple SOCKS server in Python
    2 people · 2 mentions · first linked 2018-04-24

What Hacker News says?

  1. Author of the article here. I don't think system allocators are clever enough to process and allocate 100-500k of very small objects each minute when Python is performing something very intensive. It's a pretty standard way to speedup allocation for dynamic languages. Game developers use similar techniques as well. I have some stats on Python's allocator: https://rushter.com/blog/python-object-allocation-statistics.…

    Comment linking /blog/python-object-allocation-statistics/

    on “Memory Management in Python”
  2. Submitted Memory Management in Python as a story · 265 points

    HN discussion
  3. This article is a solid start: https://rushter.com/blog/numba-cython-python-optimization/

    Comment linking /blog/numba-cython-python-optimization/

    on “Python consumes a lot of memory – how to reduce the size of objects?”
  4. Submitted How I'm using Helix editor as a story · 216 points

    HN discussion
  5. In my experience selectolax is about 10x faster than lxml, and keeps the familiar CSS selector API: https://rushter.com/blog/python-fast-html-parser/

    Comment linking /blog/python-fast-html-parser/

    on “Mastering Web Scraping in Python: Crawling from Scratch”
  6. Submitted How to track and display profile views on GitHub as a story · 208 points

    HN discussion
  7. For starters, just adding Cython and/or Numba to the code should introduce great improvements. https://rushter.com/blog/numba-cython-python-optimization/

    Comment linking /blog/numba-cython-python-optimization/

    on “Goodbye Python, Hello Go”
  8. Submitted Optimization tricks in Python: lists and tuples as a story · 131 points

    HN discussion
  9. > Then I guess using the id of the tuples to show that they are using the same object doesn't exactly prove the point Without the `del a`, it does, because they both have active references. If they were unique objects, we'd see a unique ID for `b` as long as a reference to `a` is active. > Strings seem to behave like tuples. When I delete a string and create a new one it creates a new object with a new address.... u…

    Comment linking /blog/python-lists-and-tuples/

    on “Optimization tricks in Python: lists and tuples”
  10. Submitted Python's GIL implemented in pure Python as a story · 127 points

    HN discussion
  11. > what sort of "everything" do you have in mind? I’ll answer in two parts. First, in my original claim: > not everything is necessarily backed by the same kind of heap-allocated memory object. the emphasized part is important. Not all PyObjects are equivalent. Most things in Python are indeed PyObjects of some stripe, but they act very, very differently in some common and performance-sensitive situations. The optimi…

    Comment linking /blog/python-lists-and-tuples/

    on “How often does Python allocate?”
  12. Submitted How Numba and Cython speed up Python code as a story · 112 points

    HN discussion
  13. Just as a note, the way that Python stores the items isn't always 4 bytes per char, it depends on the actual string contents. I think that https://rushter.com/blog/python-strings-and-memory/ is a nice reference on that.

    Comment linking /blog/python-strings-and-memory/

    on “There are many ways to fail to read a file in a C program”
  14. Submitted Hash tables in Go and advantage of self-hosted compilers as a story · 62 points

    HN discussion
  15. The design decisions of the Python language (arbitrary length integers for example) lead Python to just be SLOW. It's much slower than Perl. Don't believe me? Look at how numbers are stored: https://rushter.com/blog/python-integer-implementation/ But it doesn't really matter. Computers increase in speed over time. Libraries allow speed sensitive sections to use more sane data types. As you pointed out, the Perl lang…

    Comment linking /blog/python-integer-implementation/

    on “Ask HN:Why is Perl so dwarfed in data science by Python?”
  16. Submitted You probably don't need Oh My Zsh as a story · 13 points

    HN discussion
  17. How it works: * CF worker on a subdomain that handles POST requests. Basically, a JS function that handles incoming requests. * It stores comments in CF KV and sends me a copy to telegram * All I need to do is copy it to Markdown (can be automated, but I manually approve the comments in case of spam) * In Markdown, I'm using frontmatter to store arbitrary JSON data * To avoid automated spam, I have a few tricks: do…

    Comment linking /blog/zsh-shell/

    on “I added a Bluesky comment section to my blog”
  18. Submitted Python's binary wheels and supply chain attacks as a story · 9 points

    HN discussion
  19. If you want to go really deep, I would recommend reading some blogs about Python internals: https://tenthousandmeters.com/tag/cpython/ https://rushter.com/blog/tags/cpython/ https://eli.thegreenplace.net/tag/python-internals https://realpython.com/cpython-source-code-guide/ I'm not aware of any good books about Python's internals.

    Comment linking /blog/tags/cpython/

    on “Ask HN: Which book would you recommend for learning Python in detail?”
  20. Submitted How to turn an ordinary gzip archive into a database as a story · 6 points

    HN discussion
  21. ClickHouse also supports a lot of data sources and has a local mode where you just use a single binary with local-only access. Coincidentally, I wrote an article today on how I use it for similar scenarios. It can fetch from S3, multiple databases at once, and so on. And you get all the benefits of a database when you need to join or postprocess data from multiple sources. https://rushter.com/blog/clickhouse-data-pr…

    Comment linking /blog/clickhouse-data-processing/

    on “databow: a Rust CLI to query any database with an ADBC driver”
  22. Submitted Astroturfing on Reddit and the Dead Internet as a story · 4 points

    HN discussion
  23. > Strings >The rule of thumb for strings is the core string object takes 41 bytes. Each additional character is 1 byte. That's misleading. There are three types of strings in Python (1, 2 and 4 bytes). https://rushter.com/blog/python-strings-and-memory/

    Comment linking /blog/python-strings-and-memory/

    on “Python Numbers Every Programmer Should Know”
  24. Submitted You probably don't need Oh My Zsh as a story · 4 points

    HN discussion
  25. https://rushter.com Most of my posts are about Python's internals and some security stuff

    Comment linking /

    on “Ask HN: Could you share your personal blog here?”
  26. Submitted Tracking malicious code execution in Python as a story · 4 points

    HN discussion
  27. Apparently, Python split the difference and uses reference counting alongside garbage collection: https://rushter.com/blog/python-garbage-collector/ However: > I'd say that Borrow Checker is still manual memory management, except the compiler writes the free() for you. And: > #4: purely declarative languages and such is going to be garbage collected in practice. My point is to catalog the different ways programmers…

    Comment linking /blog/python-garbage-collector/

    on “What do you mean by “Memory Management”?”
  28. Submitted Public SSH keys can leak your private infrastructure as a story · 4 points

    HN discussion
  29. I'm not sure about the article, but the blazingly-fast IP scanner sounds a lot like Masscan: https://github.com/robertdavidgraham/masscan It can scan the entire Internet in 5 minutes and has received a lot of press. https://rushter.com/blog/how-masscan-works/ is one of many articles about how it works.

    Comment linking /blog/how-masscan-works/

    on “Ask HN: Looking for an Old Article”
  30. Submitted Python object allocation statistics as a story · 4 points

    HN discussion

Search all of HN for rushter.com

Linked by the same people?