
지난 주에 이사 온 아파트에서 내려다 본 고속 터미널의 버스들. 모든 운전기사들도 후진 주차를 완벽히 할 수 있어야겠지만 주차 순서와 위치를 정하는 일이 가장 어려울 것 같다.
Google Wave를 보면서 구글의 기술력에 대해 다시 한 번 감탄했지만, 이메일을 대치하겠다는 대담한 (혹자는 오만하다는) 시도가 성공할지는 사실 미지수이다.
기술의 진보와 환경의 변화에 따라 새로운 통신 방식이 계속 나오는 것은 자연스러운 일이고, Google Wave는 특히 실시간 인터넷, 클라우드 컴퓨팅, 개방 플랫폼 등 최신 트렌드를 모두 반영하면서 이메일과 IM, Wiki를 결합하고 거기에다 환상적이라고 할 수 밖에 없는 스펠 체커와 실시간 번역기능까지 붙여놓아서, 데모 비디오를 보고 있자면 계속 감탄사 밖에 안나온다. 그런데 과연 이메일과 IM, Wiki를 하나로 합치는 것이 구글러나 비슷한 류의 사람들이 아닌 일반 대중들이 진정으로 원하는 것인지는 확실치 않다. 다른 통신 수단은 각각 다른 제약을 가지지만 그 제약 때문에 특정한 상황과 용도에 더 잘맞는 수단일 수 있다. IM은 이메일보다 웬지 더 개인적인 것 같고, SMS는 인사 치례없이 딱 할 말만 해도 양해가 된다. 이메일은 즉시 답하지 않아도 별로 눈치보이지 않는다. 그런데 Wave의 경우는 이런 제약이 하나도 없다. 과연 모든 기능의 superset을 가진, 그러면서도 별로 단점은 없어 보이는 통신 수단을 사람들이 반기고 받아들일까?
Google Wave의 또 다른 측면은 SN (Social Network) 툴로서의 가치이다. Wave는 그 자체로 이미 폐쇄적인 ad hoc SN의 특성을 갖고 있으나, Wave를 embed할 웹페이지만 있으면 당장 퍼블릭 SN 플랫폼으로 변할 수 있다. 사람들간의 관계를 정의하는 방식에 있어서 이메일과 거의 비슷한 semantic을 갖는 Wave가 SN 툴로서 사용될 때, “이 사람과 친구입니까? (Y/N)” 식으로 인간 관계를 단순화 시켜버리는 기존 SN에 비해 loosely-coupled된 유연한 SN이 형성될 수 있다. 처음부터 다양한 플러그인을 지원하고 media-rich한 웹 기반의 통신 수단으로서 Wave는 기존 이메일을 대치하기보다 새로운 실시간 SN의 기반 플랫폼으로서 먼저 받아들여지지 않을까?
한가지 확실한 것은 앞으로 GWT가 널리 사용될 것이라는 점이다. GWT는 기술의 우수성에도 불구, (특히 구글의) 메이저 서비스에 적용된 적이 없기 때문에 완성도나 안정성, 그리고 앞으로 지속적인 개발 여부 등에 대해 확신을 가지기 어려웠는데 이번에 Wave에 적용되면서 그 기능의 극한을 보여줄 수 있었고, 구글이 앞으로도 계속 이를 유지 발전 시킬 것이 확실해졌기 때문이다.

