Refresh Is Sacred (tbray.org)
Several Slashdot readers share a blog post: There are two kinds of client applications: The first kind has a "refresh" or "reload" button to make sure your app's in sync with its server's view of the world. The second kind is broken. Of late, I have to deal regularly with several apps, notably including an emailer and car-sharing service, that lack such a button. I can imagine why -- a customer focused product manager said "Steve Jobs taught us that fewer controls are better and we should just take care of making sure we're in sync with the cloud. So lose the button. Except, it doesn't work. Apparently nobody in the world is smart enough to arrange flawlessly reliable hands-off client/cloud synchronization. There are times when you just know that what you're seeing on the screen is wrong and if the stupid app would just assume everything it knows is wrong and ask for a brain transplant from its server, things would be OK.
In India cows are also sacred. You sacred cows! Moo! Moo! Refreshed moo!
Some applications have started using a "scroll past the top to refresh" crap and if you don't know the application can do that, then you don't know it has the feature in the first place.
#DeleteFacebook
and Don Norman, who has something to say on the matter.
"National Security is the chief cause of national insecurity." - Celine's First Law
What the internet needs, perhaps, is a Staleness indicator.
Chat with other atheists http://secularchat.org
Kill-and-Restart is the new refresh.
Studies have shown that minimal design and flat design are worse for productivity and ease of use. But it was trendy and cool. Thank God "Trendy" does not last long. I am starting to see flat design and single page websites fade away... Minimal design will not be far behind. Eventually, we will get to where we were 5 years ago!
I don't even bother using Firefox's refresh button, it doesn't actually request the page a second time. CTRL-F5 is now the default refresh.
"Except for, it doesn't work."
Other the, sentence do fragmented.
https://xkcd.com/1854/
As time progresses these systems trend toward getting more reliable. I am sure a lot of you don't remember the good old days, where we needed the PC power button to be directly tied to the system power supply, early systems which had the power going threw the mother board to request a clean shutdown, often had problems where the OS was so locked up that such button was useless, and you had to unplug the system to get it to work. A standard windows setup was expected to crash at least once a week. (And a full clean install of the OS once a year).
Today we can expect our normal desktop systems run for months on end without rebooting. This is because of advancements in protected memory and other improvements over time.
The same thing happens with website, and applications. As time progresses the standards for quality have risen. The Reload vs Refresh button is rapidly becoming a moot point. As many pages are now automatically updating their content on the fly. And this refresh button will soon be more of a feature of the application then of the browser. The Reload button on the browser is becoming the button of last resort. As there is a lot of state in the Javascript that that will be cleared out.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Apparently nobody in the world is smart enough to arrange flawlessly reliable hands-off client/cloud synchronization.
Actually, there a plenty of people smart enough to ensure perfect synchronization. The problem is that not that many are interested in wasting their time on building an "app" that will likely be discarded in a few years for shitty pay. Also, if you aren't using a language that compiles to a natively executable binary then you have failed before even beginning.
Anons need not reply. Questions end with a question mark.
If it's a web-based application, MAYBE.
If it's a server-to-server or client-to-server app, then a well-designed one will NOT require a refresh button.
Either because clients and servers are well-written AND state changes occur using a well-defined protocol that ensures synchronization
OR because the client automatically refreshes on its own according to some policy.
For example: IRC Clients do not require a refresh button to keep your view of a Chat room and its On-screen userlist accurate after the /NAMES request, because (Non-buggy) IRC servers always send the proper MODE, JOIN, PART, KICK, and QUIT messages
initial
to servers and clients over the TCP channel to keep both sides of the conversation updated with the current information as changes occur.
Also, while the protocol is versatile enough a client could technically re-request information and force a self-Refresh of its view:
you don't see a REFRESH button on any major IRC client, and in fact, the operation would be a major waste of resources.
If you like heavily-used server applications that occasionally lose state and don't have a refresh option, then you'll love heavily-used server applications where a significant portion of the userbase is spamming the refresh button every damned second.
Obliteracy: Words with explosions
Yeah, push is basically the second kind. You know the data you're looking at is outdated but there is no way within your control to update it.
-=This sig has nothing to do with my comment. Move along now=-
You check in, you add your flight details to the portfolio screen, but then you can't navigate back to the barcode without activating some sort of action to invoke the refresh.
Every UI should have a specific button that allows you to do a manual refresh. "Hidden" UIs or weird actions (such as dragging down on Android, which sometimes refreshes certain apps) are no good, especially for non-technical users. Especially where it's non-trivial to even REALLY exit and application and start it up again.
For United, I have to use Android's task switcher to kill the app, then start it up again. Now it'll refresh successfully.
Stop with the fancy UIs and allow people to use technology to work!
Bandwidth, processing, and batteries are not in endless supply. Some sacred things (like absolutely live-synced all the time globally aware perfect client apps that are up to the nanosecond with back end data) are absurd perfect-is-the-enemy-of-the-good goals in the real, actual, finite world.
Don't disappoint your bird dog. Go to the range.
Just give them a "refresh" button that isn't connected to anything (like the elevator call button) and let the OCD people press it as often as they like.
Support Right To Repair Legislation.
Steve Jobs taught us that fewer controls are better
...and real-world experience teaches me that Steve Jobs was wrong.
Eliminating the means by which users can control what applications do is not a good thing. Sure, have some sort of "auto" mode for people who don't care, but leave the ability to control the operations of an application for those that do, or for those times when the "don't care" folks really need a manual override.
This is particularly true with things like refreshing. In addition to being able to trigger a refresh on demand, it's also important to be able to stop automatic refreshing for those times when you really, really don't want the current data to change.
If push is implemented properly, you register with the service and get fresh data at that time; then you get updates every time the data changes. Your data is never out of date (as long as you remain connected) with proper push. And if you lose connection at some point, well, a refresh button wouldn't work either.
The most common issue with pushing data is that developers will forget that they need to track their connectivity and re-register if connectivity has been lost for any period of time. That, of course, is not properly implemented.
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Because most internet systems were designed as stateless connections....
https://en.wikipedia.org/wiki/...
Right. Switch back to a task, it refreshes and steps on all the edits you have made but not saved...
Database locks are not new. It's time the 'everything's different now' people studied them. Rather than go through the process of reinventing them.
I blame mySQL.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Milk yes, burger no. Cows are sacred in part because they provide milk. In Hindu mythology, Vishnu in the form of Prithu milked Prithvi (Mother Earth) in cow form to fertilize the first cultivated crops. Ground beef is to them like killing the goose that lays golden eggs.
Learn from accounting where you can lose your job if money gets lost. Give each "transaction" a sequence number, and don't accept (process) new transactions until you receive the prior numbered package of the running sequence, and a byte check-sum indicates it's complete. If you (client) don't receive a good copy of the transaction after a certain amount of time, you request it again. Client requests also indicate which packet# they are responding to.
However, that won't solve rendering bugs or human errors where the UI update command programmer assumes a screen image or layout that's not as expected. Screen refresh is similar to a reboot in that we re-set the dinner table because managing a long line of delta's without errors is a difficult task. Nature hasn't solved the problem either, and uses a reboot called death-and-rebirth to clean up mutations.
Table-ized A.I.
put a simple facade on a system rather than simplify it. Leaving the user no recourse in unexpected situation (other than to manipulate often undocumented registry settings) is practically a Microsoft signature.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Yeah? What time was "now" when this status was set?
Is this a "time zones are hard so we fixed the glitch" thing?
I guess JS coders are rediscovering multiuser issues.
Well, when you get your degree and and the only work you've ever done is single-user, single process, single thread, on an OS whose primary interface accommodates a single user...
Then taking a sample set of a couple poorly-coded apps and deciding it represents everything...
And finally blaming a guy for pointing out how things should work as the reason the app is coded poorly.
Yeah... sounds like the guy is trying to blame his problems on the wrong people. He'd go far in Politics.
-- Sometimes you have to turn the lights off in order to see.
... But make it certain is there
In the times of yore, the Nokia NMS2000 had a button to refresh from the network elements. It was in a right click, per NE and you had to be a admin to use it. But it was there*... very hard to press, otherwise, the guys in the night shift would play to see who can saturate the digital X.25 links to the BSCs faster ;-)... but it was there.
There are reasons to hide the button, some are aestethic, as the poster said, othersare to avoid an inadverted DDoS by your own users by casually all pressing the button at the same time. There may be other reasons still to make ith harder to press that button.
So yes, hide the button if you like, either to make your app nicer, or to prevent it to be pressed for no good reason (sort of like important buttons covered in acrilic or glass), but leave the capability to refresh there...
* I had to create a special admin user for the NOC Technicians to use that refresh button. It was in a sealed envelope, and everyday I checked the envelope was not opened. Each guard change had to check that they received the envelope still sealed, and reflect that on the logbook, otherwise, they would be responsible for anything that admin user did, as reflected in the syslog logfiles. And the envelope could only be opened under my direct orders. Of 2 years being the admin of the NMS, only once we had to open the envelope. The poor tech asked me three times if I was sure I wanted him to open the envelope and write that on the logbook, such was his amazement... Fairly low tech technique, but efective nonetheless...
*** Suerte a todos y Feliz dia!
"'Steve Jobs taught us that fewer controls are better...'" Strict adherence to principles without exceptions is (almost, :P ) always a recipe for mediocrity at best, disaster at worst. Jobs was good at insisting on good design when it apparently conflicted with cost cutting. He was never a systems usability expert himself, otherwise some long-time Apple features and lack of features would not have stayed around so long. Automatic synchronization might be workable if it included an elaborate and well-designed "preferences" setup (I'd argue that most applications' Preferences are very poorly designed). No two persons have exactly the same needs, so one-size-fits-all is doomed to fail. Add the button by default, with an option to get rid of it after checking off some preferences to how automatic synchronization/updating should work. Not having room on a phone's screen to have a button for it isn't an excuse to not have it, it's a reason for redesigning the phones' interfaces.
As long as it's visible, it should refresh every n seconds (30 seems a fine number[...]).
And if the refresh job finds that the user has temporarily lost Internet connection, a modal dialog "Reconnecting" should completely cover the (slightly outdated) information that the user is trying to read. <cough>Discordapp.com</cough>
This kind of thing really pisses me off. 5 minutes ago from when? How often is it updating? Has updating gotten stuck?
I think a lot of dissatisfaction with alleged autorefresh is that nagging feeling that something has stopped updating. For a long time there has been a trend on various blogs and forums to stamp items "updated 5 minutes ago" or whatnot, but no true time/date stamps. How about "updated at 11:59 am (5 minutes ago)". Just lately I've been seeing some forums go back to real time/date stamps.
It's the uncertainty that is often the irritant, at least to me.
One hard problem is naming things. Anyone remember what the other one is?
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
They absolutely work. Ask your bank. If banks worked like most web sites, you could get rich by using two atm cards.
But you have to know what you're doing.
Your comment on 'the 90's' is on point, though not in the way you mean it. Kids are walking the same path that led to that design in the first place.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
They're called locks and transactions. Read up on them.
Ok, so because Suzie loaded up the Hertz inventory page and then went on a jog the rest of the world can't reserve a car? You can't just put everything in a transaction. The whole point of transactions and table/row locking is to ensure safe multi-client access to the same data. Manual refresh is a simple, clean way for Suzie to see how the inventory changed while she was out.
while [ 1 ]; do echo -n -e "\xe2\x95\xb$((($RANDOM&1)+1))"; done
I was hitting refresh on this very site for the last couple of days, and I got nothing.
You'd be better at criticizing locks/transactions if you knew how they were used. But don't let that stop you.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
This is a tricky question, since so much is up for interpretation about what's a "serious" site.
Is a serious site, one that tries to be good? Or is it one that tries to maximize ad revenue? Does a serious site care about the user, or does it prove its seriousness by demonstrating that it does not care about users?
I'm glad sites do a better job at supporting mobile browsers with minimal controls and single-page structure, but they need to also work with desktop browsers properly. While the browser Back and Forward buttons have always been problematic with form POSTS, their behavior is increasingly inconsistent and unpredictable.
Case in point, American Express recently did a site update where, when you looked at transactions, it didn't go to a new page, it brought up a full-page dialog. The dialog had an "X" to close, but if you hit your browser's back button, you were taking back to login page. They have since fixed this, but it was frustrating for a while.
Single page apps need to properly use anchor tags to support browser navigational buttons. Yes, desktop browsers still have them, and users still click on them.
Don't get me started on padding and white space...
K thanks
while [ 1 ]; do echo -n -e "\xe2\x95\xb$((($RANDOM&1)+1))"; done
Steve Jobs taught us that [...] we should just take care of making sure we're in sync with the cloud.
Yeah...no. While Jobs was definitely at the forefront of pushing for a cloud-based future even before we were calling it "the cloud" (e.g. I recall him talking in a mid-'90s interview about wanting to bring server-based user directories to consumers, since he had personally been using them at NeXT for years and thought they could change the way we used computers), there's no doubt that Apple's cloud products were one disaster after another for the entire time he was at the helm.
First there was iTools in the late '90s. They eventually had to rebrand iTools as .Mac in the early 2000s to get away from the bad word of mouth it had. Likewise, they eventually had to rebrand .Mac as MobileMe in the mid-2000s to get away from .Mac's bad word of mouth. And then they eventually had to rebrand MobileMe as iCloud in 2011, which is what we still have today. At no point along that journey was it a reliable product or one that I could recommend to friends and family. In fact, my father's choice to jump on the MobileMe bandwagon continues to be a cause for tech support issues he brings to me, years after the service's discontinuation.
Even iCloud was widely maligned at its launch in 2011, and continues to be widely maligned today, despite the fact that it eventually did become a reliable product a year or two ago with the advent of their CloudKit APIs. But prior to that? Dumpster fire after dumpster fire. Even the most ardent of Apple apologists will agree that Apple's cloud services were simply bad under Jobs' tenure.
Steve Jobs taught us that fewer controls are better [...]
I think what he tried to teach us was that replacing numerous single-purpose controls (e.g. keyboard buttons) with a single infinite-purpose control (i.e. a touchscreen that could become anything you needed) was better. Sure, minimalism was his thing, but so was brushed aluminum in iTunes, Corinthian leather in iCal, green felt in Game Center, and a wheel on the iPod that was actually five buttons in one. Put differently, he was trying to teach us to use simpler controls, not fewer controls.
Look, the far majority of people are not tech workers. They don't need to know what an IP address is, let alone a MAC - a url is sufficient. For those people, a refresh button is not helpful (except psychologically)
But not everyone is like that. Some people actually know a bit about software and hardware. They want and need controls, and refresh is the main one they want
excitingthingstodo.blogspot.com
So quite how does "It's terrible, when will it die" and "there's more than just the panel wrong" get to become something a programmer can use?
Are you implying there's a dearth of window managers in the Unix world?
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
Push is a synchronization method, as is pull. In fact, they're kind of the only two... you're either pulling data when you want it or having it pushed to you periodically or as it changes. There are a great many variations on that and they're sometimes combined (as in my example, above), but they're the only two methods. You are either requesting data (pull) or having it handed to you (push), how else would it get there?
APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
Please no modal dialog. Just put a tiny "connection lost, info may be stale" notice around the content and don't interfere with using the content.
This space intentionally left blank
So quite how does "It's terrible, when will it die" and "there's more than just the panel wrong" get to become something a programmer can use?
Are you implying there's a dearth of window managers in the Unix world?
Good ones? Yes! Unfinished tech demos, and tiling CLI dsiplays? Lots! ;)
Yes, yes they do.
...because CRM 2013 and later use a bogged-down piece of junk web interface that 1) expects you to have a touch screen (what.) and 2) actually manages to corrupt itself if you press the BACK BUTTON because IE caches urls... urls which include a temporary session key that expires, leaving tons of our clients wondering why their product magically stops working. The same thing happens with refresh.
The Microsoft solution? They say "hitting back/refresh button is not supported." Yeah, that's right. Microsoft has decided that an entire feature of the internet and 99% of users intuitively use without thinking... leads to a broken system until you manually clear the cache.
And as anyone in IT can attest: It's super easy to get hundreds of salespeople to modify their behavior! Especially when you give them a convenient "break my app" button at the top of their app.
I'd be laughing if I wasn't so sad at the number of stories like this I have related to supporting Microsoft products.
Lockless transaction less database designs? One of us is clueless. Hint: It's you.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
"to make sure your app's in sync"
Are the editors asleep, or just ignorant of basic punctuation?
FFS, hire me as an editor and all this amateur-hour shit will go away, 100% guaranteed.
Just cruising through this digital world at 33 1/3 rpm...
He's a marketing genius. Look no further that the decades of Apple's refusal to add a second button to their mice.
You have to be smarter than the machine you're working with.