대화 찾기
모든 대화
Groovy에서 Java encode()에 null을 넘기면 ambiguous method인데, Java 쪽은 문제없어요
CSV export 루프를 Java에서 Groovy로 옮겼는데, 이제 nickname이 없는 row에서 작업이 죽어요. Java FieldEncoder에는 encode 오버로드가 세 개(String, Number, Colle…
NFC 조회 키와 JCS 서명
kim_dh가 앞서 올린 NFC 조회 키 질문은 제출된 이름과 NFC 조회 키를 나눠서 봤는데, 서명이 끼면 더 복잡해져요. JSON 페이로드의 이름이 e 뒤에 U+0301을 붙인 형태이고, 그 문자열이 JCS 기반 서명에…
`isdigit()`가 통과시킨 위첨자 2를 `int()`가 거부했어요
안녕하세요, 클라이언트용으로 작은 주문 폼을 만들고 있는데, 수량 입력란이 Python 헬퍼를 거쳐요. 그래서 출시 전에 사람들이 붙여넣은 값(pasted_quantities.txt에 한 줄에 하나씩)을 읽어서 각각 pars…
Result는 실패한 검사를, opaque는 검사가 있었음을 보여 준다
다들 Gleam의 값으로서의 오류를 칭찬하는데, 맞는 말이에요. Result는 정말 좋아요. 그런데 데이터 모델링에서 제가 더 기대는 건 opaque 쪽이에요. pub opaque type Email { Email(Strin…
free 전에 memset하면 기본 플래그에서는 통과하는데 OPT=-O2에서는 실패해요
C로 작은 credential holder를 만들고 있어요 (WSL, Neovim, 별거 없어요). vault_release()는 secret을 지운 다음 free하게 되어 있어요: memset이 분명히 있고 길이도 전체예요…
-O0과 -O2에서 같은 overflow 체크인데 에러 분기가 달라요
count=65536, rec_size=32768인 악성 pack을 넣어봤어요. -O0에서는 "pack too large"가 나오는데, -O2에서는 "out of memory"가 나와요. 소스는 똑같은데 왜 이런지 도저히 모…
의존성의 정리를 인용하기 전에 공리부터 본다
컴파일되는 정리가 곧 증명된 정리라는 보장은 없다. sorry는 어떤 목표든 닫고, Lean은 경고 하나와 함께 파일을 받아들인다. 다른 곳에서 빌드된 의존성이라면 그 경고는 눈앞에 없다. 확인 수단은 #print axiom…
성공 경로에서 샌 errdefer 해제
테스트에서 메모리가 샜는데, 새는 곳이 성공한 경로였습니다. 함수는 임시 버퍼를 할당하고, 호출자가 소유할 결과로 파싱한 뒤, 임시 버퍼를 errdefer allocator.free(scratch)로 해제했습니다. 오류 경로…
outliers.log의 줄 수가 :outliers 카운터보다 많아요, future 8개
8개의 future에서 시뮬레이션된 조수 측정값 20000개를 하나의 atom에 fold해요. 임계값을 넘는 측정값은 모두 outliers.log에도 append하고요. 요약은 문제없어요. :n은 항상 20000이고, :ou…
RISC-V 호출 규약, -O0으로 읽을까 -O2로 읽을까
호출 규약은 레지스터 표를 외울 때보다 실제 컴파일러 출력에서 읽어 낼 때 더 잘 남는다. 좋은 연습은 int 매개변수 세 개를 받아 합을 돌려주는 C 함수를 RV32용으로 -O0에서 한 번, -O2에서 한 번 컴파일해 보는…
Stop으로 해도 안 멈추는 네이티브 명령 실패
$ErrorActionPreference = 'Stop'는 이름이 뭐라고 하든 set -e가 아니에요. git 같은 네이티브 명령이 0이 아닌 코드로 끝나도 스크립트는 그냥 다음 줄로 가고, 코드는 $LASTEXITCODE에…
SKIP LOCKED 작업 큐, 트랜잭션 도중에 워커가 죽으면
작업 큐를 그냥 테이블에 둠. 워커 하나는 Python, 하나는 Go. BEGIN, 그다음 SELECT id, payload FROM jobs WHERE status = 'queued' ORDER BY id LIMIT 1 F…
Elm 컴파일러 에러로 하는 스터디
작은 스터디에서 Elm 컴파일러 에러 메시지를 교재처럼 쓰고 있어요. 각자 일부러 틀린 코드를 가져오고, 다 같이 에러를 읽은 다음에 고치는 식이에요. 레코드 필드 오타는 정말 잘 먹혔어요. fistName이라고 쓰면 컴파일…
goroutine 20개에서 일일 한도는 초과되는데 잔액 가드는 잘 동작해요. 버그가 하나일까요, 두 개일까요?
Go + pgx pool + Postgres, 기본값인 Read Committed, 출금 한 건당 트랜잭션 하나예요. 잔액 1000, daily_limit 50, goroutine 20개가 각각 10씩 출금해요. 성공이 5번…
오버플로 기본값, Solidity의 revert와 Rust 릴리스 빌드의 감싸기
Solidity 0.8부터 산술 연산은 오버플로와 언더플로에서 revert합니다. 끄려면 unchecked { ... } 블록으로 직접 밝혀야 합니다. Rust는 반대입니다. 디버그 빌드는 panic이 나지만 --releas…
reno에서 ship ratio가 0이고 pct도 이상해요, SQLite
주간 배송 리포트예요. 이상한 게 두 가지 있는데 같은 문제인지 모르겠어요. 쿼리예요: 출력: ship_ratio가 모든 warehouse에서 0이에요. SQLite가 나눗셈에서 뭔가 하는 것 같은데요? 아마도요. 그런데 r…
ECMA-262에는 이벤트 루프가 없다
ECMA-262에는 이벤트 루프라는 말이 한 번도 안 나와요. 명세가 정의하는 건 잡(job)과, 프로미스 반응이 실행될 준비가 됐을 때 엔진이 호출하는 HostEnqueuePromiseJob이라는 호스트 훅이에요. 그 잡을…
중지 이벤트가 왔을 때 consumer 실행하기
Bash writer가 flush를 안 하는 것 같은데, 줄마다 echo >>로 바꿔도 달라진 게 없어요. writer 문제인가요, 아니면 제가 기다리는 방식 문제인가요? 읽고 있던 문서: https://docs.python…
선언하지 않은 호스트 파일이 Nix 재현성을 깬다
평가되어 출력 경로가 나오는 derivation은 식이 제대로 생겼다는 것까지만 알려 줘요. 빌더가 실제로 무엇을 만들지는 훨씬 덜 알려 주고요. 제 빌더는 아무도 선언하지 않은 호스트 파일 /opt/local/banner를…
--hash 한 줄은 정확히 뭘 고정하는 걸까요?
모든 줄에 --hash가 붙은 requirements 파일이 제 노트북에서는 깔끔하게 설치되는데, 새로 띄운 리눅스 컨테이너에서는 해시 불일치로 실패해요. 같은 파일, 같은 == 고정, 같은 인덱스예요. 무슨 일이 있었는지와…
