- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
For maximum subtlety: consider code written by a French-speaker, for whom the "native" word for "default" is "défaut".
Now let him loose with a C/C++
switch
statement and a careless attitude to accents, and eventually you'll find an example where the default clause on hisswitch
doesn't ever fire.Because he spelled it "defaut" so the
default:
is just an unused label for agoto
statement.That's subtle.
(A colleague actually did this, and asked me for help finding why. Syntax colouring would have helped him, of course.)
Addendum 2018-02-27 06:41: EDIT: "so the
defaut:
is just an unused label" of course...Admin
Damn, I hated Crystal Reports. Originally, it was a nice little utility that would generate nice looking reports from data. Then (early 2000s) the IP lawyers got hold of it and turned it into overblown do-everything "enterprise" software with insane per-user licensing. The usual deal, thousands of bucks per developer just so you could write a report, hundreds of bucks per user that might potentially want to print out one of these reports. If you were going to use it at all, you'd have to run your whole business (sorry: "enterprise") on it, which means your ass belongs to the Crystal Reports lawyers.
Don't know what the situation is now, but at the time is was a fine, fine argument for being an open-source shop.
Admin
I had a colleague (back in the days of VMS on those lovely old DEC machines) calling me in after he had spent hours trying to debug his DCL.
It took a little while, but in the end I noticed he had started one of the lines with S instead of $.
That was subtle.
Admin
@Quite -- Think you could have subtle problems with DCL? Remember MCR???? [fwi: the true "lovely old DEC machines" ran OS/8, not VMS :) :) :) ]
Admin
Ages ago I despaired over a crashing program under SunOS. I typed "new float(n)" instead of "new float[n]". () and [] really looked almost the same on these boxes...
Admin
I did something similar in my early days in C#. I was tasked to write a C#-application which would update and execute a .jar-file (basically a app which made it easier for users to work with the jar-file). In it I defined a ErrorLog-class which handled specific errors; every error which was not defined was presented to the user like this: "Undefined ERROR {MESSAGE} Please contact dev! This should not happen..."
Of course it happened...a lot...
Admin
First
Admin
Unknown error - 0 / There is no information what exactly went wrong / Crystal Reports FTFY
Admin
We had a legacy application that had exactly one error message: Error -3
Admin
We had one which likewise had only one error message: "Oh bugger."
Admin
So does that last line mean they actually figured out how to deal with what was causing Crystal Reports its issues?
Admin
One of the first ever programs I copied out of a book was a demonstration program for my dot-matrix printer, circa 1993. The program was to show off all the features of my printer, like different fonts, qualities, sizes, graphics, etc, using the Epson escape codes. It was old-school BASIC (line numbers etc) but it did work in QBASIC. But it would do the first part of the demo and then crash out with a "subscript out of range" error - it was actually near the "superscript/subscript print" demo - in my 12yo naivety and I had no idea what that meant. I did note it was a QBASIC error and wondered how it knew I was writing a print program.
After a lot of comparing my code with the book I noticed a missing $ from a CHR$. There were a lot of LPRINT CHR$(27) type commands. Of course the missing $ meant it was looking for an array called "CHR" but QBASIC only allowed 10 elements in an undeclared array, so of course it was out of range. Why an array offset or key was called a "subscript" is anyone's guess!
Admin
The Unreliable Source has a handy article that might shed some light on that. It's about typographical subscript and superscript, but does say more or less what they are used for in e.g. mathematical expressions.
https://en.wikipedia.org/wiki/Subscript_and_superscript
Admin
Been there, done that, but with new char(32) instead of new char[32]. Strangely, it never crashed (which could have helped me sooner), it was just working incorrectly. Spent an afternoon to spot it.
Admin
Because in math numbers of members in a row as a1, a2, a3...aN etc are actually denoted with subscripts
Admin
Not trying to be too "friend of a friend", but when my wife was working on her masters she had to have some intense statistics classes. Her professor was very sharp, but when he learned statistics (many years prior) it was from a teacher with a very heavy Boston accent. This was also during the time when you'd go to a school's computer lab and rent time to run your statistics app to keep from trying to do the work manually. He was working on a project for class and could not get part of his code/app to work. He was getting worried because the additional time was costing him money, so he asked for help from one of the lab assistants. The lab assistant pointed out that although it may have been pronounced that way, the app wouldn't accept it written as "foward regression".
Admin
OS/8 had an epoch of 8 years. "Lovely" it was not.
Admin
Creating reports using Crystal Reports is still great (not perfect, but much more comprehensible than SSRS). Actually getting a program to render the resulting form, on the other hand...
Admin
I once debugged an old style Basic program. The interpreter only handled 1 or 2 character names; alpha or alpha+digit. The programmer had reached O. The problem was a FOR loop that did nothing:
In that terminal font, the problem was much less obvious.
Admin
Crystal Reports is the real WTF.... Building tabular reports is an exercise in madness. I mean, how the hell does a report-generating tool not support tables in any native manner? Seriously?
(My first experience with CR was being asked to insert a column into a table in a report. It took hours. Didn't help that the report form had been produced with a prior version, and now things didn't line up the same way anymore, so I ended up having to manually and individually move and resize every single field. And there were a LOT of fields.)
Admin
I have got some gray hair trying to figure out why my innocent íf (x>0) line does not compile. Finally I discovered that this tiny flyblow on my screen was not flyblow after all.
On the other hand I could spot in a split second what's wrong with coworker's code (a licence vs license mixup). He is a Brit and literally could not see it.
Admin
Ive used crystal - thats actually one of its more useful error messages!
Admin
Crystal Reports? Now "Business Objects". As in, "my business objects most strongly to being charged these prices"
Admin
How could anyone forget the Monitor Console Routine, and the Peripheral Interchange Program? DCL and VMS were very sophisticated by comparison.
Don't remember OS/8, though. I was on RSX11!
Admin
My thoughts exactly. Something custom must have been formatting the -0//. So why not insert something more appropriate than blank characters into the message? And how hard would it be to check the stack trace for evidence that Crystal Reports was involved?
Admin
reminds me of a story: someone making a Baseball video-game made a typo in the complex equation determining how the ball behaves...a "-" instead of a "+" result, the ENTIRE curve-ball subroutine worked backwards! (curved left when the player tried to curve right)
Admin
"Several years after moving on to saner pastures, Brujo returned to visit old friends. On the wall they had added a cool painting with many words that "describe the company culture"."
Brotha, they let you back in the building?? They are some pretty chill dudes.. :D
Admin
One butterfly flapping it's wings may or may not set off a chain of events to start a hurricane that would level a city.
Progressively doping all the butterflies in the world with psychotropic drugs and genetic modifications creates non trivial anthropological effects, limited by the physical capacity of the Earth to generate hurricanes, and the required capital investment of both moral and martial collective efforts only achievable by a collective altruistic effort.
Your subtle problems are quickly being solved by machine learning. Today we walk around with more computational power on our wrists than the entire 1970s Apollo program. Tomorrow, probably in a manner of months, we will have more AI in our pockets than all of AWS combined.
If we use it as an excuse for more selfish, childish behavior, we are dead, god is dead, and according to the Fermi paradox, everything is dead.
If we cherish moral endeavors over materialistic or martial ones, we will surprise ourselves at how easy it was all along. Theoretically, we have the tools needed to heal the nervous system. The only question is do we have the same person after it? The horrors of neurological diseases are truly infinite, let alone blindness and death. I'm going to go out on a limb here, and say that Tesla in Mars orbit is inconsequential.
Signaling Voyager, to signal the sun, to provide a datum ground to Hubble, may be just what we need. In fact, it may be the limits of human thought itself, an invincible ground to use the very very large to move the very very small.
Very likely, we can just assume that is the case, subtly "dope" the human brain over a spectrum of psychotropics, and it will heal, regardless of feral superstitious fears of decay or invasions.
It's one thing to walk a million steps to get to heaven. That's admirable.
It's extraordinary to let heaven rise itself out of the ground with each and every step forward!
Admin
Back in the mists of time (1987) I was working tech support for HP's RTE-A. We had a customer system that was randomly crashing. Eventually I tracked it down to a ":" that should have been a ";" in a thousand-line long Answer file. Degree of difficulty: all I had to work off was a dot-matrix line printing of the Answer file on green-bar paper. If you know what any of those words mean, you are probably as old as I am...
Admin
sounds like maintaining that system was a non-stop duck hunt!
Admin
Dot matrix printer? Young fellow, try a "line printer" - meaning that it had 132 number-letter wheels to print an entire line with one smack of the paper. You were limited to capital letters, numbers, and a very short list of punctuation. Your programming language was FORTRAN or COBOL. And the FORTRAN "if" statement was like:
10, 20, and 30 were labels. It branched three ways for the sign of ( X-Y), negative to 10, zero to 20, and positive to 30. However, since "X" and "Y" were implicitly floating point (no declarations necessary), unless X was just a direct copy of Y, rounding errors meant a "zero" result might take any of the branches.
Admin
-0// is still more helpful than putting a try-catch around your whole code and then simply ignore any exception that might be thrown.
Admin
Anon wrote:
And how hard would it be to check the stack trace for evidence that Crystal Reports was involved?
It could be very hard. Not every kind of error is some fancy Java-like exception object with a built-in stack trace. Even if you have a debugger, it may be too late by the time the error handler is reached; the stack's probably been unwound. What if it was handled by ON ERROR GOTO? What if the error handler is in a different thread or process from the thing that generated the error?
Admin
Ideally, that would just be a matter of mass-selecting a bunch of things and dragging them to the right. Ideally. In my experience, though, SSRS runs into awful design choices far more often. (Maybe I should look into a different tool; ActiveReports, maybe, as we're a .NET and not a Java shop.)
Admin
Brujo is Spanish for warlock/witch. Not really a common name, I guess.
Admin
Probably from the use of subscript in mathematical notation.
e.g. https://math.stackexchange.com/questions/123699/what-do-subscripted-numbers-in-an-equation-mean
Admin
I committed a very memorable subtlety on our codebase once. Here's the change log from the problem report (parts in [brackets] are editorial changes by me to elucidate and/or protect the innocent):
=========================== PROBLEM CREATED BY [OtherPerson] AT 2010-1-12 10:32:37 AM [PROBLEM ASSIGNED TO RobFreundlich]
In [redacted] pop up [created by me a year or more earlier], can't type in [size] input box even though it is enabled.
PROBLEM EDITED BY [OtherPerson] AT 2010-1-12 10:33:24 AM
Correction: can't type the number 6 in this control ?
PROBLEM EDITED BY [OtherPerson] AT 2010-1-12 10:47:57 AM 'ASSIGNED TO' CHANGED FROM 'RobFreundlich' to '[OtherPerson]' STATUS CHANGED FROM 'NEW' to 'CLOSED'
Rob and I found the offending line. That text input was restricted to the characters "123457890" ... 6 was not in the list. Change in my sandbox.
(software is sixist?)
I particularly like OtherPerson's closing comment - I got teased about being "sixist" for quite some time after that one :-)
Admin
FORTRAN-4 treatment of the declaration "INTEGERS A, B, C" concealed a truly subtle error. I wasted way more time and effort on that one than I should have, for something that affected only running time.
Admin
no quack.