May 2012
4 posts
공통 디렉토리 레이아웃
컴퓨터를 십수년 정도 써 보면 내가 어떤 자료를 보존해야 하고 어떤 자료를 보존해야 하지 않을지, 그리고 어떤 식으로 디렉토리 레이아웃을 잡아서 관리해야 할지 감이 잡히게 마련이다. 물론 요즘은 그냥 파일 검색으로 웬만한 게 튀어 나오기 때문에 레이아웃에 크게 신경써야 할 필요는 없지만, 나 같이 여러 시스템을 오가면서 같은 자료를 다뤄야 하거나, 아니면 해당 파일의 맥락(같은 디렉토리에 다른 파일이 뭐가 있는가, 같은)이 필요할 때는 여전히 디렉토리 레이아웃이 유용하다.
혹시나 필요할 사람이 있을까 싶어서 내가 사용하고 있는 디렉토리 레이아웃을 간략히 요약해 보기로 한다. 이 레이아웃은 윈도, 맥, 리눅스를 가리지 않고 사용하고 있으며 (다른 말로 하면 나는 모든 운영체제의 기본 디렉토리 레이아웃을...
나를 웹 상으로만 보아온 사람들이 나를 IRC나 오프라인에서 만나고 종종 깜짝 놀라곤 하는 것 중 하나가, 내가 사실 신실한 (것처럼 보이는) 기독교인이라는 점이다. 그리고 도대체 그 신앙적인 (것처럼 보이는) 성격이 논리적인 (것처럼 보이는) 성격과 어떻게 융합할 수 있는지 궁금해 하곤 한다.1 거기에 대한 내 대답은 대략 이랬다: 과학적임이 진실을 항상 보장하지는 않기 때문이다. 물론 과학적이지 않은 게 항상 진실이라는 보장 또한 없다만.
내 논지를 확실히 해 두기 위해서 내가 과학적이라고 부르는 것은 “과학적 방법론이나, 이 용어가 모호해서 싫다면, 환원주의적인 사고를 따라 정립된 것들”로 정의해 두기로 한다. 따라서 내 주장은 과학적 방법론이나 환원주의가 항상 진실을 가져다...
최근 글들을 잠깐 짬을 내어 읽어 보니 내가 주석을 과용하고 있는 게 아닌가 하는 생각이 든다. 주석이라 함은 본디 본 글에 속하지는 않으나 흥미로울 내용을 문맥에서 뜯어 내서 본래의 문맥을 훼손하지 않고 새로운 문맥을 주기 위한 장치이다. 그러나 그렇게 뜯어낸 문맥이 본래 문맥보다 더 커지면 문제가 크다. 나의 경우 괄호로 묶을 곁다리 수준의 내용이 두 문장을 넘으면 주석으로 옮기는 현상이 자주 일어나는데, 제대로 하려면 그러한 곁다리 내용을 어떻게 본래 문맥에 녹여낼지를 고민해야 하는 게 맞는 듯 하다. 게으르니까 생각의 흐름을 그냥 흘려 보내는 셈이다. 반성하자.
1 tag
무시당하는 이념, 보답받지 못하는 노력
최근 자유 및 오픈 소스 소프트웨어 동네를 여기 저기 둘러 다니면서 느끼는 점이 두 가지 있다. 하나는 GPL은 너무 순진했다는 점이랑, 다른 하나는 노력이 제대로 보답받는 경우는 (언제나 그렇지만) 드물다는 점이다. 그리고 둘 다 공통적으로 드러나는 악의 축 기업이 하나 있다.
너무 순진한 GPL
GPL의 기본적인 아이디어는 “이 소프트웨어를 쓸 때 당신이 갖게 되는 자유를 다른 사람한테도 보장해야 한다”는 것이다. BSD 쪽에서야 그렇게 생각하지 않는 것 같지만, GPL 입장에서는 자기는 자유를 얻었는데 다른 사람한테 그 자유를 보장시키지 않는 경우를 근본부터 차단할 필요가 있음은 당연한 것이다. GPL이 순진했던 점은 그 다음인데, 보통 사람들은 이런 제약을 걸어 놓으면 그...
April 2012
1 post
리듬게임 인생 (3)
첫번째 글, 두번째 글에서 이어진다. 거의 1년동안 방치되어 있던 초안을 더 이상 이대로 방치해 둘 수 없다는 까닭으로(…좀 더 정확히는 저널을 지나치게 방치했다 싶어서) 써 놓은 부분까지 정리하고 올리기로 했다. 그러니까 원래 이번에 들어 가야 했을 이지투디제이는 다음 기회에
팝픈뮤직
코나미의 리듬게임 개발 역사는 크게 세 개로 나눌 수 있는데, 리듬게임이라는 장르 자체를 확립한 시기(1997~2002), 이어뮤즈먼트 서비스가 등장하며 플레이어별 서비스가 가능해진 시기(2002~2008), 그리고 인터넷과의 강력한 연계가 이루어진 시기(2008~현재)로 나눌 수 있다. 당연히 1997년에 처음 발매된 비트매니아와 1998년에 발매된 댄스 댄스 레볼루션은 첫 시기에 속하는데, 여기에 속하는...
March 2012
2 posts
회사에서 Redis 클라이언트를 써서 뭔가를 해야 할 일이 있었는데, 프로토콜이라고 할 것도 없는 것에 따로 라이브러리까지 필요한가 싶어서1 그냥 점심 시간 즈음에 짧게 구현해 보았다. 파이썬으로 에러 체크까지 포함해서 50줄. 매우 만족스럽다.
사실 깔려 있긴 한데 virtualenv 안쪽이라서 enable하기 귀찮았다. ↩
뭔가를 배우는 가장 좋은 방법은 그걸 절실하게 필요로 할 상황을 만드는 것이다. 그럼 자기가 원하지 않아도 자동으로 그걸 배우게 될 것이다. 한 가지 단점은 그렇게 한다고 그 상황이 해결된다는 보장은 없다는 것.
최근 열흘 정도 동안 짬짬이 파이썬, PHP, Sikuli, Swing, Mechanize, SQLite, qmail(??), 그리고 크로뮴(???????)이 섞여 있는 기괴한 프로그램을 아는 사람들과 함께 짜다가 돌발 변수로 프로젝트가 반쯤 접혔는데, 덕분에 Sikuli와 qmail 소스는 정말 거하게 봤으나 프로젝트가 접히는 걸 막을 수는 없었다. 그래서 생각난 얘기.
February 2012
2 posts
망할 놈의 집 (2)
어쩌다 보니까 대전에서의 생활을 마무리하고 다시 집에 얹혀서 살아야 하는 신세가 되었다. 실은 그게 최근 글을 못 쓰는 이유 중 하나인데(바쁘니까) 그건 뭐 그렇고, 집에 와서 느끼는 점이라고는 내가 최선이 아닌 차악을 선택했구나 하는 후회 뿐이다. 예전에 같은 제목의 글로 그 불만을 토로했건만 그다지 나아진 건 없다.
내가 만에 하나 자식을 가진다면, 만약 자식이 (내가 보기에) 바람직한 행동을 하지 않을 경우 나는 “그 일을 하지 말라”라는 고압적인 지시보다는 (좀 자신이 없긴 해도) “그 일을 하면 어떤 일이 생길까?”라는 토론을 할 작정이다. 이를테면, 왜 횡단보도에서 신호를 지켜야 하는가? “지켜야 하니까”라는 답변은 전혀 쓸모가...
January 2012
5 posts
요즘 허구한 날에 “학력 인증”을 하겠다고 덤벼드는 일이 잦은데, 그 양상은 크게 둘로 나눌 수 있다. 하나는 그 대상이 (가짜의) 학력을 내세워서 이런 저런 이득을 취했을 것이라고 “추정”하여 인증을 시도하는 것이고, 다른 하나는 그 대상이 그 말을 할 자격이 있는 권위자(authority)인지 알고자 하는 것이다. 전자의 대표적인 예로 타블로 사건이 있겠으며, 후자는 대중 매체에서 떠들어 대는 대부분의 학자들에 해당된다.
전자의 경우 모든 문제는 학력이 필요하지 않은 맥락에서 학력을 떠들어 대는 작자들 내지 그런 상황을 만드는 작자들에게 있다. 왜 타블로가 스탠포드 나온 게 중요한 건가? 어차피 스탠포드 나와서 그런 데 걸맞는 일을 하는 것도 아니고 (좀...
제로보드 4
내가 어제 제로보드 4 까는 트윗을 올렸는데 하루 사이에 리트윗이 100명을 넘었다. 워매… 무서워… 근데 이거 문맥이 없으면 왜 이러는지 이해하기 어려우니까 조금 더 자세히 얘기해 보자.
사건
그제와 어제 학교 내 리눅스 머신 수십대가 루트킷에 감염되었다는 것이 확인되어서 하루 내내 홍역을 치뤘다. 이 루트킷은 (다행인지 불행인지) 동일한 공격자가 심어 놓은 것인데, 나중에 알려진 것들을 종합하면 대강 다음과 같은 경로로 전파된 것 같다.
웹 서버를 돌리는 몇몇 서버가 제로보드 취약점으로 웹셸이 뚫렸다.
웹셸은 보통 웹 서버 계정(www-data, www 등)으로 돌아 가지만, 추가적인 취약점을 사용해서 루트 권한을 얻을 수 있다.
이렇게 얻은 루트 권한을 가지고 SSH...
아… 근데 이 글 써 놓고 보니까 원래 내가 하고 싶은 얘기는 앙골모아 2.0 얘기가 아니라 2.0 작업 과정에서 알게 된 내용이었던 것 같다….
앙골모아는 옛날도 그렇고 지금도 그렇고 SDL에 크게 의존하고 있다. 그런데 SDL은 1.2.x가 나온 뒤로 기능 추가가 매우 느렸고, 심지어 명백한 버그도 잘 안 고쳐졌다. 앙골모아에서 발견할 수 있는 버그 중에서 실제로는 SDL 버그이거나 기능 부족으로 구현이 골때린 케이스는 다음 몇 가지가 있다:
샘플링 레이트가 44100/2k Hz 꼴이 아닌 WAV 파일들은 pitch가 어긋난다. 7년 전에 확인해 봤을 때 SDL의 오디오 서브시스템이 이 경우에 대해서 리샘플링을 안 해서 그런 거라는 결론을 내렸는데, 1.3.x 개발 버전에서는...
앙골모아 2.0
별로 도움이 되지 않는 것 같은 메아리 첫 페이지를 자주 보는 사람이라면 어제 희대의 이상한 BMS 플레이어 앙골모아가 갑자기 2.0 alpha 1을 찍었음(!)을 알 수 있을 것이다. 참고로 앙골모아는 2009년에 마지막으로 커밋을 했으니 3년만의 커밋인데(…), 저작권 연도를 보면 원래 개발을 2~3년에 한 번씩 한다는 매우 중요한 사실을 알 수 있다.
본래 앙골모아는 원래 코드를 줄일 요량으로 만들었으며(1.0-final이 15K1를 찍었음) 당연히 기능이고 뭐고 최소화한 프로그램이었지만, 어쩌다 보니까 쓸만한 크로스플랫폼 BMS 플레이어가 없는 상황이 계속 되다 보니까 실질적으로는 “최신”(이것도 웃긴게, “최신”이라고 하는 것이...
December 2011
1 post
월드 와이드 웹의 생일을 축하합니다 (또는, 성탄절 개명하기)
나는 나름대로 기독교인이라고 생각하면서도 성탄절이라는 날을 그렇게 좋아해 하지 않았다. 애당초 성탄절은 예수님의 탄생과 전혀 상관이 없는 날짜이기도 한데다가, 로마 제국에서 태양신(Sol Invictus)을 기념하는 축일이 전파된 것이라는 설도 있을 정도이다. 게다가 기독교에서 예수님의 탄생이 언제냐는 그다지 중요한 것이 아니며(예수님의 죽음 및 부활이라면 모를까), 설령 탄생일을 기념할 수 있다고 백발짝 양보하더라도 종교 중립적인 관점에서 종교와 상관 없는 국가 차원에서의 공휴일로 만들 이유는 없다. 차라리 크리스마스를 걷어 내고 한글날을 공휴일로 만드는 게 올바른 일일 것이다.
그러나 만약 성탄절이라는 날짜 자체를 포기하지 않은 채 성탄절을 기념하고 싶다면, 내가 생각하기에 가장 좋은 방법은 월드...
November 2011
2 posts
텀블러가 최근 접속이 전혀 되지 않아서 (그것도 *.tumblr.com은 되고 CNAME은 모두 맛이 가는 웃기지도 않는 상황인지라) 글을 전혀 올리지 못 했다. 아마 조만간 텀블러를 떠나든지 대체 수단을 마련하든지 어떻게든 할 것 같은데… 일단은 글 올리는 속도는 기대하지 마시길.
최근의 그 글에 대해서는 할 말이 굴뚝같이 많지만 말을 좀 아껴야 겠다. 지금 보니까 너무 길고 장황하다. 어중간한 운영이 운영을 안 하는 것보다 못하다는 점만 짚고 넘어 가기로 하자.
October 2011
5 posts
외래어와 외국어 →
neoocean: 포토스트림에 대한 해석.
[전략]
문제는 ‘포토스트림’이라는 이름입니다. 혹시 이 단어가 영어권 국가 사람들에게는 포토스트림의 작동 방식과 의미를 쉽사리 설명할 수 있었을지도 모릅니다. 하지만 포토스트림을 한국에서는 ‘사진 스트림’으로 번역했는데 이걸로는 포토스트림이 ‘사진첩’과 다른 속성이라는 사실을 전달 받기 어렵습니다. ‘스트림’이라는 말에 익숙한 사람은 십중팔구 개발자일 가능성이 높기도 합니다. 사실 잠깐 생각해서는 마땅한 표현을 생각해내지 못했지만 이 부분은 iOS5 출시 전에 좀 더 시간을 들여 고민했어야 하지 않았나 싶습니다. 이름만 적당히 지었어도 사람들이 포토스트림을 사진첩으로 인식해 정리하려고 시도하는 불행한 일은 훨씬 줄어들었을 겁니다.
이거...
가명과 필명의 차이
나는 내 실명을 공개하는 데 별 거부감을 느끼지 못 하는 사람 치고는 사용하는 필명1이 많은 편이다. 지금 주로 쓰는 lifthrasiir나 아라크넹 같은 이름 말고도 제한적으로 하지만 꾸준히 사용하는 필명(안타깝게도 여기서 말하기에는 좀 문제가 많은 게 있다)이나, 옛날에 아무 생각 없이 정했다가 지금은 묻혀버린 필명(문제의 ㅌㄲㄱ)까지 합하면 열 몇 개 정도 되는 것 같다.
내가 이렇게 필명이 많은 이유는 아무래도 상황에 맞춰서 새 필명을 만들기 때문인 게 강하다. 예를 들어서 프로그래밍을 할 때는 거의 대부분 lifthrasiir를 쓰고(옛날에는 이 역할을 ㅌㄲㄱ이 맡고 있었다), 좀 장난스런 글을 쓸 때는 아라크네/아라크넹을, 조용한 문맥(트위터 같이 글 별로 안 올리는 곳이나, 학술적인...
1 tag
Do Not Fall Back to UTF-8
Everyone knows that UTF-8 is now universal; it is so universal that a half of all webpages collected by Google is in UTF-8 by 2010. This success is certainly backed by an ASCII-compatibility (and thus, an ability to encode many Latin letters without further overheads) of UTF-8, which UTF-16 certainly does not have. But it does not mean that you can use UTF-8 for everything.
Case study: You are...
데니스 리치
이번 달 들어 이 동네 사람들이라면 누구나 알고 있을 법한 두 사람이 죽었다. 한 사람은 외신 베껴쓰기에 바쁜 국내 언론들이 열심히 치켜 세우고 있는 스티브 잡스요, 다른 한 사람은 그런 언론들이 관심 1그램도 주고 있지 않은 데니스 리치(Dennis Ritchie)이다. 팀 브레이가 그가 없었으면 일어나지 않았을 일들을 몇 개 요약해 놓았다.
데니스 리치는 사실 스티브 잡스보다 더 중요한 사람이다. 왜냐하면 그가 수십년 전에 (일부는 여러 사람과 함께) 만들었던 운영체제와 프로그래밍 언어가 세계를 장악하고 있기 때문이다. (모르는 사람을 위해: 각각 유닉스와 C.) 운영체제는 마이크로소프트 윈도의 도래로 그 세력이 좀 줄어들었다고 반론할 수는 있겠으나, 그 윈도조차도 결국 그가 만든 프로그래밍 언어로...
September 2011
2 posts
《그=그녀》
오랜만에(아마도 2년만에?) 《그=그녀》를 봤다. 아직도 완결이 안 났던가 이거….
내가 좋아하는 만화·애니메이션 분류는 크게 세 가지로 나뉘는데, 한 가지는 일상물이고, 다른 한 가지는 개그물이요, 마지막 하나는 일상물이자 개그물인 만화이다. 이 얘기인즉슨 나는 줄거리의 기복이 크면서도 개그 요소가 전혀 들어 있지 않은 만화를 특히 싫어한다1는 말이고, 덕택에 대부분의 “싸우는” 만화, 능력자 배틀, 그리고 거의 모든 극화를 보지 않는 편이다. 그러나 줄거리의 기복이 큰데도 개그 요소가 들어 있어서 재밌게 잘 보는 작품이 없지는 않은데 이 작품도 그 중 하나이다. 사실 작가 긴다이치 렌주로(金田一蓮十郎)가 《정글은 언제나 맑음 뒤 흐림》에서 보여 준 센스를 생각하면...
…귀찮다고 글 쓰기를 차일 피일 미뤘더니 한 달동안 아무 글도 쓰지 않았구나!!!
어떤 프로그래밍 언어를 배우는 가장 확실한 방법은 그 언어로 충분히 큰 프로그램을 (바닥부터) 짜 보는 것이다. 시간 대비 효과가 얼마나 되는지는 사람마다 다르긴 한데, 나 같은 경우 그 효과가 굉장히 확실하다. 물론 시간을 감당할 수 있을 때의 얘기지만.
C: 앙골모아. 정확히 말하면 C는 잘 알고 있었지만 C로 어디까지 기괴하게 만들 수 있는가를 테스트한 것에 가깝다.
C++: theseit. STL, Boost 모두 적극적으로 써 보고 적극적으로 쓴 맛(…)을 맛봤다.
D: Delight. D로 뭔가 짜 볼까 기웃거리고 있는데 어째 쓰려는 라이브러리마다 성에 차지 않아서 결국 새로 만들다가...
August 2011
4 posts
1 tag
반려동물
“잘못된 말의 사전” 시리즈를 시작하려고 한다. 옛날에도 이런 스타일의 글을 몇 개 쓴 적이 있어서 이 참에 기존 글에도 태그를 다 붙여 놓았다.
이전 글을 보면 알겠지만 나는 정치적으로 올바른 말 따위는 쓸모가 없다고 생각한다. 그럼에도 불구하고 “정치적으로 올바른 말을 쓰려는 시도”로 비칠 수 있는 시리즈를 시작하는 이유는 말을 까려는 게 아니라 그 말이 함의하는 개념을 까려는 것이다. 저 글에서 언급했듯, “낱말에 새로운 가치, 또는 의미를 부여하여 우리의 사고 방식을 바꾸려는 사람들이 끊이지 않”음에도 불구하고 그 시도는 까여야 마땅한 것이다. 만약 낱말이 그런 인위적인 과정 없이 자연스럽게 형성되었다면 내가 그 낱말을 여기서 다룰...
July 2011
5 posts
1 tag
Spelt Number to Decimal: 제작 일기
이번 주 초에 올린 Spelt Number to Decimal, 즉 “a hundred” 같은 걸 “100”으로 바꿔 주는 프로그램은 개인적으로는 나쁘지 않은 코드 골프였다고 생각한다. 사람들 반응도 이전 Brainfuck 인터프리터 때보다 더 좋고(음… 설명을 써 놓아서 그런 건가?) 이번에는 내가 직접 레딧에 올렸기 때문에 카르마도 적절히 획득하고(…) 코드에 대한 피드백도 이전보다는 좀 더 활발한 게 괜찮았다. 하나 아까운 점은, 처음 공개 뒤에 십 수 바이트를 줄일 수 있다는 걸 발견해서 후다닥 고쳐야 했다는 것이랄까.
보통 코드 골프 글은 (영어 아는 사람이라면 누구나 볼 수 있도록) 영어로 쓰는 경우가 많은데, 이번 프로그램의...
Snailiad →
근래 Kongregate에서 한 게임 중에서는 가장 괜찮았다고 생각한다. 댓글에 대놓고 “다 필요 없고 5/5 줘서 월간 베스트 게임으로 올리자”라는 얘기까지 나올 정도니… 자세한 건 직접 플레이해 보시라. 참고로 나는 맵 100%, 아이템 100% 클리어에 3시간 정도 걸렸으니까 다른 사람은 조금 덜 걸릴 거라고 생각한다.
그냥 단순하게 생각하면 좀 특이한(주인공이 달팽이라서 천장에도 붙어 다닐 수 있다는 정도?) 플랫포머인데, 이 게임의 진짜 특징은 쓸데 없이 많은 NPC에 있다. 리플레이할 이유를 만들기 위해서 비밀 장소가 굉장히 많은 편인데 (맵에서 구멍이 뚫려 있으면 대부분 그 자리에 뭔가 있다고 봐도 될 정도) NPC가 그 힌트를 아주 오묘하게, 하지만 적절한...
1 tag
Spelt Number to Decimal (Updated)
This post is last updated in 2011-07-11 13:20 UTC.
I certainly like a code obfuscation and golfing: the recent example includes this and this. The today’s project is more like the former, where very short code takes much time to explain. Without further ado, here it is: (Gist)
This little program reads a spelt number from the standard input and writes the corresponding number to...
1 tag
나는 GNOME/X/GNU/Linux를 쓴다.
흔히 “리눅스”라고 부르는 운영체제는 사실은 실체가 존재하지 않으며, 단지 “리눅스 커널”이라고 부르는 운영체제의 핵심적인(하지만 보통은 잘 안 보이는) 부분, 리눅스가 자유 소프트웨어가 된 동기를 제공해 주고 지금까지도 명령줄 인터페이스의 상당수를 담당하고 있는 GNU 프로젝트, 윈도 시스템을 제공하는 X, 그리고 이 모든 것 위에 통합된 그래픽 인터페이스와 애플리케이션을 구현한 GNOME으로 이루어져 있을 뿐이다. 이 네 가지 커다란 프로젝트는 윈도 같은 운영체제에서는 (한 회사 안에서 만들었으니) 밀접한 관계를 맺고 있지만 리눅스 계열 운영체제에서는 서로 필요에 따라 최소한의 관계만을 주고 받고 있을 뿐이다....
June 2011
4 posts
1 tag
IRC의 장단점 한 줄 요약
IRC의 좋은 점은 실시간 대화와 비실시간 대화를 섞을 수 있다는 거고
안 좋은 점은 사람들이 거기서 거기다... orz
1 tag
인터넷 보존주의자의 넋두리
나는 보존주의자이다. 다만 보통 보존주의자라고 말할 때는 역사적인 유물들의 보존 같은 걸 다루는 경우가 많은데, 나는 그런 쪽이 아니라 인터넷 상의 자료들에 더 관심을 많이 가지고 있다. 물론 역사적인 유물의 보존 또한 흥미진진한 주제이기는 하지만(《닥터 후》가 보존되는 과정을 보면 정말 경탄을 자아낼 수 밖에 없다), 아무래도 내 직업도 그렇고 인터넷 상의 자료가 가지고 있는 고유한 특징도 그렇고 해서 이 쪽에 좀 더 관심을 가지게 된 것 같다. 오늘은 이 얘기로 좀 길게 글을 써 보겠다(아 논문 써야 하는데).
보존의 중요성
물리적인 물건들과는 달리, 인터넷 상의 자료들은 무한히 복제가 가능하다. 따라서 인터넷 상의 자료가 사라지는 것은 물리적으로 그것을 담을 공간이 없어서가 아니라, 복제를 할...
리듬게임 인생 (2)
이전 글에서는 펌프잇업, 킥잇업, 캔뮤직 그리고 오투잼에 대한 얘기를 했었다. 예고한 대로 이번 글에서는 때마침 부흥하기 시작한 PC용 리듬게임들에 대해서 다루게 될 것이다.
디제이맥스
디제이맥스는 지금은 리듬게임을 거의 모르는 사람도 이름 정도는 들어 봤을 정도의 브랜드 가치를 자랑하고 있지만, 그 시작은 그다지 화려하지 않았다. 디제이맥스는 (후술할) 이지투디제이의 개발사인 어뮤즈월드의 병크짓으로부터 그 기원을 찾아 볼 수 있는데, 본래 이지투디제이의 온라인 게임 버전이 기획은 되었으나 실현은 되지 못 한 채로 회사의 지원이 점차 줄어들자, 개발팀이 모조리 퇴사해서 당시 기획을 바탕으로 새로운 온라인 리듬게임을 만든 것이 디제이맥스 온라인(이하 디맥온라인)이다. 물론 컨텐츠는 완전히 다르기 때문에...
May 2011
5 posts
"오랜 프로그래머로부터의 조언"
언제나 화제와 플레임을 뿌리고 다니는 Zed Shaw가 《파이썬 어렵게 배우기》라는 공짜 책을 쓴 적이 있다. 만약 당신이 프로그래밍을 전혀 모르고, 배우고 싶으며, 영어가 된다면(안타깝게도…) 꼭 읽길 추천한다. Zed Shaw는 이 책의 말미에서 “오랜 프로그래머로부터의 조언”이라는, 그러니까 프로그래밍을 어떻게 익혀야 할 지 이제 알겠고 프로그래밍을 계속 배우려고 하는데 이제 어째야 하나? 라는 질문에 대해서 자기 생각을 써 놓았는데, 이 글은 한국어로 번역될 가치가 충분히 있다 생각되어 번역을 해 보았다. 언제나 그렇듯 번역의 질은 보장하지 못 하고, 모든 오역은 내 책임이다(Zed의 문체 때문에 의역을 꽤 했긴 했다).
2011년 6월 1일 오후 5시 수정: 한...
일의 사분면
조금 생각해 봤는데, 나는 모든 일을 네 종류로 나누는 경향이 있는 것 같다: 직업이나 생활에 관계된 일과 그렇지 않은 것, 그리고 각 분류 내에서 주가 되는 일과 부가 되는 일들. 종종 성공을 위해서 “하고 싶은 일”과 “해야 하는 일”을 가지고 비슷하게 네 분류로 나누는 것도 볼 수 있는데 나는 성공을 위해 사는 사람이 아니라서 그렇게 나누지는 않는다(직업이라도 하고 싶은 일이 될 수 있고, 놀이라도 해야 하는 일이 될 수 있다). 각 분류에 속하는 일은 이를테면 다음과 같다:
직업에 관계된 주가 되는 일: (현재는) PL 연구.
직업에 관계된 부가 되는 일: 조교 일과 졸업을 위해서 들어야 하는 수업들.
직업에 관계 없는 주가 되는 일: 보통 삽질이라고...
꿈의 하드웨어
이 동네에서 유명한 사람들한테 무슨 하드웨어와 소프트웨어를 쓰는지(만!) 물어 보는 인터뷰인 The Setup에 보면 “당신이 원하는 꿈의 환경은 무엇인가”에 대해 묻는 란이 있다. 여기에 사람들이 답하는 걸 보면 참 재밌는데, 어떤 사람은 완벽한 사운드 시스템을 갖고 싶다고도 말하고, 어떤 사람은 모든 것이 네트워크 상에 있는 환경을 원한다라고 말하는가 하면, 꼭 컴퓨터만을 원하지는 않는 경우도 있다. 가끔씩 은근슬쩍 자기 의견이나 자기가 만든 제품을 집어 넣는 경우도 볼 수 있고, 아예 때려쳤다는 얘기도 보인다. 물론 이 인터뷰 중에서 가장 황당한 것은 아마도 _why의 답변이리라.
나의 경우 옛날에는 컴퓨팅 환경을 심각하게 많이 신경쓰는 편이었지만, (운영체제 3개를 함께 쓰는...
탈옥
전 국민의 1/4가 스마트폰을 가지고 있다는 요즘에 스마트폰 사용자가 아니더라도 한 번쯤은 들어 봤을 낱말이 “탈옥”(jailbreaking)이다. 모르는 사람을 위해 부연하자면, 대부분의 스마트폰을 비롯한 많은 전자기기에는 생산자가 의도치 않은 방법으로 장비가 사용되는 걸 방지하기 위해 여러 종류의 결계가 설정되어 있는데, 이 결계를 의도적으로 뚫어 쓰는 것이다. 생산자가 의도치 않은 방법이라고 하면 매우 안 좋은 것 같아 보이지만, 사실은 소프트웨어적으로 제한이 걸린 기능(인터페이스 변경이나 비공식적인 통로로 제공되는 앱의 사용 등)을 쓰기 위해서 탈옥을 하는 것이 보통이다. 물론 탈옥을 안 좋은 의도(불법적으로 유료 앱을 사용하는 것 등)로 쓰는 경우도 있으나, 탈옥을 한다고 해서...
Romantic Binaries: PyPy가 CPython보다 빠를 수 있는 이유 →
hongminhee:
PyPy 1.5가 나왔다. Python 프로그래머에게 있어서 이번 릴리즈의 가장 큰 의의는 아마 Python 2.7.1 호환성을 제공한다는 데에 있을 것이다. (이전 버전은 2.5 호환성을 제공했다. 반년도 안되어서 2.5 → 2.7.1로 호환성을 올린 것이니 참으로 괴물 같은 개발 속도라 할 수 있다.) 해외에서도 그렇고 LangDev 채널에서도 그렇고 PyPy에 관한 가장 흔한 질문은 이것이다: PyPy는 Python으로 Python을 구현한 건데 어떻게 CPython보다 빠르다는 겁니까? [후략]
PyPy가 취하는 접근 방법을 meta-tracing JIT라고 한다. 이건 두 종류의 접근 방법을 확장한 건데, 보통 JIT 컴파일을 할 때는 코드가 실행되기 얼마 전에 코드를...
April 2011
5 posts
github pages를 시험적으로 써 보려고 하고 있는데, 어째 .html은 잘 무시해 주면서 .ko.html이나 .en.html 같은 건 자동으로 무시를 안 해 주는 건지 모르겠다. 아파치 mod_negotiation 같은 것도 아니고… 그냥 .html을 무시하는 서버 옵션 하나만 달랑 있는 것 같다. 이 말을 다시 쓰면, foo.ko.html이나 뭐 그런 걸 쓰고 있는 경우 foo.html을 만들어서 foo.ko.html을 자동으로 읽어 오게 해야 한다는 것이다. 아주 안 될 일은 아닌데 (XHR로 긁어서 뿌려 주면…) 많이 귀찮다. 잘 되면 메아리를 github에 미러링하려고 했는데, 아직은 시기상조인듯.
리듬게임 인생 (1)
인생을 살면서 아직도 내가 왜 이 쪽에 꽂혔는지 도통 모를 것들이 몇 가지 있는데, 하나는 프로그래밍 언어이고 또 하나는 리듬게임이다. 프로그래밍 언어 얘기는 꽤 많이 얘기했었으니 이번엔 도대체 내가 왜 리듬게임을 (아직도) 하고 있는지 얘기해 보자.
펌프잇업
리듬게임을 시작한 것은, 내 생각이 맞다면, 펌프잇업이 처음 나올 때니까 1999년이다. 다른 말로 하면 내가 처음 웹사이트를 만든 때와 비슷하다. 만약 그 때의 허접한 웹사이트를 뒤져서 찾아 낼 근성과 운(크롤링되었을 확률이 적으므로)이 있다면, 당시 내 관심사가 펌프와 포켓몬스터라는 것을 알게 될 것이다. 왜 포켓몬스터에 대한 관심은 시들해지고 펌프에 대한 관심이 늘어났는지는 지금도 알 도리가 없다. 게임을 하기 위해 겪어야 하는 언어의...
메아리가 들어 있는 루리넷 서버가 속해 있는 네트워크 서브넷에 어제부터 굉장한 양의 DDoS 공격이 들어 오고 있어서 저널(은 텀블러…) 빼고 모든 사이트가 접속이 안 되고 있다. 상황을 조금 들었는데 보통 심각한 게 아닌 것 같아서1 일단 저널만이라도 살려 보자고 리소스를 모두 비트버킷으로 돌려 놓았다. logo.png가 동적으로 생성되기 때문에(…아 이거 버전 관리에 넣어야지) 로고 색깔이 잘못 나오고 있는 걸 빼면 잘 돌아 가는 것 같다. 하는 김에 나중에는 전체 사이트를 github에 넣어 볼까… 하는 생각을 했다가 mod_negotiation이 안 될 것 같아서 관두기로 한다.
2011년 4월 15일 현재 복구. 위에 있는 얘기보다 사정이 좀 더...
메아리에는 브라우저 언어 설정에 맞지 않는 페이지를 보면 해당 언어로 “이 문서는 해당 언어로 지원되지 않습니다”라고 알려 주는 기능이 있는데, 최근 연구실 컴퓨터에서 한국어 파이어폭스에 한국어 문서인데 저 메시지가 뜨는 걸 보고 수상하다 싶어서 확인해 보니까 navigator.language가 en-US였다(…). 조금 더 뒤져 보니까 사실 저 값은 언어 설정이 아니라 브라우저 빌드 언어이고1, 실제로는 Accept-Language 뿐만 아니라 거의 대부분의 HTTP request 헤더를 받아올 방법이 없어 보였다. (스택오버플로도 별 도움이 안 된다.)
…결국 이런 테스트를 해 보긴 했는데, 별 도움이 안 되는 것 같다. 기본적인 아이디어는 아파치...
줄임표
한글 맞춤법에서 줄임표(……)는 두 가지 맥락으로 쓰인다.
1) 말을 하다가 말 끝을 흐리는 경우 (“저기…….”)
2) 말이 보통 나올 자리에 실제로는 말이 없는 경우 (“왜 그랬어?” / “…….”)
그리고 맞춤법에는 용례가 없긴 하지만 실제로는 많이 쓰는 맥락이 두 개 더 있는데,
3) 말을 하다가 불가항력 때문에 말이 중단된 경우 (“지금 열차가 들어…….” / “스피커가 고장났나?”)
4) 원문에서 생략된 부분을 나타내는 경우 (“……. 그리하여 우리는 민족 중흥의 역사적 사명을 띠고 …….”)
나는 맥락 3과 맥락 4에 대해서 1, 2와 다른 부호를...
March 2011
4 posts
웹정체 도입
눈치채신 분도 계시겠지만, 2011년 4월 1일을 맞이하야 여러분의 향수를 자극하기 위해 메아리 전체 사이트 글꼴을 웹정체로 바꿉니다. 여기에는 여러 이유가 있는데:
작은 글씨임에도 획이 분명하여 보기 쉽습니다.
글자가 절대로 번져 보이지 않습니다. 일부 브라우저가 GPU 가속을 키면 글자가 번져 보인다고 불평하는데, 그건 브라우저 문제지 글꼴 문제가 아닙니다.
왠지 픽셀 단위로 디자인을 해야 할 것 같은 기분이 들어 가변 너비 디자인에 지나치게 관대해진 자기 자신을 다잡는데 도움이 됩니다.
인터넷 익스플로러라는 가장 큰 제약이 걸려 있던 옛날과는 달리, 지금은 모든 브라우저에서 이 아름다운 글꼴을 쓸 수 있습니다.
현재 인터넷 익스플로러 6, 9, 모질라 파이어폭스 4, 크롬 10, 사파리 5,...
일본에 지진이 난지 벌써 3주째인데 아직까지 원전 문제는 해결이 된 건지 마는 건지 알 수 없는 것 같다. (이 마당에 일본 바깥에서의 관심은 점차 줄어들고 있으니 참…) 하지만 이 사건의 책임은 원자력 발전에 있는 게 아니라 기본적으로는 원전 운영을 병맛으로 한 도쿄전력에 있는 것이니, 이번 사건을 두고 원전 반대를 하는 작자들은 정신 차리고 뭐가 우선순위인지를 제대로 생각해 봐야 할 것이다.
조금 더 길게 쓰면 이렇다: 원자력 발전이 이렇게 늘어난 이유는 (제대로 운영된다는 전제 하에) 다른 발전 방법들보다 외부 환경에 끼치는 영향이 적고, 그러면서도 상당한 전력 생산량을 뽑아 낼 수 있기 때문이다. 그러니까 원자력 발전을 정 못 하게 하고 싶으면 원전을 없애는 게 아니라 절전을 해야...
저널에 아무 것도 안 쓴 이유는 순전히 바빠서이다. 공식적으로는 다음주에 대만에 출몰하고, 다다음주는 시험, 다다다음주에 부산에 출몰한다. 대만에서는 영어로 쌩쑈를 해야 하고, 부산에서는 학생들한테 강의 하고 소화 잘 되는 고기를 쏴야 할 처지이다(…). 이런 와중에 의욕은 떨어지고 정신줄은 놓고 다녀서 문제인데, 슬럼프인지 영어의 부담감인지는 두고 봐야 할 듯.
그런 관계로 저널에 지금껏 쓰려다가 귀찮아서 말았던 것을 한 번에 토해내는 시간을 가지기로 하겠다.
게임 관련
요즘은 오락실은 잘 못 간다. 역시 학교 바깥으로 유배간 것이 한 몫 했다.
그런 와중에도 리플렉 비트 레벨 60 찍었음. 실력은 거지라서 그레이드는 아직 A2. 다음 해금까지 얼마나 걸릴지는 글쎄…
...