@perlmint 스레드는 관련 기능들이 잘 안 될때가 많아요
Perlmint
@perlmint@hackers.pub · 90 following · 79 followers
크로스 플랫폼 빌드 고치는 노동자
잡담은
@meperlmint 에서
Github
- @perlmint
Bluesky
- bsky.perlmint.dev
@stadiajeff yongdae 문제가 있다는 이야기는 들었지만 활성화부터 안될 줄은 몰랐죠 (¯―¯٥)
아니 W3C 양반 언어별로 도배라니
threads에서의 fediverse 구독, 답글 달기를 확인해보려고 좀 봤는데 음... 일단 활성화부터 안되는데...
private한 기록을 할 일이 있고 소수와 공유가 필요해서 내 hollo 인스턴스에 계정을 만들어서 기록 한 것 까지는 좋았다. fediverse 서비스 뭐 가입하라고 골라주기도 별로라고 생각하던 참에, threads에서도 접근 가능하다는 점이 떠올라서 그냥 계정+도메인을 알려줬지만 잘 모르겠다는 말이 나와서 조금 찾아보니 활성화가 필요하다는 공식 문서를 봤다. 그래서 테스트 하기 위해 나도 threads에 가입하고는 활성화를 눌렀더니만 unexpected error가 난다.
threads에서의 fediverse 구독, 답글 달기를 확인해보려고 좀 봤는데 음... 일단 활성화부터 안되는데...
Perlmint shared the below article:
일본은 패스키로 진격하는데, 한국은 왜 제자리인가요?
푸른곰 @purengom@purengom.com
금융부터 전자상거래까지 확산된 일본의 FIDO2 패스키 전략, 한국은 ‘간편 인증’에 머무른 채 방향성조차 흐릿합니다 보안 사고가 촉발한 일본의 급반전 2025년 상반기, 일본 증권 업계를 강타한 대규모 불법 로그인 및 부정 거래 사태는 단순한 해킹 사건을 넘어, 디지털 인증 체계에 대한 신뢰 자체를 뒤흔드는 사건이었습니다. 수천 건의 계좌 탈취와 수백억 엔 규모의 […]
Read more →日本의 TypeScript 컨퍼런스인 TSKaigi 2026이 5月 22日(金)–23日(土)에 東京에서 開催된다고 합니다. 함께 가실 韓國 분 계실까요?
一旦 저랑 @2chanhaeng초무 님하고
@kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior)
님이 같이 가실 것 같습니다.
Happy Febuary to those who celebrate
커널 빼고 다 빌드하고 패키징한다
GCC 빌드하고 보니 locale이 CJK 중에 K만 없는 듯 하다
폐쇄환경과 낡은 환경에서 최-신 소프트웨어 돌리기 전문가가 되어가는 것 같은데...
GHA runner k8s로는 잘 안올리나...? 템플릿까지 고쳐서 일단 올렸다...
Container image credential이 틀렸는데 k8s 대시보드에서 Image pull에러와 계속해서 반복하는 이벤트 외에는 정보가 안보이는 것 같다
폐쇄환경과 낡은 환경에서 최-신 소프트웨어 돌리기 전문가가 되어가는 것 같은데...
GHA runner k8s로는 잘 안올리나...? 템플릿까지 고쳐서 일단 올렸다...
으아 이슈에 답변해야하는데 너무 하기 싫다... 작업이 아닌 정책적인 것이라 하기 싫다...
어째서 다들 노동자가 아니라 사용자에게 이입하는 걸까…?
커버리지를 높일 수 있게 테스트 케이스 작성해달라고 하니까 잘 하네...?
지금 생각 났는데, Ninja로 생성하면 일반 LTCG 옵션이 켜져있고, MSVC로 하면 LTCG:INCREMENTAL 옵션이 켜져 있었다. 아마도 이 차이가 마침 남아있던 이전 빌드 결과물과 더해져서 빌드 성공 실패 여부가 갈린게 아닐까... 애초에 그 문제되는 경고 자체가 컴파일러 버그라면 그럴 법한 것 같은데...
어쨌든 가장 큰 실수는 레퍼런스 문서 잘 안읽고 gemini에게 물어본 것 같다. 제안을 총 10개 정도 받고 다 해봤는데 반절 이상이 존재하지 않는 옵션(정확히는 조합 불가) 거짓말이었고, 나머지는 아무 효과도 없었다. 시도도 안한 제안은 애초에 최적화 관련을 끄라는 해결 해야 되는 이유를 부정하는 일이었고
잘 되는 줄 알았는데, 프로젝트 종류랑 상관 없이 발생하는 경고였고, 그냥 MSVC에서 외부 헤더에만 예외 처리 할 수 없는 경고라는 설명을 봤다... 공식 제안 방법이 그냥 전체에서 꺼라 라니...
지금 생각 났는데, Ninja로 생성하면 일반 LTCG 옵션이 켜져있고, MSVC로 하면 LTCG:INCREMENTAL 옵션이 켜져 있었다. 아마도 이 차이가 마침 남아있던 이전 빌드 결과물과 더해져서 빌드 성공 실패 여부가 갈린게 아닐까... 애초에 그 문제되는 경고 자체가 컴파일러 버그라면 그럴 법한 것 같은데...
결국 포기하고 ninja를 안쓰는걸로...
잘 되는 줄 알았는데, 프로젝트 종류랑 상관 없이 발생하는 경고였고, 그냥 MSVC에서 외부 헤더에만 예외 처리 할 수 없는 경고라는 설명을 봤다... 공식 제안 방법이 그냥 전체에서 꺼라 라니...
코로나 시기의 단절이 사람들에게서 ‘뉴비를 잘 가르치는 법’을 앗아갔듯이 AI의 유행이 사람들에게서 ‘사람에게 잘 설명하는 법’을 앗아갈 거라는 생각이 가끔 든다.
결국 포기하고 ninja를 안쓰는걸로...
여기서 C++ 안 쓰기를 고르고 싶다...
또 이상한 버그를 마주쳤다... LinkTimeCodeGeneration단계에서 별로 납득이 안가는 라인에서 경고가 발생해서 빌드가 실패 하는데, ninja로 프로젝트를 만들었을 때만 발생한다... MSVC로 프로젝트를 만들면 문제가 없고...
결국 포기하고 ninja를 안쓰는걸로...
또 이상한 버그를 마주쳤다... LinkTimeCodeGeneration단계에서 별로 납득이 안가는 라인에서 경고가 발생해서 빌드가 실패 하는데, ninja로 프로젝트를 만들었을 때만 발생한다... MSVC로 프로젝트를 만들면 문제가 없고...
관점에 동의하고, 모델과 학습 데이터의 민주화를 어떻게 이룰 것인가에 대한 현실적인 부분을 좀 더 고민한다면 결국 국가나 국가들의 연합체이 주도하는 방향이 되지 않을까 싶다. 소프트웨어는 컴퓨터만 있으면 온전히 개인의 역량만으로 접근할 수 있지만 LLM은 특히 초대형 자본의 각축장이라 풀뿌리로 접근할 수 있는 길이 잘 보이지 않는 것 같다.
Been thinking a lot about
@algernonsmall rodent who dislikes browsers very much's recent post on FLOSS and LLM training. The frustration with AI companies is spot on, but I wonder if there's a different strategic path. Instead of withdrawal, what if this is our GPL moment for AI—a chance to evolve copyleft to cover training? Tried to work through the idea here: Histomat of F/OSS: We should reclaim LLMs, not reject them.
AI 企業이 F/OSS 코드로 LLM 訓練하는 걸 막을 게 아니라, 訓練한 모델을 公開하도록 要求해야 한다고 생각합니다.
撤收가 아니라 再專有! GPL이 그랬던 것처럼요.
訓練 카피레프트에 對한 글을 썼습니다: 〈F/OSS 史唯: 우리는 LLM을 拒否할 게 아니라 되찾아 와야 한다〉(한글).
구현체로 jxl-rs를 사용하는데 저도 상당부분 기여했습니다 많관부...
최소한 맥에서는 df는 쓸 수 있는 물건이 아닌 것 같기도하고... 뭔지 모르겠고, 내가 원하지 않는 정보가 너무 많이 나온다
루프 때문에 SIGSEGV 발생한다고 클로드에게 루프 언롤링 시키는 중...
소프트웨어 엔지니어 채용중입니다. https://careers.linecorp.com/ko/jobs/2961/ Rust(도) 하는 팀입니다.
훌륭한 프로그래머인 @perlmint 님와 함께 일할 수 있습니다
LLM에서 마크다운이 널리 쓰이게 되면서 안 보고 싶어도 볼 수 밖에 없게 된 흔한 꼬라지로 그림에서 보는 것처럼 마크다운 강조 표시(**)가 그대로 노출되어 버리는 광경이 있다. 이 문제는 CommonMark의 고질적인 문제로, 한 10년 전쯤에 보고한 적도 있는데 지금까지 어떤 해결책도 제시되지 않은 채로 방치되어 있다.
문제의 상세는 이러하다. CommonMark는 마크다운을 표준화하는 과정에서 파싱의 복잡도를 제한하기 위해 연속된 구분자(delimiter run)라는 개념을 넣었는데, 연속된 구분자는 어느 방향에 있느냐에 따라서 왼편(left-flanking)과 오른편(right-flanking)이라는 속성을 가질 수 있다(왼편이자 오른편일 수도 있고, 둘 다 아닐 수도 있다). 이 규칙에 따르면 **는 왼편의 연속된 구분자로부터 시작해서 오른편의 연속된 구분자로 끝나야만 한다. 여기서 중요한 건 왼편인지 오른편인지를 판단하는 데 외부 맥락이 전혀 안 들어가고 주변의 몇 글자만 보고 바로 결정된다는 것인데, 이를테면 왼편의 연속된 구분자는 **<보통 글자> 꼴이거나 <공백>**<기호> 또는 <기호>**<기호> 꼴이어야 한다. ("보통 글자"란 공백이나 기호가 아닌 글자를 가리킨다.) 첫번째 꼴은 아무래도 **마크다운**은 같이 낱말 안에 끼어 들어가 있는 연속된 구분자를 허용하기 위한 것이고, 두번째/세번째 꼴은 이 **"마크다운"** 형식은 같이 기호 앞에 붙어 있는 연속된 구분자를 제한적으로 허용하기 위한 것이라 해석할 수 있겠다. 오른편도 방향만 다르고 똑같은 규칙을 가지는데, 이 규칙으로 **마크다운(Markdown)**은을 해석해 보면 뒷쪽 **의 앞에는 기호가 들어 있으므로 뒤에는 공백이나 기호가 나와야 하지만 보통 글자가 나왔으므로 오른편이 아니라고 해석되어 강조의 끝으로 처리되지 않는 것이다.
CommonMark 명세에서도 설명되어 있지만, 이 규칙의 원 의도는 **이런 **식으로** 중첩되어** 강조된 문법을 허용하기 위한 것이다. 강조를 한답시고 **이런 ** 식으로 공백을 강조 문법 안쪽에 끼워 넣는 일이 일반적으로는 없으므로, 이런 상황에서 공백에 인접한 강조 문법은 항상 특정 방향에만 올 수 있다고 선언하는 것으로 모호함을 해소하는 것이다. 허나 CJK 환경에서는 공백이 아예 없거나 공백이 있어도 한국어처럼 낱말 안에서 기호를 쓰는 경우가 드물지 않기 때문에, 이런 식으로 어느 연속된 구분자가 왼편인지 오른편인지 추론하는 데 한계가 있다는 것이다. 단순히 <보통 문자>**<기호>도 왼편으로 해석하는 식으로 해서 **마크다운(Markdown)**은 같은 걸 허용한다 하더라도, このような**[状況](...)**は 이런 상황은 어쩔 것인가? 내가 느끼기에는 중첩되어 강조된 문법의 효용은 제한적인 반면 이로 인해 생기는 CJK 환경에서의 불편함은 명확하다. 그리고 LLM은 CommonMark의 설계 의도 따위는 고려하지 않고 실제 사람들이 사용할 법한 식으로 마크다운을 쓰기 때문에, 사람들이 막연하게 가지고만 있던 이런 불편함이 그대로 표면화되어 버린 것이고 말이다.
안녕하세요, 플래닛 등의 연합우주 SNS를 사용한 적 있는 모든 사람을 대상으로, 동인을 위한 더 나은 SNS 및 서비스 개발을 위한 설문조사를 1월 11일(일)까지 진행 중입니다.
혹시 설문조사에 대한 질문이나 개선점 등이 필요하다 생각하시다면 편히 멘션이나 DM으로 이야기해주세요. 감사합니다.
❯ witr ghostty
Target : ghostty
Process : ghostty (pid 36529)
User : mck
Service : launch job demand
Command : /Applications/Ghostty.app/Contents/MacOS/ghostty
Started : just now (Mon 2025-12-29 10:08:55 +00:00)
Why It Exists :
launchd (pid 1) → ghostty (pid 36529)
Source : application.com.mitchellh.ghostty.34914134.34914139 (launchd)
Type : Launch Agent
Working Dir : /
Open Files : 100 of 256 (39%)
Locks : /Users/mck/Library/Caches/com.mitchellh.ghostty/sentry/8c48f586-5c27-49c8-71a1-7727494394fc.run.lock
Warnings :
• Process is running from a suspicious working directory: /
• Service name and process name do not match
독점 소프트웨어가 SIGSEGV를 던진다...
최근 보안의 화두는 제로트러스트지만, 정작 가장 민감한 공동인증서 파일은 여전히 NPKI라는 고전적인 디렉터리 구조 속에 노출되어 있습니다.
OS 수준의 암호화 기술인 BitLocker나 VBS의 이점을 전혀 활용하지 못하는 현 상황을 개선해보고자, Windows 인증서 저장소를 백엔드로 활용하는 방식을 고민 중입니다. macOS의 Keychain 시스템처럼 인증서를 시스템 보안 영역 내부로 끌어들임으로써, 파일 탈취 위험을 획기적으로 낮추는 것이 목표입니다.
인프라 자체를 바꿀 순 없어도, 엔드포인트 단에서 '방어의 밀도'를 높이는 유의미한 시도가 될 것 같습니다. :-D
예전에 LLM이 얼마나 복잡한 코드를 이해할 수 있는지 파악하기 위해 Gemini 2.5 모델들로 내 IOCCC 2012 수상작을 던지고 무슨 일을 하는지 실행 없이 알아 맞춰 보라고 했더니 하나도 제대로 파악하지 못했던 적이 있다. 문득 생각이 나서 Gemini 3 Pro는 개선되었을려나 생각했는데, 힌트 하나만 받고 10분동안 생각하더니 완벽하게 응답에 성공했다! 심지어 설명도 실행 없이 분석했다는 걸 감안할 때 매우 정확했다. IOCCC 수상작을 모두 기억하고 있을 가능성을 감안해 이전에 본 적이 있냐고 물어 보니 환각(...)을 내뱉는 것도 그렇고(그보다 외웠다면 처음에 바로 정답을 얘기했겠지), 실제로 생각 과정을 보면 사람이 할 법한 분석을 전부 하고 있는 걸 보니 진짜로 LLM들의 reasoning 능력이 이 정도 수준에 도달했음을 알 수 있다. 세상 참 많이 발전했네.
GLM-4.7의 성능이 그렇게나 좋다고 들어서 요금제를 보니 상당히 파격적인 가격이라 조금 시도해 봤다. 우선 LogTape에 있던 이슈 하나를 수행하게 했고, 혹시 몰라서 Claude Code에서 Claude 4.5 Opus로 PLAN.md 계획 파일을 꽤 꼼꼼하게 만들게 한 뒤, 그걸 참고하게 했다. 그럼에도 불구하고:
- 모든
export되는 API에 대해서는 JSDoc 주석을 써야 한다는 당연한 절차를 수행하지 않음 (코드베이스의 다른 코드는 다 그렇게 되어 있는데도 눈치가 없음) - JSDoc 주석을 쓰랬더니 Python docstring 스타일로 정의부 “안쪽”에 주석을 씀…
Deno.env같은 특정 런타임에 의존적인 API를 씀 (코드베이스의 다른 코드는 그런 API 안 쓰고 있음)- 아주 기본적인 JavaScript 구문 오류를 냄 (예를 들면 세미콜론 빼먹는 식의) → 이것 때문에 상당히 토큰 소모를 많이 함
- 한국어가 살짝 귀여움 (“나옵니다”가 아니라 “나옴니다”라고 쓰는 식)
- 결국에는 JavaScript 구문 오류를 못 고쳐서 테스트 스위트도 아예 못 돌리는데 전체 작업이 완료되었다고 스스로 결론 내림
소문난 잔치에 먹을 게 없다더니, 역시나 벤치마크만 보고 모델을 골라서는 안 되겠다는 교훈만 재확인 한 것 같다.
OH: "OpenBSD? Ah, das Fischlinux."
정보가 부족한 에러 메시지로 인해서 약 하루를 버렸다. 정보가 부족한 것도 있지만, 믿음(?)이 부족해서 멀쩡한 곳만 잔뜩 쳐다보고 있었다.
Just had someone leave feedback on my F/OSS project saying “maybe that's fine if a product is focused on your Chinese community.”
I'm Korean. Every single piece of documentation is in English. There's nothing in Chinese anywhere in the project.
This kind of microaggression is exhausting. As a non-white maintainer, you deal with these assumptions constantly—people who feel entitled to your labor while casually othering you based on your name.
It chips away at your motivation. It makes you wonder why you bother.
https://github.com/dahlia/optique/issues/59#issuecomment-3678606022
8~16자 제한
: 데이터베이스 설계를 잘못해서 길이제한 넣었어요 뿌우
특수문자 포함 대소문자 숫자 같은문자 자신의ID
: 길이가 짧아서 어쩔 수 없다 + 위에서 내려주는 거라 어쩔 수 없다
@!_/*&는 안 돼
: 해킹 우려 때문. 평범하게 잘 만들었으면 상관이 없는데, 엔진이 제공하는 소독(sanitization) 기능을 신뢰하지 않거나 그것조차도 불안한 환경 (그.. P로 시작하는 언어라던가, 자바 한 명 타요 환경이라던가) 에는 이해할만하지만... 별로 이해해주고 싶지는 않음.
RE: madost.one/notes/agjdowl8ke
이미지를 리사이징, 다른 포맷으로 변환하는데, imagemagick은 올바르게 이미지를 처리하는데, imgage-rs, mozjpeg는 알 수 없는 점이 잔뜩 생긴다. 일단 되는 것 찾았으니...
간다! 코드를 생성하는 코드를 생성하는 코드
"OOO 주식회사 OOO 대표님 맞으시죠? 산업안전보건교육 받아야 하는 업체에 해당합니다. 직원이나 프리랜서 고용 있으시죠? 어쩌고~" 일단 쎄한 느낌을 받았습니다. 다다다 쏴붙이면서 중간에 질문할 틈을 최대한 막으면서 가는 꼬락서니가 관공서는 아니구나 싶었습니다. 고용이나 프리랜서 없다고 하니, 뚝 끊어 버립니다. 검색해보니, 이런식의 반쯤 사기같은 행태가 존재한다고 하네요. 소규모 법인 대표님들 조심하세요~
역시 개발자도구가 필요하다... 아무리 그냥 클로드에게 일 시키기만 한다지만, width: 100%, height: 100%가 없어서 발생한 버그를 대충 하루동안 잡고 있었네...
We’re hiring! Looking for people who can write Windows kernel drivers. https://careers.theori.io/ko/o/191654
안드로이드 웹브라우저에 개발자도구 연결 못하던 시절에 js넣어서 원격지에서 디버깅 가능했는데 (이것도 안돌아가는 더 구버전 브라우저는 GG) 그런게 2025년에 다시 쓰고 싶어지다니...
웹브라우저 개발자도구 없이 개발하는 무리수를 계속 던지고 있는데 진짜 아이패드에서 할 수 없나...?
https://photo.perlmint.app/view/a2840d13-81ba-43df-a5a5-c2b1a7dad83e 360 파노라마 이미지 공유용으로 만들어보고 있는데, 이미지 리사이즈, 변환하면 알 수 없는 노이즈가 생긴다... 아이패드 + 원격이라 제대로 된 원인 분석은 나중으로 미루는 중
원본 19MB jpeg -> 914KB jpeg, 367KB avif, 3.4MB webp(이것도 문제가 있는데...)
https://photo.perlmint.app/view/a2840d13-81ba-43df-a5a5-c2b1a7dad83e 360 파노라마 이미지 공유용으로 만들어보고 있는데, 이미지 리사이즈, 변환하면 알 수 없는 노이즈가 생긴다... 아이패드 + 원격이라 제대로 된 원인 분석은 나중으로 미루는 중



![* 21. Ba5# - 백이 룩과 퀸을 희생한 후, 퀸 대신 **비숍(Ba5)**이 결정적인 체크메이트를 성공시킵니다. 흑 킹이 탈출할 곳이 없으며, 백의 기물로 막을 수도 없습니다. [강조 처리된 "비숍(Ba5)" 앞뒤에 마크다운의 강조 표시 "**"가 그대로 노출되어 있다.]](https://media.hackers.pub/note-media/17646c5d-3f9d-472b-9d56-dd34006ad291.webp)


![> 다음 C 프로그램이 하는 일을 알려 줘. [코드 생략]
이 C 프로그램은 **난독화(obfuscated)**된 코드로, 입력받은 **시간 또는 단위가 포함된 문자열**을 해석하여 총합을 계산한 뒤, 그 결과를 **16진수(Hexadecimal)**로 출력하는 프로그램입니다.
구체적인 작동 방식은 다음과 같습니다:
1. **입력 처리**:
* `getchar()`를 통해 표준 입력(stdin)에서 문자를 하나씩 읽어들입니다.
* `|32`를 통해 대문자를 소문자로 변환하여 처리합니다.
2. **문자 매핑 (해싱)**:
* `"ynwtsflrabg"`라는 문자열은 입력받은 문자가 특정 단위(예: year, week, second 등)인지 확인하기 위한 인덱스 문자열입니다.
* 입력된 문자가 이 문자열에 포함되면 변수 `b`에 특정 해시 값을 누적합니다.
3. **단위 변환 및 계산**:
* `"1+DIY/.K430x9G(kC["`라는 복잡한 문자열은 **룩업 테이블(Lookup Table)** 역할을 합니다.
* 내부 루프에서 이 테이블과 비트 연산(`&255^b`)을 통해 현재 입력된 단위가 무엇인지(예: 'y'가 연도인지, 's'가 초인지) 판별합니다.
* `u=1ll<<6177%n--*4` 부분은 각 단위에 맞는 **가중치(Multiplier)**를 계산합니다. `<<` 비트 시프트 연산을 사용하는 것으로 보아, 특정 단위마다 2의 제곱수 형태의 배수를 적용하거나, 혹은 시간을 초 단위(또는 나노초 단위)로 변환하는 계수를 생성합니다.
4. **결과 누적**:
* 변수 `m`에 파싱된 수치와 단위 가중치를 곱하여 누적합니다.
5. **출력**:
* 최종적으로 계산된 값 `m`을 `printf("%llx\n", m)`을 통해 **16진수(long long hex)** 형태로 출력합니다.
**요약하자면:**
이 코드는 "1y(1년)", "2w(2주)", "30s(30초)"와 같은 형식의 텍스트를 입력받아, 이를 초(second)나 특정 기본 단위로 환산한 총합을 16진수로 보여주는 **단위 변환 계산기**입니다.](https://media.hackers.pub/note-media/53eb3036-9463-495d-bb5c-a04de12a7f21.webp)


