깨알팁: 유효한 유니코드 코드포인트 값의 범위에는 구멍이 있습니다. UTF-16을 위해 만들어진 surrogate pair 영역입니다. 이 영역의 값은 UTF-16 외에서는 의미가 없고 사용될 수 없습니다.

洪 民憙 (Hong Minhee)
@hongminhee@hackers.pub · 604 following · 401 followers
Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!
Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 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
UTF-16이 한 트롤링으로 Byte Order Mark (U+FFFE
) 라는 것도 있죠... UTF-16LE인지 UTF-16BE인지 확인하기 위해 바이트 인코딩된 문자열 맨 앞에 넣는 문자인데 (0xFE
가 먼저 오면 LE) 어떤 에디터는 이걸 UTF-8 문자열에도 집어넣어서 UTF-8인지 확인하겠다고 설치고 다니는 이하생략
여섯자리 16진수가 적힌 두부......
깨알팁: 유효한 유니코드 코드포인트 값의 범위에는 구멍이 있습니다. UTF-16을 위해 만들어진 surrogate pair 영역입니다. 이 영역의 값은 UTF-16 외에서는 의미가 없고 사용될 수 없습니다.
역시 코드는 추가할 때보다 삭제할 때가 더 타격감이 좋다
𝑾𝒉𝒚𝒓𝒂𝒏𝒐...
const light = 300000
역시 LLM은 숫자를 모른다.
GCC의 name mangling에는 글자수가 있는데, 3가지 name mangling 요청한 것 중 2개가 글자수가 틀려서 잘못된 결과물이 나왔다. 하지만 MSVC 스타일에는 글자수가 없어서 그동안 너무 잘해줬고...
안녕하세요! 이번에 fedify 오픈소스 멘티로 참여하게 되어 해커스펍에도 가입하게 됐어요~~ 현재 프론트엔드 개발자로 일하고 있고 okky에서 팀원들을 만나 톡픽이라는 작은 프로젝트를 현재 만들고 있습니다! 7월까지 마무리 예정이라 출근 전 후로 바쁘게 달리고 있네요..!
그리고 오픈소스 멘티로도 참여하게되어 아주 바쁜 삶을 살게되었습니다. 이런 삶 너무 만족스럽습니다 전 약간 발등에 불이 떨어져야 그나마..해내는 편이기때문에
블로그에도 글을 쓰고 있어요! 저도 멋드러지게 쓰고 싶은데 아직 어떻게 접근해야되는지 잘 모르겠어서 그냥 거의 조각글 수준으로 쓰고 있습니다...ㅋㅋㅋㅋ 한 번 구경오세요>< https://hyeonlogforweb.tistory.com/
이 글을 보고, Windows에서 Git Bash를 통해서 Claude Code를 쓰고 있는데, 일단 동작이 큰 문제 없이 되는 것만으로도 만족스럽습니다.
몇가지 문제사항이 있기는 합니다.
- IDE 통합 기능이 동작안하는 것
- 페이지 스크롤링 관련된 동작이 한번씩 오동작 하면서 이상한 곳을 보여준다던가...
하지만 전반적으로 잘 동작합니다.
회의중 잠깐 쉬는 타이밍에 사우님들이 프로세스상의 아쉬움을 말하길래 그냥 내가 총대들고 결정권자에게 대포를 쏘니깐, 다들 왤케 좋아들 하시냐?
얼마나 갑갑했으면.
코딩 할 거 없어서 심심하신 분들
gemini-cli는 이상한 맥락을 기억해서 나랑 자꾸 다툰다...
자꾸 A를 B로 바꿔서 내가 A로 돌려놓고 C를 고쳐달라고 하면 또 C를 고치면서 A도 B로 은근슬쩍 바꿔둠
그런 거 쓸 거면 Python 안 쓰죠
프로그래밍 언어의 언권?투사가 되게 만드는 발언이군요. 어떤 프로그래밍 언어든 저런 취급을 받아선 안됩니다. 설령 PHP, 아니 Brainfuck이라고 하더라도 린터와 포매터는 갖추고 살아야합니다.
@bglbgl gwyng
@hongminhee洪 民憙 (Hong Minhee) DSL 정의가 잦거나 좀 많이 유연한 형태로 코드를 작성할 필요가 있는 언어들(Lean/Agda/Coq가 예시로 언급된 걸 본 듯한)은 포매터에 대한 저항이 이해가 가기도 하는데, 요즘은 이런 경우에도 LLM 등을 사용해서 코드 스타일을 최소한의 수준(탭/스페이스 통일, trailing spaces 제거, 괄호 짝 및 인덴트 맞추기 등....)으로는 관리해주면 좋지 않을까 하는 생각을 해본 적이 있습니다 😂
셸에 쳐야할 git status 명령어를 Claude Code에게 보내서 토큰을 낭비하는 모습, 스크린에 점묘화. 568 (H) x 1264 (W) px.
중국어권 언어는 대충 zh-(tw|hk|mo) → zh-hant, zh-(cn|sg) → zh-hans 정도로 처리를 해뒀는데 … 갑자기 궁금해져서 API 서버로 들어오는 헤더에서 대충 뽑아보니까 -hk/-sg/-mo는 이렇더라.
- zh-hk > en > zh-hant > 이하 생략
- zh-sg > en > (ms|ta)-sg > zh-hans > 이하 생략
- zh-mo > pt-mo > zh-hk > zh-hant > en > 이하 생략
Discord は主にユーザコミュニティな気がするし、もっと言えば日本語のそういったコミュニティをあまり知らない
Discordもまあまあみかける気はするがそうなのかもなー
わたしはDiscordのUIがなぜかめちゃくちゃ苦手
아는 친구한테 들은 얘기인데, 최근 이직한 회사에서 Python을 쓰는데 린트나 포매터 같은 것도 전혀 설정을 안 해놓고 살고 있기에 도입하자고 했더니 “그런 거 쓸 거면 Python 안 쓰죠”라는 말과 함께 제안을 거절 당했다고 한다. Python에서도 린트나 포매터는 물론이고 타입 체커까지 붙여서 살려면 살 수 있지만, 어쩐지 그런 거 신경 쓸 사람들은 최근 10년 사이에 다들 다른 언어로 넘어가 버리고 그런 거 신경 안 쓰는 사람들만 Python을 계속 쓰게 된 게 아닌가 싶은 생각이 들었다.
@hongminhee洪 民憙 (Hong Minhee) 슬쩍 `echo "ruff format" >> .git/hooks/pre-commit`
그런 거 쓸 거면 Python 안 쓰죠
프로그래밍 언어의 언권?투사가 되게 만드는 발언이군요. 어떤 프로그래밍 언어든 저런 취급을 받아선 안됩니다. 설령 PHP, 아니 Brainfuck이라고 하더라도 린터와 포매터는 갖추고 살아야합니다.
@bglbgl gwyng
@hongminhee洪 民憙 (Hong Minhee) 프로그래밍 언어 권리장전을 제정해야 합니다!(아무말)
아는 친구한테 들은 얘기인데, 최근 이직한 회사에서 Python을 쓰는데 린트나 포매터 같은 것도 전혀 설정을 안 해놓고 살고 있기에 도입하자고 했더니 “그런 거 쓸 거면 Python 안 쓰죠”라는 말과 함께 제안을 거절 당했다고 한다. Python에서도 린트나 포매터는 물론이고 타입 체커까지 붙여서 살려면 살 수 있지만, 어쩐지 그런 거 신경 쓸 사람들은 최근 10년 사이에 다들 다른 언어로 넘어가 버리고 그런 거 신경 안 쓰는 사람들만 Python을 계속 쓰게 된 게 아닌가 싶은 생각이 들었다.
그런 거 쓸 거면 Python 안 쓰죠
프로그래밍 언어의 언권?투사가 되게 만드는 발언이군요. 어떤 프로그래밍 언어든 저런 취급을 받아선 안됩니다. 설령 PHP, 아니 Brainfuck이라고 하더라도 린터와 포매터는 갖추고 살아야합니다.
이제 막 해커스펍에 도착하여 무엇을 할 수 있을지 둘러보는 나
아마 폰트에 없어서인지 다 네모 박스로 표시되는구나 했는데, 자세히 보니 네모 박스 안에 16진수 값으로 표시해 주고 있었네 👀 이게 어떻게 이렇게 되지 했는데 렌더링 해주는 쪽 재량이라는 듯 하다. Chrome (그리고 Electron) 은 그냥 네모로 보인다.
django admin 그만 쓰는 법
@robin_makirobin 저 Base64로 인코딩 된 건 뭐가 들어간 건지 너무 신경쓰여요... 설치 스크립트들 중에 제일 수상한 유형
@jarm정아름 세계최초 티셔츠로 전파되는 악성코드(
검색을 해 봤는데 https://sci.tea-nifty.com/blog/2025/05/post-7f3fa2.html 라고 하더라구요
(재밌는 사실) word joiner라고 하는 안 보이는 문자를 넣으면 자동링크를 방지할 수 있습니다. @eatch.dev (h와 . 사이) #해시태그아님 (#와 해 사이) https://example.com (s와 : 사이, e와 . 사이)
아이쇼핑 하다가 이걸 보고 홀린 듯 구매해버림
해커스펍의 정체. 버튼을 누르면 어떻게 되나요
Pelican을 기준으로,
- docker 개발(hot-reload), 프로덕션(nginx) 환경 구축
- jinja2 tag, filter, macro 사용하기 (+ context)
- GitHub Action으로 build 테스트 + PR merge시 GitHub Pages로 deploy하기
하는 내용이 동봉되어있습니다. 약간 튜토리얼을 겸한달까요...
이왕 이렇게 된거 후기 글도 쓰고 정말로 튜토리얼도 만들고 할까 싶었지만... 코딩 하느라 좀 지쳐버린ㅠ
https://github.com/anthropics/dxt 개념 재밌네. chrome extension(.crx)처럼 MCP를 .dxt로 패키징해서, desktop app에서 drag-and-drop을 가능하게끔 하자는거네~
이전에 A/B테스트에 대해 쓴 글의 다시 쓰기. 다들 A/B테스트와 행복하게 지내고 계신가요 많이들 쓰시지만 여전히 그다지 행복하지는 않은 것 같아서, 이전 글이지만 도움이 되지 않을까요.
이래저래 쓰다 은근 시간이 많이 걸렸고 결국 처음 안으로 돌아오면서, 오늘날에 재미나 개성도 크게 없는 긴 실용글을 직접 쓰는 게 큰 도움이 될까 하는 생각을 조금 하지만 그래도 아마 나쁘지 않은 것도 같다. 그레이트 올드원이 될거야.
최신 Unicode Han Database 중 숫자 표현을 보면 아래 라인이 포함되어 있다. 근데 저 유니코드를 검색해보니 兆가 나오고 이는 두번째 값인 1000000000000
이 맞는 값인 것 같은데
U+5146 kPrimaryNumeric 1000000 1000000000000
kPrimaryNumeric
속성 설명에 의하면 첫 번째 값이 가장 일반적인 것으로 취급되는 것이 맞다는 것 같아서 의문이 들었다 🤔
If an ideograph has more than one numeric value, the first one is to be considered the most common one, and that first value is used for the Numeric_Value property of the ideograph.
Claude에게 물어보니 지역적이거나 역사적인 이유가 있을 것이라 해서 중국에서 다르게 쓰나 싶었는데, 위키백과 문서들을 참고하니 兆의 의미가 시대에 따라 달라져 왔기도 했고, 표기법(셈법?)에 따라 또 다른 듯 하다. 지금 사용하는 단위마다 10000배씩 변화하는 방식은 만진법이라고 하는 것 같다.
대학원 연구실 홈페이지 생성기를 만들었습니다. Jekyll은 Ruby니까, 이번엔 Python을 좀 써보자 싶어서 Pelican으로 구현했습니다. Article을 일종의 DB처럼 사용해서 멤버나 논문, 뉴스, 강의 등의 데이터를 관리하는 방식입니다.
솔직히는 하루이틀이면 끝날줄 알았는데 만드는데 거의 full-time으로 일주일이 걸렸네요. macro에서 왜 context가 전달이 안되는지, filter에서는 왜 안되는지, GitHub Action은 왜 맨날 뻑이 나는지... branch 규칙도 여러번 수정하고 github pages로 내보낼때만 fork me 리본 달아주고 등등... 왤케 자잘하게 할게 많은지ㅠ
Pelican 자체는 쓸만하더라구요. 필요한 기능이 거의 다 있습니다. 근데 없는것처럼 보여요. 근데 다 있긴 합니다.
암튼... 구경와주세요
GitHub에서 PR 할 때 Copilot한테 리뷰 부탁하는거 나쁘지 않네요. 자명한 오타나 실수를 AI로 체크 한다는 느낌.
언젠가 tuple이란 이름의 (,)
를 로고로 쓰는 서비스를 만들고싶다. 웃긴건 정작 뭐하는 서비스인지는 아직 생각을 안 해놓음;; 대충 사람들을 짝지어주는 데이팅 또는 커피챗 주선 서비스면 이름과 어울리지 않을까 싶은데...
https://github.com/Perlmint/ARISU UI라고 할 것도 없지만 claude덕에 rust로 mac 어플리케이션 UI작성과 서버 실행/정지를 구현했습니다. 전에 문제였던 과도하게 친절한 단축키 맵핑은 아무래도 클라가 문제라, 이렇게 된 이상 클라도 만든다라는 방법 밖에 없지만, 일단 만들기 시작한 서버... 다 만들고 나중에 생각하려 합니다.
技術の話
反骨精神のスタック礼賛
https://hackers.pub/@hongminhee/2025/contrarian-stack/ja
非常によい [参照]
反骨精神のスタック礼賛
이 글에서는 저자가 기술 스택을 선택할 때 주류에서 벗어난 "청개구리 스택"을 선호하는 이유를 설명합니다. 청개구리 스택은 사용자가 적어 문제 해결에 어려움이 있지만, 기술에 대한 깊은 이해를 얻을 기회를 제공합니다. 또한, 후발주자로서 기존 기술의 단점을 개선한 대안적인 설계를 채택하는 경우가 많습니다. 여러 부품을 직접 조립해야 하는 번거로움이 있지만, 각 기술을 깊이 이해하고 최적의 조합을 선택할 수 있다는 장점이 있습니다. 중요한 것은 대중의 선택에 맹목적으로 따르기보다는 주체적으로 판단하는 태도이며, LLM 시대에도 청개구리 스택이 제공하는 배움의 기회는 여전히 유효합니다. 이 글은 독자들에게 Stack Overflow에 답이 없는 길을 걸으며 자신만의 깨달음을 얻어보기를 권장합니다.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
どっちにしようかな…🤔
以下の二つの技術トピックのうち、どちらに興味がありますか?
ReactはMVCアーキテクチャへの反骨というか、jQueryによる手続き型への反骨なのかなというのが自分の理解でした
ReactというかReduxかもという話をしてた
ReactはMVCアーキテクチャへの反骨というか、jQueryによる手続き型への反骨なのかなというのが自分の理解でした
https://interoperable-europe.ec.europa.eu/collection/eupl
EUPL(European Union Public Licence) 적용한 소스 코드 처음 봤다. 유럽연합에서 만든 거니 법적으로는 좀더 깔끔?하려나. ㅎㅎ
全然技術レベルの違う話ではあるけど、自分もデザイナーなのに #反骨スタック っぽい選択をしてきた気がしている。
正確には、自分のスキルと時間的制約とワンオペでの制作・開発という事情でその選択肢しかなかったという側面が大きくて、能動的に選べる選択肢がそれしか無かったんだけど。
ただ、確かに低レイヤーを触る動機が生まれるという意味では良い面もあった気はする。
自分の生存戦略が、なるべくフレームワークとかライブラリに依存しないスキルの勉強にかける、だったから、そういう観点で当時選んだのが「薄い」フロントエンドライブラリとしての #RiotJS だったし、未だに素の #CSS を書きたくなってしまう性質に繋がっている気がする。
反骨精神のスタック礼賛
이 글에서는 저자가 기술 스택을 선택할 때 주류에서 벗어난 "청개구리 스택"을 선호하는 이유를 설명합니다. 청개구리 스택은 사용자가 적어 문제 해결에 어려움이 있지만, 기술에 대한 깊은 이해를 얻을 기회를 제공합니다. 또한, 후발주자로서 기존 기술의 단점을 개선한 대안적인 설계를 채택하는 경우가 많습니다. 여러 부품을 직접 조립해야 하는 번거로움이 있지만, 각 기술을 깊이 이해하고 최적의 조합을 선택할 수 있다는 장점이 있습니다. 중요한 것은 대중의 선택에 맹목적으로 따르기보다는 주체적으로 판단하는 태도이며, LLM 시대에도 청개구리 스택이 제공하는 배움의 기회는 여전히 유효합니다. 이 글은 독자들에게 Stack Overflow에 답이 없는 길을 걸으며 자신만의 깨달음을 얻어보기를 권장합니다.
hackers.pub · Hackers' Pub
Link author: 洪 民憙 (Hong Minhee)@hongminhee@hackers.pub
모든 이어폰의 수명은 케이블의 가장 약한 연결고리의 수명과 같다
JS에서 Promise는 await으로 값을 읽는 것 외에, 현재 pending 상태를 읽는 등의 동작을 허용하지 않는다. 이거 왜 안되냐고하면 Promise의 의미론과 배경 철학이 어쩌구저쩌구하는 대답이 돌아온다. 내 생각에 그건 틀렸다. 이유는
간단한 대답: 가능하면서 왜 안해줌?
약간더 복잡한 대답
그 제약 조건은 Promise가 callback과 같은 의미의 다른 표현일때는 성립한다. callback이 전달하는 값은 특정시점 = t
에 존재하는 것이다. t
이후에 그 값을 사용하기위해선 따로 저장을 해놓던가해서 값의 존재시기를 >= t
로 바꾸어야한다.
그런데 Promise는 await을 여러번 하는걸 허용한다. await x; await x;
이런식으로. 값이 없으면 기다리고, 값이 한번 들어오면 그걸 계속해서 돌려준다. 여기서 Promise가 callback이랑 다른게 드러난다. 그리고 실제로 callback과 다르게 동작하기위해 값의 여부 등을 내부 상태로 갖고있을수 밖에 없다.
요약하면, callback과 완전히 상호호환될때 정당화되는 제약을 callback이 아니면서 강요하니까 문제란 얘기다.
洪 民憙 (Hong Minhee) shared the below article:
내가 지금 바이브코딩을 하고 싶어도 못하는 상황이라 답답한데

bgl gwyng @bgl@hackers.pub
이 글은 앱 개발 과정에서 프론트엔드, 백엔드, 그리고 라이브러리 개발에 AI를 활용하는 경험과 고민을 담고 있습니다. 특히, 간단한 CRUD 작업은 이미 자동화가 가능하지만, 복잡한 mutation 개발에는 테스트 환경 구축이 선행되어야 AI의 도움을 효과적으로 받을 수 있음을 강조합니다. 또한, 라이브러리 개발 자동화의 잠재적 위험성을 지적하며, 이는 코드의 '축적'이라는 특성상 현재 AI 수준으로는 어렵다고 분석합니다. 궁극적으로, 코드 에이전트 사업의 미래와 협업을 통한 코드 축적의 중요성을 역설하며, Gen AI를 넘어선 Zen AI의 필요성을 제기합니다. 이 글은 AI 개발 도구의 현황과 한계를 현실적으로 진단하고, 미래 개발 환경에 대한 깊이 있는 통찰을 제공합니다.
Read more →첫 페디버스 계정은 hackers' pub으로😸