DEV Community

Discussion on: I'm concerned with the move that FreeCodeCamp just pulled by leaving Medium

Collapse
 
laurieontech profile image
Laurie

Was there an issue with migrating the posts with the original canonical_url? It's nice for authors to have the chance to make changes, but it seems as though it requires an action from them to set something back to the way they published it originally?

Collapse
 
ossia profile image
Quincy Larson

Medium didn't let authors set their canonical URL. Ghost (the open source blogging tool we use) does.

Thread Thread
 
laurieontech profile image
Laurie

That's not correct. If you import a post using Medium's tool it is assigned a canonical_url. (You can't set it directly, only through import). Many of the posts that ended up as part of the FreeCodeCamp publication were created in that manner.

Thread Thread
 
ossia profile image
Quincy Larson

Can you point to some such articles? I can check their canonical links.

Thread Thread
 
laurieontech profile image
Laurie

There are screenshots in the post that we're commenting on that show examples of this happening with Ali's post. The original canonical_url on medium points back to her dev.to post. The new site points back to the medium post, a different url.

Thread Thread
 
lkopacz profile image
Lindsey Kopacz

I would check the one Ben put in this blog post.

Thread Thread
 
joshcheek profile image
Josh Cheek

Looks like you might be able to get it via the API: github.com/Medium/medium-api-docs#...

Eg they say a post object has a canonicalUrl, attribute. I can't tell from reading the docs, whether you can GET them via the API. All the examples are creating Medium posts via POST requests, and none are showing existing posts via GET requests.

But you presumably found some way to get it, so if you're getting it through an API endpoint, then check it for the canonicalUrl attribute. And if you're getting it by scraping it, then check for the link tag, eg this prints the expected value:

curl -s https://medium.com/free-code-camp/the-most-important-non-programming-skills-for-programmers-d39fadc1a0fa \
 | ruby -ne '~/<link\s+rel="can.*?"([^"]*)">/ && puts($1)'
Enter fullscreen mode Exit fullscreen mode

(in reality, I'd use the CSS selector link[rel="canonical"], but I wanted an example that didn't require installing fancy tooling)

Collapse
 
brandonskerritt profile image
Autumn
Thread Thread
 
ben profile image
Ben Halpern

I can't reply to Quincy, but to "check canonical links" here you go:

The dev.to model of hybrid branched conversations which turn into flat chronological finds another victim πŸ˜„

I still believe it is a good system, but perhaps we need some re-thinking.

Thread Thread
 
napoleon039 profile image
Nihar Raote

Maybe use threaded conversations as Twitter does? Could also color conversations in the same thread, similar to how we have colorized brackets in VSCode πŸ˜„

Thread Thread
 
joshcheek profile image
Josh Cheek

I swear Twitter changed something about that recently (like within the last 6 months). I'm having such a difficult time following conversations on Twitter now, where I never used to.

I generally like vBulletin's model, personally. It's been about a decade, but IIRC, replying to a post wasn't particularly relevant, it would just prepopulate your response with the quoted post, and the metadata of the quote contained the link to what you were replying to. So you could use that to focus in on which portion you were replying to, and you could use it to reply to multiple posts that happened before you. (NOTE: it's also possible we had modded ours, this was before I coded)

πŸ€” Maybe this is what Slack needs to do, too. That model is much friendlier to time series data like Slack posts. Their current threading model is fundamentally incongruent with their chat model. Eg do you put the reply as the most recent message, or under the parent message its replying to, or in both places? (note the "also send to #channel" option) If you put it under its parent, then now people can't look at the last several messages to see what's new, how will they know about this other new thing earlier in history? (hence "Threads" in the sidebar) Maybe move the whole thread to the front of the list? Then the root message is anachronistic, or maybe put the whole thread in 2 places? Then why the thread over the reply? (they don't do this, but it would be b/c the thread is only temporally at the front, logically the thing you want to see is what it's replying to, not some irrelevant other recent message) How do I make a thread inside a thread? (you can't) What if one message is sufficient to address 3 separate comments from earlier in the thread? etc...

Aaaaand Imma just submit this now, b/c I could totally ramble on like this all night 😝