Top all-time · #2156
Conrad Irwin
Personal blog · cirw.in/blogprogramming
Conrad Irwin is a personal blog at cirw.in about programming. Since 2012, 35 different Hacker News readers have linked it 53 times, most often “Bracketed paste mode (2013)”. It has a working feed you can follow.
Too few sampled comments (20) to say how often HN recommends it.?
Why HN links it
HN readers link this blog mainly for its bracketed paste mode article, which explains how terminals stop pasted text from running commands immediately. Other posts cover Ruby, the CONL config format and Emacs.
Summarised by Claude from a sample of 20 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Bracketed paste mode (2013)13 people · 20 mentions · first linked 2016-05-24
- CONL: "Markdown" for your config files3 people · 3 mentions · first linked 2025-04-26
- Node's Unicode Dragon (2013)2 people · 2 mentions · first linked 2015-11-19
- Visualizing memory leaks in Ruby2 people · 2 mentions · first linked 2013-03-04
- Tools for Go Modules2 people · 2 mentions · first linked 2024-12-16
- MVC is dead, it's time to MOVE on (2012)2 people · 2 mentions · first linked 2020-02-18
- Dynamic scope for Ruby2 people · 2 mentions · first linked 2012-12-03
What Hacker News says?
This. I'd argue that the issue here is more with terminals and shells than web browsers: paste shouldn't immediately start executing something. The technology to not do so has been around for years - it's called bracketed paste: https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Pastejacking”Submitted MVC is dead, it's time to MOVE on as a story · 487 points
HN discussion> plus a newline to make it run immediately I already mentioned this in another comment, but everyone should enable bracket paste mode in their shell to defend against this. https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Don't touch my clipboard”Submitted MVC is dead, it's time to MOVE on (2012) as a story · 267 points
HN discussion> copy-pastes including newlines (i.e. which will execute a command instantly) You should enable bracketed paste mode in your shell. IMO it’s much better UX than a confirmation dialog. https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Don't touch my clipboard”Submitted MVC is dead, it's time to MOVE on (2012) as a story · 182 points
HN discussionDoes vim 8 still not have bracketed paste by default? https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “A Good Vimrc (2014)”Submitted Node's Unicode Dragon as a story · 94 points
HN discussionQuadruple-click smart selection should be doable with urxt's perl extension feature. Selecting within a tmux pane: you got me on that one. I'm not aware of a terminal that does that, but again, it should be possible to do with urxvt's perl extension feature. Regarding the "safer command line paste", Linux can do the same with bracketed paste mode.[1] For splitting panes, I just use tmux, vim, or emacs. [1] - https:/…
Comment linking /blog/bracketed-paste
on “St – A simple terminal implementation for X”Submitted CONL: "Markdown" for your config files as a story · 70 points
HN discussionOP might want to consider bracketed paste mode: https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Do not use redirection characters in your shell prompt”Submitted Show HN: pry-rescue — workflow-optimized debugging for ruby as a story · 69 points
HN discussionSome terminal emulators / shells use some heuristics, but the most reliable way is to use a combination of a terminal emulator and shell that support bracketed paste mode. This article ( https://cirw.in/blog/bracketed-paste ) lists some terminal emulators that supports bracketed paste, and a zsh plugin that makes zsh handle bracketed paste in a safe manner. As an alternative to zsh, Elvish ( https://github.com/elves…
Comment linking /blog/bracketed-paste
on “Ask HN: Ubuntu Desktop Default Apps”Submitted Visualizing memory leaks in Ruby as a story · 45 points
HN discussionTurn on bracketed paste mode everywhere. Doesn’t help with homograph attacks (e.g. an IDN homograph attack tricking you into downloading something from the wrong domain), but at least you’re totally safe until you press enter to execute. https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Identity Beyond Usernames”Submitted Ampex - concise readable Ruby blocks as a story · 45 points
HN discussionThere is safe-paste plugin for oh-my-zsh and you can enable the bracketed paste mode in Bash too by adding set enable-bracketed-paste on to your ~/.inputrc. https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Look before you paste from a website to terminal”Submitted Bracketed paste mode (2013) as a story · 41 points
HN discussionzsh implements something called bracketed paste mode.[1] [1] - https://cirw.in/blog/bracketed-paste
Comment linking /blog/bracketed-paste
on “Look before you paste from a website to terminal”Submitted CONL: "Markdown" for your config files as a story · 25 points
HN discussionThe issue is mostly with git itself, e.g. take a look at git cat-file commit HEAD to see something like: tree <tree-hash> parent <parent-hash> author <author-name> <author-email> <timestamp> committer <committer-name> <committer-email> <timestamp> gpgsig -----BEGIN PGP SIGNATURE----- <ascii-armored RFC9580 signature> -----END PGP SIGNATURE----- <commit message> You can view an example of the structure of this ascii-…
Comment linking /gpg-decoder/
on “Emacs arbitrary code execution and how to avoid it”Submitted How to program like an explorer (with Pry). as a story · 25 points
HN discussionUsing this architecture with htmx is the future https://cirw.in/blog/time-to-move-on
Comment linking /blog/time-to-move-on
on “Ask HN: Anybody Using Htmx on the Job?”Submitted A safer git checkout as a story · 13 points
HN discussionI am gonna leave this here. https://cirw.in/blog/bracketed-paste It is not that "I think" it is objectively more efficient and easier to read, yes this has been studied before. I agree that going too narrow increases scrolling and it's annoying. (Widescreens are a stupid trend)
Comment linking /blog/bracketed-paste
on “Fixing Unix/Linux/Posix Filenames (2009)”Submitted Be proud of your git commit history as a story · 6 points
HN discussion> Aside: Is there a similar tool for macOS? I don't know the state of Windows terminal emulators, but it seems strange to describe the problem without mentioning the term for the solution, which is 'bracketed paste'. This article discusses how bracketed-paste mode is signalled using ANSI escape sequences, which I guess can work in most macOS terminal emulators (although it's up to the shell to respond): https://cirw…
Comment linking /blog/bracketed-paste
on “Yet another tool for making copy/paste/run experience better (Windows)”Submitted Bracketed Paste Mode as a story · 5 points
HN discussionCould go the other way and only have strings a la CONL[0]. Which feels reasonable once I got over my initial shock. Your program is already going to enforce data types, why force that into the config language? [0] https://cirw.in/blog/conl
Comment linking /blog/conl
on “Things I don't like in configuration languages”Submitted Dotgpg: Easy-to-use storage for your production secrets (2014) as a story · 5 points
HN discussion