HN user

gnachman

3,213 karma

[ my public key: https://keybase.io/iterm2; my proof: https://keybase.io/iterm2/sigs/uoqjLdotgkHihVXK6xwzRw2TCtvtV4bCFj9z-hOTEH8 ]

Posts3
Comments217
View on HN

I moved across the country to work for Palm on a secret project which was revealed to be the Foleo only after I started. I spent a year trying to make the web browser with a totally broken engine they had licensed from Access. Having blown their budget of 100k on the engine they were determined to stick with it. I was amused when it was announced and then canceled after I quit.

iTerm2 3.5.0 2 years ago

Hi! I’m the author. I wrote my thoughts on the AI furor here (in two unlinked parts because I’m apparently bad at computers):

https://techhub.social/@gnachman/112481098349565431

https://techhub.social/@gnachman/112481098800427110

I’m happy to discuss the tradeoffs.

There’s a change coming in the next dot release so managed environments can disable all generative ai features. I’ll keep an eye out for what others do in this regard to support enterprise users.

iTerm2 has code to detect when the current host changes and then disables paste bracketing. An ssh session suddenly ending is a common cause of it being left on with annoying consequences.

After sending a bracketed paste, iTerm2 watches for half a second for `00~` to be echoed back and then offers to turn paste bracketing off for you.

Every modal reporting feature has similar problems: mouse reporting and focus reporting, in particular.

All but one of my monitors are or were sold by Apple. So they were tested and are usb c and need no dongles. The other is a low dpi monitor with no special features besides hdr.

The three apple approved monitors generally work well, requiring a reboot sometimes only if I unplug them.

The other one I constantly have to fix the settings for.

It sucks. I wish apple employees had multiple displays.

I have five monitors. When it works, it's great. The other 5% of the time it's a giant pain in the butt. I don't know why this part of macOS is so incredibly buggy. It often forgets the arrangement, the HDR setting, and the refresh rate.

I wrote a little program to detect when it breaks and set it back, but they don't have APIs for refresh rate and HDR so it's only a partial fix.

I've half a mind to take a job there, fix it, and quit.

There is still a ton of diversity (underline color, curly underlines, synchronization, and image support for example), but it's nearly impossible to figure out what features are available in a given terminal. I just finished adding vt400 support to iTerm2 this week but I doubt any of it will be used because it's not widely available enough for people to bother.

If anyone from Github is here, can you please allow attachments of unrecognized file types? You won't let users attach their binary .plist prefs files and this makes Github issues unusable for my project.

macOS Big Sur 6 years ago

I released iTerm2 version 3.4.0 this morning with Big Sur support. Please update because 3.3 has various issues with it.

I sure wish it were wrong. If macOS’s text rendering primitives could be used asynchronously or concurrently the situation would be significantly better. I’ve spent probably hundreds of hours trying to make it fast but I’m convinced it’s only possible if you work at Apple (as they have done quite well with Terminal by using lots of hacks that are unavailable to me)

I just discovered this yesterday when a user filed a bug against iTerm2. It caused a problem for reflow because it looks like one long line. Took a minute to makes sense of what was going on, and then I thought it was a neat trick but it wouldn’t have occurred to me to post on hn about it. Glad others appreciate it!

GitLab 13.0 6 years ago

Since Gitlab is listening: users sometimes attach files to issues on my project and then regret it. There doesn’t seem to be any way to permanently delete such an upload. Sometimes these files have passwords or their employers’ secrets. I asked for help in the forums but got no response. Help?

Anything added after iOS 6 is the cheeky answer, but it’s not totally wrong either. Auto layout is incredibly hard to debug; it’s great when it works right, though, fwiw. The audio APIs are a garbage fire (equally on both platforms, at least!) Mapkit has a lot of sharp edges if you try to do anything more than Apple envisioned, which is true of a lot of iOS and macOS APIs. View controller transitions are a mess, but they may have fixed the bugs by now—I’ve stayed away since being traumatized by them five years back. The Metal shader compiler is an absolute shit show of bugs on the Mac, but is better on iOS. Core Bluetooth has caused me pain (just doesn’t work sometimes). Stringly types objective c-isms like KVO. In app purchases are a mess (I’m told, haven’t used it myself). CoreData might look like a good idea but you will live to regret it if it’s an important part of your app. UITableView is really powerful but also gets complex fast, with legacy baggage showing up when you try to get fancy (like auto layout and dynamic row height). The security API is hard to use correctly, also on both platforms.

Mostly though Xcode is the worst piece of software I’ve ever used, besides Wind River’s IDE and Windows ME.

I write both: iOS during the day and macOS at night. iOS is significantly less buggy and has less legacy baggage than macOS. iOS has some features that macOS doesn't, so there is more to learn. I spend a lot less time working around platform brokenness on iOS than on macOS. macOS lets you do a lot more than iOS in ways that are unmaintainable (e.g., private APIs), which helps you create accidental complexity for yourself.

Both platforms have a long tail of little-known behaviors (such as accessibility features) that make it hard to create well behaved applications. But iOS mostly just works (once you know which features are toxic and avoid them), while macOS's brokenness has completely metastasized.

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.