Live data from Hacker News

You can't do that because I hate you

bvisness.me

171–180 of 216 posts

Re: You can't do that because I hate you

#171
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

> One that comes to mind from my TV: “Allow HDMI Devices to Control this TV”.

The one example I, as a former FiOs Technician for over 10 years, would argue should default to off.

I recall mid 2000s, when they started making TVs, devices, and stbs, that could communicate both ways through what I think was an HDMI pin reserved for that purpose when it was designed. I think it had something to do with audio control and maybe there's another pin for back and forth communication. Sometimes, I'd run into problems where one device defaulted to using the pin while the tv, audio system, or earlier stbs weren't really designed with the pin in mind. The box would keep browning out like it was getting its ass kicked. Sometimes the customer's equipment would get damaged, which was a mess where I'd need to defend my job to managers that want to blame me and know nothing about Home Media beyond telephone. So, I think defaulting off with a prompt is appropriate.

An example I would agree with was the data.frame() function with R. For far too long, everyone had to designate stringsAsFactors=FALSE just to avoid it turning every character variable into factors. Every R tutorial or Stack Overflow answer, even if there were no strings, you'd find it because typing "stringsAsFactors=FALSE" every time was easier than fixing the complete mess that happened when you should have. They fixed it in a recent upgrade, though.

Re: You can't do that because I hate you

#173
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

For some users it is actually the "Do suck" setting. Allowing devices to control other devices over HDMI starts to get random horse shit if you have a tree of HDMI devices. E.g. two devices connected to a TV, one of which is an AV receiver that is connected to three other HDMI devices.

Re: You can't do that because I hate you

#174
post #2

>I understand that might be confusing for newcomers, and exiting might be too destructive. But denying you the normal REPL behavior and denying you the ability to exit is just insulting. Sentence 1 provides a clear justification for the behavior. Then sentence 2 declares, by bare assertion, that it's "insulting". I find sentence 1 more persuasive than sentence 2.

The correct behavior is to print: Are you sure you want to exit? [y] and then you press enter again to exit.

The correct behavior from `repr()` isn't to do anything, including reading from stdin. That would break documentation generators, along with anything else that expects to be able to call `repr()` without side effects.

Re: You can't do that because I hate you

#175
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

I have a related peeve about an iOS app I use (MapStr) to save recommendations for restaurants and pubs. It's an excellent app, but has one feature that bugs me. For each entry you can set the status as "to visit" or "visited", and you used to be able to set a default. As of a recent update you have to choose one or other of the radiobuttons when you add a new item, so that's one extra click every time I add a new entry (which I forget to do, it complains, I have to go back)

The default in the settings was removed because it apparently was 'confusing', but the change makes for a suckier UI, especially evident if you're adding 10 or 20 items. My personal rule for UIs is that if there's a setting where you choose from two or more alternatives, let the user set defaults.

Re: You can't do that because I hate you

#176

Earlier quoted context omitted.

I'd have done both the hint and the actual result. Like this: >>> print >>> exit Hint: Use exit() or Ctrl-D (i.e. EOF) to exit >>> This way, it does do the thing you literally asked for, but also does help a newbie out.

Yes, I completely agree. If you want to teach the user the rules, then you follow the rules. The problem with the Python example is that they DID special-case it, but in an unhelpful way.

The special case is actually less a special case than you'd expect. It's "just" a python object that does some slightly funky things when turned into a string[0]. Making plain `exit` actually exit would mean triggering it accidentally could get too easy or would need a special case in the interpreter itself.

[0] https://github.com/Source-Python-Dev-Team/Source.Python/blob...

Re: You can't do that because I hate you

#177

Earlier quoted context omitted.

The worst is a few tools where when you type: the_command -foo ...and the tool responds with: -foo: No such option. You probably meant --foo Well shit! Thank you for that burst of empathy. If you, developer, are that confident that's what I meant why couldn't you just make both inputs do the same thing? You went out of your way to make the code handle -foo, but only to have the program fire off that snide remark inst…

Given the number of times I run git psuh To be told "you probably mean push"... yeah it'd be easier for me if they went ahead and accepted the typo :D

Just add

    [alias]
        psuh = push
to your ~/.gitconfig?

I personally have "ull = pull" and "ush = push" in this section, together with "alias gitp='git'" in my ~/.bash_aliases because of how often I type "gitp ull".

Re: You can't do that because I hate you

#178

Earlier quoted context omitted.

Given the number of times I run git psuh To be told "you probably mean push"... yeah it'd be easier for me if they went ahead and accepted the typo :D

Just add [alias] psuh = push to your ~/.gitconfig? I personally have "ull = pull" and "ush = push" in this section, together with "alias gitp='git'" in my ~/.bash_aliases because of how often I type "gitp ull".

I have "st = status" but you're absolutely right I should probably get around to updating!

Re: You can't do that because I hate you

#179
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

I agree with you that it's the wrong default but I just disabled HDMI control on my FAI's box because the box is too buggy, so it's important to be able to disable this feature.

Re: You can't do that because I hate you

#180
post #101

I have a similar pet peeve in software, what I refer to as ‘Don’t Suck’ Buttons. A ‘Don’t Suck’ Button is a setting, turned off by default and usually hidden in a corner of the UI or configuration file, which fixes a common issue that new users experience, and/or turns on the behavior that everyone wants from the product in the first place. The best examples of ‘Don’t Suck’ Buttons involve settings with no obvious di…

Another TV related “don’t suck button: Nvidia defaulting to limited colorspace on HDMI outputs. Persists to this day. iPhone Haptic Touch duration not set to “Fast” by default.

> iPhone Haptic Touch duration not set to “Fast” by default.

I didn’t even know this was an option. Thank you.

Post reply on HN