Category Archives: 프로젝트

가속기 문제

내가 생각하는 번역 작업에서 가장 큰 문제는 가장 큰 문제는 가속기이다. 대부분의 영어로 된 프로그램들은 가속기를 표시할 때 Browse와 같이 문맥 안에 가속기가 자연스럽게 들어간다. 러시아어 같은 알파벳 기반 언어들에서는 Справка와 같이 자국어 알파벳에 그냥 가속기를 먹여 버린다. 그러나 한국어에서는 파일(F)와 같이 따로 괄호 안에 가속기 키를 표시한다. 과거 윈도 3.1에서는 가속기를 통째로 한글로 바꿀 수 있게 했던 설정이 있었으나, 그다지 유용하지는 않았다고 기억한다.

그리고 많은 GUI 라이브러리들에서는 가속기 키를 선택적으로 보이거나 보이지 않게 할 수 있는데, 문제는 여기서부터 발생한다. 내가 과거에 VirtualBox에 제보했던 버그처럼 이 사실을 모르는 프로그램 개발자들이 실수를 한다는 것이다. VirtualBox의 경우에는 가속기 키를 제거하면서 (&[a-zA-z]) 형식의 문자열을 일단 발견한 다음, 그런 문자열이 있으면 통째로 제거하고 없으면 그냥 &만 제거한다. 그래서 현재 VirtualBox에는 그 부분이 패치되어 있다. 하지만 많은 프로그램은 이 사실을 모르고 있다.

또한 한국어 문자열의 가속기 키 관습이 다른 언어와는 너무 다르기 때문에 이런 문제도 발생한다. 가령 Adept(쿠분투의 패키지 관리자)의 경우, 이게 모두 영문으로 되어 있어서 저렇게 놔두어도 되지만, 다른 한국어 문자열들과 어울리지 않는다. 그래서 Adept(A)라고도 할 수 있지만, 또 이런 경우에는 어색하다. 영문 텍스트다워 보이지 않기 때문이다.

한국어가 풀어쓰기를 도입하지 않는 한 가속기 키 문제는 계속될 것이고 번역자들은 상황에 맞게 대처하기 위해서 골치가 아플 것이다. KDE 4에도 이런 걸 신경써야 할 것이 많이 남아 있으니 어떡한담.

qperiki – periki의 GUI 껍데기

qperiki

작년에 잠깐 sqlite 기반으로 짜다가 내팽겨친 periki의 GUI 버전 qperiki이다. 한 때 데스크탑에 웹 서버를 깔아서 위키를 썼다가 그게 귀찮아서 데스크탑 전용 위키로 탄생하고 있는 periki이다. 크게 libperiki와 이것들의 GUI 프론트엔드로 이루어진다. 이 qperiki는 libperiki를 위해서 처음으로 탄생한 프론트엔드이다.

하는 일은 아직 없다. 만들어진 문서를 읽어만 올 수 있는 정도이다. 멋지게 만들기 위한 CSS나 다양한 삽질은 차차 해야지 뭐…

libw2100 – 어이없는 오류

이 글 이후로 중단되었던 libw2100 소스 코드를 뒤져보다가, 왜 안 되는지 알아냈다. HSP 프로토콜의 문자열을 디코드하는 부분에서, 배열의 길이를 구하는 문제가 있었다. char * 형태의 배열 포인터만 하나 던져 두었는데, 문제는 이것만 가지고 배열의 길이를 알 수 없다는 데 있었다. 그래서 황급하게 배열 인자로 길이를 받도록 했더니, 이제는 HSP 문자열 디코딩 루틴이 잘 작동한다.

그리고 왜 USB 패킷을 가져오지 못하나 했더니… 입력 버퍼가 너무 짧았다. 길이 6만 주고 6 이상의 데이터가 들어오니깐 libusb가 폭주하는 것 같았다. 그래서인지, 입력 데이터를 제대로 읽어오지 못하고 헛물만 켜고 있었다. 입력 버퍼의 길이를 다시 1000으로 잡아 주니깐 이제서야 데이터를 읽어 왔다. 휴우.

이 어이없는 실수 때문에 프로젝트가 사실상 중단되어 있었는데, 이제서야 뭔가 다시 볼 여유가 생기는 것 같다. 자 이제 전화번호부 가져오기로 궈궈.

W2100 Hacks – Part 3

libw2100의 소스 코드 중 극히 일부인 전화번호부 빼내오기 소스입니다. 그런데, 지금부터는 XML 라이브러리를 사용해서 SyncML을 다루어야 합니다. 그렇지만 지금 제 목적에 적합한 XML 파서가 없기 때문에 별 수 없이 조그마한 XML 파서를 사용해야겠네요. 삼성의 엔지니어들이 과연 어떤 XML 파서를 사용했는지는 strings, objdump 명령으로도 알 듯 말 듯한 일입니다.
libw2100 소스의 일부분
ps. 경희누나 생일 축하.

W2100 Hacks – Part 2

ㄹㄹ ㄹ ㄹㄹㄹ ㄹㄹㄹㄹㄹ ㄹ ㄹㄹㄹㄹㄹㄹ ㄹㄹㄹㄹㄹ ㄹㄹ ㄹㄹㄹㄹㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹㄹㄹ ㄹ ㄹㄹㄹㄹㄹㄹㄹ! ㄹㄹㄹㄹㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹ ㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹㄹㄹㄹㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹ. ㄹㄹ ㄹㄹㄹ ㄹ ㄹㄹㄹㄹ ㄹㄹ ㄹㄹㄹㄹ, ㄹㄹㄹ ㄹㄹ ㄹㄹㄹㄹ ㄹㄹㄹㄹㄹ.
W2100 in Linux


[#M_해석 보기|해석 접기| 며칠 전 드디어 리눅스에저 제 W2100을 연결시켜서 PC Manager 모드로 진입시키는 데 성공하였습니다! 전화번호부를 빼내오기 위해서 다른 명령어와 XML 기반으로 되어있는 SyncML이라는 동기화 마크업 언어와 몇가지 추가적 명령어를 알아내야 합니다. 성공 사진은 제 플리커에 올려 두었으나, 편의를 위해 여기에도 올려둡니다._M#]