Live data from Hacker News

You can't do that because I hate you

bvisness.me

131–140 of 216 posts

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

#131

Earlier quoted context omitted.

> you can program it yourself easily I consider myself a seasoned programmer, but after a decade I continue to fail to do any significant customization (other than a tidy .emacs leveraging use-package (since before it was cool^H^H integrated by default)). Lisp's syntax is easy, but Emacs' API surface and concepts are bewildering, especially due to its aforementioned mismatch with modern terms.

I found it somewhat hilarious that you wrote a prose sentence with nested parentheses then began the next sentence with "Lisp's syntax is easy"

(: ;)

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

#132
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…

> then became universally relied upon but somehow never enabled by default.

Often it's not that universal; especially for older software there's a lot of variety in how people use it, and changing defaults can be hugely confusing for existing users. A lot of these (alleged) "don't suck" buttons are probably more subjective than you might think.

The HDMI thing may be a security-related, or maybe there are is another reason. I think it's important to know why something behaves as it does, without too quickly assuming there's no good reason for it. That's also my criticism of this submission by the way: it makes little to not effort to understand why things are as they are.

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

#133
post #10

Such a weird rant. Yes, some tools do some things, but not others. Making tools do everything for everyone just bloats them to unmaintainable messes. And it’s a special kind of entitlement to believe that the way _I_ imagine things must be working is the only possible correct interpretation. Reality is messy, there are trade-offs, and a lot of smart people think very hard about what the correct trade-offs should be g…

I agree with the rant, but not the examples.

It pisses me off when programmers add "features" which forces users to deal with them.

For example, pipenv always prints a message when you activate an environment (I don't know if it's still the case because I don't use it anymore). I had to migrate a cronjob which ran a Python script and sent an error email if anything got printed to stderr.

This is a pretty standard Unix thing to do, but pipenv decided to always print to stderr that the environment got activated, even though it's not an error. And there is of course no way to get it to shut up. I had to use some Bash hackery to filter that out.

Ryan Dahl's 2011 rant on this is quite relevant:

> Those of you who still find it enjoyable to learn the details of, say, a programming language - being able to happily recite off if NaN equals or does not equal null - you just don’t yet understand how utterly fucked the whole thing is. If you think it would be cute to align all of the equals signs in your code, if you spend time configuring your window manager or editor, if put unicode check marks in your test runner, if you add unnecessary hierarchies in your code directories, if you are doing anything beyond just solving the problem - you don’t understand how fucked the whole thing is. No one gives a fuck about the glib object model.

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

#134
post #120
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…

> “Allow HDMI Devices to Control this TV” It would IMO be nice to have a default-off option to disable CEC on a specific port. Or to disable certain CEC features.

For example: If I leave my TV set to the input that my PS5 is on, turning the TV on will turn on the PS5. Because the PS5 takes a few seconds to turn on, if I try to switch to another app or input, the PS5 will switch the input back when it finishes waking up. Ideally, I’d allow CEC for all functions except turning the PS5 on. If I want it on, I’ll use the controller or media remote.

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

#135
post #3

First example seems odd? The author acknowledges that the two proposed alternatives (printing " " or actually exiting) aren't great. The fact that the Python REPL provides a helpful hint seems like extra effort to make your life easier. This is especially notable given that in the next example, the author's complaint is about a command _not_ providing special guidance about the thing the user is probably trying to do…

I think the current behavior is worse simply exiting. The only concern with exiting when the user types "exit" is that perhaps the user actually wanted to see the value of the `exit` function. But the current behavior doesn't show the value of the `exit` function either, so it's useless for that use case.

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

#136
post #120
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…

> “Allow HDMI Devices to Control this TV” It would IMO be nice to have a default-off option to disable CEC on a specific port. Or to disable certain CEC features.

I had to disable CEC because my Chromecast would randomly turn on the TV in the middle of the night. Disabling on a single port would be great.

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

#137

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.

But really it should just exit. There's really no reason why it shouldn't. I think telnet does something stupid along the same lines "I know you want to quit but please ask address me as Sir first".

There would be two ways to implement that, neither of which are particularly good. You could either have the exit function call itself from its __repr__ method, which an abstraction violation so egregious it introduces security vulnerabilities (imagine a logger printing repr(thing) to stderr, and someone sneaking the exit function in there for it to print), or you could special case it by making exit a reserved word, which flies in the face of the Python 3 ethos which changed print from a reserved word to a function and breaks a lot of established code.

Programming languages have rules that the programmer is expected to learn. Part of being a programmer is foregoing a certain amount of user friendliness in favor of an environment that is more powerful so that we can actually get things done. Programmers are paid to memorize and follow these rules so that the end user does not have to learn them.

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

#138
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.

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

#139
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…

There's a deeper problem at play here: assumptions.

Any time an assumption is made, it's guaranteed to be wrong for someone. In your example, there are two really positive factors in play:

1. The user can change the setting.

2. It's pretty clear what the default should be.

Most of the time, we don't get either of these.

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

#140
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…

Emacs is full of these. In its defense, Emacs predates most modern UI paradigms (including, y'know, Ctl-C/V for copy-paste, or calling things "windows" vs "frames"), and is very conservative about updating defaults due to inertia.

Eh. I think that's just of how emacs IS and the tutorials I remember all dealt with it.

I also don't think they were jackasses by default...

Post reply on HN