1. 파이썬 2.7.2 설치 
http://www.python.org/getit/releases/2.7.2/

2. OpenCV 2.2 설치
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/OpenCV-2.2.0-win32-vs2010.exe/download

3. NumPy 1.6.1 설치
http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/

4. SciPy 0.9.0 설치
http://sourceforge.net/projects/scipy/files/scipy/0.9.0/

5. 환경변수 셋팅
PATH 에 C:/Python2.7;C:/OpenCV2.2/bin 추가
PYTHONPATH 값에 C:/OpenCV2.2/Python2.7/Lib/site-packages 추가

아래 예제 실행


import cv

cv.NamedWindow("camera", 1)

capture = cv.CaptureFromCAM(0)
while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("camera", img)
    if cv.WaitKey(10) == 27:
        break

cv.DestroyWindow("camera")

'자료들 > 기타' 카테고리의 다른 글

OpenCV for Python 설치  (0) 2011/09/21
Aspire one A150 Window 7 Driver  (0) 2009/10/03
디직스 웹캠 CAMDI DC-800 프로그램  (0) 2009/08/24
Microsoft LifeCam VX-1000 Windows 2003에 설치하기  (1) 2009/07/15
Posted by 화니.

댓글을 달아 주세요



c:\nginx\conf\nginx.conf 수정
아래와 같이 주석제거
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }


  • PHP-CGI 실행
    • c:\nginx\run_php.vbs 아래와 같이 작성 후 실행

option Explicit 
dim strComputer,objWMIService,objShell,colProcesses 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set objShell = CreateObject("Wscript.Shell") 

Do 
        Set colProcesses = objWMIService.ExecQuery _ 
                ("Select * from Win32_Process Where Name = 'php-cgi.exe'") 
        If colProcesses.Count < 10 Then 
                objShell.Run "RunHiddenConsole.exe  c:\nginx\php\php-cgi.exe -b 127.0.0.1:9123 -c c:\nginx\php\php.ini" 
        End If 

        Wscript.Sleep 5000 

Loop

PHP-CGI 데몬을 하나만 띄워도 되지만 이상하게 일정시간후 죽는 현상이 발생하여 프로세스 갯수를 확인하여 10개를 띄우도록 했다.
사용량이 적은 사이트는 3개정도면 적당할 듯하다.


  • nginx 실행
    • c:\nginx\start_nginx.bat 아래와 같이 작성 후 실행

@ECHO OFF
start c:\nginx\nginx.exe






@echo off
set pathlog=c:\logs\(로그파일이 있는 경로)

set filedate=%time::=%
set filedate=%filedate: =0%
set filedate=%filedate:~0,6%

set logfilename=site.access.log(access 로그파일명)
set filename=%logfilename%_%date:-=%_%filedate%
rename %pathlog%%logfilename% %filename%

set logfilename=siet.error.log(error 로그파일명)
set filename=%logfilename%_%date:-=%_%filedate%
rename %pathlog%%logfilename% %filename%

c:\nginx\nginx -s reopen


    • 서비스 정지시키기
      • c:\nginx\stop.bat 를 아래와 같이 작성 후 실행

@ECHO OFF
c:\nginx\nginx.exe -s stop

taskkill /f /IM nginx.exe
taskkill /f /IM wscript.exe
taskkill /f /IM php-cgi.exe



  • Apache 와 Nginx 의 성능 비교
기존 사용하던 Apache데몬(httpd.exe)와 nginx, php-cgi방식으로 변경한 모습.
엄청난 CPU와 메모리 차이를 보이고 있다.

Todo...

가끔 502 Bad Gateway 오류가 나오며 페이지가 안나올때가 있다.


Posted by 화니.

댓글을 달아 주세요

  1. Favicon of http://bathroom-windows.net/ BlogIcon bathroom windows 2011/08/01 01:57  댓글주소  수정/삭제  댓글쓰기

    나는 정확하게 정말 다시 한번 감사 드리고 싶었어요. 난 전체 방법의 부재에서 수행한 수도있는 일들이 당신이 그 분야에 관한 공개하여 특정 아니에요. 이전에도 불구하고 그것은 저를 기쁨과 눈물로 만든이 치료 숙련된 전술을 고려, 제 의견에있는 비참한 상황했습니다. 나는뿐만 아니라 당신은 정말 항상 모든 웹 사이트를 통해 오늘날 지시 사람들을 달성 어떤 놀라운 일을 알고 생각으로 지원을 감사하고 있어요. 가장가능성 당신은 우리 모두가 발생 적이 없다.

출처 : http://forums.delphi-php.net/javascript-ajax/3017-favorite-functions-add-common-js.html

Delphi for PHP 설치폴더에서 vcl/js/common.js 를 연다.

