2011년 9월 28일 수요일

New York City, a view from ESB

처음으로 경험한 비가 많이 오는 맨하탄.

ESB에 올라갈 수밖에 없는 상황.
줄서는 사람은 아무도 없었고, 표에는 Zero Visibility라고 적혀있었으며, 울상을 짓는 그림이 찍혀있었다.

게이트를 통과할 때 여자가 visibility에 대해서 들었어? 하고 묻길래, 네라고 대답했을 뿐인데 둘 다 웃었다.

정말로 아무것도 안 보일거라고 생각했는데 생각외로 많이 보였다. 맑을 때와는 다른 훌륭한 느낌이 있었다.

높은 위치라 비바람이 좀 있었다는 것을 제외하면.

나름 시간을 오래 보내고 싶기도 했는데, 앉을 만한 곳이 하나도 없었다. 빨리 내려가라는 것이겠지. 그리고 이미 아침부터 비에 너무 옷과 신발이 젖어 있어서 너무 힘들기도 했고.

구름을 잘 이용하면 망해가는 맨하탄 같은 느낌이 나지 않을까 생각했는데, 생각처럼 사진이 나오지는 않는 듯.

2011년 9월 26일 월요일

숫자 17의 성(sex)은 무엇일까?

재밌는 제목의 글을 읽었다. What is the sex of 17?

일단 글의 내용을 이야기하기 전에 제목을 다는 센스에 감탄한다. 좋은 글쟁이는 제목 뽑는 능력부터 탁월한 듯하다. 부럽다.

고등학교 때 독일어를 제2외국어로 배웠다. 지금은 구텐 탁, 이히 리베 디히 말고는 기억 안 난다. 시험을 위해 독일어를 공부할 - 수밖에 없을 - 때, 영어에 비해 독일어가 좋았던 점은 알파벳 그대로 바로 발음을 할 수 있다는 점이었고 싫었던 (이상했던) 점은 단어마다 성이 있다는 것이었다. 다들 잘 아시다시피 독어는 관사가 복잡한데 사물에 성별이 있어 그것마다 구분해서 달아주기까지 해야 했다.

읽은 글에서는 인간의 뇌가 성별이 없는 사물에도 남자, 여자로 성별을 부여한다는 이야기를 하고 있다. 앞서 말한 독어에서는 언어적으로 이미 사물에 성별을 붙이고 있고, 이는 스페인어에서도 마찬가지라고 한다.

그러나 이것이 모든 사물에 동일하게 적용되지는 않는다. 독어에서는 달이 남자이고 스페인어에서는 여자라고 한다. 그래서 해당 언어를 사용하는 사람은 단어가 가지는 성별을 그대로 느끼는 경우가 많다고 한다. 여러분은 달을 떠올리면 남성의 느낌을 받는가, 여성의 느낌을 받는가?

그 외에도 음식 접시에 고기가 있으면 남성을, 샐러드가 있으면 여성을 떠올리는 사람이 많았으며 아기 사진에 1을 페어시켜두면 남자 아이로 2를 페어시켜두면 여자 아이로 생각하는 사람이 많았다고 한다. 우라나라도 주민등록번호 1은 남자, 2는 여자로 구분해두었으니 비슷한 결과를 얻게 되지 않을까 생각해본다.

성별이 없는 사물에, 심지어 숫자까지도, 성을 구분지으려 하는 우리 뇌는 왜 그런 행동을 하는 것일까? 제목에서의 질문을 다시 해본다. 17은 남자인가 여자인가? 글에서는 홀수는 남자를, 짝수는 여자를 더 연상시키곤 한다고 하는데, 물론 사람마다 다를 것이다. 어찌되었든 이것은 참 재밌는 현상이 아닌가.

2011년 9월 8일 목요일

나는 꼼수다 18회를 듣고

최근들어 어딘가 이동할 때 나는 꼼수다를 즐겁게 들어왔다. 차안에 오래 앉아 있어야 할 때도 덕분에 그리 지루하지 않았다. 그렇게 이동시에 잘 듣고 있었는데, 언젠가부터는 너무 재밌어져 나오자마자 다른 일을 제쳐두고라도 듣게 되었다.

어제 18회를 다운 받아두고는, 이번에는 일에 방해주지 말고 아껴두고 틈틈히 듣자고 생각했지만 결국 밤에 자려고 누워서는 침대 머리쪽에 둔 스피커에 폰을 연결하고는 재생을 누르고 말았다. 이번 18회는 런타임이 2시간인데 그걸 잘 때 듣겠다고 생각한 건 좀 바보같은 짓이었다. 피곤했기 때문에 20~30분 정도만 듣다가 잠들게 되었는데 소리를 제법 크게 해두고 잠들어서 그런지 깨버렸다.

