since 1997

오늘 66 / 전체 478,395

CATEGORY

분류 전체보기 (637)
일상다반사 (235)
끄적끄적 (20)
음악이야기 (14)
$잡다구리 (60)
$운영체제 (129)
$프로그래밍 (148)
$데이터베이스 (31)
RECENT ARTICLES

  Distributed VCS

  Windows 7 - Reset win..

  티맥스소프트가..

  결국 티맥스소프..

  오늘, 그리고 내..

  라데온 4890

  Vincent Baguerre, Aur..

  Jetbrains IntelliJ ID..

  ERwin r7.3.3

  썬을 인수한 오라..

RECENT COMMENTS

  답변이 많이 늦었..

  저도 ?????로깨지..

  저거 나한테 버려..

  잘 보고 가요...

  안녕하세요..ERWi..

  고맙습니다. 잘쓰..

  몇달후 가상 fdd ..

  감사합니다..좋은..

  한큐에 해결 감사..

  한큐에 해결 감사..

RECENT TRACKBACKS

  Vista vmware로 인스..

  첫번째 포스팅입..

  Windows Vista Beta 1,..

  패킷 필터링과 방..

ARCHIVES

  2010년 08월

  2010년 07월

  2010년 05월

  2010년 02월

  2009년 08월

FAVORITE SITES

  ASP.NET

  BeautifyKoreanFonts

  BigAdmin HCL: Sun Dev..

  BitTorrent Linux Mirr..

  CentOS Linux

  DHS International

  DistroWatch.com

  eady.sarang.net

  Enlightenment Project

  EveryDNS

  glassfish : j2ee web ..

  GUI Linux

  iamyhs

  IETF

  Intel PRO/Wireless 39..

  Java SE Development K..

  Java SE Runtime Envir..

  JavaServiceNet

  JBoss 관리자 개발..

  miniwini.com

  MS Express Edition Pr..

  Netcraft

  PC-BSD

  PHP Snapshots

  Port Scan

  Programmer를 꿈꾸며..

  PSOUG Oracle Morgan&#..

  Solaris Operating Sys..

  SSH Secure Shell

  UANAX Organization

  USA LUG

  WhiteBox Linux

  [Bossa Nova] Chili Mu..

  [Bossa Nova] Chili Mu..

  네트워크 전문지..

  코리아인터넷닷..

  한국 데비안 사용..















  Get Firefox!
HOME RSS XML GUESTBOOK SERVICE ABOUT ADMIN
PREV | 1 2 | NEXT
카테고리 '$프로그래밍' - '자바스크립트' | 11
08/03/14 | Ajax 애플리케이션의 보안 위협 극복하기
08/03/07 | DWR Ajax + XecureWeb
08/01/31 | prototype.js vs mootools.js
08/01/31 | MS Script Debugger Freezing 현상
08/01/30 | t has no properties
07/12/13 | UTF-8의 illegal character: \65279 문제
07/12/07 | JavaScript Data Grid
07/10/02 | MSXML2.XMLHTTP & Microsoft.XMLHTTP
07/09/11 | [MT] Hash & Array 샘플
07/09/07 | [MT] 주별 기간 생성 (셀렉트박스 생성시에 사용)
07/07/25 | [MT] 셀렉트태그 생성 프로토타입 (MooDropdownGenerator)
Ajax 애플리케이션의 보안 위협 극복하기 | $프로그래밍 - 자바스크립트
매시업 애플리케이션을 보안화 하는 팁과 베스트 프랙티스

http://www.ibm.com/developerworks/kr/library/x-ajaxsecurity.html
TRACKBACKS  MESSAGES  DATE 08/03/14 19:01
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=748
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
DWR Ajax + XecureWeb | $프로그래밍 - 자바스크립트
열라짬뽕나 =3=3=3
TRACKBACKS  MESSAGES  DATE 08/03/07 23:50
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=745
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
prototype.js vs mootools.js | $프로그래밍 - 자바스크립트
prototype : 굴고 짧은 스크립팅, 버그가 너무 많고 IE에 대한 처리가 미흡하다.

