Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 Hackers' Pub 的開發者!

Website
hongminhee.org
GitHub
@dahlia
Hollo
@hongminhee@hollo.social
DEV
@hongminhee
velog
@hongminhee
Qiita
@hongminhee
Zenn
@hongminhee
Matrix
@hongminhee:matrix.org
X
@hongminhee

나는 X11 규격이 너무 오래된 나머지 HDR조차 안되어서 웨이랜드 써야 하는건 아는데

그래도 난 X11 위에서 돌아가는 소프트웨어가 좋단 말이지
어짜피 웨이랜드 가봤자 커널에 소프트웨어가 직접 쓰루해서 디바이스 조작하는건 똑같고

오히려 X11보다 그래픽 드라이버가 불안정할때도 많고
데스크탑 환경 표준에 대해서 완전히 환경이 달라지고
이 구성 요소 자체도 이전 스택과 너무 많이 달라져서
걱정이 매우 크다

개인적으로 X11에서 모토로 삼는 X 서버에서 윈도우의 프레임을 라우팅하고 X 서버에서 프레임버퍼를 전부 관리해서 한 곳에서 중앙집중 관리하고 원격 접속이라던가 유연성을 추구할수 있는 아키텍쳐라서 좋아하는데

웨이랜드는 그런게 없이 컴포지터가 윈도우 매니징이랑 온갖 서브시스템을 제어하고 프레임 버퍼 관리와 유연성도 떨어져서 또 ad-hoc 서브시스템을 붙여야 해서 많이 안좋아함

0

오늘 발견한 흥미로운 링크들: Matt 타입스크립트 선생님은 종종 Effect 에 대해 트윗하는데 주로 이펙트를 찍먹해보시고 이걸 강의로 만들까말까 만들까말까 하신다. Michael EffectTS 의 BDFL 은 종종 맷 선생의 트윗에 답글을 달아 이펙트 얘기를 풍부하게 가꿔주신다.

오늘은 이펙트의 굿파츠에 대한 얘기로 스레드가 열렸다. https://x.com/mattpocockuk/status/1936083553483157714

나도 EffectTS 도입을 하고 싶지만 여러모로 기존 바닐라JS 스펙과 다른 모양의 코드가 나와서 여러모로 망설이고 있다. (내 기준 이펙트는 실행 코드를 작성하기 보다 실행 계획을 작성하는 개념으로 접근하고 있다) 프로덕션 코드를 새로 만든다면 EffectTS 도입을 고려하고 있지만 학습 난의도가 있어 이를 위해 함께 스터디하고 코드 마이그레이션 계획도 세워야하는데, 그럴 여유는 보통 없는게 현실.

아직은 neverthrow 부터 사용해보는 정도가 지금의 최선이라고 생각한다. 나는 throw 기반의 조건 제어 코드가 불편하다. try catch 안에서 if 절로 throw 하는 코드를 볼 때마다 불만이다. 복구할 수 있는 에러는 throw 하지 않는게 옳다고 생각한다. 물론 언어의 문제도 있지만... 그렇게 스레드를 읽던 중 effectively 라는 애매한 이름의 Alegbraic effects 를 구현한 라이브러리가 공개되어 있다는 것을 발견했다. 작성자 본인도 뻔뻔하게 홍보한다고 어필하고 있다. ;) effectively

EffectTS 라는 이름도 애매하지만 Effectively 는 더 애매하다. 인기가 많아지기 전에 그럴듯 한 이름으로 브랜딩되면 좋겠다. 아, 그렇게 생각하는 이유는 TS 씬에 이런 라이브러리/프레임워크가 자주 거론되면 좋겠다는 생각 때문이다.

얘기하고 싶은 것은, 아이러니하게 이 effectively 의 readme 가 매우 간결하고 읽기 쉽게 EffectTS 에 대해 소개하고 있기 때문이다. effect.website 의 문서는 뭔가 개선이 필요하다. 없는게 없이 다 있지만 실제 읽다보면 어려운 부분이 많고 더 많은 설명이나 예제가 필요한 경우가 생긴다. 미카엘 본인도 문서 개선 필요는 공감하는 것 같다. (해당 스레드 발언 추정) 그리고 또 다른 유저가 포스트를 안내해주셨는데, Effect-like code without Effect 짧게 읽기 좋다. 게다가 이 포스트가 담긴 사이트의 프로덕트도 유용해 보인다.

