read: fail

2023년 코드의 축제, 6일차: Hurl, 특별한 프로그래밍 언어

Hurl은 예외 처리만을 제어 흐름으로 사용하는 독특한 동적 타입 프로그래밍 언어입니다. 이 언어는 try/catch 구조로 조건 분기를 처리하고, return 대신 hurl을 사용하여 함수에서 값을 반환합니다. 또한, Hurl을 사용하여 코드의 축제 문제를 해결하는 방법을 자세히 설명하고 있어 프로그래밍 언어에 대한 새로운 접근 방식을 제시합니다.

Go 1.0부터 1.22까지의 성능 변화

GoAWK 인터프리터의 성능을 Go 1.0부터 최신 1.22 버전까지 비교한 기사입니다. Go 1.3, 1.5, 1.7, 1.12에서 큰 성능 향상이 있었으며, 문자열 처리 벤치마크는 이제 Go 1.0보다 8배 빨라졌고, 숫자 처리 벤치마크는 24배 향상되었습니다. 이러한 발전에 대해 Go 팀에 감사를 표하며, 오픈 소스 프로젝트 후원을 고려해 볼 것을 권장합니다.

프로그래밍 언어의 오해를 식별하고 수정하기

이 논문은 변경 가능한 변수, 복합 데이터, 그리고 스코프고차 함수와의 상호작용에 대한 일반적인 오해를 다룹니다. 저자들은 학생들의 작업을 통해 발견된 오해 목록과 이를 탐지하는 도구를 제시하고, 이를 교육적 전략을 바탕으로 한 자동화된 튜터 시스템을 통해 수정하는 방법을 소개합니다.

운영 체제에서의 인터럽트와 시그널

운영 체제에서 프로그램들이 서로 통신할 수 있는 방법 중 하나는 시그널을 받고 처리하는 것입니다. 외부 이벤트가 발생하면 CPU는 특정 인터럽트 핸들러 코드로 점프할 수 있는 인터럽트 메커니즘을 제공합니다. 이 문서는 시그널 처리와 원래 프로그램 실행을 재개하는 방법에 대해 설명합니다.

통합 테스트를 위한 PostgreSQL 설정하기

테스트마다 독립적인 데이터베이스를 사용하여 성능과 신뢰성을 달성하는 방법에 대해 설명합니다. 템플릿 데이터베이스와 메모리 디스크를 결합한 방식으로, 테스트 실행 시 데이터베이스 생성의 오버헤드를 줄이면서도 좋은 격리성을 제공합니다. 이 방법은 수천 개의 테스트를 병렬로 실행할 수 있게 해줍니다.

AMD SEV-SNP에 대한 첫 공격, Cipherleaks

Cipherleaks는 AMD SEV-SNP에 대한 첫 번째로 입증된 공격입니다. 이 공격은 SEV의 메모리 암호화 설계상의 취약점을 이용하고, 암호화된 VMSA의 암호문을 사이드 채널로 사용하여 최신 OpenSSL 라이브러리의 RSA 및 ECDSA 구현을 침해합니다.

SIGBOVIK 2024: 학문의 덜 알려진 영역을 축하하는 연례 학술 대회

SIGBOVIK 2024는 학문의 덜 알려진 영역을 탐구하는 연례 다학제 학술 대회입니다. 이번 대회는 2024년 4월 5일에 펜실베니아 주 피츠버그에 위치한 카네기 멜론 대학교에서 개최됩니다. 논문 제출 마감일은 3월 29일로 연장되었습니다.

데이터 경쟁을 데이터 손상으로 '전환'하는 TearCell

작성자는 데이터 경쟁을 데이터 손상으로 '전환'하는 TearCell 타입을 만들었습니다. 이는 기술적으로 스레드 안전은 유지되지만, 데이터 손상이 발생할 수 있습니다. 이 실험적인 코드는 실제로 유용할 가능성은 낮지만, 흥미로운 실험으로 평가됩니다.

에이전트를 활용한 의미론적 사운드 합성

Vroom VST라는 텍스트-투-사운드 플러그인을 개발한 저자와 Barney Hill은 기존의 방식에 한계를 느껴, 전통적인 악기와 효과를 사용하여 사운드를 형성하는 방법을 가르치는 도구인 Vroom Live를 만들었습니다. 이 도구는 Ableton Live와 통합되어 사용자에게 친숙한 채팅 인터페이스를 제공합니다.

WebXR 레트로 컴퓨터 시뮬레이션

BBC Micro에서 영감을 받아 만들어진 WebXR 레트로 컴퓨터 시뮬레이션은 과거와 현재의 기술이 어우러진 프로젝트입니다. 이 시뮬레이션은 3D 모델, 사운드 디자인, 셰이더 등을 통해 실감나는 경험을 제공하며, 최종적으로 Meta Quest 3에서 원활하게 작동합니다.

Qemu IPv6 Slirp을 통한 루트리스 모드 네트워크 라우팅

