2007년 12월 16일 일요일

[linux] 메일 프로그램 PINE

메일서버에 메일이 많이 쌓이면 mail명령어가 동작하지 않는 경우가 있다.

다음과 같은 오류메시지가 나온다.

  fseek: Invalid argument
  panic: temporary file seek
  중지됨:

이런 경우 메일을 지울수도 없고 난감한데 pine을 쓰면 편리하다.

다음은 PINE을 사용하여 쌓여있는 메일 전체를 삭제하는 예이다.

서버에 로그인한 후 명령창에 pine을 치면 프로그램이 실행된다.

다음과 같은 화면이 나오고 메일을 읽어온다. 메일이 많이 쌓여있는 경우 메일을 읽어오는데 시간이 걸린다.

사용자 삽입 이미지

화살표를 움직여 MESSAGE INDEX 를 선택하고 엔터를 치거나 키보드에서 I를 누른다.

메세지 목록이 나오고 아래에는 실행할 수 있는 명령어가 표시된다. O를 누르면 다른 명령어 목록이 표시된다.

사용자 삽입 이미지


;을 눌러서 선택모드로 전환한다.
A를 눌러서 전체를 선택한다.
A를 눌러서 Apply모드로 전환한다.
D를 눌러서 삭제를 실행한다.
Q를 눌러서 프로그램을 종료한다.

*프로그램을 종료할 때 메일을 완전히 삭제할것인지(Expunge) 물어본다. Y(Yest)를 입력하면 된다.


참고 : http://www.washington.edu/pine/tutorial.4/index.html

2007년 12월 10일 월요일

[Database] 테이블 복사 쿼리

백업등의 필요로 인해 테이블을 복사할 경우가 종종있다.

테이블 복사 쿼리 예시.


1. MSSQL

select * into tblUser_Backup from ( select * from tblUser ) X


2. Oracle

create table tblUser_Backup as select * from tblUser


3. MYSQL

CREATE TABLE tblUser_Backup LIKE tblUser;
INSERT INTO tblUser_Backup SELECT * FROM tblUser;

2007년 12월 9일 일요일

[Database] Connection, Statement, ResultSet은 반드시 닫아야한다.

에피소드 하나.

내가 아는 사람이 국내 유명 인터넷포탈업체에 근무하고 있다.

그 사람이 그 유명 포탈사이트를 몇시간동안 다운시켰는데 원인을 찾아보니 file을 오픈하고 close를 하지 않았기 때문이었단다.

디비도 마찬가지다.

Connection, Statement, ResultSet를 사용하고 난 후에는 반드시 닫아야한다.

혹시 모를 실수를 대비해 finally문에서 전체적으로 디비 객체를 닫는 공통 메소드를 만들어 사용하는 것이 좋다.

쿼리를 여러번 날리는 경우에는 반드시 중간중간에 ResultSet.close()를 실행해준다.


참고 : http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=servlet&c=r_p&n=968185187

[css] selector를 잘알자.

css는 다음과 같은 형식으로 정의한다.

  selector { property : value ; }

css를 쓰기위해선 selector에 대해 잘 아는것이 필요하다.

자주 쓰이는 몇가지를 정리한다.

1. Type Selector ( E )

  모든 E element에 스타일이 적용된다.

2. Class Selector ( .E )

  class가 E인 element에 적용된다.

3. ID Selector ( #E )

  id가 E인 element에 적용된다.

4. Descendant Selector ( E F )

  E element 하위에 있는 F element에 적용된다.

5. Attribute Selector ( E[att=val] )

  att 속성(attribute)값이 val인 E element에 적용된다.


참고 http://www.w3.org/TR/REC-CSS2/selector.html
       http://developer.mozilla.org/en/docs/Writing_Efficient_CSS

[DOM] document.all 을 쓰지마라

document.all 은 IE에서만 동작한다.

같은 name을 가진 input이 여러개 있을 때 document.form0.inputName.length 이런 식으로 사용하는 경우도 있다.

이 또한 IE에서만 동작한다.


w3c 스펙에 나와있는 document.getElementById 나 document.getElementsByName을 사용하여야 한다.

1. getElementById는 element를 반환한다. 다음과 같이 사용한다.

var ele = document.getElementById("testID");
alert(ele.value);


2. getElementsByName은  nodelist를 반환한다. 다음과 같이 사용한다.

var nodelist = document.getElementsByName("testName");
for ( var i=0; i<nodelist.length; i++ ) {
  alert(nodelist.item(i).value);
}


참고 : http://developer.mozilla.org/en/docs/DOM:document
Spec : http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-1006298752

2007년 12월 6일 목요일

[Javascript] 이벤트 처리

input 박스에서 키입력을 제어하는 경우의 예를 들어보자.

<script>
  function foo() {
    if(event.keyCode == 13){
     login();
   }
  }
  function login() { // do something..
  }
</script>

<input type="text" name="account">
<input type="password" name="password" onKeyPress="javascript:foo();">

이 코드는 계정(account)와 비밀번호(password)를 입력한 후, 비밀번호 입력창에서 엔터(13)를 치면 로그인 프로세스가 실행되는 예이다.

이 코드는 IE에서만 동작한다. Firefox에서도 동작하기를 원한다면 다음과 같이 작성한다.

<script>
  function foo(event) {
    if(event.keyCode == 13){
     login();
   }
  }
  function login() { // do something..
  }
</script>

<input type="text" name="account">
<input type="password" name="password" onKeyPress="javascript:foo(event);">

[css] cursor : pointer 를 써라

버튼을 이미지로 처리할 때 다음과 같이 코딩을 한다.

<img src="btn_close.gif" style="cursor:hand;">

그러나 이 코드는 IE에서만 원하는 결과를 얻을 수 있다.


다음과 같이 코드를 작성하라.

<img src="btn_close.gif" style="cursor:pointer;">


다음의 w3c표준 문서를 참고하라.

http://www.w3.org/TR/REC-CSS2/ui.html#propdef-cursor


IE 5.0 이하 버전에서 cursor:pointer가 동작하지 않는다고 합니다.(확인은 안해봤음)

IE 5.0이하 버전을 지원해야 할 경우 다음과 같이 css를 작성하여 사용하면 되겠습니다.

<style type="text/css">
#foo {
cursor:pointer;
cursor:hand;
}
</style>
 

[css] px를 꼭 붙이자

다음과 같이 css를 작성하였다.

input {
  font-size:12px;
  font-family:dotum, 돋움;
  color:#707070;
  border:#d1d1d1 solid 1;
  padding:2;
}

IE에선 잘 나온다. 그러나 Firefox에서 보면 다음과 같이 나온다.

사용자 삽입 이미지

다음과 같이 작성하여야 한다.

input {
  font-size:12px;
  font-family:dotum, 돋움;
  color:#707070;
  border:#d1d1d1 solid 1px;
  padding:2;
}

사용자 삽입 이미지

이제 원하던 모양이 나왔다^^