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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,114 following1,902 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 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

Pinned

@hongminhee@hollo.social

Hello! I'm Hong Minhee (洪 民憙), an open source software engineer in my late 30s, living in Seoul, Korea. I'm bisexual and non-binary (they/them), and an enthusiastic advocate of free/open source software and the fediverse.

I work full-time on @fedify, an ActivityPub server framework in TypeScript, funded by @sovtechfund. I'm also the creator of @hollo, a single-user ActivityPub microblog; @botkit, an ActivityPub bot framework; Hackers' Pub, a fediverse platform for software developers; and LogTape, a logging library for JavaScript and TypeScript.

I have a long interest in East Asian languages (CJK) and Unicode. I post mostly in English here, though occasionally in Japanese or in mixed-script Korean (國漢文混用體), a traditional writing style that interleaves Chinese characters with the native Korean alphabet. Wanting to write in that style was actually one of the reasons I joined the fediverse. Feel free to talk to me in English, Korean, Japanese, or even Literary Chinese!

en.wikipedia.org

Korean mixed script - Wikipedia

Pinned

はじめまして!ソウル在住の30代後半のオープンソースソフトウェアエンジニア、洪 民憙ホン・ミンヒと申します。バイセクシュアル(bisexual)・ノンバイナリー(non-binary)で、自由・オープンソースソフトウェア(F/OSS)とフェディバース(fediverse)の熱烈な支持者です。

STF(@sovtechfund)の支援を受け、TypeScript用ActivityPubサーバーフレームワーク「@fedify」の開発に専念しています。他にも、おひとり様向けのActivityPubマイクロブログ「@hollo」、ActivityPubボットフレームワーク「@botkit」、ソフトウェア開発者向けフェディバースプラットフォームHackers' Pub、JavaScript・TypeScript用ロギングライブラリLogTapeなどの制作者でもあります。

東アジア言語(いわゆるCJK)とUnicodeにも興味があります。このアカウントでは主に英語で投稿していますが、時々日本語や国漢文混用体(漢字ハングル混じり文)の韓国語でも書いています。実はこの文体で書きたくてフェディバースを始めた、という経緯もあります。日本語、英語、韓国語、漢文でも気軽に話しかけてください!

speakerdeck.com

国漢文混用体からHolloまで

本発表では、韓国語の「国漢文混用体」(漢字ハングル混じり文)を自分のフェディバース投稿に実装したいという小さな目標から始まった旅路を共有します。 この目標を達成するために、ActivityPubのJSON-LDの複雑さやHTTP Signatures、WebFingerなどの仕様を理解する必要性に…

Pinned

安寧(안녕)하세요! 저는 서울에 살고 있는 30() 後半(후반)의 오픈 소스 소프트웨어 엔지니어 洪民憙(홍민희)입니다. 兩性愛者(양성애자)(bisexual)이자 논바이너리(non-binary)이며, 自由(자유)·오픈 소스 소프트웨어(F/OSS)와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)이기도 합니다.

STF(@sovtechfund)의 支援(지원)을 받아 TypeScript() ActivityPub 서버 프레임워크 @fedify 開發(개발)專業(전업)으로 ()하고 있습니다. 그 ()에도 싱글 유저() ActivityPub 마이크로블로그 @hollo, ActivityPub 봇 프레임워크 @botkit, 소프트웨어 開發者(개발자)를 위한 聯合宇宙(연합우주) 플랫폼 Hackers' Pub, JavaScript·TypeScript() 로깅 라이브러리 LogTape ()製作者(제작자)이기도 합니다.

()아시아 言語(언어)(이른바 CJK)와 Unicode에도 關心(관심)이 많습니다. 이 計定(계정)에서는 ()英語(영어)로 포스팅하지만, 때때로 日本語(일본어)國漢文混用體(국한문 혼용체) 韓國語(한국어)로도 씁니다. 聯合宇宙(연합우주)에 오게 된 動機(동기) () 하나가 바로 國漢文混用體(국한문 혼용체)로 글을 쓰고 싶었기 때문이기도 하고요. 韓國語(한국어), 英語(영어), 日本語(일본어), 아니면 漢文(한문)으로도 말을 걸어주세요!

