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

There was a golden period of OS X roughly between 10.5 and 10.9.

Up to 10.4, windows were too textured: stripes, brushed metal.

In 10.5 till 10.9 we got to enjoy the beauty of Aqua paired with calm, tasteful gray window frames and controls that had visible depth.

From 10.10 till 10.15 was okay-ish: the flat took over, but we still had contrast and shapes.

Starting from 11, everything became rounded, low contrast and lost visual cohesiveness.

10.5 till 10.9. We didn’t know how good we had it

Screenshot of Activity Monitor from 10.4 TigerScreenshot of Activity Monitor from 10.5 LeopardScreenshot of Activity Monitor from 10.10 YosemiteScreenshot of Activity Monitor from 11 Big Sur
0
0
0
0

How UI degrades over time.

Top (Windows 95): great contrast, obvious shapes. Instantly readable.

Middle (Windows 11): shapes are still self-explanatory, but contrast is gone.

Bottom (Windows 11 Insiders): what am I even looking at? The only shape I can understand here is the Run button. Barely visible, though.

Then, on the left, there’s another something that says Run and has an icon. What is it? A window title? Another button? Why does it have to say Run twice?
... 1/3

0
0
0
0
0

Hey dear Fedi friends. A quick follow-up on that post about shortage of medication that saves kids suffering from . I managed to find a very kind person from Finland who has defended a PhD on drug shortages. We had a video call and he wants to help understand what happened with Synacthene retard and how to get it back to pharmacies. He will help contact the lab that used to produce the drug and also contact other labs across Europe to see which one still manufactures this drug. We have a plan! But we still need a journalist who can make this story known and visible to a bigger audience. Do not hesitate if you know someone who could help us write an article. This case has everything a good story should have: real voices of a marginalized group, first-hand expériences, background corruption schemes, big pharma wicked games and so on. I think we have high chances to win!

0
0
0
0
0
0

So often used to be told that "people make pictures" and how true is that remark.
One man and his doggy friend, early doors, on Roker Pier, Sunderland in NE England doing a spot of 'dawn watching'.
I would have been happy had I had the pier to myself but my two subjects helped add another dimension to the composition (especially the dog!).
Mesmerising colour contrasts with the sun just a few degrees below the horizon.

One man and his dog attentively scanning the sky from Roker Pier in Sunderland, NE England ahead of sunrise. Cool blues contrasting against the warmer hues of the impending sunrise.
0
1

Atmospheric refraction, due to the different temperature/altitude profile in the atmosphere at different times of day...makes distant mountains appear taller or shorter.

The attached photo is a comparison of what I shot yesterday afternoon and this morning. The camera was set up within inches of the same location for both shots, and those mountains are between 50 and 120 miles away...so I'm saying that any parallax effect from camera location is essentially zero.

I have annotated with arrows where it's easy to make a comparison of how the near and far ridge lines overlap differently in the two photos.

This is a follow up to:
universeodon.com/@KrajciTom/11

Imagine the care that was needed to conduct surveys before the GPS/GNSS era:
explorersweb.com/the-five-men-

"The Great Theodolite built by Troughton & Simms in London stood nearly 1.5m high, had a horizontal circle one meter in diameter, and could read angles to a single second of arc. Moving it required 30 porters and sometimes elephants."

"The reduction of Nicolson’s observations was a colossal task. Each ray from each station had to be corrected for instrumental error, for temperature and pressure, and for the curvature of the Earth. Above all, they needed to correct for atmospheric refraction, which at those distances could amount to six or seven minutes of arc and change from hour to hour."

A comparison of two photos of the same distant mountain ridges. Arrows show places where the ridgelines overlap in different ways in the two photos. The top photo is grayscale, the bottom one is color.The great theodolite. Photo: Survey of India Archives
0
1
0

@julian

FEP-f15d: Context Relocation and Removal

I have two objections to this proposal. We discussed them before in Moving topics/contexts between communities:

1. It assumes that a context always belongs to one group.

As I suggested in the aforementioned thread, an Update activity is a better solution because it works when relationship between a context and a group is many-to-many. It is also semantically cleaner: "update collection audience" instead of "move collection from actor 1 to actor 2" and "remove collection from actor" (at least if ActivityStreams terminology is used).

2. Treating collections (dynamic views) as static objects that can be moved, deleted etc is not compatible with client-side signing.

One possible solution is to separate context (an object) and its contents (a collection).

@jesseplusplusJesse Karmani @rimu @nutomic @melroy @BentiGorlich

@silverpill@mitra.social said in Minutes from 4 December 2025 WG Meeting:

  1. It assumes that a context always belongs to one group.

Yes that's correct. There was the potential for a context to belong to multiple audiences but social issues preclude further research.

Specifically, moderation gets very messy when contexts are cross posted to diametrically opposing audiences, and so that's not something I am equipped to work through right now.

Secondly, the assumption is already there that a context only belongs to one audience. We will not change that expectation.

0
0
0
0
0
0
0
0
2

FFS, how many times does it have to be said? DO NOT use Lithium Ion for static installations. They don't need the energy density and we don't need the fire risk.

LiFePO₄ is cheaper, inherently less risky and available in grid scale quantity.

Sodium is likely to be even better in some respect.

nature.com/articles/s41598-025

0

I just played around upgrading a FreeBSD 14.3p6 VM to 15.0-RELEASE via FreeBSD-base.
I still have not figured out how to do that with the official repos, but after building packages locally i was able to upgrade the boot environment and reboot in a working installation!

Has anyone got this working with the official base repo?

If anyone is interested, here are my notes about upgrading locally (Notes in picture alt for copy paste).

