목요일, 5월 21, 2015

Test StackEdit Title

# Test StackEdit Content > Written with [StackEdit](https://stackedit.io/).

일요일, 7월 13, 2014

Windows SDK 7.1 잘 설치하기

Windows SDK 7.1 ( 옛날에는 플랫폼SDK라고 불렀는데.... ) 아무튼 설치하다 보면, 

Microsoft Visual C++  Compilers 2010 Standard - enu - x32

부분이 나오면서 설치도중 오류가 발생할 때가 있다.


32비트는 msiexec /x {2F8B731A-5F2D-3EA8-8B25-C3E5E43F4BDB}
64비트는 msiexec /x {81455DEB-FC7E-3EE5-85CA-2EBDD9FD61EB}

해주면 잘 된다. 자세한 내용은 아래의 링크를 참조



참고
  • http://superuser.com/questions/325963/error-in-installing-windows-sdk-newer-version-already-installed
  • http://msdn.microsoft.com/en-us/vstudio//gg697159

목요일, 2월 13, 2014

sublime launchy

Windows에서 TypeAndRun 오래동안 사용하다가, Windows7부터 Launchy를 사용한 것 같네요. Scott Hanselman's 2014 Ultimate 여기 글을 보고 slickrun으로 변경했다가, 왠지 모두 마음에 안들어서 10줄 정도로 sublime에서 런처를 비슷하게 만들어 보았습니다.

조금 더 사용해보고 세상에 공개할 물건이라고 생각되면 공개할깨요. 즐거운 하루되세요. ^^/



처음에는 facebook바로 올렸는데 gif애니메이션이 되지 않아서 블로그로 작성했네요. ㅠㅠ


일단 대충 마무리해서 올려봅니다.
Package폴더에 폴더하나 만드시고, 압축 풀면 됩니다.

명령목록에서는 Daejin Run으로 나타나구요, 단축키는 alt+l로 지정했는데, 원하시는대로 변경하면 되겠죠 ㅎㅎ

그리고 실행전에 하단상태바에 실행한 명령이 나타납니다. 잘못등록 하셨을 경우 이것으로 확인할 것 같습니다.

DaejinRun.zip

목요일, 10월 17, 2013

흔하게 될지모르는 FC600R 리뷰

본 리뷰는 레오폴드(주)에서 이벤트로 제공 받은 제품으로 작성되었습니다.


개봉하고 바로 찰칵!

개봉하고 바로 휴대폰으로 한 장 찍어 보았습니다. 바로 위에 비슷한 모양을하고있는 제품은 흔한(?) 필코 닌자 적축입니다.  저는 필코가 제일 잘 맞는것 같아 거이 한 10년가까이 필코제품을 사용하고 있습니다.

예전에 FC700R를 예판을 구매한 적있는데, 태어나서 처음 만난 키 중복 입력문제로 레오폴드 기사님과 전화기 두 손 꼭 잡고 제자신의 문제인지 키보드 문제인지 혼란스러워하며 오랜기간 상담을 받은 기억이 나네요. 다행히 친절하고 끝까지 저의 문제를 관심 가져주신 레오폴드 기사님 덕분으로 제 문제가 아니라 키보드 문제라고 하시면 기판을 3번정도 교체해 주셨서 지금은 사무실의 동료가 잘 사용하고 있습니다.

아마도 그 일때문에 이번 이벤트에 당첨해주신 것 같습니다. 감사합니다.

일단 전체적인 느낌은 FC700R보다 저렴해 보입니다. ㅎㅎ, 이미 가격을 알기때문에 선입견 때문일 수도 있습니다. 바로 노트북에 꼽아 보았습니다. 앗 그런데 불이 잠깐 들어오는데 인식을 안하네요. ㅠㅠ

