Author Archives: peremen

imhangul on N810

아무리 maemo-cjk 프로젝트가 있다고 해도 얘네들에 참가하고 있는 한국인이 없기 때문에, maemo-cjk 프로젝트의 결과물인 입력기와 글꼴을 설치한다고 해도 한국 사람이 직접 참여한 리눅스 배포판의 그것과는 비교할 수 없다. 당장 예를 들어 보아도, 한국 사용자들이 존내 싫어해서 fontconfig에서도 퇴출된 백묵 글꼴이 아직까지도 들어 있다. scim이 올라가 있는 것은 뭐 별로 불만이 아니지만, Akademy 때 중국 사람에게 들었던 말 덕분에 scim은 이제 기피 대상 1순위다.

그래서 이제 한글 입력기를 무엇을 설치해야 하는가. 아직까지도 많은 사람들의 사랑을 받고 있는 나비가 있다. 아직까지는 마에모가 GTK 기반이므로 GTK 입력 모듈인 imhangul도 있다. 비록 imhangul은 나비보다 더 관리가 안 된다는 치명적인 점이 있지만. 게다가 새로운 입력기를 만들 때 충분히 도움을 줄 수 있는 libhangul도 등장하였다. 나비를 포팅하려는 시도는 몇 번 해 보았지만, 로케일 문제 때문에 나비가 제대로 붙지 않아서 번번이 포기하였다.

급한 불부터 끄기 위해서 일단 imhangul을 포팅해 보았다. imhangul은 데비안에 들어 있기 때문에 데비안 표준 빌드 순서를 따르면 된다. 데비안 패키지 사이트에 가서 imhangul의 dsc 파일의 URL을 따낸 다음, dget 명령어를 사용하면 알아서 소스를 긁어와서 압축을 풀어 준다. 그리고 fakeroot debian/rules binary 명령을 실행하면 빌드를 하긴 하는데, 아직은 문제가 있다. 데비안 시스템은 im-switch를 사용해서 입력기를 전환하지만 마에모에는 그게 없다. 애시당초 한 가지의 입력 방식만 고려하고 만든 것이다. 그리고 데비안 unstable에 비해서 라이브러리 버전이 낮아서 그냥은 빌드가 되지 않는다. 또한 한국어 로케일에서만 im-switch가 활성화되어 있으므로 모든 로케일에 대해서 다 켜야 한다.

이 문제를 해결하기 위하여 control 파일에서 im-switch에 대한 의존성을 삭제해 주고, configure 파일에서 ko 로케일로 점찍어둔 것을 *로 바꿔야 한다. im-switch를 제거하는 대신 스크립트를 사용하여 gtk.immodules 파일을 직접 업데이트해 줘야 한다. 이 과정에서 hildon을 죽이지 않으면 죽었다 깨어나도 imhangul이 살아나지 않는다. 이 모든 문제를 해결한 다음, 버전 번호를 살짝 올려서 컴파일해 주면 deb 파일이 생긴다.

이제 imhangul을 N810에 올리면 끝난다. 알려진 문제점으로는 MicroB에서 조합 중인 글자를 제대로 표시해 주지 못한다. 그래서 별 수 없이 두벌식을 외우든가, 아니면 조합이 다 끝난 글자를 바라보는 수밖에 없다. 그리고 Hildon IM이 죽으므로, Fn-Lock과 같은 유용한 기능을 쓰지 못하는 치명적인 약점이 있다. 뭐 그래도 일단 한글 입력이 가능하므로 이 불편한 사항은 참을 수 있다.

다음은 내 N810에서 imhangul이 실제로 동작하는 장면이다.

imhangul on N810

imhangul on N810

Akademy 다녀왔습니다

