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

Wow. What a spectacular long-read by @shibacomputer𝔰𝔥𝔦𝔟𝔠𝔬 from @newdesigncongress! 👏

“When the server goes dark, we go dark, too. We’ve built an entire civilisation on an unthinkably brutal and comically unreliable stack while hallucinating it as literally anything else. We condemn AI today for making shit up, but what about us? […] We hallucinate that the server is somehow both ephemeral and eternal."

newdesigncongress.org/en/pub/w

0
0
0
0
1
0
0
0
0
💬 Commented on "deps: Update vite to v8 (wip)": kakkokari-gtyih "目安だいぶ早くなる

- Base (develop): https://github.com/misskey-dev/misskey/actions/runs/22940756586/job/66581656776
- Head (ここ): https://github.com/misskey-dev/misskey/actions/runs/23008050641/job/66810396000

結果

- フロントエンドビルド時間: 27s → 10s (2.7x)
- embedフロントエンドビルド時間: 3.2s → 1.7s (1.9x)
- 全体のビルド時間(モノレポ全体): 38s → 23s (1.7x)
"
https://github.com/misskey-dev/misskey/pull/17238#issuecomment-4047491294
0

Age Verification and Age Gating: Resource Hub

Age verification (or age-gating) laws generally require online services to check, estimate, or verify all users’ ages—often through invasive tools like ID checks, biometric scans, or other dubious “age estimation” methods—before granting them access to certain online content or services.  Governments in the U.S. and around the world are increasingly adopting these restrictive measures in the name of protecting children online. But in practice, these systems create dangerous new forms of surveillance, censorship, and exclusion.  Technologically, the age verification process can take many forms: collection and analysis of government ID, biometric scans, algorithmic or AI-based behavioral or user monitoring, digital ID, the list goes on. But no matter the method, every system demands users hand over sensitive and immutable personal information that links their offline identity to their online activity. Once that valuable data is collected, it can easily be leaked, hacked, or misused. (Indeed, we’ve already seen several breaches of age verification providers.) EFF has long warned against age-gating the internet. Age verification technology itself is often inaccurate and privacy-invasive. These restrictive mandates strike at the foundation of the free and open internet. They are tools of censorship, used to block people from viewing or sharing information that the government deems “harmful” or “offensive.” And they create surveillance systems that critically undermine online privacy, chill access to vital online communities and resources, and burden the expressive rights of adults and young people alike. EFF.org/Age: A Resource to Empower Users Age-gating mandates are reshaping the internet in ways that are invasive, dangerous, and deeply unnecessary. But users are not powerless! We can challenge these laws, protect our digital rights, and build a safer digital world for all internet users, no matter their ages. This resource hub is here to help—so explore, share, and join us in the fight for a better internet.

www.eff.org · Electronic Frontier Foundation

0
0

If you really hate OS-level age verification laws during the ongoing backlash, causing the violation of parts of the U.S. Constitution like and , we encourage you to contact your state representative here and preserve without spies.

contactrep.org

0
0
0
0
1

“유럽의 동쪽 끝자락 우크라이나엔 전쟁의 포성만 있는 게 아니다. 아직 널리 알려지지 않았지만, 언젠가 세계 애호가들의 눈을 번쩍 뜨이게 할 와인이 즐비하다. 와이너리와 와인 샵, 레스토랑들은 전쟁 속에서도 이 나라 독특한 와인들의 명맥을 지키려 고군분투 중이다.” ✴️ 로그인하고 읽는 [우크라이나 와인 탐방]

우크라이나 와이너리 사장님이 전쟁 끝나기만 기다리는 이...

0
0

"적 압박 위해 호르무즈 해협 계속 봉쇄해야" "순교에 대한 보복 피하지 않아…미군기지 즉각 폐쇄하라" 이란 새 최고지도자 아야톨라 모즈타바 하메네이 이란의 새 최고지도자로 선출된 아야톨라 세예드 모즈타바 하메네이가 첫 메시지에서 미국·이스라엘에 대한 '초강경' 대응을 선언했다. 수정 2026-03-12 22:56

"적 압박 위해 호르무즈 해협 계속 봉쇄해야"

0
0

At the start of this year I decided to relocate.

Not as an expat. As an immigrant.

