2012년 8월 28일 화요일

리눅스에서 Wacom Bamboo 사용하기

우선 xorg의 드라이버를 설치해야한다.

최신버전의 xorg가 아니면 없을 수도 있다.

# apt-get install xserver-xorg-input-wacom

대부분의 경우 위의 드라이버는 문제없이 설치 될 것이다.

이전에는 wacom-tools이라는 패키지가 있었는데 이것으로 대체된 것 같다.

아마도 xorg에서 공식적으로 지원하게된 것일 게다.

혹시 모르니깐 정상적으로 설치가 되지 않는다면

다음과 같이 wacom과 관련된 패키지가 있는지 확인해보자.

# apt-cache search wacom


libwacom-common - Wacom model feature query library (common files)
libwacom-dev - Wacom model feature query library (development files)
libwacom2 - Wacom model feature query library
libwacom2-dbg - Wacom model feature query library (debug files)
mypaint - Paint program to be used with Wacom tablets
mypaint-data - Brushes and backgrounds for the mypaint program
kde-config-tablet - implements a KDE configuration GUI for the Wacom drivers
xserver-xorg-input-wacom - X.Org X server -- Wacom input driver

나의 경우 위와 같이 나와서 xserver-xorg-input-wacom과 mypaint를 설치하였다.

# apt-get install xserver-xorg-input-wacom mypaint

설치가 완료되면 mypaint로 wacom의 진가를 확인 할 수 있다.

"프로그램 -> 그래픽 -> mypaint"를 선택하면 실행할 수 있다.

그리고 왼손 잡이거나 모서리가 손목에 걸리는 것이 신경 쓰이면

다음과 같이 왼손잡이 용으로 변경할 수 있다.

우선은 장치 이름을 다음과 같이 알아 내자

# xsetwacom --list

그리고 해당 장치의 설정값을 변경하자

# xsetwacom --set "Wacom Bamboo Connect Pen stylus" Rotate "HALF"

추가사항

1. 화면과 테블릿의 가로/세로 비율의 차이를 보정해주는 옵션 추가

# vi /usr/share/X11/xorg.conf.d/50-wacom.conf


Section "InputClass"
        Identifier "Wacom class"
        MatchProduct "Wacom|WACOM|Hanwang|PTK-540WL"
        MatchDevicePath "/dev/input/event*"
        Driver "wacom"
        # Button remapping
        #Option "Button2" "2"
        #Option "Button3" "3"
        # Aspect correction between monitor and tablet
        Option "KeepShape" "on"
EndSection

기타 여러가지 옵션들은 /etc/X11/xorg.conf에 넣어 두자.

Section "InputDevice"
        Driver        "wacom"
        Identifier    "stylus"
        Option        "Device"        "/dev/input/wacom" 
        Option        "Type"          "stylus"
        Option        "PressCurve"    "50,0,100,50"         # Custom preference
        Option        "Threshold"     "60"                  # sensitivity to do a "click"
EndSection

위의 사항들은 감압 감도를 조절하는 옵션들이다. 아직은 자세히 들여다 보지 않았다.

자세한 옵션들은 다음 사항들을 살펴보자.

# man wacom

2. 사용하다 보니 wacom paper 같은 프로그램의 존재가 절실하다.

아무리 찾아 보아도 리눅스에서 쓸만한  tablet 메모장/노트 프로그램이 없다.

시간 나면 한번 개발해 보아야 겠다. 우선 라이브러리를 설치하고 사용법을 살펴보도록 하자.

# apt-get install libwacom-dev

해더파일은 다음과 같고,

/usr/include/libwacom-1.0/libwacom/libwacom.h

테스트 코드는 다음과 같다. 얼마나 시간되서 살펴볼 수 있을 런지 모르겠지만 우선은...

https://github.com/jigpu/libwacom/blob/feature/pad-mousebuttons/test/load.c

2012년 8월 22일 수요일

컴퓨터에 필기 입력하기

수식, 그림을 등을 컴퓨터에 입력하는 작업은 여간 귀찮은 작업이 아니다.

뭐 재사용과 배포를 위해서 규격화되고 정리된 디지털 데이터도 좋지만.

그 귀찮음은 차라리 내 머릿속의 정보로만 가지고 있게 만든다.

그래서 이래저래 찾아 보았다.

테블릿 PC와 패드, 탭류부터 wacom 테블릿 입력기 까지

Wacom이 지금 상황에서는 가장 좋은 선택인 것 같다.

테블릿 PC와 패드, 탭류등은 손가락 입력에는 편리 할지 몰라도

필기 입력처럼 정밀하지 않은 것 같다.

앞으로는 달라지겠지만,

그래도 망설여 진다. 가격이 싸질 않다. Wacom은 앞으로 주춤할 분위기 인데

