Search Results for '전체 분류'


2064 posts related to '전체 분류'

  1. 2011/06/17 인터넷익스플로러9, '자주방문하는 사이트' 줄 수 늘리는 방법
  2. 2011/06/11 IIS 7 - IIS 7 커맨드라인 관리도구 Appcmd 소개
  3. 2011/06/11 IIS 7 - PHP 설치, 설정 관리를 위한 PHP Manager for IIS
  4. 2011/06/11 IIS 7 - WebKnight 웹 서버 방화벽 사용법 1
  5. 2011/06/11 IIS 7 - URLScan - SQL 인젝션 공격이나 악의적인 공격으로부터 해방이다.
  6. 2011/06/11 네임서버 zone 파일 인쿠르드
  7. 2011/06/11 MS 프로젝트 2003 한글 - MS Project 2003 Pro kor
  8. 2011/06/09 리눅스 쉘스크립트 배열을 이용해 webliazer 에서 다중 로그 분석.
  9. 2011/06/09 팝업창 오픈하고 부모창 이동후 아까 팝업창 재사용하기
  10. 2011/06/09 네이버 Syndicate API TEST MODULE 1
  11. 2011/06/09 IE9에서 jQuery Ajax 가 무반응일 때 임시 해결책
  12. 2011/06/09 2011년 3월 우편번호 - CSV
  13. 2011/06/09 ncftpget 으로 원격 ftp 사이트 소스 통째로 가져오기.
  14. 2011/06/09 음력/양력/간지/공휴일 표시 MSQL DB 테이블
  15. 2011/06/02 나는가수다 - 제12회 2011.06.12 (일) - 노래듣기 1
  16. 2011/05/29 윈도우용 gvim 에디터에서 새 탭으로 파일 열기.
  17. 2011/05/29 [함수] [PHP] 한글자르기 (출력길이기준)
  18. 2011/05/29 터미널 포트 변경.vbs
  19. 2011/05/29 Html 편집 없이 텍스트를 삽입 하자 3
  20. 2011/05/22 프로그래머의 아내가 알아두어야할 97가지
  21. 2011/05/22 phpMyAdmin 3.4.0 한글 언어팩
  22. 2011/05/14 네이버 스팸차단 필터 이용해서 스팸스코어 얻는 함수
  23. 2011/05/14 HTML5 Tip & Tech (5) - Web Forms in Cross Browser
  24. 2011/05/14 smtp with gmail 1
  25. 2011/05/14 터미널 포트 변경.vbs
  26. 2011/05/01 사람찾기방법 - 이름으로 사람찾기, 전화번호로 사람찾기, 친구찾기 26
  27. 2011/05/01 쌍둥이 출산 용품
  28. 2011/04/30 곰플레이어 무설치 버전
  29. 2011/04/14 가정에서의 N-스키린 활용 및 변화
  30. 2011/04/08 배치파일, 도스(DOS)에서 파일 삭제, 디렉토리 지우기 명령어; Delete File

쓰다보면 밑에 자리도 남는데 더 많이 나와 주면 좋겠다는 생각을 하게 된다. 더 많이 나오게 하는 방법이 없을까?


당연히 있다. 바로 레지스트리를 편집해 주면 된다. 레지스트리를 편집하기 위해서는 레지스트리를 실행해야한다. [시작]을 누른 후 regedit 을 입력한 후 엔터키를 누른다.

레지스트리 에디터가 실행 되면


[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/TabbedBrowsing/NewTabPage]


로 이동한다.

오른쪽 빈 공간에 마우스 오른쪽 버튼을 눌러 팝업창이 뜨게한 후 [새로 만들기] > [DWORD(32비트) 값]을 클릭한다.
 값 이름에는 NumRows 라고 넣어 준다. 이것을 더블 클릭해 창을 띄운 후 [값 데이터] 부분에 원하는 줄 수를
넣어주면 된다. 3줄이 나오게 하려면 3을 넣으면 되고, 4줄이 나오게 하고 싶으면 4를 넣으면 된다.

[확인]을 눌러 저장한 후 레지스트리 에디터를 종료하면 된다.

2011/06/17 22:32 2011/06/17 22:32

이번 포스팅에서는 IIS 7 에서 제공되는 새로운 커맨드라인(Command-line) 관리도구 Appcmd.exe 도구를 소개 드립니다. Appcmd.exe 도구를 사용하면 GUI 환경의 인터넷 정보 서비스 관리자를 사용하지 않고 쉽고 빠르게 서버를 제어할 수 있는 기능을 제공합니다. Appcmd.exe 를 통해서 대표적으로 아래 기능들을 수행할 수 있습니다.

*
웹 사이트, 응용 프로그램 풀, 가상 디렉터리의 생성, 삭제, 변경, 설정
* 웹 사이트, 응용 프로그램 풀의 시작, 중지, 재생
* 실행 중인 worker process, 요청에 대한 정보 보기
* IIS, ASP.NET 설정에 대한 가져오기, 내보내기, 변경

Appcmd.exe 도구는 %systemroot%\system32\inetsrv 경로에 있으며 명령을 실행하는 방법은 아래와 같습니다.
사용방법) APPCMD (command) (object-type) <identifier> < /parameter1:value1 ... > 

사용자 삽입 이미지



APPCMD 도구를 사용할 때 지원하는 명령, 개체 유형은 아래와 같습니다.

1. 명령(Command)
add, clear, configure, delete, inspect, install, list, lock, migrate, recycle, reset, restore, search, set, start, stop, uninstall, unlock

2. 개체 유형(object-type)
site, app, vdir, apppool, config, wp, request, module, backup, trace


실제 운영 서버에 사용해 볼만한 몇 가지 명령들을 예제로 정리하였습니다.

1. APPCMD list 명령을 통해 사이트, 응용 프로그램 풀, Worker Processes, 가상 디렉터리 정보 조회
가. Appcmd list site
나. Appcmd list app
다. Appcmd list wp
라. Appcmd list vdir

사용자 삽입 이미지




2. List 명령과 /text:* 파라미터를 추가하여 "xe" 웹 웹사이트에 대한 자세한 정보 얻기
가. Appcmd list app "xe/" /text:*

사용자 삽입 이미지


3. 설치된 모듈 확인
가. Appcmd list module

사용자 삽입 이미지




4. 현재 실행 중인 요청 확인
가. Appcmd list request /site.name:"WEB1"

C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
REQUEST "c900000080003a68" (url:POST /MiniPopupMonitor/WebServiceMessenger.asmx,
time:15 msec, client:192.168.0.101, stage:MapRequestHandler, module:ManagedPipelineHandler)

C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
REQUEST "b70000008000a3f1" (url:POST /MiniPopupMonitor/WebServiceMessenger.asmx,
time:15 msec, client:192.168.0.102, stage:SendResponse, module:IIS Web Core)

C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
REQUEST "ed0000008000d2ee" (url:POST /LoginS.aspx, time:141 msec, client:192.168.0.101,
stage:MapRequestHandler, module:ManagedPipelineHandler)

C:\Windows\System32\inetsrv>APPCMD list request /site.name:"WEB1"
REQUEST "f4000000800083a3" (url:GET /data/images/skin/2 Window_Data Popup/imag
es/dwframe_1.gif, time:16 msec, client:192.168.0.103, stage:SendResponse, module:IIS Web Core)



5. Site 상태 제어
가. Appcmd stop site /site.name:XE
나. Appcmd start site /site.name:XE

사용자 삽입 이미지




6. 글로벌 서버 설정 백업과 복원
가. Appcmd add backup
나. Appcmd restore backup /backup.name:"20101215T224415"

사용자 삽입 이미지




위와 같이 몇 가지 예제를 통해서 appcmd command-line 도구를 활용하는 방법에 대해서 간단히 확인하였습니다. 위 예제에서 다뤄보지 못한 개체 유형(object-type)과 명령(command)이 아직 많이 있으니 도움말을 통해 확인해 보시고 이외에도 유용한 명령이 있으면 추천 부탁 드립니다.

2011/06/11 01:07 2011/06/11 01:07

IIS 7 에서 PHP 웹 어플리케이션 사용하신다면 PHP Manager for IIS 모듈을 설치하여 PHP 설치, 설정 관리를 보다 쉽게 하실 수 있습니다. PHP Manager for IIS 모듈에서 제공하는 기능은 아래와 같습니다.

1. 새로운 PHP 버전 설치(등록)
2. PHP 구성에 대한 검증 권장 설정 가이드
3. 다른 여러 버전의 PHP 실행
4. phpinfo() 함수 실행을 통한 설정 점검
5. 다양한 PHP 설정 구성
6. PHP 확장(Extensions) 활성화 또는 비활성화
7. PHP.INI 파일 원격 관리