logtape.org

LogTape

Unobtrusive logging library with zero dependencies—library-first design for Deno, Node.js, Bun, browsers, and edge functions

@hongminhee@hollo.social
@hongminhee@hollo.social

Hollo에 벡터 임베딩으로 意味論的(의미론적) 檢索(검색)(semantic search)을 具顯(구현)해보고 싶긴 한데, pgvector가 PostgreSQL 內藏(내장) 技能(기능)이 아니라서 苦悶(고민)이다. 이미 PostgreSQL 最新(최신) 버전에 依存(의존)하는데 pgvector까지 設置(설치)하라고 하면 좀 힘들 것 같아서…

github.com

GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres

Open-source vector similarity search for Postgres. Contribute to pgvector/pgvector development by creating an account on GitHub.

@AmaseCocoa@mi.amase.cc

そういえばHolloも動かしてるのにメモリ使用量が前よりも0.5GB少ないんだけど​:ablobcatpnd_runaway:

@hongminhee@hollo.social · Reply to Emelia 👸🏻

@thisismissem @by_caballero @cocoa_vrc Here's the translation:

According to Section 4 (“Definition”) of RFC 7565, which defines the acct URI scheme:

If an application needs to compare two 'acct' URIs (e.g., for purposes of authentication and authorization), it MUST do so using case normalization and percent-encoding normalization as specified in Sections 6.2.2.1 and 6.2.2.2 of RFC 3986.

This leads us to examine Section 6.2.2.1 (“Case Normalization”) of RFC 3986, which states (the emphasis is mine):

When a URI uses components of the generic syntax, the component syntax equivalence rules always apply; namely, that the scheme and host are case-insensitive and therefore should be normalized to lowercase. For example, the URI HTTP://www.EXAMPLE.com/ is equivalent to http://www.example.com/. The other generic syntax components are assumed to be case-sensitive unless specifically defined otherwise by the scheme.

Therefore:

  1. For acct: URIs:

    • The scheme part (acct:) is case-insensitive
    • The host part (after @) is case-insensitive
    • The userpart (before @) is case-sensitive, as RFC 7565 does not specify otherwise
  2. This means that:

    • acct:FOO@example.com and acct:foo@example.com are different URIs
    • acct:user@EXAMPLE.COM and acct:user@example.com are equivalent
    • ACCT:user@example.com and acct:user@example.com are equivalent

This interpretation follows directly from the combination of the normalization requirements in RFC 7565 and the case sensitivity rules defined in RFC 3986.

datatracker.ietf.org

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax

A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]

Fedify 1.5.0でカスタムバックグラウンドタスクのサポートを検討しています。ActivityPubの処理と並行してユーザー定義のバックグラウンドタスクをサポートすべきかどうか、皆様のご意見をお聞かせください。提案の詳細はこちら:https://github.com/fedify-dev/fedify/issues/206

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

hollo.social

We're considering adding custo…

We're considering adding custom background task support to #Fedify 1.5.0. Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside #ActivityPub jobs. Check out the proposal: <https://github.com/fedify-dev/fedify/issues/206>. Key considerations: - Should this be part of Fedify's scope? - Quick API extension vs complete worker architecture redesign - Integration with existing task queue systems We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread. #fedidev

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

github.com

Support custom background tasks in worker · Issue #206 · fedify-dev/fedify

Currently, Fedify has a built-in background worker that processes incoming and outgoing activities through a message queue. However, applications using Fedify might need their own background tasks ...

Fedify 1.5.0에서 커스텀 백그라운드 태스크 지원을 검토하고 있습니다. ActivityPub 관련 태스크와 함께 사용자 정의 백그라운드 태스크를 지원하는 것에 대한 여러분의 의견을 들려주세요: https://github.com/fedify-dev/fedify/issues/206.

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