깼을 때는 박경철이 게스트로 나와서 이야기를 하고 있었다. 워낙 차분한 말투를 가진 사람이라 그런지 아니면 어제 특히나 진지해서 그런지 (아마도 자신의 이야기가 아닌 남의 이야기를 했으니) 꼼수다의 푸하하 분위기가 아닌 진지하게 이야기를 주고 받는 분위기가 형성되었다. 나쁘지 않았다.

하나 확실히 느낄 수 있었던 것은 박경철이 안철수를 어떻게 생각하고 있는가이다. 누구나 느꼈을 것이다.

그러다 문득 대화가 끝나고 노무현의 목소리가 나왔다. '아, 기분 좋다.'라고 하는데 갑자기 뭔가 울컥했다. 노무현이 살아있을 때 장난스럽게 나는 노빠라고 하고 다녔는데 정말 노빠였나보다. 그리 잘 알지도 못하는 사람인데 보고 싶다는 생각도 들고, 그 사람이 세상에 없다는 것이 좀 슬펐다.

잠이 깨버려서 잠든 시점을 찾아서 듣지 못했던 부분을 다시 들었다. 그러다보니 노무현의 목소리는 두 번 듣게 되었고.

진정성이 있고 사람을 향하는 사람들이 정치를 했으면 좋겠다. 국민들이 더 이상 속지 않았으면 좋겠다.

새 블로그 forking(?)

이런 저런 난잡한 주제를 아무 것이나 여기에 적다보니 통일성이 없는 것 같아, 친구들을 모아 컴퓨터 관련 이야기는 모두 그곳에 쓰기로 했다. Yellow Birds라고 이름 붙인 팀 블로그이다. 그러면 여기에는 뭘 쓰게 될까? 아마 아주 개인적인 이야기를 쓰게 되지 않을까 싶다. 별로 사람이 많이 찾는 블로그는 아니었으니 부담없이 쓸 수 있을 듯.

2011년 6월 29일 수요일

Facebook이 아시아에서 급성장하고 있다고

우선은 말이 필요없다. 다음의 표가 모든 것을 정리하고 있다.


가장 눈에 띄는 것은 인도나 일본이라고 말할 수 있겠다. 인도가 인구가 많아서 그런가? 급격히 늘어나고 있다. 그리고 증가추세만 본다면 일본도 굉장하다. 2011년 들어서 기존 사용자만큼의 새로운 사용자들이 생겨났다. 우리나라는 의외로 8위. 3백만명 정도이다.

나이가 많은 분들은 트위터에서 놀고 있는 것일까? 젊은 사람들은 싸이에서 놀고 있는 것일까? 3백만명이라는 숫자는 물론 많은 숫자지만 생각외로 적다는 느낌이 든다.

개인적으로는 2위의 인도네시아가 놀랍다. 인도네시아가 이렇게나 인구가 많았었나? 기존에 그럴싸한 SNS가 없었나보다. 인구를 찾아보니 2억 2천 7백 정도. 인구의 17퍼센트 정도가 사용하고 있는 것이네. 우리나라보다는 확실히 높은 비율이다.

전세계인이 함께 사용하는 서비스가 되어가는 건 확실하다. 이제 아프리카 쪽만 인프라가 좋아지면 되는 것이다. 페이스북이 언제까지 위치를 고수할까? Google+가 나오면 판세가 달라질까?

2011년 6월 23일 목요일

NFC 어플리케이션

다음 논문을 읽고 남기는 생각.

Csapodi, M.; Nagy, A.; , "New Applications for NFC Devices," Mobile and Wireless Communications Summit, 2007. 16th IST , vol., no., pp.1-5, 1-5 July 2007
doi: 10.1109/ISTMWC.2007.4299077
URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4299077&isnumber=4299029

NFC의 장점으로 매번 이야기하는 것은

  1. 네트워크를 따로 구성하지 않아도 된다는 것
  2. 비교적 빠르다는 것
  3. 아주 근접한 상태에서만 통신이 되기 때문에 안전하다는 것

정도이다. 간단히 줄이면 "Simple and Secure". 이러한 장점으로 기기 간의 상호 인증을 할 때 NFC는 좋은 수단이 된다. 직접 터치하는 방식이기 때문에 man in the middle attack, eavesdropping에 다른 방법론보다 비교적 강하다. 기기 간 상호 인증 (키 교환)을 자연스럽게 사람이 개입하여 인증해주게 되는 것이다.

