1/31/2009

미국에서 성장하고 있는 직업 30가지


미국에서 성장 가능성이 가장 높은 직업 30선에서 연봉 서열 1위는 컴퓨터 소프트웨어 엔지니어이다. 뭐 이 자료는 평균 연봉이 높은 직업 순위가 아니라 앞으로 인력 수요가 많아질 직업군 순위를 의미한다. 즉 소프트웨어 엔지니어를 하려고 하면 미국에서 취직하기에 가장 어플라이할 곳이 많아진다는 소리다. 가장 많다는 것도 아니고 많아지게 성장하는 속도가 빠르다는 얘기다. 그 이상의 의미도 없다. 하지만, 이런 자료만 봐도 세상이 어떻게 변하고 있는지를 잘 보여 준다고 생각한다.

15. Computer software engineers, applications
Average annual salary: $82,000
Employment change: 226,000 new jobs; 45 percent growth
 
28. Network systems and data communications analysts
Average annual salary: $67,460
Employment change: 140,000 new jobs; 53 percent growth
 
1. Registered nurses
Average annual salary:
$59,730
Employment change: 587,000 new jobs; 23 percent growth
 
소프트웨어 엔지니어링은 이제 세상이 돌아 가는데에 부가적이고 있어도 되고 없어도 되는 분야가 아닌지 오래 되었다. 우리가 사는 데에 집이나 옷, 음식, 물, 전기 등이 필요하듯이 컴퓨터와 인터넷은 이제 생활 필수품이다. 

우리 애 학교 숙제나 정보도 아직까지 학교에서 인쇄물이 날아 오기는 하지만 상당수가 pdf 파일이나 학교 홈페이지로 대체 되고 있다. 그때에 느낀 것은 인터넷이 없으면 애 숙제도 못해주는 시대구나라는 것. 더 중요한 것은 컴퓨터 전문가나 네트워크 전문가가 아니어도 컴퓨터와 네트워크를 충분히 잘 많이 사용하고 있다는 것이다.

정말 세상이 빠르게 변한다라는 것을 느낀다. 내가 13년전 PPP서비스를 제공하는 한국의 어느 소형 ISP에서 아르바이트를 할 적에 동료들과 하던 얘기 중에 과연 이놈의 인터넷은 언제 대중화가 되는 거야 이런 것이었다. 그런데, 정말 순식간에 몇년 사이에 세상이 바뀌어 버렸다.

이제 앞으로도 어떻게 변할 지 흥미 진진하다. 물론 흥미 진진하게 따라 가려면 피곤하게도 많은 것을 계속 학습해야 한다는 것이 부담이기는 하지만 말이다. 이제 또 무슨 언어와 플랫폼에 베팅하는 것이 승산이 높은 걸까?

Posted via email from bugtruck's posterous

1/30/2009

윈도우즈에서 디렉토리와 파일의 변경 여부를 실시간으로 감지하기(초간단 버전)


윈도우즈 익스플로러를 사용하다 보면 새로운 파일이 다른 곳에서 네트워크를 통해서 복사 되어 오거나 할 경우, 자동으로 익스플로러 창에 새로 추가된 파일이 나타나는 것을 알 수 있습니다. 이러한 기능은 매번 익스플로러가 디렉토리를 스캔하는 것이 아니라 그냥 노터피케이션 루틴을 걸어 놓으면 디렉토리나 파일에 변경 사항이 있을 경우 이벤트를 보내 주는 식으로 처리 됩니다.
 
거기에 사용되는 API가 바로 "ReadDirectoryChangesW Function (Windows)"입니다.
 
본격적인 보안 제품 등에는 사용하기에는 좀 불안정한 루틴이지만, 그냥 파일이나 디렉토리의 변경 사항을 간단하게(유저랜드에서) 모니터링할 필요가 있을 경우에 꽤 유용한 API입니다.
 
간단하게 예제를 찾아 보니 뭐 이런 간단한 예제가 있군요.
파이썬에서도 사용이 가능합니다.
 
뭐 설정 파일이 변경 되면 바로 리로드한다든지 하는 기능에 써먹을 만 하죠.

Posted via email from bugtruck's posterous

1/29/2009

하루 종일 메일질(부제: 메일을 사랑한 사나이)


회사에서는 바로 옆에 있는 사람한테도 메일로 소통한다.
 
어차피 말로 하는 것이 빠르기는 하지만(실시간 응답이 오니), CC를 해야 하는 경우는 말보다는 메일이 효율적이다. 여기서는 업무의 95%는 이메일로 처리가 가능하다고 보면 된다. 한국처럼 메일 보내고 빨리 빨리 응답을 기다리지는 않는다. 뭐든지 FIFO라서 먼저 온 것 처리하다가 메일 순서대로 읽다가 내 리퀘스트가 처리되고는 한다. 나도 그런식으로 처리하고... 물론 메일 말고 버그트래킹 시스템도 그렇게 처리된다. 모든 것이 FIFO다. 물론 priority가 올라가면 그 놈을 먼저 처리해 주는 예외 상황을 만들기도 한다. 게다가 상사한테 존대말 안써도 되니 문체도 바꿔 가면서 쓸 필요도 없다.
 
회사 업무로 하루에 받는 메일은 수십 통 이상인듯, 쓰는 메일은 10통에서 20통이다.  한번에 CC를 수명에서 수십명씩 해댄다. 나중에 CC에 CC를 하다가 보면 쓰레드가 10개를 넘어 가기도 다반사.
 
어쨌든 바로 옆 사람한테 메일 보내면 스스로 웃기기도 해서 피식하고 속으로 웃기도 한다.  그래도 메일이 있으면 나중에 검색이 되니 좋다. 기억은 검색이 안되잖아 -_- 안그래도 기억력도 나쁜데... 그런데 이 놈의 메일 하도 많으니 구글 데스크탑이라도 쓰지 않으면 검색하는 것도 한참이다.
 
지금 이 포스팅도 메일로 하는 것이다. 매일 메일질이다.

Posted via email from bugtruck's posterous

실수 투성이


인간은 실수를 한다. 인간은 동물이다. 고로 인간은 실수의 동물이다. 나는 인간이다. 고로 나도 실수의 동물이다. 내가 인간인데 신이 될 수 없으므로 실수를 할 수 밖에 없는 것이다.
개발과 실수는 서로 잘 어울릴 수 없는 개념이다. 그러면 내가 인간인데 개발을 하면서 실수를 하지 않는 다는 것은 사실상 애초부터 불가능한 이야기이다.
 
그래서 더욱 겁이 난다. 단지 2-3줄의 코드를 고치는 데에도 보고 또 본다.
 
TDD 책들에도 여러번 언급이 되지만, 초기 개발 단계에서 발견하지 못한 실수를 나중에 릴리즈가 된 상태에서 수정하려면 몇배 이상의 비용이 든다. 그래서 TDD가 필요하다고 한다.
 
TDD는 이미 내 주말 프로젝트나 실무에서 도움을 주고 있다. 다만 레거시 코드에 접합 시키는 일은 너무 힘들다.
 
어쨌든 하루 종일 버그 픽스 하느라 시간을 보내면서 해본 생각이다.

Posted via email from bugtruck's posterous

익셉션(exception)과 메모리 릭(memory leak)

C++에는 전통적인 C의 플로우 콘트롤 패쓰의 개념을 넘어서는 익셉션(exception)이라는 개념이 있다. 처음 나는 C를 배울 때에 익셉션이라는 개념 자체를 배우지 않아서 약간의 거부감을 가지고 있다. 하지만 C++로 개발하다 보면 익셉션이라는 개념은 너무나도 많이 사용되고, 또한 편리함도 많은 가져다 준다. 또한 버퍼 오버플로우 취약점을 exploit하기 위해서도 사용되는 좋은 녀석이다. 더 좋은 것은 이 익셉션 핸들링이 윈도우즈 커널 모듈 프로그래밍에서도 지원된다는 것이다.
그런데 이 익세셥 처리를 잘못하면 메모리 릭을 유발하는 경우가 있다라는 것을 이제서야 체험하게 되었다. 고객사에서 자꾸 메모리 릭을 호소하는데, 그 릭킹이 일어나는 풀택(PoolTag)을 아무리 찾아 봐도 논리적인 흐름상 꼭 메모리가 해제되도록 되어 있다. 그런데 단 한가지 내가 간과한 것은 바로 코드 어느 부분에서든지 익셉션이 일어 날 수 있다는 점이다. 코드의 최상위층에서는 모든 익셉션을 핸들링 하고 있으므로 그 익셉션은 조용히 처리되어서 넘어 간다. 대신 메모리가 해제 되지 않는 일이 발생하는 것이다.
결자 해지라고 익셉션으로 발생한 메모리 릭은 또한 try-finally라는 구문을 써서 해결할 수 있다. finally 블럭에 메모리 해지 루틴을 넣어 두면 익셉션이 발생하건 정상적으로 리턴하건 간에 그 블럭에 있는 "termination statement"를 무조건 호출하게 되어 있다. 그 부분에 ExFreePool을 넣어 주면 되는 것이다.
 
