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

Top all-time · #7918

B

ballingt

Personal blog · ballingt.com · on HN as thomasballingerprogramming

ballingt is a personal blog at ballingt.com about programming. Since 2014, 9 different Hacker News readers have linked it 27 times, most often “Interactive Interpreter Undo (2016)”. The last post was in 2024, but the archive is still widely read.

Visit the blog
27mentions?
9HN people?
2014–2025first – last linked?
Links on Hacker News per year · peak 11 in 2020

Too few sampled comments (2) to say how often HN recommends it.?

Why HN links it

HN readers link ballingt.com for a programming language family poster showing how modern languages descend from Algol, and for a 2014 post comparing Python and JavaScript quirks. Comments only cite these posts.

Summarised by Claude from a sample of 2 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

The author on HN?

thomasballinger · 190 karma · member since 2011

ballingt.com, me@ballingt.com, @ballingt

From their public HN profile, which links to this site.

Most-linked posts?

  1. Interactive Interpreter Undo (2016)
    2 people · 4 mentions · first linked 2018-11-21
  2. Adding undo to python, irb, ghci, and more
    2 people · 2 mentions · first linked 2016-09-14

What Hacker News says?

  1. The Jupyter models is hard for this, but if you only allow in-order execution (like a repl, say IPython whose kernel is used in Jupyter) you could do something like this. We tried plugging in the rlundo tool https://github.com/thomasballinger/rlundo to IPython, it works ok, see http://ballingt.com/interactive-interpreter-undo/ for the long story. I wanted something like this for live programming and felt like I need…

    Comment linking /interactive-interpreter-undo/

    on “D compilation is too slow and I am forking the compiler”
  2. Submitted Richer command line interfaces as a story · 160 points

    HN discussion
  3. A nice surprise to see this here! I did a web port of this game with Emscripten which much help from janisozaur: https://play-endless-web.com There's an outdated post about what was hard about the port at http://ballingt.com/porting-endless-sky/ – with Emscripten as good as it is, it really wasn't bad!

    Comment linking /porting-endless-sky/

    on “Endless Sky: an open source space trading and combat game”
  4. Submitted Two types of command-line interfaces (2016) as a story · 69 points

    HN discussion
  5. As a fan of Algol 68, I'm pretty excited for this. For people who aren't familiar with the language, pretty much all modern languages are descended from Algol 60 or Algol 68. C descends from Algol 60, so pretty much every popular modern language derives from Algol in some way [1]. [1] https://ballingt.com/assets/prog_lang_poster.png

    Comment linking /assets/prog_lang_poster.png

    on “GCC SC approves inclusion of Algol 68 Front End”
  6. Submitted Python as a second language empathy (2018) as a story · 66 points

    HN discussion
  7. If anyone wants to walk through these ideas more slowly I write about them in http://ballingt.com/interactive-interpreter-undo and implement this in https://github.com/thomasballinger/rlundo but as you say, eventually decided I had to implement an interpreter for which serialization of state was more efficient and all external resources had amenable interfaces http://dalsegno.ballingt.com/

    Comment linking /interactive-interpreter-undo

    on “How to Grow Software Architecture out of Jupyter Notebooks”
  8. Submitted Interactive Interpreter Undo (2016) as a story · 47 points

    HN discussion
  9. Basically it's great, and matches up well with bpython: I wrote up some comparisons at http://ballingt.com/2014/09/30/prompt-toolkit.html (bpython-curtsies author here)

    Comment linking /2014/09/30/prompt-toolkit.html

    on “Python REPL with syntax highlighting, autocomplete and multiline editing”
  10. Submitted Reading "Error Detecting and Error Correcting Codes" (2014) as a story · 40 points

    HN discussion
  11. Here's an idea that I like (so much that I wrote an implementation): use LD_PRELOAD to swap out readline with version that forks on each input. Kill the forked child process and you have undo! https://github.com/thomasballinger/rlundo post: http://ballingt.com/interactive-interpreter-undo/#hacking-fo...

    Comment linking /interactive-interpreter-undo/

    on “Using LD_PRELOAD to cheat, inject features and investigate programs (2013)”
  12. Submitted Rebinding closures in Python as a story · 11 points

    HN discussion
  13. One optimization that's not hard to do for terminal output is a line cache: if a row is the same, don't render it. The rendering logic is probably already operating on lines, so this doesn't require the fancy diffing; but diffing a flat grid seems easier anyway vs the dom tree. For context, (I suspect parent already understands this) this is analogous to the vdom optimizations (not shouldComponentUpdate optimization…

    Comment linking /bpython-curtsies/

    on “Ink: React for interactive command-line apps”
  14. Submitted BPython Curtsies as a story · 11 points

    HN discussion
  15. http://ballingt.com/2014/03/17/python-javascript.html makes an extended comparison.

    Comment linking /2014/03/17/python-javascript.html

    on “A collection of not so obvious Python stuff”
  16. Submitted Waiting for the Next Python Implementation as a story · 3 points

    HN discussion
  17. I feel similarly about autocomplete (particularly the "best way to learn Python" bit) and suggest Python users looking for autocompletion similar to zsh at the command line pip install bpython (which I work on). See https://github.com/bpython/bpython for source, http://ballingt.com/bpython-curtsies for some (old) gifs. More generally, build your own tools like this with the excellent Python Prompt Toolkit! ( https:/…

    Comment linking /bpython-curtsies

    on “Autocomplete as an interface”
  18. Submitted Waiting for the Next Python Implementation as a story · 2 points

    HN discussion
  19. Submitted Two types of command-line interfaces (2016) as a story · 2 points

    HN discussion
  20. Submitted Interactive Interpreter Undo (2016) as a story · 2 points

    HN discussion
  21. Submitted Richer Command Line Interfaces as a story · 2 points

    HN discussion
  22. Submitted Undo for Interactive Interpreters as a story · 2 points

    HN discussion
  23. Submitted Adding undo to python, irb, ghci, and more as a story · 2 points

    HN discussion
  24. Submitted Two types of command line interfaces as a story · 2 points

    HN discussion
  25. Submitted Defining the Word, “Garbage Collection” as a story · 1 points

    HN discussion
  26. Submitted Two types of command-line interfaces (2016) as a story · 1 points

    HN discussion
  27. Submitted Reading a Paper: Error Detecting and Error Correcting Codes as a story · 1 points

    HN discussion

Search all of HN for ballingt.com