다소 복잡해 보이고 익숙하지 않은 PHP.INI 설정 파일을 메모장으로 열어 수정한 뒤 검증하는 데까지 발생하는 불편함을 GUI 를 통해 보다 쉽고 간편하게 관리할 수 있는 이점이 있으며 사이트마다 별도의 PHP 버전 적용이 용이한 이점이 있습니다. 그럼, 설치 및 간단히 기능에 대해서 살펴 보도록 하겠습니다.


[설치]
웹 플랫폼 설치 관리자를 사용하시면 쉽게 PHP Manager for IIS를 설치하실 수 있습니다. 설치 방법은 아래와 같습니다.

웹 플랫폼 설치 관리자 - 제품 - PHP Manager for IIS(영어) - 추가 - 설치

사용자 삽입 이미지



또는 아래 링크를 통해 최신버전을 직접 다운로드 받아 설치하실 수 있습니다.

PHP Manager for IIS
http://phpmanager.codeplex.com/releases/view/59970



[기능 살펴보기]
설치가 완료되면 인터넷 정보 서비스 관리자의 기능 보기 메뉴를 통해 새롭게 추가된 "PHP Manager" 모듈을 확인하실 수 있습니다. PHP 5.3.5 버전에 Xpress Engine 이 설치되어 있는 테스트 환경에서 PHP Manager 기능을 실행하여 인터페이스를 살펴보도록 하겠습니다.

사용자 삽입 이미지



PHP Setup, Settings, Extensions 3가지 카테고리로 구분되어 있으며 포스팅 서두에서 언급한 것과 같이 모듈에서 지원하는 기능에 대한 인터페이스를 보실 수 있습니다.

1. View recommendations
PHP Manager 실행 시 가장 먼저 상위에 있는 PHP Setup 항목에 PHP 최적 구성을 권장하기 위한 경고 알림 느낌표가 나타난 것을 확인할 수 있습니다. "View recommendations" 를 클릭하여 어떤 메시지인지 확인해 봅니다.

사용자 삽입 이미지



기본 문서가 Default.htm 으로 설정되어 있으며 index.php 로 변경할 것을 가이드 하고 있습니다. 해당 항목을 체크한 뒤 확인 버튼을 클릭하시면 "기본 문서" 설정의 기본 값을 자동으로 변경해 줍니다. 그 외 권장되는 설정들의 항목이 발견되었다면 아래 제시된 설명을 참조하여 반영 여부를 결정해 주시면 됩니다.


사용자 삽입 이미지




2. Register new PHP version
새로운 버전의 PHP 를 설치하였을 때, php-cgi.exe path 를 설정할 수 있습니다.

사용자 삽입 이미지




3. Change PHP version
여러 버전의 PHP 가 설치되어 있을 때, 해당 웹 사이트의 PHP 버전을 선택하여 적용할 수 있습니다.

사용자 삽입 이미지




4. Check phpinfo()
phpinfo() 함수 실행 결과를 바로 확인할 수 있습니다.

사용자 삽입 이미지




5. Configure error reporting
PHP 오류 리포팅 종류와 로그 파일 경로를 지정할 수 있습니다. 개발 머신으로 선택할 경우 모든 오류, 경고와 알림 메시지를 로그 파일로도 기록할 수 있습니다.

사용자 삽입 이미지




6. Set runtime limits
런타임 제한 설정을 지정할 수 있습니다. Maximum Execution Time 값은 PHP.INI 의 max_execution_time 설정이 됩니다.

사용자 삽입 이미지




7. Manage all settings
복잡한 PHP.INI 메모장으로 편집하던 불편함을 에디팅 도구를 통해 간편하게 설정할 수 있습니다.

사용자 삽입 이미지




8. Enable or disable an extension
Extensions 의 활성/비활성화 또는 추가할 수 있는 인터페이스를 제공합니다.

사용자 삽입 이미지




9. Add an extension
Extensions 을 추가할 수 있는 인터페이스를 제공합니다.

사용자 삽입 이미지



PHP Manager for IIS 1.1 버전에서 제공하는 기능과 인터페이스를 살펴 봤습니다. PHP 를 사용하신다면 유용한 모듈이 되겠습니다.

2011/06/11 00:59 2011/06/11 00:59

요청 필터링, URLScan 에 이어 이번에는 IIS 웹 서버에 설치할 수 있는 공개용 방화벽 WebKnight 에 대해서 간략히 정리해 봅니다. 이미 한국정보보호진흥(KISA)원에서 제공하는 "WebKnight를 활용한 IIS 웹서버 보안 강화 가이드" 라는 한글화 된 문서로 잘 정리되어 있으므로 WebKnight 에 대한 전반적인 사항은 아래 링크를 참조해 주시면 좋을 것 같습니다.


WebKnight 자료실
http://toolbox.krcert.or.kr/MMBF/MMBFBBS_S.aspx?MENU_CODE=37&BOARD_ID=8

그래서 이번 포스팅에서는 WebKnight 의 간단한 개요와 실제 IIS 7.5 환경에서 설치하고 기본적으로 제공되는 규칙을 통해 필터링이 동작하는 방법을 간략히 살펴 보도록 하겠습니다.


WebKnight 는 AQTRONIX (http://www.aqtronix.com/?PageID=99) 에서 제공하는 공개용 웹 서버 방화벽입니다. URLScan 툴과 마찬가지로 ISAPI (Internet Server API) 필터에 해당 모듈 DLL 파일을 등록하여 사용하게 됩니다. WebKnight 는 오픈 소스로 제공되며 차단된 기록에 대해서 로깅 정보를 제공해 줍니다. 그리고 Windows Installer 패키지를 사용하여 쉬운 설치가 가능하며 필터링 규칙 및 옵션 변경을 GUI 로 제어할 수는 이점이 있습니다. 또한 설정 변경 후 웹 서비스 재시작이 필요없이 런타임 업데이트가 가능한 특징을 가지고 있습니다.


[WebKnight 설치]
1. WebKnight 2.3 다운로드
http://aqtronix.com/?PageID=99#Download


2. ISAPI 필터 설치
가. URLScan 설치와 마찬가지 WebKnight 를 사용하기 위해서는 설치하기 앞서 ISAPI 필터 모듈이 설치되어 있어야 합니다.
나. 역할 서비스 - 웹 서버 - 응용 프로그램 개발 - ISAPI 필터


3. 다운로드 파일 압축 해제 및 WebKnight.msi 파일 설치
가. MSI 파일로 설치할 경우 자동으로 ISAPI 필터에 WebKnight DLL 이 등록됩니다. (사전에 ISAPI 필터 모듈이 설치되어 있어야 함)


4. 설치 확인
가. 인터넷 정보 서비스 관리자 - ISAPI 필터
나. 이름 : WebKnight, 실행 파일 : C:\Program files\AQTRONIX WebKnight\WebKnight.dll

사용자 삽입 이미지




5. 기본 설정
가. 시작 - 모든 프로그램 - AQTRONIX WebKnight - WebKnight Configuration - WebKnight.xml
1) Mapped Path – Use Allowed Paths - 홈 디렉터리 경로 추가
   

사용자 삽입 이미지



나. WebKnight 폴더 권한 부여 (응용 프로그램 풀 계정)
1) 탐색기를 실행하여 C:\Program files\AQTRONIX WebKnight 폴더에 대해서 속성 - 보안 - 추가
가) IIS 7.0 환경인 경우 : NETWORK SERVICE 계정 추가
나) IIS 7.5 환경인 경우 : IIS_USERS 계정 추가
다. IIS 서비스 재시작



[WebKnight 규칙 적용 테스트]
WebKnight 를 설치하면 기본적으로 Denied Extensions 항목에 아래와 같은 확장자들이 차단되도록 규칙이 생성되어 있습니다. 예로 .inc 파일에 접근했을 때, 어떻게 동작하는 지 살펴 보겠습니다.

사용자 삽입 이미지



inc 확장자를 요청하게 되는 경우 WebKnight 기본 차단 규칙에 포함된 확장자에
해당하므로 WebKnight 에서 제공되는 준비된 경고 페이지를 보여주게 됩니다.


사용자 삽입 이미지




이 때, 어떤 접근에 의해 차단되었는지 확인하기 위해서는 아래 경로에 기록되는 로그 파일을 참조하여 "BLOCKED" 메시지를 확인해 보시면 됩니다. 또는
함께 제공되는 LogAnalysis.exe 툴을 사용하면 GUI 인터페이스로 로그 파일을 쉽게 확인하고 분석하는 데 유용하게 활용할 수 있습니다.


C:\Program Files\AQTRONIX WebKnight\Logfiles 폴더 아래 순차적으로 로그 파일 기록되어 있습니다.