"""
The compound statement after the __try clause is the guarded section. The compound statement after the __finally clause is the termination handler. The handler specifies a set of actions that execute when the guarded section is exited, regardless of whether the guarded section is exited by an exception (abnormal termination), or by standard fall through (normal termination).
"""
 
커널 랜드에서는 간단한 메모리 접근조차도 익셉션을 일으키는 경우가 많으므로 메모리 해지시에는 try-finally를 쓰는 것을 습관화하는 것이 아무래도 골치 썪을 일을 줄이는 방법인듯 하다.

Posted via email from bugtruck's posterous

SOURCES 파일의 비밀


Windows DDK나 WDK로 개발할 때에 Sources 파일을 주로 이용하게 된다. 그리고 이 Sources 파일은 setenv.bat와 makefile.def에 의해서 세팅된 환경 변수와 Sources 파일 자체에 지정된 매크로(macro)를 이용하여 세밀한 환경 설정이 가능하다. 환경 변수와 매크로는 거의 동급이라고 한다. 즉, Sources 파일에 지정할 것을 환경 변수로 지정해도 바로 먹힌다는 것이다.
그런데, 이렇게 유연해 보이는 Sources 파일에 하나 큰 문제가 있다. "!IFDEF"와 같은 조건문을 사용 가능한데, 매크로 중에 컴파일할 소스 파일 리스트를 가지고 있는 "SOURCES"라는 매크로는 "!IFDEF" 문을 초월한다. 그래서 "!IFDEF" 조건에 맞추어 "SOURCES" 매크로를 아무리 설정해도 전혀 먹지 않고, 가장 마지막에 세팅된 값을 사용한다.
이 것이 버그인지, limitation인지 아니면 feature인지(설마)는 잘 모르겠지만, 이것 때문에 벌써 30분 이상을 소모했다. -_-;;;
결국 소스 파일 마다 "#ifdef"를 넣어서 특정 이름이 정의 되었을 경우에는 소스 자체를 컴파일하지 않는 고육지책을 썼다.

Posted via email from bugtruck's posterous

두가지 스택 오버 플로우


IE7에서 INPUT 태그에 수천바이트 이상의 문자열을 집어 넣으면 스택 오버 플로우가 난다고 버그트랙에 권고문이 올라온 모양이다.
바로 마이크로소프트 SWI에서 해명 기사가 올라 왔다.


스택은 쓰레드 생성시에 지정되는 메모리 영역으로서, 너무 많은 데이타를 스택에 집어 넣다 보면 언제가는 스택이 꽉 차는 경우가 있다. 이 경우는 진짜 말그대로 스택이 넘치는 스택 오버 플로우가 생기는 것이다.
스택의 변수의 바운더리를 넘겨서 데이타를 저장할 수 있는 스택 오버플로우와는 다른 종류의 버그이고, 보안상의 위협보다는 프로그램의 사용성에 문제를 일으키는 것으로 안다.
alloca()와 같은 함수를 너무 남용했을 경우에도 발생할 수 있으므로 주의를 기울여야 한다.
하지만 보안상으로 exploit은 불가능한 것으로 생각된다.
특이한 것은 스택 값을 덮어 써서 나는 스택 오버플로우는 디버거에서 스택 오버플로우라고 에러코드가 절대 나지 않고 다만 EIP등이 엉뚱한 곳으로 튀는 반면, 버퍼가 모자라서 생기는 버퍼 오버플로우는 디버거 메시지가 스택 오버플로우로 나와서 사람을 헷갈리게 한다는 것이다.

Posted via email from bugtruck's posterous

1/28/2009

파워쉘 스크립트(Windows PowerShell Scripts) 돌리기라도 하기


어쩌다보니 WSH도 아닌 파워쉘을 돌릴 일이 생겼다. 파워쉘이 기본으로 안깔려 있기에 MS에서 다운로드 해서 스크립트 실행하니 무슨 에러를 내 뿜는다. 일단 당장 파워셀 스크립의 확장자(extension)도 모르겠다. 찾아 보니 황당하게도 ".ps1'이다. 1은 도대체 뭔지??? 버전 넘버인가?
 
확장자를 붙여 줘도 안돌아 가길래 더 서치해 보니, 다음과 같은 명령을 수행해서 실행 옵션을 주어야 인터넷에서 다운로드 받은 파워쉘들이 돌아 간다.
 
Set-ExecutionPolicy RemoteSigned
 
저거 알아 내려고 인터넷을 다 뒤져야 하니, 정말 불친절한 파워쉘이다.

Posted via email from bugtruck's posterous

VIX API: VMWare 게스트를 자동화하기 위한 솔루션


VMWare 게스트를 자동화하기 위한 솔루션에 대한 문서.
 
이번에 QA로 진절 머리가 나서, 한번 쳐다 보기 시작...
시스템을 100번쯤 부팅 시키면 한번 정도 나타나는 문제를 수동으로 하다가는 병걸려 죽을지도 모른다. 그냥 C로 프로그램하나 짜두고 스냅샷으로 되돌리면서 계속 테스트를 밤새 걸어 놓으면 테스트 완료. 각각의 테스트 결과 로그는 각 테스트 마다 호스트 머신으로 전송 받아 놓을 수 있다. 다만 게스트의 GUI에 대해서는 자동화가 불가능하므로 그 부분은 다른 솔루션을 찾아 봐야 할듯...이미 QA에서 HP에서 나온 무슨 프로그램을 사용하던데...
오늘 저녁에 한번 간단한 프로그램 만들어서 시험 가동해볼 예정이다.

Posted via email from bugtruck's posterous

블링크 엑티브 엑스 프로텍션(BLINK ActiveX Protection)


내작품.
 
"This methodology has proven to be much more effective than the decryption methods of other intrusion protection vendors," said Andre Protas, eEye director of Research and Preview Services. "We developed the technology through our R&D team, which constantly analyzes current attack trends to identify the next evolution of threats. While many of these evolutions have small iterations and change rapidly, we typically identify a common denominator that allows us to provide protection against current attacks as well as the next evolution of attacks."
 
사실 추상적인 아이디어는 몇년전부터 회사 내에서 떠돌고 있었는데, 구체적인 아이디어로 정리하고 깔끔하게 구현하는 것이 난관이었다. 혼자서 잘 알지도 못하던 COM을 공부하고, 내부 구조 공부하느라 난리를 떨었다. COM에 대해서만은 이제 어떻게 돌아 가고 Internet Explorer에서 어떻게 사용되는지 확실하게 알고 있다라고 자신한다. 그렇지 않았으면 저런 프로텍션 기작을 만들지도 못했을테니까 말이다. 사실 저거 특허 문서 쓰는 데에만 한달이 걸렸다. 특허가 통과 될지 리젝 되어서 또 한번 삽질을 해야 할지는 잘 모르겠지만, 나름대로 2008년을 의미 있게 만든 작업이었다. 물론 주위의 많은 사람들이 도와 주지 않았다면 불가능한 일이었을 것이다.

Posted via email from bugtruck's posterous

1/27/2009

포츈 쿠키


포츈 쿠키라고 중국 음식을 시켜 먹거나 아니면 그냥 보통 아시안 음식점에서들 주는 쿠키가 있다. 거기에 뭐 너는 어떻게 어떻게 될 것이다라는 식으로 문구가 써있는데, 이 놈의 문구들은 너무나도 당연한 얘기들이어서 뭐라고 반박할 수도 없는 것들이 많다. 즉, 포츈 쿠키는 대부분 나의 미래를 예측한다.
 
오늘의 문구:
You shouldn't overspend at the moment. Frugality is important.
"지금은 돈 많이 쓰지 마라. 검소함이 중요하다."
 
이 포츈 쿠키도 시대 상황에 따라서 문구를 조정하나? 어쨌든 틀린 말은 아니다. 검소함이 중요하지... 암... 항상 100% 맞는 예언을 하는구나... 항상 나를 뒤돌아 보게 하는 포츈 쿠키. 고맙다 포츈 쿠키.
그런데 드는 생각이 예를 들어 변태 포츈 쿠키를 만들면 어떨까?
 
"돈 많이 써라. 돈을 써야 친구가 많아진다."
 
이런식으로... -_-

Posted via email from bugtruck's posterous

지루한 회의


원래 쿼터마다 점심을 먹으면서 전체 회의를 하는 것이 원칙인데, 이번에는 한 꽤 오랜만에 회의를 하였다.
점심은 중국 음식. 뭐 대충 먹고, CEO와 VP들 얘기 듣는 것이 정말로 힘들다. 거의 1시간 반을 계속 듣고 있는다는 것이 힘든 일이다. 뭐 사실 몰라도 사는데에 전혀 지장 없는 이야기들...회사 돌아 가는 이야기들... 사실 다 아는 이야기들...
그래도 한국에서의 회의보다는 횟수가 적으니 참아야 할듯 -_-