지난 주에 UN의 Battlestar Galactica 팬들이 BSG의 종영을 기념하기 위해 BSG 제작자와 배우들을 UN으로 초청해서 BSG에서 다뤄진, 또 UN에서 항상 다루는 인권과 테러 등의 이슈에 대해 우피 골드버그 주재로 500여명의 청중과 함께 패널 토론을 했다 (관련기사 @ io9, wired). 뒤로 갈수록 너무 신비주의와 종교에 의존하는 점이 맘에 안들기는 했지만 그래도 BSG만큼 여러 이슈를 실감나게 다뤘던 SF도 없었던 것 같고, UN에서 이런 이례적인 행사를 했다는 것이 거의 믿기지 않으면서도 어쩌면 매우 적절했다는 생각도 든다.
패널 토론 전체 비디오 (2시간, 200MB RealVideo 포맷)
아래 YouTube 비디오는 Adama역의 Edward James Olmos가 옆자리의 패널리스트가 “race”라는 단어를 사용하자 흥분해서 “race”가 인종을 구분하는 용도로 사용된 것은 600년전 백인들이 다른 “race”를 구분해서 죽이기 위해 사용한 것이 시초라면서 (사실인지 모르겠음) 이 토론에 참석한 고등학생들에게 race는 “human race” 하나 밖에 없음을 명심하라고 한 후 “So say we all!”을 외치는 장면 (Olmos는 오래전부터 사회, 인종문제에 대해 많은 활동을 해왔다고 함)
500여명의 참석자 중에서 초청된 고등학생은 100명 정도이고 나머지 표는 UN 직원들에게 배포되었는데 배포 시작 후 5분만에 다 매진되었다니 UN에도 BSG 팬이 꽤 있었던 모양이다.
Google의 최신 자료에 따르면 Death Star의 중력 가속도는 3.5303614E-7으로서, 지구의 3.6E-8 배 밖에 안된다. 그런데 공식 자료에 따르면 Death Star는 직경이 120km로서 지구의 0.00942배 정도 된다. 표면 중력은 질량에 비례하고 반지름의 제곱에 반비례하므로 평균 밀도가 같다면 표면 중력은 반지름에 비례한다. Death Star의 평균 밀도가 지구와 같다면 표면 중력은 0.00942 x 9.8 m/sec^2 이 되어야 하지만 Google에 따르면 3.53E-7 밖에 안되므로 Death Star의 평균 밀도는 지구의 3.824E-6 배로서 비중이 2.11E-5 밖에 안된다.
스타워즈를 볼 때마다 그토록 큰 구조물이 어쩌면 저렇게 허술할 수 있을까 궁금했었는데, 이제 그 이유를 알 것 같다. Death Star의 내부는 텅 비어있었던 것이다. 하청업체에서 자재를 빼돌려서 그렇다고 하기엔 너무 밀도가 낮고, 처음부터 설계가 그렇게 된 것이 틀림없다. Death Star보다 훨씬 작은 크기로도 행성을 파괴할 수 있는 1E32 joule 의 수퍼레이저를 만들어낼 수 있었다는 것은 대단한 기술이 아닐 수 없으나 굳이 그렇게 크게 만든 것은 대부분의 제국들이 그렇듯이 통치하에 있는 다른 별들에게 공포감을 불러일으키기 위한 일종의 허풍이었던 모양이다.

