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