자 지난 14일까지는 벨기에의 Mechelen(메셸렌)에 있었고, 14일 밤 비행기로 프랑크푸르트를 거쳐서 귀국했다. 인천 국제공항에서 대한항공 프랑크푸르트행 비행기를 탄 다음, 프랑크푸르트에서 브뤼셀 항공 브뤼셀행 비행기를 탔다. 대한항공이야 뭐 다들 알고 있으니 생략하고 브뤼셀 항공은 뭔가 좀 색다른 체험이었다. 비행기 자체도 AVRO 사의 RJ 85(100일 수도 있음)라는 상당히 작은 놈을 굴렸다. 이 작은 비행기가 추락하지 않고 제대로 날 수 있을까 좀 걱정도 했지만 다행히도 무사히 도착했다.

INVALID행 비행기

INVALID행 비행기

벨기에에 처음 도착했을 때 브뤼셀 공항에서 철도를 타고 호스텔까지 들어간 다음, 호스텔에서 Akademy 장소까지는 기차로 이동하였다. 첫날 밤 호스텔을 찾기 위해서 구글 맵스에서 캡처해 둔 지도를 폰에 박아 두었는데 실제 길을 보니까 굳이 지도는 필요없을 정도로 가까웠다. KDE와 관련 있는 사람들 아니랄까봐 노트북만 보고도 거기가 호스텔인 줄 다 알았다.

둘째날부터 셋째날까지는 발표의 연속이었다. 올해가 노키아가 트롤텍을 인수한 첫 해이고, 트롤텍과 KDE 커뮤니티 사이에는 엄청 깊은 연관이 있기 때문에 노키아가 KDE를 무시해서 좋을 것도 없었다. 오히려 노키아 입장에서는 KDE 커뮤니티가 자신들을 지지해 주어야만 하는 입장이었다. 노키아에서 파견한 트롤텍의 인사 중 Sebastian Nyström 씨가 KDE와 노키아 사이의 관계를 깊일 수 있는 방법에 대한 의견을 듣는 시간도 있었다.

사용자 삽입 이미지

KDE 개발의 미래에 대해서도 논의할 자리가 있었다. 현재 KDE는 강력한 중앙 집중형 개발 방식을 취하고 있고, playground까지 포함된 모든 하위 프로젝트가 한 SVN 트리 안에 있다. 현재 KDE SVN의 리비전이 90만에 가까이 가는 것도 이것 때문이다. SVN을 사용하는 프로젝트 중 최대 규모라고 자부할 수 있다. 이 정도면 최근 우후죽순처럼 퍼지고 있는 git 같은 분산형 버전 관리 시스템을 도입할 만도 한데, 그렇게 했을 때 위험 부담도 충분히 존재한다. 과거 KDE가 CVS를 사용했을 때 SVN으로 이동하는 것은 쉬웠다. 그러나 SVN에서 git 같은 것으로 이동하는 것은 생각만큼 쉽지 않고, 전환하는 기간도 오래 걸릴 것이다. 그 전환 기간 동안 KDE 개발이 멈추면 손해보는 사람은 우리밖에 없다. 그 외에도 현재의 trunk/branch 개념에 대해서 토의해 볼 자리도 있었다.

사용자 삽입 이미지

첫날 저녁 메셸렌에 있는 유명한 양조장 Het Anker에서 파티를 했다. 벨기에 안에서도 매우 오래 된 양조장이다. 짐을 좀 정리한다고 양조장에는 늦게 도착했지만, 가 보니 공짜 저녁과 제한 없는 음료수가 기다리고 있었다. 나는 아직 한국에서 합법적으로 술을 마실 수 있는 나이도 아니고(!) 술 자체도 별로 좋아하지 않기 때문에, 술 대신 아이스 티나 주스나 마시면서 사람들과 이야기를 나누다 왔다. 무엇보다도 우리 나라에 비해서 긴장할 필요가 없었다는 게 참 좋았다. 서양 사람들이 다 그런가는 모르겠지만, 술 취하는 데 목적을 두기보다는 한참을 이야기하는 데 목적을 두고 있었다. 이야기하고 돌아온 사람의 이름은 기억나지 않지만, 하여간 엄청 피곤하게 떠들다 왔다. 돌아오는 길에 길을 잃어서 메셸렌 시 전체 구경이나 잘 하고 왔다. 나중에 안 사실이지만 메셸렌의 모든 식당에 가면 있는 지역 맥주는 대부분 이 양조장에서 가지고 온다.

