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

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

I was writing a blog post tangentially referencing the book "Weapons of Math Destruction" (which itself points to the unfair and sometimes deadly consequences of algorithms) when a friend shared the link below.

Leaked data from Persona (identity verification) only corroborates the awful extension from the premise of Weapons of Math Destruction and the recycling of bad practices from a decade ago...

From the post:

"The blog [from the security researcher] claims that 2,456 source files expose 269 verification checks offered to government customers, including checks for whether a face looks “suspicious,” and two parallel systems for politically exposed persons (PEPs)."

I wonder what is being used to check whether a face looks suspicious? It's not an AI system that is based on data that inherently discriminates against marginalized people, right? ... Right?

cybernews.com/privacy/persona-

0
0

"This is a milestone year for America. It marks both the 250th anniversary of the signing of the Declaration of Independence and the 100th anniversary of an effort to recover and recount the contributions of Black Americans left out of the national narrative—what was launched in 1926 as Negro History Week and then became Black History Month in 1976.

One anniversary honors the nation’s founding ideals; the other reckons with its failures to live up to them."

theatlantic.com/ideas/2026/02/

Archived link: archive.is/yLt9t#selection-719

0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
15
0
0
0
0

You voted for this slogan and now it's here! We have a new batch of super nice t-shirts (they're 100% organic cotton with a thick, soft feel) with a cute screen printed design from @dopatwo. "My friends are not for sale"—because your connections to other people are more than a bargaining chip for big tech companies to keep you from leaving them.

shop.joinmastodon.org/products

