국기를 11비트로 압축하는 인코딩 설계, 허프만 트리로 종횡비와 레이어를 부호화

국기를 11비트로 압축하는 인코딩 설계, 허프만 트리로 종횡비와 레이어를 부호화

  • 프랑스 국기가 11비트로 인코딩되고, 같은 2색 가로 줄무늬인 인도네시아 11비트, 폴란드 14비트, 모나코 17비트로 길이가 갈림. 댓글에서는 종횡비까지 함께 인코딩하기 때문으로 봄
  • 설계 기준은 국가 국기만 대상으로 하고 네팔(직사각형이 아님)과 문장(coat of arms)을 제외하며, 위치와 도형 세부, 정확한 색상은 틀려도 되고 단순한 국기는 적은 비트, 복잡한 국기는 많은 비트를 쓰는 가변 길이 인코딩임
  • 국기를 종횡비(2:3 약 45%, 1:2 약 28%, 3:5 약 9%), 색상 팔레트, 레이어(스트라이프·도형·밴드·리전)로 나눠 정의하고, 값 대부분이 Zipf 법칙을 따른다며 항목별 허프만 트리로 부호화함
  • 결과물은 miniflags 페이지에서 확인할 수 있고, 댓글에는 국가·영토가 256개 미만이라 8비트 룩업 테이블이면 충분하다는 반론이 올라옴. 반대편은 디코더에 SVG를 넣어야 해서 크기 이점이 없다고 반박
  • HN 댓글에서는 이 인코딩으로 존재한 적 없는 그럴듯한 국기를 생성할 수 있다는 점, 문장을 표현하는 기존 DSL인 blazon(헤럴드리)이 언급되지 않은 점이 함께 논의됨

Hacker News opinions

이거 재밌다. 결과물은 vantezzen.github.io/miniflags에서 바로 볼 수 있음

룩업 테이블 쓰면 되지 않나. 국가·영토가 256개도 안 되니까 8비트 키로 충분하고, 문장(coat of arms)까지 커버됨. 서로 거의 똑같은 국기 문제도 해결되고

그럼 디코더에 SVG를 넣어야 하는데 그게 5KB보다 작음? 결국 SVG 스프라이트랑 다를 게 없음

아니면 국기마다 등장 빈도가 다르니까 허프만으로 자주 쓰는 국기를 짧게 보내는 방법도 있음. 평균 비트 수가 줄어듦

비슷한 국기 목록에 슬로베니아랑 슬로바키아가 빠진 게 신기함. 둘 다 흰-파랑-빨강 가로 줄무늬에 문장이 있고, 언어 이름도 Slovenščina와 Slovenčina라 일부러 헷갈리게 만드는 것 같음

8비트로 압축한다는 건 셰익스피어 전집을 6비트로 압축한다는 소리랑 비슷함. 작품이 39개니까 가능하지만 결국 파일 크기는 원본 합계임

이 글은 아이템 목록을 압축하는 얘기가 아니라 국기를 그리는 방법 얘기임. 8비트로 되는 건 id만 저장하고 그리는 방법은 안 담기 때문임

서로 비슷한 2색 줄무늬인 인도네시아, 폴란드, 모나코가 11, 14, 17비트로 갈리는 게 신기함. 아마 종횡비도 같이 인코딩해서 그런 듯

이런 글에 헤럴드리(blazon) 언급이 없는 게 아쉬움. 문장을 표현하는 사실상의 DSL이 이미 있음

MySQL에서 boolean 여러 개를 TINYINT 하나에 비트 연산으로 밀어넣고 싶은 유혹을 참았음. 코드 리뷰를 통과했으면 내 이름이 얼마나 욕먹었을지

Union Jack은 배 뒤쪽 jackstaff에 다는 깃발이고 UK 국기는 Union Flag임. 그런데 다들 Union Jack이라 부르니 상관없긴 함. 현실은 훨씬 복잡해서 술(tassel) 달린 국기도 있음

Union Flag를 그냥 프리셋으로 넣은 건 효율적인 선택이라고 봄. 그 국기가 다른 여러 나라 국기를 지배하고 있으니까

네팔 헌법에 국기 규격이 기하학 교과서 문제처럼 실려 있음

작성자의 AI가 전 세계 인구 약 35%, 30억 명 분량의 국기를 인코딩하지 못했음. 인도가 큰 몫이고 내 나라도 안 됨. 그래도 종횡비를 우선한 건 좋음. 국기가 잘못된 비율로 늘어나면 바로 티가 남

