타이거 스타일
조란 그리프의 '타이거 스타일!' 강연에서는 안전한 시스템을 더 빠르게 설계하는 방법에 대해 다룹니다. 주요 내용으로는 런타임 단언 사용, 설계 단계에서의 철저한 문제 이해, 강력한 테스트 스위트 구축, 명확한 명명법, 그리고 시스템의 단순화가 있습니다. 이러한 접근 방식은 설계와 테스트의 철저함을 강조하며, 구현에 서두르지 않는 것을 중요시합니다.
타이거 스타일
조란 그리프의 '타이거 스타일!' 강연에서는 안전한 시스템을 더 빠르게 설계하는 방법에 대해 다룹니다. 주요 내용으로는 런타임 단언 사용, 설계 단계에서의 철저한 문제 이해, 강력한 테스트 스위트 구축, 명확한 명명법, 그리고 시스템의 단순화가 있습니다. 이러한 접근 방식은 설계와 테스트의 철저함을 강조하며, 구현에 서두르지 않는 것을 중요시합니다.
SciLean: 리안 4에서의 과학 계산
SciLean은 리안 프로그래밍 언어로 작성된 과학 계산 프레임워크입니다. 이는 수학의 형식화를 통한 코드 변환 및 최적화, gradient, integral, limit 같은 기호 계산, 공식 사양에 기반한 코드 생성 등을 제공합니다. 특히, 하모닉 오실레이터 시뮬레이션 예제를 통해 그 사용법을 보여줍니다.
슈퍼 닌텐도 비디오 시스템의 설계 탐구
이 글에서는 슈퍼 닌텐도(SNES) 콘솔의 비디오 시스템을 설계한 엔지니어의 입장에서 그 과정을 탐구합니다. 1990년대 초반의 표준 TV 세트 작동 방식, CRT 디스플레이, 프로그레시브 및 인터레이스 스캔 방식 등을 설명하며, NTSC와 PAL 비디오 표준의 차이점과 SNES가 이를 어떻게 처리했는지도 다룹니다.
Tiny Tapeout 데모신 경연 대회
Tiny Tapeout 데모신 경연 대회에서 참가자들은 기존 컴퓨터를 사용하지 않고, 자신만의 ASIC 하드웨어를 만들어 오디오/비주얼 출력을 구현합니다. 참가자는 무료로 1개의 타일을 받게 되며, 데모보드를 구매한 이들은 VGA 및 오디오 PMOD 확장 모듈도 무료로 제공받습니다. 경연은 9월 6일까지 작품을 제출해야 하며, 다양한 카테고리에서 수상 기회가 주어집니다.
프루프 오브 컨셉트 익스플로잇 코드의 와일드 웨스트 (PoC)
1990년대와 2000년대 초, 해킹 그룹들이 공개적으로 PoC 코드를 공유하며 큰 혼란을 야기했습니다. 최근에는 CVE-2024-6387과 같은 취약점을 노린 악의적인 '익스플로잇' 코드가 유포되고 있어, 보안 전문가들은 다운로드한 코드를 철저히 검증해야 합니다.
TypeScript 5.6 베타 버전 발표
TypeScript 5.6 베타 버전이 새로운 기능과 개선 사항을 소개했습니다. null과 참값 검사 금지, 반복자 도우미 메소드 지원, 임의 모듈 식별자 지원 등 다양한 업데이트가 포함되어 있습니다. 이러한 변화는 개발자들이 더욱 효율적으로 코드를 작성하고 오류를 줄일 수 있게 도와줄 것입니다.
AVX-512를 이용한 문자열 처리와 tolower() 함수
AVX-512-BW 명령어를 사용하여 문자열을 효율적으로 처리하는 방법에 대해 설명합니다. 특히, 64바이트 문자열을 한 번에 소문자로 변환하는 tolower64() 함수를 개발하였으며, 이는 짧은 문자열 처리에 매우 유용합니다. 성능 벤치마킹 결과, 이 함수는 가장 빠른 처리 속도를 보였습니다.
저렴한 Altera USB Blaster 복제품 수정하기: CPLD 모험
저자는 AliExpress에서 구매한 저렴한 Altera USB Blaster 복제품, 특히 KRZV-REV. C 모델을 수정했습니다. 이 모델은 Linux에서 임의의 실패를 겪었으나, CPLD 설계를 수정하여 TDO 핀 읽기 전에 지연을 추가함으로써 문제를 해결했습니다. 수정된 설계는 GitHub에 공유되었지만, CPLD를 재프로그래밍할 수 있는 작동하는 프로그래머가 필요합니다.
쿠버네티스에 대한 회의론자의 첫 접촉
쿠버네티스는 임의의 워크로드를 실행하고, 자원 요구 사항 지정, 동적 스케일링, 자가 치유, 서비스 발견 등의 기능을 제공합니다. 특히 제어 루프와 서비스는 안정적인 네트워크 신원과 로드 밸런싱을 제공하며, 워크로드 관리에 있어서도 높은 수준의 구성 요소를 사용합니다.
크롬을 위한 윈도우 XP 루나 테마
구글 크롬을 위한 루나 테마는 깔끔하고 미니멀리스트 디자인을 자랑합니다. 사용자의 눈을 편안하게 해주며, 색상을 사용자 취향에 맞게 커스터마이즈할 수 있습니다. 크롬 웹 스토어에서 쉽게 설치할 수 있어, 크롬 브라우저의 외관과 기능을 향상시키고 싶은 분들에게 안성맞춤입니다.
ps aux 명령어를 포킹 없이 완전히 Bash로 구현하기
이 문서는 Bash와 Linux에 대한 지식이 필요한 면접 질문에 대한 해결책을 제시합니다. 모든 PID가 사용 중일 때, 기존의 ps aux 명령어를 사용할 수 없는 상황에서 이를 대체할 수 있는 도구를 소개합니다. 이 도구는 모든 상황에서 100% 작동한다고 주장하지만, 실제로는 제한이 있을 수 있습니다.
데이터의 끝을 넘어서는 위험한 읽기 최적화
URBD는 GxHash 해싱 알고리즘의 성능을 향상시키기 위해 개발된 최적화 기법입니다. 이 기법은 입력 데이터가 SIMD 레지스터 크기의 배수가 아닐 때 발생하는 성능 저하 문제를 해결하기 위해, 데이터 버퍼의 끝을 넘어서 읽는 방식을 사용합니다. 이러한 접근은 위험할 수 있지만, 여러 기술을 조합하여 안전하게 구현함으로써 GxHash를 작은 데이터에도 빠른 비암호화 해싱 알고리즘으로 만들었습니다.
Symbolics S-Render 매뉴얼 (1985)
Symbolics S-Render는 S-Paint, S-Geometry, S-Dynamics와 함께 사용되어 시각적으로 현실적인 3D 객체와 장면을 생성하는 소프트웨어 패키지입니다. 정지 이미지를 만들거나 S-Dynamics와 함께 사용 시 애니메이션 시퀀스를 형성하는 이미지 시리즈를 생성합니다.
레거시 PXE 부트로더 작성하기
레거시 PXE 부트로더를 취미 프로젝트로 개발하는 과정을 담은 글입니다. 32비트와 레거시 부팅을 사용하며, Windows에서 BOOTP/DHCP+TFTP 서버 환경을 구축하고, 간단한 'Hello World' 어셈블리 프로그램을 네트워크 부팅 프로그램(NBP)으로 테스트했습니다. 또한, Bochs와 QEMU+GDB를 사용하여 디버깅 환경을 설정하고, 다음 글에서는 C 프로그램을 NBP로 실행하는 과정을 다룰 예정입니다.
bashsimplecurses: 터미널 인터페이스를 위한 간단한 커서 라이브러리
Bash Simple Curses는 터미널에서 창을 빠르게 생성할 수 있는 기본 기능을 제공하는 라이브러리입니다. 이를 통해 색상이 있는 창을 만들고 정보를 표시할 수 있으며, 'bashbar'라는 예제 애플리케이션도 포함되어 있습니다. 간단하게 사용할 수 있는 라이브러리를 목표로 합니다.
Yggdrasil 리눅스 - 설치부터 그 이상까지
리눅스는 멀티태스킹, 멀티유저 지원, 메모리 보호 등을 제공하며, 다양한 하드웨어와 소프트웨어를 지원합니다. 리눅스 커뮤니티는 활발하며, 설치 시 하드 드라이브 파티션 결정이 필요합니다. 리눅스는 DOSEmu와 Wine 같은 에뮬레이터를 통해 일부 DOS 및 Windows 소프트웨어도 실행할 수 있습니다.
절차적 게임 개발을 위한 나의 최애 도구 및 기법
이 글에서는 3D 장면을 위한 텍스처와 셰이더, 메시 및 지오메트리 생성 기술에 대해 다룹니다. 저자는 시각적으로 매력적이고 효율적인 3D 장면을 만들기 위해 다양한 절차적 기법을 개발했습니다. 특히, AI를 활용한 PBR 텍스처 사용이나 실시간으로 메시를 세분화하고 변형시키는 기술이 인상적입니다.
Rails 애플리케이션에서 Svelte 뷰를 쉽게 생성하는 actionview-svelte-handler
Ruby gem인 actionview-svelte-handler는 Rails 애플리케이션에서 Svelte 컴포넌트를 사용할 수 있게 해주며, 전통적인 ERB 뷰 대신 Svelte 뷰를 생성할 수 있는 템플릿 핸들러를 제공합니다. 이를 통해 사용자는 .html.erb 파일 대신 .html.svelte 파일을 사용할 수 있습니다.
Minimal 64x4 – 1980년대 스타일의 DIY 홈 컴퓨터
Minimal 64x4 홈 컴퓨터는 마이크로컨트롤러 없이 구축된 1980년대 스타일의 프로젝트입니다. 이 컴퓨터는 64KB RAM과 512KB FLASH SSD, 8MHz CPU로 구동되며, 커모도어 C64의 4배에 달하는 처리 능력을 자랑합니다. 모든 소프트웨어와 하드웨어는 무료이며 비상업적입니다.
PCI-e: 드라이버 및 DMA에 대해 알아보기
PCI-e 디바이스 드라이버의 구현 과정을 단계별로 설명합니다. 사용자 공간에 디바이스를 노출시키고, DMA를 이용한 효율적인 데이터 전송을 구현하며, 인터럽트를 처리하여 블로킹 쓰기 작업을 가능하게 합니다. 또한, QEMU 에뮬레이터와의 통합을 통해 디바이스 출력을 디스플레이하는 방법도 보여줍니다.