Skip to content

randyau/datawebring

Repository files navigation

Data People Writing Stuff Webring

Because it's the late '90s again and the small internet is cool. A simple widget that lets you put your site into a linked list of other sites. The list is curated by humans, as was done when search engines were crap, like they are now. It is a simple way for sites about a shared topic, data work in this case, to share some traffic with each other.

Also, because it's the '90s, there's no intentional tracking code in this. Github hosts the files so no analytics are available to managers. The JS is dirt simple and you can see all it does is some regex on the list of sites and make links.

Based off Onionring

Joining the webring

  1. Make sure you fit the join criteria (below)
  2. Submit a pull request to onionring-variables.js (details below) to add your site to the list, the managers will review and merge as appropriate
  3. Copy/paste the little HTML code snippet in the Installation section to have the widget show up
  4. (Optional) The CSS is super basic. Feel free to locally override it.

Join Criteria

In general, we welcome all relevant sites, big or small. So long as it contributes even the slightest value to the data community.

  1. You write about data related topics* most of the time. (like, ~66% of the time or more, OR there's a clear section of/way to find data related material)
  2. You create your own content or meaningfully curate the work of others
  3. The content is not spam, hateful, misleading, discriminatory, sexually explicit, illegal in the USA, or otherwise offends the sensibilities of the webring managers.
  4. Sites can be removed for any reason, with no warning or notice, at the discretion of the managers.
  5. There is NO requirement you have to post at any regular pace. Having static, evergreen, useful content is also fine! (e.g. a web-version of a book)
  6. There is NO limitation on how many sites a person can submit, so long as they are distinct sites.
  • What counts as a "data related topic"? Something that people who work with data would find interesting. This includes tools and tech, methods, academic studies and analyses, work processes, experiences, stories, tutorials, the job market, as well as meta discussions, memes, jokes. We take a broad interpretation.

Adding your site to the code

In onionring-variables.js, there is a variable sites at the top, just add your site to the list. That's it.

Then just submit a Pull Request with your site information. If you have trouble or don't know how to do it, please contact Randy Au on BlueSky.

Once the PR is merged and GitHub Pages builds and updates the CDN, the widget on your site should be able to find its URL and know where it is in the ring.

Installation of the widget

Place this snippet in your HTML body where you want the widget box to appear. There's no need to edit or make changes.

The widget requires that your site be on the list of sites (based off URL pattern matching) before it displays correctly. Otherwise it displays text saying it hasn't been included in the webring yet. If your domain or a subdirectory is on the list, the widget should work for any subdirectory under that entry.

<div id='data-ring-dot-list'>
<script type="text/javascript" src="https://randyau.github.io/datawebring/onionring-variables.js"></script>
<script type="text/javascript" src="https://randyau.github.io/datawebring/onionring-widget.js"></script>
</div>

Styling

You may optionally put the CSS into your HTML head section to format the widget. It works fine without it.

Add this to the <head> ... </head> section for basic styling. Feel free to locally override the settings to suit your own taste. If you've got design and CSS skills (which Randy does not have), some help making a nicer CSS would be appreciated. The CSS mostly just lays out the elements and puts a light border. It should inheirit the host site's general background/font settings.

<link rel="stylesheet" href="https://randyau.github.io/datawebring/onionring.css">

How's it work?

There's a list of sites in onionring-variables.js. When a widget is loaded it looks at the URL of the site it is on and does simple regexp to figure out if it is on the official list of sites. That lets it know where in the ordered list the browser is currently, and lets users walk the ring using the Next/Previous links. If the regex fails to find a match it shows an error message instead. That's it. Simple 90's tech.

Daily Shuffling

Traditionally, webrings acted like static linked lists where for any given site, the next and previous sites were fixed. Obviously this creates hotspots where a high traffic site would bias traffic towards its neighbors. To smooth things out, we've added a PRNG seeded to the date that shuffles the list in a consistent manner. That way the hot spots should be smooth over time while still giving visitors a consistent browsing experience that let's them walk the entire ring.

License

Quoted straight from Onionring's site on 2024-09-20:

onionring.js and the files that make it up are licensed under the cooperative non-violent license (CNPL) v7+, which means, roughly, that anyone is allowed to download, change and share the files as long as you give credit, disclaim what changes you've made, and don't use them to violent, coercive or discriminatory ends.

About

A webring for data people who write

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published