More appropriately no one seems to know who is routing them to null island.
You can't deal with this type of data for very long before you run into the case where you (or someone who processed the data before you got it) messed up and you end up with 0,0 coordinates.
I see a lot of geocoding at work and one of the real mysteries is that null island is a fair few miles around. 0,0 isn't good enough for some people; 0.00001,0.00002, etc always have to get involved. Reliably catching that variant of the "Actually, I think your address is wrong" error needs a null island at least 50 miles across.
If I had to guess, there's a UI somewhere that allows people to drag a pin to the exact right location when it isn't close enough, and feeds that back into a geocoding database. They can only drag for so long across the Atlantic before they give up.
Thought the exact same thing, really expected them to mention it too. Not that there's really anything legally wrong with it and they did look at a different angle on the story but still.
The WSJ journal is strongly based on the St. Onge's article, including re-use of the depiction of Null Island and quoting St. Onge. It does not contain anything which comes from the MinuteEarth video. It's as if the WSJ and MinuteEarth were independent works based on ideas that were floating around a few months ago, where both sites thought it was worth more coverage.
Interesting how these things move around and become part of the zeitgeist, yes? I see no need to cast aspersions upon the WSJ.
Nice research on the topic! I wish there were a way to algorithmically do this. Cluster content, show on a timeline, show quotes and obvious rewording to make clear what influenced what...
This is the fourth time a story about Null Island has frontpaged on HN alone, so it's not as if it's a particularly unusual or unique topic to write an article about.
That is a lot of activity on Hacker News. But I wouldn't put those other sites in the same category as the WSJ. Doesn't look like any of them are even news sites.
At least this is a fictional island, albeit in a real place, rather than coordinates in an inhabited place bringing unpleasantness to unwilling participants.
I find it really astonishing that law enforcement is using IP geolocation to raid homes or investigate. In western Europe this would be unthinkable as police or state agencies solely rely on requesting customer information from providers (based on the IP address).
But I wanted a black shirt, so I re-made it with a European (German?) company: http://www.spreadshirt.dk/-C59/product/142391766/ (change the .dk to .co.uk, .de etc for other localizations of the same shop.)
What's the power source for these buoys for transmission and reception? It doesn't look like there are any solar panels - so are they just running off of a battery that needs to be replaced periodically?
> "The board draws approximately 1 mW when in the sleep state, and around 250 mW when sampling sensors. The entire system averages 10 to 15 mW including power for all sensors, sampling, and Argos telemetry. By using switching power supplies where possible, the same battery space available in the original ATLAS tube will provide a conservative 18-month deployment life with a battery pack comprised of 84 D-cell alkaline batteries. The low power system allows the use of inexpensive batteries instead of solar cells or wind generators. These would attract vandals and add significantly to the acquisition and maintenance cost of each mooring."
This bouy is fascinating. It has a sub-surface set of sensors and check out the description of how those underwater sensors communicate with the main board of the bouy:
> "The sensors transmit and receive data from the buoy with an inductive coupling technique."
[...]
> "The tube drives the cable while the sensor drives the secondary coil on the inductive element. An FSK method of modulating the signal onto the cable is used with 2 kHz for a logic one, and 4 kHz for a logic zero. With a 2-kbaud data transfer rate, a one bit is 1 cycle and a zero bit is 2 cycles. By having data frequencies that are exact integers of the baud rate, the bits can be phase coherent at their edges, thus eliminating a source of jitter. The data uses standard ASCII hex format with one start and one stop bit."
I'm a little out of my depth, but is there a reason they don't use something like a sealed lead-acid marine battery, rather than a big pile of D-cells?
Not a hardware engineer, but I'm going to wager that it has something to do with failure rates.
Modulo correct wiring, if you have a massive stack of D-cells and one dies, it's not a big deal. If your sole source of power dies, then you either have to send out a repair crew (expensive!) or have no data until the buoy is replaced on-schedule.
Lead acid has something like 1/4-1/3 the energy density, higher self-discharge rates, are more expensive, and are worse for the environment. The advantage is very high power density (nice for starting cars) and rechargeability, neither of which would be useful here.
Actually, there were some systems where NULL /wasn't/ zero! On those systems, IIRC, your result could be different depending on how you interpret the bits:
// compares to NULL
// (not the macro, but the compiler constant; i.e. resigning NULL does nothing)
// (even if NULL isn't 0)
if (ptr == 0)
// compares to 0
if (reinterpret_cast<int>(ptr) == 0)
On x86 and ARM, those would both compare to 0 (don't get pedantic; NULL is 0 here), but on those old systems, the first one could be true, but not the second. Pretty weird.
I still think of null as undefined, which is very different from zero. When you average, for example, nulls are ignored. If you replace null with zero, you get incorrect averages.
Well, the parent article isn't about programming per se, but rather how to handle digital-mapping errors. My point is just that setting unknown or malformed values to zero may have unwanted effects.
Although it's cute to point people to Null Island, or that farm in Kansas, maybe it's more useful to tell them that there's been an error.
I remember hearing stories about how certain bugs would only show up in the release build, but not the debug build. After lots of debugging, they find out it's because the compiler initialized variables to 0 ("null") in debug mode, but not release mode.
Well, Null Island has whatever size Null Island has (which is hard to ascertain, given that it doesn't exist) -- but the coordinate (0,0) doesn't have any area at all, it's a point.
54 comments
[ 0.21 ms ] story [ 166 ms ] threadNobody knows who made sure that a variable was initialized with something, rather than random junk that could turn out to be catastrophic?
You can't deal with this type of data for very long before you run into the case where you (or someone who processed the data before you got it) messed up and you end up with 0,0 coordinates.
If I had to guess, there's a UI somewhere that allows people to drag a pin to the exact right location when it isn't close enough, and feeds that back into a geocoding database. They can only drag for so long across the Atlantic before they give up.
I should probably add a check for this in my work, I think it only checks for null in WGS84 at present...
The piece at AO was in turn a repost of an article Tim St. Onge wrote in April for the Library of Congress blog, at https://blogs.loc.gov/maps/2016/04/the-geographical-oddity-o... . The article was further covered by ScienceAlert (http://www.sciencealert.com/welcome-to-null-island-the-most-... ) .
The WSJ journal is strongly based on the St. Onge's article, including re-use of the depiction of Null Island and quoting St. Onge. It does not contain anything which comes from the MinuteEarth video. It's as if the WSJ and MinuteEarth were independent works based on ideas that were floating around a few months ago, where both sites thought it was worth more coverage.
Interesting how these things move around and become part of the zeitgeist, yes? I see no need to cast aspersions upon the WSJ.
EDIT: the comments in the LoC article point to a 2009 tweet about Null Island, at https://twitter.com/chriscurrie/status/1546199025 and that nullisland.com was registered in 2008.
https://hn.algolia.com/?query=null%20island&sort=byPopularit...
I'd bucket it as one of a standard set of "quirky" subjects that get covered again and again on slow news days.
At least this is a fictional island, albeit in a real place, rather than coordinates in an inhabited place bringing unpleasantness to unwilling participants.
Will contact the repo owner to learn about the license...
But I wanted a black shirt, so I re-made it with a European (German?) company: http://www.spreadshirt.dk/-C59/product/142391766/ (change the .dk to .co.uk, .de etc for other localizations of the same shop.)
The image is the one from Github.
http://tao.ndbc.noaa.gov/proj_overview/pubs/mil96paper.html
> "The board draws approximately 1 mW when in the sleep state, and around 250 mW when sampling sensors. The entire system averages 10 to 15 mW including power for all sensors, sampling, and Argos telemetry. By using switching power supplies where possible, the same battery space available in the original ATLAS tube will provide a conservative 18-month deployment life with a battery pack comprised of 84 D-cell alkaline batteries. The low power system allows the use of inexpensive batteries instead of solar cells or wind generators. These would attract vandals and add significantly to the acquisition and maintenance cost of each mooring."
This bouy is fascinating. It has a sub-surface set of sensors and check out the description of how those underwater sensors communicate with the main board of the bouy:
> "The sensors transmit and receive data from the buoy with an inductive coupling technique."
[...]
> "The tube drives the cable while the sensor drives the secondary coil on the inductive element. An FSK method of modulating the signal onto the cable is used with 2 kHz for a logic one, and 4 kHz for a logic zero. With a 2-kbaud data transfer rate, a one bit is 1 cycle and a zero bit is 2 cycles. By having data frequencies that are exact integers of the baud rate, the bits can be phase coherent at their edges, thus eliminating a source of jitter. The data uses standard ASCII hex format with one start and one stop bit."
Modulo correct wiring, if you have a massive stack of D-cells and one dies, it's not a big deal. If your sole source of power dies, then you either have to send out a repair crew (expensive!) or have no data until the buoy is replaced on-schedule.
https://en.wikipedia.org/wiki/Beta-M
What is the proper output for null?
Actually, there were some systems where NULL /wasn't/ zero! On those systems, IIRC, your result could be different depending on how you interpret the bits:
On x86 and ARM, those would both compare to 0 (don't get pedantic; NULL is 0 here), but on those old systems, the first one could be true, but not the second. Pretty weird.http://stackoverflow.com/questions/2597142/when-was-the-null...
Although it's cute to point people to Null Island, or that farm in Kansas, maybe it's more useful to tell them that there's been an error.
Empty string == empty string, you tool warehouses!
1) Shipping the debug build, because it's been tested and it's fast enough anyway.
2) Always building the release build, because the debug build doesn't work. All those DEBUG_ASSERT's sit unused.
https://www.google.com/images?q=Myst+island+map
https://www.google.de/maps/@0.0612621,0.4003209,12z