파일 제일 하단에 아래의 코드 추가

 vcl=
{
$:function ()
{
var elements = new Array();
for (var i = 0; i < arguments.length; i++)
{
var element = arguments[i];
if (typeof element == 'string')
element = findObj(element);
if (arguments.length == 1)
return element;
elements.push(element);
}

return elements;
},
int:function(obj){ return parseInt(vcl.$(obj).value);},
real:function(obj){ return parseFloat(vcl.$(obj).value);},
escape:function(obj){ return escape(vcl.$(obj).value);},
unescape:function(obj){ return unescape(vcl.$(obj).value);},
focus:function(obj){ vcl.$(obj).focus();},
check:function(obj){ vcl.$(obj).checked=true;},
uncheck:function(obj){ vcl.$(obj).checked=false;},
hide:function(obj){ vcl.$(obj).style.display = 'none';},
show:function(obj){ vcl.$(obj).style.display = '';},
find:function(obj){ return vcl.$(obj);},
text:function(obj){ return vcl.$(obj).value;},
value:function(obj){ return vcl.$(obj).value;},
setOpacity:function(incoming,value)
{
theObj=vcl.$(incoming);
theObj.style.opacity = value/10;
theObj.style.filter = 'alpha(opacity=' + value*10 + ')';
}
}

function createHTTPrequest()
{ /* Firefox, Opera 8.0+, Safari */
try {return new XMLHttpRequest();}
catch (error) {}
/* newer IE */
try {return new ActiveXObject("Msxml2.XMLHTTP");}
catch (error) {}
/* older IE */
try {return new ActiveXObject("Microsoft.XMLHTTP");}
catch (error) {}
throw new Error("Your browser does not have AJAX support!");
}
function basicAjax (url,parameters,callback)
{
xmlHttp=createHTTPrequest();
if (callback) {xmlHttp.onreadystatechange=callback;}
else
{
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
if (xmlHttp.status == 200)
{eval(xmlHttp.responseText);}
else
{alert("Sorry, received a server error ="+xmlHttp.statusText);}
}
}
}
xmlHttp.open("POST",url,true);
if (typeof(basicAjaxAsyncFalse) != 'undefined' && basicAjaxAsyncFalse==1) xmlHttp.open("POST",url,false); //this will force a wait for return
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("If-Modified-Since", "Fri, 31 Dec 1999 23:59:59GMT");
xmlHttp.send(parameters);
}

Basic Ajax사용법

  //call basicAjax but override the eval function
basicAjax("ajax_server.php","value1=Bob",myfunction);

//call basicAjax using the built in eval function
var params='value1='+vcl.$('Edit1').value+'&value2='+vcl.$('Edit2').value;
basicAjax("ajax_server1.php",params);

vcl.$() 사용법

 // Sample Usage:
               function Button2JSClick($sender, $params)
               {

               ?>
alert(vcl.$('Edit1').value);//just get one object

//these 3 are identical
var obj1 = document.getElementById('Edit1');
var obj2 = vcl.$('Edit1');
var obj3= FindObj('edit1');

 vcl.$('Edit1').disabled;

//this gets an array of objects!! (includes obj we all ready had found also
// and real objects like LabeledEdit)
var elements = vcl.$('Edit2','Edit4','Edit6',obj1,obj2,'Edit5','Edit3');
for (var i=0;i < elements.length; i++) elements[i].value='';
//we just blew through a bunch of edits and cleared them.
// fyi this wouldn't work this way with the labeled edits though - they need setValue('')
               <?php

               }

 

 // Sample Usage:
vcl.hide('Button1');
vcl.show('Button1');

 

'자료들 > Delphi for PHP' 카테고리의 다른 글

BasicAjax 및 JQuery식 표현 사용하기  (0) 2009/10/07
SmartyTemplate 사용하기  (2) 2007/06/25
Memo Class 사용법  (0) 2007/06/25
Layout.Type 속성  (0) 2007/06/24
Posted by 화니.

댓글을 달아 주세요

다른 드라이버는 자동으로 찾는데 메모리리더기는 자동으로 찾아주질 못했다.

JMicron JMB382 PCI-E Memory Card Host Controller

'자료들 > 기타' 카테고리의 다른 글

OpenCV for Python 설치  (0) 2011/09/21
Aspire one A150 Window 7 Driver  (0) 2009/10/03
디직스 웹캠 CAMDI DC-800 프로그램  (0) 2009/08/24
Microsoft LifeCam VX-1000 Windows 2003에 설치하기  (1) 2009/07/15
Posted by 화니.

댓글을 달아 주세요

디직스 웹캠 CAMDI DC-800 프로그램

회사가 망해서 프로그램 찾기가 힘들어;; 올려둠.


Posted by 화니.

댓글을 달아 주세요

MS제품인데도 Windows 2003을 지원하지 않았다-_-;
강제로 설치하는 방법을 힘들게 찾았다.
LifeCam 1.21버전을 다운받는다.
http://download.microsoft.com/download/c/f/3/cf34583f-f873-4b8c-8b13-00d156f3af05/LifeCam1_21.exe

