Big Bang

잡기 2009. 7. 22. 20:34
DDoS 공격 진원지로 몇몇 언론이 북한을 집더라. 입에 게거품을 물고 시장주의를 찬미하던 어떤 언론은 포이즌 필을 옹호하기도 했다. 콧방귀를 뀌었다. 마이클 잭슨이 사망했을 즈음에는 그런 언론더러, 'you are not 언론' 이라고 말하더라.

술 먹고 집에 가기 위해 늦은 시각 택시를 잡으러 도로변에 나왔다. 마침 비가 내려 일행을 먼저 택시에 태우려고 얼른 앞에 보냈는데 그들을 안 태우고 내 앞에 서서 나를 태운다. 택시 기사에게 왜 앞에 있는 사람들을 안 태우냐고 물으니 비 오는 날 우산 안 쓰고 있는 사람은 택시가 보통 태우지 않는단다. 밤새 영업해야 하는데 비맞은 사람 태우면 시트 젖고 냄새 밴다고. 내리자마자 승차거부로 다산 콜센터에 신고할까... 하다가 기사 양반 사연이 기구해 관뒀다: 얼마 전에 강도를 당했고, 저번 주 금요일 밤에는 택시 영업해서 번 돈 23만원을 털렸다. 억울해서 며칠 잠을 이루지 못했다고 말한다. 요즘은 다산 콜센터에 전화해 택시 번호를 알려주면 택시기사에게 상당한 불이익이 돌아간다고 한다. 그래서 승차거부에 관한 전화를 하지 않았다.

http://soulfly.tistory.com/entry/나의-남편은-개발자 -- '개발자들이 피고름 짜내고 각혈하고 팔 한쪽 잘라서 맞바꾸면서 '신화'를 만들어나간다는 이야기는 쌍팔년도 '신화창조의 비밀'에서나 통할 이야기다.'

인생은 선택이라고 믿는 좀 순진한 견해지 싶지만(만선의 기쁨 운운하는 것을 보니 내가 무슨 말을 하건 욕이 되진 않겠지), 개발자가 된 동기가 돈벌이인 사람들을 별로 만나보지 못했다.

요즘은 양심의 질량 얘기를 자주 했다. 한 번도 전체 스토리를 말한 적은 없었다.

사용자 삽입 이미지
휴대폰으로 찍으니 흡사 공포영화의 한 장면처럼 보이는데? 아이를 자전거에 태우고 행주산성에 갔다. 자전거에 아이를 태우고 처음 일반도로를 달릴 때는 신경이 곤두섰는데, 지금은 익숙해진 편. 서울의 도로사정이 뻔한데 일반도로에 아이 태우고 돌아다니는 건 정신나간 짓이지만.

사용자 삽입 이미지
정신나간 짓인 줄 알면서도 북한산성 탐방로 옆 골짜기에 아이를 태우고 갔다. 이번이 두 번째인데 아이가 꽤 좋아한다. 자전거 타면 집에서 채 30분이 걸리지 않는 거리에 고향에서나 보던 종류의 계곡이 있다.  

아이를 데리고 주말마다 여기저기 돌아다녔다. 비가 오면 비가 오는 대로... 덕택에 산행도 거의 못하고, 자전거도 별로 못 타서인지 뱃살만 늘었다. 아니 사실은 최근 몇 주 동안 자주 술을 마신 탓일께다. 허리를 수그리면 뱃살의 두께가 실감나게 느껴진다.

사용자 삽입 이미지
지하철 대피 개념도. 잘 그렸다. 개념사진이다.

OSM에 도로를 올리고 2주가 지났다. 서울 시내 도로를 정비하는데 많은 시간을 보냈다. 그리고 최소한 한국의 유명 산 트래킹 코스를 OSM에 시간나는 대로 넣어보려고 노력중이다. 북한산, 도봉산, 관악산, 설악산, 수리산, 청계산 코스를 어느 정도 만들었다. 여러 개의 GPS 트랙로그를 합쳐 올린 다음 편집하면 오차가 적어지지 않을까 생각했다. 아무튼 그중  북한산 및 도봉산 트래킹 코스는 그야말로 대작이다.

북한산 작업만 일주일이 걸렸다. 아는 지식이 일천하고 데이터가 부족해 능선 코스에 이름을 붙이지 못했다. 그래도 약도 수준의 paran 등산지도 보다 낫고 네이버, 다음 맵에는 없는 지도다. 많은 사람들이 참여해서 발전시켰으면 좋겠다.

'흐몽족에게는 미국이 좋아요. 여자애들은 대학에 가고 남자애들은 감옥에 가죠.' -- Gran Torino. 클린트 이스트우드 영화 치고 재미가 없었다.

닐 게이먼, 인터월드: 그저그런 애들용 동화. 별 감상 없다.

로버트 하인라인: 므두셀라의 아이들: '우주선은 대기권 재진입을 끝낸 다음 길고 단조로운 불완전연소 활강을 진행하는 중이었다.' -- 불완전 연소 활강? 그게 뭐지?

이해를 못 하시는군요. 저는 독자여서 어머니께서 계속 따라다니셨습니다. 저를 찾으시기 전에 돌아가야 합니다. 시간이 얼마나..."
"착륙선은 아무도 기다려주지 않습니다. 당신은 절대로 더 젊어지지 않을 거고요. 타십시오."
"하지만..."
"한심한 놈!"
젊은이는 라자러스가 시키는 대로 따르며 딱 한 번 걱정스러운 눈으로 비탈 쪽을 돌아보았다. 라자러스가 그 모습을 보며 생각했다 '체외수정에 대해서 논란이 참 많았지.'
체외수정이 마마보이를 만들었다는 근거없는 이야기. 아무래도 시대가 시대다 보니 므두셀라의 아이들에서 늘어놓는 과학기술 묘사는 고색창연하기 그지없었다.

"... 우주 전체에 인간이 코를 들이밀 수 없는 일은 있어선 안 되지. 우리는 그렇게 태어났고 거기에는 어떤 이유가 있다는 생각이 든다네."
"이유가 없을지도 모릅니다."
"맞아. 어쩌면 그냥 어마어마하게 규모가 큰 농담일지도 모르지. 아무 의미도 없는."
라자러스는 일어서서 기지개를 켠 다음 갈빗대를 긁었다.
"하지만 이건 말할 수 있네, 리비, 해답이 뭐건 간에 나무가 서 있는 한 계속 기어올라서 구경거리가 뭐 있나 하고 끝없이 둘러볼 원숭이 한 마리가 여기 있다는 사실 말이야."
하인라인은 원래 이랬다. 아니면 그 시절 SF가 전부 저랬던가. 역자후기에서 하인라인의 작품을  이렇게 말한다.

무지하고 단순하며 사실을 완전히 왜곡한다는 비난을 듣기로 작정하고, 사건의 전개 양상과 주제를 드러내는 방법에 따라 과학소설이라는 이름의 수평선을 그어보자. 선의 왼쪽에는 두뇌 중시형 주인공이 등장하며, 독자는 이쪽 작품들의 참맛을 알기 위해 지적 추리 능력과 사고력을 동원해야 한다. 반면 오른쪽 주인공들은 뛰고 날고 행동하며 독자들은 그들의 운명을 좇아 사건의 흐름에 집중하게 된다. 이렇게 단순하게 과학소설을 양분한다면 하인라인의 작품들은 단연코 우측에 몰려 있다.
내 취향은 그럼 중도좌파 모더니스트라고 해두지. '므두셀라의 아이들'은 옛날 SF답게 고리타분해서 '최신 유행'에 민감한 나같은 사람에겐 어울리지 않았다.

사용자 삽입 이미지
작전. 작전을 이렇게 말했다: "숨어있는 저평가주에 힘을 좀 실어주는 거지." 배우들이 많이 풋풋하지만 재밌게 봤다. 주변에서 보고 듣던 얘기들이라서 친근감마저. 배합을 매끄럽게 유지해 숨결대로 따라가기 편한 영화 였다. 캐릭터 구현도 좋았고 대사가 느끼하지 않았으며 메시지가 적당했다. 그런데 matching transaction이 사기인가?

사용자 삽입 이미지
아무래도 살인의 추억이 생각나는 장면. 한쪽에선 포대로 시체 말고 한쪽에서는 사회에서 흔히 볼 수 있는 두 개자식이 장 마감을 몇 분 앞두고 매도할지 말지 고민하고. 술자리에서 '작전'으로 이야기꽃을 피우다가 '하게타카'와 '남자 이야기'란 드라마를 추천받았다.

사용자 삽입 이미지

이끼. 매력적인 컷 분할. 졸지 않고 완샷에 읽어버린 만화.

사용자 삽입 이미지
Pineapple Express. "이게 바로 대마초의 미래야. 동시에 세 군데에 불을 붙여. 그럼 연기가 모여서 세 배의 효과를 낸다고 할 수 있지. 네 손자들은 이걸로 피울 꺼야." 저렴한 예산에, 되는대로 갖다 붙인 무의미한 스토리 라도 천사와 악마보다 재밌다. 보고 나면 남는게 없는 것이 진정한 주말 시간 때우기다.

사용자 삽입 이미지
도쿄 매그니튜드 8.0. '본 작품은 수도권에서의 거대 지진 발생을 가정하여, 방대한 리서치와 검증을 기반으로 제작된 픽션입니다.' 라고 말했다.  주인공 아이들이 어려서 앞으로의 내러티브를 우연과 운의 도움없이 제대로 이어갈 수 있을 지 의문이다. 그저 슬프고 가엾은 이야기라면 사실적으로 묘사한 대재앙의 의미가 퇴색하고 말 것이다.

사용자 삽입 이미지
천사와 악마. 제목이 참... 촌스럽다. 일루미나티 흉내내는 것들이(초반부터 사기란 걸 알아먹을 수 있을 정도로 한심한) CERN의 LHC에서 만든 반물질로 바티칸을 날려버릴 궁리를 한다는 설정  -- 안 그래도 영양가 없고 그저 생각만 해도 얼토당토 않고 정 떨어지는  소재. 원작은 얼마나 거지같은 지, 보지 않아 모르겠지만, 최소한 각본과 연출이 쓰레기 같아 왜 저 따위로 밖에 못 만들었을까 싶다. 그런데 주변에서 이 영화 본 사람들은 화살표를 다음 장소를 가르키며 간발의 차이로 지정한 장소에 찾아가는 이 영화가 다들 재밌다고 하던데? 그래서 안 그런 사람도 있다는 차원에서 적었다.

사이먼 싱, 빅뱅: 역시! 사이먼 싱의 글은 뭘 봐도 절대 실망하는 법이 없다. 이제까지 과학저술가들의 입을 빌어 알던 빅뱅을 대단히 생동감 넘치는 드라마로 바꿔 놓았다. 정말 재밌다. 첫장의 인용문: '우주를 이해하려는 노력은 이 삶을 코미디 수준보다 조금 높게 끌어올릴 수 있는 몇 안되는 일이다. 그리고 그것은 비극의 아름다움을 가져다주기도 한다' -- 스티븐 와인버그.

코메디는 이해하겠는데, 무슨 비극? 인생의 목적에 관한 독특한 견해도 들을 수 있었다. '아낙사고라스는 기원전 5세기 경에 살았던 급진적인 사상가로 인생의 목적은 "태양과 달 그리고 하늘을 연구하는 것"이어야 한다고 주장한 사람이다.'

책의 서장은 이렇게 시작한다.
  • 에라스토테네스가 시에네의 우물과 알렉산드리아에 세운 막대기를 이용해 지구의 둘레를 측정한 방법
  • 에라스토테네스가 지구와 달의 상대적인 크기를 월식을 이용해 측정한 방법
  • 에라스토테네스가 손톱을 이용해 달까지의 거리를 측정한 방법
  • 아리스타르쿠스가 반달일 때 태양과 지구가 직각을 이루는 것을 알고, 지구와 달 사이의 거리를 알고 태양과 지구의 거리를 측정한 방법
  • 그리고 지구와 태양과의 거리를 이용해 태양의 크기를 측정한 방법
이미 알만한 것들이지만 이렇게 설명을 명쾌하게 해내는 것이 글쟁이의 재주다. 그 다음 장도 마찬가지. 단조로운 사실 관계로 지루해질만한 글을, 발로 뛰면서 수집한 생생한 자료를 바탕으로 총기와 익살을 곁들여 드라마타이즈한다.
역사학자들은 Giordano Bruno가 별들이 각자 행성을 가지고 있고 다른 행성에도 생명체가 번성하고 있다고 한 '무한한 우주와 세상에 대하여 On the Infinite Universe and Worlds'라는 책을 쓴 것에 교회가 분노했을 것이라고 보고 있다. 브루노는 사형선고를 받았을 때 "아마 형을 선고하는 당신들이 형을 받는 나보다 더 큰 공포 속에 있을 것"이라고 말했다. 1600년 2월 17일 그는 로마의 캄포 데이 피오리로 옮겨져 발가벗겨진 후 화형당했다.
지오르다노 브루노는 내가 한 때 SF 단편을 쓰려고 했던 소재였다. 아울러 빅뱅에는 재치있는 농담꺼리가 즐비했다.
천문대로 운전해 가고 있던 천문학자가 도플러 효과를 이용해 경찰을 속이려 했다가 실패한 이야기가 있다. 붉은 신호등인데도 지나가다가 걸린 그 천문학자는 자신이 신호등을 향해 다가가고 있었기 때문에 청색편이가 일어나 붉은 신호등이 푸른 신호등으로 보였다고 주장했다. 경찰은 그 이야기를 받아들여 신호 위반 딱지를 취소했다. 그 대신 속도 위반 딱지를 떼고 벌금을 두 배로 물렸다. 붉은 신호등이 푸른 신호등으로 보일 정도의 도플러 편이가 일어나려면 그 천문학자는 시속 2억 킬로미터의 속도로 운전했을 것이기 때문이다.

우디 앨런의 영화 '애니 홀'에 나오는 한 장면을 떠올려 보자. 싱어 부인은 아들 앨비에게 우울증 증세가 있어 정신과 의사를 찾아갔다. 앨비는 의사에게 우주가 팽창하고 있다는 이야기를 읽었는데 그렇다면 주변의 모든 것도 팽창하여 결국은 모두 파괴되어 버리지 않겠느냐고 말한다. 그러자 싱어 부인이 끼어든다. "우주가 무슨 상관이란 말이냐? 우리는 브루클린에 살고 있어. 그리고 브루클린은 팽창하지 않아." 싱어 부인의 말이 확실히 옳다.

후테르만스는 외조부모 한 사람이 유대인이었다. 그래서 그는 때때로 반유대적인 말을 들으면 "당신 조상이 아직 나무 위에서 살고 있을 때 내 조상은 이미 수표를 위조하고 있었어" 라고 반격했다.

후테르만스는 자신과 앳킨슨이 별이 빛나는 이유를 밝혀줄 올바른 길을 가고 있다고 확신했고 자신들의 연구를 매우 자랑스러워했다. 그래서 여자 친구에게 자랑하지 않을 수 없었다. 그는 나중에 별 내부의 핵융합에 관한 연구 논문을 완성한 날 밤을 이렇게 회상했다.

그날밤, 논문을 완성하고 여자 친구와 산책을 나섰다. 어두워지자 별이 하나둘씩 아름답게 빛나기 시작했다. "별이 참 아름답지?" 여자 친구가 소리쳤다. 나는 가슴을 펴고 자랑스럽게 말했다. "난 어제부터 별이 왜 빛나는지 알게 됐어."

그의 여자 친구 카를로테 리펜슈탈은 확실히 감동 받았다. 나중에 그녀는 그와 결혼했다.
후테르만스의 여자 친구는 혹시 착각하지 않았을까?
과학자 대부분은 빅뱅에 관한 교황의 지지는 진지한 과학적 토론에서 인용되면 안 된다고 생각했다. 교황의 지지 발표 후 오래지 않아 빅뱅 지지자들을 당황스럽게 하는 반격이 시작되었다. 경쟁 이론인 정상우주론 지지자들이 교황의 연설을 빅뱅 모델을 모욕하는 데 이용하기 시작한 것이다. 예를 들면 영국 물리학자 Williamson Bonner는 빅뱅 이론은 기독교를 선전하려는 음모라고 주장했다. 프레드 호일 역시 빅뱅 이론은 기독교적 기반 위에 만들어진 이론이라고 신랄한 비판을 퍼부었다. 정상우주론자인 토머스 골드도 동조했다. 교황 비오12세가 빅뱅 이론을 지지했다는 소식을 들었을 때 골드의 반응은 짧았지만 정곡을 찌르는 것이었다. "교황은 정지해 있는 지구도 지지했었다."
읽다가 너무 웃겨 내려야 할 지하철역을 지나쳤다.
'마법의 용광로 The Magic Furnace'의 저자 Marcus Chown은 별 연금술의 중요성을 다음과 같이 묘사했다. "우리가 살기 위해서는 수십 억, 수백 억, 심지어는 수천 억 개의 별이 죽어야 한다. 우리 피 속에 있는 철, 뼈 속의 칼슘, 숨을 쉴 때마다 우리 폐를 채우는 산소는 모두 지구가 태어나기 훨씬 전에 죽어간 별의 용광로 속에서 만들어졌다."
 저번에 읽은 이언 뱅크스의 '다리'에서 이와 유사한 대목이 나왔다. 많은 사람들이 이 대목에서 아서 클라크의 단편 소설을 떠올릴 것이다. 이 다음 문단은 이랬다:
낭만주의자들은 자신들이 별의 먼지에서 만들어졌다고 생각하는 것을 좋아했다. 냉소적인 사람들은 자신들이 핵폐기물이라고 생각할지도 모른다.
적어도 나하고 커트 보네것은 후자였다.
오늘밤 밖으로 나가 모자를 벗고 머리 위에 떨어지는 빅뱅의 열기를 느껴보라. 아주 성능이 좋은 FM 라디오를 가지고 있고 방송국에서 멀리 떨어져 있다면 쉬-쉬-쉬- 하는 소리를 들을 수 있을 것이다. 아마 이미 이런 소리를 들어본 사람도 많을 것이다. 그 소리는 마음을 달래준다. 때로는 파도소리 비슷하다. 우리가 듣는 소리는 수백억 년 전부터 오고 있는 잡음의 0.5% 정도이다.
어린 시절에는 라디오를 들고 나가 컨택트의 여주인공처럼 백색잡음을 멍하니 듣곤 했다.하여튼 빅뱅과 정상우주론의 스코어보드 전쟁 덕택에 오랫만에 낄낄거리면서 즐거운 독서를 했다.
,
OSM의 전 세계 모든 데이터를 다 담고 있는 planet.osm 은 일주일에 한번씩 업데이트된다. planet.osm에서 한반도만 뜯어내려면 원래 그럴 용도로 만든 osmosis 프로그램을 사용한다. 2009.7.2 현재 planet.osm 파일의 크기는 무려 160GB, 압축한 파일의 크기가 6.2GB이다.

win32에서 osmosis를 실행하면 십중팔구 안 된다. 이유는 osmosis.bat 파일에 library path가 잘못 지정되어 있기 때문이다(linux에서는 상관없다). osmosis 0.31 버전 기준으로, osmosis가 설치된 디렉토리의 하위 디렉토리에 있는 ./lib/default/*.jar 를 EXEC 환경 변수에 모두 추가하여 osmosis.bat 파일을 만드는 편이 빠르다.
@ECHO OFF
set JAVACMD=java.exe
set JAVACMD_OPTIONS=-Xmx1024m
set MYAPP_HOME=D:\luke\Documents\private\gps\tool\osmosis-0.31
set LIB=%MYAPP_HOME%\lib\default
set MAINCLASS=org.openstreetmap.osmosis.core.Osmosis
SET EXEC=%JAVACMD% %JAVACMD_OPTIONS%
SET EXEC=%EXEC% -cp %MYAPP_HOME%\osmosis.jar;
SET EXEC=%EXEC%%LIB%\bzip2-20090327.jar;
SET EXEC=%EXEC%%LIB%\commons-logging-1.0.4.jar;
SET EXEC=%EXEC%%LIB%\jpf-1.5.jar;
SET EXEC=%EXEC%%LIB%\mysql-connector-java-5.1.6.jar;
SET EXEC=%EXEC%%LIB%\postgis-1.3.2.jar;
SET EXEC=%EXEC%%LIB%\postgresql-8.3-603.jdbc4.jar;
SET EXEC=%EXEC%%LIB%\stax2-api-3.0.1.jar;
SET EXEC=%EXEC%%LIB%\woodstox-core-lgpl-4.0.3.jar
SET EXEC=%EXEC% %MAINCLASS% %OSMOSIS_OPTIONS% %*
%EXEC%
planet.osm 파일이 워낙 커서 보통 배포되는 형태인 planet-090702.osm.bz2 파일을 압축을 풀지 않고 그대로 작업한다. osmosis의 위키 페이지에는 이런 식으로 명령을 지정하라고 적어 놓았다.
osmosis.bat --read-xml file=planet-090701.osm.bz2 --bounding-polygon file=skorea.poly.txt --write-xml file=skorea.osm
osmosis의 bzip2 라이브러리의 버그 때문에 실행 하면 몇 시간 잘 돌다가 exception이 발생하며 프로그램이 중단된다. 오래 전부터 알려진 문제란다. win32용 bzip을 얻어서, 실행파일인 bzip-xxx.exe 파일을 bzcat.exe로 복사해 놓고 다음처럼 실행한다(리눅스에는 bzcat이 기본적으로 설치되어 있다).
bzcat planet-090701.osm.bz2 | osmosis.bat --read-xml file=- --bounding-polygon file=skorea.poly.txt --write-xml file=skorea.osm
osmosis의 입력 파라메터로 지정하는 bounding-polygon 파일 'skorea.poly.txt'는 osmosis 위키 페이지에서 참고하라는 각 국가별 polygon 파일을 봤는데, 좀 괴상하다. 남북한 국경선도 명확하지 않고 울릉도, 독도 등이 빠져 있다. 해서 확실한 국경선은 아니지만, 하나 만들었다. skorea.poly.txt:
south_korea
1
124.50082 33.88033
126.84860 32.67590
128.86031 34.19477
130.32874 35.89549
132.62271 37.16911
128.90661 38.93043
124.46191 37.55735
124.50082 33.88033
END
END
이걸 어떻게 만들었냐 하면... 궁즉통, Google Earth에서 대충 한국을 포함하는 polygon을 그린 다음 그것을 kml로 저장해서  좌표를 텍스트 에디터로 옮겨 적었다. 남한의 국경선 폴리곤이 혹시 있지 않을까 싶지만 구글질해서 성과(?)를 얻는 것보다 직접 아웃라인을 따내는 시간이 훨씬 적게 걸린다. -_-

osmosis로 160GB짜리 파일을 처리하는데 얼마나 많은 시간이 걸리는지 모르겠다. 밤에 작업을 걸어두고 잤다. 2시간 40분쯤 돌다가 exception이 발생하며 bzip2 라이브러리 문제로 프로그램이 죽어버렸다. 파일이 깨진 것 같아 다른 서버에서 다운로드 받아 다시 돌렸다. 3시간 정도 걸려 skorea.osm 파일을 얻을 수 있었다.

skorea.osm 파일을 얻은 다음, 일단 잘못된 저수지 정보를 모두 삭제했다. 삭제는 bulk_upload.py를 수정해서 만든 조그만 python 프로그램으로 돌렸다. osmChange를 이용해 한꺼번에 여러 개의 node,way에 대한 작업을 수행하는 것인데, changeset중 단 하나라도 entry에 문제가 있으면 업데이트가 되지 않는다. 그 때는 changeset을 새로 만드는 방법 밖에 없다. JOSM도 동일한 문제가 있다. 예를 들어 하나의 changeset에 100개의 노드를 삭제하는 delete element가 있다고 하면,
<osmChange>
     <delete>
          <node id="34132450" ... />
          <node id="34132452" .../>
           ...
    </delete>
</osmChange>
34132452번째 노드를 삭제할 때 에러가 발생하면 100개의 노드에 대한 delete 작업 전체가 수행되지 않는다. OSM에서 프로그래밍을 하는 사람들이라면 반드시 알아야 할 내용인데 OSM development 섹션에서는 언급이 안되어 있어 메모해 둔다:

Error:  409 :  Version mismatch: Provided 0, server had: 1 of Way 36898268
삭제하려는 node의 버전은 1이고 서버의 해당 노드의 버전은 2이면 삭제되지 않는다. 삭제하려는 노드를 누군가 다른 사람이 작업해서 버전 번호가 달라진 것이다.

Error:  410 :  The way with the id 35355795 has already been deleted
이미 삭제된 노드로, 이 경우에는 에러로 간주되지 않았으면 좋겠는데 이런 에러 때문에 전체 changeset이 commit되지 않는다.

Error:  412 :  Precondition failed: Node 414576118 is still used by way 36898266
삭제하려는 node를 사용하는 다른 way가 있을 경우 발생하는 에러. 이게 가장 골치아프다. 왜냐하면 삭제하려는 node가 만약 어떤 way에 소속되어 있는데, 이미 그 way가 삭제되었다 하더라도 다른 way에서 이 node를 사용하고 있다면 이 node를 삭제하면 안 되는 것은 맞다. 그런데 해당 node가 어떤 way에 속해있는지 사전에 알 방법이 애매하다. 전 node, way, relation을 메모리에 갖고 있던가 그 정보를 db에 넣어 해당 node가 다른 way에서 점유하고 있는지 조사해 봐야 하는데, 삭제하려는 node가 300000 이고 한 node 조사에 100msec이 걸린다면 삭제대상 노드 조사에만 30000초(약 500분)이 걸린다.

osmChange를 사용하지 않고, changeset을 만든 다음 http DELETE로 삭제하는 고전적인 방법을 사용할 수도 있다. 이 방법을 사용하면 한 node에서 발생한 에러가 다른 node의 삭제에 영향을 끼치지 않는다. 그런데 그 방법은 시간이 오래 걸려 비효율적이다. 개당 500msec이 걸린다면 300000개를 삭제하는데 41시간이 걸린다.

그래서 python 프로그램은 먼저 한 번에 111개를 한 세트로 하는 changeset을 사용해 11개 element를 삭제하고, 삭제가 정상적으로 이루어진 element의 id를 기록해 둔 다음, 다음번에 python 프로그램을 다시 실행해 이번에는 53개씩 삭제, 다음에는 23개, 그 다음에는 11개, 5개, 3개, 2개, 그리고 마지막으로 http DELETE로 1개씩 삭제한다. 갯수는 100, 50, 25, 13, 6, 3, 2, 1에 근접한 소수를 사용해서 이전 changeset이 다음 changeset의 배수가 되어 같은 에러가 동일한 위치에서 발생하지 않도록 한 것.

손이 많이 가지만 이전에 잘못 올린 저수지및 호수 데이터 160000개를 삭제하는데 4시간 가량 걸렸다. 사실 작업시간 보다는 changeset의 특성을 파악하고 적응하는데, 특히, 412 에러를 회피하려고 갖은 꽁수를 써 보는데 시간이 많이 걸렸다. 처음에는 c++로 작업하다가 python 프로그램이 워낙 간단하고 편해서 python으로 바꿨다.

smoothing이 적용된 저수지및 호수 데이터(ncat=저수지및호수2)를 저번 주 금요일 저녁에 올리기 시작했다. 월요일에 정상적으로 올라간 것을 확인했다.

교통정보센터의 수정된 도로를 올리기 전에, 이전에 내 아이디로 만든 highway, trunk, primary, secondary 도로를 삭제하기로 했다. 진행 전에 한국 OSM 작업자들에게 도로 업로드 작업을 이번 주 중에 진행한다는 메시지를 작성하여 전송했다. 욕도 일찍 먹는게 낫다고, 이번에 도로 데이터를 올리지 못하면 일이 점점 더 커질 것이다. 한 두어 달을 올릴지 말지 망설이며(서울, 부산, 대전, 안동이 그 당시에 작업이 꽤 진척된 상태였다. 그 작업을 다시 해야 하니까 작업자들에게 미안해서 어떻게 하면 작업양을 최소화하면서 도로 업로드의 당위성을 설명할까 망설였다) 한가한 고민이나 하던 사이에 홍의님이 전주시와 인근 도로 작업을 상당히 진척시켰다.

도로는 월, 화요일에 모두 삭제했다. 올리려고 하는 도로 데이터의 검토 역시 대충 마무리 되었다. 고속도로는 양방향 lane을 그대로 유지하기로 했다. 수요일 OSM 서버의 업데이트가 있기 전 고속도로를 먼저 올려 JOSM과 Potlatch로 상태를 확인했다. 고속도로만 올리는데 3시간 가량 걸렸다. XAPI가 맛이 가는 바람에 조금이라도 일이 틀어지면 다음에 그것을 교정할 기회는 1주일 후에나 주어진다. 특히나 대량의 업로드의 경우는 문제가 심각하다. 조심조심 작업해야겠다.

화요일 밤부터 국도를 올리기 시작했고 수요일에는 도심로와 지방도 업로드를 시작했다. 다 합쳐 20시간 가량 걸렸다. 프로그램이 수고가 많다. 이전의 bulk_upload.py를 좀 더 개선한 소스. bu.py:

[code] #!/usr/bin/python # -*- coding: utf-8 -*- import time import socket import xml.etree.cElementTree as ET import sets import optparse import pickle import os import sys import httplib2 import re socket.setdefaulttimeout(300.0) headers = { 'User-Agent' : 'BatchUploader/0.1', } api_host='http://api.openstreetmap.org/api/0.6' userid = "#####" passwd = "#####" cachefn = "" demo = False idMap = {} testid = '1' class UploadFailed(Exception): pass class ImportProcessor: def __init__(self): self.user = userid self.password = passwd self.e = ET.Element("create") createReq = ET.Element('osm',version="0.6") change = ET.Element('changeset') createReq.append(change) if demo: self.cid = '1' print 'Create changeset ', self.cid return resp, content = self.request(api_host + '/changeset/create','PUT', ET.tostring(createReq)) if resp.status != 200: print 'Error Request changeset ', resp.status, ': ', content raise UploadFailed(resp.status, content) self.cid = content print 'Create changeset ', content def request(self, url, cmd, xml): con = httplib2.Http() con.add_credentials(userid, passwd) fc = 0; failed = True while failed: try: resp, content = con.request(url, cmd, xml, headers=headers) return resp, content except socket.error, msg: fc += 1 if fc > 5: raise print 'Request Error:', msg time.sleep(2) def add(self, item): item.attrib['changeset'] = self.cid self.e.append(item) def upload(self): xml = ET.Element('osmChange') xml.append(self.e) if demo: return 1 resp, content = self.request(api_host + '/changeset/' + self.cid + '/upload', 'POST', ET.tostring(xml)) if resp.status == 200: # print "Return:", content er = ET.fromstring(content) for child in er.getchildren(): old_id = child.attrib['old_id'] new_id = child.attrib['new_id'] idMap[old_id] = new_id return 1 # 그외의 에러 print 'Error: ', resp.status, ':', content return 0 def closeSet(self): if demo: print "Closing changeset", self.cid, '\n' return resp, content = self.request(api_host + '/changeset/' + self.cid + '/close', 'PUT', "") if resp.status != 200: print "Error closing changeset", self.cid, ":", resp.status def doJob(osmData, etypes, csize): cnt = 0 ip = None for e in osmData.getiterator(): if e.tag not in ( etypes ): continue # 이미 기록한 것은 다시 하지 않음 eid = e.attrib['id'] if eid in idMap: continue if ip == None: ip = ImportProcessor() # way 또는 relation이면 이전에 기록된 id로 기록함. if e.tag == 'way' or e.tag == 'relation': for child in e.getiterator(): if child.attrib.has_key('ref'): old_id = child.attrib['ref'] if idMap.has_key(old_id): child.attrib['ref'] = idMap[old_id] print 'create [', ip.cid, ':', cnt, '] ', e.tag, eid ip.add(e) cnt += 1 if cnt >= csize: ip.upload() f = open(cachefn, "w") pickle.dump(idMap, f) f.close() ip.closeSet() ip = None cnt = 0 if cnt > 0: ip.upload() f = open(cachefn, "w") pickle.dump(idMap, f) f.close() ip.closeSet() usage = "usage: %prog -i input.osm" parser = optparse.OptionParser(usage) parser.add_option("-i", dest="infile", default="", help="read data from input.osm") (options, args) = parser.parse_args() if options.infile == "": print "specify input osm file" raise cachefn = options.infile + ".db" try: if os.stat(cachefn): print 'Read from cache file:', cachefn f = open(cachefn, "r") idMap = pickle.load(f) f.close() except: print "no cache found" osmData = ET.parse(options.infile) st = time.time() doJob(osmData, ("node", "way", "relation" ), 500) print "\nJob done. %.0f" %(time.time() - st), "secs ellapsed" [/code]

OSM 서버의 느린 응답 때문에 에러가 빈번하게 발생하여 프로그램이 자주 멎는다. 프로그램 탓은 아니다. changeset이 완전히 반영되지 않으면 idMap에 기록하지 않도록 하고, 한 번에 commit하는 element의 갯수는 2000개나 5000개가 아닌 500개 정도로 제한해서, 시간이 더 걸리더라도 안정적으로 작동하는데 촛점을 맞췄다.

아울러, 저 것과 같은 기능을 하는 프로그램을 처음에는 VC++ 2005로 작성하려고 했지만 c++로는 작업량이 상당했다. 무엇보다도 expat SAX xml parser 때문에 로직을 짜기가 어렵다. c++에서도 python처럼 쉽게 작성 하려면 XPP(xml pull parser) + DOM을 사용하는게 마땅하다. python 프로그램은 한 시간도 안 걸리는 것을, 그것과 등가한 VC 프로그램을 작성하려면 1-2일쯤 걸릴 것 같다.

수요일 밤에 작업이 끝났다. 업로드에 15시간 정도 걸렸다.  작업 시간을 잘 맞춘 덕에 업로드된 내용이 그 다음날 바로 반영되었다.

서울 부근의 겹치고, 태그가 불분명하게 설정된 도로를 다시 정리하는 작업을 진행 중.

사용자 삽입 이미지
OSM에서 mapnik renderer로 본 지도. mapnik으로는 그간 무슨 삽질을 했는지 알 수가 없어서,

사용자 삽입 이미지
Osmarender로 렌더러를 바꿨다. 저 촘촘한 도로들이 지난 한 달 동안 작업한 것. 이것으로 한국 지도 작업을 진행하기 위한 기본 뼈대가 어느 정도 갖춰진 셈이다. 갈 길은 여전히 멀다...

,

더위

잡기 2009. 7. 9. 20:02
대부분 판단과 숙고가 필요한 잡일로 이래저래 바쁜데다가 더위에 돌아다니려니 지친다. 저번주 토요일 모처럼 자전거를 타러 갔다. 섭씨 32도의 도로에서 40km 가량 달렸는데, 후끈한 열파에 당했다. 얼음과자를 먹어도 먹어도 지친다.  중간에 벤치에 누워 30분을 쉬었다. 지나가던 몇몇 사람들이 길을 물었다. 능숙하게 자전거 길을 알려주는 자신에게 좀 흠칫했다.

어떤 기사에 따르면, 자전거를 20kmh의 속력으로 20분쯤 탈 때 평균적으로 140kcal 가량이 소모된다고 한다. 25kmh로 1시간 타면 720kcal가 소모된다. 25kmh로 4시간을 타면 2900kcal다. 이거 의외로 열량 소비가 엄청나서 살찔 틈이 없겠다.

NASA ‘세계에서 가장 완벽한 지도’ 공개 -- 기쁜 소식! 어딘가 미심쩍은 지금의 등고선 지도 대신, 고해상도 등고선 지도를 무료로 얻을 수 있는 길이 열렸다. 한국도 이런 사업 좀 했으면 좋겠다. 조만간 이것으로 작업해봐야겠다. 지금은 사용자가 몰리는지 다운받기가 좀 힘들어서... 사이트는 여기

택시비 인상: 집을 나서 도서관 올라가는 길에 소나기를 만났다. 20분 동안 남의 집 차고 처마 밑에서 폭우가 떨어지는 것을 멍하니 구경하다가 지나가는 택시를 잡아탔다. 기본료 2400원, 지하철 역까지 움직인 거리는 350m. 지하철 역 앞에는 비가 오지 않았다.  한 달 교통비가 10만원 안팎.

얼마 전에는 지하철 타고 가던 중 김씨 아저씨를 만났다. 서울에 사는 동안 아는 사람을 길 가다가 만나는 일은 지극히 드물었다. 김씨 아저씨나 이씨 아저씨나 날더러 트위터질 안 하냐고 물었다. 할까?

EBS 세계테마기행의 얼마전 주제는 여행생활자 유성용의 캄차카 반도였다. 일요일 오전에 재방송하던 것을 일요일 저녁으로 옮겨 좀 아쉽다. 오전에 아침 겸 점심을 먹으면서 그 프로그램을 보는 것이 밥맛을 돋구었는데...  주말에 아내는 어디로 놀러가고 아이와 저녁을 먹으면서 세계 테마 기행 캄차카 반도 편을 보고 있는데, 아이가 '나도 저기 가고 싶다' 고 말했다. 나도 가고 싶다. 아이는 요즘 날고 싶어했다. 아내가 가겠다면 애와 함께 보내야지 생각했다.

아파토사우르스(브론토사우루스)의 몸무게가 알려진 38t 보다 작은 18t 가량으로 밝혀졌다. 이건 좀 충격인데?

Ronald L. Mallett, 시간여행자(Time Traveller): 링 레이저를 이용해서 닫힌 시간 곡선을 만들면 frame dragging에 의해(시공간 변형) 과거로의 시간 여행이 가능하다는 가설을 만든 흑인 과학자의 수필. 어쩌다가 우연히 발견해서 본 책이다. 어린 시절 어떻게 과학자가 되었는가, 그리고 그가 읽거나 본 책과 영화의 대부분이 SF라서 쉽게 공감할 수 있었다. 몰렛 박사는 타임머신을 특허 내기도 했다. 이하:
미국 특허 지침을 조사하면서 타임머신 그 자체로 특허를 받기는 불가능하다는 것을 깨달았다. ... 레이저 광학형 타임머신 및 송수신기(LOTART, Laser Optical Time Machine and Receiver Transmitter) 로 2003년 7월 2일 미국 특허 상표 사무소에 출원한 특허 신청안에서 다음 정보를 세부사항 아래 제시했다.

레이저 광학형 타임머신 및 송수신기(LOTART)는 신호 송수신 장치와 연결된 단방향 순환 광선으로 이루어진 통신장치다. 타임머신 수신기는 특정 용도로 구축된 외부 송신 장치의 장거리 신호를 지정된 미래의 시간과 장소에서 수신할 수 있다. 그래서 타임머신 내부 송신기는 후속 외부 조건에 관한 정보와 함께 신호를 닫힌 시간 선들을 따라 이전 순간으로 보낼 것이다. 일례로, 불특정한 미래에 행성 우주 비행이 성공하면 신호는 착륙 모듈로부터 지구 지향의 원통형 광 타임머신으로 전송될 것이다.

청구항에서는 LOTART의 특성을 다음과 같이 기술했다.

* 순환 광선의 중력장에 관련된 닫힌 시간 고리들과 불특정 미래 시간에서 발신하여 현재로 전송될 신호의 수신을 발생하는 방법.
* 적절한 광학 매질에서 단방향 원통 광선을 구성하는 방안으로, 원통형 구성 방안은 광자수정이나 광섬유, 단방향 링 레이저 다수의 중첩 배열로 근사할 수 있다.
몰렛 박사의 타임머신에는 결정적인 단점이 있다. 그 타임머신을 가동한 시간 이전으로 돌아갈 수 없다. 그래서 몰렛 박사는 자신이 과학자가 되는데 결정적인 동인을 제공한 아버지를 만날 수 없다.
만약 미래의 어느 날부터 과거 시간 여행이 가능해진다면 어째서 지금까지 미래에서 온 시간 여행자들을 맞이한 적이 없는 걸까? 그렇다면 이렇게도 답할 수 있다. 최초의 실용 타임머신을 아직 작동시키지 않아서 시간 여행자들이 안보이는 거라고 말이다.
몰렛 박사의 타임머신이 가능하건 말건, 그를 과학자로 이끈 동기는 과학자들이 특히나 애지중지하는 '우아함'이 아니었을까 싶다. 어여쁜 아가씨 앞에서 시선을 못 떼는 것처럼 그들 역시 우아함에는 정신 못 차리는 경향이 있다고 한다. 몰렛의 책에도 그에 대한 언급이 나왔다.
놀랍게도 원자 폭탄 제조의 동기는 전쟁을 끝내고자 하는 데 있지 않았다. 오펜하이머의 단언에 따르면, 그 연구 프로젝트는 '기술적으로 달콤했고', 그 부분이 끝내는 전쟁을 종식하는 새로운 종류의 폭탄을 만들어내고 만 과학자 대다수에게 진정한 동기가 되었다고 한다.
이언 뱅크스, 다리: 그러고보니 국내에 번역된 뱅크스의 글은 빠짐없이 읽은 것 같다. 다리, 말벌공장, 플레바스를 생각하라, 공범. 이렇게 독특하고 운치있는 작가가 왜 국내에서는 인기가 없는지 의문이다. 카프카를 베이스로 여러 종류의 모더니즘 문학과 누보로망의 적자라고 할 수 있다. 그가 SF를 쓰건 순문학 소설을 쓰건 그 점은 변하지 않은 것 같다.  설령 괴롭고 무거운 주제라도 그의 소설은 명랑함을 잃지 않았고, 위트가 넘친다. 매 소설마다 매력적인 여자가 등장한다. 평균 30페이지마다 입으로 곱씹을만한 문장을 가판의 얼음방석에 얹은 싱싱한 고등어처럼 늘어놓는다. 번역자의 정성이 느껴지는 '다리'는 이전 그의 소설에 비해 훨씬 감칠맛 나게 읽혔다. 다리의 번역자가 이왕이면 그의 SF도 번역해줬으면 하고 내심 바랬다. 그런데 한국에 이언 뱅크스의 팬이 있을까?
나는 등으로 팔을 뻗어 다시 어둠을 켠다.

물론 그건만 준 건 아녀찌. 마녀들이 말야. 침대서도 마법을 제대로 쓰거든.

"어찌 됐든. 내가 못 견뎌 하는게 한 가지 있다면 그건 말대꾸하는 기계일세. 침묵하라!"

지금 나는 장소가 되어버린 사물, 위치가 되어버린 연결 고리, 결과가 되어버린 수단이자 목적지가 되어버린 길 위에 주저앉아 있다.

브릭은 소금을 눈보라처럼 치고, 후추를 화산재처럼 끼얹었다.

모두들 암석의 생을 살고 있다. 처음 어린아이일 때는 화성암으로, 한창 때는 변성암으로, 굼뜬 노망기에는 퇴적암으로(그리하여 섭입대로 돌아가는 것인가?). 진상은 이보다 훨씬 더 환상적이다. 우리 모두는 사실 별인 것이다.
'이끼'가 끝났다. 첫 몇 편을 보고 감질맛 나서 잼겨놓고 보려 했다. 그러고보니 몇 개월 전에 김씨 아저씨가 날더러 이끼를 보라고 말한 것이 기억났다. 시간날 때 몰아서 봐야지.

그랜드 펜윅 시리즈를 작년에 두 권 봤는데 뭘 봤는지 잊어버려서 같은 책을 다시 빌렸다. -_- 개중 안 읽은 석유시장 쟁탈기를 읽었다. 이런 번잡한 유머 코드는 이상하게 잘 안 맞는다. 체질상 슬랩스틱 개고생 아니면 희비 공감회로가 작동하지 않아서일까?

클라이브 바커의 피의 책: 꽤 재밌는 단편 두셋, 피갑칠하는 호러소설이야 뭘 봐도 시큰둥하지만 피의 책에서 두세 편이나 건졌다는 건 의외였다. 보고 2주가 지났는데 파도를 타고 시체가 뒤집히며 오락가락하고, 섬에서 희생양을 키우는 단편은 두고두고 생각났다. 나중에 더 출간되면 찾아 읽어야겠다.

사용자 삽입 이미지
짐승의 연주자 에린. 애가 많이 컸다. 찰떡같은 호기심과 강한 집념, 인간과 짐승에게 공감하는 뛰어난 감정이입 능력, 높은 지능과 학습 능력 등이 설마 부모, 특히, 엄마를 잘 만난 탓이라고 극화가 말하려는 것은 아니겠지? 하지만 내 딸이 이런 여자애가 된다면 얼마나 좋을까(세상을 구할 수 있는 보살같은 자질을 가진다면 얼마나 좋을까) 공상했다. 스포츠천재 김연아 같은 건 좀 시큰퉁한 편이라.  

사용자 삽입 이미지
어쩌다 지하철이나 거리에서 아이와 걷고 있노라면 젊은 처자들이 아이가 귀엽다며 '발광'한다. 또래 아이들에 비해 저체중에 키가 작아 애가 인형같아 보이는 것 같다. 미운 성격이라 제 엄마는 아이와 두어 시간만 걸어도 녹다운이 된다. 그렇게 예쁜 애도 아니고, 지능도 평범한 수준이라 거리에서 딱히 주목받을 것 같지는 않지만.

사용자 삽입 이미지
동쪽의 에덴에는 눈에 띄는 벤처 아이템이 하나 등장한다. 그건 그렇고, 초식남/건어물녀 니트족들이 보기에는 몹시 허당같아도, 힘을 합치면 이렇게 일본을 구한다. 동쪽의 에덴 설정: 어느날 난데없이 천억원과 그 천억원을 맘대로 쓸 권한이 주어지고 그 돈으로 장래가 암울한 일본을 구하라고 한다면? 내가 그런 상황에 처하면 주저없이 개인의 영달은 접어두고 사천만의 일상이 치대는 이 나라의 장래를 바꾸기 위해 노력 하겠다. 돈 가진 사람을 부러워한 적이 없었다. 그러고보니 지혜로운 이를 부러워한 적도 없었다. 존경하는 스승마저 없다. 어? 갈수록 점입가경일세? 이쯤에서 없는 궁상은 그만 하자.

사용자 삽입 이미지
Mr. Brain. 기무라 타쿠야. 김 새는 드라마.  첫 화의 연출이 영 글러먹었고 뇌과학 어쩌구를 늘어놓는 추리극은 갈릴레오 만도 못했다. 과학실험 열심히 하는 갈릴레오가 그나마 성의 있어 보일 정도랄까? 배우 면상으로 꾸역꾸역 안되는 극 이어갈 생각하지 말고 왠만하면 그냥 집어치는게 나을 듯.

사용자 삽입 이미지
마징가Z. 중반부쯤 되니까 좀 시시해지는데?

사용자 삽입 이미지
그러고 보니 작년인지 제작년에 Blood: The Last Vampire 애니판을 봤다. 우리나라 여배우 주연으로 영화화했다길래 호기심에 다시 봤는데, 어? 본 것이다. 재미가 없어서 기억이 안났던 모양. 영어 더빙인지 아니면 애초 영어로 녹음한 것인지, 듣고 있으면 징그럽다. 두 번째 봐도 딱히 건질 것 없고 재미가 없다.

,
도로 작업 후 파일 크기는 350MB에서 88MB로 극적으로 줄었다. 도트 픽셀이 보이는 해안선과 저수지 및 호수 데이터 역시 크기가 현저하게 줄었다. 하지만 이들을 조합해 Garmin용 이미지를 만들자 파일 크기는 10MB 가량 밖에 줄지 않았다. 용량이 크게 줄지는 않았지만 선의 복잡도가 줄어 GPS에서 지도를 출력하는 시간이 단축되긴 했다. 덕택에 TRE와 RGN 사이즈를 줄일 수 있었다.

저수지 및 호수 데이터를 작업하고 나서 이전의 bulk_upload.py로 예전 자료를 삭제하고 신규 자료를 업하려고 하다가... bulk_upload.py의 버그로 이전 자료가 두번 업로드되고 말았다. 파이썬 프로그램을 좀 더 자세히 살펴봤어야 하는데, 사후약방문이라고 나중에야 이상해서 소스를 보니 bulk_upload.py는 말그대로 업로드만 가능했다. 소스 중에는 delete와 modify도 되게끔 하는 부분이 있지만 제대로 작동하지 않을 뿐더러 순서가 잘못 되어 있었다.

즉시 지우려고 보니 OSM 서버 업그레이드 후 XAPI 서버가 맛이 간 상태라 한반도 데이터를 다운받을 수가 없다. 6월 13일 다운된 xapi 서버는 6월 29일까지도 복구되지 않았다. 천상 중복 업로드된 데이터를 교정하려면 매주 수요일 업데이트 되는 planet.osm을 다운받아 한반도만 뜯어내 잘못된 저수지 영역을 모두 선택하여 삭제하는 작업을 다시 해야 한다.

그렇게 하면 되는 작업이지만, 이제는 좀 짜증이 난다. API 0.6 업그레이드 후 뭐 하나 잘못되서 수정하려면 며칠씩 걸리고 API 0.6 자체의 엉성함 때문에(transaction도 아니고 그렇다고 transaction이 아닌 것도 아닌 아주 애매한 컨셉) 가외로 까먹는 시간이 상당하다. 0.6은 또 속도가 느려 잘못 업로드된 저수지및 호수(약 10MB) 자료의 절반을 데이터베이스에서 삭제하는데 27시간이 걸렸다. 그나마도 제대로 되면 좋겠는데, 제대로 되지도 않아 툭하면 서버가 다운되어 접속이 안되거나 영 바보스러운 응답을 늘어놓기 일쑤였다. 하여튼 0.6 API로 스트레스 받지 않고 OSM 배치 작업을 하는 사람들이 영 신기하기만 하다. 솔직히 뭐 이따구로 아마추어스럽게 설계했나 싶다.

아... 아마추어들이지 참.

그럴 때도 되었지 싶어 이번 주 월요일에는 그간의 OSM 지도와 도로 작업 데이터/해안선 따위등을 긁어모아 KOTMv2(Korea OSM & Topo Map version 2.0)을 만들었다. 이번에 만들어서 공개하면 세번째가 되는데, KOTM이란 이름을 사용하게 된 것은 두 번째 이고, 앞으로 그 이름으로 통일하려고 v2.0이 되었다. 이번에는 SFX에 설치하며서 registry 파일을 자동으로 등록해주는 간단한 인스톨러를 포함했다.

KOTMv2 소개

다음 버전에는 제대로 된 인스톨러를 만들어야겠다. 사용자가 설치 디렉토리를 다른 곳으로 변경할 때 해당 디렉토리로 자동 변경하여 .reg 파일 없이 registry에 등록하고, Garmin GPS용 IMG와 MapSource용 이미지를 선택할 수 있도록. 아예 내친 김에 Sendmap.exe로 GPS에 자동 설치까지 가능하게? Winrar의 SFX가 이 정도면 훌륭한 편이라 vbs 스크립트 하나 추가하는 정도로 해도 될 듯 싶지만.

OSM의 비전: 아이팟 터치, 안드로이드, WM6 기계에서 오픈 스트릿 맵 타일을 다운받거나(wifi online) 벡터 데이터를 원본 그대로 가공하여 랜더링하는 엔진을 만들어(offline) GPS로 연동하면 그 이상의 활용이 있을까? 렌더러 소스가 공개되어 있으니 모바일 장치용 프로그래밍을 좀 하면 되는데, 뭐 이미 누군가가 하고 있으니 기다리다보면 나오지 싶다.



,

OSM 작업노트 #11: 도로

GPS 2009. 6. 24. 20:52
작년 10월부터 OSM 간보기를 하다가 올 3월초부터 OSM 작업을 시작했는데, 4개월만 더 있으면  OSM 작업하겠다고 생각한지 만 1년이 된다.

저번 주와 마찬가지로 이번 주에도 작업을 그리 많이 하지 못했다. 이번 주는 화요일, 수요일 합쳐 약 7시간 정도 작업. 이 기사 쓰는데 쓰는 시간이 더 걸리는 것 같다. 국가교통정보센터의 지도가 내년에 업데이트 되어도 그것을 손쉽게 업데이트할 방법을 찾다보니... 도로 작업에 너무 많은 시간을 까먹고 있다.

국가교통정보센터의 지도에서 추출한 도로로 다음 네 단계로 작업으로 나눴다. 라우팅은 미심쩍은 것들이 많아 이번 주 작업에서 뺐다.

1. 노이즈 제거

사용자 삽입 이미지
왼쪽: 원본 데이터, 오른쪽: 노이즈 제거 후

아마도
프로젝션에 따른 오차를 보정하다가(추측임) 위와 같은 노이즈가 원치않게 끼어든 것 같다. polygon 처리에 사용하던 이동평균 보간으로 노이즈를 없애버리면 유의미한 vertex도 날아가므로 노이즈의 성향을 살펴 연직 및 수평 이동이 발견될 때에만 제한적으로 보정 했다.

이런 노이즈의 '크기'는 대략 1-4m 정도. 2점/3점까지 수평/연직이 발견되면 한 점이나 두 점을 삭제하고 2점/3점의 평균 거리로 첫 번째 위치를 이동하여 보정했다.
 
2. 선로 합치기
 
국도 및 지방도는 고속도로처럼 뚜렷한 경계선에 의해 구분되지 않으므로 2개의 라인이 서로 다른 방향을 가진 벡터로 진행할 필요가 없다. 물론 국도나 지방도 중에서 4/8차선이 없는 것은 아니지만, 2개의 라인으로 표현되면 파일 크기가 커지고, 굳이 그렇게 도로 폭을 크게 묘사할 필요가 없다고 판단해 국도와 지방도의 선로를 합치기로 했다.
 
선로를 합치기 위한 조건은, 두 벡터의 시작점/끝점이 일정 거리 내에 인접해 있고 벡터의 방향만 반대일 때이다. 아울러 polyline의 이름과 타잎이 일치해야 한다.
 
시작점, 끝점은 경위도좌표로 나타나므로 두 좌표의 거리를 재어 파라미터로 정한 거리 안에 들어오면 인접했다고 판단할 수 있다. 평면 상의 두 점의 거리는 sqrt( (x2 - x1)^2 + (y2 - y1)^2 ). 물론 경위도로 표현되는 두 좌표는 구체인 지구 구면의 거리가 되어야 하므로 평면 거리는 쓸모없다. 구면 상의 두 점의 거리는 구면기하 삼각함수를 이용한 Haversine 공식을 사용해 계산:
 
d = acos(sin(lat1) * sin(lat2) +  cos(lat1) * cos(lat2) * cos(lon2 - lon1)) * R
R(지구반지름) = 6371000m
 
자전 및 공전을 하는 지구가 완전한 구체는 아니라서(WGS-84 ellipsoid 모델에서 적도 반지름은 6378km, 극 반지름은 6357km) Haversine식은 0.3% 가량의 오차를 가진다(즉, 1km 거리에서 3m 가량의 오차). 오차를 줄이려면Vincenty 공식을 사용하면 되지만(오차가 무려 1mm), 좌표간 거리가 대단한 정밀도를 가질 필요가 없고 계산량도 많아 Haversine 공식을 사용하기로 했다. 지구면의 두 지점에 관한 여러 종류의 수식은 여기를 참조.
 
사용자 삽입 이미지
왼쪽: 작업 전, 오른쪽: 작업 후

국도 및 지방도에 좌표 거리를 25m 이내로 했다. 선로 합치기는 비교적 잘 되었다. 예상대로 파일 크기는 1/2로 줄었다.
 
3. 인접 차선 결합
 
국가교통정보센터의 도로는 대부분 잘게 토막나 있다. 이것들을 하나의 긴 도로로 묶어 놓는다. 선로 합치기와 마찬가지로 벡터의 시작점/끝점이 일정 거리 내에 인접해 있으면 합친다. 경우의 수는 네 가지다.
 
vector1: B1 ---->---->---->---- E1
vector2: B2 ---->---->---->---- E2
 
E1, B2 인접: vector2의 B2를 지우고(공통) vector2를 vector1뒤에 연결한 다음 vector2 삭제(공통)
B1, E2 인접: 위와 비슷
B1, B2 인접: vector2의 방향을 바꿔 vector1에 연결
E1, E2 인접: 위와 비슷.

사용자 삽입 이미지
왼쪽: 떨어져서 별개로 선택되는 도로들, 오른쪽: 연결된 도로

4. 벡터 평탄화
 
벡터가 완만하게 변화하는 구간에서만 평탄화를 실시한다. 평탄화를 하면 지점의 갯수가 줄어든다. 변화폭은 일정 갯수의 지점에서 벡터 방향(bearing)의 각도 변화의 총합을 측정하여 파라미터로 결정한다. 예: 10점 동안 각도 변화가 10도 미만이면 평탄화.

평탄화는 급격한 변화 구간(예를 들면 도로의 인터체인지의 원형 진입로)은 그대로 놔 두고 완만한 변화 구간을 압축하는 효과가 있어 파일 크기를 줄일 수 있다. 3점 각도 변화 15도에서 원래 데이터를 크게 손상시키지 않으며 그 크기를 대략 1/2로 줄였다.

잘 뒤져보면 위에 언급한 네 가지 작업에 적합한 좋은 알고리즘이 있을 법하지만, 굳이 속도나 효율을 요구하는게 아니라서 일단 이대로 프로그래밍하기로 했다.

네 가지 작업의 효과(또는 취약점)을 확인할 수 있도록 파라미터를 선택하여 처리할 수 있도록 GUI 프로그램을 짰다.

사용자 삽입 이미지
이전의 해안선 처리에 사용하던 프로그램과 통합하고, polygon 처리할 때도 smoothing을 넣으니까 vertex 수가 10% 가량 줄었다. 빙고.

프로그램을 돌려보니 출력 파일의 크기가 원본의 24~30% 정도 밖에 되지 않는다. 원래 계획했던, 350MB를 100MB 이내로 줄이는 것이 가능하다. 한동안은 한가하게 출력 파일을 검증하는 작업을 할 것이다. 더디긴 하지만 작업은 계획대로 진행되고 있다.

 

 
,

sum of happiness

잡기 2009. 6. 19. 15:21
아이에게 책을 읽어주다가 닭의 수명이 무려 20년이나 한다는 것을 알았다. 20년 전에 나온 책 내용이라 도무지 믿기지 않아 조사해보니 정말 20년 이상 산다. 심하게는 30년 사는 닭도 있었다. 그런 닭을 대량 생산해서 45일만에 잡아 먹는다니... 세계에서 가장 많이 소비되는 고기가 닭고기다. 아이에게 병아리를 선물해 주면 그 아이가 결혼하는 날까지 파닥거리는 닭이 있을 수 있다. 30년 산 닭은 과연 현명할까?

황석영은 전에도 진심이었고 지금도 진심으로 보인다. 뭔가 해야 되겠다고 믿고 행동했지만, 되레 아무 것도 안하고 금붕어처럼 입만 뻐끔거리는 사람 못지 않게 욕을 먹고 아무 것도 안 하느니만 못한 꼴이 되면서 켜켜이 쌓였던 그간 신뢰를 잃어간달까. 내 얘긴 아니다. 황석영을 태깅한(규정한?) 식자들의 배신감이 실은 우스워 보였고, 되레 그 배신감이 빚어낸 놀라울 정도로 거친 잔인함은 사람을 죽인 시민의 감상적인 냉정함(내가 보기엔 그저 잘난척과 인터넷 찌질이들의 심심풀이용 욕설)과 닮았다고 여겼다. 여하튼 시민은 그다지 세련되지 않았고, 나도 그들 틈에 숨어 그동안 비겁하게 살아오지 않았던가?

6.10 저녁에 쪽수나 보태려고 서울광장에 갔다. '문화행사'를 보고 있으면 왠지 모르게 씁쓸하다. 한쪽에서는 폭력경찰 물러가라며 대치중이고 그 사이로 마스크를 파는 상인이 지나다닌다. 도로 복판에서 오뎅 국물에 소주를 들이키는 사람도 있고, 한국-사우디 축구 경기를 관람하는 사람들도 있고, 다른 켠에선 조문을 한다. 일본인들은 가이드의 안내를 받으며 관광중이다. 어떤 여자가 전경을 향해 소리쳤다; 니들이 나한테 오면 절~대로 취업 안 시켜줘! 사회당 덕후위원회, 전국 고양이연합 등의 깃발이 펄럭였다. 민주 항쟁 기념식은 이명박 성토장이었다. MB = Major Byongsin의 약어란다. 10시 조금 지나 문화행사가 끝나고 전경들이 슬슬 모이기 시작했다. 비도 오고 곧 강제 해산에 들어갈 것 같아 부슬비를 맞으며 종로3가쪽으로 걸어갔다. 술 한 잔 하고 싶다. 참자, 참자. 집에 와보니 11시 30분경 진압이 시작되었다.

한 사람의 죽음으로 한 동안 술을 너무 많이 마셨다. 별 일 없어도 저녁 때면 술을 마시고 싶었다. 심하다 싶어, 이제는 가능하면 술을 자제할 생각이다.

김 새고, 술 마시느라 최근에는 책을 거의 안 읽었다. 로버트 소여의 멸종을 키득거리며 읽었다.  공룡 뼈다귀를 글자로 만든 판화가 좋은 아이디어긴 한데, 두 또라이와 등장 공룡들의 상호작용을 신문의 시사만평처럼 그렸더라면 이 개그소설이 더더욱 웃겼을 것 같다(한 장면 한 장면이 골 때리게(부조리하게) 웃긴다는 거, 판화가는 눈치 못 챘나?). '중력'이 쉽게 언급되어 공룡이 어떻게 번성하고 살아남고 뒈졌는지 초반부터 뭐 금새 알아 버렸지만 즐기는 데는 지장이 없었다. 아쉬운 것은 공룡 수가 적다는 것 정도? 주인공이 찌질하긴 하지만 서사 진행에 협조적이라 읽고 즐기기 편했다. 영혼에 개그끼가 사라진 때라서인지, 멸종이 위안꺼리가 되었다.

어슐러 르 귄, 파워: 초반, 중반, 종반 어디나 단조로웠다. 3부작 중 가장 두꺼웠던 것 같은데도 한 2주 지나니까 뭘 읽었는지 잘 기억나지 않는다. 마지막 페이지를 덮으며, 끼리끼리 잘들 논다고 시니컬하게 지껄였던 기억만 어렴풋이 떠올랐다.

차이나 미에빌, 퍼디도 스트리트 정거장: 옛날에 미에빌이 끝내준다길래 그의 단편을 읽다가 졸았던 기억이 난다. 소설의 무대는 그 때 읽었던 것과 같았다. 근본을 알 수 없는 더럽고 지저분한 스팀펑크 도시에서 변태 동식물들이 알콩달콩 먹고 살자고 벌이는 짓거리들. 그때처럼 초반에 읽다가 졸았다(일부는 전날 숙취 때문). 글을 잘 쓰는 것인데도, 화자의 말투에 적응이 안 된다 -- 미엘빌의 예전 단편 원서가 그랬는데,  그 지랄같은 말투는 퍼디도 스트리트 정거장 번역본에도 잘 구현되어 있다. 한 마디로 미에빌의 문체가 취향은 아니다. 사고의 변두리 내지는 언저리로 신경을 긁으며 들려오는 도심의 짜증나는 소음이란게 작법이자 의도된 연출이라면, 세계 묘사와 진행 솜씨와 더불어 어느 면에서도 상당한 소설가라고 생각했다. 부러 찾아 읽지는 않겠지만 뭐라도 번역되면 꼭 읽어야 할 것 같다.

기시 유스케, 신세계에서: 일본 SF상 받은 소설. 글 쓰면 늘 이렇게 쓸 꺼 같은, 딱 범생 스타일의 소설가. 심지어 주인공을 비롯한 등장인물들 마저 그랬다. 서술 방식과 소설의 세계관까지 합치면 플라스틱 모델 조립하듯 지나치게 '왜색'에, 짜 맞추고 광 낸 티가 난다. 스펙트로그래피로 본 SF 성분 함량은 상당히 높다(포스트 카타스트로피, 초능력, 생물학적 변이). 하지만 SF라고 하기엔 너저분하게 늘어놓는 얘기들이 교과서 읽듯 평면적이고 주제와 소재 양면에서 뚜렷하게 중심적 역할을 하는 것도 아닌데다 정작 중요한 것은 설명하지 않고 자기가 설명하고 싶은 것만 설명하고 대충 얼버무려서 편의상 내 주관으로는 판타지로 분류해 버렸다. 그런데 구성에 있어, 왜 그렇게 바보스러운 회상 스타일로 했을까 궁금하다 -- 글에 힘을 주는 여러가지 역동성을 많이도 말아먹었다. 그래도 넘기는 손맛이 있고, 재밌게 읽었다. 퍼디도 스트리트 정거장과 연달아 읽은 탓에 드림싯 먹고 날뛰는 괴물쥐가 꿈에 나타났다.

김이 새서인지 서평에 마저 고생해서 없애버린 독기가 서리는 걸?  조심해야겠다.

공리주의적 행복의 총합에서, 행복의 구성 요소는 행복의 질과 무관하다는 것이 널리 알려져 있으리라 짐작. 행복이 환상이자 언어유희라는, 이를테면 그렉 이건의 reason to be cheerful이나 도가사상의 무위, 또는 내 주장, 스스로를 멍청하게 만듦으로써 (인위적인 조작을 통해) 가시권을 좁혀 제한된 계 안에서의 각자의 소망 충족을 통해 만족을 누리는 것이라고 생각하므로 개개인의 행복은 공리주의가 말하는 행복과 배치되지 않는다고 생각했다 -- 그래서 행복에 '질'이 있다는 근거를 대체로 의심한다.  질이 있다면 그 질이 그렇게 높지는 않다고 우기겠다. 아참, 어차피 각자의 가치 규범이 거론되면 토론은 그쯤에서 접어야 한다.

삶을 행복하게 하지 않는 무수한 요소들의 총합이 일상이란 평형 상태를 교란/산란시켜고  소망 충족이 불가능해지거나 지연되어(인류공영, 호혜평등, 민주주의 실현 따위로 대개는 별로 복잡한 사고를 필요로 하지 않고, 거창함과는 거리가 먼 소박한 것들이지만 종종 용기와 피를 요구하는 것들도 다수 포함되어 있다) 감정이 고조된 나머지, 세상이 꽃 같고 인간이 꽃 같고 이념이 꽃 같아 김 새고 때로 울분에 겨워 상황을 개선시키려 안달하는 것을 우습게 보지 않고, 미워하지 않았다.

어차피 추구해야 할 그 무엇도 아닌 행복이라 내놓고 말하기 부끄럽지만, 요새 내 행복을 구성하는 것들:

  • 걱정 근심 안 끼치고 건강하게 잘 놀고 있는 아이/마누라
  • 세계가 화평하게 지내는 모습
  • 좋은 책 읽기
  • 예기, 가끔 떠오르는 빛
  • OSM 지도 그리고, 자전거 타고, 산에 오르기
  • 주말 저녁 치킨/맥주
그리고 행복을 저해하는 요소들:

  • 나 자신
  • 내 잘못
  • 내 모자람
  • 그리고 나만도 못한 꽃같은 개새끼들
naver news가 개편되면서 iSilo용 new clipping이 무용지물이 되었다. naver news는 전에도 별로 좋아보이지 않았지만 개편 이후 더 나빠진 것 같다. news clipping 사이트를 업데이트하느라 시간을 보냈다. 그날 네이버 뉴스 사이트가 다운되었다가 몇 시간 후에 복구되었다.

사카이항에서 동해로 가는 유람선 노선을 만든단다. 부산에서 배를 타고 후쿠오카나 오사카로 가는 것 말고도 동해에서 사카이항을 통해 일본으로 가는 옵션이 생긴 셈.

저번 주말 자전거 타고 체중이 2kg쯤 빠졌다. 참 편리한 몸이다. 자전거 타면 빠지고 안 타면 늘고.

자전거로 야간 주행을 가능한 피하고 있지만 그렇다고 야간 주행을 무작정 피할 수도 없다. 가로등이 없는 지방도를 달릴 때 값싼 전조등으로는 전방 10여m를 비추기가 버겁다. 몇 번인가 야간 주행 중 어두운 전조등 탓에 시야가 확보되지 않아  도로 요철에서 험하게 튀어본 경험이 있어, 밝은 전조등이 있으면 한다. 이것저것 뒤져보니 Fenix LD10이란 것을 찾았다. 중국제임에도 튼튼하고 믿을만하게 생겼고 80 ansi lumen이나 나온다. 하지만 자전거 마운트까지 합쳐 꽤 비싼 가격이라 좀 더 시간을 들여 알아보기로.

에너지나투라(energynatura) -- 도메인이 열리지 않았다. 벌써 망한 걸까? 시민 주주가 모여 태양광발전소를 짓고 발전 에너지를 한국전력에 팔아서 시민 주주에게 원금상환하고 이익을 재분배한단다. 태양광발전소와 태양열집열발전방식. 이명박 정권 들어서서 발전차액지원제도가 유명무실해지는 바람에 사업성이 있는지는 좀 의문이지만 취지가 훌륭하다.

일본은 대체에너지 발전이 고르지 않아 망을 간섭할 우려가 있어 NAS 전지에 전기를 축적해서 부하변동율을 줄이는 방향으로 가고 있는 듯. NAS 전지의 원리 NAS 전지에 관해 알수록 이거 사업화하기 좋은 아이템이란 생각이 자꾸 든다.

태양광, 태양집열, 풍력, 조력 어느 것이든 축전지가 중요하다. 축전지 관련 회사 주식이나 사둘까? 안그래도 한국에서 전력사용의 효율화를 제고하는 목적의 스마트 그리드 열풍이 불기 시작했는데.

http://arxiv.org -- Cornell 대학에서 운영하는 천체물리학,물리학,수학, 비선형과학, 컴퓨터과학, 수치생물학?(Quantitative Biology) 아카이브. 이렇게 좋은 사이트도 있구나... 한국에도 이런 사이트가 있을까?

연초에 말 나온 것처럼, OSM으로 대동여지도 그리기가 취미가 되었다. 한 동안 너무 지독하게 집착해서 지금은 좀 쉬고 있다. OSM 때문에 책을 안 읽는다거나 아이와 놀아주지 않는다거나 감정과 이성을 투자해야 할 온갖 것들 중 일부를 도외시한다는 것과는 다른데, 최근 몇 년간 인생이 1.5배속으로 진행되었다면, OSM 하면서 삶이 2배속으로 빨라졌다. 이럴 때 내가 가장 먼저 희생하는 것은 언제나 '인간관계'였다.

textcube 1.7.5의 버그인지 아니면 정신 사나운 플러그인 때문인지, firefox에서 랜더링할 때 stylesheet 때문에 글이 깨져서 나타난다 -- 오래 전부터 알고 있던 문제다. 그래서 혹시 textcube를 업그레이드하면 문제가 해결될까 싶어 얼마 전에 나온 1.7.8 Con Moto 버전으로 업그레이드를 시작했다.

이왕 하는 김에 커널도 포함해 서버의 전반적인 업그레이드를 시작했다. 사용하는 시스템이 CentOS4라 설치된 소프트웨어들이 많이 낡았다. MySQL 4.x를 5.0.58로 먼저 업그레이드 해야 한다. yum으로 mysqlclient10을 centosplus repositary의 mysqlclient14로 업그레이드 했다. utterramblings repositary를 이용해 MySQL 업그레이드를 끝낸 후, apache 2.2.8, php 5.2.6 버전으로 업그레이드 했다. 업그레이드 후 시스템의 여러 부분들의 정상 작동 여부를 확인했다. 업그레이드만으로도 꽤 많은 시간을 잡아 먹었다.

textcube 1.7.8 역시 firefox에서는 화면이 깨져 나온다. 그 대신 이전 버전에서 파일 업로드가 안되던 문제가 해결되었다. 1.7.5에 자잘한 버그가 많았는데 1.7.8에서는 줄어든 것 같다. 뭐 이 블로그는 내장을 업그레이드 해 봤자 UI가 바뀌지 않으니 예전과 달라진 구색이 눈에 띄지 않지만.

알라께서는 이렇게 말씀하셨다; 있으라! 그럼 그리 되리라.  그렇게 되었다. 블로그 카운터가 10만을 넘겼다. 나는 내가, 그리고 내 블로그가 존재해서 결국은 어떤 식으로든 노출되고 알려져서 버겁다. 예전에는 이런 식으로 노출되었다가 나를 좋아하게 된 사람도 있었다. 그건 그렇고, 내가 나를 좋아하는 사람을 좋아하던가? 나를 좋아하는 사람들이 좋아하는 미심쩍은 이유는 그다지 좋아하지 않았던 것 같은데? 게다가 나는 30년 넘게 내가 안 좋았고.
 
Winterface Winterface
SPH-M4650의 쉘로 Winterface를 한동안 사용하다가 최근에 나온 SPB Mobile Shell로 바꿨다. 그 동안 이 아이팟 짝퉁 인터페이스를 잘 사용했다. 아듀.

사용자 삽입 이미지
The Objective. 아프간에 모종의 비밀 임무를 띄고 파견된 CIA와 용병들의 이야기. 장르 규정이 어려울 정도로 뒤죽박죽이라 뭐라 말하기 뭣한데, 마지막 장면 때문에 이건 SF가 되었다.

므네모슈네의 딸들
19금 애니. 므네모슈네의 딸들. 영생을 누리는 여자들의 전쟁. 작화가 80년대 스타일로 구질구질하지만 꽤 재밌게 봤다.

It's Always Sunny in Philadelphia
필라델피아는 언제나 맑음(It's Always Sunny in Philadelphia). 디가 빠졌는데, 이 또라이들의 너저분한 짓꺼리를 보고 있으면 마음이 편해진다. 영혼을 살찌우는 개그심이 솟는달까.

바스커슈
바스커슈. 최근 기대작. 요새 애니의 전반적인 추세인가? 아니면 몇몇 애니들에서만 나타나는 특징일까. 스토리, 작화, 음악, 매카닉 뭐하나 딱히 빠지지 않는다.

바스커슈
아침 무렵의 파하르간즈가 떠오르는 장면.

바스커슈
처음 볼 땐 해독 불가능했는데, 자꾸 보니까 차츰 눈에 들어오기 시작했다. 저거 영어다.

바스커슈
그래! 작화품질만이면 말을 안하지, 한국에 맡겨 캐릭터, 배경 잘 그린 애니야 흔하니까. 그런데 이건 키네틱스도 훌륭해.

바스커슈
피구왕 통키를 보고 자란 20/30대 오타쿠가 만들었음직.

사용자 삽입 이미지
아내가 모처럼 잘 찍은 사진. 이 엔트리 중 유일하게 저작권을 위반하지 않은 이미지.

,
OSM의 coastline은 PGS에서 자동 변환한 것으로, polygon이 아닌 polyline이라서 OSM 파일을 Garmin GPS용 .img로 변환하면 바다와 육지 경계만 표시될 뿐, 바다는 파랗고 육지는 육지색으로 표시되지 않는 문제가 있다. 여기에다가 transparent 옵션을 주고 .img 파일을 만들면 해안선은 엉성한 basemap에 묻혀 사실상 GPS에서 보이지 않는다. basemap에 묻히면 해안선 뿐만 아니라 시퍼런 바다에 등고선이 돋아있는 희안한 현상도 볼 수 있다.


남해안. 아래쪽은 새파란 바다여야 한다.

OSM의 랜더러들은 해안선을 판단해 바다와 육지 경계를 표시하므로 문제가 없지만, mkgmap, cgpsmapper 등에서 coastline을 적절히 처리할 방법을 찾아야 한다. mkgmap 제작자가 해안선을 처리할 방법을 나름대로 강구중인 것 같으나, 언제될 지 알 수 없다. 주욱 OSM 지도 작업을 하면서 느낀 거지만, 일단은 자력갱생 해야 한다.

현재로선 OSM 지도의 주 활용처가 Garmin GPS 디바이스인 관계로 이 문제를 해결하기 위해 임시변통 격으로(mkgmap에서 해안선을 다루게 될 때까지) polygon으로 구성된 해안선 데이터를 얻어와 바다를 구성하는 수 밖에 없다.

세계자전거오지여행의 운영자가 국가교통정보센터에서 공개한 한반도 도로 지도를 가공한 mp 파일에는 해안선 polygon 데이터가 있다(최근 데이터에는 없음). 이것을 뜯어와 img를 만들어 봤더니 드디어 바다와 육지가 구분되었다. 그런데 문제가 좀 있다.

해안선을 확대하면 디지타이즈된 라인이 아마도 한반도 저해상도 파일을 가지고 작업한 것처럼 라인이 단속적으로 끊어졌다.

성격은 좀 다르지만 국가교통정보센터의 도로에도 비슷한 문제가 있다.

사용자 삽입 이미지
오버줌 상태에서 보면 라인이 매끄럽게 연속적으로 이어진 것이 아니라 단락적으로 지글거린다. 이 때문에 도로만 데이터 크기가 350MB나 되어 OSM 서버에 도로 데이터를 올리는 것을 계속 망설이고 있었다. 해안선 문제 뿐만 아니라, 불필요한 노이즈를 억제하여 도로 데이터의 크기를 줄이는 방법도 역시 필요하다.

이들 문제를 해결하기 위해 벡터를 보간하는 방법을 궁리했다. 첫번째 방법은 벡터의 연속된 인접 3점으로 구성된 삼각형의 무게 중심을 구하는 공식을 이용해 다음 지점을 구하는 것이다. 그림으로 그리면,

사용자 삽입 이미지
좌상단이 첫 포인트, 우상단이 마지막 포인트. 두꺼운 실선은 원래의 좌표 벡터. 푸른선은 3점 포인트를 이용해 구성된 삼각형, 붉은선은 ABC 세 점으로 이루어진 연속적인 삼각형의 중심을 따라 이어진 선.

이렇게 하면 anti alias를 한 것 같은 효과가 나타난다. 원래의 검정 실선보다 붉은 선이 좀 더 부드러워지는 것. 포인트 수는 원래 7개에서 5개로 줄었는데, polyline이 상당히 길 경우 이 알고리즘을 적용하면 포인트의 수가 대략 1/2로 감소한다. 즉 파일 크기가 50% 줄어든다. 식: 각 점 A,B,C가 (x1,y1), (x2,y2),  (x3,y3)로 구성되어 있을 때 삼각형의 중심은 xc = (x1 + x2 + x3) / 3, yc = (y1 + y2 + y3) / 3.

두번째 삼각형과 세번째 삼각형에서 지나친 평균화 때문에 라인이 뭉툭해진다. 이것을 개선하기 위해 알고리즘을 바꿔 마름모의 중심을 이용하되 마지막 3점은 삼각형으로 계산하는 형태로 바꿨다.
 
사용자 삽입 이미지
삼각형보다는 원래 형태가 잘 반영되었다. 사각형(마름모) ABCD의 중심점은 xc = (x1 + x2 + x3 + x4) / 4, yc = (y1 + y2 + y3 + y4) / 4. 이것을 일반화하면 xc = (x1 + x2 + ... + xn ) / n, yc = (y1 + y2 + ... + yn) / n. 어? 정리해 놓고 보니 좌표의 이동 평균을 취한 것이다. 기껏 머리 좀 굴렸더니만 하하. 이때 n이 증가하면 포인트 수는 줄어드는 대신 궤적의 변화는 둔해진다.

과문한 탓에 더 빠르고 훌륭한 알고리즘을 만들진 못했다. 어디 뒤져보면 꽤 괜찮은 알고리즘이 있을 것 같다. 이쯤 해두고 알고리즘을 구현했다. 간단한 프로그램을 작성해 원래의 해안선 Polished file을 변환해 보았다.

사용자 삽입 이미지
원본.

사용자 삽입 이미지
알고리즘 적용.

만들긴 했지만 해안선은 애당초 DEM처럼 정밀한 데이터가 필요하다. 운 좋게 그걸 구하게 되면 이건 폐기할 것이다. 일단은 이동평균법을 이용해 Garmin GPS용 해안선을 예쁘게 만들었고(OSM 서버에는 안 올린다), 주 활용은 도로 데이터의 크기를 줄이는 것이다.

일단 OSM 서버에 도로 업로드하는 것은 당분간 안 하기로 했다. 도로 작업은 앞으로 몇 단계로 나뉘어 진행하게 될 것 같은데... 1. interpolation. 2. merge lanes. 3. connect. 4. add route information.

어쩐지 삽질하는 느낌을 지울 수 없다. 이런 데이터는 어딘가 이미 있다. 단지 그 데이터를 구하지 못해서...
 
,
2009/06/12 ~ 2009/06/14 사이 서산에서 군산까지 자전거 여행을 했다.

금요일 저녁 출발. 서산가는 막차가 19:45. 사무실에서 17:30에 나와 집에 들러 후다닥 준비하고 반포의 센트럴 터미널까지 자전거를 몰고 갔다. 늦을까봐 30kmh대로 자전거를 몰았다. 오랫만에 자전거를 타서인지 터미널에 도착할 즈음에는 다리가 뻑뻑했다. 저녁 삼아 라면을 후루룩 먹었다.

사용자 삽입 이미지
63빌딩. 2009-6-16 해지기 바로 전.

21:20분 일반버스를 탔다. 사람들이 바글바글하다. 옆자리 아줌마가 삼각김밥을 하나 나눠준다. 사양했다. 서산에 도착하니 23:30. 저녁때 먹은 라면 만으로는 부족했는지, 배가 고파 시내에서 찜질방으로 가는 길에 치킨에 맥주 한 잔 할만한 곳을 찾아봤지만 보이지 않는다. 보석 사우나 찜질방에 자전거를 놔두고 찜질방 옆 편의점에서 캔맥주 하나 마셨다. 담배도 한 대 피웠다. 그 와중에 주머니에서 지갑을 떨궜다. 영수증 챙기려고 주머니 뒤지다가 알았다. 하마터면 지갑을 잃어버릴 뻔 했다. 자전거를 잘 갈무리 해두고 찜질방으로 들어갔다.

날이 흐릴 꺼라더니 쨍쨍하기만 하다. 8:00에 일어나 대충 샤워하고 담배 한 대 피우고 9:00에 출발. 원래 계획은 평택까지 지하철을 타고 가서 평택부터 안면도를 거쳐 군산까지 자전거를 타고 가는 것이었는데 거의 쉬지 않고 160km를 달려야 해서 부담스러워 서산 출발로 정했다. 태안이나 당진에서 숙박하지 않은 것은 서산에서 안면도 쪽으로 가는 길목에 굴밥집이 몰려 있어서다. 안면도에 들어가기 전, 그리고, 나가서 밥을 먹을 생각이다. 흔히 말하는 island price에 뭘 사먹고 싶은 생각이 없다.

어젯밤에 오랫만에 무리해서 달려서인지 다리가 묵직한게 불안하다. 아침부터 따가운 햇살을 받으며 22km를 달려 서산 A-B지구 방조제를 건넜다. 아침부터 가방을 맨 등짝에 땀이 흥건하다. 방조제를 건너자마자 왼편으로 식당들이 보인다. 당암리굴밥집에서 굴해장국을 시켰다. 반찬 예닐곱가지와 콩나물 해장국에 굴을 잔뜩 넣어 주고, 공기밥이 아닌 돌솥밥을 지어 주는데 꽤 맛있다. 꼭 전라도 음식 먹는 기분. 이렇게 맛있는 줄 알았으면 만 원짜리 굴영양돌솥밥을 시켜먹을 껄 그랬나?

그런데 어제 서산에 온 후로 가게나 식당에서 만난 사람들이 모두 조선족이었다. 중국에서 보던 조선족과는 달리 한국의 식당에서 보는 조선족에 대한 인상이 좋은 편이다. 성실하게 일하는 사람들. 당암리굴밥집 식당 주인에게 음식이 맛있다고, 가게 이름을 널리 알려주겠다고 말했다. 그런데 어떻게 알리지? 사진 한 장 안 찍었는데. 웹질해서 찾았다. 남면 당암리 1-1. 041-674-1446. 영양굴밥 10000원, 굴해장국 6000원. 생각대로 역시 이미 알려진 맛집이다.

갓길이 별로 없는 649번 지방도를 따라 달렸다. 대부분 평지라 견딜만했다. 서산에서 AB방조제까지 고개가 셋 있는데 고저차가 50m 가량이라 우아한 주행이 가능하다. 볼만한 것은 없다. 길을 따라가다가 청살모 로드킬은 무려 다섯 번이나 봤다. 승용차가 논길 옆 진창에 코를 쳐박고 있는 모습도 봤다. 그러고보니 변산반도 자전거 여행 때도 승용차가 박혀 있는 걸 본 것 같다. 차체가 망가지거나, 다친 사람은 없는 것 같다. 이게 혹시 길조인가?

649번 지방도를 타다가 77번 국도와 만나 우회전해서 안면 대교를 건넜다. 도로가 널찍하고 갓길도 잘 되어 있어 주행이 편하다. 백사장 해수욕장으로 들어가는 길로 난 해안도로를 타고 갔다. 다리를 건너면서 오른편으로 바다가 어렴풋이 보인다.
사용자 삽입 이미지
안면 해수욕장에 들러 해변을 거닐며 잠시 쉬었다. 바닷바람이 시원하다.

사용자 삽입 이미지
너른 모래사장에 간간이 사람이 보인다.

사용자 삽입 이미지
물이 빠진 진흙처럼 고운 뻘모래 위로 조개들이 꿈틀거렸다.

사용자 삽입 이미지
갑충들의 꿈지럭거리며 뻘에 새겨놓은 그들만의 나스카라인. 그래! 얘들아 내가 지켜보고 있단다.

아직 해수욕장 개장 전이라 사람은 거의 없지만 해수욕장 앞 매점에서는 관광지 가격으로 물건을 파는지 뭔가를 사서 나온 아저씨가 물건값이 어처구니가 없다며 일행에게 투덜거린다. 안면대교가 있건 없건 안면도는 섬이니까. 관광지 섬의 경제 시스템은 좀 유별나니까. 발에 물을 묻히긴 이른 시각이라 꽃지 해수욕장까지 가기로 했다.
사용자 삽입 이미지

길을 벗어나 해수욕장을 잇는 비포장길을 신나게 달렸다. 그늘이 적당히 드리워져 별로 덥지 않다. 오른편으로 바다를 보며 달리니 상쾌하다. 도요 해수욕장과 밧개 해수욕장을 지나 해발 50m짜리 저 앞에 보이는 야트막한 고개를 넘자 방포 해수욕장이 나타났다.

딱히 쉴만한 그늘이 없어 어정쩡하게 서 있다가 잠깐 쉬고 방포항으로 갔다. 방포항에는 조개, 굴 따위를 따는 무수한 사람들이 해변 여기저기 흩어져 있었다. 안면도 꽃 축제가 끝난지 얼마 안 되어서인지 꽃 축제장 철책 너머로  꽃이 잔뜩 피어 있다. 지나가는 시민을 위해 꽃축제장을 그냥 열어 놓으면 안되나? 돈은 벌만큼 벌었을텐데...

사용자 삽입 이미지
방포 해수욕장. 역시 뻘.

사용자 삽입 이미지
방포항 뻘에서 조개를 줍는 사람들

사용자 삽입 이미지

꽃지 해수욕장 말단에 있는 롯데 오션캐슬에 도착. 해변에 내려가 바닷물에 발을 담갔다. 아직은 물이 차가워서인지 해수욕을 즐기는 사람들은 보이지 않는다. 햇살은 따갑고 서풍은 차갑다.

사용자 삽입 이미지
아이한테 보여주면 좋아할텐데.

사용자 삽입 이미지

오션캐슬의 해변가 흔들의자에 앉아 잠깐 쉬면서 해변을 구경했다. 대천행 배편 시각을 알아보려고 영목항 페리 터미널에 전화했다. 요점은, 배편이 14:20에 있으며 주말에는 사람들이 몰려서 선착순으로 배표를 주는데, 언제 마감될지 모른다. 전화예약은 안된단다. 얼마나 일찍 가야 배표를 구할 수 있냐고 물으니, 그건 자기도 모르니 알아서 하란다. 친절도 하시다. 어영 부영 여기저기 기웃거리면서 자전거를 몰다보니 지금 시각은 12:00, 영목항까지 남은 거리는 20km 가량. 1시간 반 동안 달리면 13:30에 도착하는데, 배표를 구할 수 있을까?

젓산으로 묵직한 다리를 끌고(거의 한 달 반 동안 자전거를 안 탔다. 타봤자 아이 짐칸 안장에 태우고 찬찬히 몬 것이 고작이니 다리에 알이 배기는 건 시간 문제다) 하는 수 없이 영목항까지 달리기로 했다. 끝없는 팬션들을 지나치며 영목항에 도착하니 13:35이다. 허겁지겁 배표를 구하려고 들어가보니, 왠걸, 널널하잖아?
 
사용자 삽입 이미지

14:20 출발 예정인 영목-대천간 페리는 14:40쯤 출발. 한 시간쯤 멍하니 부두에 앉아 오가는 고깃배를 구경하며 배를 기다렸다. 안면도에서 사먹은 것은 700원짜리 아이스크림 하나 뿐.

사용자 삽입 이미지
삐끼떼처럼 관광유람선을 졸졸 따라가며 새우깡을 기대하는 갈매기들.

영목항 올 때까지 64.5km를 달렸는데 다리가 뻣뻣해서 군산까지 달릴 수 있을지 걱정된다. 배 안에 누워 30분쯤 자다가 깨어보니 대천항에 거의 다다랐다. 15:40분 도착.

사용자 삽입 이미지
대천항. 어 밋밋해.

대천항 앞에 있는 GS25 편의점에서는 도시락을 팔지 않았다. 대천항을 빠져 나오자마자 나타난 고개를 넘었다. 대천 해수욕장 앞 분수공원의 편의점에서도 도시락을 팔지 않았다. 해수욕장 구경을 하다가 해변 도로를 따라 자전거를 몰았다. 배가 고파서 힘이 안 난다.

사용자 삽입 이미지
대천 해수욕장. 노변에 레게바, 고고바만 있으면 파타야 같겠는 걸?

대천 해수욕장 거의 끝나는 지점에 있는 롯데리아에서 햄버거를 사먹으려 했더니 무수한 외국인들이 줄을 서서 기다리고 있다. 왠 외국인이 이렇게 많지? 롯데리아 아래에 있는 패밀리마트에서 제육덮밥 도시락과 포도쥬스를 3천원에 샀다. 전자렌지에 도시락을 데우고 있는데 옆에서 물건을 사는 외국인이 종업원이 예쁘다며 수작을 건다. 종업원은 영어를 모르는 척 한다. 편의점 앞 파라솔에서 도시락을 까먹었다. 왠지 처량하다. 편의점 도시락을 처음 먹어 보는데, 딱 그 가격에 걸맞는 품질이다. 경기불황 탓에 도시락이 인기라는데, 이게 왜 선풍적인 인기를 끄는 거지? 경기불황이면 입맛도 떨어지나? 밥은 썩 품질이 좋은데 반찬이라고 붙어있는 제육과 볶은 김치는 여름 날씨에 상하지 않게 하려고 별별 걸 집어넣은 듯한 괴이한 맛. 아, 다시 먹으라면 못 먹겠다.

밥 먹고 16:10 쯤 군산을 향해 출발했다. 군산까지 대략 70km인데, 1시간에 20km씩 꾸준히 달리면 해지기 전까지는 도착할 수 있을 것 같다. 어쩌다가 이 모양이 되었지? 대충 관광이나 하면서 천천히 달리려고 했는데...

날이 더워 가방을 등에 메고 있자니 땀이 흥건히 배어서 가방을 짐칸에 묶었다. 아침부터 별로 안 한가하게 달리기만 한 탓에 김이 새서 사진 찍기도 귀찮아졌다. 무작정 달리자. 죽도를 지나치고 독산 해수욕장도 들르지 않고 지나쳤다.

외국 여기저기를 다닌 탓인지, 아니면 어린 시절 원없이 즐겼던 동해의 질 좋은 모래 해변 탓인지,저번 변산반도 때와 마찬가지로 안면도의 해변은 그저 그랬다. 돈 주고 그런 허름한(?) 곳에 가서 섬이랍시고 주야로 일 없이 돈을 뜯긴다는 것이 사실 이해하기 어렵다. 아니 머리로 이해는 한다. 낭만과 꿈과 환상이 머리 속에만 머무는 관념이 아니라 시장에서 실거래되는 상품이니까.

그나마 자연 환경(?)이 해수욕장 같아 보이는 것은 대천 해수욕장 정도였다. 아무래도 워낙 좋은 해변만 봐서인지 다른 것들은 성에 안 찬다. 하지만 여름에 대천 해수욕장을 찾는 것은 미어터지는 인파 때문에 대략 정신나간 일처럼 보인다. 노련한 상인들이 어떻게든 등을 벗겨 먹으려고 안간힘을 쓰는 관광지다 보니 오고 싶은 생각은 안 드는 곳이다. 차라리 시간과 노력을 들여서라도 태국 해변에 가서 맛있는 음식과 저렴한 맥주를 편하게 즐기겠다.

장안 해수욕장과 춘장대 해수욕장을 들러가는 루트를 짰지만 해수욕장에 실망감이 커서 더 봐서 뭐하겠냐 싶어 가던 길을 돌아 논밭을 가로지르는 비포장길을 따라 갔다. 차라리 이 길이 훨씬 났다. 엉망진창으로 난개발해 놓은 관광지의 팬션들과 끝없이 이어지는 별 특색없는 해산물 식당들을 안 봐도 되니까. 시골주민이 뻔히 쳐다보면 연쇄살인범처럼 히죽 웃어주며 지나칠 수 있으니까. 서해안에 와서 해산물을 안 먹은 것을 후회하냐고? 천만에~

주욱 해안도로를 따라 갔다. 서풍이 계속 불어 자전거 주행이 부담스럽지 않았다. 관광지가 끝나자 주행이 한결 즐거웠다. 비록 짧은 구간이지만 오른편에 해변을 끼고 소나무 사이로 구불구불 이어지는 평탄한 일차선 도로가 아름답다. 하지만 아이스크림 사먹을 가게 하나 안 보였다.  서천을 지나 장항에 이르자 이제 거의 다 왔구나 싶은 기분이 들었다. 배가 고프다. 물은 다 떨어졌다.

장항은 입구부터 시내까지 줄곳 황량했다. 장항항에서는 포장마차를 열어 해산물을 싸게 파는 모양이다. 장항항을 지나쳤다. 들러서 하다못해 갑오징어 안주에 소주 한 잔 하고 싶은 마음이 굴뚝같지만 군산에 가서 저녁으로 우렁쌈밥을 먹고, 군산 해변에 즐비할 것만 같은 포장마차에서 술 한잔 기울이자고 마음 먹었다.

금강하구둑을 건널 때 쯤엔 파김치가 되었다. 대천항서부터 62km를 달렸다. 오늘 아침부터 133km를 달렸다.  금강하구둑을 건너, 탐조대 부근의 우렁쌈밥 식당(강촌마을식당이던가?)에 도착한 시각이 19:35분이다. 해가 뉘엿뉘엿 지고 있었다.

혼자 먹기 미안한 식당이지만 일인분을 주문해도 한 상 가득 차려준다. 쌈야채에 밥과 우렁쌈장을 얹고 꽁치 한 점 얹어 쌈을 해먹으니 목구멍으로 한없이 술술 넘어간다. 정신없이 먹었다. 우렁무침에 우렁쌈장과 우렁된장찌게에 꽁치를 준다. 가끔 서울서도 이렇게 맛있는 꽁치를 먹을 때가 있다. 이 동네 사람들은 이런 걸 매일 먹고 사니까 심성도 고울 것 같다. 식당은 많이 허름하지만 밑반찬 하나하나도 빠지지 않고 맛있다.

배불리 먹고 식당을 나오니 20:10분. 어두컴컴한 해안도로를 따라 시내로 슬슬 주행했다. 내일 안면도 가기 전에 쇼핑을 해야 해서 emart에 들렀다. 내가 사는 동네의 emart는 날도둑놈들 같은데(타깃 고객층을 정해 그들의 가격민감도가 높은 일부 품목만 싸게 팔고 나머지는 비싸게 팔아먹는 수작질로 emart의 구매합산액이 재래시장은 커녕, 동네 수퍼만도 못할 때가 많다. 따라서 난 꼭 필요한 공산품 구매나 피치못할 사정이 아니라면 대형할인점에 가지 않는 편)  군산 emart는 정말 할인을 한다. 막 장보고 싶은 기분이 들 정도다. 물건을 들고 계산대에서 봉투 구입을 망설이니까 종이봉투를 드릴께요 하면서 알아서 건네준다. 종이봉투는 무료란다. 아, 그러고보니 대형 할인마트에서 종이봉투는 무료로 제공하게 되어 있는데, 말하지 않으면 주지 않고 종이봉투 무료라는 것을 선전하지 않는다는 말을 어디서 들은 기억이 난다. 곰곰이 생각해보니 동네 대형할인마트는 딱 재수없고 계산 빠른 서울놈들 답게 장사를 너무 얍삽하게 잘 한다.

군산 시가지가 그리 크지 않다. 게다가 주행계획 짠다고 군산 시가 지도를 이틀쯤 뚜러지게 노려본 탓인지 밤 늦은 시각임에도 어디가 어디인지 대뜸 알아먹겠다. 하지만 포장마차가 보이지 않는다.

회 한 접시에 맥주 한 잔 할 수 있을까 싶어 해망동의 횟집타운으로 향했다. 21:30이 넘어서인지 횟집 대부분이 문을 닫았고 그 유명한 군산횟집만 광휘를 흩날리고 있었다. 횟집 들어가긴 뭣하고... 간단히 회 한 접시 먹을만한데가 없을까? 하지만 군산횟집과 몇몇 횟집을 제외하고 해망동 해변도로는 불이 꺼진 채 을씨년하다. 다시 시내로 발길을 돌렸다.

시내 중심가의 젊은이 거리에도 어디 노변에 앉아 맥주 한 잔 하기 적당한 곳을 찾아볼 수 없었다. 하릴없이 시내를 배회하다가 피곤하기도 해서 (벌써 주행거리가 160km를 넘었다) 찜질방을 찾았다. 패밀리 스파는 망했는지 불이 꺼져 있어 금강레저타운으로 향했다. 찜질방을 찾아둔 후, 편의점에서 500ml짜리 캔맥주 한 병을 사서 꿀꺽꿀꺽 들이켰다. 그냥 장항에서 갑오징어에 소주 한 잔 할 껄 그랬나? 그러면 맛있는 우렁쌈장은 영영 못 먹게 되는 거구나.

찜질방이 워낙 시끄러워 12시쯤 잠에서 깼다. 장소를 바꿔 사우나 수면실에 가서 잠자리를 청했다. 어떤 아저씨가 한 시간 반 내내 기침을 한다. 다시 잠에서 깨어 이번에는 찜질방 수면실로 갔다. 애들이 새벽 4시까지 게임을 하고 떠들어서 새벽녁까지 제대로 잠을 못 잤다. 애들한테 꽥 소리도 질러봤지만 한창 날뛸 나이인 개구장이들에게 소용이 있을리 없고. 대체 수면실을 시끄러운 게임실 옆에 만들어놓는 미친 센스는 어느 머리에서 나온 거야?

아침에 눈을 떠보니 8:30. 잔 것 같지가 않아 몸이 찌뿌둥하다. 잠을 설친 탓에 8:00 배를 타고 선유도 가는 계획은 물 건너갔다. 기운을 북돋을 겸, 아침이나 잘 먹자고 어젯밤에 시내를 돌아다니다가 본 횟집타운 입구에 있는 해장국집(시원복집 이던가?)으로 갔다. 원래는 해장국 거리에 있는 일해옥에서 진한 전주식 콩나물 해장국을 먹을 생각이었지만 이왕 먹을 꺼 좀 더 잘 먹어보자 싶어 부러 갔다. 목표는 매생이굴순두부, 가끔 매생이국을 먹고 싶을 때가 있는데, 매생이를 사다가 집에서 끓여 먹으면 번번이 실패했다. 왜 그런지 모르겠다.

뜨거운 매생이국을 호호 불어 먹다보니 이상하다. 국을 헤집어 보았다. 눈 씻고 봐도 굴이 없다. 주인 아줌마에게 말하니, 미안하다는 말 한 마디 안하고 굴을 물에 삶아 탁자에 놓고 간다. 매생이국에 그걸 부어 먹는데 굴 맛이 하나도 안 난다. 어제 아침 서산에서 먹은 굴해장국은 꽤 맛있었는데... 같은 냉동 굴이라도 이렇게 다르다니... 이건 뭐...
그래도 꾸역꾸역 배는 채웠다. 삭막하기 그지없는 공단의 너른 길을 따라 군산항까지 달리기 시작했다.

사용자 삽입 이미지
새로 짓고 있는 듯한 군산 산업단지의 어떤 공장. 군산 관광 팜플렛에는 군산 산업단지도 어엿한 관광지로 나온다. 산업시찰단 말고 일반인도 공장 견학이 가능하다는 뜻일까? 당면해서 일하는 사람들이나 여자들이야 공장 가면 구질구질한 환경에 먼지나 억수로 날리며 볼 것 없다고들 하지만, 거대한 기계가 무시무시한 파워로 작동하는 모습을 구경하는 것이 시간낭비라고 생각진 않았다.

10:20분에 쾌속페리표를 끊었다. 관광버스를 타고 온 아저씨들이 자전거에 관심을 보였다. 서산에서부터 주욱 내려오면서 만난 사람들이 내 자전거가 값비싼 것인 줄 안다. 여기저기 고장나서 손을 봐주지 않으면 끊임없이 징징 앵앵 비명을 지르는 유사 MTB인데.

11:55 안면도 도착. 호객하는 삐끼를 보자 흐뭇하다. 마치 인도에 온 것 같다. 하지만 아무도 나한테 관심을 가져주지 않는다. 쫄쫄이 바지 입고 자전거 타고 와서 그런 것 같다. 관심을 안 보여주니 조금 쓸쓸하다.

사용자 삽입 이미지
선유도 명사십리도 옛말이다. 지나가는 카트에 귀동냥을 해 보니, 이 모래는 관광철을 앞두고 2주 전에 퍼다 놓은 것이란다. 그러면서 하는 말이 '여기 뿐만이 아니라 이 것이 바로 대한한국 모든 해변의 현실입니다' 라고 말한다. 동해안도 그렇단 말인가?
사용자 삽입 이미지
몽돌 해수욕장. 어우 썰렁.

사용자 삽입 이미지
해수욕장과 망주봉. 매년 수백톤의 모래가 유실되는 플로리다 해안도 모래를 해변에 퍼 나르는데,  상당한 예산을 쏟아붓는 것으로 알고 있다.

사용자 삽입 이미지
합장하는 모양을 한 소망이 이루어지는 등대. 그럴듯한데? 이왕 이렇게 만들었으면 관광객들 사진찍기 좋게 손바닥 직교 방향으로 방파제를 조금 연장해 주지.

사용자 삽입 이미지
대체 물이 얼마나 빠진 거야?

사용자 삽입 이미지
장자도와 선유도를 잇는 다리 위에서 바라본 정경. 낚시배다. 어떤 아줌마가 '고기 많이 잡았어요?' 하고 소리치니까, '안 가르쳐주지!' 라고 말한다. 흘낏 지나가다 어떤 낚시꾼 아저씨의 휴대폰 통화내용을 들었다. '우럭이 그냥 막 잡혀!!!'. 꿀꺽.

사용자 삽입 이미지
장자도 가는 길에 바라본 망주봉과 해변.
사용자 삽입 이미지
멀리서 보면 풍광이 썩 괜찮지만, 썰물 때라 바닷물은 똥물 수준. 도저히 다리 담구고 물장구치면서 놀 엄두가 안난다.

사용자 삽입 이미지
이런 걸 왜 찍었지? 갈매기야 뭐라고 말 좀 해다오. 

선유도는 아름답지만 멀리 볼 때나 그렇고... 해변은 별로...

큰 섬이라 그런지 한전에서 발전기를 설치해 놓았다. 해수 담수화 시설도 있다. 이왕이면 태양광 발전 플랜트도 만들어 놓으면 좋을 껄. 고군산군도에서 새만금 방파제까지 거리가 얼마되지 않는다. 곧 있으면 새만금 방조제와 붙어있는 신시도에서 무녀도/선유도 사이를 왕복하는 배가 생길지도 모르겠다.

안면도나 선유도에 와서 느낀 점은, 두 섬이 고려할만한 가치가 있는 옵션이 되기에도 멋쩍을 정도로 별 볼 일 없는 섬들이다 정도? 또는, 이런데 와서 별 잔 정이 느껴지지 않는(타협 불가능한) 바가지에 시달리느니, 사활을 걸고 관광 사업에 매달려 바가지를 조직적으로 뿌리 뽑은 제주도에 가는게 낫다.

두 섬에서 관광객을 상대하는 장사꾼들의 악명이 특히 높았다. 나야 삐끼 천지인 곳들을 워낙 돌아다니다 보니 그런 것에는 가치 중립적이다. 장사꾼의 악명은 이유없이 확대 과장되는 것이 보통이고 사람들이 제 돈 들여 부러 관광지를 찾아와서 갈망하는 것은 좋은 서비스와 사람 냄새나는 친절과 환대인데, 그 환상이 깨지면 악다구니만 남는 것이지 싶다.

섬 사람들 인심이 박해진 것이 어디 섬사람들이 원래 악당이라서 그랬겠는가 하겠지만 이건 마치 '경제학 콘서트'에서 중고차 시장에 왜 좋은 차가 안 나오는지 설명하던 부분과 같아 보인다 -- 시설이나 서비스가 가격에 비해 현저하게 질이 떨어짐에도 불구하고 많은 사람들이 꾸준히(아니 미친듯이) 섬을 찾아오기 때문에 공급과 정보를 쥔 측이 주도권을 가지게 되어 상대적으로 낮은 수준의 서비스와 제품으로 이윤을 최대화하려고 시도한다.

수요가 줄어도 이 현상은 거듭 반복된다. 예를 들자면, 성수기에는 수요가 충분해 얼마든지 관광객을 뜯어 먹고, 비수기에는 비수기니까 관광객 한 명을 끝까지 정성스럽게 삥 뜯어 먹는다. 비수기에 숙소 가격은 떨어지지만 음식료 및 서비스 가격은 떨어지지 않는다.  때로는 가격은 그대로고 음식료/서비스의 품질만 오락가락한다. 내키는 대로 해주면 그만이니까. 정보와 서비스의 공급을 쥔 쪽은 이쪽이니까. 서비스 프로바이더로서 점점 노련해진 섬 주민들이 간혹 생색이라도 내면 수요자는 양질의 서비스에 기뻐 날뛰지만 사실은 조삼모사다. 비용이 결국 같으니까. 선유도의 민박집은 어느 집이나 '수퍼, 낚시배 출항, 자전거 대여, 그런데 바지락 캐는 호미는 공짜' 라는 서비스를 제공한다. 그야말로 마음을 다잡는(옥죄는) 완스톱 토탈 솔루션인데 섬 주민이 노련해졌다는 증거라고  본다.

선유도와 안면도는 그 점에서 조금 다르다. 가격에 비해 질이 떨어지는 숙박시설이 있는 선유도와 달리 안면도는 육지와 연결되어 있고 길도 뻥뻥 잘 뚫린 비교적 큰 섬이라 차를 몰고 얼마든지 섬에 들락거릴 수 있으므로 공급자가 '토탈솔루션'으로 정보의 독과점을 통해 가격협상력의 우위를 가지기 어렵다. 그래서 팬션만 죽어라고 발달했다. 언제든지, 어디로든 떠날 수 있는 사람들을 매료시키려면 숙박시설의 품질을 높이는 수 밖에 방법이 없기 때문이지 싶다.

선유도가 자전거 타기 좋은 섬이라고? 아니, 선유도에서 자전거 하이킹은 꼭 해볼만한 액티비티라고? 글쎄다. 더 정확하게 표현하자면 두 발로 걸어서 세 섬을 오락가락하기 불편하니까 자전거 대여가 사업이 된 것이다. 수요가 공급을 견인한 것이지 공급이 친환경 어쩌구로 계획적으로 자전거를 미리 도입한 것 같지 않다. 자전거 도로나 자전거 통행에 필요한 편의시설의 질이 낮은 것이 그 반증이다. 해수욕장 부근을 제외하고, 울퉁불퉁 대충 만들다 만 콘크리트 도로에 해안의 아름다운 풍광이 잡목숲으로 가려져 있다. 아래 동영상 보면 느낌이 올 것이다.

안전 펜스는 설치되어 있다. 오른쪽 잡목숲을 잘라내고 길가로 나무숲 터널을 만들어 놓으면  그야말로 환상적인 자전거 하이킹 코스가 된다. 하지만 그러지 않았다. 그래서 그냥 땡볕이 내리쬐는 밋밋한 시골길이 되어 버렸다.

현명한 소비자라면 관광 산업이 사람들에게 심어주는 부질없는 환상과 타협하지 말고, 적당한 가격에 질 좋은 풍광과 풍광을 더더욱 감칠맛나게 하는 제품과 서비스를 즐기기 위해 , 쓸모있는 정보를 얻어 나은 대안을 찾던가, 기대 수준을 낮춰야 할 것이다. 난 너무너무 현명해서 가끔은 즐거운 관광이란 대의명분을 잊고 멍청해진 나머지 이런 섬에서 식사 한 끼, 맥주 한 잔 조차 하지 않은 채 무더위에 수도승처럼 자전거 타고 뺑뺑이를 돈다.

섬에서 서비스를 사지 않으니 마음 편하고 좋다. 시시한 서울 강변로 달리는 것보다 배경을 바꿔 바다를 보며 자전거 타고 돌아다니는게 즐겁고 기쁘다. 만족스럽다.

여기저기 자전거로 돌아다니다가 더 돌아다녀봤자 볕만 따갑고 재미는 없을 것 같아 대장도의 장자봉에 올라가 보기로 했다. 왠지 전망이 좋을 것 같다.

사용자 삽입 이미지
장자봉 오르는 길. 전망이 그럴듯하다. 나는 회 먹고 하룻밤 즐겁게 보내러 온 것이 아니라, 자전거 타고 돌아다니며 이런 것을 보고 싶어 왔다. 어디 가서 이런 걸 보겠나?
사용자 삽입 이미지
할메바위는 나무숲에 가려 잘 안 보이고...  멀리 모래 퍼다 부은 해변이 어렴풋이 보인다.

사용자 삽입 이미지
장자봉 정상에서 바라본 장자도.

사용자 삽입 이미지
그외 기타등등 고군산군도. 아... 시원스럽다.

야트막한 산이지만 오르니 힘들다. 등산객들이 꽤 많다. 대부분 전라도 사람들이다. 전망은 아주 좋다. 선유도의 모든 산에 올라보고 싶은 생각이 굴뚝 같지만, 주말은 다 끝나가고 나는 아침 배를 놓쳤다.

어제 군산시내 Emart에서 구입한 빵과 오미자주, 쵸코바 따위를 점심으로 먹었다. 선유도에 들어와서도 워낙 현명한(?) 소비자이다 보니 풍광은 즐겨도 선유도에서 뭘 사먹을 생각은 없었다. 샤니 런치팩 블루베리&밀크는 emart 가격이 980원 밖에 안하는데 열량이 무려 330kcal나 된다. 국순당에서 나온 오미자주도 맛이 그럴듯 하다. 바닷바람을 쐬면서 정상에서 아름다운 섬 풍경을 바라보며 호젓하게 점심을 먹고 약주를 곁들이니 살짝 알딸딸한게 꽤 기분이 좋다. 정상에 올라온 사람들과 기분좋게 인사를 주고 받았다.

사용자 삽입 이미지
언제 어디서나 샤니 런치팩 블루베리&밀크.

사용자 삽입 이미지
국순당 명작 오미자 포터블 버전(75ml). 14도로 그리 달지 않으면서 맛있다. 양이 딱 포도주 반 잔 분량인데, 오미자 와인이라 불러주마. 집에 잔뜩 쌓아놓고 하루에 한 병씩 가볍게 마시고 싶다. 별 안주가 필요없다.

점심 먹고 느긋하게 산을 내려왔다.  볕이 강하지만 해풍 덕에 크게 더운줄 모르고 돌아다닌다. 하지만 바람이 안 부는 곳은 무척 덥다.

사용자 삽입 이미지
선착장에 줄 서서 손님을 기다리는 관광카트. 삐끼 아저씨 말에 따르면 선유도의 70%가 산악이라서 자전거 몰고 다니기는 힘들고(헛소리!) 오토바이도 좋긴 하지만(시간당 3만원? ), 카트를 타면 관광 안내를 받으며 즐겁게 섬을 돌아다닐 수 있단다. 선유도, 장자도, 무녀도를 걸어서 다니기는 힘들고, 적어도 자전거(시간당 3천원)나 오토바이는 타야할 듯. 선유도 및 인근 섬을 다합쳐 도로 길이는 약 22km.

14:40 선착장으로 돌아와 돌아가는 배편을 알아봤다. 15:30 옥도페리가 출발한다. 날 더운데 자전거 몰고 돌아다니려니 지친다. 표 산 다음 남는 시간에 무녀도 둘러보려던 것은 관뒀다. 가봤자 서해 똥썰물 밖에, 별 것 없을 것 같다. 군산항 배편을 구입한 다음 근처 수퍼에서 800원짜리 아이스크림을 사 먹었다. 뭍 수퍼보다 백원 비싸고 할인마트보다 55% 비싸다.

앉아서 배가 들어오고 나가는 것을 구경했다. 주말에는 관광유람선 타고 오는 것이 정기배편을 타고 오락가락하는 것보다 나아보인다. 군산에서 떠나는 관광유람선은 군산항이 아니라 군산회타운 근처의 유람선 선착장에서 오고가는 것 같은데(지나가다 얼핏 보았다) 단체 손님만 받는 것 같기도 하고... 잘 모르겠다.
사용자 삽입 이미지
선유도 선착장 주변은 온통 이런 패총.

사용자 삽입 이미지
선착장 근처에서 조개/바지락을 낚아 끌고 오는 몹시 실용적으로 보이는 배. 어마어마한 조개무덤.

사용자 삽입 이미지
두 배는 더 실용적인 배.

사용자 삽입 이미지
돌아오는 페리에서 바라본 낚시꾼들. 언제나 느끼는 거지만 한국의 바닷가에서 낚시꾼은 ubiquitous한 존재인데, 도저히 존재할 것 같지 않은 곳에서조차 종종 발견된다.

사용자 삽입 이미지
군산 산업단지에서 맥없이 돌고 있는 풍력 발전기. 참 기운 없어 보인다.

GPS 전지가 거의 닳았다. OSM에서 작업하려고 페리 루트를 지켜봐야 하기 때문에 GPS를 계속 켜 두었다.  앉을 자리가 없어 바람 맞으며 선상 난간에 기대 무미건조하게 흘러가는 풍경을 바라보았다. 저 멀리 새만금 방파제가 보인다. 요즘은 군산시와 인근 시가 새만금 간척지를 두고 땅따먹기에 열을 올리고 있는 중이다.

17:00 군산항 도착. 스트래칭 하다가 무릎이 뱃전에 부딫혀 까졌다. 피 봤다.

바람을 등지고 시내로 돌아가는 길에 해망굴을 통과. 일제시대에 뚫은 터널인 듯. 대마도에서 보곳하던 종류다. 해망굴 옆으로 월명공원 입구가 있었다. 올라갈까 하다가 관뒀다. 일단 배가 고파서 밥부터 먹어야겠다.
사용자 삽입 이미지
해망굴 맞은 편 미장원. 대체 얼마나 오랫동안 미장원을 운영하셨을까? 미장원 안에서 할머니가 마늘을 까고 있다. 손으로 쓴 글씨가 힘있고 예쁘다.

사용자 삽입 이미지
해망굴. 일제시대때 일본군이 판 땅굴. 장항에서 해변도로를 따라 군산까지 오면서 느낀 거지만 군산항이 항구로서 정말 끝내주는 것 같다. 항구가 너무 끝내줘서 일제의 수탈 사업에 조금도 차질이 없었을 것 같다.

근처 편의점에서 AA 2개들이 건전지를 구입해 GPS에 갈아 넣었다. 무려 2550원이나 한다. 어쩔 수 없이 전지를 사야 했지만, 환경에 좋지 않은데다 비싸서, 건전지 사 쓰는 것은 어느 모로 봐도 바보짓이다.

사용자 삽입 이미지
옥션에서 76000원에 판매하는 이런 풍력 발전기를 자전거에 달 수는 있는데, 값도 비쌀 뿐더러 실용적일지 의문. 사진을 무단 복제하면 안되지만 장사에 도움되는 것이니 이해해 주겠지 -- 옥션에서 '풍력발전기'로 검색.

사용자 삽입 이미지

EMart 건너편 철로변에 늘어선 집들. 집 맞은편은 화장실이라고 하더라. 야밤에는 나름 스릴 넘치는 볼일이 될 지도. 남들 사는 모습 찍는게 미안하다. 레바논에 있을 때 건물에 난 총탄 자국을 호들갑을 떨며 구경하는 관광객과 달리 사진 찍는 것을 다소 불편하게 여겼다. 사진 폭력 뿐만 아니라 사진으로 '강조'된 풍광도 좋아하지 않았다. 블로그 사진으로 보는 음식 사진에 대개의 경우 마음이 움직이지 않았다. 차라리 공기중에 촐싹거리며 나풀거리는 언어를 믿고 말지. 풍광이 충분히 아름다우면 빛으로 환상을 빚어내지 않아도, 보기에 썩 좋다.

군산 오기 전에 군산에 가면 간장게장 백반을 3000원에 먹을 수 있다는 말도 안되는 얘기를 들은 적이 있다. 호기심이 동해 부러 찾아본 집이 청기와아구찜집이다. 자전거로 그 지점을 찍고 찾아갔다. 일요일이라 군산 시내가 한가하다. 옷집이 몰려있는 시내 중심가에만 젊은이들이 돌아다녔다. 올해 유행한다는 치마바지를 입고 다니는 여자애들도 눈에 띄었다. 지역 사회 인프라 확충은 별로라도 옷 유행만큼은 어느 지방 도시나 거의 광속이지 싶다.

주택가에 위치한 청기와아구찜집 근처에는 생선구이 파는 고궁식당과, 진미식당을 비롯한 군산 3대 백반집이 모여있는 것으로 알고 있다. 청기와아구찜집에 들어가서 혼자 3000원짜리 게장백반을 시켜 먹는게 미안하지만, 일인분이라도 서비스가 잘 나오면 정말 괜찮은 집인 거다. 3천원 짜리 치고는 많이 푸짐하지만 간장게장은 그저 그랬다. 되려 된장국이 맛있다. 게장에 밥 비벼먹고 된장국을 뜨는둥 마는둥 하며 적당히 먹고 나왔다.

버스 시간이 여유가 있어 일제 시대에 지어진 건물 몇 개를 구경했다. 마음 같아서는 해망굴이든 히로쓰 저택이든 구군산세관이든 다 밀어버렸으면 좋겠다 싶었다. 내가 비록 집 없는 설움, 나라 없는 설움을 직접 경험하진 못했지만 나를 비롯한 후세가 영혼을 잃었던 일제 시대를 기억하기 위해 그것들은 보전되어야 마땅하다.

저녁을 먹었음에도 배가 고프다.  군산회타운 근처의 유명 식당인 쌍화반점에 들러 짬뽕을 주문했다. 면발이 여늬 중국집과 다르다. 잔맛없이 생생하달까? 다른 해산물은 일체 없고 야채와 싱싱하고 쫄깃한 바지락만으로 낸 빨간 국물맛도 특이하다. 조미료가 없다. 무척 담백한 맛이 난다. 별로 맵지도 짜지도 않은 짬뽕이 마음에 든다. 다 먹고 보니 바지락이 산을 이뤘다. 짬뽕이 아니라 매운 바지락 쫄깃 칼국수랄까. 썩 괜찮은 식사였다.

아이 줄 앙금빵이나 사갈까 싶어 60년 동안 가게를 운영했다는, 유명 빵집인 이성당에 들렀으나 일요일이라서인지 문을 닫았다. 시내를 빈둥거리며 자전거를 몰고 돌아다니다가 고속 터미널에서 서울행 버스표를 샀다.

19.40 출발. 천안 근처와 기흥 부근에서 잠시 막히고 3시간이 걸려 서울에 도착. 22:40분 자전거 몰고 집에 갈 생각을 하니 아득해서 자전거를 들고 지하철에 올랐다. 승객들이 많으면 자전거를 지하철에 싣기가 죄스러웠을 것이다. 집에 도착하니 23:20, 아내에게 미리 전화해 치킨과 생맥주를 시켜놓았다. 샤워하고 그것들을 먹고 마셨다.

군산에 가면, 군산맛집이란 곳에 들러 서울에서 보통보다 조금 잘 하고 저렴한 식당에서 먹는 것 보다는, 차라리 횟집에 들러 화끈하고 배 터지게 먹는게 나아 보인다 -- 혼자 주행하다 보니 제대로 된 횟집에서 먹기는 뭣하다. 8층짜리 휘황찬란한 군산횟집의 일 층 전체가 광활한 수족관이었다. 그렇게 큰 수족관이 있는 식당은 처음 봤다. 그래서 '군산횟집'이구나. 그래서 군산에는 군산횟집이 있는 거구나. 회타운의 실비집은 아마 '다찌집'인 것 같다. 그런데도 가보고 싶은데 혼자라는게 이럴 때 참 아쉽다.

GPS에 최근 작업한 지도를 넣고 다녔는데 쓸모없는 행정구역 이름이 너무 잘 보이고 쓸모있을 POI들은 잘 보이지 않았다. 개선이 필요하다. 등고선과 도로 데이터는 잘 맞았다. draw order가 잘못 되어 지형도가 다 나타난 다음에야 도로와 경로가 보인 것이 아쉽다.

주행 데이터:

집->센트럴터미널: 22km
서산->찜질방: 4km
찜질방->안면도 입구 굴밥집: 22.5km
굴밥집->안면도 영목항: 42km
대천항->군산: 62.4km
군산시내: 16.3km
안면도: 15.5km
군산시내: 20.5km
총 216.3km.

주행경로 중 어려운 곳이 없다. 고저차는 50m 이내이고(거의 평지), 북->남으로 이동 중 꾸준한 서풍 때문에 바람의 영향이 적었다. 대부분 갓길이 별로 없는 1차선 국도를 주행했다. 지방도  구간 대부분에서 차가 별로 다니지 않아 비록 갓길이 적어도 교통 흐름에 크게 방해되지 않았을 것이다(희망사항).

트랙로그 및 일정/비용
invalid-file

여행 일정 및 비용

invalid-file

트랙로


,
OSM 작업자가 슬슬 늘어나고 있는 것 같다. 아쉽게도 지금까지 지도 작업 때문에 컨택해 온 사람들은 모두 외국인이다. 한국인도 있을 테지만 조용히 작업해서인지(나도 마찬가지고) 서로 연락이 없다. 오히려 그 편이 좋을지도.

지도를 만들다 보니 한강이 이상하게 꼬여 있어 무슨 일인가 싶어 확인했다. 한강이 망가져 있다. 어떤 작업자가 한강을 수정하다가 날려 먹은 것 같다. 이번에는 좀 심각하다. 사실 그 작업자의 잘못은 아니고, 4월에 API가 0.6으로 업그레이드 되면서 way 하나당 node 수를 2000개 미만으로 제한해 놓아서, 한 번 수정했다가 저장하는 도중에 way 연결과 relation이 날아간 것 같다. 한강은 거의 5천 여개의 노드로 이루어져 있었다.

OSM에서는 아마도 DB 부담을 줄이려고 2000개란 제한을 둔 것 같은데 안 그래도 그것 때문에 커다란 폴리곤을 분할하는 작업이 필요해서 골치가 좀 아팠다.

한강 복구하다가 나도 날려먹었다. Potlatch가 API 0.6에 맞춰 1.00으로 업그레이드 한 후 화면에 node와 way가 좀 많다 싶으면 다운되기 일쑤다. Potlatch에서 작업한 내용이 업로드 중에 프로그램이 다운되면서 node중 일부만 전송되고 나머지가 전송되지 않아 그 동안 애써 복구한 한강 라인이 가볍게 날아가버렸다. 애당초 가벼운 작업에나 쓰는 Potlatch로 작업한 내 불찰이다. 속이 쓰리다.

JOSM으로 작업하려다가... JOSM도 그리 편한 프로그램이라고 여길 수 없다.  적어도 죽지는 않지만 java 프로그램이라서 그런지 자료가 좀 많다 싶으면(10MB 이상, 서울시만 현재 32MB) 작업이 거의 불가능해진다.

혹시나 하는 마음에 Mercaator 새 버전이 나왔나 살펴봤다. 이전 버전은 API 0.6과 호환되지 않고 자주 죽어서 작업하기가 힘들었다. 새 버전이 나왔다. 메르카토르로 한강을 다시 그렸다. 간신히 업로드하니 어언 4시간이 흘렀다.

메르카토르에서는 multipolygon 작업(relation 작업)이 좀 이상하게 되는 것 같다. multipolygon은 강 위에 떠 있는 섬 따위가 강과 relation을 가지고 있는 것들을 말한다. 강은 outer polygon이 되고 inner polygon으로 섬을 포함하는 것이다. 쉽게 말해 다각형 안에 다각형을 포함하고 그 관계를 지정하는 것.

한강의 노들섬 따위는 인간이 주거하지 않기 때문에 island 대신 islet 태그를 사용하는 것이 정석이다. islet이 공식 태그가 되었는지 아직 잘 모르겠다. 평소처럼 natural=land(육지)로 태그를 지정했다. 그렇게 해도 섬은 섬이다.

한강처럼 큰 강은 waterway=river가 아니고 waterway=riverbank로 tag가 지정된다. multypolygon은 JOSM에서 작업한 내용을 불러와 다시 만들어 저장했다.
 
한강은 대충 되었고, 조만간 4대강 유역 정비사업(?)도 벌일 계획이다. 사실 하고 싶지 않다. 수계 데이터만 구할 수 있으면 자동으로 할텐데 말이다. 그래도 way당 node 2000개 제한 때문에 골치가 아프겠지만.

API 0.6 개정 이후 별별 문제가 다 생겼다. 무슨 작업을 하건 이전보다 3-4배 이상 시간이 걸렸다. 작업을 끝내고(API 로 upload 후) 작업한 내역을 확인할 때마다 XAPI로 해당 지역을 다운받아 확인해 보면 적용되어 있지 않았다. (매번 하는 실수지만) XAPI와 API 사이의 적용이 되는 시차 때문에(약 10~15분)  변경 내역을 확인하려면 일정 시간 기다려야 한다. 이건 아직은 어쩔 수 없어 보인다.

osm 파일 Uploader를 만들다가 이상하게 changeset이 업로드가 안되는 현상을 목격했다. 이전에 JOSM으로 10MB 짜리 파일을 업로드할 때도 같은 현상이 벌어졌다. 490KB 짜리 파일은 업로드에 실패하지 않았다. 업로드가 잘못되면 중복 데이터가 이중으로 들어갈 우려가 있어서 작업량이 두 배로 늘어나기 때문에 다른 사람들은 업로드를 어떻게 했는지 살펴 보았다.

미국에서 TIGER(Topologically Integrated Geographic Encoding and Referencing)와 NHD(National Hydrography Dataset)  자료를 OSM으로 변환하여 업로드하려는 시도가 있었다. 자세한 내용은 귀찮아서 검색하지 않았다. 하여튼 요점은 미국에서도 개별적으로 지도 제작을 하던 사람들이 많이 있었고, 국가가 만들어놓은 엄청난 양의 자료가 있어서 그것들을 import하는 와중에 작업자들 사이에서 말이 많았나 보다.

내가 지금 하는 작업처럼, 이미 누군가 도로 작업을 해 놓은 것을 다 엎어버리고 표준 도로 데이터랍시고 올리면 과연 누가 좋아할까? 그들이 한 작업이 모두 일순간 삽질이 될 수 있는데! 하지만 그럴만한 값어치가 있다면야... 그리고 실제로 한국 지도 만들면서 가장 많이 삽질한 사람은 나다. 다른 사람들은 나만큼 수개월에 걸쳐 이렇게 OSM에 집착하지 않았다. -_-

OSM의 bulk upload 프로그램이 perl용으로 있지만 API 0.6과는 호환되지 않았다. 누군가 bulk_upload.py라는 API 0.6과 호환되는 python 스크립트 파일을 올려놨는데 그것도 문제가 있었다. 역시 내가 작성했던 프로그램과 마찬가지로 어떤 상황에서는 timeout이 걸리고 중단된다.

웹질을 열심히 해보니 OSM 메일링 리스트에서 딱 한 건의 article과 그에 대한 응답(서버 문제인지 클라이언트 문제인지 알 수 없다)를 찾았다. 업로드 에러에 관한 알맞은 답변은 찾지 못했다.

OSM이 비영리단체다 보니 OSM에서 생기는, 서버의 안정성 따위 온갖 문제들로 머리가 아프다. 질문자가 수정한 파이썬 업로더 프로그램이 내가 짠 프로그램보다 훨씬 간단해서(파이썬이 이렇게 좋은 언어였나?) 이걸 사용해 자료를 업로드하기로 했다. 게다가 통신 에러로 업로드 중 죽어도(요즘 OSM 서버가 엄청나게 느리고 간혹 접속이 안되는 등 별별 에러가 다 난다) 이전 업로드된 내역을 기억하고 있다가 죽은 시점부터 다시 업로드를 하는 아주 쓸모있는 기능이 있다.

파이썬 3.0.1에서는 스크립트가 실행되지 않아 2.6.2 버전을 Windows XP 머신에 설치하고 httplib2 파이썬 라이브러리를 설치했다. hashlib는 버전이 낮은지, 뭔가 문제가 있어 설치가 되지 않았지만 bulk_upload.py 작동에는 지장이 없었다.  python용 모듈은 mingw32나 Visual Studio 2008 버전에서만 제대로 컴파일 된다고 하는 기사를 봤는데 그거 설치하려면 또 세월이라 작동하는 정도면 굳이 모듈을 셋업하지 않았다. win32에서만 생기는 문제인 것으로 짐작되는 버그가 있어 소스를 조금 수정했다. 이 김에 python을 배워볼까?

개정된 업로드 스크립트는 changeset당 element 갯수를 5000개로 제한해 놓았고, 그 마저도 서버에 부담을 줄까봐 300개씩 끊어서 엘리먼트를 전송한 후 랜덤 딜레이를 30~90초 사이 준 다음 하나의 changeset을 전송한 다음, 다른 changeset으로 전환해서 진행하는 형태다.

최근에 서버를 바꿨다고는 하지만, OSM 서버가 어찌나 느리고 문제가 많은지 이 양반도 이런 식으로 밖에 업로드할 방법이 없었던 모양이다. 하긴 예전에 OSM 파일을 전송하는 프로그램을 짜서 돌릴 때도 엘리먼트가 초당 고작 1개씩 올라가는 꼴을 업무시간 내내 지켜보다가(스레드 10개가 동시 작업하고 있는 데도), 집에 퇴근했다가 다시 출근해서야 작업이 끝났다. 몇 시간 걸렸는지는 기억나지 않는다. 여기 블로그 어딘가 적어놓긴 했을텐데...

사무실 컴에 업로드를 걸어놓고 퇴근했다. 저수지 및 호수 데이터와 6만여개의 행정구역 데이터다. 집에서 새벽 1시쯤 원격 접속해 확인해 보니  업로드중 죽었다. 역시. 다시 실행했다. 다음날 아침 와보니 업로드가 끝나 있었다. 업로드한 파일 크기는 30MB 가량.

내가 OSM 작업을 처음 시작할 당시(올 3월 무렵) 남한 데이터 파일 크기는 8MB 였다. 남한은 안동과 대전, 서울 일부 지역을 제외하고 황무지나 다름없었다. 지금은(6월 현재) 230MB 가량으로 대폭 늘어났다. 이제 도로 작업이 남았다. 아무 생각하지 말고 그냥 확 올려버릴까? 도로 데이터가 350MB다. 올리는 것도 문제지만, 파일을 업로드하기 전에 좀 더 생각해 봐야겠다.

업로드가 끝나면 얼마나 후련해질까? 그동안의 삽질이 눈물젖은 과거가 되는 걸까? 1년에 한번씩 업데이트 되는 그놈에 '표준 도로'를 내년에 또 업데이트할 일이 생길까? 문화관광부 장관은 OSM 지도 보고 한국도 갈만한 깡촌이란 걸 깨달은 웨스터너들이 왕창 생기면 나한테  포상금을 쥐어주며 고마워할까? -- 사실 그런걸 바라고 OSM 작업을 하는 것은 아니다. 노무현 전대통령처럼 기록과 자료와 전승의 소중함을 안다. 그것이 아마도 내가 서양 문화에서 받은 가장 큰 영향일 것이다.

srtm2osm.exe 로 울릉도, 독도만 따로 변환했다. srtm2osm 프로그램은 더이상 업데이트가 이루어지지 않는다. 요즘은 groundtruth를 사용하는 듯 한데, groundtruth의 dem topo map은 작업중 프로그램이 죽어버리는 데다 생성된 osm 파일이 이해가 안 갈 정도로 이상해서 쓸모가 없다. 그래서 하는 수 없이 srtm2osm으로 작업했다.

사용자 삽입 이미지

게다가 울릉도 DEM 자료는 해발 980m 가량의 성인봉이 잘려 나갔고 군데군데 쥐가 파먹은 것 같은 구멍이 있다. 뭐가 잘못된 것일까.

사용자 삽입 이미지

globalmapper에서 다시 작업했다. 제대로 나온다. srtm2osm이나 groundtruth는 사용해선 안될 프로그램 같다. :)

울릉도, 독도는 DEM 및 표준도로 데이터와 coastline이 조금 어긋나 있었다. 그리고 어긋난 것은 지금으로썬 PGS의 coastline이 잘못된거지 싶다. 울릉도 표준도로는 웹 검색으로 구한 울릉도 트랙로그와 맞춰놓은  것이다.

지도 만들기 작업하면서 지도 만들고 MapSource로 볼 때면 MapSource가 동일 id의 지도를 볼 때 그 지도의 데이터를 캐싱해두기 때문에 제대로 작업이 된 것인데도 화면에 안 나타나는 경우가 있다. 그때는 맵소스를 띄우기 전에 C:\Documents and Settings\<사용자 ID>\Application Data\GARMIN\MapSource\TileCache 디렉토리의 파일을 모두 삭제한다. 그보다 간단한 방법은 만들어놓은 가민용 IMG 파일을 MapEdit에서 읽어서 확인하는 것. 하지만 전체 지도의 일관성을 확인하려면 최종 확인은 여전히 MapSource로 해야 할 것이다.

OSM2IMG를 개정했다. mkgmap.jar가 실행중 에러가 발생했을 때 에러 코드를 리턴하지 않기 때문에 사실 맵이 제대로 만들어졌는지 확인하기가 좀 힘들다. console output을 캡쳐해서 다만 에러 메시지만이라도 확인할 수 있게 했다. 또, MapSource에 설치할 때 registry에 자동 기록하고 registry 파일을 만들게 했다. 그리고 MapSource에 설치될 때 tile cache를 삭제해서 MapSource에 이상한 표시가 나오지 않도록 했다. OSM2IMG가 이제 썩 쓸만한 프로그램이 되었다. 이 김에 제대로 만들어서 배포할까?

한강 작업 때문에 메르카토르를 사용해 보고 어느 정도 쓸만하다 싶어 북한산 트래킹 코스 작업을 해봤다. Potlatch에서는 작업중 데이터를 날려 먹어 귀중한 3시간을 허비했다. JOSM에서는 WMS로 야후 맵을 출력하는 속도가 워낙 느려 답답했다. 메르카토르에서 두어 시간 작업하다가... 황당하게 프로그램이 다운되었다. 뭘 해도 쉽지가 않네? 간단한 작업에나 사용할 수 있을 듯. 메르카토르는 태그 에디팅이 좀 많이 불편한 편. 다음 버전 나올 때까지 기다려보자.
,
작업노트#7에서 언급한 지도 작업은 약 2주쯤 지연되었다.

사용자 삽입 이미지

2주 전에는 약 1주일 동안 OSM에 독도 그리기 작업을 했다. 그 동안 OSM 한국 지도에 독도가 없었다. 독도가 OSM에 아주 콩알만하게 나와 망망대해에서 섬을 찾을 방법이 사실상 없어 울릉도와 독도 사이에 관광 여객선 루트를 넣었다. google을 뒤져보니 누군가 울릉도에서 유람선을 타고 독도로 가는 동안 트랙로그를 남겨둔 것을 찾아서 작업은 쉽게 끝났다. 하는 김에 동해와 울릉도 관광선 경로도 완성했다.

사용자 삽입 이미지

아쉽지만 정확한 POI 정보가 없어 옛 선착장과 새 선착장 정도를 그리고, 어디서 줏어온 완전하지 않은 아웃라인(coastline)을 그려넣는 정도로 만족했다. 한국인의 독도에 대한 대단한 관심과 열정과 달리, 언제나 그렇지만(당연하게도) 데이터는 없다. 저 꾀죄죄한 독도의 몰골을 개선해줄 획기적인 방법은 없을까?

독도는 그렇다치고, topo 10m 작업과 전국 도로를 넣으니 자료가 무척 그럴듯하다.

사용자 삽입 이미지
사용자 삽입 이미지
완성된 두 지도를 MapSource에서 비교했다. 북한산 백운대 부근. 위엣 것은 SRTM3 10m, 아랫것은 비지니스 GIS에서 얻은 Topomap 30x30m 짜리. 파일 크기는 거의 비슷하지만, 등고선만 봐도 확연히 차이가 난다. OSM에는 topo map을 올릴 수 없다. 자료 자체가 너무 커서. 아래 지형도는 오차가 있는 듯 한데, 현재는 동측(easting) -30m, 북측(northing) -300m를 오프셋으로 주고 어거지로 맞춘 것이다. 전국의 4개 측점을 기준으로 재 보았으니 대충은 맞겠지만 아무래도 계산대로 나온 것이 아니라서 불안하다. 사실 등고선 지도의 정밀도를 측정할 방법이 없다. GPS자체도 믿을 수가 없고.

사용자 삽입 이미지


사용자 삽입 이미지
Map Level이 달라 두 지도의 등고선 표시 형태가 다르나, 어쨌든 그건 무시하고, 표준 도로 때문에 고속도, 국도, 지방도, 그리고 광역시에서는 시전역 주요도로 등이 나타난다. 아울러 이전 지도에서 도시 정도만 표시된 것과 달리 새 지도에서는 행정구역 대부분(시군구읍동리)을 보여준다. 여기에 water body(저수지, 호수 따위)도 추가되었다. 모든 주요 도로에는 번호와 이름이 붙어 있고 교차로 역시 이름을 갖는다. 그래서 POI가 15만개 가량으로 늘었다. 안 세봐서 정확한 숫자는 모르겠다.


사용자 삽입 이미지
사용자 삽입 이미지

그런데 문제가 있다. 지도는 한국에서 가장 작업이 잘 되어 있어 언제나 예로 들기 만만한 대전광역시. OSM에 있는 기존 도로와 표준 도로가 겹친다. 이걸 확대해 보면,

사용자 삽입 이미지
사용자 삽입 이미지

표준 도로는 중앙선 분리가 되어 있고 기존 도로는 중앙선 분리를 안 했다. 표준 도로는 중앙선으로 분리된 두 도로편의 벡터가 맞게 설정되어 있지만 기존 도로는 1차선 편도로 그려놓았기 때문에 방향 설정이 맞지 않다. 새 도로는 다른 도로와 연결(join)되어 있지 않다.

문제는, 추후 routable map을 만들 때 올바르게 방향이 설정된 도로 벡터가 필요하므로 표준 도로를 사용해야 하는데, 이렇게 되면 나를 포함한 남들이 수개월에 걸쳐 정성들여 작업한 기존 도로를 모두 지우고(그렇다. 그들의 노고가 완벽한 과거의 삽질이 된다) 연결이 안되어 있는 새도로의 연결을 일일이 손을 만들어줘야 한다(프로그램으로 자동으로 하려다가 대체 어떻게 해야 할 지 끔찍해서 중단).

일단 내가 작업한 도로(motorway, primary, secondary)는 자동으로 지우는 작업을 할 수 있을 것 같다. 이것도 시간이 걸리는 일이다. 남들이 만든 도로를 지울 때 어떻게 말해야 하나 싶다.

여하튼, 이 자료만 OSM에 올리면 사실상 한국 지도가 완성된다. 앞으로 진행할 작업을 생각하면 한숨이 나오지만...

이번 작업 정리:

사용자 삽입 이미지

남한 자료는 OSM 호스팅하는 Cloudmade에서 다운로드. 표준도로들.osm은 이전 표준도로 자료에서 레이어별로 뜯어낸 .mp 파일을 .osm으로 편의상 변환한 것들(곧 JOSM 등의 프로그램으로 OSM에 업로드할 것이다)로 여러개다. *.img는 topomap용 dem 데이터(다운로드 링크). globalmapper로 변환하니약 1시간 정도 걸렸다. mkgmap.jar는 *.mp 및 *.osm 파일을 입력으로 받아 garmin용 맵을 생성해준다. mkgmap.jar에는 이상한 버그가 있어 확장자가 .mp처럼 소문자이어야지만 처리한다. mkgmap.jar로 garmin map 파일 생성하는데 걸리는 시간은 대략 30분.

globalmapper용 파라미터 및 스크립트는 OSM 작업노트 #7: 작업 중간정리 참조.
mkgmap.jar 실행 파라미터:

java.exe -enableassertions -Xmx512m -jar "D:\gps\tool\mkgmap\mkgmap.jar"  --description="(C) 2009, luke" --mapname="34100000" --family-id=440 --product-id=1 --country-name="South Korea" --country-abbr="KOR" --code-page="1252" --name-tag-list="name:en,name:ko_rm,name" --transparent --ignore-osm-bounds --no-poi-address --add-pois-to-areas --lower-case --tdbfile --overview-mapname="44000000" *.mp *.osm

표준도로 데이터는 앞으로 1-2개월 안에 OSM 안에 삽입할 예정이다. 그러므로 부러 다운받도록 어딘가 올려둘 필요는 없을 것 같다. 나중에는 cloudmade.com에서 south_korea.osm.bz2만 다운받으면 되니까. 표준도로들의 원래 파일리스트:

고속도로.osm
국도.osm
지방도.osm
도심로.osm
교차로및지명.osm
국립공원.osm
저수지및호수.osm

GlobalMapper가 유료 프로그램이라 DEM의 MP 변환은 소스를 알려 줘도 쉽지 않은 일이 될 것 같다. 25개의 *.mp 파일들은 합쳐서 약 1GB 쯤 되는 데이터라 압축해도 어디 올려놓기는 뭣하다. 사실 정밀도 문제 때문에 공개한다는게 의미있는 일인지, 일단 한동안 검증부터 해봐야지 싶다.

한가할 때 최종 출력 파일만 공개할 생각이다. 설치도 번거로우니 간단한 인스톨러를 만들어야겠다.

,
이명박 정권은 전직 대통령에 대한 예우 차원에서 검찰 및 언론과 합심해(?) 노무현의 모든 것을 말려죽이려고 작정하고 최근 1년여 동안 심하게 괴롭히다가 파이널 블로우로 비열하게 당사자가 아닌 가족을 학대함으로써 양심의 죄를 물어 사실상 '포괄적 살인'에 준하는 자살을 이끌어냈다.
 
그게 사실처럼 보이나? 하나가 빠졌다. 언론에 잘 놀아났으니 언론 탓이 크다고 말할 수 있지만 애당초 심지가 얇은 국민은 그에게 화끈하게 등을 돌렸다. 노무현도 해먹었구나 그럼 그렇지. 죽어버려 하면서. 노무현 꼴 보기 싫어서 노무현 탓하고 그러다가 범죄자를 대통령으로 뽑아 놓고서는 그가 싫다고 말하기도. 내심 캥기고 양심에 걸리적거리는 것도 있는 모양.
 
정서가 메말라서인지 현 정권에 대해 행동과 판단에 장애를 느낄 정도의 격렬한 감정을 드러내진 않지만 이명박이 당선된 후로 머리속에는 SF가 떠오르고는 했다. 그가 저격당하면 시나리오가 어떻게 전개될까 -- 증오 살해가 아니라, 근미래 판타지라고 해도 좋을 정치계의 재편을 의미. 말이 씨가 된다고 이런 걸 블로그에다 끄적이다가 떡찰에게 잡혀가 추궁 끝에 판타지 소설을 그들에게 자랑스레 나불거리고 남은 여생을 감옥에서 보내면서 아내와 딸아이의 인생을 비참하게 만들 수도 있겠다 -- 내 머리속에 뭐가 들어있는지 궁금하긴 하다.
 
목숨에는 언제나 그럴만한 가치가 있다.
 
노무현 전 대통령이 피우던 담배가 클라우드나인이었구나. 구운몽과 청춘가를 연상했다. 이 풍진 세상을 만났으니 너의 소원이 무엇이냐. 거짓으로 판명났지만 담배 한 대 물고 꿈을 꾸는 것은 그럴듯 했다. 거짓으로 판명났지만, 그래도 죽은 자 대신 담배를 많이 피웠다. 노무현의 소원은 치열하게 서로 드잡이질하는 열린 토론으로써의 민주주의 구현이었지 싶다. 한국인의 정서에 안 맞고 어쩔 수 없는 민주시민 찌질이들의 다구리를 까부술 수 있는 제왕적 군림을 통한 사회통합과 경제 발전을 원하는 작자들이 많아서인지 그가 인생을 건 정치는 사정없이 배척당했다. 시끄럽고 정신 사납단다. 난 그의 회고록을 보고 싶었다. 구운몽 줄거리가 기억나지 않았다. 청춘가와 비슷할 것이다. 소울이가 자라서 내게 구운몽이 어떤 이야기인지 물어본다면 대답 대신 인터넷을 뒤져보라고 말하게 되지 않을까?
 
구글은 좀 그렇고... 천재 Wolfram이 만든 울프람 알파를 써보니 꽤 좋았다. 특이한 엔진이다. integral exp(1/x^2) 정도만 계산해 주는 것이 아니다. 시험삼아 이런 것을 입력해봤더니 답이 나온다: 70kg 30m terminal velocity -- 70kg의 정도 되는 사람이 봉화산의 30미터의 절벽에서 떨어질 때 최종속도는 어떻게 될까?
 
tonedeaf test에서 77.8% (Normal performance). 생각보다 점수가 안 나와 의아하다. 주의력이 떨어져서 그런가, 노무현 전 대통령 사망 후 일주일 내내 술만 퍼 마셔서 그런가.
 
마누라는 어딘가 놀러갔고, 기분이 우울해서 영화나 보자고 혼자 CGV IMax에서 하는 Star Trek: The Begining을 보러 갔다. 지금까지 스타트렉을 영화화한 것 중 가장 마음에 든다. 우후라 first name을 처음 들어봐 인터넷을 뒤져보니 이번 스타트렉에서 그녀의 이름이 처음 공개되는 것이 맞단다(훌륭한 팬 서비스). 각각의 인물이 화면에 소개될 때마다 기뻤다. 각 등장인물이 등장할 당시의 그 박수치고 환호성을 지르고, 다소 심하게 과장하자면 '교성을 질러야 할 곳'을 재대로 연출했다. 심지어 니모이도 모셨다. 빛나는 캐스팅에, 오리지널 시리즈의 마초스러움을 아무의 신경도 긁지 않으면서 세련되게 재현했다. 커크는 커크 스러웠고 스팍은 사랑스러웠다. 어떻게 된 것이 단 한 명도 미스캐스팅이라고 느껴지지 않다니 원! 실은 오랫만에 보는 스타트렉이라 뭐든 사랑스러운 것이다 -- 트집은 잠시 접었다. 시종일관 낄낄거리며 봤다. 하나둘셋넷, 영화의 첫 15분 동안 줄줄 이어지는 시퀀스는 스타워즈를 처음 봤을 때 느꼈던 강렬한 기쁨을 재삼 안겨주었다. 시원하다. 다시 보고 싶다. 속편이 기대된다.
 
Solar Water Disinfection -- 줄여서 SODIS, 오지에서 별다른 도구 없이 PET 병만으로 물을 소독해서 마시는 것. 수억의 목숨을 구하는 몹시 간단한 방법.
 
탈이념화된 후로는 때때로 내 인생 자체가 병신스러워 할 말이 많지 않다. 하지만 참호전을 해본 40대 386의 이야기는 세상을 바꾸기 위해 바다로 간 양들의 모험 처럼 로맨틱하게 생각하는 편이었다. 역할이 끝난 그들은 내 선배들, 꼬라지 한심해지고 째째해지고 비겁해진 선배들이었다. 그 다음이 내 차례다. 내 차례에는 드디어 피비린내가 가셔 어디 멀리 가서 전기를 가설하거나 SODIS 따위로 자원봉사나 하는 말년을 생각했다. 세월이 흐르면 후배들에게도 30년 후의 미래를 기획하는 자기 차례가 돌아갈 것이다. 세대를 전승해도 인간에 대한 내 비웃음과 절망은 결코 빛이 바랜 적이 없지만, 민주주의가 뭐가 좋은지 제대로 체험해 본 적이 없는 탓에 누구나 얘기할만한 건더기가 없어도, 아무튼 서로가 비겁해지지 않도록... 모쪼록.
 
의기소침한 사람한테 내가 '기운내'라고 말해봤자 도움이 되는 경우는 못 봤다. 의기소침한 사람에게 기운을 북돋아 주기 위해 내가 당차고 열심히 사는 모습을 보여준다고 해도 역시 도움이 되지 않았다. 마치 불활성 가스처럼 타인과 상호작용이 거의 없는 나란 존재에 사뭇 신비감을 느끼며 감탄하다가...  아차... 그러고보니 타인과 섞이지 않겠다고 십여년 전에 결심하고 인연을 자근자근 끊은 것이 기억났다. 불량한 현재는 불량한 과거의 총합인 것이다.
 
요새 좋아하는 애니는 에린, 짐승의 연주자 에린이다. '에린'이 야생사과라는 뜻이란다. 초록색의 눈동자, 누가봐도 딸같아 보이는 착하고 명석한 소녀. 어쩌면 우리 소울이가 절대 다다를 수 없는 경지일지도 모르겠다. 옥션에서 5만원짜리 유아용 자전거 안장을 사서 주말마다 아이에게 자전거를 태워줬다. 아이가 자라서 아빠와 자전거를 타고 멀리멀리 바람맞으며 돌아다닌 것을 기억하게 될까? 논밭 길 미류나무에 걸려 있던 석양과, 짧은 삶에 본 적이 없던 괴상하고 흥미로운 세계에 매료된 채 길을 잃고 헤메던 유년의 기억은 내 것.
 
사용자 삽입 이미지


노간지는 손주 이름을 노다지라고 지으려 했다지? 딸아이 이름 둘을 정해놓고 주변 사람들에게 투표를 받아 아이 이름을 지었는데 이름을 소여로 하지 못한 것이 조금 아쉽다. 투표는 언제나 내 뜻대로 되지 않았다.

give me a cigalette, give me a sign. give me a reason to walk the fire. 이 정도는 해병대 구호로도 괜찮다. 군대 판타지의 극강을 보여주는 유닛. 관전 포인트는 미션이 아니라 캐릭터였다. The Unusuals와 마찬가지로 The Unit도 이번 시즌을 끝으로 종료되는가 보다. 김이 샜다.
 
you'll remember me when the west wind moves upon the fields of barley... 오래 전 가라오케가 붙은 바에서 술김에 스팅의 fields of gold를 불렀다. 내 다음으로 어떤 여자가 같은 곡을 에바 케시디 버전으로 불렀다. 그 여자가 노래를 잘 불렀지만 우린 기차놀이에 바빠서 인디헤나나 들락거리는 이런 로컬리 바에는 결코 들어오는 일이 없는 희귀한 그 백인 여자가 누군지 잊어버렸다. 그야... 여자는 많았다. 전날 밤에도 술을 마셨고 전전날 밤에도 낯선 사람들과 마셨다. 헤아릴 수 없는 많은 밤에 술을 마셨다. 출장갔다가 돌아온 저번 주 밤 술 먹고 집에 돌아오는 택시 안에서 갑자기 스팅의 노래와 옛날 생각이 났다. 엊그제 술 마시고 택시를 탔을 때는 기사 아저씨가 자기가 지은 싯귀를 들려줬다. 여자애랑 헤어지고 나는 잠깐 불행했다. 그리고 오래오래 행복했다. 잠깐 보리밭에 바람이 스칠 때나, 내가 지나가는 중성미자 샤워에 당해 살짝 미쳤을 때를 빼고는. 아마 노무현도 그렇게 잊고 오래오래 행복하게 살 것이다.
 
'하드SF 르네상스'를 읽었다. 그렉 이건의 reason to be cheerful을 빼고 별로 주목할만한 작품은 없었다. 돌이켜 생각해보니 그 단편을 읽은 것이 십년이 넘었지만 아직도 내용을 생생하게 기억한다. 그때의 사정도. '갈릴레오의 아이들'도 읽었다. 피에 새겨진... 뭐라는 단편 정도만 기억났다.
 
하드SF 르네상스에서는 작가중 상당수가 90년 당시 혜성같이 등장하여 여러 사람 맛가게 만들었던 그렉 이건을 언급했다. 그의 단편을 처음 읽었을 때 나도 완전히 맛이 갔다. 정말 뛰어난 SF다, 그런 것이 아니라, 이게 바로 SF다, 이게 바로 SF가 한 20년 잃어버렸던 그것이다 란 느낌에 가까웠다. 그렉 이건의 몇몇 단편과 장편은 2009년인 아직까지도 그에 견줄만한 작품이 없다고 본다. 쿼런틴과 퍼뮤테이션 시티는 SF 장르에서도 보기드문 수작이다. 어쩌면 나처럼 SF에서 줄곳 언급하는 고전적인 경이감을 겪는 것이 아니라, 지구인이 외계인이 되는 심대한 소격화를 경험하게 될 지도 모르겠다.
 
그렉 이건의 소설보다 더 하드한 것을 보려면 SF쪽에서는 특별히 기대할만한 것이 없지 싶다. 하드SF란 것들 절대 다수에서 묘사되는 물리학은 7-80년대 수준이고 생물과학은 80-90년대 수준, 정보과학은 21세기를 턱걸이 했달까? <-- 농담일 뿐.
 
리사 랜들의 '숨겨진 우주'같은 책은 왠간한 SF에 등장하는 우주보다 더 흥미진진하고 황당한 우주가 등장한다. 그도 그럴 것이 대다수 과학교양서가 표준모형과 수퍼스트링, M이론에서 대충 마무리를 짓는데 랜들은 자신의 연구주제인 비틀어진 여분의 차원(5차원)을 대단히 그럴듯한 SF처럼 모델링했다. 놀랍도록 설득력 있다. 이론 물리학자나 실험 물리학자 사이에서도 워낙 흥미진진한 탓인지 그의 저술에 대한 논문인용수가 지난 십년간 3600회가 넘었다. 연초에 핑커의 책을 보고 히히덕거리며 올해 과학교양도서 1순위는 단연 핑커라고 확신했지만 랜달의 책을 읽은 후 생각이 바뀌었다. 리만 가설도 재밌었지만 미래가 캄캄했고, 핑커의 글도 그의 선구안이 입증되거나 그를 통해 새로운 세계를 보려면 한참의 시간이 흘러야 할 것이다. 하지만 랜들의 여분공간은 앞으로 십여년 동안은 LHC 실험을 통해 손에 땀을 쥐며 관전이 가능하다. 랜들의 책 때문에 정말 스릴이 넘치는 세상에 살고 있구나 하고 안도했다.
 
'황석영식 실용주의'에 대한 실용적 단평 -- 그렇다. 황석영은 낭만주의자고 환상주의자다. 그것보다는 그냥 소설가라고 생각. 하지만 '민족문학작가협회'인지 하는 단체의 '민족' 만큼은 시대착오적인 헛소리라고 평소부터 생각했다. 민족을 떼도, 문학이 남고 작가도 남고 협회도 남았다. 셋이나 남았는데 팔팔한 그것들이 민족 운운하지 않는 것은 불가능하다고 여겼다(문학은 젊고 열정적이고 푸르러야 하고, 시류를 사유하고 반영해야 하는데(?), 최근 세계 대부분의 국가에서 열렬하게 유행하는 것은 민족주의다 아주 무섭다). 저간 사정 때문에, 선진 또는 급진 문학작가협회가 되려면(더 지독하게 퍼래지려면) 최신 유행을 한 발 앞서 구질구질한 '민족'을 떼어냄으로써, 또, 민족을 95km 상공에서 바라보며 더더욱 그것을 초월하여 시대를 리드하는 트랜드세터가 되는 것이 바람직하다고 본다. 아님 민족적으로다가 글도 못쓰고 유행을 앞서가지도 못하는 찌질이 집단으로 길고 가는 똥이나 싸대고 벽에 똥칠이나 하며 장수하던가.

심난해 술을 많이 마셔서인지 횡설수설만 늘어놓았다.

사용자 삽입 이미지
5월 24일 오후 12시 아이를 데리고 대한문에 도착. 두 시간쯤 기다려 분향했다. 김이 좀 많이 새지만, 뒤는 남은 사람들에게 맡기고 편안히 가세요 노짱. 잠잠해지면 당신 비석에 절하러 갈께요. 안녕히.


,
작업 영역이 전방위적이라 정신 사나워서 중간 정리의 필요성을 느꼈다. 사실상 OSM 작업의 분수령을 이루는 시점이기도 하다.

사용자 삽입 이미지

OSM 작업을 하면서 지금까지 만든 프로그램과 라이브러리. 컬러 코딩: 파란색=Application, 빨간색=Library, 노란색=외부 라이브러리.

REW, NCAP, POI2OSM 프로그램은 다시 쓸 일이 없다. POI2OSM은 한글 로마자 변환할 때 참고하려고 가끔 쓰게 될 지도 모르겠다. 앞으로는 MP2OSM과 OSM2IMG 정도만 사용하게 될 듯. MP2OSM은 이미 perl 버전으로 누군가 만들어 놓은 것이 있으니 공개할 필요가 없고 OSM2IMG 역시 mkgmap의 front end로 사용하려고 만든 GUI wrapper이므로 공개할 일은 없을 것 같다. 결국 이 프로그램 전부는 한시적 작업을 위한 것인 셈.

이하 작업 설명에 사용하는 컬러 코딩: 연두색=입력 파일, 파란색=Application, 빨간색=출력 또는 작업.

사용자 삽입 이미지

POI2OSM은 세 종류의 입력 파일을 받는다. .CSV는 Garmin에서 POI Uploader 프로그램이 사용하는 포맷. .KML은 Google Earth에서 사용하는 포맷. .GPX는 GPS 관련 프로그램들 사이에 데이터 교환을 목적으로 만든 포맷. POI2OSM은 이런 입력 파일을 받아 .OSM을 생성하는데, 주로 POI 이름을 .OSM 포맷에 맞는 태그로 변환한다. 이때 사용하는 태그는 name(한글 및 영문 이름), name:en(영문 번역 + 로마자 발음 표기명), name:en_rm(로마자 발음 표기명)이다. 좌표 변환은 TM 중부 좌표를 변환하려고 끼워 넣었다. 예전에 얻은 자료가 TM 좌표라서 그것을 변환시키기 위해서다.

지하철역, 행정도시 등의 좌표 입력을 구글 어스에서 하고 구글 어스에서 생성시킨 .KML 파일을 .OSM으로 변환하기 위해서도 사용했다. 또한 GPS에서 얻은 POI 변환에도 사용했다.

사용자 삽입 이미지

REW/NCAP은 7만 여개의 POI 수집 작업 중에 사용하던 프로그램이다. 먼저 '대학교'라는 명칭 분류를 사용해 구글과 네이버의 검색 결과를 뒤져 대학교 이름들을 얻어오고 이것들을 Yahoo POI 검색에서 좌표를 얻어와 파일로 저장했다. 파일에는 명칭, 좌표 달랑 둘 밖에 없는데, OSM 파일로 변환하기 위해서는 적절한 tag가 가미되어야 한다. 예를 들어 신라호텔은 amenity=hotel 태그를 가져야 하고, 은평초등학교는 amenity=school 태그를 가져야 한다. 이런 명칭 분류는 수동으로 할 수가 없어 명칭에 포함된 특정 문자열을 검색해 그에 알맞는 태그로 변형시킨다.

최종 출력물 중 .KML은 이렇게 얻어진 좌표를 구글 어스에서 확인해(샘플 검사) 좌표 및 명칭이 올바른 위치에 있는지를 확인하기 위해서였다. 7만여개의 태그 분류는 거의 손으로 확인했지만, 7만개의 좌표의 올바름까지 다 확인할 수는 없었다. 프로그래밍과 별도로 명칭 수집과 분류에만 엄청나게 많은 시간을 소비했다. 문제가 많은 작업이고, 완벽할 수도 없었고, 이런 작업을 다시 할 일은 없을 것이다.

이렇게 해서 OSM에 넣은 자료와 손으로 그린 도로 지도(고속도로 따위)를 합치고 SRTM3 topo map을 합친 것이 최종 결과물이었다.

topo map을 만드는 과정도 만만치 않은 작업이라 어떻게 이를 단순화할 수 있는 방법을 찾다보니 osm의 몇몇 유틸리티가 dem2topo 프로그램과 마찬가지로 dem 파일로부터 등고선을 생성시켜 주는 것을 알게되었다. 하지만 이 프로그램 들을 사용해 topo map을 만들어 본 결과 이전 SRTM3 데이터보다 시간만 오래 걸리고 결과는 그저 그랬다. 애당초 SRTM3 데이터의 정밀도가 떨어지는 것이 문제인 것이다.

하여튼 이전 작업을 도표로 정리하면,

사용자 삽입 이미지

SRTM3 자료를 DEM2TOPO 프로그램을 사용하여 polished file을 만든 다음,

사용자 삽입 이미지

MapEdit와 cGPSMapper, MapSetToolKit, SendMap등의 프로그램을 이용해 .IMG를 만들고 이것을 MapSource에서 사용하도록 변환한다. 이 방법은 시간도 많이 걸릴 뿐더러 과정이 복잡하고, GPS에만 사용하는 데이터를 만드는 것 이상의 의미가 없다.

하여튼 DEM 자료의 정밀도가 떨어지는 문제부터 해결 방안을 찾기로 했다. 어떻게 방법이 없을까 고민하다가 http://www.biz-gis.com 사이트에서 상당히 정교한 DEM 파일을 다운로드 받을 수 있도록 공개한 것을 알게 되었다.  10m 정도에도 문제가 없어 보였다.

그래서 Topo map을 다시 작성하는 작업에 착수했다. 이번에는 globalmapper로 작업했다.

사용자 삽입 이미지

두 가지 문제가 있다. GlobalMapper의 script 버그로 25개의 파일을 스크립트로 변환하면 등고선을 10m 마다 따게 해 놔도 자기 멋대로 20m 단위로 따는 문제가 있다. global mapper의 버그로 추정된다. 25개의 파일을 일일이 하나 하나 변환하다 보니 시간도 시간이지만 변환이 아주 귀찮다. 변환 완료된 것을 보고 다음 파일을 또 변환하려니 일을 하면서 하루가 꼬박 걸렸다. --> 2009/05/22 Simplification factor를 지정해서 해결. dem 파일 변환에 사용한 스크립트:

GLOBAL_MAPPER_SCRIPT VERSION=1.00
UNLOAD_ALL
 
DIR_LOOP_START DIRECTORY="D:\GPS\DEM 2008" FILENAME_MASKS="*.img" RECURSE_DIR=NO
 
 IMPORT FILENAME="%FNAME_W_DIR%" PROJ_FILENAME="D:\GPS\DEM 2008\Korea TM.prj"
 
 GENERATE_CONTOURS INTERVAL=10 ELEV_UNITS=METERS SPATIAL_RES=30.0,30.0 FILL_GAPS=YES SMOOTH_CONTOURS=YES SIMPLIFICATION=3.0
 EXPORT_VECTOR FILENAME="%DIR%\out\%FNAME_WO_EXT%.MP" TYPE=POLISH_MP GEN_PRJ_FILE=NO TEMPLATE_FILENAME="D:\GPS\DEM 2008\template.mp"
 
 UNLOAD_ALL
DIR_LOOP_END

주의: .MP를 만들 때 MP Template file을 사용하지 않으면 metric을 meter로 지정해도 feet로 바뀐다. 스크립트에서 사용한 템플릿 파일(template.mp):

[IMG ID]
CodePage=1252
LblCoding=9
ID=02309485
Name=Korea
Elevation=M
Preprocess=G
TreSize=511
TreMargin=0.00000
RgnLimit=1024
Transparent=S
POIIndex=N
Copyright=2009, luke
Marine=N
Levels=4
Level0=24
Level1=22
Level2=20
Level3=18
Zoom0=1
Zoom1=2
Zoom2=3
Zoom3=4
[END-IMG ID

스크립트에서 사용한 프로젝션 파일(Korea TM.prj):

PROJCS["Transverse_Mercator",GEOGCS["Geographic Coordinate System",DATUM["WGS84",SPHEROID["WGS84",6378137,298.257223560493]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["scale_factor",1],PARAMETER["central_meridian",127],PARAMETER["latitude_of_origin",38],PARAMETER["false_easting",199960],PARAMETER["false_northing",499700],UNIT["Meter",1]]

두번째 문제: 원본 DEM 자료의 projection이 TM인데 False Easting 20000, False Northing 50000, Scale Factor 1.0, Central Meridian 127.0, Latitude of Origin 37.0 으로는 남쪽으로 300m, 서쪽으로 65m의 오차기 있다.

어디서 들은 풍월이 있어 이런 저런 파라미터를 변경해 봤지만 문제가 해소되지 않았다. 그것도 일률적인 것은 아니었다. 데이터 파일에 따라 각기 다른 프로젝션으로 시도해 봤으나 역시 조금씩 에러가 있었다. 어쩌면 MapSource의 버그 때문일지도 모르겠다. MapSource는 이전 지도 데이터를 캐싱해 두기 때문에 .IMG 파일을 새로 만들었음에도 이전의 잘못된 프로젝션에 의해 나타난 데이터가 다시 나타나기 때문인지도 모른다.

하여튼 그래서 프로젝션 파일을 하나 만들고 파라미터를 조정해서 최대한 오차를 줄였다. False Easting 199960, False Northing 499700, Scale Factor 1.0, Central Meridian 127.0, Latitude of Origin 37.0 이건 아무리 생각해도 편법이다.

이 자료에는 울릉도가 빠졌다. 울릉도 부분은 SRTM3에서 가져와야 할 것 같다.

이렇게 해서 만든 10m Topo Map은 SRTM3에 비해 현저하게 부드러운 등고선을 보여준다. topo map이야 매일 작업하는 것이 아닌 이상 정확한 프로젝션과 엘립소이드 정보를 알면 더 이상 바랄나위가 없는 등고선 지도를 만들 수 있게 된다.

그 다음에 얻은 .MP 파일은 한국 전역의 고속도로, 국도, 지방도 및 분기점 정보다. 여기에 면 단위 행정구역과 저수지 정보 등 완전히 노다지를 얻은 기분으로 데이터를 쳐다봤다. GNS에서 16만개의 POI 정보를 얻기는 했지만, 이 자료는 여태까지의 OSM 작업을 대부분 삽질로 돌려버릴 정도로 임펙트가 강했다.

당장 .mp 파일을 .osm 파일로 변환시키는 프로그램 제작에 착수했다. 뭐 그래봤자 작업일수로는 이틀 걸렸지만.

사용자 삽입 이미지


mp2osm 프로그램을 누군가 perl, python으로 만들어 놓은 것이 있었다. 하지만 굳이 그 프로그램을 사용하지 않고 새로 만든 이유는, 이름 변환 따위의 후반부 작업을 통합하기 위해서다. *.mp 파일의 데이터 크기가 300MB 가량이라 스크립트의 느린 실행속도를 감내하기도 그렇고, 이왕 OSM 작업을 하면서 만들어놓은 각종 라이브러리가 있으니 차라리 프로그램을 짜는게 낫다고 생각.

mp2osm 프로그램은 아직 multipolygon 처리를 하지 않았다. 나중에 수계 데이터 쪽을 다루게 되면 그쪽 작업이 필요하다. 두번째로 *.mp 파일의 coastline이 OSM의 coastline보다 정밀해서 그것만 따로 따낼 방법을 찾아봐야겠다.

하여튼 이렇게 만든 .osm 파일을 이용해 MapSource용 .tdb와 GPS용 .img를 만들려니 문제가 생겼다.

사용자 삽입 이미지

*.osm 파일을 *.img로 변환시키기 위해 mkgmap.jar를 사용해야 하는데, 이렇게 만들어진 *.img는 MapsetToolkit/cGPSMapper에서 통합한 후 MapSource로 읽어들일 때 오류가 발생한다. 다 안되는 것은 아니고 .osm을 변환한 .img 중 딱 한 파일만 안되서 대체 뭐가 문제인지 원인을 찾느라 시간을 많이 소비했다. 아무래도 MapsetToolkit이 사용하는 cGPSMapper와 mkgmap 사이의 궁합에 뭔가 문제가 있는 것 같다.

이 방법은 예전부터 마음에 들지 않았다. 툴이 일원화 되어 있지 않고, 버그 투성이에, 특히 freeware 버전의 cGPSMapper는 routable map도 만들 수 없다. 그래서 mkgmap만 가지고 작업해 보기로 했다.

사용자 삽입 이미지

mkgmap.jar가 java 프로그램인데다, 옵션은 cGPSMapper만큼 많아 무슨 작업을 하려면 옵션 때문에 정신이 사나와 mkgmap.jar를 실행할 수 있는 GUI front-end인 OSM2IMG을 만들었다. cGPSMapper를 사용하지 않으니 만사가 다 해결되었다.  

사용자 삽입 이미지

.OSM 파일은 JOSM을 이용해 OSM database에 업로드할 수 있다. JOSM 버그인지 OSM 사이트의 버그인지는 확실치 않지만 10MB 정도의 .osm 파일을 JOSM으로 업로드하다가 중단되었다.  API가 아직 안정화되지 않아 다수 문제가 있지만 차차 안정화될 것이다. JOSM 띄우는 것도 버거워서 uploader를 만들었으나, API가 0.5에서 0.6으로 바뀐 부분을 반영하지 않아 호환되지 않는다.

내친 김에 topomap 자료인 10m 짜리 .mp 파일 중 용량이 비교적 작은 제주도를 mp2osm으로 변환한 후 osm2img와 mkgmap으로 .img를 만들어 보았다. 잘 된다.

궁극적인 목표는 보라색 테두리를 친 부분이다. 누구나(한국인을 비롯한 외국인 누구나) OSM에서 한국 지도 자료를 다운받아 mkgmap만 가지고 Garmin용 지도를 만들 뿐만 아니라 웹 상에서도 지도를 활용하는 것이다.
앞으로 할 작업 리스트

* 표준도로 mp파일에서 할 일들

* 작업 정리
* DEM 10m에서 해안선 뜯어오기
* 왜 25m의 오차가 생기는 것일까?
* 울릉도 도로 다시 테스트
* DEM 파일로부터 .osm으로 직접 변환 시도.
* 추후 표준도로 mp가 업데이트 되었을 때 일괄 변경 방법
* 기타 지도 작업

* 가져온 태그 정리(산,들판 따위 태그가 있음)
* 시/군/도 경계선 만들기
* osm

* korea map -- 기존 osm에서 한꺼번에 지울 방법과, 어떻게 지울지 방법을 궁리
* josm에서 큰 osm 파일을 보낼 때 fail 나는 이유 알아볼 것
* OSMbroker 개정(API 0.6)해서 업로드 가능하도록.

* mp2osm, osm2img 프로그램 업그레이드

* multipolygon 구현
* target dir 설치
* registry auto update
* registry read
* 표준도로파일에서 가져온 데이터의 태그 검증
* 지명및분기점.osm에서 불필요한 태그 정리

* mkgmap

* routable map을 만들려면 필요한 정보
* .osm contour 전체 파일 변환 시도
* level : 0:24,1:22,2:20 <-- 의미 명확하게 정리
* 맵의 레벨 정하기: osm_garmin_map.csv
* 개별 파일 단위로 옵션 주는 것
* .img 파일만으로 .tdb 생성
* style define

,

바람을 피하는 법

잡기 2009. 5. 14. 16:57
젊은이들이 남자, 여자를 '남자 사람', '여자 사람'으로 부르나 보다. 성별에 굳이 '사람'을 붙이면 화자에게는 상대 성을 존중하는 표현처럼 느껴지는 것 같다. 청자중 일부(물론 본인)는 그렇지 않다; 내 탓도 네 탓도 부모 탓도 아닌 성차에 존중을 담을 이유가 없어서. 아울러 남자 새끼, 여자 새끼 라고 부르며 욕하거나 히히덕거릴 것도 없지만. 그냥, 애들 하는 행동이 희한스러워서.

이 나라 저 나라 일없이 돌아 다니다가 굳이 그들의 가난이 비참하다고 생각지는 않았지만, 이 동네에 전등불이 있으면 아이들이 저녁 때 공부해서 40년 후 이 나라에서 달 탐사선을 띄울 수도 있겠구나 하는 생각이 들곤 했다.

전세계 오지에서 수년 전부터 인기를 끌고 있는 피코수력발전기(Pico Hydro)에 관해 알아봤다. 조그만 저수지(10m^2 정도?)로 낙차를 만들고 지름 15cm의 5-10m 길이의 플라스틱 도관으로 물을 집중해서 흘려 보내 중국제 20$ 짜리 발전기의 수차를 돌려 200~500W의 가량의 전력을 얻어 오지의 불을 밝힌다. 설치나 구성이 쉽다. 작은 시냇물 하나만 있으면 그런 발전기를 돌릴 수 있는데, 문제는 저질 부품을 사용해서 부속 중 고정자와 터빈의 고장이 잦다는 것. 싼게 비지떡이지. 달리 말하자면 100$ 내외의 제대로 된 부속을 사용하면 컴컴한 밤에도 전구 2-3개와 TV, 라디오, 노트북, 휴대폰 등을 장기간 사용 가능한 전력체계를 구축할 수도 있을 것 같다. 그런 발전기의 정비라고 해봤자 이물질 제거, 터빈 청소, 베어링 교체, 그리스 먹이기 정도? AVR이나 PIC 따위 프로그래밍과 전력 제어 회로 구성 따위는 나 혼자서도 할 수 있겠다.
 
KSLV-I 이름이 '나로'로 결정되었다. 예쁜 이름이다.

이것저것 바빠서 요즘은 주마간산 격으로 읽는 '신문'에 눈에 띄는 기사가 보였다. [SF세상읽기] 정보와 신체, 자아의 술레잡기 -- 누군가 했더니 닭아이님이구나. 스트로스의 엑셀러란도는 글에 쓰인 것처럼 막가는 소설인데 굉장히 웃겼다. 하여튼 그가 쓴 소설들은 다 웃긴데다 읽고난 한참 후에도 다시 생각나는 것들이다. 스트로스나 닥터로우의 장편은 아예 번역된 적이 없어서 아쉽다고 해야할 지...  근근이 주어지는 SF로 살아가고 있다. 그러다가,

진 마징가Z
최근 시작한 '진 마징가 Z'의 나레이션: "팔이다! 가슴이다! 거대한 얼굴이다! 그렇다. 그것이야말로 하늘을 찌를 듯한 흑철의 성. 마징가 Z!!"

그저 좋다.

동쪽의 에덴
동쪽의 에덴. 오프닝송을 오아시스가 불렀다. 귀여운 그림체. 이거 SF인가? 재미없어 보인다.

옛속담에, '하늘은 스스로 삽질하는 자를 삽으로 두들겨 팬다'고 하지 않았던가? 공개되어 있는 전국 국도, 지방도 shp 파일을 보고 그간 OSM에서 도로 그리느라 삽질한 것 생각하면 눈물이 앞을 가린다.

반포대교 앞에 뭔가를 만들어 놨다. 반포대교에 만들어놓은 분수쇼는 기네스북에 등재되었다고 한다. 한강 부근의 강한 바람을 고려하지 않고 설계한 탓에 그걸 전부 틀어놓으면 잠수교 밑을 지나가는 시민이나 차량은 홀딱 젖게 생겼다. 개장식 때 잠깐 틀었다가 욕을 바가지로 먹은 모양이다. 멋있을진 모르지만 설계할 때부터 뭔가 좀... 물값도 많이 들어서인지 하루 중 제한된 시간에만, 그것도 풍향을 고려해서 분수쇼를 한다고 한다.

얼마전 반포대교 앞에서 개장식을 하는지 인파가 버글버글 한 가운데  잠수교 길을 통제했다. 한강에서 유일하게 다리 위로 낑낑매고 올라가지 않고 자전거가 지나갈 수 있는 잠수교를 행사 한답시고 통제하니 여기저기 실랑이가 벌어졌다. 뭐 나야.. 생까고 기도같이 생긴 것들이 만들어놓은 통제선을 밀고 들어가 잠수교를 건넜다. 몇몇은 나처럼 건넜지만 대부분은 선량한 시민들이라 실랑이만 벌이다가 물러난다.

자전거 도로 건설하는 것에 별로 감흥이 없다. 서울 및 경기도 지역에서 일반도로에 자전거  병행 도로를 만든다는 얘기를 들었다. 통행량이 얼마 되지도 않는 자전거 도로(향후 추산 교통분담량을 10%로 잡았단다. 연중 맑은날 220일 기준 140일 가량 비게 될 도로)를 위해 1m 폭의 자전거 도로를 설치해 놓으면 차도를 줄이던가 보행자도로를 줄일 수 밖에 없을 것 같은데?

일반 도로의 경우 교통흐름을 방해하면서도 큰 쓸모는 없어 보였다. 자전거 2대가 나란히 지나갈 길도 안되면서 십중팔구 자동차 주차장으로 쓰일 것이고 버스/택시의 승하차 때문에 자전거 운행자들 안전하라고 만든 자전거 도로가 어차피 안전하지 않기는 마찬가지니까.
 
한국, 특히 서울 도심은 애당초 자전거를 위한 배려가 전혀 안 되어 있다시피 하다. 자전거 도로를 만든다면 자전거 통행이 가능한 연결로/연계 도로를 만드는 것이 옳을 것 같다. 멀쩡한 도로의 일정 용적에 자전거 통행 전용도로를 할당하는 것이 아니었으면 했다. 만일 그런 자전거 전용 도로라면  자동차 운전자와 자전거 주행자, 행인들끼리 각자 서로의 권리를 주장하다가, 결국 손해보는 쪽은 자전거가 되지 싶다.

마누라한테 핀잔을 들으면서도 어김없이 자전거를 탔다. 방문할 때마다 행주산성의 원조 국수집에서 한 번 국수를 먹고, 다음에 그 옆 가게에서 다시 국수를 먹었다. 총 세 번 국수를 먹었다. 원조국수집 국물이나 면이 좀 더 나았다. 어디 갈데가 없어서 한강만 죽어라고 뺑뺑이 돌고 있는 신세가 좀 처량하다. 한강에는 언제나 바람이 불었다. 자전거 타면서 언제나 바람을 맞았다. 바람에 맞서면 힘들다. 바람은 주행의 제1조건처럼 일반적이었다. 근육이 단단해지자 내가 바람을 요리조리 피해가는 것 같은 착각을 했다.

"알드는 우리 신들에게 침을 뱉어요"
"뱃사람은 바람에 침을 뱉는 건 어리석은 짓이라고들 하지."

르귄의 소설 '보이스' 중.  자전거 타는 사람도 바람에 침을 뱉는 건 어리석은 짓이라고 말할 것이다. 보이스는 뭔가를 자꾸 생각나게 했다. 마음에 걸려서 한켠에 두고 생각하다가 꿈 속에서  hafez를 봤다. 하페즈는 이란에서 가장 사랑받는 시인이다. 그의 무덤에 적힌 싯구를 옮겨 적었던 생각이 났다. Where doth thy love's glad message, echo for my rapt soul to rise? This sacred bird from the world's meshes, yearns to its goal to rise...  완전한 싯구를 찾았다. 구글에서는 영어로 번역된 그 싯구가 이 세상에 두 페이지 밖에 없음을 알려줬다.

Where doth Thy love's glad message, echo for my rapt soul to rise?
This sacred bird from the world's meshes yearns to its goal to rise.
 
I swear, wilt Thou Thy servant name me, by all my love sublime
Higher than my desire of lordship o'er space and time to rise.
 
Vouchsafe, Lord, from Thy cloud of guidance to pour on me thy rain,
Ere Thou command me as an atom from man's domain to rise.
 
Bring minstrels and the wine-cup with thee, or at my tomb ne'er sit:
Permit me in thy perfume dancing from the grave's pit to rise.
 
Though I am old, embrace me closely, be it a single night:
May I, made young by thy caresses, at morn have might to rise!

mausoleum of hafez at shiraz
쉬라즈에 있는 하페즈 무덤. 당시에는 뭐하는 작자인지도 몰랐고 젊은 여자들을 비롯한 이란인들이 무덤에 경배하며 그의 싯구를 읽는 것을 경이롭게 쳐다보았다. 7년 전에 찍은 사진.

설마 르귄이 보이스 쓰면서 하페즈를 떠올린 것은 아니겠지? 시를 별로 좋아하지 않지만 디반을 좋아했다. 하페즈의 재능(gift)은 광범위한 감정이입으로 유의에서 유의로 이어지며 마치 레이저같이 결맞은 마법으로 아름다운 언어를 구사하는 것... 설령 그것이 파르시가 아니어서 외계인에게 완전한 감각의 폭풍을 경험케 해주지 않을지언정 -- 워즈워드의 싯귀가 굳이 한글이었더라도 크게 상관없던 것과 마찬가지였다. 르귄의 gift에서는 아이러니도, 비극도, 장대한 서사의 발자취도, 크리스털처럼 반짝이는 문장도 구경하지 못했다 -- 두 촌뜨기가 깝깝한 고향집을 떠나 개고생하러 간다는 평범한(별 거지같은) 서사였다. 반면 voice는 읽기 편했고, 좋았다. 다음 권인 파워를 도서관에 신청해 놓고 아직 읽지 못했다. 약오르게도 신청해놓으면 누군가 덥썩 먼저 물어갔다. 한두 번이 아닌데, 소이어의 멸종을 그래서 아직도 못 읽었다. 아이는 스미소니언 공룡 전집을 즐겨 읽고 공룡 장난감 가지고 놀고 있는데, 난 이게 뭐냐?

예전에 이씨가 배명훈 소설이 읽을만하다고 말한 기억이 나서(그 반대로 그 작가가 그저그런 재미없는 소설을 쓰는 사람으로 기억했다) 알라딘에서 얼마전부터 연재중인 그의 소설, '타워'를 읽었다. 그리하여, 왜 그의 글을 재미없어 했는지 어렴풋이 기억났다 -- 별로 웃기거나 재밌지 않은 개그 나부랑이를 읽는 것은 시간낭비라고 생각했던 것 같다.

,
그저 일없이 미루고 있던 Garmin GPS용 OSM 지도를 공개했다. 이번이 두번째다.


OSM 지도 작업을 계속하다보면 다음 버전은 아마도 꽤 괜찮은 지도가 될 가능성이 있다.

* complete 국도, 지방도
 
 
위 사이트에서 얻은 자료(전국 단위 표준 노드링크 데이터)를 변환하는 작업. 원본 데이터나 polished file은 도로 선로를 2개의 polyline으로 만들었고 접점이 없어 사실상 변환해도 수작업이 들어가야 하고 그 때문에 나중에 routable map을 만들기 어렵다는 문제점이 있다. 그러나 지금처럼 도로를 손으로 그리는 길고 지루한 작업 보다는 자동변환하는 것이 낫다고(없는 것보다는 낫다고) 보고 있다.
 
* DEM 정밀도 향상
 
 
위 사이트 자료 적용 궁리. 테스트는 해 봤는데 TM 좌표계가 중앙 기준인 것 같아 동부나 서부의 오차가 어떻게 되는지 아직 테스트를 제대로 안해봤다. 하여튼 기존 SRTM 자료보다는 훨씬 부드럽고 깨끗한 10m 짜리 등고선  지도를 얻을 수 있었다. 자료 자체는 SRTM1과 같은 정밀도의 30m x 30m 인 것 같다.
 
* 전국 산행로 및 MTB(자전거도로) 지도
 
개인 및 여러 동호회에서 수집한 트랙 로그를 변환하려고 계획은 했으나, 저작권 등의 문제로 보류. 만약 그 분들이 osm에 트랙로그를 올려주면 공개할 의사가 있다는 뜻으로 받아들일 수 있지만, 동호회 자료를 수집해서 임의 가공하는 것은 문제될 소지가 있다. osm의 가치를 설명하고 설득하는 것이 좋겠지만(산행로 등을 공통 데이터베이스화하면 공공이익에 기여하게 된다 운운) 수개월째 생각만 하고 있는 중.

이 작업은 트랙로그의 GPS 수신 에러를 제거하고 normalize(경로를 단순화)한 후 여러 개의 트랙로그으로부터 경로 평균치를 구하여 편차를 줄인 산행로를 만들어 OSM에 올리는 일련의 작업을 자동화하는 과정이 될 것 같다. 아님 귀찮은데 대충 하고 말던가. 어차피 전국 어디가나 신작로처럼 변해버린 산행로에서 도로 오차가 2-3m쯤 난다고 누가 신경이나 쓸까? :)

,
전용 GPS에 장래가 있을까? 없어 보인다. 안드로이드폰 나오면 조금 지켜본 후 그걸 살 것이다. 구글맵을 캐싱해서 가지고 다니면 지금 들고 다니는 GPS도 사실상 필요가 없어진다. 전화도 받고 자전거 주행하거나 산에 올라가서도 지형도 및 지도를 파악할 수 있는데 뭣하러 값비싼 돈 주고 전용 gps를 사서 생고생을 해가며 없는 지도 만드느라 시간을 보낼까? 다만 전용 gps는 생명을 답보한 극한 상황에서 안드로이드 폰보다는 신뢰성있게 작동할 가능성이 높다. 어쨌거나 전용 GPS의 장래는, 예전에 PDA를 잡아 먹고 여전히 성장중인 스마트폰에게 잡아먹힐 것이다. 의심의 여지가 없다.

다음 GPSGIS에서 SRTM3가 정밀도가 떨어진다는 얘기를 듣고 정말일까? 평소 궁금하게만 여기고 귀찮아서 뒤져보지 않았던 SRTM3의 오차에 관해 찾아봤다: SRTM 자료는 기본적으로 이미지 같은 것이다. 하나의 픽셀에 대한 elevation level이 기록되어 있는데, SRTM1 자료는 쉽게 말해, 한 픽셀이 1초(arc second) 단위로 가로x세로 30mx30m인 영역으로, 그런 픽셀이 3601x3601 크기이다. 전 세계를 커버하는 SRTM3는 3초 단위(90m)로 픽셀 영역은 1201x1201이다. 가장 널리 사용되는 SRTM3는 높이 오차가 약 16m이다. 즉, SRTM3는 90m^2에서 고도 오차 16m인 데이터다.  
 
그다지 정밀한 자료 같아 보이지 않겠지만 어째서 SRTM3 자료와 GPS 바로미터의 고도차가 생각보다 크지 않았는지(오차가 적었는지) 알 수 있다. 경사도 15% (각도가 아닌 구배로 15m/100m)인 도로에서 SRTM3의 고도 오차를 제외한 인접셀과의 최대 오차는 15mx90m/100m = 13.5m. SRTM3의 높이 오차가 인접셀 사이에 비슷하게 평탄화되었다면, gps 고도 오차를 최소 2m로 감안하면 기약 100m 간의 직선 구간에서 10~20m 정도의 평균 오차 밖에 나지 않는다. 사실 DEM 자료를 만들 때 여러 가지 변수가 포함되어 오차 계산이 꽤 복잡할 것으로 추측되지만(오차 관련 자료: http://www2.jpl.nasa.gov/srtm/SRTM_paper.pdf
) 그래도 오차폭이 30m를 넘을 것 같지 않다.

한국에서는 도로 경사도를 15% 이상 넘지 않게 설계한다고 들었던 것 같다. 자전거 주행에는 SRTM3로도 문제 없어 보인다. 다만 산악 트래킹할 때 이 자료를 믿고 가다가는 절벽으로 추락할 수도 있다. 고도가 높은 산의 절벽면은 레이다 간섭 사각지대가 되어 void라고 부른다. 이것들을 제거하는 프로젝트가 있었다. http://srtm.csi.cgiar.org/
국내에서 지형도에 사용하는 데이터는 SRTM3를 사용하지 않고 항공 수준 측량을 한 것 같다. 그런 자료는 물론 공짜로 얻을 수도 없고 DEM으로 널리 배포될 것 같지 않다. 천상 SRTM3로 버텨야 한다.
 
GPS의 오차

위성이 무려 14-16개씩 잡히는 확 트인 개활지에서 gps 오차가 최저치인 +-2m임에도 도로를 벗어나는 궤적이 나타난다 -- 직선 도로를 주행한 후 트랙로그를 살펴보면 비뚤비뚤하다. 그것 말고도 샘플링 속도 때문에 자동차/자전거를 타고 고속 주행할 경우 트랙로그에 어쩔 수 없이 오차가 나타나기도 한다 -- 트랙로그를 1초 단위로 기록하면 고속으로 달릴 때 늦은 샘플링 속도에 따른 경위도 위치오차가 크게 벌어질 수도 있다. 트랙로그를 msec 단위로 기록하면 되지만 GPS의 작은 저장장치로 감당이 안된다. GPS 자체도 이들을 보정하기 위한 알고리즘을 사용하고 있는 것 같다. 하지만 자세한 정보를 얻지는 못했다.

마지막으로, 개활지가 아닌 좁은 소로처럼 수신율이 떨어지는 곳에서는 오차폭이 상당히 커진다. 도로폭이 3m 밖에 안되는 곳에서 양 옆으로 20여 m 높이의 건물들이 즐비하게 늘어서 있으면 수신율이 현저하게 떨어져 오차가 커지게 된다. 1차선 도로의 우측에 달라붙어서 가는 자전거의 경우 자동차보다 수신율이 떨어지는 것은 자명하다. 전용 GPS보다 수신율이 더 떨어지는 내비게이션 기기들은 그래서 내비게이션 화면에 나타난 현재 위치의 차량을 수신 좌표에 인접한 도로에 착착 달라붙여서 표시해 준다.

변산반도의 도로 지도를 yahoo aerial map만 보고 그렸는데 실 주행 데이터와 오차가 10m가 안 되었다. 사실 GPS에서 튀는 데이터가 있어서 GPS가 오히려 더 미덥지 않다. 구글맵스와 대조해봐도 마찬가지였다. 그말인 즉슨, 오차가 발생하기 쉬운 gps에 의존하여 OSM 지도를 그릴 것이 아니라, 오히려 Potlatch나 JOSM등의 백그라운드 yahoo map의 도로 윤곽을 보고 그리는 것이 낫다. 물론 residental/service road처럼 야후 항공 사진으로는 확인이 곤란한 지도에서는 gps의 트랙로그를 '참조'하여 지도를 그리는 것이 유리하다.

그래서 내 경우 OSM 지도를 그릴 때 GPS를 세컨드 디바이스로, 참조용으로만 사용했다. 믿을 수가 없으니까.
 
이런 저런 잡다한 작업을 하다가 다시 길을 그리기 시작했다. 사실 바빠서 길을 그릴 시간은 많지 않다.

OSM 서버가 최근에 업그레이드 되면서 API 버전이 0.5에서 0.6으로 올랐다. transaction과 비슷한 changeset이 도입되었고 database 접근은 전보다 훨씬 빨라졌다. 그러나 대량의 데이터를 가져오는데 자주 쓰곤 했던 XAPI는 아직 불완전해서 API로 업로드한 대량의 데이터가 XAPI로 반영되는데 시차가 존재한다. 4월 업데이트 이후 XAPI는 여전히 안정이 되지 않았다. XAPI query는 가끔 입력한 POI가 엉터리로 나왔다. 사실 좀 종잡을 수가 없다.
 
0.5에서 0.6으로 API가 바뀌면서 이전 프로그램과의 호환성이 떨어졌다. JOSM는 재빨리 업그레이드가 되었고 메르카토르는 조금 늦었다. Potlatch도 물론 업그레이드 되었다. 아쉬운 것은 XML 압축 규격이 없고, OSM 역시 XML 압축을 만들지 않아 데이터 전송량이 클 경우 전송 자체만으로도 꽤나 많은 시간을 소비한다는 점이다.

JOSM에서 사용하는 .osm 파일에도 변화가 생겼다.
 
<?xml version='1.0' standalone='no'?>
<osm version='0.6' generator='osmxapi: OSM Extended API' ...>
  <node id='368646044' lat='38.222193' lon='127.209948' user='...' action='modify' visible='true' version='1' >
    <tag k='name' v='Sample'/>
  </node>
</osm>
 
XAPI가 여전히 0.5 베이스로 작동하기 때문에 패치한 xml 파일의 버전 정보가 아직 없다. changeset이 도입되면서 이제는 way, node 따위의 버전을 체크하고 그것들을 변경시 증가시켜야 한다. 대량의 데이터 작업에서 xml diff를 사용케 하겠다던 것 역시 아직은 버그 때문에 적용되지 않았다. XAPI가 xpath를 지원하지 않고 단순한 bounding box를 사용하기 때문에 사실 이만저만 불편한 것이 아니나, 언젠가는 차차 안정화되겠지 하며 기다리고 있다.

새로운 API에 맞춰 만들어놓은 간단한 프로그램들의 OSM broker 소스를 개정해야 하는데... 좀 귀찮아서 관뒀다.

그동안 Potlatch 한글화를 했다. 메시지 한글화에 큰 의미는 없어 보인다. wiki 페이지도 한글화할까 하다가 누군가가 해 놓은 한글화만으로도 충분하다고 생각했다.

mkgmap과 srtm2osm 따위 프로그램을 사용해 지형도와 스트릿 맵을 완샷에 작업하는 스크립트를 짜느라 하루 정도 시간을 보냈다. 결론은, 참 쓸모가 없고 시간과 노력만 허비했다. 기존에 만들어놓은 지형도 데이터보다 정밀도나 해상도는 떨어지지만 시간은 좀 단축시킬 수 있다. 스트릿맵이야 원래와 같으니까 상관없다.

별도로, Wikiloc에 경로 그리기 메뉴가 추가되었다.
사용자 삽입 이미지
사실 정말 필요한 것은 gpx 업로드해서 gpx를 분석하고 트랙로그를 지도와 연동해 화면에 표시해주는 것 보다, 자전거 여행할 때 구글 맵이나 다음 맵 따위를 배경에 깔고 저것처럼 경로를 그려준 다음 gps에 업로드해 행복하게 트랙백을 하는 것이다. 그 정도 작업을 하려면 아무래도 웹 프로그래밍을 배워야 할 것 같은데 어째 시간이 많이 걸릴 것 같아 누군가 해주겠지... 아니면 구글 뒤져보면 누군가 만들어 놓았겠지 하는 막연한 생각만 들었다.

,
변산반도 자전거 여행 경로

변산반도는 서해-남해-동해로 이어지는 한 달 가량의 자전거 여행 중 지나치게 될 코스였다. 원래 계획은 한 달 짜리 자전거 여행이었다가 일주일 단위로 끊어 각각 서해, 남해, 동해로 나누었다가 그것도 여의치 않게 되어 어쩌다 보니 변산반도만 떼어내 1박 2일 코스로 자전거를 타게 되었다. 지난 3년의 이력이다. 잊어버리자.

17:30 집에서 출발. 내일 날씨가 맑단다. 18:45 강남 터미널 도착. 부안행 표를 끊었다. 버스는 천안을 조금 지나서 기름이 떨어져 차가 멎었다. 고속도로 갓길에 세운 버스를 살려보려고 갖은 애를 쓰던 기사 아저씨는 용케 시동을 다시 거는데 성공했다.

부안에 도착하니 11시 20분. 날이 쌀쌀해서 피부에 소름이 돋았다. GPS를 켜고 뉴부안 찜질방에 갔으나 내부 공사 중, 5월 10일 이후 재개장한단다. 건강나라 찜질방으로 갔다. 작은 찜질방에 사람들이 꽤 북적인다. 여기저기서 경상도 사투리가 들린다. 전라도에서 전라도 사투리나, 서울 사투리가 아닌 경상도 사투리를 듣다니 무척 신기하다.

자리를 잠시 비워 담배 한 대 피우러 갔다 온 사이 누군가 내 자리를 차지했다. 자리가 없어 여기 저기 헤메다가 불편하게 잠들었다. 보통 새벽 2-3시에 잠들곤 하는데 12시부터 자려니 적응 안된다. 1시쯤 잠들었다. 8시에 깼다. 기분나쁜 꿈을 꾸었다. 샤워하고 찜질방을 나왔다. 전날 밤 살짝 비가 와서 체인이 떡졌다. 날이 흐리다. 오늘은 OSM 지도+지형도를 GPS에 넣어 처음으로 주행하게 된 날이다. 도로 윤곽이 희미해서 OSM으로 가민용 지도를 만들 때 신경 좀 써야겠다.

아담한 부안 시내의 할인 마트에서 빵과 우유를 샀다. 370kcal, 170kcal. 사실 빵, 우유 대신 백합죽을 먹을 생각이지만 가는 길에 백합죽 전문이라는 계화회관이 안 보이면 이걸로 점심까지 버틸 생각이다. 빵과 우유를 마트앞 벤치에서 먹어치우고 천천히 자전거를 몰아 부안 시내를 빠져 나갔다. 해가 안 떠서 날이 차갑다.

변산반도를 애두르는 30번 국도만 따라가면 된다. 길이 무척 쉽다. 부안 경찰서를 지나자 계화회관이 보였다. 빙고. 백합죽을 시켰다. 7000원 짜리 죽은 꽤 맛있지만 양은 좀 적은 편. 맛이 썩 좋았는데 맞은편의 경상도 가족은 '이건 약이야' 하면서 감탄한다. 나도 대충 만족하고 패달을 밞아 새만금으로 향했다.

부안

지나가다 민가 사진 한 장 찍었다. 폐가인지 사람이 사는지 잘 모르겠다.

지나가다 삐삐 인형이 앉아 있는 모습을 보았다. 소방서 옆 가게에서 성인용품을 판매한다는 전단지가 전봇대마다 붙어 있었다. 일없는 겨울밤 놀고 있을 농촌 총각을 겨냥한 타깃 마케팅일까? 친환경 에너지 생산단지 인지가 새만금 뻘 근처에 건설되는 것 같다. 내가 알기로 군산에 소위 친환경 에너지 설비를 생산하는 공장이 있다.

길이 참 편하다. GPS의 지형도를 봐도 고도차가 거의 없는 꾸준한 평지가 해변까지 이어진다. 새만금 전시관에 이르기 전 언덕에 오르니 새만금이 잘 보이는 곳이 있다. 어젯밤 찜질방에서 본 경상도 가족에게 새만금에 관해 아는 것도 많은 내가 침튀기며 설명해 줬다. 그 가족은 어젯밤 내가 잠시 자리를 비운 사이 내 자리를 차지한 가족이었다.

새만금

이제 썩어가는 갯벌에서 더 이상 '생산'되지 않는 백합에게 안녕을 고해야 한다.  이미 막은 뻘을 다시 살리기 위해 수조원이 투입된 공사를 되돌리기엔 늦었다 -- 이건 내 관점이다. 뼈저린 실수겠지만 새만금 방조제를 쌓을 당시엔 정치가나 일반 대중이나 생존에 바빠 장래 생태계가 어찌어찌될 것이라 예측하지 못했다. 그 당시에는 땅을 메워서 농지와 택지를 만든다는 그 계획이 꽤 그럴싸해 보였을 것이다.

새만금 방조제

전날밤 전주 뉴스에서 새만금 방파제 안쪽의 선박 소유주에 대한 보상이 시작되었다는 기사를 보았다. 새만금 전시관에서 방조제 공사가 얼마나 위대하고 대단한 공사였는지 떠벌리는 비디오를 보았고 장래 그곳에 해양 레저와 친환경 어쩌구가 들어선다는 것도 알게 되었다. 방조제 길이 일반에게 공개되었을까? 모르겠다. 아직 군산에서 여기까지 오는 길은 없는 것으로 알고 있지만.

변산 해수욕장

고개를 몇 개 넘자 변산 해수욕장이 나타났다. 아직 해가 안 떠 썰렁하다. 요즘 기상청의 일기예보가 잘 맞는 편이라 그걸 믿는다. 백합 껍데기가 모래밭에서 군데군데 보였다.

변산 해수욕장

바닷가에서 캔맥주 쳐먹고 빈 병 버리고 가는 사람들은 대체 어떤 종류의 사람들일까? 내 동포, 내 형제, 내 이웃이다. 그러니 주워서 버리고 갖은 욕설이나 마저 하자.

변산 해수욕장을 지나 30번 국도를 따라가다가 고사포 해수욕장으로 빠지는 해안 도로로 방향을 바꿨다(우회전했다).  고사포 해수욕장을 지나쳤다. 고갯마루에 오르자 하섬을 바라볼 수 있는 전망대가 바로 나타났다.
하섬

하섬. 썰물 때면 육지와 섬이 연결된다. 물 때가 안 맞아 오늘 조개 따기는 글렀다. 내가 잘못 본 것이 아니라면, 이곳 해안에서 물이 빠지는 깊이가 대략 50cm 정도였던 것 같다. 그렇다면 바다처럼 보이는 저 곳을 걸어서 건너갈 수도 있겠다.

30번 국도

해변을 따라 고저차 30~40m 내외의 고개가 연이어 이어지는 해안 도로다. 변산반도를 반 시계 방향으로 돌고 있는 터라 해안 도로의 우측 차선이 바다와 맞닿아 풍광이 좋다. 해가 뜨지 않아 덥지도 않고 기분좋은 측풍(시속 3~4m 가량의 서풍)이 불어와 땀이 거의 안 나와 라이딩이 무척 상쾌하다. GPS의 기압계를 보면 날씨는 점점 좋아질 것이다.

적벽강

하섬을 지나고 얼마 안가 적벽강에 이르렀다.
적벽강

사암, 세일로 보인다. 이암도 있는 것 같다. 산화철 때문에 색깔이 다른 부분. 단애가 별로 특이해 보이지 않지만 그 깊이가 상당하다.
적벽강

아직 물이 덜 차올라 저 끝까지 갈 수 있었다.
적벽강

바닥. 설마 퇴적암 뿐일까? 밑에는 아무래도 화강암이 있을 것 같은데.
적벽강

책처럼 켜켜이 쌓인 층. 망치로 두들기면 부서진다. 언제 형성된 것인지 알고 싶은데, 쓸만한 안내문 같은 것은 보이지 않았다. 아마 내가 못 찾은 것일께다. 이거 애들 교육용으로 아주 좋은데. 어디가서 이런 규모로 보기 힘든 지층이기도 하고....

젹벽강에서 빈둥거리며 시간을 보냈다. 적벽강이 있는 곳은 자갈 해변으로, 떨어져 나간 셰일 덩어리가 조석에 의해 닳고 닳아 얇고 귀여운 판석을 만드는데, 각기 다른 퇴적층에서 떨어져 나간 조각들이 색색이 조약돌을 이룬다. 해가 뜨거우면 바닷가에 들어가 물장구나 치면 좋으련만...

적벽강을 뒤로 하고 채석강으로 향했다.

채석강

채석강도 적벽강과 크게 다르지 않았다. 부스러지기 쉬운 셰일과 이암 따위의 켜켜이 쌓인 퇴적 층이 해식에 의해 떨어져 나가고 마모되면서 해수욕장에는 조그맣고 반질반질한 조약돌들이 널렸다. 사람들은 떨어져 나간 판석으로 전국 어디서나 볼 수 있는 소원탑을 쌓았다.

채석강: 적조

채석강에서 뜬금없이 적조를 보았다.

채석강

고개를 쳐들자 나타난 습곡. 요르단의 알 카즈네에서 더 멋지고 알록달록한 것들을 봐서인지(안데스에서도 마찬가지) 멋있어야 할 이것이 좀 시큰퉁... 하지만 세월과 연흔에 관해 훨씬 더 많은 것을 알고 있을 지질학자는 층층마다 꽤 자세하고 재밌는 얘기를 해 줄 수 있지 않을까? 지질학자에게 부탁해서 표지판을 하나 만들어 세워주면 얼마나 좋을까... 부모가 자식들 데리고 와서 멍청하게 바위만 쳐다보게 만들지 말고. 모처럼 바닷가에 왔으니 백합죽이나 회를 배불리 먹고 돌아가는 거야 기본이지만.

채석강

달팽이로 추측되는 것들이 진흙 바닥에 새긴 궤적. 척벽강과 채석강에서 생각보다 많은 시간을 보냈다. 아참, 그러고 보니 적벽강이나 채석강의 퇴적층에서 화석 비슷한 것을 보지 못했다.  벌써 다 파갔나?

채석강

업자가 관광용 땅굴을 판 것이 아니라면 저건 해식동굴일텐데 그 위에는 '청상어횟집'이란 처절한 난개발의 흔적이 돋보였다. 개발을 하려면 제대로 하던가, 변산반도 오는 길 내내 좀 마음에 안 드는 구석이 있다. 어설프게 대충 되는대로 개발하다가 죽도 밥도 안되어... 내가 뭐라 말할 처지는 아니지만 보고 있으면 한편으로는 안타깝고 한편으로는 욕지기가 나왔다. 채석강, 적벽강에 관한 관광 지도의 설명은 '중국에 그 비슷한 것이 있어서 이름을 그렇게 지었다'는 꼴사납고 바보스러운 얘기 뿐이다.

채석강이 있는 격포 해수욕장이 변산반도에서 개발이 가장 많이 이루어진 관광지같다. 근처에 군산식당이란 곳에서 점심을 먹을까 했지만 아침을 9시에 먹고 12시에 여기 도착해서 점심 먹기가 뭣해 내소사 부근이나 곰소에서 점심을 먹기로 했다.

전라 좌수영으로 향했다.  고저차 70m의 짧은 오르막길을 헉헉거리며 올랐다. 불멸의 이순신을 촬영지인 전라좌수영은 분위기가 그럴듯했다. 가까이 가서 벽을 두들기면 얇은 베니어판에 흰색 페인트를 칠해 놓은 것이지만. 수십차례 촬영할 꺼면(불멸의 이순신을 안봐서 어떤 드라마인지 모른다) 이왕 만드는 김에 제대로 좀 만들지 싶었다 --  그러기가 쉽지는 않겠지.

전라좌수영

앉아서  바람을 쐬며 쉬었다. 분위기가 참 좋다. 그늘에서 바닷바람 맞으며 한잠 잤으면 좋겠지만, 여차하면 무너질 것 같은 세트장이다 보니 기댈 자리가 마땅치 않다.

다시 패달을 밟았다. 30번 국도변에 있는 조각공원과 촬영장은 그냥 지나치기로 했다. 전라 좌수영 아래쪽에 있는 분위기 좋은 궁항을 지나고 상곡 해수욕장을 지나 다시 30번 국도와 만났다.  해가 떠서 날이 점점 더워진다.

모항 해수욕장

모항 전망대에서 바라본 모항 해수욕장.  여기까지 네 개의 이름있는 해수욕장과, 여기 저기 쉬기 좋은 해안을 여럿 지났다. 흡사 제주도 남서부처럼 아기자기하고 썩 괜찮은 해변이다. 아침나절부터 날씨가 좀 괜찮았다면 해변에서 놀다 갔을텐데, 그러지 못해 아쉽다. 모항 해수욕장도 그냥 지나쳤다.

햇볕이 따가워 강도처럼 버프로 얼굴을 반쯤 가리고, 작년에 사서 한 번도 쓰지 않았던 팔 토시를 착용했다. 여자들이나 입는 낯 간지러운 아이템이라고 생각했는데, 자전거 타려고 쫄바지 입고 다니면서 안 그래도 남의 눈 신경쓰지 않던 패션, 이제와서 새삼스럽게 신경 쓴다는게 뭣하지 싶어 맨살에 달라붙는 팔 토시를 과감하게 착용했는데 통풍 잘 되고 햇볕 차단이 잘 되서 상당히 만족스럽다. 진작부터 팔 토시 입을 껄 그랬다.

모래밭이 깔린 해수욕장은 모항 해수욕장이 끝이다. 그 이후로는 주로 갯벌이 나타났다. 어쩌다보니 내소사로 들어가는 삼거리를 지나쳤다. 내리막길에서 한창 가속이 붙어 있는 자전거를 다시 되돌리기가 뭣해 그냥 지나쳐 버렸다.  내소사 가는 길에 캠핑 사이트도 있고 산장도 꽤 여럿 있다. 텐트 들고 장기 여행 중에는 하룻밤 자기 좋지 싶다. 아참, 절 통행료가 있지!

곰소 갯벌

곰소로 가는 길에 본 갯벌

내소사를 지나쳐 버리니 곰소까지 금새 다달았다. 곰소가 외변산 관광의 마지막 지점이다.  곰소에서 밥 먹기로 했으니 밥집을 찾았다. 곰소를 두 바퀴 돌아봤지만 젓갈 백반으로 유명한 '곰소쉼터'는 보이지 않았다. 하는 수 없이 시장통의 조그만 식당에 들어가 백반을 시켰다. 찬 9가지에 된장국을 5천원에 내온다. 젓갈 3 종류가 식탁에 올랐다. 비싼 식사보다 차라리 이런 허름한 식당에서 백반 시켜 반찬 종지까지 박박 긁어먹는게 어쩐지 취향에 맞는다.

어젯밤 찜질방에서 봤던 사람들을 곰소에서 다시 보았다. 찜질방에서 하룻밤 자는 사람들 중에 유난히 경상도 사람들이 많았다. 그리고 희안하게도 광주나 목포, 전주 등 인근 지역 사람들보다 경상도 사람들이 유독 변산반도 관광 내내 발에 차일 정도로 많았다.

아내에게 전화해서 젓갈이나 사갈까 물으려다가 관뒀다. 들고 가기 귀찮다. 곰소에서 난 천일염이 그렇게 좋다면 젓갈 뿐만 아니라 된장, 간장, 김치도 다 맛있을 것이다. 사려면 소금을 사야할텐데, 소금을 푸대 단위로 파는 것 같아 그것도 관뒀다.

곰소항

곰소항에서 소화도 시킬 겸 하릴없이 놀았다.
곰소항

...
곰소항

도시 비둘기처럼 사람들에게 무언가를 갈구하는 듯한 갈매기도 구경하고...

곰소 염전

곰소를 빠져나오자마자 염전이 보였다. 염전 맞은 편에 '곰소쉼터' 식당이 보였다. 한참 찾을 땐 안 보이더니만...

등짝에 와닿는 햇볕이 상당히 따갑다. 전진속도와 뒤에서 밀어주는 미풍이 서로 상쇄되어 달리는 길이 거의 무풍 상태라 더 덥게 느껴지는 것 같다. 부안으로 되돌아가는 23번 국도가 나타날 때까지 쉼없이 달렸다.

사용자 삽입 이미지

갈림길에서 그늘이 드리운 버스 정류장을 찾아 자전거를 세우고 쉬었다. 자전거 여행자에게 국도변 버스 정류장만큼 좋은 휴식처도 드물다. 잠시 쉴 뿐만 아니라 비를 피하거나 낮잠을 즐기기에도 좋았다. 그런데 여긴 개미떼가 바글거린다. 3면이 막힌 버스 정류장 대신 보도에 털썩 주저 앉았다. 시원한 서풍이 땀을 식혀 주었다. 10분 쯤 아이스크림처럼 달콤하고 시원한 휴식을 취하고 다시 출발했다.

좀 바보같은 짓이지만 선운사 쪽으로 빠지는 고창 부근까지 가서 정읍 쪽으로 방향을 틀었다. 아이가 내일까지 아플 것 같으면 선운사로 가 민박에서 하룻밤 자던가 내장산 국립공원에서 하룻밤 자고 다음날 정읍으로 갈 생각이었지만 아내에게 아이 간병을 맡기고 나만 재미있게 놀러 돌아다니는 것이 도리가 아닌 것 같아(자기가 하고 싶은대로 하고 살았던 개마초 남성 중심 사회가 그립다) 오늘 중으로 집에 돌아갈 생각이다.

부안에서부터 이어지던 기나긴 유채꽃 길은 고창 교차로 앞에서 끊겼다. 외변산 길은 자전거 타고 다니기에 꽤 기분좋은 길이다. 갓길도 30~50cm로 어느 정도 확보되어 있고 팔을 스치는 유채꽃이 마치 마라토너를 반겨주는 시민처럼 정답게 바람에 흔들린다. 이 지점에서 정읍까지는 약 16km. 등짝에 쏟아지는 오후 햇살을 받고 뒤에서 밀어주는 선선한 미풍을 타고 쉬지 않고 정읍시까지 달렸다.

친구가 예전에 그런 말을 했다. 아직까지 새마을기가 펄럭이는 도시는 도시가 아니라 촌락(village)이라고. 정읍시에 들어서자 마자 수많은 새마을기가 펄럭였다. 장관이다. 친구와는 견해가 좀 다른데, 아마 시청 구석에 열박스쯤 쌓여있을 새마을기를 딱히 처치할 방법이 없고 도심에 남는 깃대는 많으니 되는 대로 꽂아놓은 것이지 싶다. 근 2년 지난 현 정권과 새마을기는 어쩐지 어울린다.

9시에 부안에서 출발해 17시 경 103km를 달려 정읍에 도착했다. 평속은 꾸준히 20kmh를 유지했지만 여기저기 쉬엄쉬엄 놀다가 오느라 생각보다 많은 시간이 걸렸다. 정읍 시내에 들어서자 마자 식당부터 찾았다. 시청쪽으로 올라가는 길에 '수석영양돌솥밥'이 있다. 6천원 짜리 식사를 시켜 먹었다. 꽤 괜찮았다.

6시 강남 터미널행 고속버스를 탔다.  3시간 걸려 서울에 도착. 버스에서 한 시간쯤 눈을 붙였다.

사용자 삽입 이미지
잠수교는 왜 찍었지? 아마 오세훈 시장 욕 좀 하려고 찍어뒀던 모양. 기분 좋은 날인데 그건 나중에.

터미널에서 집까지 꾸준히 패달을 밟았다. 어젯밤과 오늘밤 고속버스 터미널을 왕복한 거리는 46km, 변산반도에서 주행한 것을 더하면 148km를 달린 셈인데  기운이 남아 돌았다. 내 저질체력을 여태까지 지나치게 과소평가한 것일까? 아무래도 세 끼를 꼬박 잘 챙겨 먹고 비교적 평탄한 도로를 바람을 등지고 달린 덕분인 것 같다.

집에 도착해서 치킨에 캔맥주 두 개를 먹고 마셨다. 몸이 그것들을 진공청소기처럼 빨아들였다. 별로 피곤하지 않아 평소처럼 오전 3시30분에 잠들었다.

주행 전에 날씨와 기온, 풍향, 풍속 따위를 검토했다. 알아도 주행에 도움이 된다, 안된다 말할 만한 것은 아니지만 천상 기술자다 보니 데이터는 항상 쓸모가 있었다. 하루에 겨우 124km 달린 것으로 생색 내기는 뭣하지만, 예전에 변산반도 해안도로와 유사한 90km 가량의 동해안 도로를 달릴 때의 체력과는 비교가 안되는 그간의 질적 향상이 있었다. 주행 중간에 많이 쉬어서 그런 것인지도.

1-3 기어의 재발견: 이전 변속 패턴: 3-6, 2-6, 2-4, 2-2, 1-2. 이번 변속 패턴: 3-6, 2-6, 2-4, 1-3, 1-2. 경사도가 고만고만한 고갯길에서 1-3 기어로 케이던스를 2/3로 떨구고 약 8.3kmh 속력을 유지하면  별로 힘이 안 든다. 왜 유독 그 기어비에 그 속력에서 힘이 덜 들었는지 나중에 다시 테스트해 봐야겠다.

OSM GPS 지도는 지형도가 꽤 유용했다. 앞으로 가야할 고갯길이 몇 개이고 어느 지점에서 쉴까 흘낏 쳐다보는 정도의 유용함이니 다른 사람들에게 굳이 떠들만한 것은 못 된다. 그런 거 없어도 잘들 자전거 타왔다. POI가 보이는 zoom level의 조정이 필요해 보이고 도로 폭이 좀 넓게 렌더링되었으면 좋겠다 정도 나중에 개선할 것들도 알았다.

트랙로그와 SportTracks로 경로 분석을 해보니 상당히 유의미한 피드백을 얻을 수 있었다. 예를 들어 안장 높이 조절하지 않고 20km 달린 구간의 평속은 조정후 달린 속도에 비해 1.7kmh가 떨어진다.

짧은 코스를 돌다보니 교통비와 숙박비가 아깝다. 전라도에 간 김에 밥만큼은 잘 먹자 해서 밥값으로 쓴 것은 아깝지 않다.
,

히카도쉬 바루쿠 후

잡기 2009. 4. 29. 21:09
트렉스타 코브라 540: Goretex XCR, 380g, boa system. 3개월 째 사려고 잠복 중. 자전거 주행과 산악 트래킹, 일상 생활에서 전천후(?)로 사용할 가벼운 신발 후보 중 1순위. 고어텍스 신발에 맛들인 후, 방수/발수 소재가 아닌 신발을 사는 것은 아웃도어 이단이라는 종교적 신념을 갖게 되었다. 최저가가 12만원 대인데 지난 3개월 동안 가격이 전혀 안 떨어진다. 거참... 경기도 안 좋은데 재고 떨이 좀 하지 않고... 이 신발의 고어텍스 맴브레인은 낮은 발목 안으로 필연적으로 흡입되는 모래 알갱이 따위에 쉽게 손상될 수 있다. 따라서 맨땅과 육산에서 사용할 때는 불필요하고 어리석은 비용 지출이 될 수 있다.

살아있는 것들은 살아있기 때문에 살아야 한다: 얼마전 몇 안 되는 진리와 함께 신경세포의 가소성과 IQ의 정규 분포 따위로 지루하고 난폭한 대화를 했다. 책읽기에 관해 '다른 사람의 생각으로 머리를 채우는 것이 부끄럽지 않느냐?'는 소리를 들었다.  읽던 책을 나꿔채 손수 찢은 후 진짜 삶을 살라고 충고해주는 나름 편안한 친구도 있었다. 부끄럽지. 그래도 요 몇 년 동안 대화 중에 인용구를 거의(99%) 안 쓰잖아!

책벌레들 만나도 즐거웠던 적은 흔치 않았다. 게걸스럽게 잡식한다고 해도 결국은 취향으로 귀결되어 각자의 행성에서 꽃을 키우니까.

책을 읽는 것은 지적 호기심이나 재미를 추구하던 예전과 달리 지금은 관성에 불과하다. 저번 주에는 5권, 이번 주엔 3권 읽었다. 주말엔 책을 안 읽었다 -- 독실해 보인다. '랍비의 고양이'에서는 유태인과 무슬림이 길에서 만나 친구가 되어 각자 메카와 예루살렘에 기도하고 알라흐 아크바르, 하카도쉬 바루쿠 후 따위를 말한다. 랍비의 고양이는 좋은 책이다. 좋은 책은 널리 읽히도록 소개해야 하지만 유감스럽게도 손에서 떨어지면 내용이 거의 기억나지 않았다. 이건 놀랍기 그지없는 신경세포의 가소성과는 상관이 없는 것이다.

그러고 보니 내가 '랍비의 고양이'를 읽었군!
시간이 흘렀는데 제목을 기억하다니!

TV에서는 savant syndrome에 관한 프로그램이 나왔다. 애와 놀아주며 자다 깨다 주말을 보냈다. 서번트 신드롬도 꽤 오랫만에 듣는 말. 자폐증, 사이코패스와 마찬가지로 아직도 원인이 밝혀지지 않은 듯. 이런 다큐의 시청율은 높은 편일까? EBS에서 매일 아침에 하는 뽀로로는 한국에서도 인기지만 프랑스 방영 당시 평균 시청율이 47%에 육박했다. 얼마전 기사에서는 뽀로로가 불법복제 영상물 1위로 꼽혔다.

아내를 비롯한 여러 여자들이 공감하던 것인데, 내가 입 다물고 있을 때가 상태가 개중 나아 보인단다. 입만 열면 유창하게 헛소리를 하는데 감정이 느껴지지 않고 내용에 공감이 안 되서? 사이코패스와 거리가 너무 멀었다. 타고난 범죄자로서는 역량 부족이다. 사이코패스가 반드시 가져야 할 자질: 깊이없는 달변, 자기중심적, 심한 과장, 공감능력 부족, 유창한 거짓말과 속임수, 피상적인 감정, 충동적, 서투른 행동제어, 자극 추구, 책임감 없음. -- 한때 온라인을 떠들썩하게 했던 속칭, 완전체라 불리는 외계인들은 이중 몇 가지 자질(?)을 공유하는 것 같다.

얼마전에 '진단명: 사이코패스'란 책에서 본 것이다. 관심사는 사이코패스의 유전, 변별, 치료, 사회 통계 분석 등등 이었는데 책 내용의 대부분은 저런 자질 설명에 곁들여진 사례 연구였고, 사회생물학적 해석 몇 페이지, 애착형성 이론 몇 페이지를 합쳐, 전체 300여 페이지중 약 10페이지 정도만 알아두어야 할(알고 싶은) 내용이 나왔다.

사이코패스는 현재에만 집착하고 충성심이 부족하기 때문에 스파이, 테러리스트, 갱단으로 성공하기 힘들단다. 질문을 받은 Ted Bundy 왈, " 좋은 질문이군요. 나도 나같은 사람들로부터 사회를 보호해야 한다고 생각해요."


그러리라 짐작했지만 사회생물학 쪽에서는 사이코패스가 진화 적응의 피치못할 산물이라고 말하는 것 같다. 인구중 10%(유아층에서는 25%, 아니었나? 범죄자 중이었던가?)에 달하는 대단히 높은 비율로 존재한다는 사이코패스를 설명하려면 이것 밖에 길이 없지 않을까? 그것으로 끝. 만족스러운 내용은 아니었다. 유전적 소인은 뚜렷하지 않고(연구자료가 없는 듯), 애착 형성 이론은 (어제오늘 일이 아니지만 기쁘게도) 간단히 무시 당했다. 사이코패스가 피치못할 현상이라면 그 대책과 치료, 사이코패스와 접했을 때 살아남는 법 등등이 중요할텐데 아직은 별게 없어 보인다.

진단: 전문가가 아니면 하지 말 것.
치료: 현재 불가능.
대책: 그들의 점진적 사회화를 모색
생존전략: 사이코패스의 자질을 반드시 염두에 두고 자신의 약점을 평소 정확히 파악하고 있으면서 그들의 공허한 염소눈을 극도로 조심하는 것 외에, 근본적으로 방법 없음.

연구자의 성의와 필생의 과업이 절절이 느껴지지만, 안타깝게도 책에서 건진 것이 없다. 아줌마들 미용실 호들갑에나 등장할법한 경악스럽고 공포스러운 사례 연구는 몇 껀 정도 빼고 별로 관심도 없고. 어쩌면 일반인 상대로 너무 쉽게 책을 쓴 탓인지, 저자가 오판 가능성을 염두에 두고 너무 몸을 사린 것인지도 모르겠다. 나 같으면 극형 예정의 범죄자를 fMRI나 PET로 스캔하면서 그들에게 감정을 유발하는 자극을 주어 실험 데이터를 모으겠다.  연구자 중에도 사이코패스 같은 놈들 많다. 그들에게 맡기고 데이터를 얻은 후, 인간으로서 일말의 양심도 없는 그들은 없애버리면 간단하지 않을까?  <-- 사이코패스 말투로 적어봤는데, 내 평소 말투와 거의 차이가 없다.


사용자 삽입 이미지
이집트 아스완, 돛단배인 펠루카를 타고 나일강을 흘러가는 중. 저 친구는 괜히 나하고 같이 다니다가 땡볕에 왕들의 계곡을 무작정 헤메 다니게 되었다. 그 친구의 사진을 신통하게 얻어온 것은 아내였다.

법칙: 누구든 나와 함께 다니는 사람은 몹시 개고생한다. 하여튼 사람을 잘 기억하지 못한다. 아내가 신통하게도 이 사진을 찾아 보여줬다. 대체 어떻게 저 친구를 찾아낸 거지? 라고 생각했다가... 당시엔 장기 여행자들은 어떻게든 연결되었지 하는 생각이 들었다.

아이가 태어나기 전에, 아이가 남자아이였다면 가지 못할 곳이 없는데... 모험할 수 있는데... 라고 생각했다.

카메라를 끄고 아이를 쫓아가야 했다. 집으로부터 8000km 떨어진 곳에 가서 개고생하는 것을 흔히 '모험'이라고 한다.  지금은 생각이 바뀌었다. 아이의 자질로 판단컨대, 모험-개고생할 자격이 충분하다. 니들캐스트로 의식을 전송하여 머나먼 우주 저편 할란스 월드에서 원하는 육체로 깨어나길!
 
얼터드 카본(Altered Carbon) -- 오랫만에 하드보일드 사이버펑크 'SF'를 읽었다. 이 정도 작문이면 고래적 하드보일드 소설가들의 오마쥬 운운하며 은근히 내리깔 수준이 아니다. 원서를 사서 1/5쯤 읽다가 번역된 것을 알고 무려 4개월을 기다려 손에 쥐게 되었다. 4개월쯤 기다리다 보면 뽕빨을 뽑고 싶은 마음도 생기고, 그 기간을 기다린 반발로 백퍼센트 불건전한 냉소와 회의가 싹트기 마련인데, 중반쯤 흘러가면 용두사미격으로 힘을 잃어가는 많은 소설과 달리 갈수록 나아진다.

하드보일드 소설이라면 반드시 등장해야 하는 어리석은 냉소와 니힐리즘, 그리고 싸이코패스 범죄자의 무감각에 버금가는 잔혹한 폭력, 양념처럼 곁들이는 너절한 자기중심적 감상주의 따위를 두루 늘어놓고, 거기에 통통 튀는 유머감각에 주류문학 필의 문장력까지 갖췄다. 이게 심지어 데뷔작이다. 뭐 이런 작자가 다 있지? 3류 하드보일드 사이버펑크 패치물이라던데, 아니다. 다르다. 전반부 까지만 읽으면 그저그런 빌어먹을 양의 탈을 쓴 하드보일드 사이버펑크라고 오쉣 하면서 집어던질텐데 후반부 가면서 공작이 날개를 펼치듯 색채가 분명한 오리지널리티를 발산한다. 도약이 워낙 심해 빨리 읽다보면 흐름을 놓친다. 작가는 독자가 자기가 쓴 글을 읽어주길 바란건지, 마치 갈구리에 등짝이 꿴 참치처럼 넘실거리는 파도의 굴곡을 훑으며 배로 끌려가게 된다.

미친 재단사 루드밀라는 망해 가는 벨라위드 공장을 갖고 있었는데 자식 셋은 어머니 일을 전혀 돕지 않았소. 늦게까지 밖으로만 돌아다니고 오락이나 하고 하루 종일 잤지. 그래서 어느 날 어머니는 발끈했소. 어느날 저녁, 아이들이 외출할 준비를 하고 있을 때 루드밀라는 커피에 약을 탔소. 아이들은 몽롱해졌지만 아직 의식은 있었는데, 루드밀라는 그런 애들을 미첨스 포인트로 데려가서 하나씩 탈곡기에 집어넣어 버린 거요. 늪지 건너편까지 비명 소리가 울려 퍼졌다고 하지. 루드밀라는 쓸모없는 애들을 처치했지만 그렇다고 도움이 된 것도 없었소. 약품 처리통을 관리할 사람, 벨라위드를 들고 공장 계단을 오르내릴 사람은 필요한데 돈은 여전히 없었으니까. 루드밀라는 아이들의 조각난 시체를 다시 건져온 다음 바늘로 기워서 키가 3미터나 되는 거대한 송장으로 만들었소. 그런 다음 어둠의 힘이 지배하는 어느 날 밤에 덴구를 불러내서 송장에 생기를 불어넣기 위해 덴구를 불러낸 뒤 송장 안에 넣고 기워 버렸소. 루드밀라는 덴구의 영혼을 안에 넣고 기웠지만, 9년 동안 봉사하면 풀어 주겠다고 약속했어. 9는 할란의 신전에서는 신성한 숫자이기 때문에, 덴구와 마찬가지로 루드밀라도 이 약속을 지킬 의무를 지게 됐지. 불행하게도 덴구는 참을성이 별로 없는 족속이고, 루드밀라 역시 같이 일하기 쉬운 사람이었을 것 같진 않거든. 어느날 밤 계약 기간이 1/3도 끝나기 전에 덴구는 루드밀라를 덮쳐서 갈기갈기 찢어 버렸소. 혹자는 기시모진이 덴구의 귀에 뭔가 끔찍한 이야기를 불어넣은 거라고 하지만, 어쨌든 그 결과 덴구는 주문에 사로잡혀 송장 안에 영원히 갇혀 있게 되었소. 원래 주문을 불어넣었던 사람이 죽었고 게다가 배신 때문에 그렇게 됐으니 송장은 썩기 시작했지. 여기 한 조각, 저기 한 조각, 살려낼 수 없이. 그래서 덴구는 섬유 지대 인근의 공장과 거리를 배회하며 썩은 부분을 대신할 신선한 육체를 찾아다니게 됐소. 언제나 아이들만 죽였지. 대체해야 하는 부위가 모두 아이들 거니까. 하지만 몸을 갈아 넣어도 며칠만 지나면 새로 간 부분도 썩기 시작해서 다시 사냥하는 악순환이 계속되었소. 섬유 지대에서는 이 요괴를 조각보 사나이라고 불렀소.
얼터드 카본의 주제 의식이 드러나는 도시전설. 어디서 본 듯하지만 다른 듯한. 주제의식? 제목이 워낙 '적나라'해서 굳이 설명이 필요없을 듯 하나, 소설에서는 친절하게 아래 하이쿠까지 적어놓는 수고를 아끼지 않았다(왜 적었는지 좀 바보같긴 했다. 마땅히 적을 데가 없지만 작가가 생각하기에 멋졌는지 꼭 끼워놓고 싶었던 것 같다).

빌린 장갑처럼 새 몸을 입으니
다시금 손가락을 데는 고행이 시작되누나

치앙, 닥터로우에 버금가는 호소력 있는(?) 글빨, 안정적인 내러티브, 잘 설계된 임팩트 포인트와 클라이막스, 수준 급의 대사 처리, (워드로 타잎하고 고민한 티가 줄줄 나는) 문단의 세심한 마이크로 매니징, 그래도 잊지 않고 막가는 하드보일드, 성분 함량을 제대로 지키고 모르는 것은 입닥치고 아는 것은 제대로 설명한 '모던' 사이버펑크, 계산된 우연과 행운, 끝은 해피 엔드. hellblazer와 달리 얼터드 카본의 주인공은 담배를 끊기 위해 (내 입에서 욕 나올 정도로) 짜증나게 군다. 아참, 기시감이 느껴지는 친숙한 경구: '다음 장면으로 넘어가자'

누군가 싸구려 오마쥬라고 혹평한 '얼터드 카본'이 자기와 상생이 맞는지 확인할 겸 낚시용 문장 몇 개 적어 하드보일드 SF 팬이 기꺼이 낚이길 기대해 보겠다.

관중은 열광했다. 나는 어두침침한 객석 쪽으로 시선을 들고, 문명의 피부가 벗겨져 나가고 분노가 속살처럼 드러나는 광경을 바라보았다.
 
"잊어버려. 다 업무니까. 경찰들을 끌어들인 건 미안한데 지원병력이 급하게 필요했어. 여기서는 경찰을 그렇게 부르잖아? 인근에서 가장 큰 갱단이라고."
 
라이커의 몸에 인생의 시련에 온 몸으로 돌진한 남자 특유의 분위기가 있었다면, 거울 속의 남자는 역경이 닥칠 때마다 약삭빠르게 살짝 비켜서서 운명의 신이 꼴사납게 옆으로 넘어지는 모습을 구경할 것 같은 인상이었다. 고양이 같은 동작이었다. 매끈하고 수월해 보이는 경제적인 움직임은 앙카나 살로마오의 무대에 서도 될 것 같았다. 남색에 가까운 숱 많은 머리카락이 날렵한 어깨 위로 찰랑거렸고, 우아하게 찢어진 눈빛에는 우주가 살만한 곳이라는 듯한 부드럽고 무심한 표정이 담겨 있었다.
 
"취할 때까지 마실건가?"
"물론. 나 자신과 이야기 하면서 꼭 멀쩡할 이유는 없으니까."

나는 다음 계단을 향해 돌아서면서 가슴 속 어딘가에서 나직한 클클거림을 찾아 내뱉었다. 순간 확 치밀어 오르더니 웃음 비슷하게 입 밖으로 나왔다. 다음 화면으로 넘어가자.


소표 칼국수 - 건면임에도 맛있다. 영남일보 맛기행을 보니 60여년전 우후죽순 생겨난 국수공장들 끼리 혈투를 벌이다가 90년대쯤 오뚜기 OEM 국수 공장이 대구를 제패한 이후에도 명맥을 유지하는 몇 안 되는 국수공장 중 하나란다. 다가수 국수야 요즘 개나 소나 다 만들지만 소표 칼국수는 유난히 맛있다. 오죽하면 출출한 밤에 먹고는 하던 라면을 거의 끊다시피 하고 칼국수를 끓여먹을까? 칼국수 조리 시간은 4분, 재료는 애호박, 양파, 파, 마늘, 감자, 당근, 바지락 중에 냉장고에 있는 것으로. 라면은 조리 시간 3분, 아무리 좋은 라면이라고 해도(맛있는 라면 같은) 생야채 넣고 끓인 소표 칼국수만 못 했다.

사용자 삽입 이미지
The Unusuals. 최근 시작한 범죄물. 음악을 언어처럼 사용. 그런데 캡쳐할 마땅한 장면이 없다. 꽤 웃겨서, 요즘은 범죄물이 코믹으로 개종하는 추세인가 싶다.

사용자 삽입 이미지
파트너. 시대가 다른건지, 문화가 다른건지, 첫 몇 화가 지루하다.

사용자 삽입 이미지
"찰리.. 무슨 생각 하는 거야?"
"내가 원하는 것과 필요한 것을 생각 중이야."
"뭘 원하는데?"
"평화로운 영혼."
"뭐가 필요한데?"
"더 큰 총."

매 화마다 뭔가 좀 별난 장면이 한 번씩은 나오는 라이프가 2시즌을 마감했다. 저 장면은 형사가 차로 사람을 들이받아 죽이는 장면. 카메라 각도를 보면 이 장면 찍던 스태프와 감독과 연출이 히히덕거리며 즐겼던 것 같다.

,

SportTracks

GPS 2009. 4. 23. 15:05
상오기님 블로그에서  SportTracks이란 프로그램을 보았다. 그러고보니 어디선가 이름을 들어본 적이 있는 것 같다. 트랙로그를 관리해 주는 프로그램인데, 해당 사이트의 플러그인들을 보니 단순한 트랙로그 관리 프로그램이 아니었다. 여태까지 트랙로그를 워낙 원시적으로 관리하고 있던 차라(.gdb 또는 .gtm으로 기록하고 주행기록 정보는 excel로 별도 관리) 이 김에 맘 먹고 써보기로 했다.
 
SportTracks

써보면 써 볼수록 놀랍다. 특히 플러그인으로 제공되는 기능이 막강하다. 프로그램의 목적이 단순한 트랙관리 뿐만 아니라 운동선수를 위한 지속적인 트레이닝 관리에 있다는 걸 알 수 있었다. 이거 운동선수에게 꼭 필요한 프로그램같다. 나처럼 주말에나 간신히 레저용으로 바이크 잠깐 타는 사람이야 단순히 트랙로그 관리 정도로 사용할 법하지만. 시간 날 때 좀 더 세부적으로 파악해 보기로 하고, 기본적인 사용법은 상오기님 블로그에서 확인하면 될 것 같으니, 프로그램 운영에 필요한 몇 가지 플러그인에 관한 정보를 정리해 둔다.
 
SportTracks

플러그인 설치: 확장자가 .exe이거나 .st2plugin인 파일은 SportTracks 설치 후 더블 클릭하면 설치가 된다. 그외 확장자가 .dll인 것들은 SportTracks이 설치된 디렉토리의 plugins 서브 디렉토리에 복사해 놓는다. 플러그인 설치 후 SportTrack을 다시 시작해야 한다. 유용한 플러그인은 다음과 같다.
 
GPSBabel: gps 파일 포맷간 변환. gpsbabel 설치 후 커맨드라인 툴인 gpsbabel.exe및 libexpat.dll 파일을 plugin 설치 디렉토리에 복사해 두어야 한다. 자신의 트랙로그 뿐만 아니라 다른 사람들의 유용한 트랙로그를 가져와 난이도를 분석한다던지 하는 용도로 사용하려면 이 플러그인을 설치해두는 것이 필요해 보인다.
 
GPS Correction: GPS 측점 중 거리가 음수로 나타나는 것들(잘못된 것들)을 평가해 제거한다. 눈에 띄게 달라지는 것을 느끼진 못했다.
 
Elevation Correction: GPS Barometer가 없거나, 있어도 기압고도 변경이 심하여 원래 해발고도와 다르게 기록되는 경우 SRTM 자료를 이용해(플러그인 설치후 자동으로 다운받는다) 해당 경위도의 고도로 교정한다. SRTM3의 경우 SRTM1을 3x3 매트릭스로 평탄화한 자료로 고도 오차는 최대 90m까지 벌어질 수 있다는 말들이 있는데, 실측 결과 20-30m 정도의 차이를 보였던 것 같다. 사실 90m 오차라는 말의 신빙성을 확인할 수가 없어 좀 더 찾아봐야겠다.
 
Analyze Elevation Correction: Elevation Correction 플러그인으로 교정한 고도와 GPS 트랙로그 고도를 비교하여 지나친 차이가 발생하는지 여부를 평가한다. 고도 교정 플러그인의 SRTM 자료가 정밀한 것은 아니라서 GPS 측점이 맞을 수도 있다. 그런데 이 플러그인이 실제로 작동하는지 그 여부를 확인할 수 없었다.

High Score: 최대 속도, 최저 속도 등 가장 높은 점이나 가장 빠른 속도 순으로 GPS 기록측점 을 정렬하여 테이블 형식으로 보여준다.
 
Overlay: Activity를 2개 이상 겹쳐서 보여주는 플러그인. 예를 들어 같은 코스를 여러 차례 주행할 때 두 주행 기록 사이의 퍼포먼스를 평가해 보고 싶을 때 오버레이 뷰를 사용한다.
 
SportTracks

GPS2PowerTrack: activity(tracklog)를 분석하여 칼로리 소비량을 계산해 준다. 분석을 위해 날씨 정보를 수집해야 하는데, 이를 위해 weather station 정보를 자동으로 얻어온다. 칼로리 소비량을 알려면 force 및 drag force를 계산해야 하고, drag force를 계산하려면 drag coefficient 따위 알아야 할 정보들이 좀 있다. 아직 자세히 살펴보지 않았다.
 
Map Overlay: 2개의 플러그인으로 구성되어 있다. 하나는 경로 상에 지도를 오버레이 표시해 주기 위한 것이다. 한국에서 사용 가능한 지도는 AR Terran과 Satellite 인데, 둘 다 구글맵을 사용하는 것 같다. 다른 플러그인은 activity(tracklog)를 속도나 고도 등을 색깔로 구분해서 출력해 주는 플러그인이다. 속도나 고도로 경로를 색깔별로 출력하기 위해서는 날씨 정보를 제공하는 GPS2PowerTrack이 설치되어 있어야 한다.
 
After Import: gps tracklog를 가져온 후 powertrack에 필요한 자료를 가져와 칼로리 소비량 따위를 계산하기 위한 작업을 자동화한다. 사실 이것 외에 뭐 다른 용도가 있는지는 잘 모르겠다. 다만 이 플러그인이 없으면 수동 작업이 무척 귀찮다는 것 뿐.
 
GPSBabel, GPS Correction, Elevation Correction 등은 tracklog를 가져올 때 적용되는 일종의 전처리 플러그인이라 할 수 있고 High Score, Overlay, PowerTrack, Map Overlay 등은 가져온 tracklog를 바탕으로 후처리를 하는 플러그인으로 볼 수 있다. 이들 외에도 여러 종류의 플러그인이 있는데 나머지는 귀찮아서 생략.

tracklog를 평가하기 위해, Power Track과 Map Overlay는 거의 반드시 설치해야 하는 플러그인이다. 다만 그 플러그인 제작자가 말은 도네이션웨어라고 하면서 도네이션 안하면 플러그인을 일정 기간 이상 사용 못하게 제한해 놓아 좀 귀찮다.
 
SportTracks

Map Overlay로 표시된 자전거 주행 정보. 여기 나타나는 temperature 및 tailwind, headwind는 날씨 정보에서 가져온 것이다. 이 화면 처음에 보고 확 맛이 갔다. 바로 내가 원하던 것이다.

calory 소비량을 force - drag force로 계산하는 것 같은데, force는 tracklog의 측점간 속도와 착용 장비 전체의 무게를 바탕으로 계산하고 drag force는 인체(및 자전거)의 항력계수와 날씨 정보로부터 얻을 수 있는 역풍, 순풍 등의 파라미터와 몸무게 및 장비 전체 무게 따위로 계산하는 것 같다(몸무게를 이용해 BMI 계산해주는 것은 기본). 자세한 식은 http://en.wikipedia.org/wiki/Drag_force 에서 찾으면 될 것 같은데, 위키피디어 자료에 의하면 서 있는 인체의 항력계수는 1.1, 자전거에 타서 허리를 숙인 경우 0.9 정도가 되는 것 같다. 플러그인에서 어떤 식으로 계산한 것인지 배경을 잘 몰라 좀 더 찾아봐야 정확한 칼로리 계산이 가능할 것 같다.
 
놀란 것은 한국의 날씨 정보 사이트에서는 볼 수 없었던 종류의 정보를 한국에 설치된 weather station을 이용해 그 자료를 축적해 둔 외국 사이트에서 확인했다는 점이다.
 
SportTracks

GPS2PowerPack 플러그인 화면의 weather stations 트랙로그에 의해 자동 검색된 weather statins들.
 
Weather Information

weather station중 하나를 클릭해 들어간 웹사이트에 나타난 날씨 정보. 시간별로 온도, 습도, 풍향및 풍속, 해수면기준 기압, 심지어 가시도까지 나타난다. 이들 데이터는 수개월~수년 동안 해당 사이트에 보전되어 있는 것 같다.

 

 
,

Serenity

잡기 2009. 4. 16. 00:13
美 차기 우주정거장 모듈 이름 '고요' -- 경악했다. ISS의 모듈명에 Serenity는 너무나 당연해서 따놓은 당상으로 생각했다. SF 드라마 Firefly를 함께 즐겼던 미국의 오타쿠들과 마찬가지로 나도 무척 안타깝다. Serenity가 겨우 4만표를 얻었다니, 한국의 디겔만도 못한 미국의 희박한 오타쿠 갯수가 의외다.

얼마전 마감된 KSLV-I 명명 이벤트에서는 감히 단언컨대, '미르'나 독도, 고구려 관련 단어가 가장 많이 나왔을 것이다. 나? 나는 '솜다리'로 했으면 좋겠다고 생각했다. 페이로드가 코딱지 만해 거창한 이름 붙이는게 낯 부끄러워서. 21세기임에도 한국이 스페이스 클럽에 끼지 못한 게 처량하고, 발사체를 러시아에서 기술 이전 받아야 하는 팔자가 민망하고 북한이 하고 싶은 대로 로켓 날리는 동안 과거 미국과 합의된 로켓 추력 제한에 설움마저 느낀다. 그래서 그런 거창한 이름은 자주, 독립이 가능해질 것으로 예상되는 2017년 무렵 달 착륙선 띄울 때에나 써먹으면 좋겠다. 그 동안은 발사체 이름에 (민들레)홀씨, 나리, 이끼, 잔디 같은 쉽고 야들야들한 이름이 낫지 않나?

생각나서 들어간 KSLV 공식 홈페이지에 적어놓은 발사 의의를 읽다가 웃었다. “첫 발사 실패를 딛고 일어설 수 있는 국민적 용기가 없었다면 인도의 우주개발은 불가능 했을 것”  -- 2007년 한국을 방문시 인도의 압둘칼람 대통령의 말.

국립공원, 지리산에까지 케이블카를 놓겠다고요? -- 아고라 청원 진행 중. 케이블카 놓는 걸 반대했지만(난 고생해서 올라가는데 다른 사람들은 아주 쉽게 올라간다는 것이 영 마음에 안 들어서. 산을 쉽게 올라가려면 뭣하러 산에 가나?), 케이블카를 놓겠다는 사람들이나 그것을 반대하는 사람들은 너나 없이 자연보호를  명분 삼았다. 저간 사정을 둘러보면 순진하거나, 위선적으로 보인다.

다음의 '케이블카 없는 자연공원' 까페 자료실에 있는 양양군이 제출한 삭도 건설 계획 '설악산 국립공원내 오색-대청봉간 케이블'은 고발용 자료 확보를 목적으로 글을 올린 사람의 의도와 달리, 케이블카 건설이 타당해 보인다(적어도 그에 반하는 설득력있는 주장을 접하지 못했다). 그건 그렇고, 설악산이 얼마나 개판이 되어가는지 알기는 하나? 개떼같은 등산객들 때문에 낮이나 밤이나 시끄럽기 그지없는 설악산은 오랜 기간에 걸친 종 다양성 감소로 유네스코 자연공원 지정에 실패했다는 것을 이번에 알게 되었다. 지리산 성삼재 까지 올라가는 차량 통행로는 케이블카에 비해 더 안 좋은 환경오염원이다. 북한산에서는 산새가 사라진지 오래다.

환경운동 다수가 선의를 담보로 삼은 위선적인 프로파겐다인 것은 아니지만, 케이블카를 가설해 지역 경제를 부양하려는 지자체의 '탐욕'을 문제 삼는 것에는 거부감을 느꼈다. 묻지도 따지지도 않고 건설을 밀어붙이는 코메디 소재꺼리 '지자체'는 생각보다 그렇게 나쁜 놈들이 아니다. 댁은 어쩌면 지역불균형과 소득격차로 자기들은 절대 행복하지 않다고 주장하며 일상적으로 소외되는 지방민들의 악에 받친 정서에 감정이입이 가능할런지도 모르겠다. 난 그게 잘 안 되지만, 지자체가 케이블카를 건설하겠다는 것이 납득은 된다.

요즘은 인기가 없는 '개발 논리'에 반대하며 '자연 보호'를 명분 삼고 싶다면 케이블카 이전에,

(아참, 물론 케이블카 건설도 반대하고 골프장 건설도 반대하고, 터널 뚫고 길 내는 것도 반대하고, 갯벌도 살려야 하는 등 정신나간 막무가내식 개발에 저항하기 위해 쉴 틈 없이 노력해야 겠지만, 그전에 앞서 사회적 비용과 이익의 정량화 시도는 남을 설득하기 위한 노력이자 예절이라고 환경운동가들에게 말하고 싶다. 흡사 내 아내처럼 비합리적이고 막무가내에 인류애로 가득찬 그들, 선한 골통들의 주장을 별로 신뢰하지 않게 되었다)

산꼭대기까지 이어진 도로 따위를 모두 없애버려야 한다.  이 김에 포장된 사찰 진입로도 갈아엎어 버리자. 불살생의 철학을 실천해야 하는 사찰의 진입로에 다람쥐 가죽이 길죽하게 말라붙어 있는 아이러니를 앞으로도 계속 보지 않으려면. 이들 포장길을 운행하는 차량에 의한  오염은 사람들이 생각하는 것만큼 대단치 않다. 차량이 뿜어내는 오염물질 1년치를 다 합쳐도 1ha도 안되는 면적에서 산불 한 시간 번진 것에 비하면 그 오염 정도가 세발에 피다.

국립공원 입장료 부활 -- 국립공원 관리비 충당. 국립공원 입장료를 폐지한 다음 등산객 숫자가 어마어마하게 늘었다. 등산은 가장 비용이 적게 드는 국민 레져 활동이 되었다. 국립공원 입장료가 부활하면 사람들이 덜 찾게 된다. 등산객들의 증가와 반비례해서 그들의 매너는 매년 하향평준화되는 추세인데(쓰레기 투기, 고성방가, 휴식제 구간의 신나는 등산로 개척, 즐거운 산속 캠핑과 비지땀을 흘리며 오른 산정에서 즐기는 깊숙한 담배 한 모금, 그리고 추억의 쥐불 놀이 따위)  이들의 '탈선'을 관리할 인원은 절대적으로 부족하다.

등산객 편의를 봐주려고 건설하는 '등산로 정비'같은 반자연주의적인 행동은 케이블카 건설과 마찬가지로 반대해야 한다. 한국의 자연공원은 누구말마따나 '튼튼하고 건장한 사람들이나 즐길 수 있는 곳'으로 남아 있어야 바람직하다. 등산로 토사 유실을 막기  위해 돌 계단을 만들고, 값싼 외래수입종 나무로 고즈넉한 산책로를 꾸미는 것 등은 사실 자연를 '원래 그대로 내버려두고 최소한만 간섭하는 것'에서 벗어난 훼손 행위다. 한국의 잘 정비된/정비될 등산로가 그렇다. 또한 외래종 나무에는 생태계를 전복시킬 수도 있는 외래 종자나 미생물이 붙어 수입될 우려도 있다.

입산 통제 -- 등산객의 기하급수적인 증가로 북한산 같은 곳은 휴식제를 확대하거나 일일 등산객 숫자를 제한한다 -- 입장료가 폐지되기 이전인 불과 몇년 전 까지만 해도 이 정도는 아니었다. 북한산 능선길이 이제는 거의 신작로가 되었고 주말은 물론, 주중에도 일상적으로 붐빈다. 이왕 하는 김에 산에 들어가려면 일정 수준의 장비를 갖추었는지 체크하자. 등산 난이도로 구간 통행을 통제하는데, 하이힐에 미니 스커트 입고 암릉을 오르는 왠 미친년들의 어머니 자연에 대한 불손한 태도는 매로 교정할 뿐만 아니라 그들의 추락사고를 미연에 방지하는 효과도 있다.

자연공원내 불법행위시 더욱 강한 제제 -- 비록 전 국토의 5% 미만에 불과한 국립공원 면적이지만 관리는 아주 다른 문제다. 산에 가면 거나하게 술 처먹고 지랄하는 등산객은 일상적이고 아무데나 똥/오줌을 싸는 놈들, 과일 껍데기를 여기저기 버리거나, 심지어는, 경악스럽게도 담배꽁초가 발견되기도 한다. 이들 고난의 근대사를 경험한 어르신들이 떼로 뭉치면 무적에 가까워 어른에 대한 예의를 모르는 젊은 단속요원은 속수무책으로 다구리 당한다. 요주의 지역에 야생동물 감시 카메라를 설치해서 이런 짐승들의 사진을 찍어 하산시 곤장으로 다스리고 벌금을 심하게 먹인다. 도주시에는 3대가 개망신 당하도록 한다. 죄질이 무겁지 않다면 산과 계곡에서 등산객들이 버린 쓰레기를 한 푸대 담아올 때까지 사회봉사활동 형에 처해 친환경적인 개과천선을 유도하자.

자연공원내 상행위 금지 -- 굳이 멀리갈 것도 없이 서울 인근의 북한산 송추계곡이나 관악산 주변을 보면 가관도 아니다. 과연 케이블카 문제가 이들보다 심각할까? 그리고 산속 깊숙이 틀어박힌 '인기있는' 민박집과 음식점은 사실 대단한 환경 오염원이다. 순진한 당신은 아마 이들이 땅 파서 쓰레기를 묻거나 한밤중에 드럼통에 쓰레기를 불태우는 광경을 한 번도 본 적이 없을 것이다. 게다가 지역주민의 삶의 터전, 생계 유지와 복잡하게 얽혀 있어 풀어내기 쉽지 않은 문제가 되는데 ,  가난한 지자체는 보통 이들 이주 비용 마련은 커녕 '자연공원내 불법 취사행위'를 단속할 예산이나 인력이 없다.

더 떠들면 케이블카 놓는 거 반대하는 사람들 놀리는 것처럼 들릴테니 농담따먹기는 이쯤 해 두자.

목련이 후두둑 떨어지던 토요일 오후 자전거 타고 멀리 멀리 떠나갈까 하다가 정신 차리고 지난 겨울부터 지금까지 여러 종류의 비포장 도로에서  온갖 오물이 다 묻은 자전거를 닦기로 했다. 작년에는, 올해가 마지막이다 뭐 그런 심정으로 2009년에는 자전거를 팔고 새 자전거를 살 생각이었는데, 원자재가 상승, 불황, 기타 등등의 이유로 자전거 가격이 상당히 많이 올라 가지고 있는 자전거를 열심히 닦아 더 타기로.

분해한 자전거
물 빨래하고 말리는 중. 분해하고 나니 자전거가 흡사 로드킬처럼 보인다. 이렇게 놔두고 동네를 두리번 거리다가 생수통을 줏어 주유소에 가서 등유를 사왔다. 집안에 굴러 다니던 500ml 짜리 물통에 등유를 300ml 정도 넣고 체인을 분해한 다음 한 줄로 살살 구겨 넣어 체인에 묻은 끈적끈적한 기름때를 녹였다.

체인 때를 녹이는 용매로 신너가 더 좋긴 한데... 오래 전에 덥수룩한 수염에 세수도 안 하고 츄리닝 차림으로 신너를 사러 가니 주인 아저씨가 나를 마치  직장을 잃고 가정 파탄 후 머리 꼭지에 신너를 부어 대로변에서 분신 자살을 기도하려는 비장한 30대 가장 쳐다보듯이 복잡한 표정을 지어 보인 적이 있다.

등유 사러 갈 땐 수염을 깎아야 할까?

분해해서 물 청소 하는데만 한 시간, 등유 사오느라 30분, 저것들을 조립하느라 다시 한 시간, 구정물처럼 검은 등유를 태우고 체인을 정리하는데 30분, 디레일러 조정에 30분을 보냈다. 14:00 시작해서 17:30이 되어서야 작업을 끝냈다. 오랫만에 하는 정비라 정성을 기울였다. 정비 잘해 봤자 자전거 성능이 좋아지지는 않는다. 정비 해봤자 별 소득 없다. 그저 깨끗해진 자전거를 보면 기분이 좀 나아진다. 30분 동안 시내에서 시험주행을 했다. 앞뒤 디레일러 조정이 전보다 쉽게 느껴졌다. 기름 한 방울 안 먹였는데도 비꺽이지 않고, 변속 또한  원활하다. 완벽하다.

'완벽한 여자를 만나본 적이 있소?' 두 남자가 고개를 끄떡인다. '술에 안 취한 상태로?' 그러자 고개를 젓는다. -- Life Season 2, Episode 16. 아무렴.

햇님이 살짝 숨을 죽인 다음 날 아침 자전거를 몰고 올림픽 공원에 가서 자전거 타기 연습을 했다. 요즘은 왠일인지 황사가 없다. 3kmh 미만의 저속에서 실속 후 자빠지지 않으려고 하는데 균형감각이 영 안 좋아 자꾸 넘어진다. 한 번은 한 발에 얹힌 체중 때문에 홱 돌아가버린 뾰족한 페달 날에 왼쪽 정강이를 찍혀 눈물이 찔끔 나왔다. 오른 손, 왼 손 번갈아 한 손만 사용해서 8자 커브 틀기 연습도 했다. 정지 상태에서 stand still은 아주 어려웠다. 안장에 엉덩이를 얹지 않으면 자전거 균형 잡기가 좀 수월해진다는 요령 정도만 익혔다. 입맛을 쩝쩝 다실 정도로 소득이 별로 없다.

자전거 오래 타봤자 반응속도나 균형감각이 저절로 늘어나지는 않는다. 그래도 주행 중 의외의 상황에 대비해서 조금씩은 미리 연습해 둬야 도움이 된다. 제작년에 벽 보고 치킨런하며 브레이크 잡기 연습한 것만으로 그 후 오랫동안 얼마나 많은 상황에서 사고를 피할 수 있었나?

한 시간쯤 엄벙덤벙 자전거 걸음마 연습을 하고 성산대교를 건너 한강로를 따라 행주대교까지 간 다음, 다리를 건넜다. 길을 잘못 들었는지 다리를 건너서 한 동안 역주행하느라 기분이 묘했다. 이러면 안 되는데... 행주산성의 국수집에 들렀으나 여전히 사람들이 바글거려 국수 먹기를 포기하고 여러 농로를 거쳐 수색 역에 다달았다. 집에 돌아오는 길 내내 벚꽃이 떨어지며 흩날렸다. 꽃들이 전쟁하듯 번식에 열을 올리는 봄이다. 사람도 마찬가지겠지.

자전거 전조등의 전지를 사러 편의점에 들렀다. 새로 산 건전지인데도 기전력이 떨어져 LED에 불이 들어오지 않는다. 편의점 전지들은 대개 그 모양이다. 장시간 방치되어 방전되어 있기 일쑤였다. 편의점 알바는 판매한 것이 새 전지라고 말했다. 글쎄다. 닥달해서 교환을 요구했으나 자기 권한 밖이란다. 400원 거슬러 받고 우겨서 다른 건전지로 바꿨다. 불이 들어온다. 일곱 개짜리 그런 건전지 뭉치가 무려 5300원이나 한다. enelope AA 4개가 만 원 가량, 한번 사면 몇 년 동안 충전해서 사용할 수 있다. 에넬루프 충전지를 사야겠다.

체인에 기름을 먹이고 창고에 넣은 후 포대를 씌웠다. 약 40kmh를 한가하게 달렸음에도 몇 주 동안 자전거를 못 타서인지 몸이 피곤하고 나른하다. 요즘 잠을 통 못 잔 탓도 있다. 일주일에 한 번 주말에 간혹 타는 정도로는 자전거 여행 준비에 도움이 되지 않는다. 그렇다고 자전거로 출퇴근을 하자니 사무실에 샤워실이 없어서 곤란하고... 무슨 대책을 세워야겠다.

Battlestar Galactica: 시즌4 중반부터 왠일로 성의를 보이더니... 20화를 마지막으로 완전히 끝났다. 갤럭티카에서 볼 꺼라곤 음악과 연출 정도? 연출이 안타까울 정도로 소똥 같은 극의 분위기는 뭐... 미운 정 고운 정 다 들어 내치지 못하고 '임종'을 지켜본 셈.  하여튼 마지막까지 맛 가게 만들어 주신다. 4기 내내 꼬마애 때문에 갖은 지랄을 떨더니 제2의 지구와 미토콘트리아 이브로 3분 즉석요리처럼 간편하게 결론을 내버렸다. 하여튼 내 주위에는 온통 BG가 재밌다는 사람들 투성이다!

GeoSetter for Windows -- 요새 OSM 때문에 email을 주고받는 로버트씨가 gpicSync 대신 추천해 준 프로그램. 괜찮다.

GeoSetter
사진을 구글 맵 프리뷰(한국 지도도 잘 나온다)에서 바로 볼 수 있다.

GeoSetter
sync 속도 역시 만족스럽다. 즉시 확인 가능하다는 것이 가장 큰 장점. 저장은 역시 속도가 느린 편.

GeoSetter
덤으로 JPEG 안에 여러 가지 태그를 삽입할 수 있다. panoramio와 이런 종류의 태그(JPEG Comment)가 자동으로 교환된다면 더할 나위 없이 좋겠다. -- 사진 따로 캡션 따로가 아니라  사진 안에 캡션을 임베드하는 것인데 더 많은 그래픽 뷰어들이 이것들을 지원해 주면 얼마나 좋을까.


사용자 삽입 이미지
철완버디 decode. 그림이 animate되면, 특히 빠른 속도로 움직이는 액션씬은 컬러가 사라진다 -- 사람 뇌가 그렇게 처리한다. 색상, 면, 윤곽선, 방향 벡터를 자근자근 해체한 다음 포스트모던하게 재구성했다. 그래서인지 철완버디의 액션씬은 찰떡처럼 쫀득하고 이해가 아주 빨리 된다. 철완버디도 2기가 끝났다. 3기가 과연 나올까?

사용자 삽입 이미지
라이 투 미의 주인공은 인상만 드러운게 아니고 평소 행동도 건달같다. 재밌는 건지 아닌지 아직 모르겠다. 한국 대사관 편에서 무표정한 동양인 역시 서양인과 마찬가지로 표정과 제스쳐는 거짓말을 못한다고 주장한다. 맞겠지만(거기 등장하는 한국인들은 표정이 참 풍부하다), 무릎에 단정하게 손을 올려놓고 사람들을 쳐다보지 않은 채 오직 입만 움직이고, 제스쳐를 사용하지 않는데다 아무런 열정이나 내색 없이, 졸지도 않으면서 회의에 참여하는 사이코패스같은 사람들이 서양인들이 피상적으로 알고 있는 '동양'에는 의외로 많다 그래서 속내를 알기 위해 비일상적으로 살과 말을 부비적거리는 상황을 인위적으로 만들어 본능의 밑바닥까지 함께 추락해야 피차 상대 욕망의 속성을 파악할 수 있다고 여기는 정서가 동양에 존재하는 것 아닐까?

샹그리라
샹그리라. 도쿄가 저 모양이 되었다. SF인데, 1화부터 위화감을 느꼈다. 작화와 작위적인 컨셉 때문인 듯. 심지어 탄소세 운운 상투적인 소재를 이용하는 주제에 나같은 SF 매니아를 바보 취급하듯 친절하게 장광설을 늘어놓는 장면이 나왔다. 제발 세일러복 입은 여자 고삐리가 팬티 보이며 설치는 '그렇고 그런 애니'가 아니었으면 하는 바램이다. 안 그래도 SF가 날이 갈수록 귀해진다.

요즘은 일주일에 평균 2-3권 정도 책을 읽었다. 주목할 만한 것은 없었다.

,

헤로도토스

잡기 2009. 4. 6. 01:12

아이가 고집이 늘었다. 기질과 달리 성격은 후천적이다 -- 내향성은 평생 가지만 쓸데없는 고집은 대부분 고칠 수 있다. 말도 좀 늦고 애가 그리 똑똑해 보이지 않아서 다행이라고 생각했다. 아내는 제 자식이 주위 또래에 비하면 꽤 똘똘한 편이라고 생각했다. 착각이지 싶다.

좀 빠른 아이는 소울이 또래에 신발끈을 묶는다. 신발끈 묶는 정도면 대단한 경지다. 지금 아이 나이에는 평균적으로 하루 20단어 정도를 습득하는데 주말에 간혹 테스트하면 속도나 단기기억력이 선천적으로 좋은 편은 아니었다. 속도는 아직 수초화가 제대로 이루어지지 않아서 대뇌에서 p300이  출현하려면 아직 시간이 걸릴 것으로 짐작된다. 아내 성격상 신경계 형성에 도움이 되는 지방류, 콜레스테롤의 섭취를 장려할 것 같지는 않아 그래도 생선만큼은 먹이라고 말했다. 하지만 DHA가 두뇌발달에 도움이 된다는 아직 근거가 불분명한 얘기는 믿지 않았다. 포화지방이니 불포화지방이니 하는 바보같은 얘기도 마찬가지고, 그냥 돼지기름보다는 생선기름에 거부감이 덜하니까 생선이라도 먹이라고 말한 것이다. 하여튼 아이 아빠는 네 살 무렵 스스로 한글을 익혔는데, 어린 나이 때부터 채식주의자였다(16세가 넘어서야 의식적으로 노력을 기울여 고기를 먹을 수 있었다. 좋더라). 소울이가 제 아빠처럼 할 것 같지는 않다.

아이는 이 블로그 상단 이미지의 공룡을 보고 친근감을 느꼈던 것 같다. 아내는 값비싼 디스커버리 원서를 부러 주문해서 아이에게 줬다. 공룡 책이라면 16페이지 짜리가 무려 만원씩이나 하는 빌어먹을 것 말고 더 좋은 것도 있는데... 사실 20년 전 책보다 요즘 책들이 더 좋다고 말할 부분이 별로 없다. 예전 공룡책과 요즘 공룡책에서도 별로 큰 차이를 느끼지 못했고(주류의 견해가 바뀌어 삽화가 약간 달라졌다. 알로사우르스나 몇몇 익룡들, 벨로키렙터의 깃 따위), 공룡 책 이외의 자연도감 류의 책들도 몇몇 종을 제외하면 오히려 가격대 성능비가 요즘 책들이 떨어진달까? 호랑나비가 어느새 도심에 걸맞게 적응해서 회색 날개를 달고 돌아다니는 것도 아니니. 다만 달라진 것은 아이들이 장수하늘소나 사슴벌레를 잡아 놀던 옛날과 달라서 지금은 그런 천연기념물의 채집을 법으로 금지한다 정도? 옛날이나 지금이나 달라지지 않은 것이 있다면, 아이들 책은 비쌌고, 여전히 비싸다.

멘탈리스트: 심리해킹의 미학 -- 현직 최면술사가 멘탈리스트에 사용된 각종 테크닉을 해설. 멘탈리스트는 챙겨보는 드라마. 워낙 압도적. 최면술사의 친절한 설명도 도움이 되지만, 보통은 추리소설 독자 정도면 친절한 카메라를 따라가며 많은 단서를 발견할 수 있다.

멘탈리스트와 비슷한 부류의 드라마로 Lie to Me란 것도 있다. 마이크로 익스프레션 딱 하나의 소재 만으로 드라마를 만들다니 대단하다. 짝짝이 눈의 주인공이 딱히 마음에 들지는 않았다.  포스텍, 사람의 표정 읽는 기술 개발 -- 이런 기사도 있고. 라이 투 미에서 0.065초 사이에 변화하는 사람들의 표정을 보고 감정 상태를 판별한다더라. 65msec이면 29.95fps로 돌아가는 영상에서 고작 2 프레임에 해당한다. 순식간에 지나가기 때문에 대뇌의 시각 처리기가 뭔가를 보고 의식적으로 판단/처리하기는 불가능할 것 같다. 표정과 제스처의 그런 미세하고 재빠른 변화는 피나는 훈련을 통해 연습하거나 어렴풋한 본능과 육감에 의지하는 수 밖에 없어 보인다.

기억은 사소해서 기록되지 않고 사람을 통해 전해진다. 사실은 아니지만 맥락은 그렇다. 당신을 알 수 없다 -- 기록되지 않아서. 그 오랜 세월 뭘 했을까? 모른다. 기록되지 않아서. 기억과 달리 블로그질은 내게 코딩과 같다. 단락과 단어 사이의 협소하고 듬성한 여백에 기억의 의미와 감상을 모종처럼 심어두었다가 말려 죽이는. 가끔 몇 년 전의 블로그 기사를 본다. 나는, 많이, 변했다.

언제부터 호이겐스를 하위헌스로 표기하게 된 것일까? 타이슨의 우주교향곡을 읽으면서 알게 된 것은 우주의 배경색이 연한 베이지색에 가까운 Cosmic Latte로, 웹 색상으로 치면 #FFF8E7이라는 것이다.  비록 3-4K의 낮은 온도지만, 우주는 구린 빛으로 가득차 있다.

우주 평균 색상의 별칭을 짓는데 사람들이 워낙 관심이 없었다. 워싱턴 포스트의 기사를 봤던 81명이 투표에 참가해 그중 Cappuccino Cosmico가 17표를 얻어 득세. 하지만 발견자는 코스믹 라떼를 고집했다. 라떼건 카푸치노건, 사이트 배경색을 그것으로 바꿨다.

바꿨는데 아무 티가 나지 않았다 -- 진정한 배경인 것이다.

사용자 삽입 이미지

POI를 거의 다 올렸다. 이전 지도와 비교.  POI 작업이 워낙 손이 많이 갔지만(약 3주) 효용은 아직 글쎄다. 78000여개의 POI를 올리는 프로그램을 작성해 돌려보니 6시간 가량 걸렸다. 스레드를 10개 병렬로 돌렸지만 업로드 속도는 별로 나아지지 않았다. 다음 작업은 Garmin GPS에서 POI가 제대로 표시되게 하기 위해 map feature를 만드는 것이다.

등산로를 수집해서 정리하는 작업도 남았다. 그러고나서 이제는 '가고 싶은 곳'에 도로를 깔고 적당한 위치에 POI를 손으로 삽입하는 것이다. 그 다음에 할 일은 특정 도로를 뜯어와 트랙 데이터를 만드는 프로그램을 작성하는 것이다. 어쨌든 전반부 작업은 끝났다. 어떤 POI는 바다 위에 떠 있는 것도 있고 어떤 POI는 어설픈 한국어-영어 기계번역 때문에 속이 뒤집히지만 78000개라는 데이터를 어떻게 일일이 손으로 검증할 수도 없는 노릇이니.

술자리에서 유이사님과 산행 얘기를 했다. 요즘 지도 작업 하다가 한국의 산하에서 도로가 없는 상쾌한 초록의 바다를 몇몇 발견해서 탐험욕을 자극한다고 했더니 함께 가잔다. 그 와중에 올 여름에는 캠핑 기어를 갖추고 오지 여행을 함께 가겠다는 사람이 있었다. 힘들게 다니기는 어렵겠다. 길없는 산길을 4-50km씩 걸으면 체내 염분 결핍이나 칼슘 부족으로 쥐가 나거나, 멀쩡해 보이는데 픽 쓰러질 수도 있고... 정선 인근이나...  덕풍계곡/왕피천 등지를 1박 3일 트래킹 할 수 있는 곳을 잡아봐야겠다.

이 김에 nova stove, nalgene 수통, lexan 용기 따위 럭셔리하게 장만해 볼까? 어... 미쳤지. 하지만 백금이나 티타늄으로 코팅된 미러 코팅 보안경은 언젠가 구입하려고 마음먹고 있었다. 눈밭을 돌아다닐 때 보안경이 없으면 눈이 아프다. 대체로 초록색 렌즈가 눈이 편하고 어두운 곳에서도 시계가 선명하다.

라메즈 남이 지은 '인간의 미래'에서는 신앙심의 26%가 유전자의 영향을 받고, IQ와 국내 총생산 사이의 상관계수가 0.76이며, IQ와 경제 성장율의 상관관계가 0.64라고 한다. 사실같아 보이지 않았다. 책의 결말부에서 자기 자신을 향상시키기 위해 노력하는 본성적인 인간들 때문에 우리 후손은 놀라운 다양성을 보일 것이라고 말한다. 인간의 다양성? 글쎄. 개버릇 남 못 주지 싶다.

한편 2006년 LA타임즈가 선정한 '올해의 과학 넌픽션' 노미네이트 작품인 대니얼 J. 래비틴의  '뇌의 왈츠'에서는 마지막 장을 할애해 음악은 언어중추의 진화에서 파생된 spandrel에 불과하다는 스티븐 핑커로 대표되는 일부 사람들의 견해를 반박했다/하려고 애썼다. 음악을 몹시 사랑하는 저자 마음에는 스팬드럴 운운이 음악을 비하하는 것처럼 들린 모양이다. 책 전반부가 어설프고 중반부도 어설프다가 종반에서는 데이터가 부실한 아님 말고식 주장으로 뒷끝마저 좋지 않았다. 음악이 진화사상 성적 적합성을 과시하는 수단으로 사용되었으며, 그 대표적인 예로 유명한 록스타들은 주변에 항상 여자들이 들끓었단다(그렇게 예를 들면 어쩌자는 거야?). 그러면서 록스타와 결혼하려는 여자들보다는 그냥 하룻밤 자려는 사람들이 더 많다고 덧붙였다. 뭐야 이건?

농담이고, 감정을 불러일으키는 도구로써 음악은 언어보다 낫다고 주장했다. 뭐가 어떻게 나은데? 음성 언어에도 리듬과 강박이 있고 당기고 밀고 엇박자 치는 싱코페이션이 있고 미묘한 뉘앙스와 감정을 심을 수 있다. 음악에 있는 것은 다 있다. 원시언어는 원시음악과 마찬가지로 소뇌와 대뇌피질의 운동부위와 브로카, 베르니케 영역을 자극하고 편도체에도 같은 영향을 미친다. 따라서 나 같은 그 분야의 비전문가에게는 음악과 음성언어를 확연히 구분지을 수 있는 뚜렷한 경계를 논의 전에 먼저 제시해 줘야 한다. 뭘 구체적으로 입증한 것이 없는데다 언어와 음악을 가르는 기준 마저 없어서 농담따먹기 하자는 것인지, 장난삼아 책 낸 것인지 구분이 안 갔다.

나 같은 사람이 이런 블로그 엔트리를 쓸 때도 AABA나 ABBA AAB 따위로 음절마다 마디를 만들고 종지를 제어하며 발성 시간에 따른 문장의 길이를 압축하거나 팽창시키는 것을 알기는 할까? 한때는 글 쓰기에 아주 미쳐서 문장을 기술할 때 자음과 모음과 받침의 효과까지 감안한 적이 있다. 문자로 쓴 그 '음악'은 내가 쓴 글을 내가 읽을 때만 들리는 것 같지만! 글자에서 색깔은 물론 갖가지 특수효과도 본다.

음악도 과학도 이도저도 아닌 잡담에 김이 샜다.  과학교양서로는 꽝이었지만 책 읽는 내내 알만한 음악들이 머리속에서 울려퍼진, 그렇게 나쁘지 않은 책이었다.

요즘 도서관에서 가장 인기있는 대출서적은 단연 '화폐전쟁'이다. 항상 예약 대기자가 밀려 빌리지 못하고 있다. 구입하기는 돈 아깝고.

저번주에 북한산에 올랐다가 사람이 너무 많아서 의상능선 방면으로 빠졌다. 이제 녹기 시작한 눈으로 등산로는 진창이었고 내리막길에서 미끄러지지 않으려 엉거주춤 내려오다보니 다리에 알이 배겼다.

암벽을 안 타니 사람들 겁주기 위한 결정적인 포인트를 사진으로 남기기 어렵다. 북한산은 그리 쉬운 산은 아니다. 꽤 많은 사람들이 산을 오르다 부상당한다. 종종 죽는다. 그 지점은 대체로 정해져 있는 것 같다. 어렵고 힘든 코스에서 죽는게 아니라 방심해서 가신다.

족두리봉
족두리봉. 불광사에서 시작하여 관리소에서 오른쪽으로 틀면 나타나는 능선 코스(왼쪽은 향로봉 방면). 반대편에서 정상까지 쉽게 올라갈 수 있는데, 여름에는 사고 안 나지만 겨울에 이쪽 방면으로 오다가 다리가 풀려 미끄러져 다치는 사람들이 종종 있다. 아이 업고 30분에서 2시간 사이의 마실 코스로 여기 자주 오른다. 호연지기를 키워주려고 했는데 오히려 아이가 겁만 늘었다.

백운대, 진관사, 삼천사, 평창동 방면에서 불광사로 오는 사람이라면(북에서 남으로) 불광사 방면으로 내려가지 말고 족두리봉을 넘어(우회하여) 좌측으로 틀어 대호 아파트 방면으로 빠지는 것이 등산을 장쾌하게 마무리하는데 좋다. 꽤 경치가 좋다.

클릭하면 원본. 불광사에서 향로봉 방면으로 오르다가 뒤돌아서 온 길을 찍은 사진. 언제 찍었는지 모르겠다. 경치 좋은데 양쪽 난간이 낭떠러지다. 향로봉 코스는 염초봉, 원효봉 따위 암벽등반코스를 제외하고 한동안 북한산 전체에서 사망자 수가 가장 많은 곳이었다. 발을 헛디디지만 않으면 죽을 일은 없는데, 꼭 막걸리 한 잔 하고 다니는 등산객들이 문제다. 북한산은 대낮부터 얼굴 벌개서 돌아다니는 사람들에게 그리 만만한 산이 아니다. 사진의 아저씨는 사진 찍으려고 뒤로 뒤로 살금살금 물러나는데 이런 사람은 안 떨어진다. 보통 방심하다가 떨어지는 것이다.

사용자 삽입 이미지
비봉. 족두리봉이나 향로봉은 워낙 코스가 그 모양이라 관리요원이 지키지 않는다. 그런데 이 비봉에서만큼은 작년부터 관리원이 서서 오르는 사람들을 통제한다. 별 거 아닌 거 같아 보이는데 지금 사람들이 올라가는 저 지점에서 미끄러지면 매우 크게 다친다. 별 거 아닌 것 같아서 오르다가 미끄러지는 사람들이 많다. 그래서 장비 없는 사람들 통행을 금지시킨다.

나도 처음 한두 번은 저 사람들처럼 저 길로 잘만 올라갔다가, 언젠가 한 번 등산화가 쫙 미끄러진 적이 있어(소름이 쫙 끼쳤다) 신발 밑창을 다시  갈 때까지는 안 올라가기로 했는데 관리원이 지켜서 앞으로 영영 기회가 찾아올 것 같지 않다. 하지만 등산하다 죽으면 모양새가 매우 안 좋은 관계로 다시는 이쪽으로 안 올라갈 것이다.

사용자 삽입 이미지
문수봉. 보기에는 좀 살벌해 보여도 몇 년 전에 난간을 설치해서 쉽게 오를 수 있다. 겨울에는 안 오르는게 좋지 싶다. 난간을 잡고 60-80도의 눈비로 미끄러운 경사면에서 신발의 접지력은 못 믿을 수준이라 팔 힘에 의지해 대롱대롱 매달린 채 올라가게 된다. 팔 힘이 약한 여자들이 주말에 인파들 틈에 끼어 난간을 잡은 채 오도가도 못하는 꼴을 여러 번 보았다. 난간 옆의 위험스러운 '문수봉 오리지널 코스'를 즐기는 사람들도 있다. 떨어지면 직벽으로 50m ~ 100m 가량  추락한다.  문수봉 옆의 우회로인 깔딱고개가 오르기는 좀 힘들더라도 그쪽이 안전하다.

장비를 갖춰야 하는 암벽을 제외하고라도, 북한산에는 시시콜콜하게 지적하자면 한도 끝도 없이 이어지는 사고다발(또는 우려)지역이 무척 많다. 아쉽게도 찍은 사진이 없다. 약주 한 잔 드셨으면 객기 부리지 말고 안전한 우회로 다녔으면 좋겠다. 저번주에도 산에 갔다가 술에 취한 아저씨들이 암릉을 한 번에 발 굴러 오르냐 마냐 내기를 한다고 호기를 부리는 모습을 보고 욕이 나왔다. 비단 술을 안 마셨어도 정신 놓으면 바로 사고가 나는 곳이 북한산이다. 북한산에서 일어나는 사고가 한국의 전체 국립공원에서 일어나는 사고의 50%를 차지한다. 사망자수도 단연 톱이다 -- 사망자의 절반이 장비 갖추고 암벽을 오르는 사람들이고, 그 나머지가 일반 등산객이다. 

역으로 말해 언제 가도 조금만 느슨하면 바로 골로 간다는 긴장과 스릴 때문에 북한산은 꽤 매력적인 산이다. 암. 그 재미지.

집 나가면 개고생? 이 광고가 불편한 이유 -- 엄홍길 편을 특히 낄낄거리면서 봤다. 남 얘기 같지 않아서. 에베레스트를 오르더라도 본인이 당시 그 작업을 과연 가치있는 일로 생각할까? 웃음. 그냥 미친거지. 당사자가 아닌 한, 그리고 당사자라도 그것을 객관적으로 바라볼 수 있는 사람에게 그건 굳이 '가치의 전도'가 아니다. '개고생'도 맞다. 자신이 가치있는 일을 하고 있다고 스스로를 납득시키며 채찍질 하는 것만은 아니다.

전문가는 평균적으로 10만 시간 이상 한 분야에 노력을 투입한 사람을 뜻한다는 자료가 있는데, 자기애와 자존감이 귀찮고 또 하찮다는 것을 10만 시간 안에 배울 수도 있고 못 배울 수도 있다. 한 분야에서 일가견을 이룬 사람들은 자기가 거의 10만 시간에 이르는 동안 삽질해 왔다고 말한다고 버럭 화를 낼 것 같지도 않다. 본인이 하는 삽질을 남이 알아주건 말건 상관없으니까. 하여튼 저 기사 보면 별 걱정을 다해 주신다 아마추어같이.

한국에는 직업의 귀천이 있을까? 귀천은 모르겠지만 16:1의 경쟁율을 뚫고 채용되는 청소부와 500:1의 경쟁율을 뚫고 뽑힌 가수와 그 직업을 가진 모든 사람들이 힘들어 죽겠다고 욕하는 기가 막힌 전문직 중 하나인 만년 인력 기근현상을 보이는 프로그래머 부류가 있다. 자기는 야근에 돈도 제대로 못 벌고 집에 못가서 아이 얼굴 잊어버렸다고 말하는 사람들도 있다. 형광등 불빛이 반짝이는 고객 사이트에서 집에 들어가지 못한 채 파견근무 중인 프로그래머들도 있다. 많은 사람들이 소프트웨어 업계의 고질적인 착취와 대단한 노동량을 우려한다.

회사 직원들 상대로 매년 한두 번 정도는 멘토링을 했다. 마틴 파울러 왈, '컴퓨터가 이해할수 있는 코드는 어느 바보나 다 짤 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다.' 거의 20년 동안 내가 이해할 수 있는 코드를 짜려고 노력했다. 그래서인지 Kent Beck의 책을 봐도 별로 배울게 없다... 고 말하면 꽤 잘난 척 하는 것처럼 들리겠는데? 정교하고 단단한 코드를 구사하는 그쪽 진영과는 다른 노선을 걸었다. 굳이 말하자면 어린 시절엔 hacker's delight 따위에 호들갑을 떨며 코드로 제사를 지냈다. 그래서 마법과 코딩과 코드 브레이킹은 삼위일체처럼 당연했다. 지금은 예전과 달리 10만 시간을 우습게 넘긴 '전문가'가 된 탓에 프로그래밍을 훨씬 철학적으로 짜게 되어, 돈을 안 주면(돈이 안되면) 도가처럼 무위한다.

프로그래밍이란 그 자체로 꽤 즐거운 것이다. 그 재미를 평생 모르고 죽는 사람도 부지기수다. 고등학생들에게 살짝 귀뜸해 주자면, 섹스보다 낫다. 패러디라고는 해도, '공부 열심히 하면 연애인과 할 수 있다'는 메시지로 수험생을 북돋워준 만화가 있었다. 예쁜 여자랑 자는 것은 권력을 가진 자의 품위 유지와 같은 것이라서, 그런 준 합법 거래 또는 관점을 달리하면, 강간은 근절되기 어렵다. 남의 일을 해주며 밤을 새는 프로그래머는 연애인을 만나기도 어렵다. 그래도 연애인과 하는 것보다 낫다. 뭣 때문에 낫다고 해야 할까? 모르겠다. 자전거 타기처럼 타인에게 기꺼운 노고의 행복을 전하기 어렵다. 신들의 전쟁에서 인용된 헤로도토스는 '죽을 때까지는 아무도 행복하다고 할 수 없다'고 말했다.

'시티 라이더'를 무척 재밌게 읽었다. 상당히 많은 부분에서 공감했다. 여러 사람들에게 이 책을 권해주고 싶다.

자전거를 차량으로 취급하여 도로에서 정당한 공간을 확보하자는 사람들의 견해에 그다지 찬성하지 않는다(차량으로서 자전거 타기 원리 Vehicular-Cycling Principle). 반대도 하지 않는다. 주말에 도로 점거하고 떼잔차질 하는데 평생 참여할 생각은 없지만 그렇다고 그들에게 딱히 반대하지 않는다. 다만, 뭐든 떼로 하는 건 똥 보듯이 피할 뿐이고... 원칙과 규율은 필요없을 뿐이고...

우리는 원칙과 규율을 가장하지 않고, 끊임없이 변하는 도시생활의 혼란에 적응할 것이다. 우리는 저항이 제일 적은 길을 찾을 것이면, 교통의 흐름을 강조하기 보다 우리가 교통의 흐름이 되고 그것이 우리가 되게 할 것이다.무엇보다, 우리는 재미를 찾고 무사히 집에 닿을 것이다.
 
도심 주행의 핵심은 재밌게, 무사히 집에 도착하는 것이다. 제대로 집었다. 계속...

제기랄, 꽃 배달 차가 빨간불에 달리고 그래서 배알이 꼬일 때 당신은 누구를 비난하겠는가? 당신이라면 씨근거리기를 멈추고 무슨 욕을 그 운전자에게 하겠는가? "운전 잘한다 거시기 똥꼬야!" 라고? 꼬부랑 할머니처럼 비틀거리며 나가서 소송이라도 제기할 터인가? 이제부터는 이렇게 생각하라. 어떤 잡놈이 책에 나오는 법이란 법은 다 어기다가 당신을 치었다면 그것은 누구의 잘못이 아닌 당신의 잘못이라고. 그게 진정한 자유의 뜻이다.
 
라이더의 제일 목표는 첫째도 마지막도 중상을 피하는 것이 되어야 한다. 이것이 라이더의 결론이다. ... 출퇴근 하는 도중에 구급차 뒷자리에 실려 가면 원하는 목적지에 이를 수 없다는 것은 분명한 사실이고, 또 확실히 재미도 없을 것이다.
도로에서 핍박 받기 때문에, 자전거를 타면 무슨 권리장전을 챙겨먹어야 하기에 역사적 사명감을 안고 미친 택시운전수들을 향해 의무적으로 삿대질을 해야 한다고 생각하질 않기 때문에, 이 작자가 도로에서의 중용과 조화를 강조하고, 사고의 일차적 책임이 자전거 주행자에게 있음을 겸손하게 받아들이라고 말하는 부분이 특히 마음에 들었다. 책의 일부만 발췌했기에 저자의 의도를 재단했고 그래서 다분히 오해의 소지가 있다. 이건 오직 내 뜻이다.

자전거 주행자는,

운전자에게 단지 눈에 보이지 않는 물건일 뿐이다.
보이지 않고 들리지 않는 존재다. 받아들이는 것이 속 편하다. 아니면 당신이 개조가 불가능해 보이는 현실을 개조하던가.

필라델피아 같은 도시에서는 라이더의 헤드폰 사용을 금지한다... 자전거를 타지 않는 사람이 입안했을 이 법률은 약간은 권위적이고 위선적인데가 있다. 운전자들 반은 스테레오를 듣고 그 반은 전화를 받는다. 이러니 소리를 듣지 못하는 것은 피차(자전거 주행자나 운전자나)  마찬가지다.
이어폰 볼륨을 평소의 1/3 정도로 듣는다. 자전거 주행 때문에 듣는 음악도 지난 4년 동안 드라마틱하게 바뀌었다. 지금은 오직 클래식만 듣는다. 볼륨이 적고 산만하지 않기 때문에 사실상 도로에서 나는 거의 모든 소리를 생생하고 '클래시컬'하게 체험한다.

감각을 모두 깨어 있게 하면서, 도로의 통행 흐름을 방해하지 않고 도로에 순응하면서 주행하기는 쉽지 않은 일이다. 그러나 예전과 달라진 것이 있다면 운전자들에게 더이상 욕설을 늘어놓지 않게 되었달까? 오히려 자전거를 타고 갈 수 있는 아스팔트 길에 항상 감사했다. 예외적인 운전자들의 친절에 감사한다. 그들이 무슨 생각을 하는 지는 관심없다.

현실적으로 라이더는 도시 지역의 접근성에서 거의 역사적 정점에 서 있다. 아래로만 아니라면 가지 못할 곳이 없다. 라이더는 교통 영역에서 특권에 버금가는 고유의 지위를 누리고 있다. 몇몇 예외가 있기는 하지만, 타볼 만한 도로는 거의 자전거 주행이 가능한 실정이다.
이러니 감사할 수 밖에! '시티 라이더'에서 주행을 바라보는 관점을 정리하자면,

  • 라이더에게는 자신의 무능보다 더 큰 위험은 없다.
  • 자동차-자전거 충돌은 라이더가 단순히 일반적인 교통법규를 지키기만 해도 막을 수 있다.
  • 도시 지역에서 발생한 자동차-자전거 사고의 90%가 회전 및 교차 상황과 관계되어 있다.
깊이 공감한다. 세번째 항목에 관해서는 자전거 도로 주행 초보자들에게는 여러 장의 도해와 플래시 애니메이션을 곁들여 설명해 줘야하는 것은 아닐까 싶다. 내 머리속에서 당장 떠오르는 상황만도 여러개다. 그걸 PPT로 만들어 강연할 수도 있을 지경이다.  왜냐고? 도로에서 수십번 간 떨어지는 경험을 하면서 얻은 값진 체험이니까.

자전거 타면 회음부가 약해져 불임할 가능성이 높다는 근거없는 헛소리부터, 헬멧 착용의 필연성에 관해, 인터넷을 비롯한 많은 사람들의 이야기를 들었지만 정작 내가 보고 싶었던 것은 그것을 입증할 데이터다. 그런데 '시티 라이더'에서 데이터를 드디어 목격했다.

헬멧 착용은 거의 종교적인 수준이 되었다. ... 헬멧이 심각한 머리 부상 사고를 88%까지 줄인다는 수치는 1980년대 말과 1990년대 초 시애틀 지역의 응급실에서 모은 자료들을 종합한 연구에서 나온 것이다. ... 연구자들은 단순히 헬멧을 쓴 부상자와 헬멧을 쓰지 않은 부상자를 비교해서, 응급실에서 치료를 받은 헬멧 쓴 부상자가 부상이 더 적고 머리 부상도 심하지 않았다는 결론을 내렸다. ... 소비자 안전 위원회(Consumer Produc Safety Commision) 스티커는 그 헬멧이 시속 18km의 충격으로 자갈이나 연석 등 뾰족한 표면에, 또는 23kmh에 평평한표면에 부딪혀도 머리가 보호된다는 검증의 표시를 의미한다.
내가 헬멧을 안 쓰는 이유는 자전거 사고의 80% 이상이 심각한 머리 부상으로 이어진다는 근거없는 허튼 소리와, 고작 23kmh에서 부서지는 값비싼 헬멧이 결국은 머리도 제대로 보호해주지 못한다는 불신 때문이었다. 23kmh는 서로 마주보며 달려오는 두 마라토너가 충돌했을 때의 속도와 같다. 저자는, 굳이 머리를 보호하고 싶으면, 오토바이 헬멧을 착용하라고 권했다. 저자나 나나, 헬멧을 쓰는게 아무짝에도 쓸모가 없다고 강력하게 주장하지는 않는다. 바보짓이니까, 헬멧을 쓰는 편이 헬멧을 안 쓰는 것보다 그래도 나으니까.

자전거 장비에 관한 괜찮은 충고도 있다: 값싼 장비는 잘 작동하지도 않고 비싼 것만큼 오래가지도 않는다. 흔히 하는 말로, 다음 셋 중에서 두 가지만 고른다. 가벼운 것, 튼튼한 것, 싼 것. 가령 가볍고 튼튼한 것을 골랐다면 값은 포기해야 한다.

자전거 체인의 피치: 1.3cm, 이론적으로 24개의 체인핀에 해당하는 길이가 30.48cm보다 길어지면 교체해야 한다. 체인을 바꾸려면 카세트, 프리휠과 체인링도 교체하는 것이 좋다. <-- 작년에 체인이 늘어나 체인만 바꿨다. 한동안 체인이 체인링 톱니와 맞지 않아 기어 변속 때 덜컥거렸다. 지금은 체인이 적당히 '늘어나' 덜컥거리지 않는다.
.
싱크로율이 거의 100%에 이르는 굉장한 책이다. 마지막 문장까지 봄바람처럼 향긋하다.

자전거를 타고 행복해지는 것은 자전거 때문이 아니다. 사이클링은 고도의 정신적/육체적 활동이 필요한 운동이다. 자전거를 타고 나가면 사람은 바깥에 주의를 기울여야 한다. 차량과 타협하는 일은 공을 주고받는 게임이나 다름없다. ... 둘러싸여 있는 운전자와 다르게, 라이더는 드러나 있다. 무거운 기계류에 완전히 드러나 있기 때문에, 하늘에 툭 터져 있기 때문에, 어떤 날씨든 느낄 수 있다. 이 드러남은 두려움과 어려움의 원인이 되기도 하지만, 그것이 바로 기쁨의 원천이다. 그로 인해 자전거 주행이 다채롭고 강렬한 경험이 되는 것이다. 일상의 주행마저 추억이 된다. 여행은 그 자체가 목적이 된다. 그것은 오롯한 삶이다. ... Life is like riding a bicycle, to keep your balance you must keep moving. -- 앨버트 아인슈타인
정작 자전거는 3주째 못 탔다.

,

OSM 작업노트 #4: POI

GPS 2009. 3. 27. 16:31
OSM 컨테스트에서 격찬을 받은 Open Cycle Map 은 등고선 지도와 자전거 경로를 결합한 아이디어가 꽤 훌륭하다. 그래! 바로 이거다 싶을 정도다. 다음이나 네이버에서 지도를 가지고 개최 하는 사용자 매시업 프로젝트들처럼... 음... 시시껄렁하지 않다. 또는 google mymaps처럼 바보스러워 보이지도 않는다. 

OSM의 구현에서 엿보이는 simplicity는 무척 마음에 든다. 그래서 누가 이런 좋은 것을 만들었는지 뒤져봤다.

OSM의 공동 창업자(?) 중에 한 사람인 영국인 Nick Black 은 GIS 학과 졸업생 출신으로 복잡한 데이터 포맷과 족같이 비싼 GIS 소프트웨어 및 지도에 충격을 받고 2004년 오픈 스트릿 맵 프로젝트를 시작했다. 영국이나 한국이나 GIS 정보를 공공재로써 정부 차원에서 무상 공급하지 않는 사정은 매한가지인 것 같아 동병상련의 감정을 느낀다. 그리고 그들이 OSM 사이트를 만들고 5년이 지났다. 매트릭스화 된 영국 및 유럽과 달리 한국은 여전히 황량한 깡촌으로 남아 있다.
 
도로 작업과 POI 작업을 여러 번 했는데, OSM 작업이 제대로 반영되었는지 알기가 힘들다. OSM의 slippery map은 OSM database에서 데이터를 가공해 map tile을 만드는데 시간이 많이 걸리는 작업이다. 그래서 cloud computing 또는 clustering 등을 사용하여 tile을 분산 랜더링하는 프로젝트가 진행 중인 모양이다. 한국의 좋은 인터넷 인프라 사정을 감안하면 기회가 닿는대로 참여해야지 싶은데, 아직은 그것 말고도 할 일이 많으니 일단 보류.
 
하여튼 slippery map에 사용할 tile을 리얼타임으로 업데이트하는 실험적인 Tile Server 가 있다.

---
 
대전과 안동 지역 지도 작업을 누가 했는지 궁금했는데, 한국에 살고 있는 미국인 로버트씨가 70% 이상의 작업을 했단다. 그외 OSM 작업하는 한국인들은 여전히 거의 없는 실정. 로버트씨와 도로 분류 및 한글 로마자화에 관한 이메일을 몇 번 주고 받으며 토의했다. 한국 지도 만드는데 한국인은 없어서 외국인과 지도를 어떻게 만들지 토론 한다는 게 다소 희안하달까?
 
로마자화(로마음소화가 맞겠지) 보다 마음에 걸리는 문제는 한글-영문 변환이다. 경동초등학교-> Gyeongdong primary school은 쉬운 편이지만, '서원유통할인마트용호초등학교'는 어떻게 변환해야 할 지 감도 안 잡힌다. 자연어 처리는 매우 어려운 문제다. 일단 제끼고 단순 단어 규칙을 사용하여 변환하는데 촛점을 맞췄다. 따라서 결과가 경우에 따라 매우 한심할 수도 있다.
 
이전에 업로드한 POI를 대폭 수정하기 위한 작업을 벌였다. 이때 로버트씨와의 토론에서 얻은 몇 가지 정보를 반영했다. 명칭 태그는 3개로 나뉜다. name, name:en, name:ko_rm.  작업을 위해 OSM XAPI 를 사용했다.
 
노드 중 내가 작업한 것들'만' 가져오는 방법은 아래와 같다.
 
 
planet.osm 파일에서 직접 뜯어오려면 osmosis를 사용한다. 예.
 
osmosis --read-xml planet.osm --way-key-value keyValueList="railway.tram,railway.tram_stop" --used-node --write-xml city_tram.xml
 
---

사용자 삽입 이미지
강원도 주요 지방도를 끝냈다. 서울은 누군가 하겠지, 관심 없고, 주로 전라도, 강원도 등의 아무도 할 것 같지 않은 지역을 위주로 작업할 것이다. 지금은 도로 작업을 잠시 접고, 저번 한 주 동안 POI 수집에 열을 올렸다. 거의 일주일이 걸린 '프로젝트'가 되었다.
 
POI를 OSM에 업로드 하기 위해서는 갖은 작업이 필요하다.
 
명칭 수집
 
POI 수집 작업의 요점은 저작권 따위의 재산권을 침해하지 않으면서 자료를 모으는 것이다. 수집 작업은,  예를 들어, 초등학교 리스트를 얻어 초등학교의 좌표를 얻어오는 과정을 자동화하는 것이다. 초등학교 리스트를 네이버 검색 엔진에서 찾아온 1차 검색 결과를 그대로 사용하면 안된다. 왜냐하면 검색 결과의 소유권이 구글이나 네이버에 있기 때문이다.

구글이 web robot를 사용해서 웹 사이트를 수집하듯이 아주 갖은 지랄을 다 한 끝에 온갖 사이트를 검색하여 법적 하자가 없을 것으로 추측되는 9만 여개의 고유 명칭을 얻었다. 이 작업이 거의 7일 걸렸다.
 
POI 좌표 얻어오기
 
그리고 yahoo poi api는(한국 야후 만세!) 하루 5만건으로 제한하긴 했지만, 고유명칭을 알고 있으면 WGS84 좌표를 얻을 수 있다. 다만 야후에서 POI 검색으로 얻은 결과에 '야후에서 얻었음'이란 말을 달기만 하면 된다. 그러고보니 소프트웨어를 무료 공개해 인류 공영에 이바지 한다는 구글을 통해서는 뭐 하나 얻은게 없는데(얻으려 애썼지만 성과가 '0'이다) 야후는 구글처럼 떠벌리지도 않으면서 인류 공영에 이바지 하고 있다는 생각이 든다.

OSM 지도 그리기에 크나큰 도움을 주는 slippery map을 야후에서 제공하고 POI 검색도 야후에서 제공한다. 명칭 수집과 병렬로 진행된 이 작업은 5일이 걸렸다.
 
OSM HTTP Protocol
 
먼저 HTTP를 사용하여 OSM server와 통신하기 위한 프로토콜 스펙 을 알아야 한다.
 
UTF-8 코드 변환
 
Unicode로 작업했으면 했지, UTF-8은 나하고는 거리가 먼 포맷이었다. UTF-8 스펙과 정의에 관해서는 웹 페이지 여기저기에 워낙 자료가 많으니 생략하고, 핵심을 간단히 정리하자면,
  • UTF-8은 파일 및 web 전송때 한시적을 사용한다고 생각해야 할 포맷이다.
    Unicode는 프로그램에서 사용하는 포맷이다. 즉 UTF-8이건 나발이건 내부적으로 처리할 땐 무조건 unicode로 변환해야 편하다.
win32에서는 파일을 열 때(만들 때가 아님) UTF-8 파일임을 지정해 줘야 한다. (unicode도 지정해야 하나?) unicode 텍스트 파일의 경우 BOM(Byte Order Marker)를 파일의 첫 두 바이트에서 읽어 처리하기 때문에 별다른 처리를 하지 않지만 UTF-8 텍스트 파일은 UTF-8 플랙을 지정하지 않으면 영어를 제외한 언어 코드를 처리할 수 없다.
  • _wfopen_s(&f, filename, L"rt,ccs=UTF-8")
    fopen_s(&f, filename, "rt,ccs=UTF-8")
파일에서 문자열을 읽어올 때, vs.net에서 unicode 빌드의 경우 wchar_t로 변환되고, mbcs 빌드의 경우 char로 변환된다.
 
UTF-8은 ASCII 파일과 실질적으로 같기 때문에(7bit가 high일 경우 코드 페이지에 따라 3~4bytes로 해당 언어가 변행된다), 읽은 문자열을 파일로 저장하거나, 웹으로 전송할 때는 내부처리 포맷인 16bit(linux는 32bit인 것 같음) unicode를 UTF-8로 변환한 후 저장해야 한다. 관련 함수는,
  • WideCharToMultiByte(CP_UTF8, ...)
파일이 아닌(파일을 읽을 때 자동으로 변환해 주는 것이 아닌) UTF-8 코드는 아래의 함수로 변환할 수 있다.
  • MultiByteToWideChar(CP_UTF8, ...)
 
XML 처리
 
XML 포맷으로 저장되는 OSM 파일은 워낙 크기가 크기 때문에(planet은 6.4GB) MSXML이나 tinyXML 등의 DOM형 파서에서 처리할 때 메모리를 엄청나게 소비한다. 따라서 MSXML SAX2, MS XmlLite, Expat Libray 등의 stream XML parser를 사용하는 것이 바람직하다. (사실 MS XML library는 개인적으로 사용하지 않는다. 주로 tinyXML과 expat만 사용한다)

MSXML SAX2는 C/C++에서 사용하기가 귀찮고, xmllite는 platform SDK를 설치해야 하고 portabillity도 높지 않다. 역시 expat library가 가장 낫다.
 
좌표 변환도 공부했다. 일단 카 내비게이션 소프트웨어에서 자료를 얻을 수 있을 거라고 막연히 추측했기 때문인데 그리 도움은 되지 않았다. 하여튼 한국에서 사용하는 좌표계는 Bessel TM, Bessel TM128 (Katech), WGS84 등이다. 이중 TM128은 자동차 내비게이션에서 자주 사용하는 1점 좌표계인 듯. OSM은 WGS84를 지원한다. TM128을 WGS84 좌표로 변환하는 소스는 http://www.gisdeveloper.co.kr/337 에서 구할 수 있었다.

남은 작업

이런 과정을 거쳐 몇 가지 프로그램을 작성해서 POI를 수집하고 OSM 태그 붙이기를 자동화하고 OSM 파일로 변환하고 OSM Server에 POI를 올린다는 것이 시나리오다. 이들 자료는 나중 관리 목적으로 별도의 태그를 하나 더 붙일 예정이다.
 
 
,
OSM 파일로부터 IMG를 만드는 다양한 방법이 있다.   이중 해볼만한 방법들을 나열해 보면,

1. Planet.osm Dump 파일에서 한반도만 뜯어오기
2. 이미 만들어진 한반도 osm 파일 얻기
3. database에서 직접 osm 추출하기
4. Garmin GPS용으로 이미 만들어진 한반도 img을 사용하기.
 
1,2,4항은 일주일에 한 번 업데이트 된다. 보통 매주 수요일 UTC+1에 업데이트 되는 것 같다. 이중 1항은 시간이 워낙 오래 걸리고 작업량도 많아 그다지 추천할만한 방법이 아니다. 3항은 일주일 동안 기다리기 뭣할 때 사용할만한 방법이나, 한반도를 정확하게 추출하는 것이 아니고 시간도 꽤 걸리는 편이라 지도 작업 중 지도 변경 내용이 반영되었는지 한시라도 빨리 확인해 볼 때나, 최신 업데이트 자료가 필요할 때 사용할 방법이다. 4항이 가장 쉽지만 4항은 만들어진 img 파일의 세부 내용을 수정할 방법이 없다. 예를 들어 routable map을 만든다던가...
 
1. Planet.osm Dump 파일에서 한반도만 뜯어오기
 
매주 수요일 오전 1시에 planet.osm을 덤프한다. 여기에 매일/매시간 단위로 diff 파일이 생성된다. 자료는 아래 url에서 구할 수 있다.
 
 
OSM 사이트는 속도가 느리므로 mirror site에서 직접 다운 받는 것이 시간을 절약하는데 도움이 된다.
 
 
이중 ftp.snt.utwente.nl 사이트가 가장 빠른데, 그래도 5.4GB(2009-3-18일 기존) 짜리 파일을 다운 받으려면 무려 2시간이 넘게 걸린다. 하여튼 이렇게 다운받은 planet 파일에서 한반도 부분만 따내야 한다. 이때 사용하는 프로그램이 Osmosis이다.
 
일단, 한반도를 따내기 위해서는 polygon filter file이 필요하다. polygon filter file format 정보는 아래 url에서 구할 수 있다.
 
 
이미 작업되어 있는 파일이 있으므로 굳이 필터 파일을 만들 필요는 없다. 남한 필터 파일('south_korea2pts.txt')은 아래 url에서 구할 수 있다.
 
 
planet.osm 파일에서 한반도를 뜯어오려면 컴퓨터에 다음 프로그램들이 설치되어 있어야 한다.
 
 
planet 파일(planet-latest.osm.bz2), 남한 필터 파일(south_korea2pts.txt), osmosis.jar 파일을 같은 디렉토리에 넣고 다음 명령을 실행하면 korea.osm.bz2 파일이 생성된다.
 
java -Xmx1048m -jar osmosis.jar --read-xml enableDateParsing=no file=planet-latest.osm.bz2 --write-xml korea.osm.bz2 --bounding-polygon file="south_korea2pts.txt"

또는,
bzcat planet-latest.osm.bz2 | java -Xmx1048m -jar osmosis.jar --read-xml enableDateParsing=no file="-" --write-xml korea.osm.bz2 --bounding-polygon file="south_korea2pts.txt"
 
DateParsing을 하지 않으면 속도가 좀 빨라진다. osmosis에서 bz2를 프로세싱하는 것보다 bzcat을 하는 것이 속도가 빠르다. bz2 파일을 풀어놓고 작업하면 속도가 빠르다. 다만 파일 크기가 워낙 커서 디스크 공간을 많이 차지한다.
 
2. 이미 만들어져 있는 한반도 osm 파일 가져오기
planet.osm으로부터 각 국가별 파일을 만들어 다운받기 편하게 만들어놓은 사이트가 있다. 이곳 자료는 1주일마다 업데이트 된다. osm 파일 뿐만 아니라 garmin GPS용 IMG 파일도 이미 만들어 놓았다.
 
 
3. database에서 직접 osm 추출하기

데이터베이스에서 XAPI query(http://wiki.openstreetmap.org/wiki/XAPI)를 사용하여 korea.osm 파일을 생성한다. 이때는 한반도의 polygon을 지정할 수 없으므로 bounding box(사각형 박스)를 사용하여 얼추 비슷하게 만드는 수 밖에 없다. 가장 rough한 bounding box는 경위도가 다음과 같다: 125.3,129.8,33.0,38.7 이 좌표는 울릉도가 빠지고 일본의 대마도와 큐슈가 일부 포함된다.
 
바운딩 박스의 범위를 알고 싶을 땐 http://www.openstreetmap.org/ 의 export 메뉴에서 직접 해 보면 된다.
 
하나의 바운딩 박스로 한반도 전체를 가져오면 파일크기는 100MB 가량(2009-3-18 기준), 시간은 30분 가량 걸린다. 다운 받기 위해서는 web browser에서 다음과 같은 형태의 url을 타이프한다.
 
 
또는 wget utility를 사용할 수도 있다.
 
wget http://www.informationfreeway.org/api/0.5/*[bbox=125.3,33,129.8,38.7] -O korea.osm
 
바운딩 박스에 울릉도가 빠지고 일본의 대마도와 큐슈가 포함되는 걸 원치 않는다면 파일을 여러 개로 쪼개 다운받는다. 여러 개로 쪼개 병렬로 다운 받으면 속도 상의 이득이 있다(다운 받는데 약 5분).
 
wget http://www.informationfreeway.org/api/0.5/*[bbox=126,33,127,34] -O jeju.osm
wget http://www.informationfreeway.org/api/0.5/*[bbox=125,34,129,35] -O korea1.osm
wget http://www.informationfreeway.org/api/0.5/*[bbox=125.5,35,130,37] -O korea2.osm
wget http://www.informationfreeway.org/api/0.5/*[bbox=125.5,37,131,39] -O korea3.osm
 
---

1,2,3 어느 방식을 사용하든 최종적으로 한반도의 osm 파일을 얻을 수 있다. 이 파일을 Garmin GPS IMG 포맷으로 변환시키려면 GroundTruth Mkgmap 을 사용한다.
 
GroundTruth를 사용해서 Garmin GPS용 IMG를 만들려면 cGPSMapper 프로그램이 필요하다. cGPSMapper 프로그램을 설치한 후 GroundTruth가 설치된 디렉토리에 통째로 복사해 놓는 것이 편하다. 또한 Rule 파일의 수정이 필요하다. 일단은, 영문 Garmin GPS용 한글 지도를 만들려면 설치된 디렉토리에서 Rules/DefaultRules.txt 파일에서 name 태그를 name:en으로 바꿔줘야 한다. 자세한 내용은 GroundTruth help 참조.

groundtruth는 wget 없이 database에서 osm 파일을 직접 생성할 수도 있다.
 
groundtruth getdata -b 33,125.3,38,129.8 -o korea.osm
 
생성된 OSM 파일을 이용해 IMG 파일을 만든다. 자세한 옵션은 groundtruth help를 참조.
 
groundtruth --osmfiles=jeju.osm,korea1.osm,korea2.osm,korea3.osm --mapid=33361200 --mapname="Korea OSM Map" --fc=200 --productcode=200 --productname="Korea OSM Map"
 
mkgmap을 사용하면 아래와 같이 타이프한다. 자세한 옵션은 mkgmap help를 참조.
 
java -Xmx512M -jar mkgmap.jar --mapname="33361200" --description="Korea OSM Map" --country-name="Korea" --country-abbr="KOR" --transparent --name-tag-list=name:en,name:ko_rm,name jeju.osm korea1.osm korea2.osm korea3.osm
 
이렇게 해서 생성된 *.IMG 파일을 MapsetToolkit과 Sendmap 프로그램을 이용해 Garmin Mapsource와 Garmin GPS용 파일을 만든다.

최종 결과물은?
사용자 삽입 이미지

어느 분이 도로 작업을 끝내 놓은 대전시를 Garmin MapSource에서 본 것.
사용자 삽입 이미지

대전의 확대 부분

감동적인 결과물. 이 맛에 작업한다.

,
도로에서 motorway는 고속도로(번호 및 이름 지정), trunk는 고속화 도로 및 국가가 관리하는 주요 간선(지도에서 보통 도로 번호가 동그라미 안에 표기된다. 이름이 있을 수도 있고 없을 수도 있다), primary는 지방이 관리하는 지방도(지도에서 도로 번호가 네모 안에 표기된다. 구간에 따라 특정한 이름을 가질 수 있다), secondary 및 tertiary는 주요 도시의 내부 교통을 잇는 도로(번호는 없으나 도로 이름을 지정), resident는 골목길(역시 이름만 지정)로 하면 맞겠지 싶다.

서울에는 보통 지방도로보다 차선 수가 많은 도로가 생길 수 있다. 이들 도로는 lanes로 차선 수를 지정하는 것으로 해결해야 할 것이다. 안 그러면 조그만 중소도시의 시 내부를 연결하는 도로에 마저  trunk나 primary를 지정하게 되는데, 이들은 관리되는 주요국도, 지방도가 아니면서 실제 화면에 나타날 때는 주요 도로처럼 보이게 된다.

자전거길(cycleway)과 트래킹로/도보로(footway)는 지금 생각하기엔 사치다. 그들 관련 자료는 많다. 그것들은 적절히 편집하고 정규화한 다음 track reduce해서 일괄적으로 올리는 것이 바람직하다.  사실 cycleway와 footway 용도의 gps 자료는 신뢰성이 떨어진다. 이건 나중에 다시 언급...

한국 지도 제작에 여러 사람들이 협력하여 지도를 만들려면 한국 지도 제작 가이드가 가장 먼저 필요하지만 글쎄다... 일단 OSM 명명 규칙에 관해 기존 OSM 다큐멘테이션을 참조해 주요 요소에 대한 대략의 정보를 정리했다. 때가 되면 편집해서 올릴 것이지만(더 좋은 것은 누군가 편집해서 가이드라인을 올릴 때까지 기다리는 것이지만) 내가 아직 POI 관련 작업을 본격적으로 시작한 것은 아니다.

지도 제작을 해 보니 딱 이 말이 떠오른다. "안 해봤으면 말을 하지마." 고민해야 할 것들이 꽤 많다. 이전 아마추어 지도 제작자들은 그런 고민을 해봤다. 따라서 지도 제작을 하려면 먼저 선구자들로부터 배워야 한다. 아니면 '안 해봤으면 말을 하지 마' 류의 온갖 시행착오를 다 겪어 보던가.

대표적인 예: 이전 POI 작업할 때 이름 때문에 고민했는데 작업 전에 일본쪽 자료를 참조했더라면 도움이 되었을 뻔 했다. 일본 역시 로마자 표기 문제로 name 태그를 여러 개로 분할했다.
 
name:korean (english)
name:en=english
name:ko=korean
name:ko_rm=korean romanization
 
예:
 
name=상명여대 (Sangmyong Women's University)
name:en=Sangmyong Women's University
name:ko=상명여대
name:ko_rm=Sang-myong-yeo-dae
 
이미 올라가버린 이름을 어떻게 할 수는 없고, 나중에 OSM 자료를 통째로 다운받아 이름을 rewrite하는 자동화 프로그램을 짜야할 것 같다. 4월 이후에 OSM protocol 0.7(0.6이던가?)로 교체되면 그때 가서 천천히 생각해봐도 늦지 않다. 

작업 중에 영문 이름을 병기하려면 작업 시간이 많이 걸리므로 일단은 한글 이름만 입력하는 편이 낫겠다. 먼저 한글 이름 입력 후 나중에, 정기적/부정기적으로 일괄 수정.
 
POI는 여전히 심각한 문제다. 간단한 데이터라면 입력이 가능하지만 별다른 뾰족한 방법이 떠오르지 않는다. 그렇다고 상용맵을 해킹할 수는 없다. 일단 이렇게 생각하기로 했다.
 
서울시가 wikipedia에 서울의 여러 지역을 설명하는 프로젝트를 진행한다고 했으니 서울의 POI는 시간날 때 서울시에 제안 메일을 보낼 생각이다. http://oasis.seoul.go.kr
 
서울시와 마찬가지로 다음 공공기관과 연락해 본다.
 
한국관광공사
국립공원관리공단
각 시도 지자체
 
이들 공공기관/단체는 가지고 있는 POI를 공개하거나, 심지어 해당 관청이 공무원을 동원해 openstreetmap에서 직접 작업할 명분이 있다.  관광안내 팜플렛 수십만부 찍어 외국에 뿌리는 것보다 더 효과적인 대외 관광 산업 지원 및 활성화라는... 4월쯤에 메일을 보내 한글 명칭, 가능하면 영어 명칭, 경위도 정보 정도만이라도 보내주면 내가 작업해서 올려 주겠다고 설득해 봐야겠다.

국립지리원은 세금 걷어 지도 그려서 그것을 국민에게 돈 받고 팔아먹는 희안한 기관으로 보여 컨택을 해야 하나 망설이게 된다. 그래도 (내가 잘못 알고 있을 수 있으니) 시도는 해 봐야겠지?

몇몇 학과 학생들은 GIS 자료를 다룬다. 학교의 교수님들을 통해 과제나 프로젝트로 openstreetmap을 하라고 설득하는 것도 의미있다. 그들이 가지고 있음직한 공개되지 않은 엄청난 양의 자료를 OSM에 올릴 수만 있다면...

OSM Korea Mapping project에 wiki page를 등록한 사람은 2009년 3월 16일 현재 6명 뿐이다. http://wiki.openstreetmap.org/wiki/Category:Users_in_Korea 참여를 독려할 마땅한 방법도 없고, 여기 저기 OSM을 선전하기가 실은 귀찮다.
 
싫증날 때까지만이라도, 하다보면 머리가 멍해지는 도로나 계속 그리자. 이것들은 향후 아무짝에도 쓸모없는 삽질로 밝혀질 가능성이 아주 높다. 그러나 내 인생의 한 때에 공공의 복리를 위해 삽질한 적이 있다는 시시한 자긍심은 남게 될 것이다.
,

신들의 전쟁

잡기 2009. 3. 12. 18:01
3월 15일 자전거를 탔다. http://www.wikiloc.com/wikiloc/view.do?id=321363

주행거리 51.3km, 주행시간 2h25m, 쉰 시간 22m, 평균속도 21.2kmh. 맞바람 때문에 의정부에서 월릉으로 내려올 때 속도가 많이 깎였다. 맞바람을 맞으면 2-3kmh 정도 속도가 줄어든다. 송추계곡에서 의정부로 내려오는 기나긴 내리막길에서 56kmh가 나왔다. 때마침 모자가 날아갔다. 모자를 줍기 위해 자전거를 멈추지 않았더라면... 어쩌면 60kmh를 넘었을지도 모르겠다. 요즘은 자전거 탈 때 버프를 착용했다. 버프를 복면처럼 착용하면 귓가의 바람소리가 필터링되고 감쇄된다.

wikiloc.com이 드디어 구글 어스의 레이어로 깔린다. 내가 wikiloc에 올린 tracklog 중 조회수가 무려 900회 가까이 되는 것도 있다. 한국에 이름이 알려지지 않은 서비스이고 구글어스에 노출되지도 않았음에도.

닐 게이먼의 '신들의 전쟁(American Gods)'을 읽기 시작했을 때, Tomas Pynchon의 V와 Gravity's Rainbow가 떠올랐는데, 책 내용 중에 중력의 무지개를 언급한다. 신들의 전쟁은 환타지라기보다는 환타지 형식을 빌은 주류 문학에 훨씬 가깝다. 하여튼 반갑고 재밌다. 재미도 없고 그저 수면제 역할이나 하는 프루스트 소설 같은 것도 번역되는데 중력의 무지개는 왜 번역되지 않을까?

"커피는 어떻게 해줄까? 여기서 우리는 밤처럼 검고 죄악처럼 달콤하게 마신다네"  -- 소설이 소설다운 내가 좋아하는 분위기. 노인네 잠꼬대처럼 주절거린다면, 문장력이 떨어지는 것은 소설 축에도 끼지 못한다고 생각하는 편. 소설은 문장의 심미성을 다루는 예술 분야다. 21세기 들어서 유행하는 말처럼, 소설은 서사가 중요하다는 생각에 고개를 갸웃거릴 뿐더러, 문장으로 받치지 못하는 서사는 다소 쓰레기 취급하는 편.

'영하 40도. 온도계에서 그 지점은 섭씨와 화씨가 똑 같아지는 이상한 지점이다.' --   F=C*9/5+32, C=(F-32)*5/9. 평면에서 기울기가 다른 두 1차 방정식은 언젠가는 만나게 되니까 이상할 것 까지야... C=F 인 지점을 찾아보면(접선을 찾아보면), 1=5/9-(32*5/9)/C, C=32*5/9/(5/9-1) = -40이 나온다. 미친 미국인들이 화씨와 피트, 갤런 따위의 독특하고 고색창연한 단위를 언제쯤 포기할 지 궁금하다. 

이리하여 미국은 국민의 절반 이상이 귀신을 믿는데다, 싸이코패스를 비롯한 각종 정신병이 전염성 질환처럼 창궐하고, 이제는 신들마저 외면하는 땅이라는 관찰 결과를 얻을 수 있다. 며칠 동안 신들의 전쟁 에피소드에나 어울리는 꿈을 꿨다. 피곤한 탓도 있지만 워낙 책이 인상적이다.

Flight of Conchords에 아트 가펑클이 아트 가펑클 짝퉁 가수로 출연했다. 뉴질랜드 총리와 미 대통령 짝퉁도 나오고 매트릭스의 결함도 언급된다. 심지어 한국 노래방 기계의 반주에 맞춰 한국어로 노래를 부른다. 이 드라마 보고 있으면 참, 별별 생각이 다 든다. 그리고 빅뱅 이론에는 Firefly의 여배우가 나왔다.

도서정가제에 해당되지 않는 버림받은 책들이 예스24, 교보, 알라딘, 지마켓을 통해 거의 50%나 할인 판매되고 있다. 책을 요 몇년 거의 안 사서 이 김에 몇 권이라도 사 볼려고 여기저기 돌아다니며 리스트를 만들어 봤는데... 결론은 사고 싶은 책이 없거나 도서관에 왠만하면 다 있으니 빌려 보기로 했다.
 
은평구립도서관과 증산정보도서관은 3월 10일부터 '책단비 서비스'를 한다. 인터넷으로 읽고 싶은 책을 신청하면 다음날 구파발역, 녹번역, 수색역 구내의 보관함에서 책을 찾아 읽고 그리로 반납하는 것이다. 그런데 이 서비스는 문제가 있을 것 같아 보인다. 만일 3권을 빌려 읽고 반납을 하면 반납이 확인되는 시점까지 약 8시간에서 24시간의 시차가 생기는데 그 시간 동안에는(반납 확인이 되기 전에는) 다시 책을 빌리지 못한다. 결국은 빌린 책을 도서관에 갖다 주고 반납 확인을 한 후, 도서관에서 다시 책을 고르는 것이 더 빠르다. 올해 들어 지금까지 도서관에서 빌려읽은 책이 16권.
,

OSM 작업노트 #1: Tool

GPS 2009. 3. 10. 20:40
Potlatch 0.10f 버전은 작업 중 실시간으로 OSM 자료를 가져오므로 conflict가 발생할 가능성이 적다. 반면, JOSM은 한 페이지를 에디트할 때 이전 데이터를 로드해두지 않으면 작업 내용이 충돌할 수도 있다.
 
potlatch가 비교적 쉽게 작업할 수 있는 반면, 잘못 작업하고 나서 할 수 있는 일이 undo밖에 없어 다른 사람이나 다른 시간에 작업하고 수정하거나 삭제하기가 어렵다. JOSM은 그런 문제가 없다.
 
potlatch에서는 gpx로 작업할 수 없다. 오직 path(track)을 upload하기만 가능하다. JOSM은 GPX를 레이어로 깔고 새로 라인을 그리는 것이 가능하다. JOSM의 단점은 메모리를 많이 먹는다는 것. 그리고 데이터베이스 접근 속도가 아주 느려서 서울 버스 정류장 약 24000여개의 데이터를 업로드하는데 무려 하루가 걸렸다. OSM의 데이터베이스 엑세스가 느린 탓일까?
 
일단의 이유로 고속도로를 그리는 작업에서는 potlatch를 사용하고, POI를 입력하거나 잘못된 정보를 수정할 땐 JOSM을 사용했다. merkaartor는 버그가 여럿이지만 JOSM 보다는 빠르다. 안정화되면 JOSM에서 메르카토르로 전환해야 겠다.
 
네이버 항공사진과, potlatch 또는 JOSM이 사용하는 야후 항공사진은 같은 자료다. 현재로써는 대조작업용 맵으로 다음 맵+항공 사진 오버레이가 국내에서 구할 수 있는 지도 중 가장 좋다. 네이버 맵에는 이상한 버그가 있어 대조 작업 중 가끔 브라우저에서 마우스 휠 버튼이 작동하지 않는 현상이 있다.
 
OSM이 사용하는 데이터베이스는 postgres를 변형한 postGIS이다. GIS 정보를 다루는데 특화되어 있다. 날이 갈수록 눈에 띄게 데이터베이스 접근이 느려진다.
 
앞으로 시간을 들여서 할 일은 osm 데이터를 직접 패치해 오는 것(과 이것을 로컬 db에 저장해서 지도를 빠른 속도로 수정 하기). 그리고 그 자료를 Garmin IMG 포맷으로 바로 변환한 후 한국 지형도와 합치는 작업을 자동화하는 것이다. OSM Composer라는 프로그램이 이들 작업을 자동화해주는데 DEM 파일 처리할 때 메모리를 엄청나게 사용하며 다운되기 일쑤였다.

지금은 작업에 참고할 지표를 만드는 중이고, 본격적으로 작업이 시작되면... 내가 가고 싶은 곳이나 흥미가 당기는 곳을 주로 하기로.
,

리만 가설

잡기 2009. 3. 10. 20:33
바쁜 나날.
 
틈틈이 시간 나는 대로 OpenStreetMap에 자료를 입력하고 있다. 주요 고속도로 그리기가 거의 끝났다. 현재 작업한 POI는 도시명과 전국 지하철역, 그리고 24000여개의 서울시내 버스 정류장 정보다. 하루 평균 1~2시간씩 지금까지 약 10일 작업했다.

OSM: 한국
OSM 한국 지도. 별 것 아닌 것 같지만 거의 열흘이 걸려서 고속도로가 어느 정도 완성되니 흐뭇하다.

OSM: 서울
83개의 도시, 전국의 573개 지하철역 위치를 손으로 입력했다는 걸 누가 알아주기나 하겠어? 오늘은 86개의 행정 단위 군을 입력할 것이다. 이번주까지는 전국 대학 위치 정보 입력이 가능할 것 같다.

POI만 얻을 수 있어도 단순 변환하는 것만으로 OSM을 럭셔리하게 꾸밀 수 있지만  대한민국에서 이들 정보를 무료로 공개한 곳은 없는 것으로 알고 있다. 아쉽다. 그래서 내가 GPS에 사용할 목적으로 OSM을 거의 사적인 지도로 만들고 있는 셈. 나만 쓸게 아니라 이왕 하는 김에 한/영 표기를 함께 하기로 했다(think globally, act locally). 이 때문에  간단한 한글-로마자 번역 프로그램을 작성했다.
 
한글의 영문(로마자)표기법 개정안이 2000년에 나온 건가? 무려 9년 동안 모르고 있었군. 한글을 영문 표기로 변환해 주는 쓸만한 소스가 잘 눈에 띄지 않아 할 수 없이 '매뉴얼' 보고 만들었다. 맞는지 틀리는지 일일이 점검해 보지 않아 모르겠다. 표음 규칙들, 자음동화와 구개음화 대부분은 구현했지만, 몇몇 규칙들은 의아해서 내버려 뒀다. 캐멀 케이스(봉화->Bongjhwa가 아닌 BongHwa)와 하이픈 사용(Bong-hwa), 문자열 전/후방위 대치 등을 포함하고 facility tag를 붙일 수 있게 해 같은 범주의 POI에 대해 일괄 변환이 가능하도록.
 
지명 등의 고유 명사는 괜찮지만, '서울역사박물관'을 SeoUlYeokSaBakMulGwan 으로 변환한다. 외국인이 내국인에게 길을 물을 때는 표음으로 된 것이 맞긴 한데,  저렇게 되면 외국인은 이게 박물관인지 알 길이 없다. 그러므로 표기는 Seoul History Museum과 SeoUlYeokSaBakMulGwan 을 병기해야 하지 않을까? 이게 아주 귀찮은 일이라 일단은 표음으로 내버려 두고 고유 명사에 번역 가능한 일반 명사가 섞여 있을 때는 변환할 것인가를 선택했다. 벽제주유소삼거리 -> ByeokJe Petrol Station SamGeoRi. 문맥을 파악하지 않는 단순 문자열 대치이므로 은행나무입구사거리가 'Bank NaMu Entrance Crossroad' 가 되기도 한다.
 
한글 처리는 언제 뭘 하게 되도 기분이 나빠진다. 한글 처리를 하려면 준비해야 할 것들이 워낙 많다. 특히 조사 생략에 임의 띄어쓰기 같은 것은 난감하다. 처리를 제대로 하려면 코퍼스를 가지고 빈도수 통계를 내고 그 통계에 따라 확률 기반 마코프 체인을 구성해 렉시컬 아날라이저를 꾸미고 태깅을 하던 어떻게든 해야 할 듯. -- 이런 자연어 처리 따위를 학계나 정부에서 만들어(이미 만든 것들이 있다) 누구나 쉽게 사용할 수 있도록 공개하면 얼마나 좋을까? 한국에서는 꿈같은 얘기겠지? 공공재화로써 전자 지도 한 장 없어서 외국 공개 프로젝트 홈페이지에서 생노가다로 도로 그리고 POI 입력하는 판인데.

POI2JOSM
POI2JOSM: 한글 표기된 POI(또는 GPS에서 추출한 waypoint)를 그에 상응하는 영문 표기명으로 바꿔 OSM 포맷으로 저장하는 프로그램. 이 파일을 JOSM에서 불러들여 OSM에 한꺼번에 업로드하면 작업 시간을 절약할 수 있다. 입력 가능한 파일은 KML(UTF-8), GPX(UTF-8), Garmin CSV(POILoader에서 사용, ASC) 이고 출력 파일은 .OSM(UTF-8). 추후 생각나면 버전업할 항목:
 
- GPX -> GPX(한글을 영문으로 바꾸기만 해서) 옵션 추가.
- gpsbabel을 이용, 다양한 확장자의 파일을 직접 다룰 수 있게 한다.
- 한글 변환 풀옵션.
- postfix, prefix
- 상용어 변환 테이블 외부 파일로.
- 입력한 문장 즉시 변환 출력해서 클립보드 in/out
 
작업자가 워낙 적어(실은 나 밖에 없는 것 같다) 프로그램을 공개하지 않았다.
 
메모: Visual C++ 2005 runtime 및 MFC의 unicode 파일 핸들링은 올바르지만 JOSM은 unicode BOM이 없는 파일만 정상적인 파일로 간주한다. linux에서는 unicode BOM이 없는 파일이 흔하긴 하니까 자바도 마찬가지인 것 같다. windows에서 파일을 UTF-8로 생성/저장하고 나서 파일의 첫 3 bytes로 들어가는 unicode BOM을 제거해야지만 JVM에서 작동하는 JOSM이 정상적으로 파일을 읽는다. 나중을 위해 이 3바이트 제거하는 것을 옵션으로 빼놨다.
 
지리산길 -- 완성된 줄 알았는데 아직도 동네 할아버지들이 삽으로 다지고 있는 중인가? 아내하고 애 데리고 한 번 가려고 했는데... 제주 올레는 약 15년 전에 가봤다. 남부 해안선 도보 일주, 한라산 횡단, 그리고 오름 몇 개 오른 정도? 서귀포시에서 한라산 방면으로 올라가기도 하고. 두 번은 자전거를 타고 돌았다. 그중 한 번은 폭풍우가 치는 날에 텐트 치고 비 맞으면서 잤다. 두번째 자전거 여행 빼고는 딱히 재미가 없었다. 회는 정말 맛있다. 하여튼 재미없는데(고생만 했는데) 다들 재밌다니, 재미있다. 동해올레란 것도 만들려나 보다. 그쪽 길도 재미없긴 마찬가지다. 지리산길에는 바람도 안 불고 햇볕을 피할 그늘이 간간이 있을 것 같다. 어쩌다 보니 그것이 지리산길의 유일한 장점처럼 보인다.

0.001mm 침범하면 천백배 보복할 것
-- 0.001mm의 천백배 보복이면 11mm냐? 미국엔 입도 벙긋 못하면서 상대적 약자(?)인 한국은 갈구는구나. 이명박 정권이 물론 잘못했지만 때만 되면 민족입네 어쩝네 하면서 발광하는 너같은 놈더러 비열하다고 하는 거야.

3월 8일 자전거 타고 헤이리에 갔다왔다. 주행시간: 4h30m, 쉰시간: 1h10m, 주행거리: 90.6km, 평균속도: 20.0kmh.

일산에서 출발하면 왕복 50km 거리의 썩 괜찮은 하이킹 코스가 되지만, 집에서 출발하니 반나절 거리가 되어 버렸다. 코스: 연신내역 -> 구산역 -> 원당역 -> 일산 -> 이산포 IC -> 자유로를 따라난 샛길을 죽 진행 -> 자유로 휴게소,  파주출판단지 -> 헤이리, 헤이리 영어마을.

파주 출판단지
파주 출판단지에는 처음 와봤다. 알만한 출판사 이름이 꽤 여럿이다.

송촌교에서 바라본 공릉천
송촌대교와 나란히 있는 송촌교에서 찍은 공릉천. 헤이리 사진은 안 찍었다. '문화예술촌'이란 것이 나한테는 '집창촌'같은 느낌이라서. 돌이켜 생각해 보니 파주출판단지도 집창촌 같은 느낌이었다. 건축이 주는 분위기 탓, 길가에서 호객하듯이 곱게 꽃단장하고 서 있는 건물의 열에 들어갈 마음 보다는 후다닥 지나치고 싶은 기분이 드는 점 때문에?

아니다. 집창촌이 집단창작촌의 약어라고 들은 기억이 난다.

돌아오는 길에 자유로 휴게소에 들러 라면을 사 먹었는데 꽤 잘 끓인다. 휴게소는 바이크 라이더들의 집합소 같았다. 몇 년 새 자전거 타는 사람들이 부쩍 늘었다.

일산 호수공원
돌아오는 길에 일산 호수공원에 들렀다. 해질 무렵이 되니 기온이 떨어졌다. 작년 11월에 창고에 쳐박아 두었다가 지금까지 정비 한 번 제대로 안 하고 타는 자전거를 보니 온통 흙투성이다. 올해 자전거를 네 번 탔는데, 탈 때마다 오프로드 구간을 지났다.  이번 주행은 유난히 요철이 많아 골이 많이 흔들렸고 가랑이 사이가 아팠다. 위 사진은 아픈 부위를 표시한 것. 아... 이 고물 자전거...

책 '리만 가설' (리만 가설 소개 홈페이지): 홀수 장에는 수열, 로그의 특성, 자연지수, 간단한 미적분 따위 리만 가설을 이해하기 위한 수학적 배경 지식을 소개한다.  고등학교 수준. 짝수 장에는 리만 가설의 배경과 역사를 실었다. 읽기 어려운 '수학 교양서'라서 오랫동안 읽지 않고 버티다가 요즘 읽을 것이 없어 읽었다. 첫 장부터 흥미진진. 오일러의 golden key가 등장하는 1부의 중반부에서 요새 개그맨들 말로, 빵 터졌다. 소수 정리가 이렇게 간단하단 말이야?  황금열쇠:


그럴리가... 해석학은 머리에 쥐나는 분야다. 간단하게 설명하는 것이 재주다. 수학교양서를 읽을 때마다 느끼는 거지만, 읽기 전까지 읽기를 지체하면서, 정작 읽으면 정신없이 읽고 히히덕거리게 된다. 왠만한 지식 전달 위주의 넌픽션은 시간당 50~60p 정도 진도가 나가는데, 이건 무려 75pph(pages per hour)가 나왔다. 얼마나 재미 있었으면 지하철도 두번 걸렀다. 앉으나 서나 틈만 나면 읽었다.
 

앤드루 오들리즈코의 말을 들어보자. "과거 한때 '소수 정리를 증명하는 사람은 영생을 얻는다'는 소문이 있었지요.실제로 아다마르와 발레 푸생은 90년 넘게 살았으니 아주 허황된 소문은 아니었던 것 같습니다. 그런데 요즘 이 소문에서 파생된 또 다른 소문이 나돌고 있씁니다. '리만 가설은 거짓일 지도 모른다. 그러나 누구든 리만 가설이 거짓임을 증명하는 사람은 그 자리에서 급사할 것이며 그가 얻은 결과는 결코 세상에 알려지지 않을 것이다'라는 지독한 소문이 바로 그것입니다"
제타 함수의 함수 평면 궤적 그래프.

'리만 가설'은 전형적인 수학 교양서라서 언제나처럼 수학 천재들이 등장하며, 입에 침이 마르도록 그들이 얼마나 천재같은지 칭송한다. 말하자면  그 동네 수퍼히어로물이다. 수퍼히어로물이자, 사회성 떨어지는 오타쿠들이 세계에 기여하는 알려지지 않은 방식을 설명해 주려 애쓰며 그들이 세운 빛나는 업적들을 소개하고 때로는 기적을 시연한다.



뫼비우스 함수를 사용한 제타함수의 다른 표현. 뭐 이 다음부터는 점점 어려워져서, 입 다물고 구경만 하세여~ 분위기다. 그나저나 수열이나 복소수나 아이겐 밸류를 참 오랫만에 봤다 -_-
 
'리만 가설'은 전형적인 수학교양서 답지 않게 재밌다. 매 장을 넘길 때마다 짜릿짜릿하다. 작법의 힘이다. 다른 책들과 달리 작자는 후주에서 소재의 불필요한 부가 설명을 적는게 아니라 가끔은 소재 외부의 이야기, 아니면 잡담을 늘어놓았다. 작자만 그런게 아니라 옮긴이도 본문과 후주에서 작가와 함께 재잘재잘 수다를 떤다. 따라서 놓치면 아쉬운 이 재밌는 후주를 읽기 위해 책장을 오락가락 해야 하는데, 출판사가 후주를 각주로 해 뒀으면 좋았을 껄 하는 아쉬움이 남는다.  그것 뿐, 기승전결이 뚜렷한 서사와 마지막의 전혀 소득없는 피날레는 감동마저 안겨준다. 원제가 Prime Obsession인데 제목 참 잘 지었다. 오랫만에 책에 아낌없는 찬사를 보낸다. 승산의 책 홈페이지 -- 내가 읽은 것이 무려 3쇄라서, 이런 책을 읽으면 들게 마련인 오타쿠같은  느낌이 들지 않아서 특히 좋았다.

힐베르트의 연설: 우리에게 주어진 과업을 완수하려면 '모든 수학 문제는 해결 가능하다'는 신념을 가져야 한다. 지금 이 순간에도 우리의 마음은 외치고 있다. 여기 문제가 있으니 해답을 찾아라! 우리는 순수한 사고를 통해 해답을 찾을 수 있다. 우리는 결코 무지하지 않으며 자연과학도 무지함과는 거리가 멀다. 그러므로 '무지함'이라는 단어는 새로운 단어로 대치되어야 한다. "우리는 알아야만 한다. 우리는 결국 알게 될 것이다."

과학사상 가장 유명하다는 힐베르트의 감동적인 연설을 기억한다. youtube 어딘가에도 있다.

시간여행자의 사랑 -- 브루노 발터, 뉴욕 필하모니, 말러 9번 교향곡. 이거 좋아하지 않을 사람이 과연 있을까? 소설에서는 시시하고 평범한 소재로 감질맛 나게 낚시질한다. 물론 낚였다. 열정과 의지가 결여된 사람은 시체같아 보인다는 것을 새삼 깨닫게 해줬다.

책에 인용된 프랜시스 톰프슨의 시
 
가까이 있건 멀리 있건
세상 모든 것은
영원불멸한 힘에 의해
보이지 않는 끈으로 묶여 있으니,
땅에서 꽃 한 송이만 꺾어도
하늘에서는 별 하나가 고통에 몸부림친다.

이 싯귀를 언젠가 들어본 기억이 있는데 통 기억 나지 않는다. 아무래도 십여년 전 어떤 과학 교양서에서 읽지 않았을까...

Sky Crowlers
"담배를 피우지 않는 여성은 신용하지 않거든요" -- 오시이 마모루, 스카이 크롤러즈. 우울한 애니. 창공의 전투씬을 무척 잘 만들어서 두세 번씩 리플레이하게 만든다. 감독은 정작 독자가 알아먹을 수 있는 수준에 맞추려고 공중전의 스피드를 늦추려고 거지같은 프로펠러 전투기를 등장시켰다던데. 감독 아저씨, 시청자 배려한답시고 그런 짓 좀 하지 마세요. 댁이 잘 만들면 뭐든 프레임 단위로 안 보겠어요? 이거 원작이 좋아 보이고 전쟁쇼 벌이는 킬드런 설정도 마음에 들어요. 댁이 딱히 망친 것 같진 않지만, 그걸 SF로 만들었다면 독자가 당신이 지향하는 (그다지 공감하지도 않는) 연출의도를 못 알아차릴까봐서 설정을 틀어 버린 것 같아 아쉽다고요.


rideback
갈수록 궁상스러워지는 라이드백. 요즘 돌고 있는 사진. 한국에 외주를 줬는지 자동차 번호판이 매우 낯익다.

,

검증 주행

잡기 2009. 3. 1. 02:57
2월 22일 주행이 당혹과 자괴감으로 점철되어 원인이 어디에 있나 살펴보려고 2월 28일 자전거를 탈 생각이었다. SF&F 도서관 개장식이 마침 같은 날이라 그 곳에 살짝 들러 표도기님과 얘기 좀 하다가 개업식 하기 전에 나와 '주행테스트'를 계속 해 보기로.

아내는 져지에 츄리닝 입고 나가니까 정말 그 몰골로 돌아다닐 꺼냐고 한숨을 푹 쉬었다. 이거 왜 이래 아마추어 같이? 이 트레이닝복 입고 벌건 대낮에 인천공항에서 출국한 적도 있다. 옷가지 만큼은 타인의 눈에 굳이 신경쓰지 않았다. 개소식 하는 곳에 가는 것이 좀 거시기하지만 그 곳 사람들도 적응하면 금새 익숙해질 것이다.

오후 2시 8분 출발. 잊지 않고 지하철 역 앞에서 자전거에 바람을 넣었다. 강변로까지 22kmh 정도로 워밍업하듯 달리다가 강변로에 진입해 28~31kmh로 줄곳 달렸다(평소 22~25kmh로 달리던 구간이다. 2월 22일에는 타이어에 바람이 좀 빠졌다고 평속이 18kmh가 나왔다). 바람을 등지고 있기 때문에 속도가 더 났다. 그나저나 한강변에서는 35kmh쯤 되면 아무도 추월하지 못한다.

이명박 시장 시절엔 한강에 오페라 하우스 세운다고 하다가 갖은 욕을 먹었는데, 오세훈 시장은 임기 초부터 한강 르네상스 프로젝트를 진행하면서, 반포대교를 자전거 전용 도로로 만들고 그 앞에 수상 레저 타운 같은 것도 만들 계획이란다. 어쨌거나 반포대교로 차량 통행이 중지되고(가능할까?) 한강변 자전거 도로가 정비되면 꽤 볼만한 예산 낭비 작품이 나올 것 같다. 뭘 하는지 자세하게 관심은 없지만 이래저래 공사가 한창이다.

사당역을 지나 SF 도서관에 이르기까지 GPS의 도움으로 수월하게 찾아갔다. 14:08출발, SF 도서관에는 15:50 도착. 아직 손님이 없어 서가에서 책들을 들쳐보며 운영 스태프들과 시간을 보냈다. 표도기님이 도착해 리허설을 했다. 고삿상을 옮기던 도중 살짝 내용물을 보고 웃었다. tai0님을 처음 만났다. 오래 전에 tai0님 글이 이상하다고 내가 말했단다(옛날옛날에 내가 그 바닥에서 빼먹고 욕하지 못한 사람은 없지 싶다 -_-). 곧 결혼할 이씨와 이웃사촌이 될 것 같단다.

예정보다 30분 늦게 개소식을 시작했다. 아무래도 행사 준비로 바쁜 표도기님과 따로 이야기할 시간을 만들긴 힘들 것 같다. 저녁을 함께 할 시간도 안 되지만, 다스베이더 헬멧과 광선검이 올라온 웃기는 고삿상이 서로 뻘쭘한 사람들에게 아이스 브레이킹 챈스가 되었길 바란다.

한가할 때 살짝 들렀다 일찌감치 빠져 나가려고 했는데 뜻대로 되지 않았다. 해가 지기 전에 자전거 타러 나가야 한다. 해지면 춥다. 많이 늦었다. 하는 수 없이 질의응답 시간에 직지 얘기를 하고(그것도 포멀하게!) 개소식이 끝나자마자 SF도서관을 나왔다. 사이파이님한테 사이트 알려준다는 걸 잊었다. http://www.beerschool.co.kr/

머문 한 시간 동안 물 한 컵과 포도주 반 병, 치즈케익 한 조각, 빵 두 조각, 쿠키 세 개를 먹었다. 어쩌다가 '짐승의 연주자 에린'의 원작이 '야수'란 것을 알게 되었다. 그랬군. 라이드백 만화책을 봤고, 블레임 이전 세계를 다룬 바이오메가 1권을 봤다. 보고 싶었던 만화책들이다. 도서관에 있는 SF들 대개는 본 것들. 어쩌다 기회를 놓쳤을 뿐, 현재 가지고 있지 않아도 88년 이후 출간된 SF 중 못 읽어본 것은 극히 드문 것 같다. 한국에 출간된 SF의 총수는 500여권이 안 되는 것으로 알고 있다. 행사전 스타워즈 아동용 요약판을 보고 변사를 동원해 스크린 깔고 코스프레 복장으로 연기하면 재밌을 것 같다며 스태프들과 히히덕거렸다. SF 읽는 사람들과 SF 얘기 하는 것이 오랫만이라 즐겁다.

사용자 삽입 이미지

18:10 출발. 꽉꽉 막히는 차량 틈을 요리조리 통과해 신림역을 거쳐 가산디지털단지역에 다다랐지만 건너편 안양천변으로 가는 길이 보이지 않는다. 탐험주행이라 온 길로 가지 않으며, 돌아가는 길을 모른다 -- 때문에 요즘 OSM에 정진한다.

전철로와 평행한 좁은 도로를 따라 차량과 함께 구로역까지 올라가서 가까스로 안양천변에 다다랐다. 오금교에서 성산대교까지 고속주행했다. 성산대교를 건너 산책객들이 한가하게 돌아다니는 불광천을 따라 응암역까지 다다른 후, 다시 시내에서 차들과 나란히 달리며 집에 돌아왔다. 주행거리 55.6km, 2h49m 주행, 30m 휴식. 평속 19.7kmh. 제 속도다. 시내 주행 구간이 길던가 맞바람을 받으면 평속은 18-19kmh 사이가 된다.

주행 평가: 타이어에 충분한 공기가 없어 접지면적이 늘어나면 다리에 상당한 부하를 가한다. 안장에 체중을 실으면 절반 정도 짜부러드는 뒷 바퀴로 주행할 때 평균속도는 3kmh 저하되었다.
그 동안 시간이 없어 못하고 있던 OSM 도로 지도 제작을 하고 있다. 틈틈이 potlatch를 이용해 yahoo aerial map을 참고해서 서울 주요 도로를 만든다. 이 작업이 제대로 결실을 맺게 되면 트랙로그를 일일이 만들지 않고도 GPS 만으로 전국 주행이 가능하게 된다.

potlatch는 정교하거나 대량의 데이터를 다루는 작업에 적합치 않아 JOSM과 merkaartor를 같이 사용했다. 몇몇 사이트에 OSM을 소개한 후 자신이 가진 트랙로그를 올리는 사람들이 생겼다. 작년에 농조로 디지털 대동여지도 프로젝트를 하게 될 지도 모른다고 했는데, 정말 그렇게 될 가능성도 있다. 외국에서는 OSM 커뮤니티 활동이 활발하다. '아마추어 지도 제작자의 모임'이다.

한국 도로 지도 만들기 삽질 모임 같은 공공 프로젝트를 이끌고 싶은 생각은 없지만, OSM은 대단한 포텐셜을 지녔다. 그리고 매력적이다. 작년에 처음 알았을 때 wikipedia에 버금가는 이 대단한 공공 프로젝트가 왜 여태까지 항간의 소문으로 들어본 적이 없나 놀랐다.

일하다가 쉬는 시간이면 이런 저런 생각을 하다보니, 며칠 전 꿈을 꾸면서 OSM으로 지도를 어떻게 만들 것인가 전체 윤곽을 스케치하기도 했다. 심지어 사제 맥주를 들고 아마추어 지도 제작자들과 거나한 뒷풀이를 하는 꿈도 꾸었다. 우리는 UTC 시각과 경위도로 약속을 잡아 만난다!

* OSM에 사람들이 널리 참여할 수 있도록 하는 일이 우선되어야 하겠다. 트랙로그만 수집해 놓기만 하면 지도 편집은 지구 반대편에서도 할 수 있다.

* OSM 도로 지도는 다음, 네이버, 구글 한국 지도보다 나아질 가능성이 있다.
 - 다음, 네이버, 구글 지도는 사용자가 수정할 수 없다.
 - 업데이트 반영이 OSM처럼 실시간이 되지 못한다.
 - 해당 지역 주민은 그 지역에 관해 누구보다 잘 아는 사람이다.
 - OSM은 전세계를 아우르는 데이터베이스다.
 - 데이터베이스 뿐만 아니라 데이터베이스 구현(응용)도 공개되어 있다.
 
* 전국 주요 고속도로(highway)와 주요도로(primary road, trunk)를 확보한다. 지도 제작자들에게 매우 유용한 참고 지표가 된다. 아무래도 전국도로지도 책을 구해야 할 것 같다.

* 내비게이션 시스템이나 무료 공개지도보다 나은 훌륭한 응용 분야가 있다. 트래킹 트레일(footway)과 바이크 트레일(cycleway)이다. 파란 맵이 등산 지도를 제공하기는 하지만 그것보다 정교한 등산로 지도를 만드는 것이 가능하다. 또한 GPS를 사용하는 산악동호회와 자전거 동호회에 꽤 축적된 트랙자료가 있다.

* POI의 확보 방법: 네이버/다음/구글 지도 중 네이버 것이 POI가 가장 풍부하다. 그것과 yahoo 항공사진(2006년 판)과 구글 어스(2009년 판도 일부 있음)의 항공 사진을 참조해 POI를 수작업으로 만든다(별로 좋은 방법은 아니지만 아직은 유출된(?) 자료가 없으니까). 이중 가장 실용적이고 우선적으로 구축해야 할 POI는 기차역, 지하철/전철역, 버스터미널(이하 transportation)이다.

* POI의 구축은 현재로선 구글 어스 외에 방법이 없다. GPS waypoint로는 제한적이고, 아직 네이버 맵 오버레이를 이용한 ajax 소프트웨어를 내 손으로 만들 정도의 시간이나 실력은 없다. 누가 만들어줬으면 좋겠다.

사용자 삽입 이미지

그동안 황량했던 한국이 불과 며칠 사이에 몇몇 사용자들의 참여로 이렇게 변했다. 흡사 내 손으로 도시를 건설하며 문명을 일으켜 세우는 듯한 착각마저 든다. 작업 진행 후 결과물을 흡족하게 바라볼 때면 좋은 SF 읽은 후에나 찾아오는 포만감을 느낀다.  요즘 내가 하는 작업은 지하철/전철역 총정리다.

최근 읽은 넌픽션 중 가장 재밌는 책은 토니/모린 휠러의 '론리 플래닛 스토리'다. 나와 마찬가지로 토니 휠러 역시 이스라엘리 여행자들은 하나같이 지랄같은 놈들이라고 생각했다. 여행할 때 점잖고 좋았던 친구들은 내 경우, 하나 같이 독일인이었다. 그들은 말수도 적다. 영어를 못하는 작자면 '친절한 원주민' 분위기까지 나서 금상첨화다. 토니 휠러도 독일의 여행 문화가 가장 선진화되어 있다고 평가하는 것 같다. 독일 배낭 여행자들에게 딱 한 가지 안타까운 점이 있다면, 일광욕에 환장해 있다는 것. 어? 그런데 휠러가 그것도 똑같이 지적했다.

사용자 삽입 이미지
심바가 몇 년전 아내에게 선물한 것. 서재에 높이 걸려 있는 이 것을 볼 때마다 비비디 바비디 부가 생각난다.

론리 플래닛 스토리에서 가장 마음에 드는 문구는 환경 운동하는 사람들이 날마다 떠들어대는 것, '범지구적으로 사고하고 지역적으로 행동하라(Thinking Globally, Acting Locally)' -- 주변에서 자주 보는 흔한 문구다. 토니 휠러는 이 지구상에 존재하는 무수한 증오와 긴장을 완화시키기 위해 보다 많은 사람들이 여행을 가야 한다고 말했다. 그러게 말이다. OSM은 외국에 알려지는 첫번째 상세 한국 영문 지도가 될 가능성이 있다 -- 천연 비누 만드는 건 지루하고 귀찮다, 지도 만들기야 말로 범지구적으로 생각하고 지역적으로 행동할만한 경우다.

,

맥주 만들기

잡기 2009. 2. 26. 20:18
인기절정(?)인 F4를 보다가... 여자애가 왜 저렇게 늙었지? 어휴 재미없어라.

제 4회 2008년 올해의 과학도서 10권(2008.12.2일 선정)  -- 보고 싶거나, 봐야할 책만 링크를 걸어뒀다.
2월 22일, 올 들어 두번째로 자전거를 탔다. 강변로에서 잠실 방면 양재천 합수부를 통해 과천까지 가서 과천에서 안양으로, 안양천을 따라 다시 한강 합수부까지 이어지는 속칭 'Heart Course'. 실제로 관악산을 빙 두르는 심장 모양의 코스다.

사용자 삽입 이미지

집에서 한강변까지 약 9km를 제외하면 하트 코스의 길이는 69km 가량. 주행거리 77.6km, 주행 시간 4h50m, 쉰 시간 1h25m, 평균속도 15.9kmh. 꽤 한심한 기록이다.

35km 부근부터 이상하게 패달이 무거워 뒷바퀴를 흘낏 살펴 보니 바람이 없어 타이어 접지면이 넓다.헉! 저번에 자전거 타면서 바람 넣어야지... 하고 잊어버렸다. 어찌나 힘이 들던지 약 50km 주행해서 안양천에 도달했을 때는 근육 사이에 송송이 맺힌 젖산 때문에 다리가 뻣뻣해져서 중도 포기하고 마침 가까운 사무실에 자전거를 놔두고 돌아갈 생각을 했다.

이왕 여기까지 온 것, 완주하자, 가다 보면 타이어 바람 넣을 곳이 있겠지 하는 생각으로 이 악물고 평속 12~14kmh 노인네 관광 유람 속도로 두 시간 가량을 달렸지만 끝내 바람을 넣지 못했다. 다리는 점점 굳어가고, 저녁 무렵이 되면서 날은 추워지고(손이 시려서 기어 바꾸기가 힘들다), 먹은 거라고는 500ml 짜리 생수 뿐이라 배가 고파서 안양천 자전거 도로변 노점에서 2천원 짜리 컵라면을 사 먹는데, 주인이 날더러 '잘 생겼다'며 슬며시 삶은 달걀 두 개를 공짜로 줬다. 맛있게 먹었다.

그러고 보니 월드컵 경기장 부근에서 할아버지를 추월할 때, 할아버지가 핸들을 잘못 틀어 내 자전거 뒷바퀴를 박고 길에 엎어지셨는데, 멈춰서 일으켜 드리고 괜찮으시냐고 물으니 별로 안 괜찮다고 막 욕설을 퍼붓다가 내 '잘 생긴 얼굴'을 보시더니 난 괜찮으니 그냥 가라고 말씀 하셨다.

성수대교를 건너고 인상 긁으면서 힘겹게 패달을 밟아 간신히 집에 돌아왔다. 샤워 하고 나서 활활 타는 것 같은 다리 근육 때문에 일찌감치 자리에 누웠다. 아무 생각 안 난다. 아무리 맞바람을 맞았다지만 평지 70여 km를 이렇게 고생스럽게 주행한 것은 오랫만이다. 바람 빠진 타이어 탓이 크지만, 조만간 다시 그곳을 주행하고 뭐가 잘못되었는지 리뷰하기로 했다.

술 마시면서 십여 년 만에 본 박씨와 등산 얘기를 하다가 그가 등산학교 가자고 말했다. 고소 공포증이 있어서 못 간다고 했다. 그랬더니, 사람이 공포심을 느낀 장소는 두 번 다시 안 간다. 그런데 당신은 그런 곳에 몇 번씩 가지 않았나(실은 그렇긴 한데, 알아주니 고맙지 뭐). 고로 겁이 없던가 극복할 의지가 있다는 뜻이다. 그리고 산등성이 하나만 더 넘으면 새로운 세계가 열린다고 주장했다. 그러게 말이다.

박씨에게  차가 지나지 않는 한적한 도로 중앙선에 서 있는 상태를 상상하고, 눈을 감은 후 20초 동안 걷고 나서 눈을 뜨고 자기가 금에서 얼마나 벗어나 있는지 추측해 보라고 말했다. 그게 내가 느끼는 무지와 감각차단으로 인해 돌이킬 수 없는 실수로 이어질 지도 모른다는 두려움이다. 나이 들수록 점점 심해졌다. 일찍부터 싸돌아 다니길 좋아해 사고가 많았다. 지금 생각해보면 운이 좋았다. 반사 신경과 균형 감각의 부족. 의지는 누구 못지 않지만.

밍밍한 맥주 범인은 탄산수?
-- 비단 이런 기사 때문은 아니지만 우연히 기회가 닿아 맥주 만들기 동호회 초보 교육에 참석했다. 조교의 잠언은, '라면 끓이는 정도면 맥주도 만들어 먹는다'. 아내한테는 아무 말 안하고 갔다.
 
1.7kg 내외의 캔 맥주(beer kit)를 설탕(또는 맛을 좋게 하려면 드라이몰트)과 23리터(21리터가 좋단다) 정도의 물에 섞은 다음(물은 그냥 수돗물. 잡세균이 있는 생수 류의 미네랄 워터는 곤란)  깨끗이 소독한 발효조에 넣어 섞고, 물의 온도가 20~25도 부근일 때 효모를 넣고 뚜껑을 닫아 공기를 차단한 다음, 일주일쯤 상온에서 발효한다. 비중이 1.01 정도면 발효가 끝난 것이다.

PET 맥주병 같은 빈 내압용기에 설탕을 5-7g 쯤 넣고 발효된 맥주를 병입한 후 뚜껑을 밀폐해 상온에서 며칠 동안 발효시키면 효모가 산소+당을 분해하여 이산화탄소를 만든다. 이때 쯤 되면 PET 병이 벽돌처럼 딱딱해진다. 이후 냉장고에 넣고 1주 이상 숙성시켰다가 마신다. 이것이 그날 교육의 전부다. 쉽다는 건 주워들은 풍월로 대충 알고 있었지만, 직접 보고 들으니 어처구니 없이 쉬웠다. 하지만 다년간 홈 브류어리를 해 온 '전문가'의 짬밥과 경험 역시 쉬울까?

21리터 정도 만드는데 드는 비용은 비어 킷 33000원 가량, 설탕 한 봉지(얼마나 될까?). 초기 투자비(자재비)는 6만원 가량. 매달 3-4만원 정도 투자하면 전문가가 제대로 만드는 시내 하우스 비어 보다는 좀 떨어지지만, 그래도 (망할) 카스 생맥주보다는 나은 맥주를 만들어 마실 수 있을 것 같다.

그날 교육 참가비는 2만 원이었는데, 네 종류의 각기 다른 맥주와 꽤 잘 만든 훈제 돼지고기, 훈제 닭 안주와 함께 시음했다. 그리고 1차 발효가 끝난 앰버 에일(Amber Ale), Dark Ale, Mii 뭐라는 맥주 각각 1리터씩 세 병을  받았다. 2주 쯤 후 개봉해서 기분좋게 마시란다. 교육장에서 맛 좋은 안주와 함께 썩 괜찮은 맥주를 1리터 쯤 들이마신 탓에 알딸딸했는데, 맥주도 세 병씩이나 주니, 교육비 2만원이 하나도 안 아까워 흐뭇하다.

여름에는 맥주를 잘 안 만든단다. 만들어봤자 6월까지라고. 아마도 효모 활동에 적합한 온도 때문인 것 같다. 라거 종류의 하면 발효 주조는 낮은 온도를 장기간 일정하게 유지하기 어려워, 18~25도 사이에서 발효시키는 에일, 스타우트 같은 상면 발효 맥주가 간단하고 쉬운 홈 브류어리의 주종을 이루는 것 같다(그냥 추측이다). 뭐, 에일 보다는 필스너나 라거를 좋아하는 편이지만...

집에 돌아와 즐겨먹는 하이트 맥스와 어느 정도 차이가 나는지 비교할 겸 한 병을 사와 마셨다. 교육장에서 마신 것이 여러 모로 낫다. 그런데 이렇게 만들어서 혹시 실패하지는 않을까? 저 제작 과정 어디서 어떻게 해야 실패할 수가 있지? 실패하기가 무척 어렵진 않을까?

직접 제작과 시중 판매 맥주 사 먹는 비용 사이에 경제성을 비교해 보았다. 1.6리터 PET가 4300원이라 가정할 때,

시중 맥주 판매가 = 2687원/리터.
초기 투자비(자재비) = 6만원 (발효조, 비중계, PET 병 따위들 세트로 판매)
1회 제작비 = 비어 키트 33000원 + 설탕 2000원(추정).

2687원/리터 > ((33000 + 2000) * n + 60000)원 / (21 * n)리터  일 때,
n=3회 이상. n=3일 때 제조단가는 2619원/리터

맥주를 10회(210리터) 만들면 제조단가는 1952원/리터로 떨어진다. 맥주 한 번 만드는데 1개월 걸린다고 치고, 3월 중순부터 만들기 시작한다고 치면, 상반기 3개월 동안 16만5천원을 들여 4월 중순부터 63리터의 맥주를 그야말로 배터지게 마실 수 있다. 구체적으로, 주 5일, 하루 1리터씩 매일 마실 수 있다. 주 3일로 하고 하루 2리터로 할까? 음... 그런데 이건 아니잖아! 비용을 줄이면서 첫 21리터를 합리적으로 소비할 방법을 찾아 봐야겠다. 당장은 보관용 냉장고가 문제라서.

전업주부랍시고 집에서 놀고 있는 마누라 시켜서 맥주 제조해 판매할까?
오...
괜찮은데?


,

Open Street Map

GPS 2009. 2. 26. 20:07
이전 독립 GPS의 활용에서 만든 지형도(등고선 지도)에는 도로와 POI가 포함되어 있지 않다. 등고선 지도에 Open Street Map 지도를 합치면 GPS에 도로와 POI를 사용할 수 있다.

OSM(Open Street Map)은 전세계적인 도로 지도 제작 프로젝트다. 얼마전에 google에서도 google map maker를 만들어 사용자 참여로 구글 맵에 누락되거나 업데이트 되는 지도를 만들 수 있는 방법을 제공하기 시작했다. google map maker의 단점은, 사용자가 만들어 놓은 지도 데이터의 소유권이 구글에 귀속되며, 사실상 맵을 만들어서 구글맵 사용자 사이에 공유하는 것 외에 달리 써먹을 데가 없고 아직 GPS에서 사용할 도구가 없다.

OSM은 구글 맵 메이커에 비해 사용이 비교적 자유롭다. 여기서 만들어진 지도를 바탕으로 여러 가지 파생 프로젝트가 생겨났으며, 그중 대표적인 것이 GPS 디바이스에서 사용하는 도로 지도를 만드는 OSM Map On Garmin이다.
 
OSM에서 만든 자료를 변환해 routable map과 POI(point of interest) 데이터 베이스를 구축하고 이것을 Garmin GPS에서 업로드 해 사용할 수 있다. Garmin의 .img 포맷이 알려져 있고 OSM Tile file database access가 자유롭기 때문에 가능한 일이다.
 
Cloudmade에서 매주 업데이트 하는  국가별 지도 파일을 다운받을 수 있다. 다운 받은 파일을 GPS에 업로드하면 바로 사용 가능하다. 이중 한국의 서울과 일본의 도쿄를 비교:
사용자 삽입 이미지 사용자 삽입 이미지

아직은 한국 사용자들의 참여가 적어 한국 지도가 질적/양적인 면에서 다른 국가에 비해 상대적으로 어설프고 부족하다.

cloudmade의 자료는 이미 만들어진 파일이라 분리 후 다시 통합하기 어려우므로, computerteddy에  의해 매주 업데이트 되는 전 세계 지도 중 필요한 부분을 다운 받아 작업해야 한다.

전체 파일인 worlds.tgz의 압축된 용량은 1.42GB에 달하므로(압축 해제한 *.img 파일의 총 크기는 3.4GB) 별개 이미지로 나누어진 다운로드 디렉토리에서 필요한 파일만 다운받는 것이 시간을 절약할 수 있다. 이때, OSM 자료를 tile 별로 업데이트한 것이라(자세한 내용은 OSM 사이트 참조), 한국에 해당하는 타일을 가져오려면 위치에 해당하는 타일 파일명을 알아야 한다. Convert Coordinates to OSM Tile Numbers 참조.

울릉도를 제외한 대략의 타일 파일 이름은 다음과 같다.
 
63295024.img 63295025.img 63295026.img 63295027.img 63295028.img 63295029.img
63295204.img 63295205.img 63295206.img 63295207.img 63295208.img 63295209.img
63295384.img 63295385.img 63295386.img 63295387.img 63295388.img 63295389.img
63295564.img 63295565.img 63295566.img 63295567.img 63295568.img 63295569.img
63295744.img 63295745.img 63295746.img 63295747.img 63295748.img 63295749.img
 
이들 .img 파일을 sendmap 프로그램을 이용해 Korea topo 맵의 .img 파일과 합쳐 단일 gmapsupp.img를 만든다.

사용자 삽입 이미지 사용자 삽입 이미지
GPS에서 POI를 보면 OSM에서 한글 이름으로 만든 것은 글자가 깨져서 나온다. OSM에서 '영문이름(한글이름)' 식으로 입력하면 이런 문제가 사라진다. 두번째 화면에서는 지형도와 도로 지도가 함께 나타난다. 도로 지도만 나타날 뿐, routable map을 만드려면 computerteddy가 고맙게 올려주는 파일들로는 안되고, OSM 지도를 사용하는 다른 사람들처럼 별도의 작업을 벌여야 한다. 시간이 좀 나면 공부해서 만드는 방법을 좀 배워야 할텐데...

OSM 프로젝트는 Wikipedia 프로젝트와 흡사하므로, 계정을 만들면 누구나 도로 지도를 그려 올릴 수 있다. Potlatch는 web + flash로 온라인에서 작업하는 도구, JOSM, Merkaartor 등은 오프라인에서 작업할 때 주로 사용하는 툴이다. 작업 규칙과 방법에 관해서는 한국 사용자 모임 참조.
 
편집은 보통 자신의 GPS에 기록된 tracklog와 waypoint를 업로드한 후, 그 자료를 바탕으로 도로를 그리는 방법과, potlatch 같은 경우 web 상에서 yahoo map이 오버레이 된 상태에서 도로를 따라 그리며 작업하는 방법, JOSM 등의 프로그램에서는 지도 오버레이용 플러그인을 설치하여(예를 들면 google map plugin) 지도를 오버레이 한 상태에서 도로를 그리는 방법 등이 있다.

OSM 지도는 1주 마다 업데이트 되므로(아직 한국 지도는 거의 업데이트 되는게 없지만) 매번 지도 이미지 파일을 받기는 번거러워 GNU Tool 중 win32용 wget을 사용해(linux 배포본에는 보통 기본적으로 포함되는 유틸리티) 이들을 한꺼번에 받는 스크립트를 사용하면 작업이 덜 번거러워진다.


아울러 이렇게 만든 파일은 Garmin MapSource에서 도로를 볼 수 있는 상태가 아니므로 MapsetToolkit을 사용해 *.TDB 파일을 만들어줘야 한다. MapsetToolkit 사용법은 GPS 한국 지형도 만들기 참조.

사용자 삽입 이미지

Garmin MapSource에서 topo map과 함께 본 모습

,

Wii Fit

잡기 2009. 2. 23. 20:16

코오롱스포츠 ‘물에 뜨는 등산화’ 출시 -- 이거 구정 때부터  보던 기사인데? 신발 살 일이 있어서 뒤져보다가, 7만5천원 짜리 파이브텐에서 나온 고어텍스 XCR 경등산화를 옥션에서 팔길래 사려고 했더니 해당 사이즈의 재고가 없단다. 값도 싸고 좋아 보였는데, 무척 아쉽다.

SF&판타지 도서관 개장. 3월부터 본격적으로 운영될 듯. 몇 년 전에 술자리에서 만난 표도기님이 만든다고 했는데 정말 만들었다. 역사적 유물인 직지CD를 갖다 줘야 겠다. 쓸모가 있을 지는 의문이지만. 조만간 시간날 때 직지 사이트 유지 보수도 좀 해둬야지.

이재용 삼성 전무이사가 이혼한 것이 여자 관계 때문이라는 소문을 들었다. 문득 생각난 것은, 카르데니오 납치사건에서 서즈데이 할머니가 한 말;  사랑을 하면 공갈협박을 당할 여지가 커지지.

아이는 이제 31개월 살았다(살아남았다?). 아내는 아이가 하나에서 열까지 숫자를 세고 읽을 줄 안다고 흐뭇해 했다. 지하철에서 꽥꽥 숫자를 발음하고 사탕도 얻어먹는 모양이다. 30개월 무렵이면 아이들이 보통 숫자를 셀 수 있다고 말하니, 모르는 소리 말란다. 육아 가지고 지아비가 미주알 고주알 훈수 둬봤자 좋을 것도 없고, 그쪽은 아내가 알아서 하게 내버려 둔다.

아내는 좀 배운 녀석들의 사고방식이 획일적이고 답답하다는 편견을 가지고 있어서 공부 잘 하는 헛똑똑이보다는 아이를 차라리 날나리로 키우고 싶어했다. 공부 좀 하는 것들에 대한  편견은, 아마도 그들이 지닌 개념과 의미 개연의 순서에 대한 훈련된 반사 작용의 고리타분함 때문에 생겼을 것이다. 아내는 특히, 내가 책줄에 나온 대로만 읆어대는 헛똑똑이라고 여기면서 흐뭇해 했다. 상황이 순발력을 요구할 때 전후 인과관계나 따지고 있는게 여간 바보스럽지 않겠나? 그렇다고 내가 definition과 concept 따위로 업을 해서 먹고 사는 사람도 아니지만.

결혼 5주년 선물로 아내에게 Wii Fit 세트를 사줬다. 살이나 빼라고(당황스러운 일이지만 아내의 BMI 측정치가 23 정도... 정상 체중으로 나왔다. 그럴 리가 없는데?). 39만 6500원. Wii Sports + 처음 만나는 Wii + Wii Fit + 눈차크. 기계치인 아내가 택배 받은 물건의 포장을 풀고 조립해서 바로 작동 시킬 정도면 대단한 게임기다. 돈은 많이 들었지만 해외여행 보내주는 것보다는 싸게 먹혔다.  

Wii Sports는 오다가다 한 번 쯤은 해 봤고 처음 만나는 Wii에 위모컨이 포함되어 있어 그걸 함께 구입하면 2인용 세트가 된다. 다른 건 몰라도 Wii Fit (Balance System)이 꽤 재밌는 물건이다.  4개의 로드셀 센서에서 검출된 체중 밸런스에 의한 압력차를 블루투스를 통해 본체로 전송한다는 원리는 그다지 안 복잡하지만 그것을 요가와 체력 훈련 및 게임에 적용하면서 진가를 발휘한다.

측정한 BMI는 22.95로 정상. 목표치를 22.03으로 하니 2.3kg을 감량해야 한단다. 약 40분 Wii Fit으로 이것 저것 해 보고 다시 몸무게를 측정해보니 400g 정도가 줄었다. 너무 많이 줄어 믿기지가 않았다. 참고로 500ml 생수를 뱃 속에 채우면서 자전거 3시간쯤 타면 500g쯤 가벼워진다. 즉 쉬는 시간을 포함해 3시간 자전거 몰고 1kg 가량을 뺀다(내 경우). Wii Fit으로 하는 요가 따위가 자전거의 운동량에 비하면 세발에 피지만, 그래도 Wii Fit으로 운동하니 이마에 땀방울이 송글송글 맺힌다.

사용자 삽입 이미지
결혼 5주년 기념으로 가족 사진을 찍자고 아내가 말했다. 그래서 돈 안 들이고 한 장 찍었다. Mii 셋이 모여 Wii가 되었다.

엘마레따, 회식 장소로 적합한지 알아볼 겸, 그 김에 저녁 식사나 할 겸 찾아갔다가 입맛만 버렸다. 원래 부페를 그리 좋아하지 않아 부페 가서 음식을 깨작거리며 먹는 편. 종류가 꽤 많았던 초밥 대부분은 다양성에 비해 특별히 맛이 없다. 구운 새우와 대게는 많이 짠 편. 국물 음식은 일반적인 부페 수준, 과일류는 빈약, 타르트, 초콜릿 무스, 티라미스 등 일단 구색은 갖춰 놓은 제과 디저트 정도만 평균 수준 이상이고 해산물 부페라지만 해산물 어디에도 별 특색 없음. 부러 '맛있게' 먹으러 갈만한 곳은 못 되는 것 같다. 하긴 어느 부페나 두 번째 방문하면 맛이 없다.
 
Life After People
Life After People. World without Us를 미흡하게 연출한 듯한 다큐멘터리. CG, 해설 다방면에서 좀 촌스러운데다가 중언부언하지만, 그래도 누계 500만인지 5000만인지가 본 인기 다큐멘터리다.


Life After People; David Brin
Life After People에 David Brin도 나왔다. 젊었을 때도 대머리이긴 했지만 이 양반은 어느새 이렇게 늙어버린 거지? Earth에서 선보인 예언 같은 것들이 계속 잘 맞아 떨어진데다, SF 오타쿠부터 일반 대중에 이르기까지 각계각층에서 골고루 사랑받는 작가였다. 한국에 번역본이 더 출간되지 않았다. 또는, 박씨 아저씨가 브린 소설 출간 기념 해설 쓸 때 쯤 돌아가실 지도 모르겠다.  


사이버리아드: 아.. 읽기 무진장 힘든 풍자서. 읽다 졸다를 반복.

테메레르 5권: 주인공 남자는 거의 시체 수준으로, 전편에 비해 전투씬은 늘었지만 하는 일 없고, 내가 읽는 내내 정신이 산만해서 그런지 지루하고 재미가 없다.

시간 여행자의 아내: 꾸역꾸역 읽기야 했지만 밑도 끝도 없는 시간여행을 소재로 한 로맨스가 역시 취향은 아니다. 그런데 내가 왜 이 책을 읽은 거였지? 아, '시간 여행자의 사랑'을 보려고 했다가 도서관에서 누군가 먼저 빌려가서 대신 이거라도...

환영의 도시: 르귄의 책이 번역 출간되면서 번역자가 르귄과 서면 인터뷰를 했는데,  르귄은 자신이 남자 스타일로 글을 쓴다는 말을 해서 비딱하게 한 마디 하려고 환영의 도시를 다시 읽었다. 설마... 부사, 형용사구 왕창 생략하는 헤밍웨이 스타일 글쓰기면 남자처럼 글 쓰는 것으로 보일까?  욕설을 한참 늘어놓으려다가 뭔가를 비판하려면 전두엽에서 바로 끌어다 붙여 쓸 다양한 증거 자료(인용구)와 튼튼한 배경 지식을 갖춰야 하는데, 책 한 권 달랑 재독하고(기억 나는 것은 거의 없고, 그가 여성 작가라는 결론에 도달했던 논리적 과정은 이제는 거의 생각나지 않고 어렴풋 하기만 해서) 싸잡아 욕하기 뭣해 멋쩍어서 관뒀다.

진실을 배반한 과학자들: 황우석 사태를 비롯한 과학계에 만연한 과학사기에 관한 이야기. 감상은 무덤덤. 그런 것이야 어제 오늘 얘기도 아니지만, 책 중간 부분에 의미심장한 결론이 나온다. '과학의 궁극적인 수문장은 동료 평가도 심사 제도도 재연도 아니고, 이들 세 가지 제도 속에 함축되어 있는 보편주의도 아니다. 그것은 시간이다. 결국 나쁜 이론은 작동하지 않으며, 거짓 개념은 올바른 개념처럼 훌륭하게 세상을 설명하지 못한다.'

리얼 실험 프로젝트 X: 무인도에서 한 달 살기

EBS 리얼 실험 프로젝트 X: 무인도에서 한 달 살기. 어쩌다 가끔 보는 프로그램. 다섯 가지 물건만 들고 무인도에 들어가 한 달 동안 살아보기. 무대책, 무대포인 사람들이 무인도에서 줄창 고생하다가 나왔다. 나라고 잘 할 자신은 없지만, 여기 출연한 대부분의 사람들과는 무인도에 함께 가면 고생하기 딱 좋겠다는 생각만 들었다. 여건이 좋아, 미팅할 때 패거리를 구성해서 가져올 물건을 분담하고(특히 식량) 역할과 룰을 미리 잘 정해 공부 좀 했더라면 사정이 나았을 텐데... 출연자들은  Survivor나 Man Vs. Wild 같은 프로그램을 한 번도 안 봤나? 그게 뚝심으로 무인도에서 한 달 버티는게 아니라서 말이지...

 
,