원인은 usb케이블을 덜 연결한 것입니다. FC700R도 usb연결하는 부분이 상당히 빡빡했는데, FC600R는 더 빡빡한 것 같습니다. FC600R로 처음 기계식입문하시는 분들은 조심스럽게 다루실 것 같은데 아마, 저와 같은 실수를 많이를 할 것 같습니다. 아래의 그림에서 보듯이 힘은 조금 많이 주어야 바른장착을 할 수 있습니다.

잘못된 장착

힘을 많이 주어야 가능한 바른 장착

일반 비닐이 아닌 천으로 잘 감싸져있는 있네요. 꼬임이 없고, 충격에 강해 단선이 잘 안된다고 하는데, 저는 일반 usb케이블도 단선을 본적이 거이 없는 것 같아서 디자이만 이쁘면 될 것 같아요. ㅎㅎ ( IO매니아의 칼라풀한 usb케이블이 가끔 마음속에만 들어왔다가 제 키보드는 모두 검은색이기에 색상이 맞지 않아서 그냥 사라지곤 합니다. )

직조 처리된 케이블
필코 닌자와 모양이 거이 흡사하지만 완전히 같지는 않습니다. 옆면의 높이를 비교해 보면 닌자가 아주 조금 높습니다.

좌 : FC600R, 후 : 닌자

하단부분은 일반적으로 각져있는데, FC600R은 매끄러운 곡면 처리가 되어 있습니다.

FC600R 하단 곡면

손에 땀이 많은 편이라 엄지부분이 주로 닿는 이부분이 위 사진처럼 매끄럽게 처리되어 아마 여름에 땀으로 인해 조금 끈적일 것 같습니다. 닌자는 이부분이 조금 거친처리가 되어 있습니다.

닌자의 거친(?) 하단

옆면은 아주 얇게 처리되었는데, 어느정도 강도가 있으면서 가능한 얇게 처리된 레이아웃을 아주 좋아합니다. FC600R의 옆부분은 아주 만족스럽니다.

FC600R 옆면
추가로 제공되는 WASD키는 높이가 아주 조금 낮습니다. 참고하세요. ^^

WASD키 높이 비교

여기까지 사진으로 살펴보았습니다. 키감은 체리스위치라 거이 비슷하겠지만 자세히 느껴보면, 키캡, 보강판, 윤활유무 등으로 느낌이 다르다는 것을 다들 알고 계실 것입니다. 더욱이 같은 키보드라도 왠지 틀린 느낌이 날때도 있고 개인적 의견이 가장 큰부분인 것 같기도 하네요.

저는 흑축을 가장오래 사용했지만 최근에는 모두 적축으로 사용하고 있습니다. 가장 좋았던 적축느낌은 아이오매니드로 윤활한 포커2였습니다. 키갑이 가장 가볍게 느껴진 키보드는 두꺼운 PBT키캡이 적용되었던 FC700R입니다. 그에 비해 FC600R은 키캡이 가벼워서인지 적축치고 키갑이 조금 있습니다. 필코닌자와 비슷하기도 한 것 같은데, 키캡의 품질이 닌자쪽이 더 좋아서인지 닌자쪽이 더 마음에 드네요.

키캡놀이를 별로 좋아하지 않고 여분의 키캡도 없기에 FC600R의 최대 장점인 키캡놀이는 해보지 못했습니다. 

저의 결론은 하루정도 밖에 되지 않아 정확히 애기하기 힘들지만, FC700R 같이 키보드 중복입력 문제가 없다면 아마 최고의 가성비 키보드가 될 것 같습니다. 사무실에 가격대가 비슷한 한성키보드 몇 대 있는데 키캡자체 한성쪽이 PBT라 조금 더 좋아보이지만 키보드 외관은 레오폴드가 더 좋아보이는 것 같습니다. 아마 키캡교환을 염두해 두거나, 특히 AS까지 고려한다면 아마 많은 분들이 레오폴드쪽으로 선택하지 않을까 생각합니다.