사용자 삽입 이미지

내 발표는 KDE 4에 추가된 Transcript에 관한 것이다. 메시지를 번역할 때 한국어 조사와 같이 기존의 gettext 만으로는 할 수 없는 것이 있다. 이를 해결하기 위하여, po 파일 안에 특수한 형태의 함수 호출을 사용하여 자바스크립트와 연동시킬 수 있다. 이것을 이용하여 번역 파일 안에서 %1의 형태로 주어지는 가변 텍스트에 대한 자동 조사 처리를 구현하였고, 자바스크립트를 어떻게 사용했는가에 대해서 발표하였다. 그런데 하필 내가 발표하고 있는 옆에서 지구본 프로그램 Marble에 대한 발표가 열리고 있었고, Transcript 자체도 많이 알려지지 않아서 사람들이 상당히 적게 들으러 왔다. 그러나 KDE 로컬라이제이션을 총지휘하고 있는 Albert Astals Cid 씨나, Plasma를 짜면서 중요한 사람이 된 Aaron Siego 씨 같은 중요한 인물들이 들으러 온 것에 대해서는 좀 위안을 삼고 싶다. 내가 발표했으니 내 카메라에 사진을 담을 수 없어서 생략한다.

내가 발표를 했던 두번째 날은 프로그램과 라이브러리로 주제가 나뉘었고, Zack Rusin 씨의 Gallium3D에 관한 프리젠테이션이 맨 마지막에 잡혀 있었다. 갈륨 3D에 관해서는 얼핏 들어본 것 같기도 하고 저기 저 Zack Rusin 씨도 어디서 많이 본 것 같아서 이 발표를 들으러 가기로 했다. 순수히 점과 선으로 그려져 있는 동영상을 프리젠테이션에 섞어서 발표하면서 이야기를 재밌게 잘 진행해 나갔다. 특히 왜 GPU 처리가 중요해졌는가를 이야기하면서 KDE 4의 Plasma UI를 예로 든 것도 참 시기적절했다. 현재 X.org의 하드웨어 가속 드라이버 구조를 완전히 갈아엎을 수 있기를 희망하며, 이미 텅스텐 그래픽스에서 GPL로 개발하고 있는 인텔 GMA 시리즈를 주축으로 테스트하고 있다고 한다. 별다르게 큰 거는 기억이 안 나지만 이 짤방은 좀… 풉

사용자 삽입 이미지

셋째날, 월요일, Embedded & Mobile Day다. 이 날 선착순으로 등록한 100명에게 노키아 N810을 증정한다는 공고가 있었다. 내가 등록했을 때는 N810이 30대 나가 있었고, 그날 밤 IRC로 참가자 셋에게 모두 알렸다. 다음 날 아침 N810 뿌린다는 메일이 돌았고, 그 날 이후로 다 나가 버렸다. 정말 타이밍은 죽였다. 이 날은 노키아 사람들이 강연을 많이 하였다. N 시리즈의 리눅스 플랫폼 maemo를 소개하는 것은 기본이었고, 노키아가 트롤텍을 먹었다는 것이 확 드러나게끔 마에모 환경 안에서 Qt 프로그램을 어떻게 하는가에 대해서 소개하였다. 현재 노키아에서는 마에모에서 Qt를 사용할 수 있도록 준비하고 있으며 Qt 4.5에서 통합될 예정이라고 한다. 노키아 입장에서는 돌아갈 수 있는 프로그램이 많으면 많을수록 N810을 팔아 먹기 좋을 것이고, KDE 개발자들에게는 공짜 장난감이 생겨서 좋은 자리였다. 자 이쯤 해서 스팍스 홈페이지 인증샷.

