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

CW 🤡 behaviour surrounding the greated NixOS ecosystems

You have to be really tone-deaf to make an “official” announcement that the NixOS community is moving to a project being built by people that were banned from the NixOS community.

FFS.

0
0
0
0

Are you wondering if it's worth it to go protest our fascist overlords? A new study shows CAUSAL evidence that Black Lives Matter protestors pushed Republicans and Independents (especially rural, poor, white voters) to get out and vote for Joe Biden in 2020. skepchick.org/2025/04/study-bl

0
0
0
0
0
0

Hello all! Our Elasticsearch cluster had an outage for a couple of hours, which impacted search (either partially functional or non-functional at different windows of time). Thank you all for making sure we were on it!

Elasticsearch is back up as of 13:30 UTC.

:blobfoxcomputer:

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

picks of the day:

➡️ @GIFS_of_PuppetsMuppet GIF of the Day - Muppet GIF of the day

➡️ @netkittyPUPPY.EXE - Kitten on the Fediverse

➡️ @GurgleApps - Family doing projects in electronics, coding, science etc.

➡️ @sahakanouchOOTD In The Office - Trying out different outfits in the office

➡️ @fessholeFesshole 🧻 - Amusing, sometimes shocking confessions

➡️ @LyricalGarfieldLyrical Garfield 🎶 :garfield: - Garfield strips with song lyrics

➡️ @NoveltyBotA Most Amusing Bot - Random items from practical joke & novelty catalogues

➡️ @almostplausible - Podcast of film plots from random objects

🧵 1/6

0
0
0

BREAKING! Guido van Rossum, the legendary creator of Python, has officially reinstated himself as Python’s Benevolent Dictator for Life (BDFL) - but this time, he’s bringing some new quirks with him.

Feat. Guido van Rossum, Barry Warsaw, @brettcannon and @mariattaMariatta 🤦🏻‍♀️ :python:

Stay tuned for the Python documentary coming this summer!

youtube.com/watch?v=wgxBHuUOmj

0
0
0
0
0
0
0
0
0
0

Stonemason symbols, north exterior wall of Old Cathedral, Coimbra, Portugal.

The last photo also shows an Arabic inscription whose origin & meaning are debated. One widely accepted translation—“I wrote [this] as a permanent record of my suffering; my hand will perish one day, but greatness will remain”—suggests it was carved by a Mozarab mason working on the cathedral’s construction in the 12th century.

0
0
0
0
0
0
3
1

가을별 shared the below article:

스태키지 큐레이션이 성공할 수 있었던 것은 하스켈이라는 언어와 생태계의 특징도 컸습니다.

juxtapose @xt@hackers.pub

인용: https://hackers.pub/@bgl/0195f0eb-88dd-77e3-a864-f0371e85b270

스태키지(Stackage)는 하스켈이 (의외로) 성공하여 해키지(Hackage)가 거대해지자, 그 거대함 때문에 발생하는 불편을 해소하는 한 방책으로 고안되었습니다. 그런데 당시에 해키지만큼 거대한 생태계를 갖추고 있으면서 동시에 "컴파일이 성공한다면 실행도 아마 성공할 것"이라는 훌륭한 속성을 갖는 언어는 달리 없었죠. 러스트가 있지 않으냐? 스태키지가 처음 나온 게 2012년입니다. 러스트는 아직 crates.io 도 자리잡기 전이었죠. (사실 이 시점의 러스트는 지금과는 언어 자체가 많이 다른 언어였고요.)

하스켈의 패키지 버저닝 정책에 따르면, 후방호환성 깨지는 변경은 반드시 메이저 버전을 올려야 하고, 마이너 버전만 올리는 변경은 후방호환성 유지될 때에만 가능합니다. 이런 정책 당연히 좋지만, 사람이 내용을 잘 숙지하고 지켜야 의미가 있습니다. 후방호환성을 깨면서 마이너 버전만 올리는 실수는 어떤 개발자든 할 수 있죠.

그런데 하스켈의 경우, 인간이 실수해도 기계가 잡아 줄 여지가 처음부터 매우 큰 언어이고, 예를 들어 어떤 함수가 핵미사일을 발사할 수 있는지 아닌지를 함수 실행 없이도 식별할 수 있는 언어라고들 하죠. 하스켈의 마지막 표준이 2010년에 나왔으니 2010년을 기준으로 하면, 당시 하스켈이 제공하는 "컴파일 시간 보장"의 범위는 그야말로 독보적이었습니다. (하스켈보다 더 강한 보장을 제공하는 언어들은 있었지만, 그만한 라이브러리 에코시스템이 없었고요.)