A beautiful woman with dark hair, gold earrings and red lipstick, wearing a french navy colored t-shirt with a colorful screen printed design on the front, while holding a red Plushtodon on her head.The design on the front of the t-shirt, which is the phrase "My friends are not for sale", a beige Mastodon giving a red Mastodon a piggyback ride while the red Mastodon is flying a kite, which has little wings and a little Mastodon face.
0
25
1
0
1
0
@hongminhee洪 民憙 (Hong Minhee) :nonbinary: from the point of view of someone who is "maintaining" a JSON-LD processing fedi software and has implemented their own JSON-LD processing library (which is, to my knowledge, the fastest in it's programming language), JSON-LD is pure overhead. there is nothing it allows for that can't be done with

1. making fields which take multiple values explicit
2. always using namespaces and letting HTTP compression take care of minimizing the transfer

without JSON-LD, fedi software could use zero-ish-copy deserialization for a majority of their objects (when strings aren't escaped) through tools like serde_json and Cow<str>, or
System.Text.Json.JsonDocument. JSON-LD processing effectively mandates a JSON node DOM (in the algorithms standardized, you may be able to get rid of it with Clever Programming)

additionally, due to JSON-LD 1.1 features like @type:@json, you can not even fetch contexts ahead of time of running JSON DOM transformations, meaning all JSON-LD code has to be async (in the languages which has the concept), potentially losing out on significant optimizations that can't be done in coroutines due to various reasons (e.g. C# async methods can't have ref structs, Rust async functions usually require thread safety due to tokio's prevalence, even if they're ran in a single-threaded runtime)

this is
after context processing introducing network dependency to the deserialization of data, wasting time and data on non-server cases (e.g. activitypub C2S). sure you can cache individual contexts, but then the context can change underneath you, desynchronizing your cached context and, in the worst case, opening you up to security vulnerabilities

json-ld is not my favorite part of this protocol

@kopperkopper :colon_three: @hongminhee洪 民憙 (Hong Minhee) :nonbinary: As the person probably most responsible for making sure json-ld stayed in the spec (two reasons: because it was the only extensibility answer we had, and because we were trying hard to retain interoperability with the linked data people, which ultimately did not matter), I agree with you. I do ultimately regret not having a simpler solution than json-ld, especially because it greatly hurt our ability to sign messages, which has considerable effect on the ecosystem.

Mea culpa :\

I do think it's fixable. I'd be interested in joining a conversation about how to fix it.

0
0
0

Do you want to design a cross-stitch pattern? This website is neat.

Now to try to figure out how to print this. If it works it could be fun to make different species.

I think I'd like to see how small I can make the patterns. Since I am very lazy and won't complete a big complex project.

There are also sites that will convert photos, but the results look like waaaay too much work to really make.

flosscross.com/

A simple pattern I designed with four ants, two facing up, two facing down.
0
1
0

RE: mastodon.social/@twostraws/115

I've sent Kickstart TestFlight invites to 10 more people, all of whom emailed me to say they were interested. I made another video of its features – it was 38 minutes, despite me flying through everything quickly 🫠 Hopefully I'll be able to expand the TestFlight further soon!

0
0
3
0

I am old and my technology is aging with me

But the stuff I can keep using I keep using

Which is one reason I am enthusiastic about my switch to using the MNT Reform line of computers for my stuff. I want that for my computer itself. I want a computer that can age with me, but also grow and change, which has never been possible with laptops in my lifetime.

@cwebberChristine Lemmer-Webber This is basically where I'm at too. I'd like to keep using the Pocket Reform in some incarnation for as long as I can - with some tweaks and upgrades along the way, to be sure, but with the same chassis. (We'll see how that goes as I get older and my vision gets worse but I can always chassis swap)

Of course I feel a bit hypocritical saying that while continuing to buy each new MNT thing, but I can afford it and I want to support them. It's only partly an excuse I tell myself 😅

0
0

Instruments 26.4 adds a whole host of new features in the latest Xcode beta!

We'll take a look at them during my App Performance and Instruments Virtuoso course, starting next week.

This amazing tool keeps getting more and more powerful. I hope you can join me for a deep dive into Instruments.

Click through for full course details, testimonials from past students, and enrollment info.

swift-virtuoso.com

(Know developers who might be interested? Please boost and spread the word!)

0
1
@hongminhee洪 民憙 (Hong Minhee) :nonbinary: from the point of view of someone who is "maintaining" a JSON-LD processing fedi software and has implemented their own JSON-LD processing library (which is, to my knowledge, the fastest in it's programming language), JSON-LD is pure overhead. there is nothing it allows for that can't be done with

1. making fields which take multiple values explicit
2. always using namespaces and letting HTTP compression take care of minimizing the transfer

without JSON-LD, fedi software could use zero-ish-copy deserialization for a majority of their objects (when strings aren't escaped) through tools like serde_json and Cow<str>, or
System.Text.Json.JsonDocument. JSON-LD processing effectively mandates a JSON node DOM (in the algorithms standardized, you may be able to get rid of it with Clever Programming)

additionally, due to JSON-LD 1.1 features like @type:@json, you can not even fetch contexts ahead of time of running JSON DOM transformations, meaning all JSON-LD code has to be async (in the languages which has the concept), potentially losing out on significant optimizations that can't be done in coroutines due to various reasons (e.g. C# async methods can't have ref structs, Rust async functions usually require thread safety due to tokio's prevalence, even if they're ran in a single-threaded runtime)

this is
after context processing introducing network dependency to the deserialization of data, wasting time and data on non-server cases (e.g. activitypub C2S). sure you can cache individual contexts, but then the context can change underneath you, desynchronizing your cached context and, in the worst case, opening you up to security vulnerabilities

json-ld is not my favorite part of this protocol

@kopperkopper :colon_three: @hongminhee洪 民憙 (Hong Minhee) :nonbinary: As the person probably most responsible for making sure json-ld stayed in the spec (two reasons: because it was the only extensibility answer we had, and because we were trying hard to retain interoperability with the linked data people, which ultimately did not matter), I agree with you. I do ultimately regret not having a simpler solution than json-ld, especially because it greatly hurt our ability to sign messages, which has considerable effect on the ecosystem.

Mea culpa :\

I do think it's fixable. I'd be interested in joining a conversation about how to fix it.

0

Instruments 26.4 adds a whole host of new features in the latest Xcode beta!

We'll take a look at them during my App Performance and Instruments Virtuoso course, starting next week.

This amazing tool keeps getting more and more powerful. I hope you can join me for a deep dive into Instruments.

Click through for full course details, testimonials from past students, and enrollment info.

swift-virtuoso.com

(Know developers who might be interested? Please boost and spread the word!)

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