Blog Archive

2008-06-12

비 라틴 계열 문자를 한꺼번에 엔티티 문자로 바꾸기

우리 회사에서는 오라클 사의 아이러닝(iLearning)이라는 학습 관리 시스템을 쓰고 있다. 그 시스템은 비교적 국제화(globalization)가 잘 되어 있어서 지금까지 영어, 한국어, 스페인어, 프랑스어, 네덜란드어, 독일어로 된 하위 시스템을 구축하는 데에 문제가 거의 없었다. (물론 그냥 데이터는 그 밖에 언어인 중국어, 러시아어 등을 쓰는 데에도 문제가 없었다.) 그런데 이번에 중국어(Simplified Chinese) 기반으로 다시 하위 시스템을 만드는 과정에 여러 곳에서 문제가 발견되었다. 중국어쪽 고객이 많지 않아서인지 아예 중국어쪽 메뉴 타이틀에 대한 사전(dictionary)을 만들어놓지 않은 경우도 꽤 있었다.

그 중에 하나가 로컬에서 만든 CJK(중국어, 일본어, 한국어) 문자가 포함된 유니코드 파일을 서버에 업로드하면 문제가 생겼다. 서버는 분명히 유니코드 인코딩 방식의 하나인 UTF-8로 페이지를 보여주고 있었지만… 처음에는 파일을 잘못 만들었나 여러 가지로 검토해보았으나, 문제는 명백히 서버 쪽에 있었다. 그래서 결국에는 원본 파일에서 CJK 문자를 쓰지 않도록 할 수 밖에 없었는데, CJK 문자를 문자열 단위로 HTML의 엔티티 문자(entity character)로 바꾸어주는 사이트를 이용하다가 이건 아무래도 너무 불편해서, HTML 타이디(Tidy)에 인코딩 방식을 자동으로 바꾸어주는 옵션이 있다는 것을 알았다. CJK 문자가 포함된 문서를 ISO-8859-1로 바꾸면서 CJK 문자를 한꺼번에 엔티티 문자로 바꾸려면 아래와 같이 하면 된다.

tidy --input-encoding utf8 --output-encoding latin1 input_file > output_file

2008-05-16

페이지 내 링크와 브라우저 버그

페이지 내 링크(within page link, same page link)란 한 웹 페이지 안에서 이동하는 링크입니다. 많이 쓰는 곳은 FAQ나 법 조항처럼 페이지 위쪽에 목차나 목록이 먼저 나오고 하나를 선택하면 그것과 대응하는 답변이나 상세 내용이 있는 부분으로 이동하기, 시각 장애인이나 키보드 사용자가 페이지 안에서 너무 많거나 복잡한 메뉴를 건너 뛰고 중요한 곳으로 바로 이동하기, 또 페이지 아주 밑으로 갔다가 페이지의 상단부로 다시 돌아오기 정도가 아닐까 생각됩니다. 이 중에 복잡한 메뉴를 건너 뛰는 목적의 링크를 보통은 바로 가기(skip navigation) 링크라고 합니다.

링크와 링크, 양식(form) 요소, 또는 다른 요소들 사이를 이동하는 방법은 브라우저마다 조금씩 다릅니다. 그러나 키보드를 사용했을 때에, 현존하는 브라우저 중에 이런 페이지 내 링크를 정말로 제대로 지원해주는 것을 찾기가 쉽지 않습니다. 우선 윈도우즈에서 자주 사용하는 인터넷 익스플로러 7, 파이어폭스 2, 오페라 9, 사파리 3으로 페이지 내 링크를 시험해보았습니다만 파이어폭스를 제외한 모든 브라우저에서 문제가 발견되었습니다. 이런 브라우저의 특성을 제작자가 다 알아서 꼼수를 써서 해결할 수는 없기 때문에 다음 버전 제품에서는 빨리 이 문제가 개선되면 좋겠습니다.

바로 가기 링크 시험용 예제 페이지 (다운로드 받은 후 로컬 PC에서 시험하세요.)

2008-04-13

숙녀에게 (피아노 연주)

