What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

1
0
8
0
1
0
0

Question for Emacs wizards. I found a strange thing which I could not understand after reading the documentation (gnu.org/software/emacs/manual/) and even after reading the startup files, shipped with my Emacs 30.2.

If I use the -q option — Emacs will add site-lisp directories to the load-path. But with -Q option — there are no site-lisp catalogs in the load-path. Why is this happens? :drgn_confused:

Note: the option --no-site-lisp is not used in the both examples. So, as I understood after reading the gnu.org/software/emacs/manual/, even with --no-site-file (or -Q) the site-lisp catalogs should be added to the load-path in the both cases :drgn_confused:

Xterm window divided in two panes. On the one pane there is emacs -Q --batch --eval "(print load-path)" command which prints list of catalogs from /usr/local/share/emacs/30.2/lisp/*. On the second pane there is emacs -q --batch --eval "(print load-path)" command wich prints list of catalogs from /usr/local/share/emacs/30.2/lisp/* AND from /usr/local/share/emacs/30.2/site-lisp AND from /usr/local/share/emacs/site-lisp.
0
1
0
0
11
0
0

洪 民憙 (Hong Minhee) :nonbinary: shared the below article:

ActivityPub Social API Hackathon

evan @evan@activitypub.space

<p><a href="https://wedistribute.org/2025/08/social-web-foundation-is-betting-big-on-client-to-server-api/" rel="nofollow ugc">It's well-known</a> that we love the <a href="https://github.com/swicg/activitypub-api/" rel="nofollow ugc">ActivityPub API</a> at the Social Web Foundation.</p> <p>I think it would be great for our community to have an ActivityPub API hackathon sometime this year -- hopefully this summer. Hackathons are a great way to engage a lot of developers really quickly. They also are a great way to test that an API has enough power to get people from zero to working app in a day or a weekend.</p> <p>I see a few great times to do this:</p> <ul> <li><a href="https://dwebcamp.org/berlin-2026/" rel="nofollow ugc">DWeb Camp Berlin</a> in Berlin</li> <li><a href="https://fedicon.ca/" rel="nofollow ugc">Fedicon</a> 2026 🤞🏼 in Vancouver</li></ul>

Read more →
0

洪 民憙 (Hong Minhee) :nonbinary: shared the below article:

Why I use "ActivityPub API" or "Social API"

Evan Prodromou @evanp@ghost.evanp.me

One of the most interesting areas of exploration in the ActivityPub community right now is the ActivityPub API. Most people who know ActivityPub are familiar with its federation protocol, which lets social networking servers like Mastodon and Pixelfed share data between them. But there is another, closely-related feature in the same specification, called the "social API".

ActivityPub has five normative sections: 3 Objects, 4 Actors, 5 Collections, 6 Client-to-Server Interactions, and 7 Server-to-Server Interactions. 3, 4, and 5 provide a read-only interface to social data that is useful for both the federation protocol and the social API. It lets both clients and servers read information about users on the network, their feeds, and the things they make and share.

Section 6 is focused on the mechanism clients can use to create new activities, and the side-effects of those activities. "Activities" are the most important data structure in ActivityPub (which is why they're featured so prominently in the name!). They represent sentences or statements about things that happen on a social network, like "Christine created the image img123.jpg" or "Evan liked Christine's image img123.jpg" and "Amy shared Christine's image img123.jpg". Creating these statements is how clients can make things happen with ActivityPub.

Section 7 is focused on how and when servers can send these activities across the network to other servers. There are some side-effects that are laid out, but mostly they involve cache management.

So, here's the important point I want to make: the federation protocol which connects ActivityPub servers is defined in sections 3, 4, 5, and 7. The social API is defined in sections 3, 4, 5, and 6. But some people use "server-to-server" or "s2s" as a synonym for the federation protocol, even though "server to server interactions" only covers one section. Similarly, some people use "c2s" or "client-to-server" as a synonym for the social API, even if "client-to-server interactions" is only one section.

I prefer to use "social API" or "ActivityPub API" to refer to the entire part of ActivityPub that lets client apps talk to social servers. Here are some rough reasons why.

  • It's what the spec calls it. In the conformance section, we said that 'this specification defines two closely related and interacting protocols: A client to server protocol, or "Social API" [...] A server to server protocol, or "Federation Protocol"'. This was intentional; the names come from the Social Web Working Group charter deliverables. Making a Social API was a key goal of the group. The ActivityPub API satisfies that goal.
  • It's a term that all developers and many users are familiar with. People who've used mobile apps or third-party apps know what an API is and what it's for. If you use "c2s", it's not clear to most developers what you're even talking about.
  • It's accurate. The social API is a RESTful API that uses JSON, HTTP, and all the fun stuff that app developers are already familiar with.
  • It emphasizes what's already available. People often say that Mastodon does not implement the ActivityPub API. But it implements sections 3, 4, and 5 of the specification – it has to, in order to support the federation protocol. That's the entire read-only side of the API. All (almost all?) Fediverse servers support these parts of the spec, too. You can build a pretty OK read-only API client using what's already available from Mastodon and others; see https://acct.swf.pub/ for an example.
  • "c2s" doesn't cover the whole API. As I said above, only one section of the doc is called "Client-to-Server Interactions", and it doesn't cover the read-only side of the API.
  • "c2s" is insider jargon. c2s isn't a common term for RESTful APIs. It really isn't a common term at all; there are only a few protocol suites, like XMPP, that refer to the "c2s" and "s2s" part.

I think it's fine if others use "c2s" when talking about the API, or especially about section 6 of the ActivityPub spec. It's not going to cause any harm. But the Social Web Community Group task force on implementing the API is called the "ActivityPub API" task force. I think that's a good idea – it emphasizes the API. I intent to use this name and framing for the foreseeable future.

Read more →
0
0

I’m currently building a new app called diu, which is a to-do list that helps you understand what motivates you to do things, not just track them.

If that sounds interesting, join the waiting list over at getdiu.com
TestFlight coming pretty soon!

0
0

よっこいし :saba:

e24737c612 (upstream/main) Replace `prettier` with `oxfmt` (#37893)
8e7c3973dc Remove conditional check for timeline data (#37922)
39ff07bc89 Only suggest `discoverable` accounts in collection account editor (#37920)
7eb4b907eb New Crowdin Translations (automated) (#37918)
2a9de97cb6 Use validation matchers for `UserEmailValidator` spec (#37908)
c118ff708f Merge collection settings into single editor page (#37916)
ed4787c1b1 Profile editing: Name and bio (#37907)
157583659a Use validation matchers for `UniqueUsernameValidator` spec (#37909)
40f92f3af8 Use validation matchers for `UnreservedUsernameValidator` spec (#37910)
e288bf6516 Show reported collections in moderation interface (#37898)
6f859364fb Update dependency rack to v3.2.5 (#37895)
238d0f8e1d Update dependency devise to v5.0.2 (#37903)
f48a299004 Use validation matchers for `UrlValidator` spec (#37911)
093528ef17 New Crowdin Translations (automated) (#37915)

0
0

V Praze pokračuje výměna osvětlení – sodíkové lampy nahrazují úspornější LED světla. Proti jejich zavádění se ale vymezuje část veřejnosti i odborníci. Proč? Nejen to se dozvíte se v dnešním dílu pořadu Vysvětleno s Lucií Neužilovou.

0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0

A bench end carved with a mermaid in the church of the coastal village of Zennor, Cornwall. A legend claims that a mysterious woman would sometimes attend church services, singing in a captivating, otherworldly voice. There seemed something of a spark between her and a handsome young chorister, and their voices would intertwine beautifully. After one service, the two walked to a nearby cove, disappeared beneath the waves, and were never seen again. The villagers realised the woman was a mermaid and had the bench she sat on carved with her image as a warning to men to beware of these dangerous creatures. Images of mermaids were quite common in medieval churches. Usually portrayed clutching mirrors and combs, they admonished worshippers about the temptations of vanity. At Zennor, the legend may have been invented to explain the carving after its meaning had been forgotten.

A wooden church bench, whose end is decorated with a worn image of a mermaid. She has long flowing hair and is clutching a round mirror and a comb.
0

Evan Prodromou shared the below article:

ActivityPub Social API Hackathon

evan @evan@activitypub.space

<p><a href="https://wedistribute.org/2025/08/social-web-foundation-is-betting-big-on-client-to-server-api/" rel="nofollow ugc">It's well-known</a> that we love the <a href="https://github.com/swicg/activitypub-api/" rel="nofollow ugc">ActivityPub API</a> at the Social Web Foundation.</p> <p>I think it would be great for our community to have an ActivityPub API hackathon sometime this year -- hopefully this summer. Hackathons are a great way to engage a lot of developers really quickly. They also are a great way to test that an API has enough power to get people from zero to working app in a day or a weekend.</p> <p>I see a few great times to do this:</p> <ul> <li><a href="https://dwebcamp.org/berlin-2026/" rel="nofollow ugc">DWeb Camp Berlin</a> in Berlin</li> <li><a href="https://fedicon.ca/" rel="nofollow ugc">Fedicon</a> 2026 🤞🏼 in Vancouver</li></ul>

Read more →
0
0
1

Evan Prodromou shared the below article:

Why I use "ActivityPub API" or "Social API"

Evan Prodromou @evanp@ghost.evanp.me

One of the most interesting areas of exploration in the ActivityPub community right now is the ActivityPub API. Most people who know ActivityPub are familiar with its federation protocol, which lets social networking servers like Mastodon and Pixelfed share data between them. But there is another, closely-related feature in the same specification, called the "social API".

ActivityPub has five normative sections: 3 Objects, 4 Actors, 5 Collections, 6 Client-to-Server Interactions, and 7 Server-to-Server Interactions. 3, 4, and 5 provide a read-only interface to social data that is useful for both the federation protocol and the social API. It lets both clients and servers read information about users on the network, their feeds, and the things they make and share.

Section 6 is focused on the mechanism clients can use to create new activities, and the side-effects of those activities. "Activities" are the most important data structure in ActivityPub (which is why they're featured so prominently in the name!). They represent sentences or statements about things that happen on a social network, like "Christine created the image img123.jpg" or "Evan liked Christine's image img123.jpg" and "Amy shared Christine's image img123.jpg". Creating these statements is how clients can make things happen with ActivityPub.

Section 7 is focused on how and when servers can send these activities across the network to other servers. There are some side-effects that are laid out, but mostly they involve cache management.

So, here's the important point I want to make: the federation protocol which connects ActivityPub servers is defined in sections 3, 4, 5, and 7. The social API is defined in sections 3, 4, 5, and 6. But some people use "server-to-server" or "s2s" as a synonym for the federation protocol, even though "server to server interactions" only covers one section. Similarly, some people use "c2s" or "client-to-server" as a synonym for the social API, even if "client-to-server interactions" is only one section.

I prefer to use "social API" or "ActivityPub API" to refer to the entire part of ActivityPub that lets client apps talk to social servers. Here are some rough reasons why.

  • It's what the spec calls it. In the conformance section, we said that 'this specification defines two closely related and interacting protocols: A client to server protocol, or "Social API" [...] A server to server protocol, or "Federation Protocol"'. This was intentional; the names come from the Social Web Working Group charter deliverables. Making a Social API was a key goal of the group. The ActivityPub API satisfies that goal.
  • It's a term that all developers and many users are familiar with. People who've used mobile apps or third-party apps know what an API is and what it's for. If you use "c2s", it's not clear to most developers what you're even talking about.
  • It's accurate. The social API is a RESTful API that uses JSON, HTTP, and all the fun stuff that app developers are already familiar with.
  • It emphasizes what's already available. People often say that Mastodon does not implement the ActivityPub API. But it implements sections 3, 4, and 5 of the specification – it has to, in order to support the federation protocol. That's the entire read-only side of the API. All (almost all?) Fediverse servers support these parts of the spec, too. You can build a pretty OK read-only API client using what's already available from Mastodon and others; see https://acct.swf.pub/ for an example.
  • "c2s" doesn't cover the whole API. As I said above, only one section of the doc is called "Client-to-Server Interactions", and it doesn't cover the read-only side of the API.
  • "c2s" is insider jargon. c2s isn't a common term for RESTful APIs. It really isn't a common term at all; there are only a few protocol suites, like XMPP, that refer to the "c2s" and "s2s" part.

I think it's fine if others use "c2s" when talking about the API, or especially about section 6 of the ActivityPub spec. It's not going to cause any harm. But the Social Web Community Group task force on implementing the API is called the "ActivityPub API" task force. I think that's a good idea – it emphasizes the API. I intent to use this name and framing for the foreseeable future.

Read more →
0
0
0

Why I use "ActivityPub API" or "Social API"

Evan Prodromou @evanp@ghost.evanp.me

One of the most interesting areas of exploration in the ActivityPub community right now is the ActivityPub API. Most people who know ActivityPub are familiar with its federation protocol, which lets social networking servers like Mastodon and Pixelfed share data between them. But there is another, closely-related feature in the same specification, called the "social API".

ActivityPub has five normative sections: 3 Objects, 4 Actors, 5 Collections, 6 Client-to-Server Interactions, and 7 Server-to-Server Interactions. 3, 4, and 5 provide a read-only interface to social data that is useful for both the federation protocol and the social API. It lets both clients and servers read information about users on the network, their feeds, and the things they make and share.

Section 6 is focused on the mechanism clients can use to create new activities, and the side-effects of those activities. "Activities" are the most important data structure in ActivityPub (which is why they're featured so prominently in the name!). They represent sentences or statements about things that happen on a social network, like "Christine created the image img123.jpg" or "Evan liked Christine's image img123.jpg" and "Amy shared Christine's image img123.jpg". Creating these statements is how clients can make things happen with ActivityPub.

Section 7 is focused on how and when servers can send these activities across the network to other servers. There are some side-effects that are laid out, but mostly they involve cache management.

So, here's the important point I want to make: the federation protocol which connects ActivityPub servers is defined in sections 3, 4, 5, and 7. The social API is defined in sections 3, 4, 5, and 6. But some people use "server-to-server" or "s2s" as a synonym for the federation protocol, even though "server to server interactions" only covers one section. Similarly, some people use "c2s" or "client-to-server" as a synonym for the social API, even if "client-to-server interactions" is only one section.

I prefer to use "social API" or "ActivityPub API" to refer to the entire part of ActivityPub that lets client apps talk to social servers. Here are some rough reasons why.

  • It's what the spec calls it. In the conformance section, we said that 'this specification defines two closely related and interacting protocols: A client to server protocol, or "Social API" [...] A server to server protocol, or "Federation Protocol"'. This was intentional; the names come from the Social Web Working Group charter deliverables. Making a Social API was a key goal of the group. The ActivityPub API satisfies that goal.
  • It's a term that all developers and many users are familiar with. People who've used mobile apps or third-party apps know what an API is and what it's for. If you use "c2s", it's not clear to most developers what you're even talking about.
  • It's accurate. The social API is a RESTful API that uses JSON, HTTP, and all the fun stuff that app developers are already familiar with.
  • It emphasizes what's already available. People often say that Mastodon does not implement the ActivityPub API. But it implements sections 3, 4, and 5 of the specification – it has to, in order to support the federation protocol. That's the entire read-only side of the API. All (almost all?) Fediverse servers support these parts of the spec, too. You can build a pretty OK read-only API client using what's already available from Mastodon and others; see https://acct.swf.pub/ for an example.
  • "c2s" doesn't cover the whole API. As I said above, only one section of the doc is called "Client-to-Server Interactions", and it doesn't cover the read-only side of the API.
  • "c2s" is insider jargon. c2s isn't a common term for RESTful APIs. It really isn't a common term at all; there are only a few protocol suites, like XMPP, that refer to the "c2s" and "s2s" part.

I think it's fine if others use "c2s" when talking about the API, or especially about section 6 of the ActivityPub spec. It's not going to cause any harm. But the Social Web Community Group task force on implementing the API is called the "ActivityPub API" task force. I think that's a good idea – it emphasizes the API. I intent to use this name and framing for the foreseeable future.

Read more →
0
0
0
0

Dive into this Scientific Visualization panel from the Blender channel — experts Paul Melis, Adam Kalisz, Milan Jaros, Marwan Abdellah, Mike Simpson & Sybren A. Stüvel discuss 3D visualization techniques and workflows. Great for creators & scientists!
peertube.tv/videos/watch/8e364

0
0
0
0
0
4
0
0
0
0