Not using Xcode is the greatest improvement in quality of life I have known aside from recovering from a debilitating back injury. So good.
HN user
gnachman
[ my public key: https://keybase.io/iterm2; my proof: https://keybase.io/iterm2/sigs/uoqjLdotgkHihVXK6xwzRw2TCtvtV4bCFj9z-hOTEH8 ]
So you’re saying there’s a chance that Oracle will die? Sign me up.
iTerm2 author here. This could be used as a link in an exploit chain but by itself the claim in the title is massively overblown. I’m on a family vacation but I’ll release a fix when I get back.
Here’s mine
https://apps.apple.com/us/app/snortfolio/id6755617457
30kloc client and server combined. I built this as an experiment in building an app without reading any of the code. Even ops is done by claude code. It has some minor bugs but I’ve been using it for months and it gets the job done. It would not have existed at all if I had to write it by hand.
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.
That wouldn't very well because Date.now() isn't monotonic.
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.
I worked on this as an intern in 1997 and led it for a while. AMA
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.
If you got an offer from Facebook they would beat it. I did this in 2012 and instantly had 10x the RSUs. Some Googlers thought it was immoral to do this. It was at this time that comp for engineers radically changed.
WhatsApp’s encrypted backups use OPAQUE. Source: https://scontent.whatsapp.net/v/t39.8562-34/241394876_546674...
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.
I released iTerm2 version 3.4.0 this morning with Big Sur support. Please update because 3.3 has various issues with it.
Yes! I compose an email to a big group of people I respect. That forces me to be extra careful.
I was recently involved in an unwanted meaning issue where my app icon looked like "SB", which I learned is offensive to some Chinese speakers. Too bad it doesn't come up in wordsafety.com. Not that I'd have thought to look…
It's amusing that they have a link to buy a square cm for $80 just above the graph showing that it will cost €0,1 in 2020.
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)
There is an incomplete test suite for terminal emulators. It was my paternity leave project many years ago. Contributions are welcome. https://gitlab.freedesktop.org/terminal-wg/esctest
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!
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?
My parents are in their 80s so your statement was very surprising. At 80 the expected death risk is under .6% per year, so you’re off by about two orders of magnitude.
Nope, never changed it.
Since 1999, a lot of undefined behavior has been added to the language to improve compilers’ ability to optimize. For example, pointer aliasing rules. How have you measured the benefit?
What’s the right way to sign a script? I’ve spent some time researching this and never found a satisfactory answer.
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.