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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,112 following1,903 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

:_ko::_ko::_a::_ni::_lya::_n:
@cocoa_vrc@misskey.io

地味にFedifyの型を参考にすればわからない部分も実装できるので​:ii:

@rangho_220 로컬 타임라인도 발신함(outbox)을 긁으면 되긴 합니다! 예를 들어 랭호 님 프로필을 Accept: application/activity+json 헤더와 함께 요청하면…

$ curl -s -H'Accept: application/activity+json' https://rangho.moe/@rangho_220 | jq .
{
  "@context": […],
  "id": "https://rangho.moe/@rangho_220",
  "type": "Person".
  "featured": "https://rangho.moe/@rangho_220/pinned",
  "featuredTags": "https://rangho.moe/@rangho_220/tags",
  "inbox": "https://rangho.moe/@rangho_220/inbox",
  "followers": "https://rangho.moe/@rangho_220/followers",
  "following": "https://rangho.moe/@rangho_220/following",
  "liked": "https://rangho.moe/@rangho_220/liked",
  "name": "우주스타 아이도루 랭호 🌠",
  "outbox": "https://rangho.moe/@rangho_220/outbox",
  "preferredUsername": "rangho_220",
  "url": "https://rangho.moe/@rangho_220",
  …
}

이런 식으로 나오는데, 여기 보면 outbox URL이 나오죠. 그걸 또 요청해보면…

$ curl -s -H'Accept: application/activity+json' https://rangho.moe/@rangho_220/outbox | jq .
{
  "type": "OrderedCollection",
  "id": "https://rangho.moe/@rangho_220/outbox",
  "@context": […],
  "totalItems": 141,
  "first": "https://rangho.moe/@rangho_220/outbox?cursor=0"
}

이렇게 나오고요. first를 또 따라가면…

$ curl -s -H'Accept: application/activity+json' https://rangho.moe/@rangho_220/outbox?cursor=0 | jq .
{
  "type": "OrderedCollectionPage",
  "id": "https://rangho.moe/@rangho_220/outbox?cursor=0",
  "@context": […],
  "partOf": "https://rangho.moe/@rangho_220/outbox",
  "next": "https://rangho.moe/@rangho_220/outbox?cursor=40",
  "orderedItems": [
    {
      "@context": […],
      "id": "https://rangho.moe/@rangho_220/019531fc-23ca-7523-8a62-6930fc3c8137#create",
      "type": "Create",
      "actor": "https://rangho.moe/@rangho_220",
      "object": {
        "id": "https://rangho.moe/@rangho_220/019531fc-23ca-7523-8a62-6930fc3c8137",
        "type": "Note",
        "attributedTo": "https://rangho.moe/@rangho_220",
        "content": "<p>안드로이드용 클라 괜찮은거 없나 모시돈 말구</p>\n",
        "contentMap": {
          "ko": "<p>안드로이드용 클라 괜찮은거 없나 모시돈 말구</p>\n"
        },
        "likes": {
          "id": "https://rangho.moe/@rangho_220/019531fc-23ca-7523-8a62-6930fc3c8137#likes",
          "type": "Collection",
          "totalItems": 0
        },
        "published": "2025-02-23T08:46:02.698Z",
        "replies": {
          "id": "https://rangho.moe/@rangho_220/019531fc-23ca-7523-8a62-6930fc3c8137#replies",
          "type": "OrderedCollection",
          "totalItems": 0
        },
        "sensitive": false,
        "shares": {
          "id": "https://rangho.moe/@rangho_220/019531fc-23ca-7523-8a62-6930fc3c8137#shares",
          "type": "Collection",
          "totalItems": 0
        },
        "source": {
          "type": "as:Source",
          "content": "안드로이드용 클라 괜찮은거 없나 모시돈 말구",
          "mediaType": "text/markdown"
        },
        "to": "as:Public",
        "url": "https://rangho.moe/@rangho_220/019531fc-23ca-7523-8a62-6930fc3c8137"
      },
      "published": "2025-02-23T08:46:02.698Z",
      "to": "as:Public"
    },
    …
  ]
}

