RFC: The Haskell Webring

I’ve been thinking that forming a webring of Haskell blogs could be quite cool.

A webring (or web ring) is a collection of websites linked together in a circular structure, and usually organized around a specific theme, often educational or social. They were popular in the 1990s and early 2000s, particularly among amateur websites.

Having a Haskell webring means that

  • There is a curated list of members of the webring (who applied to join), which doubles as an index of curated Haskell blogs
  • Blogs which are members of the webring have links to the next and to the previous blog in the ring, and possibly a link to the index too (e.g. in the footer)

In practice, this means readers can traverse the ring to discover other haskell blogs. I think, in general, it is a good thing in terms of visibility, connectivity and community building.

How do we form a webring?

I’ve considered a few designs for the webring functionalities, i.e. how to determine the previous and next blogs, while keeping the ring a ring and how exactly do we link to them?
With one constraint: The webring functionality shouldn’t need javascript, to not incur in a runtime dependency for blogs which likely don’t need any JS.

I think the best solution is for

  • the next and prev links to simply point to a hypothetical webring.haskell.org/next and webring.haskell.org/prev.
  • the webring.haskell.org hosts a webserver which redirects requests to /next and /prev to the “correct” neighbours based on the Referrer HTTP header, which essentially indicates the website which reffered to those urls.
  • this puts the complexity of managing the ring on the webring server, which seems fitting.
  • we can easily shuffle the ring member order

An alternative solution is to

  • have a Hakyll module which determines the neighbours $prev$ and $next$
  • and links point to the concrete $prev$ and $next$ blogs
  • this shifts the complexity to the build system
  • and will be stale more easily, since new members won’t be pointed to by old members until the old members rebuild the site
    • this is not that bad
    • since the main index will still have an updated list of members
    • the ring for any particular blog is a snapshot of the ring at time the blog was built
    • likely better for SEO to point to exact links

How do members join?

I would say doing membership through MRs to a git repository is the simple and straightforward way.

However, hosting the membership in a public repository somewhat restricts us in collecting e-mails to contact site maintainers, since not everyone might want to make it available publicly in the repo. Though we could have a separate form for this.

Eventually, if we ever wanted to have a test that crawls through the ring to see if it is connected or, otherwise, notify maintainers that the ring is broken to (1) fix the links or (2) temporarily leave the ring (this would only be reasonable with the first solution), not having the webmasters’ contact information would make it harder.

Ultimately, however, I don’t think these details about contacting sites are too important, as we won’t likely need to be so strict wrt to members, and can otherwise take other actions?

Who maintains the webring?

  • Group of trusted volunteers who would be added as maintainers to the membership repository
  • or perhaps the Haskell Foundation?

Well, those are my thoughts on it.
@nomeata @tristanC @ApothecaLabs @Solid @jaspervdj @abhin4v you’ve recently posted articles from your blogs, do you have any thoughts?

Has the @haskell-foundation any thoughts too?

9 Likes

This sounds like a fun idea, and I’m happy to participate (though I would prefer not to be involved in maintaining it).

I think your preferred solution sounds right; though probably it would be better to link to webring.haskell.org/next?from=example.org rather than relying on the Referrer header (often disabled due to privacy concerns).

Somewhat related is the older http://planet.haskell.org/ which doesn’t look it’s being maintained…

4 Likes

It is certainly still used, however! At least by me.

To me, a planet (also nice 2000th tech) seems to be a more form for a curated list of Haskell related blogs.

3 Likes

I had never heard of planet.haskell.org – what a great finding!
Indeed, perhaps a planet is all we need.

I’d just say webrings have the advantage of making the webring itself known, because it is linked to from every member’s blog, whereas the planet points outwards to blogs, but rarely seems to be pointed into by them – to know about the planet you need to discover it exactly.

Funnily, I had thought of making this planet-kind-of-site to aggregate blog feeds a few times now.
Great to know it already exists (and that the tech has a cool name :stuck_out_tongue:).

I’ll reiterate that this is a request for comments (RFC), and that I’m not acting yet on this, just looking to see what the community thinks about it :slight_smile: and whether we think it would be worth doing and have participants – if you’d join the webring do let me know (and while you’re at it, feel free to post your blogs here too).

