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

We just sent out a newsletter with a bunch of stories from the cooperative ecosystem that caught our attention—find the web version here: village.one/garden/newsletter/

Mentioned in it: @fontstand @limeleaf @101lab @GenoDigital#GenoDigital @GreenheartSamuel Plumppu @demnextDemocracyNext @bocoup @hostsharingHostsharing eG @subvertworldSubvert @workers_coop @tazgetroetetaz and more

The photo is from a documentary about the Liberated Broom cooperative, also linked in the newsletter.

A still image from a documentary about the Liberated Broom cooperative. It shows a bunch of women sitting around a table in a meeting situation, possibly in the 70s or 80s, several of them smoking cigarettes and taking notes. Office setting, with closed blinds in the background.
0
0
0
0
0
0
0
0

I'm currently looking for PhD students in theoretical computer science, and we have a funding opportunity for a student in Inria Lille in France to work with myself and my collaborator Mikaël Monet. The proposed topic (quite flexible): a3nm.net/work/research/offers/. Applications are until April 23, to start in fall 2025.

I think the LINKS team in Inria Lille is a great place to do this kind of research -- in fact I recently joined it myself. :) Please apply or to forward to potential candidates!

0
0
0
0
0
0
0
0
0
0
0
0
0

Plakate aufhängen

Vielleicht habt ihr es schon mitbekommen: Seit dieser Woche machen wir gegen Werbung. Unsere Plakate hängen dank vieler Freiwilliger schon an mehreren hundert Orten unserer Stadt. Am Wochenende wollen wir mit vielen Menschen unsere restlichen Plakate aufhängen. Dafür bauchen wir auch deine Unterstützung!

Unsere Zentrale in der 47 ist jeden Tag von 10 bis 18 Uhr geöffnet. Hier kannst du abholen (DIN A1). Du wirst mit Kabelbindern und allen Infos versorgt.

Weil gemeinsam am meisten Spaß macht, haben wir diese Termine, an denen Teams gebildet werden können:

Freitag, 29.3 15 Uhr

Samstag, 30.3 12 Uhr

Sonntag, 31.3 12 Uhr

Wenn ihr außerhalb der Zeiten kommt, finden wir eine Lösung. Wir haben oft vor Ort.

0
0

Plakate aufhängen

Vielleicht habt ihr es schon mitbekommen: Seit dieser Woche machen wir gegen Werbung. Unsere Plakate hängen dank vieler Freiwilliger schon an mehreren hundert Orten unserer Stadt. Am Wochenende wollen wir mit vielen Menschen unsere restlichen Plakate aufhängen. Dafür bauchen wir auch deine Unterstützung!

Unsere Zentrale in der 47 ist jeden Tag von 10 bis 18 Uhr geöffnet. Hier kannst du abholen (DIN A1). Du wirst mit Kabelbindern und allen Infos versorgt.

Weil gemeinsam am meisten Spaß macht, haben wir diese Termine, an denen Teams gebildet werden können:

Freitag, 29.3 15 Uhr

Samstag, 30.3 12 Uhr

Sonntag, 31.3 12 Uhr

Wenn ihr außerhalb der Zeiten kommt, finden wir eine Lösung. Wir haben oft vor Ort.

0
0

Looking for remote mentors globally or IRL in Canada. DM me if you can help or have recommendations!

Looking for a in
- Product
- Management
- Learning / EdTech

Seeking someone who values
- Kindness and empathy
- Human-centered approach
- Positive view of AI/AGI (as helpful tools)

Regarding ADPList: I volunteered early on but will be leaving as a mentee due to the founder's unethical actions (plagiarism, gaslighting). While I value the connections I've made, I can't support the platform.

I volunteered for ADPList when it first launched, being Vancouver's 1st ambassador and cheerleader. They wanted us to host events locally and life happened so I didn't reply to their requests for "volunteer" work in 2024.