변진섭이 원래 불렀었고, 유리상자도 리메이크해서 부른 적이 있는 “숙녀에게”를 피아노로 쳐봤습니다. 단아하고, 정갈하게 치려고 했는데 결과는 터치와 속도도 깔끔하지 못하고, 반주도 요란해지는 숙녀에게가 되어버렸습니다. 연주 악기는 야마하 클라비노바 CLP-270의 그랜드 피아노 1번입니다.

2008년 4월 25일 추가: 너무 빠르고 요란한 것 같아 다시 연주, 녹음했습니다. 그리고 페이지 내에 오브젝트로 삽입했던 것은 로딩 속도가 너무 느려져 빼버렸습니다.

숙녀에게 1.1 (피아노 연주) 원본 페이지

지금까지는 접근성을 높이기 위해 음악 파일에 대해서 외부 사이트로 링크만 걸었는데, 이번엔 페이지 안에 그냥 심어봤습니다. 인터넷 익스플로러 사용자는 윈도우즈 미디어 플레이어가, 다른 브라우저 사용자들은 표준 audio/mpeg 데이터 형식을 지원하는 미디어 재생기가 나올 것이고, HTML의 <object>를 인식하지 못하는 웹 표시 장치(user agent)에서는 (이론적으로) 원본 내려받기 링크가 나올 것입니다. 그러나 아예 object를 인식하지 못하는 경우에 대비해서 별도로 원본 페이지에 연결할 수 있는 링크를 하나 더 넣었습니다.

2008-04-03

뉴스 강박증

바쁜 현대인들, 특히 인터넷이 보편화된 이후 많은 사람들이 뉴스 중독이나 뉴스 강박증을 가지게 된 것 같다. 나도 최근에 컴퓨터 앞에 앉아있는 시간이 많아지면서 뉴스 또는 새로운 것, 또는 새로운 소식에 대한 심한 강박증에 걸린 것 같다. 사실 정말 나에게 도움이 되고, 나의 역량과 지식과 지혜와 인격을 높여주는 원천은 이미 내가 가지고 있는 것들에 대부분 다 있다. 주변의 전문가들, 지인들, 친구들, 내가 이미 가지고 있는 책, 또는 도서관이나 서점을 통해 얻을 수 있는 책, 기존에 북마크 해두었던 사이트, 기존에 다운로드 받아두었던 문서, 이미 구입한 음악 씨디(CD)들은 산더미처럼 쌓여있다. 그런데도 쌓여있는 그런 수많은 자료들을 내가 과연 성의있게 끝까지 읽어본 것들은 얼마 되지 않는다. 왜 그랬을까? 인터넷 어딘가에 더 새로운, 더 적합한, 더 최신의, 더 놀랄만한 소식, 자료가 있을 것이라는 기대 때문이다. 그래서 오늘도 새로운 자료를 찾아 인터넷을 검색하는 데에 많은 시간을 보낸다.


이런 점을 상업적으로 잘 이용한 것이 바로 뉴스를 전달하는 미디어들이다. 어렸을 때에는 재미 없는 뉴스 프로그램을 보는 어른들을 이해할 수 없었지만, 이제는 어른들에게 뉴스는 최고의 오락이라는 것을 알게 되었다. 텔레비전 뉴스를 몇 번 보지 않았다고 살아가는 데에 큰 지장은 없다. 세상 돌아가는 새로운 신문 기사를 보면서 얻을 수 있는 재미는 쌈박하지만 내가 가진 양질의 책에서 얻을 수 있는 지혜보다 결코 깊지 않다. 그것도 모자라 알에스에스(RSS) 구독기를 통해 내가 관심을 가진 분야의 블로그, 사이트, 뉴스, 비디오, 음악, 세상 돌아가는 경향 등은 놓치지 않아야 한다는 이 엄청난 강박증은 사실 중독이라고 불러도 좋을 듯 하다.