hollo.social

We're considering adding custo…

We're considering adding custom background task support to #Fedify 1.5.0. Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside #ActivityPub jobs. Check out the proposal: <https://github.com/fedify-dev/fedify/issues/206>. Key considerations: - Should this be part of Fedify's scope? - Quick API extension vs complete worker architecture redesign - Integration with existing task queue systems We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread. #fedidev

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

github.com

Support custom background tasks in worker · Issue #206 · fedify-dev/fedify

Currently, Fedify has a built-in background worker that processes incoming and outgoing activities through a message queue. However, applications using Fedify might need their own background tasks ...

@hongminhee@hollo.social

We're considering adding custom background task support to 1.5.0. Got thoughts on whether Fedify should support user-defined background tasks alongside ActivityPub operations? Check out the proposal and share your feedback: https://github.com/fedify-dev/fedify/issues/206.

https://hollo.social/@fedify/0194ea5a-9856-703f-b098-d4f52936b500

hollo.social

We're considering adding custo…

We're considering adding custom background task support to #Fedify 1.5.0. Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside #ActivityPub jobs. Check out the proposal: <https://github.com/fedify-dev/fedify/issues/206>. Key considerations: - Should this be part of Fedify's scope? - Quick API extension vs complete worker architecture redesign - Integration with existing task queue systems We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread. #fedidev

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

github.com

Support custom background tasks in worker · Issue #206 · fedify-dev/fedify

Currently, Fedify has a built-in background worker that processes incoming and outgoing activities through a message queue. However, applications using Fedify might need their own background tasks ...

We're considering adding custom background task support to 1.5.0.

Want to use Fedify's worker system for your own background tasks? We're exploring ways to let you register and process custom tasks alongside jobs.

Check out the proposal: https://github.com/fedify-dev/fedify/issues/206.

Key considerations:

  • Should this be part of Fedify's scope?
  • Quick API extension vs complete worker architecture redesign
  • Integration with existing task queue systems

We'd love to hear your thoughts! Do you need this feature? How would you use it? Share your feedback in the issue thread.

github.com

Support custom background tasks in worker · Issue #206 · fedify-dev/fedify

Currently, Fedify has a built-in background worker that processes incoming and outgoing activities through a message queue. However, applications using Fedify might need their own background tasks ...

@hongminhee@hollo.social
@hongminhee@hollo.social · Reply to :_ko::_ko::_a::_ni::_lya::_n:
@hongminhee@hollo.social

久しぶりにHaikuでもインストールしてみようかな? メインで使うのは無理だけど。

https://mi.eap.vg/notes/a40wv8y65hx0007g

mi.eap.vg

かんたん宛名印刷 (@admin)

HaikuでIceweasel(Firefoxのフォーク)が使えるようになっている WebPositiveやGNOME WebでMisskeyを開くとクラッシュすることがあったけどIceweaselは結構安定している ただ、実用的とは言えないレベルで重いので今後の最適化に期待 (📎1)

@admin@mi.eap.vg

HaikuでIceweasel(Firefoxのフォーク)が使えるようになっている
WebPositiveやGNOME WebでMisskeyを開くとクラッシュすることがあったけどIceweaselは結構安定している
ただ、実用的とは言えないレベルで重いので今後の最適化に期待

Haiku R1/beta5上にインストールされたIceweaselでMisskeyを開いている様子のスクリーンショット
ALT text

Haiku R1/beta5上にインストールされたIceweaselでMisskeyを開いている様子のスクリーンショット

@admin@mi.eap.vg

HaikuでIceweasel(Firefoxのフォーク)が使えるようになっている
WebPositiveやGNOME WebでMisskeyを開くとクラッシュすることがあったけどIceweaselは結構安定している
ただ、実用的とは言えないレベルで重いので今後の最適化に期待

