2006년 12월 25일 월요일
자막 편집과 음성 신호 처리
인간의 음성은 300Hz에서 3500Hz정도이므로 동영상 클립에서 대사가 나오는 부분이 어디인지를 자동으로 찾을 수 있다. 자막 작업을 실제로 어떻게 하는지는 모르겠지만, 이걸 이용하면 좀 더 효율적인 자막 작업이 가능하지 않을까? 보통 동영상의 자막은 말이 시작되는 시점에 나타났다가 말이 끝나고 일정시간 뒤에 사라지기 때문에 자막의 시작/끝 타이밍 조절처럼 번역 자체와는 별개의 작업들을 상당부분 자동화할 수 있다. 번역하면서 반복해서 듣고 싶을 때도 음성이 검색된 부분 기준으로 다시 들으면 된다.
GStreamer를 이용하면 간단히 proof-of-concept가 가능하다. spectrum element를 이용해 오디오의 대역 정보를 뽑아내다가 음성 대역이 발생하는 지점부터 끝나는 지점까지 구간 추출. (그런데 귀찮아....)
2006년 12월 19일 화요일
온라인 부동산 정보의 신뢰성
요 사이에 부동산 정보를 찾아볼 일이 생기면서 꺠달은 사실이, 자세히 관찰해 보면 대부분의 매물의 (물론 매물이 존재하지도 않고 가격대까지 실제와는 많은 차이가 있다) 등록 날짜가 당일이라는 걸 알 수 있다. 주말이나 휴일을 막론하고 항상 같은 게시물이 한꺼번에 등록된다. 일선업소에서 검색 순위를 높이기 위해 매일같이 같은 매물을 다시 등록하고 있는 것이다.
일선 중개업자들은 인터넷을 단순히 고객을 "낚기 위한" 수단으로 생각할 지도 모르겠다. 하지만 인터넷이 그 광고용으로라도 제 기능을 발휘하려면 사용자에게 신뢰를 주어 다양한 거래 물건을 공정하게 비교할 수 있어야 한다. 불과 3-4년 사이에도 이렇게 상황이 안 좋아졌는데 갈 수록 신뢰를 잃게 될 것이다.
이 상황이 개선될 만한 생각할 수 있는 방법은:
- 업체들 스스로의 자정 활동
- 허위광고에 대한 단속, 규제
- 정직한 방법으로 성공하는 온라인 부동산 업체의 출현
2006년 12월 16일 토요일
Pango 한글 렌더링
-------------------
요즘 Pango 1.15.x 개발버전이 한창 진행되고 있고 해서, 한글 렌더링 모듈을 좀 손대려고 합니다.. 발전적인 의견 있으면 주세요.
여담이지만 Pango의 한글 렌더링 모듈의 장기적인 발전 방향은, 아이러니하게도 글꼴이 다 알아서 하고 전용 모듈이 사라지는 것입니다. 현재까지는 (사실상 특수한 문서를 작성하지 않는한 사용하지 않는) 첫가끗이나 방점 등 렌더링 모듈이 일부러 신경을 써야 하는 기능들을 지원하는 글꼴은 소수입니다. 아마도 그런 글꼴이 널리 쓰이게 될때까지는 한글 모듈은 과도기적으로 그 글꼴을 구분하고 기능 조절을 하는 역할을 해야 할 것입니다.
어쨌든, 현재로선 거기까진 무리이고, 몇가지 최적화정도만 해야 겠네요:
1. 한글음절을 일부러 초/중/종으로 나눴다가 다시 합치는 동작 제거 - 일반화하기 위해 이렇게 했었지만, 일단 한글음절일 경우에 CPU 낭비인 데다가, 첫가끗으로 구성되어 있는 경우에도 나눠져 있는 걸 다시 합치면서 글꼴이 가진 능력을 활용하지 못하는 경우가 있습니다.
2. 동적 버퍼 제거 - L+V+T*M 이렇게 이론상 길이가 n인 1개 음절이 될 수 있기 때문에 realloc을 하는 버퍼를 두었는데 만들 때부터 신경쓰이는 부분이었습니다. 가능하면 버퍼없이 utf8 string에서 ucs4로 변환하지 않고 처리하도록 해 보지요. :D
3. 그리고 안에 감춰져 있지만, pango_string_set_size()로 야금야금 크기를 늘려나가는 것도 내부적으로는 끊임없는 realloc()을 수행하게 해서 속도 저하 요인이 되는데요. 결과 글리프의 개수를 쉽게 알아낼 수 있을 것도 같은데, 이 부분은 좀 생각해 봐야 겠구요...
자, 여기까지 읽어보시고 "아! 내 그놈 데스크탑의 속도가 빨라지겠구나"라고 생각하신다면 그건 아니구요. 텍스트 렌더링의 대부분의 로드는 래스터라이징 자체와 래스터된 결과 데이터를 옮기는 데 있습니다. Pango 한글 모듈이 하는 일이라곤 유니코드 스트링을 보고 글꼴에서 어떤 글리프를 사용할까를 선택하는 정도이기 때문에 전체 텍스트 렌더링은 큰 향상을 기대하기 어려울 겁니다. 그냥 개발자의 결벽증인듯?
4. 2/3은 사실 그렇게 최적화 결벽증이고.. 일단 1정도만 하고 슬슬 글꼴을 구분하는 능력을 부여할 수 있습니다. 렌더링 모듈에서 어떤 기능이 있냐 없냐를 테스트하는 건 확실하지 않지만 안 될 것 같고.. 글꼴 이름으로 구분해서 앞에서 말씀드린 과도기적 역할을 할 수는 있죠.
방점은 알아서 해 주는 글꼴을 본 적이 없고.. 일단 첫가끗이 되냐 안되냐로 구분해서 음절을 자체적으로 합치려고 시도하느냐 아니냐를 결정할 수 있겠죠. (그런데 한글음절로 표현할 수 있는데 일부러 첫가끗코드로 쓰는 그런 경우가 제가 테스트할 때 빼고 있는지 모르겠습니다. :-)
2006년 12월 14일 목요일
리눅스에 여성 참여를 장려하는 하우투
이 중에서 특히 리눅스를 기피하는 이유를 인용하면:
간단하게는 IRC에서 여성에게 남자친구에 대해 질문을 한다던지, 생각없이 내뱉는 말이나 여러가지 가정들이 여성에게는 그 커뮤니티를 기피하는 원인이 된다.Linux development is more competitive and fierce than most areas of programming. Often, the only reward (or the major reward) for writing code is status and the approval of your peers. Far more often, the "reward" is a scathing flame, or worse yet, no response at all. Since women are socialized to not be competitive and avoid conflict, and since they have low self-confidence to begin with, Linux and open source in general are even more difficult than most areas of computing for women to get and stay involved in.
(대충 의역) 리눅스 개발은 프로그래밍의 다른 분야보다도 더 충돌이 심하고 험합니다. 어떤 경우 코드를 작성해서 얻는 보상이라곤 어떤 지위를 갖거나 상대방로부터 허락받는 것일 뿐일 수도 있습니다. 심지어는 그 "보상"이라는 게 비난에 가까운 플레임일 수도 있고 더 나쁜 경우는 아예 아무런 반응이 없을 수도 있습니다. 여성들은 사회화되면서 다른 사람과 충돌을 피하고 조화롭게 지내도록 훈련받습니다. 또 그런 충돌을 시작할 만한 자신감이 부족합니다. 그래서 리눅스와 일반적인 오픈소스 분야는 다른 분야의 컴퓨팅보다도 훨씬 더 여성의 참여가 어렵고 참여를 계속하기도 어렵습니다.
지난 12월 3일에 있었던 오픈소스 뛰어들기 행사에서는 특이하게도 참석자에 대해 여성 쿼터제가 있었지만, 결과적으로 15명이었던 쿼터 수를 줄이고 했지만 실제 참석 인원은 그에 미치지 못했다. 혹시 기피 요인들이 있었을까? (물론 의도한 건 아니지만) 여성 강사가 없다든지, 주제나 형식이 부담스러웠을 수도 있고, 새로운 사람이 들어가기 어려웠었을 수도 있었을 것이다.
2006년 12월 9일 토요일
WoC 2006: 기대와 걱정
이번에 열릴 Winter of Code는 기대를 갖게 한다. 적어도 개인에게 보상이 지급되고 좀 더 제대로 된 심사를 거칠 수 있을 것 같다. (역으로 별로 많은 보상금이 아니기 때문에 엉터리 주제가 더 적을지도?) 하지만 괜히 높은 눈높이와 기대때문에 WoC 2006에 대해 걱정스러운 의견을 말해 보자면...
첫쨰로 프로젝트의 범위가 너무 제한되고 편향될 수가 있다.
학생이 프로젝트를 제안할 수 있다지만.. 일단 기업은 기업이 필요해서 제안한 프로젝트를 우선 선정할 수밖에 없을 것이다. 커뮤니티의 경우에도 학생이 제안한 프로젝트를 수용할 만한 오픈소스 개발 커뮤니티가 마땅히 없고, 제안받은 프로젝트에 대해 멘토를 선정하고 검토하기에도 사람이 별로 없을 것 같고, 있다고 해도 준비시간이 많이 부족하다. (게다가 SoC와는 달리 단체에 대한 지원이 없다. SoC도 500 USD밖에 안 되긴 하지만..) 결국 학생이 제안한 프로젝트보다는 기업이 필요로 하는 프로젝트를 학생이 수행하는 방향으로 흘러가지 않을까? 실제 수행되는 프로젝트는 현재 제안되어 있는 프로젝트에서 크게 벗어나지 않을 것으로 보인다.
게다가 현재까지 올라온 프로젝트들은 웹 서비스 관련 소프트웨어에 너무 편향되어 있다 (게다가 평범한 학생들의 실력으로는 기간내에 끝내기 어려운 난이도로 보인다. 심지어 WoC 소개 문구에도 "만들어낸 결과물은 실제 서비스에 적용되는 기회를 얻게 되며..."라고 쓰여 있다. 사실 웹은 중립적이라서.. 프로젝트를 오픈소스 세계(?)에서 해 보려는 생각이 없는 학생도 얼마든지 상금을 타기 위해 참가할 수 있는 것 아닐까.
둘째로 취지에 맞게 참가 학생이 오픈소스에 참가할 수 있는 기회가 될 지 걱정이다.
학생이 2개월이 좀 넘는 기간에 익힐 수 있는 기술적인 내용은 어차피 한정되어 있다. SoC가 학생들에게 주는 가장 큰 영향은 프로젝트를 하는 과정에 있다고 생각하고 기술적인 것보다 훨씬 큰 부분이다. 그냥 프로젝트를 제안하고 멘토와 메일만 교환하면서 마감에 맞춰 끝내기만 하는 게 아니라, 기존에 진행중인 프로젝트에 참여해서 계속해서 공개적인 커뮤니케이션을 하고 중간에 결과를 내놓아서 피드백을 받고 하는 과정이 더 중요하다. 그리고 그 과정 자체가 상당히 재미있기 때문에 의욕을 불러일으킨다! (SoC에서도 참가자가 그런 과정을 무시해서 안 좋은 평가를 받는 경우가 있었지만..)
하지만 애초에 국내에서 그런 커뮤니케이션의 재미를 느낄 만큼 활발하고 규모있는 개발 커뮤니티가 전무하기 때문에 (물론 행사 기획의 문제가 아니라 현실의 문제라서 딱히 해결책도 없지만) 그 분위기를 느낄 기회가 없을 걸로 보인다. 게다가 앞에서 얘기한 것처럼 기업이 제안한 프로젝트 중심으로 흘러갈 것 같아서 더욱 오픈소스같지 않게 진행될 것만 같다. 멘토의 진행 방식에 따라 얼마든지 달라질 수 있는 부분이긴 하지만 걱정스럽다.
첫 술에 배부를 순 없겠지만, 이 행사에 기대하는 사람이 많은 만큼 더 바람직한 방향으로 진행되었으면 좋겠다. 어떤 사람들은 미숙한 학생들보단 지식을 갖춘 개발자에게 실질적 성과를 달성하도록 하는 게 낫지 않느냐고도 하지만, 나는 미숙하고 성과가 없더라도 학생들을 대상으로 하는 일이 중요하다고 생각한다. 동서를 막론하고 오픈소스 개발자가 탄생하기에 좋은 사람, 환경, 시간적 여유를 갖춘 곳이 바로 대학이지만, 국내 대학들은 담당 교육자들이 경험했던 환경이 그래서인지 취업위주의 교육이라서 그런지 PC 환경 위주로 편향되어 있다. (그렇지 않다고 생각했던 모교에서도 그 멋진 엑스터미널들이 사라지지고 윈도우 PC가 차지했다는 이야기를 들어서 몹시 서운. ) 정책적인 이유든 오픈소스의 실질적인 수요가 있는 경우든 학교에 피드백을 줘서 지속적으로 개발자가 나오게 만들 필요는 있다.
새 블로그 - Free / Open Source Software - Tech / Policy / Story
새로 티스토리 오픈베타에 맞춰서 만들어진 이 웹로그 페이지는, 지난번 로그와는 달리 짧더라도 생각할 필요가 있는 주제, 하루하루의 이벤트보다는 레퍼런스가 될 만한 내용, 재미를 느껴 볼만한 내용으로 채워보고자 한다. (글 쓰는 버릇이 좀 시니컬하지만 :P)