Software: AQTRONIX WebKnight 2.3
#Date: 2010-11-23 16:04:13
#LogTime: GMT (Local-09:00)
#Fields: Date ; Time ; Site Instance ; Event ; Client IP ; Username ; Host header ; Additional info about request (event specific)

…… (중략)

2010-11-23 ; 16:06:02 ; W3SVC1 ; OnPreprocHeaders ; ::1 ; ; localhost ; GET ; /a.inc ; BLOCKED: accessing/running '.inc' file ; HTTP/1.1 ; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) ; lang_type=ko; PHPSESSID=7t5nle5ubhdb8c0qspkslh3ts1 ;


WebKnight 가 제공하는 많은 필터링 기능 중 확장자 제한 규칙에 대해서 간단한 테스트를 확인해 보았으며 그 이외에도 아래와 같이 다양한 필터링 기능을 설정할 수 있습니다.

이 자료는 KrCERT-TR-2008-004 "WebKnight를 활용한 IIS 웹서버 보안 강화 가이드"에 포함된 내용을 캡쳐하였습니다. 전반적인 규칙 기능에 대한 설명입니다.

사용자 삽입 이미지


WebKnight 를 설치하게 되면 기본값으로 설정된 차단 정책이 곧바로 동작하게 되므로 로그를 확인하여 정상적인 서비스가 차단되지 않았는지 반드시 확인하셔야 합니다. 보안 장비, 상용 보안 툴을 사용할 수 없는 환경이라면 요청 필터링, URLScan, WebKnight 를 통해서도 충분히 일반적인 공격에 대한 차단 효과를 얻을 수 있습니다. 물론 환경에 맞는 충분한 테스트가 필요하겠습니다.

2011/06/11 00:51 2011/06/11 00:51

UrlScan 3.1 은 IIS 웹 서버 운영 환경에서 유해한 특정 HTTP 요청을 차단하는 보안 기능을 제공하는 툴입니다. 웹 서버에 요청되는 패킷을 분석하는 ISAPI 필터에 등록되어 일반적이지 않은 요청 즉, 대표적으로 SQL 인젝션 공격이나 악의적인 공격으로부터 웹 서버를 보호할 수 있는 기능을 지니고 있습니다.

URLScan 을 구성할 경우 아래와 같은 항목들에 대해서 HTTP 요청을 거부할 수 있습니다.
HTTP 요청 메소드/동사(Verb), 요청된 파일 이름 확장자, 의심스런 URL 인코딩, URL 에 non-ASCII 문자열/특정 문자열, 요청에 특정 헤더 항목이 있는 경우 설정에 의한 거부가 가능합니다.


[설치]
URLScan 3.1 버전은 Internet Information Services 5.1(Windows XP), 6.0 or 7.0 에서 사용할 수 있으며 x86, x64 시스템에 해당하는 버전을 다운로드 받아 설치할 수 있습니다. 설치 방법은 아래와 같습니다.

1. 다운로드
Microsoft Urlscan Filter v3.1 (x64)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=361E5598-C1BD-46B8-B3E7-3980E8BDF0DE


2. URLScan 사용을 위한 역할 서비스 사전 설치
가. 역할 서비스 - 웹 서버 - 응용 프로그램 개발 - ISAPI 필터
나. 역할 서비스 - 웹 서버 - 관리도구 - IIS 6 관리 호환성 - IIS 6 메타베이스 호환성
'IIS 6 메타베이스 호환성' 모듈을 설치하지 않을 경우 설치 시 만약 아래 오류가 발생할 수 있습니다.
IIS Metabase is required to install Microsoft URLScan filter v3.1


3. URLScan 3.1 설치 (x64 기준)
가. %windir%\system32\inetsrv\urlscan 폴더가 생성되고 urlscan.dll, urlscan.ini, log 폴더 생성
나. %windir%\syswow64\inetsrv 폴더가 생성되고 urlscan.dll 파일 생성

4. 설치 확인
가. 인터넷 정보 서비스 관리자 - ISAPI 필터

사용자 삽입 이미지


나. URLscan 3.1 - C:\Windows\system32\inetsrv\urlscan\urlscan.dll 등록 확인
(만약 URLScan 설치 후 ISAPI 필터 기능을 설치하였다면 수동으로 '추가' 할 수 있습니다)

사용자 삽입 이미지



설치 및 ISAPI 필터 추가 방법은 아주 간단합니다. 실제 필터링 규칙을 적용하기 위해서는 URLScan.ini 설정을 통해서 이루어집니다. URLScan.ini 옵션은 아래 microsoft.com 웹 사이트에 상세히 설명되어 있습니다. 중복되는 내용은 포스팅 하지 않으려고 합니다. 옵션에 대한 설명은 아래 링크를 참조해 보시기 바랍니다.



UrlScan 3 Reference
http://learn.iis.net/page.aspx/938/urlscan-3-reference/

How to configure the URLScan Tool
http://support.microsoft.com/kb/326444/en-us


많은 필터링 옵션을 제공하지만 가장 간단히 요청 파일 이름 확장자를 URLScan 을 통해 차단하는 방법을 소개해 드립니다.


[시나리오1]
요청 파일 이름 확장자 .html 을 거부하고 별도 등록되지 않은 다른 모든 파일 확장자는 허용

1. 설정 방법
[DenyExtensions]
.html ; 추가

2. 결과 확인
가. 404.0 - Not Found 오류 발생
나. URLScan Log : GET /index.html Rejected extension+not+allowed file_extension .html

사용자 삽입 이미지





[시나리오2]
요청 파일 이름 확장자 .png 그림 파일을 거부한 경우

1. 설정 방법
[DenyExtensions]
.png ; 추가

2. 결과 확인
가. Iisstart.htm 파일을 정상적으로 액세스 하였지만 해당 파일에 링크된 이미지는 필터링 됨
나. URLScan Log : GET /welcome.png Rejected extension+not+allowed file_extension .png

사용자 삽입 이미지




그 외 SQL 인젝션 차단 등 일반적인 URLScan 사용 시나리오에 대해서 아래 웹 사이트에서 소개하고 있습니다.

Common UrlScan Scenarios
http://learn.iis.net/page.aspx/476/common-urlscan-scenarios/


URLScan 에 의해서 차단된 URLScan 규칙에 의해 차단된 요청은 C:\Windows\system32\inetsrv\urlscan\log 폴더에 기록되며 해당 로그를 LogParser.exe 툴을 통해 분석해 보면 차단된 유형 목록을 쉽게 카운트 해서 볼 수 있습니다.


[참고자료]
Security Guidance for IIS
http://technet.microsoft.com/en-us/library/dd450371(WS.10).aspx

2011/06/11 00:45 2011/06/11 00:45
네임서버에서 서브도메인을 많이 사용할 경우 zone 파일을 따로 생성해서 인쿠루드 해서 사용가능하더군요.

서브도메인의 저장위치가 /var/named/zone/subdomain.zone 에 위치했다고 가정한다면

maindomain.zone
-------------------------------------------------------------------------
$TTL 86400
@ ~~~~~~
.
.
.
~~~
www IN A 123.45.67.89
$include "/var/named/zone/subdomain.zone"

-----------------------------------------------------------------------

subdomain.zone 파일에는
sub1 IN A 123.456.67.98
~~~~

와 같이 입력하면 끝


PS. INCLUDE 앞에 $를 붙여줘야 하는 것을 몰라 한참을 헤매서 저같은 분이 있을까 해서 올립니다.                                       
2011/06/11 00:40 2011/06/11 00:40

비전문가도 사용하기 쉬운 프로젝트 관리 툴 실제 지식 기반 업무 수행에 초점 … 맞춤형 필드로 편리한 UI 구축

마이크로소프트 프로젝트 2003 버전은 지난 10월 마이크로소프트 오피스 2003과 함께 발표됐다. 주요 오피스 도구들과 데이터 저장간 상호 작용을 개선시키는 데 목적을 두고 있으며 eWEEK 랩 테스트에서는 프로젝트 매니저가 아닌 사람들도 리소스 가상화와 관리를 할 수 있도록 해주는 점이 인상적이었다.

아직 오피스 2000이나 오피스 97에서 새로운 버전으로 업그레이드 하지 않은 사람들이라면 프로젝트 2003의 데이터 통합과 네트워크 리소스 활용에서 새로운 오피스 플랫폼이 제공할 세계를 실감할 수 있을 것이다.

기존의 프로젝트 관리 툴은 선택적으로 반영된 사실에 대한 리포팅이나 긍정적인 측면에 대해 프리젠테이션할 때는 프로젝트 2003보다 훌륭하다고 할 수 있다. 그러나 프로젝트 2003은 실제 데이터의 중복 수집과 데이터 입력 작업을 최소화하고 실제 지식에 기반해 일할 수 있도록 하는 데 초점을 맞추고 있다.

