洪 民憙 (Hong Minhee) :nonbinary:'s avatar

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · 995 following · 1394 followers

An intersectionalist, feminist, and socialist living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in , , , & . They/them.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

Hello, I'm an open source software engineer in my late 30s living in , , and an avid advocate of and the .

I'm the creator of @fedify, an server framework in , @hollo, an ActivityPub-enabled microblogging software for single users, and @botkit, a simple ActivityPub bot framework.

I'm also very interested in East Asian languages (so-called ) and . Feel free to talk to me in , (), or (), or even in Literary Chinese (, )!

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post

安寧(안녕)하세요, 저는 서울에 살고 있는 30() 後半(후반) 오픈 소스 소프트웨어 엔지니어이며, 自由(자유)·오픈 소스 소프트웨어와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)입니다.

저는 TypeScript() ActivityPub 서버 프레임워크인 @fedify 프로젝트와 싱글 유저() ActivityPub 마이크로블로그인 @hollo 프로젝트와 ActivityPub 봇 프레임워크인 @botkit 프로젝트의 製作者(제작자)이기도 합니다.

저는 ()아시아 言語(언어)(이른바 )와 유니코드에도 關心(관심)이 많습니다. 聯合宇宙(연합우주)에서는 國漢文混用體(국한문 혼용체)를 쓰고 있어요! 제게 韓國語(한국어)英語(영어), 日本語(일본어)로 말을 걸어주세요. (아니면, 漢文(한문)으로도!)

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post

こんにちは、私はソウルに住んでいる30代後半のオープンソースソフトウェアエンジニアで、自由・オープンソースソフトウェアとフェディバースの熱烈な支持者です。名前は洪 民憙ホン・ミンヒです。

私はTypeScript用のActivityPubサーバーフレームワークである「@fedify」と、ActivityPubをサポートする1人用マイクロブログである 「@hollo」と、ActivityPubのボットを作成する為のシンプルなフレームワークである「@botkit」の作者でもあります。

私は東アジア言語(いわゆるCJK)とUnicodeにも興味が多いです。日本語、英語、韓国語で話しかけてください。(または、漢文でも!)

:meow_awauu: 요즈미나 🎄's avatar
:meow_awauu: 요즈미나 🎄

@Yozumina@serafuku.moe

나도 해커스펍 계정을 만들어야 되나?

헤카's avatar
헤카

@heka@baram.me

오 티머니애플페이 instagram.com/p/DK8NdbmvhWf/

もちもちずきん🍆's avatar
もちもちずきん🍆

@Yohei_Zuho@mstdn.y-zu.org

Fedify本の売上80冊超えた

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

@nesroch 오, 「用途廢棄(용도폐기)」도 좋은 것 같아요!

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to RanolP's post

@ranolp 네, 저도 여러 代案(대안)을 생각해 봤는데, 말씀하신 「除去(제거) 豫定(예정)」이 가장 直接的(직접적)으로 와닿긴 하네요.

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post

日本語(일본어)에서는 「非推奬(비추장)」이라는 말을 쓴다는데, 韓國語(한국어)에서는 「推奬(추장)」이라는 말을 잘 쓰지 않으니 「非推薦(비추천)乃至(내지)는 「非奬勵(비장려)程度(정도)가 되려나? 듣고 보니 「止揚(지양)」 같은 말로 翻譯(번역)해도 좋을 것 같기도…?

RanolP's avatar
RanolP

@ranolp@hackers.pub · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post

@hongminhee 조금 길지만 제거 예정(예문: Features deprecated / 제거 예정인 기능)이 그럭저럭 쓸만한 번역어인 거 같고요. Gemini를 굴려보니 재밌는 번역어를 몇 제시해주네요.

  • 폐기 예정 / 폐지 예정
  • 비권장 / 지원 중단 예정
  • 구식 / 낡은 / 노후화된 / 대체될
  • 사양길의 / 저물어가는 / 쇠퇴한

다만 여전히 제게는 '제거 예정/제거할'이 가장 와닿네요.

  • This is a deprecated feature / 제거할 기능이야.
  • Have you marked it as deprecated? / 제거 예정이라 적어놨어?
  • Removed recently deprecated features / 최근 제거 예정이었던 기능을 지웠습니다
  • Don't use deprecated features / 제거될 기능은 사용하지 마
洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee) :nonbinary:'s post

日本語(일본어)에서는 「非推奬(비추장)」이라는 말을 쓴다는데, 韓國語(한국어)에서는 「推奬(추장)」이라는 말을 잘 쓰지 않으니 「非推薦(비추천)乃至(내지)는 「非奬勵(비장려)程度(정도)가 되려나? 듣고 보니 「止揚(지양)」 같은 말로 翻譯(번역)해도 좋을 것 같기도…?

