2/27/2009

윈도우즈용 커맨드 라인 sha1 체크섬 툴


md5 sum은 이제 밀려나는 분위기라서 파일 체크섬을 sha1으로 잡아 보려고, 윈도우즈 커맨드라인 툴들을 서치하다 찾은 툴. sha1.exe만 받으면 된다.
 
 
GUI도 좋지만 커맨드 라인은 다음과 같이 다른 명령과 섞어서 자동화를 쉽게 할 수 있는 묘미가 있다.
find . -name "*.dll" -exec sha1 \"{}\" ;
 
물론 find.exe는 GNU Win32 포팅 툴에서 설치 된 것이다.

Posted via email from bugtruck's posterous

2/26/2009

리세일 밸류가 가장 좋은 차들


1위는 의외로 미니쿠퍼, 2-5위는 토요타와 혼다등 모두 일본차들.
우리집 세컨카인 CR-V는 5위, 다행. 일본차들이 리세일 밸류가 높은 이유는 아무리 타도 고장이 안나는 경우가 많다라는 것. 진짜 외관상으로는 다 삭아 버린 일제차들도 타보면 무난하게 잘나간다. 15만마일 뭐 이런차들...
 
Best & Worst Depreciating Vehicles - MSN Autos
Best 5 Models in Value Retention
Rank
Brand
Model
3-Year Retention
1.
67%
2.
62%
3.
62%
4.
61%
5.
60%

현대차는 리세일 밸류는 떨어지지만 투자 대비 사용 가치는 최고라고 한다. 10년/10만 마일 워런티이니 정말 든든하지 않은가. 요즘에는 차 사고 1년내로 직장을 잃으면 차를 다시 되돌려 줘도 된다고 한다. 물론 사용한 만큼 감가 상각은 할 것 같다.

Posted via email from bugtruck's posterous

2/25/2009

넘어 올것 같은 영화: 클로버 필드


소재나 아이디어 참신하고 좋다.
핸디캠으로 100% 처리한 것도 대단하고, 시각 효과도 괜찮고.

그런데 카메라가 너무 떨려서, 보다가 정말로 모션 식크니스 때문에 토할 뻔 함...
멀미 때문에 웬만한 3차원 게임은 5분도 못하는데....
지금 뒷골 땡기고 날리 났음.

그 외에는 굉장히 실험적이면서 괜찮은 영화라는 평을 주고 싶다.

Posted via email from bugtruck's posterous

스캠 천국 미국





buy.com에서 수개월전 물건을 사다가 나도 모르게 무슨 체크 박스가 선택된 것을 모르고 그냥 결재를 했었나 보다. 작년 6월부터 꼬박 꼬박 한달에 12불씩 빼가고 있더라. 마침 mint.com으로 계좌 정리하다가 발견해서 항의 하니 바로 환불...
 
이거 벌써 미국와서 두번째 당하는 온라인 스캠이다. 한번은 크레딧 스코어 무료 체크라고 그래서 무심코 약관 동의후 크레딧 점수 확인했는데, 나중에 보니 한달에 수십불씩 꼬박 꼬박 열심히 빼가고 있더라. 열받아서 전화하니 커스터머 보호 단체에 신고라도 할까봐 해지는 잘해줌.
 
야금 야금 돈이 나가는지 모르고 넘어가면 그냥 당하는 거다.
 
96불 생겼으니 이제 저걸로 뭘살까 고민하면 되겠다...
 

Posted via email from bugtruck's posterous

WPT 작동 화면


트리 형태로 CPU 사용량을 함수별로 보여 준다.

Posted via email from bugtruck's posterous

2/24/2009

SQLIte를 커널 드라이버에서 사용하기


나도 드라이버에서 데이타 수집해서 파일로 저장할 때에 바로 SQLite로 저장하면 정말 편리하겠다라는 생각을 해봤다. 그런데 이미 누군가가 시도해서 성공했다고 한다.
 
내가 시도해 볼때에도 Error와 warning들의 홍수 속에서 포기했던 기억이 난다.
다시 시도해서 성공하면 정말 쓸만한 무기가 하나 나오는 것인데 말이다...

Posted via email from bugtruck's posterous

2/23/2009

레지스트리 필터링에 대한 좋은 문서


레지스트리 필터링을 한다면 꼭 읽어봐야할 문서

Posted via email from bugtruck's posterous

본격적인 윈도우즈 퍼포먼스 테스팅 툴


