Live data from Hacker News

The Nightmare Bicycle

geoffreylitt.com

21–30 of 75 posts

Re: The Nightmare Bicycle

#22

I get what the author is getting at, but I really think this is a poor comparison. Selecting a gear on a bike gives immediate feedback. Selecting a power level and cook time on a microwave...does not. Not needing to remember a formula for figuring out a cook time and power level based on the quantity of meat I'm defrosting is a really useful feature. Plus, I can always select whatever levels I want manually on the mi…

You must be one of the few people who use the "program" buttons on a microwave then. I personally don't know anyone and all the people I talk to really just want a two wheel microwave. Even if I tried the programs they almost never worked accurately anyway. Admittedly newer inverter microwaves are the exception, the defrost mode actually does work (and is the one program I use on these microwaves).

Re: The Nightmare Bicycle

#23

One-based indexing is an example of this. It's always argued as being familiar, as if people learning to program couldn't deal with adding 1.

Meanwhile off-by-one errors are ludicrously common… People can learn to deal with adding 1, but it’s still a cognitive encumbrance that loads us down and makes life harder. Not that I’m advocating for one-based indexing. At this point consistency is more important than whatever the easier solution is.

> Meanwhile off-by-one errors are ludicrously common…

Off by one errors in general have nothing to do with being 1 or 0-based indexed.

In French off-by-one error is called “the post and fence problem” because there's always one more post than piece of fence (unless your fence makes a loop).

It arises because it's easy to confuse the number of intervals between elements and the number of elements (which is also: do I need to include the bounds or not). 1-based indexing isn't going to help at all in the general case (it will help for the most basic error which is getting the last element of an array with `a[a.length]`, but that's it)

Re: The Nightmare Bicycle

#24

Interesting that the tech these days is going in the opposite direction. These trends to hide technical details (e.g. files on iPhone) can get really frustrating when it doesn't work. Almost a mockery.

Apple's hate for the concept of files has me up in arms ever since I realized this is why my parents are so confused anytime anything on their iPhone doesn't work.

Re: The Nightmare Bicycle

#25
The author is advocating for simpler single-purpose products I guess.

The microwave example just doesn't make sense when what you have isn't a single "just push the power button" machine, but a combined microwave/oven for instance. You'll want clear mode management, temperature management when defrosting meat, pre-heating and convection when cooking a whole chicken etc.

Anecdotally, a lot of people don't really understand/care about bicycle gears, and stick it to the heaviest and call it a day (on city bikes it's not that heavy, they can dance when it's tougher, and just get off and push the bike when it's really hard). We've seen the same cycle for cars, where people only caring about going from A to B will enjoy automatic transmissions better.

All in all, I agree single purpose products are great when you can afford one and it does the job. Paradoxically it also helps expand the use cases as the user comes to better understand how it works and how it can be "abused".

Re: The Nightmare Bicycle

#26
I question the degree to which even numbered gears matter on bicycles. I have two bicycles, none of them have numbered gears.

One has modern integrated brake-shifters with two separate parts that can be clicked inwards to shift up and down. There's no feedback on which gear it's on, but I know which part to click to make pedaling harder, and which part to click to make it lighter. At the stops, the shifter just won't move. The drawback is that if I want to know how close I am to the end of the range, I have to look down at the chainrings.

The other bike has un-indexed downtube shifters. These are tiny, frame-mounted levers that are moved smoothly (no clicks) forwards or back and they directly control the derailers which move the chain across gears. This is my favourite interaction pattern for bike gears, because you can put your hand down and feel the position of both levers and immediately know which gear combination you're in. Incredibly practical in heavier traffic to never need to take eyes off the road.

Re: The Nightmare Bicycle

#27

One-based indexing is an example of this. It's always argued as being familiar, as if people learning to program couldn't deal with adding 1.

I imagine zero based indexing is because resources were scarce and number of bits low in the bad old days. Why waste that zero index. From there is was backwards compatibility. If machine code uses zero then assembly inherits that, them C and everything else. Even JS months!

No, zero based indexing just is based on how arrays actually work. It has nothing to do with resources being scarce. You have an address for the beginning of the array and an offset. The first element has no offset so you use zero. Therefore you naturally end up with zero indexing.

Re: The Nightmare Bicycle

#28
bike gears are numbered now? Is 1 high, or 8? I press the little button at the front to pop one gear up, and push that big thumb lever to push the chain back up the cassette, it's intuitive. If I need to check if the bike is in the right gear (not concerned exactly which one) I pedal a little. What product manager added _numbers_ to bike gears?

Re: The Nightmare Bicycle

#29

I get what the author is getting at, but I really think this is a poor comparison. Selecting a gear on a bike gives immediate feedback. Selecting a power level and cook time on a microwave...does not. Not needing to remember a formula for figuring out a cook time and power level based on the quantity of meat I'm defrosting is a really useful feature. Plus, I can always select whatever levels I want manually on the mi…

I have an actual oven where I can select "programs".

As far as I can tell, they control three parameters:

* Where the heat comes from (top, bottom, or both)

* Whether or not ventilation is activated

* The temperature

There is also a dial for temperature, but not for the other two parameters. I am not sure whether every combination is covered by the "program" dial. I am not sure whether or not my understanding is even correct.

I would say it's an 7.5 out of 10 on the nightmare bicycle scale.

Re: The Nightmare Bicycle

#30
post #27

Earlier quoted context omitted.

I imagine zero based indexing is because resources were scarce and number of bits low in the bad old days. Why waste that zero index. From there is was backwards compatibility. If machine code uses zero then assembly inherits that, them C and everything else. Even JS months!

No, zero based indexing just is based on how arrays actually work. It has nothing to do with resources being scarce. You have an address for the beginning of the array and an offset. The first element has no offset so you use zero. Therefore you naturally end up with zero indexing.

Yeah but why wasn't that converted to human 1 based indexing at the machine code level or assembly in early machines?

Maybe because they didn't want to "hide the bicycle gears"?

Post reply on HN