이 제품은 ‘프로젝트 가이드’와의 상호 작용을 통해 문맥 연결에 따른 가이드라인을 계속 제공한다. eWEEK 랩은 프로젝트 가이드가 온라인 도움말보다 훨씬 유용하다고 생각하는데, 온라인 도움말은 화면에 더디게 나타나 작업을 방해할 때가 있기 때문이다. 프로젝트 가이드는 항상 켜져 있으며 툴 속에 통합돼 있다. 추가적인 도움말 자료 역시 제공받을 수 있다.

프로젝트 2003 사용자들은 매일 프로젝트 기대치가 변화하는 환경에서 이 제품이 제공하는 ‘베이스라인스’라는 모니터링 툴을 이용해 어떤 시점에서든 프로젝트 상황의 스냅샷을 생성할 수 있다. 이같이 생성된 스냅샷은 프로젝트의 진행 과정에 대한 기록으로 사용될 수 있으며 이후 프로젝트 분석가들을 위한 참조 포인트가 되기도 한다.

프로젝트 2003 기반의 리포트에서는 많은 상황들이 스프레드시트 분석기로 내보내진다. 또 프로젝트 2003이 형성된 원래 데이터에 의존할 경우 사용자들은 프로젝트 2003 환경 내에서 마법사 기능과 통합된 하이퍼링크를 통해 손쉽게 엑셀 파일로 내보내고 들여올 수 있다.

프로젝트 툴을 다듬어 고유한 요구 사항을 반영시키길 원하는 관리자라면 맞춤형 필드에 대한 규정과 사용 규칙에 대해 정의할 수 있는 많은 옵션을 사용하길 바란다.

또 전형적인 프로젝트 관리 툴의 가득한 바와 선, 다이어그램을 좋아하지 않는 사용자들은 웹 포탈과 같은 외형과 느낌의 프로젝트 2003을 편하게 사용할 수 있을 것이다. 프로젝트 2003은 현재 발생중인 문제, 위험, 새로운 업무나 기타 주의 혹은 대응이 요구되는 아이템들에 대해 재빠른 드릴 다운을 제공한다.

이런 웹 접근 모드는 프로젝트 2003의 적용을 확대하는데, 이동이 많은 사용자들은 서버에 간단한 작업 일지와 일정표를 둔 아웃룩 웹 클라이언트와 같은 방식으로 사용할 수 있다.

프로젝트 2003은 지난 10월 미국 LA에서 열린 프로페셔널 개발자 컨퍼런스에서 시연됐던 마이크로소프트 롱혼 기술과 같은 맥락에서 봐야 한다. 몇 가지 엉켜 있는 새로운 사용자 인터페이스 밑으로, 롱혼은 분리돼 있는 정보 저장소들을 훨씬 편리하게 통합해 주는 매개체가 되고 있다.

닷넷 기반, 서버 플랫폼으로 설계된 프로젝트 2003은 사용자들에게 리소스 할당 충돌과, 프로젝트에 대한 또다른 위험들을 규정할 수 있는 풍부한 기회를 제공한다. 이것이 기업 고객들이 오피스 스위트에 프로젝트 2003을 추가함으로써 얻는 부가가치다.

2011/06/11 00:37 2011/06/11 00:37
웹호스팅 서비스하는 서버에서 여러 사이트 웹로그 분석할대
webalizer 를 이용해서 분석하는데.
..
여러 사이트를 쉘스크립트 배열 기능을 이용해서
분석하게 해 봤습니다.
..
리눅스 bash 에서 배열은

ARRAY=("aa bb cc" "dd ee ff" "gg hh ii")

와 같이 선언하고 ${ARRAY[0]} 같이 참조합니다.
그런데 아직 bash 에서 2차 배열 hash 는 안되는거 같습니다.
아래와 같이

