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
0
0
0
0
0
0
0

This is the thing, right?

When a _person_ does something absolutely inane and I call them on it, they will eventually stop doing the inane thing.

I worked with this guy a while back. He was junior, I was the tech lead on the project. I set the coding standards for it and he didn't like what I picked because it required a lot of work up front. It required docs on public methods, it required fairly high test coverage targets (both branch and instruction), it required following specific naming conventions and programming standards. I often would tell him to make his commits smaller.

No smaller than that.

Smaller still.

You couldn't just turn your brain off.

He fought me every step of the way, but eventually:

He learned and what's more, he began to internalize why I was doing it the way that I did.

Code reviews started flying by. It became _easy_.

AIs, even the really good ones, don't learn from this sort of process. Oh sure they have _memory_, but it is itself unreliable and subject to the same context window restrictions as everything else. They are by their nature ephemeral.

So there's a lot less incentive in me giving it a thorough review.

Unless it is my agent and my project.

0
0
0
0
0
0
0
0
0
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.

0
6
0
1
0

@zkatkat 1/ I am a Software Engineer, and I agree that it is a misused title. As is Software Developer.

As a software engineer, I have dealt with process issues, ethics issues, legal issues, documentation of the software life cycle in a software development plan... built from requirements documents that precluded design documents.... Part of it was training (Carnegie Melon). Part of it was experience.

I earned the title at a fortune 500 company. I keep it.

0
0
0

@zkatkat I've heard engineering described as something like "the science of reproducibility".

There are software people who live up to that standard. They are not common and they are not always well regarded because their standards are high and their work is methodical.

The title of "software engineer" is all HR talk though and has nothing to do with the job standards.

0

@zkatkat It looks like we're heading towards extreme polarization, where on one side we have awful irresponsible stuff like the radiology app you described... And on the other hand we have a bunch of people who will take a stand to avoid AI-anything, which is like throwing the baby out with the bathwater 'cuz "AI" is a big concept that has provided a lot of useful tools, including some great free software.

0
0
0

Today I was reading @b0rkJulia Evans 's comic about tar: wizardzines.com/comics/tar/?ut

When I learned how to use `tar` on Linux (probably ~20 years ago?) I learned that you don't need to memorize all the compression flags (`-z`, `-j`, `-J`, `-Z`) because tar auto-detects the compression format when extracting/listing.

This is handy because then I only have to learn the flag for my _favorite_ compression format when creating tarballs, and let the auto-detection figure it out for tarballs I receive.

I'm surprised the example in this comic uses the compression format when listing (`-tjvf`). Does that mean there's a version of `tar` in common usage that doesn't support auto-detection? Or is the auto-detection unreliable in some common circumstance? Or some third possibility I haven't thought of?

0
0
0
0

gender things, pronouns

My profile said she/they still, but I have realized for a while that I'm only ok with being called they/them by other queers or people who use they/them *generally* as a gender neutral pronoun very broadly. Seeing myself called "they" in an article, well, based on what I've written I can't fault anyone, but I've realized over time that "I'm she/her as in I'm a woman, but they/them as in fuck the gender binary"

I'm cool with "defaulting to they/them for everyone" but not with "defaulting to they/them just for trans people". I just don't trust someone who isn't also very clearly queer to be on board enough to use they/them for me especially if especially if it's not crystal clear they aren't doing the same for cis people

0
0
0
0

@evanEvan Prodromou
Hello my friend, how are you? I'm Asma from Gaza. Please help me, my brother is at risk of having his leg amputated and needs urgent surgery costing $500. Please donate $50 or any amount you can to save him 😭💔💔

We've raised $107 of our $500 goal. Let's join hands to raise the full amount. Please don't ignore us, my friends. 🍉🙏🙏
chuffed.org/project/152432-sav

0

I participated a bit in the process of when Bluesky was Jack Dorsey and Parag Agrawal's personal project. I also believe Jack and Parag were sincere about Bluesky as a decentralized social network protocol that Twitter would adopt, which is the directive that Bluesky was given as an organization.

When Jay Graber was awarded the position to lead Bluesky, I was not surprised. To me, Jay was the obvious choice to deliver what Bluesky was being directed, and I do think Jay is an excellent leader

There is also something which Bluesky gets right which the fediverse does not. I mentioned that Bluesky uses decentralization *techniques*, and the most important of those is content-addressing. This allows content to exist even when a server goes down.

This is a great decision and I have advocated that the fediverse do so as well. In fact several years ago I wrote a demo in @spritelyThe Spritely Institute's early days showing off how one could build a content-addressed ActivityPub in a spec-compatible way.

0
3
0

Furthermore, I think Bluesky is providing something valuable: a lot of people are trying to leave X-Twitter *right now* because it has become a completely toxic place.

The fact that Bluesky's team has managed to scale to receive such users is incredible, nearly feeling miraculous.

On the fediverse we also see a lot of accusations of Bluesky being owned by Jack Dorsey, and this isn't true. My understanding is that Jay performed an impressive amount of negotiation to allow Bluesky to receive funding independently.

These days Jack Dorsey is instead focusing on Nostr, which I can only describe as "a sequel to Secure Scuttlebutt with extremely bad vibes where bitcoin people talk about bitcoin"

0
9
0
0

Now you're hitting the point in this thread where some of you may be thinking "aha! this is where Christine is saying that the fediverse/activitypub are awesome and atproto is terrible!"

you have NO IDEA HOW MUCH I CRITICIZE THE FEDIVERSE ALL THE TIME, I do it all the time, and will later here

0
2
0

As said, tens of thousands of people are self-hosting *today*. Fediverse software doesn't just scale up, it scales *down*.

GotoSocial is cheap enough on resources where you can run it for family and friends on a raspberry pi or spare laptop you have sitting around.

0

Remember that the idea of "fully self-hosting" on Bluesky/ATProto at this point is primarily abstract; nobody is really doing it. But of course there's a place where tens of thousands of people are running their own servers for millions of users, and that's the fediverse/ActivityPub.

0
3
0

And before we make it any further can I say that I watched a nice medley of David Bowie and Cher singing, and it was so lovely youtube.com/watch?v=KPlN8RBP-Ws

@mlemwebDr. Morgan Lemmer-Webber said "of course it's very heteronormative despite having two queer coded icons on the stage and ISN'T THAT THE WAY I guess

0

But where was I? Oh yes. We had talked about why PDS'es aren't enough (blog/google analogy), relative costs of hosting things on ATProto vs ActivityPub, etc etc

But we haven't gotten into the really interesting parts which are the structural analysis stuff, so let's move onto that

0

Now you may be saying, "Christine, this is really unfair, because you're looking at ActivityPub servers which are only dealing with a small amount of the network, what if it were an ActivityPub mega-node? What are the costs THEN huh?" and "What if we hosted just PART of ATProto?"

What then INDEED

0
0
7
0

But here's the other thing. People have trouble with the fediverse! All those decentralization decisions get in the way, my god, you've got to choose a server, search doesn't work well (actually it could but it's a cultural thing, different topic), and worst of all:

Sometimes you DON'T SEE REPLIES!

0

The thing you often get seen thrown around is "it's amazing, I had no idea a decentralized protocol could just work like that! How on earth did they solve that in a decentralized system and so FAST too!"

It's simple: all those things "just work" because Bluesky is centralized.

0

Here's my definition of federation:

> Federation: a technical approach to communication architecture which achieves decentralization by many independent nodes cooperating and communicating to be a unified whole, with no node holding more power than the responsibility or communication of its parts.

0
1
0