read: fail

pgzx 소개: Zig를 사용한 PostgreSQL 확장 생성

pgzx는 Zig 프로그래밍 언어로 작성된 PostgreSQL 확장을 개발하기 위한 오픈 소스 프레임워크입니다. 이는 유틸리티, 메모리 할당자 및 빌드/개발 환경을 제공하여 Postgres 코드베이스와의 통합을 간소화합니다. Zig는 C 코드와 잘 호환되어 Postgres와 같은 큰 C 코드베이스 작업에 적합합니다. pgzx는 Zig 언어로 Postgres 확장 개발을 용이하게 하기 위한 유용한 도구와 개발 환경을 제공하는 것을 목표로 합니다.

Apache Kvrocks: 분산 키-값 NoSQL 데이터베이스

Apache Kvrocks는 RocksDB를 저장 엔진으로 사용하며 Redis 프로토콜과 호환되는 분산 키-값 NoSQL 데이터베이스입니다. Redis Sentinel을 통해 고가용성을 제공하며, 자동 장애 복구와 마스터 프로모션을 지원합니다. 최소 세 개의 Sentinel 인스턴스로 구성된 클러스터를 통해 데이터의 지속적인 가용성을 보장합니다.

빠르고, 디버깅 가능하며, 재현 가능한 빌드를 위한 간단한 방법

Rust로 만들어진 작은 프로그램인 refix를 사용하면 빌드를 재현 가능하고, 디버깅 가능하며, 빠르게 만들 수 있는 간단한 방법이 있습니다. 디버깅이 어려워지는 문제를 해결하기 위해, 원본 소스 파일 경로를 가리키도록 바이너리를 'refix'하는 세 가지 접근 방식을 소개합니다. 이는 빌드 속도나 재현성을 희생하지 않으면서도 소스 파일 경로를 보존하여 쉽게 디버깅할 수 있게 해줍니다.

새로운 개인 AI 에이전트를 위한 새로운 검색 엔진을 누가 만들 것인가?

우리는 곧 개인 취향에 맞는 식당을 예약해주는 등의 작업을 수행할 수 있는 개인 AI 에이전트를 가질 것입니다. 이러한 에이전트를 구축하는 것은 현재 기술로 가능하지만, 비용이 많이 들고 예상치 못한 행동을 할 수 있는 등의 도전이 있습니다. 또한, 이 에이전트들이 사용자의 요청을 수행하기 위해 적절한 도구를 발견하고 선택할 수 있도록 하는 새로운 유형의 '도구 검색 엔진'이 필요합니다. 이는 매우 흥미로운 미래의 비전이지만, 여전히 극복해야 할 많은 도전이 있습니다.

과소평가된 작은 하드웨어 동반자들

AliExpress에서 찾을 수 있는 RJ45 각도 어댑터, SATA to USB-C 어댑터, USB-C <=> 마이크로 USB 어댑터 등 다양한 저렴하면서도 유용한 하드웨어 도구들이 있습니다. 이들은 노트북 케이블 관리부터 오래된 시스템 업그레이드까지 다양한 문제를 해결해 줍니다. 특히 Creative BT-W2 USB-A 블루투스 어댑터소니 헤드폰용 외장 마이크 같은 제품은 특정 필요를 충족시켜주는 흥미로운 아이템입니다.

KalmarCTF: 재현 가능한 Pwning 작성기

재현 가능한 Pwning은 NixOS VM을 루팅하는 CTF 도전 과제입니다. 이 도전 과제는 루트 사용자만 읽을 수 있는 /data 디렉토리에 플래그가 있으며, Nix 설정의 특이한 점을 이해하고 이용하여 루트 접근 권한을 얻고 플래그를 검색하는 것을 포함합니다. 흥미로운 점은, 작성자가 제한을 우회하여 루트 사용자로 승격한 방법이 의도된 해결책이 아니었다는 것입니다.

R과 APL의 배열 언어 비교

