Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 Hackers' Pub 的開發者!

Website
hongminhee.org
GitHub
@dahlia
Hollo
@hongminhee@hollo.social
DEV
@hongminhee
velog
@hongminhee
Qiita
@hongminhee
Zenn
@hongminhee
Matrix
@hongminhee:matrix.org
X
@hongminhee
0
1
1
0

@hongminhee洪 民憙 (Hong Minhee) 제 블로그에서 인용한 W3C CSS3 명세 내용에 따르면 범용성이 높은 클래스를 남용하기보다, 마크업의 구조를 따라 작성하라고 권장하고 있습니다. 꽤나 오래된 권장 사항으로 블로그 글의 레퍼런스를 조사하면서 저 명세를 CSS2 명세(2004년)로부터 알게 되었습니다.

data 어트리뷰트를 WAI-ARIA로 치환해서 같은 결과를 내놓을 수 있는데요, 이 방법의 장점은 좀 더 마크업 및 CSS Rules 작성에 대해 웹 표준을 근거로 명확한 디자인시스템을 만들 수 있다고 생각합니다.

 - my-card:state(loading) { 
+ my-card[aria-busy="true"] {
  background: url(./spinner.svg)
} 

- my-card:state(loaded) {
+ my-card[aria-busy="false"] {
  border: 2px solid green;
}
0
5
6
4

Existential Lens란걸 알게되었는데 정의는 다음과 같다

data Lens s a = forall c. Lens (s -> (c, a)) ((c, a) -> s)

돌무식 렌즈(get, set 레코드)보다는 좀더 어렵지만 Van Laarhoven Lens보다는 훨씬 더 직관적이라서 렌즈의 이해에 도움이 많이 되었다.

전체 설명은 요깄다.

7
6
1

어제부터 Jujutsu라는 버전 관리 시스템을 써보고 있습니다. git의 branch는 연속적인 단일 작업을 표현하는 느낌이 강하게 드는데 사실 그저 어느 commit을 가리키는 포인터일 뿐이라는 걸 느끼게 해주네요. Jujutsu에서는 같은 커밋에서 다음 커밋을 여러 개 만들면 그게 브랜치이고, 여러 커밋을 parent로 하는 커밋을 하나 만들면 그게 머지이고, 수정이 다 끝나면 그냥 원하는 브랜치 이름의 포인터를 적절히 옮기면 됩니다. 부분 변경을 커밋 간에 자유롭게 옮길 수 있는 것까지 합치면 재미있는 사용 방법이 많이 있을 것 같습니다. 특히 megamerge workflow를 쓰면 git 쓰다가 생겼던 "지금 하는 작업을 끝내야 다음 변경사항을 작업"하는 강박이 해소될 것 같아 기대가 많이 됩니다.

12

Claude Code 공식 문서에 따르면:

현재 Claude Code는 Windows에서 직접 실행되지 않으며 WSL이 필요합니다.

…라고 하고 있지만, Git for Windows가 깔려 있을 경우, Git Bash 안에서는 문제 없이 사용 가능하다. 다만, npm으로 설치할 때 scripts/preinstall.js 스크립트에서 Windows인지 검사하는 부분이 있어서 오류가 나며 설치가 중단되는데, 해당 스크립트는 오로지 Windows인지 검사하는 역할만 하고 있기 때문에[1] 아래와 같이 npm이 해당 스크립트를 실행하지 않도록 우회해도 설치에 문제가 없다:

NPM_CONFIG_IGNORE_SCRIPTS=true npm install -g @anthropic-ai/claude-code

다만 명령 프롬프트나 PowerShell에서 Claude Code를 실행시키려 할 경우 SHELL 환경 변수가 정의되어 있지 않기 때문에 오류가 난다. 그래서 Git Bash 안에서 Claude Code를 실행해야 한다.

일단 이렇게 설치해서 조금 써 본 결과 크게 문제는 없는 걸로 보인다.


  1. 해당 스크립트는 아래 코드가 전부다:

    /**
     * Preinstall script to check for Windows environment and exit gracefully 
     * with an informative message if detected.
     */
    
    // Check if running on Windows
    if (process.platform === 'win32') {
      console.error('\x1b[31m%s\x1b[0m', 'Error: Claude Code is not supported on Windows.');
      console.error('\x1b[33m%s\x1b[0m', 'Claude Code requires macOS or Linux to run properly.');
      console.error('\x1b[33m%s\x1b[0m', 'If you are using WSL (Windows Subsystem for Linux):');
      console.error('\x1b[33m%s\x1b[0m', '  1. Make sure you are running npm install from within the WSL terminal, not from PowerShell or CMD');
      console.error('\x1b[33m%s\x1b[0m', '  2. If you\'re still seeing this message in WSL, your environment may be incorrectly reporting as Windows');
      console.error('\x1b[33m%s\x1b[0m', 'Please visit https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview#check-system-requirements for troubleshooting information.');
      process.exit(1);
    }
    ↩︎
7

데스크톱 PC에 Fedora Linux를 설치해서 쓰게 되면서, 나한테 남은 Windows 컴퓨터가 Surface Pro 9 말고는 없게 되었는데, 스펙이 떨어지다 보니 가끔 Windows에서만 할 수 있는 작업을 할 때 좀 답답하긴 하다. Surface Pro 9 처음 샀을 때는 이렇게 답답하진 않았는데, 역시 모든 건 상대적인 듯…

1

@z9mb1wwj 저는 온갖 할일 관리 앱을 써봤는데 결국에는 Apple 기본 미리 알림 앱에 정착했습니다… 의외로 다른 앱보다 기본 미리 알림 앱에 고급 기능이 더 많더라고요. @theeluwin제이미 님의 아래 글도 참고해 보시면…

1
5
1
1
6
5
6
0
4

洪 民憙 (Hong Minhee) shared the below article:

RI 알고리즘 적용 작업중 잡담

Hyaline @hyaline@hackers.pub

기존 플러그인의 검색 알고리즘 속도 문제에 직면하여, Subgraph isomorphism 문제 해결을 위해 다양한 논문과 알고리즘을 탐색하고 RI, ArcMatch, VF3 등의 솔루션을 검토한 과정을 소개합니다. 특히 RI 알고리즘을 플러그인에 통합하는 과정에서 겪은 어려움과, 알고리즘의 복잡성 때문에 코드를 완전히 이해해야만 플러그인의 설계 의도에 맞게 수정할 수 있었다는 점을 강조합니다. Rider의 LLM 기능을 활용하여 코드를 분석하고 이해하는 과정을 거쳐, 재귀 없이 배열 기반으로 트리 순회하는 흑마술 같은 코드를 처음 접하며 겪는 혼란과 즐거움을 공유합니다. 타인의 오랜 노력이 담긴 결과물을 빠르게 습득하는 과정에서 느끼는 달콤함과 만족감을 표현하며, 이 경험이 과거 공부에 어려움을 겪던 자신에게 큰 동기부여가 되었을 것이라는 소회를 밝힙니다.

Read more →
2

日本語(일본어)에서는 「非推奬(비추장)」이라는 말을 쓴다는데, 韓國語(한국어)에서는 「推奬(추장)」이라는 말을 잘 쓰지 않으니 「非推薦(비추천)乃至(내지)는 「非奬勵(비장려)程度(정도)가 되려나? 듣고 보니 「止揚(지양)」 같은 말로 翻譯(번역)해도 좋을 것 같기도…?

2

@hongminhee洪 民憙 (Hong Minhee) 조금 길지만 제거 예정(예문: Features deprecated / 제거 예정인 기능)이 그럭저럭 쓸만한 번역어인 거 같고요. Gemini를 굴려보니 재밌는 번역어를 몇 제시해주네요.

  • 폐기 예정 / 폐지 예정
  • 비권장 / 지원 중단 예정
  • 구식 / 낡은 / 노후화된 / 대체될
  • 사양길의 / 저물어가는 / 쇠퇴한

다만 여전히 제게는 '제거 예정/제거할'이 가장 와닿네요.

  • This is a deprecated feature / 제거할 기능이야.
  • Have you marked it as deprecated? / 제거 예정이라 적어놨어?
  • Removed recently deprecated features / 최근 제거 예정이었던 기능을 지웠습니다
  • Don't use deprecated features / 제거될 기능은 사용하지 마
5

日本語(일본어)에서는 「非推奬(비추장)」이라는 말을 쓴다는데, 韓國語(한국어)에서는 「推奬(추장)」이라는 말을 잘 쓰지 않으니 「非推薦(비추천)乃至(내지)는 「非奬勵(비장려)程度(정도)가 되려나? 듣고 보니 「止揚(지양)」 같은 말로 翻譯(번역)해도 좋을 것 같기도…?

1
0
0
1
2
0
0
2
1

LogTape 0.12.0 Release Notes

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

LogTape, a zero-dependency logging library for JavaScript and TypeScript, has released version 0.12.0 with several enhancements. The update introduces a new `trace` log level for more granular debugging and improves file sink performance through configurable buffering. A significant addition is the `@logtape/syslog` package, enabling log message transmission to syslog servers using RFC 5424. The update also includes `Logger.warning()` as an alias for `Logger.warn()` for consistency. Furthermore, all LogTape packages now share unified versioning for better compatibility. The build infrastructure has been migrated from `dnt` to `tsdown`, enhancing compatibility with modern JavaScript toolchains and improving build times. This release optimizes logging capabilities and ensures smoother integration with various JavaScript runtimes.

Read more →
9
0
5
0
4
3
1
2