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.

0
1
2
0
0
0
50
0
0
0

I think it's irresponsible how much people are being pushed towards MCP still. It's just inertia at this point. Use a skill and package a library or a CLI with it. Preferably a library, even though everyone is doing the CLI thing. (CLIs are just libraries for the bash programming language.)

0

Started laying out a rough plan for implementing FEP-ef61: Portable Objects in —server-independent identities backed by , multi-server replication, and client-side signing. It's going to be a long road (13 tasks across 5 phases, with a few open questions that need answering before we even begin), but I think it's worth doing right.

https://github.com/fedify-dev/fedify/issues/288#issuecomment-3971459585

1
5
0

しゅいろさんが昔の少女漫画の裏表紙欲しがってたから引っ張り出してきたんで久しぶりにチキタGUGU読んでるんだけど、心がしくしく痛む。タコピーとかみぃちゃんとか目じゃないほど痛む​:blob_mu:

1
0
0
0

FR#155 – Where Does Community Live – updates

Last week I wrote an analysis article about how communities get built on open protocols, and how the architecture of both ActivityPub and atproto steer into different directions with what types of communities are possible, while at the same time giving people a significant amount of flexibility in what they are building. It is easy to let the major players determine the narrative for what the networks are for: when Mastodon saying their goal is to build a network of sovereign communities, to understand the entire fediverse and ActivityPub that way. Or when Bluesky CTO Paul Frazee says that the purpose of open protocols is “to guarantee the rights of individuals and communities”, to take this rights-based vision to understand the atmosphere more broadly.

But my interest is not only in describing general structures (“the fediverse is for networked communities, the atmosphere is a social infrastructure”), but also finding how specific news items fit in framework as much as it complicates it. So this week’s Fediverse Report is a collection of news items that relate to this framework.

Fediverse News

Twt Cymru, Wales’ longest-running independent fediverse node, announced a mobile app launching on St David’s Day, built in partnership with the Newsmast Foundation as part of their “Apps for Change” programme. The app wraps the toot.wales Mastodon server into a branded experience with its own onboarding flow, bilingual Welsh/English interface, and curated community feeds, designed to feel like a Welsh social app rather than a generic Mastodon client. Twt’s founder Jaz-Michael King describes it as “a digital lifeboat for Wales and the Welsh, a space that cannot be bought, sold, or broken by the whims of a single billionaire.” Twt Cymru is one of the clearest examples networked communities: a culturally specific community (Welsh language users), running their own infrastructure (a Mastodon server since 2017), now with their own branded app, federating into a much wider open social network. The Newsmast Foundation is pushing into this direction more broadly, with their partnership with the Bristol Cable as another example of how they’re building social apps that are predominantly for their own community, and the integration with the wider fediverse network as a secondary feature.

In Montreal, the first FediMTL conference was held, featuring keynotes from Cory Doctorow and two creators of the ActivityPub protocol, Christine Lemmer-Webber and Evan Prodromou. The conference had two intertwined motivations, that of sovereignty and of community. For sovereignty, with themes such as Canadian digital autonomy, escaping dependence on American platforms, and Doctorow arguing that Canadian technologists should “hack emergency exits” into existing platforms. The other is community, with Qlub, a Quebec-based ActivityPub platform with over 3,500 users, building a social space rooted in Quebec identity. These overlap but they are not quite the same thing: sovereignty asks who controls the infrastructure, and community asks what people build inside it. Both need bounded and self-governed digital spaces, but for different reasons.

The Netherlands swore in the new Jetten cabinet this week, and several ministers have begun posting on social.overheid.nl, the Dutch government’s Mastodon server running since 2023. A small item on its own, but maybe the clearest example of the sovereignty side: a government treating fediverse infrastructure as sovereign communications infrastructure.

