Sunday, August 20th, 2017
Wednesday, July 26th, 2017
Posting to my site
I was idly thinking about the different ways I can post to adactio.com. I decided to count the ways.
This is the classic CMS approach. In my case the CMS is a crufty hand-rolled affair using PHP and MySQL that I wrote years ago. I log in to an admin interface and fill in a form, putting the text of my posts into a
textarea. In truth, I usually write in a desktop text editor first, and then paste that into the
textarea. That’s what I’m doing now—copying and pasting Markdown from the Typed app.
Directly from my site
If I’m logged in, I get a stripped down posting interface in the notes section of my site.
This is how I post links. When I’m at a URL I want to bookmark, I hit the “Bookmark it” bookmarklet in my browser’s bookmarks bar. That pops open a version of the admin interface tailored specifically for links. I really, really like bookmarklets. The one big downside is that they don’t work on mobile.
This is something I knocked together at Indie Web Camp Brighton 2015 using the Twilio API. It’s handy for posting notes if I’m travelling somewhere and data is at a premium. But I don’t use it that often.
Thanks to Aaron’s OwnYourGram service—and the fact that my site has a micropub endpoint—I can post images from Instagram to my site. This used to happen instantaneously but Instagram changed their API rules for the worse. Between that and their shitty “algorithmic” timeline, I find myself using the service less and less. At this point I’m only on their for the doggos.
OwnYourGram and OwnYourSwarm are very similar and could probably be abstracted into a generic service for posting from third-party apps to micropub endpoints. I’d quite like to post my check-ins on Untappd to my site.
Other people’s admin interfaces
rel="me" and IndieAuth, I can log into other people’s posting interfaces using my own website as the log-in, and post to my micropub endpoint, like this. Quill is a good example of this. I don’t use it that much, but I really should—the editor interface is quite Medium-like in its design.
Anyway, those are the different ways I can update my website that I can think of right now.
In terms of output, I’ve got a few different ways of syndicating what I post here:
- RSS feeds for my journal, links, articles, and notes.
- JSON feeds for my journal, links, articles, and notes.
- Twitter accounts for my journal, links, articles, and notes (that one is my main Twitter account).
- I syndicate most of my my photos to my Flickr account.
- I syndicate most of my journal posts and articles to my Medium account.
- I used to syndicate my links to my Delicious account but at some point that became fairly pointless.
- Whenever I post a link, The Internet Archive gets pinged and makes a copy for the wayback machine. Here’s an example of a recent link.
- I syndicate just about everything to my Facebook account using If This, Then That recipes (RSS to Facebook posts). Facebook is a roach motel. I never post any original content there—everything starts here on my site.
Just so you know, if you comment on one of my posts on Facebook, I probably won’t see it. But if you reply to a copy of one of posts on Twitter or Instagram, it will show up over here on adactio.com thanks to the magic of Brid.gy and webmention.
Friday, June 2nd, 2017
…a full one-third of my window is covered by a pop-over trying to get me to sign in or sign up for Facebook. I will go out of my way to avoid linking to websites that are hostile to users with pop-overs. (For example, I’ve largely stopped linking to anything from Wired, because they have such an aggressive anti-ad-block detection scheme. Fuck them.)
Facebook forbids search engines from indexing Facebook posts. Content that isn’t indexable by search engines is not part of the open web.
And then there’s this:
And in the same way they block indexing by search engines, Facebook forbids The Internet Archive from saving copies of posts.
Friday, May 19th, 2017
But real problems are messy. Tech culture prefers to solve harder, more abstract problems that haven’t been sullied by contact with reality. So they worry about how to give Mars an earth-like climate, rather than how to give Earth an earth-like climate. They debate how to make a morally benevolent God-like AI, rather than figuring out how to put ethical guard rails around the more pedestrian AI they are introducing into every area of people’s lives.
Wednesday, May 3rd, 2017
So what happens when these tools for maximizing clicks and engagement creep into the political sphere?
This is a delicate question! If you concede that they work just as well for politics as for commerce, you’re inviting government oversight. If you claim they don’t work well at all, you’re telling advertisers they’re wasting their money.
Facebook and Google have tied themselves into pretzels over this.
Thursday, April 13th, 2017
Digital Assistants, Facebook Quizzes, And Fake News! You Won’t Believe What Happens Next | Laura Kalbag
A great presentation from Laura on how tracking scripts are killing the web. We can point our fingers at advertising companies to blame for this, but it’s still developers like us who put those scripts onto websites.
We need to ask ourselves these questions about what we build. Because we are the gatekeepers of what we create. We don’t have to add tracking to everything, it’s already gotten out of our control.
Monday, March 6th, 2017
To be clear, every company currently does some form of this tracking of users. There would simply be no other way to measure operations. But Facebook has quite clearly been tiptoeing outside the bounds of what is ethically acceptable data business practices for a while.
A thorough round-up of Facebook’s current data collection practices and what you can do about it.
Thursday, February 16th, 2017
Much of our courage and support comes from the people we read and talk to and love online, often on the very networks that expose us—and our friends—to genuine enemies of freedom and peace. We have to keep connected, but we don’t have to play on their terms.
Tuesday, January 31st, 2017
Matt takes a look at the history of scheduled broadcast media—which all began in Hungary in 1887 via telephone—and compares it to the emerging media context of the 21st century; the stream.
If the organizing principle of the broadcast schedule was synchronization — millions seeing the same thing at the same time — then the organizing principle of the stream is de-contextualization — stories stripped of their original context, and organized into millions of individual, highly personalized streams.
Tuesday, September 27th, 2016
Chris runs through the process and pitfalls of POSSEing a site (like CSS Tricks) to Apple’s News app, Facebook’s Instant Articles, and Google’s AMP.
Hey, whatever you want. As long as…
- It’s not very much work
- The content’s canonical home is my website.
I just want people to read and like CSS-Tricks.
Thursday, May 12th, 2016
The history of Facebook’s attempt to steamroll over net neutrality in India …and how they failed in that attempt, thanks to a grassroots campaign.
Crucially, Facebook itself would decide which sites were included on the platform. The company had positioned Internet.org as a philanthropic endeavour — backed by Zuckerberg’s lofty pronouncements that “connectivity is a human right” — but retained total control of the platform.
Tuesday, April 5th, 2016
Thursday, March 24th, 2016
The street finds its own uses for colonial internet practices:
Because the data is completely free, Angolans are hiding large files in Wikipedia articles on the Portuguese Wikipedia site (Angola is a former Portuguese colony)—sometimes concealing movies in JPEG or PDF files. They’re then using a Facebook group to direct people to those files, creating a robust, completely free file sharing network.
Wednesday, March 23rd, 2016
The act of linking to this story is making it true.
“I don’t think there’s any law against this,” I said. How could there be a law against something that’s not possible?
Tuesday, March 1st, 2016
Monday, January 25th, 2016
The ability to follow links down and around and through an idea, landing hours later on some random Wikipedia page about fungi you cannot recall how you discovered, is one of the great modes of the web. It is, I’ll go so far to propose, one of the great modes of human thinking.
Friday, January 22nd, 2016
A fascinating slice of ethnographic research in Myanmar by Craig. There’s no mention of the web, which is certainly alarming, but then again, that’s not the focus of the research.
Interestingly, while Facebook is all omnipresent and dominant, nobody is using it the way that Facebook wants: all the accounts are basically “fake”.
What I found fascinating are the ways that people have found to bypass app stores. They’re basically being treated as damage and routed ‘round. So while native apps are universal, app stores would appear to be a first world problem.
Now if there were only some kind of universally accessible distribution channel that didn’t require any kind of installation step …hmmm.
Saturday, November 28th, 2015
When something on your website is shared on Twitter or Facebook, you probably want a nice preview to appear with it, right?
For Twitter, you can use Twitter cards—a collection of
meta elements you place in the head of your document.
For Facebook, you can use the grandiosely-titled Open Graph protocol—a collection of
meta elements you place in the head of your document.
What’s that you say? They sound awfully similar? Why, no! I mean, just look at the difference. Here’s how you’d mark up a blog post for Twitter:
<meta name="twitter:url" content="https://adactio.com/journal/9881"> <meta name="twitter:title" content="Metadata markup"> <meta name="twitter:description" content="So many standards to choose from."> <meta name="twitter:image" content="https://adactio.com/icon.png">
Whereas here’s how you’d mark up the same blog post for Facebook:
<meta property="og:url" content="https://adactio.com/journal/9881"> <meta property="og:title" content="Metadata markup"> <meta property="og:description" content="So many standards to choose from."> <meta property="og:image" content="https://adactio.com/icon.png">
See? Completely different.
Okay, I’ll attempt to dial down my sarcasm, but I find this wastage annoying. It adds unnecessary complexity, which in turn, I suspect, puts a lot of people off even trying to implement this stuff. In short: 927.
We’ve seen this kind of waste before. I remember when Netscape and Microsoft were battling it out in the browser wars: Internet Explorer added a proprietary
acronym element, while Netscape added the
abbr element. They both basically did the same thing. For years, Internet Explorer refused to implement the
abbr element out of sheer spite.
A more recent example of the negative effects of competing
standards was on display at this year’s Edge conference in London. In a session on front-end data, Nolan Lawson decried the fact that developers weren’t making more use of the client-side storage options available in browsers today. After all, there are so many to choose from: LocalStorage, WebSQL, IndexedDB…
(Hint: if developers aren’t showing much enthusiasm for the latest and greatest API which is sooooo much better than the previous APIs they were also encouraged to use at the time, perhaps their reticence is understandable.)
Anyway, back to metacrap.
Matt has written a guide to what you need to do in order to get a preview of your posts to appear in Slack. Fortunately the answer is not yet another collection of
meta elements to place in the head of your document. Instead, Slack piggybacks on the existing combatants: oEmbed, Twitter Cards, and Open Graph.
So to placate both Twitter and Facebook (with Slack thrown in for good measure), your metadata markup is supposed to look something like this:
<meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@adactio"> <meta name="twitter:url" content="https://adactio.com/journal/9881"> <meta name="twitter:title" content="Metadata markup"> <meta name="twitter:description" content="So many standards to choose from."> <meta name="twitter:image" content="https://adactio.com/icon.png"> <meta property="og:url" content="https://adactio.com/journal/9881"> <meta property="og:title" content="Metadata markup"> <meta property="og:description" content="So many standards to choose from."> <meta property="og:image" content="https://adactio.com/icon.png">
There are two things on display here: redundancy, and also, redundancy.
Now the eagle-eyed amongst you will have spotted a crucial difference between the Twitter metacrap and the Facebook metacrap. The Twitter metacrap uses the
name attribute on the
meta element, whereas the Facebook metacrap uses the
property attribute. Technically, there is no
property attribute in HTML—it’s an RDFa thing. But the fact that they’re using two different attributes means that we can squish the
meta elements together like this:
<meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@adactio"> <meta name="twitter:url" property="og:url" content="https://adactio.com/journal/9881"> <meta name="twitter:title" property="og:title" content="Metadata markup"> <meta name="twitter:description" property="og:description" content="So many standards to choose from."> <meta name="twitter:image" property="og:image" content="https://adactio.com/icon.png">
There. I saved you at least a little bit of typing.
The metacrap situation is even more ridiculous for “add to homescreen”/”pin to start”/whatever else browser makers can’t agree on…
<meta name="msapplication-starturl" content="https://adactio.com" /> <meta name="msapplication-window" content="width=800;height=600"> <meta name="msapplication-tooltip" content="Kill me now...">
<link rel="apple-touch-icon" href="https://adactio.com/icon.png">
(Repeat four or five times with different variations of icon sizes, and be sure to create icons with new sizes after every. single. Apple. keynote.)
Fortunately Google, Opera, and Mozilla appear to be converging on using an external manifest file:
<link rel="manifest" href="https://adactio.com/manifest.json">
Perhaps our long national nightmare of balkanised metacrap is finally coming to an end, and clearer
heads will prevail.
Sunday, October 18th, 2015
My sister-in-law is causing quite a stir. Go Helen!
Wednesday, October 7th, 2015
Paul compares publishing on the web to publish on proprietary platforms, and concludes that things aren’t looking great right now.
Performance is the number one selling point for each of these new content platforms.