Haiku R1/beta5上にインストールされたIceweaselでMisskeyを開いている様子のスクリーンショット
ALT text

Haiku R1/beta5上にインストールされたIceweaselでMisskeyを開いている様子のスクリーンショット

@hongminhee@hollo.social · Reply to :_ko::_ko::_a::_ni::_lya::_n:

@cocoa_vrc 区別していますね!しかし、アプリケーション開発者が希望すれば、区別しない様にする事も出来ます。ちなみに、区別する根拠は以下の通りです。

acct: URIのユーザー部分の大小文字の区別について、二つのRFCを根拠に説明させていただきます。

RFC 75654章「定義」(Definition)の最後では、acct: URIの比較について以下の様に規定しています:

アプリケーションが二つのacct: URIを比較する必要がある場合(例:認証や認可の目的で)RFC 39866.2.2.1節6.2.2.2節で規定されている大小文字の正規化とパーセントエンコーディングの正規化を使用しなければなりません。

そして、RFC 39866.2.2.1節「大小文字の区別」(Case Normalization)では以下のように規定しています:(強調は私がしました)

URIがジェネリック構文の構成要素を使用する場合、構成要素の構文同等性規則が常に適用されます。つまり、スキームとホストは大小文字を区別せず、したがって小文字に正規化されるべきです。例えば、URI HTTP://www.EXAMPLE.com/http://www.example.com/と同等です。その他のジェネリック構文の構成要素は、スキームによって特に別途定義されない限り、大小文字を区別するものと見なされます。

したがって:

  1. acct:FOO@example.comacct:foo@example.comは異なるURIとして扱われます。
  2. これは以下の理由によります:
    • スキーム部分(acct:)は大小文字を区別しません。
    • ホスト部分(example.com)は大小文字を区別しません。
    • ユーザー部分(FOOfoo)は大小文字を区別します。これは、スキームによって特に別途定義されていない限り、ジェネリック構文の構成要素は大小文字を区別するというRFC 3986の規定に従うためです。

お役に立てば幸いです!

datatracker.ietf.org

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax

A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]

@hongminhee@hollo.social · Reply to :_ko::_ko::_a::_ni::_lya::_n:

@cocoa_vrc 区別していますね!しかし、アプリケーション開発者が希望すれば、区別しない様にする事も出来ます。ちなみに、区別する根拠は以下の通りです。

acct: URIのユーザー部分の大小文字の区別について、二つのRFCを根拠に説明させていただきます。

RFC 75654章「定義」(Definition)の最後では、acct: URIの比較について以下の様に規定しています:

アプリケーションが二つのacct: URIを比較する必要がある場合(例:認証や認可の目的で)RFC 39866.2.2.1節6.2.2.2節で規定されている大小文字の正規化とパーセントエンコーディングの正規化を使用しなければなりません。

そして、RFC 39866.2.2.1節「大小文字の区別」(Case Normalization)では以下のように規定しています:(強調は私がしました)

URIがジェネリック構文の構成要素を使用する場合、構成要素の構文同等性規則が常に適用されます。つまり、スキームとホストは大小文字を区別せず、したがって小文字に正規化されるべきです。例えば、URI HTTP://www.EXAMPLE.com/http://www.example.com/と同等です。その他のジェネリック構文の構成要素は、スキームによって特に別途定義されない限り、大小文字を区別するものと見なされます。

したがって:

  1. acct:FOO@example.comacct:foo@example.comは異なるURIとして扱われます。
  2. これは以下の理由によります:
    • スキーム部分(acct:)は大小文字を区別しません。
    • ホスト部分(example.com)は大小文字を区別しません。
    • ユーザー部分(FOOfoo)は大小文字を区別します。これは、スキームによって特に別途定義されていない限り、ジェネリック構文の構成要素は大小文字を区別するというRFC 3986の規定に従うためです。

お役に立てば幸いです!

datatracker.ietf.org

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax

A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]