마스토돈 CEO 자리에서 물러납니다
------------------------------
- *Mastodon 창립자 Eugen Rochko* 가 약 10년 만에 CEO 자리에서 물러나며, *상표권과 자산을 비영리단체에 이양*
- 프로젝트가 개인 중심이 아닌 *커뮤니티 중심 구조* 로 유지되도록 하는 것이 핵심 목표
- 소셜미디어 운영의 *정신적 부담과 대중의 기대* 가 사임 결정의 주요 배경으로 언급
- 지난 10년…
------------------------------
https://news.hada.io/topic?id=24472&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 965 following · 676 followers
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)
.
Fedify、Hollo、BotKit、そしてこのサイト、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
아 열심히 코딩하고 있었는데 클로드가 죽어서 코딩을 못하겠네 하하
내일은 오랜만에 튜링의 사과 가야지...
#rustlang hot take: We should rename .unwrap() to .or_panic(). (And .expect() to .or_panic_with().) "Unwrap" is a terrible name for the panicking function, especially since we also have things like .unwrap_or() and .unwrap_or_default() which never panic.
요즘 새로운 프로젝트를 진행중이다.
많은 언어들의 많은 패키지 매니저들이, 패키지에 대한 테스트를 돌릴 방법은 제공하면서(npm test 등) 막상 그 패키지 레포를 클론떴을때 그 패키지를 사용하는 아무 예제나 실행시켜볼 쉽고 통일된 방법은 잘 제공 안하는 거 같다. 가령 examples/*의 코드들을 실행시킬 방법은 npm 패키지들마다 제각각이다. 왓더??
클라우드플레어에 의존하지 않는 신토불이 서버를 세워야 한다
Optique 0.7.0 will support Zod schemas as value parsers.
Seemed like a natural fit—same validation logic for both CLI and app code.
Update: Just added automatic metavar inference!
The help text now gets smarter labels based on your Zod schema:
z.string().email()→EMAILz.coerce.number().int()→INTEGERz.enum([…])→CHOICE
No manual configuration needed.
https://github.com/dahlia/optique/commit/d4903dfdb88727a488dedb6a73ad8997868246e1
하. 클라우드플레어.. 잠시 눈물 좀 닦고 올게요. 😢 (hackers.pub 은 이제 접속되네요. 아까 안되었던..)
오늘은 xml parser와 unzip 처리해주는 라이브러리와 Cursor의 도움을 좀 받아 워드, 엑셀, 파워포인트 ooxml 파일을 파싱해서 텍스트와 서식 정보, 이미지, 파워포인트는 발표자 노트, 엑셀은 셀 데이터를 가져오는 파서를 만들었다.
원랜 야크셰이빙할 생각은 별로 없었는데 기존 라이브러리 등이 내가 원하는대로 안 되는게 커서 결국 삽을 펐다. LLM의 도움이 아예 없었으면 오늘 안에 다 못 만들었을 것 같다.
그래도 이게 OOXML 포맷이 압축 파일이고 그 안에 xml로 되어있는 구조라는걸 알고 있었어서 이런 바퀴를 재발명할 생각도 할 수 있었던 것 같다. 저녁까지만 해도 머리에 쥐날 것 같았는데 다 되니까 세상에 이렇게나 뿌듯할수가…
- 관성적으로 코딩 관련에는 Claude Sonnet 4.5 위주로 사용했는데 요즘 GPT-5/5.1 Codex 써보고 굉장히 놀라는 중. 역시 AI쪽 분야는 관성적인 행동을 버리고 다양하게 계속 찍어먹어봐야 장단점을 알고 필요할 때 요긴하게 쓸 수 있는 것 같다.
Optique 0.7.0 will support Zod schemas as value parsers.
Seemed like a natural fit—same validation logic for both CLI and app code.
트위터가 안 된다고 해커즈펍에 쓰려고 했는데 해커즈펍도 안 되었다...
이런 걸 single point of failure라고 하는 건가?🤔
LaTeX을 라텏으로 쓰는 사람
@hongminhee洪 民憙 (Hong Minhee) 어떻게 하면 compile time에 metaprogramming의 안전성을 검사할 수 있는가에 대해 좀 학문적인 관점에서 발표할 예정입니다.
@ailrunAilrun (UTC-5/-4)
@hongminhee洪 民憙 (Hong Minhee) 사실 예전에 말씀하신 연구 주제를 처음 들었을때, 쓸모가 확 와닿지 않았어요. 메타프로그래밍을 그냥 CPP 매크로 정도로 생각해서, 그걸 굳이 타입안전하게 해야하나?라고 속으로 생각했는데요. 점차 메타프로그래밍이 생각보다 훨씬 흔한 패턴이란걸 알게됐단 말이죠. 두 프로그램의 상호작용을 기술하거나, Nix에서 쉘스크립트를 다루거나 할때요. 그러면서 그 연구 주제의 중요성을 점점 느끼고 있는 중이에요.
청중이 정확히 어떤 그룹인지는 모르겠지만, 어쩌면 그분들이 저와 비슷한 첫 인상을 가질수 있단 생각이 드네요. 그래서 그런 오해를 피할수 있도록 연구의 응용처를 소개하는데 충분한 시간을 할당하시는게 좋지 않을까 생각이 듭니다.
If you're a software developer and need to create a presentation with a lot of code, I highly recommend you consider Slidev (by @antfu.meAnthony Fu). Especially if you need to include TypeScript code!
Slidev is web-based presentation software made for software developers. It offers a wide variety of ways to present code in your slides, like highlighting specific code in sequence, displaying TypeScript type information in tooltips through Twoslash integration, a “magic move” feature that compares the before and after of your code with a cool animation, the ability to embed the Monaco editor, and more.
This was my first time using Slidev, but I was captivated by its rich feature set. You should give it a try too!
Optique 發表 資料 아직도 만드는 中… 이걸 이렇게 며칠씩 붙잡고 있는 게 말이 되나…
그나저나 Slidev는 소프트웨어 프로그래머를 爲한 정말 잘 만든 發表 슬라이드 作成 소프트웨어 같다. 特히, 슬라이드에 TypeScript 코드를 꽤 包含해야 하는 發表 資料를 만든다면 Slidev를 使用해 볼 것을 勸한다. Twoslash가 支援된다…!
꼭 TypeScript 코드가 아니더라도 特定 줄들을 順序대로 強調하는 것도 되고, 라이브로 코드를 고칠 수도 있다. 비포 애프터로 두 코드를 比較할 때도 매직 무브로 괜찮은 演出이 可能하다.
아무튼 Slidev 最高…!
@ailrunAilrun (UTC-5/-4) 오… 어떤 주제로 발표하시게 되나요?
@hongminhee洪 民憙 (Hong Minhee) 어떻게 하면 compile time에 metaprogramming의 안전성을 검사할 수 있는가에 대해 좀 학문적인 관점에서 발표할 예정입니다.
Dang it, PostgreSQL is so good.
I did a data export thing. The options I needed were there. Then I needed more options, and then they were also there. They worked the way I guessed. It was fast. It was reliable. Then I thought “oh, what about sequences?!?”, but they already had that covered. My seemingly easy task turned out to be…easy.
@inthehandsPaul Cantrell there's a whole book about this phenomenon
https://www.manning.com/books/just-use-postgres
Dang it, PostgreSQL is so good.
I did a data export thing. The options I needed were there. Then I needed more options, and then they were also there. They worked the way I guessed. It was fast. It was reliable. Then I thought “oh, what about sequences?!?”, but they already had that covered. My seemingly easy task turned out to be…easy.
돌이켜보니 내가 처음으로 소프트웨어의 '품질'을 경험한게 스타1이랑 디아2였다. 게임이 재밌는거랑 별개로, 그때 기준으로 저 두 게임은 소프트웨어로써 품질이 훌륭했다. 그당시 다른 게임들은 느리고, 심각한 버그가 있고, UI가 덜컹 거리기 일쑤였다. 스타1, 디아2는 게임을 켤때부터 끌때까지 매끄러운 경험을 줬다.
지금 시즌272611번째 ’이 버그를 고칠 선택받은 용사가 왜 하필 나인가‘ 단계에 있다
eza로 "."과 ".." 발굴하는 방법
eza -aa = eza --all --all
좋은 소식 공유하자면...
사실 요 며칠간 외국계 회사에서 work trial을 했는데요. 수습도 통과했고, 지금까지 받아왔던 것에 비해 훨씬 좋은 처우환경에서 일할 수 있게 되었습니다..
파이썬 기반의 환경에서 개발하는 중이고, 제가 마침 빠삭한 도메인에서 일하게 되었다고 하네요
#Ghostty shell-integration-features = cursor,title,ssh-env,ssh-terminfo,path
ssh-env, ssh-terminfo 없으면 고통
안 되면 급한대로 ssh -t user@host 'TERM=xterm-256color bash'
이제 Lumo (GitHub)에서 fixpoint를 바탕으로 상호 재귀 가능한 함수 묶음을 정의할 수 있다. 슬슬 MVP의 끝이 보인다. 다음 스텝은 코드젠이다.
System.IO.readFile 쓰지 마세요.
System.IO.readFile 쓰지 마세요.
System.IO.readFile 쓰지 마세요.
첫째, System.IO.readFile 은 String 을 반환합니다. 이건 심각한 문제입니다. String 을 쓰지 마세요. 외부 세계와 I/O 를 할 때에는 ByteString 을 써야 합니다. 유니코드 문자열을 다룰 때에는 Text 를 쓸 수 있습니다. String 은 시간적으로도 공간적으로 비효율적입니다. 이건 어쩔 수 없습니다. 하스켈은 리눅스 커널보다 오래됐습니다. 그리고 하스켈이 String 을 만들 때에는 아직 하스켈에 모나드도 없던 시절이며, 타입 클래스가 과연 유용하겠는가를 두고 의견이 분분하던 시절이며, 파일 하나가 100 메가바이트가 넘어간다는 것이 과대망상으로 여겨지던 시절입니다. 특히 유니코드보다 더 먼저 나온 언어에 적절한 유니코드 문자열 타입이 있을 수는 없었습니다. 아무튼 String 은 레거시입니다. System.IO.readFile 로 그림 파일을 읽는 프로그래머는 사후세계에서 JPEG XL 파일을 십육진법 표기로 1 바이트씩 읽은 뒤 종이에 그려 내는 형벌에 처해집니다. String 을 쓰지 마세요.
둘째, System.IO.readFile 은 FilePath 를 요구합니다. FilePath 도 사실 String 입니다. 그냥 별명(type synonym)이에요. 이것은 String 이기 때문에 비효율적이며, String 은 문자열이지 바이트열이 아니기 때문에 (인코딩을 전혀 통제할 수 없기 때문에) 파일 경로를 표현하는 타입으로 부적절합니다.
해결책: 먼저 System.OsPath 의 설명을 읽어 보세요. 그리고, file-io 패키지의 System.File.OsPath 모듈을 읽어 보세요. 여기 있는 함수들의 설명을 openBinaryFile 부터 하나씩 읽어보고 쓰세요. 이것들은 파일 경로에 OsPath 를 쓰기 때문에 String 의 비효율이 없고 인코딩도 올바르게 처리할 수 있습니다. 입출력 데이터에는 ByteString 을 씁니다. 바이트열을 유니코드 문자열로 변환할 때에는 예를 들어 Data.Text.Encoding.decodeUtf8Lenient 를 쓸 수 있습니다. 그럼 이제
- 간단히
System.File.OsPath.readFile'에게OsPath를 넘기고ByteString을 효율적으로 받아 와서 국밥처럼 든든하게 메모리에 올려 두고 작업을 하든지 - 전국구 마법사라면 복대는 기본이라고 외치며
withBinaryFile과 앙갓썸 을 Iteratee I/O 로 절묘하게 엮어서 뭔가 개멋있게 하든지 - 하스켈 갓고수이기 때문에 흑마법사답게 보일러실 문을 따고 지하로 들어가 포… 포… 으악! P 로 시작하는 그것을 획득하여 누구도 예상할 수 없는 타이밍에
hGetBuf의 암기를 슉. 슈슉. 슈슈슉. 슉. 날리든지
아무튼 이제는 String 을 놓아주어야 합니다.
git submodule 쓰다가 생각난건데, VCS 레벨에서 수정할 파일과 아닌 파일을 구분해주는게 좋을거 같다. 읽기 전용 파일의 경우엔 복사하지않고 심볼링 링크만 제공해도 되어서 성능적 이점도 있을 것이다.
Interesting design question for #Optique (a type-safe #CLI parser for #TypeScript): how should it handle unrecognized options in wrapper/proxy tools? Proposed three modes but wondering if the complexity is worth it. Thoughts?
12月 初에 할 Optique 發表를 爲한 슬라이드 資料를 만들고 있는데, Optique의 具顯 細部事項까지 다뤄야 할 지, 아니면 使用者 立場에서의 콘셉트나 API 같은 걸 爲主로 다뤄야 할 지 苦悶이네… 具顯 디테일을 다루려고 하면 주어진 發表 時間인 30分 안에 못 끝낼 것 같다는 느낌도 들어가지고…
RSS 피드가 있다면,
1. `
@birb🦜 RSS Parrot ᴮᴱᵀᴬ` 피드 주소를 알려준다
2. RSS 앵무새가 피드로 `_at_어쩌고.저쩌고_at_rss-parrot.net` 계정을 만들어 알려준다
3. 팔로우
Ghostty, Warp 등의 터미널을 써보곤 싶은데, 어차피 VS Code 안에서 못쓰다보니까 큰 의미가 있을지 아리까리하다..
Vim에서 Quickfix List라는 걸 처음 알게 되었다.
기존 코딩 흐름은
이랬는데 Quickfix List를 이용하면
이렇게 Vim을 나가지 않고도 빌드 결과를 확인하고 에러가 발생하면 그곳으로 바로 점프할 수 있다!
.vimrc에 이렇게만 적으면 된다.
set makeprg=cabal\ build
out of context svelte
내일 튜링의 사과 첫 방문 예정..!
오랜만에 다루려니 파이썬이 에러 메시지가 친절하진 않긴 하다
웹 브라우저 책 읽기 시작했는데, HTTP 책이랑 같이 보니까 더 재밌다
vimrc2025 행사에서 뿌릴 스티커 도착함.
하스켈에서 다음과 같은 에러를 만날 경우에
withFile: resource busy (file is locked)
readFile 대신 readFile'을 써보셔요!
readFile은 lazy 버전이고readFile'은 strict 버전입니다!
System.IO 모듈 문서에 다음과 같은 설명이 있습니다.
경고:
readFile연산은 파일의 전체 내용을 모두 소비할 때까지 그 파일에 대해 부분적으로 닫힌(semi-closed) 핸들을 유지한다. 따라서 이전에readFile로 연 파일에 대해(writeFile등을 사용하여) 쓰기를 시도하면, 일반적으로isAlreadyInUseError오류와 함께 실패하게 된다.
@curry박준규 이 에러와는 별개로 withFile의 사용시에는 withFile내에서 필요한 동작을 최대한 다 하는게 불필요한 file handling 작업을 줄일 수 있습니다.
사실 아직 이전한건 많이 없지만... 일단은 기존 DB랑 Redis를 tailnet으로 연결하고 클러스터에 사이드킥을 띄웠다 그리고 사이드킥 오토스케일링 기준을 CPU로 잡는게 조금 부적절하다고 생각했었는데 Prometheus로 사이드킥 큐 크기를 측정해서 그거 기반으로 스케일링하는게 좋을것같다 (내일)
Y = forall A. λf.
let g = thunk (λx. (force f) ((force (unroll x)) x)) : thunk ((μX. thunk (X -> A)) -> A)
in g (roll g : μX. thunk (X -> A))
를 타입 검사한 게 지난 일이었다.
(Y[λ⟨ isEven: nat -> bool, isOdd: nat -> bool ⟩]) (λm.
λ⟨
isEven: λn. match n {
Nat.zero as n => return true
Nat.succ as n => return (force m::isOdd) (n.0)
}
isOdd: λn. match n {
Nat.zero as n => return false
Nat.succ as n => return (force m::isEven) (n.0)
}
⟩
)
이제 위 코드를 대충 타입 검사할 수 있는 거 같다.
이제 시맨틱은 필요한 만큼 구현했으니 드디어 신택스나 코드젠으로 넘어갈 수 있겠다.
실제로 파서를 짜고 있다.
예비군 가서 3일 동안 『UNIX의 탄생』하고 『오래된 인터뷰 개발자의 미래를 긷다』만 주구장창 읽고 왔고, 꽤 도움이 되었다
VIMRC 2025 티켓 3장남았네 ㄷㄷ 인기짱많음
하스켈에서 다음과 같은 에러를 만날 경우에
withFile: resource busy (file is locked)
readFile 대신 readFile'을 써보셔요!
readFile은 lazy 버전이고readFile'은 strict 버전입니다!
System.IO 모듈 문서에 다음과 같은 설명이 있습니다.
경고:
readFile연산은 파일의 전체 내용을 모두 소비할 때까지 그 파일에 대해 부분적으로 닫힌(semi-closed) 핸들을 유지한다. 따라서 이전에readFile로 연 파일에 대해(writeFile등을 사용하여) 쓰기를 시도하면, 일반적으로isAlreadyInUseError오류와 함께 실패하게 된다.
방금 보이스피싱을 당할뻔 한거 같은데, 내가 법원등기서류를 수령 못했다면서 온라인으로 받아보라고
http://온라인검찰민원.kr/ 이 사이트로 들어가도록 유도했다. 보다시피 인증서가 없는 페이지이다. 그래서 바로 전화를 끊고 보이스피싱 신고사이트에 신고했다.
근데 나야 인증서 확인하고 이렇게 했지, 만약 우리 엄마였으면 그대로 당했을거같아서 기분이 안좋네..
오! 클로드 코드 사용량을 잠자는 동안 사용하지 못하는게 아까워서 이슈 7개 정도를 잠자기전에 일단 돌려두고 커밋까지 하라고 시켜놨다. 아침에 일어나서 워크트리에 커밋되어있는거 하나씩 머지하면서 테스트하고 코드 리뷰하고 있는데 엄청 좋은것 같다?!
container use를 써봐야겠다












