다시 힘을 내서 conal 리팩토링을 완성하고, haskell용 tree-sitter 바인딩을 만들고, 이것저것 마저 하자...
bgl gwyng
@bgl@hackers.pub · 95 following · 121 followers
GitHub
- @bglgwyng
@hongminhee洪 民憙 (Hong Minhee) 근데 저는 어떤 언어든 디버깅용 로깅을 그냥 프리미티브로 제공하는게 맞다고 생각해요. stdout에다가 print하는 거랑 별개로 개발용으로요. 가령 console.log가 NodeJS 에선 그냥 print인데, 브라우저 개발자 도구에선 go to call site가 되는 제가 원하는 형태입니다.
제가 가장 좋아하는 언어에 기여를 했어요!
bgl gwyng shared the below article:
정치적인 컨텐츠에 대한 생각
Jaeyeol Lee @kodingwarrior@hackers.pub
이 글은 사회생활에서 금기시되는 정치 이야기가 우리의 삶과 얼마나 밀접하게 연결되어 있는지를 고찰합니다. 저자는 정치적인 것이 단순히 정부나 정책에만 국한된 것이 아니라, 사람이 개입하는 모든 영역에 존재한다고 주장합니다. 다양성을 존중하는 문화를 만드는 것조차 정치적 행위로 볼 수 있으며, 정치 혐오가 만연한 사회일수록 정치에 대한 관심이 더욱 필요하다고 강조합니다. 특히, 무심코 사용하는 표현이나 접하는 콘텐츠가 특정 정치적 의도를 담고 있을 수 있음을 경계하며, 정치적 프레임에 갇히지 않기 위해서라도 사회와 정치에 대한 꾸준한 관심이 중요하다고 역설합니다. 이 글은 정치적 무관심이 오히려 위험할 수 있음을 시사하며, 독자들에게 비판적 사고와 균형 잡힌 시각을 갖도록 촉구합니다.
Read more →이제 Zed에서 Claude Code를 베타로 사용 가능
------------------------------
- Claude Code 와 Zed 의 통합이 공개 베타로 출시
- 새로운 *Agent Client Protocol (ACP)* 도입을 통해 다양한 에이전트와의 연결 확장 가능성 실현
- 개발자는 Zed 내에서 Claude Code를 실시간, 다중 파일, 커스텀 워크플로우와 함께 활용 가능함
- *Claude Code용 ACP 어댑터* 가 오픈소스로 공…
------------------------------
https://news.hada.io/topic?id=22887&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
@bglbgl gwyng 예전에 《애자일 이야기》에서 읽은 김창준 씨의 글 〈인터뷰에서 진실을 들으려면〉이 떠오르네요.
@hongminhee洪 民憙 (Hong Minhee) 좋은 글 공유 감사합니다! 근데 저는 면접 시작전에 제가 '진실' 이상의 뭔가를 뽑아낼수 있다는 야무진 꿈을 꿨었네요.
강릉에 다녀왔습니다. #photography
방금 친구랑 모의면접을 봤는데(내가 면접관), 면접으로 알아낼 수있는게 딱히 있는지에 회의가 생겨버렸다. 아 물론, 내가 초보 면접관이라 면접스킬이 떨어지긴 한다만, 친구 얘기론(면접관 경험이 더 많음) 그래도 무난의 범위엔 든다고 한다. 이력서 기반으로 이것저것 물었는데, 만약에 이력서가 구라로 점철되있으면 그걸 걸러낼순 있었을 것이다. 근데 친구의 이력서는 당연히 그렇지 않았으니, 그냥 이력서가 구라가 아니란 사실 정도만;; 알아낼수 있었다. 이 이상 뭔가 더 꿰뚫어 보는게 가능할까... 하겠지? 그럼 어떻게 하는걸까.
지난 몇 달간 htmx로 웹 앱을 만들면서 느낀 점은, 골디락스 존의 하위 50% 애플리케이션에만 htmx가 적합하다는 것이다. 클라이언트 상태를 조금이라도 다뤄야 하는 순간이 오면 불행이 시작된다. 하이퍼미디어 시스템의 철학에 동의하는데, 그 구현은 아일랜드 아키텍처의 접근법이 더 나을 수도 있겠다는 생각이 든다. https://deno.com/blog/intro-to-islands
디버깅을 하다가 도저히 모르겠어서 Gemini한테 시켜서 해보라고했는데, 걔도 나랑 똑같은 시도를 한다음에 잘 모르겠다고 하니까 덤앤더머같다;;
Parse, don’t validate는 언제 읽어도 좋은 글이다 https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
거의 반은 내가 기여했네 ㅎㅎ
@fedify/fedify: Custom Collection 디스패처 setter@fedify/cli:webfinger커맨드@fedify/next: 패키지 제작 및 예제 생성@fedify/sveltekit: 패키지 분리, 타입 수정 및 예제 생성@fedify/cfworkers,@fedify/denokv,@fedify/hono: 패키지 분리
GraphQL에는 어째서 ADT가 없을까…?
@hongminhee洪 民憙 (Hong Minhee) union + type 쓰면 비슷하게 되지 않나요?
Zed Industries가 코드 에디터와 코딩 에이전트 사이의 통신을 표준화하기 위해 Agent Client Protocol (ACP)이라는 걸 소개했다. 잘 돼서 Neovim의 AI 통합 생태계가 더욱 풍성해지면 좋겠다. https://agentclientprotocol.com/overview/introduction
https://well-typed.com/blog/2025/08/standard-chartered-supports-haskell-ecosystem/
제일은행을 먹은 SC(Standard Chartered)가 하스켈 생태계에 돈을 보태겠다네요. SC가 하스켈을 프로덕트에 조금씩 쓰고 있다는 얘기는 들은 적 있는데... 뭐 얼마나 후원하는지는 자세히는 안나와 있습니다만, 대기업 돈이 들어오면, 긍부정적 변화가 생기긴 하는데.. 툴체인이 정돈된다든지 해서 입문자한테 도움이 되는 변화가 생기면 좋겠습니다. 하스켈을 JS로 트랜스파일링 하는 컴파일러도 있는데, 막상 쓰려고 보면, 난이도가 너무 높아요.
#Optique 0.3.0 is out with dependent options and flexible parser composition, shaped by feedback from
@z9mb1wwj's work migrating @fedifyFedify: ActivityPub server framework CLI from Cliffy to Optique.
Nix는 시스템에 git이 있을 때와 없을 때의 동작이 다르다. 왜지... nix 내부에서 쓰는 git 라이브러리랑 git 패키지랑 뭔가 차이가 있나.
@nyeongAn Nyeong (安寧) 어떻게 다르죠? 저도 언젠가 밟을거 같아 미리 알아두고 싶네요.
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
지난 한달동안 개인적 이유로 코딩을 도저히 할수없는 상태로 지냈는데, 이제 좀 회복이 된거 같다..
bgl gwyng shared the below article:
React - useCallback & useMemo Misuse
Shahar Amir @shaharamir@hackers.pub
The `useCallback` and `useMemo` hooks in React are designed to optimize performance by memoizing functions and values, but using them indiscriminately can lead to unnecessary overhead. These hooks are beneficial when dealing with expensive calculations or when passing stable references to deeply nested child components. However, for simple operations like basic arithmetic or simple function declarations, the memoization provided by these hooks adds complexity without any performance gain. Overusing `useMemo` and `useCallback` introduces extra CPU cycles and can confuse developers, making the code harder to maintain. It's more efficient to apply these hooks selectively, focusing only on the parts of your application where they provide a tangible benefit, ensuring that React remains fast and your code stays clean.
Read more →I'm currently improving Optique's façade API, and in the process, I've added a few more parsers. Optique 0.3.0 might have some breaking changes on the API side. Of course, these changes will be thoroughly documented in the changelog.
Excited to share some great news from the #creative community! Oeee Cafe, a fantastic oekaki #drawing platform, just added #ActivityPub support today. This means all the amazing artwork being created there can now be shared and discovered across the #fediverse, which is such a wonderful step toward connecting creative communities.
Big shoutout to my friend
@jihyeokJihyeok Seo for building this platform and bringing it to the fediverse. It's always inspiring to see developers creating spaces for artists and then opening them up to the broader federated community. If you're into digital art or just appreciate seeing creative work, definitely worth checking out what people are sharing from Oeee Cafe on your timeline now. You can find me there at @hongminhee洪兔 if you want to connect!
Hackers' Public @ Seoul 1회차 모임 (1차 모집)
서울에서 열리는 Hackers' Pub 오프라인 밋업, "Hackers' Public @ Seoul"이 2025월 9월 14일(일) 처음으로 개최됩니다. 처음 열리는 밋업인 만큼, 참여하는 많은 분들이 재밌게 느낄 수 있는 소재 위주로 연사자 분들을 섭외했습니다.
- 일시 : 9월 14일 (일) 오후 3시 ~ 오후 6시
- 장소 : 서울특별시 성동구 상원길 26, 튜링의사과
- 주제
강연이 끝나고 난 뒤에 자유롭게 네트워킹하는 시간을 가질 예정입니다. 각자 얘기하고 싶은 주제를 들고 오시면 좋습니다.
참여 신청
오프라인 밋업은 여기서 참여신청이 가능합니다. https://event-us.kr/hackerspubseoul/event/110961
- 모집 기간
- 1차 모집 : 8월 27일 ~ 9월 1일 (Hackers' Pub에서만 모집)
- 2차 모집 : 9월 3일 ~ 9월 7일 (Hackers' Pub 외부에서도 공개적으로 모집)
주의사항
- 본 행사는 Hackers' Pub에서 진행하는 오프라인 행사이며, Hackers' Pub 계정을 가지지 않은 분이 신청하셨을 경우 환불처리될 수 있습니다.
- Hackers' Pub 외부에서 유입하시는 경우, 각 모집기간이 끝나고 24시간 안에는 Hackers' Pub에 가입이 되어 있으셔야 참여자로 확정됩니다.
Hackers' Pub은 현재 Fresh 프레임워크로 만들어져 있는데, Fresh 프레임워크의 한계를 벗어나기 위해 GraphQL + SolidStart 스택으로 넘어가는 작업(web-next)을 진행중입니다. 진행 상황을 관리하기 위해 에픽 이슈를 만들었습니다.
이번 FEConf 연사로 "모두를 위한 웹 접근성은 무엇이고, 어떻게 하나요? 💬 🔉" 웹 접근성의 가치와 실천 방법론에 대해 말했습니다.
제가 있는 A11YKR 커뮤니티의 자문으로 주어진 2개월 동안 알찬 자료를 만들어낼 수 있어 정말 감사했습니다. cc @resistanHyunjin Cho
@stelo_kim김태희 (탐정토끼)
만약 페디버스가 지금보다 훨씬 활성화되어서, 사람들이 커스터마이징된 개성있는 인스턴스를 갖게 되면, 그게 UX의 측면에서 정말로 좋을까요? 가령, 트위터를 하는데 사용자마다 UI가 다르다고 상상해보세요.
사실 저는 크게 부정적이진 않는데(좋은 쪽으로 개성있을수도 있으니까), 그런 상황이 머릿속에서 아주 잘 시뮬레이션 되지 않네요. 어떨거 같나요?
Vim에 관심있는, 혹은 Vim을 사랑하는 여러분, 안녕하세요.
한국어권 Vim 사용자 모임 vim.kr입니다. 오늘은 vim.kr에서 공식적으로 주최하는 모임 소식을 전해드리려 합니다.
혹시 *빔교정학원 모임(vimrc)*을 들어보신 적 있으신가요? vimrc 밋업은 2019년과 2022년에 3년 간격으로 개최된 바 있는데, 2025년부터는 저희 vim.kr이 그 바통을 이어받아 공식적으로 진행하게 되었습니다.
지난 7월 2일, 기존 vimrc 밋업을 주최하셨던 박현우(lqez)님께 연락을 드렸고, 이어 7월 6일 첫 회의를 통해 vim.kr에서 본 행사를 이어가기로 확정하였습니다.
이번 vimrc 밋업은 이전과는 조금 다른 방식으로 준비되고 있습니다. 특정 연사자가 발표하는 자리가 아니라, 모든 참가자가 동등한 입장에서 자신이 Vim을 어떻게 활용하는지 경험과 노하우를 공유하는 자리를 지향합니다. 즉, 발표 중심의 형식보다 네트워킹과 상호 교류에 초점을 맞춘 밋업입니다.
행사 규모는 약 36명으로 계획 중이며, 일정은 11월 둘째 주에서 셋째 주 사이로 조율하고 있습니다. 현재 대관 장소도 검토 중이니, 혹시 행사 장소 후원에 관심 있는 분이 계시다면 연락 부탁드립니다.
행사 관련 최신 소식은 vim.kr 디스코드를 통해 안내드릴 예정입니다.
많은 관심과 참여 부탁드립니다. 감사합니다.
日常에서 우리가 「知能」이라는 말을 써야만 하는 일은 그렇게 많지 않고, 그 말을 썼다면 程度의 差異가 있을 뿐 人種主義的 乃至는 優生學的으로 들리는 境遇가 많다고 느낀다.
FEConf 갈걸ㅠㅠㅠㅠ
# Ask Hackers Pub : 이번 주말에 뭐 하시나요?
이번 주말에 뭘 하려고 계획 중인지 편하게 얘기해 보아요.
읽을 책, 가볼 곳, 해볼 것.. 어떤 것이든 좋습니다.
도움 요청이나 피드백 요청도 좋습니다.
물론! 아무것도 하지 않고 쉬는 것도 훌륭합니다.
* 지난 주말에 계획하셨던 일의 회고도 한 번 남겨보면 좋을 것 같아요.
@botHackersPub Ask Bot conal 리팩토링하고 문서만들기!!!
오늘 튜사 오시는분 계신가요?
Open source projects I'm currently maintaining:
- Fedify, an ActivityPub server framework for TypeScript
- Hollo, an ActivityPub-enabled single-user microblogging software
- BotKit, an ActivityPub bot framework for TypeScript
- LogTape, a modern logging library for TypeScript
- Upyo, a simple and modern email sending library for TypeScript
- Optique, a type-safe combinatorial CLI parser for TypeScript
@hongminhee洪 民憙 (Hong Minhee)
I admire your productivity.
단문(Note)과 긴 게시글(Article) 모두에서 Markdown을 지원할 뿐만 아니라 구문강조와 TeX 수식을 지원한다는 점에서 Hackers' Pub은 연합우주에서 가장 소프트웨어 프로그래머가 쓰기에 적합한 플랫폼이라고 자부합니다.
AI 에이전트와 도구를 결합하는 방법 중 하나인 "재귀적 신경신호 제어 역전(recursive neuro-symbolic IoC) 패턴"에 대해 정리했다. 이름이 너무 거창해서 마음에 쏙 들지는 않지만 정확한 명명이라서 그냥 그렇게 정했다. https://wiki.g15e.com/pages/Recursive Neuro-Symbloic Inversion of Control
Anthony Fu의 〈야크 셰이빙에 관해〉. 요즘 내 심정을 잘 대변하는 글 같다.
오늘은 오랜만에 Hackers' Pub의 web-next 작업. 프로필 설정 기능을 만들었다. Relay를 쓰니까 뮤테이션하고 나서 내가 딱히 뭘 하지 않아도 자동으로 상태가 업데이트된다!
@hongminhee洪 民憙 (Hong Minhee) @joonnotnotJoon 일단 의견에 완전히 동의합니다. 다만 게임개발 업계에서는 빌드된 바이너리를 저장소에 쌓는 경우가 있습니다. 여러 직군이 일하는 환경에서 빌드를 할 수 있는 직군과 없는 직군이 있거든요. 빌드를 못 하는 직군은 CI/CD가 저장소에 바이너리를 올려주면 그걸 기반으로 개발합니다. 그래서... 재생성 가능한 데이터를 저장소에 쌓는 특수한 경우가 있다 ... 는 말씀을 드리고 싶었어요 :)
@meWoojin Kim
@hongminhee洪 民憙 (Hong Minhee) @joonnotnotJoon 사실 빌드를 재현가능하게 하고 캐싱을 잘한다가 정공법이잖아요? 그런데 lockfile은 외부 registry와의 IO 때문에 생기는 재현불가능성을 해결하기 위해 어쩔수 없지 않나요? 하스켈의 cabal에선 registry의 스냅샷 timestamp를 쓰는데, 전 그냥 lockfile이 낫다고 봅니다. 뭔가 못미더워요...
bgl gwyng replied to the below article:
Optique: 타입 안전한 CLI 파서 컴비네이터
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
이 글에서는 Haskell의 `optparse-applicative`와 TypeScript의 Zod에서 영감을 받아 제작된 새로운 CLI 파서 라이브러리인 Optique를 소개합니다. Optique는 파서 컴비네이터를 활용하여 CLI의 구조를 레고 블록처럼 조립할 수 있게 해줍니다. `option()`, `optional()`, `multiple()`, `or()`, `object()`, `constant()`, `command()`, `argument()` 등의 다양한 파서와 컴비네이터를 통해 복잡한 CLI 구조를 유연하게 정의할 수 있습니다. 특히, `or()`와 `object()` 컴비네이터를 사용하여 상호 배타적인 옵션이나 서브커맨드를 쉽게 구현하는 방법을 예제를 통해 설명합니다. Optique는 단순한 CLI 파서 역할에 집중하고 있어 모든 기능을 제공하지는 않지만, 복잡한 CLI 구조를 표현하는 데 유용하며, 소개 문서와 튜토리얼을 통해 더 자세한 내용을 확인할 수 있습니다.
Read more →
@hongminhee洪 民憙 (Hong Minhee) optparse-applicative엔 여러 커맨드의 겹치는 인자를 처리하는데에 애로사항이 있잖아요? 그러니까 foo bar --baz=1과 foo qux --baz=1이 둘다 가능할때 baz를 필드로 갖는 레코드를 두개 만들어아야 하는 문제 말이에요. 근데 optique는 서브타이핑으로 이 문제를 좀더 잘 다룰수 있어 보이네요. 맞나요?
bgl gwyng shared the below article:
Optique: 타입 안전한 CLI 파서 컴비네이터
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
이 글에서는 Haskell의 `optparse-applicative`와 TypeScript의 Zod에서 영감을 받아 제작된 새로운 CLI 파서 라이브러리인 Optique를 소개합니다. Optique는 파서 컴비네이터를 활용하여 CLI의 구조를 레고 블록처럼 조립할 수 있게 해줍니다. `option()`, `optional()`, `multiple()`, `or()`, `object()`, `constant()`, `command()`, `argument()` 등의 다양한 파서와 컴비네이터를 통해 복잡한 CLI 구조를 유연하게 정의할 수 있습니다. 특히, `or()`와 `object()` 컴비네이터를 사용하여 상호 배타적인 옵션이나 서브커맨드를 쉽게 구현하는 방법을 예제를 통해 설명합니다. Optique는 단순한 CLI 파서 역할에 집중하고 있어 모든 기능을 제공하지는 않지만, 복잡한 CLI 구조를 표현하는 데 유용하며, 소개 문서와 튜토리얼을 통해 더 자세한 내용을 확인할 수 있습니다.
Read more →
bgl gwyng shared the below article:
Par 언어 테스트 프레임워크 구현 -- Iterative Box Choice 패턴 적용
notJoon @joonnot@hackers.pub
Par 언어에 테스트 프레임워크를 구현하면서 `box choice` 타입의 소비 동작으로 인해 하나의 테스트 함수에서 여러 assertion을 처리하는 데 어려움을 겪었습니다. 기존 `box choice` 타입은 값을 한 번 사용하면 소비되어 재사용이 불가능했기 때문입니다. 이를 해결하기 위해 `iterative box choice` 타입을 도입하여 반복적인 사용이 가능하도록 개선했습니다. `iterative box choice` 타입은 `iterative`, `box`, `choice` 타입들을 조합하여 여러 번 사용 가능하고, 메서드 선택을 제공하며, 외부 구현과 연동할 수 있는 장점을 제공합니다. 새로운 타입 구조에 맞춰 테스트 실행 함수를 재귀적으로 수정하여 메서드 체이닝 방식과 순차적 명령문 방식 모두를 지원할 수 있게 되었습니다. 이로써 Par 언어는 더욱 유연하고 강력한 테스트 환경을 제공할 수 있게 되었습니다.
Read more →블로깅의 쇠퇴, AI의 끝없는 학습, 비공개 플랫폼(Discord 등)으로의 이주, 짧고 중독성만을 강조하는 피드와 BM, 한 번 보면 다시 찾기도 힘든 SNS 포스트, 범람하는 가짜뉴스와 개소리와 혐오... 웹은 정보의 망망대해도 아닌 소행성대로 변해가고 있다.
CV 겸 개인 홈페이지였던 사이트를 아예 커스텀 블로그로 바꾸면서... 어제 슬쩍 홍보를 올렸는데요
Pelican으로 만들고 GitHub Pages로 배포를 했는데, 급하게 수정할게 있어서 추가 commit을 했더니 갑자기 README를 기반으로 한 디폴트 페이지로 바뀌었습니다;;;
그러니까 기존 배포 A, 리뉴얼 배포 B, hot-fix 배포 C 이렇게 세개가 있으면, C를 했는데 실패해서 (실패 원인: GitHub Action이 새벽에 일시적으로 불안정했음) 당연히 B가 나올줄 알았는데, A도 B도 아닌 README 기반의 만든적도 없는 배포 X가 나왔습니다... 왜였을까요...? Action 사용하기 이전 시절의 (Jekyll 등을 지원하던) GitHub Pages 빌드 방식이 남아있어서 뭔가 꼬였는지...
암튼 블로그 많이 놀러와주세요,,, 게임 추천으로 시작합니다 (포스트도 아니고 인덱스 페이지에서)
I wrote an op-ed on the world-class STEM research ecosystem in the United States, and how this ecosystem is now under attack on multiple fronts by the current administration: https://newsletter.ofthebrave.org/p/im-an-award-winning-mathematician
conal 리팩토링하면서 느끼는건데, 그래프 다루는 코드는 검증하는게 특히 어렵다. 특히 중요한 성질들을 타입으로 보장을 못해서 테스트와 assert 문으로 때우는수밖에 없다. 아마 하스켈로 했더라도 별반 다르지 않았을듯.
아... 이제서야 집 도착... FediDev KR 파이콘 부스를 지켜주셨던
@akastoot악하
@z9mb1wwj @2chanhaeng초무
@iamuhun김무훈
@hongminhee洪 民憙 (Hong Minhee)
@nebuletoHaze 등등등 고생 많으셨습니다...
If you find it unbearable to be around people with big egos, you might want to consider whether your own ego is the problem.
파이콘 한국 2025의 Hackers' Pub 및 FediDev KR 커뮤니티 부스가 성공적으로 마무리되었습니다. 모두 여러분 덕분입니다.
양일간 부스 지키느라 도와주신 분들께 모두 감사드립니다!
@nebuletoHaze
@kodingwarriorJaeyeol Lee
@akastoot악하 @2chanhaeng초무
@z9mb1wwj @joonnotnotJoon
@gaebalgom개발곰 🙏🏼
개방형 오피스가 코딩의 생산성을 저하시키는 일종의 또 다른 ADHD 상태를 만든다는 글이 올라왔다. 이에 대해 어느 정도는 그럴 수 있지 하고 생각하면서도 많은 부분에 대해 동의하지 않는데... 사무실 내의 소리나 환경적 문제를 제외하면 Slack 등의 업무용 메신저나 메일 등의 알림은 집에서도 사무실에서도 똑같이 발생한다. 내가 업무 시간 중 일정 시간 안에 답하면 되는 것이기 때문에 알림 설정을 미리 해두지 않으면 결국 어디서 일하던간에 알림으로 인한 스트레스나 방해는 똑같이 받게 된다는 점이다. 또한 사무실 내의 다른 소리나 시각적 문제로 집중력을 떨어트릴 수 있다. 근데 이것도 잘 생각해보면 집에서도 가족이나 동거인, 키우는 동물 등이 있다면 똑같이 발생할 수 있는 문제가 아닐까.
결국은 어디에서 일하던간에 본인이 편안한 환경을 만들고 생산성을 유지하기 위한 환경을 조성하고 관리할 필요가 있다. 다만 이 글은 본인의 생산성을 환경에 따라 측정해서 자신만의 데이터를 뽑아낸게 굉장히 의미있다. 아마 제품의 홍보 목적도 겸하는 것이 되겠지만 말이다.