이런 식으로 올린 게시물이나 공유한 게시물들이 보이기 시작합니다. 다음 페이지는 next URL을 따라가면 되고요.

@rangho_220 참고로 ActivityStreams로 게시물 내용 가져오는 건 아주 간단합니다. Accept: application/activity+json 헤더와 함께 게시물을 요청하면 됩니다 (대부분의 소프트웨어의 경우).

$ curl -s -H'Accept: application/activity+json' https://rangho.moe/@rangho_220/019531f0-f401-7788-8785-e5e66426223b | jq
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/data-integrity/v1",
    {
      "toot": "http://joinmastodon.org/ns#",
      "misskey": "https://misskey-hub.net/ns#",
      "fedibird": "http://fedibird.com/ns#",
      "sensitive": "as:sensitive",
      "Emoji": "toot:Emoji",
      "Hashtag": "as:Hashtag",
      "quoteUrl": "as:quoteUrl",
      "_misskey_quote": "misskey:_misskey_quote",
      "quoteUri": "fedibird:quoteUri",
      "emojiReactions": {
        "@id": "fedibird:emojiReactions",
        "@type": "@id"
      }
    }
  ],
  "id": "https://rangho.moe/@rangho_220/019531f0-f401-7788-8785-e5e66426223b",
  "type": "Note",
  "attributedTo": "https://rangho.moe/@rangho_220",
  "content": "<p>음 일단 홀로에 올려버린 거 올인해버릴까 생각중인데 그러려면 기능이 좀 더 있었으면 해</p><p>일단 마스토돈 호환 WebPush는 있었으면 좋겠고 따로 만들고 싶은 건 웹 클라이언트까진 아니더라도 홀로 포스트를 트위터 카드처럼 보여주는 사이트 정도?</p><p>외부적으로 구현하려면 홀로 자체에서도 API를 제공하거나 해야겠지만 말이야...</p>\n",
  "contentMap": {
    "ko": "<p>음 일단 홀로에 올려버린 거 올인해버릴까 생각중인데 그러려면 기능이 좀 더 있었으면 해</p><p>일단 마스토돈 호환 WebPush는 있었으면 좋겠고 따로 만들고 싶은 건 웹 클라이언트까진 아니더라도 홀로 포스트를 트위터 카드처럼 보여주는 사이트 정도?</p><p>외부적으로 구현하려면 홀로 자체에서도 API를 제공하거나 해야겠지만 말이야...</p>\n"
  },
  "likes": {
    "id": "https://rangho.moe/@rangho_220/019531f0-f401-7788-8785-e5e66426223b#likes",
    "type": "Collection",
    "totalItems": 1
  },
  "published": "2025-02-23T08:33:49.585Z",
  "replies": {
    "id": "https://rangho.moe/@rangho_220/019531f0-f401-7788-8785-e5e66426223b#replies",
    "type": "OrderedCollection",
    "orderedItems": [
      "https://hollo.social/@hongminhee/019531f2-4b1d-7b82-b6a2-b27f81968b2e"
    ],
    "totalItems": 1
  },
  "sensitive": false,
  "shares": {
    "id": "https://rangho.moe/@rangho_220/019531f0-f401-7788-8785-e5e66426223b#shares",
    "type": "Collection",
    "totalItems": 0
  },
  "source": {
    "type": "as:Source",
    "content": "음 일단 홀로에 올려버린 거 올인해버릴까 생각중인데 그러려면 기능이 좀 더 있었으면 해\n\n일단 마스토돈 호환 WebPush는 있었으면 좋겠고 따로 만들고 싶은 건 웹 클라이언트까진 아니더라도 홀로 포스트를 트위터 카드처럼 보여주는 사이트 정도?\n\n외부적으로 구현하려면 홀로 자체에서도 API를 제공하거나 해야겠지만 말이야... ",
    "mediaType": "text/markdown"
  },
  "to": "as:Public",
  "url": "https://rangho.moe/@rangho_220/019531f0-f401-7788-8785-e5e66426223b"
}
@geeknews_bot@sns.lemondouble.com