단 며칠만이라도 텔레비전을 끄고, 세상 돌아가는 소식과 담쌓아 보자. 단 며칠만이라도 알에스에스 구독기에 읽지 않은 기사가 쌓이도록 그냥 방치해보자. 짧은 기간이라도 새로운 음악, 새로운 영화, 새로운 소식에 둔감해보자. 대신에 책장 한 켠에서 사놓고 한 번도 펼쳐보지 않았거나, 한 두 장 읽고 덮어둔 책을 펼쳐보자. 또 사놓고 들어보지 않은 먼지 얹힌 음악 씨디를 틀어보자. 기존에 받아놨던 방대한 문서를 오늘은 차분하게 읽어보자. 이미 내가 가진 엄청난 자원에 감사하며... 결코 부족함이 없는 만족감을 줄 것이라 믿으며...

2008-03-30

고향의 노래


민속촌의 한 집


아직도 남아 있는 몇 권 안 되는 악보책 중에 세광 출판사에서 나온 "애창명가명곡집"이라는 노래책이 있습니다. 오래된 곡들이지만 아름다운 노래들이 많아서 요즘 몇 개를 골라 연습해보곤 합니다. 그 중에 작곡가 이수인의 "고향의 노래"는 고등학교 시절에 어느 여고 합창단이 부른 것을 보고 감동을 받아 알게 된 곡입니다. 눈을 감고 노래를 들으면, 흰 눈이 덮인 평화로운 시골 마을과 저녁 노을이 떠오릅니다. 비록 그런 고향의 풍경은 간직하고 있지 않지만, 마음 속 어딘가에 있을 가장 평화롭고, 아늑한 곳으로의 여행을 떠나고 싶을 때에 이 노래를 가만히 들어보십시오.


고향의 노래 들어보기


고향의 노래 (김재호 시, 이수인 곡) 가사


1. 국화꽃 저버린 겨울 뜨락에
창 열면 하얗게 무서리 내리고
나래 푸른 기러기는 북녘-을 날아간다
아-- 이제는 한적한 빈 들에 서보라-
고향길 눈속에선 꽃등불이 타겠네
고향길 눈속에선 꽃등불이 타--겠-네


2. 달 가고 해 가면 별은 멀어도
산골짝 깊은 골 초가 마을에
봄이 오면 가지마다 꽃잔치 흥겨우리
아-- 이제는 손 모아 눈을- 감으라-
고향집 싸리울엔 함박눈이 쌓이네
고향집 싸리울엔 함박눈이 쌓--이-네


연주와 녹음


야마하 디지털 피아노 CLP-270의 기본 피아노에 리버브(reverb)를 좀 강하게 주어 연주한 것을 피아노 자체의 녹음 기능을 이용해 미디로 반주부 1절만 녹음하였습니다. 그것을 컴퓨터의 소나(Sonar) 6을 이용해 반주부 미디를 녹음하고, 이것을 복사해 2절 반주부를 만들었습니다. 이렇게 만들어진 반주부에 다시 피아노에서 현(Strings) 음색을 이용해 1절과 2절 멜로디를 연주해 소나의 다른 트랙에 녹음하였습니다. 이제 소나를 틀어놓고 곰 녹음기를 이용해 웨이브(wav)로 녹음하였습니다. 다시 오데시티(Audacity)라는 오디오 편집 프로그램에서 웨이브 파일의 앞 뒤 공백을 잘라내고, 노말라이즈(normalize)한 다음에 최종적으로 MP3로 인코딩하고, MP3의 메타데이터는 리얼플레이어(RealPlayer)에서 수정하였습니다.

2008-03-12

청와대여, 기자들이여, 쑈를 하라!

청와대 압력으로 사라진 YTN 돌발영상 다시보기~조내 웃김!


2007년 최고의 동영상은 광운대 동영상, 2008년 최고의 동영상은 YTN 돌발 영상!
청와대 사람들, 광고 카피 잘 모르나봐요.
쇼를 하라! 쇼를 하면...
뒤. 집. 힌. 다!


이것과 관련된 논평도 한 번 읽어보십시오.

2008-02-24

17세기 네덜란드 명화로의 느린 여행: 진주 귀고리 소녀

진주 귀고리 소녀 책표지진주 귀고리 소녀 - 10점
트레이시 슈발리에 지음, 양선아 옮김