Posted via email from bugtruck's posterous

봉?


미국에 사는 것이 무슨 죄인지. 한국에서 보는 미국은 환타지 속의 세계일지도 모르지만, 여기서는 엄연한 현실의 세계이다.
 
3-4명의 성인이 놀러 와서 한 달 동안 집에 머무른다고 생각해 보자. 물론 들뜬 기분에 즐거움이 가득하게 보내겠지만, 우리는 현실 세계에서 우리의 생업을 계속해야 한다.
 
미국에 산다는 이유만으로 우리가 미국 가면 너희 집에서 한달 동안 있어도 돼지?라는 식으로 접근하시는 분들이 있다. 그것도 단체로 말이다. 한명이라면 좀 다른 얘기이지만. 그냥 그런 일을 한국식으로 감내해야 하는 것인지 미국식으로 "NO"라고 해야 하는지 기준이 확실치 않아서 항상 고민하는 경우가 많다.

Posted via email from bugtruck's posterous

크레딧 카드에 관한 충격적인 보고서: Maxed Out


미국 다큐멘타리들은 이런식으로 뒤통수를 때리는 충격을 주는 드라마들이 많다.
전에 파렌하이트 911도 그렇고, 조용하게 인터뷰들과 이미 알려진 사실들을 적시하고 재배치하면 정말 무시무시한 내용이 되고는 한다. 이 다큐멘터리도 정말 "충격"적이다. 뉴스 푸티지와 몇몇 개인들의 인터뷰가 적절하게 뒤섞여 있는데, 보면 볼 수록 충격에 휩싸이게 되고. 나중에는 이것 완전히 세상이 무너지는 것이 아닌가 하는 생각까지 든다.

몇가지 뽑은 충격적인 사실들
미국 정부의 빚이 너무 많아서 이자로 지불하는 돈이 홈랜드 시큐리티, 교육, 헬쓰 케어에 지불하는 비용보다 많다.
미국에서 지난 10여년간 1000만명 이상이 뱅크럽시하였다.
1년에 뱅크럽시하는 사람이 그해 대학 졸업자나 암으로 사망하는 사람, 이혼하는 사람들 보다 많다.
크레딧 점수라는 것이 있는데, 그것을 산출 하는 알고리즘은 공개 되어 있지 않다고 한다.
크레딧 점수는 수입과 상관이 없다고 한다.
미 정부는 소셜 시큐리티 트러스 펀드(우리 나라로 치면 국민 연금)를 꺼내다가 이자를 갚고 있다(그러면 내가 낸 한달 수백불의 돈이 -_-).

크레딧 카드를 쓰다가 연체가 되면 이자가 45-50% 까지 올라간다. 나중에 보면 1달러당 2달러의 이자를 내야 하는 상황이 온다고 한다. 내용 중의 어떤 사람은 175불짜리 물건을 샀는데, 사기성 있는 크레딧 회사에 의해서 연체에 연체를 하다가(계속 돈을 지불하지 않았다는 식으로 나옴) 연체료로 결국은 700불이 넘게 지불했다고 한다.
크레딧 카드 회사의 주 수익원이 되는 사람들은 연체자들이다. 그래서 일부러 그러한 사람들을 필터링하지 않고 크레딧 카드를 내어 준다고 한다. r즉, 일부러 아무런 신용 자료가 없는 사람에게도 카드를 마구 마구 만들어 준다. 또한 크레딧 회사에서 가장 선호하는 고객들 중의 하나가 바로 뱅크럽시를 한번 한 사람이다. 그러한 사람들은 다시 뱅크럽을 할 수가 없고, 또한 대부분 풀 페이먼으로 크레딧 빚을 갚지 않고 최소 페이먼만 하는 속성이 있어서, 크레딧 회사에게 많은 수익을 안겨 주는 것이다. 
결국 그런 나쁜짓을 하던 크레딧 회사들은 이제 스스로 신용 위기라는 역풍을 맞아 몰락을 맞이하고 있다. 어떻게 보면 이렇게 크레딧 회사들이 무너져 나가는 것이 다행일지도 모른다.

미국 중산층의 몰락에 대한 이야기는 오래 전 부터 있어 왔다. 영화나 TV 드라마에도 유독 중산층의 몰락에 대한 내용들이 많다. 보지는 않았지만 갑자기 남편을 잃은 여인이 마약 딜러를 한다는 Weeds 라든지, 또 화학 선생이 큰 돈이 필요해서 옛날 제자와 함께 마약을 제조해서 파는 내용의 드라마라도 있다. 또 짐 캐리가 주연한 영화 Fun with Dick and Jane 에서도 회사에서 짤려서 새로운 직장을 구하지 못해 집이 경매(포클로져,foreclosure)에 넘어가게 되자 은행 털이까지 하게 된다는 내용이 있다. 또 얼마전에 본 "Mad Money "라는 영화를 보면 거기서도 중산층이 몰락해서 지폐공사(?)에 청소부로 취직해서 폐기 처분 하는 돈들을 훔쳐 낸다라는 내용이 있다.

2006년에 제작되었지만 다큐멘터리를 보고 있자면, 뭐 이번 경제 위기가 결코 우연이 아니라는 확신이 든다. 그리고 이번 경제 위기가 사회를 치료하기 위한 어쩔 수 없는 사회적인 자가 치료 과정이라는 생각도...

Posted via email from bugtruck's posterous

1/26/2009

우리는 이미 리세션 속에 와 있다


모기지 뱅커로 잘나가던 사람이 구두를 닦고, 4000스퀘어핏(못해도 수 백평) 집에 살던 사람이 사무실 한칸에서 살고...
사람들이 잡을 찾아서 구인광고 신문을 뒤적거려야 하는 시대가 되었습니다.
내년까지 실업률 8.8 퍼센트까지 간다는데 정말 무서운 상황입니다.

http://cosmos.bcst.yahoo.com/up/player/popup/?cl=11721073

어떻게 보면 이 기회가 미국인들과 저에게 주어진 좋은 각성의 기회가 될지도 모르겠습니다.
저 비디오에 나온 뚱뚱한 아저씨는 비록 사무실에서 살지만 살은 엄청 뺐다고 하네요.
경제와 사람들의 정신 세계에서 거품이 다 빠지고 나면, 알맹이만 남아서 조금 더 겸손해 지고, 세계를 두려워 할줄 아는 미국인들이 되기를 바랍니다.
그것이 미국을 지탱해온 정신이 아닐까 생각해 봅니다.

배가 부른 것보다 어쩌면 배가 고픈 상황이 우리의 잠재 능력을 더 건강하게 사는데에 도움이 되는 것이 아닌가 싶습니다.

Posted via email from bugtruck's posterous

Kramer vs Kramer


크레이머 vs 크레이머

크레이머는 아버지의 이름이자 아들의 이름이다. 엄마가 무엇인지 모를 이유로 집을 나가서, 빚어지는 부자간의 생활상이 주요 내용이다.
원래 아이는 커녕 아내에게도 별로 신경을 쓰지 않고, 밤늦게 까지 회사에서 상사와 잡담이나 나누다가 집에 들어 가던 크레이머씨.
어느날 열이 받았는지 어쨌는지 확실하지 않은 이유로 와이프가 집을 나가 버린다. 가족에 대한 이야기.
남자와 여자 아이의 의미에 대해서 조금 더 생각해 보게 만드는 영화이다.
과연 나는 일과 아내와 아이들 중 어느 것을 사랑하는 것일까?



장점:
1979년 영화로서 70년대말 미국의 뉴욕의 모습을 잘 볼 수 있다.
영화를 다 보면 토스트 만드는 방법은 확실하게 배울 수 있다.
미국의 가족 붕괴 조짐이 70년대부터 시작 되었다는 것을 알 수 있다
더스틴 호프만의 젊은 모습을 볼 수 있다.

단점:
화질이 안좋다.
스토리가 단조롭다.
법시스템의 답답함을 볼 수 있다.

Posted via email from bugtruck's posterous

QA에게 경의를


요 몇일 QA를 해 주고 있는데, 정말 심심하고 답답하다.
계속 VMWare 이미지 갈아 엎고 테스트하는 것 반복...
기계 인간이 된듯함...

Posted via email from bugtruck's posterous

귀리죽을 먹다


