Profile img

초무

@2chanhaeng@hackers.pub · 75 following · 60 followers

아시안이라는 말도 짜증나는 데, 세상이 좁고 나뉘어 있던 고대에 터키 일부 지역을 가리키던 말을 거기서 동쪽 전부에 적용해 버렸다. 덕분에 세계인의 60%가 아시안이 되어 버리고 아마존 프라임은 나한테 인도 영화들을 주구장창 추천함

0
1

왜 나는 월드 와이드 웹을 무료로 세상에 내놓았는가
------------------------------
- *Tim Berners-Lee* 가 월드 와이드 웹을 만들고 이를 *무료로 공개* 한 이유를 설명
- 월드 와이드 웹은 *인터넷과 하이퍼텍스트* 를 결합한 단순한 아이디어에서 시작해 전 세계 창의성과 협업을 촉진할 수 있는 도구로 제안된 것
- 성공하려면 누구나 접근 가능해야 했기에, 1993년 *Cern이 지식재산을 공공…
------------------------------
https://news.hada.io/topic?id=23342&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0
1
1
1
2
0

Auth.js가 이제 Better Auth의 일부가 됨
------------------------------
- *Auth.js(이전 명칭: NextAuth.js)* 가 이제 *Better Auth 팀* 에 의해 유지 및 관리됨
- *Auth.js* 는 JavaScript 생태계에서 가장 널리 사용되는 *오픈 소스 인증 라이브러리* 로 많은 유명 웹사이트에서 활용됨
- 이전에는 직접 인증과 세션 관리를 구현하는 데 어려움이 있었으며, 모든 현장에서 동일한 …
------------------------------
https://news.hada.io/topic?id=23316&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0

macOS Tahoe에서 일렉트론 애플리케이션이 말도 안되게 느렸던 이유는 Liquid Glass 도입으로 시스템에 전반적 연산이 늘어난게 아니라 Electron이 AppKit의 private API를 잘못 쓰면서 WindowServer에서 GPU를 미친듯이 쓴 것이었다.

https://github.com/electron/electron/pull/48376

5
1
1

패스워드에 특수문자를 강제하면서, 쓸 수 없는 특수문자도 있음 (그래 참는다)

패스워드 입력에 가상키보드를 강제함 (힘들지만 참는다)

가상키보드에 있는 특수문자 중, 쓰면 안 되는 특수문자(*) 가 있음 <---- 이건 뭔 보법인가?

5
0
0

현실 지인들 해준 일본어 썰중에 아직도 웃긴거 학원을 다녔는데 강사님이 출석을 부르는데 ‘긴뫄뫄상~’해서 답이없으면 ‘갯새끼데스네 (결석이군요)’ 그럼 수강생들이 ‘소오데스네(그러네요)’ 이랬다는

0
1
0
0
0
0
0
0
0
13
1
1
2
0
0

최근 며칠간 WAH라는 이름의 WebAssembly 인터프리터를 만들고 있다. ~와! 샌즈!~

WAH의 특징이라면 C로 작성되어 있는데 헤더 하나로 구성되어 있다는 점과, 거의 대부분의 코드를 Gemini가 짰다는 것 정도일까? (Claude Code도 좀 사용했지만 코드 생성은 Gemini가 다 했다.) Gemini가 디버깅을 시키면 답답한 게 사실이라서 최대한 프롬프트에 정보를 많이 넣고 few-shot으로 생성하게 하는 걸 목표로 했는데 생각보다 잘 되었다. 예를 들어서 한 프롬프트는 다음과 같았다. 저 문장 하나 하나가 시행착오의 결과이다.

@wah.h 에 if~else~end 명령을 구현하고, 대응되는 test_*.c 파일들이 모두 성공하도록 (또는, 해당 테스트에서 잘못된 점이 있을 경우 그 원인을) 고쳐줘. 아직 loop 관련된 코드는 처리할 필요 없고 테스트 중에 그걸 테스트하는 게 있다면 주석 처리해(지우지는 마). 컴파일과 실행은 &&로 한 번에 하도록 해. 정확한 구현 방법은 이래야 해: if~else~end에서 마지막 end는 사라지고, if는 else 직후 명령으로 이동하는 conditional jump로 재활용하며, else는 unconditional jump로 바뀌어(즉 실행기 입장에서 br과 else의 동작은 똑같아야 해! else를 아예 없애고 br로 대체할지 말지는 알아서 정해). 그러니까, if A B C else D E F end G 같은 명령이 있다면 preparsing 이후에는 if <offset to D> A B B C else <offset to G> D E F G 형태가 되어야 한다는 뜻이야. WebAssembly 명세에 따르면 if 문에는 block type이 따르는데, 이 타입을 사용해서 validation을 진행하는 것도 정확히 구현해야 해(block type이 function type (T1..Tn)->(U1..Um)이면 현재 스택에 T1..Tn 타입이 들어 있고 end 이후에는 U1..Um 타입이 들어 있어야 하고, 일반 타입 T가 들어 있다면 ()->(T)와 동일하게 취급함). block type은 validation 이후 preparsing 과정에서 사라져서 런타임에는 반영되지 않도록 해.

