한빛미디어 @minhyeok민혁
인사이트
@skeorl2916진불
@seha
이렇게 IT 도서 출판사 분들이 계십니다
@hongminhee@hackers.pub · 611 following · 407 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.
한빛미디어 @minhyeok민혁
인사이트
@skeorl2916진불
@seha
이렇게 IT 도서 출판사 분들이 계십니다
한빛미디어 @minhyeok민혁
인사이트
@skeorl2916진불
@seha
이렇게 IT 도서 출판사 분들이 계십니다
@kodingwarriorJaeyeol Lee 인사이트
@insight한기성 님도 계세요.
코딩 얘기
Claude
API 연동해서, Opus 4
모델로 짤막하게 써봤는데 요청당 거의 0.4$ 정도씩 사라지는 것을 목격하고, API 는 쓰면 안되겠구나 싶었습니다. (대충 5불 순삭)Opus 4
와 gemini-cli gemini-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 Tab
은 훌륭하다고 생각하지만, 연간구독이 만료되고 나면, Cursor
를 계속 사용할지는 고민을 해봐야 할 것 같습니다. VS Code 를 써도 되고, Windsurf 같은 대안도 있고요.그렇게, 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: an 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: an 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
모델로 살짝 수정했습니다.
바로바로 한영, 영한 변환하니까, 너무 편하고 좋네요. 다른 언어도 추가하고 그외 다른 활용 요소들도 생각 나서, 앞으로도 이것저것 만져볼 것 같네요.
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 프로필 참고
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: an 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 멘션을 선택하는가
@hongminhee洪 民憙 (Hong Minhee) transifex를 통해서 할 방법은 없나보네요,,, django 자체에 저 기능을 추가해야할지,,,
@theeluwin제이미 Django 자체에 국제화 기능이 있는 거죠? 어떻게 잘 하면 통합이 가능할 것 같긴 한데요… 🤔
transifex로 django 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...
transifex로 django 번역을 좀 더 하고 있는데요, 을를이가를 어떻게 처리하는게 좋을까요? 조사를 전부 빼는것도 능사는 아닌것 같은데...
@theeluwin제이미
korean
같은 패키지를 활용하셔야 하지 않을까요?
洪 民憙 (Hong Minhee) shared the below article:
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 추가하는 게 마음에 안 든다.
If you're building a JavaScript library and need logging, you would love LogTape https://hackers.pub/@hongminhee/2025/logtape-for-libraries
If you're building a JavaScript library and need logging, you'll probably love LogTape
LogTape offers a novel approach to logging in JavaScript libraries, designed to provide diagnostic capabilities without imposing choices on users. Unlike traditional methods such as using debug packages or custom logging systems, LogTape operates on a "library-first design" where logging is transparent and only activated when configured. This eliminates the fragmentation problem of managing multiple logging systems across different libraries. With zero dependencies and support for both ESM and CommonJS, LogTape ensures minimal impact on users' projects, avoiding dependency conflicts and enabling tree shaking. Its universal runtime support and efficient performance make it suitable for various environments. By using a hierarchical category system, LogTape prevents namespace collisions, offering a seamless developer experience with TypeScript support and structured logging patterns. LogTape provides adapters for popular logging libraries like Winston and Pino, bridging the transition for users invested in other systems. Ultimately, LogTape offers a way to enhance library capabilities while respecting users' preferences and existing choices, making it a valuable consideration for library authors.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
In just a few days, the LogTape repository's star count has skyrocketed past Fedify's repository stars…