"One of the nice things about getting older is that you come to understand that you can integrate multiple aspects of your life together. When you're young, you think everything has to be binary, as that's exactly how you feel at that age".
- Min Jin Lee

Hugo + pagefind 붙여서 검색기능 추가했다


https://pagefind.app/

페이지 생성시에 인덱싱하고 그걸로 웹브라우저내에서 js으로 검색하는 pagefind을 붙여봤다.

처음엔 좀 어색했는데, 커스터마이징을 별로 제공하지 않기는 했지만, 그래도 이것저것 뜯어서 CSS도 마음에 들게 좀 수정하고, JS/DOM 이벤트도 적당히 잡아서 마음에 들게 동작하게 고쳤다.

별로라고 생각하던 부분들도 다 뜯어 고치고 하면서 더 블로그가 마음에 들어진다. 🤠

css, design 새단장 + dark-mode


css 더 단순하게 만들고, 디자인들도 그냥 내 마음에 들게 뜯어 고침. 다크모드도 작업해서 만들어 넣고.

css 애니메이션도 작업해 넣었다가, gpu 너무 쓰는거 같아서 그냥 끄고 정적효과로만 냅둠.

hugo 같은 static site generator이 좋은 점, 그리고 그냥 단순한 css와 오래된 jquery으로 그냥 뚝딱거려서 작업.

data-driven programming & data-driven design & data-oriented programming ???


비슷한 용어들. 내가 이해한 정리들은 1:

data-driven programming

데이터처리를 중심으로 하는 프로그래밍언어나 도구, 스타일.

예를 들어, awk, perl은 입력의 패턴에 따라 코드를 나누고 출력을 만들기 수월한 방식을 제공.

data-oriented design

현대 cpu의 아키텍처에 적절하도록, cpu cache, simd등을 잘 적용될 수 있도록 애플리케이션 데이터구조를 설계하는 방식.2

그리고 단순히 게임개발에서 ecs만이 아니라 lmax disruptor등도 포함될 것 같다.

data-oriented programming

그리고 또 갑자기 위 2개의 정의처럼 완전 갑자기, dop은 다음과 같은 원칙들을 이용한 애플리케이션 개발방식:

xmake, compile_commands.json, flycheck


cmake/warp등을 써보면서 c/c++ 개발할 때에 빌드도구 갖고 놀다가, 이번에 마음을 열고 xmake을 익혀봄.

마음에 든다. 가볍고 빠르고 좋다.

ccache등도 바로 지원하고, lua으로 스크립팅도 그럭저럭 할만해 보이고, [build.zig](https://ziglang.org/learn/build-system/)스러워서 당연하게도 좋은거 같아.

계속 쓸거 같다.

emacs / flycheck + c/c++ 개발할 때에 단점이, 자동적으로 외부 3rd-party 라이브러리의 include-path을 설정해주지 않아서, [dirs-local](https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html) 같은걸 세팅해주길 기대한다는 점.

그래서 그냥 xmake project -vD -k compile_commands -m debug 같이 compile_commands.json 생성하고,

  1. 이걸 파싱해서 표준출력으로 include-paths https://github.com/ageldama/configs/blob/master/compile_commands_json_incdirs.py
  2. 현재 소스코드 버퍼 기준으로 가장 가까운 compile_commands.json 파일 위치 찾는 elisp 함수 https://github.com/ageldama/configs/blob/master/emacs/elisp/compcmdsjson-tiny.el
  3. 위 (1)+(2)을 조합해서 flycheck을 위한 변수 1 들을 설정하는 elisp 함수 https://github.com/ageldama/configs/blob/master/emacs/elisp/flycheck-compcmdsjson.el
  4. 그리고 위 (3)을 c/c++-mode에 자동적으로 적용하고, 또 단축키도 만드는 elisp 코드 https://github.com/ageldama/configs/blob/master/emacs/feat/flycheck-compcmdsjson.el

…요렇게 만들어서 세팅해서 쓰니 편안.

공각기동대, 1995


가끔 다시 본다. 그리고 마지막 장면을 보면서 덕력이 폭발하면서 종종 그런 생각에 빠짐.

저런 시나리오를 쓴 사람은 어떤 기분이었을까 완전 쩐다.