Profile img

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at @hongminhee洪 民憙 (Hong Minhee).

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은: @hongminhee洪 民憙 (Hong Minhee).

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「@hongminhee洪 民憙 (Hong Minhee)」に。

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

그래도 변경을 좀 모아서 릴리스하려고 하고 있긴 하다… 그게 좋은 건진 모르겠지만 내가 편하다.

0
1
1
4
1

git-annex 좀 설치해보려고 했더니 가는 날이 장날이라고 우분투 저장소가 점검 중인 것 같다. 그래, 나는 하스켈러이니까 그냥 빌드하자. https://status.canonical.com/

3

우부콘 발표하고 그 다음 주에 파이콘 발표하고 그 다음 달에 해커스 퍼블릭 여시는 분이 말씀하시니 믿음이 가네요

6

댓글에 하스켈 욕이 보여서 마음이 안 좋다. 나는 대용량 파일을 다루지는 않지만 한국의 회사원이라 평문이 아닌 문서를 많이 다룬다.(hwp, xlsx 등) 윈도우 다운로드 폴더에 몇 번이고 받은 중복 파일들을 어떻게 다루면 좋을지 고민 중이었는데 git-annex를 써봐야겠다!

3
7
5
1

@hongminhee洪 民憙 (Hong Minhee) 근데 저는 어떤 언어든 디버깅용 로깅을 그냥 프리미티브로 제공하는게 맞다고 생각해요. stdout에다가 print하는 거랑 별개로 개발용으로요. 가령 console.log가 NodeJS 에선 그냥 print인데, 브라우저 개발자 도구에선 go to call site가 되는 제가 원하는 형태입니다.

0
1
5
4
4

또 모나드 설명 글 읽고 있음
그치만 주제 하나로 수많은 사람들이 각자의 해석에 따라 각자의 방식대로 글을 쓴다는 게 너무 재밌지 않음?
https://blog.merovius.de/posts/2018-01-08-monads-are-just-monoids/

4
2

작년에 어떤 커뮤니티에 계엄 소식을 전했는데 “여기서 정치적인 발언은 하지 말아주세요.” 라는 말을 들었다.

5

커뮤니티에서 정치적인 주제를 금지하면 결국 관리자가 보기에만 정치적이지 않은, 자기 입맛에 맞는 정치적인 글만 남더라구요

3
0
0
3

そもそもapkit.serverはもともと使ってたMiddlewareの形式じゃなくてそれ自体をASGIフレームワークとして使う形なので前とは違ってFedifyの統合と全く違う方法になってる (元々存在した課題点を克服するためにこういう形になった)

1

apkitのActivityPubServerは完全にFastAPIとStarletteのAPIに依存してるからあんまり気にしてなかったな

というかコードの理解度的に (Starlette/FastAPI以外の)統合をかける余裕があるか怪しいからしばらくは標準の統合以外は自分では出さないかも (裏側のコードに関してはStarletteとFastAPIだけならある程度わかったつもりでいる)

1
1
1
1
1

참고로 Hackers' Pub의 행동 강령에서는 굳이 정치적인 주제를 금지하지 않고 있습니다. 정치적인 것과 그렇지 않은 것의 경계가 흐릿한 것도 있지만, 그렇게 했을 경우 기득권에 편향되기 쉽다는 점, 그리고 필요하다면 정치에 대해 이야기할 수 있어야 하기 때문입니다. 많은 커뮤니티에서 정치적 대화가 필요할 때 조차 정치적 주제를 기계적으로 금지함으로 인해 자정 능력을 잃는 것을 봐 왔습니다.

8
2
4
4

GHCup 오랜만에 다시 설치하는데 못보던 게 생겼다.

GHCup provides different binary distribution "channels". These are collections of tools
and may differ in purpose and philosophy. First, we select the base channel.

[S] Skip  [D] Default (GHCup maintained)  [V] Vanilla (Upstream maintained)  [?] Help (default is "Skip").
2
4
1

GHCup 오랜만에 다시 설치하는데 못보던 게 생겼다.

GHCup provides different binary distribution "channels". These are collections of tools
and may differ in purpose and philosophy. First, we select the base channel.

[S] Skip  [D] Default (GHCup maintained)  [V] Vanilla (Upstream maintained)  [?] Help (default is "Skip").
4

회사에 Admin페이지들이 RoR로 작성되어있었는데,

1. 개발환경 세팅이 오래걸리고,
2. RoR은 경험이 거의 없고 Active Record에 대한 지식이 없는데
3. 원하는 기능은 어렵지 않은 간단한 기능 추가들

인 상황이여서, 바이브 코딩을 첨으로 해봤다.

JS나 Python으로된 복잡한 프로덕션 프로젝트에는 써볼 엄두가 안났는데, 내부용 간단한 관리툴에 기능추가는 정말 안성 맞춤인 것 같다.
그리고 다른 언어들에 비해 RoR은 더욱 잘 맞는것 같기도.

4