귀리죽이라고 그러면 정말 촌스럽다. 어느 옛날 동화에 나오는 마귀 할멈이 먹을 것이 없어서 어디에서 귀리를 구해다가 끓여서 겨우 먹고 연명하는 느낌을 준다.실제로 어떤 전설적인 구두쇠의 얘기를 읽다 보니 돈 아끼려고 평생 귀리죽만 먹었다라는 얘기를 보았다.
그런데 오트밀(oatmeal)은 어떤가? 훨씬 느낌이 세련되어 보인다. 오트밀이 사실은 귀리죽이라는 사실은 다 알겠지만 말이다. 이 놈의 마귀 할멈이나 어디서 주워 먹을 것 같은 귀리죽이 사실은 내가 애용하는 간식중의 하나이다. 원래 근무 시간에 차로 "커피" 내지는 너무 많이 마시면 "코피"가 터져서 "코피"라고 부른다는 음료를 마셨었다. 그런데 정말 "코피"를 많이 마셨더니 코피가 터질 것 같아서 음료를 바꾼 것이 여러 종류의 인스턴트 "차"였다. 그런데 차는 맛이 없었다. 그래서 약간 달짝 지근한 것을 찾은 것이 "귀리죽"="오트밀"이다.
원래는 회사 사람들이 먹는 것을 보고 그냥 호기심 삼아 먹어 봤는데, 처음에는 뱉고 싶을 정도로 맛이 없었다. 그런데 이것도 먹다 보면 먹을만 하고, 나중에는 중독이 된다. 지금 최근 6개월간 하루에 두세봉지씩을 계속 먹어왔다.
귀리의 효과를 간략하게만 보자면 일단 피부에 바르면 피부의 통증을 완화 시켜 준다고 한다. 그래서 피부 보습 크림 중에서 귀리로 만든 것이 많다. 또한 이 놈을 먹으면 속을 편하게 해 준다고 한다. 피부나 위장이나 비슷하게 통증 완화의 역할을 하는 것이다. 또 한가지 직접 발견한 효능은 이 놈을 먹으면 살이 마음껏 찐다는 것이다. 이상하게도 귀리를 먹기 시작한 이후로 몸이 쉽게 불고 있다. 마치 사료 먹인 소와 비슷해지는 느낌이라고 할까? 미국애들이 덩치가 큰 것이 꼭 고기 때문만은 아닌 듯 하다. 그리고, 콜레스테롤도 낮춰 준다라고 포장지에 쓰여 있다. 그리고, 내가 느끼기로는 신경 안정제가 들어 있는 것인지 먹고 나면 마음이 편안해지는것이 나른해진다.
어쨌든 구할 수 있다면 꼭 구해서 한번 먹어 보시길 바란다. 나도 소화력이 떨어지는 편에 속해서 항상 화장실을 자주 들락 거리는 편인데, 오트밀을 먹고 나서 부터는 꽤 효과를 보고 있다. 즉, 화장실 출입을 적게 하고 있다. 나 같은 스트레스에 쌓여 있는 프로그래머들한테는 좋은 음식 인듯 하다. 다만, 배가 나오는 것을 조심하도록!
 
 
내가 먹는 오트밀, 한번에 두세봉지를 스티로폼 컵에 넣고 뜨거운 물만 부어서 저어 먹는다.

Posted via email from bugtruck's posterous

Boost Pool Library: C++에서 가비지 컬렉션을 해준다??


조그마한 오브젝트들을 많이 생성했다가 없앴다가를 자주하는 프로그램이라면 쓸만한 라이브러리이다. 메모리 릭(Memory Leak)이 발생할 확률이 많을 경우에 그냥 이 라이브러리를 써주면 골치 아프게 코드를 추적하면서 어디에서 릭이 나는지 골머리 썩을 필요가 없다.
 
아직 써보지는 않았지만, 앞으로의 프로젝트에 한번 적용해 볼 예정이다.

Posted via email from bugtruck's posterous

도시락


회사에서 도시락을 까 먹는다.
예전에 한국에서 무슨 다큐멘타리를 하는데, 왜인지 잘 모르겠지만, 미국 회사에서 점심을 어떻게 먹는지가 나왔다. 대부분 어디서 샌드위치를 사 오던지, 집에서 싸와서 대충 떼우면서 일도 하고 그러면서 점심시간을 보낸다는 내용이었다.
그때에는 "역시 미국애들은 열심히 일하는구나" 라는 나름대로의 생각을 하면서 부러워했다. 한국에서 점심시간은 세월이지 않은가. 일단 먹을 곳 정하는데에 여러 사람의 의견을 오가며, 수십분을 들이면서 이집 저집 헤매다가 일단 간 곳에서도 손님들이 항상 북적이니 한 30분 그냥 잡담하면서 보내고, 또 나오는 음식들이 대부분 푸짐하기 마련이어서 밥을 다 먹고 나면 1-2시간은 금방 갔던 것으로 기억한다.
그런데 여기 애들도 여건만 맞으면 나가서 쓰시 부페도 사먹고 뭐 그런다. 적어도 전에 있던 사무실에서는 그랬다.
그런데, 이번에 이사 온 건물은 좀 사정이 다르다. 주변에 회사들이 모여 있다 보니 나가서 먹는 것이 일단 피곤한 일이다. 당연히 차를 끌고 나가야 하는데 쇼핑몰에 차를 세우기가 하늘에 별따기이다. 또 식당에 가도 손님들이 너무 많아서 좀 그렇다. 이 것이 경제 위기와 맞물려서 그냥 회사에서 자기 자리에서 조용히 먹거나 아니면 널찍한 회사 키친에서 밥먹으면서 엑스박스 360의 게임을 즐기는 것이 하나의 풍속도가 되었다.
일단 나는 김치를 싸온다는 것이 주위 사람들에게 부담이 될지도 모르겠다. 그런데 다른 사람들 음식 냄새는 더 심한 것 같다. 누군가 불편하면 이야기 하겠지만, 그것 자체가 하나의 디스크리미네이션이 될 수도 있으니까 아무도 얘기하지 않을 것이다. 적어도 나도 앞 사람이 자꾸 방귀 끼어 대는 것에 대해서 아무 얘기도 안했으니까. 방귀 냄새 보다는 김치 냄새가 나을 것이다라고 생각한다. 방귀끼는 것 얘기했다가 인종 차별자로 보일려나. 중국에서는 분명히 방귀 아무데서는 끼는 것이 예절에 어긋나지 않을 것이라고 확신하기 때문에 문화의 다양성 존중을 위해서 참고 있다. 여건이 되면 중국 사람들을 만나면 친근하게 방귀를 한번 뀌어 준다든지 하는 연습을 해 볼까 싶기도 하고...이 부분에서 갑자기 선물이라는 훈훈한 만화가 갑자기 생각나네.
이래서 동방예의지국에 태어난 사람들은 쓸데 없는 걱정에 아무 것도 못하고 죽어 가는 것인듯 하다. 예의를 버리자 -_-;;; 대국인들 처럼.

Posted via email from bugtruck's posterous

사람 힘들게 하는 한국 여권의 이름


지금은 붙여서 쓴다고 하는데 예전에는(2004년까지만 해도) First Name이 띄어져서 표기가 되었다. 예를 들어 내 이름은 '오정욱' 인데, First Name은 "JEONG WOOK"으로 표기 되어 있다. 뭐 별일 아닌 것 같지만, 저것이 아주 큰 문제를 불러 일으킬 수도 있다. 외국인들 중에도 First Name에 스페이스가 들어간 이름이 없는 것은 아니지만(SNL에 보니까 First Name에 스페이스 들어간 사람의 모임도 있더라), 한국인의 경우에 First Name을 각종 서류에 기입할 때에 어떤 때에는 여권에 있는대로 스페이스를 넣기도 하고, 어떨 때에는 그냥 "JEONGWOOK"과 같은 형태로 써 버리기도 한다. 또한 어떤 시스템들은 스페이스를 안 받아 들이는 경우도 많다. 그래서 내 이름이 "JEONG WOOK"으로 입력할 경우 "JEONG"을 First Name, WOOK를 미들 네임으로 인식하거나 "WOOK"을 아예 자동으로 없애 버리거나 한다.
영주권 서류 같은 경우에도 이름에 스페이스가 있느냐 없느냐가 굉장히 중요한 이슈이기 때문에 한국 사람들의 경우에는 서류 작성시에 일일이 재확인을 꼭 해 봐야 한다. 정말 아무 생각 없이 서류 작성했다가 저런 것 때문에 문제 생기면 정말 바보가 된 느낌일 것이다.
지금은 다행히 "JEONGWOOK"과 같이 붙여서 발급이 된다는데 정말 잘한 결정이라고 생각된다.
나 이전에 미국이나 다른 국가를 여행하거나 이주 한 사람이 수백만명 이상이었을 텐데 이러한 문제가 최근에야 해결 된다라는 것이 정말 짜증스럽다.
어쨌든 이 외에도 한국 사람의 이름과 관련해서 생기는 문제들이 꽤 있다. 예를 들어 와이프의 성이 달라서 생기는 문제라든가 한국의 미국 대사관에서 발급하는 취업 비자에 와이프의 성 옆에 남편의 성("W/O OH" 이런 식으로)을 기재해 주는데, 그것은 사실 엄밀하게 말하면 여권에 기재된 이름과 다른 이름으로 취급된다. 그런데 미국에서 모든 서류를 작성할 때에 여권이 아닌 비자에 적힌 이름을 기준으로 하므로 아무리 여권에 적힌 이름이 자신이 사용하는 이름이더라도 비자에 적힌 이름을 사용하는 것이 나중에 생길 문제를 예방할 수 있는 방법이다. 캘리포니아 DMV의 경우에는 와이프 성과 내 성을 붙여서 새로운 성(비자의 이름를 보고서는 OHLIM이라는 새로운 성을 만들어 내었다)을 만들어 내는 기염을 토하기도 했다. 그러니 드라이버 라이센스 업데이트하러 가니 도저히 신분 증명이 안되는 것이다. 결국 EAD 카드 이름을 통해서 새롭게 업데이트하기는 했지만, 이런 내용은 정말 어디에 완벽하게 나온 원칙도 없고 있어도 일반인이 굉장히 이해하기 어렵다.
이러한 문제는 닥치기 전에는 절대 예측조차 하기 힘든 문제들이라서 실제로 닥치면 정말 황당하고 당황 스럽고 그렇다. 어쨌든 여권 이름이 편리한 방향으로 나아가는 것 같아서 다행이라는 느낌이다.