The Forkiverse, the Mastodon server launched in January by podcast hosts PJ Vogt (Search Engine), Kevin Roose, and Casey Newton (Hard Fork), has now been running for nearly two months and grown to around 10,000 registered accounts with roughly 3,600 monthly active users. It remains one of the largest new fediverse servers since the 2023 post-Twitter migration wave. That the biggest new fediverse server in years grew out of an existing audience and not from scratch tracks with what the architecture implies: the networked community model works best when the community already exists before the server does. Moderation challenges arrived almost immediately: sexual harassment from federated users, encounters with the Portal Combat propaganda network, and the general discovery that running a server means running a community with real governance responsibilities. As the Hard Fork hosts found out, and as Mastodon’s Executive Director Felix Hlatky described in his recent interview about Mastodon operators, most people who start servers underestimate what moderation actually requires.

A fediverse take on the “link in bio” is being built, designed as a decentralized, privacy-respecting alternative to Linktree. Each profile is itself an ActivityPub actor: it can be followed, it boosts posts from all your other fediverse accounts, and it has its own inbox. The problem of the networked communities model is that this results in having a large number of different fediverse accounts: I had 26 different fediverse accounts last time I counted. The linktree approach turns that fragmentation into a feature by giving you one followable persona that aggregates all your fediverse activity. The challenge is that if your identity is tied to specific communities, each with their own server, you need some way to be visible as a single person across all (or at least some) of them. Atproto solved this by making identity portable and separate from any particular service. The fediverse has not solved this yet, but this is an interesting take on it.

A technical deep dive into Wafrn’s dual-protocol architecture, examining how the Tumblr-like platform implements both ActivityPub and atproto natively in a single codebase. From the perspective of networked communities a server can participate in both networks simultaneously is highly relevant. Wafrn is one of the more technically ambitious projects in the ecosystem, but that can be hard to see behind the deliberately unserious facade of the project (Wafrn stands for We Allow Female Representing Nipples, a reference to the Tumblr ban of adult content).


Atmosphere News

If the fediverse side is building networked communities, the atmosphere side is building the infrastructure those communities could run on. This week, that infrastructure got a lot busier.”

Multiple PDS providers are now explicitly positioning themselves as community infrastructure. Eurosky, the European atproto project, launched its PDS and crossed 1,000 users, releasing EU-HAUL, a migration tool available in 26 European languages. Northsky, the 2SLGBTQIA+ community PDS, published a Phase 2 roadmap covering their own app, moderation labeler, independent appview, and private data infrastructure. They have sent out over 1k invites with a 26% migration rate and 6k more people on their waitlist. The roadmap shows what it takes to turn a PDS into a community home on atproto: PDS hosting is only the first step, and everything else has to be built deliberately. Smaller PDS providers are also growing: npmx.social, run by developers behind a new npm registry browser that integrates with atproto, now hosts hundreds of people and is offering European PDS hosting as a side project alongside their main registry work. Blogging platform pckt also announced their own PDS.

The main development this week are three separate approaches to permissioned data on atproto, with Blacksky, Bluesky and Northsky all working on it.

Blacksky is close to launching private posts and community-scoped visibility. Rudy Fraser announced that their appview goes live next week, with the explicit note that this lets members interact with each other even if Bluesky has banned them, followed by the launch of Blacksky-only posts. Two proposals for community moderation approaches, peer-based communal moderation versus machine-learning image classification, will go to a community vote. Northsky is developing Stratos, their own private data solution that targets what they call “true data privacy rather than hiding in plain sight by using a different lexicon”. They plan to build Stratos for the broader atproto ecosystem, allowing anyone to run their own Stratos service. And Daniel Holmgren, Bluesky’s engineering lead, published the second entry in his permissioned data design diary, introducing “buckets” as a potential new protocol primitive.

Holmgren’s post is worth attention because it shows the protocol-level design problem in full. He works through two approaches that fail. App-controlled access (which he calls “realms”) solves the authorization problem but centralizes power in applications, because users in the same group using different apps cannot see each other’s content without individually authorizing every app. Granular per-record access control gives flexibility but creates a coordination problem: every time someone joins a group, every member’s access control list on every record needs updating. His solution, buckets, is a shared container with a single authoritative access control list that all content within it inherits. A bucket is, in protocol terms, a bounded space with governance: “permissioned data needs a shared context with a perimeter.” How buckets interact with the community-built solutions from Blacksky and Northsky, and whether these converge into shared infrastructure or remain parallel approaches, is worth watching.

