> JOSEPH TARTARO: I had a wad of envelopes. It was like 15 envelopes. You know, with my name and my address and everything. I was just like, “What the hell?” Because I don’t really get mail. But then I open the first one up and it’s like, “I got a parking ticket.”
> SIMON: What it appeared was happening was that instead of his Null license plate being stored as blank, every blank license plate was being stored as null. And so every ticket written without a plate number, maybe cuz the car didn’t have one or the cop forgot to fill it in was being sent to Joseph.
A friend had the numberplate 'NULL'.
Quite often carparks with numberplate technology would go all 'Hotel California' on him - wouldn't let them out until he called someone to remotely activate the boom to let him through.
Eventually the councils and carpark operators caught on.
My biggest frustration about names though, is that even if I “do it right” more or less by allowing a full name to be a single column with loose “validation,” the next thing I’m confronted with is some stupid integration point whose API demands exactly “first name” and “last name” and we’re stuck parsing our nice single name field up into random slices. Mostly because someone wanted to get cute by uselessly greeting you with a “Hi, Bob!” or they think those circles with exactly 2 initials are a good substitute for putting names on the screen.
The shirt may be less funny for some residents of Butler County, Kansas who got swatted because a mapping firm did't resolve unknown locations to Null Island, but rather than to the geographic center of the United States. Their house.
I mean, they should default to an out of band error; these days, especially for something as high level as mapping, there's no good reason to need to fold "this is an error case" in with "this is a set of valid coordinates X"
Psst, the math joke here is that "the point at infinity" is literally the mathematicians version of folding in "this is an error case" with "valid coordinates". The "error case" in question being division by zero. Turns out there is good reason to do it, because it means the co-ordinate is always defined.
I'd also add that I appreciate a good maths joke, but that's far outweighed by an irrational (in degree) anger at APIs where the error case is a member of the success cases type
Some of the fault for that issue is with the application developers and not the mapping firm.
At least one of the popular data sources does NOT return a long,lat coordinate, it returns a long,lat coordinate plus an "accuracy radius". For unknown US locations this was the "center" of the US plus a 1000km radius.. but most people never used the radius value and only blindly returned the center coordinate as truth.
This is also the problem with some "zero value postcodes", at least in Netherlands[1] – I'm not sure how that works in the US. People just manually fill in "1111 AA", "1234 AB", etc. and forms blindly accept that – it is a valid postcode after all. People have had their utilities disconnected, have debts ascribed to them, are unable to register for services, etc.
Ah, good memories of systems which were primarily tested against 0,0 and immediately showed issues apart as soon as they were tested against anything else. (radians/degrees conversion issues are easily hidden when working near null island, for example)
The joke is that as a person who lives on the East Coast, I end up with files or whatever from Dec. 31, 1969, which is a very random date until you realize it's localizing the zero timestamp into my local timezone. My brother-in-law once asked me why he had a bunch of photos in his photo library marked as Dec. 31, 1969 and I had to explain it to him.
Another thing that will cause 31 December 1969, regardless of timezones, is the use of -1 as a sentinel value, because taken as a literal time value that's one second before the start of the epoch, and thus it's also on 31st December 1969.
But if you checked the time and it's some hours off, rather than a second or two, then yes, that's timezones.
Well, isn't the number always interpreted as seconds (or milliseconds) at UTC? In theory if the system's timezone is set to e.g. +10:00, -1 (seconds) is 1970-01-01 09:59:59 local.
The first time I ran into this, I was working on an application that tracks delivery trucks. I wondered how - and why - the hell the truck got to the ocean near Nigeria.
It's important to output null / None instead of zero if you don't have any data!
> It's important to output null / None instead of zero if you don't have any data!
This is one of my gripes with Go, it's hard to express none vs default value. With languages like Kotlin you can either do `null` or created a sealed class (sum-type like) that has to be explicitly checked for the sentinel value.
(Yes, you can use pointers, but that isn't exactly ergonomic.)
> Null Island is the location at zero degrees latitude and zero degrees longitude (0°N 0°E), i.e., where the prime meridian and the equator intersect. The name is often used in mapping software as a placeholder to help find and correct database entries that have erroneously been assigned the coordinates 0,0.
45 comments
[ 3.7 ms ] story [ 105 ms ] threadhttps://radiolab.org/podcast/null
> JOSEPH TARTARO: I had a wad of envelopes. It was like 15 envelopes. You know, with my name and my address and everything. I was just like, “What the hell?” Because I don’t really get mail. But then I open the first one up and it’s like, “I got a parking ticket.”
> SIMON: What it appeared was happening was that instead of his Null license plate being stored as blank, every blank license plate was being stored as null. And so every ticket written without a plate number, maybe cuz the car didn’t have one or the cop forgot to fill it in was being sent to Joseph.
They even cover /u/patio11's famous "Falsehoods Programmers Believe About Names" essay. https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...
My biggest frustration about names though, is that even if I “do it right” more or less by allowing a full name to be a single column with loose “validation,” the next thing I’m confronted with is some stupid integration point whose API demands exactly “first name” and “last name” and we’re stuck parsing our nice single name field up into random slices. Mostly because someone wanted to get cute by uselessly greeting you with a “Hi, Bob!” or they think those circles with exactly 2 initials are a good substitute for putting names on the screen.
There is an official domain reserved for this type of use (example.com). There's also a dedicated TLD (.test), but that is probably used even less.
https://arstechnica.com/tech-policy/2016/08/kansas-couple-su...
At least one of the popular data sources does NOT return a long,lat coordinate, it returns a long,lat coordinate plus an "accuracy radius". For unknown US locations this was the "center" of the US plus a 1000km radius.. but most people never used the radius value and only blindly returned the center coordinate as truth.
You can see this in action if you go to https://www.maxmind.com/en/geoip2-precision-demo and search for 17.1.2.3. it comes back with (37.751, -97.822) with a radius of 1000km.
(37.751, -97.822) being the new "adjusted" center that's now in the middle of a reservoir.
[1]: (In Dutch) https://www.vice.com/nl/article/wj8b4x/wonen-op-postcode-123...
But if you checked the time and it's some hours off, rather than a second or two, then yes, that's timezones.
Null Island - https://news.ycombinator.com/item?id=36987839 - Aug 2023 (2 comments)
Null Island is one of the most visited places on Earth, and it doesn’t exist - https://news.ycombinator.com/item?id=35651871 - April 2023 (87 comments)
Null Island - https://news.ycombinator.com/item?id=35592960 - April 2023 (1 comment)
Null Island - https://news.ycombinator.com/item?id=34860299 - Feb 2023 (1 comment)
Null Island, the most real of fictional places [pdf] - https://news.ycombinator.com/item?id=31080519 - April 2022 (37 comments)
Null Island - https://news.ycombinator.com/item?id=21854780 - Dec 2019 (56 comments)
Null Island - https://news.ycombinator.com/item?id=21552176 - Nov 2019 (1 comment)
Null Island - https://news.ycombinator.com/item?id=19329101 - March 2019 (1 comment)
If You Can’t Follow Directions, You’ll End Up on Null Island - https://news.ycombinator.com/item?id=12090980 - July 2016 (54 comments)
The Republic of NULL Island - https://news.ycombinator.com/item?id=11734180 - May 2016 (15 comments)
The Geographical Oddity of Null Island - https://news.ycombinator.com/item?id=11600396 - April 2016 (14 comments)
The Republic of Null Island - https://news.ycombinator.com/item?id=10952593 - Jan 2016 (2 comments)
A Brief History of Null Island - https://news.ycombinator.com/item?id=10949292 - Jan 2016 (7 comments)
(Created by me long time ago)
It's important to output null / None instead of zero if you don't have any data!
This is one of my gripes with Go, it's hard to express none vs default value. With languages like Kotlin you can either do `null` or created a sealed class (sum-type like) that has to be explicitly checked for the sentinel value.
(Yes, you can use pointers, but that isn't exactly ergonomic.)
It looked out of place, because (0, 0) is nowhere near the US.
Also, there are some NAN’s hidden in the palmtrees.
> Null Island is the location at zero degrees latitude and zero degrees longitude (0°N 0°E), i.e., where the prime meridian and the equator intersect. The name is often used in mapping software as a placeholder to help find and correct database entries that have erroneously been assigned the coordinates 0,0.