NFC는 2002년 가을 Sony와 Phillips, 두 회사가 협정한 기술이라 한다. 둘은 ECMA Internation에 표준 초안을 제출하는 것을 시작으로 표준화를 진행했고 두 개의 프로토콜 NFCIP-1, NFCIP-2가 각각 ISO/IEC 18092, ISO/IEC 21481로 제정되었다 한다.

또, NFC 포럼이 2004년 3월 설립되어 HP, NXP (Phillips), Sony, Texas Instruments, Nokia, NEC, Samsung, Motorola, MasterCard, VISA, Panasonic, Microsoft, Gemalto, Vodafone, Siemens 등이 참여하고 있다고 한다. 모바일 통신 업체 그리고 통신 기기를 만드는 업체가 포함되어 있다. 개인적으로 재밌는 건 MasterCard, VISA가 참여하고 있는 것인데, 모바일 결제를 할 때 비교적 안전하고 신속하게 통신 과정을 진행 할 수 있다는 점에서 NFC가 모바일 결제 분야에서 핵심 기술로 인정받고 있다는 것을 알 수 있다.

NFCIP-1 프로토콜은 Philips의 Mifare 기술과 Sony의 FeliCa contactless IC card 기술과 호환된다고 한다. 각자 기술을 개발하다가 둘을 아우르는 프로토콜을 만들게 된 것 같다. 두 기술은 이미 교통 카드나 출입 보안 카드 등에 사용되고 있었다고 한다.

NFC의 접촉 범위는 20cm 정도.

많은 양의 통신이 필요하거나 빠른 통신이 필요한 경우 블루투스나 와이파이 등 기존 기술을 사용하는 것이 좋은데, 이런 설정을 두 기기가 빠르게 공유하기 위해서 NFC가 역시 좋은 수단이 된다.

NFC가 passive mode를 제공한다는 것도 장점이다. 모바일 기기는 배터리에 민감하기 때문에 one party의 파워로 양쪽이 통신할 수 있는 것은 큰 장점이다. NFC 통신을 할 때 한 쪽이 모바일, 한 쪽이 전원을 공급 받는 고정된 기기인 경우 이 성질은 큰 장점으로 작용할 것이다.

NFC가 탑재된 두 기기 간의 데이터 교환이 NFC를 이용한 주된 어플리케이션이지만 조금 구체적으로 응용한 예가 논문에 몇 가지 언급된다. 그 중 하나 재밌는 것은, PC와 연동하여 내 패스워드 정보 - 를 비롯한 웹 폼을 채울 수 있는 정보 - 를 내가 폰을 PC와 접촉시켜 둔 동안에만 해당 PC에서 적용되게 하는 것이다. 도서관 등의 공공 컴퓨터에 갔을 때 웹 서핑을 하게 되면 모든 웹 사이트에서 로그인을 다시 해야 한다. 귀찮지만 당연히 해야 하는 작업이다. 내 폰을 PC 옆에 마련된 NFC reader 위에 올려둠으로써 모든 로그인 절차가 자동으로 된다면 편리하지 않겠는가? 물론 폰을 분실했을 경우, 도난 당했을 경우가 아주 위험해진다.

위의 예처럼 터치를 통한 사용자 또는 기기 인증의 개념이 도입되면 폰이 일종의 보안 토큰이 되는 것이다. 클라우드 컴퓨팅이 발전하고 점차 컴퓨팅 기기는 네트워크가 가능한 더미 터미널이 되어가는 추세(크롬북이 얼마나 성공할 지는 모르지만) 라고 봤을 때, NFC 덕분에 거의 모든 사람이 소지하고 있는 스마트폰을 보안 토큰으로 활용할 수 있게 된 점은 확실히 사용자 편의성을 높이는데 한 몫을 할 수 있을 것이라 생각한다.

2011년 6월 21일 화요일

텍스트 파일에서 한글 글자만 뽑아내기 by Clojure

해결하고자 하는 문제는 텍스트 파일에서 한글 글자만 뽑아내는 것이다. 문서에 "한글은 영어로 Korean이라 합니다."라는 내용이 있다면 (한 글 은 영 어 로 이 라 합 니 다) 라고 뽑아내고 싶다는 것. 그리고 글자의 중복이 있으면 제거한다.  위 예제에는 중복이 없다. 코드는 아주 간단하다.

(ns korean-word-extractor.core
  (:gen-class))

