read: fail

진짜 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배 빠른 성능 향상을 이뤄냈습니다. 이 과정에서 데이터베이스 상호작용 개선의 중요성을 깨달았습니다.

유니슨 컴퓨팅에서의 유니슨 프로덕션 활용

유니슨 코드 개발 경험은 시간이 지남에 따라 개선되었지만, 초기에는 여러 엔지니어링 및 개념적 문제가 있었습니다. 파일 시스템을 데이터베이스로 사용하는 등의 성능 문제부터 시작해, 유니슨 쉐어의 부재, 그리고 프로젝트와 릴리스 지원의 결여 등이 있었습니다. 이후 SQLite로의 전환, 프로젝트와 릴리스에 대한 일급 지원 도입 등으로 많은 개선이 이루어졌습니다. 유니슨의 설계 원칙은 사용자가 중요하지 않은 결정에 시간을 낭비하지 않도록 하는 데 중점을 두고 있습니다.

규모에 맞는 개인정보 존중 타입 오류 텔레메트리

Roblox Studio에서는 수백만 명의 창작자들이 Luau라는 Lua 변형을 사용해 인터랙티브한 경험을 만듭니다. 연구진은 개인 정보를 보호하면서 Luau 언어와 타입 시스템을 개선하기 위한 텔레메트리 데이터를 수집하는 방법을 탐구했습니다. 이들은 1.5백만 건 이상의 텔레메트리 기록을 수집했으며, 이러한 발견은 TypeScript, Elixir, Typed Racket과 같은 다른 점진적 언어의 채택과 사용성에 중요한 함의를 가집니다.

AWS에서 IAM이 경계를 정의합니다

클라우드 환경에서는 전통적인 네트워크 중심의 보안 경계가 통하지 않습니다. AWS에서는 IAM 정책이 보안 경계를 정의하며, 고객은 클라우드 리소스와 데이터에 대한 접근을 제어하기 위해 IAM 정책을 관리하는 책임이 있습니다. 이는 클라우드에서 보안을 유연하게 관리할 수 있는 새로운 방법을 제공합니다.

Nue CSS: Tailwind, BEM, CSS-in-JS에 대한 확장 가능한 대안

Nue CSS는 디자인 시스템을 중심으로 하여 Tailwind, BEM, CSS-in-JS와 같은 기존 방식보다 더 유지보수가 용이하고 확장 가능한 대안을 제공합니다. 작은 CSS 크기와 빠른 성능을 자랑하며, 개발자가 백엔드에 집중할 수 있도록 디자인 작업을 전문 역할에 맡깁니다. 미래 계획으로는 Nue 디자인 시스템과 웹사이트 템플릿, 재사용 가능한 컴포넌트의 출시가 있습니다.

혼돈에서 버전 관리로: 개발자의 여정

2003년, 버전 관리 시스템(VCS)을 사용하지 않던 회사에서 첫 프로그래밍 직을 시작한 저자는 수동적이고 오류가 발생하기 쉬운 개발 및 배포 과정을 개선하기 위해 자동화GNU Arch를 도입했습니다. 심지어 CEO가 추적되지 않은 변경사항을 만드는 등의 문제도 있었습니다. 저자는 실용적인 해결책을 통해 긍정적인 변화를 이끌어냄으로써, 심지어 주니어 개발자라도 분명한 문제점에 대해 실질적인 해결책을 제시할 수 있음을 보여주었습니다.

PostgreSQL에서 벡터 검색 비교: pgvector와 pgvecto.rs

pgvecto.rs는 효율적인 벡터 검색과 관계형 쿼리를 결합한 VBASE 방법을 도입하고, 희소 벡터 검색을 지원합니다. 또한, 최대 65,535차원을 지원하며, SIMD 지시어를 동적으로 처리해 성능을 극대화합니다. 반면, pgvector는 PostgreSQL의 기본 저장 엔진과 WAL 시스템과 더 밀접하게 통합됩니다.

DOM Purify - 신뢰할 수 없는 노드 우회

DOMPurify, HTML을 정화하는 라이브러리의 구현상의 결함에 대해 설명합니다. 이 결함은 라이브러리가 문자열뿐만 아니라 HTML 노드를 직접 처리하는 능력과 관련이 있습니다. XML 처리 지시문을 제거하지 않는 문제를 발견하고, 프로젝트 관리자는 빠르게 이를 수정했습니다. 이 글을 통해 HTML과 XML의 차이점에 대해 배울 수 있습니다.