뭘 믿고 가격이 높은 지 모르겠다.

Kurtosis에 대한 기억


통계학 책에서 찾아 본 기억이 있다.

계기는 석사 시절 논문 발표장에서 Kurtosis에 대한 언급이 있은 다음 이었던 것으로 기억한다.

지문인식에 관한 부분이 었는데

구체적으로 지문 영상 개선을 위해

방향성을 추정하기 위한 모집단의 크기를 결정하기 위한 판단 인자로 사용하였다.

방향성의 histogram이 몰려있느냐 퍼져 있느냐로 모집단의 크기를 늘릴것이냐 줄일 것이냐 ?

하는 것을 Kurtosis 값으로 판단하는 그런 논문이 었다.

지금 찾아 보니 좀 더 정확히는 gaussian 분포인지 아닌지를 판단하는 것이 좀 더 맞는 이야기 인것 같다.

Kurtosis의 값이 '0'이면 그 값들의 분포는 gaussian형태이고

'< 0' 즉 음수 이면 sub-gaussian,

'> 0' 즉 양수 이면 super-gaussian 형태로 간단히 이해하면 사용하는 입장에서 이해하기 편할 것 같다.

요약하자면,

Kurtosis(x) > 0 -> x : super-gaussian
Kurtosis(x) = 0 ->  x : gaussian
Kurtosis(x) < 0 -> x : sub-gaussian

2012년 8월 20일 월요일

ICA에 대한 개인적인 해석



여러명이 동시에 말하는 상황에 여러대의 마이크로 녹음된 음성에서

사전 지식 없이 원래의 사람들의 목소리를 복원하고자 할때 사용하는 것이 ICA이다.

하지만 조건이 있다. 사람들의 목소리들 간에는 서로 독립적이어야 한다.

수학적으로 독립적이어야한다. 사람이 인식하기에 구분이 간다 만다 하는 정도의 문제가 아니다.

그리고 모든 사람들의 목소리를 녹음하는 마이크가 사람 수 만큼이거나 많아야 한다.

이 모두를 수학적으로 모델링 하면 다음과 같다.


X = A * S;

여기서, X는 마이크로 관찰된 신호, A는 사람들의 목소리의 가중치, S는 사람들의 목소리 신호.

마이크의 수는 a, 사람들의 수 b, 그리고 시간 축의 수 c

그럼 X의 크기는 (열의 수 x 행의 수) = a x c,

A의 크기는 a x b,

S의 크기는 b x c 이다.

그리고 마이크의 수와 사람의 수가 같다고 하면 A는 정사각형 행렬이 된다.


그럼 A행렬의 각 항목의 값만 알아 내면 모든 것이 해결된다.

근데 이 이후의 상황들이 너무나도 복잡하다. 좀더 읽어 봐야 겠다.

더 읽다 보니 제한 조건이 너무 많다.

사람들의 목소리 끼리 독립적이어야 한다는 조건은

수학적으로 다음과 같은 조건으로 대치된다.

Uncorrelated와 unit-variance이어야 한다.

만약 위와 같은 조건이 만족되지 못하다면 만족하게 만들어야 한다.

그와 같은 방법이 PCA가 되겠다. 그리고 ICA에서 이러한 과정을 Whitening이라고 한다.

그냥 생각해 봐도 어디에 ICA를 적용하려면 PCA는 항상 거쳐야 하는 사전 작업으로 여겨질 것이다.

PCA는 또다른 골치 꺼리 이므로 여기서 자세히 못 다룬다.

나중에 다루어봐야 겠다.

ICA는 PCA를 거친후의 확장형태로 이용하면 훨씬 성능이 좋다.

Matlab의 fastICA에 아주 잘 정리되어 있다.

blind source separation, feature extraction에 이용한다.

영상처리에 ICA 적용하는 방법은 다음과 같다.

영상의 작은 형태로 쪼개고 이 작은 영상을 가중치를 갖는 원소 영상으로 분해하는 것이다.

2012년 8월 19일 일요일

영어 단어장

(A) can be captured in terms of (B) : (A)는 (B)의 형태로 인식 될 수 있다.

(A) is truncated to (B) : (A)는 (B)로 잘라 말할 수 있다.

(A) provides no information regarding (B) : (A)는 (B)를 암시하는 아무런 정보도 제공하지 않는다.

set : 모음

As noted above : 위에서 지적한 데로

fairly safe : 꽤나 타당한

다이오드의 종류

제너 다이오드(Zener Diode)

 일반적인 다이오드는 방향이 존재한다. 순방향으로 전압을 걸어 줘야 전류가 흐른다.

역방향으로도 30V정도 걸어 주면 갑자기 역방향 전류가 저항 없이 무진장 많이 흐르는데

