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

Fedify 2.0.0 is here!

This is the biggest release in Fedify's history. Here are the highlights:

  • Modular architecture โ€” The monolithic @fedify/fedify package has been broken up into focused, independent packages: @fedify/vocab, @fedify/vocab-runtime, @fedify/vocab-tools, @fedify/webfinger, and more. Smaller bundles, cleaner imports, and the ability to extend ActivityPub with custom vocabulary types.
  • Real-time debug dashboard โ€” The new @fedify/debugger package gives you a live dashboard at /__debug__/ showing all your federation traffic: traces, activity details, signature verification, and correlated logs. Just wrap your Federation object and you're done.
  • ActivityPub relay support โ€” First-class relay support via @fedify/relay and the fedify relay CLI command. Supports both Mastodon-style and LitePub-style relay protocols (FEP-ae0c).
  • Ordered message delivery โ€” The new orderingKey option solves the โ€œzombie postโ€ problem where a Delete arrives before its Create. Activities sharing the same key are guaranteed to be delivered in FIFO order.
  • Permanent failure handling โ€” setOutboxPermanentFailureHandler() lets you react when a remote inbox returns 404 or 410, so you can clean up unreachable followers instead of retrying forever.

Other changes include content negotiation at the middleware level, @fedify/lint for shared linting rules, @fedify/create for quick project scaffolding, CLI config files, native Node.js/Bun CLI support, and many bug fixes.

This release includes significant contributions from Korea's OSSCA participants. Huge thanks to everyone involved!

This is a major release with breaking changesโ€”please check the migration guide before upgrading.

Full release notes: https://github.com/fedify-dev/fedify/discussions/580

4
6
0
0
2
0
0
0
19
0

ๆ—ฅๆœฌใฎIT็ณปใฏใ“ใ†ใ„ใ†ไธปๅผตใ™ใ‚‹ไบบใ‚’ใ‚ใ‚“ใพใ‚Š่ฆ‹ใŸใ“ใจใชใ„ใฎใฏใŠใ‚ใ‹ใ€ๆ—ฅๆœฌใฎๅทฆๆดพใ‹ใ‚‰ใ‚‚ใ€ใ“ใ‚“ใช็กฌๆดพใชใƒžใƒซใ‚ฏใ‚นไธป็พฉ็š„ไธปๅผตใฏใปใจใ‚“ใฉ่ฆ‹ใชใ„ๆฐ—ใŒใ™ใ‚‹ใ€‚

1
1
1
0

Canadians: You do have some options when dealing with companies abusing your data. It takes some research, effort & persistence, but you do have the law on your side and some actionable & effective leverage.

priv.gc.ca/en/privacy-topics/p

0
0
19
0

Yup. In the short term markets are about as rational as that bearded guy in a bathrobe shuffling around in his slippers under the freeway underpass shouting at imaginary greebles. Reminder: In the long run irrational stuff ends up getting washed out of markets as it gets out-competed, thus the "rational markets hypothesis". But in the long run we're all dead.

@mhoye 8d

To spell this out clearly, the reason RAM has quadrupled in price
is that a huge quantity of RAM that hasn't been produced yet has
been bought with money that doesn't exist to populate GPUs
that also haven't been produced to go in datacenters that haven't
been built powered by infrastructure that may never exist to meet
a demand that doesn't exist at all to make profit margins that
mathematically can't exist while economists talk about this thing
they call the "rational markets hypothesis".
0
5
0
0
0
0
0
5
0

ๅ†ๆฌกๆ‹œ่จชๆฑๅฐ็ฃ็š„ๆ›ธ็ฒฅ๏ผŒ็œ‹ๅˆฐๆ”น็ทจๅ–ฌๆฒปๆญๅจ็ˆพๅฐ่ชชใ€Š1984ใ€‹็š„ๅœ–็•ซๆ›ธ๏ผŒๆŠฑๆŒ่‘—ๅ› ๅพˆๅฐ‘่ฒทๆ›ธ๏ผŒๅช้€›็จ็ซ‹ๆ›ธๅบ—๏ผŒๆ‰€ไปฅๅชๅœจ็จ็ซ‹ๆ›ธๅบ—่ฒทๅ–œๆญก็š„ๆ›ธ็š„ๅฟƒๆƒ…๏ผŒๅฐฑ่ฒทไบ†ไธ‹ๅŽป๏ผˆ่ทๅŒ…ๅ“ญ๏ผ‰ใ€‚

็›ฎๅ‰็ฟปไบ†1/4๏ผŒ็•ซ้ขจๅพˆ้ฉๅˆ1984้€™ๆœฌๆ›ธ๏ผŒๅˆ†้กๅ’Œๅœ–ๅƒไนŸ้žๅธธๆœ‰ๆ„Ÿ๏ผŒไนŸๅ†ๆฌก่ฆบๅพ—ๅ–ฌๆฒปๆญๅจ็ˆพ็œŸ็š„ๆ˜ฏๆดžๅฏŸไบบๆ€ง็š„ๅŠƒๆ™‚ไปฃไฝœๅฎถ๏ผŒใ€Œ็œŸ็†้ƒจใ€ๅœจ้€™ๅ€‹็ถฒ่ทฏๆ™‚ไปฃ๏ผŒๅฏฆๅœจๆ˜ฏๆญทๆญทๅœจ็›ฎใ€‚