mootools : 항상 길어지는 코드...
TRACKBACKS  MESSAGES  DATE 08/01/31 19:44
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=739
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
MS Script Debugger Freezing 현상 | $프로그래밍 - 자바스크립트
Microsoft Script Debugger이 몇번 혹은 몇십번 실행되다가 어느 시점에서부터는 실행은 되지만

더이상 에러라인을 보여주지 않을때가 있는데 이때는 작업관리자를 열어서 프로세스 탭에서

mdm.exe 프로세스를 종료시켜주면 된다

IExplorer 재시작 해야함..
TRACKBACKS  MESSAGES  DATE 08/01/31 19:38
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=738
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
t has no properties | $프로그래밍 - 자바스크립트
var target = '삐리리리';
var tableRowTpl = '<tr><td>삐리리리리리</td></tr>';


new Insertion.Bottom(target, tableRowTpl);

t has no properties => t.initializeRange(element, range);

아주 환장하는지 알았다.

뷁포인트 찍어가며 원인을 찾아보고 싶었지만 좀 바쁘다보니...

암튼 Prototypejs를 1.6.0 -> 1.5.2 다운을 시켰더니 잘 되더라.

function (element, insertions)
{
    element = $(element);
    if (Object.isString(insertions) ||
        Object.isNumber(insertions) ||
        Object.isElement(insertions) ||
        insertions && (insertions.toElement || insertions.toHTML))
    {
        insertions = {bottom:insertions};
    }

    var content, t, range;
    
    for (position in insertions)
    {
        content = insertions[position];
        position = position.toLowerCase();
        t = Element._insertionTranslations[position];

        if (content && content.toElement)
        {
            content = content.toElement();
        }

        if (Object.isElement(content))
        {
            t.insert(element, content);
            continue;
        }

        content = Object.toHTML(content);
        range = element.ownerDocument.createRange();
        t.initializeRange(element, range);
        t.insert(element, range.createContextualFragment(content.stripScripts()));
        content.evalScripts.bind(content).defer();
    }

    return element;
}

TRACKBACKS  MESSAGES  DATE 08/01/30 21:22
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=736
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
UTF-8의 illegal character: \65279 문제 | $프로그래밍 - 자바스크립트
illegal character: \65279 at ???.java 1 line

> javac -encoding UTF8

> javadoc -encoding UTF8

자바파일을 UTF-8로 저장후 컴파일등의 작업을 할 경우 종종 발생되는 문제다.

이 경우 에디트플러스에서 아래와같이 설정후 해당 파일을 다시 저장시키면 쉽게 해결이 가능하다.



BOM (봄; Byte Order Mark)은 '바이트 순서 표시'입니다.


유니코드가, little-endian 인지 big-endian 인지 아니면 UTF-8 인지 쉽게 알 수 있도록, 유니코드 파일이 시작되는 첫부분에 보이지 않게, 2~3바이트의 문자열을 추가하는데 이것을 BOM이라고 합니다. 텍스트 에디터 화면에서는 보이지 않고, 헥사 에디터(Hex Editor)*로 열었을 때만 보입니다.


little-endian 의 BOM: FF FE

big-endian 의 BOM: FE FF

UTF-8 의 BOM: EF BB BF


UTF-8에는 BOM이 없는 것이 보통인데, 오래된 프로그램은 BOM이 있는 UTF-8 파일에 오작동할 수 있습니다.

그렇지만 한국어 편집에서는 BOM이 있는 UTF-8이 더 좋습니다. 만약 'BOM이 없는 UTF-8 파일'에 영문과 숫자만 있고 한글이 없다면, 편집기가 그 파일을 유니코드가 아닌 일반 아스키 파일로 오인하기 때문입니다.

그런데 인터넷에 올릴 HTML/CSS/XML 파일을 UTF-8로 작성할 때에는 BOM이 있으면 문제가 생길 수 있습니다.