이 글에서는 Qemu의 루트리스 모드를 이용하여 호스트를 통한 네트워크 패킷 라우팅, 특히 IPv6 설정에 대해 설명합니다. IPv6 지원을 활성화하기 위한 필요한 옵션을 제공하는 방법에 대한 단계별 가이드를 제공합니다.

DOCSIS 3.1 - 4.0 해석: IT 전문가를 위한 고속 인터넷의 개발

DOCSIS 기술은 케이블 회사가 기존의 동축 케이블 인프라를 통해 고속 인터넷을 제공할 수 있게 해줍니다. DOCSIS 3.1은 최신 표준이며, DOCSIS 4.0은 이제 막 도입되기 시작했습니다. 이 기술은 케이블 모뎀, 하이브리드 파이버-동축 네트워크 등을 관리하는데 중요한 역할을 합니다.

검색 알고리즘에서의 Top-K 문제와 수학 퍼즐

이 문서는 검색 알고리즘과 관련된 수학 문제, 특히 'Top-K' 문제에 대해 다룹니다. 8억 명의 사람들이 줄을 서 있는데, 앞 사람보다 키가 큰 사람만 '지금까지 가장 큰 사람'으로 간주됩니다. 이 문제는 평균적으로 몇 명의 '지금까지 가장 큰 사람'이 있는지를 찾는 것입니다. 또한, Top-K 문제를 해결하기 위한 힙 기반 접근법중앙값 기반 접근법을 비교 분석합니다.

OpenBSD, 아늑한 운영 체제

최근 OpenBSD 7.5로 업데이트된 개인 '인스톨러' 프로젝트에 대해 소개합니다. 이 프로젝트는 dwm 타일링 윈도우 매니저를 중심으로 구축되었으며, 기본 패키지만 설치됩니다. OpenBSD는 설치가 간편하고, 핵심 시스템이 바로 작동하여 사용자에게 '아늑함'을 제공합니다. 또한, 이 운영 체제는 높은 보안성, 훌륭한 문서화, 작은 코드베이스 등의 장점을 가지고 있습니다.

PEP 744 – JIT 컴파일

PEP 744는 CPython 메인 개발 브랜치에 통합된 새로운 JIT 컴파일러의 설계 결정, 현재 상태, 그리고 미래 계획을 요약합니다. 이 JIT 컴파일러는 Python 코드를 실행하는 기존 방식과 크게 달라진 점을 나타냅니다. JIT는 Python 코드의 성능을 향상시키기 위해 도입되었으며, 현재 여러 플랫폼에서 지원됩니다.

Ubuntu 22.04 커널 업데이트 후 CIFS 마운트 작동 중단

최근 Ubuntu 22.04 시스템의 커널을 5.15.0-102-generic으로 업데이트한 후, 다양한 파일 서버의 CIFS 마운트가 작동을 멈췄습니다. 이 문제는 커널 버그로 의심되며, 이전 버전으로 돌아가면 문제가 해결됩니다. 파일 접근 시 불안정성이 발생하는 주요 이슈입니다.

Go보다 5배 느린 Rust? Rust의 Protobuf 디코딩 성능 최적화

GreptimeDB 팀은 Protobuf 인코딩된 'WriteRequest' 데이터의 역직렬화 오버헤드를 줄이기 위해 다양한 최적화 기법을 탐구했습니다. 특히, Rust의 Bytes와 관련된 추상화가 상당한 오버헤드를 초래하여, unsafe 메소드를 사용하여 참조 카운팅 메커니즘을 우회하는 방법으로 성능을 크게 향상시켰습니다.

XOR 부동 소수점 압축의 단순한 아름다움

XOR 부동 소수점 압축 알고리즘은 첫 번째 숫자를 전체로 쓰고, 이후 숫자들은 이전 숫자와 XOR 연산 후 세 가지 방식 중 하나로 인코딩합니다. 이 알고리즘은 다양한 실제 시계열 데이터에서 좋은 결과를 보여주며, 특히 예측 가능한 패턴이 있는 데이터에서 효과적입니다.

WebKit 및 Safari의 속도 향상을 위한 최적화: Speedometer 3.0

WebKit 팀은 Speedometer 3.0 벤치마크를 기반으로 WebKit과 Safari의 성능을 대폭 향상시켰습니다. 이러한 최적화는 JavaScriptCore의 개선, JIT 코드 지연 파괴, 가비지 수집 최적화 등을 포함하며, 결과적으로 Safari 17.0에서 17.4로의 업데이트에서 약 60%의 성능 향상을 이루었습니다.

인터랙티브 퀴네에 대한 탐구

이 글에서는 사용자가 소스 코드를 직접 조작할 수 있는 인터랙티브 퀴네(자기 자신의 소스 코드를 출력하는 프로그램)의 생성에 대해 설명합니다. 저자는 이 프로젝트를 통해 프로그래밍 학습의 접근성을 높이고, 코드의 가독성을 중시하는 문해 프로그래밍의 중요성을 강조합니다.