Hacker News new | past | comments | ask | show | jobs | submit login

There are the superficial features and then there are the super features built so deeply in the architecture they can be game-changing and invisible at the same time. (e.g going from XML to JSON is trivial in comparison, it wouldn't matter if it went to ASN.1 and EBCDIC)

ActivityPub puts timestamps on things so you can ask your Mastodon server for everything that's been updated since the last time you polled. RSS makes you poll over and over again and download everything. so instead of downloading X kb of content you could be downloading 20X kb if you are polling too fast, alternately you could be losing content if you poll to slow.

It is routine for ActivityPub servers to work in an aggregating mode so I can subscribe to 2000 Mastodon users who are spread across 300 servers and still be able to update my feed by making one request.

To be fair, RSS aggregation is a thing, or at least used to be a thing see https://en.wikipedia.org/wiki/Planet_(software)

There are numerous reasons why "RSS died" but one of them is surely that phones became more popular than desktops and it is absolutely unthinkable that a phone would be polling and polling and polling hundreds of severs all day... It would kill your battery!

My smart RSS reader YOShInOn uses

https://en.wikipedia.org/wiki/Superfeedr

for the ingestion front end which provides an ideal API from my point of view. When a new feed item comes in Superfeedr sends an https request to an AWS lambda function, that stores the feed items into an SQS queue, and YOShInOn's ingest script fetches items from its queue at its convenience. The one trouble with it is that it costs 10 cents/feed/month... It's quite affordable if I want to subscribe to 100 feeds (which I do currently) but subscribing to 2000 independent blogs that get one post a week is getting pricey.

On the flip side is the effect this all has on servers: I think people are often looking at Google Analytics now and not looking at their http logs, if they did they might find there is a huge amount of polling going on and not a lot of clarity on how this connects to users. There's the strange story of Feedburner, which offered some analytics for feeds and then got bought by Google. I think the best kept secret of black hat SEO in the early 2010s was that anything you put in a "burned" RSS feed was certain to get indexed in Google's web search index almost immediately. (I'd hear other people on forums complaining about pages they put up that were perfectly fine and not spammy but would go unindexed for 2-3 months.) If you wanted to get 200,000 slightly spammy pages indexed your best bet was to set up WordPress and roll the content over the course of a few weeks.*




> ActivityPub puts timestamps on things so you can ask your Mastodon server for everything that's been updated since the last time you polled. RSS makes you poll over and over again and download everything. so instead of downloading X kb of content you could be downloading 20X kb if you are polling too fast, alternately you could be losing content if you poll to slow.

You have to download the feed when something changes, correct. But you do not and should not download the whole thing over and over again. That is exactly what If-Modified-Since [1] is for.

[1] https://datatracker.ietf.org/doc/html/rfc1945#section-10.9


> ActivityPub puts timestamps on things so you can ask your Mastodon server for everything that's been updated since the last time you polled. RSS makes you poll over and over again and download everything. so instead of downloading X kb of content you could be downloading 20X kb if you are polling too fast, alternately you could be losing content if you poll to slow.

This is a pretty obvious consequence of trying to misuse HTTP (or debased "REST") to get it to do something it's just not very well-suited for.

A client-to-server protocol like XMPP that's tailor made for this application would be a better fit, but what captures public attention rarely involves coming up with answers to questions like, "First, which is the superior technology?"


> When a new feed item comes in Superfeedr sends an https request to an AWS lambda function, that stores the feed items into an SQS queue, and YOShInOn's ingest script fetches items from its queue at its convenience. The one trouble with it is that it costs 10 cents/feed/month... It's quite affordable if I want to subscribe to 100 feeds (which I do currently) but subscribing to 2000 independent blogs that get one post a week is getting pricey.

Wow, that seems overengineered to me. I use a cron job on my phone, and taskspooler as a queue. It has no operating costs, doesn't rely on any third-party infrastructure, can be edited/audited/executed locally, etc.

> it is absolutely unthinkable that a phone would be polling and polling and polling hundreds of severs all day... It would kill your battery!

How often are you polling? I usually set several hours between cron runs; any more frequent and I find myself mindlessly refreshing for updates. I have a few Bash commands to check if we're on WiFi/Ethernet, if we're plugged into a charger, etc. which also control some systemd targets. That makes it easier to avoid using any mobile data or battery power.

PS: Planet is alive and well (at least, the FOSS project ones I read, like Planet Haskell) :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: