This website is hosted on Bluesky
danielmangum.com
danielmangum.com
That said, just the other day I was thinking, is the reverse possible. I have a web site/blog. Use RSS and then the RSS updates are posted to a handle on Bluesky. I would assume that's a lot more useful?
This is trivial, I'm currently doing this for https://bsky.app/profile/aemet-bot.bsky.social which reads a bunch of RSS feeds from AEMET (Spain's national weather service basically) and posts warnings to the feed if there is any warning above Yellow.
The code for managing this is about ~200 lines of Rust code.
If there is interest I guess I could spend some hours to make it a bit more generic and publish the source.
let agent = BskyAgent::builder().build().await?;
agent
.login("username.bsky.social", "X")
.await?;
let rt = RichText::new_with_detect_facets(msg).await?;
let record = RecordData {
text: rt.text,
created_at: atrium_api::types::string::Datetime::now(),
facets: rt.facets,
};
agent.create_record(record).await?;
Works well enough. It's a bit on the lower end of the "abstraction ladder", there might be more user-friendly libraries for doing this even easier now.Or maybe there is a potential for a SaaS service?
These are abused all the time for phishing and malicious threat actors.
curl -i 'https://porcini.us-east.host.bsky.network/xrpc/com.atproto.sync.getBlob?did=did:plc:j22nebhg6aek3kt2mex5ng7e&cid=bafkreic5fmelmhqoqxfjz2siw5ey43ixwlzg5gvv2pkkz7o25ikepv4zeq'
Here are the headers I got back: x-powered-by: Express
access-control-allow-origin: *
cache-control: private
vary: Authorization, Accept-Encoding
ratelimit-limit: 3000
ratelimit-remaining: 2998
ratelimit-reset: 1732482126
ratelimit-policy: 3000;w=300
content-length: 268
x-content-type-options: nosniff
content-security-policy: default-src 'none'; sandbox
content-type: text/html; charset=utf-8
date: Sun, 24 Nov 2024 20:57:24 GMT
strict-transport-security: max-age=63072000
Presumably that ratelimit is against your IP?"access-control-allow-origin: *" is interesting - it means you can access content hosted in this way using fetch() from JavaScript on any web page on any other domain.
"content-security-policy: default-src 'none'; sandbox" is very restrictive (which is good) - content hosted here won't be able to load additional scripts or images, and the sandbox tag means it can't run JavaScript either: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Co...
1: https://github.com/w3c/webappsec/issues/656#issuecomment-246...
A friend and I had considered looking into storing DOOM WADs on bluesky so that "map packs" could be shared in the same way posts are. Follow an account, a list, or a starter pack, and you could theoretically modify GZDoom or some other client to know how to search and view any WADs posted by those accounts. Like how the Steam Workshop works, except it's via bluesky. :D
I joke but RSS does work for his use case just as well minus the distributed/federated points.
You can define custom records for basically anything
A PDS would be a point in the network that decides if abuse is happening, also a place where competition can occur
Bluesky does the first step and then it's a great big leap from there imo.
I see a dozen links I suspect are required reading to try out new ideas.
With HTTP/HTML you can show somebody who knows only the most basic Python, or any other PL, how to build a server from scratch in those 14 minutes.
I'm convinced we need hash-addressable communication protocols to redefine the relationship we have with the tech-giants, and stop them exploiting our communities.
I'm not convinced the ATProtocol has hit the mark well enough to kick start a revolution like HTTP did.
This seems like one of the things that might be part of the references the bluesky team has made at time to introducing a subscription service - providing more space / bandwidth / higher quality video on your PDS seems like the type of hosting that could be offered at a premium tier.
If I understood correctly, the PDS was hosted on Bluesky. I assume it could be hosted somewhere else, so yeah it could be interacted with more than Bluesky.
I'm pretty sure that's a key reason that google accounts are limited to 15gb now until you pay for more storage. When it was unlimited there were all these opensource projects coming up with ideas to backup your filesystem to gmail and such which got even worse when Drive came about. These free services need to foresee that that will be an issue and put in some basic limits.
I have a lot of hope for AT. I'm sure there's lots of smart people on HN that have done great things with the Fediverse, but this whole paradigm just seems more sustainable + realistic. Basically it gives us centralization by default, but with real decentralized support when you need it / for power users.
[0] https://www.blockchaincapital.com/blog/bluesky-13m-users-and...
In general I feel like social media is in the perfect spot for a huge shakeup as display ads breathe their last breath. Even if Google wins/draws out its Display Ads antitrust case and successfully implements some new interest-tagging system, I think anyone with a calculator and a newspaper subscription can read the leaves at this point; people are concerned about their data, and the money it generates is peanuts compared to more traditional advertising schemes. All of this is of course not even mentioning what I think intuitive algorithms will do (cynical or no, there’s lots of credentialed scientists saying that AGI (!!) is within reach in the coming decade, if not the coming few year).
All that to say: I feel like they can find a way to make it work. Revenue doesn’t need to be as high anyway if you a) don’t have 1000 devs optimizing Display Ad A/B tests all day, and b) have the support of the open source community.
This would have to get the user to follow a link or call a phone number or something though. These are plausible. It's too bad the content-security-policy can't prevent following links.
While they're nowhere close on volume, they're certainly beating microsoft in terms of the rate they're adding similar looking official URLs.
Shortening your brand to 4 letters when your chosen TLD is the same length as your full brand name is such a weird choice.
$inane_marketing_trope
...
Click here to Unsubscribe from Bluesky
https://porcini.us-east.host.bsky.network/xrpc/com.atproto.s...
...
Redirects to bad site.
It's like if you point to your own Apache server in your own domain where you host a scam page and say there's a security issue with Apache because you could do that.
Or are you saying that you can make this person's server serve third-party content?
Http: yes see OP
Email: not sure. Hopefully not. But spoofing happens.
Like a link shortener which only forwards to a domain that matches the subdomain? Or only for watching videos and collecting metrics etc.
Tbh, I still haven't figured out how my IRC client is supposed to fetch avatars of bridged matrix users now.
Previously I was able to special case bridged matrix users and access their avatars through
/_matrix/client/r0/profile/{name}/avatar_url
/_matrix/media/r0/thumbnail/{server}/{id}/
/_matrix/media/r0/download/{server}/{id}If a bridged matrix user joins a channel, as IRC client I see the following information:
justJanne[m]!justjannem@Snoonet-han4h7.720l.ak1n.m0s0nj.IP (@justjanne:matrix.org)
With the mxid I can call /_matrix/client/r0/profile/{name}/avatar_url and get the mxc url. mxc://matrix.org/uQMYcfRtSKFlYYBXLGhuIXzq
In the past that was enough, I could just call /_matrix/media/r0/download/.With authenticated media, I would need to get a URL with a signed JWT from the bridge's media proxy such as
https://matrix.org/snoonet/media/v1/media/download/ARahZwUoMu0BcC8Di6Q3N3lpPAejecpE6OyRcKnsvw3n7pjmP7XVSXG8hYT99knbOtESJ9ODlzqLcdLy8Y2mPs9CeTshGEPwAG1hdHJpeC5vcmcvdVFNWWNmUnRTS0ZsWVlCWExHaHVJWHpx
But what endpoint would I call to get that? From what I can tell there's no way to get the bridge to give me a users' avatar.I'd expect to have an special endpoint such as /snoonet/avatar/{mxid} that'd redirect me to the /snoonet/media/v1/media/download URL.
While this might raise privacy or safety concerns, could the AT Protocol be a suitable platform for storing GPX or FIT files?
The example provided is quite basic static text, so I'm wondering if there's a reason for that?
https://amp.theguardian.com/technology/article/2024/may/07/j...
What I remember about that whole affair is that I'd really respected Jack for starting Bluesky, allowing it to be independent of Twitter (and Jay deserves a heaping of credit for pushing that!), and then losing that respect when he seemed to totally misunderstand what Bluesky had gone on to achieve.
https://www.techdirt.com/2024/05/13/bluesky-is-building-the-...
Jack was pushing Nostr at the time which... seems ok if you're into that. But his arguments in his interview with Mike Solana really didn't make sense to me.
If techdirt’s article is to be believed, Dorsey’s departure has to do with going from an extreme to an extreme—from a traditional social monolith to a pure protocol—whereas Bluesky chose to pursue not only the protocol, but also “the app” as the face of that protocol for the ordinary user, and let’s face it: the ordinary user does not really care about protocols.
My speculation about him suggesting people “stay on Twitter” is that Nostr (which he apparently is invested in now) and Twitter are orthogonal, so there is no conflict there, but Bluesky competes with both.
Not a Bluesky user (the invite-only period has put me off for a while), but if they do not compromise on the protocol part (and there are no shenanigans unfolding, who knows, maybe Dorsey found something) their attitude seems to me to be the most reasonable for a mainstream social platform.
It worked with Orkut back in the day where the internet was new and untainted by culture wars.
Bluesky is lefty twitter now and I want no business with that platform.
I love hearing people say this, because in reality Bluesky covers most of the political dimensions one wants to subdivide a population by except the most toxic of participants. Also, most of the academics have moved to Bluesky because Twitter became toxic / suppressed speech dramatically and at the whims of one Mr. Musk. As per usual, where the "lefties" are the "righties" follow (to use the parlance of the prior comment) be is social media, good policy, you name it.
Plenty of conservatives are there, such as Lincoln project folks, right libertarians, and even National Review & Reason IIRC. But I guess these folks don't count these days as conservative (despite definitionally being so, just not aligned with modern US Republican policy planks)? Not sure.
Anyhow, I'm enjoying Bluesky for what it is -- a new social media platform that isn't fully encumbered by bots and nonsense for a bit.
But what kind of speech is supressed nowadays on X? what about Bluesky? does Bluesky not supress any speech?
Meanwhile Twitter is now openly suppressing links off-site. For financial reasons rather than ideological ones (although the latter may also be occurring).
Is there even a way to find out, considering their main feed is a product of opaque suggestion algorithm and very few use the Following timeline as the main mode?
> what about Bluesky? does Bluesky not supress any speech?
The end-user is put in charge of that and by default it’s a chronological feed, I believe, which means no suppression unless it’s something illegal in US (CSAM, links to CSAM, etc.) and Bluesky could be held responsible for distrubuting that stuff.
This is more of an unstructured approach, which is cool because it needs less specialized tooling. It has the disadvantage of being… well, just a blob. No semantic information there.
Also it's uh, atproto.com
How exactly is the personal data server used? Examples and such?
The link gives a nice high level explanation but I still am not sure of its purpose.
What other protocols would make sense?
However, data on AT Proto is fully public and it’d be trivial for someone to extract the data for AI to train.
For example, this app shows you entries hosted on the protocol: https://atproto-browser.vercel.app/at/nytimes.com
Here's Pong (HTML + JS) and the Epic of Gilgamesh: https://x.com/rafalpast/status/1316836397903474688
(brought to you by the ad tracking pixel parameters ignoring the tweet length limit)
More links + the "Twitter CDN" editor™: https://sonnet.io/projects#:~:text=Laconic!%20(a%20Twitter%2...
Next.js sites are also a super easy find like this.
Has something overtaken Hugo and Jekyll in that space?
I maintain a blog on Hugo but also host a couple of Astro ones. I think Hugo is great but to my eyes at least Astro has more active development behind it, and I also enjoy it more (probably because I know Typescript more than golang)
Not sure if that fits the bill for you, but I like it.
I found building my own custom one with python3, much more freeing in all sorts of interesting ways, I also exposed the static site generator with a FastAPI based API to auto build my website from my notes, my cooking recipes, database records, financials, git commits, etc to build me a private protected website (via nginx auth) from anywhere, whether via sending a text message to my telegram bot, or running a Shortcuts command on my iPad, or just directly running a command from my terminal.
It took barely a day to setup, and allows me to run interesting custom extensions in all sorts of interesting ways, and builds me a personal website curated to my interest, where the primary viewer is supposed to be me. and it exposes a public barebones website with barely any content for everyone else.
One of these days I think i’ll expose more of it to the world.
Leo R. Comerford @leocomerford.bsky.social
Why was it decided not to build on any existing content-addressable networking system (IPFS or whatever)?
November 1, 2024 at 12:39 PM
Leo R. Comerford @leocomerford.bsky.social · 23d
(Not implying that this was the wrong decision, it’s a genuine question.)
dan @danabra.mov · 23d
actually not sure i can answer this well. paging @bnewbold.net or maybe @why.bsky.team (who worked on IPFS btw)
dan @danabra.mov · 23d
my guess is that we’d want data hosting to be under direct control of the user (same as web hosting) rather than peer-to-peer, want instant deletion/edits at the source, need ability to move to a different host or take content down, need grouping into collections. not sure how much IPFS could adapt
dan @danabra.mov · 23d
we do use some pieces from IPFS through (aside from the actual peer to peer mechanism) bryan newbold @bnewbold.net · 4mo
you can basically ignore it, we don't use "IPFS" proper anywhere.
there are strong social connections, and we borrow some tech components like CIDs (flexible hash/digest syntax) and DAG-CBOR (more-deterministic subset of CBOR, good for signing+hashing)
Bumblefudge @bumblefudge.com · 1d
yeah this is all accurate. bluesky remixed a lot of IPFS components and patterns in interesting ways, but the monolithic global IPFS network (with chatty DHT distribution) wouldn't make sense here, BS made an infinitely more efficient/performant distribution of bytes tailored to its use case.
Bumblefudge @bumblefudge.com · 1d
FWIW the IPFS foundation is working on making IPFS more modular and easily remixed for future BlueSkies, but it's a big task decomposing the monolith and reorienting the documentation and ergonomics...
[a second reply to the first skeet:]
Uai @why.bsky.team · 23d
As far as im concerned (and i led ipfs development for a number of years) we are using ipfs, just a specific streamlined implementation of it. All your repo data can be imported into an ipfs node and addressed via cid
Uai @why.bsky.team · 23d
We dont use libp2p because for a consumer mobile app we didnt want to futz with nat traversal and connectivity and the like, but its definitely possible to build a p2p version of bluesky
Using bodily functions as core infra terminology is off-putting and feels like a bit like a juvenile boy's club. I get that some people find it funny, but it alienates people. We should just call these "posts".
Same thing with names like CockroachDB and GIMP.
>What is a post on Bluesky called?
>The official term is “post.”