That distinction matters. Most resources for people leaving the U.S. are built around one goal: replicating the American experience somewhere cheaper or sunnier. That's not what I'm trying to do. And finding support for life beyond the supremacy myth has already revealed how few structures exist for someone leaving the U.S. who isn't trying to take the U.S. with them.

0
4
0
0
0
0

온라인상에서 데이터만의 게임을 가지는건 이제 더이상 '가진다'의 의미가 아니라 그 상점 페이지가 서비스를 종료해버리기 전까지 '대여한다'의 개념이란걸 이제 모두가 알잖아. 콘솔기기로 그 게임의 실물 게임 칩을 사는 사람들은 그것 때문에 되도록 실물 칩을 사고자 하는거고, 그런데 이제 램값도 너무 비싸져선 콘솔조차 너무 비싸. PC의 게임들도 게임 파일이 들어있는 칩을 내줬음 좋겠다. 칩을 인식하기 위한 인식기와 칩 자체 포멧을 공용으로 해두고 그걸 벗어나지 않았으면 좋겠네, CD 처럼. PC 게임, CD 시절로 돌아가자.

0
0
0

<오마이뉴스>는 지난 11일 화상 인터뷰를 통해 세 지역 청년과 대담을 진행했다. 12년 전 종교 탄압을 피해 한국으로 온 이란 청년 소니아 사다트만트(29, 여)씨, 한국에서 석사 과정을 밟고 있는 가자지구 청년 타렉 함단(25, 남)씨, 팔레스타인과 연대하는 한국시민사회 긴급행동 소속으로 최근 이란 공습 규탄 기자회견을 진행한 한국 청년 김원(26, 남)씨가 그 주인...

<오마이뉴스>는 지난 11일 화상 인터뷰를 통해 세 지...

0
1

I landed some performance improvements for the Swift type checker recently, and I'm currently finishing up the next set of changes which I hope to merge soon.

There are two main improvements. The first is a new "disjunction pruning" optimization to help skip impossible overload choices, and the second set of improvements concern implicit conversions and the constraints they generate.

0
2
0
0
0

Here is a slow Swift expression that benefits from my binding inference improvements:

print(Array(1...5).filter { $0 < 3 }.map { $0 * 10 }.reduce(0, +))

It type checks in about a third of a second for me in a Swift 6.3. (It was 1 second in Swift 6.0!) With the PR I landed on main last night it’s now down to 2 milliseconds. Still way too slow—that unapplied + that’s passed to reduce() at the end misses out on an optimization. But that’s for next time.

(And yeah, constructing an Array from that Range is redundant, but without the extra set of overloads from that redundant call it doesn’t become difficult enough to trip up the older compiler)

0

짱구 중국어판은 대체로 대만 더빙입니다.

북방 표준어는 咱们(잔먼)이나
哥们儿(꺼멀) 같은 말 쓰거나
발음도 zhe, ze 발음 구분이 명확하고
er 발음이 강한 경향이 많습니다.
본토 TV나 더빙은 북방 표준어를 쓰는 경우가 많죠.

다만 남방 중국어는
zhe, che를 모두 ze, ce로 발음하는 경우가 많고
er 발음이 들어간 点儿(디알)보다는
点(디엔)을 쓰는 경우가 많죠.

단어 표현이 묘하게 다르기도 합니다.

고구마 - 白薯(북방), 地瓜(남방 및 전국)
유치원 - 幼儿园(본토), 幼稚园(대만 및 일부 지역)

0

Wow. What a spectacular long-read by @shibacomputer𝔰𝔥𝔦𝔟𝔠𝔬 from @newdesigncongress! 👏

“When the server goes dark, we go dark, too. We’ve built an entire civilisation on an unthinkably brutal and comically unreliable stack while hallucinating it as literally anything else. We condemn AI today for making shit up, but what about us? […] We hallucinate that the server is somehow both ephemeral and eternal."

newdesigncongress.org/en/pub/w

0
1

Here is another slow expression to demonstrate the disjunction pruning optimization I talked about earlier.

Suppose you declare a variable of implicitly unwrapped optional type:

var x: Int! = ...

The value of x is stored like an ordinary optional "Int?", but a reference to x from inside an expression is presented as a disjunction---the type of the reference is either "Int", or "Int?". If both lead to a solution, we favor the "Int?" choice; otherwise, we get the "Int" choice, and the compiler then lowers the reference to a runtime check.