Picasa 3.0 beta의 발표와 함께 Picasaweb도 개편되었다. 가장 눈에 띄는 기능은 얼굴 인식. 시험해보니 물론 완벽하진 않지만 생각보다 잘된다 (아직 co.kr 서버에는 이 기능이 없고, picasaweb.com 으로 가서 설정에서 기능을 활성화시켜야 함). 특히 애기 얼굴은 개월수에 따라 꽤 달라지는데도 잘 인식한다. 이름 태깅은 gmail의 주소록과도 연계되어 있고 주소록에 없더라도 e-mail 주소를 입력할 수 있도록 되어 있어서 flickr와 비교할 때 부족했던 social networking 기능을 강화하려는 의도를 엿볼 수 있다.
Google이 자체 브라우저를 만든다는 루머는 꽤 오래 전부터 있었지만, 이제 출시가 임박한 모양이다. 특징은 webkit에 기반한 오픈소스 브라우저이면서 각 탭과 플러그인을 프로세스로 분리하여 안정성과 보안 강화, 새로운 고성능 JavaScript 엔진, 웹기반 app에 최적화된 UI, 보안 강화, Google Gears 내장 등.
#1: 차에서 아이팟으로 음악듣기
#2: 순정AV에 아이팟 연결하기
위의 두번째 방법으로 한동안 차에서 음악을 잘 듣고 있었는데, 얼마전부터 문제가 생겼다. 아이팟이 충전이 되지 않아 배터리가 다 방전되어버리는 것이었다. HomeDock Deluxe의 문제로 판단되었으나, 해외에서 직접 주문하여 하드웨어를 개조한 것이라 AS를 받을 수 없었다. 같은 제품을 다시 구입하긴 싫고, 찾아봐도 유사한 기능의 다른 제품도 없어서 이번엔 다른 방식을 사용해보기로 했다. Criteria는 다음과 같다:
iPod은 동영상을 재생할 때에만 비디오 신호를 출력하기 때문에 HomeDock Deluxe와 같은 제품을 이용하지 않으면 차의 AV 입력 방식에 직접 연결하여 메뉴를 TV 화면을 보면서 브라우징하거나 음악을 재생할 수 없다. 포터블 DivX 플레이어가 바로 이러한 기능을 지원하나 iTunes와 연동되지 않는다는 점이 문제였다. 그동안 모은 음원은 거의 대부분 DRM 없는 MP3 파일이었기 때문에 굳이 iPod이 아니더라도 음원의 재생 자체는 문제가 없었으나, iTunes로 관리하고 있는 메타DB나 플레이리스트를 사용할 수 없으면 음원 관리 방식이 다중화되고 불편해진다.
그래서 꽤 예전부터 생각만 하던 방식을 구현해보기로 했다. 이 방식은 폴더 방식의 플레이어에 MP3 파일을 넣고, 메타DB 방식의 브라우징 메뉴에 해당하는 서브 디렉토리와 M3U 파일을 자동 생성해서 이를 통해 원하는 방식으로 음악을 액세스하는 것이다. 폴더 방식의 MP3 플레이어에서는 한가지 방식으로 폴더를 관리하면 다른 방식으로는 접근할 수 없다. 예를 들어, 아티스트-앨범별로 2레벨의 디렉토리를 만드는 경우 장르나 작곡가, 또는 곡 제목에 의해 접근할 수는 없는 것이다. 그런데 MP3 플레이어가 M3U 파일을 지원하는 경우, 여러 접근 방식에 해당하는 디렉토리를 다 만들어놓고 마지막 레벨의 디렉토리에 실제 MP3 파일이 아니라 MP3 파일을 가리키는 M3U 파일을 만들어 놓는 방법으로, 용량이 큰 MP3 파일을 여러 벌 두지 않으면서 여러 경로에 의해 음악을 액세스하도록 할 수 있다.
iTunes의 라이브러리에 접근하는 것은 어렵지 않다. 윈도우스 버전의 경우, COM API와 XML 파일이 모두 애플에 의해 공식적으로 제공된다. 이를 이용하여 iTunes의 라이브러리 DB를 읽은 후 iPod와 동일하게
All Songs Playlist Artist - Album - Song Album - Song Genre - Artist - Album -Song Composer - Album - Song
의 메뉴 체계에 따르는 디렉토리들을 생성하고, 마지막 레벨의 곡 리스트는 M3U 파일로 만들어내는 것은 간단할 것 같았다. 일단 Python을 사용하여 구현을 시작했다. win32com 덕분에 iTunes COM API를 사용하는 것은 매우 쉽다. 하지만 곧 두가지 문제에 부딪혔다.
첫번째 문제는 Frédéric 을 Fre’de’ric과 같은 식으로 변환하여 DivX 플레이어에 넣기로 했다. 다행히 검색해보니 유사한 코드를 찾을 수 있어서 약간만 수정하여 사용할 수 있었다. 두번째는 하나의 분류 기준(e.g. 아티스트)을 둘 이상의 서브 디렉토리 레벨로 나누는 것으로 해결했다. 내 iTunes 라이브러리에는 현재 127명의 아티스트가 있는데, 이를 한 디렉토리의 서브 디렉토리로 나열하면 예를 들어 Wagner나 Webber는 선택하기 어렵게 되지만아티스트 이름들을 알파벳 순서에 의해 10개 이내의 그룹으로 분류하고, 각 그룹에 해당하는 서브 디렉토리를 만든 후 다시 그 밑으로 아티스트 별 서브 디렉토리를 만드는 것이다.
이런 문제를 일반화시켜 해결하려다보니 생각보다 시간이 많이 걸렸으나, 일단 ver 1.0을 완성했다.
하드웨어로는 DViCO사의 TViX mini 2000 lite를 사용하기로 했다. 리모컨 연장 수신부를 포함, 자동차용 패키지를 제공하고 있고, M3U 파일의 지원 여부를 메뉴얼에서 미리 확인할 수 있었다. 예전에 노트북 HDD를 업그레이드하면서 떼어놓은 2.5″ HDD가 있었기에, 하드 없이 케이스만 있는 제품을 구입하면 되었다.
실제 MP3 파일을 복사하는 것을 제외하면 iTunes 라이브러리를 읽어 메뉴 폴더를 생성하는 데에 1분 남짓 소요되었는데, 좀 더 코드를 최적화할 여지가 있기는 하나 일단 크게 문제될 정도는 아니었다. 앨범 아트를 음원이 있는 디렉토리에 folder.jpg라는 이름으로 저장해두면 해당 음원이 재생될 때 배경화면으로 디스플레이가 되지만 곡 목록의 텍스트가 오버레이되어 지저분해 보여서 앨범 아트의 표시는 포기하기로 했다.
iPod처럼 최상위 메뉴에 전곡을 재생할 수 있는 m3u를 만들었는데, TViX mini 2000 lite의 경우 m3u 파일을 선택하면 목록만 읽어들이는 것이 아니라 목록에서 참조하는 모든 MP3파일을 먼저 확인한 후에야 재생을 시작할 수 있어서 천수백곡 정도의 내 라이브러리의 경우 이에 1분 이상 시간이 지체되었다. 그동안 전체 재생을 shuffle로 듣는 경우가 많았는데, 이런 식으로는 듣기가 어려울 것 같다. 그래도 플레이리스트를 선택한 후 이를 랜덤재생할 수 있는 것은 장점.
아티스트, 앨범, 곡의 수에 따라 각각을 몇 레벨의 서브 디렉토리로 만들고 몇 개씩 grouping을 할 것인지가 쉽지 않은 문제였다. 일단 한 레벨에서 10개 이상의 서브디렉토리가 나오지 않도록 레벨의 수와 레벨 당 평균 서브디렉토리의 수를 결정한 후 가급적 이름이 많이 달라지는 부분에서 그룹이 나뉘도록 하는 알고리즘을 구현했다. 그룹 범위의 표현에서 “—”의 줄을 맞추고 싶었으나 TViX 플레이어가 variable width font를 사용하는 바람에 그렇게 하지 못했다 (물론 각 문자별 폭을 다 확인하면 구현 가능하겠지만…).
예전에 AV 입력에 HomeDock Deluxe를 연결했을 때에도 볼륨을 꽤 많이 올려야 했었는데 TViX의 경우도 그랬다. 아무래도 내 차의 AV 입력이 감도가 낮은 듯 하다. 그래도 차량용 패키지에 포함된 DC-DC 컨버터에 의해 그라운드가 분리된 덕분인지 화이트노이즈나 험은 없었다.
예전에 본사 (미국) 엔지니어를 만났을 때 그럴싸한 문구가 있는 티셔츠를 입고 있길래 어디서 샀냐고 물었더니 ThinkGeek에서 샀다고 해서 부러워했던 적이 있었다. 그 때 봤던 티셔츠 문구는 정확히 기억나지 않으나 ThinkGeek에서 파는 티셔츠는 예를 들면 아래와 같은 것이다 (이 블로그를 읽는 사람이라면 대부분 이해하지 않을런지?)

물론 우리나라로 국제 주문할 수도 있겠지만 티셔츠 한장에 국제 우송료를 부담하면 배보다 배꼽이 클 것이다. 그래서 차라리 커스텀 디자인으로 1벌이라도 주문을 받아주는 곳이 있으려니 하고 찾아봤더니 어렵지 않게 한 곳을 찾을 수 있었다. 마켓프레스라는 곳인데, 동대문 옷가게의 온라인 샵이라기 보다는 웹2.0스러운 사이트이다. 여기서 시험적으로 주문해본 티셔츠:

XL가 105~110이라고 표시되어 있었는데 실제로는 110 정도라서 내겐 좀 컸다는 점 외엔 옷감의 질도 괜찮았고 가격도 우송료 포함해서 19,000원으로 가격 대비 만족도가 높았다.
파워포인트로 디자인한 후 PNG로 업로드했고 터치휠까지 넣어볼까 하다가 배가 강조되어 보일까봐 생략. 타이틀은 애플의 iLife와는 전혀 관계없고 i’s box류의 엉터리 영어 (물론 사진은 거울 앞에서 찍은 후 좌우 반전한 것임).