제너 다이오드는 이 역방향 전류를 생성하는데 필요한 전압을 낮게 하여 만든 것이다.

이를 달리 해석하면 일정 정도의 역방향 전압은 유지하고 그 이상의 역전압은 전류를 흘려 소비하는 방식으로 일정 정도의 전압만 걸리게 만든다.

다시 말하면 허용 전압 이상이 걸릴 경우 그 이상의 전압은 열로 소비해 버린다.

그래서 레귤레이터의 입력 전압이 가변적일 때 득정 전압으로 출력하는 기준으로 사용하는 경우가 많다.


쇼트키 다이오드(Schottky Diode)

 일반 다이오드보다 순방향 전압이 작아서 역전류를 방지하는 회로 보호용으로 사용하면 순방향 전압 강하를 적게 하면서 즉, 전류 소비를 적게 하면서 역전류를 방지하는 회로 보호기능을 수행 할 수 있음.

2012년 8월 17일 금요일

오늘의 영어 한마디

운동 중에 다른 사람과 루트가 겹치는 상황이 발생하였다.

나는 다른 사람을 먼저 보내느라 팔에 힘이 빠져 하던 루트를 실폐하였다.

그 사람와 "Leave my prostration!"이라고 말했다.

난 "으흥?".

그 당시에 별와별 생각을 다했다.

posturation이라는 말로 간주하여 자기가 운동하는거 처다 보지말라 불쾌하다로 해석했거든

그거 아닌거 같다. "나를 의식하지 말지 그랬어"로 해석하는게 맞는거 같다.

2012년 8월 12일 일요일

ASUS EEEpc 701의 아톰 CPU 교체 및 업그레이드 하기

랩탑의 CPU는 데스트탑의 CPU와 다르게 소켓 방식으로 마운트하지 않고

BGA방식으로 CPU 핀과 보드 사이를 볼납이 연결해 주고 있다.

이러한 방식 때문에 통상 랩탑의 CPU는 업그래이드가 불가능하다고 여겨진다.

하지만 여기 동영상을 보면 불가능한 것도 아닌거 같다.




요약해 보자면 기존의 CPU를 제거하기 위해서 HEATGUN을

CPU 아래부분에 위치 시키고 약 6분 30초간 가열하여 간단하게 제거한다.

뭐 HEATGUN의 Watt수가 어떻게 되는지 명시 되지 않았지만

크기와 모양새를 보아하니

http://www.peakcandle.com/products/Heat-Gun__ML1010.aspx

위의 것으로 추정된다. 똑같지는 않아도 1500W정도의 HEATGUN을 사용하면 되겠다.

CPU를 떼어낸 부분의 잔여 납들은 SOLDER WICK이나 SUCKTION으로 제거한다.

그리고 남아 있는 TAR 같은 물질들은 FLUX REMOVER를 묻힌 솜막대로 제거한다.

새로운 CPU를 부착하기 이전에 FLUX를 접촉부위에 골고루 바르고

CPU를 정확한 위치에 고정하고 다시 HEATGUN으로 CPU의 밑부분을 2분정도 가열한다.

이와 같이 하면 넷북의 CPU 업그래이드 하고 부팅이 정상적으로 되는 것 같다.



넷북, 울트라씬, 울트라북으로 이어지는 그간의 장난질들

넷북이 나왔을땐 가격에 많은 사용자가 몰려 들었고

지나보니 해상도가 작아서 일반적인 웹브라우징이 불편하고 솔직히 너무 느렸다.

알고보니 인텔에서 아톰 시스템의 해상도를 제한하고

듀얼코어의 사용을 막거나하는 등의 장난질을 쳐놓은 것으로 알려졌다.

http://gigglehd.com/zbxe/dtnews/1590437

그래서 등장한 것이 울트라씬인가 하는 것들은

이것은 그냥 이름 장난질 이었음이 다음에 등장하는 울트라북으로 인해서 증명 되었다.

이놈의 울트라북은 또한 인텔의 수익율을 올리기 위한 장난질 이었음이 증명된다.

소비 전력의 이득에 대해서 논란이 많고

노트북 환경에서 구지 필요하지 않은 성능을 가진

고가의 SSD의 사용(몇몇 초기에 인텔, 삼성을 비롯한 회사만이 생산하였던)이러던가.

http://jacks.tistory.com/116

표준 포트가 아닌 젠더의 등장이라던가

http://www.zdnet.co.kr/news/news_view.asp?artice_id=20120102143550

사용자를 너무 배려하지 않았다. 가격과 편의성 모든 측면에서 말이다.

기존의 주력 노트북의 가격에 비해 울트라북의 가격이 거의 몇배로 뛰게 된다.

이전에 EEEpc와 MSI에서 저렴한 가격에 좋은 제품을 내놓던 분위기는 사라져 버렸다.

