하스켈 소켓 통신 라이브러리 이름을 rocket 이라고 지으면 상도덕에 어긋나나?
juxtapose
@xt@hackers.pub · 8 following · 47 followers
juxtapose - Wiktionary, the free dictionary
Pronunciation
- (UK) IPA: /ˈd͡ʒʌkstəpəʊz/
- (General American) IPA: /ˈd͡ʒʌkstəpoʊz/
Verb
juxtapose (third-person singular simple present juxtaposes, present participle juxtaposing, simple past and past participle juxtaposed)
- (transitive) To place side by side, especially for contrast or comparison.
@xtjuxtapose String은 사실 그렇게 느리지 않습니다. Strict Text를 (String이 더 적절한 곳에) 잘못 사용할 경우가 거꾸로 성능하락을 불러올 수 있고, Lazy Text의 경우 surrogate characters를 사용하는 String에 대응하지 못합니다. 물론 "ByteString을 쓰면되지 않느냐?"고 주장할 수는 있지만, 모든 String-like type의 application이 Character 구분을 쉽게 포기할 수 있는 것도 아니죠.
@ailrunAilrun (UTC-5/-4) 시간 될 때 반론을 써 보겠습니다.
[Mon Nov 10 14:09:39 2025] Out of memory: Killed process 29426 (syncthing) total-vm:2418416kB, anon-rss:784kB, file-rss:3584kB, shmem-rss:0kB, UID:1000 pgtables:516kB oom_score_adj:200
1GB 짜리 SBC 에서 싱크싱을 systemd 유저 서비스로 띄워 두고 매일 몇 GB 정도 싱크를 하게 했더니 하루에 한 번씩 OOM 킬 당한다. 스와프 2GB 줘 봤지만 소용이 없다. 게다가 dmesg -T | grep "Out of memory" 에서 정확히 싱크싱만 잡히는 걸 보면 진짜로 싱크싱의 메모리 프레셔만 문제인 것 같다(스와프 아웃 속도가 문제가 아닌 것). 근데 다른 해결책도 보이지 않고, 또 저렇게 정기적으로 재시작당하게 냅둬도 아무 문제가 없어서, 냅두는 중…
이 문제는 그저께 리부트 이후 사라져 버렸고 이제는 재현할 수 없다…
문제가 없어지면 실망하는 것이 해귀적 사고일 것이다
해귀즈 퍼브가… 느려졌어요…
맥 미니 재시작의 때가 온 것인가?
해귀즈 퍼브가… 느려졌어요…
@hongminhee洪 民憙 (Hong Minhee) 글 쓸 때 "Please enter at least one tag for your article." 를 없애 주세요
아이: 엄마 이번에 스위치 2 나왔대요 스위치 사주세요
엄마: 집에 스위치 있잖니
집에 있는 스위치:
RE: https://serafuku.moe/notes/af5dy7dx78
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 을 놓아주어야 합니다.
[Mon Nov 10 14:09:39 2025] Out of memory: Killed process 29426 (syncthing) total-vm:2418416kB, anon-rss:784kB, file-rss:3584kB, shmem-rss:0kB, UID:1000 pgtables:516kB oom_score_adj:200
1GB 짜리 SBC 에서 싱크싱을 systemd 유저 서비스로 띄워 두고 매일 몇 GB 정도 싱크를 하게 했더니 하루에 한 번씩 OOM 킬 당한다. 스와프 2GB 줘 봤지만 소용이 없다. 게다가 dmesg -T | grep "Out of memory" 에서 정확히 싱크싱만 잡히는 걸 보면 진짜로 싱크싱의 메모리 프레셔만 문제인 것 같다(스와프 아웃 속도가 문제가 아닌 것). 근데 다른 해결책도 보이지 않고, 또 저렇게 정기적으로 재시작당하게 냅둬도 아무 문제가 없어서, 냅두는 중…
@xtjuxtapose 회사에 있는 나름 메모리 빵빵한 GPU로 돌려봤는데, 정말 돌아가기까지만 하더라고요. 사내 로컬 코딩 에이전트 스웜같은거 만드려면 웬만큼 본격적이어선 안되겠더라고요.
@bglbgl gwyng 오 그렇군요. 혹시 회사 경비처리로 가능하시다면, 요즘 클라우드 남의 컴퓨터 빌려서 고성능 GPU 잠깐 쓰고 반납하는 것도 쉬워졌으니까 한번 시도해 보시면 어떨까요. 시험 삼아 해 보고 잘 되면 해당 모델의 GPU 구매로 진행하실 수 있는 것이니…
리눅스 랩탑(amdgpu, rocm)에서 ollama 써서 아주 잠깐 로컬 LLM 시도해 본 소감: 생각보다 잘 되는데, 한편으로 왜 OpenAI 의 적자가 저렇게 터무니없는 규모라는 것인지도 이해했다. 어디가 병목인지는 알겠는데 그래서 그에 대한 대응책은 GPU 를 증설하기 시작해서 그냥 많이 증설했습니다. 를 하고 있다는 것이군 진짜로… 이게 인류의 갈 길이라니… 사이버펑크보다 현실이 더 사이버펑크다
챗봇 UI를 만들고 있는데, AI한테 툴 사용을 따로 주지말고, 채팅 자체를 어떤 REPL안에(Python이라던가) 임베딩 시키는게 나은 디자인인거 같다. 근데 이거 먼가 모나드트랜스포머스러운데..
@bglbgl gwyng 이라던가 → 이라든가
이런 생각이 받아들여지는 데에는 시간이 많이 걸릴 거라고 생각했는데… AWS 먹통 사태에 대한 사람들의 반응이 생각보다 뜨겁네요. 생각보다 될 것 같기도 하네요.
그러므로 다 같이 외쳐
- 클라우드는 없다! 남의 컴퓨터 거부하자!
- 분산을 집중으로 되돌리는 역사의 퇴행 AWS 물러가라!
- 서버는 기본권이다! 집집마다 서버를! 모든 어린이에게 서버를!
- 내 컴퓨터 없이 내 보안 없다!
- 내 컴퓨터 없이 내 프라이버시 없다!
- 내 컴퓨터 없이 내 자유 없다!
- 1인 1서버는 인권이다!
- 1인 1서버가 민주주의 주춧돌이다!
- POWER TO THE PEOPLE!!! REAL FREEDOM FOR ALL!!!
Zopfli 와 Zstd 도 원래 2호선의 2 를 써서 2opfli 와 2std 로 작명되었습니다. 그러나 대부분의 프로그래밍 언어에서 함수명의 첫 글자를 숫자로 할 수 없다는 규칙 때문에 2 와 비슷한 알파벳을 빌려 쓰게 됩니다. 이것은 출근 시간대 구로디지털단지역에 가 보면 납득할 수 있으며 (아님)
@campanulaLuminα 아이고 낭패 보셨군요 ㅠㅜ 잘 결심하셨습니다. 요리는 건강해지려고 하시는 것인데 다치시면 주객전도지요… 환부 소독 잘 하시고 빠르게 씻은 듯이 나으시기를… 다이소 물건이 참 편차가 극심한 것 같습니다. 저도 몇 번 당해 봤네요. 가끔 이렇게 인간의 피를 갈구하는 놈들이 있더라고요
So, these days, I'm always trying to find and follow the conf.d tradition. The rationale of this tradition looks like:
/etc/somepackage/somepackage.confis where the default configuration is./etc/somepackage/conf.d/is where the overrides are; this is where you put your user conf.
Normally somepackage.conf is managed by the package manager. When the package gets upgraded (shipping a new version of somepackage.conf), and there are local changes, the package manager will ask you: To overwrite with the maintainer's version or to keep yours.
This question is often difficult to answer, especially if you can't, for the life of you, remember what the heck that package is about. Even "show diff" sometimes fails to help. You have to resort to searching.
Keeping your confs under conf.d helps you avoid this altogether. It also helps you separate them, selectively include/exclude some of them to a system, and prioritize them (the 00-my.conf and 99-my.conf pattern).
But that makes me wonder: If all of my user conf will stay inside conf.d, why bother? Why have /etc/somepackage/somepackage.conf at all? Why is it under /etc anyway? Legacy. /etc/resolv.conf is the first example to come to mind. Different apps fight over the control of this file, so sometimes you encounter advice like sudo chattr +i to prevent any change. Absurd, but it works!
So today I briefly wondered if there's any ongoing effort or a new clever solution to address this. Well, there's NixOS which nullifies quite a bit of my point. I've always liked its idea since like 15 years ago. But is there anything else, anything new, for my existing (less exciting) systems?
…I asked ChatGPT 5-Thinking about this, and its answer was mostly expected. The only thing that amused me was the discovery of etckeeper. OK that looks interesting.
← 지금 스위치 하나 더 사고 싶어서 가격 검색 중이었던 사람
(1U 랙마운트 크기에 포트 16 개짜리 스위치를 집에서 쓰면서) 으음 아무래도 스위치를 하나 더 갖고 싶군… 5-6 포트짜리 하나만 더 있으면 토폴로지 구성하기 참 좋겠는데 말이야…
다나와에서 IGMP 스누핑 있는 네트워크 스위치로 체크해 보니
얘네가 제일 싼 것 같은데 둘 중에 하나 그냥 살까 싶다
님은 바로 싱크싱을 말하는 것입니다 여러부우우운!
호버(hover)는 잘못된 인터페이스입니다. 사용자가 어떤 목표를 달성하기 위해 호버를 해야만 하는 인터페이스를 만들면 안 됩니다. 호버에는 장식적 효과 이상의 기능이 있어서는 안 됩니다.
예전에는 이것을 설명하는 데에 많은 말이 필요했고 참 힘들었습니다. 이제는 좀 쉬워졌죠. 터치스크린입니다. 손바닥만 한 스마트폰부터 대문짝만 한 키오스크까지, 이제 터치스크린은 싫어도 불가피하게 써야만 하는 물건이 되어 버렸습니다.
그런데 터치스크린에는 호버가 없죠. CSS 에 @media (hover: hover) 같은 게 있긴 하지만, 당연히 이것만 믿고 인터페이스 설계를 해서는 안 될 것입니다. 그런 식으로 "호버 있음" 과 "호버 없음" 을 따로 지원한다는 것은 번거롭고, 실수하기도 쉽고, 망가지기도 쉽고, 관리하기는 어렵습니다. 설령 터치스크린 있는 장치에서 터치를 활성화하거나, 비활성화하거나, 마우스를 끼우거나 빼거나 등등 할 때마다 그 정보가 무수한 계층을 뚫고 애플리케이션까지 올바르게 전달된다고 쳐도요.
NAS 에서 aria2c 2025-10-01-raspios-trixie-arm64-lite.img.xz.torrent 했더니 순식간에 다운로드가 된 것은 좋은데, 그대로 꺼 버리기에는 커뮤니티에 미안한 생각이 들어서, 그냥 켜 두었다. 하지만 며칠째 켜 두어도 SEED(0.9) 정도에서 별로 올라가지 않는다… ㅋㅋㅋ 아무래도 제대로 된 디먼을 설정해 둬야겠다. 상부상조에 동참하기…
As soon I try logging in to Discord on Firefox on GNU/Linux, I get this error. Chromium works fine. Am I the only one experiencing this? :(
About Haskell package ecosystem, Nikita Volkov wrote an advice: Internal convention is a mistake – Functional programming debugs you
It has been roughly seven (!) years, but I think it's still a pretty good article based on a pretty good idea. I guess no one has come up with a better solution?
← 지금 스위치 하나 더 사고 싶어서 가격 검색 중이었던 사람
(1U 랙마운트 크기에 포트 16 개짜리 스위치를 집에서 쓰면서) 으음 아무래도 스위치를 하나 더 갖고 싶군… 5-6 포트짜리 하나만 더 있으면 토폴로지 구성하기 참 좋겠는데 말이야…
I love DFRobot's CM4 Router Board hardware. I can't find anything to complain about. The closest thing would be that the sysfs LED control at /sys/class/leds/PWR/trigger doesn't work. The PWR LED is always on. (Controlling ACT works perfectly well.) So you can see how insignificant it is. In other words, I love my router.
@xtjuxtapose APC BE550를 추천하지 않으시는 특별한 이유가 있으신가요? UPS 구매 고려중이라 궁금합니다 👀
@dongodb 추천하지 않는다는 말이 좀 오해의 소지가 있었나 봅니다. 좀 부연하겠습니다. "사지 마십시오" 가 아니라, 말 그대로 추천이라는 의사표시를 하지 않는다는 취지입니다. 즉 구매를 부추기지도 않고, 구매를 말리지도 않는다는 것입니다. 그러니까, 제가 배터리 교체까지 해 가면서 열심히 쓰고 있는 것을 보고 혹시라도 "이거 괜찮으니 여러분도 쓰십시오" (endorsement) 로 해석될까 봐 덧붙인 것입니다. 부추김이든 말림이든 뭐라고 남에게 조언을 하기에는 제가 아는 게 너무 없어서요.
예전에는 무중단 급전기에 군침을 흘리고 눈을 희번득거리며 탐욕스럽게 조사 좀 했었습니다. 근데 문제는 그게 너무 오래 전 일이라 어떤 기준으로 어떻게 선택했었는지 전혀 기억이 안 납니다. (그래서 만약 제가 UPS 를 새로 사야 한다면 저도 사실상 지식이 없는 상태에서 시장 조사를 다시 해야 합니다.) 물론 UPS 를 구입하는 것 자체는 매우 좋은 선택입니다. 괜찮은 물건을 발견하시면 저한테도 좀 알려 주십쇼. (…)
OpenSSH 10.1 에서 새로운 ssh-config 옵션 RefuseConnection 이 추가되었다고 한다.
ssh(1): add an ssh_config(5) RefuseConnection option that, when encountered while processing an active section in a configuration, terminates ssh(1) with an error message that contains the argument to the option.
This may be useful for expressing reminders or warnings in config files, for example:
Match host foo RefuseConnection "foo is deprecated, use splork instead"
아니… 그것 참… 유용한 듯하면서도… 그것 참…
BIOSのPOSTってあれなんでPOSTっていうんだろ
@kur0den0010@chpk.kur0den.netKur0den0010@ふわふわ Power-On Self Test
대체역사입니다
1993년: 퓨처웨이브 소프트웨어에서 "스마트스케치"라는 벡터 드로잉 툴 출시
1995년: 같은 벡터 드로잉 툴인데 프레임 한 장씩 추가해서 애니메이션 만들 수 있게 한 "퓨처스플래시" 출시
1995년: 퓨처웨이브는 어도비에 매각을 타진했으나 어도비는 이 (사악한) 물건을 거부
1996년: 퓨처웨이브가 매크로미디어에 인수됨. 퓨처스플래시는 "매크로미디어 플래시"가 됨
2005년: (사악한 물건이 승승장구하는 꼴을 보다 못한) 어도비가 매크로미디어를 사 버림
2007년: 어도비 (사악한) 플래시 (멸망시키기) 프로젝트 출범. 최초의 "어도비 플래시"인 Adobe Flash CS3 출시
2010년: 스티브 잡스가 그 유명한 "Thoughts on Flash" 발표, 사악한 플래시를 맹비난, iOS에는 절대 넣지 않겠다고 강변
2011년: 안드로이드 플래시 지원 중단
2017년: 어도비의 플래시 퇴역 선언. 2020년 지원 종료할 것을 발표
* 괄호만 빼면 다 팩트
RE: https://mitir.social/notes/a24hsufm17
아아… 오랜만이군. 이 서늘하고도 묵직한 감각. 「무중단」으로 돌아갈 때다
UPS 배터리 나가리 된 뒤로 그냥 서지 프로텍터로만 쓰고 있었는데, 새 배터리를 넣어 비상시 하드 디스크 드라이브의 안정(과 내 마음의 안정)을 찾기로 한다.
- APC BE700-KR UPS 배터리 교체. APC UPS에 로케트 ES 7-12 배터리 장착
- APC BE700-KR UPS 배터리, 로케트 ES 7-12 F2 배터리로 교체 후기
컴터맨 님 덕분에 잘 찾아서 집어넣었다
(한편 APC BE550 은 그다지 추천하지는 않는다. 가정용 UPS 로는 더 좋은 물건이 있다고 들었다)
분산 만세! 분권 만세! 연합우주 만세! 집 서버 만세!
집집마다 서버를! 온 우주에 휘날려라 셀프호스티드의 깃발
프로톤 메일에는 hide-my-email alias 라는 기능이 있다. alias 생성을 누르면 nosuch.implode984@passmail.net 같은 주소를 즉석에서 생성해 주고, 이 주소로 들어온 모든 메일은 다 내 인박스로 들어오게 된다. 무료 사용자는 이런 주소를 열 개까지 만들 수 있다.
그래서, 직접 메일 서버 구축하기 전까지만 써 봐야지 하는 생각으로 무제한을 질렀다 (…) 매월 EUR 13 정도인 것 같다. (즉 “어서 자체 메일 서버를 구축해라”라는 EUR 13 짜리 채찍질을 매월 당하고 있는 것이다.)
다만, 이걸로 수신만 될 거라고 생각하고 있었다. 어차피 여러 사이트 가입할 때 각각 이메일 주소가 있었으면 했던 것이라서, 발신을 이걸로 할 필요성은 굳이 못 느끼고, 제대로 알아보지도 않았다.
그런데 오늘 시도해 보니 답장은 alias 로 바로 보낼 수 있다. 으잉? 그래서 들여다보니, https://app.simplelogin.io/dashboard/ 에서 “reverse alias” 를 만들면 새 이메일도 hide-my-email alias 에서 보낼 수 있다! 원하는 alias 선택해서 그 안에다가 contact 추가하면, 전용 주소가 하나 생기는데, 그걸 경유하면 된다.
그러니까 이게 SimpleLogin이라는 엔지니어링의 정체인 모양인데… 아니, 이렇게까지 해야 한단 말인가?
잘했다고.
한편 도메인 네임 레지스트라 옮기면서 트래블월렛으로 결제를 해 봤는데, 괜찮았다. 항상 카드로 해외 결제를 할 때마다 불만이었던 게
- 환율은 얼마인지
- 수수료는 얼마인지
- 내 통장에선 언제 정확히 얼마가 빠져나가는 건지
이런 게 다 불투명하다는 것이었다. 찾아보면 매입시점이 어떻고 전신환매도율이 저떻고 온갖 복잡한 이야기에 내가 굳이 이걸 보고 있어야 하는가 자괴감 들고 괴롭다. 미리 원하는 통화로 원하는 만큼만 환전해서 긁을 수 있고 그 과정이 투명하게 드러난다는 게 마음에 든다.
실물 카드도 원래는 예전에 잠깐 출국했을 때 쓰려고 발급받은 건데, 실제로 환전부터 결제까지 너무 매끄럽고 빠르게 잘 되어서 놀랐던 기억이 있다. 앱이랑 기가 막히게 실시간으로 잘 엮여 있고, 앱 자체도 깔끔하게 잘 만들었고. 카드를 편의점 ATM 에서 즉시 찍어낼 수 있다(…??)는 것도 문화컬처충격쇼크였다. 근데 집에서 온라인 결제할 때도 이렇게 편할 거라고 생각 못했다. EUR 이랑 USD 둘 다 결제해 봤는데, 아주 깔끔하게 잘 되었다.
트래블월렛 바이럴 아닙니다. 내돈내산입니다. 저는 트래블월렛과 전혀 상관이 없는 사람임.
예를 들어 어제 xtendo.org 의 레지스트라를 INWX 로 바꿨다. 그래서 도메인 네임 트랜스퍼를 하는데,
- INWX 에서 EUR 12.00 을 결제하라고 뜬다. (독일에 있는 inwx.de 로 가입했다)
- 그러면 트래블월렛 앱으로 들어가서 지갑에 EUR 12.00 채워넣기를 한다.
- 이때 내 은행 계좌에서 KRW 얼마를 출금하는지 현재 환율로 정확하게 알려준다. 이 환율은 매매기준율이다.
- 수수료도 붙지 않는다. (USD, JPY, EUR 은 수수료 없음)
- 거의 즉각적으로 충전이 된다. 내 지갑에는 EUR 12.00 잔고가 생긴다.
- 이제 INWX 에서 트래블월렛 카드 번호 넣어서 결제하면 바로 결제가 되고 EUR 12.00 가 지불된다.
- 이제 트래블월렛 앱에서 "카드활성화"를 끈다. (?!) 그러면 이 카드번호의 결제는 막힌다.
얼마의 KRW 가 얼마의 EUR 가 되고, 그게 어떻게 지불되는가 하는 과정 전체가 완전히 투명하다. 이중환전, DCC 뭐 이런 것도 전혀 걱정할 필요가 없다. 무엇보다 앱 UX 가…
실제로 트래블월렛이 뜬 뒤로 시중은행에서도 트래블 어쩌고 하는 비슷한 카드 많이 내놨고, 수수료 등의 조건은 트래블월렛보다 나은 것도 많다. (트래블월렛은 KRW 에서 USD/JPY/EUR 로 환전하는 수수료가 없지만, 반대로 USD/JPY/EUR 잔액을 KRW 로 환전하는 수수료는 있다.) 그런데, 아무리 몇 푼을 우대해 줘 봤자 앱 UX 만은 트래블월렛을 못 따라온다고 다들 후기에서 지적하는 것이다.
얼마나 편하냐면 나는 예전에 일본 갔다가 자판기에서 150 엔짜리 마실 거 사려고 할 때도 트래블월렛 앱 켜서 JPY 150 환전한 다음 카드 갖다 댔다. 나도 내가 그런 짓을 할 줄은 몰랐다.
이건 앞으로도 트래블월렛의 독보적 강점으로 남을 가능성이 꽤 있다. 소프트웨어와 서비스의 UX 라는 것은 조직의 의사결정구조를 반영하기 때문이다. 기존 은행과 카드사의 간부들이 나쁜 사람들이라서가 아니다. 그 사람들은 그 사람들의 여건에 묶여 있다. 과감하게는 할 수 없다. 법령과 조직구조의 쇠사슬을 몸에 칭칭 두른 채로, 그래도 매일 조금씩이라도 나아가려고 매일 싸우는 것이다. (나는 그런 곳에서 중간관리자를 하고 계시는 분들을 존경스럽게 생각한다.)
아무튼 그 결과 내가 지금 현대카드 앱에서 QR 코드 결제를 하려고 시도해 보면, QR 코드 결제라는 명확한 목표를 갖고 하는데도 20초가 넘게 걸린다. 반면 트래블월렛으로는 "뭘 하든" 콜드스타트에서 5초 안에 도달한다. 실제로 현대카드 앱에서 메뉴를 열어 보면
- 카드 이용 내역
- 이용 대금 명세서
- 최근 이용 내역
- 할부 이용 내역
- ...
- 카드 관리
- 보유카드 목록
- 간편결제 등록
- 생활 요금 결제 등록
- ...
뭐가 한없이 나오고 기분이 막막해진다. 나는 현대카드에 있는 신용카드도 하나뿐이고, 연결된 은행 계좌도 하나뿐이다. 그런데 이 미로에서 내가 원하는 기능을 빨리 찾을 자신이 전혀 없다. (그리고 이 메뉴를 보다 보면 이 앱을 개발하는 조직의 의사결정구조에 관해서 많은 것을 짐작하게 된다. 아마, 여기서 뭘 넣고 빼는 것은 중대한 문제일 것이다.)
반면 트래블월렛에서는 여러 통화의 잔고를 동시에 관리해야 하고, 카드도 실물 카드와 모바일 카드로 두 가지가 있고, 더 복잡한 문제를 풀어야 하는데, 1년 동안 안 쓰다가 갑자기 꺼내서 써도 전혀 헤매지 않는다. 무엇보다, 빠르다. 앱 켜면 바로 켜지고 뭘 누르면 즉각 반응한다. 빠르다는 것은 그 자체로 기능이다. 킬러 피처다.
크윽… 이런 사악한… “원숭이 꽃신”이라는 동화 아십니까? 하…
3.5 인치 HDD 여덟 장을 기본으로, 스무 장까지 확장 가능한 대용량 설계! (절망편)
아아… 오랜만이군. 이 서늘하고도 묵직한 감각. 「무중단」으로 돌아갈 때다
UPS 배터리 나가리 된 뒤로 그냥 서지 프로텍터로만 쓰고 있었는데, 새 배터리를 넣어 비상시 하드 디스크 드라이브의 안정(과 내 마음의 안정)을 찾기로 한다.
- APC BE700-KR UPS 배터리 교체. APC UPS에 로케트 ES 7-12 배터리 장착
- APC BE700-KR UPS 배터리, 로케트 ES 7-12 F2 배터리로 교체 후기
컴터맨 님 덕분에 잘 찾아서 집어넣었다
(한편 APC BE550 은 그다지 추천하지는 않는다. 가정용 UPS 로는 더 좋은 물건이 있다고 들었다)
이것이 Network-attached storage 다! (절망편)
3.5 인치 HDD 여덟 장을 기본으로, 스무 장까지 확장 가능한 대용량 설계! (절망편)
이것이 Network-attached storage 다! (절망편)
한편 도메인 네임 레지스트라 옮기면서 트래블월렛으로 결제를 해 봤는데, 괜찮았다. 항상 카드로 해외 결제를 할 때마다 불만이었던 게
- 환율은 얼마인지
- 수수료는 얼마인지
- 내 통장에선 언제 정확히 얼마가 빠져나가는 건지
이런 게 다 불투명하다는 것이었다. 찾아보면 매입시점이 어떻고 전신환매도율이 저떻고 온갖 복잡한 이야기에 내가 굳이 이걸 보고 있어야 하는가 자괴감 들고 괴롭다. 미리 원하는 통화로 원하는 만큼만 환전해서 긁을 수 있고 그 과정이 투명하게 드러난다는 게 마음에 든다.
실물 카드도 원래는 예전에 잠깐 출국했을 때 쓰려고 발급받은 건데, 실제로 환전부터 결제까지 너무 매끄럽고 빠르게 잘 되어서 놀랐던 기억이 있다. 앱이랑 기가 막히게 실시간으로 잘 엮여 있고, 앱 자체도 깔끔하게 잘 만들었고. 카드를 편의점 ATM 에서 즉시 찍어낼 수 있다(…??)는 것도 문화컬처충격쇼크였다. 근데 집에서 온라인 결제할 때도 이렇게 편할 거라고 생각 못했다. EUR 이랑 USD 둘 다 결제해 봤는데, 아주 깔끔하게 잘 되었다.
트래블월렛 바이럴 아닙니다. 내돈내산입니다. 저는 트래블월렛과 전혀 상관이 없는 사람임.
scoped API token 지원하는 도메인 네임 레지스트라 따위 한국에는 없겠지? ㅋㅋ ㅠㅠ 혹시 아시는 분은 제보 부탁드립니다. (.kr 도메인 네임이 있어서...)
하지만 찾아 보니 작년 해귀 뉴스에서는 Gandi 의 요금 정책 때문에 불만도 많이 쏟아진 것 같다.
왜 "그분들" Gandi 많이 쓰시나 했더니, 아예 그쪽으로 지원 사업을 하는 모양이다. 알 만한 곳들 잔뜩 올라와 있네. https://www.gandi.net/en/gandi-supports 해커즈 퍼브 같은 곳도 나중에 저기 지원 받을 수 있을지도…
반면에 내 개인 도메인 네임 이런 건 여기서 도무지 할 수가 없다. 너무 비싸. TLD 에 따라서는 Porkbun 이랑 Gandi 의 가격 차이가 세 배 넘게 벌어진다.
오… Gandi라는 데가 있는 줄 몰랐는데 좋아 보이네요. 저는 iwantmyname을 쓰고 있었는데 옮길까 싶습니다. 물론 귀찮아서 지금 바로는 아니고… 언젠가는…
@hongminhee洪 民憙 (Hong Minhee) 근데 너무 비싸요. 감당이 안 되네요. Total Webhosting Solutions 라는 곳에 인수된 뒤로 빈카운터들이 점령한 것 같습니다. .com 기준으로 Porkbun 에서 갱신 $11.98 일 때 Gandi 에서는 갱신 $38.38 이에요. "New gTLD" 쪽은 더 심각해서, .pub 은 Porkbun 에서 갱신 $26.26 인데 Gandi 에서는 무려 $87.98 입니다. 본격적으로 쥐어짜겠다는 의도가 너무 명백하네요. 옛날에 "No bullshit" 이라는 표어로 해커들의 지지를 얻은 서비스인데… 가격이 이렇게까지 되면 해커 뉴스에서 원성이 자자할 만도 했네요.
아무래도 네임사일로의 API 보안 모형이 끔찍하다는 것은 확실해 보인다. 어휴 진짜 생산적인 일 좀 하려고 했더니 이런 게 발목을… 빨리 탈출하자. 어디로 탈출하면 좋을까? 어떤 도메인 네임 레지스트라가 좋은 도메인 네임 레지스트라인가?
내 기억으로는 엔지니어들의 레지스트라 평판에서 한쪽 극단에 있는 것이 GoDaddy 이고 반대쪽 극단에 있는 것이 Gandi 이다. (어느 쪽이 어느 쪽이라고는 하지 않았습니다.) 아무튼 한번 최신화를 해 보자.
이런 것은 보통 나 같은 가짜 광기가 흉내낼 수 없는 훌륭한 진정한 광인들께서 조사해 주신 바가 있게 마련인데, 예를 들어 FSF 나 EFF 같은 데서 옥음을 내리신 게 없는가 기웃거려 본다. EFF 에서 Which Internet Registries Offer the Best Protection for Domain Owners? 라는 자료를 발표한 바가 있긴 하다.
근데 이건 레지스트라(registrar)가 아니라 레지스트리(registry)에 관한 이야기다. 물론 이것도 중요하고 알찬 이야기이긴 한데, 이건 새로운 도메인 네임을 등록할 때 참고할 이야기이고, 나는 이미 있는 도메인 네임을 들고 나가려는 거라서…
하지만 웃기게도 이게 도메인 네임 문제이다 보니 정보가 있는데, 바로 fsf.org 와 eff.org 라는 도메인 네임은 어디서 등록되어 있는지 (ㅋㅋㅋㅋㅋㅋㅋㅋ) WHOIS 찍어 볼 수 있다는 것이다. 아니 이럴 수가 두 군데 다 Gandi 쓰는군요!
그러자 갑자기 뇌리를 스치는 생각이 있었다. 이거 이거 왠지… 끼리끼리 놀 것 같은 그분들 도메인 네임 레지스트라 어디인지 다 찍어 보자
fsf.orgfsfe.orggnu.orgeff.orgsfconservancy.orgsoftwarefreedom.org
이분들 다 레지스트라가 Gandi 이다. 아니. 그밖에 openwrt.org 도, mastodon.social 이나 joinmastodon.org 도…
하지만 찾아 보니 작년 해귀 뉴스에서는 Gandi 의 요금 정책 때문에 불만도 많이 쏟아진 것 같다.
NameSilo API 옛날부터 생각만 하다가 방금 처음 써 봤는데, 생각보다 너무 쉽고 간단해서 깜짝 놀랐다.
문제가 심각하다.
아니, 그냥 API 키 발급 누르면 즉시 나오고, 그걸로 내 계정의 모든 것을 다 할 수 있으며, 심지어 연장이나 신규 구입 등 카드 결제 일으키는 행위도 할 수 있다고. 있는 거라고는 API 키를 읽기 전용으로 하는 거랑, "Block Restorations" 뿐이다. 도메인 네임을 제때 연장 못해서 소유권 잃은 경우, 좀 더 큰 돈을 내고 소유권을 회복할 수 있는데 이걸 restoration 이라고 한다. 이건 돈이 많이 들고 환불도 어려운 행위이기 때문에, 이것만 API 키로 못하도록 설정하게 해 준다는 것이다.
그러니까 이거 말고는 권한 관리도 없고, 여러 개의 API 키 중에서 하나만 폐지(revoke)하는 기능도 없고, 모든 API 키를 폐지하는 기능도 안 보이고, 이 API 키를 최근에 사용한 IP 주소는 어디냐 같은 기록도 아무 데도 안 보이고, 하다못해 이 API 키로 행할 수 있는 결제액의 상한 같은 것도 설정할 수 없고, 아무것도 없어!
나는 나 자신을 믿지 않는다. 나는 반드시 사고를 칠 것이다. 엔지니어라면 당연히 그렇게 가정해야 한다! 더구나 이 API 키는 내 도메인 네임의 소유권을 다 상실시킬 수도 있는 물건...? 내가 뭔가 잘못 이해하고 있는 건가? 멀쩡한 관리 페이지가 따로 있는데 네임사일로가 꽁꽁 숨겨 놔서 못 찾고 있는 건가?
거의 10년 넘게 쓰던 서비스인데 진지하게 탈출 고민이 생겼다.
여러분은 서비스가 "쓰기 쉽다는 이유로" 탈출을 고려하는 장면을 보고 계십니다. 이것이 2025년이다.
아무래도 네임사일로의 API 보안 모형이 끔찍하다는 것은 확실해 보인다. 어휴 진짜 생산적인 일 좀 하려고 했더니 이런 게 발목을… 빨리 탈출하자. 어디로 탈출하면 좋을까? 어떤 도메인 네임 레지스트라가 좋은 도메인 네임 레지스트라인가?
내 기억으로는 엔지니어들의 레지스트라 평판에서 한쪽 극단에 있는 것이 GoDaddy 이고 반대쪽 극단에 있는 것이 Gandi 이다. (어느 쪽이 어느 쪽이라고는 하지 않았습니다.) 아무튼 한번 최신화를 해 보자.
이런 것은 보통 나 같은 가짜 광기가 흉내낼 수 없는 훌륭한 진정한 광인들께서 조사해 주신 바가 있게 마련인데, 예를 들어 FSF 나 EFF 같은 데서 옥음을 내리신 게 없는가 기웃거려 본다. EFF 에서 Which Internet Registries Offer the Best Protection for Domain Owners? 라는 자료를 발표한 바가 있긴 하다.
근데 이건 레지스트라(registrar)가 아니라 레지스트리(registry)에 관한 이야기다. 물론 이것도 중요하고 알찬 이야기이긴 한데, 이건 새로운 도메인 네임을 등록할 때 참고할 이야기이고, 나는 이미 있는 도메인 네임을 들고 나가려는 거라서…
하지만 웃기게도 이게 도메인 네임 문제이다 보니 정보가 있는데, 바로 fsf.org 와 eff.org 라는 도메인 네임은 어디서 등록되어 있는지 (ㅋㅋㅋㅋㅋㅋㅋㅋ) WHOIS 찍어 볼 수 있다는 것이다. 아니 이럴 수가 두 군데 다 Gandi 쓰는군요!
그러자 갑자기 뇌리를 스치는 생각이 있었다. 이거 이거 왠지… 끼리끼리 놀 것 같은 그분들 도메인 네임 레지스트라 어디인지 다 찍어 보자
fsf.orgfsfe.orggnu.orgeff.orgsfconservancy.orgsoftwarefreedom.org
이분들 다 레지스트라가 Gandi 이다. 아니. 그밖에 openwrt.org 도, mastodon.social 이나 joinmastodon.org 도…
NameSilo API 옛날부터 생각만 하다가 방금 처음 써 봤는데, 생각보다 너무 쉽고 간단해서 깜짝 놀랐다.
문제가 심각하다.
아니, 그냥 API 키 발급 누르면 즉시 나오고, 그걸로 내 계정의 모든 것을 다 할 수 있으며, 심지어 연장이나 신규 구입 등 카드 결제 일으키는 행위도 할 수 있다고. 있는 거라고는 API 키를 읽기 전용으로 하는 거랑, "Block Restorations" 뿐이다. 도메인 네임을 제때 연장 못해서 소유권 잃은 경우, 좀 더 큰 돈을 내고 소유권을 회복할 수 있는데 이걸 restoration 이라고 한다. 이건 돈이 많이 들고 환불도 어려운 행위이기 때문에, 이것만 API 키로 못하도록 설정하게 해 준다는 것이다.
그러니까 이거 말고는 권한 관리도 없고, 여러 개의 API 키 중에서 하나만 폐지(revoke)하는 기능도 없고, 모든 API 키를 폐지하는 기능도 안 보이고, 이 API 키를 최근에 사용한 IP 주소는 어디냐 같은 기록도 아무 데도 안 보이고, 하다못해 이 API 키로 행할 수 있는 결제액의 상한 같은 것도 설정할 수 없고, 아무것도 없어!
나는 나 자신을 믿지 않는다. 나는 반드시 사고를 칠 것이다. 엔지니어라면 당연히 그렇게 가정해야 한다! 더구나 이 API 키는 내 도메인 네임의 소유권을 다 상실시킬 수도 있는 물건...? 내가 뭔가 잘못 이해하고 있는 건가? 멀쩡한 관리 페이지가 따로 있는데 네임사일로가 꽁꽁 숨겨 놔서 못 찾고 있는 건가?
거의 10년 넘게 쓰던 서비스인데 진지하게 탈출 고민이 생겼다.
여러분은 서비스가 "쓰기 쉽다는 이유로" 탈출을 고려하는 장면을 보고 계십니다. 이것이 2025년이다.
장렬한 삽질 끝에 라즈베리 파이 컴퓨트 모듈 4 에다가 DFR0767 붙이고 Pi OS + nftables + dnsmasq + hostapd + unbound + Pi-hole 해서 완전한 유무선 공유기의 설정을 끝냈다…
도대체 왜 이렇게 해야 하는가? 이렇게 해서 얻는 장점이 무엇인가? unattended-upgrades 됩니다. 그밖의 장점은 나중에 시간과 여력이 있으면 글로 쓰겠습니다.
크로뮴: 안 귀여움
사파리: 안 귀여움
불여우: 귀여움
블링크: 동물이 아님
웹킷: 동물이 아님
게코: 동물임
yt-dlp 쓰려다가 403 Forbidden 떠서 이슈 트래커 가 보니 원 세상에 이런 전쟁통이 있나. 혀를 내두름 https://github.com/yt-dlp/yt-dlp/issues/3766
@xtjuxtapose 네, 이슈로 만들어 주시겠어요? 그리고 일단은 임시로 본문을
<!-- -->으로 채워 넣는 꼼수가 있긴 합니다… 😂
@hongminhee洪 民憙 (Hong Minhee) 이슈로 만들지 않을 거예요
저는기 어다닐 거예요
@hongminhee洪 民憙 (Hong Minhee) 첨부된 그림과 대체 문구가 있을 경우 본문이 비어 있어도 글을 올릴 수 있게 해 주세요
제가 해커스펍 쓰면서 가장 좋아하게 됀 기능은 이모지 리액션이예요 😋
@xiniha
@hongminhee洪 民憙 (Hong Minhee) 학대, 괴롭힘 행위 신고·제재하는 기능 만들어주세요
@chalk@chalk.moe초크 IPv6 거덜내기 작전
@pbzweihander쯔방
@chalk초크 거덜냅시다! (초당 10억 개의 IPv6 주소를 생성하는 것을 100억 년 동안 계속하더라도 IPv6 주소 공간의 100만 분의 1도 채울 수 없음) 거덜내자!

















