Profile img

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

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

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

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

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

1
4
1
0
6
2

설정이나 명세를 튜링완전한 언어로 기술하면 안되지 않나, 튜링완전한 언어는 프로그램을 짤때 써야하지 않나란 의견이 있는데, 난 오히려 반대라고 생각한다.

설정/명세를 기술한 코드는 그걸 평가해서 어떤 값을 한번 구하면 끝이고, 임의의 입력에 대해 종료함을 보장할 필요가 없다. 그리고 그 코드의 실행은 서비스 단에서 이루어지는게 아니고, 서비스를 만들고 운영하는 과정에서 이루어지기 때문에 종료되지 않는것에 대해 훨씬 안전하다.

반대로, 실제로 돌아가는 프로그램(말이 좀 이상하지만 excuse부탁드림)이야말로 튜링완전한 언어로 짜면 안된다. 우리가 튜링완전한 언어로 개발하는 이유는 우리가 만드는 프로그램을 기술하는데 필요한 자유도가 얼만큼인지 모르고 작업해야하기 때문에 그렇다. 종료하지않는 엉터리 코드를 짤 가능성을 받아들이면서도, 당장 뭔가 만들긴해야하니까 그런 선택을 하는 것이다.

즉 튜링완전성은 메타프로그래밍을 할때만 허용되는것이 (적어도 이론적으론) 정당하다고 생각한다.



RE: https://hackers.pub/@bgl/019647a2-cd0c-7311-97ce-95b59e5a0696

4

패스키 쓴 이후 나의 해커펍생 달라졌다-

로그인 자체도 안 풀리고 바로 들어오면 된당 며칠 써보니 매우 편하다

1
4
0
0

@hongminhee洪 民憙 (Hong Minhee) Pulumi 자체는 그냥 인프라용 React같은 거구요. React에 React-DOM이랑 React Native가 있듯이, Pulumi에도 여러 드라이버가 있습니다. 개중에 k8s 드라이버도 있어서 k8s띄운다음에 그위에 TS 코드로 프로비저닝 할수도 있고요. 또 홈서버를 쓰더라도 CDN은 붙이고 싶으실수 있는데 이때 AWS든 CF든 드라이버 깔아서 CDN 붙이면 됩니다. 가장 큰 장점은... 그냥 TS코드로 하다보니 자동완성등 인텔리센스가 최상급이라는 점?

1
0
0

Hackers' Pub은 현재 원격 콘텐츠에 포함된 온갖 이미지를 캐시하지 않고 원격 URL 그대로 서빙하고 있는데, 일부 ActivityPub 구현은 계정 프로필 사진이 바뀌면 기존 프로필 사진을 아예 삭제해 버려서 가끔씩 원격 계정의 프로필 사진이 로딩이 안 되고 깨지는 문제가 발생하고 있다. 음… 귀찮아서 캐시를 안 하고 있었는데 역시 캐시를 하긴 해야 하나?

2
0
1

Hackers' Pub에서는 현재 PostgreSQL 드라이버로 Postgres.js를 쓰고 있는데, 문제는 이 드라이버가 OpenTelemetry 지원하지 않는다… 수동으로라도 계측 코드를 짜려면 훅이 필요한데, 훅 API도 들어올 예정이 없다.

그래서 PostgreSQL 드라이버를 아예 node-postgres로 바꿀까 싶기도 한데, 이미 @fedify/postgres 패키지가 Postgres.js에 의존을 하고 있기 때문에 한 애플리케이션에서 두 종류의 드라이버를 쓰는 꼴이 된다. 음, 아무래도 상관 없으려나?

1
0
2

내가 무슨 쿠버네티스를 쓰고 멀티 AZ 분산을 하고 로드밸런서를 붙이고 수평확장을 하고 매니지드디비를 쓰면 뭐하냐

클라우드프로바이더가 네트워크를 날려먹는데!!!!!!!!!! 아니 그러고도 그걸 감지를 못 해서 내가 티켓을 보낼 때 까지도 모르고 심지어 보낸 직후에도 모르고 몇 번 핑퐁을 해서야 상황파악하고 그 이후로도 해결에 4시간 걸린거 실화냐????????????

1

4일간의 테스트 지원 종료, 파견종료로 고객사를 나오면서, 함께 한 직원과 내돈내산으로 저녁을 먹었다. 파견나와 고생한 직원에 감사와, 고생한 나에 대한 셀프 보상으로 삼겹살 먹음. 😎

내일부터 다시 본사로 출근합니다.

Java (Spring) 프로젝트 끝. 다시 Node (Nest, Next) 프로젝트 시작합니다. 중년의 중소기업 개발자는 어느덧 21년째, 여전히 프로젝트를 먹고 삽니다.

1

