programming

7건
S sherliker.net

유니클로 티셔츠에 숨겨진 난독화된 배시 스크립트 해독하기

유니클로가 아카마이와 협업해 판매하는 티셔츠 뒷면에 난독화된 배시 스크립트가 인쇄되어 있어 화제다. 이 스크립트는 base64로 인코딩된 문자열을 eval 명령어로 실행하는 방식으로, 실제로 실행하면 'PEACE FOR ALL'이라는 메시지가 단말기 화면에서 움직이는 이스터 에그가 출력된다. OCR을 통해 코드를 추출하는 과정에서 오류 수정이 까다로웠지만, 최종적으로 완전한 문자열을 복원하는 데 성공했다. 같은 라인의 다른 디자인은 코드가 잘려 있어 실행이 불가능했지만, 이 티셔츠는 정상 작동하는 완전한 스크립트를 담고 있다.

289 pts 68 댓글 sherliker.net
O ocw.mit.edu

컴퓨터 프로그램의 구조와 해석 — 1986년 비디오 강의

MIT의 명강의 '컴퓨터 프로그램의 구조와 해석(SICP)'이 1986년, 할 애벌슨과 제럴드 제이 서스먼 교수가 진행한 20편의 비디오 강의로 공개됐다. 원래 휴렛팩커드 직원들을 위해 제작된 이 강의는 상업적 이용도 가능한 크리에이티브 커먼즈 라이선스로 제공된다. 강의는 리스프 언어를 기반으로 고차 프로시저, 스트림, 메타순환 평가기, 논리 프로그래밍, 레지스터 머신, 컴파일 및 가비지 컬렉션까지 폭넓게 다룬다. 1판(1985년) 교재를 따르지만, 2판(1996년) 학습자에게도 전체 주제와 구성이 동일해 유용하다.

201 pts 22 댓글 ocw.mit.edu
A anthonyhobday.com

소프트웨어 품질에 대한 노트

소프트웨어 품질이란 '문제가 없는 상태'를 의미하며, 완벽에 가까울수록 좋지만 완벽은 불가능하다는 게 핵심이다. 품질은 조직의 리더십과 문화에 크게 의존하며, 리더가 품질을 원하지 않으면 달성하기 어렵다. 규모가 커질수록 품질 유지는 더 어려워지며, 일정 규모 이상에서는 고품질 소프트웨어를 만드는 것이 사실상 불가능해진다. 저자는 품질이 상업적 성공에 필수는 아니지만, 장기적으로 브랜드 가치와 사용자 만족을 위해 이상적인 목표라고 강조한다.

137 pts 58 댓글 anthonyhobday.com
M manualmeida.dev

NoiseLang: N=5는 디랙 델타 함수다

텔레커뮤니케이션 학위 과정에서 신호와 잡음 수업을 들으며 확률 계산을 손으로 반복하던 저자가, 모든 값을 확률 분포로 취급하는 새로운 프로그래밍 언어 'NoiseLang'을 개발했다. 이 언어에서 상수 5는 디랙 델타(단일 값에 모든 확률이 집중된 분포)이며, 변수는 항상 같은 노드를 가리키므로 X + X는 2X, X - X는 정확히 0이 된다. 독립적인 난수가 필요하면 '~' 연산자를 여러 번 사용하며, 실제 계산은 P(X + Y < 10) 같은 질의가 들어올 때만 수백만 번의 몬테카를로 시뮬레이션을 실행해 표준 오차와 함께 결과를 반환한다. 9년간 미완성으로 남아 있던 이 프로젝트는 최근 AI 도구(특히 JIT 컴파일러와 수치 연산 부분)의 도움으로 컴파일러, Cranelift 기반 JIT, WASM 백엔드를 갖춘 본격적인 버전으로 재탄생했다.

4 pts 1 댓글 manualmeida.dev
G gracefulliberty.com

스킴은 정말 재미있어

한 개발자가 스킴(Scheme) 언어를 배우며 물리학 수업 개념을 구현하는 과정에서, 스킴 코드를 웹에서 실행할 수 있게 해주는 훌루트(Hoot) 도구를 활용하고 있다. 훌루트는 현재 버전 0.9.0으로 불안정하고 문서와 오류 메시지가 아쉽지만, WASM을 통해 스킴 코드를 웹에서 구동한 점은 큰 성과다. 초기에는 모든 귈(Guile) 프로그램을 컴파일할 수 있다고 착각했지만, 실제로는 함수를 훌루트 버전으로 포팅하고 수동 임포트가 필요했다. 현재는 네이티브 귈과 WASM 환경 모두에서 코드가 작동하도록 설정했으며, 대부분의 코드가 두 환경에 무관하게 동작한다. 앞으로는 지그(Zig)와 스킴을 결합한 프로그램도 훌루트로 웹에 컴파일할 수 있을지 실험해보고 싶다고 밝혔다.

84 pts 14 댓글 gracefulliberty.com
P pluralistic.net

오늘 할 일과 '쌓여가는 작업'의 차이

숙련된 프로그래머들 사이에서 AI 코딩 도구에 대한 평가가 극명하게 갈리는 이유는, 그들이 실제로 완전히 다른 작업을 하고 있기 때문이다. 전자는 자신의 판단 아래 AI를 도구로 활용하는 '센타우르'인 반면, 후자는 AI 시스템의 주변기기로 전락한 '리버스 센타우르'여서다. '바이브 코딩' 역시 개인이 직접 유용한 도구를 만드는 셸 스크립팅이나 하이퍼카드의 연장선이 될 수 있지만, 기업이 생산 코드에 무분별하게 도입하면 막대한 기술 부채를 남기는 재앙이 될 수 있다. 핵심은 같은 기술이라도 개인을 위한 '오늘의 작업'인지, 조직의 부채로 전가되는 '쌓여가는 작업'인지에 따라 결과가 완전히 달라진다는 점이다.

58 pts 36 댓글 pluralistic.net
I ieee.org

IEEE, 대규모 언어 모델 교육 과정 출시

IEEE가 엔지니어와 기술 전문가를 대상으로 한 대규모 언어 모델(LLM) 교육 과정을 새롭게 선보였다. 이 과정은 LLM의 기초 개념부터 실제 응용까지 다루며, 참가자들은 제미나이와 같은 최신 모델을 활용한 실습을 경험할 수 있다. 특히 배시(Bash) 환경에서의 모델 배포 및 최적화 기법도 포함되어 있어 실무에 바로 적용 가능한 내용으로 구성됐다. IEEE 스펙트럼은 이 과정이 AI 기술의 급속한 발전에 맞춰 엔지니어들의 역량 강화를 돕기 위해 기획됐다고 밝혔다.

81 pts 10 댓글 ieee.org