Slashdot Mirror


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.

29 of 193 comments (clear)

  1. Refresh is sacred by Anonymous Coward · · Score: 2, Funny

    In India cows are also sacred. You sacred cows! Moo! Moo! Refreshed moo!

  2. And make sure it is an actual button by DontBeAMoran · · Score: 5, Insightful

    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
    1. Re:And make sure it is an actual button by TWX · · Score: 5, Informative

      On a full-featured PC I would agree, but on something with a small screen where every function takes up an inordinate amount of that screen (ie a smartphone that has a UI large enough that a human finger can use) it makes sense to use a model that lacks a dedicated button for the function.

      Like everything it's a compromise. Google's gmail application on Android uses this kind of refresh and it wasn't exactly difficult to accidentally trigger the first time and then subsequently continue using when it became apparent.

      --
      Do not look into laser with remaining eye.
    2. Re:And make sure it is an actual button by Luthair · · Score: 3, Insightful

      This was why we had a menu button, until some UX circle-jerk decided that was too complicated.

    3. Re:And make sure it is an actual button by houstonbofh · · Score: 5, Insightful

      They keep turning high powered multi-monitor computers into phones. I hate that my tablet keeps redirecting to the mobile site... On a 10 inch screen!

    4. Re:And make sure it is an actual button by JohnFen · · Score: 4, Insightful

      What serious sites still have a "mobile version" these days with responsive design?

      Not enough, unfortunately. "Mobile versions" of sites aren't great, but responsive design is far, far more irritating to me.

      I really wish that sites would do one of two things: stop basing the "responsiveness" on the window dimensions, or give some sort of "lock" control to freeze the current layout.

    5. Re:And make sure it is an actual button by d0rp · · Score: 2

      I really wish that sites would do one of two things: stop basing the "responsiveness" on the window dimensions

      What would you base the responsiveness on if not the size available to the website? The whole point is to make it adjust the interface to take advantage on the available space (or lack thereof) across any range of devices using not just the pixel dimensions, but the physical size of the screen (i.e. is it a high-resolution screen on a smartphone which need to have buttons big enough to be used by fingers)

      or give some sort of "lock" control to freeze the current layout.

      This is an interesting idea, but I'm not sure exactly what you mean, can you elaborate with an example?

    6. Re:And make sure it is an actual button by JohnFen · · Score: 2

      What would you base the responsiveness on if not the size available to the website?

      I don't know, as this is a technical problem that I'm not interested in solving. All I know is that the way responsive sites work right now are a constant problem for me, because they rearrange (or even worse, remove) page elements when I resize the window on a desktop. It is often the case that I intentionally resize windows to just show a specific part of a page, and responsiveness really interferes with that.

      I'm not sure exactly what you mean, can you elaborate with an example?

      I'm not sure how I can explain it any more clearly, but here goes: if the page is "locked", then the layout/contents of the page no longer change according to window size. If I make the window too small, I get scrollbars. In other words, I want to be able to turn off the "responsiveness" so that it stops getting in my way.

      Even better, since I never really want a site to be "responsive" in the first place, would be some sort of option I can set that would make this persistent over time and the entire website so I don't have to keep hitting a button, but just a toggle button on each page would suffice.

  3. Apple should re-hire Bruce Tognazzini by msauve · · Score: 4, Informative
    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
    1. Re:Apple should re-hire Bruce Tognazzini by Anonymous Coward · · Score: 2, Insightful

      Tog's a great guy and all but the single worst thing he did to the web was to convince everyone to kill the ComboBox, leaving everyone to reimplement it in javascript, shittily.

  4. Staleness by Clueless+Nick · · Score: 3, Interesting

    What the internet needs, perhaps, is a Staleness indicator.

    --
    Chat with other atheists http://secularchat.org
    1. Re:Staleness by hord · · Score: 4, Interesting

      It's far more complicated. You have a mobile device that can hop networks which means that connections have to be restarted. Meanwhile there is a drive to optimize network efficiency especially on slow, metered wireless networks. To avoid the overhead of connection hand-shaking apps try to use durable socket connections and aggressive client-side caches. When a networked device disconnects from the network, an error isn't always detected in the application leading to keep-alive protocols increasing bandwidth usage. Cache is an entire realm of disaster with no perfect solution due to the fact that you are wanting to atomically change data across multiple systems with no time delay. Simply not even possible.

      All that being said we have techniques for getting around all of this. Many applications simply punt and either use an incomplete wrapper library or write their own incomplete connection/cache handling. I can't even tell you how many Java "Enterprise" applications make you configure connection pools for resources like databases that never restart making applications useless until a service restart. Firewall kills idle connections after an hour? Databases are gone and you can't get them back until a 30-minute Tomcat instance ritual is performed. Does the connection pool have an option for socket keep-alives in the pool config? No. Luckily you can cast a magic spell into some file somewhere where the Oracle can see it. Just my experience, anyway.

  5. Minimal and flat design suck by houstonbofh · · Score: 4, Interesting

    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!

  6. And then there are "smart" refresh buttons by Anonymous Coward · · Score: 5, Insightful

    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.

  7. Nobody? by Gravis+Zero · · Score: 3, Interesting

    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.
  8. What kind of app are we talking about here? by mysidia · · Score: 3, Interesting

    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
    initial /NAMES request, because (Non-buggy) IRC servers always send the proper MODE, JOIN, PART, KICK, and QUIT messages
    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.

    1. Re:What kind of app are we talking about here? by TuringTest · · Score: 2

      you don't see a REFRESH button on any major IRC client, and in fact, the operation would be a major waste of resources.

      A well-implemented refresh in that context shouldn't re-request the whole view if no new content has been published. It shouldn't be heavier than a Ping which returned the last time the content was updated, confirming that the client is up-to-date.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  9. The United Airlines app has this exact problem by geschbacher79 · · Score: 4, Insightful

    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!

  10. But not as sacred as some other things. by ScentCone · · Score: 4, Insightful

    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.
  11. Steve Jobs was wrong by JohnFen · · Score: 4, Insightful

    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.

    1. Re:Steve Jobs was wrong by Tablizer · · Score: 2

      Jobs viewed software more like appliances: minimal intuitive switches and a get-it-done-and-move-on philosophy. He wouldn't market a toaster to tinkerers and hobbyist. You probably want a toaster that runs Linux, right? ;-)

    2. Re:Steve Jobs was wrong by JohnFen · · Score: 2

      Yes, I'm very familiar with Jobs' philosophy -- and it can make sense if what you're building is a single-purpose machine that isn't doing anything incredibly complex.

      You probably want a toaster that runs Linux, right? ;-)

      Only if my toaster was intended to perform complex functions.

    3. Re:Steve Jobs was wrong by thegarbz · · Score: 2

      Eliminating the means by which users can control what applications do is not a good thing.

      That is entirely dependent on the use case.

  12. And there it is... by DriveDog · · Score: 4, Insightful

    "'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.

  13. Re:How do you design the app? by TuringTest · · Score: 2

    Automatic updates don't remove the need to inform the user of the current application state.

    The user needs to know when was the last time that the content was updated; if the page becomes stalled (i.e. the time since last update is longer than expected), this might be because no new content has been created, but also because somewhere in the system there has been a hiccup that prevented an automatic refresh. No matter how reliable you make the system, there will always be delays, and some users will get the rare connection breakdown.

    Providing a Refresh button allows the user to test that the system is still working, requesting the program to update the time-since-last-update and confirm that the current content is up to date.

    --
    Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  14. "Updated 5 minutes ago" by sgage · · Score: 2

    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.

  15. There are two hard problems in computer science by Sloppy · · Score: 2

    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.
    1. Re:There are two hard problems in computer science by sgage · · Score: 2

      Yes, and when you get older, your memory is the first thing to go. I can't remember the second thing...

  16. Refresh is overrated by Waffle+Iron · · Score: 5, Funny

    I was hitting refresh on this very site for the last couple of days, and I got nothing.