`contentMap`タームについては、例えば日本語で1万文字程度の記事を7言語くらいに訳し分けるとして、本当にそれらを全て単一のオブジェクトに突っ込みたいのか? という感想がある

1
1

@hongminhee洪 民憙 (Hong Minhee)

>most server implementations (Mastodon, Misskey, etc.) don't properly handle this content as of April 2025

How multilingual content should be handled, in your opinion? Specification doesn't provide any guidance on that matter.

>I'm considering several approaches:

I'd use (2) as primary representation and (3) as fallback.

(1) is fine too (FEP-e232 links could be used instead of inReplyTo, if top-level posts are preferable).

(4) should be avoided, because such content will be rendered as a long post with no clear boundaries between translations. I don't think <hr> is a good solution, and it's not widely supported (m).

@silverpill

How multilingual content should be handled, in your opinion? Specification doesn't provide any guidance on that matter.

It would be great if the existing implementations have language tabs for multilingual posts!

FEP-e232 links could be used instead of inReplyTo, if top-level posts are preferable

FEP-e232 sounds a good idea! I'm considering that approach too.

(4) should be avoided, because such content will be rendered as a long post with no clear boundaries between translations. I don't think <hr> is a good solution, and it's not widely supported (m).

I'm also considering using <details> as well. I'm not sure how many existing implementations support it though. 🤔

2

가장 선호하는 JetBrains IDE가 AI 시대에 뒤쳐지고 있어서 안타까웠는데 AI assistant 와 Junie 업데이트로 이제 좀 쓸만해진 것 같다.

여전히 부족한 점이 많기는 하다.
Agent는 느리고, 현재 상태에 대한 가시성이 없어 계속 기다려야할지 중단하고 새로운 세션을 열어야 할지에 대한 판단이 안선다.

prompt를 별도 관리할 수 있게 한 점은 훌륭하나 포맷이나 디렉토리를 유저가 선택할 수 있게 했더라면 더욱 유용했을 것이다. 나는 prompt가 다른 에이전트와 공유 가능하길 원한다.

vscode copilot처럼 Claude로부터 mcp 서버 설정을 불러올 수 있다. 하지만 역시 현재 상태 가시성이 없어 제대로 mcp 서버와 인터랙션이 되고 있는지 확인하기 어렵다.

그럼에도 불구하고 Cursor 나 Copilot에 충분히 대항할만한 업데이트라 생각한다. 앞으로를 응원한다!
https://www.jetbrains.com/ko-kr/junie/

1
1

ThreadsのアカウントがMisskey系からの検索がめちゃくちゃ難しいの、もしかしてアカウントのページ(https://www.threads.net/@アカウント)にtype="application/activity+json"なJSONファイルを用意していないから?

例えばこのアカウントだと
https://c.osumiakari.jp/@oageoというページには<link rel="alternate" href="https://c.osumiakari.jp/users/9go1hrsqih" type="application/activity+json">が入っており、https://c.osumiakari.jp/@oageoを貼り付けるだけで外からでも簡単にアカウントの参照が出来るようになっている(はず)

Mastodonとかでも同様なんだけどThreadsには無さそう

Pleromaにも無いんだけど、Pleromaの場合は表示されている
インスタンスのアドレス/user/ユーザー名でよしなに解決されるから問題ない。しかしThreadsにおいてはhttps://threads.net/ap/users/数字なので、解決されなさそう

0
1

어제 출시된 o3가 코딩스타일은 별론데 디버깅을 매우 잘한다고 한다.

위 계정은 HVM 만드는 사람의 것인데, 나는 새 모델이 나올때마다 저 사람이 하는 벤치마크를 체크한다. 사실 구체적으로 뭐하는지는 잘 모르는데,

  1. 충분히 어려운 과제로 테스트한다는 점
  2. 진짜로 자기가 할일을 대체할수 있는지 확인할만큼 밀어붙인다는점
  3. 결과를 세세하게 공유한다는 점

에서 참고할만하다.

5
0

Deno는 console.log()에서 %c 형식 지정자를 통해 간단한 CSS를 사용할 수 있다.

console.log("%cHello World", "color: red");
console.log("%cHello World", "background-color: blue");
console.log("%cHello World", "text-decoration: underline");
console.log("%cHello World", "text-decoration: line-through");
console.log("%cHello World", "font-weight: bold");
console.log("%cHello World", "color: red; font-weight: bold");
console.log("%cHello %cWorld", "color: red", "color: blue");
console.log("%cHello World", "color: #FFC0CB");
console.log("%cHello World", "color: rgb(255, 192, 203)");

위 코드는 아래처럼 출력된다:

Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
4

freelens 빌드 도중 svg로 해당 플랫폼에 맞는 icon을 생성하는 부분에서, sharp 라이브러리를 사용중인데, libvips의존성이 있어서 arm64에선 빌드가 불가능... ㅠㅠ

0

오늘의 오픈소스 기여. Yarn은 참 잘 만든 소트웨어인 것 같다. 엉망진창인 자바스크립트 생태계를 공격적으로 수정해왔다는 점에서 정말 대단한데... 근데 그 생태계가 자정할수록 맞지 않는 부분이 계속 생기는 듯. github.com/toss/yarn-plugin-ca

1

@hongminhee洪 民憙 (Hong Minhee) (4) seems good. It'll be no different than having mixed-language content. E.g. the ruby tags can be extended as such:

```
<ruby lang="ja">日本語<rp>(</rp><rt lang="ko">일본어</rt><rp>)</rp></ruby>
```

But, I think some folks might want to separate them with (1), so that people can subscribe to one account but filter by language ("Change subscribed language" in individual profile pages on Mastodon).

@cheeaunChee Aun 🤔 That ruby annotation approach is interesting! It's a creative solution for inline translations.

I agree though—it's frustrating that despite ActivityPub having built-in support for multilingual content through contentMap, major implementations like Mastodon don't properly display this content. If they did, we wouldn't need these workarounds.

The language filtering feature in Mastodon profiles that you mentioned is useful, but it only works well with separate posts. It's a trade-off between user experience (reading only preferred languages) and maintaining content relationship (keeping translations connected).

I'm thinking of implementing multiple approaches to give our users flexibility while we wait for better contentMap support across the fediverse. The ideal solution would be for more ActivityPub servers to properly implement the multilingual features already in the spec!

1

I've been wrestling with implementing content support in Hackers' Pub, our -powered platform for software engineers.

While ActivityPub theoretically supports multilingual content through the contentMap property, the reality is that most server implementations (Mastodon, Misskey, etc.) don't properly handle this content as of April 2025. This creates a significant challenge for us.

We want our users to share their knowledge in multiple languages, but we need to ensure compatibility with existing ActivityPub servers. I'm considering several approaches:

  1. Creating separate posts for each language with clear language indicators, linking them through inReplyTo relationships (so translations appear as replies to the original post)
  2. Using the primary language in content while storing translations in contentMap
  3. Adding "View in other languages" links at the bottom of each post
  4. Implementing inline language dividers that degrade gracefully on non-supporting servers, for example:
    <div lang="en">
      <h3>English</h3>
      <p>This is the English content…</p>
    </div>
    <hr>
    <div lang="ko">
      <h3>한국어</h3>
      <p>한국어 내용입니다…</p>
    </div>

I'm leaning toward a hybrid approach—showing content in the user's preferred language when possible while providing easy access to other language versions.

Has anyone tackled this problem effectively? I'd love to hear about your experiences or ideas for making multilingual content work well in the fediverse, especially when dealing with server implementations that don't fully support ActivityPub's multilingual features.

12
0
0

소프트웨어 엔지니어를 위한 연합우주 서비스 Hackers' Pub을 알고 계신가요? 저희가 특별히 중요시하는 것은 다른 플랫폼과는 조금 다른 행동 강령입니다.

저희는 현실 세계의 불평등이 온라인 공간에도 그대로 반영된다는 사실을 인식하고 있습니다. 그래서 “모든 사람을 동등하게 대우”한다는 표면적인 중립성이 아닌, 구조적 불평등에 적극적으로 대응하는 자세를 분명히 하고 있습니다. 이러한 접근의 일환으로, 차별적 발언과 차별에 대항하는 발언을 구분합니다. 이를 통해 “차별은 안 된다”는 명목 하에 차별 비판까지 동일시하는 “양비론”의 함정을 피할 수 있다고 생각합니다.

기술 커뮤니티에서 자주 볼 수 있는 문제로는 특정 기술 선택에 대한 비판이나 기술 수준에 따른 계층화가 있습니다. “이것도 모르냐?”는 태도는 학습을 방해할 뿐입니다. 저희는 초보자와 경험자 모두 동등하게 존중받는 환경 조성을 중요시합니다.

또한, 연합우주의 핵심 가치로 프라이버시가 있지만, Hackers' Pub에서는 특히 익명성의 권리를 강조합니다. 타인의 신원을 특정하려는 행위나 익명이라는 이유로 차별하는 것을 금지함으로써, 안심하고 참여할 수 있는 공간을 지향합니다.

이러한 행동 강령 자체도 완벽하지 않으며, 커뮤니티와 함께 발전해 나가는 것이라고 생각합니다. 모든 구성원이 개선안을 제안할 수 있는 체계를 마련함으로써, 더 나은 환경을 함께 만들어 나가고자 합니다.

자세한 내용은 Hackers' Pub 행동 강령을 참조해 주세요. 연합우주에서 더 건강한 기술 커뮤니티를 함께 키워나가지 않으실래요?

ソフトウェアエンジニア向けのフェディバースサービスHackers' Pubをご存知でしょうか?私たちが特に大切にしているのは、他のプラットフォームとは少し異なる行動規範です。

私たちは現実社会の不平等がオンライン空間にも反映されることを認識しています。そのため、「すべての人を同じように扱う」という表面的な中立性ではなく、構造的不平等に積極的に対応する姿勢を明確にしています。このアプローチの一環として、差別的発言と差別に対抗する発言を区別しています。これにより、差別への批判まで同列に扱ってしまう「両極端主義」の落とし穴を避けられると考えています。

技術コミュニティでよく見られる問題として、特定の技術選択への批判や技術レベルによる階層化があります。「これも知らないの?」という態度は学びを阻害するだけです。私たちは初心者も経験者も同じく尊重される環境づくりを重視しています。

また、フェディバースの核心的価値としてプライバシーがありますが、Hackers' Pubでは特に匿名性の権利を強調しています。他者の素性を特定しようとする行為や、匿名であることを理由とした差別を禁止することで、安心して参加できる場を目指しています。

こうした行動規範自体も完璧ではなく、コミュニティとともに進化するものだと考えています。すべてのメンバーが改善案を提案できる仕組みを整えることで、より良い環境を共に創っていきたいと思います。

詳細はHackers' Pubの行動規範をご覧ください。フェディバースでより健全な技術コミュニティを一緒に育てていきませんか?

※Hackers' Pubは現在招待制となっています。ご興味のある方はコメントや私(@hongminhee洪 民憙 (Hong Minhee))へのDMでメールアドレスをお知らせください。

3

소프트웨어 엔지니어를 위한 연합우주 서비스 Hackers' Pub을 알고 계신가요? 저희가 특별히 중요시하는 것은 다른 플랫폼과는 조금 다른 행동 강령입니다.

저희는 현실 세계의 불평등이 온라인 공간에도 그대로 반영된다는 사실을 인식하고 있습니다. 그래서 “모든 사람을 동등하게 대우”한다는 표면적인 중립성이 아닌, 구조적 불평등에 적극적으로 대응하는 자세를 분명히 하고 있습니다. 이러한 접근의 일환으로, 차별적 발언과 차별에 대항하는 발언을 구분합니다. 이를 통해 “차별은 안 된다”는 명목 하에 차별 비판까지 동일시하는 “양비론”의 함정을 피할 수 있다고 생각합니다.

기술 커뮤니티에서 자주 볼 수 있는 문제로는 특정 기술 선택에 대한 비판이나 기술 수준에 따른 계층화가 있습니다. “이것도 모르냐?”는 태도는 학습을 방해할 뿐입니다. 저희는 초보자와 경험자 모두 동등하게 존중받는 환경 조성을 중요시합니다.

또한, 연합우주의 핵심 가치로 프라이버시가 있지만, Hackers' Pub에서는 특히 익명성의 권리를 강조합니다. 타인의 신원을 특정하려는 행위나 익명이라는 이유로 차별하는 것을 금지함으로써, 안심하고 참여할 수 있는 공간을 지향합니다.

이러한 행동 강령 자체도 완벽하지 않으며, 커뮤니티와 함께 발전해 나가는 것이라고 생각합니다. 모든 구성원이 개선안을 제안할 수 있는 체계를 마련함으로써, 더 나은 환경을 함께 만들어 나가고자 합니다.

자세한 내용은 Hackers' Pub 행동 강령을 참조해 주세요. 연합우주에서 더 건강한 기술 커뮤니티를 함께 키워나가지 않으실래요?

11
0
0

JetBrains IDE도 AI 적용 : 코딩 에이전트, 똑똑한 보조, 무료 티어 포함
------------------------------
- JetBrains는 *AI Assistant와 코딩 에이전트 Junie* 를 포함한 모든 AI 도구를 *하나의 구독 시스템* 에 통합하고 *무료 요금제(AI Free tier)* 를 제공함
- Junie는 *Anthropic Claude, OpenAI 모델 기반의 강력한 AI 코딩 파트너* 로, JetBrains IDE 사용자 모두에게 공개됨
- 새롭게 개선된 AI Assistant는…
------------------------------
https://news.hada.io/topic?id=20377&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0
2
5
3

reflex-frp 등 FRP 라이브러리들을 쓰면서 배운점은, fire-and-forget이 유용한 패턴이고 많은 코드를 fire-and-forget 방식으로 짤수있음에도 우리는 평소에 그걸 포착하지 못하고 fire-and-remember(but don't use after?) 방식으로 짜고 있다는 것이다. 그리고 더 중요한건, fire-and-forget를 primitive로 삼기에는 fire-and-forget이 안 통하는 순간에 곤란한 점이 많다는 것이다. 그래서 actor 'framework'란 접근에 대해서는 흐린눈을 하고 보게된다.

7