Now, consider this expression:

let result = x + x + x + x + x + x

It takes the Swift 6.3 compiler a third of a second to type check this expression, and now its instant with recent main snapshots. What changed?

0
0
0

Kroisse님과는 하스켈 서버에서 같은 주제로 이야기를 나누었는데, 나는 패키지 매니저 그냥 만들지 말자는 입장이다. 또는 작게 만들거나.

패키지 매니저가 하는일이

  1. 조건에 맞는 패키지를 찾아줌
  2. 패키지를 다운받게 해줌

여기서 2를 위해 별도의 프로그램이 필요하진 않다. 그냥 http나 git 클라이언트 쓰면 된다. 애초에 패키지 매니저들도 레지스트리로부터 패키지를 다운받는것외에, http, git 등을 레지스트리에 올리기 이전 개발단계의 편의를 위해 별도로 지원한다.

그럼 1번이 문제인데, 이게 쉬운 문제였으면 정말로 패키지 매니저가 필요없긴 했겠지. 저 조건이란게 단순히 strict한 버전이었다면 git tag등으로 명시하면 그만이다. 현실은 ^3.1.0 같은 여러 버전을 허용하는 방식이고, 같이 설치하는 패키지들의 버전들의 제약 조건을 풀어서 만족하는 버전을 찾아내야한다. 이걸 하려면 여러 패키지들을 모아놓아야하다보니 패키지 레지스트리라고 하는 서버가 생긴다. 그리고 패키지 매니저는 그 서버에 대한 클라이언트가 된다.

... 이렇게 써놓고보니 마치 서버에서 버전 제약 조건을 푸는 solver 역할도 할것 같은데, 대부분의 경우 그렇지 않다. 보통 클라이언트한테 패키지의 메타데이터(어떤 버전이 있는지, 각 버전마다 의존성은 뭔지) 내려주고 클라이언트에서 푼다. 패키지 수가 별로 많지않은 하스켈의 Hackage의 경우엔 그냥 메타데이터들 모아놓은 tar 파일을 하나 내려주는게 끝이다.

패키지 매니저란게 뭔가 거창한거 같은데, 의외로 별거 아닌 동작들을 한군데 모아놓은거란 걸 알수 있다. 확실히 까다로운 부분이라면 버전 solver 정도? 그리고 여기다가 꼭 패키지 매니저가 할 필요는 없는 기능들을 하나둘 넣어서(빌드나 npm run 같은 잡 기능이나) 또 별 이유없이 큰 프로그램을 만든다. 그렇다면 UNIX 철학에 따라 최대한 작은 패키지 매니저를 만들면 어떻게 될까?

그냥 버전 솔버만 만들면 된다는게 내 의견이다. 나머지는 그냥 파일 다운로드 받는거고 git한테 맡기면 된다. 더 나아가 버전 VCS가 버전 솔버까지 해야한다는게 내 입장이지만 이 얘기는 일단 pass. 또 Hackage와 달리 npm의 경우에 그 규모 때문에 패키지 메타데이터를 통째로 받기가 어렵긴 하다. 하지만 많은 언어들이 Hackage같은 접근을 할 수 있고(Rust의 crate.io도 그랬던걸로 안다), 그게 불가능할 경우에도 문제를 해결할만큼만 프로그램을 키우는게 낫다고 본다.

그리고 자꾸 Nix 얘기만 해서 짜증날까봐 걱정이긴한데, 여기서 버전 솔버 빼고 나머지를 모조리 Nix한테 맡길수 있다. 패키지 다운로드, locking, 빌드 등. 이때 패키지 매니저를 최대한 작게, 솔버 역할로만 만들어야지 Nix와 쉽게 연동될 수 있다. Nix가 다른 건 다 포용해줘도, 쓸데없는 IO 많이 발생시키는건 쉽게 안 봐준다. 다른 옵션으로, 만약 Nix를 안 쓰겠다면(합리적인 이유들이 있음), 차라리 Bazel/Buck과 같은 범용 빌드시스템을 위한 해당 언어의 플러그인/rule 같은걸 만드는 것도(이것도 거의 버전 solver에 가까울 거다), 큼지막한 패키지 매니저를 개발하는걸 피함과 동시에, 결과적으로 더 나은 결과를 얻을수 있다.

4
1
1