초무
@2chanhaeng@hackers.pub · 90 following · 80 followers
GitHub
- @2chanhaeng
Gravatar
- gravatar.com/2chanhaeng
듀오링고 켰다가 이상한거 봤다. 이젠 영어 공부하려면 유니코드도 해석할 줄 알아야 하는건가 (아님)
$ python3 -c "print('\uc785\ub2c8\ub2e4')"
입니다
요즘엔 Linux를 메인으로 쓰긴 하지만… X에서 macOS 필수 설치 목록을 서로 공유하기에, 나도: Homebrew, Git, GNU Bash, 1Password, WezTerm, Neovim, Zed, Visual Studio Code… 이 정도인 듯?
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!
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!
.NET으로 서버 만들 때는 이메일 보낼 때 FluentEmail이라는 패키지를 유용하게 썼는데, JavaScript 쪽에도 비슷한 게 있나 찾아봤지만 뭔가 다 조금씩 마음에 안 드네… 내가 원하는 건 다음과 같다:
- Mailgun, SendGrid, SMTP 등 다양한 이메일 전송 트랜스포트를 하나의 일관된 API로 사용할 수 있어야 한다.
- 멋대로 환경 변수에 의존하지 말아야 한다.
- Node.js는 물론 Deno에서도 동작해야 한다.
오히려 파일 첨부 같은 부가 기능은 없어도 되기 때문에 간단하게 필요한 라이브러리를 찾을 수 있을 거라고 생각했는데, 못 찾고 있다. 음… 바이브 코딩으로 하나 만들까?
결국 하나 만들었습니다. “우표”라는 이름으로…
초무 shared the below article:
펑터Functor
lionhairdino @lionhairdino@hackers.pub
하스켈 펑터 입문자를 위한 이 글은 `Maybe Int` 타입의 값에서 `Int`를 직접 "꺼내올 수 없다"는 개념을 설명합니다. `Maybe`의 `fmap`이나 `fromJust`가 마치 값을 꺼내는 것처럼 보이지만, 이는 실제로는 값을 꺼내는 것이 아니라, 원본 타입(`Int`)의 구조를 보존하며 새로운 `Maybe Int` 타입의 값을 "생성"하는 과정이라는 것입니다. 미끄럼틀 비유를 통해, `Maybe Int`의 `Just 1`은 `Int` 값 `1`과 연관되어 있지만, `Just 1` 자체가 `1`을 의미하는 것은 아닙니다. 펑터는 원본 타입의 관계(구조)를 그대로 유지하며 다른 타입으로 변환하는 역할을 합니다. `fmap`은 `Maybe Int` 안의 `Int`를 직접 조작하는 것이 아니라, 원본 `Int` 값의 관계를 바탕으로 새로운 `Maybe Int` 값을 만들어내는 것입니다. 상자 메타포가 유용할 때도 있지만, 펑터의 본질을 오해하게 만들 수 있습니다. 상자 안의 값을 꺼내는 것이 아니라, 값의 "성격"은 값을 다루는 함수들의 동작에 따라 결정된다는 점을 강조합니다. 이 글은 "없을 수도 있는 수를 꺼낸다"는 표현의 모순을 지적하며, 펑터의 개념을 더 깊이 이해하도록 돕습니다.
Read more →초무 shared the below article:
힙스택 보존 법칙
RanolP @ranolp@hackers.pub
이 글에서는 프로젝트 진행 시 기술 스택 선정에 대한 경험적 법칙인 "힙스택 보존 법칙"을 소개하며, 힙한 기술 스택을 과도하게 선택할 경우 프로젝트가 산으로 갈 수 있음을 경고합니다. 저자는 신기술 도입 시 발생하는 호환성 문제와 그로 인한 추가 작업의 부담을 설명하며, 커뮤니티가 크고 성숙한 기술의 중요성을 강조합니다. 힙한 기술을 사용하더라도 프로젝트를 성공적으로 이끌 수 있는 두 가지 조건, 즉 기술의 안정성과 개발자의 숙련도를 제시하며, 힙스택을 사용하기 전에 충분한 학습과 경험을 통해 기술적 내성을 길러야 함을 역설합니다. 이 글은 기술 스택 선택의 중요성과 개발자의 역량 강화 필요성을 동시에 강조하며, 균형 잡힌 기술 스택 선택이 프로젝트 성공에 미치는 영향을 시사합니다.
Read more →🎉 Huge shoutout to two amazing contributors from Korea's #OSSCA program who've made excellent contributions to #Fedify!
👏
@gaebalgom개발곰 tackled a tricky terminal compatibility issue in PR #282, fixing the fedify node command's favicon display on terminal emulators without truecolor support (#168). His solution elegantly detects terminal capabilities and falls back to 256-color mode when needed—ensuring a great experience across different environments.
🌟 @joonnotnotJoon enhanced Fedify's #WebFinger functionality in PR #281 by adding a configurable
maxRedirection option to the lookupWebFinger() function (#248). He transformed a hardcoded limitation into a flexible, user-customizable parameter while maintaining perfect backward compatibility.
Both delivered thoughtful, well-implemented solutions that showcase the quality of contributions coming from the OSSCA program. Welcome to the Fedify community! 
역시 프로젝트를 빨리 이해하려면 직접 써보는게 가장 확실한거 같다
🎉 Big thanks to @2chanhaeng초무 for his first contribution to #Fedify! He implemented the new
fedify webfinger command in PR #278, which allows isolated #WebFinger lookups for testing configurations. This addresses the need for developers to test WebFinger functionality without performing comprehensive object retrieval.
The contribution includes:
- A new
fedify webfinger <handle>command that accepts@user@domainformat handles or URIs - Clean JSON output of WebFinger JRD results
- Proper error handling for invalid handles and lookup failures
- Complete #CLI integration with help text and usage examples
This was originally filed as issue #260 and marked as a good first issue—perfect for newcomers to learn the codebase structure while contributing meaningful functionality. The PR has been merged and will be included in the upcoming Fedify 1.8.0 release.
We appreciate all first-time contributors who help make Fedify better for the entire #fediverse community. Welcome aboard, ChanHaeng!
macOS에서는 Xcode에서 git을 함께 주지만 brew install git으로 별도로 설치해서 사용해야 한다. 왜냐하면 Git 취약점 최신 패치버전은 2.50.1인데 Xcode git 버전은 2.39.5 버전이다 😱 (다른 패치버전들도 있는데 2.43 및 이후 버전들만 관리 중인가 보다[1])
https://github.blog/open-source/git/git-security-vulnerabilities-announced-6/
초무 shared the below article:
2020년의 하스켈에 대한 내 생각
박준규 @curry@hackers.pub
이 글은 하스켈이 30주년을 맞이한 2020년, 하스켈의 발전 방향에 대한 개인적인 생각을 담고 있습니다. 저자는 하스켈이 프로그래밍 언어 연구와 실제 애플리케이션 개발이라는 두 가지 목표를 동시에 추구해왔지만, 이제는 소프트웨어 개발자에게 유용한 기능에 집중해야 한다고 주장합니다. 특히 복잡한 타입 시스템보다는 사용자 편의성을 높이는 방향으로 개선되어야 한다고 강조하며, 제네릭스 활용과 유용한 확장 기능 활성화를 예시로 제시합니다. 또한, 애플리케이션 아키텍처 측면에서 의존성 주입 컨테이너를 활용한 단순한 구조를 제안하며, 타입 안정성을 약간 희생하더라도 테스트를 통해 충분히 보완할 수 있다고 말합니다. 결국, 저자는 "심플 하스켈" 또는 "지루한 하스켈"을 통해 얻을 수 있는 코드의 명확성과 개발의 즐거움을 강조하며, 하스켈 커뮤니티가 초보자에게 더 쉽게 다가갈 수 있도록 노력해야 한다고 역설합니다. 이 글은 복잡한 이론적 탐구보다는 실용적인 개발에 초점을 맞춘 하스켈의 미래를 제시하며, 독자에게 균형 잡힌 시각을 제공합니다.
Read more →새로운 마스토돈 v4.4.0가 릴리즈 되었어요!!
https://github.com/mastodon/mastodon/releases/v4.4.0
https://github.com/fedify-dev/fedify/issues/59
아..... 이걸 밟았다....
- NestJS에다가 Fedify를 연동하는 작업을 트라이해보고 있음
- NestJS는 내부적으로 express를 사용하고 있는데, 그에 따라서 모듈시스템은 esm이 아닌 commonjs를 사용하고 있음.
- Fedify는 당연히 ESM만 지원하고 있고, commonjs 모듈시스템을 사용하는 Nestjs에서는 당연히 정상적인 방법으로는 갖다쓰기 어려움.
그렇게 삽질하다가 발견한게 저 이슈....
근데, 이걸 어떻게든 돌아가게 한다고 가정하면 dynamicImport하는 방향으로는 갈 수 있는 것 같은데, 문제는 이렇게 하면 에디터의 기능도 제대로 이용못하고 사실상 ... as any 하는 거랑 크게 다를게 없다(.....)
@robin_makirobin 저 Base64로 인코딩 된 건 뭐가 들어간 건지 너무 신경쓰여요... 설치 스크립트들 중에 제일 수상한 유형
@jarm정아름 세계최초 티셔츠로 전파되는 악성코드(
검색을 해 봤는데 https://sci.tea-nifty.com/blog/2025/05/post-7f3fa2.html 라고 하더라구요
아이쇼핑 하다가 이걸 보고 홀린 듯 구매해버림
아는 친구한테 들은 얘기인데, 최근 이직한 회사에서 Python을 쓰는데 린트나 포매터 같은 것도 전혀 설정을 안 해놓고 살고 있기에 도입하자고 했더니 “그런 거 쓸 거면 Python 안 쓰죠”라는 말과 함께 제안을 거절 당했다고 한다. Python에서도 린트나 포매터는 물론이고 타입 체커까지 붙여서 살려면 살 수 있지만, 어쩐지 그런 거 신경 쓸 사람들은 최근 10년 사이에 다들 다른 언어로 넘어가 버리고 그런 거 신경 안 쓰는 사람들만 Python을 계속 쓰게 된 게 아닌가 싶은 생각이 들었다.
카톡 스포 방지 기능 뭔가.. 나사가 빠졌어....!!
초무 shared the below article:
청개구리 스택 찬가
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
이 글은 저자가 기술 스택을 선택할 때 주류를 따르지 않고 대안적인 기술을 선택하는 경향, 즉 "청개구리 스택"을 추구하는 경험을 공유합니다. 청개구리 스택은 사용자가 적어 문제 해결에 어려움이 있을 수 있지만, 기술에 대한 깊이 있는 이해와 오픈 소스 기여 기회를 제공합니다. 또한, 후발주자로서 대안적인 설계를 통해 정석 스택보다 나은 이해를 제공할 수 있습니다. 여러 부품을 직접 조립하는 과정은 번거롭지만 각 기술에 대한 깊은 이해를 얻을 수 있게 합니다. 저자는 오늘의 정석 스택도 과거에는 청개구리 스택이었을 수 있음을 지적하며, LLM 시대에도 청개구리 스택이 주는 배움의 기회는 여전할 것이라고 주장합니다. Stack Overflow에 답이 없는 길을 걸으며 얻는 깨달음은 온전히 자신의 것이 될 것이라는 메시지를 전달하며, 독자들에게도 주체적인 기술 선택과 도전을 권장합니다.
Read more →Javascript/Typescript 생태계에는 소스코드 간 의존관계를 유향그래프(Direct Graph)로 시각화하는 CLI 도구가 있다는 사실... 알고 계신가요? madge, 적극적으로 추천합니다.
그냥 JS/TS 프로젝트 뿐만이 아니라, jsx 파일이 들어간 경우도 의존관계를 아름답게 시각화해줍니다. fedify 소스코드 통독하면서 이걸 적극적으로 써볼까 합니다. 마치.... 탐정이 사건 추적하면서 지도에 X 표시하는 감성으로...
컴잘알이지만 이 증상은 좀 특이해서 도움을 구합니다.
아마 계속되서 도움을 요청하는 거지만
RTX 4070TI 이며
현제 증상은 그렇습니다.
- 데이 바이 데이라이트등 고성능 게임을 실행시킨후 몇분뒤 컴 강제 재부팅됨
- 영상 RTX항상을 킨후 영상 돌리다가 강제 재부팅
- 3d마크 벤치를 돌리는 순간 강제 재부팅
- 하지만 글카 전원을 분리후 내장 그래픽(78003d 라데온 통합 그래픽카드)로 벤치 또는 게임을 키니 정상
이 증상을 아시는분은 도움 부탁드립니다..ㅠㅠ
컴잘알이지만 이 증상은 좀 특이해서 도움을 구합니다.
+ 참고 사진
GPU, 메모리 클럭가 널뛰기 (이건 정상인가요..?)
컴잘알이지만 이 증상은 좀 특이해서 도움을 구합니다.
아마 계속되서 도움을 요청하는 거지만
RTX 4070TI 이며
현제 증상은 그렇습니다.
- 데이 바이 데이라이트등 고성능 게임을 실행시킨후 몇분뒤 컴 강제 재부팅됨
- 영상 RTX항상을 킨후 영상 돌리다가 강제 재부팅
- 3d마크 벤치를 돌리는 순간 강제 재부팅
- 하지만 글카 전원을 분리후 내장 그래픽(78003d 라데온 통합 그래픽카드)로 벤치 또는 게임을 키니 정상
이 증상을 아시는분은 도움 부탁드립니다..ㅠㅠ
초무 shared the below article:
OSSCA: Fedify 프로젝트 기여자들을 위한 안내
洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
이 글은 오픈 소스 컨트리뷰션 아카데미 참여자, 더 나아가 Fedify 프로젝트에 기여하고자 하는 모든 이들을 위한 안내서입니다. Fedify 프로젝트 참여를 위한 준비 사항과 소통 채널, 개발 환경 설정, 그리고 프로젝트 구조에 대한 이해를 돕는 것을 목표로 합니다. 먼저 Fedify Discord 서버에 참여하여 자기소개를 하고, 연합우주(fediverse)에 대한 기본적인 이해를 쌓기 위해 계정을 만들어보는 과제가 주어집니다. JavaScript와 TypeScript에 대한 간략한 소개와 함께, Fedify가 ActivityPub 프레임워크로서 연합우주 SNS 소프트웨어 개발을 쉽게 만들어주는 도구임을 설명합니다. 저장소를 포크하고 클론하는 방법, Node.js, Deno, Bun 등 다양한 런타임 환경 설정 방법, 그리고 Visual Studio Code를 활용한 개발 환경 구성 방법을 상세히 안내합니다. 마지막으로, Fedify 저장소의 구조와 린트, 테스트 실행 방법을 소개하며, 기여할 일감을 찾는 방법과 추가 정보 링크를 제공합니다. 이 글을 통해 독자는 Fedify 프로젝트에 실질적으로 기여하기 위한 첫걸음을 내딛을 수 있으며, 오픈 소스 기여에 대한 자신감을 얻을 수 있습니다.
Read more →![select birth date
month
[3-column selection list with month names split into random letters]
day
[0, with the option to endlessly increment or reduce by one]
year
[1900 with a slider]](https://cdn.masto.host/shitposttrade/media_attachments/files/114/851/255/023/623/678/original/2964107def9557bf.jpg)






