HNHacker News
TopNewBestAskShowJobs

gnachman

3,214 karma · joined January 23, 2011

[ my public key: https://keybase.io/iterm2; my proof: https://keybase.io/iterm2/sigs/uoqjLdotgkHihVXK6xwzRw2TCtvtV4bCFj9z-hOTEH8 ]
submissionscomments
gnachman··on Yak Shaving – Swift Edition
Terminals are definitely Unicode-aware. Grapheme clusters are very important to get right because the terminal emulator must be in sync with the app running inside it about where the cursor is located. Basically, this means you have to deal with combining marks properly, including Emoji stuff.

Very few terminal emulators go as far as attempting BiDi support. Egmont Koblinger has done some amazing work speccing this out and implementing it in VTE. More here: https://terminal-wg.pages.freedesktop.org/bidi/

Some day I'd like to support this in iTerm2, but it's a breathtakingly large amount of work.

gnachman··on Introduction to AOLserver, Part 1 (1999)
You had to write C code for anything compute-intensive. TCL was precompiled to VM and was as fast as TCL can be. aol.com ran it for a while. Eventually other properties like digital cities used it with a bunch more optimizations that I wasn't directly involved in.
gnachman··on Tesla Model 3 Vulnerability – Disable Autopilot Notifications, Speedometer, etc.
I feel completely safe from this because the web browser literally doesn't work at all.
gnachman··on Introduction to AOLserver, Part 1 (1999)
I worked for Doug as an intern at AOL and eventually led AOLServer development for a few years. It was a cool project and it’s neat to see it here !
gnachman··on Clear Your Terminal in Style
What would you think of a command that clears the screen but first pushes the contents onto a stack so you could return to it later? The thought crosses my mind once in a while but I wonder if I’m the only one who wants it.
gnachman··on Little known features of iTerm2
AFAIK there is no way to tell vim about such a keystroke. If neovim adds something I’ll support it.
gnachman··on Little known features of iTerm2
Hey! Glad to see you’re still around. Hope you’re doing well :)
gnachman··on Little known features of iTerm2
It’s a simple matter of funding me for the next 7 years :)
gnachman··on Little known features of iTerm2
Hi, author here. What a great way to wake up, an HN love fest :) Check our the Tip of the Day feature, which is meant to help you find stuff like this.
gnachman··on Three Years of Metal (2019)
I use it for a fairly simple task and I often run in to compiler bugs. Const buffers over 64k get truncated on NVidia gpus, using half4 broke the optimizer on some iMac gpus, and sometimes I have to split up functions until the optimizer on some gpu I don’t own stops doing crazy things. I am terrified of writing MSL because of this.
gnachman··on “Google Drive” would like to receive keystrokes from any application
Carbon hotkeys are how you register for a single keystroke. Event taps give you everything. This sounds more like the latter.
gnachman··on Ask HN: What are some interesting projects to reuse your old devices?
Hah! I did the same with an iPad. It loops me singing “the wash is done” instead of an email.
gnachman··on The Decade of Swift
One of my projects is pure Swift and I haven’t felt any Objective-C-based pain. Mostly this is because it doesn’t have a UI. When you touch UIKit then the legacy stuff rears its head and you have to deal with selectors and NSObject and such. I think SwiftUI is supposed to be the answer to that. We ought to know whether it works out in a decade or so :). But as long as you’re looking for a general-purpose programming language, Swift is a good choice. The type system is excellent and makes a lot of things easier. I like ARC better than GC, which is the biggest selling point in my opinion.
gnachman··on Eternal Terminal
This is the best way to use iTerm2's tmux integration mode on a remote host. I wrote some guidance here:

https://gitlab.com/gnachman/iterm2/wikis/tmux-Integration-Be...

gnachman··on Tcl: Everything Is a String
I was tech lead for it for a couple years. Glad someone remembers it :)
gnachman··on Apple Developer Documentation Is Missing
The comments in header files are often the only (or only useful) documentation. So don’t give up before looking there. Sometimes they wait a few years to write docs. For example, NSWindowAccessoryViewController went undocumented for three or four years. Which was fine because it was too buggy for me to use anyway. The docs are enough to get you started but it’s only brutal experience that teaches you how to use things. In practice you spend a lot of time working around bugs and design flaws. Those will never be documented, of course.
gnachman··on Monorepo or Multirepo? Role-Based Repositories
When I started at Google the tooling was not very good, and monorepo was pretty painful. They used perforce, and it simply couldn't keep up. Commits could take minutes. Code review was also unbearably slow. Blaze didn't exist yet; just before I started they had tools that generated million+ line makefiles that everyone hated. So yeah, you need good tooling, but even Google didn't have it for the first ~10 years of its existence.
gnachman··on Critical Security Issue Identified in iTerm2
A good deal of money :)
gnachman··on Critical Security Issue Identified in iTerm2
This is a quirk of Sparkle when it has already downloaded but not yet installed the older update.
gnachman··on Critical Security Issue Identified in iTerm2
If you have non-native fullscreen windows it's Apple's fault. They don't like this window style so they don't support restoring it. Could also be that you have "System Prefs > General > Close windows when quitting an app" turned on, or that you have iTerm2's "Prefs>General>Startup>Window restoration policy" set to something other than "Use system window restoration policy"
gnachman··on Critical Security Issue Identified in iTerm2
Attackers might discover the change before the rest of the world. This way you are all on even footing.
gnachman··on Critical Security Issue Identified in iTerm2
Not sure what you mean by NSUTF8StringEncoding. The important fact about encoding is that -encodedString:prefix: limits the output that iTerm2 produces to a very small set of characters from which it's hard to build an exploit.
gnachman··on Critical Security Issue Identified in iTerm2
Probably a memory leak. I’d love to get a heapshot to debug it. See instructions at https://iterm2.com/bugs
gnachman··on Critical Security Issue Identified in iTerm2
Be paranoid about what you send. It’s really clear that any time you output attacker controlled values it can be exploited. I went through several iterations of adding escaping and every one had vulnerabilities. It wasn’t good until the only escaping that remained was very conservative (hex encoded).
gnachman··on Critical Security Issue Identified in iTerm2
Yep, good idea. There is an advanced pref to disable potentially risky control sequences. I plan to invest in giving users the option to lock things down more so they can trade off convenience vs security as they see fit
gnachman··on Critical Security Issue Identified in iTerm2
Sorry, I can’t provide updates for 10.9 :(

3.0.15 is vulnerable.

gnachman··on Critical Security Issue Identified in iTerm2
That’s about right. Window doesn’t need to be in the foreground.
gnachman··on Critical Security Issue Identified in iTerm2
No. The nightly will be fixed tomorrow. I had to wait til this morning for a coordinated disclosure.
gnachman··on Critical Security Issue Identified in iTerm2
They came to me. I’m really thankful that they have chosen to help my project. Security is hard and a fresh set of eyes will spot issues that I’ve become blind to over the years.
gnachman··on Critical Security Issue Identified in iTerm2
Yes
← PreviousPage 2 of 8Next →