간단한 글쓰기 서버로 굴리려고 오랜만에 꺼냈다.
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 973 following · 682 followers
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)
.
Fedify、Hollo、BotKit、そしてこのサイト、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
방금 친구랑 모의면접을 봤는데(내가 면접관), 면접으로 알아낼 수있는게 딱히 있는지에 회의가 생겨버렸다. 아 물론, 내가 초보 면접관이라 면접스킬이 떨어지긴 한다만, 친구 얘기론(면접관 경험이 더 많음) 그래도 무난의 범위엔 든다고 한다. 이력서 기반으로 이것저것 물었는데, 만약에 이력서가 구라로 점철되있으면 그걸 걸러낼순 있었을 것이다. 근데 친구의 이력서는 당연히 그렇지 않았으니, 그냥 이력서가 구라가 아니란 사실 정도만;; 알아낼수 있었다. 이 이상 뭔가 더 꿰뚫어 보는게 가능할까... 하겠지? 그럼 어떻게 하는걸까.
'스킬 이슈에서 스킬 있슈로!' 라는 삼류 국비 학원 광고 문구 같은 말장난이 생각남
2025-09-03 오늘의 #cosmoslide 작업한 내용 메모
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) 액티비티가 전송되는 방식
로컬 환경에 있는 서로 다른 두 액터끼리는 잘 되는걸 확인했는데, 서로 다른 서버의 액터끼리 잘 되는지는 좀 더 테스트가 필요함.
이번 주말까지는 게시글 작성하고 원격 서버 타임라인에 노출되는 것까지 어떻게 되긴 할 듯.
오늘은 다른 파트에서 나온 이상 현상을 보다가 흔한 실수 중 하나인 memcpy(dest, src, strlen(src))를 발견하고 공유했다. 동적 할당 방지를 위해 std::string과 std::format을 못 쓰는 상황도 아쉽고, 프로젝트 초창기에 다양한 helper class(std::array 기반 문자열 등)가 정립이 되지 않아 아쉽다. 그 때는 정말 초짜 신입이었으니, 별 도리가 없기도 했다.
올해 초에 조금이라도 바로잡고자 문자열 조작 로직을 개량해 직접 snprintf를 쓰지 않고 편리하게 문자열을 다룰 수 있도록 변경한 적이 있었다. 꽤 많은 팀원이 그 존재를 익혔지만 수많은 레거시 코드는 앞으로도 태곳적 상태에 머물지 않을까. 슬프기보다는 아쉽다. 근원적인 실수를 줄일 수 있는 기회가 더욱 있었을텐데...
옛날 C++에러 메시지의 수준도 요즘 하는 일에서 발생하는 문제에 비하면 너무 감사한 수준이다.
ActivityPub Academy로 최종 테스트할 때마다 야수의 심장으로 테스트하는중
지난 몇 달간 htmx로 웹 앱을 만들면서 느낀 점은, 골디락스 존의 하위 50% 애플리케이션에만 htmx가 적합하다는 것이다. 클라이언트 상태를 조금이라도 다뤄야 하는 순간이 오면 불행이 시작된다. 하이퍼미디어 시스템의 철학에 동의하는데, 그 구현은 아일랜드 아키텍처의 접근법이 더 나을 수도 있겠다는 생각이 든다. https://deno.com/blog/intro-to-islands
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 문법처럼 매끄럽게 클래스에 포함시킬 수 있는 뭔가가 있었으면 좋겠다.
最近はScalaとかSwiftとかの「割とモダンな言語」が基底型に型消去するみたいなコンパイルテクでゼロオーバーヘッドのラッパー定義できる言語が増えてる気がしているので、別にRustだけではないと思う。
Rustが気軽に定義できるって話なら、そりゃそうだと思うけれど
https://hackers.pub/ap/notes/01990ddf-6e44-769a-995c-6fac70d06920
確かにHaskellにもあるか。使わなさすぎて忘れてた
Fediverseの開発環境、自分は何回か作り直しては崩してをしてるんだけど、現実どうするといいんだろうな
自分の環境の場合 tailscale + ローカルホスト用自前ドメインでローカルに閉じた https 環境を用意出来てるんだけど、この環境、コンテナだとホストのネットワークを使わないと tailscale の ip へ到達できないんだよね
今のところローカル専用の https ドメインはメインマシンに建てた caddy へ流してそこから各アプリケーションに分岐してるんよね
で let's encrypt の証明書は DNS チャレンジでワイルドカード証明書を取ってるんで取得には問題無いんだけど、ローカルのネットワークルーティングをどうするかが非常に悩ましい
Fediverseの開発環境、自分は何回か作り直しては崩してをしてるんだけど、現実どうするといいんだろうな
自分の環境の場合 tailscale + ローカルホスト用自前ドメインでローカルに閉じた https 環境を用意出来てるんだけど、この環境、コンテナだとホストのネットワークを使わないと tailscale の ip へ到達できないんだよね
最近はScalaとかSwiftとかの「割とモダンな言語」が基底型に型消去するみたいなコンパイルテクでゼロオーバーヘッドのラッパー定義できる言語が増えてる気がしているので、別にRustだけではないと思う。
Rustが気軽に定義できるって話なら、そりゃそうだと思うけれど
Value Objectが好きだけどオーバーヘッドが看過できない人向けの言語 → Rustすぎる
1시간 만에 완판! 걱정마세요 아직 대기 신청이 남아있습니다!
디버깅을 하다가 도저히 모르겠어서 Gemini한테 시켜서 해보라고했는데, 걔도 나랑 똑같은 시도를 한다음에 잘 모르겠다고 하니까 덤앤더머같다;;
✨ Hackers' Public 첫 오프라인 모임! ✨
Hackers' Pub 사용자들의 자발적인 모임, Hackers' Public이 📅 9월 14일(일) 오후 3시 ~ 6시 열립니다.
이번 모임에서는 많은 분들이 흥미로워할 두 가지 발표가 준비되어 있습니다:
- 🎨 Code As a Canvas: 코드에서 예술작품이 되기까지
- ✍️ 폰트는 어떻게 만들어지는가 – Neo둥근모 개발 후일담
또한 자유롭게 교류할 수 있는 네트워킹 시간도 마련되어 있으니 많은 관심 부탁드립니다 🙌
현재는 2차 모집 단계이며, 👉 신청은 포스터의 QR코드 또는 http://public.hackers.pub 에서 가능합니다. (두 경로 모두 동일한 이벤트 페이지로 연결됩니다)
2차 모집 기간은 9월 7일까지이며, 완판이 되었더라도 참가자 신청 대기하신 분 중에서 두분 정도 선정할 예정입니다!
洪 民憙 (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 →
洪 民憙 (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 →Want to use C libraries in MoonBit? Now you can😆
With C-FFI, MoonBit can call native C functions — from low-level hardware ops to high-performance math.
A step-by-step guide to MoonBit’s C-FFI:
https://www.moonbitlang.com/pearls/moonbit-cffi
apkit書き直すか
해커스펍 오프라인 밋업 기대하고 있었는데 1차는 매진으로 못 사고 2차 기다리고 있었는데, 정신이 없어서 놓쳤네.. 담번엔 꼭 가봐야지
NeoVim Keybinding 사용 통계 보여주는 쓸만한 플러그인을 찾고 있다. 스스로 돌아보는 데에도 좋을 것 같고 다른 사람과 비교해보면서 유용한 패턴도 배워볼 수 있지 않을까
apmodel 0.4.0
書き直したばかりでまだドキュメント整備してないからもしも使いたいならソースコード見ながら使ってください
https://pypi.org/project/apmodel/0.4.0/
오랜만에 Termfedi 업데이트 Renote/React를 할 수 있게 Action 모드를 추가했다.
洪 民憙 (Hong Minhee) shared the below article:
한국의 eSIM 정책 문제점 분석
푸른곰 @purengom@purengom.com
서론 해외에서는 새 기기를 켜고 액티베이션 마법사만 따라가면 eSIM이 자동으로 이전되는 경험이 보편화되어 있습니다. 반면 한국은 여전히 IMEI/EID 전산 등록과 재다운로드 수수료(2,750원)가 당연한 절차로 남아 있습니다. 저는 이 구조가 보안 명분을 앞세운 과도한 통제이며, 결과적으로 소비자에게 비용과 불편을 전가한다고 판단합니다. 1) 자동 이전이 ‘가능한 […]
Read more →https://keivan.io/the-day-appget-died/
윈도 패키지 매니저 AppGet의 개발자가 WinGet 개발 과정에서 접촉했던 경험을 쓴 글.
MS가 오픈소스 친화적으로 바뀌고 있다고 하지만, 여전히 내부 문화가 매우 관료적이고 사내 정치가 toxic하다고 유명한데, 독립 개발자로서 MS와 컨택하는 일이 어떤 것인지 잘 알려주는 사례라고 봄.
Special thanks 한 줄만 적어줬어도 그가 분노하지는 않았겠지만, 그 한 줄 넣기가 어려운 게 Microsoft겠지.
쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)
컴파일러를 버리려면?? 역시 타입세이프 쿼리를 만들고 싶어...
일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...
쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...
Mastodonの引用ってどういう仕様だっけ
우부콘 코리아 2025에서 **"연합우주(Fediverse)란 무엇인가"**를 주제로 소개하는 세션을 가졌었는데, 그 때 쓰던 발표자료 한번 만들어놓으니까 "연합우주는 이런겁니다" 하고 던져주기 좋은 듯.....
발표자료는 여깄다네요... https://slides.kodingwarrior.dev/fediverse-onboarding-ubucon2025.pdf
포스터 본 사람들이 행사 참여 링크로 들어올 수 있게 QR코드를 넣었는데 너무 꽉찬 느낌이 들더라구요
시간이랑 정보는 어차피 행사 링크 들어가면 볼 수 있으니 빼는게 나을까요?
Parse, don’t validate는 언제 읽어도 좋은 글이다 https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
혹시 번역본이 편한 분은 여기에 번역본이 있습니다.(notJoon님 말고 다른 분들 보시라고 링크 달아 둡니다.)
https://eatchangmyeong.github.io/2022/12/04/parse-don-t-validate.html
@joonnotnotJoon
思い出すとここへ来る。
Parse, don’t validate는 언제 읽어도 좋은 글이다 https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
I just published a blog post on the use of type-level programming in TypeScript. It was originally a section of the larger post I’ve been alluding to but I broke it out and expanded it. It’s much more of an opinion piece than most things I write but I’d like to think I have a few decent insights in there. Please check it out and let me know what you think.
재밋는 빵셔널 하실 분
fp-ts 라는 함수형 라이브러리와 함께 화살표로 맛깔나는 설명을 해주십니다
https://dev.to/gcanti/getting-started-with-fp-ts-setoid-39f3
귀여운 마스코트는 21세기 현대 프로그래밍 언어 및 개발툴의 필수사항이며 그렇지 않은 툴은 귀여운 마스코트를 가진 툴 미만잡이다 반박시 코볼 쓰는 회사 취직함
vtsls 시도해봤다가 yarn pnp에서 go to definition이 망가졌고... 전혀 상관없을 것 같지만 왠지 denols의 go to definition도 망가졌다. 힘든 일요일이다.
Hackers' Public 포스터 완성~ https://public.hackers.pub/
Hackers' Pub web-next 작업하다가 https://hackers.pub/@moreal/2025/debugging-deno-vite-plugin-part-1/ 이슈를 만나서 PR을 올렸다.
deno-vite-plugin 디버깅 1편
이 글은 Deno 런타임 환경에서 SolidStart와 `deno-vite-plugin`을 사용할 때 발생하는 라이브러리 임포트 문제를 해결하는 과정을 담고 있습니다. 특히, `jsr:@fedify/fedify` 라이브러리를 임포트할 때 `deno task build`가 실패하는 상황을 재현하고, 원인을 분석하여 임시 해결책을 제시합니다. 문제의 원인은 `deno info` 명령어가 `kind: asserted`인 모듈을 제대로 처리하지 못하는 데 있었으며, 이를 `esm`으로 취급하도록 수정하여 해결했습니다. 다만, 근본적인 해결책은 아니며, 추가적인 `npm` 관련 에러가 남아있음을 언급합니다. 이 포스팅은 Deno 생태계에서 Vite 플러그인을 사용할 때 발생할 수 있는 문제와 그 해결 과정을 보여주며, 유사한 문제를 겪는 개발자들에게 실질적인 도움을 줄 수 있습니다.
hackers.pub · Hackers' Pub
Link author: Lee Dogeon@moreal@hackers.pub
ㅋ딩워리어 님이 알려준 링크 백업...
- https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/schedule.html
- https://pages.cs.wisc.edu/~remzi/OSTEP/
- https://www.youtube.com/watch?v=vdPALZ-GCfI&list=PLSE8ODhjZXjbj8BMuIrRcacnQh20hmY9g
- https://hpbn.co
- https://codingchallenges.fyi/challenges/challenge-forth/
- https://app.codecrafters.io/courses/redis/overview
거의 반은 내가 기여했네 ㅎㅎ
@fedify/fedify: Custom Collection 디스패처 setter@fedify/cli:webfinger커맨드@fedify/next: 패키지 제작 및 예제 생성@fedify/sveltekit: 패키지 분리, 타입 수정 및 예제 생성@fedify/cfworkers,@fedify/denokv,@fedify/hono: 패키지 분리
The #Fedify monorepo has grown to 16 packages!
We've been working hard to make Fedify more modular and easier to integrate with your favorite tools and platforms. From the core framework to database drivers, from CLI tools to web framework integrations—we've got you covered.
Our packages now include:
- Core framework and CLI tools
- Web framework integrations: Express, Hono, H3, Elysia, NestJS, Next.js, SvelteKit
- Database drivers: PostgreSQL, Redis, SQLite, AMQP/RabbitMQ
- Platform integrations: Cloudflare Workers, Deno KV
- Testing utilities
Each package is available on JSR and/or npm, making it easy to pick exactly what you need for your ActivityPub implementation.
What integration would you like to see next? Let us know!
https://well-typed.com/blog/2025/08/standard-chartered-supports-haskell-ecosystem/
제일은행을 먹은 SC(Standard Chartered)가 하스켈 생태계에 돈을 보태겠다네요. SC가 하스켈을 프로덕트에 조금씩 쓰고 있다는 얘기는 들은 적 있는데... 뭐 얼마나 후원하는지는 자세히는 안나와 있습니다만, 대기업 돈이 들어오면, 긍부정적 변화가 생기긴 하는데.. 툴체인이 정돈된다든지 해서 입문자한테 도움이 되는 변화가 생기면 좋겠습니다. 하스켈을 JS로 트랜스파일링 하는 컴파일러도 있는데, 막상 쓰려고 보면, 난이도가 너무 높아요.
진짜 디자인 하고싶은대로 다 하고 있는데, 누군가가 보다 못해서 "차라리 내가 하고 만다" 하고 자원을 해주지 않을까(?)
@kodingwarriorJaeyeol Lee 요런 디자인은 어떠세용
Zed Industries가 코드 에디터와 코딩 에이전트 사이의 통신을 표준화하기 위해 Agent Client Protocol (ACP)이라는 걸 소개했다. 잘 돼서 Neovim의 AI 통합 생태계가 더욱 풍성해지면 좋겠다. https://agentclientprotocol.com/overview/introduction
튜링의 사과 의자가 너무 좋다. 내 키에 맞게 목받침 높이 조절할 수 있는 의자 난생 처음 본다. 목받침이 뒤통수를 누르는 게 아니라 목을 받쳐주다니(...)











