Results 1 to 25 of 25
-
2021-08-06, 10:39 AM (ISO 8601)
- Join Date
- Dec 2006
- Location
- Raleigh NC
- Gender
The mysterious case of the disappearing license plate
Seen in Wired
So the subject of the article, Joseph Tartaro, decided to get a license plate with the label - 'NULL' .
This had a number of side effects amusing to everyone but him.
Originally Posted by wired
Originally Posted by Wired
Brian P."Every lie we tell incurs a debt to the truth. Sooner or later, that debt is paid."
-Valery Legasov in Chernobyl
-
2021-08-06, 10:57 AM (ISO 8601)
- Join Date
- Mar 2012
- Location
- UK
- Gender
Re: The mysterious case of the disappearing license plate
To be honest, these stories sounds like Urban Myths for the computer generation to me. A Null result and the string "Null" won't equate without considerable effort from the programmer to make them do so - so these systems would have to be very badly written to have this effect.
-
2021-08-06, 11:07 AM (ISO 8601)
- Join Date
- Nov 2007
- Location
- Cippa's River Meadow
- Gender
-
2021-08-06, 11:26 AM (ISO 8601)
- Join Date
- Mar 2009
Re: The mysterious case of the disappearing license plate
Yeah. Remember the default rule for the public sector is "the cheapest one".
Worked on getting our agency a new phone system. We did all sorts of research, then when the time came discovered that our results made up 30% of the weight for the decision and price was 70%, which meant there was no way that anything other than the cheapest was going to win."That's a horrible idea! What time?"
T-Shirt given to me by a good friend.. "in fairness, I was unsupervised at the time".
-
2021-08-06, 11:32 AM (ISO 8601)
- Join Date
- Nov 2006
- Location
- England. Ish.
- Gender
Re: The mysterious case of the disappearing license plate
This is a variation on an old story - a slightly more believable version appears in the 9th March 1988 Risks Digest (Number Plate Sans Sense).
The null value to "null" is quite believable, though - many languages, especially older ones, do not handle nulls (with Oracle you had to supply an indicator variable and check that), so a library that sticks literal "null" where there is a null value going into a string isn't too surprising. At least one Java method does, if this post is anything to go by...Warning: This posting may contain wit, wisdom, pathos, irony, satire, sarcasm and puns. And traces of nut.
"The main skill of a good ruler seems to be not preventing the conflagrations but rather keeping them contained enough they rate more as campfires." Rogar Demonblud
"Hold on just a d*** second. UK has spam callers that try to get you to buy conservatories?!? Even y'alls spammers are higher class than ours!" Peelee
-
2021-08-06, 01:11 PM (ISO 8601)
- Join Date
- Dec 2006
- Location
- Raleigh NC
- Gender
Re: The mysterious case of the disappearing license plate
"Every lie we tell incurs a debt to the truth. Sooner or later, that debt is paid."
-Valery Legasov in Chernobyl
-
2021-08-06, 01:12 PM (ISO 8601)
- Join Date
- Mar 2012
- Location
- UK
- Gender
Re: The mysterious case of the disappearing license plate
I do work in the public sector, and have for most of my career - evaluating the string "null" as equal to a null value is way too clever for most poor programmers. (Note - I am actually a software tester by profession, though I have to admit it has never occurred to me to try this!)
-
2021-08-06, 04:59 PM (ISO 8601)
- Join Date
- Oct 2007
- Location
- St. Louis
- Gender
Re: The mysterious case of the disappearing license plate
I'm actually wondering what kind of database is in use because NULL != NULL. Maybe they're using ISNULL(fieldname,'*') calculations or the equivalent.
Ask me about our low price vacation plans in the Elemental Plane of Puppies and PieSpoiler
Evoker avatar by kpenguin. Evoker Pony by Dirtytabs. Grey Mouser, disciple of cupcakes by me. Any and all commiepuppies by BRC
-
2021-08-06, 05:44 PM (ISO 8601)
- Join Date
- Mar 2007
- Location
- Oregon, USA
Re: The mysterious case of the disappearing license plate
Doesn't have to be the database; a few weeks ago I was helping someone deal with a situation where an ETL started writing null values as an empty string instead of the string "NULL" without advance notice, with all the downstream cascading effects that entailed.
I'm sure this is because a lot of major systems are old enough that no one wants to touch them for fear of breaking them, but I'm still alarmed at how often I see CSV used for moving data between systems....Last edited by Jasdoif; 2021-08-06 at 05:55 PM.
FeytouchedBanana eldritch disciple avatar by...me!
The Index of the Giant's Comments VI―Making Dogma from Zapped Bananas
-
2021-08-06, 10:09 PM (ISO 8601)
- Join Date
- May 2009
Re: The mysterious case of the disappearing license plate
"None of us likes to be hated, none of us likes to be shunned. A natural result of these conditions is, that we consciously or unconsciously pay more attention to tuning our opinions to our neighbor’s pitch and preserving his approval than we do to examining the opinions searchingly and seeing to it that they are right and sound." - Mark Twain
-
2021-08-06, 11:37 PM (ISO 8601)
- Join Date
- Mar 2007
- Location
- Oregon, USA
Re: The mysterious case of the disappearing license plate
Yeah. I mean, that was my initial reaction too; but the method used to connect the two systems is CSV, so basically everything is a string unless the parser chooses to treat it differently. If the parser didn't distinguish a null value from the value "NULL", or if the CSV writing process didn't provide any way for the parser to distinguish a null value from the value "NULL", you'd almost certainly end up with null values being transformed to values of "NULL"; creating a scenario like mentioned in the OP, either directly or as the erroneously transformed data made its way downstream into other systems through no fault of their own (or possibly hiding a fault of their own, as they would never receive a null value themselves in this case).
FeytouchedBanana eldritch disciple avatar by...me!
The Index of the Giant's Comments VI―Making Dogma from Zapped Bananas
-
2021-08-07, 03:28 AM (ISO 8601)
- Join Date
- Mar 2012
- Location
- UK
- Gender
Re: The mysterious case of the disappearing license plate
And this is why I still don't believe the story (or at least I regard it as highly dubious). Yes I know it purports to be about an actual person and gives lots of details and comes from a reputable magazine; but lots of now confirmed urban myths got told like that too, so whilst the level of detail is evidence, it is not conclusive.
The level of effort that would have to go into making this fault happen is large, and highly unlikely to happen, though I accept not impossible.
[Basically you need a scenario where null values are causing faults so someone codes in a patch to replace them with a null string to stop them from breaking the system. This implies very poor design in the first place, but it is then made worse by no-one pointing out the risk of such a "fix".]
-
2021-08-07, 07:04 AM (ISO 8601)
- Join Date
- Nov 2006
- Location
- England. Ish.
- Gender
Re: The mysterious case of the disappearing license plate
Well, in theory, nul != null and null = null would both give the same result in a database because the only null tests that are supposed to work are IS NULL and IS NOT NULL. However when I tested it back in the day Oracle, SQL Server and Sybase all worked differently. Oracle makes things harder by treating '' as null, while Sybase and SQL Server treat '' as empty string.
CSV (or, for preference TSV) and Excel are perfectly good tools provided (like any tool) you understand their limitations. I have been using both for over 35 years.
Yes, CSV/TSV does not handle nulls (and is pretty shaky on xLOBs), and that is a limitation you have to remember. But it is the one format I can pretty much guarantee to be able to transfer across different systems.
Yes, Excel has other problems, but understand and work within those limitations and it is a hugely powerful tool. Yes, there have been huge disasters, but unfortunately it's the disasters that get the publicity.
Modern tools stll have the same issues - we are transferring data from SQL Server to Oracle using AWS DMS, and the biggest problem we had was the null handling (to the extent that we had to switch validation off because DMS couldn't cope with the bodges put in to handle empty strings, nulls and the combinations thereof).
I can assure you that it is quite plausable. A lot of systems have nullable columns where they really should be not null, and this thing is often not found out in testing. There are also some very obscure data conditions that only come to light in live data, and often only after some time. That's why the "noplate" in the story I quoted was plausable.
At least one command line tool I am aware of will display "null" in a query if a value displayed is null - quite reasonable if the query is for display. However if that query is then used to generate a data file to be passed on to a seperate subsystem, that's where you get the null -> "null" coming in.
And finally, what seems like a sensible programming decision to one person may seem nonsense to another. From my own experience:
SpoilerI had to visit one of our local hospitals. I went to Reception and identified myself to the receptionist. She asked if I had filled in the Questionnaire (in effect, the Personal Details form) and I hadn't. She brought out her copy of the form, which had been partially filled in by the administrator who made the original appointment.
It started with the following information:
Name: XXXXXX YYYYYY (Obviously, I'm not putting my real name out in the forum)
Sex: Unknown
I have to stress that I did not speak to the administrator. It was set up automatically, and it was likley that the administrator only recieved the name and the address.
Our reactions to this little piece of data were quite different:
Her reaction was to mutter darkly about the administrator who could not tell that "XXXXXX" was clearly "Male".
My reaction was that:
(a) The database designer had understood that it was possible for the sex to be unknown (at least at the time the appointment was set up), and chosen suitable values for the field: male, female and unknown.
(b) In the absence of supplied information, the administrator had not assumed that any one name implied a specific gender - reasonable as some names are used by both genders, andsomeone not familliar with English names might not be able to guess the gender.
So, as far as I can see, the system was designed correctly, the administrator used it correctly, but the receptionist interpreted it as "bad" because the result was not what she thought of as reasonable.
As noted, these don't have to be things introduced in "fixes" - they can exist quite happily in the original system, and are frequently known risks. "Risk" isn't a binary - sometimes risks are accepted because the effort/cost to eliminate them is too great for the system in question.
Speaking as a "poor programmer", and indeed one who started in COBOL - one of the first things we were taught in database programing was the ifnull() function or its equivalent. as well as the far more complicated methods of handling nulls in a programming language that does not support them (the aforementioned indicator variables). Please rest assured that we were more than "clever" enough to code whatever the application required.Last edited by Manga Shoggoth; 2021-08-07 at 07:32 AM.
Warning: This posting may contain wit, wisdom, pathos, irony, satire, sarcasm and puns. And traces of nut.
"The main skill of a good ruler seems to be not preventing the conflagrations but rather keeping them contained enough they rate more as campfires." Rogar Demonblud
"Hold on just a d*** second. UK has spam callers that try to get you to buy conservatories?!? Even y'alls spammers are higher class than ours!" Peelee
-
2021-08-07, 08:07 AM (ISO 8601)
- Join Date
- Feb 2015
Re: The mysterious case of the disappearing license plate
I think I can imagine some workflows, using default forms of common tools, that will transform a null to "NaN".
-
2021-08-07, 10:19 AM (ISO 8601)
- Join Date
- Jul 2010
Re: The mysterious case of the disappearing license plate
If you read the story, the author claims to have gotten a little information directly from the private company which processed the tickets, and also a quote from a DMV spokesperson. If the story is false, then the author has to have lied about that information as well. Joseph Tartaro, the subject of the story, has also given at least one public talk at DEFCON about this.
https://www.youtube.com/watch?v=TwRE2QK1Ibc
While there have been notable examples of authors fabricating sources and information for news articles, most of the examples I am aware of were much lower profile, harder to refute stories used to pad the authors' submission numbers.
I'm not saying it's impossible that this story is substantially false, but based on my experience with unreliable and reliable media sources, I can't truthfully call it "highly dubious," myself.
I'd say that this story is very likely to be substantially true as reported by Wired.
-
2021-08-07, 11:16 AM (ISO 8601)
- Join Date
- Mar 2007
- Location
- Oregon, USA
Re: The mysterious case of the disappearing license plate
The number of times I've encountered some variant of "data is written with a different dialect of CSV than it is read with, no one was aware of the difference because both parties called it CSV and none of the initial test data contained anything that would be affected by it, and the error handling meant no one knew anything was ever wrong until someone noticed funky rows in the live data" is a factor in my response.
Understanding limitations is key to any tool, of course; but with CSV it's particularly easy to end up with a scenario where "yes, this system exports to CSV" and "yes, that system imports from CSV" looks like they can just be hooked together, right up until an unusual row comes up with a problem and that problem is found.FeytouchedBanana eldritch disciple avatar by...me!
The Index of the Giant's Comments VI―Making Dogma from Zapped Bananas
-
2021-08-07, 12:43 PM (ISO 8601)
- Join Date
- Jun 2018
- Location
- Belgium
- Gender
Re: The mysterious case of the disappearing license plate
Half as Interesting also did a story on this: https://www.youtube.com/watch?v=_c1am8NSx_s
And they also mention this Christopher Null.
I've done some database development and a lot of programming and while I've never had this particular issue, I'm still surprised how very little things can royally screw up a database and/or the downstream handling of it.Clacks-Overhead: GNU Terry Pratchett
"Magic can turn a frog into a prince. Science can turn a frog into a Ph.D. and you still have the frog you started with." Terry Pratchett
"I will not yield to evil, unless she's cute."
-
2021-08-07, 12:46 PM (ISO 8601)
- Join Date
- Nov 2006
- Location
- England. Ish.
- Gender
Re: The mysterious case of the disappearing license plate
Oh, absolutely - the cases where I have seen CSV used successfully have tended to be within tightly coupled systems, where these things have been checked carefully. But that just means that you need to test the thing properly, which applies to any data transfer method - and "properly" is a bit of a movable feast.
Last edited by Manga Shoggoth; 2021-08-07 at 12:46 PM.
Warning: This posting may contain wit, wisdom, pathos, irony, satire, sarcasm and puns. And traces of nut.
"The main skill of a good ruler seems to be not preventing the conflagrations but rather keeping them contained enough they rate more as campfires." Rogar Demonblud
"Hold on just a d*** second. UK has spam callers that try to get you to buy conservatories?!? Even y'alls spammers are higher class than ours!" Peelee
-
2021-08-07, 11:15 PM (ISO 8601)
- Join Date
- May 2009
Re: The mysterious case of the disappearing license plate
And that's the problem with Excel, and CSV alike. They're both deceptively easy to use. Right up to the point where the assumptions made when they were first used for a particular task no longer hold, and then they will fail disastrously but, and this is the real rub, quietly. Unless you're paying closer attention than, let's face it, nearly anyone ever does to their daily routine, you will only notice there's a problem when someone gets spectacularly angry about it.
Example. Others abound."None of us likes to be hated, none of us likes to be shunned. A natural result of these conditions is, that we consciously or unconsciously pay more attention to tuning our opinions to our neighbor’s pitch and preserving his approval than we do to examining the opinions searchingly and seeing to it that they are right and sound." - Mark Twain
-
2021-08-08, 04:59 AM (ISO 8601)
- Join Date
- Nov 2006
- Location
- England. Ish.
- Gender
Re: The mysterious case of the disappearing license plate
It is interesting that the article you quote is happy with CSV, but not with Excel...
(EDIT: I don't know how they did it there, but I just generated such a file and opened it - Excel gives me a very clear error message saying "File not loaded completely" - If someone ignores the error message, that's on them, not Excel)
It is only the disasters that get publicity, though. The Gruniad (or any other news source) will never issue a report about systems that have been running perfectly for years.
Your argument also applies to every tool and environment I have worked in. If you change anything you can push it to the point where the underlying assumptions break down, and this will often be silent. It isn't just a feature of CSV and Excel, for all that they are favourite whipping boys.
They 'ain't perfect, but it is worth remembering that the old saws "a bad workmen blames his tools", and "a fool with a tool is still a fool" exist for a reason.Last edited by Manga Shoggoth; 2021-08-08 at 05:15 AM.
Warning: This posting may contain wit, wisdom, pathos, irony, satire, sarcasm and puns. And traces of nut.
"The main skill of a good ruler seems to be not preventing the conflagrations but rather keeping them contained enough they rate more as campfires." Rogar Demonblud
"Hold on just a d*** second. UK has spam callers that try to get you to buy conservatories?!? Even y'alls spammers are higher class than ours!" Peelee
-
2021-08-08, 09:01 PM (ISO 8601)
- Join Date
- Nov 2006
- Location
- Watching the world go by
- Gender
Re: The mysterious case of the disappearing license plate
My current job description could be (but isn't due to bureaucracy) "test engineer for 20 year old government system". Okay, so that 20 years is since design inception, not since delivery, but there are still lots of design decisions that remind me of high school. A couple weeks ago I found a long-standing bug because somebody had changed something and broken how my expected CSV was going to look. I have actually taken to parsing the .csv files with matlab because it cuts down on steps like "add a column here to convert from miles to kilometers" versus using excel to deal with them. The biggest problem: matlab hates .csv almost as much as it hates itself.
-
2021-08-15, 01:28 PM (ISO 8601)
- Join Date
- Feb 2016
Re: The mysterious case of the disappearing license plate
The very last example in that article ia their own fault for not turning autocorrect off. That's the first thing you do whenever you install a new office program
EDIT:
The main problem the article talks about is definitely on mirosoft's end though. Why is there a limit on how much it can load that isn't just "this is how much memory the computer has"Last edited by Bohandas; 2021-08-15 at 01:30 PM.
"If you want to understand biology don't think about vibrant throbbing gels and oozes, think about information technology" -Richard Dawkins
Omegaupdate Forum
WoTC Forums Archive + Indexing Projext
PostImage, a free and sensible alternative to Photobucket
Temple+ Modding Project for Atari's Temple of Elemental Evil
Morrus' RPG Forum (EN World v2)
-
2021-08-15, 02:15 PM (ISO 8601)
- Join Date
- Nov 2006
- Location
- England. Ish.
- Gender
Re: The mysterious case of the disappearing license plate
I'm actually doing a little research on that now. I don't think Microsoft have an official reason, but I suspect part of it is "to stop people trying to treat Excel as a database".
EDIT: The general belief is it is down to performance and efficency, although the "Excel isn't a database" thing comes up from place to place.
I would argue that it isn't Microsoft's fault though. The limits are published, and it appears to inform you when you hit the limit (at least in the testing I have done).Last edited by Manga Shoggoth; 2021-08-15 at 02:29 PM.
Warning: This posting may contain wit, wisdom, pathos, irony, satire, sarcasm and puns. And traces of nut.
"The main skill of a good ruler seems to be not preventing the conflagrations but rather keeping them contained enough they rate more as campfires." Rogar Demonblud
"Hold on just a d*** second. UK has spam callers that try to get you to buy conservatories?!? Even y'alls spammers are higher class than ours!" Peelee
-
2021-09-27, 01:16 PM (ISO 8601)
- Join Date
- Aug 2009
- Location
- Maryland
- Gender
-
2021-09-27, 06:19 PM (ISO 8601)
- Join Date
- Jan 2007
Re: The mysterious case of the disappearing license plate
Are you related to Boby Tables by any chance?
All that discussion of silent change of data types reminds me of how some languages *cough* javasript *cough* do not care if you put mismatching types into some operation. This results for example in equality not being a transitive property. There are quite a few talk pointing odd behavior of for example javascript which are often a result of automatic casting of expressions into some type or another. I have no problem with believing that null becomes 'null' due to sloppy programming or just some unpredictable interaction of various pieces of code.In a war it doesn't matter who's right, only who's left.