이제는 조금씩 조정되어 가는 분위기 인것 같다.

인텔에서도 울트라북 장난질로 많은 재미를 못보게 되어서

조금 저렴한 가격의 약간의 성능을 낮춘 듀얼 셀러론이나 펜티엄을

이용하면서 전용 포트나 젠더를 사용하지 않는 노트북을 내놓을 기세이고

AMD에서는 반대로 열세인 CPU성능을 가까스로 인텔의 제품에 비교할 수 있을 정도로

만든 제품들이 나올 것으로 기대된다.

이 지점에서 두 회사의 제품이 교차하게 되므로 아마도 많은 저렴하고 쓸만한 제품들이

많이 나올 것으로 기대한다.

나도 나오는 노트북 제품을 주시하고 있어야 겠다.

ACER에서 처음으로 i코어 기반의 괜찬은 성능의 듀얼 셀러론과 펜티엄 노트북을 내놓기 시작했다.

단지 ACER라는 회사가 한국에서 저질러 놓은 먹튀 이미지가 문제 이긴한데

조만간 평판이 좋은 ASUS나 MSI에서도 비슷한 계열의 노트북이 나오기 시작 할 것이다.

그리고 AMD의 새로운 코어의 성능이 그나마 쓸만한 CPU를 사용한 노트북도 조만간 나올 것이다.

이 시점에 한번 노트북 변경을 고려해 보아야 겠다.


2012년 8월 6일 월요일

USB OTG 장치에서 배터리 충전과 전원 관리

USB On-The-Go(OTG)의 기능은 USB 2.0명세를 포함한 기기들 간의 접속을 규정하고 있다.

USB OTG는 호스트/디바이스의 기능을 둘다 수행할 수 있도록 허용한다.

현재 많은 USB 장치들이 배터리를 가지고 있기 때문에 USB OTG를 구현하기 위해선

배터리를 이용한 USB 전원 공급과 USB 전원을 통한 배터리 충전을 모두 수행할 수 있어야 한다.

USB 통신에서 전원관리는 5단계의 Unit으로 조절한다.

처음에 enumeration을 수행할 때는 1 unit으로 전원을 공급하고

요청이 있으면 이 unit은 5단계까지 높일 수가 있다.

한 unit은 USB 2.0의 경우 100mA이고 USB 3.0의 경우는 150mA이다.

그래서 USB 2.0의 경우 500mA까지 USB 3.0의 경우 900mA까지 공급할 수 있다.

USB OTG에서는 호스트와 디바이스의 관계를 다음과 같이 정의하고 있다.

호스트에 해당하는 A-Device

디바이스에 해당하는 B-Device

A-Device는 VBUS에 전원을 공급해야하고

B-Device는 VBUS를 통하여 전원을 공급받아야 한다.

이 둘의 정의는 USB OTG를 통한 접속이 이루어 질때 결정 되기 때문에

USB OTG를 이용한 전원 회로를 설계할 때는 많은 고민이 필요한다. 

간단히 생각해보면 여러개의 전원 스위치와 제너 다이오드가 필요할 것이다.

USB OTG 명세에서

호스트는 4.4V에서 5.25V사이의 전압의 8mA 전류를 최소한 공급해야한다. 

이동식 기기의 경우 배터리를 통해서 공급해 주어야 한다.

보통 1 cell의 LiPo나 LiIon 배터리를 보통 많이 사용하기 때문에

3.2V~4.2V사이의 전압을 4.4V~5.25V사이로 끌어 올려주는

Step Up 레귤레이터가 추가적으로 필요하다.

그럼 디바이스 모드일 때도 고려해 보면 

VBUS를 통한 전원 배급을 배터리 충전과 기기의 전원 공급에 이용해야 하고

한편으로는 배터리의 전원을 기기에 공급하고 VBUS를 통해서 외부 기기에 전원 공급해야 한다.

전원 설계가 한층 복잡해 진다. 칩하나로 되어 있는게 있을 텐데....


현시점에서의 안철수와 유시민 및 일당들

불쌍하다 못해 외면하고 싶다. 불쌍한 유시민과 일당들.

앞으로 어떻게 하든 딱히 해결책이 없는 것 같다.

수많은 실패에 하나 더 더해 나가는 수순인 것 같다.

진보 당이라는 것의 허상만 벗겨 진 것 밖에 위안을 삼을 수 밖에

그져 불가능 해보이는 해결책은

안철수의 유시민 및 일당등에대한 지원 혹은 둘 간의 창당이 되었으면 한다.

뭐 안철수의 공약이 아닌 생각이 민주당과 대동 소이 하다면 출마 포기하고

유시민 및 일당들의 진보 진영을 지원하는 것이 더 의미가 있겠다 싶다.

내 바람이지만 그렇게 되었으면 좋겠다.