* 울트라에디트의 헥사 모드(Ctrl+H)로 UTF-8 파일을 보면, 16비트 유니코드처럼 보이고 BOM이 있든 없든 항상 FF FE 라는 엉뚱한 BOM이 나타납니다. 이것은 울트라에디터가 유니코드를 편집할 때, 내부적으로 '16비트 little-endian 유니코드 (UTF-16LE)'로 변환하여 편집하기 때문입니다. 진짜 헥사 에디터로 보아야만 UTF-8의 BOM인 EF BB BF 가 제대로 보이게 됩니다. 물론 BOM이 없는 UTF-8이라면 BOM이 없는 것으로 나옵니다.

TRACKBACKS  MESSAGES  DATE 07/12/13 19:44
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=707
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
JavaScript Data Grid | $프로그래밍 - 자바스크립트
http://www.ajaxrain.com/tagcloud.php?tag=grid

졸라많다^^
TRACKBACKS  MESSAGES  DATE 07/12/07 16:08
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=705
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
MSXML2.XMLHTTP & Microsoft.XMLHTTP | $프로그래밍 - 자바스크립트
http://blog.naver.com/onthebed/130000659256

여러 예제들은 살펴본 결과 IE에서 XMLHttpRequest 객체를 생성하는데
Msxml2.XMLHTTP와 Microsoft.XMLHTTP를 사용하는 것을 알 수 있었다.
그런데 이 두 놈에 대한 차이를 설명해주는 곳이 없어서 차이점을 찾아 어설픈 번역을 해본다.

MSXML에는 프로그램 아이디에 의존하는 버전과
프로그램아이디에 독립적인 버전이 존재한다.

일반적으로 스크립트가 구동되는 클라이언트가
어떤 버전의 IE일지 또 어떤 버전의 MSXML
이 설치되어 있을지 모를 경우
프로그램 아이디에 독립적인 버전을 사용하는 것이 좋다.

MSXML 버전이 어떤 프로그램 아이디와 연결되는지
정확히 알 필요 없을 때 사용할 수 있다.

XML DOM document의 프로그램 아이디 독립버전은 Microsoft.XMLDOM이며,
IE 5 이후에서 XML DOM을 다음과 같이 생성한다.
var xmlDocument = new ActiveXObject(’Microsoft.XMLDOM’);
와 같이 생성한다.

XML HTTP request 객체의 프로그램 아이디 독립 버전은 Microsoft.XMLHTTP이며,
IE 5 이후에서 XML HttpRequest객체는 다음과 같이 생성한다.
var httpRequest = new ActiveXObject(’Microsoft.XMLHTTP’);
프로그램 아이디 같은 실제 MSXML버전은 인스톨된 MSXML버전에 의존한다.

Which actual MSXML version such a program id is bound to depends on the MSXML version(s) installed and even on the mode (side-by-side or replace mode) a version is installed in.
프로그램 의존 버전은 서버에
어떤 버전의 MSXML이 설치되었는지 알고 있는 상태로
스크립팅 작업을 할 경우,
인트라넷 속해 있는 모든 클라이언트에
어떤 버전의MSXML이 설치 되어있는지 알고있는 상태에서
작업할 경우,
마지막으로 특정 버전의 MSXML 에서만
지원되는 기능을 사용하기를 원할 때 사용할 수 있다.

MSXML 3,4,5에 해당하는 XMLHttpRequest 객체의 프로그램 아이디 의존 버전은 각각 다음과 같다.

Msxml2.XMLHTTP.version.number

예) MSXML 3으로 구현된 XMLHttpRequest 객체 생성방법

var httpRequest = new ActiveXObject(’Msxml2.XMLHTTP.3.0′);

MSXML 4으로 구현된 XMLHttpRequest 객체 생성방법

var httpRequest = new ActiveXObject(’Msxml2.XMLHTTP.4.0′);

MSXML 5으로 구현된 XMLHttpRequest 객체 생성방법

var httpRequest = new ActiveXObject(’Msxml2.XMLHTTP.5.0′);


NOTE >> MSXML 4 이후로는 프로그램 아이디 의존버전만이 존재한다.
            따라서 그 이전의 프로그램 아이디 독립 버전은 MSXML 4 or 5에는 바운드 되지 않는다.

