본문 바로가기

프로그래밍/미분류

(80)
2의 거듭제곱 (10만승까지) 벤포드 법칙 무식쟁이 방법으로 확인. #!/usr/bin/env python # http://bomber0.byus.net/index.php/2009/07/30/1409 # brute force check twopow = 1 tenpow = 1 cnt = [ 0 for i in range(10) ] pro = [ 0 for i in range(10) ] for i in range(100000): twopow *= 2 if twopow/(tenpow*10) > 0: tenpow *= 10 #d1 = int(("%d"%twopow)[0]) d = twopow/tenpow #if d1 != d: # print twopow cnt[d] += 1 if (i+1)%1000 == 0: print (i+1) print "%d\t%d\t%d\t%d\t%d\..
[Py] 숫자 리스트와 합이 주어졌을 때, 리스트의 합이 주어진 합인 부분 리스트 찾기 #----------------------------------------------------- def is_in_list(lst, lstlst): lst.sort() bRet = False for e in lstlst: e.sort() if len(e) == len(lst): bRet = True for i in range(len(e)): if e[i] != lst[i]: bRet = False break return bRet #----------------------------------------------------- def find_combination(sum, list): # print "---------" # print "-----------", sum, list, "------------..
[IIS] 윈도우즈 XP 프로페셔널에서 여러 웹사이트 윈도우즈 XP 프로페셔널에서 여러 웹사이트 Multiple websites on Windows XP Professional (Kristofer Gafvert, March 6, 2005) 윈도우즈 XP 프로페셔널은 다수의 웹사이트를 지원하지 않는다. 윈도우즈 XP IIS 관리자로는 서버에디션에서처럼 새로운 웹사이트를 생성할 수 없다. 그러나 코드를 이용해서 XP에서 새 웹사이트를 만들 수 있으며, 이 제한은 GUI에 국한된 것이다. ADSI, WMI 를 이용하면 이 짓을 할 수 있다. 하지만, 동시에 XP에서 여러 웹사이트를 돌리는 것은 허용되지 않으며, 이미 다른 웹사이트가 운용중일 때, 두번째 웹사이트를 IIS 관리자로 시작하려고 하면, 다음과 같은 에러가 난다. Windows XP Profession..
[번역] 유저모드에서 최대절전모드 알아내기 http://www.eggheadcafe.com/conversation.aspx?messageid=34185691&threadid=34169575 최대전절을 유저모드에서 알아채기 Detect Hibernation from User Mode - jialg 16-Mar-09 05:12:32 Good morning David 예전에 유저모드에서 스탠바이와 최대절전을 어떻게 구분하느냐는 문제를 다뤄본 적이 있다. 제품 그룹은 디자인적으로 유저모드는 두가지 슬립상태를 구분할 수 없도록 되어 있다고 말했다. 그래서 우린 필요한 작업에 맞추어 이 이슈를 피해가도록 했다. 즉, 고객이 왜 최대절전모드를 훅해야 하느냐? 이벤트 말고 같은 결과를 가져다 줄 방법은 없겠느냐? [후략] I once dealt with a s..
Private but Shareable 시스인터널즈 툴 중에 재미있는 게 있다. vmmap 이라는 툴로, 특정 프로세스가 사용하는 가상주소공간을 지금 어떤 것이 얼마나 사용되고 있는지를 나타내 주는 툴이다. 색색깔로 예쁘게 서로 다른 의미로 사용되는 것을 다르게 보여줘서 아주 좋다. 이 툴을 가지고 이것저것 살펴보다가 이상한 것을 발견했다. 아래 그림에서 반전시킨 부분이다. 뭐가 이상하다고 하는 거냐면, 다시 위쪽 부분을 보자. 메모리의 종류에는 Private 이라고 노란색으로 표시된 것이 있는데, 이렇게 딱지가 붙은 것은 다른 프로세스와 공유되지 않는 자기 자신만 사용할 수 있는 그야말로 "개인적인", "자기만의" 공간이다. 그런데, 각 메모리 종류에 대해 상세하게 워킹셋(WS)을 구분하여 보여주는 곳에는 Private, Shareable ..
[번역] AD 도메인으로 연결하기 http://www.eggheadcafe.com/conversation.aspx?messageid=30188124&threadid=30188121 워크그룹 머신에서 AD 도메인으로 연결하기 - 조 캐플란 Connecting to an AD domain from a workgroup machine - Joe Kaplan 15-Jun-07 09:34:01 이런 문제(*1)는 워크그룹 컴퓨터를 적용할 때 많이 나오는 문제입니다. 바인딩 문자열로 사용한 LDAP://rootDSE 는 서버나 도메인을 ( LDAP://domain.com/rootDSE 처럼 ) 지정하고 있지 않습니다. 그래서, LDAP API는 도메인은 현재 보안 컨텍스트에서 연결된 도메인에 기반하여 알아내려 합니다. 그러나, 로컬 계정일 경우에는..
소켙과 핸들 1 몇 회까지 울궈먹으며 포스팅을 할 지 모르겠지만, 1회라고 써 본다. 김성우씨의 네트워크 프로그래밍 책의 예제에 기반한 CPP 프로그램을 실행하면서 프로세스 익스플로러로 핸들을 확인했다. 예제는 아주 간단하게 소켙을 만들었다가, 다시 죽이는 것이었고, 내가 수정한 부분은 소켓을 만들었다, 닫는 작업을 반복해 보는 것이었다. WSAStartup 함수가 실행된 직후이다. 프로그램의 시작부분이라서 쓰레드가 하나 만들어 지는 것 같고, 레지스트리 키 두개를 읽나부다. 레지스트리 키 명을 확인해 보면 HKLM\SYSTEM\ControSet001\Services\WinSock2\Parameters\NameSpace_Catalog5 와 HKLM\SYSTEM\ControlSet001\Services\WinSock2\P..
socket and device\afd, device\tcp device\ksecdd 간단한 서버 샘플 프로그램을 디버그모드로 돌리면서, 어떻게 핸들이 생성되는지를 process explorer 로 살펴봤다. 아울러 tcpview 로도 언제 뜨는지를 확인해 봤다. 캡쳐한 그림을 참조. winsock 초기화. Procexp 핸들 화면을 보면, 아무런 핸들도 생성되지 않았다. socket 함수가 성공했다. \Device\Afd 핸들이 하나 생성되었음을 확인할 수있다. 아직 소켓만 생성된 상태이고, 이름은 바인드되지 않은 상태이다. bind 함수가 성공하면서, \Device\Tcp 핸들이 하나 생성된다. listen 이 성공하면서, \Device\KsecDD 핸들이 생성되고, 드디어 tcpview 에도 Server.exe 가 9000 포트로 LISTENING에 들어갔다는 게 뜬다. WINDOW..