Posted via email from bugtruck's posterous

미국, 불황인데 잡이 있을까?


물론 있다.
 
많은 큰 회사에서 수천명씩 감원 태풍이 불고 있지만, 우리 회사만 하더라도 신규 채용이 일부 있었고. 나 자신만 하더라도 다른 회사에서 약간의 관심(?)을 보내 오고 있는 상태이다. 물론 이러한 시기에 회사를 섣불리 옮기는 것이 굉장히 위험한 짓이라고는 한다.
하지만 회사는 돌아 가야 하고, 능력 있는 사람은 항상 필요하다.
감원 대상이 꼭 능력 없는 사람들은 아니지만, 능력이 있다면 이 상황에서도 승승 장구할 수 있는 것이다. 물론 그 능력이 무엇인지 남이 알 수 있게 보여 줬어야 하겠지만 말이다.

Posted via email from bugtruck's posterous

새로운 일주일이 또 시작


흠...
어제는 잠을 제대로 잘 잔듯 하다.
오늘은 몸이 많이 괜찮다.
일단 자정이 되기 전에 잠을 자는 것을 원칙으로 해야 할듯...
영화 보고 코드 좀 만지작 거리고 하다 보면 금새 1시 2시가 되어 버리니 말이다.
오늘 저녁 부터 간단한 산책이라도 할까 싶다...물론 밤에는 바깥 공기가 쌀쌀하기는 하지만 말이다.

Posted via email from bugtruck's posterous

1/23/2009

MSN에 나온 한국의 변기 모양 건물


변기 모양의 건물이라. 세계 변기 협회에서 만드는 것이라는데, 안에는 4개의 최신식 변기가 설치 되어 있다고 합니다.
 
Toilet-Shaped House
http://video.msn.com/?mkt=en-us&brand=msn&playlist=videoByUuids:uuids:b4a28579-cf7f-4685-a21f-3feeb47f2eef&showPlaylist=&from=IV2_en-us_v11HP&fg=gtlv2
 
하룻밤 자는데에 5000만원이라는군요 -_-

Posted via email from bugtruck's posterous

2009년 미국 기업들이 얼마나 보안에 투자를 할까?


엔터프라이즈 전략 그룹이라는 곳에서 기업들의 보안에 대한 투자액에 대한 조사를 실시한 모양입니다. 다행히도 투자액은 작년과 그대로일 것이라고 하고 미 정부와 같이 일부 증액하는 곳도 있다고 합니다. 흠, 잘만하면 이 폭풍을 잘 견디고 지나 갈수도 있겠네요.
 
Recent Enterprise Strategy Group data indicates that security spending should maintain its current pace in 2009. There will be spending increases in some vertical sectors, like the U.S. federal government, but overall, things should remain relatively flat.
 
As they say on Wall Street these days, "flat is the new up." Large organizations will continue to bolster network defenses and focus on protecting confidential and private data. Given the frightening security threat landscape, this is good news.

Posted via email from bugtruck's posterous

마이크로소프트 대대적인 해고 단행


마이크로소프트가 이렇게 적극적으로 구조 조정에 들어 갈 정도라면, 정말 경제 상태가 심각하기는 한가 봅니다. 앞으로 18개월 동안 5000명까지 해고한다고 하는군요. 물론 새로 잡 오프닝도 하는데, 이유는 아마도 같은 능력의 직원을 더 싼 임금에 채용하겠다라는 구상인 것 같습니다. 뭐 다 그런 것은 아니지만, 구조조정 1순위는 고액 연봉부터 짜르는 경우가 많거든요.
 
we will eliminate up to 5,000 positions in R&D, marketing, sales, finance, LCA, HR, and IT over the next 18 months, of which 1,400 will occur today. We'll also open new positions to support key investment areas during this same period of time. Our net headcount in these functions will decline by 2,000 to 3,000 over the next 18 months.

Posted via email from bugtruck's posterous

WiFi로 음악을 연주한다고, 쎄러민(theremin)?

세상에는 진짜 별난 인간들이 너무 너무 너무 많다. 이것은 아마 이 링크를 보시기 전에는 상상도 못하는 짓거리일것이다. 음악 연주하는 것을 한번 들어 보시길...


안테나를 두어개 달아서 전파 세기 등에 따라서 음과 볼륨을 오디오 장치로 내어 보내는 장치로 세러민(theremin)이라고 부른다. 유투브 비디오를 보면 정말 그럴듯하다. 이 글의 필자를 저런 장비를 리눅스상에서 WiFi안테나와 파이썬 스크립트로 구현했다고 한다.

정말 재미 있다. 위키 피디아를 보면 정말 이 장치를 심각하게 생각하는 사람들이 많은 것 같다.
http://en.wikipedia.org/wiki/Theremin

심각한 표정의 연주자도 보이고 -_-


흠 나도 나름대로 엉뚱한 생각을 많이 했다고 생각했는데, 이것은 정말 충격이다.

그런데 이 장치는 원래 20세기 초 러시아의 발명가가 발명했다라고 하니 정말 놀랍다.
From http://en.wikipedia.org/wiki/Theremin
The theremin is an early electronic musical instrument controlled without contact from the player. It is named after its Russian inventor, Professor Leon Theremin, who patented the device in 1928.

Posted via email from bugtruck's posterous

PDB 일병 구하기

가끔 고객들에게 커스터마이즈된 DLL을 따로 보내어서 테스트를 진행하고는 한다. 테스트 환경에서 절대 재현이 불가능한 문제들이 꽤 있다. 그런데 이러한 경우 보낸 DLL에 맞는 심볼 파일을 PDB를 깜빡하고 백업해 놓지 않아서 나중에 그 고객이 덤프 파일 등을 보내 왔을 때에 고생을 하는 경우가 있다. 그럴때에는 결국 내가 만든 DLL에 대해서 IDA를 열어서 디스어셈블을 해 봐야 하는 바보 같은 상황이 발생한다.이제 부터 고객들에게 내보낸 DLL과 맞는 PDB쌍을 꼭 어딘가에 백업해 놓는 습관을 들여야 하겠다.

Posted via email from bugtruck's posterous

애플 퀵타임(QuickTime) 취약점 패치 내어 놓음


애플에서 퀵타임의 여러 취약점에 대한 패치를 내어 놓았군요.
RTSP를 이용한 버퍼 오버플로우에서 부터 H 263 코덱 문제, AVI 파일 처리, MPEG-2 문제 등등...
 
Apple repaired a boundary error that exists when the player attempts to process real time streaming protocols (RTSP). The error could be exploited by an attacker to cause a buffer overflow condition.
A number of other errors plague the QuickTime player. It contains processing errors that could result in a buffer overflow if it attempts to process malicious H 263 encoded files, AVI files, and MPEG-2 and QuickTime Virtual Reality movie files.
 
제가 현재 윈도우즈 머쉰에서는 퀵타임을 안쓰고 있어서 윈도우즈 패치도 같이 나왔는지는 잘 모르겠군요.

Posted via email from bugtruck's posterous

우리 제품(BLINK) 피드백


우리 제품은 원래 기업 사용자를 타겟으로 판매가 되었는데 1년쯤 전부터 일반 판매도 하고 있다. 그래서 많은 일반 사용자들의 피드백을 받는데, 오늘은 재미 있는 피드백을 받았다.
 
공짜 버전을 깔아서 쓰고 있는데 와이프 컴퓨터에는 깔리는데 자기가 사용하는 비스타에서는 안된다고, 만약 이거 되게 해 주면 기필코 3카피 사서 쓰겠다라는...
3카피라고 해봐야 150불 정도 밖에 안되어서, 기업 입장에서는 푼돈에 불과하다. 하지만, 나같이 내가 만든 프로그램을 자식처럼 생각하는 사람에게는 저러한 제안이 도전이 될 때도 있다. 물론 내가 만든 부분의 문제가 아닌것 같기는 하지만 말이다.
 
어쨌든 저런 메일이라도 받으면 기분이 좋다.

Posted via email from bugtruck's posterous

허드슨 강 불시착 비행기 동영상