ๆˆ‘่ฆบๅพ—้–‹ๅง‹ๆ›ดๆƒณ่ฆๆŽข็ฉถ้€™้กž้กŒๆ๏ผŒๅ…ถๅฏฆๆ˜ฏ้›ปๅฝฑใ€Š้‡่ฃไปปๅ‹™ใ€‹๏ผˆ2002๏ผ‰็š„ไธ–็•Œ็œ‹ๅˆฐ็š„๏ผŒๅ…‹้‡Œๆ–ฏๆฑ€โ€ข่ฒ็ˆพๆ‰ฎๆผ”็š„็†ๆ€งๅ’Œๆ„Ÿๆ€ง็š„็ณพ็ต๏ผŒๅ‘ผๆ‡‰ไบ†ไธๅฐ‘1984่ฃก้ ญๅฐๆ€ๆƒณๆŽงๅˆถ็š„ไธ–็•Œ่ง€๏ผŒ่€Œๅ…ถ้›ปๅฝฑ็š„่‰ฒๅฝฉ้ขจๆ ผ๏ผŒๅ‰›ๅฅฝ่ทŸ้€™ๆœฌๅœ–็•ซๆ›ธๆœ‰็จฎ็›ธ่ฟ‘็š„ๆ„Ÿ่ฆบ๏ผŒๅพˆๆ„ๅค–ไธ”ๆœ‰่ถฃ็š„ๅทงๅˆใ€‚

1984
0
0
0
0
0

ใƒ‡ใ‚ซใ„ใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆใ‚ใ‚‹ใ‹ใ‚‰ใจ่จ€ใฃใฆใ‚ทใƒŽใ‚ดๅ…จใไฝฟใ‚ใชใใชใ‚‹ใ‹ใจๆ€ใ†ใจใ€ๆ„ๅค–ใจใใ†ใงใ‚‚ใชใ„ใฎใŒ้ข็™ฝใ„ใจใ“ใ‚

0
0
0

ใƒฉใƒ–ใƒฉใ‚คใƒ–ใซ้™ใ‚‰ใšใ‚„ใ‘ใฉใ€ๅญฆๅœ’ใƒขใƒŽใฃใฆใ‚‚ใ†ใฟใ‚“ใช่‡ชๅˆ†ใ‚ˆใ‚Šๅนดไธ‹ใฎ่ฉฑโ€ฆใชใฎใ‹โ€ฆโ€ฆโ€ฆโ€ฆ

ๆ‹ณใงๆŠตๆŠ—ใงใใ‚‹ใ‚ˆใ‚Šใ‚‚ใ€ๅญไพ›ใงใ‚ใ‚ŠใŸใ„ใ‚ˆโ€ฆโ€ฆ

1

My old friend, a Raspberry Pi A+, has been running my home heating system for months, just like it did back in 2014.

It has not missed a single moment.
It has sailed through every so called cloud outage.
It kept working flawlessly even when the Internet connection was down, because it simply does not need it.

This is the kind of technology I love.
Of course, it runs NetBSD!

rpicaldaia# uptime
6:23PM up 78 days, 20:16, 4 users, load averages: 0.33, 0.17, 0.13
rpicaldaia# uname -a
NetBSD rpicaldaia 10.1 NetBSD 10.1 (RPI) #0: Mon Dec 16 13:08:11 UTC 2024 mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/RPI evbarm

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

1๋…„์— ๋ช‡ ์—†๋Š” '์ž  ์•ˆ์˜ค๋Š” ๋‚ ' ์ธ ๊ฒƒ ๊ฐ™์€๋ฐ ์ด๋Ÿฐ ๋‚ ์ด ์ข€ ๋” ์ ์–ด์กŒ์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ ๋ง์ด์ฃ ...

0

๋“ค๋ฆฌ๋Š” ์ด์•ผ๊ธฐ๋กœ๋Š” ์–ด์ฐจํ”ผ ํƒœ๋ฐ˜์€ ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌ๋˜์ง€๋„ ์•Š๊ณ , ์ œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณณ์—๋Š” ๋ถ„์‡„ํ•ด๋ฒ„๋ฆฐ ๋’ค์— ๋ฐ”๋žŒ์œผ๋กœ ๊ฐ€๋ฒผ์šด ๋ผ๋ฒจ์„ ๋‚ ๋ ค๋ฒ„๋ฆฐ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ๊ฐ€์„œ ์–ด๋–ค ์‹์œผ๋กœ ์žฌํ™œ์šฉํ• ์ง€, '๋ถ„๋ฆฌ์ˆ˜๊ฑฐ' 30๋…„์— ๊ฑธ์ณ ๊ธฐ์ค€์ด ์šด์šฉ๋œ ์ ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค - ์ €๋งˆ๋‹ค ํ•  ์ˆ˜ ์žˆ๋Š” ์„ ์—์„œ ์ ์‘ํ•  ๋ฟ.

RE: https://bsky.app/profile/did:plc:g4277rrszeonl4yzrpk26bou/post/3mfhhugv6gh2z

0
1
0
0

This is from the JSON-LD spec.

ActivityPub / ActivityStream are based on JSON-LD.

I think it was a very bad idea for JSON-LD to define "number" this way!

It makes it so numbers with fractional values are inexact & lossy.

This include values that are common for money.

For example, neither 0.10 and 0.20 can be represented exactly. So, 0.10 + 0.20 does NOT equal 0.30!

It should have used FIXED-point numbers rather than FLOATING-point.

number

In the JSON serialization, a number is similar to that used in most programming languages, except that the octal and hexadecimal formats are not used and that leading zeros are not allowed. In the internal representation, a number is equivalent to either a long or double, depending on if the number has a non-zero fractional part (see [WEBIDL]).
0