read: fail

MicroZig으로 OLED 디스플레이 드라이버 작성하기

Raspberry Pi Pico에서 Zig 언어를 사용해 OLED 디스플레이 드라이버를 작성하는 과정을 소개합니다. MicroZig 프로젝트를 활용해 I2C 통신을 설정하고, SDD1306 화면에 이미지를 성공적으로 표시했습니다. 이 프로젝트는 Zig의 매력을 느끼고, 임베디드 시스템에서의 활용 가능성을 탐구하는 흥미로운 경험이었습니다.

파일시스템 50년: 1984년

1984년, BSD Fast Filing System(FFS)는 기존 유닉스 파일시스템의 한계를 극복하기 위해 등장했습니다. 실린더 그룹을 활용해 성능을 높이고, 큰 블록과 작은 조각으로 I/O 성능을 개선했습니다. 긴 파일명심볼릭 링크 지원 등 다양한 혁신이 이루어졌습니다. 이 시스템은 파일 접근 속도를 높이고, 안정성을 강화했습니다.

카프카를 위한 KIP-932: 큐 살펴보기

Apache Kafka 4.0의 초기 액세스 기능공유 그룹을 활용하는 방법을 소개합니다. KafkaShareConsumer API는 메시지 큐와 공유 그룹을 지원하며, 암시적명시적 메시지 확인 모드를 제공합니다. 향후 DLQ 지원과 유연한 재시도 메커니즘이 추가될 예정입니다.

사라진 CPU의 미스터리: 리눅스 커널 디버깅 이야기

ClickHouse Cloud에서 발생한 CPU 스파이크 문제는 리눅스 커널의 메모리 관리 문제로 이어졌습니다. Sergei Trifonov는 eBPF 추적과 perf 분석을 통해 숨겨진 라이브락을 발견했습니다. 문제 해결 후에도 새로운 커널 버그가 나타나며, 클라우드 인프라 관리의 복잡성을 보여줍니다.

xdg-ninja: $HOME 디렉토리의 불필요한 파일과 디렉토리를 점검하는 쉘 스크립트

xdg-ninja$HOME 디렉토리를 스캔하여 불필요한 파일과 디렉토리를 찾아내는 쉘 스크립트입니다. 다양한 설치 방법을 제공하며, POSIX 호환 쉘과 jq가 필요합니다. DockerHomebrew를 통해 설치할 수 있으며, 기여를 통해 더 나은 구성을 만들 수 있습니다. XDG 사양에 따라 파일을 적절한 위치로 이동하는 방법도 안내합니다.

디지털 색상의 안내서

색상 인식에 대한 이해를 돕는 이 글은 신뢰할 수 있는 정보를 찾는 어려움과 소프트웨어의 문제점을 다룹니다. 색상은 인간의 지각 시스템에서 생성되며, 이를 이해하는 것이 중요합니다. Ralph Evans와 Dr. David Briggs의 자료는 색상 인식에 대한 깊은 통찰을 제공합니다.

200줄 코드로 구현한 효율적인 메모리 할당기

SmpAllocator는 멀티스레드 환경에서 최적화된 메모리 할당을 제공하는 시스템입니다. 각 스레드는 독립적인 freelist를 유지하며, 필요 시 다른 스레드의 메모리를 회수할 수 있습니다. 메모리 매핑스레드 관리를 통해 고성능 애플리케이션에 적합한 효율적인 메모리 관리가 가능합니다.

포켓몬 레드 (강화 학습 에디션)

2020년부터 강화 학습을 통해 1996년 게임 포켓몬 레드를 공략하는 에이전트를 개발해왔습니다. 2025년 2월 기준, 1천만 개 미만의 파라미터로 포켓몬 레드를 클리어할 수 있게 되었어요. 복잡한 JRPG를 해결하는 것은 AI 발전의 중요한 기준이 될 수 있습니다. 포켓몬 레드는 복잡한 추론결정이 필요한 게임으로, 강화 학습을 통해 새로운 데이터를 생성하며 훈련을 시작할 수 있었습니다. 이 프로젝트는 AI와 게임의 흥미로운 융합을 보여줍니다!

Git 포지 없이 Git 사용하기

Git 포지를 사용하지 않고 개인 웹사이트에 Git 저장소를 호스팅하는 방법을 소개합니다. 패치를 이메일로 보내는 방법과 Git 포지를 사용하지 않는 이유를 설명합니다. 신뢰성, 관리의 간편함, 워크플로우의 자유가 주요 이유입니다. Github에 대한 특별한 반감도 언급됩니다.

항상 나눗셈 없는 랜덤 숫자 생성

랜덤 숫자 생성에서 나눗셈을 피하는 방법을 소개합니다. Lemire의 알고리즘을 개선하여 컴파일러가 최적화할 수 있도록 했습니다. 특히, 상수 제한이 있을 때 더 효율적인 방법을 제안합니다. 이 방법은 Rust와 같은 언어에서의 구현 가능성을 탐구하며, Zig의 컴파일 타임 기능도 살펴볼 예정입니다.

그냥 압축 해제를 안 하면 어떨까요?