사용자 삽입 이미지

화요일과 수요일은 BOF 세션으로 작은 발표들이 열리는 자리였다. 이 날부터 나는 N810을 가지고 놀기 시작하였다. 당장 한국어 입력과 출력을 해결하는 것부터가 과제였는데, 어쨌든 이건 집에 돌아와서 해결하였다. 마지막으로 내 디카에 저장되어 있는 잡사진을 좀 공개한다.

Mechelen-Nekkerspoel 역

Mechelen-Nekkerspoel 역

De Zandpoort 유스호스텔

De Zandpoort 유스호스텔

Nekkerspoel

Nekkerspoel

Akademy!

Akademy!

올해 Akademy는 처음으로 참여하는 것이라서 그랬는지, 아직 분위기 파악도 제대로 하지 못했고 대화의 장으로 통할 수 있다는 것도 몰랐다. 단지 나는 발표 한 번 하고 가면 끝날 줄 알았지만, 발표는 뒷전으로 미루어 두더라도 개발자끼리 친목을 가지는 역할이 더 컸다. 나 또한 발표 자체에서는 별로 인기를 끌지 못했지만, 한국 KDE 팀이 점점 자라나고 있다는 사실을 제대로 알렸고, 다른 나라 개발자들도 많이 만나고 왔다. 역시 한국 하면 삼성과 태권도가 빠질 수 없었고, 동네가 동네인지라 한국 전자제품이 싸다는 사실을 아는 외국인도 많았다. 어쨌든 내년 Akademy 때도 (웬만하면 돈 좀 적게 들이고) 갈 수 있기를 희망한다. 올해 처음 가서 아쉬웠던 점도 좀 보강해서.

보너스. 여기에서 Park Shinjo를 찾아 보쇼. 나름 인증샷.

aKademy 갑니다.

8/8~8/15. Mechelen, Belgium.

Transcript를 사용한 한국어 조사 처리에 대해서 발표하러 간다. 주제가 주제다 보니까 프리젠테이션 만들기도 참 고민이 된다. 한국어 강좌를 통째로 할 수도 없는 노릇이니. 이런 스케일의 장소에 가는 것은 이번이 처음은 아니다. 고등학교 3학년 때 리츠메이칸 사이언스 페어 때에 내 논문을 발표하러 간 이후 두번째다.

생각해 보면 나도 참 복 많이 받았다. 해외에 나가본 것이 이번 포함 총 4번인데, 내 돈을 주고 간 것은 딱 한 번 뿐이라고 기억한다. 고등학교까지는 학교의 그늘 속에서 매우 손쉽게 갈 수 있었지만, KDE e.V.와 연락해서 항공권을 따내는 것은 그것보다는 수 배는 어려웠다고 기억한다.

트롤텍을 노키아가 먹은 후 노키아가 왠지 행사를 잘 지원해 주는 것 같다. N810을 무료로 뿌린다는 떡밥이 뿌려지기 전에 낚은 게 참 다행 같지만, 선착순 100명 안에 들었는가 안 들었는가도 별로 확실하지 않다. 여튼 잘 되겠지 뭐.

그래서 8/8 출국하여 귀국은 일단 8/15일이고, 일상 복귀는 17일이나 18일이 되어야겠네요. 그 동안 백괴사전은 다른 관리자들이 잘 해 주리라 믿고, 이따금씩 사진이나 중계하겠습니다.

I'm going to Akademy

부산 노보텔 앰배서더의 센스

부산 해운대 노보텔 앰배서더 센스

부산 해운대 노보텔 앰배서더 센스

