Tags: map

406

sparkline

Sunday, December 2nd, 2018

Barely Maps

Minimalist cartography.

Thursday, November 22nd, 2018

Picture 1 Picture 2
map

Checked in at Μπουγάτσα το Νέον. Bougatsa breakfast — with Jessica

Wednesday, November 21st, 2018

Checked in at Το Ελληνικό. with Jessica map

Checked in at Το Ελληνικό. with Jessica

Tuesday, November 20th, 2018

Checked in at ERGON Αγορά. A feast of lamb — with Jessica map

Checked in at ERGON Αγορά. A feast of lamb — with Jessica

Monday, November 19th, 2018

Checked in at Coquille. Baby calamari in parsley pesto — with Jessica map

Checked in at Coquille. Baby calamari in parsley pesto — with Jessica

Friday, November 16th, 2018

Checked in at Norræna Húsið. with Jessica, Paul, Matt, Joschi map

Checked in at Norræna Húsið. with Jessica, Paul, Matt, Joschi

Thursday, November 15th, 2018

Checked in at Bar Ananas. At a session in Iceland. map

Checked in at Bar Ananas. At a session in Iceland.

Wednesday, November 14th, 2018

Checked in at Jolly Brewer. Tunes and pints. map

Checked in at Jolly Brewer. Tunes and pints.

Saturday, November 10th, 2018

Webmentions at Indie Web Camp Berlin

I was in Berlin for most of last week, and every day was packed with activity:

By the time I got back to Brighton, my brain was full …just in time for FF Conf.

All of the events were very different, but equally enjoyable. It was also quite nice to just attend events without speaking at them.

Indie Web Camp Berlin was terrific. There was an excellent turnout, and once again, I found that the format was just right: a day of discussions (BarCamp style) followed by a day of doing (coding, designing, hacking). I got very inspired on the first day, so I was raring to go on the second.

What I like to do on the second day is try to complete two tasks; one that’s fairly straightforward, and one that’s a bit tougher. That way, when it comes time to demo at the end of the day, even if I haven’t managed to complete the tougher one, I’ll still be able to demo the simpler one.

In this case, the tougher one was also tricky to demo. It involved a lot of invisible behind-the-scenes plumbing. I was tweaking my webmention endpoint (stop sniggering—tweaking your endpoint is no laughing matter).

Up until now, I could handle straightforward webmentions, and I could handle updates (if I receive more than one webmention from the same link, I check it each time). But I needed to also handle deletions.

The spec is quite clear on this. A 404 isn’t enough to trigger a deletion—that might be a temporary state. But a status of 410 Gone indicates that a resource was once here but has since been deliberately removed. In that situation, any stored webmentions for that link should also be removed.

Anyway, I think I got it working, but it’s tricky to test and even trickier to demo. “Not to worry”, I thought, “I’ve always got my simpler task.”

For that, I chose to add a little map to my homepage showing the last location I published something from. I’ve been geotagging all my content for years (journal entries, notes, links, articles), but not really doing anything with that data. This is a first step to doing something interesting with many years of location data.

I’ve got it working now, but the demo gods really weren’t with me at Indie Web Camp. Both of my demos failed. The webmention demo failed quite embarrassingly.

As well as handling deletions, I also wanted to handle updates where a URL that once linked to a post of mine no longer does. Just to be clear, the URL still exists—it’s not 404 or 410—but it has been updated to remove the original link back to one of my posts. I know this sounds like another very theoretical situation, but I’ve actually got an example of it on my very first webmention test post from five years ago. Believe it or not, there’s an escort agency in Nottingham that’s using webmention as a vector for spam. They post something that does link to my test post, send a webmention, and then remove the link to my test post. I almost admire their dedication.