이제 Zed에서 Claude Code를 베타로 사용 가능
------------------------------
-
Claude CodeZed 의 통합이 공개 베타로 출시
- 새로운 *Agent Client Protocol (ACP)* 도입을 통해 다양한 에이전트와의 연결 확장 가능성 실현
- 개발자는
Zed 내에서 Claude Code를 실시간, 다중 파일, 커스텀 워크플로우와 함께 활용 가능함
- *Claude Code용 ACP 어댑터* 가 오픈소스로 공…
------------------------------
https://news.hada.io/topic?id=22887&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

2
0
2
3

방금 친구랑 모의면접을 봤는데(내가 면접관), 면접으로 알아낼 수있는게 딱히 있는지에 회의가 생겨버렸다. 아 물론, 내가 초보 면접관이라 면접스킬이 떨어지긴 한다만, 친구 얘기론(면접관 경험이 더 많음) 그래도 무난의 범위엔 든다고 한다. 이력서 기반으로 이것저것 물었는데, 만약에 이력서가 구라로 점철되있으면 그걸 걸러낼순 있었을 것이다. 근데 친구의 이력서는 당연히 그렇지 않았으니, 그냥 이력서가 구라가 아니란 사실 정도만;; 알아낼수 있었다. 이 이상 뭔가 더 꿰뚫어 보는게 가능할까... 하겠지? 그럼 어떻게 하는걸까.

방금 친구랑 모의면접을 봤는데(내가 면접관), 면접으로 알아낼 수있는게 딱히 있는지에 회의가 생겨버렸다. 아 물론, 내가 초보 면접관이라 면접스킬이 떨어지긴 한다만, 친구 얘기론(면접관 경험이 더 많음) 그래도 무난의 범위엔 든다고 한다. 이력서 기반으로 이것저것 물었는데, 만약에 이력서가 구라로 점철되있으면 그걸 걸러낼순 있었을 것이다. 근데 친구의 이력서는 당연히 그렇지 않았으니, 그냥 이력서가 구라가 아니란 사실 정도만;; 알아낼수 있었다. 이 이상 뭔가 더 꿰뚫어 보는게 가능할까... 하겠지? 그럼 어떻게 하는걸까.

4
2

2025-09-03 오늘의 작업한 내용 메모

https://github.com/cosmoslide/cosmoslide/pull/13

  • 이전 버전까지는 Cosmoslide 의 모든 계정은 public이고 팔로우 버튼을 누르면 바로 팔로우가 되는 로직으로 구현이 되어 있었음.
    • 즉, Follow 액티비티를 받으면 액티비티를 보낸 액터의 inbox에다가 바로 Accept(Follow) 액티비티를 보내는 구성
  • 이번에 작업한 내용은 각각의 계정을 private으로 변환할 수 있고, private 계정에 팔로우 버튼을 눌렀을때 바로 팔로우가 되는게 아니라 팔로우 요청으로 처리되도록 하는 작업이었음
    • 즉, Follow 액티비티를 받으면, manuallyAcceptsFollowers 옵션이 false인 경우에만 Accept(Follow) 액티비티를 보냄
  • 팔로우 요청 관리하는 화면 바이브코딩으로 적당히 빠르게 만들고..... 팔로우 요청을 수락하거나, 팔로우 요청을 거절하는 액션 자체는 서버 측 비즈니스 로직에서 처리한다기 보다는 가능하면 Federation에서 처리하도록 했음.
    • 즉, 팔로우 요청 수락버튼을 누르면 Accept(Follow) 액티비티가 전송되고, 팔로우 요청 거절 버튼을 누르면 Reject(Follow) 액티비티가 전송되는 방식

로컬 환경에 있는 서로 다른 두 액터끼리는 잘 되는걸 확인했는데, 서로 다른 서버의 액터끼리 잘 되는지는 좀 더 테스트가 필요함.

이번 주말까지는 게시글 작성하고 원격 서버 타임라인에 노출되는 것까지 어떻게 되긴 할 듯.

2

오늘은 다른 파트에서 나온 이상 현상을 보다가 흔한 실수 중 하나인 memcpy(dest, src, strlen(src))를 발견하고 공유했다. 동적 할당 방지를 위해 std::stringstd::format을 못 쓰는 상황도 아쉽고, 프로젝트 초창기에 다양한 helper class(std::array 기반 문자열 등)가 정립이 되지 않아 아쉽다. 그 때는 정말 초짜 신입이었으니, 별 도리가 없기도 했다.

올해 초에 조금이라도 바로잡고자 문자열 조작 로직을 개량해 직접 snprintf를 쓰지 않고 편리하게 문자열을 다룰 수 있도록 변경한 적이 있었다. 꽤 많은 팀원이 그 존재를 익혔지만 수많은 레거시 코드는 앞으로도 태곳적 상태에 머물지 않을까. 슬프기보다는 아쉽다. 근원적인 실수를 줄일 수 있는 기회가 더욱 있었을텐데...

4