45 comments

[ 3.7 ms ] story [ 105 ms ] thread
This is simply the greatest tourist shirt of all time.
Apparently it's not a fun license plate or last name to have, though.

https://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-...

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.
Such an excellent essay about those falsehoods.

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.

I legit giggled when I saw this, love it!
I tried visiting Null Island but got stuck in NaN instead...
The palm tree leaves have got you covered
[Object object]
I imagine test@test.com receives a lot of mails.

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.

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.

https://arstechnica.com/tech-policy/2016/08/kansas-couple-su...

The implication that "unknown locations should default to Null Island", as opposed to some more robust error handling, is also questionable.
They should default to the point at infinity.
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.
If you have to explain the joke...
Explaining a joke is like dissecting a frog. You understand it better, but the frog dies in the process.
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
180°0'0.0"N 180°0'0.0"E Degrees
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.

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.

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.

[1]: (In Dutch) https://www.vice.com/nl/article/wj8b4x/wonen-op-postcode-123...

The House at 56°00'00.0"N 10°00'00.0"E was once shot at by criminals who thought it to be their target.
This shirt about a computer bug may not be funny to people who have died from computer bugs.
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)
It should be "Est. Dec. 31, 1969 19:00-5:00".
And what's the difference between N/S and E/W when it's 0°00'00"?
Atlantic/Null is the same as GMT. 1970-01-01 00:00Z
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.
Be careful out there; back in 2006 I learned the hard way that FROM_UNIXTIME(-1) would instantly crash the MySQL build we had in prod.
East coast doesn't exist. All tech happens in PST.
I was going to purchase a T but it had "England" as a state, and while England is in a right old fucking state, it's just not right.
Related. Others?

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)

A location that is half influenced by geometry (0 N) and half by politics (0 E)
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.)

Wikipedia: https://en.wikipedia.org/wiki/Null_Island

> 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.