거의 마지막 부분만 나오지만, 정말 부드럽게 수면을 미끄러져서 착륙을 합니다.
착륙하자 마자 몇초 되지도 않아서 주위의 유람선들이 구조를 위해서 달려 오는 모습이 꽤나 인상적이네요.

http://cosmos.bcst.yahoo.com/up/player/popup/?cl=11674140

미국에 살다 보면 정말 삭막하고 정없는 미국인들이라고 느낄 때도 많지만, 기본이 되어 있는 사람들이 많은 것 같습니다.

Posted via email from bugtruck's posterous

1/22/2009

TDD는 마음의 자세


TDD관련 책들을 조금씩 읽는데 드는 생각은 TDD는 마음의 자세라는 생각이 든다. TDD 책들 대부분이 철학책처럼 TDD가 왜 필요한지에 대해서들 설명해 놓았다. 설명들은 다 조금씩 다르지만, 일단 인간의 불완전성을 인정하고 들어 가야 이해가 되는 것이 사실이다. 눈으로 보기에 완벽해 "보이는" 코드도 인간의 인지와 사고의 한계로 인해서 사실은 잘못된 코드일 가능성이 너무 많은 것이다.
사람은 자기 스스로에게 코드가 완벽하다고 속거나 아니면 주위 환경에 의해서 쉽게 주의를 빼앗 기는 경우가 많으므로 모든 주의를 기울여서 코드가 100% 완벽하게 작성된다는 것은 현실에서는 불가능하다. 인간은 아날로그이고 코드는 디지탈이다. 인간은 실수가 용납되는 세계에 살고 있고, 코드는 실수가 용납 되지 않는 컴퓨터 속에서 살고 있다. 따라서 컴파일이 된다고 해서 올바로 작동하는 코드가 아니라는 이야기이다. 작성된 코드는 이미 버그를 내포하고 있다고 "가정"해야 한다. 그리고, 그 가정은 대부분의 경우 99.9% 맞다.
작년에 회사에서 개발하는 제품에 아주 중요한 기능을 하나 추가하였다. 거의 내가 작업을 진행하였으며, 아주 훌륭하고 대단한 기법을 사용했다라고 스스로 자만하고 내 코드에 흡족해 하고 있었다. 약 3000-4000줄 밖에 안 되는 코드이지만, 제품의 기능을 많이 바꿔 놓은 코드들이었다.
그런데 문제가 생겼다. 에러 처리를 잘못한 부분이 한군데 있었는데, 단지 에러 처리 한줄이면 되는 것을 "깜빡"하고 안 넣은 것이다. 그로 인해서 대부분의 사용자에게는 나타나지 않는 문제들을 일부 사용자들은 경험해야 했다. 그 문제는 "예외 상황"에만 발생하는 버그로서 사용자의 환경에 의해서 발현 여부가 결정된다. 그래서 그 버그는 나의 전체 테스트나 QA의 몇달간의 테스트를 모두 빠져 나갔다.
이 경우 이 문제를 발견할 수 있었을 유일한 기회는 아마 TDD였을 것이라고 확신한다. 해당 함수에 대해서 TDD를 적용하여 해당 함수 콜이 FAIL했을 경우 한번만 테스트 리스트에 넣고 돌려 줬으면 된다. 하지만, 나는 하지 않았고, 결국 많은 사람들에게 누를 끼치게 된 것이다.
TDD를 지금 실무에 적용하려고 "발악"을 하고 있다. 이미 Agile 적인 개발 방법론이나 문서화, 전체 프로그램 테스트, 집중력 강화 등의 모든 사용 가능한 방법들은 이미 투입하고 있으므로 마지막 남은 TDD라는 "눈"을 그려 넣어 주면, 이제 그 누구나 부러워 하는 "완벽"한 프로그래머가 될 수 있지 않을까 상상해 본다. 99% 잘해서 만족하고 흐믓해 하다가도 1%의 버그가 부메랑이 되어서 날아 오면 그날은 정말 기분이 별로가 되고는 한다. 앞으로 그런 아쉬운 순간들을 최대한 줄여 보도록 노력할 예정이다.

Posted via email from bugtruck's posterous

이상과 현실


나에게 이상은 나의 종교의 세계관과 일치한다. 뭐 속세적인 이상을 꿈 꾸었던 적도 있지만, 그러한 것들은 이상이라하기에는 너무 싸구려이지 않은가. 이상 속에 빠져 있다 보면, 현실은 너무 초라해 보이고, 현실은 너무 힘들고 짜증이 난다. 왜 이상을 알지만 현실에 살아야 하는 고통을 견뎌 내야 하는 것일까? 그냥 풀리지 않는 문제이다.
하지만 이상이 없으면 현실은 나의 모든 문제가 되어 버릴 것이기 때문에 이상을 버리지 않을 것이다. 이상이 있는 현실은 나의 일부분 중에 가장 가치 없는 것들의 문제에 불과하다.

Posted via email from bugtruck's posterous

[맥] 불법 iWork '09 다운로드를 통한 트로이 목마 감염 사례 보고


맥용 iWork를 다운로드해서 쓰다가 트로이 목마에 감염되는 사례가 늘고 있군요. 이미 2만건을 넘어 서고 있다고 합니다.
 
by downloading a pirated version of iWork '09 have gotten more than they'd bargained for -- in the form of a Trojan Horse called OSX.Trojan.iServices.A
 
최초의 바이러스인 브레인 바이러스가 불법 복사를 경고하기 위해서 만들어진 것과 비슷한 식으로 맥 악성코드들의 시초가 시작 되고 있나 봅니다. 아직까지 취약점을 exploit해서 퍼진 맥용 웜은 없었던 것으로 기억되구요.
 

Posted via email from bugtruck's posterous

미국 감기


미국 감기는 조금 다를까? 다르다.
 
캘리포니아로 이사 와서 한 2년간은 감기를 달고 살았다. 겨울이 조금 심하기는 하지만 여름도 만만치 않고, 특히 항상 비슷한
날씨 속에서 나름대로 환절기가 있어서 그 기간에 감기가 쉽게 걸린다. 워낙에 일교차가 심한 것도 한몫 한다.
 
여기 감기가 독한 것인지 아니면 한국 감기에만 30년간 적응이 되어서 그런지 처음에는 정말 무지 고생했다. 감기 특성도 한국
것과 많이 달라서 주로 배가 죽도록 아픈 스토막 플루가 많다. 너무 아파서 한 3-4일간 쓰러져 있던 적도 2-3번이나 있다.
그렇게 아프면 도저히 움직일 수 조차 없게 되고, 두통도 무지 심하고 그렇다.
 
그런데, 그것도 해가 갈수록 몸에 저항력이 생겨서 인지 점점 나아지는 것 같다. 첫해에는 거의 비염 비슷한 증상에다가 감기,
두통에 얼마나 괴로웠는지...
 
지금도 특이한 종류의 감기에 걸린 것 같은데, 한번씩 머리가 멍해진다. 언제쯤 좀 나아 지려나..

Posted via email from bugtruck's posterous

캘리포니아 재정 부족 사태(Budget Crisis)와 교육


뭐 알만한 사람들은 다 알지만, 캘리포니아 주 재정 상태가 정말 나쁘다고 합니다. 앞으로 18개월 동안 40조 달러가 부족할 것이라고 하네요. 40조 달러면 한화로 어느 정도인지 상상도 안갑니다. 그래서 공공 기관이나 학교 등의 재정을 감축할 모양인데, 결국 피해를 보는 것은 학생들이겠지요.
 
 
실질적으로 우리 삶에 어떻게 영향을 미칠지는 더 두고 봐야 할 것 같습니다.
결국 미국 교육도 부익부 빈익빈으로 가게 될지 잘 모르겠군요. 뭐 캘리포니아 학생들 학업 성취도가 미국 거의 꼴찌라는 것은 이미 알려진 사실이고...

Posted via email from bugtruck's posterous

비쥬얼 스튜디오(Visual Studio) 프로젝트에 cfix 시작하기


