개인적으론 Velog의 상위호환이라고 생각하는 일본의 Zenn에서도 agentic coding이 굉장히 핫한듯
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 974 following · 683 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
"오늘의 해커뉴스 요약"이라고 한국어로 매일마다 해커뉴스를 한국어로 요약해서 보내주는 헤임달 프로젝트가 있었습니다. 언제부턴가 다시 다른 이름으로 부활했는데요...... 바로 요겁니다. https://every.news 좀 더 범용적인? 느낌으로 다시 부활한 것 같아요.
Thanks to @anaclumosSunghyun Cho
매일마다 해커뉴스를 요약해서 보내주는 뉴스레터는 요깄습니다 https://every.news/alerts/8XYPTZZVV7ZJ
오픈소스에서 아쉬운 점 발견 → 내가 기여해야지! → 혹시 모르니 issue, PR 확인해서 중복이 아닌지 체크 → 이미 해결된 문제였고 내가 사용법을 몰랐을 뿐 (그럼 접근성이 부족하니 문서라도 업데이트 할까? → 문서에도 적혀있었고 그저 내가 게을렀을 뿐)
https://github.com/riemannulus/suho.io/tree/main/apps/tools 이런 걸 만듦 (아직 url은 연결 안 함)
포인트는 새로운 툴을 추가할 때 moon run tools:new-tool 하면 알아서 스캐폴딩 해 줌
아주 편함
대체 클로드 코드는 뭐가 어떻길래 커서나 코파일럿 쓰시던 분들이 넘어가서는 안 돌아오는 거죠??
RxJS의 cold observable은 처음에 배울때 많이 헷갈린다. 하지만 쓰다보면 익숙해지고 오히려 우아해‘보이는’ 코드를 짤수 있게 된다.
근데 그 우아함이 거짓 우아함이란 생각이 든다. Cold observable은 subscribe 메소드를 이펙트풀하게 만든다. 아닌게 낫지않나? 내가 아는 모든 cold observable 사용은 명시적인 함수 호출(이펙트를 발생시키는)을 하나 추가하는 것으로 피할수 있다.
보통 러닝커브가 있는 기능이 오래 존속하고 있으면 고진감래의 미덕이 있는 법인데 얘는 좀 특이한 경우인듯.
한빛미디어 @minhyeok민혁
인사이트
@skeorl2916진불
@seha
이렇게 IT 도서 출판사 분들이 계십니다
한빛미디어 @minhyeok민혁
인사이트
@skeorl2916진불
@seha
이렇게 IT 도서 출판사 분들이 계십니다
@kodingwarriorJaeyeol Lee 인사이트 @insight한기성 님도 계세요.
코딩 얘기
- 어제
ClaudeAPI 연동해서,Opus 4모델로 짤막하게 써봤는데 요청당 거의 0.4$ 정도씩 사라지는 것을 목격하고, API 는 쓰면 안되겠구나 싶었습니다. (대충 5불 순삭) - 코드 에이전트 역할로 Claude Code
Opus 4와 gemini-cligemini-2.5-pro의 응답 결과물이 개인적으로 꽤 만족스럽네요. Claude Code 는 쓰다 보면 어느 순간Opus 4에서Sonnect 4로 바뀌어 있네요. 사용제한이 있나 싶습니다.
/status 명령으로 확인 해보면 아래 처럼 적혀 있긴 합니다.
Model • /model
LDefault Opus 4 for up to 20% of usage limits, then use Sonnet 4
(currently Opus)
- Cursor 를 여전히 쓰고 있고,
Cursor Tab은 훌륭하다고 생각하지만, 연간구독이 만료되고 나면,Cursor를 계속 사용할지는 고민을 해봐야 할 것 같습니다. VS Code 를 써도 되고, Windsurf 같은 대안도 있고요. - 코드 에이전트들이 CLI 에서 동작하니 에디터와는 독립적이지만 Claude Code 는 VS Code 확장으로 (자동 설치되어) 코드 변경사항을 에디터에서 바로 볼 수 도 있어서 좋네요.
그렇게, Claude Code 와 gemini-cli 가 화면의 일정 영역을 차지하기 시작했습니다..
jekyll 대신 pelican을 써보고 있습니다. Cursor에게 알아서 좀 짜라고 맡겨놨더니 링크가 모조리 깨지고 화면 템플릿도 제대로 안보이고 난리더라구요. 4시간동안 잡도리를 한 결과, 그냥 제가 처음부터 다시 다 짰습니다. 젠장... 암튼 pelican 쓸만 하네요. 어차피 대부분의 기능은 직접 구현해야해서, 최소한의 세팅만을 원했는데 충분히 제공하는것 같습니다. 공개할 수 있게되면 use case로써 공유해볼게요.
상시 #블친소 #개발자_블친소 (개발자/프로그래머 버전) 대학교 탈출을 꿈꾸고 있는 학부생입니다. 아직은 취미(🥲)로 게임/웹 개발을 하고 있고 간단한 SVG를 다룰 수 있습니다(갑자기??). 🌐 eatch.dev 🐱 github.com/EatChangmyeong 📝 @blog.eatch.dev (이전 중) 🎈 solved.ac/profile/dlau... (💙₅ 2294, CLASS 6)
지금 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 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...












