The map above shows (in red) the locations of servers that
have tried to brute force my network, demonstrating
conclusively that this modest site is beloved the world
over. Entrance into this exclusive club can only be obtained
by attempting to ssh into my network more than five times in
a ten-second period. My personal best is once in a span of
about a minute. Keep trying kids, you'll get there! The blue
dots represent overly-aggressive web robots.
My firewall captures offending IP address and places them on a
blocklist, which I periodically convert to geographic
information using the
excellent ipinfo.io. The
JSON returned from that service looks like this:
{
"ip": "103.89.88.95",
"city": "Hanoi",
"region": "Thanh Pho Ha Noi",
"country": "VN",
"loc": "21.0333,105.8500",
"org": "AS135905 VIETNAM POSTS AND TELECOMMUNICATIONS GROUP"
}
I then draw dots on the map above using the loc fields for
each server.
The map is
a Robinson
projection of the globe, designed by Dr Arthur Robinson to
produce an aesthetically pleasing representation.
"I decided to go about it backwards," Dr. Robinson said. "I
started with a kind of artistic approach. I visualized the
best-looking shapes and sizes. I worked with the variables
until it got to the point where, if I changed one of them,
it didn't get any better. Then I figured out the
mathematical formula to produce that effect. Most mapmakers
start with the
mathematics."
[New
York Times, 25 Oct 1988]
Robinson tabulated
the lengths of each parallel and its distance to the equator
in latitude increments of 5°, with the expectation that
users would interpolate.
That's what I have done to plot the server locations
above, using fourth-order polynomials fit with the
least squares method to Robinson's tabulated values.
To compute the length of a parallel given the latitude, use
the following polynomial coefficients:
[7.8334e-09, -1.3434e-06, 5.0267e-06, -5.2218e-04, 1.0007]
The distance of that parallel from the equator is given
by another polynomial with these coefficients:
[-4.1885e-09, 4.7268e-07, -1.8389e-05, 6.5366e-03, -5.7514e-04]
Lines of longitude are equally spaced along the
parallels. For more implementation details, see the page source.