eXtreme Programming 에 관한 사이트를  예전에 우연히 몇번 스치듯 보았다
참 이렇게 개발만 된다면 좋겠다라는 생각을 했었는데
내심 속으로 하지만 나의 환경에는 저런게 적용하기가 쉽지 않아...라며
지나치게 되었다 그러다 오늘 다시 생각이나 xp사이트를 둘러보다
어느 페이지를 보고 생각을 고쳐먹게 되었다

"Not For Us" ("우리를 위한 것은 아니다") - 어떤 기술이나 문화 등이 자신이 처한 상황에는 잘 맞지 않아서 적용 불가하다는 생각, 태도.

라고 적혀있다

http://xper.org/wiki/xp/NotForUs


한번 다시 생각해보아야 겠다~~
2007/09/01 22:48 2007/09/01 22:48
TAG , ,
벨로시티에서
#set ( $CODE_ENG_ABB     = "" )
#set ( $CODE_ENG_ABB     = $a )
위와 같은 식으로 값을 넣었을때 페이지 처리에는 문제가 없으나 로그에 아래와 같이 오류메세지가 표시되었을 경우는 초기화된 값이 ""와 같이 빈값이고 $a 라는 변수값을 입력했는데 $a에 빈값이 들어있을경우에 아래와 같이 Context will not be modified 라는 메세지가 나오면서 오류메세지가 뜬다.....물론 값이 수정되지 않았으니 메세지는 맞지만 저걸 에러라고 표시하는 이유가 뭔지는 모르겠다....-0-;;;;

실메세지는 아래와 같이 발생한다...아래는 내가 작업하다 난 메세지 -0-;;;
=============================================
ERROR - CommonsLoggingLogSystem.logVelocityMessage(43) | RHS of #set statement is null. Context will not be modified. admin/category/category_input.vm [line 24, column 8]
2007/09/01 22:47 2007/09/01 22:47
사실 스타일에 대해선 잘 모르는 나이기에 이런일이 발생하였다 ....ㅜㅜ

테이블에서 행 사이즈가 100이라고 가정할 경우
실 테이블의 행에 width를 100이라고 지정하고 스타일 패딩을 레프트10이라고 지정되면
실제로는 110의 사이즈를 갖게 된다


<style>
<!--
    .tbl_pad_l10 {padding-left:10px;}
    .tbl_pad_r10 {padding-right:10px;}
//-->
</style>

<table width="970"  border="0" cellspacing="0" cellpadding="0">
<COLGROUP>
  <COL width="65">
  <COL width="105">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
  <COL width="80">
</COLGROUP>

<tr>
<td rowspan="2" align="center">TEST1</td>
<td class="tbl_pad_l10" align="left">TEST2</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
<td class="tbl_pad_r10">14,500</td>
</tr>

</table>


위 테이블의 실사이즈는 1080이된다 제대로 사이즈가 출력되게 하려면 아래와 같이 사이즈를 수정해야한다.

<COLGROUP>
  <COL width="65">
  <COL width="95">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
  <COL width="70">
</COLGROUP>


패딩은 셀 내부에 걸었는데 왜 위와 같이 되는건지 사실 아직도 이해가 되지 않는다..ㅜㅜ
2007/09/01 22:45 2007/09/01 22:45

javascript에서 DoEvents(?)

개발/HTML/CSS/JS 2007/09/01 22:45 posted by zekill
<script language="javascript">

function printTable(rst)
{
    //rst is array value

    var tblList     = document.getElementById("tblList");
    var nRow;
    var nCell;

    for(var i=0; i<rst.length; i++)
    {
        nRow = tblList.insertRow();
        nCell = nRow.insertCell(0);
        nCell.innerHTML = rst[i];
    }
}

/*
위와 같이 테이블에 Row를 추가하는 방법이 있다.(DHTML)
하지만 추가할 Cell이 많아지고 Row 또한 많아지게 되면
insertRow, insertCell 을 작업하는 동안 화면이 멈추게 된다.(무한루프 돌때나 다운이된경우처럼...)
좀 많이 루프를 돌면서 Table에 Row와 Cell을 추가하게 될 경우에 말이다.

그래서 고민하면서 찾게 된게...어차피 스크립트에서 스레드를 기대하기는 무리고
VB에서와 같이 DoEvents라는 메소드를 찾게되었다.
작업 진행 시간이야 어찌됐든 멈춰보이는것보다
작업이 진행되고있음을 알려주는것이 더 낳을거라 판단이 들었기때문이다.
*/


