Success story with BlackBox
----boundary-LibPST-iamunique-2073234568_-_-
Content-type: text/plain
Hello everyone:
I would like to post an uplifting success story
to make it clear how much we are gaining using such
a marvellous software as BlackBox. I dedicate this
story to all my collegaues who are struggling in vain
with C++, root, and other such.
This is a story of a Bug. Bugs happen all the time.
BlackBox does not prevent me from producing bugs
in my code. The question is what happens next,
after the bug is there somewhere waiting to bite.
How much damage is instilled when it bites?
It all happened last Friday evening. We discussed
the data processing algorithm with our student,
who is the first-time BlackBox user. She wrote the code,
and then we took some cosmic-ray data using our acquisition
system written in BlackBox. The spectrum looked good,
so we left it running overnight.
At around 11:46 a particular waveform was acquired
(perhaps due to a power spike?) whose shape was not
what we expected. The data processing procedure was not
prepared for this, and the FOR loop index jumped out
of the array bounds. An illegal memory location
was accessed. The Bug has bitten us from behind.
The C++ users are probably guessing what happened
next. The "segmentation violation - break" error message,
accompanied by "call the program vendor", accompanied by
a program crash, total loss of data, absolute lack of
any clue why all this happened, leading to hours lost
on a frustrating debugging session.
The C++ users are guessing wrong. None of the above
has happened at all. The data which was acquired
before the error was not lost. The acquisition simply
stopped at the point of the error. When I arrived
the next morning, the spectrum was displayed on screen
and I could safely save it to disk.
The "out of bounds" condition was trapped by the BlackBox
runtime environment. The runtime system was intact, and
all the internal variables were preserved. The debugger
window was displayed with a descriptive message telling
what has happened and where. After saving the spectrum
I looked at the debugger window, examined the variables,
and clicked on the link which immediately lead me to
the exact location where the error has occured. The reason
for the error became immediately clear, and I typed in
the appropriate correction of the code. The recompilation
took less than a second, after which I restarted
the acquisition. It all took perhaps five minutes,
which included reading and comprehending the code
written by someone else. Nothing could have been simpler,
and we were sailing again in no time at all.
I told this story to my friends here at the Brookhaven
National Lab. They shook their heads in disbelief
and went straight back to never-ending debugging
of our C++ data analysis code. Our C++ code leaks
memory and crashes for mysterious reasons which nobody
hopes to understand. There is no prospect that it can ever
get any better. In fact, our C++ code is only getting worse,
as it keeps growing and accumulates bugs which nobody
has patience to eradicate.
I dedicate my story to all those who have given up hope
that solid software engineering has ever existed. It did,
and it still does. BlackBox never leaks a single byte
of memory, and I cannot recall the last time it crashed.
However, in order to find such a great tool like BlackBox
one has to open up the mind and start looking beyond
where everyone else is looking. And this may be the biggest
obstacle.
Thank you,
Wojtek Skulski skulski{([at]})nowhere.xy
--------------------------------------------
To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
blackbox-request{([at]})nowhere.xy
To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.
Send any problem reports or questions related to this email list to the list owner at
owner-blackbox{([at]})nowhere.xy
Current posting policy:
a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.
b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.
----boundary-LibPST-iamunique-2073234568_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEhlbGxvIGV2ZXJ5b25lOlxwYXINClxwYXINCiAg
SSB3b3VsZCBsaWtlIHRvIHBvc3QgYW4gdXBsaWZ0aW5nIHN1Y2Nlc3Mgc3RvcnlccGFyDQp0byBt
YWtlIGl0IGNsZWFyIGhvdyBtdWNoIHdlIGFyZSBnYWluaW5nIHVzaW5nIHN1Y2hccGFyDQphIG1h
cnZlbGxvdXMgc29mdHdhcmUgYXMgQmxhY2tCb3guIEkgZGVkaWNhdGUgdGhpc1xwYXINCnN0b3J5
IHRvIGFsbCBteSBjb2xsZWdhdWVzIHdobyBhcmUgc3RydWdnbGluZyBpbiB2YWluXHBhcg0Kd2l0
aCBDKyssIHJvb3QsIGFuZCBvdGhlciBzdWNoLlxwYXINClxwYXINClRoaXMgaXMgYSBzdG9yeSBv
ZiBhIEJ1Zy4gQnVncyBoYXBwZW4gYWxsIHRoZSB0aW1lLlxwYXINCkJsYWNrQm94IGRvZXMgbm90
IHByZXZlbnQgbWUgZnJvbSBwcm9kdWNpbmcgYnVnc1xwYXINCmluIG15IGNvZGUuIFRoZSBxdWVz
dGlvbiBpcyB3aGF0IGhhcHBlbnMgbmV4dCxccGFyDQphZnRlciB0aGUgYnVnIGlzIHRoZXJlIHNv
bWV3aGVyZSB3YWl0aW5nIHRvIGJpdGUuXHBhcg0KSG93IG11Y2ggZGFtYWdlIGlzIGluc3RpbGxl
ZCB3aGVuIGl0IGJpdGVzP1xwYXINClxwYXINCkl0IGFsbCBoYXBwZW5lZCBsYXN0IEZyaWRheSBl
dmVuaW5nLiBXZSBkaXNjdXNzZWRccGFyDQp0aGUgZGF0YSBwcm9jZXNzaW5nIGFsZ29yaXRobSB3
aXRoIG91ciBzdHVkZW50LFxwYXINCndobyBpcyB0aGUgZmlyc3QtdGltZSBCbGFja0JveCB1c2Vy
LiBTaGUgd3JvdGUgdGhlIGNvZGUsXHBhcg0KYW5kIHRoZW4gd2UgdG9vayBzb21lIGNvc21pYy1y
YXkgZGF0YSB1c2luZyBvdXIgYWNxdWlzaXRpb25ccGFyDQpzeXN0ZW0gd3JpdHRlbiBpbiBCbGFj
a0JveC4gVGhlIHNwZWN0cnVtIGxvb2tlZCBnb29kLFxwYXINCnNvIHdlIGxlZnQgaXQgcnVubmlu
ZyBvdmVybmlnaHQuXHBhcg0KXHBhcg0KQXQgYXJvdW5kIDExOjQ2IGEgcGFydGljdWxhciB3YXZl
Zm9ybSB3YXMgYWNxdWlyZWRccGFyDQoocGVyaGFwcyBkdWUgdG8gYSBwb3dlciBzcGlrZT8pIHdo
b3NlIHNoYXBlIHdhcyBub3RccGFyDQp3aGF0IHdlIGV4cGVjdGVkLiBUaGUgZGF0YSBwcm9jZXNz
aW5nIHByb2NlZHVyZSB3YXMgbm90XHBhcg0KcHJlcGFyZWQgZm9yIHRoaXMsIGFuZCB0aGUgRk9S
IGxvb3AgaW5kZXgganVtcGVkIG91dFxwYXINCm9mIHRoZSBhcnJheSBib3VuZHMuIEFuIGlsbGVn
YWwgbWVtb3J5IGxvY2F0aW9uXHBhcg0Kd2FzIGFjY2Vzc2VkLiBUaGUgQnVnIGhhcyBiaXR0ZW4g
dXMgZnJvbSBiZWhpbmQuXHBhcg0KXHBhcg0KVGhlIEMrKyB1c2VycyBhcmUgcHJvYmFibHkgZ3Vl
c3Npbmcgd2hhdCBoYXBwZW5lZFxwYXINCm5leHQuIFRoZSAic2VnbWVudGF0aW9uIHZpb2xhdGlv
biAtIGJyZWFrIiBlcnJvciBtZXNzYWdlLFxwYXINCmFjY29tcGFuaWVkIGJ5ICJjYWxsIHRoZSBw
cm9ncmFtIHZlbmRvciIsIGFjY29tcGFuaWVkIGJ5XHBhcg0KYSBwcm9ncmFtIGNyYXNoLCB0b3Rh
bCBsb3NzIG9mIGRhdGEsIGFic29sdXRlIGxhY2sgb2ZccGFyDQphbnkgY2x1ZSB3aHkgYWxsIHRo
aXMgaGFwcGVuZWQsIGxlYWRpbmcgdG8gaG91cnMgbG9zdFxwYXINCm9uIGEgZnJ1c3RyYXRpbmcg
ZGVidWdnaW5nIHNlc3Npb24uXHBhcg0KXHBhcg0KVGhlIEMrKyB1c2VycyBhcmUgZ3Vlc3Npbmcg
d3JvbmcuIE5vbmUgb2YgdGhlIGFib3ZlXHBhcg0KaGFzIGhhcHBlbmVkIGF0IGFsbC4gVGhlIGRh
dGEgd2hpY2ggd2FzIGFjcXVpcmVkXHBhcg0KYmVmb3JlIHRoZSBlcnJvciB3YXMgbm90IGxvc3Qu
IFRoZSBhY3F1aXNpdGlvbiBzaW1wbHlccGFyDQpzdG9wcGVkIGF0IHRoZSBwb2ludCBvZiB0aGUg
ZXJyb3IuIFdoZW4gSSBhcnJpdmVkXHBhcg0KdGhlIG5leHQgbW9ybmluZywgdGhlIHNwZWN0cnVt
IHdhcyBkaXNwbGF5ZWQgb24gc2NyZWVuXHBhcg0KYW5kIEkgY291bGQgc2FmZWx5IHNhdmUgaXQg
dG8gZGlzay5ccGFyDQpccGFyDQpUaGUgIm91dCBvZiBib3VuZHMiIGNvbmRpdGlvbiB3YXMgdHJh
cHBlZCBieSB0aGUgQmxhY2tCb3hccGFyDQpydW50aW1lIGVudmlyb25tZW50LiBUaGUgcnVudGlt
ZSBzeXN0ZW0gd2FzIGludGFjdCwgYW5kXHBhcg0KYWxsIHRoZSBpbnRlcm5hbCB2YXJpYWJsZXMg
d2VyZSBwcmVzZXJ2ZWQuIFRoZSBkZWJ1Z2dlclxwYXINCndpbmRvdyB3YXMgZGlzcGxheWVkIHdp
dGggYSBkZXNjcmlwdGl2ZSBtZXNzYWdlIHRlbGxpbmdccGFyDQp3aGF0IGhhcyBoYXBwZW5lZCBh
bmQgd2hlcmUuIEFmdGVyIHNhdmluZyB0aGUgc3BlY3RydW1ccGFyDQpJIGxvb2tlZCBhdCB0aGUg
ZGVidWdnZXIgd2luZG93LCBleGFtaW5lZCB0aGUgdmFyaWFibGVzLFxwYXINCmFuZCBjbGlja2Vk
IG9uIHRoZSBsaW5rIHdoaWNoIGltbWVkaWF0ZWx5IGxlYWQgbWUgdG9ccGFyDQp0aGUgZXhhY3Qg
bG9jYXRpb24gd2hlcmUgdGhlIGVycm9yIGhhcyBvY2N1cmVkLiBUaGUgcmVhc29uXHBhcg0KZm9y
IHRoZSBlcnJvciBiZWNhbWUgaW1tZWRpYXRlbHkgY2xlYXIsIGFuZCBJIHR5cGVkIGluXHBhcg0K
dGhlIGFwcHJvcHJpYXRlIGNvcnJlY3Rpb24gb2YgdGhlIGNvZGUuIFRoZSByZWNvbXBpbGF0aW9u
XHBhcg0KdG9vayBsZXNzIHRoYW4gYSBzZWNvbmQsIGFmdGVyIHdoaWNoIEkgcmVzdGFydGVkXHBh
cg0KdGhlIGFjcXVpc2l0aW9uLiBJdCBhbGwgdG9vayBwZXJoYXBzIGZpdmUgbWludXRlcyxccGFy
DQp3aGljaCBpbmNsdWRlZCByZWFkaW5nIGFuZCBjb21wcmVoZW5kaW5nIHRoZSBjb2RlXHBhcg0K
d3JpdHRlbiBieSBzb21lb25lIGVsc2UuIE5vdGhpbmcgY291bGQgaGF2ZSBiZWVuIHNpbXBsZXIs
XHBhcg0KYW5kIHdlIHdlcmUgc2FpbGluZyBhZ2FpbiBpbiBubyB0aW1lIGF0IGFsbC5ccGFyDQpc
cGFyDQpJIHRvbGQgdGhpcyBzdG9yeSB0byBteSBmcmllbmRzIGhlcmUgYXQgdGhlIEJyb29raGF2
ZW5ccGFyDQpOYXRpb25hbCBMYWIuIFRoZXkgc2hvb2sgdGhlaXIgaGVhZHMgaW4gZGlzYmVsaWVm
XHBhcg0KYW5kIHdlbnQgc3RyYWlnaHQgYmFjayB0byBuZXZlci1lbmRpbmcgZGVidWdnaW5nXHBh
cg0Kb2Ygb3VyIEMrKyBkYXRhIGFuYWx5c2lzIGNvZGUuIE91ciBDKysgY29kZSBsZWFrc1xwYXIN
Cm1lbW9yeSBhbmQgY3Jhc2hlcyBmb3IgbXlzdGVyaW91cyByZWFzb25zIHdoaWNoIG5vYm9keVxw
YXINCmhvcGVzIHRvIHVuZGVyc3RhbmQuIFRoZXJlIGlzIG5vIHByb3NwZWN0IHRoYXQgaXQgY2Fu
IGV2ZXJccGFyDQpnZXQgYW55IGJldHRlci4gSW4gZmFjdCwgb3VyIEMrKyBjb2RlIGlzIG9ubHkg
Z2V0dGluZyB3b3JzZSxccGFyDQphcyBpdCBrZWVwcyBncm93aW5nIGFuZCBhY2N1bXVsYXRlcyBi
dWdzIHdoaWNoIG5vYm9keVxwYXINCmhhcyBwYXRpZW5jZSB0byBlcmFkaWNhdGUuXHBhcg0KXHBh
cg0KSSBkZWRpY2F0ZSBteSBzdG9yeSB0byBhbGwgdGhvc2Ugd2hvIGhhdmUgZ2l2ZW4gdXAgaG9w
ZVxwYXINCnRoYXQgc29saWQgc29mdHdhcmUgZW5naW5lZXJpbmcgaGFzIGV2ZXIgZXhpc3RlZC4g
SXQgZGlkLFxwYXINCmFuZCBpdCBzdGlsbCBkb2VzLiBCbGFja0JveCBuZXZlciBsZWFrcyBhIHNp
bmdsZSBieXRlXHBhcg0Kb2YgbWVtb3J5LCBhbmQgSSBjYW5ub3QgcmVjYWxsIHRoZSBsYXN0IHRp
bWUgaXQgY3Jhc2hlZC5ccGFyDQpIb3dldmVyLCBpbiBvcmRlciB0byBmaW5kIHN1Y2ggYSBncmVh
dCB0b29sIGxpa2UgQmxhY2tCb3hccGFyDQpvbmUgaGFzIHRvIG9wZW4gdXAgdGhlIG1pbmQgYW5k
IHN0YXJ0IGxvb2tpbmcgYmV5b25kXHBhcg0Kd2hlcmUgZXZlcnlvbmUgZWxzZSBpcyBsb29raW5n
LiBBbmQgdGhpcyBtYXkgYmUgdGhlIGJpZ2dlc3RccGFyDQpvYnN0YWNsZS5ccGFyDQpccGFyDQpU
aGFuayB5b3UsXHBhcg0KXHBhcg0KV29qdGVrIFNrdWxza2kgc2t1bHNraUBwYXMucm9jaGVzdGVy
LmVkdVxwYXINClxwYXINClxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIG1haWxpbmcgbGlz
dCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAidW5zdWJzY3JpYmUiIHRvOlxw
YXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KXHBhcg0KVG8gZ2V0IGEgbGlz
dCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9ucyBvbiB0aGVpciB1c2Fn
ZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiaGVscCIgdG8gdGhlIGFib3Zl
IGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJvYmxlbSByZXBvcnRzIG9yIHF1ZXN0aW9u
cyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0aGUgbGlzdCBvd25lciBhdFxwYXINCiAg
IG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJlbnQgcG9zdGluZyBwb2xp
Y3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhZGRyZXNz
IGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgbWFpbGluZyBsaXN0LiBUaGF0IHdh
eSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBzdWJzY3JpYmVyIGFuZCBm
b3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0aG91dCBjcmVhdGluZyBhbnkgb3Zl
cmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21lIHJlYXNvbiwgeW91IGNhbm5vdCBwb3N0
IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCwgeW91ciBtZXNz
YWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0uIFBsZWFzZSB1bmRlcnN0YW5kIHRo
YXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUgZGVsYXksIGluIHBhcnRpY3VsYXIg
b3ZlciB3ZWVrZW5kcyBvciBob2x5ZGF5c319AGNxdWlz
----boundary-LibPST-iamunique-2073234568_-_---
Received on Fri Feb 14 2003 - 01:32:03 UTC
This archive was generated by hypermail 2.3.0
: Thu Sep 26 2013 - 06:29:28 UTC