tesaguri 🦀🦝's avatar
tesaguri 🦀🦝

@tesaguri@fedibird.com · Reply to tesaguri 🦀🦝's post

稀に"deprecate"などと言いながら非推奨でなく完全に廃止してくる例もあるので、訳し分けがややこしい。旧Twitter APIとか(?)(<twitter.com/XDevelopers/status>)

tesaguri 🦀🦝's avatar
tesaguri 🦀🦝

@tesaguri@fedibird.com

(ハングルが読めないので雑にハンジャの部分だけ見て言及)

tesaguri 🦀🦝's avatar
tesaguri 🦀🦝

@tesaguri@fedibird.com

"deprecation"は日本語なら「非推奨」などと訳すところだろうけど、韓国では確立した訳語がないのか

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

“Deprecation”에 對應(대응)되는 韓國語(한국어) 翻譯語(번역어)定立(정립)必要(필요)가 있다.

https://hackers.pub/@hongminhee/01977192-399f-76c5-9d8c-07051a8a803a

금강토's avatar
금강토

@tokolovesme@seoul.earth

연애상담은 1577-금강금강

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

좀 덥긴 한데 아직 扇風機(선풍기) 틀면 살만하긴 한 듯. 음… 낮 되면 또 다르려나?

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

韓國語(한국어)에 「念頭(염두)하다」라는 動詞(동사)는 없다. 「마음 속」이라는 뜻의 【念頭(염두)】라는 名詞(명사)는 있다. 따라서 「念頭(염두) 두다」라는 表現(표현)은 잘못된 것이다. 풀어보면 「마음 속 해 두다」가 되는데 말이 안 된다. 「念頭(염두) 두다」가 맞는 表現(표현)이다. 풀어보면 「마음 속에 두다」가 되므로 말이 된다.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub · Reply to 洪 民憙 (Hong Minhee)'s post

依存関係ゼロのロギングライブラリLogTapeがバージョン0.12.0をリリースしました!traceログレベルとsyslogシンクが追加されました。リリースノートを日本語で読んでみてください。

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub · Reply to 洪 民憙 (Hong Minhee)'s post

TypeScript 및 JavaScript를 위한 의존성 제로의 로깅 라이브러리인 LogTape이 버전 0.12.0을 릴리스했습니다! 이제 trace 로그 레벨과 syslog 싱크를 지원합니다. 릴리스 노트를 한국어로 읽어보세요.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

LogTape, a zero-dependency logging library, has released version 0.12.0! It now includes trace log level and syslog sink support.



RE: https://hackers.pub/@hongminhee/2025/logtape-0-12

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


LogTape is a zero-dependency logging library for JavaScript and TypeScript that provides a simple yet flexible logging system. It supports multiple JavaScript runtimes (Deno, Node.js, Bun, browsers, and edge functions), features hierarchical categories, structured logging, and offers seamless integration for both applications and libraries.

What's New in 0.12.0

Trace Log Level

LogTape now includes a trace severity level, which sits below debug in the verbosity hierarchy. This addition provides finer-grained control over logging output, particularly useful for detailed execution flow tracking during development and debugging.

  • Added "trace" to the LogLevel union type
  • Added Logger.trace() method for logging trace-level messages
  • The complete severity hierarchy is now: trace < debug < info < warning < error < fatal

Enhanced File Sink Performance

File sinks now support configurable buffering, significantly improving write performance for high-volume logging scenarios.

  • Added bufferSize option (default: 8192 characters) to control write buffering behavior
  • Added flushInterval option (default: 5000ms) for automatic time-based buffer flushing
  • Set bufferSize to 0 for immediate writes without buffering
  • Set flushInterval to 0 to disable time-based flushing
  • Buffer contents are automatically flushed when the sink is disposed

These options are available for both getFileSink() and getRotatingFileSink() functions.

Syslog Support

The new @logtape/syslog package enables sending log messages to syslog servers using the RFC 5424 format.

  • Support for both UDP and TCP protocols
  • All standard RFC 5424 facilities (kern, user, mail, daemon, local07, etc.)
  • Automatic priority calculation based on log levels
  • Structured data support for log record properties
  • Cross-runtime compatibility with Deno, Node.js, and Bun
  • Configurable connection timeouts, custom hostnames, and application names

Logger Method Alias

Added Logger.warning() as an alias for Logger.warn() to ensure consistency with the LogLevel type definition. This change addresses the naming mismatch where the LogLevel union type uses "warning" while the logger method was named warn(), making metaprogramming and dynamic method invocation more straightforward.

