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 macOS 27 is so buggy
This week I discovered that reloading an outline view leaks the disclosure buttons. The bugs you don’t see are as bad as the ones you do.
gnachman··on Building and shipping Mac and iOS apps without opening Xcode
Not using Xcode is the greatest improvement in quality of life I have known aside from recovering from a debilitating back injury. So good.
gnachman··on AI's economics don't make sense
So you’re saying there’s a chance that Oracle will die? Sign me up.
gnachman··on "cat readme.txt" is not safe if you use iTerm2
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.
gnachman··on OpenClaw is changing my life
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.

gnachman··on Palm’s CEO emails Steve Jobs (2007)
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.
gnachman··on setBigTimeout
That wouldn't very well because Date.now() isn't monotonic.
gnachman··on iTerm2 3.5.0
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.

gnachman··on AOLserver is America Online's Open-Source web server (2010)
I worked on this as an intern in 1997 and led it for a while. AMA
gnachman··on Bracketed paste mode (2013)
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.

gnachman··on Ask HN: How on earth are you using your Apple computer with external displays?
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.

gnachman··on Impressions from a first-time Mac user
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.

gnachman··on Sergey Brin: The Facebook phenomenon is a problem (2007)
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.
gnachman··on Let’s Talk about PAKE (2018)
WhatsApp’s encrypted backups use OPAQUE. Source: https://scontent.whatsapp.net/v/t39.8562-34/241394876_546674...
gnachman··on How does apt render its fancy progress bar?
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.
gnachman··on New GitHub Issues Beta
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.
gnachman··on macOS Big Sur
I released iTerm2 version 3.4.0 this morning with Big Sur support. Please update because 3.3 has various issues with it.
gnachman··on You're doing rubber duck debugging all wrong
Yes! I compose an email to a big group of people I respect. That forces me to be extra careful.
gnachman··on WordSafety: Check a name for unwanted meanings in foreign languages
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…
gnachman··on Move over Graphene? Here Comes Borophene
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.
gnachman··on Xi-Editor Retrospective
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)
gnachman··on Real VT102 Emulation with MAME
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
gnachman··on Zsh and Fish’s simple but clever trick for highlighting missing linefeeds
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!
gnachman··on GitLab 13.0
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?
gnachman··on U.S. field hospitals stand down, most without treating any Covid-19 patients
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.

https://www.ssa.gov/oact/STATS/table4c6.html

gnachman··on When did I run that command? Update your Bash prompt with the command start time
Nope, never changed it.
gnachman··on Tell HN: C Experts Panel – Ask us anything about C
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?
gnachman··on Zoom has a signed binary that runs any unsigned script
What’s the right way to sign a script? I’ve spent some time researching this and never found a satisfactory answer.
gnachman··on The iOS and Mac markets are almost the same size?
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.

gnachman··on The iOS and Mac markets are almost the same size?
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.

Page 1 of 8Next →