November 2010
21 posts
다음 달의 목표
모름지기 사람은 여러 단계에서 앞으로의 삶을 준비해야 하는 법이다. 전체 인생 단계에서, 1년 단위, 한 달 단위, 1주 단위, 그리고 하루 단위까지 그 단계는 준비의 정도와 그 길이에 따라 천차만별일 것이다. 인생 단계에서의 준비는 딱히 누가 말하지 않아도 대부분의 사람들은 어느 정도 인식하고 있을테니 (실은 나도 고민하는 문제이기도 하고) 생략하고, 나머지 얘기만 좀 해 보자.
나 같은 경우 하루를 시작할 때1 개인 위키에 정리해 놓은 할 일들을 보고, 오늘 해야 할 일을 대강 정리한 뒤에 연구실로 출근한다. 직장 같은 것과는 달리 해야 할 일이 꽤 유연하게 돌아가는 터라 이렇게라도 마음을 정해 두지 않으면 분명 놀게 되더라(물론 직장에서 안 놀지는 않았다만). 1주일 단위의 준비는 본래는 하지...
프로그래밍 언어를 설계한다는 것
공부하는 겸 만드는 거면 아무래도 상관 없지만, 현실적으로 프로그래밍 언어를 만들려면 그게 다른 언어랑 비교했을 때 무슨 장점을 가지는가에 대해서 숙고할 필요가 있다.
학계에서 만들어지는 양산형 연구용 언어들은 보통 정확히 한 가지 특출난 기능을 가진 것이 보통인데, 이런 언어들은 해당하는 기능에 대해서는 분명 특출나지만 다른 것들은 구려서 사용하기는 어려운 것들이 꽤 있다. 반대로 업계에서 필요에 따라 만들어지는 언어들은 유명하면 유명할 수록 특출나지 않는 경우가 많은데, 이는 학계에서 연구되는 새로운 기능들과 개념들이 잘 다듬어지지 않은 건 둘째치더라도(사실 모르는 경우가 더 많지) 여러 개의 서로 상충될 수 있는 기능을 조율하다 보면 특출난 기능들이 점차 깎여 나가기 때문에 그런 것이다. 어느 쪽이...
Clues to Stubborn Secret in C.I.A.'s Backyard →
미국 CIA 뒷마당에 Kryptos라고, 암호문이 적혀 있는 두루마기 모양의 청동상이 있다. 이 암호문은 크게 네 부분으로 나뉘어 있는데 첫 세 부분(각각 K1~K3이라 부름)은 1990년에 설치된 이후 몇 년 안에 풀렸지만1 마지막 부분(K4)은 전혀 풀리지 않았다. 원래 이것 저것 많이 보는 성격이라 이 쪽도 좀 알아 봤는데 최근 몇 년간 전혀 진전이 없는 걸 보고 이건 망했나 싶었는데, 바로 며칠 전에 이 청동상을 만든 짐 샌본(Jim Sanborn)이 20주년을 맞이하여 K4의 일부 글자의 대응을 공개했다! 덕택에 지금 야후 그룹은 제대로 들끓는 중이다.
혹시 Kryptos에 대해서 처음 들어 본 사람들을 위하여, K1~K4에 대해 알려진 것들을 대강 정리하면:
Kryptos 옆에 모스 부호로...
아는 후배랑 저녁으로 파닭을 먹으면서 휴게실에서 EBS 다큐프라임 10부작으로 교육에 대한 내용이 나오는 걸 봤다. 원래 다큐멘터리나 뉴스 보는 걸 좋아하는 성격이라 (후배도 다르지 않으리라 본다) 먹으면서 별의별 얘기를 다 했는데, 마지막으로 둘이 동의했던 주제는 “이런 걸 논의할 장소가 필요하다”였다. 사실 파닭을 먹으면서 뭔가 얘기를 나눌 시간적인 여유도 있었고, 그러면서 앞의 TV에서는 이야기의 소재를 계속 던져 주고 있었기 때문에 얘기를 할 수 있던 것인데, 정작 이런 것들을 블로그나 그런 곳에 올리기 어렵다는 것이다. 어떻게든 기록을 해 둬야 하는데, 하는 아쉬움. 이런 아쉬움은 생각해 보면 이전에 랑데브 정모에 가서도 느낀 적이 있는데 그 때도 열심히 이야기를 하고 나서 그...
1 tag
ere2pcre
Yesterday someone asked me for a reasonable way to convert ereg* functions (which he had a lot) to pcre_* functions; while ereg* functions are a part of PHP for a long time, they are finally deprecated as of PHP 5.3.0 and it is time to move on. Unfortunately a quick search didn’t found some converter, so I made my own: ere2pcre.
ere2pcre is a drop-in replacement for ereg* functions. My...
나는 개인적으로 hg를 주로 사용하고 git는 필요할 때만 사용하는데, hg 사용자 입장에서 git가 부러운 점이 하나 있다면 구현체가 꽤 많다는 점이다. 본래 git 구현은 물론 C로 짜여져 있지만, Git#이나 JGit처럼 별도의 구현체도 존재할 뿐만 아니라 hg용 hg-git 플러그인까지 존재하고 있다. 때문에 git를 다른 곳에 임베딩하거나 갖다 쓰기가 비교적 수월한 편인데, hg의 경우 내가 아는 한 파이썬 구현체 말고 다른 쓸만한 구현이 거의 존재하지 않는다. 물론 파이썬의 경우 Jython이나 IronPython 같은 것을 사용해서 돌리면 어떻게든 써 먹을 수는 있지만 한 단계를 더 거쳐야 해서 여러 가지 제약이 있을 수 밖에.
언젠가는 되어야 할 일이긴 한데, hg/git가 완벽하게...
DokuWiki-custom 2010-11-17 →
…이거 작업하다가 자정을 넘어서 또 다시 하루치 저널을 날려 먹었지만, 드디어 업데이트! DokuWiki 2010-11-07 기반이다. (rc 두 개를 넘긴 이유는… 첫 rc를 봤을 때 까먹고 갱신을 안 했는데 두번째 rc가 나오고 얼마 안 지나면 최종 릴리즈가 나오겠다 싶어서 + 귀찮아서이다. -_-;) 1년만의 정식 업데이트1여서 이것 저것 많이 고쳐야 하나 싶었는데, 템플릿 좀 많이 고쳐야 하는 거 빼고는 큰 문제가 없어서 다행이었다. 자, DWc 쓰는 여러분(있긴 한가?) 빨리 업데이트하세요~
사실 DWc는 정식 업데이트만을 잘 따라가는 편이라는 점을 생각해 보면… ↩
Romantic Binaries: 개발자 찬양 →
hongminhee:
[…] 이제 진짜 하고 싶은 얘기이다. 자칭 기획자라고 하는 사람들은 개발을 좀 공부했으면 한다. 개발자로서 커뮤니케이션이 불편해서 이런 얘기하는게 아니다. 나는 기획자와 일하지 않으므로 그런 불편은 없다—내가 속한 Lunant(야간개발팀)는 전원이 기획과 개발을 둘 다 한다. 자기가 만들 프로덕트를 스스로 프로토타이핑도 못한다면 제대로 된 프로덕트 디자인이 힘들기 때문이다. 프로토타입이라도 있어야 사람들에게 빠르고 정확한 피드백을 받는데, 언제까지 입으로 설명하고 다른 사람이 “어떤 것 같아요”라고 대답하는 소리를 들은 뒤에 저 말 중에 어디까지가 립서비스일까 하는 생각을 하며 복잡하게 일할 것인가. 프로토타이핑 직접 해서 보여준 다음에 그걸 어떻게 쓰나 옆에서...
텍스트 파일 포맷 옹호
요전에 플레인 텍스트를 옹호하는 이유에 대해서 글을 쓴 적이 있었는데, 비단 일반적인 글이 아니더라도 텍스트 기반 파일 포맷 역시 바이너리 파일 포맷에 비해 보통 많은 장점을 가진다. 에릭 레이몬드도 비슷한 글을 쓴 적이 있기도 하니 자세한 내용은 이 쪽을 보시고, 내 생각에 가장 중요한 장점은 애플리케이션이 사라졌거나 오동작할 때도 데이터를 어떻게든 뽑아 올 수 있다는 것이다. 나만 해도 몇 가지 사례를 가지고 있다:
옛날에 쓰던 핸드폰에서 주소록을 뽑아 와야 했는데, 전용 소프트웨어(EVER Communicator-_-)에서 데이터를 컴퓨터로 옮기긴 했지만 그걸 다시 현재 핸드폰으로 어찌 옮기느냐가 막막했다. 그런데 확인해 보니까 다행히도 CSV라서 어렵지 않게 확인할 수 있었다. 반면 옛 핸드폰에...
구글 인스턴트 프리뷰, 웹디자인 트렌드 바꿀 수도 →
나는 이런 종류의 글을 보면 울화통이 치밀어 오른다. 기본 웹 브라우저를 위한 사이트 외에도 장애인용 사이트, 모바일 웹 사이트(대부분의 m.으로 시작하는 도메인들), 검색 엔진 전용 사이트에 이어서 이제 인스턴트 프리뷰 전용 사이트를 만들 생각인 건가? 아예 모든 사용자에게 차별적인 사용자 인터페이스를 제공해 보시지. 접근성에 대한 개념이 없으면 사서 고생하게 마련이다.
VLC에서 SMI 자막 파싱 관련해서 좀 이상한 문제가 있다. 뭐… 문제가 이것만 있는 건 아닌데(UTF-16 못 읽는 게 가장 귀찮다), 이번 문제는 《그래도 마을은 돌아간다》 자막(페이티)의 첫 10분 정도가 아예 안 나오는 것이었다. 유심히 살펴 보다가 확인해 본 결과… SMI 파일 안에 이런 게 있었다. (필요한 부분만 발췌함)
<!--
주석 :
(Sync Start=679716)(P Class=KRCC)
시끄러, 이세 (ruby)에비(rt)(새우)(/rt)(/ruby)
-->
그리고 분명 주석인데도 불구하고 파싱을 하고 있었다! VLC는 내부적으로 자막을 순서대로 처리하는 것 같은데, 따라서 주석에 담긴 첫 자막이 나올 때까지 679.716초, 대강 11분...
날 자주 보는 사람은 알겠지만 난 항상 작은 가방(사실 작다고는 해도 어깨에 맬 수 있는 정도의 크기이다)을 들고 다니는데, 작은 가방에 들고 다니는 것들은 항상 정해져 있다. 지금 확인해 보니까 넷북, 넥원용 USB 케이블, USB 드라이브 몇 개, 반창고(?), 접는 우산 따위가 들어 있는데, 아마도 대부분 내가 의식하지 않고도 필요한 물건들을 모두 가지고 나갈 수 있도록 하려다 보니까 생긴 습관 같다. 실제로 아무 생각 없이 가방만 들고 나갔다가 비가 올 때 즉각 들어 있는 우산을 꺼내서 쓰고 하는 경우가 몇 번 있었다.
비슷한 의미에서 지갑에 들어 있는 것도 항상 정해져 있는데, 지갑에서 지폐를 넣는 칸이 두 개가 있는데 안쪽 칸에는 천원·오천원짜리 지폐를, 바깥쪽에는 만원·오만원짜리 지폐를...
CSS3 다단 모듈을 싫어하는 사람이 나만 있는진 잘 모르겠다. 본래 다단이라고 하는 것은, 한 번에 볼 수 있는 텍스트의 양을 가로로 줄인 뒤 그런 텍스트 묶음을 여러 개 나열해서 일단 편집이 가지고 있는 단점 — 목록같이 공백이 많을 때 종이의 낭비, 가로로 종횡무진 왔다 갔다 하는 시선의 분산 등 — 을 해결하려고 만든 것이다. 하지만 다단이 항상 좋다면 지금쯤 모든 인쇄물이 다단으로 있어야 할텐데, 그렇지 않은 이유는 다단이 너무 좁으면 옆 단의 텍스트가 함께 보여서 집중을 할 수 없게 되고 사실 이미 많은 출판물이 정확히 같은 크기의 단은 아니더라도 조판상의 이유로 여러 크기의 단을 사용하기 때문이다. 그럼 컴퓨터 화면은 어떤가? 컴퓨터 화면에서 다단을 쓰겠다는 것은 단의...
Vim과 vi, 그리고 그 인터페이스
이전 글에서 이어진다.
Vim, 아니 그 전신이 되는 vi가 왜 현재의 형태 — 4dd, c$ 같은 류의 조합 가능한 명령 — 를 가지게 되었는지는 좀 역사를 설명해야 한다. vi는 생각보다 오래 된 편집기인데 (1976년) 원래 vi의 전신인 ex는 사용자 인터페이스라 할 만한 것이 없는, 그러니까 ed 급의 명령줄 편집기였다(라고 말하기 전에 ex가 ed에서 나왔다). 명령줄 편집기라고 하는 것은, 그러니까 한 화면에 전체 텍스트가 나오는 게 아니라 :3,5p 처럼 직접 어디부터 어디까지 출력하라고 해야 출력이 되는(…) 웃기지도 않은 것이었다. 근데 이게 불편하기 짝이 없는지라 visual mode(:vi, Vim에서의 normal mode)가 추가되었는데, 이...
Vim에서 줄 번호 붙이기
동아리 메일링 리스트에서 Vim으로 현재 버퍼의 모든 줄에 줄 번호를 붙일 수 있는지 얘기가 나와서 조금 생각해 봤는데, 의외로 어려운 문제였다. 일단 답만 알고 싶다면 Stackoverflow을 보는 게 좋겠다.
Vim만 쓰는 방법으로 내가 처음에 생각했던 것은 다음과 같았다. 여기서 ^R과 ^M은 Ctrl-V를 누르고 각각 Ctrl-R/M을 눌러서 입력해야 한다.
:%norm i^R=line('.')^M. <엔터>
즉, 모든 줄(%)의 앞에서 삽입 모드로 들어간 뒤(norm i) 현재 줄의 번호(line('.'))를 커서 위치에 삽입(^R=...^M)하고, 그 뒤에 점과 공백을 입력하도록(.) 하는 것이다. 써 놓고 보면 사실 별게 아니긴 하지만 필요할 때 즉각 쳐 낼 수 있을...
아이폰이 일광절약시간 변경을 제대로 처리하지 못 하는 버그를 가지고 있다는 얘기에서 까야 할 대상은 아이폰이 아니라 일광절약시간이다. 아니, 일광절약시간이라고 부르기도 민망하다. 일광절약시간을 도입해서 얻는 이익에 대해서는 여전히 상당한 논란이 있으니까. 설령 이익이 있다 하더라도, 그 이익이 시각을 조정해서 얻는 다양한 문제들을 정당화할 수 있을 정도로 크다 할 수는 없다(링크한 위키백과 글을 참고하라).
사실 모든 시각·시간 정책이 아주 탄탄한 논리적 토대 위에서 만들어지는 것도 아니긴 하다. 대부분의 시간대는 역사적인 이유로 그렇게 정해졌고, 몇몇 시간대는 순전히 정치적인 이유로 그렇게 정해진 경우도 있다(대표적으로 중국의 단일 시간대 정책 — 물론 약간의 장점은 있겠지만). 한국...
October 2010
4 posts
조금 늦었지만, SAC OOPS 2011에 낸 논문이 accept되었다. 뭐 처음부터 항상 좋은 걸 기대할 수는 없지만, 리뷰들은 하나같이 내가 예상했던 모든 문제들을 공격하고 있고(…) 그러면서도 어째 점수는 어중간하게 줘서 accept가 된 것 같긴 한데(…) 일단 당장 해결할 수 있는 문제만 해결해서 수정본을 제출했으니 내년 3월까지는 잠깐 잊고 살아도 될 것 같긴 하다.
기본적으로 우리가 낸 논문은 부정하고 싶어도 implementation work에 약간의 아이디어를 추가한 것인데, 제목이 너무 포괄적이라고 지적한 리뷰어도 많았고 (결국 제목 고쳤다) 구현 치고는 실 사용례가 많지 않다는 것도 많이 지적받았는데 이건 시간이 없어서 못 한 거니까 어쩔 수 없다. 실 사용례...