Unified Package Releases

Starting with version 0.12.0, all LogTape packages including @logtape/otel, @logtape/sentry, and @logtape/syslog share the same version number and are released together. This ensures compatibility between packages and simplifies version management for users.

Improved Build Infrastructure

LogTape has migrated from dnt to tsdown for npm package bundling. tsdown is a library-focused bundler built on top of Rolldown, a Rust-based bundler that powers the next generation of Vite. Unlike general-purpose bundlers, tsdown is specifically optimized for building TypeScript and JavaScript libraries with minimal configuration. This change brings several benefits:

  • Elimination of bundler warnings in Webpack, Vite, and other build tools
  • Improved compatibility with modern JavaScript toolchains
  • Better tree-shaking support
  • Cleaner package output
  • Faster build times through Rust-based performance optimizations

Migration Guide

Updating to Trace Level

If you have code that relies on debug being the lowest severity level, you may need to update your log level configurations:

// Before
{ lowestLevel: "debug" }  // This was the most verbose setting

// After
{ lowestLevel: "trace" }  // Now includes trace messages

Leveraging Buffer Configuration

To optimize file sink performance in high-throughput scenarios:

getFileSink("app.log", {
  bufferSize: 16384,      // Larger buffer for better performance
  flushInterval: 10_000    // Flush every 10 seconds
})

Installation

LogTape 0.12.0 is available on JSR and npm:

deno add jsr:@logtape/logtape  # Deno
npm  add     @logtape/logtape  # npm
pnpm add     @logtape/logtape  # pnpm
yarn add     @logtape/logtape  # yarn
bun  add     @logtape/logtape  # Bun

For the syslog sink:

deno add jsr:@logtape/syslog  # Deno
npm  add     @logtape/syslog  # npm
pnpm add     @logtape/syslog  # pnpm
yarn add     @logtape/syslog  # yarn
bun  add     @logtape/syslog  # Bun

Acknowledgments

We thank all contributors who helped make this release possible, including those who reported issues, submitted pull requests, and provided feedback.

For the complete list of changes, please refer to the changelog.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


LogTape is a zero-dependency logging library for JavaScript and TypeScript that provides a simple yet flexible logging system. It supports multiple JavaScript runtimes (Deno, Node.js, Bun, browsers, and edge functions), features hierarchical categories, structured logging, and offers seamless integration for both applications and libraries.

What's New in 0.12.0

Trace Log Level

LogTape now includes a trace severity level, which sits below debug in the verbosity hierarchy. This addition provides finer-grained control over logging output, particularly useful for detailed execution flow tracking during development and debugging.

  • Added "trace" to the LogLevel union type
  • Added Logger.trace() method for logging trace-level messages
  • The complete severity hierarchy is now: trace < debug < info < warning < error < fatal

Enhanced File Sink Performance

File sinks now support configurable buffering, significantly improving write performance for high-volume logging scenarios.

  • Added bufferSize option (default: 8192 characters) to control write buffering behavior
  • Added flushInterval option (default: 5000ms) for automatic time-based buffer flushing
  • Set bufferSize to 0 for immediate writes without buffering
  • Set flushInterval to 0 to disable time-based flushing
  • Buffer contents are automatically flushed when the sink is disposed

These options are available for both getFileSink() and getRotatingFileSink() functions.

Syslog Support

The new @logtape/syslog package enables sending log messages to syslog servers using the RFC 5424 format.

  • Support for both UDP and TCP protocols
  • All standard RFC 5424 facilities (kern, user, mail, daemon, local07, etc.)
  • Automatic priority calculation based on log levels
  • Structured data support for log record properties
  • Cross-runtime compatibility with Deno, Node.js, and Bun
  • Configurable connection timeouts, custom hostnames, and application names

Logger Method Alias

Added Logger.warning() as an alias for Logger.warn() to ensure consistency with the LogLevel type definition. This change addresses the naming mismatch where the LogLevel union type uses "warning" while the logger method was named warn(), making metaprogramming and dynamic method invocation more straightforward.

Unified Package Releases

Starting with version 0.12.0, all LogTape packages including @logtape/otel, @logtape/sentry, and @logtape/syslog share the same version number and are released together. This ensures compatibility between packages and simplifies version management for users.

Improved Build Infrastructure

LogTape has migrated from dnt to tsdown for npm package bundling. tsdown is a library-focused bundler built on top of Rolldown, a Rust-based bundler that powers the next generation of Vite. Unlike general-purpose bundlers, tsdown is specifically optimized for building TypeScript and JavaScript libraries with minimal configuration. This change brings several benefits:

  • Elimination of bundler warnings in Webpack, Vite, and other build tools
  • Improved compatibility with modern JavaScript toolchains
  • Better tree-shaking support
  • Cleaner package output
  • Faster build times through Rust-based performance optimizations

