Complete Crash or Engine Hang: which is better?
Curry Kenworthy
curry at pair.com
Thu Apr 29 04:31:04 EDT 2021
(Full disclosure: Testing a "Cheerful Rant" format to see whether
employing some humor is more effective when letting off steam, and
hopefully even slipping a bit of common sense past politically-correct
radars under the cover of attempted wit. We'll see how this fares,
compared to the Standard Angry Rants and reflexive Community Defensive
Reactions that we see every couple of weeks when people "Chimp Out"
after a nasty ground-and-pound session with lovely LiveCode bugs!
Trigger warning: may or may not induce mild chuckling, or in adverse
cases traumatic Frontline Flashbacks to your bug battle days with
intermittent seizures and a nasty full-body rash.)
So...first to apologize for being less talkative here on the list during
the last week: I've been spending some intimate time with one of LC's
least-polished and buggiest features. Yep, I'm back on "paste" and
related areas! It's a part of LC where you could choose to devote the
entire remaining years of your life to the Bug Monkhood, filing
thousands of bug reports and feature requests. Or you can file the most
important dozen reports, avoid full-time Monkhood, and sum it up as:
this area of LiveCode looks only "half-finished." It was a case of Codus
Interruptus, apparently.
More details on that and some other news to follow soon, when I've
finished more workarounds, so that I can meet the client deadline and
then file the bug reports....
Meanwhile, here's a dilemma of another sort:
While working on paste and related areas that seem only half-finished in
the LC Engine, I've been luxuriating in the blissful experience of
having my coding and debugging interrupted by crashes and freezes. Did I
lose any work, you might inquire? Ha ha, that'll be the day! You're
talking to a person so save-compulsive that I can't even type a message
like this without saving the draft after every sentence. (Save.) LC has
trained me well, in the style of Pavlov's mutts. (Save, salivate.) So
that's not even a problem.
No, the trouble is trying to decide whether my all-time favorite should
be the Crash or the Hang.
Both are elegant ways of ending a work session. Yet each has its
attractions, and even LiveCode's trusty conditioning hasn't provided me
with a clear answer on which is better. (Wait, or has it? Save,
salivate, wag.)
Crashing instantly out to the Desktop is convenient, because you're all
set to relaunch LC again with not so much as an extra click. You can
relaunch and crash, relaunch and crash, almost as fast as one of those
toy monkeys with the cymbals, and with a similar overall appearance.
After you've done a few repeats, you also get a quicker start on your
Cheerful Rant or your bug report. The complete instant crash (as long as
the app simply disappears, with no system dialogs) is the epitome of a
very clean and crisp user experience; I have to admire the purism.
Finally, the nostalgia factor is huge: it really takes me back to LC
1.1.1 and my first days here. ("Hey, where'd the IDE go?") Thus, the
winner for classic style might be the Instant Crash. All the Cool Kids
do this; you should too!
However, having the Engine "hang" can provide additional useful clues to
the cause of the problem, in around 13% of all cases. That's
automatically making lemons into lemonade, as long as your computer
monitor was built up-to-snuff in Silicon Santa's third world sweatshops
and the helpful clues don't "burn in" to the screen. The Hang also
provides much of your recommended daily amount of Task Manager exercise
with force-quit repetitions to bulk up mouse-hand and mouse-finger
musculature on one side of your body, hermit-crab style. The asymmetric
look will be trending any day now.
Meanwhile your CPU gets an extra workout too, and this provides an
excellent test of your OS kernel in throttling and managing
out-of-control processes. (Usually that means LC.) This even warms up
your laptop on those cold mornings. And when someone asks you "how's it
hanging" you can quip a very technical answer with the computer usage
stats for that particular bug. ("Yeah my homie, it's hanging around 37%
CPU load today.") Altogether, that's a ton of added value; the Hang has
a lot of bang for the buck! This is Fat Jolly Giant Panda Buffet of
session endings.
(For some there might be a childish tit-for-tat psychological appeal for
the "Hang" in exercising control and closure over deciding when to force
LC to quit. However, I would argue that's illusory; force-quit is almost
always reactive. LC consistently maintains the iniative. The IDE
arbitrarily chooses the moment and the manner to unceremoniously end
your workflow, then forces you to take additional steps just to cool
down your chip. Your only true choice is whether to relaunch or not.
Therefore LC is calling the shots: LC = Pavlov. You're hoping for a
little Beefaroni, maybe even a pat on the head: You = mutt. Force-quit,
salivate.)
Therefore...if I had a tiny antimatter emitter pointed at my forehead
and some little alien dude was demanding in that I chose one or the
other right now, I guess I'd go with the Quick Complete Crash. It saves
considerable time and energy over the force quits. That's valuable
energy to use for workarounds, bug reports, and the obligatory Cheerful
Rant. Plus your hardware may last a bit longer.
Fortunately, as long as no little alien dude shows up and holds the
universe ransom, there's really no need to choose between the Crash and
the Hang. As long as you code with LC frequently, and test more of its
features, you can have both!
BTW, Jonathan Swift was completely misguided in his implications, thus
correct at face value: indeed cannabilism is preferable to potatoes.
Likewise, you can bet every last well-chewed bone of that scrumptious
feast on the obvious fact that LC bugginess bears absolutely no
relationship whatsoever to LC refactoring or development philosophy, and
furthermore that software releases can never be "stable" because that
word has been conveniently redefined already. Thus, evil is actually
good and necessary, as Eddie Murphy said once in a "sermon" of sorts.
OK, now that the Cheerful Rant is completed, with only a few dozen
anti-humorists and stable-strategic-ambiguists offended (you can't
please everyone) back to the workarounds! Indeed the lame humor seemed
effective here on my end for stress relief, although I probably caused
innumerable casualties and crises around the world with this little
experiment.
Luckily I've found a way of avoiding this particular LC Engine hang - I
think - so I'll press on to the next glitchy LC area. Pasting is
actually getting pretty good. Nearing the final stretch of this
deadline, so I'll be able to start writing recipes and filing bug
reports soon, and hopefully these workarounds and improvements will
eventually find their way into one of my addons so that others can
benefit. That will come after some updates for existing addons, of
course. Moving toward a next-gen workflow to facilitate more frequent
updates and more commonality between addons....
Best wishes,
Curry Kenworthy
Custom Software Development
"Better Methods, Better Results"
LiveCode Training and Consulting
http://livecodeconsulting.com/
More information about the use-livecode
mailing list