Still, I wanted to foil this particular situation so I thought I had updated my code to handle it. Alas, when it came time to demo this, I was using someone else’s computer, and in my attempt to right-click and copy the URL of the spam link …I accidentally triggered it. In front of a room full of people. It was midly NSFW, but more worryingly, a potential Code Of Conduct violation. I’m very sorry about that.

Apart from the humiliating demo, I thoroughly enjoyed Indie Web Camp, and I’m going to keep adjusting my webmention endpoint. There was a terrific discussion around the ethical implications of storing webmentions, led by Sebastian, based on his epic post from earlier this year.

We established early in the discussion that we weren’t going to try to solve legal questions—like GDPR “compliance”, which varies depending on which lawyer you talk to—but rather try to figure out what the right thing to do is.

Earlier that day, during the introductions, I quite happily showed webmentions in action on my site. I pointed out that my last blog post had received a response from another site, and because that response was marked up as an h-entry, I displayed it in full on my site. I thought this was all hunky-dory, but now this discussion around privacy made me question some inferences I was making:

  1. By receiving a webention in the first place, I was inferring a willingness for the link to be made public. That’s not necessarily true, as someone pointed out: a CMS could be automatically sending webmentions, which the author might be unaware of.
  2. If the linking post is marked up in h-entry, I was inferring a willingness for the content to be republished. Again, not necessarily true.

That second inferrence of mine—that publishing in a particular format somehow grants permissions—actually has an interesting precedent: Google AMP. Simply by including the Google AMP script on a web page, you are implicitly giving Google permission to store a complete copy of that page and serve it from their servers instead of sending people to your site. No terms and conditions. No checkbox ticked. No “I agree” button pressed.

Just sayin’.

Anyway, when it comes to my own processing of webmentions, I’m going to take some of the suggestions from the discussion on board. There are certain signals I could be looking for in the linking post:

  • Does it include a link to a licence?
  • Is there a restrictive robots.txt file?
  • Are there meta declarations that say noindex?

Each one of these could help to infer whether or not I should be publishing a webmention or not. I quickly realised that what we’re talking about here is an algorithm.

Despite its current usage to mean “magic”, an algorithm is a recipe. It’s a series of steps that contribute to a decision point. The problem is that, in the case of silos like Facebook or Instagram, the algorithms are secret (which probably contributes to their aura of magical thinking). If I’m going to write an algorithm that handles other people’s information, I don’t want to make that mistake. Whatever steps I end up codifying in my webmention endpoint, I’ll be sure to document them publicly.

Friday, November 9th, 2018

map

Checked in at Duke of York’s Picturehouse. FFConf

Monday, November 5th, 2018

Checked in at Spreespeicher. A11y Club — with Tantek, Calum, Marty, aaronpk, Joschi map

Checked in at Spreespeicher. A11y Club — with Tantek, Calum, Marty, aaronpk, Joschi

Sunday, November 4th, 2018

map

Checked in at Irish Times. Listening to some tunes — with Jessica

map

Checked in at Mozilla Berlin. with Tantek, Calum, aaronpk

Saturday, November 3rd, 2018

Checked in at Biererei Bar. Bierzeit — with Jessica, Tantek, aaronpk map

Checked in at Biererei Bar. Bierzeit — with Jessica, Tantek, aaronpk

Friday, November 2nd, 2018

Checked in at Deponie Nr. 3. First beer in Berlin — with Jessica map

Checked in at Deponie Nr. 3. First beer in Berlin — with Jessica

Thursday, November 1st, 2018

Checked in at Jolly Brewer. Playing tunes. map

Checked in at Jolly Brewer. Playing tunes.

Saturday, October 27th, 2018

Checked in at The Joker. Hanging with Tantek for one night only. map

Checked in at The Joker. Hanging with Tantek for one night only.

Checked in at The Hope and Ruin. She Makes War map

Checked in at The Hope and Ruin. She Makes War

Wednesday, October 24th, 2018

map

Checked in at Small Bar

Sunday, October 14th, 2018

map

Checked in at The Bugle Inn