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

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

Q: 아뇨아뇨 몇년 전에 픽시브에 사이노 듀오링고 버전 올리셨잖아요 hey do you want to die 하는 세노 https://www.pixi... #neo_quesdon

A: 와 나도잊고있던걸
님이 내스하셈 전 은퇴하고 산에 칩거해서 바둑만 부다가 호랑이한테 물려가려니까
https://neo-quesdon.serafuku.moe/main/user/@NAES@madost.one/cmiuqdlur0jedo60j7ru2ax4v

1
1

Was looking through some of the bundles I bought on itch. One of them was a collection of ttrpgs… a bunch of interesting stuff in there.

OCCULTEAS, Build your shop, make tea, do witch stuff.

WasteCrawl, A One-page GM-less Exploration RPG for 1-8 Players

Dungeon Bitches, a game wherein disaster-lesbians get Fucked Up in dungeons.

You won’t find these listed on goodreads or your shopping mall bookstore heh.

0
0
0
0
0
0
Some weeks ago I posted a photo of this same scene with only the grazing horse. But the scene had more to offer: one more horse and, unintentionally, a bit more story.

I never go looking for stories in my photos; if they appear at all, I usually discover them afterwards. This time, the story was looking right at me. The second horse had noticed me long before I realised I was being watched. I was completely focused on the grazing one and only found my observant spectator later, while reviewing the images.

#Photography #BlackAndWhite #Unsquare
Panoramic black-and-white photograph. A leafless tree occupies the right foreground, its trunk and branches sharply defined. Dense fog fills the pasture, softening everything behind the tree. In the center of the frame stands a horse in side view, its head lowered as it grazes. Farther left, another horse appears in the same side orientation but with its head raised, looking directly toward the camera; its silhouette is faint but clearly recognisable in the mist. The ground is dark in the foreground and gradually fades into fog toward the horizon. The contrast between the crisp tree and the blurred, ghostlike horses emphasizes depth and atmosphere.
0
0
0
0