시작부터 Result 나 Optional 을 제공하는 언어가 많은 소프트웨어 엔지니어들에게 높은 선호도를 가지는 이유가 있다고 본다.

5

@bglbgl gwyng 역시 아무래도 1이 제일 큰 것 같고, 3의 경우엔 제가 tree-sitter를 쓰기보다는 parser-combinator로 하나하나 짜다 보니 생각을 못했네요. 2도 있으면 매우 편리하지만 critical하지는 않다는 점 동의합니다. TS에서 HKT를 지원...했었나요? 스테로이드라고 한다면 fp-ts 같은 라이브러리를 말하는 걸까요?

2

@d01c2Hyunjoon Kim 1. ADT 지원 여부 2. HKT 지원 여부 3. (장난감 언어 개발이 아닌 툴링도 제대로 다 만드는 시도에서) tree-sitter 바인딩 유무

1 >> 3 >> 2 정도로 중요한거 같네요. 러스트는 1, 3이 있어서 부럽고 하스켈엔 3이 없어서 제가 야크셰이빙하는 중입니다. 타스에 스테로이드 먹이면 1, 2, 3 다 되지 않나요?

@bglbgl gwyng 역시 아무래도 1이 제일 큰 것 같고, 3의 경우엔 제가 tree-sitter를 쓰기보다는 parser-combinator로 하나하나 짜다 보니 생각을 못했네요. 2도 있으면 매우 편리하지만 critical하지는 않다는 점 동의합니다. TS에서 HKT를 지원...했었나요? 스테로이드라고 한다면 fp-ts 같은 라이브러리를 말하는 걸까요?

1

타스나 러스트로도 구현을 해보긴 했는데 영... 러스트로 구현하는 사람들도 많은 걸 봐서 러스트는 skill-issue일 확률이 있지만, 타스는 미묘하게 아쉬운 부분이 계속 있는데 그건 아마 static typing이 아니라서일거야

@d01c2Hyunjoon Kim 1. ADT 지원 여부 2. HKT 지원 여부 3. (장난감 언어 개발이 아닌 툴링도 제대로 다 만드는 시도에서) tree-sitter 바인딩 유무

1 >> 3 >> 2 정도로 중요한거 같네요. 러스트는 1, 3이 있어서 부럽고 하스켈엔 3이 없어서 제가 야크셰이빙하는 중입니다. 타스에 스테로이드 먹이면 1, 2, 3 다 되지 않나요?

1

언어 구현을 하는 데에 최고의 언어는 뭘까... 예전엔 OCaml이라고 생각했었고 요즘은 Scala가 최고라고 생각하고 있기는 한데, 더 나은 대안 언어는 없을까? 탈JVM이 하고 싶다 (그렇다고 Scala Native는 아닙니다 진짜...)

3
4

내가 Git 쓰다가 왕대빵 커밋 똥히스토리 남기는 전형적인 패턴이다.

  1. 간단한 기능 A를 추가하려고 한다.
  2. A를 추가하려면 기존의 설계 B를 고쳐야한단걸 깨닫는다.
  3. B를 고친다.
  4. A를 추가한다.

이렇게 3, 4의 변경이 한데 들어가 있는 무근본 커밋이 탄생한다. 2 -> 3 사이에 stash를 하면 간단히 해결되는 문젠데 매번 까먹고 실천을 못한다.

5

@hongminhee洪 民憙 (Hong Minhee) 넵 아무래도 nginx로는 기존에 lua로 스크립팅을 많이해서 좀 덜 알려진거같고, 주력으로 밀지는 않는거같아요. 공식 문서도 deprecated 상태인것도 있을정도고... QuickJS 들어오기 전까지는 ES6도 부분적 지원만 하기도 해서요.