Vortex컴퓨트 푸시 다운을 통해 압축 해제를 피할 수 있는 독특한 기능을 제공합니다. 스칼라 컴퓨트계층적 압축을 활용하여 성능을 극대화하며, SIMD 최적화로 속도를 높입니다. Vortex는 지속적인 발전을 추구하며, 협업을 환영합니다!

Neighbourhoodie - 사례 연구: AAA 게임 출시를 위한 CouchDB 성능 10배 향상

이 사례 연구는 CouchDB 성능을 10배 향상시킨 과정을 다룹니다. AAA 스포츠 게임 출시를 앞둔 고객이 성능 문제를 겪고 있었고, 네트워크와 Erlang 프로세스, HTTP 요청 처리 등 다양한 요소를 분석해 해결했습니다. 이 과정은 시스템 내부를 이해하고 병목 현상을 해결하는 데 중요한 통찰을 제공합니다.

일반성

일반성은 기계 학습 모델의 성공과 실패를 가르는 중요한 요소입니다. 한 연구팀은 방사선 스캔에서 종양을 예측하는 모델을 개발했지만, 실제 환경에서는 실패했습니다. 이는 훈련 데이터의 의도치 않은 상관관계에 영향을 받았기 때문입니다. LLM의 경우도 마찬가지로, 특정 작업에서는 뛰어나지만 다른 작업에서는 한계를 보입니다. 이러한 일반성 부족은 모델의 진정한 능력을 이해하는 데 중요한 요소입니다.

Lynx: 더 많은 가능성을 여는 네이티브 UI

Lynx는 웹 개발자들이 단일 코드베이스로 모바일과 웹의 네이티브 UI를 만들 수 있게 해주는 기술 모음입니다. TikTok 같은 대규모 앱에 적합하며, 빠른 렌더링 엔진과 Rust 기반 도구를 제공합니다. Lynx는 오픈 소스로 공개되어, 개발자들이 더 자유롭고 생산적으로 앱을 만들 수 있도록 돕습니다. Lynx로 무엇을 만들어볼까요?

부동 소수점과 상자

부동 소수점 숫자는 컴퓨터에서 정수와 함께 사용되며, IEEE 754 표준에 따라 정의됩니다. 이 글에서는 부동 소수점의 구조와 정밀도 손실 문제를 다룹니다. 특히, NaN(Not a Number)과 같은 특수한 경우와 과학적 표기법을 통해 부동 소수점의 개념을 쉽게 이해할 수 있도록 설명합니다.

"alias" 명령어가 마지막 선택인 이유

별칭은 자주 사용하는 명령어를 간편하게 만들어주는 도구입니다. 하지만 저는 스크립트를 선호합니다. 스크립트는 즉각적인 업데이트, 다양한 언어 사용, 복잡한 로직 처리, 그리고 이식성을 제공합니다. 반면, 별칭은 간단하고 빠르지만, 스크립트의 유연성을 따라잡기 어렵습니다.

앤드류 바르토와 리처드 서튼, 2024 튜링상 수상: 강화 학습의 기초를 다지다

2024년 ACM A.M. 튜링상이 강화 학습의 기초를 확립한 앤드류 바르토와 리처드 서튼에게 수여되었습니다. 이들은 강화 학습의 개념적, 알고리즘적 기반을 마련했으며, 이는 AI 발전에 큰 기여를 했습니다. 특히, AlphaGoChatGPT 같은 혁신적인 AI 기술의 발전에 중요한 역할을 했습니다. 이들의 연구는 AI와 인간 인지 과정을 이해하는 데 큰 영향을 미쳤습니다.

피치포크 이야기

피치포크는 Shopify의 루비 HTTP 서버로, 기존의 유니콘 서버의 한계를 극복하기 위해 개발되었습니다. 유니콘은 메모리 사용량이 많고 연결 풀링에 비효율적이지만, 피치포크는 메모리 절약성능 향상을 목표로 합니다. 특히, 복사-온-쓰기(CoW) 기술을 활용해 메모리 공유를 극대화하고, 리포크 기능으로 성능을 최적화합니다. 피치포크는 대규모 Rails 모놀리식 애플리케이션에 적합하며, 향후 루비의 병렬 처리가 가능해지면 그 필요성이 줄어들 것으로 기대됩니다.

Trigon: iOS용 결정론적 커널 익스플로잇 개발

CVE-2023-32434는 iOS의 XNU 시스템에서 발생하는 정수 오버플로우 취약점입니다. 이 취약점을 통해 임의의 물리 메모리를 사용자 공간에 매핑할 수 있습니다. 특히 A10(X) 장치에서는 KTRR 보호 영역을 스캔하여 커널 베이스를 찾을 수 있습니다. 이 글은 iOS 13 이상에서의 커널 익스플로잇 개발 과정을 다루며, 다양한 장치와 버전에서의 도전 과제를 설명합니다.

나쁜 사과, 그러나 SSH 키로

이 문서는 SSH 키와 'Bad Apple' 애니메이션을 결합한 창의적인 프로젝트를 다룹니다. 각 비디오 프레임마다 SSH 키를 생성하여 큰 출력 파일을 만듭니다. 랜덤 키 생성프레임 비교를 통해 최적의 결과를 찾으며, 멀티 스레드로 성능을 향상시킵니다. 이 프로젝트는 기술과 예술의 독특한 융합을 보여줍니다.