Tip jar

If you like CaB and wish to support it, you can use PayPal or KoFi. Thank you, and I hope you continue to enjoy the site - Neil.

Buy Me a Coffee at ko-fi.com

Support CaB

Recent

Welcome to Cook'd and Bomb'd. Please login or sign up.

April 27, 2024, 09:47:28 PM

Login with username, password and session length

Websites/apps that have driven you insane

Started by peanutbutter, June 19, 2021, 02:28:36 PM

Previous topic - Next topic

touchingcloth

If you accidentally hit the "compose" button in Gmail, then you need to hit the delete icon on the new message window rather than the close one, else it ends up as a blank message in your drafts. Ditto if you accidentally hit ctrl+d for a new bookmark instead of ctrl+f for a search, the x button acts the same as the explicit "done" button rather than the "remove" one, and you're left with a bookmark which makes no sense to you.

This is like when software (MS Office is the only thing that actually comes to mind) asks you if you want to save changes when closing a file, even when the only "change" you have made is to move the cursor position.

Paul Calf

Postcode: |NG61AP|

Quote"Please enter your postcode with a space in the following format: AA1 1AB"

Great. Couldn't you do that? Or just accept postcodes without a space?

Similarly, programming languages that require statements to be terminated with ';'. It's just lazy compiler development.

Quoteerror: ';' expected

Again, you know where these are required, so maybe just don't require them?

touchingcloth

Quote from: Paul Calf on June 29, 2021, 09:57:18 AM
Postcode: |NG61AP|

Quote"Please enter your postcode with a space in the following format: AA1 1AB"

Great. Couldn't you do that?

It's not as simple as that. Even for a 6 character code the correct advice would be

Quote"Please enter your postcode as one or two letters, followed by one digit, two digits, or one digit and one letter, followed by a space, ending with a number followed by two letters.

Which of course isn't impossible to validate in code, but it's trickier than is worth doing for some use cases, and I can see why certain sites would choose not to properly validate postcodes themselves or to pay for third party lookup services. And even if you do do all of that, trying to succinctly explain it to a casual browser is tricky.

The fact that the discussion page for Wikipedia's "Postcodes in the United Kingdom" article includes an extensive Regular Expressions subcategory points to the non-trivial nature of validating them.

QuoteOr just accept postcodes without a space?

...is probably the better answer. If you do need to do non-complete validation, then at least let people self declare and trust that they know their own postcode, and let it be on them if their parcels get stuck in a sorting office forever.

Gurke and Hare

Quote from: Paul Calf on June 29, 2021, 09:57:18 AM
Again, you know where these are required, so maybe just don't require them?

Similarly, when you try to zoom an embedded google map with the scroll button and it tells you that you have to use Control and scroll to zoom. You've worked out what I want you to do, just do it!

Sebastian Cobb

Quote from: Paul Calf on June 29, 2021, 09:57:18 AM
Similarly, programming languages that require statements to be terminated with ';'. It's just lazy compiler development.

Again, you know where these are required, so maybe just don't require them?

I dunno, Javascript does this* and it's a lot more confusing than, say, Java's explicit termination. I'm guessing the expectation is fine as a guess/suggestion but making the compiler 'intelligent' means it'd cause wild behaviour (which would either happen silently, or generate warnings people will ignore) when it guesses wrong and terminates lines incorrectly.

You want a compiler to be clever in terms of optimisation when it knows what it needs to do, not clever in the face of ambiguity.

*sometimes, when it feels like it.

dissolute ocelot

Quote from: Sebastian Cobb on June 29, 2021, 11:49:40 AM
I dunno, Javascript does this* and it's a lot more confusing than, say, Java's explicit termination. I'm guessing the expectation is fine as a guess/suggestion but making the compiler 'intelligent' means it'd cause wild behaviour (which would either happen silently, or generate warnings people will ignore) when it guesses wrong and terminates lines incorrectly.

You want a compiler to be clever in terms of optimisation when it knows what it needs to do, not clever in the face of ambiguity.

*sometimes, when it feels like it.
I guess the alternative is something like Python or COBOL, where a carriage return and specific amount of whitespace denotes the end of a statement/start of a statement - this seems like it should be easier but a semi-colon is at least visible by default in a text editor.

Inviting software to do something intelligently is good in theory but it's the same problem as when you end up with spellcheckers making exciting incorrect guesses and changing a typo to Vagina not Virginia.

Sebastian Cobb

Yes in languages like python the carriage return acts as the delimiter unless you explicitly escape it or wrap with brackets.

I seem to remember prolog actually requires you to type out 'crlf' end statements rather than the actual terminal carriage return/line feed doing the job for you.

