← Back to context

Comment by diplomatpuppy

7 years ago

I had a report in Microsoft Access that took about five minutes to run - and the users hated it.

I had the application throw up a fake dialog with fake messages about "Collating data, Cross checking, Sorting" and other such nonsense.

The report now took eight minutes to run because I had to abuse the "On Timer" event for it to work.

The users were delighted with the improvement.

That is one thing I dislike about sites that show no loading bar. On a slow connection it's impossible to tell if the page is still loading or already failed.

It's also one of the irritating things about "Material Design" websites, where responses to clicks are artificially delayed before speeding out with unnatural acceleration. "Nothing is happening. JUST KIDDING!" I'm not sure if that is to mask the slowness of mobile devices or if it's the cause of them. It's the animation spam[1] of the current generation of UIs.

* [1] "Let's make our website sparkle. It will be 'delightful'." http://dynamicdrive.com/dynamicindex3/snow.htm

  • That is one thing I dislike about sites that show no loading bar. On a slow connection it's impossible to tell if the page is still loading or already failed.

    Web browsers have progress bars.

    I think your complaint is with "sites" that just serve a JS payload and then load "the real site" entirely from requests made by JS. Turns out if you generate and serve actual HTML, you get a progress bar for free!

    • I don't know why every thread about Web applications needs someone to tell me that technically HTML was just designed to be a document format. OK, great, now it isn't just that.

      6 replies →

    • I solved this in a react app I’m working on by overriding XMLHttpRequest.prototype.open to listen for the request lifecycle events and update a global “percent loaded” used to render a progress bar at the top of the page.

      It’s far from perfect but is at least a good enough heuristic for the user to know when the page is loading a request.

    • Try to load an AMP page with JavaScript turned off. It can take many seconds, and there is no loading indicator.

    • JS lets you easily implement bars that do reflect progress.

      Turn on the animation => start an async action (e.g. a database call) => end the animation. An error occured? Show the error. Here, simple and informative to the user - and much better than raw html.

  • > That is one thing I dislike about sites that show no loading bar. On a slow connection it's impossible to tell if the page is still loading or already failed.

    To be fair, depending on how the progress bar is implemented, it might not be a guarantee.

  • Clicks have a 200ms (IIRC) delay on Android to give a chance to recognize other gestures. There are hacks to get ride of it, though. It may have to do with that.

    • It's on desktop websites too, like YouTube (add to watchlist), and the delays are longer than 200 ms.

I remember reading long ago about how they did something similar at an airport(Dallas IIRC).

Basically, people complained about baggage claim taking too long, so they just moved the baggage claim area to the other side of the airport, so it took longer for passengers to reach it, by the time they did, their bags would already be there, so the complaints stopped.

Visual confirmation that it isn't hung, I'd be happy too.

Couldn't you have give also vague, but accurate information as well?

User's like to know what's going on, even if they maybe don't understand all the details, but at least they see things are happening and not just a (fake) progress bar. So they can connect more to what is happening and therefore be more understanding and patient instead of just being told to wait, with no further information, which nobody likes.

  • It would be nice - but the Microsoft Access framework didn't really give you a way to ask the query system "How far along are we?"

  • > Couldn't you have give also vague, but accurate information as well?

    Could you give me an example of what you consider "vague, but accurate information?"

    • The article's discussion about the NYT election accuracy meter wiggling randomly (but within the error bars) is a textbook example of "vague but accurate" information, perhaps to a fault.

      How do you visually represent "error bars" to someone who's not technical enough to have ever seen them? Not everyone takes college stats, math, and engineering.

      Technically, wiggling within the error bars is a precise way of saying "the precise location is vague -- it's somewhere within this range", in that at any moment it is showing one precise, acceptable guess.

      The most fascinating piece there was that as the error bars decreased, the range of the wiggling decreased as well.

      Yeah, it doesn't convey the extend of the error bars instantaneously -- you need to stare at it over time -- but it does convey the idea of error bars.

      I think the people upset about the error wiggle are either a) being pedantic that it's not visualized in the way they learned it should be visualized back in college; or b) they haven't accepted the idea that sometimes we don't have an exact precise black-and-white answer (we DO have ways to precisely quantify the degree of our uncertainty though).

      All of this not to say it was the best execution... perhaps if they 'ghosted' previous needle positions like how old movie radars ghost a green blip as the thingie spins around, maybe it would have been a kind of hybrid approach where the error bars do kinda appear in the overlapping ghosting shadows but still change over time...

    • "reticulating splines"

      I guess the lesson to be learnt here is that people are more understanding if you appear to be transparent but you don't have to ACTUALLY be transparent to get the affect.

      8 replies →

In the same vein, at my work in the steel construction industry, when asked by internal and external customers how I'm going with their laser cut components I've taken to telling them: "Your job is important to us and has progressed in the queue".

I can't always give an accurate response because our scheduling is constantly being derailed by urgent tasks and the not-so-urgent tasks get complete in between.

People just want to know you haven't forgotten about them, throw in some light humour and a "I'll try to get it done before knock off tomorrow <wink wink>" and they tend to let me get back to working.

This sounds like a Coding Horror story that is entirely made up. Using a timer made your code go from 5 to 8 minutes?

  • We had only 16 Megs of RAM. I think it had put chunks of the query process to virtual memory to deal with the 'on timer' stuff in the GUI process.

Ages ago I evaluated some reporting software. We were using Crystal Reports at the time. One thing that CR did better than the others was make pages available as they were generated. This made the software feel faster even though it was slower than one or two of the others[0] at the time.

[0] Can't remember which ones exactly.

  • For interactive applications, reponsiveness trumps raw throughput. It's what made operating systems like AmigaOS and BeOS so fast: they didn't actually crunch numbers faster, but they always stayed responsive and quickly reacted to user input under any load, that made them feel faster.

  • Which is why browsers take so seriously the time to first paint despite the efforts by javascript frameworks to push it back.

Missed opportunity for "reticulating splines"