작성자는 Exercism을 통해 매달 새로운 프로그래밍 언어를 배우며, APL의 '미친 듯한' 코드를 보고 난 후, APL 문법에 대한 이해를 높였습니다. Dyalog APLRide 편집기를 설치해 직접 APL 코드를 작성하며, APL의 우아하고 간결한 해결책을 발견했습니다. APL과 R의 비교를 통해, APL의 명시적인 문법과 연산의 이해가 함수형 프로그래밍 접근 방식에 대한 통찰을 제공한다고 느꼈습니다.

진짜 C++를 위협하는 것들 (러스트는 아니에요)

C++를 대체할 수 있는 새로운 기술들에 대해 18년 동안 C++를 사용해온 저자가 이야기합니다. C++보다 더 효율적인 소프트웨어 개발을 가능하게 하는 스파이럴, 눔바, 포워드컴 같은 기술들이 C++의 자리를 위협할 수 있습니다. 하지만 C++가 완전히 사라지지는 않을 것입니다.

MERCIA 릴레이 컴퓨터 프로젝트

2014년에 시작된 MERCIA는 완전히 릴레이와 수동 구성 요소를 사용하여 만들어진 이동 가능한 릴레이 컴퓨터 프로젝트입니다. 이 프로젝트의 목표는 아이들과 학생들에게 컴퓨터의 작동 원리를 교육하는 것입니다. 각각의 패널은 안전한 운송을 위해 책처럼 닫힐 수 있으며, 다양한 신호와 구성 요소를 나타내는 매력적인 색상 사용, 각 패널의 작동 정보를 보여주는 디스플레이 등이 특징입니다.

niri: 스크롤 가능한 타일링 Wayland 컴포지터 소개

niri는 스크롤 가능한 타일링을 제공하는 Wayland 컴포지터입니다. 동적 워크스페이스, 내장 스크린샷 UI, 모니터 스크린캐스팅, 터치패드 제스처 등 다양한 기능을 갖추고 있어요. PaperWM에서 영감을 받았지만, 여러 모니터에 걸쳐 창을 적절히 분리하는 것을 목표로 합니다. 커뮤니티 패키지와 활발한 유지보수가 이루어지고 있어요.

V 0.4.5 버전 출시

V 0.4.5 버전에서는 언어 개선, 버그 수정, 표준 라이브러리 및 도구 향상에 중점을 두었습니다. 언어 개선에는 맵 업데이트 초기 문법 추가, 코루틴 및 가비지 컬렉션(GC) 수정이 포함되며, 표준 라이브러리도구에서도 다양한 모듈과 프레임워크가 업데이트되었습니다. 이번 릴리스는 V 생태계 전반에 걸쳐 사용성과 안정성을 높이는 데 중점을 두었습니다.

2022년 가정용 라즈베리 파이 프로젝트

이 글에서는 아파트를 개선하기 위해 진행한 다양한 라즈베리 파이 프로젝트에 대해 소개합니다. 주요 프로젝트로는 광고 차단 시스템인 Pi-hole, 클래식 비디오 게임과 PC 게임 스트리밍을 위한 RetroPie + Moonlight, 그리고 스마트 조명 제어 등을 가능하게 하는 Home Assistant 설치가 있습니다. 라즈베리 파이로 작업하는 재미와 도전에 대해 이야기하며, 독자들의 경험도 공유하길 바랍니다.

10분 만에 Lil 배우기

Lil 스크립팅 언어는 주로 Decker 애플리케이션에서 사용됩니다. 이 가이드는 예제 코드를 통해 기본 데이터 타입, 연산자, 제어 흐름 등을 빠르게 소개합니다. Lil의 온라인 샌드박스에서 직접 시도해 볼 것을 권장합니다!

취약점과 불일치된 인센티브에 대한 추가 생각