일단 cfix를 다운로드(http://sourceforge.net/project/showfiles.php?group_id=218233&package_id=263204)
한후 ,인스툴후 다음과 같은 프로퍼티만 설정해 주면 일단 사용환경이 셋업된다.
 
Properties -> C/C++ -> General -> Additional Include Directories:
$(CFIX_HOME)\include
Properties -> Linker -> General -> Additional Library Directories:
$(CFIX_HOME)\\lib\i386\
Properties -> Linker -> Input -> Additional Dependencies: cfix.lib
 
CFIX_HOME은 cfix인스톨시에 자동으로 설정되는 전역적인 환경 변수이므로 신경 쓰지 않아도 된다.
 
비쥬얼 스튜디오 2008에서 잘 작동하는 스켈리턴 코드는 다음과 같다.
 
-----------------------------------------------------------------------------
#include "stdafx.h"
#include
static void __stdcall FixtureSetup()
{
  CFIX_ASSERT( 0 != 1 );
}
static void __stdcall FixtureTeardown()
{
  CFIX_LOG( TEXT("Tearing down..."));
}
 
static void __stdcall Test()
{
  DWORD a = 1;
  DWORD b = 1;
  CFIX_ASSERT_EQUALS_DWORD( a, b );
  CFIX_ASSERT( a + b == 2 );
 
  //
  // Log a message -- printf-style formatting may be used.
  //
  CFIX_LOG( TEXT("a=%d, b=%d"), a, b );
}
 
CFIX_BEGIN_FIXTURE( MyFixture )
  CFIX_FIXTURE_ENTRY( Test )
  CFIX_FIXTURE_SETUP( FixtureSetup )
  CFIX_FIXTURE_TEARDOWN( FixtureTeardown )
CFIX_END_FIXTURE()
 
CFIX_BEGIN_FIXTURE( MyOtherFixture )
  CFIX_FIXTURE_ENTRY( Test )
CFIX_END_FIXTURE()
-----------------------------------------------------------------------------

Posted via email from bugtruck's posterous

[영어] SQL의 발음은?


'시퀄'이라고 해야 한다고 주장할 수도 있겠지만, 그냥 '에스큐엘'이라고 발음하는 사람도 꽤 된다.
그래서 편한대로 부르면 되겠다.

Posted via email from bugtruck's posterous

1/21/2009

미국 물가: 비싸다


물가를 보여 주는 지표가 여러 가지가 있지만, 미국 물가 정말 비싸다.

다음은 어느 자동차 보험 회사가 자기네 회사가 싸다고 광고하는 메일에서 스캔을 뜬 것이다.



모두 기본적으로 1년에 보험료가 2000불 이상이다. 물론 결혼한 가정에 자동차를 2대 이상 굴릴 경우이겠지만, 그래도 한국에서 200만원을 자동차 보험으로 내는 경우가 흔한가? 

정말 다른 것보다도 자동차 보험 내는 것이 부담이 많이 되는 나라이다.

Posted via email from bugtruck's posterous

구글의 번역 검색 기능


구글에서 삼바로 검색을 했는데 'Samba'를 찾는다.



번역을 해서 찾는 것인지 아니면 '삼바'와 'Samba'가 연관성이 있는 단어로 설정이 되어 있어서 그런지 모르겠지만, 구글이 정말 대단히 똑똑한 놈이라고 할 수 있겠습니다.

MSN 검색 같은 것도 어쩌다가 써보면 정말 답답하고 검색 결과도 수긍이 안되는 경우가 많더군요.

Posted via email from bugtruck's posterous

인터넷 익스플로러(IE)와 BHO

인터넷 익스플로러(Internet Explorer)의 내부에 접근하기 위해서 BHO라는 녀석을 사용한다. 원래 인터넷 익스플로러에 검색이나 툴바와 같은 부가 기능들 제공하기 위한 용도로 설계 되었으나 악성 코드들도 BHO를 이용하는 경우가 늘었다.

Browser Helper Object - Wikipedia, the free encyclopedia
Because BHOs have unrestricted access to the Internet Explorer event model, some forms of malware have also been created as BHOs. For example, the Download.ject malware installs a BHO that would activate upon detecting a secure HTTP connection to a financial institution, record the user's keystrokes (intending to capture passwords) and transmit the information to a website used by Russian computer criminals. Other BHOs such as the MyWay Searchbar track users' browsing patterns and pass the information they record to third parties.

BHO를 이용해서 사용자의 정보를 가로챌 경우 이를 탐지하고 방어하는 일이 쉬운 일이 아니다. 이미 인터넷 익스플로러에서 모든 접근 권한을 내어 주었으므로 중간에서 이를 필터링할 기작이 존재하지 않는 것이다. 또한 이렇게 수집한 정보들을 밖으로 내보내어도 이는 인터넷 익스플로러의 트래픽으로 간주 되므로 보안 프로그램들이 효율적으로 대응할 수가 없게 된다.

행동 기반 탐지를 시도해 볼 수 있겠지만 대상이 인터넷 익스플로러에 박혀 들어간 DLL이라는 점때문에, 아직까지는 안티바이러스(Anti-Virus)에 의존하는 수 밖에 없을 듯 하다.

일반 유저들은 안티바이러스외에 autoruns등으로 항상 필요 없는 BHO등을 제거하는 노력을 해야 할듯 하다.

Posted via email from bugtruck's posterous

코드가 썩는다

"Test-Driven Development By Example"이라는 책을 읽다 보니 코드가 썩는다라는 말이 나옵니다. 만들면 만들수록 복잡해지고 어디에 버그가 도사리고 있는지 알 수도 없고, 그러다가 어떻게 할 수가 없어서 포기해 버리고 업데이트도 하지 않고 버린 코드를 의미합니다.

저도 생각해 보면 썩혀 버린 코드가 얼마나 많은지 모릅니다. 세상의 빛도 못 보고, 또는 세상의 빛을 봤지만 요절한 나의 코드들에게 심심한 사과의 마음을 전합니다. 앞으로는 썩히는 코드가 없도록 해야겠지요?

Posted via email from bugtruck's posterous

[TDD] 사용하자 마자 Cfix가 도움을 줬다.

앞에 소개한 xUnit 테스트 프레임워크인 cfix 사용법은 무척 간단합니다. 그냥 기존 비쥬얼 스튜디오 솔루션에 cfix 헤더와 라이브러리를 포함시키고 테스트 API를 써서 테스트 루틴을 작성한 후에 컴파일만 하면 됩니다. 물론 바이너리는 dll형태가 되어야 합니다. 그리고 나서 cfix32.exe 등을 사용하여 해당 dll을 로딩해 주면 cfix가 알아서 export된 테스트 루틴들을 순차적으로 수행합니다. 물론 ASSERT문에 걸리면 "Failure"를 출력해 주지요.
오늘 이 프레임 워크를 사용해서 우리 제품에 몇년동안 꼭꼭 숨어 있던 아주 짜증 나던 버그를 하나 잡아 내었습니다. 패킷 프로세싱 루틴의 버퍼 관리 문제였는데, 방대한 코드의 어느 부분이 문제인지 도저히 엄두가 안났고, 패킷을 매번 네트워크로 리플레이 해보고, 특정 트래픽을 발생시키는 테스트가 용이하지 않았다라는 점, 그리고 해당 문제의 출현 빈도가 높지 않았다라는 점으로 인해서 거의 몇년간 방치되고 처리 되지 않던 버그의 하나였습니다.
cfix가 도와준 부분은 기존의 패킷 프로세싱 루틴 중에 어떤 부분이 제대로 동작하는 지를 걸러 주는 역할이었습니다. 복잡한 코드의 해당 루틴이 제대로 작동한다는 확신을 갖게 되자 그러면 이 부분이 문제인가 하고 테스트가 이뤄지지 않은 코드를 보다가 버그가 있다라는 사실을 인지하게 되었습니다. 결국 cfix가 버그 박멸을 도와준 셈이지요.
패킷 처리 테스팅을 위해서 문제를 일으키는 샘플 트래픽 파일(pcap포맷)을 Wireshark으로 열어 해당 데이타 부분을 헥스값으로 카피해서 C 배열로 만들어서 Input으로 집어 넣어 주었습니다.
이 과정에서 가장 어려운 점은 유닛 테스팅을 염두에 두지 않고 설계된 6년이나 된 레거시 코드에 어떻게 유닛 테스팅을 적용하느냐였습니다. 결국 소스 코드에 "#ifdef"로 유닛 테스트일 때에는 하부의 의존성이 있는 루틴들을 부르지 않게 하는 식으로 처리하였습니다. 레거시 코드에 대한 유닛 테스팅도 잘 생각해 보면 여러가지 아이디어가 있을 것 같습니다.
덕분에 몇년 묵은 "쥐새끼" 같은 버그 한마리 소탕을 완료하였네요.

기쁩니다. ^^

Posted via email from bugtruck's posterous

cfix: 윈도우즈 커널 모듈 유닛 테스팅 툴


TDD에 관심을 가지게 되면서 윈도우즈 커널 드라이버를 테스트하기 위한 유닛 테스팅 툴을 찾아 보았다. 바로 찾은 것이 오픈 소스인 cfix이다. 유저모드와 커널 모드 모두에서 유닛 테스트를 제공한다.
 
아직 사용해 보지 않았지만, 문서를 읽어 보니 간단하게 사용이 가능한 것 같다.
 
일단 지금 "내 마음대로 TDD"에서 일단 이 툴을 사용한 TDD로 옮겨 가야 할듯 하다.
"내 마음대로 TDD"는 커널단에서 테스트가 이뤄지도록 하지 않고, 다만 데이타를 유저모드로 뽑아 내애서 테스트 성공 여부를 판단하게 하고 있는데, 그래서 약간 테스트 성공 여부를 판가름 짓는데에 문제가 있다. 일단 오늘 부터 cfix 에 적응하도록 노력해야 겠다.

Posted via email from bugtruck's posterous

1/20/2009

[BugTruck] Test 이메일 포스팅


잘되나 봅시다.
 



Posted via email from bugtruck's posterous

Test 이메일 포스팅


예언


요즈음에 오바마가 대통령직에 오르지 못하고 미국 내에서 내전이 일어 나고, 미국 주요 4개 도시에 핵폭탄이 떨어지며, 전세계의 미군이 철군을 한다라는 내용의 예언이 돌아 다니고 있다. 완전히 드라마 "Jericho"의 내용이잖아.

미국인들은 핵폭탄에 대한 원죄 의식을 갖고 있는 것 같다. 많은 드라마에서 핵폭탄이 주요 모티프가 되어 있고, 실제로 핵폭탄이 터져 버리는 영화나 드라마들도 꽤 된다. 뭐 가장 대중적인 영화로는 터미네이터만 봐도 그렇다. 24의 경우에는 항상 LA에 핵폭탄 위협이 가해지고, 한번은 모하비 사막에서 한번은 LA인근 소도시에서 실제로 핵폭탄이 터지는 장면이 나온다. Jericho의 경우에는 미국내 11개(?) 주요 도시에서 핵폭탄이 터지고, 미국이 여러개의 나라로 분리 된다는 내용이다. 그 외에도 핵폭탄이 터지는 영화가 알게 모르게 꽤 된다.


영화가 은연중에 사람들의 무의식을 드러낸다라고 생각한다면, 미국인 자신들이 핵폭탄을 2개나 일본에 떨어뜨린 전력이 있으니 스스로가 더 무서워 하는 것일듯하다. 그 많은 한국 영화 중에서 핵폭탄이 서울에 떨어진다라는 내용은 거의 찾아 보기 힘들다.

어쨌든 하도 세상이 뒤숭숭하니, 이럴때일 수록 스스로를 뒤돌아 보고 자신의 신념을 지키는 일이 필요할듯 하다. 나라나 개인이나 말이다.

 


애플 아이팟 터치(iPod Touch) 2G 감옥 탈출(Jail Break) 비디오

2G 감옥 탈출이 가능해 졌군요.

 

Apple: iPod touch 2G redsn0w Video Shows Jailbreak in Action
redsn0w, quite simply, bypasses the Apple anti-jailbreak protection that causes the device to stop booting up if a jailbreak were detected.


 

애플이 감옥 탈출 여부를 체크하도록 펌웨어를 개량했었나 봅니다. 이제 고양이와 쥐 의 싸움(cat & mouse game)이 본격적으로 시작 되는 것인가요?

 

흥미진진합니다.

 


위(Wii) 해킹(Hacking)하기

몇일전 크레딧 카드 포인트로 뭘살까 고민하다가 위(Wii)용 젤다(Zelda)를 구입했습니다. 제가 젤다같은 RPG 게임은 별로 좋아하지 않지만 구입 목적은 단 하나, 바로 감옥 탈출을 위해서입니다. 감옥탈출은 iPhone쪽에서 쓰는 용어이고, 정식 명칭은 Twilight Hack입니다. "The Legend of Zelda: Twilight Princess"라는 젤다의 공식 게임 명칭에서 따온 이름이지요.


자세한 인스트럭션은 Setting up your Wii for Homebrew - WiiBrew 에 있습니다.

언어판에 따라서 사용해야 하는 핵이 조금 다릅니다. 해당 테이블도 같은 문서에 있습니다.

이 핵을 실행하면 홈브루 채널(Homebrew Channel)이 설치 되어서 3rd party 어플리케이션들을 마음대로 깔 수 있게 됩니다.

필요한 준비물은 젤다 DVD와 SD카드 정도면 충분합니다.

SD카드에 해킹용 세이브 파일을 넣고, 젤다를 실행시켜서 해당 세이브 파일을 불러 온후에 캐릭터를 뒤로 움직여 주다 보면, 화면이 프리징 되다가 바로 쉘코드가 실행되면서 홈브루 채널을 인스톨하게 됩니다.

홈브루 채널을 통해서 각종 유틸리티나 3rd party게임도 인스톨이 가능한데 아직까지는 아마츄어적인 작품들이 많습니다.

다만 집에서 구운 DVD를 실행시키게 해주는 유틸리티 등이 쓸만한데, 이에 대해서 다음에 시간이 나면 설명 드리겠습니다.


서킷 시티 세일

서킷 시티가 최종적으로 폐업을 하면서 세일을 하는데, 다들 이 기회에 물건을 사려고 난리가 난 듯 합니다. 누구한테는 불행이 누구에게는 행복이 될 수 있는 것이죠.

 


 




미국인들의 쇼핑 매니악적인 면을 보여 주는 그림입니다. 아들이 "아버지 그 사람을 (칼로) 꼭 찔렀어야 했나요?", 그러자 아버지가 아는 말이 "HD TV를 50%나 할인했단다 아들아. 아마도 그 사람도 똑같은 짓을 나한테 했을 거다."라고 대답합니다. 설마 저런 대화를 나누는 부자는 없겠지만, 미국인들의 쇼핑 중독은 가히 엄청나다고 할 수 있습니다. 특히 홀리데이 세일 등을 할 때에는 정말 저런 야수와 같은 면이 팍팍 튀어 나옵니다. 뭐 지난 블랙 프라이데이에 점원이 물건을 먼저 차지하려고 밀려 들어오는 쇼핑객들에게 깔려 죽은 것을 보면 대충 알 수 있지요. 대부분 블랙 프라이데이에는 새벽 4-5시부터 상점이 문을 열고 사람들은 그 전날 부터 추운 밖에서 기다리는 경우도 흔합니다. 또한 물건을 차지해도 사람들이 워낙에 많기 때문에 물건값 계산하는 데에만 한시간 이상이 걸린다고 합니다. 

 

미국이라는 사회가 광고도 그렇고 소비를 엄청나게 부채질하는 사회이기 때문에, 그냥 광고나 인터넷을 보다 보면 정말로 사고 싶은 것이 너무나도 많이 생기고, 아이들도 어린이 프로 중간 중간에 나오는 광고들을 보고 부모에게 사달라고 하는 것들이 한두가지가 아닙니다. 또 그 만큼 세일도 굉장히 많이하구요. 그렇게 해서 이 나라가 돌아 가는 가 봅니다.

Windows CE 5.0 웹서버

신기하게도 Windows CE 기반으로 웹서버(HTTPD)가 있고, 각종 개발 문서도 존재한다. ISAPI 필터와 관련하여 서칭 중에 발견하다.


 

사실 iPhone SDK에도 비슷한 모듈이 존재하고, 실제로 "Air Sharing"이라고 웹서버 기능을 하는 iPhone APP도 존재한다. 간단하게 네트워크를 통해서 파일을 저장해 놓기 위한 저장소로서의 역할을 하는 어플리케이션이다. 하지만 아직까지 CE나 윈도우즈 모바일에서 비슷한 어플리케이션은 못 본것 같다.


 

IDA 5.4 릴리즈 임박

IDA 5.4 릴리즈가 곧 있을 예정인가 봅니다.


Windbg와의 연동은 제가 계속 바라 왔던 것인데 결국 이뤄지는 군요.

 

"With windbg, user and kernel mode debugging is available. The debugger engine from Microsoft, which is currently the only choice for driver and kernel mode debugging, can be used from IDA."

 

IDA Python을 기본으로 내장하기로 했답니다. 개인적으로 IDA Python과 기존 C API가 좀 안 맞는 부분이 많아서 별로 좋아 하지는 않습니다.

"The new IDA will support Python out of box, thanks to Gergely Erdelyi"

 


월요병







주말 동안 잠을 너무 많이 잤다

잠은 잠을 부른다.

어제 오후 교회 갔다가 아는 집사님 댁에서 예배를 드리면서도 계속 졸렸다.

집에 일찍 오려고 했는데 와이프가 저녁을 먹고 가자고 해서 또 몇시간 기다리는 동안 혼자 구석에서 잠을 잤다.

그랬더니 집에 와서 TV좀 보려고 했더니 20분쯤 보고 나니까 또 잠이 오길래 또 잠을 잤다.

그랬더니 벌써 월요일 아침이 되어서 부랴 부랴 출근을...

월요병이다 나의 뇌는 아직도 잠을 요구하고 있다.

 

그런데 계속 자봐야 느는 것은 잠 밖에 없다는 것...

 

도대체 사고가 진행되지 않는다 뇌가 반항한다.

 


ISAPI 필터 개발의 기본(Basic)

ISAPI 필터를 개발하는데에 있어서 기본적인 스텝이 충실히 설명 되어 있다. 


 

잘 읽어 보고 따라 하면 ISAPI 필터 개발도 어려운 것이 아니다. 이러한 SDK적인 지식보다도 결국은 자신의 논리가 프로그램의 질을 결정하는 것이다. 하지만 이러한 SDK적인 지식이 없다면 애초에 아무것도 시작할 수 없다. 따라서 이러한 지식도 잘 습득해 둘 필요가 있다.