It's great how well crafted the Mastodon RSS feeds are. Just wrote a blog post about that.
Social media rambling
I actually have an old B&N Nook e-reader that I was able to get autographed by the inimitable @pluralistic - he wrote on the back of it “if you can’t open it, you don’t own it”
Feeling like there’s a corollary there for the modern day: “if it can be bought and destroyed by a billionaire, you don’t own it”
No billionaire can just “buy Mastodon”. They might buy an instance (I got one you can have for $8!), but the protocol is free forever.
@samplereality Twitter was written in Ruby at first too, but Ruby wastes 99.9% of your CPU and 90% of your RAM, so rewrote it in Scala years ago to make the costs much less enormous.
@scottjenson @jeffjarvis You could simply do a very easy logistic regression of your own decision of "favorite" or "bookmark" or "reply" against the vectors of boost and favorite of all your follows to get a statistical prediction of how likely you are to favorite (or reply to, etc.) a post. Let's call that prediction "quality", acknowledging that is a firmly subjective (intersubjective?) kind of quality.
Then need some way to combine that "quality" metric with recency. I'd favor a quality threshold that varies over time to maintain a roughly constant rate of posts selected from the thousands of candidates per day: 5 per day, say, or 50 per day. Maybe only rate a post 48 hours after posting so all the data is in.
@scottjenson @jeffjarvis You could simply do a very easy logistic regression of your own decision of "favorite" or "bookmark" or "reply" against the vectors of boost and favorite of all your follows to get a statistical prediction of how likely you are to favorite (or reply to, etc.) a post. Let's call that prediction "quality", acknowledging that is a firmly subjective (intersubjective?) kind of quality.
Then need some way to combine that "quality" metric with recency. I'd favor a quality threshold that varies over time to maintain a roughly constant rate of posts selected from the thousands of candidates per day: 5 per day, say, or 50 per day. Maybe only rate a post 48 hours after posting so all the data is in.
The consistent increased risk of diabetes after Covid across all age groups, highest in the first 3 months after infection, from a systematic review of 9 studies, ~40 million people
https://bmcmedicine.biomedcentral.com/articles/10.1186/s12916-022-02656-y
@rmerriam @shriramk I think is true that if you know Algol you can figure out Fortran, but Snobol and Lisp are pretty different (at least the sublanguage of Lisp without SETQ) and I think Coq and Kanren are even further out.
Helps to understand a program in a language you don't know well if the language is designed for easy readability by people who aren't familiar with it, like Python and COBOL. Also helps if the author is aiming for that. Lots of Haskell code isn't.
@enkiv2 Hmm, does archive.org successfully archive YouTube now?
(Obviously none of what say here will be useful to Mastodon admins fighting fires this week.)
Maybe needing multiple machines with gigabytes of RAM to support only 75,000 users suggests that a more efficient reimplementation of #ActivityPub would be helpful. Maybe not using Ruby and using enough backpressure to handle overload conditions gracefully would help.
I don't know, how effectively can ActivityPub implementations apply backpressure? Does the protocol itself make it difficult? Can failed deliveries get reattempted after a short time if deferred due to overload?
How much total bandwidth are we talking about for this number of users? Back of the envelope? This is super stupid because haven't even read the protocol spec, so please let me know if I'm making totally wrong assumptions here.
First, the inter-server traffic. I'm thinking media attachments aren't included in the activity stream itself, but thumbnails are; those are typically 100K; everything that isn't a media attachment is of insignificant size; users typically subscribe to 100 other users on other instances, who each post 100 posts a day; one post in five has a media attachment; and on average each remote user has two subscribers on your instance, so the 10000 incoming posts a day per user gets reduced to 5000, which is 100 megabytes per user per day. Is that about right?
100 megabytes per day is about 9600 baud, so a gigabit pipe should be adequate for the inter-server communications for around 100k people.
But then you actually have to serve those posts to them, which means at least twice as much bandwidth, and maybe more if they reload the page and you can't force their browser to cache those stinky thumbnails forever.
In terms of messages per second, 5000 incoming posts per user per day is about 6000 posts per second for 100k users. That's about an order of magnitude below what RabbitMQ can do (on one machine!) and two orders of magnitude below ZeroMQ. So the bandwidth thing rather than CPU is really probably the crucial limiting factor (though not, of course, with Ruby).
(Obviously none of what say here will be useful to Mastodon admins fighting fires this week.)
Maybe needing multiple machines with gigabytes of RAM to support only 75,000 users suggests that a more efficient reimplementation of #ActivityPub would be helpful. Maybe not using Ruby and using enough backpressure to handle overload conditions gracefully would help.
I don't know, how effectively can ActivityPub implementations apply backpressure? Does the protocol itself make it difficult? Can failed deliveries get reattempted after a short time if deferred due to overload?
How much total bandwidth are we talking about for this number of users? Back of the envelope? This is super stupid because haven't even read the protocol spec, so please let me know if I'm making totally wrong assumptions here.
First, the inter-server traffic. I'm thinking media attachments aren't included in the activity stream itself, but thumbnails are; those are typically 100K; everything that isn't a media attachment is of insignificant size; users typically subscribe to 100 other users on other instances, who each post 100 posts a day; one post in five has a media attachment; and on average each remote user has two subscribers on your instance, so the 10000 incoming posts a day per user gets reduced to 5000, which is 100 megabytes per user per day. Is that about right?
100 megabytes per day is about 9600 baud, so a gigabit pipe should be adequate for the inter-server communications for around 100k people.
But then you actually have to serve those posts to them, which means at least twice as much bandwidth, and maybe more if they reload the page and you can't force their browser to cache those stinky thumbnails forever.
In terms of messages per second, 5000 incoming posts per user per day is about 6000 posts per second for 100k users. That's about an order of magnitude below what RabbitMQ can do (on one machine!) and two orders of magnitude below ZeroMQ. So the bandwidth thing rather than CPU is really probably the crucial limiting factor (though not, of course, with Ruby).
@shriramk Have found learning new languages opened my mind a lot; I wonder what a CS curriculum would look like that embraced Haskell, Kanren, Elixir, Levien's Io, Coq, Pure, Forth, Verilog, APL, ToonTalk, and the pi-calculus? Type of, solving difficult problems in each of them?
Could maybe get bogged down in puzzle-solving without students achieving transferability to other domains.
9/ Anyway, code is increasingly generated in so many ways that we're moving from "writing lines of code is hard" to "the hard problem is determining whether a chunk of code is fit for purpose" (this motivated Joe Politz's dissertation a decade ago!).
10/ The next generation computing problems will not be about writing 80s style 5-line for-loops. It'll be about properties, specification, reasoning, verification, prompt eng, synthesis, etc. How will we get there?
@micahflee In 2002 wrote my papers in LaTeX or HTML; didn't crash.
"Vox populi vox Dei" is from a quotation saying the opposite of voice of people is voice of God:
"...riotiousness of the crowd is always very close to madness"
--Alcuin 8th C AD.
I find this twitter poll interesting: https://twitter.com/danielerasmus/status/1594468482829139968
From Brink Lindsey's [The Anti-Promethean Backlash](https://brinklindsey.substack.com/p/the-anti-promethean-backlash):
"*No, the revolution I’m talking about can be described as the anti-Promethean backlash — the broad-based cultural turn away from those forms of technological progress that extend and amplify human mastery over the physical world. The quest to build bigger, go farther and faster and higher, and harness ever greater sources of power was, if not abandoned, then greatly deprioritized in the United States and other rich democracies starting in the 1960s and 70s. We made it to the moon, and then stopped going. We pioneered commercial supersonic air travel, and then discontinued it. We developed nuclear power, and then stopped building new plants. There is really no precedent for this kind of abdication of powers in Western modernity; one historical parallel that comes to mind is the Ming dynasty’s abandonment of its expeditionary treasure fleet after the voyages of Zheng He.*"
The thing about Twitter is that it really lacks a lot of the features you'd expect from a true Mastodon replacement.
For example, there's no way to edit your toots (which they, confusingly call "tweets"—let's face it, it's a bit of a silly name that's difficult to take seriously).
"Tweets" can't be covered by a content warning. There's no way to let the poster know you like their tweet without also sharing it, and no bookmark feature.
There's no way to set up your own instance, and you're basically stuck on a single instance of Twitter. That means there's no community moderators you can reach out to to quickly resolve issues. Also, you can't de-federate instances with a lot of problematic content.
It also doesn't Integrate with other fediverse platforms, and I couldn't find the option to turn the ads off.
Really, Twitter has made a good start, but it will need to add a lot of additional features before it gets to the point where it becomes a true Mastodon replacement for most users.
I really can’t believe how far #3dprinting has come since I started with my first #reprap. I’m printing this #DarkSaber and the QUALITY coming out of a $700 #Prusa is bananas. And the fact that I BUILT IT MYSELF FROM A KIT is mind blowing. And using #OctoPrint by @foosel and OctoEverywhere to monitor remotely? It’s Star Trek levels of awesome. #Irony
@espen@eboks.social @allenholub Right, starring adds it to your list of starred posts. Though is less useful than it could be on Mastodon; there's no search through starred posts and no tagging.
I read a lot. Sometimes I learn things. I like making things. I think reading and doing are complementary.