for(( i=0;i<${#ARRAY[@]}; i++))
do
TT=(${HTTPD_LOG_ARRAY[$i]})
HTTPD_LOG_STAT=${TT[0]}
HTTPD_LOG_OUTPUT_DIR=${TT[1]}
..
done
처럼 for 안에서 다시 공백문자를 기준으로
배열을 만들어서
비슷하게 2차배열 처럼 사용할 수 있습니다.
..
일단 이렇게 webalizer 로 분석하게 만든후
각서버에 설정된 웹로그파일 백업하기 바로전에 이 스크립트가
실행하게 해야 합니다.
..
보통 리눅스 배포판에서는 /etc/cron.daily/logrotate 라는 스크립트
상단에 적어주면 될겁니다.
..
그리고 webalizer.conf 에서
webalizer.current와 webalizer.hist
부분을 주석처리 혹은
파일 명만 할것 , 그래야 각 계정으로 들어가서 함.
dnscache 부분도 0 으로 처리.
..
php 를 쉘모드로 사용하는게 배열 다루기는 훨씬 쉽네요.
..



=============================================
1 #!/bin/bash
2
3 declare -a HTTPD_LOG_ARRAY
4
5 # 분석할 로그파일, 로그파일 저장 디렉토리, 호스트이름 순으로 입력
6 HTTPD_LOG_ARRAY=(
7 "/var/log/httpd/aaa.com-access_log
8 /home/aaa/public_html/weblog
9 www.aaa.com"
10
11 "/var/log/httpd/bbb.com-access_log
12 /home/bbb/public_html/weblog
13 www.bbb.com"
14
15 "/var/log/httpd/ccc.com-access_log
16 /home/ccc/public_html/weblog
17 www.ccc.com"
18
19 )
20
21
22 for(( i=0;i<${#HTTPD_LOG_ARRAY[@]}; i++))
23 do
24 TT=(${HTTPD_LOG_ARRAY[$i]})
25 HTTPD_LOG_STAT=${TT[0]}
26 HTTPD_LOG_OUTPUT_DIR=${TT[1]}
27 HTTPD_LOG_HOSTNAME=${TT[2]}
28 # 아파치 로그를 읽어 hitcount 파일을 만든다.
29 if [ -f ${HTTPD_LOG_STAT} ]; then
30 if ! [ -d ${HTTPD_LOG_OUTPUT_DIR} ]; then
31 mkdir ${HTTPD_LOG_OUTPUT_DIR}
32 fi
cd ${HTTPD_LOG_OUTPUT_DIR}
33 /usr/bin/webalizer $HTTPD_LOG_STAT -o $HTTPD_LOG_OUTPUT_DIR -n $HTTPD_LOG_HOSTNAME
34
35 fi
36
37 done                                       
2011/06/09 04:49 2011/06/09 04:49
* 팝업창 오픈하고 부모창 이동후 팝업창 재사용하기

1. 부모창에서 팝업창을 엽니다.
2. 부모창의 주소를 바꿉니다. (same domain)
3. 부모창의 주소가 바뀌고 아까 열은 팝업창을 자동으로 엽니다.

전에 게시물에 질문을 올린글입니다.

var wndObj = window.open(...);

이렇게 하면 윈도우 개체를 구해서 wndObj에 넣고 팝업 윈도우를 제어할 수 있습니다.
그런데 부모창의 페이지가 같은 도메인내에서 바뀌었다고 가정했을때도
부모창의 이전 페이지에서 열은 wndObj를 참조할 수 없습니다.

웹브라우저는 페이지가 바뀌면 처음부터 다시 시작하니까요.
window 개체에는 이미 열린 팝업창을 담고 있는 어떠한 레퍼런스도 없습니다.

이 부분에 대해 자료를 찾아 봤는데 구글신과 양키님이 힌트를 주신것이 있어서
소개합니다. (상단 링크1 참조)

골자는 이렇습니다.

if ($_SESSION['inChildSite'] ==true ) echo "<script>window.open(...)</script>"

1. Set cookie A from parent site when launching child popup.
2. Set cookie B from child site on every page load.
3. Clear cookie B from child site on every page unload.
4. When logging out of parent site:
4-1. If cookie A is set, clear it and close local connection to child site.
4-2. If cookie B is set, clear it and open child logout page in popup.

요즘 브라우저들이 윈도우 오픈시 팝업창을 못열게 막아놓습니다.
그렇지만 같은 도메인에서 오픈한 팝업창을 다시 open 할 수는 있습니다.
(경고창 없이)

상단 링크2에서 "팝업창" 링크를 클릭해서 팝업창을 열고
하단의 feedback_2 link를 눌러서 부모창의 주소를 바꿉니다.
그러면 부모창에서 2번 페이지에서 열리는데 이때 아까 팝업창이 경고 메세지 없이
재호출되는것을 확인할 수 있습니다. (IE6, IE8 정상작동)

※ 확인을 위해 팝업창에는 랜덤 숫자와 날짜와 시간이 표시됩니다.

───────────────────────────────────────
문제는 파이어폭스나 구글크롬의 경우, <body onload> 시에
자동으로 오픈한 팝업창의 경우 .focus() 명령을 거부하는겁니다.
setTimeout()을 써도 안됩니다. (정상적인 방법으로는 불가능)

이거 해결하려면 외국의 벌거벗은 여자들 나오는 스팸 페이지 찾아가서
거기 자바스크립트 분석해서 만들어야 합니다.

아무튼 어디서 봤는데 파이어폭스던 구글크롬이던 경고창 없이 무조건 팝업창을
열게하는 코드가 사용되고 있더군요. (야매로는 가능)
───────────────────────────────────────

[핵심] 자바스크립트가 제일 짜증난다.

[결론] 웹브라우저 제작사는 window.getWindowByName() 을 만들어 달라!!                                       
2011/06/09 04:48 2011/06/09 04:48
제가 이해한 네이버 Syndicate API 란
구글 sitemap 과 비슷하게 유저가 검색엔진에 자기 콘텐츠를 알리고,
로봇이 다시 크롤링해서 결과를 받아가는 시스템입니다.

즉 프로세스가
1. 유저 -> 검색엔진 요청
2. 검색엔진 -> 유저의 웹서버 조회
3. 웹서버 출력 -> 검색엔진 DB에 반영

http://dev.naver.com/openapi/apis/function/syndication

간단하게 테스트를 하자면

<?
$api_url = 'http://syndication.openapi.naver.com/ping';

$syndi_url = 'http://www.totalcoupon.co.kr/syndi/syndi_echo.php';
$domain = 'www.totalcoupon.co.kr';
$s = "$syndi_url?id=tag:$domain,2011:site&type=site";
$s = 'link='.$s;

$header = "POST /ping/ HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/customer_webtxt_02.jsp)\r\nHost: syndication.openapi.naver.com\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n".$s."\r\n";

echo $header;
//exit;
$fp = fsockopen('syndication.openapi.naver.com', '80', $errno, $errstr, 5);
$ret = '';
if($fp){
fputs($fp, $header);
while ($line = fgets($fp)) $ret .= $line;
fclose($fp);
}
echo $ret;
?>

대충 이렇게 하면 되고요

http://syndication.openapi.naver.com/status/?site=www.totalcoupon.co.kr

반영이 되면 여기에 error 값 0 이 나오고 standby 상태가 될꺼에요.
2011/06/09 04:47 2011/06/09 04:47
IE8 에서 잘 작동 하던 jQuery 의 Ajax 통신이 IE9로 업글 후에 먹통이 되더군요.
같은 소스가 FF 4.0 에서는 잘 작동합니다.;;;

Fiddler로 확인 해본 바 데이터는 정상으로 받아오지만 data 자체를 뿌릴 수 없는
이상한 오류가 발생되었습니다.

하다못해 alert(data) 해서 유형이라도 볼라고했지만 이것도 무반응.!!

할 수 없이 구글링을 했지만 딱히 뾰족한 방법이 없어서 계속 찾던 중

http://blog.sforce.com/sforce/2011/03/visualforce-rerender-and-internet-explorer-9.html

이곳에서 힌트를 얻어 해당 Ajax 데이터를 처리하는 소스에 다음 한 줄을 추가했더니
정상 작동하였습니다.;;;

@header('X-UA-Compatible: IE=EmulateIE8');

물론 임시 방편입니다. 이 마저도 정보 공유가 안되면 난감하실분들을 위해 몇자 적었습니다.

IE9 에서 보안부분이 바뀌었거나 json 데이터 처리 방식이 바뀌어서 이런 현상이
발생하는 것으로 추정됩니다.

혹시라도 더 좋은 해결방안이 있으면 댓글로좀 알려주세요.!!
2011/06/09 04:46 2011/06/09 04:46
최근 우편이 필요해서 구했는데 csv로 되어 있습니다.
원하는 포멧으로 변경후 사용하세요..

그냥 버리려다 혹시해서 올립니다..    

                                  
2011/06/09 04:44 2011/06/09 04:44
# ncftpget -u ftpID -p ftpPWD -E -R remote.ftp.co.kr . /public_html/

위 명령어는 원격에 있는 remote.ftp.co.kr 이라는사이트에
ftpID, ftpPWD 로 로그인을 해서
그 계정의 public_html 디렉토리를
현재 내 위치 (.) 에 하위 디렉토리까지 (-R)
통채로 가져오라는 명령어.
..
만약 ftp 서버의 패시브모드 변경해야 한다면 -E 나 -F 옵션을 줘야 함.
..
-E Use regular (PORT) data connections.
-F Use passive (PASV) data connections. The default is to use passive, but to fallback to regular if the pas-sive connection fails or times out.

..
ssh 접속이 안되고 ftp 만 허용해서 원격서버의 전체 웹루트의 소스를 백업해 올 때
유용할듯.                                       
2011/06/09 04:42 2011/06/09 04:42
지원 OS : MYSQL DB가 구동되는 모든 OS

개발환경 : MYSQL 5.0

사용제한 : 프리웨어

제작자 :
진짜만세력 델파이 버전 : 고영창님 (kohyc@chol.com)
진짜만세력 MYSQL 버전 : 이양규님 <pro@trueweb.cc>
진짜만세력 MYSQL 버전에 대한민국 공유일 정보 추가 : 김성일(newrezn@naver.com)

자료설명 :

PHPSCHOOL - DOWNLOAD 게시판의 669번 자료글(양력음력변환 DB)에서 다운받은 자료에 우리나라 공휴일 정보를 추가한 것입니다.

검색 가능 기간은 양력 기준으로 1900년 01월 01일부터 2200년 12월 31일까지입니다.

공휴일은 위키백과의 '대한민국의 공휴일'을 참조하여 제정일자로부터 해당 공휴일이 나타나도록 하였고, 폐정일자 이후부터는 나오지 않도록 하였습니다. 각 공휴일의 연휴여부도 적용하였습니다.


필드는 다음과 같이 구성되어 있습니다.
num : 등록순번
lunar_date : 음력일자 (0000-00-00 형식)
solar_date : 양력일자 (0000-00-00 형식)
yun : 윤달여부 (0 : 평달, 1 :윤달)
ganji : 간지
memo : 공휴일


압축파일에는 3개 버전 그누보드용 테이블이 들어 있습니다.

MySQL 4.xxx euc-kr용 : g4_lunartosolar_mysql4.sql
MySQL 5.xxx euc-kr용 : g4_lunartosolar_mysql5ansi.sql
MySQL 5.xxx utf-8용 : g4_lunartosolar_mysql5utf8.sql

MYSQL 버전과 DB언어셋에 맞추어 사용하시면 됩니다.                    
                  
2011/06/09 04:40 2011/06/09 04:40
제12회 2011.06.12 (일)
사용자 삽입 이미지

탈락자가 발생하는 2차 경연!! 그 어디서도 느낄 수 없는 짜릿한 전율! 혼신을 다한 일곱 가수들의 무대가 시작된다!
어깨가 무..

1위 : 김범수 - 남진의.님과함께
2위 : 김동욱 - 한영애의 . 조율
3위 : 박정현 - 패닉의 . 내 낡은 서랍속의 바다
4위 : BMK - 부활의. 비와 당신의 이야기
5위 : 옥주현 - 김건모의. 사랑이 떠나가네
6위 : 이소라 - 해바라기의 행복을 주는 사람
7위 : 윤도현 - 다섯손가락. 새벽기차

2011/06/02 00:33 2011/06/02 00:33
참조 : http://vim.wikia.com/wiki/Launch_files_in_new_tabs_under_Windows

윈도우용 vim 인 gvim.exe 편집기를 사용할 때
파일 열면 새창으로 열리지 않고
하나의 창에서 새탭으로 열리게 하는 팁입니다.
..
윈도우 7 의 경우
레지스트리 편집기를 열여서 ( regedit 명령어 )

\HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command

항목을 열어서 "기본값" 수정에서

"C:\Program Files (x86)\Vim\vim73\gvim.exe" "%1"

와 같이 된 부분을 --remote-tab-silent 옵션을 추가해서
아래아 같이 수정하고 저장하면 됩니다.

"C:\Program Files (x86)\Vim\vim73\gvim.exe" --remote-tab-silent "%1"


===============
vim -p a.txt b.txt c.txt 하면 탭으로 열립니다.
vim -p3 하면 이름없는 파일로 탭 3개가 열립니다.

연상태에서

:tabnew d.txt 하면 새탭으로 파일을 열고..

:tabn 은 앞쪽으로 탭창이동 :tabp 뒤탭으로 이동
:tabfirst 혹은 :tabfir 는 첫번째 탭창, :tablast 혹은 :tabla 는 마지막 탭창          

단추키로는 normal에서 gt, gT 키로 탭이동도 됩니다.                             
2011/05/29 23:58 2011/05/29 23:58
자른 문자열 뒤에 추가된 문자열(...과 같은 말줄임표)로 인해 원하는 길이보다 길어지는 경우를 방지한 한글자르기 함수입니다.
표에 쓰이면 적당합니다.
이상한 부분 있으면 말씀해 주세요.

// Mari's PHP function substrhan(string $string , int $length [, string $footer])
// $string : 입력문자열
// $length : 출력문자열길이
// $footer : 말줄임표문자열

function substrhan($str, $len, $footer='') {
if(strlen($str) <= $len) {
return $str;
}
else {
$len = $len - strlen($footer);
for($i=0; $i<$len; $i++) if(ord($str[$i])>127) $i++;
if($i > $len) $i-=2;
$str=substr($str,0,$i);
return $str.$footer;
}
}

// Examples
$text1 = '안녕하세요';
$text2 = '날씨가 너무 좋아요.';
$text3 = '난 널 사랑해.';

$text1 = substrhan($text1, 10, '..'); // returns "안녕하세요"
$text2 = substrhan($text2, 10, '..'); // returns "날씨가 .."
$text3 = substrhan($text3, 10, '..'); // returns "난 널 사.."                                       
2011/05/29 23:54 2011/05/29 23:54
보안 때문에 Win 서버나 개인 PC 터미널 포트를 기본 포트 외에 다른걸로 셋팅해서 사용하는데
매번 레지스트리 수정하는게 귀찮고 번거로워서 만들어 봤습니다.




터미널 포트 변경.vbs
========
MsgBox("터미널 포트 설정을 진행합니다. 저작권 : forioso@naver.com ")
Port = inputBox("몇번포트를 사용하시겠습니까?")
msg = MsgBox("터미널 포트를 " & Port & "로 변경합니다. 진행하시겠습니까?",vbYesNo , "터미널포트변경")

If msg = vbYes Then
Set wshShell = CreateObject("Wscript.Shell")
'regPort = wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber")

wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber", Port , "REG_DWORD"
wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber", Port , "REG_DWORD"
'wshShell = Nothing
MsgBox("변경 되었습니다.")
else
MsgBox("취소 되었습니다.")
end if                                       
2011/05/29 23:51 2011/05/29 23:51
갑자기 html에 메세지를 추가해야 하지만 html을 수정 하기 난감한 경우가

가끔 가다가 있습니다. 이럴 경우 Jquery 의

append , insertBefore , insertAfter ,prepend 기능을

사용하여 기존의 html 을 편집 없이 메세지 혹은 버튼등을 추가 할수 있습니다.

이경우 제일 강점은 자기가 원하는 위치에 삽입이 가능 하다~!! 라는 것이겠지요.

자세한 것은 html을 받아 보시면 되겠습니다.

이미 아시는 분들은 가볍게 ESC 키를 눌러주심 감사하겠습니다.        
                              
2011/05/29 23:49 2011/05/29 23:49
재미난 글...
  1. 딱 떨어지는 숫자는 2진수입니다.
  2. 한 손으로 31까지 셀 수 있음
  3. 만능이 아님
  4. "컴퓨터"를 잘 하는게 아님
  5. 프로그래머라고 Office 시리즈에 정통한 것이 아님
  6. 아, 그 작업은 사무쪽 누님이 잘하실 겁니다.
  7. 가나 입력으로 변환한 다음에는 반드시 로마자 입력으로 돌려놓을 것
  8. 프로그램의 쓰레기 수집은 잘 하지만 자기 방의 쓰레기 수집은 잘 못함
  9. 멀티스레드 처리 작성은 할 수 있지만 멀티스레드 처리는 못함
  10. Amazon 에서 사는 건 기술서이므로, 딱히 포장물 내용을 확인할 필요는 없음
  11. 쌓아놓은 책은 스택이므로 순번을 바꾸지 말것
  12. 오라일리 책은 「같은 책」이 아님
  13. 표지에 동물만 그려져 있는 책만 꽂혀있어도 그건 동물도감이 아님
  14. 프로그래밍을 안하는 날도 있음
  15. 프로그래밍 언어나 에디터에 대한 집착이 사라진다면 깨달음을 얻었거나 완전연소했거나 둘 중 하나
  16. 언어로 바람피우는 것과 인생의 바람피우기는 다른 것
  17. 「자식을 죽인다」는 말에 놀라지 말 것
  18. 일 관계로 전화를 할 때, 자식이 죽지 않으면 부모를 죽여버리라는 대화를 들어도 놀라지 말것
  19. 라이브러리라는 것은 도서관을 말하는 게 아님
  20. 「사이드 이펙트(부작용)」는 부정적인 의미로 사용하는 것이 아님
  21. 특히 「다이아몬드 상속」은 유산상속같은 이야기를 하는 것이 아님
  22. 괜히 보석 이름 같은 것을 중얼거려도 보석에 대해 잘 아는 것이 아님
  23. 루비와 펄 중에 뭐가 좋아? 라고 물어보면, 싱긋 웃으면서 펄이라고 대답할 것
  24. 「조금만 더하면」「거의 끝났어」라는 말이 나오기 시작하면 당분간 끝나지 않을 것이라고 생각할 것
  25. 갑자기 혼잣말을 하기 시작해도 정신이 이상해진 것이 아님
  26. PC 를 보고 있는 남편에게 말을 걸어도 되는 타이밍인지 아닌지 외견으로 판단하는 것은 포기하는 것이 좋음
  27. 23-24시 정도가 가장 활발함
  28. HP 는 항상 0에 수렴함
  29. 회사와 집의 구별이 그다지 없고, PC 앞에 있는가 없는가의 구별 밖에 없음
  30. 스스로가 정보수집과 오락의 경계선을 이해하지 못함
  31. 몬스터헌터는 업무
  32. 애니메이션 보는 것은 업무
  33. 일을 하는 것처럼 보이지만 실은 인터넷을 하는 것 뿐임
  34. 주말에도 스터디에 간다고 하는 것은 공부를 열심히 한다는 증거, 가사가 싫어서 그러는 게 아님
  35. 한밤에 긴급전화가 왔다면, 다음날부터의 예정은 캔슬이라고 생각합시다
  36. 밤중에 갑자기 사라져도 그냥 장애 대응하러 간 것임
  37. 오전중에 돌아오는 일이 많아져도 바람피우는 것이 아닌지 의심하지 말것
  38. 주말에만 사복으로 「출근」했다고 바람피우는 것이라고 의심하지 말 것
  39. 결혼식장에서 신랑이 사라져도 당황하지 말것. 고객이 호출한 것 뿐임
  40. 정시퇴근은 도시전설
  41. 「귀가한다」「귀가할 수 있다」라는 말은 별 도움이 안됨
  42. 10일 정도 돌아오지 않아도 당황하지 말 것
  43. 감금같은 걸 당해도 빚이 있어서 그러거나 한 게 아님
  44. 가끔씩 일찍 돌아와도 잘렸을 걱정은 하지 말 것
  45. 여름 휴가 언제야? 라고 묻지 말 것
  46. Twitter 의 post 빈도 감소나 내용에서 상대가 얼마나 바쁜지 추측해서 위로할 것
  47. 화재나 행진같은 것에 트라우마를 갖고 있을 것
  48. 남편 급여의 직능급과 기본급과 잔업수당의 비율
  49. 노동기준법
  50. OA 기기라고 적힌 우편물은 절대로 OA 기기가 아님
  51. PC 나 휴대폰, iphone 에 패스워드 락이 걸려있는 것은 보안대책을 위해서. 바람을 핀다거나 야한 것을 숨기고 있는게 아니랍니다( ^ω^)
  52. 컴퓨터는 이미 집에 있잖아, 라고 하지 마시길. 당신이 갖고 있는 구두나 가방과 같은 것입니다.
  53. 한밤중에 컴퓨터로 동영상을 보면서 싱글거리고 있다면, 그것은 분명 Apple 의 신제품 발표이므로 신용카드를 몰수하는 것이 좋음
  54. 스티브 잡스의 프리젠테이션이 있는 다음날 아침에 갑자기 개최되는 가족회의에서 제출하는 안건에 대하여 「다른 집은 다른 집이고 우리 집은 우리 집이야!」라고 기각할 것
  55. 뭐가 뭔지 알수 없는 T 셔츠를 남편이 계속 가져와도 적당히 버리거나 하지 말 것
  56. 컴퓨터 책상에 놓여있는 피겨나 프라모델은 버리지 말 것
  57. 그것은 잡동사니도 부서진 물건도 아님
  58. 키넥트를 사려고 하는 것은 유저 인터페이스 연구 때문에
  59. 러브 플러스를 하는 것은 유저 인터페이스 연구 때문에
  60. 사용자 경험(UX)인지 뭔지 하는 주제에 CUI 를 좋아함
  61. LCD 가 달려있는 작고 비슷하게 생긴 기계를 잔뜩 갖고 있어도 전부 다른 물건이며 각자 의미가 있습니다
  62. 동작검증을 하기 위해서는 신제품이 필요하며, 그것은 Amazon 에서 배달됨
  63. 옥션 사용방법을 숙지하고, 남편이 사온 장난감을 팔아치워 용돈으로 씁시다
  64. 생일 선물은 원하는 물건을 미리 말해두지 않으면 신제품 디지털 가전(Gadjet)을 받게 됨
  65. 깜짝 선물을 준비하고 싶다면 남편의 Amazon 위시 리스트를 조사함
  66. iPhone 앱, Android 앱, Web 사이트를 만들었다는 이야기를 들으면 뭐가 뭔지 몰라도 상냥하게 대답해줄 것
  67. 쓸데없이 하이텐션으로 의미를 알 수 없는 소리를 지껄일 때에는 단순히 흥미 깊은 기술이 나와서 텐션이 높아진 것 뿐이므로, "잘 모르겠지만, 대단하다는 건 알겠다"라고 대답해주세요
  68. 갑자기 이상한 어휘가 늘었다면 니코니코 동화같은 데애서 유행하고 있는 것이라고 추측하시길
  69. 남편의 HN 과 본명을 이어보려고 해서는 안됨
    남편의 블로그의 과거로그를 음독해서는 안됨
    남편의 HN 으로 검색해서 흑역사를 알아서는 안됨
  70. 「우리 마누라가…」라고 했을 때, 그것은 프로그래머 사이에서 통용되는 전문용어입니다. 당신을 말하는 것이 아닙니다
  71. 오타쿠라고 하면 필요 이상으로 싫어하지만, 긱(Geek)이라고 말하면 기뻐합니다
  72. 침울해하고 있을 때는 「컴퓨터를 조작해서 ○○할 때 마우스를 쓰지 않고 키보드만으로 하려면 어떻게 해야해?」라고 물으면 기뻐하면서 가르쳐 줄 것입니다
  73. 「시뮬레이션」이라고 말하면 혼나므로 주의할 것
  74. 이상, 이하, 미만, 보다 위, 보다 아래를 대충 섞어쓰면 기분이 나빠짐
  75. 프로그래머는 「절대로」「뭔가 이상해졌어」「아무것도 안했어」같은 말에 과잉으로 반응합니다. 홧병, 쇼크사, 자살의 위험성이 있으므로 이런 말을 사용할 때에는 세심한 주의가 필요합니다
  76. 부부싸움할 때 최대의 무기는 화이트 보드
  77. 어쩌다 아내의 방식에 불만을 표시하면 「그건 사양(仕様)이예요」라고 대답함
  78. 남편이 이건 사양이라고 말하면 그 사양은 변경되었습니다 라고 대답할 것
  79. 싸워서 꼭지가 돌아버렸을 때에는, 네트워크 회선을 끊어버리는 것이 가장 손쉽고 효과적으로 분노를 표현하는 방법입니다.
  80. 가능하면 아내와의 대화를 자동화시키고 싶어 함
  81. 아내에게는 사양 변경이 붙는 법
  82. 홈 서버를 가리키면서 쓰지도 않는데 왜 항상 전원이 켜져 있는 거야 라고 묻지 말 것
  83. 연락수단은 전화<<<<<(넘을 수 없는 벽)<<<<메일<<<<<<<IRC, Skype, etc
  84. Google Calender 에서 상대의 스터디 스케쥴을 파악할 것
  85. 집안 예정은 남편이 지정한 그룹웨어로 공유할 것. 구두(口頭)로의 통지만으로는 위험
  86. 남편이 해야할 것은 데스마치(죽음의 행진)이 아닌 여유가 있을 때 기억시켜두지 않으면 답이 없음
  87. 가정 내의 중요한 스케쥴을 끼워넣고 싶을 때에는 마감 근처의 주말은 피합시다. 어차피 집에 못 돌아옵니다
  88. 남편이 전문분야인 화제에는 신중하게 접근할 것
  89. 친구 관계의 잡담을 할 때에는 상관관계도를 그려주면 이해가 빨라집니다
  90. 단순히 이야기를 들어주기 바랄 때에서는 그렇게 명시할 것
  91. 동의해주기 바랄 때에 분석되어 정론을 들어도 화내지 마시기 바랍니다
  92. 요건은 항목별로 적어서 전하지 않으면 프로그래머 스스로가 버그를 냄
  93. 밤생활이 불만이면 Redbull 을 내밀어봄
  94. 정기적으로 자식들에게 이게 아빠야 하면서 사진을 보여주세요
  95. 남편이 「프로그래머의 아내가 알아야 할 97가지」같은 걸 트윗해도 신경쓰지 말 것
  96. 읽어보라고 한 97가지의 절반 이상이 뭔 소리인지 몰라도 어쩔 수 없음
  97. 이러니저러니 해도 아내를 사랑함. 하지만「쪽팔려서 말 못해」라고 생각해서 말로 표현하지 않을뿐.
원문은 여기
2011/05/22 08:16 2011/05/22 08:16
mysql을 사용하시는 분들은 거의 phpMyAdmin을 사용하실 겁니다.

이번 5월 11일 자로 공식적으로 phpMyAdmin 3.4.0 버전이 릴리지 되었습니다.
변한것에 많네요.

그런데 이 버전에는 한국어 언어팩이 없습니다.
아시겠지만 한국어에 대한 업데이트는 벌써 몇년째 안되고 있는 실정입니다.

3.4 버전 이전에는 언어팩이 /lang 폴더 안에 php 파일로 존재 하였습니다.
그런데 이번 버전부터는 /locale 하위 폴더에 각각 언어 폴더에 존재합니다.
그것도 그냥 TEXT 파일이 아닌 .mo 라는 확장자를 가지고 있습니다.

이 확장자 파일은 여러군데에서 쓰이는 언어팩입니다.
TEXT파일 보다 훨씬 작은 용량에 TEXT파일이 아니기 때문에 다른 사람이 수정하지 못합니다.
원본 파일 .po 가 있어야 수정이 가능합니다.

.po 확장자 파일은 Poedit 라는 프로그램으로 수정이 가능합니다. 언어파일을 쉽게 관리 할수 있습니다.


하여튼 한국어 언어팩이 없어서 하나 만들어 봤습니다.
이전에 번역되어 사용되고 있던 데이터를 참고로 하여 부분적으로 수정 하였습니다.


위 파일을 받아서 /locale/ko/LC_MESSAGES/ 안에 넣으시면 됩니다.

예전에 몇몇 번역파일을 만들어 본적이 있는데 번역이 이상하다 머다 해서 딴지 거는 사람들이 있더군요..
그러지 마세요 사용하지 않으면 그만 입니다. ㅡㅡㅋ
2011/05/22 08:14 2011/05/22 08:14
function get_spam_score($title,$content){

if(!$content){ $content = $title; }

$server_ip = '여러분들의 IP';

$s = '<?xml version="1.0" encoding="utf-8" ?>
<methodCall>
<params>
<method>getSpamScores</method>
<spamfilters><item><id>1</id></item></spamfilters>
<contents>
<item>
<id>1</id>
<title><![CDATA['.$title.']]></title>
<content><![CDATA['.$content.']]></content>
<ip>'.$server_ip.'</ip>
<pubdate>'.date("Y-m-d H:i:s").'</pubdate>
</item>
</contents>
</params>
</methodCall>';

$header = "POST / HTTP/1.1\r\n".
"Connection: close\r\n".
"Host: antispam.openapi.naver.com\r\n".
"Content-Type: application/xml; charset=UTF-8\r\n".
"Content-Length: ".strlen($s)."\r\n\r\n".$s."\r\n";
//echo $header;
//exit;

$fp = fsockopen('antispam.openapi.naver.com', '80', $errno, $errstr, 5);
$ret = '';
if($fp){
fputs($fp, $header);
while ($line = fgets($fp)) $ret .= $line;
fclose($fp);
}

// echo $ret;
list(,$pre_score) = explode('<score>',$ret);
list($score) = explode('</score>',$pre_score);

return $score;

}

네이버 OPENAPI 스팸공동대응 API 이용한거구요.

네이버 검색엔진은 한번 잘못 보이면 두번다시 크롤링 안하는 냉정한 녀석이라
신디케이션 사용하시는 분들은 스팸차단 함수 이용해서 차단을 미연에 방지하는게
좋을꺼란 생각에 간단하게 만들어본 거 랍니다.
2011/05/14 06:07 2011/05/14 06:07
--------------------------------------------------------------------------------------------------------


-> 아래에 링크되어 있는 예제는 모든 브라우저에서 작동합니다.

http://test.inpost.kr/HTML5/webforms/all/


-> 관련 강좌 링크

http://blog.naver.com/seogi1004/110095812775 - HTML5 Tip & Tech (1), 기초
http://blog.naver.com/seogi1004/110096142093 - HTML5 Tip & Tech (2), Drag & Drop
http://blog.naver.com/seogi1004/110096740941 - HTML5 Tip & Tech (3), Web Database
http://blog.naver.com/seogi1004/110098886402 - HTML5 Tip & Tech (4), Server Push
http://blog.naver.com/seogi1004/110102214238 - HTML5 Tip & Tech (5), Web Forms in Cross Browser


-> 그 밖에 강좌 링크

http://blog.naver.com/seogi1004/110076487990 - jQuery Tip & Tech (1), 로그인 관련
http://blog.naver.com/seogi1004/110077362488 - jQuery Tip & Tech (2), 게시판 관련
http://blog.naver.com/seogi1004/110078033946 - jQuery Tip & Tech (3), ColorPicker
http://blog.naver.com/seogi1004/110079860750 - jQuery Tip & Tech (4), 셀렉터 & 함수 정리
http://blog.naver.com/seogi1004/110082954783 - jQuery Tip & Tech (5), 이미지 뷰어 만들기, Event 정리
http://blog.naver.com/seogi1004/110083474040 - jQuery Tip & Tech (6), $.유틸리티 속성과 함수
http://blog.naver.com/seogi1004/110093166911 - jQuery Tip & Tech (7), 확장 메소드 구현하기
http://blog.naver.com/seogi1004/110092043282 - jQuery Tip & Tech, TableSort 플러그인 소개
http://blog.naver.com/seogi1004/110078561970 - jQuery Tip & Tech, 단일/다중 선택, 단일/다중 드래그 예제                                       
2011/05/14 06:06 2011/05/14 06:06
<?php

require_once 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = $gmail_username;
$mail->Password = $gmail_password;
$mail->SetFrom($fromemail, '=?'.$charset.'?b?'.base64_encode($fromname).'?=');
$mail->Subject = '=?'.$charset.'?b?'.base64_encode($subject).'?=';
$mail->ContentType = $contenttype;
$mail->CharSet = $charset;
$mail->Encoding = 'base64';
$mail->Body = $contents;
$mail->AddAddress($toemail, '=?'.$charset.'?b?'.base64_encode($toname).'?=');
for($i = 0; $i < 3; $i ++) {
if($mail->Send()) return;
sleep(1);
}

라이브러리의 라이센스가 LGPL 2.1 입니다.
원본 예제대로 하면 한국어 깨지니 위처럼 하세요.
파일첨부도 되네요. 필요없어서 안해봤음.
링크2 는 발송 제한 내용.                                       
2011/05/14 06:04 2011/05/14 06:04
보안 때문에 Win 서버나 개인 PC 터미널 포트를 기본 포트 외에 다른걸로 셋팅해서 사용하는데
매번 레지스트리 수정하는게 귀찮고 번거로워서 만들어 봤습니다.




터미널 포트 변경.vbs
========
MsgBox("터미널 포트 설정을 진행합니다. 저작권 : forioso@naver.com ")
Port = inputBox("몇번포트를 사용하시겠습니까?")
msg = MsgBox("터미널 포트를 " & Port & "로 변경합니다. 진행하시겠습니까?",vbYesNo , "터미널포트변경")

If msg = vbYes Then
Set wshShell = CreateObject("Wscript.Shell")
'regPort = wshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber")

wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber", Port , "REG_DWORD"
wshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber", Port , "REG_DWORD"
'wshShell = Nothing
MsgBox("변경 되었습니다.")
else
MsgBox("취소 되었습니다.")
end if                                       
2011/05/14 06:01 2011/05/14 06:01

사람찾기방법 - 이름으로 사람찾기, 전화번호로 사람찾기, 친구찾기

사람찾기방법은 해결사만 하는것이 아닙니다. 온라인에서는 사람을 찾는 여러사이트들이 있습니다. 과거 아이러브스쿨이 유행했었던 적이 있는데 동창찾기를 포함한 사람찾기 사이트들을 알아보도록 하겠습니다. (온라인에서 사람을 찾는 서비스는 상태가 온라인서비스에 가입되어야만 찾을 수 있습니다.)


사람찾기 사이트 - 사람찾기방법
1. 네이트 사람검색
- 싸이월드 db를기반으로 사람이름으로 찾을 수 있습니다. 당연히 싸이월드 이용자가 공개를 하지 않았을 경우 검색이 되지 않습니다. 예전에는 싸이열풍으로 대부분의 사람찾기가 가능했으나 현재는 공개를 하지 않거나 싸이이용을 하지 않는 사람이 많아서 검색결과가 예전만 못한것으로 보입니다.
링크 : http://search.nate.com/search/ps.html?z=PS&s=&tq=&sc=&afc=&thr=tab&q=

사용자 삽입 이미지

네이트 - 사람검색



2. 다음 사람찾기
- 싸이월드, 아이러브스쿨의 유행으로 다음에서도 사람찾기 서비스가 있었으나 현재는 서비스가 종료되어 제공되고 있지 않습니다.


3. 네임검색
- 사람찾기 서비스의 핵심은 결국 사람입니다. 중소규모의 회사에서 아주 특별한 마케팅이나 기술이 없다면 해당 서비스를 진행하기 힘듭니다. 네임검색역시 등록된 사람의 연락처를 알려주는 서비스인데 등록된 db가 많지 않습니다. 링크 : http://www.name.co.kr/
2011/05/01 03:37 2011/05/01 03:37
2011/05/01 01:41 2011/05/01 01:41
무설치 버전 입니다. 설치후 압축해서 업로드 합니다 . 설치 하는걸 무지 실어해서.^^
2011/04/30 04:17 2011/04/30 04:17


출처 : http://www.techdays.co.kr/2011spring/view.asp?b_no=111
2011/04/14 00:35 2011/04/14 00:35
도스창(명령 프롬프트)이나, 배치 파일 (Batch File) 에서, 불필요한 파일을 지우기 위해서는 del 이라는 명령어를 사용합니다.


지정한 파일 하나만 삭제하는 명령


del 0.obj

예를 들어 0.obj 라는 파일을 지우려면 위와 같이 합니다.


지정한 확장자의 파일들만 지우기 명령


del *.bak

.bak 확장자를 가진 모든 파일을 한꺼번에 지웁니다.



읽기전용 파일 삭제


del /f 0.obj
이런 식으로 /f 옵션을 붙여야 합니다. 그렇지 않으면 액세스가 거부되었습니다.라고 나오며 지워지지 않습니다.


숨김 속성 파일 (히든파일) 삭제


del /a 0.obj
이렇게 /a 옵션을 붙입니다. 그렇지 않으면 D:\Y\0.obj을(를) 찾을 수 없습니다.라는 에러가 나고 지워지지 않습니다.


현재 디렉토리(폴더)의 모든 파일 한꺼번에 지우는 명령


del .

현재 디렉토리의 모든 파일을 지우려면 위와 같이 합니다. 위험한 작업이기에 도스가 우선 D:\Y\*, 계속하시겠습니까(Y/N)? 이렇게 물어봅니다. Y 키를 누르면 파일이 모두 지워집니다.

참고로 마침표(.)는 현재 디렉토리를 의미합니다.






하위 디렉토리(폴더) 지우기 명령


파일이 아닌 디렉토리를 지우려면 rmdir 이라는 명령어를 사용합니다.
rmdir 000

현재 디렉토리 밑의 "000" 이라는 이름의 디렉토리를 위와 같은 방법으로 지울 수 있습니다.

다만 그 디렉토리 안에 파일이 들어 있으면 디렉터리가 비어 있지 않습니다. 이런 에러가 나고 지워지지 않습니다.

이때는
rmdir /s 000
이렇게 /s 옵션을 붙이면, 디렉토리가 비어 있지 않더라도 지워집니다. 굉장히 위험한 옵션이니 주의가 필요합니다.





추가 사항:
윈도 탐색기와 달리, 명령프롬프트(도스창)에서 파일을 지우면, 휴지통으로 들어가지 않고 곧바로 지워지기에 복구가 힘들거나 불가능합니다.
2011/04/08 19:56 2011/04/08 19:56