Trawling

개발·오픈소스 · 최신기사

개발 도구와 언어, 웹 기술과 오픈소스 프로젝트의 변화를 다룹니다.

Recurse Center에서 보낸 여름

발행

프로그래밍 리트릿 Recurse Center에서 여름을 보낸 저자가 스터디 그룹, Rust로 구현한 DEFLATE 압축 해제기, 미니 언어 개발과 LLM 활용 프로젝트를 소개합니다. 정해진 성과보다 자율적인 학습과 협업을 중시하는 공간에서 무엇을 만들고 배웠는지 구체적으로 보여줍니다.

Bevy iOS 크레이트에서 Swift 패키지를 없앴습니다

발행

Bevy iOS 크레이트가 Swift 패키지와 수작업 브리지를 objc2 기반 Rust 바인딩으로 교체했습니다. 설치는 `cargo add`만으로 끝나고 GameKit·StoreKit 크레이트의 시뮬레이터 빌드도 다시 지원합니다. 단, Swift 전용인 StoreKit 2에는 작은 Swift 브리지를 남겼습니다.

Lisp는 왜 읽기 어려울까요? 다음 언어에서 괄호를 어디에 둘지

발행

Lisp의 괄호 중심 문법이 낯설게 읽히는 이유를 인지과학과 시각적 그룹화 관점에서 분석합니다. 저자는 괄호 사이 거리, 코드의 중첩과 읽는 순서가 가독성에 영향을 준다고 설명하고, 새 언어 문법을 설계할 때 고려할 원칙을 제안합니다.

코드 리뷰는 자동화 가능한 결함 탐지만을 위한 절차가 아닙니다

발행

이 글은 코딩 에이전트가 코드 리뷰의 여러 기능을 대신할 수 있다는 주장이 리뷰를 결함 탐지로만 좁혀 본다고 비판합니다. 리뷰에는 변경의 필요성을 따지고, 코드에 빠진 요소를 찾고, 조직 맥락을 반영하며, 팀의 이해와 책임을 함께 형성하는 역할도 있다고 설명합니다.

Tor에서 직접 웹사이트 호스팅하기

발행

정적 사이트를 Tor onion service로 공개하는 설정과 배포 과정을 소개합니다. Tor가 서버 IP와 인증서 없이 연결을 암호화하지만, 느린 응답을 고려해 사이트를 별도로 빌드하고 요청 수를 줄여야 합니다.

바이너리 패킹은 생각보다 재미있습니다

발행

JSON 저장을 줄이려다 직접 바이너리 포맷과 스키마 언어, 컴파일러를 만든 과정을 설명합니다. 작성자는 varint와 필드 번호를 조합한 인코딩, JSON 동적 패킹, C·Python 코드 생성을 구현했으며, 예시 데이터 크기를 401바이트에서 80바이트로 줄였다고 보고합니다.

외부 서비스에 비용을 지불하는 AI 에이전트를 만들고 있나요?

발행

Timbro를 만드는 게시자가 에이전트의 외부 구매에서 결제 승인과 납품 실패를 어떻게 처리하는지 묻고, 250달러 데이터 구매를 체험하는 모의 샌드박스를 공개했습니다. 댓글에서는 납품 검증, 중복 결제 방지, 사람의 지출 승인 같은 운영 사례가 나왔지만, 낯선 제공자에게 반복 결제하는 수요와 별도 에스크로의 필요성은 아직 확인되지 않았습니다.

Fakecloud: 통합 테스트용 로컬 AWS 에뮬레이터

발행

Fakecloud는 일반 AWS SDK와 CLI를 localhost에 연결해 여러 AWS 서비스를 로컬에서 시험하는 에뮬레이터입니다. 제작자는 46개 서비스의 완전한 API 적합성을 주장하지만, Hacker News에서는 DynamoDB 테스트에서 다수의 실패가 보고돼 실제 호환성을 확인해야 한다는 지적이 나왔습니다.

LLM 정책: 대가를 따지지 않는 진보

발행