마지막으로 FC600R은 키덥개를 제공하고 있지 않습니다. 퇴근시 덥는개 조금 귀찮은 편인데, 부담없이 편하게 사용하라는 레오폴드의 배려(?)인지도 모르겠네요. 아래의 사진은 개인적으로 사용하고 있는 덥개입니다. ^^v ( 사진으로는 지저분해 보이네요, 좀 닦고 찍을것 그랬네요. ㅠㅠ )



 항상 행복하세요. ^^/

화요일, 8월 20, 2013

0.1 + 0.2 의 값은?

요즘 사무실에서 김과장이 산책 자바스크립트 프로그래밍 (프론트엔드 개발자를 위한)를 읽고 있습니다.


'니콜라스 자카스' 상당히 좋아하는 저자이지만, 역시 두꺼운 책(1,186페이지)은 읽기 어려운 것 같습니다. 손이 정말 잘 가지 않습니다. 그런데 오늘 퇴근 10분정도 남겨두고 잠깜 보고 갈까했는데, 아주 좋은 내용을 읽어서 이렇게 블로그에 정리해봅니다.

0.1 + 0.2 = ?

물음표의 값은 무엇일까요?, 당연히 우리는 0.3이라고 하겠지만 실제 JavaScript, C, Python, 등등 저희가 사용하는 대부분 모든 언어에서는 0.3이라고 나오지 않습니다.