Beyond microblogging, the application layer on atproto continues to thicken. A selection of what launched or updated recently:

  • Skyreader, the atproto RSS reader, now supports subscribing to standard.site publications directly, meaning blogs published on Leaflet, pckt.blog, Offprint, and other standard.site-compatible platforms show up alongside traditional RSS feeds. The same update adds read-it-later functionality with highlights, read progress tracking, and inbox/archive management, all stored on your PDS. The developer notes that read-it-later apps have an annoying habit of getting shut down (I’m still mad about Omnivore), and that storing your reading data on a decentralized protocol is one way to stop losing your library every few years.
  • Semble, a social bookmarking app, added social following. What makes this interesting is the granularity: you can follow specific collections rather than entire users, what developer Ronen Tamari described as “faceted following.” This means following someone’s collection on protocol governance without also getting their cooking bookmarks.
  • BeaconBits is a a Foursquare-style location check-in app, added explicit Blacksky integration: users on Blacksky’s PDS now see “View on Blacksky” and “Post to Blacksky” options throughout the app, with a visibility toggle for public or community-scoped check-ins. While a small feature, I think this is one worth tracking for how the concept of community continues to be developed in the atmosphere.
  • Popfeed officially launched as a pop culture tracking app for films, books, shows, games, and music reviews. The app has been around for a bit, and also features quite some integration with both other tracking apps like Bookhive.buzz as well as with Bluesky.
  • Hypha Co-op published spores.garden, a digital garden platform on atproto where each garden gets a unique visual identity generated deterministically from your DID. Gardens can pull in content from other atproto apps, and navigation happens through collecting and planting flower identicons in other people’s gardens rather than algorithmic feeds. It is a deliberately weird and playful project, and a good example of using atproto for entirely different modes of communication.
  • Wireservice is a new WordPress plugin that syncs posts and pages to standard.site records on your PDS. This is notable as a bridge between the existing web publishing ecosystem and the atproto data layer, meaning a WordPress blog can now be a standard.site publication without migrating away from WordPress. I’ll be enabling this soon for this website as well.
  • The new Ecosystem Action Research project launched a call for participation, a volunteer-led pilot program addressing five shared challenges across the atproto ecosystem: user experience, brand awareness beyond Bluesky, trust and safety readiness, economic sustainability, and contributor enablement.

Finally, Bluesky CTO Paul Frazee published “Practical Decentralization,” a blog post that articulates what he sees as the purpose of open protocols: “to guarantee the rights of individuals and communities on the Internet.” A deeper analysis will follow in a separate article. It is valuable to see protocol leadership put a specific thesis on paper, and I hope others will do the same.

connectedplaces.online/reports

Run down windows
0
1
0
3
0
1
0

🎮
Une archive de 390 Téra-octets de jeux vidéos va disparaître en mars. 🙁
Les causes ?
- frais trop élevés (ils parlent de 6000 dollars par mois !)
- des download manager payants contournent le site (pas d'affichage pour les donations, alors que ces managers gagnent de l'argent)
- prix de la RAM, SSD, HDD.
gamingonlinux.com/2026/02/the-

0
3
0
0
0
0
0

In a world where laziness is rewarded, immediate satisfaction drives the economy, and finding time to think is seeing as a weakness, choose the difficult path.

They're trying to convince you that doing the right thing is harder than it is too be.

Being ethical won't make you profitable, following a morale is a privilege you can't afford, not exploiting others is inconvenient.

Fuck that!
Do the right thing, even if it looks harder

0
1
0
0
0

When I first started working with , before existed, it felt like writing web apps in Perl and CGI in the late '90s. Interesting, even exciting—but never comfortable. That era where your business logic and your protocol plumbing were just… the same thing:

print "HTTP/1.1 200 OK"
print "Content-Type: text/html"
print
print "Hello, world!"