원문 : http://www.faqts.com/knowledge_base/view.phtml/aid/35742


….
…..
………


2.6 버전 :

this.transport = new ActiveXObject(’Msxml2.XMLHTTP.2.6′);
위와 같이 객체를 생성, 서버에 접속하여 XML을 리턴 받은 후에
this.transport .responseXML.documentElement로 접근할 경우
에러없이 DOM 객체가 리턴되었다.

3.0 버전 :

this.transport = new ActiveXObject(’Msxml2.XMLHTTP.3.0′);
위와 같이 객체를 생성한 후 2.6과 같은 과정을 거친 후에
this.transport .responseXML.documentElement 로 접근할 경우
null이 리턴되는 현상이 발생했다.

또 ‘Microsoft.XMLHTTP’의 경우
1.0 버전만이 설치되 있었고 아래와 같이 객체를 생성한 후에
this.transport .responseXML.documentElement으로 접근할 때는
문제 없이 수행되었다.

this.transport = new ActiveXObject(’Microsoft.XMLHTTP’)
이는 Microsoft.XMLHTTP과 Msxml2.XMLHTTP 2.6 버전이 바운드 됐기 때문으로 판단된다.
TRACKBACKS  MESSAGES  DATE 07/10/02 13:26
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=681
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
[MT] Hash & Array 샘플 | $프로그래밍 - 자바스크립트
공식사이트의 다큐먼트에도 사용법이 나와있질 않다..

이런 퐝당한..

암튼.. 일반적으로 3차원 이상의 연관배열을 다루려면 좐나 복잡해지기 마련이다.

이럴때 아래와같이 해쉬맵을 맹글어서 활용하면 그나마 시간이 째꼼 단축됨..

<script type="text/javascript" src="mootools.js"></script>
<script type="text/javascript">
/*
{
    '2006' :
    {
        '11' : [ '01', '02', '03', '04', '05' ],
        '12' : [ '01', '02', '03', '04', '05' ]
    },
    '2007' :
    {
        '11' : [ '01', '02', '03', '04', '05' ],
        '12' : [ '01', '02', '03', '04', '05' ]
    }
}
*/


hashArrayTest1 = function()
{
    var hashYear = new Hash();
    var hashMonth = new Hash();
    var arrayDate = new Array();

    
    arrayDate.push('01'); 
    arrayDate.push('02'); 
    arrayDate.push('03'); 
    arrayDate.push('04'); 
    arrayDate.push('05'); 


    hashMonth.set('11', arrayDate);
    hashMonth.set('12', arrayDate);


    hashYear.set('2006', hashMonth);
    hashYear.set('2007', hashMonth);


    alert( hashYear.keys() );
    alert( hashYear.get('2007').keys() );
    alert( hashYear.get('2007').get('12')[0] );
};


hashArrayTest2 = function()
{
    var hashYear = new Hash();


    for(var i=2006; i<=2007; i++)
    {
        var hashMonth = new Hash();
        

        for(var j=1; j<=12; j++)
        {
            var arrayDate = new Array();
            

            for(var k=1; k<=31; k++) arrayDate.push(k);


            hashMonth.set(j, arrayDate);
        }


        hashYear.set(i, hashMonth);
    }


    return hashYear;
};


hashYearTest = function()
{
    var myHash = hashArrayTest2();


    var tmp1 = myHash.get(2007);
    var tmp2 = tmp1.get(12);


    alert( myHash.length + ' @ ' + myHash.keys() ); 
    alert( tmp1.length + ' @ ' + tmp1.keys() ); 
    alert( tmp2.length + ' @ ' + tmp2[0] );
};
</script>

TRACKBACKS  MESSAGES  DATE 07/09/11 10:01
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=672
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE  
[MT] 주별 기간 생성 (셀렉트박스 생성시에 사용) | $프로그래밍 - 자바스크립트
/** 월별 최종일 */
var g_monthlyLastDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];


/**
 * 날짜객체 생성
 * 2007-07-13 김형섭
 *
 * @return <object, Date>날짜객체
 *
 */
getDate = function()
{
    return new Date();
};