I still meet wonderful people from the platform (recently connected to 3 PM's for informational interviews), the ethics of being there now bothers me.

In my research, I found this platform by Chris Mason of Intelligent People, i hope it helps Mentors & Mentees alike:

partnerup.intelligentpeople.co

0

We're almost there for vite v6 to overtake v5 on weekly npm downloads. Vite v4 is slowly going down, but still has 2M weekly downloads. Repeating the CTA: if you are using Vite v4, you need to upgrade during the next month to keep receiving security patches.

RE: https://bsky.app/profile/did:plc:2gkh62xvzokhlf6li4ol3b3d/post/3llejoihhzc25

0
0
0
0
0
0
0
0
0
0
0
0
0
0

XiNiHa shared the below article:

한국 소프트웨어 개발자들이 자주 틀리는 외래어 표기법

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

전에 단문으로 올렸던 글을 지속적으로 갱신해볼까 싶어 게시글로 만들어 봅니다.

영어 틀린 표기 올바른 표기
algorithm 알고리 알고리
app 어플
application 플리케이션 플리케이션
BASIC 베이 베이
directory 디렉 디렉
front-end 트엔드 트엔드
launch
license 라이 라이
message
method
parallel 페러 패럴
proxy
release 릴리 릴리
repository 레포 리파
shader 이더 이더
shell
Read more →
2
0
1

We're excited to announce the release of Fedify 1.5.0! This version brings several significant improvements to performance, configurability, and developer experience. Let's dive into what's new:

Two-Stage Fan-out Architecture for Efficient Activity Delivery

now implements a smart fan-out mechanism for delivering activities to large audiences. This change is particularly valuable for accounts with many followers. When sending activities to many recipients, Fedify now creates a single consolidated message containing the activity payload and recipient list, which a background worker then processes to re-enqueue individual delivery tasks.

This architectural improvement delivers several benefits: Context.sendActivity() returns almost instantly even with thousands of recipients, memory consumption is dramatically reduced by avoiding payload duplication, UI responsiveness improves since web requests complete quickly, and the system maintains reliability with independent retry logic for each delivery.

For specific requirements, we've added a new fanout option with three settings:

// Configuring fan-out behavior
await ctx.sendActivity(
  { identifier: "alice" },
  recipients,
  activity,
  { fanout: "auto" }  // Default: automatic based on recipient count
  // Other options: "skip" (never use fan-out) or "force" (always use fan-out)
);

Canonical Origin Support for Multi-Domain Setups

You can now explicitly configure a canonical origin for your server, which is especially useful for multi-domain setups. This feature allows you to set different domains for WebFinger handles and URIs, configured through the new origin option in createFederation(). This enhancement prevents unexpected URL construction when requests bypass proxies and improves security by ensuring consistent domain usage.

const federation = createFederation({
  // Use example.com for handles but ap.example.com for ActivityPub URIs
  origin: {
    handleHost: "example.com",
    webOrigin: "https://ap.example.com",
  },
  // Other options...
});

Optional Followers Collection Synchronization

Followers collection synchronization (FEP-8fcf) is now opt-in rather than automatic. This feature must now be explicitly enabled through the syncCollection option, giving developers more control over when to include followers collection digests. This change improves network efficiency by reducing unnecessary synchronization traffic.

await ctx.sendActivity(
  { identifier: sender },
  "followers",
  activity,
  { 
    preferSharedInbox: true,
    syncCollection: true,  // Explicitly enable collection synchronization
  }
);

Enhanced Key Format Compatibility

Key format support has been expanded for better interoperability. Fedify now accepts PEM-PKCS format in addition to PEM-SPKI for RSA public keys. We've added importPkcs1() and importPem() functions for additional flexibility, which improves compatibility with a wider range of ActivityPub implementations.

Improved Key Selection Logic

The key selection process is now more intelligent. The fetchKey() function can now select the public key of an actor if keyId has no fragment and the actor has only one public key. This enhancement simplifies key handling in common scenarios and provides better compatibility with implementations that don't specify fragment identifiers.

New Authorization Options

Authorization handling has been enhanced with new options for the RequestContext.getSignedKey() and getSignedKeyOwner() methods. This provides more flexible control over authentication and authorization flows. We've deprecated older parameter-based approaches in favor of the more flexible method-based approach.

Efficient Bulk Message Queueing

Message queue performance is improved with bulk operations. We've added an optional enqueueMany() method to the MessageQueue interface, enabling efficient queueing of multiple messages in a single operation. This reduces overhead when processing batches of activities. All our message queue implementations have been updated to support this new operation:

If you're using any of these packages, make sure to update them alongside Fedify to take advantage of the more efficient bulk message queueing.

CLI Improvements

The Fedify command-line tools have been enhanced with an improved web interface for the fedify inbox command. We've added the Fedify logo with the cute dinosaur at the top of the page and made it easier to copy the fediverse handle of the ephemeral actor. We've also fixed issues with the web interface when installed via deno install from JSR.

Additional Improvements and Bug Fixes

  • Updated dependencies, including @js-temporal/polyfill to 0.5.0 for Node.js and Bun
  • Fixed bundler errors with uri-template-router on Rollup
  • Improved error handling and logging for document loader when KV store operations fail
  • Added more log messages using the LogTape library
  • Internalized the multibase package for better maintenance and compatibility

For the complete list of changes, please refer to the changelog.

To update to Fedify 1.5.0, run:

# For Deno
deno add jsr:@fedify/fedify@1.5.0

# For npm
npm  add     @fedify/fedify@1.5.0

# For Bun
bun  add     @fedify/fedify@1.5.0

Thank you to all contributors who helped make this release possible!

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0