2002년, 월드컵으로 전국이 들썩대던 그 해 봄, 인라인을 처음으로 타기 시작했다. 그 후 꽤나 오랫동안 인라인을 탔었는데, 다치기도 많이 다쳤었던 것 같다. 그러다 점차 흥미를 잃어서 지금은 집안의 잡동사니 무더기 아래 파묻힌 먼지쌓은 인라인 한쌍과 그 때의 사진들만 남아 있는 상태이다.
얼마 전, 직장 동료 중 한 분이 해외로 더 나은 일을 찾아 가시면서 자신의 인라인 한 쌍을 두고 가셨다. 하이프노 남성용.
사무실의 어린 (어리다고 해도 20대 후반) 직원 하나가 낼름 자기가 쓰겠다고 그 인라인을 가져가도록 내가 꼬셨다. 아무래도 책상 위에 덩그러니 방치되어 있는 인라인을 보니 눈에 거슬렸고, 버리자니 아깝고 해서 말이다.
내가 꼬신 죄도 있고, 황금같은 주말을 항상 집에서 잠을 자거나 사무실에서 일하는 것으로만 보낼 수 없다는 생각도 들고 해서 그분과 주말에 같이 인라인을 타러 가자는 약속을 잡았다. 남자 둘만 가자니 조금 그렇고 해서 서너명의 동료도 섭외해서 함께 타러 가기로 했다.
한국인의 벌떼 근성(?)을 정말 잘 보여주던 2002, 2003년도의 인라인 열풍이 다 사그라진 지금, 여의도 공원을 가니 참으로 한산하고 조용해서 기분이 좋았다. 그때 당시에는 사람들이 너무나 붐벼서 운동을 하기는 커녕 불쾌한 기분만 들었었는데 말이다.
한산한 여의도 공원 광장
격세지감이 든다고 해야 할까나, 아무튼, 좋았었다. 토요일 오전에 게으르게 방 안에서 자고 있는 대신 바깥에 나와서 활동을 하고 있다는 사실 자체로 기분이 좋았다.
hj 님이 js 님을 가르치다
hj 님이 도착하기 전에 js 님과 오랜만에 한강엘 나갔다 왔다. 확실히 체력이 많이 약해져서, 당산철교던가.. 까지 갔다 오려니 힘들었다.
1. 타이핑하는 데 한쪽 손만 집중적으로 사용할 일이 없다. 그래서 물흐르듯 편안한 타이핑이 가능하다.
그러나 위 사실이 양날의 검이 될 줄이야...
우선, ctrl-c, ctrl-v, ctrl-x 등을 하려고 할 때 자판이 분산되어 있는 관계로 예전처럼 오른손에 마우스를 쥐고 왼손만으로 위 의 키 시퀀스를 누르는 것이 불가능해 졌다. c 는 오른손 약지로, v 도 오른손 약지, x 는 왼손 집게손가락으로 눌려야 하는 것이다. 즉, 마우스를 쥐고 있던 오른손이 움직여서 키보드로 와야 한다는 것을 의미한다.
유닉스 명령어들이 qwerty 를 사용할 때에는 몰랐지만, dvorak 을 쓰고 보니 qwerty 에서 사용하기 쉽게끔 만들어진 것 같다는 심증.
일례로, 가장 많이 쓰는 명령어 중 하나인 ls. 이거.. 드보락 자판에서는 오른손 새끼손가락만으로 타이핑 해야 한다. 엎친데 덮친 격으로 ls -la 를 입력하려고 하면 오른손 새끼손가락만 연속으로 네번을 움직여야 한다.
cat 파일네임 을 입력하려고 할 경우, 보통 cat 를 치고 파일이름은 X 의 clipboard 를 사용해서 마우스 오른쪽 버튼을 눌러서 입력하는 경우가 많은데, cat 를 입력하기 위해서 두 손이 모두 자판 위에 올라가야 한다. 즉, 마우스를 쥐고 있던 오른손이 다시 자판으로 왔다가 가야 한다는 사실.
코딩을 많이 하는데, {, }, [, ], 가 모두 오른손 새끼손가락 저편으로 "더 멀리" 올라가 버려서 상당히 입력하기가 어려워졌다.
그리고, vim 의 명령어들의 위치가 바뀌어버린다. 물론 바뀐 명령어의 위치야 적응하면 되겠지만, 한손으로도 편안하게 입력하던 명령어들의 시퀀스가 양손을 모두 이용해야 하는 것으로 바뀌었다는 것. 그래서 평소엔 오른손은 마우스를 잡고, 왼손은 vim 명령어를 입력하는데, 역시나, 마우스를 쥐고 있던 오른손이 자판으로 달려와야 하는 경우가 많이 발생한다는 것.
대략 위와 같은 이유와,
프로젝트의 일정이 매우 빠듯한데, 생산성을 매우 크게 떨어뜨린다는 심리적 압박감으로 인해 다시 쿼티로 돌아왔다.
사무실에서 함께 일하는 존경하는 프로그래머 한 분이 나 때문에 드보락으로 갔다가 나만 빠져 나왔다고 거의 삐짐모드가 되어 버리셨다. ㅋㅋㅋ
이왕 드보락 자판 배열을 사용하기로 한 만큼, 키보드 자판 배열도 그에 맞게 드보락으로 바꾸기로 마음먹었다.
내가 사용하는 키보드는 애플의 알루미늄 키보드이다.
키보드가 예쁜 데다가 타이핑시 소음도 적고, 타이핑 감도 매우 쫀득쫀득한 것이 적절한 반발력도 있어서 타이핑이 매우 기분좋다. 그래서 매킨토시는 구입하지 못해도 키보드는 이것으로 구매해서 사용하고 있다.
자판 배열을 Dvorak 으로 바꾸기 위해서 키캡을 분해해서 빼 내어야 하는데, 이거, 함부로 하면 비싼 키보드님 다치신다 -_-
요령은 다음과 같다.
우선, 아래 사진처럼 날카로운 것을 이용해서 키캡의 윗쪽 모서리를 살짝 들어 올려서 손가락으로 집을 수 있도록 공간을 만든다.
그런 후, 아래 그림처럼 대각선 아래의 모서리를 누르고, 방금 들어올린 윗쪽 모서리를 잡고서 가볍게 "똑" 소리가 날 때까지 들어올린다. 그리고, 또 그 반대쪽 아래의 모서리를 누르고 방금 들어올린 윗쪽의 반대쪽 모서리를 잡고 "똑" 소리가 날 때까지 들어올린 후 조심스레 들어내면 된다.
주의할 것은 만약 아래쪽부터 들어내려고 시도하면 키캡을 망가뜨리게 된다는 사실인데, 왜냐하면 내부 구조가 아래 사진과 같이 생겼기 때문이다. 아랫쪽 첫번째 사진의 커터 칼이 들어가 있는 부분에 약간 튀어나온 녀석이 아래 사진의 홈 안쪽의 구멍에 쏙 들어가서 끼워져 있기 때문에 아랫 부분을 억지로 들어올리게 되면 둘 중 하나가 깨어지게 된다. 절대 주의!
그리고 결정적인 예외상황이 한가지 존재하는데, return 키 바로 위에 위치하는 \ 키 (백슬래쉬 키) 의 경우에는 무슨 이유에서인지 모르지만, 아래의 첫번째 사진에서 볼 수 있는 X 자 모양의 구조가 90도 회전한 상태로 되어 있어서 다른 키 처럼 윗쪽 면 부터 들어올려서 빼려고 하다가는 비싼 키보드 망치는 수가 있다. (( 사무실의 sh* 님이 백슬래쉬 키를 윗쪽 면 부터 들어올려서 억지로 뺐는데, 다행히도 아래에서 보이는 작은 hindge 가 부러지지는 않았다. 이 분이 찾은 분해법이 나와 있는 사이트에 들어가니 누군가 답글로 백슬래쉬 키는 방향이 90도 돌려져 있다고 달아 두었었는데, 못보고 지나치셨던 모양이다 ㅋㅋㅋ
이렇게 분해를 모두 마친 모습이다 :
이제, 원하는 Dvorak 자판으로 배열해서 끼우기만 하면 된다. 조립은 분해의 역순. 아랫쪽의 홈부터 살짹 맞춰준 후 꾹 눌러 주시면 딸깍 하는 소리 두번과 함께 잘 들어간다.
Dvorak 배열 키보드로 변신한 내 Apple Aluminium Keyboard. ㅎㅎㅎ
이렇게 드보락으로 바꿔 놓고 나니 문제가, 그것도 매우 큰 문제가 하나 생겼다.
양손 집게손가락을 올려놓을 Home Row 에 기준이 되는 표시로 톡 튀어나온 녀석이 (ㄹ 과 ㅓ 위치) 엉뚱한 자리로 가 버렸다는 것인데, 아무래도 스카치 테잎을 몇장 겹쳐서 기준 자리에 붙여 두든지, 밀랍을 녹여서 약간 톡 튀어나오도록 하든지 대책을 강구해야 겠다. 이도저도 마음에 안들면 다시 키 배치를 QWERTY 로 원복해 두는 수밖에 없겠지만...
끝으로 IXUS 80IS 로 찍은 내 방의 조화-_- 사진 하나 올려 본다. ISO 100 무보정
오전에 시스템 리부팅을 했는데,
gdm 로그인 화면에서 자판이 qwerty 로 되어 있는 것이었다!! ㅠ_ㅠ
패스워드를 한글 단어에 매핑해 놓고 있는지라 영자판이 dvorak 일 때와 qwerty 일 때 패스워드가 달라지게 되는 것이다. 간신히 종이에 패스워드를 적어 가면서 로그인 성공.
혹시 콘솔에서도 그럴까 하는 생각에 콘솔로 전환해 보았다. 아니나 다를까 qwerty 였다.
위의 두 가지 문제를 해결하는 방법.
1. /etc/X11/xorg.conf 에 아래와 같이 XkbLayout 를 dvorak 으로 설정해 주면 gdm 로그인 화면 문제 해결.
위의 것들 중, 주황색으로 표시된 것들은 왼손으로 누르는 자판들이다.
어림짐작으로 80% 가량의 자판을 왼손으로 누르게 되어 있다.
오른손과 번갈아 가면서 누르는 것이 아니라 왼손만 줄기차게 연속으로 움직여야 한다.
그것도 손목에 무리가 많이 가는 새끼손가락, 약지, 중지의 비율이 상당하다.
4일동안 저런 코드만 엄청난 양을 타이핑한 결과 왼손의 손목, 팔꿈치, 심지어 어깨와 왼쪽 대흉근까지 결리는 현상이 생겼다. 은근히 기분나쁘게 아픈 통증이 생긴 것이다.
이러한 이유로 인해 급작스럽게 qwerty 가 아닌 dvorak 자판을 써 보기로 마음먹고 자판 배열을 바꾸었다.
동일한 단어(?)들이 dvorak 배열에서는 다음과 같다 : (주황색은 왼손임)
얼핏 보기만 하여도 색깔이 골고루 섞여 있다는 것을 알 수 있다. 게다가 자세히 보면 같은 손가락을 두번 이상 사용하는 경우도 매우 적음을 알 수 있다.
문제는 vim 의 키 바인딩이었는데, 이것만 극복하고 익숙해지면 괜찮을 듯 하다. 그렇지만, 손가락을 움직이는 근육에 각인된 키 시퀀스의 기억을 바꾸는 데에는 상당한 노력이 필요할 듯 하다. 새로운 기억을 각인시켜야지 어쩌겠누...
직업상 한글 자판보다 영문 자판을 많이 사용해야 하는데, 자판 배열을 바꾼 것이 육체적으로 좀 도움이 되길 기대한다.
Dvorak Simplified Keyboard Layout
웃기는 문제가 하나 있는데, 한글 입력 모드 두벌식에서는 [ ] ' " / . , < > 등이 qwerty 와 동일하지만, 영문모드에서는 이것들이 위치가 바뀌는 것이다. 익숙해지면 괜찮으리라 생각한다.
좀 있다가 한글 자판도 세벌식으로 바꿀까 생각중이다.
위키피디아의 QWERTY 항목에서는 대안 키보드 배치들 중 하나로 Dvorak 을 소개하면서 설명하는 글이다.
확실히 더 빠른지 혹은 더 효율적이고 편안한지에 대한 "학술적" 연구 결과는 없지만, 사용자들이 느끼는 편안함에 대한 "정성적" 차이는 있다고 한다. 그렇지만 이 조차도 이 배열을 만든 사람인 Dvorak 에 의해 조작된 심리적 믿음(?) -- myth -- 일지도 모른다고 설명하고 있다.
그러나 타이핑 세계기록 보유자가 이 자판을 사용한다는 이야기도 있으니 뭔가 있기는 있는 모양.
위키피디아의 해당 부분을 발췌했다 :
Because modern keyboards do not suffer from the problems of older
mechanical keyboards, the QWERTY layout's separation of frequently used
letter pairs is no longer necessary. Several alternative keyboard
layouts, such as Dvorak Simplified Keyboard arrangement (designed by Dr. August Dvorak
and William Dealey and patented in 1936), have been designed to
increase a typist's speed and comfort, largely by moving the most
common letters to the home row and maximizing hand alternation. Some
studies have shown that alternative methods are more efficient, but
Dvorak and other alternative typists most often cite comfort as the
greatest advantage. QWERTY's inventor, Christopher Sholes, patented a
key arrangement similar to Dvorak's, but it never became popular.[citation needed]
Some researchers, such as economists Stan Liebowitz of University of Texas at Dallas, Texas and Stephen E. Margolis of North Carolina State University,
claim that QWERTY is really no less efficient than other layouts;
however, their study has been disputed by advocates of the Dvorak key
setup. [3]
Some believe that there is evidence to support the claim that Dvorak is
faster. The world record for typing speed was made on a Dvorak
keyboard. [4] Opponents claim[who?]
that August Dvorak stood to gain from the success of his layout, and
that he may have perpetuated this "efficiency myth" to increase his
financial gains. Other QWERTY advocates claim that for a QWERTY typist
to switch to Dvorak or another layout requires more effort than
initially learning to touch-type, because of having to retrain the fingers' muscle memory; however, the opposite claim is also made because the Dvorak layout is supposedly more intuitive.
Computer users also need to unlearn the habit of pressing certain key shortcuts, e.g.: Ctrl + C for copy, Ctrl + X for cut, Ctrl + V for paste, on Microsoft Windows,
as X, C and V are next to each other on a QWERTY keyboard). However,
some programs and operating systems allow the use of alternate layouts
combined with QWERTY shortcuts; for example, Mac OS X offers a "Dvorak-QWERTY" keyboard layout that temporarily reverts to QWERTY while the Command key is held down.
Opponents of alternative keyboard designs most often point to
QWERTY's ubiquity as a deciding factor, because the costs incurred by
using the supposedly inefficient layout are much less than those of
retraining typists. It is not unusual to find Dvorak typists who also
touch-type the QWERTY layout for convenience, since QWERTY dominates
the keyboard market. The tension between the Dvorak efficiency and the
QWERTY ubiquity illustrates the problem of collective switching costs, assuming QWERTY's relative inefficiency.
What's the deal with my brain?
Why am I so obviously insane?
In a perfect situation
I let love down the drain.
There's the pitch, slow and straight.
All I have to do is swing
and I'm a hero, but I'm a zero.
Hungry nights, once again
Now it's getting unbelievable.
'Cause I could not have it better,
But I just can't get no play
From the girls, all around
As they search the night for someone to hold onto.
And I just pass through...
Get your hands off the girl,
Can't you see that she belongs to me?
And I don't appreciate this excess company.
Though I can't satisfy all the needs she has
And so she starts to wander...
Can you blame her?
Tell me there's a logic out there.
Leading me to better prepare
For the day that something really special might come.
Tell me there's some hope for me.
I don't wanna be lonely
For the rest of my days on the earth.
영화에 삽입된 인상적인 음악은 영화가 끝나고 나서도 좀체로 잊혀지지 않는다. 한동안은 계속 음악이 흐르던 장면과 함께 머릿속에 떠 오르기 마련.
평소에 줄기차게 듣는 음악도 마찬가지이다. 이 경우엔, 영화의 단편적인 장면이나 스토리와 함께 기억되는 영화 삽입곡들과는 달리 한창 그 음악을 듣던 시기의 감정 상태와 음악 자체가 주는 분위기가 섞여서 매우 표현하기 힘든 그 어떤 느낌과 함께 기억된다는 것이 영화 음악과 다르다.
길지 않은 젊은 날이었지만, 나에게도 질기게 머릿속 한 구석에 남아 있는 음악이 몇몇 있다. 그것들은 가슴이나 대뇌 어딘가에 널부러진 감정 찌끄러기의 더미 위에 책장 위의 먼지처럼 앉아서 완전히 잊혀진 채로 있다가 몇년 후에 문득 듣게 되는 음악의 파동에, 훅 불면 일어나는 선반 위 먼지처럼, 그때의 감정과 함께 인식기관으로 다시 돌아온다.
감정이라기보다 분위기, 감상, 느낌, 심적 상태, 아련함, 그리움, 시원함, 불안함 등과 같은 오만가지 것들이 한꺼번에 섞인 어떤 "정수" 라고 하는 것이 더 알맞은 말이겠다. 봄 골짜기에 아카시아 향기마냥 기분좋은 바람을 타고 기억나든, 장마철 하수구의 퀴퀴한 냄새가 올라오듯 스믈거리며 올라오든, 카메라 플래쉬의 섬광이 터지듯 놓칠 수 없는 찰나가 되었든, 당시의 아련함을 불러 일으킨다. 육체는 현재에 있되, 그 외의 것은 얇게 퍼져서 과거의 시간에 뉘이게 되는 것이다.
참으로 신기게도, 노래에 의해 연상된 당시의 아련함(아련함이라고 해 두자) 을 상기하는 것과는 전혀 달리 당시의 상황, 인물, 사건과 같은 "사실" 들은 하나도 기억나지 않더라는 것이다.
그와 같은 음악들 중 하나가 바로 이 곡이다.
문득 저녁을 먹고 이어폰을 꽂는 순간, 섬광과도 같이 정신이 마비되었다. 언제였지, 그게... 언제였을까... 그때 내 주변엔 누가 있었을까...
조금 눈치가 빠른 사람이라면 0x00000000 이 상식적인 답이겠지만 답이 0x00000000 이 아니기 때문에 이런 문제를 내었으리라 짐작하고서는 뭔가가 있다고 생각할 것이다.
정말 뭔가가 있다.
컴파일을 하면,
$ gcc b.c
b.c: In function 'main':
b.c:7: warning: left shift count >= width of type
gcc 가 친절하게 warning 도 내어 준다.
실행을 시키면,
$ ./a.out
0x00000002
마치 circular shift된 것 같은 결과가 나온다.
왜 그럴까?
컴파일러가 << 연산의 operand 에 modular 연산을 취할까? 단지 << 연산인데, 그냥 shl 같은 instruction으로 곧장 매핑시키지 않고 modular연산 따위를 컴파일러가 할까? 아무래도 그건 오버하는 것 같다.
cpu instruction manual 을 살펴 보았다.
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z 에서는 shift 연산에 대해서 아래와 같이 이야기하고 있다 :
The destination operand can be a register or a memory location. The count operand
can be an immediate value or the CL register. The count is masked to 5 bits (or 6 bits
if in 64-bit mode and REX.W is used). The count range is limited to 0 to 31 (or 63 if
64-bit mode and REX.W is used). A special opcode encoding is provided for a count
of 1.
역시나, 컴파일러가 오버하는 것이 아니었다.
인텔은 그렇다 해도 다른 CPU, ppc 나 sparc 은 어떨까?
sun 과 aix 에서 테스트 해 본 결과 마찬가지 결과가 나왔다.
sparc v9 instruction set reference manual을 보아도 마찬가지 설명(마스크 아웃한다는)이 나와 있다.