At first the idea of how Python handled this filled me with dread but it's fine once I got used to it, and now I find it easier to read than some bracketed languages. Javascript's promise chains end up can end looking like a horrific christmas tree if people are wallies and don't use async statements.

But in either case the behaviour is fairly unambiguous, which is ideal. I think if I only needed to signify the end of something sometimes I'd be inclined to still do it all the time because it's just an easier rule to remember than a collection of arbitrary edge-cases.

And tbh good code is rarely clever. Usually code that tries hard to handle wooly inputs has other fundamental problems associated with it.

Dex Sawash


For every thing with a chip, has some poor bastard battery of bastards typed their life away to make the program?
Seems a bit much for like a game that is too large for physical media. Like making babies, should be an easier way now.

seepage

It's the pictures and sound that make them big. The code would be a few meg at most, and hopefully broken down into manageable chunks.

mippy

Not RTFT yet, but:

- Amazon, because whenever I search for a specific thing I get a load of off-brand hair clippers or tablets or whathaveyou with brand names like 'HeyNonnyx'.
- Websites which use flashing/flickering images. Especially sidebar ads which rotate between colours of a product to show you all the different thingies available, or social media ads that show rapidly changing images with 'Hit pause to find out what's yours' - flickering colours is a migraine trigger for me and I have to rush to get it aff my screen. I've stopped browsing websites that do it with product images (haha topshop go bust) but the ads always catch me by surprise. I would have thought such things would be an accessibility issue given that TV advertising is run through a flashing checker before being allowed on screen...

Paul Calf

Quote from: Sebastian Cobb on June 29, 2021, 11:49:40 AM
I dunno, Javascript does this* and it's a lot more confusing than, say, Java's explicit termination. I'm guessing the expectation is fine as a guess/suggestion but making the compiler 'intelligent' means it'd cause wild behaviour (which would either happen silently, or generate warnings people will ignore) when it guesses wrong and terminates lines incorrectly.

You want a compiler to be clever in terms of optimisation when it knows what it needs to do, not clever in the face of ambiguity.

*sometimes, when it feels like it.

Ruby doesn't require semicolons to terminate statements and doesn't have Python's whitespace bullshit.

Sebastian Cobb

Isn't Ruby a language that's in decline and is renowned for being a bit of a pain to debug?

Zetetic


Zetetic


Zetetic

I actually prefer my languages to be in decline, fuck you.

Sebastian Cobb

Quote from: Zetetic on June 29, 2021, 03:57:08 PM
I actually prefer my languages to be in decline, fuck you.

Have you considered taking up Java? The new post-8 licencing terms look like it will firmly be in that category, with a long tail as the pricing is set just below what Oracle think it will cost for you to hire the resources to rewrite your system in a better, low-ceremony different language.

greencalx

I guess C is the classic semicolon language and I'm wondering whether there are many situations where missing out a semicolon would be syntactically valid. I suppose x = y - z ; and x = y ; -z; would both compile (the latter likely with a warning due to the no-op) but I can't think of any others off the top of my head. No doubt the kind of people who participate in the IOCCC know of hundreds. I think this was the nature of the original complaint - if missing the semicolon is an error, why is it needed in the first place? By definition, there is no ambiguity.

Sebastian Cobb

How would you separate the sections in a bog standard  for (i=0; i<10; i++) loop?

Something I've noticed is that people who are used to higher-ceremony/c-like languages can be a bit slow at realising when a map would make for more succint code. Both through creating mapping behaviour through a long if-else-if block that functionally acts like a map and also when you need to pair two disconnected things together and construct a map then iterate through the lot to save on loads of tediously verbose repeated lines. I think I was as well when I first moved to more dynamic languages though.

greencalx

Quote from: Sebastian Cobb on June 29, 2021, 05:49:07 PM
How would you separate the sections in a bog standard  for (i=0; i<10; i++) loop?

Since it's always an error (I think) to put two identifiers, or an identifier and a literal, next to each other without an operator in between, I think the semicolons are all redundant here. It is, admittedly, more readable to have them. Especially if you are using the comma operator in one of the clauses as well.

greencalx

Actually the more I think about it "visual clutter" like semicolons are probably more for humans trying to understand the intention of the code, than machines attempting to compile it.

touchingcloth

Why do you bother programming with braces and semicolons and carriage returns and whatnot?

I just shout COMPUTER, LEFT SHIFT REGISTER CONTENTS AND ADD TO THE ACCUMULATOR and have done with it.

greencalx

Oh, you mean you don't use toggle switches?

Retinend