하지만 외부 라이브러리도 적당히 번들링하고 import 하면 되니 어떻게든 문제되는 부분만 간단하게 해치우고 십수년 전통의 다른 부분(리버스 프록시 등등)은 의존하고 싶을때는 이만한게 없는거같아요. 물론 lua나 OpenResty가 있긴 하지만 npm의 존재가 무시하기 힘들더군요… 마침 저는 grafana의 lezer-logql(파서)을 썼어야 했어서요.

2

QuickJS 개발자가 만든 옛 작품으로는
QEMU가 있고 TinyCC라는 C 컴피일러가 있으며
자바스크립트로 Pure 8086 에뮬레이터와
FFmpeg를 개발한 적이 있습니다

C 골프 코딩 대회에서 3번이나 우승하고
파이 소숫점 계산 대회에서 알고리즘 연구로 우승을 거머쥔 적이 있는 사람입니다

사람이 아니라는 뜻입니다

6
4
6
4
2
7
3

오늘은 projects.org 파일에서 내 노트 중 프로젝트를 찾아 리스트로 띄워주도록 스크립트를 짰다. org agenda도 좋던데 기능이 풍부해서 익히기 어려워서, 내가 신경쓰고 싶은 기능만 작게 만들었다.

org는 주피터 노트북이나 엘릭서 라이브북처럼 실행 스크립트를 파일 내에 넣어버릴 수 있고, 접어서 깔끔하게 결과만 볼 수 있어서 좋다.

projects.org 파일의 모습. SRC 블록은 접혀있고, 진행중, 완료, 폐기된 프로젝트들이 리스트업되어있다.SRC BLOCK을 펼친 모습. 프로젝트 목록을 뽑아내기 위한 Elisp 스크립트가 담겨있다.
3

WSL 및 WSL 2를 사용할 수 없는 Windows 환경에서 Linux 대응 Docker container 생성 및 정상 작동 여부 점검을 하려면 어떻게 해야 할까요?

문득. 사용중인 OS가 Windows Home 에디션이 아닌 Pro 라는 걸 떠올렸습니다. 아, 그럼 Hyper-V도 사용 금지일까 싶어 확인해보니. Hyper-V는 정상(?)적으로 작동합니다.

아직 Secure Boot 관련 옵션이 잘 이해되지는 않고, GPU 패쓰쓰루 같은 게 가능할지도 자신이 없지만 (내장그래픽 없이 NVIDIA GPU 1개만 있는 환경이라 괜히 잘못 건드리면 디스플레이만 날아가는 대참사가 염려되지만) 일단 컨테이너를 생성하고 실행하는 일 자체는 꽤 가능해질 거 같은 좋은 예감이 드네요.

어차피 GPU 패쓰쓰루 없이도 Windows 환경의 Ollama 에게 연결만 된다면 되는 거니까.

Windows Sandbox 이후로 Hyper-V를 꺼내보는 건 무척 오랜만이네요. 특이한 제약조건에서 특이한 문제들을 풀어보는 경험이 언젠간 큰 틀에서 다 도움이 되기를...

2

프로젝트 여러개 동시에 작업할 일이 있어서 Claude Code를 동시에 여러개 돌려야 하는데, 한 화면에서 볼 수 있는 괜찮은 멀티플렉서가 뭐가 있을까 하고 찾아봤는데.... zellij가 제 몫을 하는 것 같다.

사용방법이 어려울 줄 알고 쫄아서 시도 조차를 안했었는데, 화면 최하단에 어떤 단축키를 쓰면 어떤 동작이 일어난다고 친절하게 명시되어 있어서 진입장벽도 그렇게 있지는 않은듯....?

프로젝트별로 다른 pane으로 분리해서 각각 독립적으로 실행되는 Claude Code 에이전트를 굴리는 모습이다.
4

두달내내 발표자료를 깎지 않을까.. 싶네요.. 파이콘(세션 발표, 커뮤니티 소개 발표) / 우부콘(세션 2개) / 모각작모임 라이트닝 토크. 요렇게 5개를 준비하게 생겼습니다.

