Profile img

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).

FedifyHolloBotKit、そしてこのサイト、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
1
6
2
3
5
8
0
0

오늘 모임 전까지는 만들어서 공개하고 싶었는데ㅠㅠ 수업 준비가 바빠서 진도를 못내고 있네요... 사실 PF까지는 다 만들었는데 문서 쓰는게 일입니다... 각종 튜토리얼에, 차근차근 진행할 수 있는 가이드라인에 등등.... 그래도,,,, 많이 기대해주세요,,, 년 단위 프로젝트가 되겠지만...

8
1
4

https://referral.akaiaoon.dev/

github referral 사이드 플젝을 드디어 외부공개했읍니다... 적당히 추천하시고, 본인이 받은 추천사는 https://referral.akaiaoon.dev/api/recommendations/:github_id 로 URL 링크를 거시면 대충 svg가 말려옵니다. 깃허브 프로필에도 마크다운으로 링크 가능합니다.

예: 말코링

아직 임시라 수정 요청 혹은 피드백은 환영합니다.

5
7
6
0
0
2
2
7
1
2
5
1

We've just published an experimental pre-release version 1.9.0-pr.431.1597 that adds CommonJS support to all npm packages in the Fedify ecosystem! 🧪

What's new

This experimental build addresses one of the most requested features—better compatibility with CommonJS-based Node.js applications, especially NestJS projects. The pre-release eliminates the need for Node.js's --experimental-require-module flag and resolves dual package hazard issues.

Note: While we now support CommonJS for legacy project compatibility, we still recommend using ESM or migrating to Deno for the best experience with Fedify.

Who should test this?

  • NestJS developers using Fedify who need CommonJS compatibility
  • Legacy CommonJS-based Node.js projects that had trouble integrating Fedify
  • Anyone who previously needed experimental Node.js flags to use Fedify

How to test

Install the experimental pre-release version:

npm install @fedify/fedify@1.9.0-pr.431.1597
# or for specific integrations
npm install @fedify/nestjs@1.9.0-pr.431.1597

You should now be able to use standard require() syntax without any experimental flags.

What we're looking for

  • Does CommonJS import work correctly in your legacy project?
  • Are you able to remove the --experimental-require-module flag?
  • Any issues or regressions compared to the current stable version?

Your feedback on this experimental build is invaluable for ensuring this major compatibility improvement works smoothly before the official 1.9.0 release!

0
2

나루 UI를 전면적으로 개편했습니다. 먼저 메인 화면에 오이카페타이포 블루의 광고를 넣었고요 (...) 파일 탐색기와 에디터를 좀 더 사용하기 편하게 개선했습니다. 또, 어떤 이유로든 나루를 떠나 다른 곳에서 사이버 보금자리를 차리고 싶은 분들을 위해 나루 갠홈 다운로드 기능을 추가했습니다. 앞으로도 잘 부탁드립니다!

광고가 삽입된 나루 홈페이지 스크린샷새로워진 나루의 파일 탐색기 스크린샷갠홈 다운로드 버튼 스크린샷
8
0
0
6

Whoa, as of 10 days ago we have functions to go between a Uint8Array and a Base64 Normal/URL Padded/Unpadded string in JavaScript without having to go via a String of “bytes” and manually juggle the padding in every major browser.

What a time to be alive.

1
9
6

Finally, embrace provisional trust. The wizard model means working with “good enough” more often, not because we're lowering standards, but because perfect verification is becoming impossible. The question isn't “Is this completely correct?” but “Is this useful enough for this purpose?”

https://www.oneusefulthing.org/p/on-working-with-wizards

마지막으로, 잠정적 신뢰를 받아들이세요. 마법사 모델은 ‘충분히 좋은’ 상태로 더 자주 작업하는 것을 의미합니다. 기준을 낮추기 때문이 아니라 완벽한 검증이 불가능해지고 있기 때문입니다. 핵심 질문은 “이것이 완전히 정확한가?”가 아니라 “이것이 이 목적에 충분히 유용한가?”입니다.

— 위 인용을 DeepL로 번역

전적으로 동의하고 애자일 관점에서도 좋은 방향이라고 생각하지만, 완벽주의적인 성향이 있는 사람으로서 무시하기 어려운 심리적 저항이 꽤 자주 발생하곤 한다. 에이전트를 위한 지침을 자세히 적는 것으로 최대한 타협할 수 있을 것 같은데 아직 맘에 쏙 드는 방법을 발견하지는 못함.

1
2
6
0
0
1
4

부연설명을 하자면. Git에선 브랜치 자체로는 '변경 사항'이라는 의미가 없습니다. 왜냐면 끝점만 있고 시작점만 있으니까요. 변경 사항을 논하려면 비교 대상인 커밋이 필요합니다.