GNOME과 KDE의 LLM 기여 정책 논쟁을 계기로, 글쓴이는 자유·오픈소스 소프트웨어(FLOSS)의 목적이 결과물의 완성도를 높이는 데만 있는지 묻습니다. LLM이 멘토링과 협업을 밀어내고 사회적·환경적 비용을 가릴 수 있다고 비판하며, 프로젝트마다 원칙을 세워야 한다고 주장합니다.

Show HN: Lofi Cities — 브라우저에서 음악을 생성하는 픽셀 아트 도시의 밤

발행

Lofi Cities는 여러 도시의 픽셀 아트 야경과 도시 소리를 보여주고, Web Audio API로 브라우저에서 음악을 실시간 생성하는 웹 앱입니다. 오프라인 재생과 OBS 배경 사용도 지원하며, AI로 만든 이미지와 영상 루프를 두고 커뮤니티에서는 미술의 완성도와 AI 활용을 논의했습니다.

p5.js로 GPU 프로그래밍 가르치기 — 컴퓨트 셰이더까지

발행

p5.js의 셰이더 시스템 p5.strands가 컴퓨트 셰이더까지 확장됩니다. 익숙한 JavaScript 문법으로 픽셀 필터와 정점 변형부터 GPU 병렬 연산까지 단계적으로 익히며, 글에서는 WebGPU로 보이드(boids) 1만 개를 실행한 사례도 소개합니다.

AI 문서화 안내서: 모델 카드부터 평가 보고서와 에이전트 카드까지

발행

AI 시스템은 같은 입력에도 다른 결과를 내므로 코드만으로 동작을 설명하기 어렵습니다. 이 글은 학습 데이터, 평가 방법, 허용된 행동, 실제 실행 기록이라는 네 가지 질문을 중심으로 모델 카드와 평가 보고서, 에이전트 카드 등 AI 문서 유형을 정리합니다.

Go 코드를 GitHub에 종속시키지 마세요

발행

Go 패키지 경로에 GitHub 같은 호스팅 주소를 직접 쓰면 저장소 이전 때 import 경로도 바꿔야 합니다. 글쓴이는 자체 도메인과 Go 메타 태그를 사용해 경로를 고정하고, 뒤에서 연결할 Git 호스팅 서비스를 바꾸는 방법을 소개합니다.

설명할 수 없는 실패가 일상이 되는 문제

발행

글은 AI 모델 Jev의 확률 점수와 빠른 도입을 예로 들어, 평가 데이터와 검증 없이 AI를 제품에 넣으면 실패 원인을 추적하기 어려워진다고 지적합니다. 저자는 LLM 개발로 실패가 늘어나는 것보다 “그냥 안 된다”는 말로 조사를 끝내는 태도가 보편화되는 일을 우려합니다.

postmarketOS, 새 이름 ‘Nura’ 공개

발행

postmarketOS가 1년 반의 이름 선정 과정을 거쳐 Nura로 이름을 바꿉니다. 팀은 기존 이름의 발음·표기 어려움과 프로젝트 범위를 제한하는 문제를 이유로 들었으며, 로고를 다듬고 사용자에게 보이는 문자열도 차례로 변경할 예정입니다.

AI는 충분히 똑똑합니다. 멈춰야 할 때도 알까요?

발행

AI가 할 수 있는 일과 해도 되는 일, 실제로 해야 하는 일을 구분하고, 근거가 부족하거나 이상 징후가 보이면 멈추고 사람에게 묻는 협업 방식을 설명합니다. 작성자는 명시적 규칙과 AI의 판단을 함께 쓰되, 관찰하지 못한 내부 작동 원리는 안다고 주장하지 않습니다.

LuaRocks 보안 사고: LuaJIT 바이트코드로 서버 원격 코드 실행

발행

LuaRocks.org가 LuaJIT 바이트코드를 일반 Lua 소스처럼 불러오는 취약점으로 원격 코드 실행 공격을 받았습니다. 운영자는 서버를 교체하고 자격 증명을 폐기했으며, 기존 패키지 변조 흔적은 찾지 못했다고 밝혔습니다. 이용자는 API 키를 재발급하고 비밀번호와 2단계 인증을 다시 설정해야 합니다.