(defn -main [& args]
  (let [file-name (first args)
 file-contents (slurp file-name)
 korean-chars (distinct (filter #(<= 0xAC00 (int %) 0xD7AF) (seq file-contents)))] ;; 0xAC00 ~ 0xD7AF: Hangul Range
    (println korean-chars)))

파일명은 argument로 받기로 하고, slurp을 이용해 모든 내용을 일단 얻어온다. 그 다음 한 줄의 코드가 사실 모든 일을 다 하게 되는데, 과정은 다음과 같다.
  1. 우선 clojure에서는 문자열에 seq 함수를 적용하면 바로 개별 문자를 list로 활용할 수 있다.
  2. 그 다음 한글을 필터링 해야 되는데 filter 함수를 사용할 수 있다. 0xAC00 ~ 0XD7AF는 Unicode의 한글 음절 범위이다. Unicode.org의 Hangul Syllables 문서를 보면 잘 나와있다.
  3. 이제 한글 문자만 뽑아냈는데 중복된 문자가 있을 수 있으니 distinct 함수를 활용하자.
문제가 해결되었다.
한글과 English가 섞여 있을 경우
한글만 extract할 수 있을까?
라는 내용을 담고 있는 test.txt 파일을 만들고 실행해보면,
D:\doma\korean-word-extractor>lein run test.txt
(한 글 과 가 섞 여 있 을 경 우 만 할 수 까)
와 같이 원하던 결과를 얻게 된다.

도심을 좀 벗어나고 싶군.

SDIM4265 by Jonguk Kim
SDIM4265, a photo by Jonguk Kim on Flickr.
전자파에서 좀 벗어나고 싶다. 연구실에는 컴퓨터에 둘러싸여 있고, 집에서도 크게 다를 것이 없다. 티비, 공유기, 청소기, 다리미, ...

뭔가 흙이 있는 곳에서 나무가 내뿜어주는 산소 마시며 책 읽었으면.

연구실 창밖의 에어컨 실외기가 요란하게 소음을 낸다. 피곤하다.

밴드 연습 녹화. 팬이야 & Funhouse

그간 몇 번의 연습이 있었는데 녹화는 처음한 것 같다. 내가 없는 Funhouse가 훨씬 좋구나, 흐흐.

1. 자우림 - 팬이야

2. Pink - Funhouse

다랭이논

SDIM4295 by Jonguk Kim
SDIM4295, a photo by Jonguk Kim on Flickr.
지리산 둘레길 제 3코스는 꽤나 산길이었는데, 걷는 와중에 이렇게 산을 계단처럼 만들어 놓고 물을 대어 농사를 짓는 곳이 많았다. 사람이 자연을 개척해나가는 능력은 참으로 놀랍다.

이런 방식의 논을 다랭이논이라고 부른다는 푯말을 걷다가 보았는데 맞게 기억하는 것인지 모르겠다.

NFC의 장단점?

다음의 짧은 논문을 읽고 떠오른 생각들 정리해본다. Vassils Kostakos, et al. "NFC on mobile phones: issues, lessons, and future research", 2007

NFC의 편의성

두 폰이 서로 데이터를 주고 받을 일이 있을 때, 블루투스나 NFC를 이용할 수 있다. 논문에서는 두 가지를 이용해서 전화번호를 교환하는 프로그램을 각각 작성한 후에 사람들에게 얼마나 편리한지 질문했다. (실험 결과에 대한 구체적인 이야기가 없었지만!) 전반적으로 NFC가 편리하다는 평이었다고 한다. 그 첫 번째 이유는 사용자가 별로 할 일이 없다는 것. 블루투스는 기기 간의 페어링(pairing)을 해야 한다. 반면 NFC는 접촉만으로 바로 데이터 교환이 가능하다. 단, NFC는 읽고 쓰기 중 하나를 선택하여 단방향(one-way) 통신만 가능하기 때문에 사용자가 개입하여 내가 데이터를 받을 것인지 줄 것인지를 선택해야 하는 문제가 있는데, 여기서는 두 장치가 서로 번갈아가며 주고 받기를 서로 알아서 하도록 프로그래밍했기 때문에 사용자가 할 일이 거의 없었다. 사용자 입장에서는 폰을 서로 갖다대는 것만으로 데이터 교환이 되는 것이 신기하고 편리했을 것이다. 그리고 이것이 두 번째 이유로 연결되는데, 터치로 데이터를 교환하는 것은 블루투스를 이용한 원격(물론 멀지 않은 거리지만) 교환보다 더 원시적인 방법처럼 보이지만 오히려 '중간에 다른 디바이스가 끼어들어 내 정보가 세어나가진 않을까?' 하는 우려를 줄여준다. 내가 보고 있는 상대방과 정확히 정보를 교환하고 있다는 느낌을 사용자에게 주는 것이다. NFC가 근거리 통신 방식이기 때문에 보안 측면에서 유리하다는 것은 이미 많이 언급된 내용이다.

QR code와의 비교

NFC를 사용하면 태그를 폰에 접촉하는 것만으로 바로 데이터를 가져올 수 있다. 반면 QR code를 읽기 위해선 카메라를 이용하는 리더 앱을 가동해야 하는 번거로움이 있다. 얼마전에 코엑스에 갔을 때 재밌게 본 시연이 있었는데, TV에서 나오는 아이유의 음악에 폰이 가까이 두니 관련 링크를 열어 보여주는 것이었다. 물론 여기에 사용된 아이유의 음악은 사람이 듣지 못하는 주파수 영역에 데이터를 주입해서 보내는 것이었고 폰은 그것을 듣고 데이터를 뽑아내는 것이었다.  아이디어는 재밌으나 폰에서는 데이터를 해석할 수 있는 앱을 역시 가동하고 있어야 한다. 이 앱은 카메라 대신에 마이크를 켜두고 있어야 한다는 것이 차이점일 뿐이다. 결국 사용자 편의성 면에서는 QR code와 별다른 차이가 없다고 볼 수 있다.

NFC의 단점? 1. 화면과 멀어지는 사용자

태그를 읽기 위해 - 혹은 다른 NFC 장치에게 데이터를 전송하기 위해 - 서는 접촉을 해야 하므로, 내 폰을 내 눈과 먼 거리에 두어야 할 경우가 발생할 수 있다. 데이터 교환 상황이나 완료 여부, 에러 발생 여부 등을 알아보기가 다소 힘들 수 있다. 물론 예로 든 수준의 알림은 화면에 큰 글자를 출력하거나 깜빡임을 이용하거나 소리를 내거나 진동을 발생시킴으로써 해결할 수 있다. 그러나 화면을 터치함으로써 어떤 interaction을 이어나가야 하는 경우라면 작업을 진행하기에 까다로워질 수 있다.  선택 버튼을 눌러야 한다거나 패스워드를 입력해야 한다거나 따위가 예가 될 수 있다. 결론적으로 interaction이 많은 작업보다는 접촉만으로 바로 데이터가 교환되고 바로 통신이 종료되는 어플리케이션이 적합하다.

NFC의 단점? 2. 악성 데이터

이 문제는 사실 NFC 만의 문제는 아니다. NFC를 이용할 때도 역시 조심하자 정도가 좋겠다. 태그로부터 읽히는 정보에는 스팸이나 악성 페이지로의 링크가 있을 수 있어 주의해야 한다. 조금 더 주의를 기울여야 하는 부분은 태그로부터 정보를 읽어오는 것뿐만 아니라 어떤 명령을 받아들일 수도 있다는 점이다. 어떤 사람의 명함에 폰을 대면 바로 그 사람에게 전화가 걸리거나 이메일을 보내거나 문자를 보낼 수 있도록 폰이 동작하는 것이 그 예가 되겠다. 접촉을 하는 즉시 폰이 어떤 행위를 하게 되는 것은 편리할 때도 많지만 악성 행위를 동작시키는 태그가 이용될 수도 있기 때문에 주의해야 한다.

2011년 5월 11일 수요일

Emacs에 창(window) 간 이동하기

emacs에서 편집할 때 C-x 2나 C-x 3을 이용해 수평, 수직으로 창을 나눠서 작업하면 편리한 경우가 많다. 이 때 마우스를 사용하지 않고도 C-x o키를 이용해서 나눠진 공간을 쉽게 이동할 수 있지만 키를 여러 개 눌러야 하기 때문에 불편한 점이 없지 않다.

다음 내용을 .emacs에 넣어두면 편리하게 창 간 커서 이동을 할 수 있다. 다음 예는 F11키를 이용한다.

(global-set-key [(f11)] 'other-window)

Emacs, clojure-mode 설정하기

clojure-mode의 git 페이지에 가면 packages를 이용해서 설정하는 방법이 있는데, 괜히 복잡하게 느껴진다. 간단히 git으로 코드를 받아와서 설정할 수 있다.

git clone https://github.com/technomancy/clojure-mode

으로 코드를 받아오고. .emacs에 다음과 같은 내용을 추가하여 .clj 파일을 읽을 때 clojure-mode가 적용되도록 한다.

(add-to-list 'load-path "~/clojure-mode")
(require 'clojure-mode)

emacs 폰트 설정하기

.emacs에 다음과 같은 내용을 추가한다.

(set-default-font "DejaVu Sans Mono-10")
(set-fontset-font "fontset-default" 'korean-ksc5601 "NanumGothic-10")

영문 폰트와 한글 폰트를 따로 지정할 수 있다.