서점에 들렀다 베스트셀러 코너에서 재미있어 보여 그냥 집어든 책, 트레이시 슈발리에의 소설, 진주 귀고리 소녀를 읽었다. 네덜란드에는 우리에게 비교적 잘 알려진 고흐나 렘브란트와 같은 화가 뿐 아니라 이 미묘한 그림을 비롯해 단지 35편만의 작품을 남긴 요하네스 베르메르라는 화가가 있었다. 아름다운 파란색과 노란색 천으로 머리를 감싸고 알 수 없는 미묘한 표정을 한 눈이 큰 소녀를 그린 그의 이 그림에 대해서는 잘 알려진 바가 없다고 한다. 머리에 쓴 두건으로 보아서는 귀부인도 아니고, 진주 귀고리를 한 것으로 보아선 하녀도 아니며, 배경도 없이 까맣고 어두운 바탕에 왼쪽으로 살짝 고개를 돌리고 미스테리한 표정을 짓고 있는 이 그림에 대해 슈발리에는 생명을 불어넣었다.


책 속에는 진주 귀고리 소녀를 비롯해 스물 세 점의 베르메르 그림이 들어있다. 음악은 아직도 나에게 삶의 일부로, 현재 진행형으로 남아 있지만, 그림이나 회화는 사실 먼 나라 이야기로 남아 있었다. 게다가 디지털 카메라가 널리 보급된 요즈음엔 카메라 각도를 이리 잡아보고 저리 잡아가며 원하는 그림을 얻는 것이 베르메르처럼 지루하게 몇 개월에 걸쳐, 물감을 만들고, 모델의 위치를 바꿔가며 한 개의 그림을 완성하는 것보단 훨씬 더 익숙한 일이다. 바로 그런 점이 이 책을 흥미롭게 만든 점이었다.


17세기 네덜란드 델프트라는 작은 도시를 중심으로 한 화가와 모델, 그리고 그들 주변 사람들 사이에 벌어지는 미묘하고 느린 감정의 변화가 생생하며 섬세하게 묘사되어 있다. 과학 기술이 발달한 현시대의 독자로서 400년도 더 지난 유럽 작은 마을의 모습, 화가의 그림처럼 좀처럼 더디게 진행되는 그 당시 사람들의 생활을 마치 타임머신을 타고 가서 투명 인간이 되어 바라보는 듯한 기분이 들게 했다. 대부분의 소설이 그렇듯이 초반 몇 페이지에서 배경을 설명하거나 등장 인물이 여럿 등장할 때 인물들의 이름이 헷깔리고 배경이 얼른 눈에 잡히지 않았으나, 시간이 갈수록 주인공 그리트의 이야기에 점점 깊이 빠져들었다. 그래서 퇴근 후에 조금씩 시간을 내서 읽었는데 마지막에 이르러서는 책을 다 읽고 덮기 전에 밤잠을 이룰 수가 없었다.


오직 도둑과 아이들만 뛰는 법이다.


이런 믿음을 가진 그리트가 왜 아우더랑언데이크 가를 달려 내려올 수 밖에 없었는지, 그리고 그것이 아름답고 신비한 진주 귀고리 소녀 그림에 담긴 비밀과 무슨 관계가 있는지는 책을 읽어보면 알 수 있다. 마지막 부분에 저택의 큰 마님, 마리아 틴스가 한 말이, 누구에게도 설명하기 힘든 그리트의 삶을 인상적으로 묘사해준다.


그래, 인생이란 한바탕 연극과 같은 거야. 자네도 오래 살다 보면 놀랄 일 따위는 없을 걸세.

2008-02-14

슈퍼맨과 이현석

수퍼맨이었던 사나이 영화의 한 장면: 휘날리는 빨간 망토를 입고 지붕 위에 서있는 주인공


'슈퍼맨이었던 사나이' 영화를 봤습니다. 언제나 그렇듯이 작정을 하고 봤다기보단 무작정 영화관에 가서 시간이 되는 영화를 고른 결과였지요. 영화로서 그다지 박진감 넘치는 재미는 없었습니다만 나름대로 흥미로운 소재를 다룬 영화였습니다.


