목록개발/결과 (10)
비트와 자장가

(제가 만들었지만 정말 잘 만들었습니다) 한 달 전 투명한 창을 띄워 그림을 그리거나 글씨를 쓰는 맥용 앱을 만들기로 했습니다. 이전에도 필요해서 잠깐 생각했던 내용인데 창 투명화를 찾아보니 생각했던 것보다 복잡해서 접어둔 것이었습니다. 근데 갑자기 다시 해보고 싶은 생각이 들어서 시도해보니 어쩐지 의외로 간단했습니다. 오히려 당시 애를 먹었다고 생각했던 투명한 창보다는, 최적화와 투명창의 그림자 깨짐 문제 등 자잘한 것들을 해결하는 데에 대부분의 시간을 쏟았습니다. 특히 그림그리는 걸 벡터로 했고(굳이?), 지우개도 벡터 마스킹으로 해서(굳이?) 복잡해졌습니다. 사실 벡터로 했던 데에 딱히 이유가 있었던 건 아닌데, 하고 나니 좋은 점들이 있었습니다. 가볍다. CAShapeLayer를 사용했기 때문에 ..

가난한 셈틀체의 통계 후원 직후 텀블벅에서 제공한 통계를 보니 절대다수가 텀블벅 내에서 후원을 시작했던 것으로 기억합니다. itch.io와 섞인 기억의 오류일지도 모르겠습니다. (당시엔 어떤 링크를 타고 들어왔는지 제공했던 것 같은데, 개인정보 보호법으로 일정 기간이 지난 후 확인을 못하는 건 아닌지) 동화 속 세상이라면 가만히 있어도 텀블벅 이후에 옮겨간 itch.io에서 지속적인 수입이 있었겠지만 그 이후 세 개만 팔렸습니다. 구매 전환율을 따지기 이전에 itch.io에서 제공하는 유입통계를 보면, 사람들이 방문을 안 한다. 보통 일일방문횟수는 한 비트에 저장이 가능했던 것이죠. 그렇다면 저기 22일 이후 급격히 증가한 방문 수는 무엇일까요? (이제서야) 트위터 광고를 시작했기 때문입니다. 짜잔. 사..

텀블벅 비후원자를 대상으로도 셈틀체 구매가 가능해졌다. 중간중간 업데이트가 이뤄지겠지만 한글글꼴 프로젝트는 일단 종료. 결과물이 충분히 마음에 들었다. 처음부터 내가 사용하고자 만든 글꼴이었으니 우선 내가 잘 사용 중이다. 후원자 분들의 얘기를 들어보니 만족하신 듯하다. 애초에 취향이 닿은 사람들만 후원을 하지 않았을까. 아쉬웠던 점은 마땅한 홍보 매체가 없어 / 홍보 예산을 편성할 수가 없어 구매자의 대부분이 텀블벅을 돌아다니다가 발견했다는 것이다. 한글 글꼴이라는 특성상 킥스타터 같은 국제 플랫폼을 사용할 수가 없었다. 보다 대중성을 확보할 수 있는 프로젝트로 넘어가야겠다. <a href="https://eastriverlee.itch.io/semteulche" data-mce-href="htt..

프로그래머를 위한 고정폭 한글글꼴 중 마음에 드는 게 없어 내가 작년 여름에 만들었습니다. JetBrains Mono의 형태를 레퍼런스로 삼아, 내 생각에 최대한 잘 어울리는 한글 모양을 뽑아냈습니다. 가독성이 최고인 글꼴은 아니지만, 애초에 책임감 있는 프로그래머라면 한글을 웬만해선 쓰지 않으니 괜찮다고 생각했죠. 터미널에서 ls를 했을 때라든가 하는 특수한 상황에서, 한글이 영어 사이에 끼어있을 때 거슬리지 않는 것을 가장 큰 미덕으로 삼고 제작했습니다. 두 번째로 만든 글꼴이라 만들고 나서야 좀 제작툴에 익숙해져서, 그리고 굵기를 줄이는 게 가독성 향상에 더 도움이 될 것이라 믿어서, 심심할 때마다 가변variable폰트로 재제작 중이었는데, 이러다가 한세월만 보낼 것 같아 기존에 제작한 것을 먼저..

투두리스트 앱은 무척 많은데, 잡다한 기능들이 너무 많아 다들 쓰기가 불편했습니다. 그래서 스스로 사용하기 위해 본질에 충실한 투두 앱을 만들었습니다. '쉬운 거 만들자'로 시작했는데 어쩌다보니 하나도 안 쉽게 만들었습니다. 특히 아이클라우드 연동이랑 위젯 연동 방식이 참 지저분합니다(애플 API 탓). 중요한 건 아이디어보다도 구현이라는 믿음을 갖고 있습니다. 농담처럼 들리겠지만 정말 UX에 신경을 많이 썼습니다. 아이패드는 해당사항 없지만, 햅틱 피드백을 넣었다. 카카오 계열 앱들이 잘 사용하고 있는 마이크로인터랙션 중 하나로, 개발자들이 간과하기 쉽지만 있는 것과 없는 것의 차이는 매우 크다. 앱을 처음 열 때 투두리스트의 형태로 튜토리얼이 제공된다. 적힌 지시사항을 따르면 기본적인 사용법을 숙지하..

터미널 창을 여러 개 쓰다보면 (한 창만 쓰는 사람은 이해 못하겠지만...) 맥에서는 (리눅스에 비해) 창 전환이 좀 불편합니다--물론 윈도우즈는 논외로--. ⌘⇥(커맨드 탭)으로 앱을 전환하거나, ⌘`(커맨드 백틱)으로 동일 앱 내 창 전환을 하거나 iterm같은 앱의 자체 단축키를 이용하는 방법 뿐입니다. 이를테면 터미널과 웹페이지를 마우스 없이 왔다갔다 하기가 불편합니다. 검색과 코딩을 수시로 오가야 하는 플로우에서 방해가 아닐 수 없기 때문에 반 년 전 이 앱을 만들었습니다. 간단할 줄 알았지만, 공식적으로 지원하는 기능이 아니기에 많이 API를 우회해야 했습니다. 개발하는 동안 개척자가 된 기분을 느꼈죠... 놓아뒀다가 다시 다듬고, 이 참에 앱스토어에까지 올리려 했는데, 글로벌 키 인풋을 받는..

고도의 물리엔진을 갖고 이리저리 굴려보는 중인데 rigid body와 physical bones이 별개로 구현된 점이 무척 아쉽습니다. 사실을 말하자면 통탄스러울 정도였습니다. 너무 괴로워 유니티를 깔짝대던 중 유튜브 알고리즘이 하사한 twisted ik 2 플러그인을 만났습니다. 여차저차 해서 어쨋든 답을 찾았습니다. 이것이 세계 최초 고도로 만든 active ragdoll입니다.

CPU 멀티쓰레드로 BVH 같은 최적화 없이 실시간 (비스무리하게) 돌아가도록 만든 광선 추적기다. CPU 광선 추적기 실시간성(?)의 핵심은 다음과 같다: voidmulti_record(void) { pthread_tthread[THREAD]; unsigned longid; id = 0; while (id < THREAD) { if (pthread_create(&thread[id], NULL, thread_record, (void *)id)) quit(MALLOC); id++; } while (id--) pthread_join(thread[id], NULL); record_(screen, light, accumulated); } voidpress_key(void) { camera = camera_(se..