작성자는 취약점 분류 및 평가 시스템에서의 불일치된 인센티브에 대해 다시 생각해보았습니다. 특히, CVE 시스템의 역할과 참여자들의 다양한 이해관계에 주목합니다. 이 시스템이 전략적 모호성을 유지함으로써 다양한 필요에 따라 다르게 활용될 수 있다는 점을 지적하며, 리눅스 커널의 새로운 CVE 할당 방식이 시스템 개선의 문을 열 수 있을지 조심스럽게 낙관합니다.

lcl.host: 로컬 개발 환경에서 빠르고 쉬운 HTTPS 설정

lcl.host는 웹 개발자들이 로컬에서 HTTPS를 빠르게 설정하고 사용할 수 있게 해주는 무료 개발 도구입니다. 이 도구는 개발 시 HTTPS를 사용하지 않을 때 발생할 수 있는 혼합 콘텐츠 문제, CORS 오류, 보안 쿠키 오류 등을 해결해 줍니다. Anchor CLI를 통해 로컬 신뢰 저장소를 쉽게 관리할 수 있으며, 개발자들이 로컬 HTTPS를 간편하게 설정할 수 있도록 돕습니다.

Btrfs에서 버그 찾기

Btrfs 파일시스템에서 발생한 '구조체 정리 필요' 오류를 해결하기 위해, 한 개발자는 멀티스레드 stat() 호출 중 경쟁 조건을 발견하고 이를 수정하는 패치를 제출했습니다. 이 과정에서 전체 디스크 암호화(dm-crypt)가 문제를 더 복잡하게 만들었지만, 결국 해결책을 찾아냈습니다. 이야기는 기술적 문제 해결의 흥미로운 사례를 보여줍니다.

Go 열거형은 여전히 문제가 있다

Go 열거형에 대한 글이 많은 주목을 받았습니다. 주된 비판은 stringer 사용 누락, 불필요한 JSON 설정, 그리고 확장 가능한 열거형이었습니다. 저자는 이러한 비판을 받아들여 ast 패키지를 사용해 처음부터 생성기를 다시 작성하고, 열거형 값에 대한 추가 속성을 정의할 수 있는 기능을 추가했습니다. 이로써 더 확장 가능한 열거형 래퍼를 만들 수 있게 되었습니다.

Git에 대한 새로운 이해, 파트 2: Git의 복수

이번 글에서는 'switch'와 'restore' 같은 새로운 Git 명령어를 소개하고, Git 훅을 이용한 자동화 작업, Git 속성을 통한 파일 관리 방법, 커밋 이력 정리 기술, 대규모 저장소 관리를 위한 'scalar' 명령어, 그리고 여러 브랜치를 동시에 관리할 수 있는 GitButler 클라이언트에 대해 설명합니다. Git을 더 효율적으로 사용하는 방법에 대해 알아보세요!

KDE 스토어의 콘텐츠 신뢰하기

최근 KDE 스토어에서 데이터를 삭제하는 스크립트를 실행한 글로벌 테마 이슈가 발생했습니다. 이는 악의적인 의도가 아닌 실수였지만, 스토어의 보안 문제와 테마가 이러한 행동을 할 수 있는 권한에 대한 논의를 촉발했습니다. 사용자들은 보안 기대치를 재조정하고, 개발자들은 단기적으로 보안 기대를 명확히 전달하며, 장기적으로는 안전한 콘텐츠와 그렇지 않은 콘텐츠를 분리하는 방안을 모색하고 있습니다.

10만 행 삽입, 66배 빨라지다

작성자는 처음에 스프레드 연산자를 사용했다가 스택 오버플로 오류를 겪었습니다. 이후, 대량 삽입(bulk inserts) 개념을 도입하여 데이터베이스 삽입 성능을 최적화했고, 실제 프로젝트에 적용하니 원래 함수보다 66배 빠른 성능 향상을 이뤄냈습니다. 이 과정에서 데이터베이스 상호작용 개선의 중요성을 깨달았습니다.