전반적으로 내용은 얼추 완성이 되긴 했는데, 피그마로 만들었던 자료를 구글 슬라이드 기반의 템플릿으로 하나하나 다 옮겨야 함...

그리고 Claude Code로 실험을 좀 많이 하게 될 것 같아요

6

Zed는 아직 쓰지도 않는데도 요즘 보기드문 장인정신이 느껴지는 소프트웨어라 호감이 간다. 지금 쓰고있는 Windsurf는 VS Code 포크떠서 AI 채팅만 추가했는데 하루에 3번 터져서 에디터를 재시작해야한다(AI 채팅 패널이 터지는거라 VS Code가 아닌 Windsurf 문제로 보임). 5조 투자받은건 어따썼니??

5

# Ask Hackers Pub : 이번 주말에 뭐 하시나요?

이번 주말에 뭘 하려고 계획 중인지 편하게 얘기해 보아요.
읽을 책, 가볼 곳, 해볼 것.. 어떤 것이든 좋습니다.
도움 요청이나 피드백 요청도 좋습니다.
물론! 아무것도 하지 않고 쉬는 것도 훌륭합니다.

* 지난 주말에 계획하셨던 일의 회고도 한 번 남겨보면 좋을 것 같아요.

1

E2EE (단대단 암호화)가 들어간 블루스카이 비밀글 서비스는 어떨까요.... 서버에서도 내용을 읽을 수 없고, 당사자들만 읽을 수 있어요

그리고 약간 기존 트위터 비계처럼, 허가/거절 방식으로 팔로워를 받아요.

E2EE라 (정확히는 구현된 방법때문에) 누구누구 선택해서 그 사람들한테만 공개되게 할 수 있어요.

아 대신에, 회원가입때 비밀번호를 만드셔야하고, 로그인할 때도 치셔야해요. (마스터 키) 백업 키는 제공해드려요.

3
3

Zenn 하니까 하나 더 생각나는거. Zenn에서는 트렌드를 실시간으로 받아볼 수 있도록 rss 피드를 제공한다. Velog도 마찬가지로 지원하긴 한다.

하지만... 개인적으론 벨로그보다 zenn에 올라오는 글의 퀄리티가 마음에 들었어서, @akastoot악하 님이랑 zenn trend 봇을 만들었는데...... 제목 (원문 유지/영어 번역/한국어 번역), 그리고 원본페이지/각 언어별 번역페이지 이렇게 링크를 제공해주는 방식이었다.

당시엔 네이버에서 papago api가 오픈되었기 때문에, 그럭저럭 공짜점심을 먹을 수 있었으나.... 어느 순간부터 papago api가 샷다를 내려버리는 바람에 역사의 뒤안길로 사라진 봇이 되어버렸다......

지금 다시 만들게 된다면, 번역 기능은 DeepL 번역 API 쓰고, 자동번역페이지는 더 이상 못쓰게 되었으니 각 언어별 3줄 요약 정도만 남기고, 봇 굴리는건 @botkitBotKit by Fedify :botkit: 으로 할 수 있지 않을까.....

3

ryoppippi 라는 일본쪽 개발자 분을 neovimconf.live에서 발표했을때 인연으로 지나친 적 있어서 일방적으로(?) 알고 있긴 한데, ccusage 같은 것도 만드시고 한국 기업인 뤼튼테크놀로지에서도 잠깐 일하시기도 하셨더라... 뭔가... 핸들을 볼때마다 내적반가움을 느낌..

1

4년만에 하는 웹개발... 난 그저 간단한 퀴즈 푸는 사이트를 만들려고 했던것 뿐인데... 살면서 boilerplate만 한 10번쯤 만드는것 같음. 만들어두면 또 한동안 웹개발 할 일 없어서 방치되고, 그 사이에 온갖 라이브러리가 사라지면서 못쓰는 코드가 되어버림. 프레임워크들도 엄청나게 많이 바뀌어있고.