크롬을 사용한다면 지금 F12를 눌러 Console탭에서 확인해보세요.
( sublime text를 사용한다면 ctrl+` )

JavaScript ( Chrome Console )
Python ( Sublime Text 3 )

자 이쯤되면 알고계신 분들이라면 고개를 끄덕이며 "당연한거 아냐"하시겠지만, 저처럼 정확한 이유를 모르시는 분들은 '머가 문제야!' 혹은 '왜!!'하면서 더운데 더 덥게한다면서 짜증을 내면서 컴퓨터를 끌지도 모르겠습니다.
( 한국전력 헌정 블로그였습니다. -_- )

노랑책(자바스크립트 프로그램밍)에서는 부동소수점 사칙연산은 정수 사칙연산보다 부정확하며, 오류가 아니라 IEEE-754에서 정의한 방식대로 계산했기 때문이라고 합니다. (계속 한국 전력 헌정 블로그입니다. -_-; )

컴퓨터에서 정보를 저장하기 위해서 비트형태 변환하여 저장한다는 사실은 거이 모두 알고 계실것 같습니다. 그리고 정수를 저장할 때는 이진법으로 오차없이 저장을 하게됩니다.

하지만 부동소수점(실수)를 저장할 때는 어떻게 저장할 까요?

IEEE-754에서 부동소수점을 저장하기 위해서는 아래의 그림 처럼 부호, 지수, 가수로 분리하여 저장합니다.


32비트에서는 부호 1비트, 지수 8비트, 가수 23비트로 저장한다고 합니다. 이제 0.1를 IEEE-754에서 정의한 방법으로 저장해봅시다. 그런데 부동소수점 이진법으로 어떻게 변경하는지 아세요?

곱하기2를 해서 1보다 크면 1, 작으면 0으로해서 변경합니다.
( 간단히 말해서 정수반대죠 )

0.1 x 2 = 0.2 이므로 1보다 작으니 0
0.2 x 2 = 0.4 이므로 1보다 작으니 0
0.4 x 2 = 0.8 이므로 1보다 작으니 0
0.8 x 2 = 1.6 드디어 커졌네요. 1, 그리고 0.6은 다시 반복
0.6 x 2 = 1.2 1보다 크므로 1
0.2 x 2 = 0.4 이므로 0 ( 앗 다시 0.4가 나왔네요. 아주 반갑네요. 사실 손 슬슬 아파 오거든요 )

따라서 0.1를 이진수로 변경하면 0.000110011... 이렇게 된다는 것을 알 수 있습니다.
암산으로 0.2도 계산해보면 0.00110011... 입니다.
( 0.2는 0.1에서 한칸씩 당겨져 있습니다. )

32비트에서 제일 큰 부분인 가수부분은 0.1, 0.2 둘다 '10011001100110011001101'이것으로 들어갑니다. 음 그렇쿤하고 넘어가셨는지 모르겠지만 실제 2진수 지수법으로 표기해 보면 아래와 같습니다.


2진수 지수법은 특성상 항상 맨앞이 1인 것을 알 수 있습니다. 그래서 조금이라도 더 많이 더 정확히 저장하기 위해 맨앞의 1은 저장하지 않습니다. 그러면 '10011001100110011001100'이 저장되어야 하는데 뒤부분이 '1100...'으로 무한 반복되기 때문에 반올림되어 '10011001100110011001101'이 저장됩니다.

즉 0.1, 0.2 모두 이 반올림 때문에 0.3 보다 조금 큰 실수가 나오게 됩니다. 자바스크립트로 확인을 해보면 아래와 같습니다.


실제 연산을 해보면 처음에 나왔던 수 보다 큰 것을 알수있습니다. 왜 더 큰지 -_-??
더 자세한 내용은 참고자료를 링크걸어둡니다.




참고자료
http://en.wikipedia.org/wiki/IEEE_floating_point
http://pub.mearie.org/ieee_754 : IEEE 754 옛날 영문 위키를 번역, 첫 링크에가면 추가된 내용이 많이 있습니다.
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=177 : 소수점을 이진수로 변경하는 방법이 있음
http://itguru.tistory.com/199 : 모든 컴퓨터 과학자가 알아야 할 부동 소수점의 모든 것, 번역본이 있음.

화요일, 8월 13, 2013

SublimeFormatSQL :ST3

사무실에 에어콘이 꺼졌어요!!! 파업중 (/-_-)/(/-_-)/
하지만, 이럴때 정말 자기가 하고 싶은일을하면 조금 덜 더워지는거 아세요?
그래서 전 했습니다. 짠


원래는 ST2용 plugin으로 있지만, ST3용으로는 없습니다. ㅠㅠ, 전 ST3를 써야합니다. 왜!!
정품유저이거든요 ㅎㅎ

ST2 플러그인을 ST3용으로 바꾸기 위한 기본적인 가이드는 아래의 URL에 있습니다.

http://www.sublimetext.com/docs/3/porting_guide.html

ST2용 SublimeFormatSQL 플러그인의 경우 sqlparse라는 파이썬 모듈을 사용합니다. 다행히 sqlparse가 python 2.X용으로 작성되어 있지만, 3.x이 설치된 환경에서 설치하면 3.x으로 변환되어 설치됩니다. ( 사실 한줄로 적었지만 개인적으로 상당히 놀랬음 )

그런데 ST3에서 파이썬 모듈을 거이 바로 사용할 수 있지만, sqlparse처럼 하위에 모듈이 존재하면 ST3에서 바로 호출이 안됨니다. porting_guide에 나오듯이 모듈패스를 변경해야하는 것으로 알고있습니다. ( 혹시 더 좋은 방법을 아시면 연락을....)

전 이부분이 조금 귀찮아서 ST3에 있는 python3.3.zip에 3.x용으로 변환된 sqlpare를 넣었습니다.


그리고 FormatSQL.py 파일을 조금 수정했습니다. 원래는 선택된 SQL문을 변경하지만, 저는 현재 커서가 있는부분에서 아래위로 빈줄을 확인하여 포맷팅되도록 했습니다.

sqlparse.zip
SublimeFormatSQL.zip

화요일, 7월 16, 2013

파이썬에서 파일 라인단위로 읽기, 어떻게 하세요?

파이썬에서 파일을 라인단위로 읽어서 처리하고 싶을때 어떻게 하세요?
Loading ....