var g_tmrDrawID; //타이머 ID
var g_lstResult; //리턴 받은 결과값 저장
var g_nPosCurrentData = 0; //g_lstResult 결과 리스트 중 현재 작업 위치

function printTable(rst)
{
    //rst is array value

    //리턴값을 전역으로 저장
    g_lstResult = retVal;

    //현재 위치 초기화
    g_nPosCurrentData = 0;

    //타이머 초기화
    clearTimeout(g_tmrDrawID);

    //데이터 뿌려주는  함수 부르는  시키는 타이머 시작
    g_tmrDrawID = setTimeout("DrawTable()", 1);
}

function DrawTable()
{
    var tblList     = document.getElementById("tblList");
    var retVal     = g_lstResult; //전역으로 지정해놓은 리턴값을 로드
    var nRtnCount    = retVal.length; //리턴값 배열 갯수
    var i = g_nPosCurrentData; //g_lstResult 결과 리스트 중 현재 작업 위치
    var nRow;
    var nCell;


    nRow = tblList.insertRow();
    nCell = nRow.insertCell(0);
    nCell.innerHTML = retVal[i];

    //현재 위치가 리턴값 개수와 같지 않을 경우만 1ms 단위로 타이머 콜
    if(nRtnCount!=g_nPosCurrentData+1)
    {
        clearTimeout(g_tmrDrawID);
        g_tmrDrawID = setTimeout("DrawTable()", 1);
    }
    else
    {
        g_nPosCurrentData = 0; //현재 위치 초기화
        clearTimeout(g_tmrDrawID); //타이머 초기화
        g_lstResult = null; //전역 리턴값 초기화
    }

    //현재 위치 갱신
    g_nPosCurrentData++;
}

/*
찾다찾다 결국 못찾아 타이머를 이용해 만들어보기로 했다.
타이머를 이용해 행단위로 작업되기때문에 멈추지도 않고 쭈우우욱 삽입되는게 보여 생각한거랑
비슷하긴 하지만 한행 입력되는데 1ms의 텀이 있다는거~~~ ㅡㅡ;;;
작업되는시간까지 합치면 뭐 더 걸리겠지만...
할튼 그래도 시간이 좀 걸려서 그렇지 생각과 비슷하게는 만들어졌다.

타이머 콜을 제어하고 위치변수들을 제어하기 위해 소스가 원소스에 비해 두배이상 길어졌지만....
물론 DrawTable에 실작업되는부분은 try를 해서 예외처리를 해놓는것이 반복 요청등이나 뭐 그런 일이 생길때 유리하다
*/
</script>





사실 누구야 만들려한다면 못만들겠냐만은 이걸 만들기전에 자바스크립에서 DoEvents와 유사한 방법이 없을까 하는 방법들을 찾다찾다 VBScript를 찾다찾다(DoEvents는 당연 VB에서만 된다) 누가 유사하게 사용한거 없을까 찾다찾다 하도 생XX를 한게 생각이 나서....ㅋㅋ
2007/09/01 22:45 2007/09/01 22:45

PHP Framework 몇가지

개발/PHP 2007/09/01 22:44 posted by zekill
phrame (http://phrame.sourceforge.net/ )
fusebox (http://www.fusebox.org/ )
WACT (http://wact.sourceforge.net/ )
mojavi ( http://www.mojavi.org/ )
studs ( http://mojavelinux.com/projects/studs/ )  
binarycloud ( http://www.binarycloud.com/ )
php.MVC ( http://phpmvc.net )
ambivalence( http://amb.sourceforge.net/ )

==================================
몇가지가 더 있는것 같지만 다른건 잘 모르겠고
우선 나중에 PHP작업하게되면 살펴보아야겠다
2007/09/01 22:44 2007/09/01 22:44