이번에 작업한거: 4년전에 만들어둔 boilerplate인데 좀 최신화를 했습니다. Django + Vue 조합. 기능이라고는 겨우 로그인해서 'Home' 문구 하나 볼 수 있는 웹페이지인데 어쩌다가 이렇게까지 복잡해졌을까요...

https://github.com/theeluwin/pocket-galaxy

7
2

KT의 5G Egg(MKL-E1100K)는 macOS도 윈도우도 USB 테더링을 지원합니다. Wifi를 쓸 수 없는 특이한 환경에서는 여러 모로 편리한데요. 삼성의 SCR-01은 아무래도 안드로이드 기반이어서인지 macOS에는 USB 테더링이 안 됩니다.

내일은 그래서 특이한 시도를 해보려 합니다. 중고 MKL-E1100K 한 대 마련해서 KB Liiv M 알뜰폰 USIM(KT)을 넣어볼 생각입니다.

알뜰폰 요금제를 자세히 살펴보니 "테더링" 데이터 제공량은 별도로 계산된다고 적혀 있습니다. 그래서 이리 찾고 저리 찾은 끝에 실험해볼 조합을 찾았습니다. MKL-E1100K는 기기 제조사 차원에서 KT망만 지원하게 되어 있다고 하고, Liiv M 알뜰폰 요금제는 (LTE의 경우) 요금제의 데이터 제공량만큼 테더링을 사용할 수 있고.

과연. 실험 결과는...

1

記事にするほどではないんだけど何となく書きたかったからGistsに置いておくことにしたやつ

なぜapkitやapsig、apmodelを作成したのか

https://gist.github.com/AmaseCocoa/f5f256eb28c5da88191231dd4fe55030

1
3
16
6
0
11

Fedify 1.6.2 has been released as a hotfix to address compatibility issues with certain Mastodon servers.

This release resolves interoperability problems with Mastodon instances running bleeding-edge versions that include RFC 9421 HTTP Message Signatures support. These versions contain a bug that causes 500 Internal Server Error responses when receiving RFC 9421 signatures, affecting communication with several major servers including mastodon.social.

The fix extends Fedify's double-knocking mechanism to retry requests with draft-cavage-http-signatures-12 when receiving 5xx error responses, in addition to the existing 4xx error handling. This ensures continued federation compatibility while Mastodon addresses the underlying issue in their implementation.

This is a temporary workaround that will be reverted in a future release once Mastodon fixes their RFC 9421 implementation and affected servers are updated. The change maintains backward compatibility and does not affect the behavior with servers that properly handle RFC 9421 signatures.

Users are encouraged to update to 1.6.2 to ensure reliable federation with affected Mastodon servers.

2
4

제텔카스텐이니 세컨드브레인이니 하지만, 정작 우리나라에서 만든 창의적 방법론에는 무관심한 듯.

우리나라에서 제텔카스텐 기법을 극대화하신 분은 다산 정약용 선생 아닐까? 여유당 전서, 흠흠신서, 목민심서, 경세유표 등등 엄청난 저술 활동을 해낸 분. 여유당 전서는 500권이 넘는다. 제텔카스텐을 창안(?)한 루만도 고작(?!!!) 300편의 논문만 썼다.

예전 다산 선생을 다룬 책에서 제텔카스텐 기법을 본 적이 있는데...

4

여전히 web front frustration을 겪는중. 웹개발 할 일이 3년에 한번 꼴로 있다보니, 예전 코드로 돌리면 다 먹통임. 그래서 새로 (가령 Vue) init 시켜보면 뭔가 또 알수없는 각종 기본 설정 파일이 273개쯤 추가되어있음. 하루종일 ‘얘는 또 뭐여...’ 하면서.

2

유니티나 Lua로 프로그램 짜던 시절 생각하면 지금 웹 개발에서의 격변이 정말로 즐겁다. 즐겁긴 한데, 리액트라던가의 '매년 바뀌는 표준을 감당할 수 있겠나 소년?'에 대해서는 좀 질리기도. 필요해서 바뀌는 건 알겠는데 ECMA스크립트로 봐주면 안될까...? (나태)

5
1
1