Live data from Hacker News

If you move your mouse continually the query may not fail. Do not stop moving

support.microsoft.com

31–40 of 168 posts

Re: If you move your mouse continually the query may not fail. Do not stop moving

#31
So back in the early-mid 90 days of terminals and 24.4K baud modems...I would FTP into a university server to download game demos...and in many cases, in order to get the progressbar moving beyond a slow crawl, I would have to move the mouse around (this was on Windows 95 or something similar)...and the faster I moved it, the faster the download seemed to go. Looking back, I think of it as one of those times when I was just dumb and didn't know how computers worked. But maybe it really was mouse powered...

Re: If you move your mouse continually the query may not fail. Do not stop moving

#32
It may look weird or stupid, but it makes sense to publish it because it actually works.

I don't know what causes this kind of issue but I remember using this workaround at times since windows 95. It somehow prevented freezes of either application or windows from happening.

On the other hand, jiggling the mouse around can also trigger the adverse effect of crashing some other apps under others conditions such as loading screen during games.

Re: If you move your mouse continually the query may not fail. Do not stop moving

#33

When I was a kid, Windows ME would hang on startup unless I kept moving the mouse. My friend's dad, a Math/CS teacher, did not believe me until I showed him.

Microsoft and mice seem to have an odd relationship. The first versions of Windows NT would crash if you moved the mouse while shutting down. Like a child throwing a tantrum because it's bed time...

Some version of OS/2 used to crash at boot if you randomly pressed a few keys...

Re: If you move your mouse continually the query may not fail. Do not stop moving

#34

How does this work? What makes mouse movement relevant to this... this is computers, not magic.

Other folks have answered. I'll try to summarize:

It's an impedance mismatch, you have a long-running background operation (sql query) that is running within the context of an event driven system (a windowing GUI). In this case the problem is that the sub-system that runs the query will only receive cycles when the main thread for the app fires mouse events. This is due to poor application design, of course, though not necessarily to the extent that it may seem, sometimes this sort of thing can be a harder problem than it may seem.

Re: If you move your mouse continually the query may not fail. Do not stop moving

#35
post #27

Earlier quoted context omitted.

Microsoft designed and built the OS and two of the three applications involved. And the third application was almost certainly built using Microsoft development tools according to Microsoft guidelines. How could this not be their fault?

Just because they give you a C compiler and a library to link doesn't mean you blame the compiler developer for letting the user shoot himself in the foot.

That's true, but it's a straw-man argument, because Microsoft did not just produce the compiler. They produced the compiler AND the operating system AND two of the three applications in question.

Re: If you move your mouse continually the query may not fail. Do not stop moving

#36

Earlier quoted context omitted.

Thanks for the clarification. I am aware of what you mention in your answer. In my statement I simplified quite a bit. I know that runloops have different modes. What I was saying is that if you just use the "defaults" then you will see the phenomenon that I described. And I don't think that it is a programmer error if you use the defaults... but sure: These days you would probably just use a framework or take care o…

It almost always programmer error to use defaults mode for NSURLConnection, especially on Mac where they are more runloop modes used by the platform that are not inclusive of defaults mode, unless the user has a very specific reason. File IO is usually ok in defaults mode because it makes code easier and you don't have to worry about timeouts. We make Objective-C run on Android at Apportable :-) The entire stack. Eve…

I still don't agree that it is programmer error per se... but we don't have to agree on that. :)

Your idea is somewhat similar to "our" idea... at Objective-Cloud we try to bring Objective-C to the cloud... :) You try to bring it to Android. What a coincidence. Nice to meet you. :)

Re: If you move your mouse continually the query may not fail. Do not stop moving

#37
post #11

>> This problem has been reported when querying an ORACLE 7.3 data source by using the following ODBC drivers. Sqo32_73.dll is manufactured by Oracle Corporation. Microsoft makes no warranty, implied or otherwise, regarding this product's performance or reliability. Maybe not the fault of Microsoft?

I'm always fascinated by how tightly bound various software is with UI code in Windows. It's the equivalent of random shell scripts having Xlib or Gnome dependencies just to show a progress meter. I guess if it's an event loop thing one could also alternate 'z' and 'x' as fast as possible :-)

This was a major culture clash for me when I ended up working at a company that mainly sells Windows software. I do my best to stay objective about it and not jump to the conclusion that it's incredibly broken because of its hairiness.

Re: If you move your mouse continually the query may not fail. Do not stop moving

#38

This reminds me a bit of how networking works on OS X and iOS (at least if you are using the "standard APIs" the way they are supposed to be used: The networking that is going on is tied to a runloop. Some apps tie the networking stuff to the main run loop. You can see which apps do that by simply opening a context menu in the app somewhere or open a regular menu from the app's main menu. The run loops will be "halte…

MacOS had non-preemptive multitasking, what meant that a progam would only have a chance to transfer data once all other programs released the CPU. The default develoment suite also had several loops were it wouldn't release the CPU, there are some stories around about MacOS servers that stopped serving content because somebody left forcus on the wrong element, or left the mouse on a menu on some application.

But both OS X and iOS are preemptive. Networking just keeps working, but your interface thread may stop for a while depending on how you write your programs.

Re: If you move your mouse continually the query may not fail. Do not stop moving

#39
post #27

Earlier quoted context omitted.

Microsoft designed and built the OS and two of the three applications involved. And the third application was almost certainly built using Microsoft development tools according to Microsoft guidelines. How could this not be their fault?

Just because they give you a C compiler and a library to link doesn't mean you blame the compiler developer for letting the user shoot himself in the foot.

If I understood it correctly, the problem isn't that Oracle is using the Microsoft libraries and compilers incorrectly, it's the other way around. The two applications that are broken when using Oracle's ODBC drivers are actually Microsoft's, so it superficially looks like the company with the user-facing problems either doesn't want to fix their bugs or doesn't want to work around the bugs in the ODBC driver.

This isn't too uncommon, actually, but what usually happens is that the company with the upper hand prevails and the other one has to fix the bugs, lest they piss off their customers who have to leave. However, when both companies keep their users in tight vendor lockdowns, they just wave their cocks around for a few months blaming each other and settle for the users working around, since it's the cheapest alternative.

Re: If you move your mouse continually the query may not fail. Do not stop moving

#40
My pet theory about Microsoft is that worse-is-better provides an overwhelming first-mover advantage, and an even more overwhelming second-mover advantage in the longer term (provided the first mover followed the WiB strategy.) I call this 'technical living-beyond-your-means' (rhymes with 'technical debt'). The flame that burns twice as high burns half as long, yada yada.

Eventually, you will be kicking yourself for not having made it right the first time.

The corollary is that eventually we will all be running Plan 9, so there are probably other factors at play as well, which I will quietly brush under the carpet, like air friction in a high school physics question. ;)

Post reply on HN