Create Boot Env and mount it
```
bectl create 15.0
mkdir /mnt/upgrade
bectl mount 15.0 /mnt/upgrade
```
Change pkg configuration `/mnt/upgrade/usr/local/etc/pkg/repos/FreeBSD-base.conf` to local repo
```
FreeBSD-base: {
  url: "http://local.ip/${ABI}/15.0",
  enabled: yes
}
```
and comment out FreeBSD-base from /mnt/upgrade/etc/pkg/FreeBSD.conf
Install FreeBSD-pkg-bootstrap, as mentioned in the [release notes](https://www.freebsd.org/releases/15.0R/relnotes/)
```
env ABI=FreeBSD:15:amd64 IGNORE_OSVERSION=yes pkg -c /mnt/upgrade/ install -r FreeBSD-base FreeBSD-pkg-bootstrap
```
Then upgrade the base packages
```
env ABI=FreeBSD:15:amd64 IGNORE_OSVERSION=yes pkg -c /mnt/upgrade/ upgrade -r FreeBSD-base
```
Check, if FreeBSD-set-base is installed:
```
env ABI=FreeBSD:15:amd64 IGNORE_OSVERSION=yes pkg -c /mnt/upgrade/ install -r FreeBSD-base FreeBSD-set-base
```

upgrade all other packages
```
env ABI=FreeBSD:15:amd64 IGNORE_OSVERSION=yes pkg -c /mnt/upgrade/ upgrade
```

Temporarily activate boot env and reboot
```
bectl activate -t 15.0
shutdown -r now
```
0
0

Just added easy-to-read logs to the ActivityPub Fuzzer! Here's a log of the fuzzer pretending to be Bookwyrm, along with an example of what the Create(Note) and the Article review look like in Hometown.

Note the "read article" link, which is a Hometown feature to be compatible with AP implementations that emit Article objects. You can also see at a glance that the "summary" field that Hometown is rendering here is actually coming from "object.name" (because "summary" is used for CWs lol)

A simple "log" page with a "Clear Log" and "Mark All as Read" button. Underneath those buttons are UI cards, each formatted like:

title: Bookwyrm basic Article book review
Software: Bookwyrm
Time: now
Content preview: [a longish excerpt from Moby-Dick with header html embedded]

And "inspect" and "FSO" links, the former showing you the generated activitypub JSON blob, the latter taking you to the page on the Fediverse Schema Observatory for that particular schema.A Mastodon-looking timeline with a note with a cat picture, followed by a shorter post with

Summary: "example bookwyrm basic Article book review (object.name)"

And then a "read article >" link
0

솔직한 고민으로 이렇게 행복하지않고 힘들거면 대학원 왜 다니지... 싶다가도 꿈이라던지 좋아하는것이라던지 희망과 사랑 내 안을 채우는 무언가를 위해서 견디는게 아닐까 싶기도하네

0

Hi everyone,

I'd like to share and announce the release of llm.rb v2.1.0.
The source is available at github.com/llmrb/llm.rb

> What is llm.rb?

llm.rb is a zero-dependency Ruby toolkit for Large Language Models that
includes OpenAI, Gemini, Anthropic, xAI (Grok), zAI, DeepSeek, Ollama,
and LlamaCpp. The toolkit includes full support for chat, streaming,
tool calling, audio, images, files, and structured outputs.

> Example

A simple chatbot that maintains a conversation and streams responses in
real-time:

#!/usr/bin/env ruby
require "llm"

llm = LLM.openai(key: ENV["KEY"])
bot = LLM::Bot.new(llm, stream: $stdout)
loop do
print "> "
bot.chat(gets)
print "\n"
end

0
0
0

I passed an orange tree that had dropped oranges all over the street so I picked one up and opened it and tasted the juice, at first it was deliciously citrusy and sweet and then the bitter aftertaste set in. I just got to a cafe and now I smelled my hands and wow what an intensely strage smell. It's sorta similar to earthworms in the rain mixed with the sweetness of citrus.

0
0
0
0

Speaking in mitigation today Adelheid Russenberger, 34, a history PhD student from London said:

“I believe that I acted morally and according to my conscience [. …] There is no justice in climate breakdown and without a stable climate no-one can live, let alone thrive. I climbed onto the gantry to try and prevent the government’s disastrous plans to licence more North Sea Oil and gas extraction – oil and gas that would have pushed us closer to lethal irreversible tipping points. I climbed on a gantry because I refused to ignore that basic moral principle of acting to protect life.”

In mitigation, Jane Touil, 59, a visually impaired former crown servant from Rochdale said:

“We are in an unprecedented situation. Yet the law says our protest was not justified. Not necessary. Not reasonable or proportionate. Disruption from flooding, extreme heat, extreme weather and wildfires is not a public nuisance. I am.

“The law will not save us. I have always tried to live and act according to my conscience. I call on everyone in this courtroom and in this country to do the same. Politicians will not make the change we need, but we can”

1/3

juststopoil.org/2025/12/05/fou

0
0
0
0
0
0
0
0
0
0
0

You should definitely read about @nina_kali_nina 's project to reverse engineer and produce the first ever (published) 3rd party application for the platform. It's a massively impressive piece of work, even by the already high standards of the community. Her notes are available at git.sr.ht/~nkali/vision-sdk/tr.

A few notes on why I think this is important. Firstly, I don't think you can really understand any field without understanding its history, and I think software engineering is especially bad at this. We tend to dismiss anything more than a couple of years old as irrelevant, which is why we're constantly reinventing the wheel and have people who don't realise that you can build a web page without using a JavaScript framework. One of the nice things about historical software is that you can actually use it, and take it apart and modify it, which leads to a much deeper understanding than you'd get from just reading about how it was used.

1/n

0
0
0
0