Show HN: I've made a rotary dial number input, because why not?
github.com
github.com
But the key thing that made rotary dials usable was the catch at the end - it stopped your finger, so you just pushed until it stopped you, and it registered whichever number your finger was in.
Without that, this version isn't really usable. It needs to lock into a draggable state, then keep rotating so long as the mouse is down, even if you drag outside the control. And then it needs to stop dragging at the end, so you cannot over-drag and pick the wrong number. Do those 2 things, and it would be solid.
I think there might be some kind of lesson here. Rotary dials might be a usability punchline right now, but there is actually a lot of thought that went into their design which made it quite usable. I'm sure similar things can be said about other old interfaces.
Punchline? Rotary dials are great. Find number, stick finger in hole, rotate until it stops, release. The only real thinking involved is to figure out which digit you want.
Man, sure a lot more than just punching a button, amirite? Most of the time, yup, and the rotary is an antiquated method of digit input. But because rotary is not on/off, it is more forgiving. I am unable to come up with a suitable explanation without putting a rotary dial in front of you, but you could change your mind while you were dialing. Or more accurately, you could fix your mistakes. In the midst of dialing, some correction was possible. For instance, "oops, that's '3', not an '8'. Well, even if you've already stopped at 8, you can keep going and get the 3 instead (doesn't work the other way around).
Anyway, I'm not saying I miss them, but rather to agree that TFA is missing the things that make rotary dials more than just a circular version of a 10-key.
I made a version a little while back that takes this into account: https://github.com/thomaspark/rotary
It seems that there's a subreddit for such things now: https://www.reddit.com/r/badUIbattles/
The whole thing started with a couple inputs found in the wild: a volume slider bar that glitched and had to be slided in the 10px across instead of the >100px along the bar. And a phone number input that had four-digit groups as dropdown inputs with 9999 values.
but I literally just built this project https://github.com/peterszerzo/rotary-phone and recorded it. It handles the rotation input very well.
Now my "Android One" phone has the worst UI I've ever seen for setting timers(you have to enter every individual digit, from hours to seconds, in the right order...).
I really wish Google would copy more good ideas from the now-dead competitors, like the text selection and context menus on Windows Phone. Or the alphabetical lists that also work well for left-handed people. Many great user interface ideas died with these systems. But to be honest I'm not sure if they would even be allowed to do that legally. You never know what kind of crazy software patents are floating around out there.
Google's approach feels like a more convoluted approach to the same idea, where the hours and minutes are separated and the selection is in a separate popup view instead of being embedded directly into the clock. It makes sense as it's a more generalized widget usable by other apps, but that's also the reason it's not quite as natural to use.
EDIT - here's a (partial) example screenshot: https://forums.crackberry.com/attachments/blackberry-10-apps...
That's actually the fastest time input method I've used. Only I need just minutes and seconds, e.g. ‘500’—or hours and minutes in the alarm, like ‘915’. And this app has gigantic buttons for the numbers, and checks on the fly for when a ‘9’ makes no sense so the button is disabled.
I wish devs adopted this method instead of the inane ubiquitous scrolling dial. I need three or four taps on huge buttons which are in muscle memory by now, like with a calculator pad—as opposed to a ridiculous amount of scrolling through the 60 minutes and looking for when the dial lands on the right number.
Is there a need for localization?
However Wikipedia notes:
> Exceptions to this are: Sweden (example dial), with one pulse for 0, two pulses for 1, and so on; and New Zealand with ten pulses for 0, nine pulses for 1, etc. Oslo, the capital city of Norway, used the New Zealand system, but the rest of the country did not.
If ever you were in a house which tried to prevent outgoing calls by using a lock on the dial, you could still make a call by tapping out the requisite digits on the hang-up buttons.
I have no dog in this race, but it seems to me that a finger hook and stopper is a functional feature of the rotary dialer. If and only if the user put their finger in the hole to dial, then the finger stop should catch and prevent the wheel from moving beyond that number. In other words, the number choice is actually strongly implied (but not locked in) the moment the finger is in a hole, and the stopper isn't merely an indicator but is step 2 of guiding that choice through. How best to simulate that distinction in a 2d screen, no idea...
But seeing how unbelievably simple the underlying functionality was absolutely blew me away and opened my eyes to how much you can do by building on top of very simple things.
For those who don't know, early local phone connections did NOT work on tones. Instead, the rotary dial simply broke the connection in quick succession whatever number times for the number you'd dialed to. And the rotary dial did this by simply breaking it once for every number that went by on the way back to its rest position. Just notches in a disk. Simple as that.
This gave me a little revelation, and I found you could actually make calls without use of the dial at all. You simply clicked the hangup button very quickly in succession for the number you wanted, then paused, then repeated. I made it a sport to try to reach my friends that way. Which was risky, because a couple wrong clicks and I might be opening an expensive long distance call to anywhere.
Formative stuff. So big thanks to the poster for the walk back down memory lane. I love the project.
note to coders: don't do that, lots of laptops have touchscreens :-)
For 60s technology (maybe even earlier) this was the best they could come up with for the desired price point.
Still, once I figured that out my friends and I would try to call girls we liked using this method. The skill involved and the fact that you'd fail 2/3 of the time would distract you from the fear of actually talking to the girl once you got connected. "Oh, sh*t! It worked. Oh, hi, Rachel. I was playing around with the phone and must've accidentally dialed you."
Anyone know if there was a technical reason for that originally?
A quick search shows that apparently these charges were still around until recently. Maybe it was just another reason for the telco to add a fee to the bill?
Besides, remember that they used to charge _rent_ for your phone and wouldn't allow 3rd party phones at all until the late 60's or so.
As the dial plans got more elaborate, things like digit absorbers got in between you and the actual call routing equipment, but they all still talked to each other and to you with pulses.
When tone dialing made its debut, some offices had switched over to electronic control and could natively understand touch-tone, but a lot had not, so there were front-end circuits that would decode the tones and control the switching equipment. Throughout the 80s, pretty much all the step, panel, and crossbar switches were replaced with common-control switches (where a computer did the thinking, even if relays were still used for the actual routing), and the fees became bogus.
If you had Call Waiting, you should not have been paying extra for touch-tone.
Apple really is dragging their heels on supporting HTML5, when even (deprecated) Edge has better standards compliance, something is plainly wrong in Cupertino.
Aside from the number-stopping request others have made, I think it would be more accurate for the callback to happen once the dial has finished rotating back into its place, not on initial mouse release.
Make the rotate limited to emulate the finger catch.
Then its perfect.