솔직히 너무 많이 요구하는 거 아닌가, 안되면 validation 부분을 어떻게 뺄지 고민하고 있었는데 시도 세 번만에 800줄짜리 diff가 떡하니 나오고 일단 보기에는 틀린 부분이 없어서 놀랐다. 물론 삽질도 많이 했는데 가장 많이 한 삽질은 테스트를 작성할 때 수동으로 WebAssembly 바이너리를 짜면서 바이트 숫자를 잘못 세어서 오류가 나는 거랑, 분명 WebAssembly opcode를 사용해야 하는데 자기 마음대로 코드를 정해 버린다거나 하는... 그런 우스운 상황이었다.

우습기도 하고 놀랍기도 하지만 이 코드를 내가 직접 짜지 않는 이유는 귀찮아서...라기보다는 내가 이걸로 하고 싶은 일이 따로 있고 WebAssembly 인터프리터를 만드는 게 주 목표는 아니기 때문이다. (원래 하고 싶은 일은 나중에 언급할 듯.) WebAssembly 구현이라고 하면 기술적으로 복잡해 보이지만, 내 용도에서 유래하는 몇 가지 조건(대표적으로 결정론적인 동작)을 제약으로 걸면 기술적으로 복잡하다기보다는 그냥 노가다에 가까워지기 때문에 끌리지 않는 것도 있긴 하다. 이전의 Angel이 과연 얼마까지 바이브 코딩으로 할 수 있는지를 테스트하는 목표였다면, 이번에는 정말로 목표를 달성하는 수단으로 기능할지 실험해 볼 작정이다.

https://github.com/lifthrasiir/wah/ 정식으로 공개했다. 현재 4800여줄. WebAssembly 1.0 거의 완전 지원, 2.0은 SIMD를 포함해 8~90% 정도 지원하는 정도까지 왔다. 하지만 아직 API 문제를 완전히 풀진 못해서 모듈 링킹이 안 되는 치명적인 문제가 있다...

8
6
1
1
0
1
0
0
3
1
0
0
2
0
2
1

Optique 0.5.0 is out! Enhanced error handling and message customization for TypeScript CLI parsing.

Key improvements:

  • Fully customizable error messages
  • Automatic error conversion for withDefault callbacks
  • Better help text and module organization
  • 100% backward compatible
4
1
6

초무 shared the below article:

Optique 0.5.0: Enhanced error handling and message customization

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

Optique 0.5.0 is now available, bringing enhancements to error handling, help text generation, and overall developer experience while maintaining full backward compatibility. The update introduces better code organization by refactoring the large `@optique/core/parser` module into three focused modules: `@optique/core/primitives`, `@optique/core/modifiers`, and `@optique/core/constructs`. Error handling is improved with automatic conversion of default value callback errors into parser-level errors, and the new `WithDefaultError` class allows for structured error messages. Customization of default values in help text is now possible via an optional third parameter to `withDefault()`, enabling descriptive text instead of actual values. Additionally, the release provides comprehensive error message customization across all parser types and combinators, allowing context-specific feedback. These improvements aim to make Optique more user-friendly, especially for building CLI applications that require clear error messages and helpful documentation, making this release a significant step forward for developers using Optique.

Read more →
5
1

Rock Firefinch

A small brown and reddish waxbill with a blue-gray and black bill, and black under the tail. There are a few white spots along the shoulder. Found mainly in dry, rocky habitat with grass and bushes, but also ventures into savanna and galley forest habitats during the dry season. Usually in pairs or small groups. Very similar to African Firefinch, but has a more two-toned bill, is brighter overall, and has a more reddish back in both sexes. Also similar to Black-bellied Firefinch, but has less extensive black on the belly, and males are further separated by the gray patch on top of their head. Vocalizations include soft “teew” whistles, a descending trill, “tep” notes, and “pit-pit-pit” calls.

Link: ebird.org/species/rocfir1
Photo Location: Cameroon

Picture of Rock Firefinch
1
1
1
1
2
0
0
1

초무 shared the below article:

[잘라먹는 프로그래밍 언어론] 타입 체계는 명제 논리와 닮아있다 (커리-하워드 대응)

RanolP @ranolp@hackers.pub

이 글은 함수 타입, 합 타입, 곱 타입과 논리 연산의 대응 관계를 탐구하며, 특히 부정(negation)을 타입 시스템에서 어떻게 표현할 수 있는지에 대해 설명합니다. "P가 아니다"는 "P이면 거짓이다"와 동치라는 점을 이용하여, 타입 이론에서 값이 없음을 거짓으로 해석하고, 이를 통해 "정수를 0으로 나눌 수 없다"는 명제를 타입으로 표현하는 방법을 제시합니다. `div_by_zero :: Int -> ⊥`와 같은 표현을 통해 타입 체계와 명제 논리 간의 커리-하워드 대응을 보여주며, 타입 시스템이 논리적 추론과 어떻게 연결되는지에 대한 통찰력을 제공합니다.

Read more →
10
6

파이썬의 진정한 초능력
------------------------------
PYCON UK 2025에서 Hynek Schlawack가 발표한 "Python의 진정한 초능력" 키노트 요약입니다.

발표자는 프레젠테이션을 시작하기 전에 자신의 경력을 간략하게 소개하며, 특히 14년간 PyCon 커뮤니티에서 활동하며 경험했던 '증오스러운 우정'에 대해 언급했습니다.

---

## Python 2에서 3으로의 전환…
------------------------------
https://news.hada.io/topic?id=23241&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0