https://github.com/bglgwyng/deferred-cleanup-resource-map 이런 라이브러리를 만들었다. ref counting 해서 GC 해주는 map인데, 해제를 임의로 늦출수 있다. LRU 캐시같은걸 일반화한 형태라고 보면 된다.
이름이 참 저질인데, 나도 upyo같은 센스있는 이름을 붙이고 싶었지만, 이게 클로드랑 머리맞대서 나온 최선이다;;
@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을 만들고 있습니다.
https://github.com/bglgwyng/deferred-cleanup-resource-map 이런 라이브러리를 만들었다. ref counting 해서 GC 해주는 map인데, 해제를 임의로 늦출수 있다. LRU 캐시같은걸 일반화한 형태라고 보면 된다.
이름이 참 저질인데, 나도 upyo같은 센스있는 이름을 붙이고 싶었지만, 이게 클로드랑 머리맞대서 나온 최선이다;;
최근 Hackers' Pub 을 통해 축적해 놓은, 시간날 때 우선해서 가지고 놀아볼 애들 (관심가는 애들)
wezterm
, Zed
, mise
, chezmoi
https://hackers.pub/@hongminhee/01980786-9502-7714-9f41-1b40181e090a
https://hackers.pub/@kodingwarrior/2025/cli-tools-what-i-love-wezterm
요즘엔 Linux를 메인으로 쓰긴 하지만… X에서 macOS 필수 설치 목록을 서로 공유하기에, 나도: Homebrew, Git, GNU Bash, 1Password, WezTerm, Neovim, Zed, Visual Studio Code… 이 정도인 듯?
요즘엔 Linux를 메인으로 쓰긴 하지만… X에서 macOS 필수 설치 목록을 서로 공유하기에, 나도: Homebrew, Git, GNU Bash, 1Password, WezTerm, Neovim, Zed, Visual Studio Code… 이 정도인 듯?
hackers.pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
내 프로젝트에 이제 js dot org 도메인이 붙기 시작했다.
요즘 웹을 많이 하고 있는데 정말 단순한 기능 하나도 뭐 이리 구현할게 많은지요...
Upyo: Simple and modern email sending library for JavaScript https://lobste.rs/s/x3y6ls #javascript
https://upyo.org/
@bglbgl gwyng 그런 부분도 있고, 코드의 수명도 더 짧다는 인식이 있어서 그런 것도 있는 것 같아요.
@hongminhee洪 民憙 (Hong Minhee) 위에 제가 한 얘기를 약간 다르게 말하는 방법이 생각났는데, 우리가 쓰고있는 언어가 라이브러리 만드는 작업까진 좋은 언어지만 앱개발 작업에는 아직 구린 언어일수 있어요
애플의 수전노적인 앱 업데이트 정책
잘 알려지지 않은 사실이지만, 애플의 앱 스토어는 스토어프론트 UI는 꽤 많이 변했지만 그 안쪽은 그렇게 변하지 않았습니다. 여전히 앱스토어의 결제 관리를 위해 맥에서는 Music 앱을 사용할 필요가 있는 것이 이를 여실히 드러냅니다. 사실 사태는 좀 더 심각해서, 앱을 다운로드 받거나 업데이트하는 것을 '구입'으로 처리하던 WebObject 기반의 iTunes Music Store 시절의 시스템을 수선해 사용하던 초창기 앱 스토어 때와 달라진 게 없습니다. …
Hello, Fediverse!
이거 모든 2-letter code의 조합이 테이블 형태로 나와 있는 게 뻘하게 웃기다
예전에 윈도가 필요해서 피방에서 코딩 몇 번 한 적 있는데 매번 프로그램 깔기 귀찮아서 그냥 관련 프로그램 한 번에 설치하기 위한 명령어 페이지를 블로그에 뚫어놨었음 https://chomu.dev/choco
Not worked on my device
ripgrep, comby 조합으로 코드베이스 검사/수정하고 있는데 아주 편하다
오늘의 작업공간은 서귀포 한경면에 위치한 산노루
Show GN: Upyo: 현대적인 JavaScript/TypeScript용 크로스 런타임 이메일 전송 라이브러리
------------------------------
안녕하세요. 개인적으로 이메일 발송 라이브러리를 만들어서 공유해봅니다.
## 왜 만들게 되었나요?
최근에 여러 프로젝트를 진행하면서 Node.js, Deno, Bun 등 다양한 런타임을 사용하게 되었는데, 이메일 발송 부분에서 매번 다른 라이브러리를 찾거나 설정을 다시 해야 하는 불편함이 있었습니다. 특히 D…
------------------------------
https://news.hada.io/topic?id=21971&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
에디터에서의 undo/redo가 그냥 버전관리랑 통합됐으면 좋겠다. 그러니까 undo 한 다음, redo로 다시 돌아가지 않고 다른 수정을 하면, 그 끝점이 anonymous commit 같은 걸로 남는거지.
LLM을 이용한 코딩에 대한 생각이 최근 몇달간 많이 바뀌었는데, 사실 영향의 40% 정도는 아민 로나커의 트윗들에서 받은 것 같다. 오늘 보니 유튜브 비디오들도 올리는 것 같아서 이번 주에 한번 잘 살펴볼 예정. https://www.youtube.com/watch?v=Y4_YYrIKLac
안경을 깜박하고 출근한 사람
그게 바로 나예요
입코딩 실습하게 생김
평소에 GraphQL 설계를 할 때 권한에 따라서 같은 리소스의 타입을 다르게 (예를 들어 프로필 타입을 MyProfile
과 PublicProfile
로 나눈 후 PublicProfile
에만 email
등의 필드를 구현한다던가) 하는 설계를 많이 했었는데 Relay에 호환되게 짜려고 하니 node(id) 구조랑 충돌하는 거 같아서 고민이다... id만으로는 그게 Public인지 My인지 알 수도 없고...
듀오링고 친구 하실분
For your information, you can install the fedify
command through Homebrew or npm:
brew install fedify
npm install -g @fedify/cli
초기 스타트업에는 별도의 플랫폼 엔지니어링 팀이 필요하지 않을 수 있다. 작은 규모의 조직에서는 애플리케이션 엔지니어들이 플랫폼 엔지니어링 업무를 겸하곤 한다. 공유 코드의 문제점이 증가해 자발적인 기여로 감당하기 어려울 정도가 되면 플랫폼 엔지니어링 팀을 구성할 때다. 최초의 플랫폼 엔지니어링 팀은 다른 엔지니어링 조직과 강한 연결을 유지해야 하며, 과도한 수준의 플랫폼을 구축하지 않도록 주의해야 한다.
이 문제 자체보다 '지나친 시스템 중심 접근', '과도한 개발 중심 접근' 같은 문제가 팀에 해를 입힌다는 것을 모두가 동일한 수준으로 이해하는게 더 어려운 문제처럼 느껴진다. 원글에 "리더십은 권위에 호소하며 표준을 규정해버리곤 한다." 라는 서술이 있는데, 리더십은 실무와 멀어지면서 정말로 팀에 필요한 관심사와 전혀 다른 문제를 고민하는걸 보아왔다.
개인으로서는 리더를 조금씩 해킹하는 것 이외엔 수단이 안보이는데, 이런 짓을 하다보면 현타가 온다. 성실히 임하면 문제를 해결하기 위한 자원을 기대하지 않는 곳에 사용하거나, 같이 일한 동료들을 인정하는 대신 본인의 노고와 보상을 높게 치면서 다른 동료들이 힘들어하고, 코드베이스와 협업문화에 관찰하기 힘든 레버리지들이 쌓이는게 눈에 보이기 때문이다.
보통은 이런 인식자체를 못할 뿐더러, 이런 주장을 인정하려고도 하지 않는다. 단기적으로 본인에게 득이 되는 것 보다 잃는게 많고 현재에 너무 만족스럽거나 고된 스트레스에 시달리기 때문이다. 이런걸 무시할 수 있는 사람은 싸이코패스 내지는 책임 선긋기의 달인 정도이기 때문에, 나한테 신뢰할 수 있는 리더라는 존재는 유니콘에 좀 더 가깝다.
문제를 해결하는 리더란 존재를 만나보고 싶다.
랭귀지 서버 기능 지원되면서 손으로 일일히 수제코딩하는 목적으로는 Zed가 괜찮은듯. Neovim에 너무 많이 세팅해놨어......
유인동님 멀티패러다임 프로그래밍 재밌게 읽어서 적용해보고는 싶은데 페디파이에 적용하면 좀 그렇겟지...?
After 15 years of writing #Haskell code, I think I am finally ready to understand Lenses and Optics.
Javascript/Typescript 생태계에는 소스코드 간 의존관계를 유향그래프(Direct Graph)로 시각화하는 CLI 도구가 있다는 사실... 알고 계신가요? madge, 적극적으로 추천합니다.
그냥 JS/TS 프로젝트 뿐만이 아니라, jsx 파일이 들어간 경우도 의존관계를 아름답게 시각화해줍니다. fedify 소스코드 통독하면서 이걸 적극적으로 써볼까 합니다. 마치.... 탐정이 사건 추적하면서 지도에 X 표시하는 감성으로...
이번에는 디렉토리 단위로 그룹화한 버전...
depcruise fedify --include-only "^fedify" --output-type dot -- fedify/**/*.ts | dot -T svg > dependency-graph.png
dependency-cruiser라는 리포지토리도 있다.
Introducing #Upyo!
A simple, cross-runtime email library that works seamlessly on #Deno, #Node.js, #Bun, and edge functions. Zero dependencies, unified API, and excellent testability with built-in mock transport.
Switch between #SMTP, #Mailgun, #SendGrid without changing your code. Available on #JSR & #npm!
노는 랩탑 하나를 장난감용으로 밀어버려야겠군요. 이번엔 NixOS를 써보려 합니다.
어제 OSSCA 끝나고 큐브러버 보러 갔는데
화장 지우고 그대로 잠들었음.... 피곤했나바
생각해보니 여기선 해시태그를 한 번도 써본 적이 없네요 추천 알고리즘을 좋아하지 않는게 #fediverse 의 분위기다 보니, 서로 관심사를 공유하는데엔 해시태그가 주로 사용되고 있습니다.
내일은 진짜 mock 작업하던거 끝낸다
I made a quiz about the JS Date parser. It's very easy and you will score very high.
오 이렇게도 추가할수 있음!!
Oynx boox 아주 만족스럽다.. 일단 아이패드 보다 가볍고 눈이 덜 피로함
이제 발대식도 했으니까 빡겜모드다
모든 OS에서 웹콘텐츠 렌더링이 가능한 경량화된 js 엔진을 만들고싶다
제발 TC39 Temporal 주세요
제발
I scored 11/28 on https://jsdate.wtf and all I got was this lousy text to share on social media.
OSSCA 너무 일찍 도착했다....
OSSCA 거의 도착 인데 1시간 가까이 남음...
OSSCA 발대식에 사람이 정말 많다.
정말 파파괴의 언어...
I scored 11/28 on https://jsdate.wtf and all I got was this lousy text to share on social media.
피드 내리다가 살짝 위로 스크롤하면 탑바(네비게이터)가 노출 되면 편할꺼 같다
튜사에 왔는데 몰입형 공간이 꽉차서 더블 모니터를 못쓰는 관계로, 어쩔수없이 오늘은 하스켈을 좀 해야겠다...
OSSCA 발대식 옴
I got suddenly inspired yesterday to build an email sending library for Node.js/Deno/Bun/edge functions. Meet Upyo: a TypeScript-first email library with a unified API that works across all JavaScript runtimes. It features pluggable transports (SMTP and Mailgun so far), built-in connection pooling, and comprehensive type safety. Still early days but already loving how clean the API turned out!
By the way, check out this cute Upyo logo here! Just FYI, 郵票 (upyo) means postage stamp in Korean. You can view the SVG source code on GitHub.
I got suddenly inspired yesterday to build an email sending library for Node.js/Deno/Bun/edge functions. Meet Upyo: a TypeScript-first email library with a unified API that works across all JavaScript runtimes. It features pluggable transports (SMTP and Mailgun so far), built-in connection pooling, and comprehensive type safety. Still early days but already loving how clean the API turned out!
洪 民憙 (Hong Minhee) shared the below article:
Lee Dogeon @moreal@hackers.pub
이 글은 AI도 틀리는 JavaScript 퀴즈를 풀면서 발견한 JavaScript의 흥미로운 동작 방식에 대한 탐구 과정을 담고 있습니다. 퀴즈의 예제 코드를 실행했을 때 예상과 다른 결과가 나타난 이유를 분석하며, JavaScript에서 세미콜론 자동 삽입(Automatic Semicolon Insertion) 규칙과 쉼표 연산자의 동작 방식을 설명합니다. 특히 배열이 객체의 프로퍼티 키로 사용될 수 있는 이유를 파악하기 위해 ECMAScript 명세를 깊이 파고들어 `Symbol.toPrimitive`라는 개념을 소개합니다. 이를 통해 객체가 프로퍼티 키로 사용될 때 JavaScript 엔진이 어떻게 객체를 문자열로 변환하는지, 그리고 `Symbol.toPrimitive`를 사용하여 이 동작을 어떻게 커스터마이징할 수 있는지 보여줍니다. 비록 퀴즈의 정답과는 거리가 멀어졌지만, 이 과정에서 얻게 된 새로운 지식을 공유하며 JavaScript의 숨겨진 동작 원리를 이해하는 데 도움을 줍니다.
Read more →洪 民憙 (Hong Minhee) shared the below article:
중고 자몽차(따뜻함) @dvbeetle@hackers.pub
이 JavaScript 퀴즈는 `age` 객체와 `preferences` 객체를 사용하여 각 이름에 대한 나이를 출력하는 문제입니다. `forEach` 메서드를 통해 배열의 각 요소(이름)를 `printAge` 함수에 전달하고, 이 함수는 템플릿 리터럴을 사용하여 "name is age" 형태의 문자열을 콘솔에 출력합니다. Claude Opus, GPT 4.5, Gemini 2.5 Pro와 같은 고급 AI 모델들도 이 문제에서 오답을 냈다는 점이 흥미롭습니다. 이 코드를 통해 JavaScript의 객체 접근과 배열 메서드 사용법을 다시 한번 상기할 수 있습니다.
Read more →튜링의 사과 매주 주말마다 간다고 계산하면... 한달에 10만원 쯤 나가는구나... 거기 그 민생지원금 사용 되나요????