알집같은 프로그램으로 압축을 푼다.
압축을 푼 디렉토리에 LifeCam\Setup 으로 이동후 아래의 명령어를 실행
msiexec /qn /i LifCam10.msi TARGETDIR="C:\Program Files\Microsoft LifeCam" SKIPOSCHECK=1 LIFECAMGUID="C1751519BDE8403dB8A46BF319EFD5ED" VERSION="1.10.148.0" REBOOT=ReallySuppress INSTALL64BIT=0

Posted by 화니.

댓글을 달아 주세요

  1. 이영하 2009/08/17 10:48  댓글주소  수정/삭제  댓글쓰기

    저도 고민중이었는데 정보 주셔서 감사합니다.
    저는 cd가 있어서 CD의 setup 폴더에서 명령을 실행하고 잠시 기다리니 설치가 되네요.
    다시한번 감사드립니다.

Windows 2003에서 사용가능. XP는 안됨.
사용예)
forfiles /P C:\filepath /S /M *.txt /D -10 /C "cmd /c del @file"


FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

설명:
    파일(또는 파일 집합)을 선택하고 파일에 명령을
    실행합니다. 일괄 작업에 유용합니다.

매개 변수 목록:
    /P    pathname      검색을 시작할 경로를 지정합니다.
                        현재 작업 디렉터리(.)가 기본
                        폴더입니다.

    /M    searchmask    검색 마스크에 따라 파일을 검색합니다.
                        '*'이 기본 검색 마스크입니다.

    /S                  하위 폴더를 포함하도록
                        지정합니다. 예, "DIR /S"

    /C    command       각 파일에 실행할 명령을 지정합니다.
                        명령 문자열을 큰따옴표로 묶어야
                        합니다.

                        "cmd /c echo @file"이 기본 명령입니다.

                        명령 문자열에 다음 변수를 사용할 수
                        있습니다.
                        @file    - 파일 이름을 반환합니다.
                        @fname   - 확장명 없이 파일 이름을
                                   반환합니다.
                        @ext     - 파일의 확장명만
                                   반환합니다.
                        @path    - 파일의 전체 경로를 반환합니다.
                        @relpath - 파일의 상대 경로를
                                   반환합니다.
                        @isdir   - 파일 형식이 디렉터리인 경우 "TRUE"를
                                   반환하고 파일인 경우 "FALSE"를 반환합니다.
                        @fsize   - 파일의 크기(바이트)를
                                   반환합니다.
                        @fdate   - 파일을 마지막으로 수정한 날짜를
                                   반환합니다.
                        @ftime   - 파일을 마지막으로 수정한 시간을
                                   반환합니다.

                        명령줄에 특수 문자를 포함하려면
                         0xHH 형식의 16진수 코드(예, 탭은 0x09)를
                        사용하십시오. 내부 CMD.exe 명령
                        앞에는 "cmd /c"를 사용해야
                        합니다.

    /D    date          지정한 날짜와 마지막 수정한 날짜가 늦거나
                        같은(+) 또는 빠르거나 같은(-) 파일을
                        찾습니다.
                        날짜 형식은 "yyyy-MM-dd"입니다.
                        또한 마지막 수정한 날짜가 현재 날짜에
                        "dd"일을 더한 날짜보다 늦거나 같은(+)
                         또는 현재 날짜에서 "dd"일을 뺀 날짜보다
                        작거나 같은(-) 파일을 찾습니다.
                        유효한 "dd" 범위는 0에서 32768까지입니다.
                        부호를 지정하지 않으면 "+"가 기본값입니다.

    /?                  도움말을 표시합니다.

예:
    FORFILES /?
    FORFILES 
    FORFILES /P C:\WINDOWS /S /M DNS*.*
    FORFILES /S /M *.txt /C "cmd /c type @file | more"
    FORFILES /P C:\ /S /M *.bat
    FORFILES /D -30 /M *.exe
             /C "cmd /c echo @path 0x09 was changed 30 days ago"
    FORFILES /D 2001-01-01
             /C "cmd /c echo @fname is new since Jan 1st 2001"
    FORFILES /D +2009-1-8 /C "cmd /c echo @fname is new today"
    FORFILES /M *.exe /D +1
    FORFILES /S /M *.doc /C "cmd /c echo @fsize"
    FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

Posted by 화니.

댓글을 달아 주세요

사용자 삽입 이미지

레지스트리의 변경으로 키를 변경할 수 있게 해주는 프로그램입니다
윈도우키를 오른쪽Alt키로 변경했습니다.
101키보드에서는 한영 버튼으로 작동합니다.
변경할 키를 클릭 후 Choose New Remapping 에서 바꿀 키를 선택 후 Remap Key 를 클릭 후 재부팅하시면 적용됩니다.

Posted by 화니.

댓글을 달아 주세요