Decades of web development have given us layers of abstraction we now take for granted. Nobody hand-parses application/x-www-form-urlencoded query strings anymore. Nobody writes their own JSON codec, or manually constructs HTTP request/response messages. These things just aren't your problem when you're building an app.

ActivityPub development still feels like they are your problem. What do you do when the https://www.w3.org/ns/activitystreams#actor property comes in as a string instead of an array? What about when https://www.w3.org/ns/activitystreams#object is an embedded entity rather than a URI? How exactly do you implement HTTP Signatures? And wait—what's Linked Data Signatures, and do you need that too?

The real issue isn't that ActivityPub is complicated per se. It's that you can't get away with understanding it at a high level. You have to know it the way an implementor knows it—every edge case, every inconsistency in how different servers serialize JSON-LD, every signature scheme that exists in the wild. That's a lot to learn before you can even start thinking about your actual app. And when developers understandably cut corners on the protocol to focus on their product, it quietly becomes an interoperability problem for the whole ecosystem.

What I want ActivityPub development to feel like: you spend a day understanding the big picture, and then you just… build your app. That was the goal when I started Fedify, and honestly, we're not fully there yet. But it's where I want to get.

With Fedify & Claude code it took me just 1 few hours to develop a indiekit plugin to exist on the Fediverse with @rick@rmendes.net I spent more time on creating the AP reader to consume data from the Fediverse than anything else that's for sure! Thanks for your absolutely amazing foundational work with Fedify!
0
0
0

@zkatkat .. because he downplays any risk. What can go wrong?

There are too many people writing software because the incentives are high.. and with llm you can get far without knowing anything. Until it breaks and it kills businesses, endanger lives.

And the customer is surprised... But what could he have done differently?

I don't see any solution.. and I don't think that a title or a licence will make a difference.

0
0
0
2
0
0
2
0

You can use MAP_FIXED to get a range on a specific address. The address you specify that way does get rounded down to a multiple of the page size, but other than that it’s used as is.

A zero value for address has a special meaning, so if you absolutely want to map at address 0 you need to ask for address 1 rounded down. Though some kernels won’t permit that in the default configuration.

You can ask for more memory ahead of time. I am pretty sure the kernel only allocates the physical memory on the first write. However things get a little tricky with respect to over-commitment and such. As I understand it, the kernel will refuse the allocation if there is no way it could ever give you all of that memory. But I think the default is that when there is any doubt the kernel will let the allocation go through and kill the process later if it doesn’t have memory after all. (I am not saying that’s a good default.)

There is also the possibility of allocating a memory range with no permissions and then use mprotect to make parts of the range read and writable later. In that case it would make sense to me if the kernel only updates the count of committed memory once you make it writable, I don’t know if that’s actually what happens, but it should be easy to test.

I have used the approach of using mmap to allocate a range with no read or write permissions and then make a small range in the middle read-write with mprotect. My reason for using it has been to have guard pages around certain buffers as a security measure. It provides an extra layer of protection against buffer overflow vulnerabilities.

For some advanced use cases it can make sense to map a range with no privileges and later change the protection of the range from within a SIGSEGV handler when that address is accessed.

0

When I first started working with , before existed, it felt like writing web apps in Perl and CGI in the late '90s. Interesting, even exciting—but never comfortable. That era where your business logic and your protocol plumbing were just… the same thing:

print "HTTP/1.1 200 OK"
print "Content-Type: text/html"
print
print "Hello, world!"

Decades of web development have given us layers of abstraction we now take for granted. Nobody hand-parses application/x-www-form-urlencoded query strings anymore. Nobody writes their own JSON codec, or manually constructs HTTP request/response messages. These things just aren't your problem when you're building an app.

ActivityPub development still feels like they are your problem. What do you do when the https://www.w3.org/ns/activitystreams#actor property comes in as a string instead of an array? What about when https://www.w3.org/ns/activitystreams#object is an embedded entity rather than a URI? How exactly do you implement HTTP Signatures? And wait—what's Linked Data Signatures, and do you need that too?

