Top all-time · #7918
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.
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.
Most-linked posts?
- Interactive Interpreter Undo (2016)2 people · 4 mentions · first linked 2018-11-21
- Adding undo to python, irb, ghci, and more2 people · 2 mentions · first linked 2016-09-14
What Hacker News says?
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”Submitted Richer command line interfaces as a story · 160 points
HN discussionA 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”Submitted Two types of command-line interfaces (2016) as a story · 69 points
HN discussionAs 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”Submitted Python as a second language empathy (2018) as a story · 66 points
HN discussionIf 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”Submitted Interactive Interpreter Undo (2016) as a story · 47 points
HN discussionBasically 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”Submitted Reading "Error Detecting and Error Correcting Codes" (2014) as a story · 40 points
HN discussionHere'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)”Submitted Rebinding closures in Python as a story · 11 points
HN discussionOne 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”Submitted BPython Curtsies as a story · 11 points
HN discussionhttp://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”Submitted Waiting for the Next Python Implementation as a story · 3 points
HN discussionI 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”Submitted Waiting for the Next Python Implementation as a story · 2 points
HN discussionSubmitted Two types of command-line interfaces (2016) as a story · 2 points
HN discussionSubmitted Interactive Interpreter Undo (2016) as a story · 2 points
HN discussionSubmitted Richer Command Line Interfaces as a story · 2 points
HN discussionSubmitted Undo for Interactive Interpreters as a story · 2 points
HN discussionSubmitted Adding undo to python, irb, ghci, and more as a story · 2 points
HN discussionSubmitted Two types of command line interfaces as a story · 2 points
HN discussionSubmitted Defining the Word, “Garbage Collection” as a story · 1 points
HN discussionSubmitted Two types of command-line interfaces (2016) as a story · 1 points
HN discussionSubmitted Reading a Paper: Error Detecting and Error Correcting Codes as a story · 1 points
HN discussion