洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 1007 following · 714 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub! My main account is at
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다. 제 메인 계정은:
@hongminhee洪 民憙 (Hong Minhee)
.
Fedify、Hollo、BotKit、そしてこのサイト、Hackers' Pubを作っています。私のメインアカウントは「
@hongminhee洪 民憙 (Hong Minhee)
」に。
Website
- hongminhee.org
GitHub
- @dahlia
Hollo
- @hongminhee@hollo.social
DEV
- @hongminhee
velog
- @hongminhee
Qiita
- @hongminhee
Zenn
- @hongminhee
Matrix
- @hongminhee:matrix.org
X
- @hongminhee
지금 Fedify 프로젝트가 @fedify/fedify 패키지나 @fedify/cli 패키지만 fedify-dev/fedify 저장소에 있고, 나머지 @fedify/amqp 패키지나 @fedify/postgres 패키지 등은 다 별도 저장소에 있는데, 이걸 fedify-dev/fedify 저장소에 다 합쳐버릴까 고민하고 있다. 릴리스를 매번 따로 하는 게 좀 귀찮기도 해서…
해커스펍에서도 출판사 분들이 자주 비추시려나 (기대)
sark는 현존 최강의 Svelte GraphQL 클라이언트다 (이렇게 말하면 더 좋은것들이 나오나요?)
@robin 하지만 npm에 안 올라와서 쓸 수가 없습니다…
@devuntfinn 어서 올려주세요!!
sark는 현존 최강의 Svelte GraphQL 클라이언트다 (이렇게 말하면 더 좋은것들이 나오나요?)
오피셜이 떴는데..... 많은 일들이 있을 것 같습니다 😇😇😇
이제 2025년인데 에반게리온 CLI 프레임워크도 나올때 되지 않았음?
BotKit에 투표 기능 만들다가 Fedify의 KvStore에 CAS 연산이 필요하다는 것을 깨닫고 Fedify 고치는 중…
@hongminhee洪 民憙 (Hong Minhee) 엇. 3장이면 좋겠습니다 ^^; 5장이면 베스트! 꺅~~~
@neozest 5장 채워드렸습니다!
아 C++ 모듈 쓰고 싶다!!!
사실 거짓말입니다 저는 그저 Rust crate면 충분합니다
아 C++ 모듈 쓰고 싶다!!!
Okay, so after an evening hacking session with a 4 hour blackhole of focus, I've managed to get
@adonisframeworkAdonisJS Framework working together with @fedifyFedify: ActivityPub server framework — now, this code is super rough, and definitely not reusable, but may I might make it into a package later.
For now, this is just an experimental demo:
A couple of things to note:
- Testing this between a local mastodon instance and a local Adonis.js server was a royal PITA, due to SSL requirements on Mastodon's side, and not being able to supply an extra certificate to trust (I was using localcan to proxy everything, but it uses a self-signed certificate and mastodon is very unhappy about that)
- Converting between the Request/Response objects that Fedify wants and what Adonis.js has was a little troublesome — it's mostly based on the express code, but modified for Adonis.js — I did have a bug where the body was incomplete for some reason.
- Changing instance URLs is a PITA because everything gets weirdly cached. Here be dragons.
- I did hit into an issue with firstKnock throwing an error, but I can't manage to reproduce it now. I think it may have been SSL related.
Okay, so after an evening hacking session with a 4 hour blackhole of focus, I've managed to get
@adonisframeworkAdonisJS Framework working together with @fedifyFedify: ActivityPub server framework — now, this code is super rough, and definitely not reusable, but may I might make it into a package later.
For now, this is just an experimental demo:
I love the chaotic energy of this:
https://hollo.social/@hongminhee/0197c02c-cbe2-7df2-a5f8-bd06e1a07490
Well, that was a fun error: went to install a node.js project, which depended on sqlite, and it failed because Python 3.13 no longer has distutils in it, and you instead need to do:
pip install --upgrade setuptools
To get the distutils package.
This happened because the Node.js module for sqlite uses node-gyp for building, which depends on distutils.
https://app.daily.dev/posts/i-built-a-terminal-based-portfolio-you-can-access-via-ssh-4qn79zov9
daily.dev 에서 우연히 본 터미널로 만든 포트폴리오.
ssh terminalfolio.xyz 명령으로 접근해 볼 수 있는데, CLI 감성이 나쁘지 않네요.
덤으로 CLI 에서 사용하는 React 라이브러리 Ink가 있다는 것도 처음 알았네요.
https://moonrepo.dev/proto 프로젝트 이름을 이렇게 지어 두면 protobuf 랑 conflict 나잖아...
어제 튜링의 사과를 처음 구경했습니다. 귀인들 만나느라 이용은 안하고 구경만. 조금 과장해서 얘기하면, 다른 공유 오피스와는 다르게 PC방에 개발자 모인 것 같은 느낌이었습니다. 다른 오피스들처럼 조용하고, 조금은 생기 없는 풍경이 아니라, 상대적으로 소음도 좀 있고, 활기가 있어 보여 의외였습니다. 장소 오너분들도 개발자로 알고 있는데, 개발자 이해도가 높은 게, 영향이 있는 것 아닐까요?
(삶에 찌든 사람들 모인 PC방 말고, 젊은이들이 즐겁게 노는 모습의 PC방입니다.)
AI 시대에 개인 테스트용 프로젝트를 C++ 로 해보면 어떨까 생각해보다가, 요새는 패키지 관리가 좀 개선되었을까 싶어 (vcpkg 나 conan 얘기도 좀 듣고..) 오픈소스들 몇몇을 들쳐보다가..
duckdb - 걍 코드 포크하고 네임스페이스 추가 https://github.com/duckdb/duckdb/blob/main/third_party/httplib/httplib.hpp https://github.com/yhirose/cpp-httplib/blob/master/httplib.h (본래 프로젝트)
clickhouse 의 관리- git 서브 모듈 https://github.com/ClickHouse/ClickHouse/tree/master/contrib
llama.cpp https://github.com/ggml-org/llama.cpp/tree/master/vendor
아 아직 내가 생각했던 그건 아닌 건가..
React Native 및 앱 개발 생태계에 대해 욕하고 싶은 사람들이 모이는 연합우주 인스턴스가 있었으면 좋겠다...
일전에
@kkungMinyoung Jeong 님께서 올려주신 Vibe Writing 글에, 숟가락을 얹어보았습니다.
HammerSpoon 에서 쓰는 lua 코드에서 OpenRouter 의 google/gemini-2.0-flash-001 모델로 살짝 수정했습니다.
- config, payload, 응답부 변경
바로바로 한영, 영한 변환하니까, 너무 편하고 좋네요. 다른 언어도 추가하고 그외 다른 활용 요소들도 생각 나서, 앞으로도 이것저것 만져볼 것 같네요.
local config = {
open_router_api_key = "sk-...",
open_router_api_url = "https://openrouter.ai/api/v1/chat/completions",
model = "google/gemini-2.0-flash-001",
}
local function callOpenRouter(text, callback)
if not config.open_router_api_key or config.open_router_api_key ~= "sk-..." then
hs.alert.show("Config error: Please set your open_router_api_key in modules/ko-en.lua")
return
end
local instruction = "입력된 문장이 영어일 경우 한국어로, 한국어일 경우 영어로 변환해줘. 의미를 모국어 사용자가 자연스럽게 받아들일 수 있게 정확하고 유창하게 전달하고, 불필요한 문장을 생략하여 명료하게 작성해. 번역어 외의 다른 문장을 추가하지 말고 번역 그 자체만 반환해."
local payload = {
model = config.model,
messages = {
{role = "assistant", content = instruction},
{role = "user", content = text}
},
max_tokens = 4096,
stream = false
}
local request_body = hs.json.encode(payload)
local headers = {
["Content-Type"] = "application/json",
["Authorization"] = "Bearer " .. config.open_router_api_key,
["HTTP-Referer"] = "https://hammerspoon.ai",
["X-Title"] = "Hammerspoon Translator"
}
hs.http.asyncPost(config.open_router_api_url, request_body, headers, function(status, response, _)
if status == 200 then
local success, data = pcall(hs.json.decode, response)
if success and data.choices and #data.choices > 0 and data.choices[1].message and data.choices[1].message.content then
local translated = data.choices[1].message.content
print("TR: " .. translated)
callback(translated)
else
local error_message = "API call failed. Response: " .. hs.inspect(data)
print(error_message)
hs.alert.show(error_message)
callback(nil)
end
else
local error_message = "HTTP request failed. Status: " .. status .. ", Response: " .. response
print(error_message)
hs.alert.show(error_message)
callback(nil)
end
end)
end
https://questdb.com/docs/third-party-tools/polars/ 를 보다가 ConnectorX 소개가 있어서 보니 https://sfu-db.github.io/connector-x/intro.html https://sfu-db.github.io/connector-x/intro.html#how-does-connectorx-download-the-data
쿼리로 대량 데이터 가져올 때 이걸 파티셔닝 하는 쿼리로 나누고 멀티스레드로 병렬 실행 한 뒤 모으는 식인듯. 아이디어 자체는 간단한지라 한계도 좀 명확할 것 같아서 (만일 쿼리가 서브 쿼리 등 복잡해지는 경우) 한계를 알고 써야 할 것 같긴 하다.
요즘 트위터에 하스켈 관련 계정들보면 Go를 가장 싫어하는 언어로 꼽는 경우를 자주 본다. C/C++/Java 등은 역사적인 맥락을 고려해 예우해주고, Python/JS 등등의 이상한 기능은 뭘 몰라서 잘못 만들었다고 이해해주는 반면, Go는 하스켈러들이 중요하게 여기는 가치들을 일부러 다 무시하고 만들기 때문에 괘씸가중치 x10 정도를 적용받는 듯하다.
안녕하세요, SNS 프로젝트로 Jeju.social을 만들었습니다. 제주도의 친구, 가족, 기업들이 안전하게 사진과 정보를 공유할 수 있는 온라인 커뮤니티입니다. 외국인들과도 함께요. 즐거운 시간 보내세요.
Hello, I created Jeju.social as a social media project. It is an online community where friends, family, and businesses on Jeju Island can share photos and information safely. Even for foreigners. Please enjoy.
내일(7월 1일) 개인 용무로 잠시 제주를 벗어나 서울에 이틀간 머물 예정인데요, 이날 5시 이후부터 여유 시간이 많아 만나서 이야기 나눌 분을 찾습니다.
자기소개 - 블로그 소개 및 Gravatar 프로필 참고
- 10여 년 전부터 웹 프로그래밍을 생산성과 취미로 즐겨하고 있는 컴퓨터 전공 4학년 학부생입니다.
- 이번 1학기에 졸업 요건을 대부분 만족하여 프런트엔드 개발 직군으로 구직 활동을 시작했습니다.
I'm currently experimenting with a poll creation feature for
@botkitBotKit by Fedify
. If this experiment pans out, the feature will likely be included in the next release, BotKit 0.3.0. So far, so good. Each vote will trigger a Bot.onVote event in real-time. This could open up a lot of interesting possibilities, like a bot that uses emoji selection for one-time authentication.
I think the @fedifyFedify: ActivityPub server framework project has now reached full maturity. What this means is that all the low-hanging fruit has been addressed, and only the difficult problems remain. 😂
https://github.com/mastodon/mastodon/pull/34964/files
마스토돈에 알고리즘 기반의 계정 팔로 추천 기능이 4.4에 들어갈 예정이라고 한다........
레일즈 기반의 Fasp(Fediverse Auxiliary Service Provider) 프로바이더 구현체를 어디선가에서는 공유했던 것 같은데, 기억이 가물가물하다.
팔자에 없던 C++ 시즌 2. 심지어 이번에는 녹도 슬지 않은 순수한 모오던 C++.
사실 C++보다는 CMake를 써야 한다는 점이 좀 더 고통스럽다.
팔자에 없던 C++ 시즌 2. 심지어 이번에는 녹도 슬지 않은 순수한 모오던 C++.
@hongminhee洪 民憙 (Hong Minhee)
@bglbgl gwyng Haskell에도 fromJust 같은 함수가 있는 것과 비슷한 이유가 아닐까 싶습니다. segfault를 내거나 다른 해로운 일이 일어나지 않는 대신 즉시 종료되어 주기는 한다는 점에서 적어도 null 포인터보다는 낫기도 하고요.
@kroisse크로이세
@bglbgl gwyng 네, 그런데 fromJust보다 Option::unwrap()이 훨씬 많이 쓰인다는 느낌이 있습니다. 🤔
시간과 열정만 있었다면 이걸 아이템으로 디자인 도구 만드는 스타트업을 하는 건데…
컴파일 한 번 할 때마다 푸시업을 10번씩 해야겠다...
Hackers' Pub을 사용하면서 연합우주(fediverse) 뿐만 아니라 Bluesky 사람들과도 교류하고 싶으신 분들은 Bridgy Fed라는 서비스를 사용해 보시면 좋을 것 같습니다. Hackers' Pub 계정 생성 후 2주가 지난 분들만 사용 가능하긴 한데요.[1]
@bsky.brid.gyBridgy Fed for Bluesky 계정을 팔로하시면 Bluesky 쪽에 일종의 미러링 계정이 생성되게 됩니다. 성공적으로 Bluesky 미러가 생기면
@bsky.brid.gyBridgy Fed for Bluesky 계정이 맞팔을 해 올 겁니다.
예를 들어 제
@hongminhee洪 民憙 (Hong Minhee) 계정으로
@bsky.brid.gyBridgy Fed for Bluesky 계정을 팔로하면, Bluesky 쪽에 @hongminhee.hackers.pub.ap.brid.gy라는 계정이 생기는 식입니다. 그러면 Bluesky 쪽 사람들이 해당 계정을 멘션하거나, 댓글을 달거나, 인용을 하면 Hackers' Pub에서 그게 보이게 됩니다. 서로 팔로도 할 수 있고요.
타임라인쪽은 대충 반쯤?하다가 메인 기능 먼저 넣어야 할 것 같아서 (글 쓰기 기능) 쓰레드 페이지 만드는 중이에요
지금 문제: 멘션이 여러 개일 경우엔 무슨 기준으로 child 멘션을 선택하는가
- parent 있으면 위에 그려줘야함
@hongminhee洪 民憙 (Hong Minhee) transifex를 통해서 할 방법은 없나보네요,,, django 자체에 저 기능을 추가해야할지,,,
@theeluwin제이미 Django 자체에 국제화 기능이 있는 거죠? 어떻게 잘 하면 통합이 가능할 것 같긴 한데요… 🤔
transifex로 django 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...
transifex로 django 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...
@theeluwin제이미 korean 같은 패키지를 활용하셔야 하지 않을까요?
洪 民憙 (Hong Minhee) shared the below article:
Vibe Writing
Minyoung Jeong @kkung@hackers.pub
Hammerspoon과 OpenAI API를 활용하여 맥에서 선택한 텍스트를 즉시 번역하는 스크립트를 소개합니다. 이 스크립트는 Cmd+Shift+K 단축키를 통해 선택된 텍스트를 OpenAI의 GPT-4o 모델을 사용하여 한-영 또는 영-한 번역을 수행하고, 번역된 텍스트로 선택 영역을 자동으로 대체합니다. Accessibility API를 활용하여 텍스트 선택 및 대체 과정을 자동화했으며, OpenAI API를 호출하여 고품질 번역을 제공합니다. Vibe coding을 통해 개발하려 했으나, API 문제로 직접 구현했으며, 이 스크립트를 통해 영문 작성 시 번거로움을 줄이고 생산성을 향상시킬 수 있습니다.
Read more →Bun이 자꾸 웹 표준 API 사이에 슬쩍 비표준 API 추가하는 게 마음에 안 든다.
In just a few days, the LogTape repository's star count has skyrocketed past Fedify's repository stars…
Tailscale에 Airdrop 비슷한 기능인 Taildrop이라는 게 생겼는데, 유용해 보인다!
갤럭시 S22 중고 공기계를 구해서 F-droid 부터 termux 까지 뚝딱뚝딱 설치중입니다. 목표는 현 재직중인 회사의 매우 기묘한 개발 환경을 이식하는 건데, 솔직히 잘 될 지는 모르겠습니다.
예전(6년 전)엔 Raspberry Pi 2 위로 올리려고 첫 시도했던 시절엔 MongoDB 설치 문제 등을 쉽게 풀지 못해서 금방 포기했던 기억이 나네요.
일단 넘어야 할 산으로는 아래와 같은 것들이 있습니다.
- crosstool-ng 잘 써서 Arm에서 x64 컨테이너 이미지 빌드 가능한 상황 만들기
... 첫 번째 산부터 뭔가 넘기 힘들어 보이는데, 그냥 스트레스 푸는 방식을 바꿀까...
요즘 함수 적용Apply에 꽂혀서, 처음 보는 프레임워크 코드들을 Apply 위주로 읽으니 그럴싸합니다. 그래서, Apply 생각 일부를 정리했습니다. 함수형 프로그래밍 언어도 익숙하지 않은 외국어와 비슷한 느낌이라, 코드들을 정확히는 몰라도 일단 통밥으로 읽는 방법을 계속 훈련 중입니다.
Apply - 이펙트가 있는 함수들을 연이어 적용하고 싶어
Apply - Price와 (exRate -> Price)를 다루는 프로그램의 골격을 똑같이 하고 싶어
해커스펍에 바로 올릴까 했는데, 읽어보니 조금 더 정돈하고 올리고 싶다는 생각이 들어, 개인 블로그에 먼저 올립니다.
잘 못만든 선언형 인터페이스보다는 잘 못만든 명령형 인터페이스가 낫다. 후자는 피똥싸면서 뭔가를 어찌저찌 해낼순 있는데, 전자는 아예 뭔가를 하는게 불가능한 경우가 많다.
내일 모각코가 매우 기대되는구만요
토스페이먼츠 결제 시스템 연동을 돕는 MCP 서버 구현기
토스페이먼츠 문서를 로컬 MCP로 제공하고자 거친 모든 의사 결정 과정이 공유되어 있습니다.
문서 내 키워드 관련성 분석을 미리 거친 Machine-Readable 한 청크 저장소를 구축하는 노력이 가장 흥미로웠네요.


요즈미나