안녕하세요 여러분.. 오랜만에 인사드립니다.
- 길이가 길어 말줄임표로 줄여진 경우, 태그가 안 닫혀 링크가 깨지는 이슈
- (Misskey에서) MFM으로 인해 글자가 띠용띠용 해 보이는 이슈

를 수정해서 배포했습니다.
잘 될거라 믿고 있는데 혹시 잘 안 되면...
다시 수정하고 그동안 처리 실패한 메세지는 손으로 긁어서 올려 드리겠습니다.

감사합니다
:blobcatawwpat:

@hongminhee@hollo.social
@thisismissem@hachyderm.io
@geeknews_bot@sns.lemondouble.com

Deno 2.2 출시 - OpenTelemetry, Lint 플러그인, node:sqlite
------------------------------
- 내장 OpenTelemetry 지원 : Deno가
console.log, Deno.serve, fetch 등의 API를 자동으로 계측
-
deno lint 대폭 업그레이드 : JSX 및 React 관련 15개 새로운 규칙 추가 및 플러그인 시스템 도입(ESLint와 유사)
- SQLite를 쉽게 사용할 수 있도록
node:sqlite 모듈 추가
-
deno check 개선 : JSD…
------------------------------
https://news.hada.io/topic?id=19381&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

news.hada.io

Deno 2.2 출시 - OpenTelemetry, Lint 플러그인, node:sqlit | GeekNews

내장 OpenTelemetry 지원 : Deno가 console.log, Deno.serve, fetch 등의 API를 자동으로 계측deno lint 대폭 업그레이드 : JSX 및 React 관련 15개 새로운 규칙 추가 및 플러그인 시스템 도입(ESLint와 유사)SQLite를 쉽게 사용할 수 있도록 node:sqlite 모듈 추가deno check 개선

@yeokbo@uri.life
@geeknews_bot@sns.lemondouble.com

연합우주(fediverse)와 ActivityPub 프로토콜 이해하기: 개발자를 위한 가이드
------------------------------

1. 연합우주(Fediverse) 개념 및 배경
중앙집중형 소셜 미디어(X(구 Twitter), Instagram 등)에 지친 사용자들을 위한 대안.
데이터 프라이버시, 알고리즘 추천, 끊임없는 광고 문제를 해소하기 위해 등장한 탈중앙화 네트워크.
2. 연합우주의 구조와 작동 원리
** 구성: 하나의 거대한 플랫폼이…
------------------------------
https://news.hada.io/topic?id=19371&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

@hongminhee@hollo.social
@nnanananami@planet.moe
@hongminhee@hollo.social

皇帝(황제)萬歲(만세), 諸侯(제후)千歲(천세)?

萬歲(만세)」는 처음부터 皇帝(황제)에게만 쓸 수 있는 말이었을까요? 歷史書(역사서)史記(사기)》를 보면 「萬歲(만세)」의 用例(용례)戰國時代(전국 시대)에서부터 찾아볼 수 있습니다. (), 皇帝(황제)라는 槪念(개념)보다 萬歲(만세)라는 말이 먼저 存在(존재)한 것입니다. 이때 萬歲(만세)는 「야호!」 程度(정도)로 기쁨을 表示(표시)하는 感歎詞(감탄사)였습니다.

https://www.postype.com/@hanshu/post/18759479

postype.com

황제는 만세, 제후는 천세?: 미남과 오컬트와 자살

만세와 천세의 차이 1909년 대한제국 시절, 김구는 자기에게 부르는 ‘만세’ 소리를 듣고 기겁했습니다. 김구에게 있어 ‘만세’란 황제에게만 쓸 수 있는 말이었기 때문입니다. 하지만 정작 황제의 신하인 군수는 웃으면서 요즘 같은 시대에는 친구와 만나고 헤어질 때도 만세를 부를 수 있다고 안심시켰습니다. 배천 군수 전봉훈의 초청을 받았다. 읍에 못 미쳐 오리정에 군내 각 면의 주민들이 나와서

@Yohei_Zuho@mstdn.y-zu.org

((というかプロフ帳でGoのMastodon、Pleroma、Misskey、Holloの認証機構が整ったのでFediアカウントで参加登録できるイベント開催プラットフォームを作る準備ができたな))