퍼포먼스 체킹 툴을 찾던 중 Windows Performance Toolkit (WPT)라는 툴을 발견했다. 일명 Xperf라고 불리우는 툴이다. 마이크로소프트에서 무료로 제공하는 커널과 유저랜드의 모든 프로세스들의 퍼포먼스를 체크해 볼 수 있는 툴이다. ETW라는 프레임워크를 사용해서 이벤트들을 샘플링하는 방식으로 어디에 프로세스 자원이 얼만큼 사용되는지 측정해 볼 수 있는 툴이다. 더 좋은 것은 단지 어느 모듈이 많은 CPU자원을 소비하는지만을 보여주는 것이 아니라, 실제로 어느 루틴에서 얼만큼의 CPU를 사용하는지, 해당 루틴이 몇번 불리웠는지도 모두 알려준다. 물론 이러한 값들은 샘플링 값들이라 실제값과 완벽하게 1:1 대응하지는 않지만, 그래도 꽤 정확성을 가지고 있을 것이고, 또한 상대적으로 어느 모듈, 어느 루틴이 많은 자원을 소모하는지 알아 내는 데에는 유용할 것이다. 더 좋은 것은 비스타 이상에서는 스택 트레이싱을 제공한다는 것인데, 스택트레이싱을 켜 놓아도 실제로 테스팅 시에는 그다지 시스템 성능 저하가 별로 없었다. 다운로드할 수 있는 인스톨러는 비스타만을 인스톨할 수 있는데, XP에서 사용하기 위해서는 일단 비스타에서 인스톨후에 xperf.exe, perfctrl.dll만 복사해서 XP에서 샘플링이 가능하지만, 어널라이즈를 위해서는 또 비스타에 etl 데이타를 복사해서 해야 한다고 한다. 이렇게 XP에서의 사용이 복잡한 이유에 대해서는  Xperf support for XP를 참조하기 바란다.

Posted via email from bugtruck's posterous

2/19/2009

윈도우즈가 제공하는 Atomic Operation API들


InterlockedExchange*나 Increment, Decrement만을 주로 사용하기는 하지만 다른 API들도 꽤 많다. 특히 LIST_ENTRY를 Atomic하게 조작할 수 있는 API들은 꽤 유용할 듯 싶다. 몇몇 API들을 디스어셈블해보면 #LOCK Prefix를 사용한다. LIST_ENTRY조작하는 API들은 아마도 내부적으로 InterlockedExchange*를 쓰지 않을까 추측하지만 확인해 보지 못했다.

InterlockedAdd InterlockedAdd64 InterlockedAddAcquire InterlockedAddAcquire64 InterlockedAddRelease InterlockedAddRelease64

InterlockedAnd InterlockedAndAcquire InterlockedAndRelease InterlockedAnd8 InterlockedAnd8Acquire InterlockedAnd8Release InterlockedAnd16 InterlockedAnd16Acquire InterlockedAnd16Release InterlockedAnd64 InterlockedAnd64Acquire InterlockedAnd64Release

InterlockedBitTestAndReset InterlockedBitTestAndReset64 InterlockedBitTestAndSet InterlockedBitTestAndSet64

InterlockedCompare64Exchange128 InterlockedCompare64ExchangeAcquire128 InterlockedCompare64ExchangeRelease128

InterlockedCompareExchange InterlockedCompareExchange64 InterlockedCompareExchangeAcquire InterlockedCompareExchangeAcquire64 InterlockedCompareExchangePointer InterlockedCompareExchangePointerAcquire InterlockedCompareExchangePointerRelease InterlockedCompareExchangeRelease InterlockedCompareExchangeRelease64

InterlockedDecrement InterlockedDecrement64 InterlockedDecrementAcquire InterlockedDecrementAcquire64 InterlockedDecrementRelease InterlockedDecrementRelease64

InterlockedExchange InterlockedExchange64 InterlockedExchangeAcquire InterlockedExchangeAcquire64 InterlockedExchangeAdd InterlockedExchangeAdd64 InterlockedExchangeAddAcquire InterlockedExchangeAddAcquire64

InterlockedExchangeAddRelease InterlockedExchangeAddRelease64

InterlockedExchangePointer InterlockedExchangePointerAcquire

InterlockedFlushSList InterlockedIncrement

InterlockedIncrement64 InterlockedIncrementAcquire InterlockedIncrementAcquire64

InterlockedIncrementRelease InterlockedIncrementRelease64

InterlockedOr InterlockedOrAcquire InterlockedOrRelease InterlockedOr8 InterlockedOr8Acquire InterlockedOr8Release InterlockedOr16 InterlockedOr16Acquire InterlockedOr16Release InterlockedOr64 InterlockedOr64Acquire InterlockedOr64Release

InterlockedPopEntrySList InterlockedPushEntrySList

InterlockedXor InterlockedXorAcquire InterlockedXorRelease InterlockedXor8 InterlockedXor8Acquire InterlockedXor8Release InterlockedXor16 InterlockedXor16Acquire InterlockedXor16Release InterlockedXor64 InterlockedXor64Acquire InterlockedXor64Release

Posted via email from bugtruck's posterous