전체 글 1508

웹 브라우저에서 플레이하는 JavaScript로 구현한 Qbasic Nibbles

웹 브라우저에서 플레이하는 JavaScript로 구현한 Qbasic Nibbleshttps://kimtg.github.io/nibbles.html QBasic Nibbles (1990) - HTML & JavaScriptSTANDARD HIGH RESOLUTION CGA / EGA / VGA MICROSOFT QBASICkimtg.github.io 왜 이름이 nibbles인가?nibble: n. 조금씩 물어뜯기, 한 번 물어뜯기《ɑt》; (물고기의) 입질; 〖컴퓨터〗 니블《¹∕₂바이트; 보통 4비트》한 줄을 반으로 쪼개 subpixel을 구현했다. (1/2 바이트) 80 x 25 화면에서 80 x 50을 구현. 언어유희가 들어갔다. 원본을 웹에서 즐기기: DOSBox SVN, CPU speed: 300..

Ai 덕에 속도가 빠른 프로그래밍 언어 구현이 쉬워졌다. 기존에는 속도를 내세워 julia가 나타났지만 이런 건 이제 경쟁력이 없다.

이번에 newLISP NEo, Arcadia N, Arcadia JIT 등을 구현하며 느꼈다. 과거에는 새로운 언어가 '속도'라는 타이틀을 얻기 위해 수년간의 컴파일러 엔지니어링과 런타임 최적화라는 높은 진입장벽을 넘어야 했지만, AI의 등장으로 그 해자(Moat)가 급격히 무너지고 있습니다.지금 언어 생태계에서 일어나고 있는 변화를 몇 가지 핵심 축으로 정리해 볼 수 있습니다.1. VM 및 JIT 구현 난이도의 폭락 과거에는 AST 워킹 인터프리터를 하나 만든 뒤, 이를 바이트코드 VM으로 전환하고 다이렉트 스레딩(Direct-threading/Computed goto)이나 NaN-boxing, 세대별 가비지 컬렉터(Generational GC) 등을 붙이는 작업이 고도의 시스템 프로그래밍 역량과 막대..

Programming 2026.10.16

프로그래밍 AI 테스트

racket을 newLISP로 변환하는 프로그래밍을 시켜 봤는데,(define) 변환에서Gemini는 lexical scoping을 잘 지켜냈고 (let 사용)grok, chatgpt는 그냥 set을 썼다. (global 변수) go 언어로 짜는 것도 시켜봤는데,Gemini가 가장 나았다. 역시 자사 제품이라 그런가? rand.Seed(time.Now().UnixNano()) 가 이제는 필요 없는데 grok은 하고 있었고,grok은reader := bufio.NewReader(os.Stdin)line, err := reader.ReadString('\n')라서 windows에서 \r이 남는 문제가 있다.indent도 go 표준인 8칸으로 표시한 것은 Gemini이다. 모두 tab을 사용하기는 했다.

Programming 2026.09.23

프로그래밍 언어들의 단점

프로그래밍 언어들의 단점 C: 너무 저수준(특히 string) C++: 헤더 컴파일이 느리다. HTTP 등 라이브러리 사용이 어렵다. C#: 배포가 어렵다. Java: 명령줄 실행이 번거롭다(java a.class) Go: 에러 처리가 불편하다. Rust: random이 내장이 아니다. Common Lisp: Lisp-2 Common Lisp, Julia: read-line이 console EOF 감지 못 한다. Racket: read-line이 windows에서 \r 포함 반환, 시작 속도 느리다. docstring이 없다. Clojure: 시작 속도가 느리다. Java 번거롭다. Common Lisp, Clojure: define이 없어서 lexical variable 만들 때 let 블록 계속 만들..

Programming 2026.09.22

클로드가 분석한 워뇨띠

클로드가 분석한 워뇨띠https://claude.ai/artifact/BkaedcLgzyMdHazrSDqqa5 3,537 BTC의 기록BitMEX 실계좌 체결 데이터 144만 건을 재구성해 승률·보유시간·메이커비율·포지션 규모별 성과를 분석하고, 이를 근거로 자동매매 전략 골격을 제안하는 리포트claude.ai메이커(지정가) 우선 체결메이커 비율 80% 이상 거래는 승률 86.7%·거래당 +1.60 BTC, 테이커 위주 거래는 승률 72.4%·거래당 +0.11 BTC에 그쳤습니다. 진입/청산 모두 지정가로 먼저 시도하고, 일정 시간(예: 수 초~수십 초) 내 미체결 시에만 시장가로 전환하는 로직을 기본값으로 둘 것.메이커위주 승률 86.7% vs 테이커위주 72.4% TRADE LOG ANALYSIS ·..

Finance 2026.09.22

xff, xd8, xff, xe1으로 시작하는 그림 파일 형식은

xff, xd8, xff, xe1 (16진수 FF D8 FF E1)로 시작하는 그림 파일 형식은 JPEG (Exif 정보 포함)입니다.세부 매직 넘버 설명FF D8: JPEG 파일의 시작을 알리는 SOI (Start of Image) 마커입니다.FF E1: 카메라 및 기기 정보, 촬영 일시, 위치(GPS) 등의 Exif(Exchangeable Image File Format) 메타데이터 영역이 포함되어 있음을 나타내는 APP1 마커입니다.일반적인 JPEG 파일은 FF D8 FF E0 (JFIF 메타데이터)로 시작하는 경우가 많지만, 디지털카메라나 스마트폰으로 촬영한 사진은 Exif 정보가 기록되어 FF D8 FF E1로 시작합니다.

Computer 2026.09.21

C++, Julia, C#, Common Lisp 성능 비교 (Antigravity 이용)

Antigravity라는 코딩 툴로 코딩 뿐만 아니라 이런 성능 비교 실험도 할 수 있다. (프로젝트를 생성할 필요도 없다.)귀찮은 코딩과 테스트를 툴이 해준다.Benchmark EnvironmentCPU: 12th Gen Intel(R) Core(TM) i5-12400F (6 Cores / 12 Threads)OS: Windows 11Compilers & Runtimes:C++: GCC 14.2.0 (-O3 -march=native) & Clang 19.1.7 (-O3 -march=native)Julia: Julia 1.12.7 (LLVM JIT)C#: .NET 10.0.12 (Release, RyuJIT)Common Lisp: Steel Bank Common Lisp (SBCL 2.6.4)Worklo..

Programming 2026.09.14