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

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

4
9
5
1
1
6
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
2
1
1
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
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
3
1

지난 몇 달간 htmx로 웹 앱을 만들면서 느낀 점은, 골디락스 존의 하위 50% 애플리케이션에만 htmx가 적합하다는 것이다. 클라이언트 상태를 조금이라도 다뤄야 하는 순간이 오면 불행이 시작된다. 하이퍼미디어 시스템의 철학에 동의하는데, 그 구현은 아일랜드 아키텍처의 접근법이 더 나을 수도 있겠다는 생각이 든다. deno.com/blog/intro-to-islands

웹사이트 유형별로 자바스크립트 사용 필요성을 스펙트럼으로 표현한 차트. 수평 막대 다이어그램으로 웹사이트에서 자바스크립트(JS)의 필요 정도를 나타냄. 왼쪽 빨간색 구역은 ‘i don’t need no stinkin’ JS’로, 블로그와 코드 스니펫이 포함된 문서를 예시로 듦. 가운데 넓은 녹색 구역은 ‘Goldilocks JS’로, 마케팅 사이트, 전자상거래 사이트, 인터랙티브 SaaS를 포함. 오른쪽 파란색 구역은 ’JS me up!’으로, 소셜 미디어 사이트를 예시로 듦.
4

https://www.typescriptlang.org/docs/handbook/mixins.html

Typescript에 Mixin 기능은 있는데, 정작 내가 원하는 형태로 지원하는 기능이 아니다. 내가 원하는건 그냥 dart 마냥 클래스의 메서드를 확장하는 것 그 이상 그 이하도 아닌데.... 흑흑...

Dart의 경우


mixin Dog {
  void walk() { ... }
}

mixin Fish {
  void swim() { ... }
}

mixin Bird {
  void fly() { ... }
}

class Animal with Dog, Fish, Bird {
   ...
}

main() {
  final animal = Animal();
  animal.fly();
  animal.swim();
  animal.walk();
}

이런 느낌의 코드를 짜는게 가능하다.

Typescript도 유틸리티성 함수를 묶어서 mixin 문법처럼 매끄럽게 클래스에 포함시킬 수 있는 뭔가가 있었으면 좋겠다.

2

最近はScalaとかSwiftとかの「割とモダンな言語」が基底型に型消去するみたいなコンパイルテクでゼロオーバーヘッドのラッパー定義できる言語が増えてる気がしているので、別にRustだけではないと思う。
Rustが気軽に定義できるって話なら、そりゃそうだと思うけれど

1

Fediverseの開発環境、自分は何回か作り直しては崩してをしてるんだけど、現実どうするといいんだろうな

自分の環境の場合 tailscale + ローカルホスト用自前ドメインでローカルに閉じた https 環境を用意出来てるんだけど、この環境、コンテナだとホストのネットワークを使わないと tailscale の ip へ到達できないんだよね

今のところローカル専用の https ドメインはメインマシンに建てた caddy へ流してそこから各アプリケーションに分岐してるんよね

で let's encrypt の証明書は DNS チャレンジでワイルドカード証明書を取ってるんで取得には問題無いんだけど、ローカルのネットワークルーティングをどうするかが非常に悩ましい

0

Fediverseの開発環境、自分は何回か作り直しては崩してをしてるんだけど、現実どうするといいんだろうな

自分の環境の場合 tailscale + ローカルホスト用自前ドメインでローカルに閉じた https 環境を用意出来てるんだけど、この環境、コンテナだとホストのネットワークを使わないと tailscale の ip へ到達できないんだよね

0

最近はScalaとかSwiftとかの「割とモダンな言語」が基底型に型消去するみたいなコンパイルテクでゼロオーバーヘッドのラッパー定義できる言語が増えてる気がしているので、別にRustだけではないと思う。
Rustが気軽に定義できるって話なら、そりゃそうだと思うけれど

0
0
4
5

✨ Hackers' Public 첫 오프라인 모임! ✨

Hackers' Pub 사용자들의 자발적인 모임, Hackers' Public이 📅 9월 14일(일) 오후 3시 ~ 6시 열립니다.

이번 모임에서는 많은 분들이 흥미로워할 두 가지 발표가 준비되어 있습니다:

  • 🎨 Code As a Canvas: 코드에서 예술작품이 되기까지
  • ✍️ 폰트는 어떻게 만들어지는가 – Neo둥근모 개발 후일담

또한 자유롭게 교류할 수 있는 네트워킹 시간도 마련되어 있으니 많은 관심 부탁드립니다 🙌

현재는 2차 모집 단계이며, 👉 신청은 포스터의 QR코드 또는 http://public.hackers.pub 에서 가능합니다. (두 경로 모두 동일한 이벤트 페이지로 연결됩니다)

2차 모집 기간은 9월 7일까지이며, 완판이 되었더라도 참가자 신청 대기하신 분 중에서 두분 정도 선정할 예정입니다!

Hackers Public 1회차 모임 포스터
6

洪 民憙 (Hong Minhee) shared the below article:

Fediverse Auxiliary Service Providers(FASP)の詳細解説

のえる @noellabo@hackers.pub

この記事では、Fediverseの課題を解決し、機能拡張を目指す新しいアーキテクチャ、Fediverse Auxiliary Service Providers(FASP)について解説します。FASPは、分散型ネットワークにおける検索・発見の限界や、セキュリティ・モデレーションの課題に対処するために開発されており、アカウント検索、コンテンツ検索、スパム検出などの機能を提供します。Mastodon gGmbHが主導し、NGI Searchプログラムからの資金提供を受けて開発が進められています。2025年にかけて基本仕様の公開、実装、テストが行われ、最終的にはFediverseエコシステム全体への拡大を目指しています。FASPは、Fediverseの可能性を大きく拡張する重要なプロジェクトであり、今後の進展が期待されます。

Read more →
7

洪 民憙 (Hong Minhee) shared the below article:

Fediverse Auxiliary Service Providers(FASP)とは?

のえる @noellabo@hackers.pub

Fediverse Auxiliary Service Providers(FASP)は、分散型SNSであるFediverseの課題を解決するための「助っ人サービス」です。情報の探しにくさや小規模サーバーの不利といった問題を、検索サービス、スパム対策、トレンド表示といった機能で解消します。サーバー管理者はFASPを登録するだけで、高度な機能を外部サービスとして利用でき、ユーザーはどのサーバーにいても便利な機能を使えるようになります。Mastodonの最新バージョンで試験的な機能も登場しており、今後はスマホアプリなどからも利用可能になる予定です。FASPは、Fediverseをより便利で使いやすいSNSへと進化させる鍵となります。

Read more →
8
1
1