I recall that the default place for "unknown" in the US was a spot just next to a farm they was raided by the police on a regular basis because this is where their GPS was directing them. They even had a document to show that explained the thing.
I think that this point was ultimately moved to the center of a lake.
Found the article. It was an IP-to-coorindates database that returned about the center of the United States if the real position was unknown or just "US".
"MaxMind's database places them at the same spot: 38.0000,-97.0000. Which happens to be in the front yard of Joyce Taylor's house."
Those people affected must be so thankful to that reporter. I can't imagine what a relief it must have been for him to not only tell them what the problem was, but also get in contact with the company and get it rectified.
For those people sure, but apparently people that live in the center of other entities (states, counties, zip/postal codes), have this problem too, just at a smaller scale.
This is basically swatting. Everyone could live in the center of some random group. And almost every day there's a new example of the police going to the wrong address and killing someone. We shouldn't have to defend ourselves from the police visiting us so they don't kill us in cold blood.
Imagine how profoundly ignorant a law enforcement official must be to swear an affidavit for a search warrant based on maxmind geolocation IP data. People who have seen too many episodes of Law & Order or something and take it as how to literally do their job. And then how profoundly ignorant about technology a judge must be to sign a warrant based on such flawed information.
I remember this! A company, MaxMind, provided GeoIP mapping, but the default unknown for the US was right on someone's property, which lead to severe distress and (quite reasonably) a lawsuit [0]. A horrifying example of peculiar glitches causing real harm :(
> A horrifying example of ~peculiar glitches~ incompetent people with monopoly on violence causing real harm :(
The people who authorize the raids aren't supposed to blindly rely on tech without being aware of its limitations.
A person who doesn't understand that GeoIP doesn't give you coordinates to raid should not be in a position to send raids to such coordinates, and is the one ultimately responsible for this.
The fact that there will be no consequences for them is the real issue.
People are people. First responders are told to go to a place and do a thing. That is what they do. They do this dozens of times a day. Sometimes the computer is stupid.
They are not just "people," they're people with guns and the power to kill innocent citizens and destroy their property with barely any consequences. It's reasonable to expect them to be a bit careful about their job.
It is reasonable to expect, but also they won't. The solution is fixing the software rather than being indignant about how people should use it correctly.
>First responders are told to go to a place and do a thing.
By whom? There's still a human blindly trusting what the computer says somewhere in the loop, and we can and should expect them to do due diligence for a matter where lives are on the line, like a raid.
You can “expect” all you like, but doing so won’t make it better. The best way to solve this problem would, as you say, to have people do better. But that is not happening, and the problem still needs solving as soon as possible.
>You can “expect” all you like, but doing so won’t make it better. The best way to solve this problem would, as you say, to have people do better. But that is not happening, and the problem still needs solving as soon as possible.
Yes.
And this is what #defundthepolice is about, once you learn enough about it.
A lot of this had bad fall through logic. Most times if a distinct place couldn't be geocoded, it would take the centroid of the parent object and use that as an estimate. So if you knew it was the US but couldn't find anything specific it might pick the center point of the US mainland polygon. Same follows for a town in a specific state that can't be found and using the state polygon centroid. Product would often prefer a wrong map to a "We couldn't find it."
Well, you know, maybe some accuracy numbers should be attached to position for emergency services or law enforcement... even the default maps app on my phones show a accuracy-circle around the got position.
Or use something which represent an area not a point, like plus codes.
"I think I discovered a military base in the middle of the ocean' -- Null Island, the most real of fictional places"
by: Levente Juhasz, Peter Mooney
"This paper explores Null Island, a fictional place located at 0∘ latitude and 0∘ longitude in the WGS84 geographic coordinate system. Null Island is erroneously associated with large amounts of geographic data in a wide variety of location-based services, place databases, social media and web-based maps. While it was originally considered a joke within the geospatial community, this article will demonstrate implications of its existence, both technological and social in nature, promoting Null Island as a fundamental issue of geographic information that requires more widespread awareness. The article summarizes error sources that lead to data being associated with Null Island. We identify four evolutionary phases which help explain how this fictional place evolved and established itself as an entity reaching beyond the geospatial profession to the point of being discovered by the visual arts and the general population. After providing an accurate account of data that can be found at (0, 0), geospatial, technological and social implications of Null Island are discussed. Guidelines to avoid misplacing data to Null Island are provided. Since data will likely continue to appear at this location, our contribution is aimed at both GIScientists and the general population to promote awareness of this error source."
Even without Tony Hoare's Billion Dollar Mistake, this sort of nonsense is too easy. Do not define types which unnecessarily have a "default" value when you know there is no meaningful default for the intended type.
This happens way too much for numeric values. "Not applicable" or "None" aren't the same thing as zero, but it is seen for other types too.
I'm still irritated about whatever bit or bits of sloppy coding ended up assigning 1/1/1970 as a birthdate for all contacts in my Google account that didn't have a birthdate specified. Combined with birthday notifications and more annoying alerts in older versions of Android or in the browser, it made for annoying New Years Day mornings with several hundred alerts.
Side note: I use 1/1/70 by default when entering birthdays. Only if it's something that I expect to matter - financial or medical institution - do I enter my real birthday.
Entering random dates is not a great idea because I seem to recall one site (Yahoo!, maybe?) insisting on me entering the correct birthday and I had no idea what I put in.
I have a fairly sophisticated user registration system that can't handle people without family names. We had to jump through some hoops to be able to enroll people who just have given names.
Does Go have a way to insist "No, my type doesn't have a default value" ?
The behaviour for the primitive types is at least more rational than C++ (in C++ primitive variables are just uninitialized by default and if read that's Undefined Behaviour, you lose, too bad) but just because my "Position" type has two integers inside it, does not mean that them both being zero constitutes a valid position :/
Null Island is also the place where so many self-driving cars, UAVs, and navigation systems achieve their best possible performance.
I've run across multiple products that represent latitude and longitude as floats internally. At double precision, this is suitable for most purposes... but it does mean that positional precision is maximized in and around Null Island, and slowly decays as you move away.
I do wish more folks would represent latitude and longitude as binary angular measure, or other sane fixed point representation.
Using zero as a default (the main topic of this article) is one thing... I'm pointing out that floating point is able to represent points with greater density near Null Island than it is in, say, Alaska, just due to the spacing between pronounceable coordinates.
Games also have this issue, with some creative solutions.
Paraphrasing a GDC talk, in Outer Wilds space travel would not work properly -- in that the player character would move around a dynamic solar system with a pivot point and planets moving about.
Instead they made the player the world origin (0, 0, 0), and the player 'moving' actually moved the world around instead, thus moving objects were tracked more accurately the closer they are to you!
Perhaps a good API would return some coordinates plus a distance, to give an idea of the accuracy, and if the most likely location is on private property but there is a public place close to the most likely location within the probable region then return the nearest public place instead of the most likely location so as to avoid problems when incompetent users of the API inevitably ignore the accuracy number and send armed police to the given coordinates.
In that case (South Pole, 1e6 km) or (Point Nemo, 1e6 km) would be a reasonable response when you have no idea of the location, and if some armed police freeze to death or drown, then diddums!
But Nemo does exist, it's just not actually very intersting since it's notable only in this abstract sense. Similarly when the Americans build a base at the geographic South Pole (Amundsen-Scott base) the Russians built one at the pole of inaccessibility - the place furthest from the sea, which is not interesting in the same way as the actual South Pole, but still a desolate horrible place to be, grossly unsuited to human habitation. Unlike Amundsen-Scott, I believe that Russian base is no longer permanently inhabited 'cos it turns out that's very expensive and the Russians don't have the same budget for such things.
Things have a habit of showing up at the world origin in video games when something goes wrong. e.g. In older GTA games there was usually a big pile of cars under the map at 0,0,0. In MSFS multiplayer, planes are showing up at Null Island all the time, because the game teleports you there often when using the developer-mode.
This makes no sense to me. Generally speaking an application should return an error message or code when something goes wrong, not a potentially valid piece of data. That an entire industry would adopt this kind of workaround for poor software engineering is astonishing.
Seriously, it's a domain with huge under-the-surface complexity (no pun intended)[1], and most of the early efforts were spent in dealing with the maths and science, rather than software engineering. Things are getting better though.
My biggest qualm with Go is exactly this. Especially when deserialising data, data that wasn't sent vs empty/default data can be quite different things, yet you have to be very wary of the values you are processing. Ints default to 0, bools to false... Fuck.
No, but there are no other languages applicable in this context, really. You need a (de)serializer in each and every one of them, so you have to find some library, and that also includes Go. The easy choice in Go is the default one (simply called json), but there are quite a few alternative (de)serializers and validators. The GP just didn't look for them.
I’m guilty of sending results to null island for various reasons and it can be confusing, but to give the user simply an error would be worse, as they have nothing rather than something.
If for some reason we can’t get a geolocation, for various reasons, even a user simply denying access to gps, we can still deliver meaningful results as while the data is improperly located, it still has meaningful coordinates relative to itself and can be transformed later.
If you can handle an error and still return meaningful data that's fine, but returning the coordinates 0,0 to the user because GPS isn't working is far worse than giving them an error message. At that point you're essentially lying to them.
You need an origin, and tbh, there’s things that could be worse, somethings that looks close to what you expect, but actually subtly wrong, which is something we deal with on pretty much a daily basis. At least most of our customers are very unlikely to be doing anything at null island and the problem is obvious.
To a certain extent, all gps data is lying to you, it’s about figuring out how much it’s lying to you, sticking something at 0,0 is fairly tame and much easier to detect than something being out by 5cm
We do indicate to the user in the ui if no gps signal is available for example, or it’s low quality, but sometimes we get things like the system reporting it’s current location as the estimated location of the last wifi connection.
We also might start something and have no gps, but acquire it later, could be seconds, minutes or never, the accuracy can increase and decrease, we don’t force the user to give up, we record what we can. we still face limitations from software further down the chain that require coordinates as inputs.
There's a huge difference between recognizing that most software will have some bugs and creating a system that's so broken by design that you have to invent a fictitious island to work around it.
Curiously, Google Maps satellite view does show underwater prominences at 0E 0N that are distinctly darker and more detailed than those around it. Perhaps at one point in history there really was an island there.
Looking at the the google earth projection, I wonder if that too is just an artifact of the origin. That is, it has features that seem to correspond with the latitude and longitude axes. Not sure if that's just apophenia at work, or if they're real. Anybody with access to sonar maps of the region able to report?
We used to get regular support calls from concerned test operators in military uniforms saying something like "the system is heading southeast instead of the direction I sent it". A bunch of zeros in the command was always the cause. It was our version of "did you try turning it off and on again?".
For those who don't know, this is an actual thing: a UK company had a name which Companies House listed as "[NAME AVAILABLE ON REQUEST FROM COMPANIES HOUSE]" until the company changed name to "THAT COMPANY WHOSE NAME USED TO CONTAIN HTML SCRIPT TAGS LTD" before finally dissolving last month. https://find-and-update.company-information.service.gov.uk/c...
Null Island is where you will find Bias Beach, the "/dev/null" of magnetic tape recording. As in, "where is the guide vocal?" "I sent it to Bias Beach to make room for the cowbell."
One of the richest postcodes in Britain exists because office workers marked uncoded addresses with a default and it wound up appearing in stats for GDP/income despite being a barren wasteland in reality.
How often do ships actually go there due to navigational error? Somebody should leave a buoy with cameras or something.
Edit: The Gulf of Guinea region has a decent amount of ship traffic, so a ship would have to stop at 0,0 and change direction to count as a navigational error, or a Null tourist.
That's a different co-ordinate. It's the point on the ocean surface that is farthest from any land. Found a MacOS System 7 pic. Seems to be at 56 S, 2 W.
Any dumbing down of end-to-end encryption will hand Russia and China nuclear powered hacking tools for our economy, infrastructure and digital integrity.
I think that this point was ultimately moved to the center of a lake.