윈도우는 국기 이모지 대신 국가 코드를 보여주는데, 개발자 도구에 이 북마클릿을 넣으면 트위모지 국기가 뜸

파란색을 더 중간값으로 잡으면 어땠을까. 비교 페이지를 보면 대부분 로열 블루보다 하늘색에 가까움. 르완다는 종횡비가 틀린 것 같은데 임의로 인코딩 가능한 거 아님?

비트 패턴 하나를 네팔에 주면 안 됐나. 삼각형을 더 큰 흰 깃발의 일부로 취급해도 되고

해커뉴스
국기를 11비트로 압축하는 인코딩 설계, 허프만 트리로 종횡비와 레이어를 부호화Cloudflare 오리진 키 교환 자동화, HelloRetryRequest 52%에서 3.7%로 감소Ubuntu 26.10, cp·mv·rm 포함 coreutils 전체를 Rust 기반 uutils로 전환 완료아마존 사이언스의 'ML 연구 에이전트는 왜 과적합하지 않나' 글, 해커뉴스에서 "Claude가 쓴 slop" 지적1차 시각피질 없이도 상상한다: 아판타시아가 흔든 '역방향 시각' 모델GPT-5.6 Luna 코드리뷰, Astra보다 28배 싸지만 보안 버그는 24개 중 9개만 잡아dbt Labs, 채팅 에이전트용 대시보드 언어 dbt Charts 오픈소스 공개Xteink X3 e잉크 리더의 세로 줄무늬 버그를 추적한 기록, GPT-6 Astra는 FFT로 헛다리제9순회법원, 퍼플렉시티 Comet에 내린 아마존 예비 금지명령 파기환송Dario Amodei의 'We Must Pace the Frontier' 조목조목 반박: 오픈 웨이트 규제, 반독점 면제, 봇넷 공포까지35KB 프리프롬프트를 Opus에서 Ollama로 옮기다 만난 컨텍스트 창 벽Show HN: Neobrutalism.dev, React용 네오브루탈리즘 컴포넌트 64종에 Base UI 지원과 새 색상 테마 추가AI 초인 수학 시대, 다니엘 리트가 제안한 박사 학위 재정의RustConf에서 나온 Tokio 성능 원칙 정리: poll 10~100마이크로초, schedule latency가 핵심 지표마이크로소프트 9월 패치, 원격 데스크톱·USB 오디오·엑셀 붙여넣기까지 망가뜨려분산 시스템 고전 논문 10편 목록이 해커뉴스에 올라와, Lamport가 그중 5편을 씀Andon Labs, 자율로 회사를 운영하는 에이전트 Pion 공개애플 iOS 27·iPadOS 27·macOS 27 공개, Siri AI 영어 베타 시작Nitter 기반 X 프록시 XCancel, 법적 절차 새 전개로 또 서비스 중단밸브 Steam Frame, $1059부터 시작하는 가격 공개...퀘스트3 대비 2배 논쟁Dan Luu, napkin-math·Senior SWE-Bench·겨울용 타이어까지 세 가지 벤치마크의 결함 짚어Show HN: 메타 뉴럴 밴드로 맥을 제어하는 Kinesis, 네이티브 Swift로 공개OpenAI 에이전트, RubyGems.org 공격: YARD 문서로 임의 코드 실행하고 캐시된 레거시 API 키 재사용 시도PyTorch로 직접 구현한 최신 LLM 아키텍처 모음 OpenArch, 해커뉴스에서 Kimi-K2 라우터 버그 지적받아iOS 27 비공개 프레임워크에서 드러난 Siri 설계, Claude 확장 등록과 서버 모델 통째 교체까지 가능35,000년 전 매머드 상아 lochstab, 실은 밧줄 꼬는 도구였다: 석기 시대 사라진 섬유 기술의 흔적RP2350 마이크로컨트롤러로 386 PC를 돌리는 FRANK 386, 듀얼 칩 보드 지원까지 추가삼체 문제 주기해 수천 개를 한 장 지도로 만든 threebodyorbits.com, 해커뉴스에서 호평국경 따라 갈리는 새 분포, 공개 API 부재: 유럽 조류 이동 지도 EuroBirdPortal이 해커뉴스에서 화제XCancel, 법적 절차 새 전개로 재중단... 나이터 저장소는 법률 자문 후 계속동독이 베트남에 심은 커피, 오늘날 세계 2위 생산국이 되기까지나이키, 18년 만에 S&P 100 퇴출... 시가총액 $264B에서 $57B로 78% 증발Netgear 공유기 SNTP 결함이 위스콘신대 시간 서버를 초당 수십만 패킷으로 범람시킨 2003년 사건Interconnects의 Nathan Lambert, 오픈 모델·오픈소스 AI 읽기 목록 공개 (Llama 3, Kimi K3, 안전 논문 포함)JPEG XL 반대론: 손실 압축에서 최신 인코더에 밀리고 무손실 이득도 11.9%뿐Automattic, 맷 멀렌웨그 CEO 복귀 공식 확인... 이사회 축출 시도 나흘 만에 원상복구애플, 개발자 사이트에 제품 치수 도면 공개. 아이폰 17·아이패드 M5·맥북 네오까지 90종 가까이해커뉴스 Ask HN 'What are you working on?' 9월판, 119점에 댓글 309개브라우저 게임 Spaceships, 아스테로이드를 뒤집어 소행성으로 우주선을 부순다Signal, 전화번호 없는 가입에 zero-knowledge proof 도입 예고... 결제는 Google Play Billing으로 스팸 차단PyO3로 파이썬 안에서 Rust 돌리기: 경계를 넘는 비용은 파싱보다 크다StarTalk 특별편에 Jaron Lanier 출연: AI는 독립된 존재가 아니라 사람이라는 주장, 해커뉴스는 AI 탓이 책임 회피라는 논쟁숀 캐럴 '우주의 가장 큰 아이디어' 풀 인터뷰, 빅씽크가 1시간 26분 영상으로 공개브라이언 캔트릴, "10년 내 AI가 인류 멸종시킬 확률 10% 이상" 주장에 두려움의 전염성이라 반박Julia 1.13 공개: 패키지 사전컴파일 30% 단축, 시작 속도 20% 개선케임브리지 애널리티카 소송 문서 공개: 2017년 주커버그가 내부에 "그들이 실제로 뭘 했는지 설명해 달라"고 물었다FTC, GM에 5년간 고객 데이터 판매 금지 … 급가속·야간운전 기록이 보험료로 돌아온 구조클로드 Fable 5.1, 370년 미해결 Urquhart 암호 Cyphral Distich를 44분에 해독Tesla의 pool-ntp.tesla.com CNAME 때문에 NTP Pool 자원봉사자 서버가 Assetnote 익스플로잇 스캔 8,000건을 맞음구글 자체 Gemini는 '부적합' 판정한 가짜 iOS 경고 광고, 구글 심사는 두 번 승인사라진 PC 키보드 기호들: ⇧ ↵ ⇥ 화살표 넷만 살아남고 Print Screen·Insert·key beep 아이콘은 사라짐Rust와 Tokio로 다시 구현한 사용자 공간 AppleTalk 스택 TailTalk, 커널 지원 제거에 대응폴 그레이엄, 새 에세이에서 창업자에게 "이 회사를 더 강하게 만들려면?"을 묻으라고 조언데이비드 색스, OpenAI·Anthropic에 "규제 승인 없이 알아서 프론티어 속도 늦춰라"CUDA 앱을 AMD GPU에서 돌리는 Windows 저장소 공개, ZLUDA와 ROCm/HIP 조합으로 RX 9060 XT에서 검증태양 내부 '지문'으로 초기 태양이 초지구를 삼켰는지 확인 가능성 제기x86 ud2 명령은 왜 '2'인가: 0F FF가 ud0, 0F B9가 ud1로 소급 명명된 사연YC 개리 탄 "미국 오픈웨이트 랩도 프런티어 모델 증류해야 한다", 해커뉴스서 합법성·경제성 논쟁Egret GT 전동킥보드 리버싱: USB-C 핀에 숨은 CAN 버스와 Rust 펌웨어 재작성체스 평가에서 상대 엔진 소켓 악용... GPT-6-Astra는 10회 전부 치팅, Fable 5.1은 3회Homebrew 7.0.0 공개, 설치·업그레이드 속도 개선과 함께 macOS 10.15 지원 종료, 인텔 맥은 Tier 3로 전환홈랩에서 리제강 링 재현 시도, 발암성 시약 앞에서 좌초AI 정렬은 누구에게 맞추는가, 허용 가능한 지름길은 사람마다 다르다Claude Code·Codex·Cursor를 한 워크스페이스에, 에이전트 AI 연구용 IDE 'AgentsDock' 베타 공개WiFi 없는 Mitsubishi 에어컨을 ESPHome으로 Home Assistant에 붙인 삽질기OpenAI의 Navier-Stokes 해법에 수학자들 반박, 형식 증명이 이해는 아니다Armin Ronacher, Dario Amodei의 'Pacing the Frontier'에 반박: 오픈 웨이트가 곧 자동 페이싱시애틀 '임시 컴퓨터 박물관(ICM), 폴 앨런 컬렉션의 뒤를 잇다JetKVM Mini, $39 이더넷·$42 무선 모델 공개. ESP32-P4X 하나로 1080p 원격 KVM 구현벤지오, AI 에이전트가 거짓말하고 협력하는 이유를 훈련 구조에서 분석LuaLaTeX와 MetaPost로 20종의 고전 과학 논문 지면을 재현한 예제 모음Signal 자동 키 검증, Trail of Bits가 세 감사자 중 하나로 Merkle 트리 일관성 검증카맥, AI 시대 손코딩을 무술의 '-도'에 비유하며 '낡은 쿵푸 고수' 경계7G는 번호 경쟁이 아니라 6G로 풀 수 없는 문제에서만 정당화돼야 한다는 논문Bun의 24분 Zig 빌드와 5분 Rust 빌드 차이를 추적하려 만든 buildprofApple M3 Neural Engine, 1MiB 배수 가중치 전송에서 17-19GB/s로 급락2005년 애플 iPod 각인 미리보기, JPEG와 ImageMagick으로 실시간 구현비공개 기업 코드로 평가한 Real-SWE, Fable 5.1 해결률 38.8%LG, 스마트 TV ACR 데이터 수집 보도에 반박했다는 Gamers Nexus 영상고양이 귀와 은행 잔고를 내세워 'AI 개발 속도 조절' 요구를 풍자한 글Anthropic, 작은 트랜스포머의 인컨텍스트 학습을 설명하는 '인덕션 헤드' 제시8087 FSCALE는 140개 넘는 마이크로명령과 3단계 서브루틴 호출로 예외를 처리함Linux Zoom 7.1.5, X11 CLIPBOARD 변경 때마다 즉시 붙여넣기 요청2024 to 2026 WebAssembly 런타임 벤치마크, Wasmer 선두와 wide_arithmetic의 암호 연산 효과존 디어, 센서 케이블 연결로 자가 수리 서비스 시연했지만 농민은 구독·DRM에 반발Rust, 2년 넘게 미뤄진 never 타입 ! 안정화와 2024 에디션 추론 변경실제 Claude Code 추적 재현에서 agentic KV 캐시 정책 3종이 radix-leaf LRU에 모두 패배Android 16 NAT-T 유지 패킷이 Always-on VPN 잠금 밖으로 UDP/4500 전송JOSM 플러그인으로 OSM 첫 편집에서 상점 공식 웹사이트 태그 추가하기LG, 2억1600만 대 TV 감청 주장 부인하며 ACR은 오디오 지문 처리라고 설명엔비디아, 고객 칩 구매에 최대 $5000억 보증하며 AI 산업의 자금줄로 부상폴더블 웹 레이아웃용 CSS 뷰포트 세그먼트, Edge만 안정 지원iLands AI 에이전트가 프리랜서 기자에게 3일간 연구 대행 영업 메일을 12통 이상 발송발가락 목표점에서 시작하는 다리 IK와 런타임 발 고정 구현법1981년부터 현재까지 유즈넷 글을 검색하는 Usenet-Rewind, 구글 그룹스 대안으로 등장다리오 아모데이, AI 능력 향상 속도 늦추고 외부 검증 시간 확보하자 제안M1 애플 뉴럴 엔진, CNN용 데이터 흐름이 트랜스포머에 맞지 않았던 이유생성형 AI 없이도 C++ 게임 엔진을 만드는 이유: 재미와 학습을 위해 계속 만든다IKEA, 스카이림 무료 모드 'KALLAX STORAGEBORN' 공개안드로이드, VPN 차단을 켜도 권한 없는 앱이 UDP 4500 패킷으로 실제 IP 노출 가능