'슈퍼맨', 미국식 발음으로 '수퍼맨'은 남자 애들이면 한 번 쯤 꿈꾸어봤을 법한 영웅입니다. 어렸을 때 수퍼맨 시리즈를 참 재미있게 봤던 기억을 가지고 있습니다. 망또를 휘날리며 멋지게 하늘을 날고, 눈에서 광선이 나가고, 입에서 세찬 바람이 나가고, 사람들이 어려움에 처했을 때 쏜살같이 날아가 착한 일을 하는 수퍼맨! 이번 숭례문 화재에 수퍼맨이 날아왔더라면 하는 아쉬움까지 생깁니다. 수퍼맨과 같이 정의로우면서 힘센 사람을 우리는 갈망하는지 모르겠습니다.


그런데 이번 영화에서의 수퍼맨은 진짜가 아니었지요. 단지 자신이 수퍼맨이었다고 믿는 과대망상에 빠진 한 정신 장애인일 뿐입니다. 과대망상은 비교적 쉽게 접할 수 있는 정신 질환의 증상입니다. 지금까지 다른 영화에서 다중 인격 등 현실적으로 찾아보기 어렵지만 보다 드라마틱한 이상 행동을 다루었다면 이 영화에 등장하는 이현석은 과장되기는 했지만 꽤 그럴 듯한 인물입니다. 사실 그는 과대망상을 가졌지만 남에게 해를 끼칠만큼 위협적이지는 않습니다. 만약 우리 사회가 이렇게 고도로 문명화되지 않고, 사람들이 여유있게 원시적인 생활을 즐긴다면, 이런 사람도 우리에게 도움이 되는 이웃으로 자연스럽게 살아갈 수 있었을 것입니다. 그러나 우리 사회는 훨씬 복잡하고, 빠르게 변화하며, 사람들의 이해 관계가 얽혀있습니다. 자동차나 전기와 같은 문명의 전리품들은 생활의 편의를 더해주기도 하지만, 그것으로 인한 사고의 위험도 커졌습니다. 이런 문명 사회에 잘 적응하지 못한 사람들은 격리되기 마련이지요. 주인공은 정신 병원에서 환자들을 다루는 하얀 옷을 입은 사람을 '하얀 악마'라고 칭했었지요. '하얀 악마'는 조금이라도 '정상적'이지 않는 사람들을 '이상적'이라고 규정하고, 그들을 '치료'해야만 하얗고 깨끗한 세상이 된다는 사명을 가지고 있습니다.


우리 사는 모습이 점점 그렇게 되어가는 것 같습니다. '이상'하다고 여겨지는 것은 깨끗이 치워야 하거나, 눈에 보이지 않아야 하거나, 또는 바꾸거나, 고치거나, 소독하거나, 때로는 박멸해야 합니다. 그렇게 치료받아 이현석으로 돌아온 '수퍼맨'은 과연 행복했을까요? 비록 허구이지만 자신이 수퍼맨이라는 믿음이 기쁨을 주고, 에너지를 준다면, 약물로 그의 에너지와 기쁨의 원천을 빼앗아가버리는 것이 반드시 옳은 일일까요? 혹시 우리는 그런 비정상적인 것, 비정상적이라고 여겨지는 사람들을 우리가 원하는 방향으로 되돌려야 깨끗해진다는 강박적인 집단 결벽증을 가지고 있지는 않을까요?


영화에서 남을 돕는 수퍼맨과 광인 이현석은 동일 인물입니다. 즉, 전적으로 악한 인물, 전적으로 선한 인물, 전적으로 이상한 사람, 전적으로 옳은 사람, 전적으로 나쁜 사람은 없습니다. 누구나 나름대로 삶의 방식이 있고, 행복을 추구하는 방식이 있습니다. 우리가 만든 엄격한 잣대와 숨쉬기 힘든 기준에 못 미치는 사람, 또는 다른 기준으로 바라봐야만 이해가 되는 사람이 있을 수 있습니다. 한편, 그런 사람들은 우리가 기다리는 수퍼맨이나 선한 사마리아 사람같이 좋은 사람의 모습도 가지고 있을 것입니다. '하얀 악마'가 되어 마지막 남은 '광인'을 '계도'하려고 매달리지 않고, 조금 여유있게, 너그럽게 바라보면, 영화속 희정이(어린 아이)처럼 이현석과도 친구가 될 수 있을 것입니다.