그래서 스태키지라는 모형이 의미가 있었습니다. A라는 패키지의 새 마이너 버전이 해키지에 올라오면, 스태키지에서 자동으로 가져갑니다. 스태키지는 같은 큐레이션에 포함된 다른 패키지들 중 A에 의존하는 패키지들을 추리고, 얘네한테 A의 새 버전을 먹여도 빌드가 잘 되는지 검사합니다. 이들 중 하나라도 깨지면? A 패키지는 해키지에서는 버전이 올랐으나, 스태키지에서는 버전이 오르지 않게 됩니다. 그리고 A 패키지의 제공자에게 자동으로 깃허브 멘션 알림이 갑니다!

("패키지 저자"와 "패키지를 스태키지에 제공하는 제공자"가 같은 사람이 아니어도 된다는 점도, 노동력의 효과적 분담에 한몫했습니다.)

이 모든 과정이 자동화되어 있는데, 이것만으로도 99.99%의 호환성 문제가 사라지고, 그러면서도 웬만한 라이브러리들은 충분히 최신 버전으로 쓸 수 있습니다. LTS와 나이틀리가 구분되어 있는 것도, LTS가 GHC 버전에 대응하여 여러 버전이 유지되는 것도, 실제 개발에서 아주 편리하고요.

스태키지가 개쩌는 부분은 "버저닝 정책에 완벽하게 부합하는데도 현실적으로 후방호환성 파괴를 일으키는" 변경점들도 잡아낸다는 것입니다. 아주 단순한 예시로 "많이 쓰이는 이름"이 있습니다. 예를 들어 어떤 라이브러리가 아주 널리 쓰이는데, 제공하는 네임 바인딩은 몇 개 안 되고, 그래서 대부분의 사용자가 그걸 그냥 전역 네임스페이스에 다 반입해서 쓴다고 칩시다. 어느 날 이 라이브러리가 process 라든지 f 같은 새 네임을 추가 제공하기 시작하면? 정책 규범에 따르면, 이것도 마이너 버전만 올려도 되는 변경점이 맞습니다. 하지만 현실에서는 많은 패키지들을 박살내겠죠. 언어를 막론하고 있을 수 있는 일인데, 이런 것들까지 스태키지에서 아주 높은 확률로 다 잡힙니다.

그리고... 이런 게 잘 된다는 것은 언어 그 자체의 특성도 있지만, 생태계 전체의 문화적인 특성도 있는데요. 하스켈도 라이브러리 제작자가 충분히 악독하다면, 컴파일러에게 안 잡히면서 인류문명멸망시키는 코드 변경을 얼마든지 슬쩍 끼워넣을 수 있습니다. 악의가 아니더라도 부주의로 후방호환성을 깰 수 있고요. 그런데 하스켈은 대부분의 라이브러리 설계자들이 "되도록 많은 것을 컴파일 시간에 잡고 싶다"라는 명확한 욕망으로 설계를 하는 경향이 뚜렷합니다. 그래서 호환성 문제는 웬만하면 스태키지 선에서 잡히고, 스태키지 큐레이션은 지난 10년 동안 실무상 아주 유용한 도구로 기능해 온 것이죠.

어지간하면 큐레이션만 잘 고르고 잘 갱신하면 되고, 종속성 목록에는 mypkg >= 2.1.1 && < 2.1.2 이런 거 하나도 관리 안 하고 그냥 mypkg 라고만 써도 된다는 것이, 솔직히 개짱편합니다. 다행히 지난 10년 동안 "문제의 소지는 컴파일 시간에 검출하는 게 좋다"라는 생각이 더 널리 받아들여져서, 다른 언어들도 이런 접근을 더 시도할 여지가 생긴 것 같군요.

Read more →
2

Okay, I know everybody wants to dunk on the vibes coders, ("help, I got hacked!") but... what if we have empathy for them, instead? What if *nobody* really knows what all the code in their stack does? I thought a little bit about what for vibes coders would look like, and how we build security and reliability for the inevitable new wave of coders who are going to use AI to help them build apps. fastly.com/blog/hugops-for-vib

0
0

So. Well. This is news so enormous it's ungraspable: I am SFWA's 41st Damon Knight Memorial Grand Master. I don't know what to say. In lieu of brains-match-mouth coherence, here's a press release. I am overwhelmed.

nicolagriffith.com/2025/04/01/

0
0

まぁ数年くらいかかわりあっただけ全く知らないやつよりマシではあるし...​:blobcat_frustration:
もちろんだからいいとは思わないけど
:blobcat_frustration:

0
0
0
0
0

고등학교 동문회에 파면 촉구 성명문이 올라왔는데 거기다 대고 "정치인이 되려 하냐" "가짜뉴스에 선동되지 마라" "나도 2016년 탄핵 찬성했다가 엄청나게 후회했다" 고 강하게 말하는 선배분이 보여서 찾아봤더니 1) 국힘 소속 2) 페미니즘이 어떻게 사회를 좀먹는가에 대한 책 서술 아이고 두야...

0