The real issue isn't that ActivityPub is complicated per se. It's that you can't get away with understanding it at a high level. You have to know it the way an implementor knows it—every edge case, every inconsistency in how different servers serialize JSON-LD, every signature scheme that exists in the wild. That's a lot to learn before you can even start thinking about your actual app. And when developers understandably cut corners on the protocol to focus on their product, it quietly becomes an interoperability problem for the whole ecosystem.

What I want ActivityPub development to feel like: you spend a day understanding the big picture, and then you just… build your app. That was the goal when I started Fedify, and honestly, we're not fully there yet. But it's where I want to get.

0

When I first started working with , before existed, it felt like writing web apps in Perl and CGI in the late '90s. Interesting, even exciting—but never comfortable. That era where your business logic and your protocol plumbing were just… the same thing:

print "HTTP/1.1 200 OK"
print "Content-Type: text/html"
print
print "Hello, world!"

Decades of web development have given us layers of abstraction we now take for granted. Nobody hand-parses application/x-www-form-urlencoded query strings anymore. Nobody writes their own JSON codec, or manually constructs HTTP request/response messages. These things just aren't your problem when you're building an app.

ActivityPub development still feels like they are your problem. What do you do when the https://www.w3.org/ns/activitystreams#actor property comes in as a string instead of an array? What about when https://www.w3.org/ns/activitystreams#object is an embedded entity rather than a URI? How exactly do you implement HTTP Signatures? And wait—what's Linked Data Signatures, and do you need that too?

The real issue isn't that ActivityPub is complicated per se. It's that you can't get away with understanding it at a high level. You have to know it the way an implementor knows it—every edge case, every inconsistency in how different servers serialize JSON-LD, every signature scheme that exists in the wild. That's a lot to learn before you can even start thinking about your actual app. And when developers understandably cut corners on the protocol to focus on their product, it quietly becomes an interoperability problem for the whole ecosystem.

What I want ActivityPub development to feel like: you spend a day understanding the big picture, and then you just… build your app. That was the goal when I started Fedify, and honestly, we're not fully there yet. But it's where I want to get.

1
0
0
0
0
0
0
0
9
0
0

나이 많으니 감형?… 윤석열 판결이 재소환한 '고령 감경' 논란 www.hankookilbo.com/news/article... "최근 개정된 양형 기준에 비춰봐도 이번 판결은 이례적이다. 대법원 양형위원회는 2023년부터 양형 기준을 별도로 정하는 범죄군에 대한 집행유예 판단에 긍정적으로 작용하는 참작 사유 가운데 '피고인이 고령'이라는 문구를 일괄 삭제했다. 이는 "'어떤 범죄에서도 고령을 일률적인 감경 요소로 보지 말라'는 메시지나 다름없다"는 게 양형위원인 김혜경 계명대 경찰행정학과 교수의 얘기다."

나이 많으니 감형?… 윤석열 판결이 재소환한 '고령 감...

0

@zkatkat hmm.. I think the title/licence will not change this. I am a software developer, not an engineer .. but we might share some "requirements".
The root cause of this trend is an increasing demand for someone who can build stuff. As an unqualified customer you cannot distinguish between well engineered software and somehow working crap. So it's easy to get the feeling that you're paying too much.
And this customer needs this software for his business. He does not need well engineered software.

0
0
0
0

@zkatkat I have been a dev since the 1980s, and I completely agree that calling it "engineering" is a real stretch.

Engineering requires, in many cases, legal guarantees. There's *none* of that in software. EULAs are the opposite of the legal requirements of for example civil engineering projects.

There's a checkbox right there on the Engineering Board application, they're welcome to check it and apply...

sblpes.state.nm.us/

0
0

Jeffrey Epstein was a white supremacist who donated thousands of dollars to white supremacist influencers during the Ferguson protests.

Epstein had multiple conversations expressing concern over race riots/wars with former Israeli Prime Minister Ehud Barak.

Epstein was also influential in resurrecting /pol—a 4chan forum that became of the most influential far-right hubs, spreading conspiracies and white supremacist ideals.

Steve Bannon, crypto, ... what the fuck.

podcasts.apple.com/us/podcast/

0
0
1
0