Rebase를 하는 이유는 연속된 커밋들로(예쁩니다) '변경 사항'을 나타내기 위해서입니다. 그 의도한 '변경 사항'을 만들기 위해, 비교 대상이 될 커밋을 바꾸는게 리베이스입니다. 그러니까 개발자가 의도한 diff를 그대로 표현하지 못해서, diff = head - x니까 이 방정식을 만족시키는 x 커밋을 찾아서 diff를 의도한데로 계산되게 만드는거지요.

참 뻘스럽습니다.

1
14
3
4
3

친구 회사에서 react-form-mozard의 잠깐 언급되었는데, Generator 기반인게 문제가 되어 도입이 바로 기각되었다. yield*async, await, try, catch 등등과 달리 혐오스러운 외양을 갖고 있는게 문제가 되었다. 여러분 제발 키워드 차별을 멈춰주세요ㅠㅠ

5

오래 전

현대 컴퓨터는 계산기라기보다는 복사 기계에 더 가깝다

는 문장을 읽었고 그것에 대해 종종 생각함. 생각해 보면 정말 하는 일이 대개 그런 것에 속한다고 느낌. 어딘가에 있다는 데이터를 모으고 가공하고 정제해서 또 어딘가에 두고 그걸 누군가 가져갈 수 있게 하는 일 끊임 없이 반복함. 데이터의 형식이나 크기나 여러 속성이 다양하고 그래서 다루는 방법과 기술에도 많은 차이가 있지만 어쨌든. 요즘 종종 인용되는 타입 검사는 해결책이 아니라 증상이다(Type Checking is a Symptom, Not a Solution)에 대한 반응들을 보고 직렬화 글과 거기 인용된 인터넷은 디버깅 모드로 돌아가고 있다는 글까지 떠올랐음.

(이 글은 Hackers' Pub에서 제공하는 Markdown 문법 가이드에 익숙해지기 위한 시도로 작성함.)

5

CJS/ESM 문제를 한 번 밟으면 그날 하루는 순삭이다. 심지어 이 문제는 자바스크립트 생태계 전반에 광범위하게 걸쳐 있기 때문에 파악도, 해결도 쉽지 않다. require(esm)이 모든 걸 해결해줄 것이라고 생각했지만 갈 길이 멀다...

4
4

올만에 컴파일러 lexical analysis 설명 읽으니깐 짱 재밌으면서도 동시에 쓰여진 코드도 이해하려고 하니깐 머리가 터질 것 같군...닝겐이 자연어를 처리하는 과정도 재밌는데 기계가 입력 기호들을 처리하는 걸 들여다볼 수 있다는 사실 그 자체가 되게 신기한 것 같다. 전자는 언어라는 추상적 정보를 뭉탱이로 있다가 유링게슝하게 여러 층위로 쪼개서 (예: 통사, 의미) 순차적 혹은 병렬적으로 처리한다는 게 재밌고 후자는 기호를 임의의 단위로 쪼개는 과정들을 구현 수준에서 디테일하게 볼 수 있다는 게 짱 신기하다...여튼 머리도 식힐 겸 운동하러 가야지.

2

LogTape 1.1.0 is out! This release brings “fingers crossed” logging—buffer debug logs quietly, then get the full context when errors occur. Plus a new emit() API for integrating external log sources. Check it out:

https://hackers.pub/@hongminhee/2025/logtape-110

0

Claude에 따르면 대부분의 JavaScript 엔진에서 배열을 비울 때 a.length = 0과 같이 대입하는 게 가장 빠르고 최적화가 잘 된다고 하는데, 이걸 믿어야 할 지 말아야 할 지… 이게 사실이라고 해도 참 답이 없다고 느낀다. 🤦

5
1
1

소스코드 사이의 안정적인 하이퍼링크를 만들수 있는 기능이 없다. 가령 A.hs에서 주석을 쓰면서 B.hs의 foo란 함수의 구현의 특정 부분을 언급하고자 할때, 그냥 B.hs L:77 이렇게, 소스코드가 수정이라도 되면 바로 유효하지 않게되는 방식으로 언급할수 밖에 없다. 만약 소스 코드 어디에서든 전역적인 심볼을 자유롭게 선언할 수 있다면 이 문제를 해결할 수 있을텐데...

2

LWN.net의 What every programmer should know about memory 시리즈를 훑어 보고 나서 든 생각인데, 현대적인 컴퓨터의 메모리 모델이란 건 사용성 관점에서는 놀라울 정도로 투명하게 추상화되어 있으면서 동시에 성능 관점에서는 무시무시할 정도로 새는 부분이 많은 추상화인 것 같다.

인상깊었던 부분 중 하나는, 코드를 실행해 보기 전에는 완벽한 최적화가 사실상 불가능한 메모리 접근 패턴이 드물지 않게 발생할 수 있다는 건데, 이런 부분 때문에 JIT 컴파일러가 AOT 컴파일보다 잠재적으로 더 우수한 성능을 낼 수 있다는 주장이 있었던 걸까 싶다.

6
1