오늘 파라다이스 면세점에 놀러갔다가 바로 그 옆에 붙어 있는 노보텔 앰배서더를 봤다. 꽤나 흥미로운 현수막이 있어서 건물 옆쪽에서 찍어 보았다. 처음에 보고 단순한 미국산 소고기 사용하지 않는다는 말인 줄 알았으나 그 내용을 보고 상당히 피식했다. 문제의 현수막 내용은 다음과 같다.

미국산 소고기! 절대 사용치 않습니다.
(다만 안전하다고 하는 정치꾼들에게는 특별히 미국산 소꼬리, 머리, 곰탕을 진하게 달여드립니다)
고객과 시민 여러분의 건강 주권 찾기에 노동조합이 함께합니다
노보텔 앰배서더 부산 호텔 노동조합

보고 한참을 웃었다. 이걸 걱정해야 하나 말아야 하나. 특히 중간에 안전하다고 하는 정치꾼 부분에서는 그 누구도 저걸 보면서 웃을 수도 진지할 수도 없게 만들어둔 것 같다. 지금까지 내가 봤던 미국산 소고기를 사용하지 않는다고 했던 포스터 중 가장 눈에 띄는 것이었다.

요즘 소고기 요리가 들어가는 곳에는 너도나도 미국산 소고기를 사용하지 않겠다는 현수막이 걸려 있다. 정부가 솔직히 캐삽질을 하는 건 맞지만, 그 캐삽질 때문에 저런 현수막까지 걸어야 하는 걸 보면 이메가가 정말 밥솥이 맞는 것 같다.

생쇼

Urwid 라이브러리를 사용해서 아라라 프로젝트의 텔넷 클라이언트를 짜고 있던 때였다. 상자를 그리기 위해서 Urwid의 SolidFill, LineBox 클래스를 사용해서 유니코드에 할당되어 있는 선 문자를 사용하였고, 선을 그리기 위해서도 같은 문자를 사용하였다. 문제는 거기에서부터 시작되었다. 아라라의 요구 조건 중 하나인 윈도 텔넷 클라이언트에도 실행되어야 한다는 조건 때문에 EUC-KR 로케일에서 작동시켰어야 했고, LANG 환경 변수를 적당히 주어서 실행시키니 에러가 났다.

Urwid 메일링 리스트에 이 에러를 보내 보았더니 쓰고 있는 터미널 종류가 무엇인지 물어 보았다. 그래서 왠지 터미널 문제일 줄 알고 Urwid 메일링에는 터미널 버그라는 사실을 보고했다. 진짜 터미널 버그인지 확인하기 위해서 Yakuake와 Konsole에서 각각 프로그램을 실행시켜 보았다.

사용자 삽입 이미지

내 시스템에 깔려 있는 터미널 에뮬레이터는 KDE 3/4의 Konsole, Yakuake이다. 그래서 KDE 4의 Konsole에서 실행시켜 보았더니 제대로 된다. 이제는 버그 보고할 곳을 Yakuake 버그 보고 시스템으로 돌렸다. 결국 버그 리포트도 하나 질렀다.

보시다시피 그 어느 누가 낚이지 않았을까. 어 그런데… Yakuake의 인코딩 설정을 바꾸고 다시 실행해 봤더니 이제는 제대로 되었다. 뭐가 문제였나 곰곰히 생각해 봤더니… 문제의 원인은 이도 저도 그도 아니었다.

screen, 그래 screen이 문제였다. 인코딩을 바꿔 주기 귀찮아서 screen을 썼더니만 이런 문제가 생겼다. Ctrl-A :을 한 다음 encoding euckr만 하면 될 정도로 간단했기 때문에 이것이 버그의 원인이 될 줄은 꿈에도 몰랐다. 자 이제 screen에 버그를 보고하러 갈 차례인 것 같다. 막상 screen 버그란 걸 알고 나서 너무나도 허무했다. 이 문제 때문에 거의 1주일간 머리를 싸맸다는 것을 생각하면 더더욱 그렇다.