최근에 오랫동안 쓰던 키보드가 망가져서 큰 맘 먹고 프리플로우 Archon M1 PRO MAX를 질렀는데, 요즘 키보드는 다 WebHID 가지고 웹 드라이버로 설정하는 것 같다. 자바스크립트니까 뜯기 쉽겠거니 싶어서 살펴 봤는데 커스텀 HID 레포트를 보낼 수 있는 기능을 사용해서 명령들을 나열해 놓았고, 개중에는 롬을 통으로 날리는 것도 가감없이 노출되어 있길래 음 역시 WebHID 같은 건 웹에 넣을 기능이 못된다는 결론을 내렸다. 가볍게 함수 목록만 요약해서 https://gist.github.com/lifthrasiir/c79c90ecf697b1e6dc73e83f32984499에 올렸다.

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 367 following · 252 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 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
@disjukrㄹ 어서오세요!
@hongminhee洪 民憙 (Hong Minhee) 게시글 기능이 있는게 맘에 드네요
애플리케이션 개발 측면에서 본 Drizzle ORM 대 Kysely 비교
------------------------------
# Drizzle ORM vs Kysely 비교 요약
## Drizzle ORM의 장점
- *스키마 정의의 직관성* : 선언적 방식의 스키마 정의가 가능하며, 이로부터 자동으로 CREATE TABLE
SQL 생성이 가능.
- *자동화된 마이그레이션* : 스키마 변경사항을 자동으로 감지하여 SQL 마이그레이션 파일 생성이 가능.
- 직관…
------------------------------
https://news.hada.io/topic?id=19805&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
Hiring in Tokyo: LINE Platform SRE/DevOps Engineer. 2+ years exp with scripting languages and IaC/CI/CD tools required.
¥5-10M package with remote work flexibility (must be based in Japan).
Join me in maintaining our messaging platform used by millions!
https://www.lycorp.co.jp/ja/recruit/career/job-categories/ly00078/
요즘 며칠 openai agent sdk 살펴보면서 끼적끼적 해보고 있는데 python의 asyncio 는 왜 이렇게 복잡하고 거지 같지? 라는 느낌을 확 받네. 웬간한 라이브러리들은 요즘 async/await 기반으로 되어 있는데 streamlit 에서 그걸 쓰려고 하면 asyncio 오류가 막 나고... 그걸 안정적으로 처리하는 방법이 뭔가 확립이 되어 있지 않아서 각자 나는 이게 좋았다 그런데 나는 그렇게 해도 이런 오류가 나서 이게 좋다... 이게 뭔지 참...
초창기 파이썬 계에서 회자되던 모토 비슷한게 "어떤 일을 하기 위한 명백한 방법이 한 가지여야 한다?" 그런 말이 있었던 것 같은데... 지금 상황은 그거랑 너무 멀리 떨어져 있는 것 같다.
요즘 며칠 openai agent sdk 살펴보면서 끼적끼적 해보고 있는데 python의 asyncio 는 왜 이렇게 복잡하고 거지 같지? 라는 느낌을 확 받네. 웬간한 라이브러리들은 요즘 async/await 기반으로 되어 있는데 streamlit 에서 그걸 쓰려고 하면 asyncio 오류가 막 나고... 그걸 안정적으로 처리하는 방법이 뭔가 확립이 되어 있지 않아서 각자 나는 이게 좋았다 그런데 나는 그렇게 해도 이런 오류가 나서 이게 좋다... 이게 뭔지 참...
하스켈 패키지 검색 엔진이자 웹 서비스인 후글(Hoogle)은 서비스에 종종 문제가 생기곤 합니다. 그럴 때는 다음과 같은 대체 서비스를 이용해보세요!
한편 후글을 로컬에 설치해서 사용하는 것도 가능합니다. 잦은 서비스 문제에 질렸다면 로컬에 후글을 설치해보세요!
그리고 만약 당신이 부자라면⋯ 하스켈 재단에 기부해주세요⋯
https://wikidocs.net/book/14314
Langchain 관련해서 한국어로 정리가 잘 정리되어 있는 듯
apmodel 0.3.1 now available!
This replaces 0.3.0, which was removed due to several problems
・Activity.accept()
can now generate an Accept activity for the activity and Activity.reject()
can generate a Reject activity for the activity
apmodel v0.3.1が利用可能になりました!
これは、いくつかの問題のために削除された0.3.0を置き換えるものです。
・Activity.accept()
でそのアクティビティに対してのAcceptアクティビティを生成できるようになり、Activity.reject()でそのアクティビティに対してのRejectアクティビティを生成できるようになりました。
apmodel 0.3.1 now available!
This replaces 0.3.0, which was removed due to several problems
・Activity.accept()
can now generate an Accept activity for the activity and Activity.reject()
can generate a Reject activity for the activity
하스켈 카레
ActivityPub은 눈팅만 하고있었는데, 슈티에 피드를 넣기로 결정하고나니 ActivityPub를 써볼 기회가 생겼다. 따로 페디버스 서버를 팔지, 아니면 다른 방법을 쓸지(있긴 한가)를 고민해봐야한다.
이제 계정이 두 개인데 어떻게 분리하지 🤔 SNS 계정을 두 개 써본 적이 없어서...
🎉 Why I Care So Much About the Fediverse by Ayo Ayco (@ayo) | https://ayos.blog/why-fediverse/
Good morning Fediverse.
We still don't have a properties on ActivityPub activities and objects to indicate how long they can be cached in your ActivityPub Store.
ActivityPubの開発ハマると意外と楽しいかもしれない
쉘스크립트처럼 oci 컨테이너들을 조합하는 언어가 있으면 좋겠다.
컨테이너는 샌드박싱된 파일시스템을 입력으로 받아 출력으로 쓰고, 그런 컨테이너들을 (|
pipe operator로 stdin/stdout을 잇듯이) 조합하는 것이다. 그리고 이때 각 컨테이너가 필요로하는 입력 파일/디렉토리들에 대해 일종의 타입 체크를 해서 no such file or directory
가 뜨는것을 막아줄수 있을것이다.
사실 yaml등으로 작성하는 CI/CD 설정 파일들이 비슷한 기능을 하고있는데, 이걸 좀더 멀쩡한 언어로, 로컬에서도 쓸수있으면 좋겠다.
음. 큰일났다. 너무 바빠서 해커스펍에 글을 안쓰는 버릇들였더니 막상 여유생기니 손에 안 잡힘... 흑흣
<오픈 소스 소프트웨어 아키텍처>를 읽었다. #sbreading
<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 시리즈의 오픈소스 소프트웨어 버전을 기대했지만, 아티클 모음집에 가까웠다. 각 챕터의 저자가 모두 다르다보니 내용이 체계적이지 않았고, 그 깊이도 일과적이지 않았다. 사실 나는 "왜"가 궁금한건데 대체로 "어떻게"에 초점이 맞춰져 있는 느낌.
적어도 모든 챕터가 아키텍처를 한 눈에 조망할 수 있는 다이어그램을 우선 제시하고, 탑 다운으로 디테일에 다가가는 형식을 취했다면 더 효과적이지 않았을까 싶다. 그런 점에서 버클리DB와 센드메일 챕터는 인상적이었다.
실제 소프트웨어의 아키텍처를 분석한다는 컨셉이 너무 좋은 접근이고, 대학 수업에서도 다루면 좋겠다는 생각이 들 정도라서 구성에 더욱 아쉬움이 남는다.
@hongminhee洪 民憙 (Hong Minhee) a journey of 18446744073709551616 genders begins with a single step.
@evanEvan Prodromou While the West debates gender binaries, the Chinese have been refining Confucius's gender philosophy for millennia. They didn't need 64 bits by accident—this is clearly the culmination of ancient wisdom that foresaw our modern discourse. Truly, the Middle Kingdom was middle ground on gender all along!
Translated from the original Korean post:
A few days ago, I took over a Flutter app that a team in China had abandoned. I was particularly impressed by how they had defined the user's gender field type not even as
Int
but asInt64
—truly a piece of code containing 4,000 years of Chinese wisdom!
@hongminhee洪 民憙 (Hong Minhee) a journey of 18446744073709551616 genders begins with a single step.
とりあえずhollo.amase.ccにおいておくことにした (自前で書いちゃってもいいんだけど比較的安定してるサーバーに置きたい)
@apkit@hollo.amase.ccapkit - An ActivityPub Toolkit
apkit以外の更新の通知 (?)も多分これでやるんだろうけど表示名をActivityPub for Python
にするとしてハンドルが思いつかないので
Translated from the original Korean post:
A few days ago, I took over a Flutter app that a team in China had abandoned. I was particularly impressed by how they had defined the user's gender field type not even as
Int
but asInt64
—truly a piece of code containing 4,000 years of Chinese wisdom!
韓国語原文からの翻訳:
数日前、中国のチームが諦めたFlutterアプリを引き継ぐ事に成ったが、ユーザーの性別フィールドの型が
Int
でさえなくInt64
と指定されている部分が特に印象的だった。中華四千年の知恵が詰まったコード!
Translated from the original Korean post:
A few days ago, I took over a Flutter app that a team in China had abandoned. I was particularly impressed by how they had defined the user's gender field type not even as
Int
but asInt64
—truly a piece of code containing 4,000 years of Chinese wisdom!
며칠 전부터 중국에서 작업하다 포기한 Flutter 앱을 이어받아서 작업하게 되었는데, 사용자의 성별 필드의 타입을 Int도 아니고 Int64로 지정해놓은 부분이 굉장히 인상적이었다.
중화 사천년의 지혜가 담긴 코드!
https://github.com/bglgwyng/semantic-lang-gen
I wrote(tbh, just packaged) a Haskell library that generates TreeSitter bindings and the corresponding AST type definition from TreeSitter language definition. Writing parsers using a parser combinator is fun, of course. However, with TreeSitter, you can eat free lunches of language tooling.
A meme about P vs. NP problem from the Korean internet. Here's a rough translation:
- “What's the solution to P=NP?”
- “N=1, probably.”
- “thx”
미칠거같다 개웃김 진짜
apsig 0.5.0 released (破壊的な変更あり)
デフォルトだと検証の結果は失敗時にNone
、成功時はkeyId
を返すようになりました (verify関数にraise_on_fail引数をTrueにして渡すと失敗時にエラーを吐くようにもできます)
あとはSignatureヘッダーの解析だけ使うこともできるようになりました (Draft版HTTP署名のみ。)
一応古いdraftVerifier
の方は廃止されてるものの互換性維持のために0.4.0時点と同じ値を返すようになってます (ただ1.0で削除するので使うべきではありません)
https://github.com/AmaseCocoa/apsig/releases/tag/0.5.0
https://pypi.org/project/apsig/0.5.0/
initial commit
If the team that implemented Python in Python had a tart to celebrate March 14, it'd be a PyPy pi pie.
bgl gwyng replied to the below article:
Hackers' Pub에서 DOT 언어(Graphviz)로 다이어그램 그리기

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Hackers' Pub의 숨겨진 기능 중 하나는 Graphviz의 DOT 언어를 지원한다는 것입니다. 예를 들어, 다음과 같은 다이어그램을 그릴 수 있습니다:
SimpleActivityPub server_a 서버 A (Mastodon) server_b 서버 B (Hackers' Pub) server_a->server_b ActivityStreams 데이터 전송 (HTTP POST) server_b->server_a 응답 및 상호작용 (HTTP POST)Graphviz를 이용하는 법은 간단합니다. Markdown의 코드 블럭 문법 안에 DOT 언어로 다이어그램을 기술하신 뒤, 코드 블럭의 언어 태그에 graphviz
를 붙이시면 됩니다. 위에서 예를 든 다이어그램은 Markdown에서 아래와 같이 쓰면 됩니다:
```graphviz
digraph SimpleActivityPub {
graph [rankdir=LR, fontname="sans-serif", bgcolor="white"];
node [fontname="sans-serif", shape=box, style="rounded,filled"];
edge [fontname="sans-serif"];
server_a [label="서버 A\n(Mastodon)", fillcolor="#AED6F1"];
server_b [label="서버 B\n(Hackers' Pub)", fillcolor="#A3E4D7"];
server_a -> server_b [label="ActivityStreams 데이터 전송\n(HTTP POST)", color="red"];
server_b -> server_a [label="응답 및 상호작용\n(HTTP POST)", color="blue"];
}
```
참고로 Graphviz는 긴 게시글 뿐만 아니라 단문에서도 똑같이 지원합니다.
와우 카테고리 이론 공부하고있는 내용들을 공유하고 싶었는데 딱 좋네요
나는 모나드를 설명하기가 어려운게 그냥 대부분의 언어에서 (HKT의 부재로) Monad
를 정의를 못해서라고 생각한다.
Haskell에 대한 경험이 없는 친구들한테 모나드를 설명하면 잘 알아듣는다. 근데 끝나고 그게 그럼 클래스냐 디자인 패턴이냐 이런 질문이 이어진다.
자기가 쓰고있는 언어에서 어떻게 쓸수있는지를 묻는셈인데, 여기서 '굳이 따지면 디자인패턴 같은거다' 라고하면 실망하는게 느껴졌다.
같은 이유로, Haskell 사용자에게 카테고리 이론의 유용함을 설명하고싶다면 Category
인스턴스의 활용부터 시작하는게 맞다고 생각한다.
.ssh/config
파일에 ProxyJump 설정을 이용하면 배스천 서버가 있을 때에도 한 방에 접속할 수 있다는 걸 처음 알았다.
@noellaboのえる 韓国語訳では
Note
を「短文」と、Article
を「揭示文」と訳し、日本語訳ではNote
を「投稿」と、Article
を「記事」と訳しています。日本語でもNote
を「短文」にした方が良いでしょうか?
@hongminhee洪 民憙 (Hong Minhee) 言葉の選択が与える影響が大きそうですね。ちょっと考えてみます。
今ねー、ようやくhackers.pubの様子を見に来たところだよ
こちらの短文が『投稿』にあたるんだね。
今ねー、ようやくhackers.pubの様子を見に来たところだよ
Has anyone made a spreadsheet of all the fediverse projects that have received @nlnet funding that can be sorted by when they received it?
Sad to say NGI Zero didn't accept my grant request for #GoActivityPub.
I am a bit disappointed if I'm honest. I hoped that a library that threads new ground for developers for both client and servers applications would have fit their criteria very well. I might not have made the case well enough I guess.
Apple Pay 백엔드에 티머니 서포트가 들어갔다는 것 같다. 이제 Apple과 티머니가 協商만 잘 하면 될 듯…
Listening to this really wonderful #FutureOfCoding podcast episode called "A Case for Feminism in Programming Language Design by Felienne Hermans"
https://futureofcoding.org/episodes/075 (by @TodePondLu wilson,
@jimmyhmillerJimmy Miller and
@spiralganglionIvan Reese)
送れるようにするのはmfm.jsをいじらないといけなくって面倒なのでパースだけ……
tableタグパースできるようにするか…?
@esurio1673Esurio 先ずMFMにテーブル機能を追加する必要が有りそうですね。🤔
tableタグパースできるようにするか…?
미스키에선 이렇게 보여요
아마 主要 ActivityPub 具顯들 中에서 表를 支援하는 건 Hackers' Pub이 처음일지도…!?
https://hackers.pub/@hongminhee/01959474-3056-76e6-a6df-d4676c1fd19e
多分、主要なActivityPubの実装の中でテーブルをサポートするのはHackers' Pubが初めてかも…!?
https://hackers.pub/@hongminhee/01959474-8a9b-7964-bed4-1d946b6a83e8
아마 主要 ActivityPub 具顯들 中에서 表를 支援하는 건 Hackers' Pub이 처음일지도…!?
https://hackers.pub/@hongminhee/01959474-3056-76e6-a6df-d4676c1fd19e