Migration Guide

Updating to Trace Level

If you have code that relies on debug being the lowest severity level, you may need to update your log level configurations:

// Before
{ lowestLevel: "debug" }  // This was the most verbose setting

// After
{ lowestLevel: "trace" }  // Now includes trace messages

Leveraging Buffer Configuration

To optimize file sink performance in high-throughput scenarios:

getFileSink("app.log", {
  bufferSize: 16384,      // Larger buffer for better performance
  flushInterval: 10_000    // Flush every 10 seconds
})

Installation

LogTape 0.12.0 is available on JSR and npm:

deno add jsr:@logtape/logtape  # Deno
npm  add     @logtape/logtape  # npm
pnpm add     @logtape/logtape  # pnpm
yarn add     @logtape/logtape  # yarn
bun  add     @logtape/logtape  # Bun

For the syslog sink:

deno add jsr:@logtape/syslog  # Deno
npm  add     @logtape/syslog  # npm
pnpm add     @logtape/syslog  # pnpm
yarn add     @logtape/syslog  # yarn
bun  add     @logtape/syslog  # Bun

Acknowledgments

We thank all contributors who helped make this release possible, including those who reported issues, submitted pull requests, and provided feedback.

For the complete list of changes, please refer to the changelog.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

当たり前かもしれないが、日本では“namespace”を「名前空間」と翻訳するんだな。

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to Chee Aun 🤔's post

@cheeaun Haha, just let me know whenever you come to Korea. I'll show you around!

洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social · Reply to Chee Aun 🤔's post

@cheeaun Are you in Korea now?!

Chee Aun 🤔's avatar
Chee Aun 🤔

@cheeaun@mastodon.social

So cool to see KakaoMap has real time train location on the map 🤩

Screen recording of real time train location on KakaoMap
ALT text detailsScreen recording of real time train location on KakaoMap
skip.tools's avatar
skip.tools

@skiptools@mas.to

Xcode 26's API files have a combined 26,000 lines of diffs, but most is noise. We'll take the meaningful bits, use an LLM to generate stubs, then begin implementing important APIs for ! Of course your Swift will get the updates to Foundation, etc for free

silverpill's avatar
silverpill

@silverpill@mitra.social

Mitra v4.4.0 supports verification of RFC-9421 HTTP signatures. It is known to be compatible with @fedify, but I haven't tested it with Mastodon or Streams yet.
Outgoing requests are still signed according to the draft-cavage. I don't plan to implement double-knocking, but something like FEP-844e could be supported in the future, though this is not urgent.

My implementation of a parser is available in APx library.

@rfc9421 #rfc9421

RE: https://mitra.social/objects/01974018-9b83-c1ec-a109-24a72a579235

Deno's avatar
Deno

@deno_land@fosstodon.org

Deno 2.3.6 is out 🎉
- deno bundle is back!
- new --unstable-node-conditions flag to customize conditional exports
and more 👇

github.com/denoland/deno/relea

Deno's avatar
Deno

@deno_land@fosstodon.org

Spotted on the changelog for Deno Deploy EA...

Playgrounds!

- Create and edit playgrounds
- Multi-file playground support
- Playground templates and settings

docs.deno.com/deploy/early-acc

Linea's avatar
Linea

@linea@hackers.pub

확실히 이전보다 해커스펍 타임라인 속도가 올라갔다. 사람이 늘긴 늘은 거 같아요.

wakest's avatar
wakest

@wakest@app.wafrn.net · Reply to wakest's post

So I remembered that @hongminhee recently added syntax highlighting to https://hackers.pub and had told me that it's done by just adding colors to the HTML markup of the posts so I was curious if it also ingested colors from outside and it DOES: so Hackers's Pub supports Wafrn's silly ass color posts!

A screenshot of hackers pub showing colored text on wafrn inside hackers pub
ALT text detailsA screenshot of hackers pub showing colored text on wafrn inside hackers pub
洪 民憙 (Hong Minhee) :nonbinary:'s avatar
洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

오… 中華圈(중화권)에서는 ハチワレ(하치와레)(가르마)를 小八貓(샤오바마오)라고 부르는구나.

https://g0v.social/@matchfox/114668788660526845

小廢物購買家:海綿寶寶's avatar
小廢物購買家:海綿寶寶

@matchfox@g0v.social

曬一下新入手的娃包。

(這吃飯小八笑得也太樂了!)

← Newer
Older →