/**
 * 대상 년도가 윤년인지 체크
 * 2007-07-13 김형섭
 *
 * @param <int>p_year 대상 년도
 * @return <boolean>윤년 여부
 *
 */
isLeapYear = function(p_year)
{
    p_year = p_year.toInt();
    
    if((p_year % 4) == 0 || (p_year % 100) != 0 && (p_year % 400) == 0)
        return true;
    else
        return false;
};


/**
 * 지정한 길이만큼 숫자 앞에 0을 채움
 * 2007-07-13 김형섭
 *
 * @param <int>length 표현 자리수
 * @param <int>source 대상 숫자
 * @return <string>string
 *
 */
formatZeroString = function(p_source, p_length)
{
    var tmp = '';


    if(p_source.toInt() == 'NaN') p_source = 0;


    for(var i=p_source.toString().length; i<p_length; i++) tmp+= '0';
    
    return tmp + p_source;
};


/**
 * 주별 기간 생성 (셀렉트박스 생성시에 사용)
 * 2007-07-13 김형섭
 *
 * @param <string>p_year
 * @param <string>p_month
 * @return <string, JsonString>기간
 *
 */
generateWeekPeriod = function(p_year, p_month)
{
    if($type(p_month) == 'number') p_month = p_month.toString();
    if(p_month.length == 1) p_month = '0' + p_month;
    if(isLeapYear(p_year)) g_monthlyLastDay[1] = 29;


    var _theYear = p_year.toInt();
    var _theMonth = p_month.toInt();
    var _theDate = 1;
    var _dateObject = getDate();


    _dateObject.setYear(_theYear);
    _dateObject.setMonth(_theMonth - 1);
    _dateObject.setDate(_theDate);


    var dayCountOfWeek = _dateObject.getDay();
    var firstSundayInMonth;


    if(dayCountOfWeek != 0) firstSundayInMonth = (7-dayCountOfWeek) + 1;
    else firstSundayInMonth = _theDate;  


    _dateObject.setYear(_theYear);
    _dateObject.setMonth(_theMonth);
    _dateObject.setDate(_theDate - 1);


    var lastDayInMonth = _dateObject.getDate();
    var maxWeekCount;


    if((firstSundayInMonth + 28) <= lastDayInMonth) maxWeekCount = 5;
    else maxWeekCount = 4;


    _dateObject.setYear(_theYear);
    _dateObject.setMonth(_theMonth - 1);
    _dateObject.setDate(firstSundayInMonth);


    var i = 0;
    var result = [];


    for(var j=1; j<=maxWeekCount; j++)
    {
        var startDate = '';
        var endDate = '';
        var theYear = _theYear.toString();
        var theMonth = _theMonth.toInt();
        var theDate;


        result[i] =
        {
            'start' : [],
            'end'   : []
        };


        // 해당주의 시작일
        theDate = firstSundayInMonth + ((j-1) * 7);

        theMonth = formatZeroString(theMonth, 2);
        theDate = formatZeroString(theDate, 2);
        
        result[i].start = 
        {
            'year'  : theYear,
            'month' : theMonth,
            'date'  : theDate
        };


        // 해당주의 마지막일
        theMonth = theMonth.toInt();
        theDate = firstSundayInMonth + ((j-1)*7) + 6;
        
        if(theDate > lastDayInMonth)
        {
            theMonth++;
            theDate = theDate - lastDayInMonth;
        }
        
        if(theMonth > 12)
        {
            theYear++;
            theMonth = 1;
        }
        
        theMonth = formatZeroString(theMonth, 2);
        theDate = formatZeroString(theDate, 2);
        
        result[i].end = 
        {
            'year'  : theYear,
            'month' : theMonth,
            'date'  : theDate
        };


        i++;
    }
    
    return Json.toString(result);
};

TRACKBACKS  MESSAGES  DATE 07/09/07 10:40
TRACKBACK ADDRESS : http://www.todayis.net/vSix/rserver.php?mode=tb&sl=669
SECRET
NAME
PASSWORD
HOMEPAGE  
MESSAGE