Hacker News new | ask | show | jobs
by mikeash 3754 days ago
Apple is just awful about providing meaningful, useful errors. The worst is AirPlay. When it fails to connect, which is about 33% of the time, there's nothing. It doesn't even pop up a generic alert, it just silently (or not so silently, if you're playing music) reverts to local playback.

Many other examples abound. Most errors at least provide a message, but one so generic as to be useless.

5 comments

Ugh. At work, the computers use AirWatch. Oh. My. God. They fill the OSX logs with debug messages. Literally "I got 8 bytes from this with this offset" type messages for an application that spends most of its time running in the background. Here is an example:

  2016-03-03 10:59:16.863 PM AirWatch Agent[507]: void AgentReadCallback(NSData *__strong, NSFileHandle *__strong) [Line 1096] Agent received message of type 140
  2016-03-03 10:59:16.863 PM AirWatch Agent[507]: -[AWAgentController isCurrentUserManaged] [Line 221] Current User is managed
  2016-03-03 10:59:16.863 PM AirWatch Agent[507]: Server Starting new loop for data
  2016-03-03 10:59:26.825 PM AirWatch Agent[507]: void AgentReadCallback(NSData *__strong, NSFileHandle *__strong) [Line 1096] Agent received message of type 140
  2016-03-03 10:59:26.831 PM AirWatch Agent[507]: -[AWAgentController isCurrentUserManaged] [Line 221] Current User is managed
  2016-03-03 10:59:26.832 PM AirWatch Agent[507]: Server Starting new loop for data
Is this normal operating procedure for OSX apps? Fill the system.log with print statements in a loop that runs every ~10 seconds?
It is for those that leave their debug logging enabled. A lot of code I've seen uses CocoaLumberjack[0] or something similar, which makes it easy to turn that off for production builds.

[0]: https://github.com/CocoaLumberjack/CocoaLumberjack

or TimeMachine

"sparsebundle already in use" is the FOAD of error messages. I do love how the (now stale) tools to fix this are maintained by a volunteer on an external site unrelated to apple.

I try not to be too grumpy about it, but I paid $3k for a laptop not to have to fucking deal with windows-style normal operation of the OS and related tools is busted and you're gonna sink hours into debugging it. And least when linux breaks it tends to leave error messages and details in syslog...

My latest pet peeve is `mds_stores` deciding it needs to spend forever using my iPod, so I can't unplug it without incurring a scolding. It's not hard for Mac OS to stay less terrible to configure than Linux, and less terrible to use than Windows, but that's a low bar.
Do you have your iPod configured in iTunes with "Enable disk use"? Sounds like Spotlight is trying to index it or something...
I probably do. Thanks to my partial understanding of how the software works, I can guess that `mds_` is Spotlight trying to index my music player, but I wouldn't want to try to explain it to my dad. Software that responds to "eject this" with "no, because f* you" because it is busy creating meta-data is user-hostile.
I switched from OSX Yosemite to Windows 8.1 a while back.

I have had substantially fewer problems with Windows 8.1.

Just yesterday I performed a clean install of Windows 10 on my desktop work computer. After joining our domain (configured in the most standard way possible), the start menu stopped working and edge couldn't start anymore. All commands to fix this situation (through powershell) gave cryptic hexadecimal error codes. After a few hours it turns out the Windows Firewall service was disabled. How this causes the Start Menu to malfunction, I don't know...

Again this was a clean installation. Windows 10 is a joke.

hmm. windows 10's inability to not talk to microsoft skeeves me out though.
> And least when linux breaks it tends to leave error messages and details in syslog...

Tends to. Not directly a Linux issue, but i was trying to figure out why one specific program was giving me corrupted MAC errors when connecting via sftp.

All searches indicated it was a network config issue, but no changes seemed to matter.

Eventually i checked the libs the program was compiled with and found the sftp one was "jurassic". One update later and no more errors.

that said, more often than not, a quick dmesg or tail /var/log/messages is all that i need to get something purring again.

Yeah, diagnostic messages can be pretty useless. Sometimes all you can do is

    tail -f /var/log/system.log
I go back to the days of System Bombs and Unimplemented Trap errors.

It was maddening.

Ahh the bomb, a great (Susan Kare) icon:

https://en.m.wikipedia.org/wiki/Bomb_(icon)

MacsBug was an essential utility back in those days.

I never got around to learning to use MacsBug.

I just stopped running applications that caused too many crashes.

I miss those days dearly. I LOVED being a Mac user during the 1990s.

That's pretty terrible. No software performs flawlessly, so good error messages are a key part of usability.
I think Apple is trending away from being usable and towards looking usable. Simple, friendly error messages look much better....