During my commute to work yesterday (that's what I call the hallway
between my bathroom and bedroom) I was inspired by a shared tweet from a
friend.
I don't agree with Zuck on much, but the more things we can ban Trump
from the better. So now I just need to figure out the best way to ban
the Orange one from my website, which considering he doesn't have an
account here yet is actually harder than it sounds. But hacking together
random garbage for fun is my bread and butter, so we're off on an
adventure!
First up is checking if my DNS or hosting provider can do any sort of
location or IP based serving or in this case blocking. Given how janky
and barebones this site currently is the answer to that is a resounding
no. I don't even have a backend server at this point so we are going to
have to get extra creative, or change hosing providers but I'd rather
write code than click through someone else's interface.
Well my next thought is, Trump at this point is probably only in a
couple of locations, and I can get the browser client location with
permission or from IP Address lookup. Trump is unlikely to visit this
site, and he is probably even less likely to allow browser location
permissions, so I'll have to use IP lookup. A quick Google search leads
me to
https://www.geoplugin.com/
where I can make requests with a clients IP address and get back
location information. Now I can see all the parts fall into place and I
can make this happen.
At this point I can start writing some code, and if you read my previous
post you'll know that I've been interested in giving Brython a shot;
Well no time like the present. Cut to sweet hacker montage where I
-
Got Brython and Geo Plugin working, which converts your browser IP
to Latitude and Longitude
-
Looked up the lat/long coordinates for Trump's most likely
locations, The White House, Trump Tower NY and Mar-a-Lago
-
Found a formula for calculating the distance between two sets of
lat/long coordinates
-
Connected the logic so if you are within 5 miles of one of those
locations on site load you get a popup that stops you from reading
this site's content.
Well that's it, Donald Trump is now 100% definitely, unquestionably,
banned from markmiscavage.com (assuming he visits the site from one of
his predetermined locations, and his ISPs location actually maps to a
location within 5 miles of the coordinates I found), but what about all
the innocent bystanders that will be caught in my broad net to squash
the outgoing Presidents attempts to view my content. I can't just
callously ban everyone else on the White House staff from viewing my
sweet, sweet website. I need some sort of Trump-capcha to 100% affirm
that someone who is at a banned location, is in fact Donald Trump.
Well I can do that with a bit more Brython code and a clever question no
human (or computer) could possibly beat.
Click Here To Pass The Trump-Capcha Yourself
Now I think we can, with 120% certainty say that Donald Trump cannot
view my content and no innocent bystanders will be harmed by my
extremely secure and foolproof solution, and that makes me happy.