2 Likes

In general, I’d be in favor of planet (I discovered a lot of blogs from planet.haskell.org in the past). Webrings, at least in my part of the world, used to be considered spam due to the fact that one blog in the ring could switch topics and it would be quite hard to skip it.

I think it’s also similar to how we no longer have token ring topologies (modulo exceptions), but everything is more hub-and-spoke model.

2 Likes

What is the state of planet.haskell.org? It says

The Planet is currently administered by Amin Bandali.

and it is running just fine. @jaspervdj , why do you think it’s not maintained? Maybe it is still maintained (in a passive-reponsive way), but a generation of Haskeller’s didn’t think of joining it? Did anyone try to join recently?

2 Likes

I will try to, just need to get the content of the post in its RSS description rather than just the description (seems to be one of the requirements).

I’ll report back.

1 Like

Aside from my minor shock at being noticed, I’d be down to participate in something.

Right now, in addition to planet.haskell.org, the Haskell Weekly Newsletter also serves as an aggregator, but it too points out outward.

Still, I wouldn’t mind connecting to other blogs with something like the proposed solution (server-managed links) - I think it is simple and unobtrusive, and I could easily include it as a header or footer.

3 Likes

I tried to add Haskell Weekly years ago and never heard anything. Perhaps I should interpret that as a rejection, but it seems like a lack of maintenance.

If that turns out to be the case I could imagine taking over running the service. I use it myself and have managed planets in the past (not that it’s hard).

But let’s first see if @romes has success.

1 Like

As an infrastructure admin I keep stuff up and running, but I don’t monitor the requests to be added. I don’t know if amin remains responsive to them or not, and if not, I would happily hand the responsibility over to someone else.

As a sidenote, the software planet runs is itself outdated, tied to some old versions of python libs and not well maintained. I did a little manual hacking to get it working and handle some unicode bugs last time we migrated, but didn’t do it very responsibly (python hacking is not my specialty). That said, if it is indeed “planet venus” then it looks like it may have acquired some new life and maintainers in the meantime.

Are you saying that this is currently running on haskell.org infrastructure, so a transfer of responsibility does not even require a change in infrastructure? That’s good to hear!

1 Like

Not only has planet been since inception (well over 10 years ago) on haskell.org infrastructure, in fact, it is currently running on the same box as this discourse instance!

3 Likes

Another good thing about planet-haskell instead of a webring is that if a blog has some posts about haskell but others about Peruvian folk dancing, we can configure planet to only pull the ones with the correct tag.

There are two sides to that coin, however!

If a blog has some posts about Haskell, that’ll be my hook into seeing what else this author writes about – including things exactly like Peruvian folk dancing, which I might learn I find interesting :slight_smile:

3 Likes

I’m currently adding feed support (PR#451) to emanote, the tool created by @srid I’m using for my blog. That way I hope to get it on the planet… Though it’s annoying that the planet is not better advertised, and that you need to contact the admin by mail to add a new source.

I’d be happy to join the Haskell Webring. If I understand correctly, I would need to add such banner to my site: <a href="webring.haskell.org/prev">←<a/> Member of the haskell webring <a href="webring.haskell.org/next">→</a>, and the service would use the referrer header to pick the next website?

Thanks @romes for introducing this webring system, it looks interesting :slight_smile:

4 Likes

@romes, did you get a response from Amin?

If not, @sclv, may I volunteer to take over maintenance? (Probably just requires adding my SSH key somewhere?)

1 Like

I haven’t found the time to make my RSS feed include the content of the post yet, unfortunately!

I just asked Amin to add the Haskell Interlude feed to https://planet.haskell.org/ and it got added overnight. So looks like it’s well-maintaned at the moment. @taylorfausak, maybe just try again?

3 Likes

has anybody ever actually started a webring? I think it’s a great idea. I think we wouldn’t even need a software at first, a simple link to the next website would be fine, this should be pretty simple to organize for few people.

How about everybody interested answers with a website that they would like to have partaking, then we figure out an order (lexicographic would be fine, I guess) and just plug in a link? Seems easy!

I’ll go first: