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

LogTape 0.10.0 Released

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

LogTape 0.10.0 is now available, bringing enhancements to security, flexibility, and usability for this zero-dependency JavaScript logging library. A key addition is the @logtape/redaction package, which helps protect sensitive information using pattern-based and field-based redaction techniques. This package includes built-in patterns for common sensitive data types like credit card numbers and JWTs. The update also introduces improvements to timestamp formatting, allowing users to omit timestamps from formatted messages, and a lazy file sink option to improve resource utilization. Additionally, the configure() function now detects and prevents duplicate logger configurations. Thanks to external contributions, LogTape 0.10.0 offers more control over log output and improved resource management. Upgrade to this version to leverage these new features and improvements, enhancing your logging capabilities.

Read more →
3

안녕하세요, 여러분.

해커스펍에 들어온 시점 전후로 건강에 문제가 생겨 이제야 hello world 메시지를 남기네요. 초대해주신 @hongminhee洪 民憙 (Hong Minhee) 님 고맙습니다.

애호하고 선호하는 프로그래밍 언어는 Python이고 Back-end 직군이 본진이지만, 그때 그때 엔지니어링에 필요한 직군에서 필요한 도구를 써서 개발해요. 현재는(2025년 5월 기준) 프리랜서로 일하고 있습니다.

개발 외엔 글쓰기, 글짓기를 좋아해서 글로 먹고 살 방법도 모색하고 있어요.

잘 부탁드리며, 또 뵈어요.

1

안녕하세요, 여러분.

해커스펍에 들어온 시점 전후로 건강에 문제가 생겨 이제야 hello world 메시지를 남기네요. 초대해주신 @hongminhee洪 民憙 (Hong Minhee) 님 고맙습니다.

애호하고 선호하는 프로그래밍 언어는 Python이고 Back-end 직군이 본진이지만, 그때 그때 엔지니어링에 필요한 직군에서 필요한 도구를 써서 개발해요. 현재는(2025년 5월 기준) 프리랜서로 일하고 있습니다.

개발 외엔 글쓰기, 글짓기를 좋아해서 글로 먹고 살 방법도 모색하고 있어요.

잘 부탁드리며, 또 뵈어요.

8
0

I implemented data redaction for today. The feature will be available through a dedicated package called @logtape/redaction (JSR & npm). It provides two complementary approaches to protect sensitive information in your logs:

  1. Pattern-based redaction: Uses regex patterns to identify and mask sensitive data in formatted log output
  2. Field-based redaction: Redacts properties by field names in structured log data

Looking forward to releasing this with LogTape 0.10.0 soon!

0
0

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

FEP-82f6: Actor statuses

Gregory @grishka@socialhub.activitypub.rocks

This proposal describes an ActivityPub extension to allow actors to publish a short status text, with optional expiration, link attachment, and history.

Some centralized communication services provide their users with the ability to set a status on their account, which is usually displayed on their profile and sometimes next to their name in other places in the UI. These are distinct from regular posts because they can not be interacted with in any way whatsoever, can't contain media attachments, and usually have a short character limit on the order of several hundred characters at most. Statuses are always visible to anyone who can see the actor itself.

https://codeberg.org/fediverse/fep/src/branch/main/fep/82f6/fep-82f6.md

Read more →
3

‘그냥 tryAny 쓰면 예외는 다 잡을 수 있는 거 아닌가? 왜 ResourceT를 써야 하지?’라고 생각했는데 찾아보니 tryAny로는 비동기 예외를 잡을 수 없다고 한다.

writeGreetingSafeAttempt :: IO ()
writeGreetingSafeAttempt = do
  dir <- getDataDir
  h <- IO.openFile (dir </> "greeting.txt") WriteMode
  _ <- tryAny do
    IO.hPutStrLn h "hello"
    IO.hPutStrLn h "world"
  IO.hClose h
4
2

Why LogTape Should Be Your Go-To Logging Library for JavaScript/TypeScript

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

LogTape is a modern JavaScript and TypeScript logging library distinguished by its simplicity, flexibility, and broad runtime compatibility. One of its key advantages is its zero-dependency footprint, which reduces bundle size and enhances stability, making it ideal for both applications and libraries. LogTape supports multiple JavaScript runtimes, including Node.js, Deno, Bun, web browsers, and edge functions, ensuring consistent logging across different environments. Its hierarchical category system allows for fine-grained control and targeted filtering of logs, while structured logging enables improved searchability and data analysis. The library also offers simple extension mechanisms for creating custom sinks and filters with minimal boilerplate. Designed with library authors in mind, LogTape allows libraries to provide logging output without imposing specific configurations on users. With features like explicit and implicit contexts, LogTape facilitates richer logging by adding consistent properties across multiple log messages, making it easier to trace requests through a system. This post highlights LogTape's unique combination of features that address real-world development challenges, making it a valuable tool for any JavaScript or TypeScript project.

Read more →
6

@hongminhee洪 民憙 (Hong Minhee) 영롱합니다! 만족중이시라니 KN03BT TKL 도 뽐뿌가 오네요! 앱코 무접점중에서 결정하기는 할 것 같습니다만.. 앞으로 또 몇년 쓸 거 생각하니 고민에 고민을 거듭하게 되네요. (그러고보니 무접점 시리즈는 Hacker 라는 표기가 붙어 있었는데 언젠가부터 사라졌네요.. 😂)

1

나의 키보드 변천사

2009년 이전까진 잘 기억나지 않고,

  • 2009 애플 텐키리스 무선 키보드 (2세대) - 맥용이지만 윈도에서도 autohotkey 써서 키 커스텀해서 잘 썼다.
  • 2013 HHKB Pro 2 - 이후 모든 키보드 설정에서 caps lock 을 ctrl 로 커스텀해서 쓰고 있다
  • 2018 ABKO HACKER K945P 텐키리스 무접점 (집에서는 ABKO HACKER K995P V3) - 회사에서 지급받아 써보고 만족도가 높아서 HHKB 를 정리하고 앱코 무접점만 쓰고 있다.

마침 업무용 키보드 기판이 살짝 금이 가기도 해서 (쓰는데 아무 문제없지만) 키보드를 바꾸고 싶은 뽐뿌가 슬금슬금 올라온다.

앱코 무접점 키보드의 만족도가 높아서, 그 시리즈 중에 살 것 같다.

후보군 KN30 BT, KN35 BT, AKN10BT, LKN84 BT

1
8

@hongminhee洪 民憙 (Hong Minhee) 블로그 글 쓰신걸 읽다가 요런 아이디어를 봣는데.

좀더 나아가자면, 모듈 인터페이스는 구현체의 다양한 관점의 효과성이나 효율성, 기능성 등에 대해서도 매개변수를 선언할 수 있고, 임포트 시에는 특정 매개변수를 기준으로 선호하는 구현체가 적절히 선택되도록 할 수 있을지도 모른다.

이걸 모듈 레벨의 파이널 인코딩이라고 해야하나, 이 부분을 어떻게든 좀더 잘 만들려고 욕심내다보면 엄청 어려운 문제가 되는거 같아요.

1
1

프론트엔드 개발을 한 6년정도 하면서 생긴 아직 풀리지 않은 의문으로, 템플릿과 공식 문서에선 그렇게 세련되고 예쁜 컴포넌트들이 왜 import해서 내 프로젝트에서 쓰면 개촌스럽고 못생겨지냐는 것이 있다.

5

Mastodon에서 여태까지 Webpack을 쓰고 있었는데 드디어 Vite로 넘어갔다고. 지난 주였나 테스트 때문에 Mastodon 설치할 일이 있었는데 RAM 4 GB짜리 VPS에서 Webpack 돌다가 얼어버렸던 경험이 있다. 그 때는 “이야, 아직 Webpack을 쓰네” 하며 RAM 8 GB로 올려서 어떻게 해결은 했지만, 황당하긴 했다.

3
0
2
5

Good news! We've officially added support to the roadmap. We've created a detailed issue to track our implementation plan: https://github.com/fedify-dev/fedify/issues/233.

The effort will be tackled in phases, including compatibility assessment, core adaptations for Workers' environment, KV store and message queue implementations, and finally integration with Cloudflare's ecosystem. This will be a substantial project that we'll break down into several sub-issues.

If you're interested in contributing to any specific aspect of Workers support, please comment on the main issue to coordinate efforts.

0
4
1
2
5
4
4

이번주내내 인프라 구축에 몰두했는데 개발보다 더 재밌다. AWS 세팅 끝내고, Cloudflare 에 R2 구성하고, 업로드 샘플이랑 캐시퍼지하는 삭제샘플도 만들고 Grafana, Prometheus 로 모니터링 구축하고 Jenkins 에 CI/CD 세팅했다. (입사 초기에 사내 서버에 세팅한 것들을 클라우드로 옮겼다.) 나름의 보안정책들을 수립해가는 것도 묘미. (라고 해봐야 주요 접근 포인트는 죄다 사내망에서만 접근하게 하는 정도지만) 나머지 uptime kuma 올리고, 슬랙 경고 알림정도까지만 작업해 놓으면 당분간 또 만질 일 없겠지만, 그냥 개발 안하고 이런 것들만 했으면 좋겠단 생각도 들었다.

1

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

데이터 효율성으로 본 AI와 인간의 비교

bgl gwyng @bgl@hackers.pub

이 글은 AI와 인간의 능력 비교에서 데이터 효율성의 중요성을 강조하며 시작합니다. 현재 AI는 인간에 비해 데이터 효율성이 떨어지지만, 일단 학습된 능력은 복제 가능하다는 점을 지적하며 콜센터 직원과 같은 직업군에 대한 위협은 여전하다고 설명합니다. 데이터 효율성이 중요한 경영인과 연구자는 AI를 유용한 도구로 활용할 수 있지만, 인간의 데이터 효율성이 정말 높은지에 대한 의문을 제기합니다. Yann Lecun의 주장을 인용하여 인간이 받아들이는 데이터 양이 AI 학습에 쓰이는 양보다 적지 않음을 언급하며, 인간은 데이터를 있는 그대로 학습하지 않고 편향에 기반하여 학습한다는 흥미로운 주장을 제시합니다. 마지막으로, AI에게 인간처럼 무모한 결론을 내리도록 가르치는 것이 옳은지에 대한 질문을 던지며, 압도적인 양의 데이터를 통해 더 많은 진실을 알아낼 수 있는지에 대한 고민으로 마무리합니다. 이 글은 AI 개발 방향에 대한 새로운 시각을 제시하며 독자에게 깊은 생각거리를 제공합니다.

Read more →
8
3
7
1
1
1

구글이 AlphaEvolve란걸 내놨는데, AI로 새로운 알고리즘을 찾아내서 구글 인프라에 적용시켰다고 한다.

논문을 보니 Gemini 2.0 기반으로 했다는데, 몇번 채팅으로 시험해봤을때 인상적이지 않았던 2.0으로도 이런 결과를 낼수 있다는게 놀랍다. 새로 나온 훨씬 똑똑한 2.5로 하면 어떤 결과가 나올까?

AI의 재귀적 자기 개선이 먼 미래의 일이었던 과거에는, 이런식의 자기 개선 시작되면 그땐 정말로 게임오버일거라고 생각했었다. 아마 나말고도 많은 사람이 그랬을 것이다. 근데 막상 자기 개선이 시작되고나니 이 속도를 어떻게 평가해야할지 모르겠다. 사실 구글이 AI를 통해 인프라를 개선한게 이번이 처음은 아니고 한 3년전부터 있던일이다. 지금 이게 얼마나 빠른거야?

6

FEPs, SLEPs, APEs, AIPs, PEEPs, CEPs, SKIPs, SPECs, TIPs, CFEPs, NEPs, JEPs, BIPs, DEPs, DEPs, KEPs, JEPs, WEPs, IPEPs...

A lot of projects name proposals after PEPs rather than RFCs.

What are they? Where did PEPs come from? Here's @fluflThe FLUFL on the origin!

hugovk.dev/blog/2025/peps-and-

2
4

@hongminhee洪 民憙 (Hong Minhee) Thanks! I've used Lambda / DynamoDB / serverless for many years (and written a few things about them), so that part is easy for me. But the ActivityPub side is where I need to learn. Do you have a preferred “introduction to ActivityPub” tutorial that you recommend? I'm most interested at the moment in the architecture and what the interface requirements are. By default I'll just start with reading the W3C specs.

@mikebrobertsMike Roberts While the W3C specs exist as a reference, I wouldn't recommend starting there—they're underspecified and don't provide enough practical guidance for implementation.

Instead, I'd suggest these more practical resources:

  1. Fedify's Creating your own federated microblog tutorial:

    • Provides a hands-on, step-by-step implementation
    • Covers both the theory and practice in an accessible way
    • Shows how to handle common ActivityPub patterns
  2. For a better conceptual overview:

  3. The SocialHub forum has many discussions about implementation practices and challenges faced by developers.

  4. The FEP (Fediverse Enhancement Proposals) process documents community-developed extensions and conventions that go beyond the official spec.

The biggest challenge with ActivityPub isn't understanding the core concepts, but navigating all the de facto standards and practices that have evolved beyond the specs. Starting with practical tutorials rather than specs will give you a much clearer path forward.

0
1

유려한 transition animation을 정확하게 구현하려면, transition 후의 레이아웃을 미리 계산해야하는데 이를 위해 일종의 offscreen dry rendering을 해야한다. 실제로 web의 animation 라이브러리 중에 임시로 DOM 트리 만들어서 offsetX같은거 읽는 방식이 있는걸로 안다. 근데 이런 동작을 브라우저 렌더링 엔진이 효율적으로 처리하고 있는지 모르겠다. 혹시 web이 아닌 UI 라이브러리 중에 layout에 대한 primitive를 사용자에게 잘 노출시켜놓은 예시가 있을까?

2