728x90
Daum과 NHN이 함께 한 매쉬업 경진대회가 끝이났다. 8개 작품이 수상을 했는데 사실 나머지 출품작들도 이만큼 훌륭했다. 다른 서비스들은 나중에 매쉬업 갤러리를 통해 소개하고 간단하게 몇 개 작품을 소개해 보고자 한다.

- 두빛나래'팀의 '올앰프'
올앰프는 노래 목록이나 가수명으로 손쉽게 원하는 음악과 뮤직비디오를 찾아주는 서비스다.
라스트FM의 음악재생 API와 네이버 블로그 검색 API를 결합했다.

- 전용우님의  'iShop'
네이버, Daum, 구글의 검색 결과 중 마음에 드는 URL을 곧바로 마우스로 드래그해 왼쪽 사이드바에 옮기면 자동으로
딜리셔스에 북마크하는 서비스.

- 신기배님의  '님아 어디 갈려구요?'
구글 지도를 기반으로 원하는 행선지를 입력하면 구글 지도와 다음과 네이버의 여행 블로그, 관련 상품을 찾아주는 서비스

- 서희만님의  'Lump of Thought!'(LOT, 생각이 자라나다)
플래시를 이용하여 네이버와 다음의 '연관 검색어'를 매개체로 하여 연관어들을 트리 및 생각 덩어리로 표현한 컨셉의 시각적 표현이 주효한 서비스

- Top-mashers'팀의 'Book Search2.0'
실제로 도서 검색 뿐만 아니라 쇼핑 검색까지  데스크톱 및 웹 서비스로 구현했다. 구현에 들어간 노력이 많은 들어간 서비스.

- 엄마친구아들'팀의  'LBS2.0 Simulator'
추론엔진인 '보쌈'과 네이버 지도 위에 Daum의 여행·숙박정보를 매시업하여  LBS와 연계해 지역별로 여행지나 숙박지 등의 정보를 찾아주는 위치정보 기반 추천서비스

- 손상모님의 대학 정보 서비스 'Miya'
구글맵, 플리커, 구글 AJAX 검색, 야후 날씨, 다음 및 네이버 웹문서·사전·블로그·카페·지도·여행 등 무려 10여개의 API를 결합해 전세계 대학정보를 입체적으로 구현한 서비스

- Boy's on TOP'팀의 '거침없이 글짓기'
영어 문장을 입력하면 구글의 검색 API를 이용해 구글 웹문서를 뒤져 가장 많이 등록된 표현을 기준으로 문장을 교정해주는 서비스. Naver와 Daum의 검색 결과를 통해 한국어 문장도 가능하다.

이번 대회를 통해 국내에 많은 개발자들과 지망생들이 아이디어 구현의 동기 부여도 받고 IT 업계의 신선한 자극을 계속 주었으면 하는 바램이 있다.

출처 : http://channy.tistory.com/151
728x90

'Information' 카테고리의 다른 글

인터넷의 아카데미상「웨비 상」수상작  (0) 2007.05.04
악플대처법  (0) 2007.05.02
핸드폰요금 절약 5가지  (0) 2007.04.30
728x90

파이어폭스(Firefox)자바스크립트 디버그(debug) 도구인 파이어버그(Firebug)를 이용한 트레이스(trace) 방법을 소개한다. 파이어버그는 훌륭한 디버깅(debugging) 콘솔(console)을 가지고 있다. 간략하게 콘솔에 대해 설명하자면 메시지를 출력하거나 문자열(string)을 출력하는 일 외에도 DOM(Document Object Modal) 객체(object)를 표시할 때에는 어떠한 형태인지 분석하고 분석가능한 경우 DOM에 할당(registered)된 클리커블(clickable)한 객체 목 록을 표시하한다. 만약 엘리먼트(element)라면 'div#IDName.ClassName'과 같이 엘리먼트가 가진 id값, class값 혹은 action, src등 여러정보를 표시하고 클릭시 파이어버그 HTML트리의 해당 노드로 이동시키는 역할까지 하게된다.

파이어버그의 디버깅 콘솔


위 화면은 파이어 버그의 콘솔을 이용해서 트레이스한 예이다. 자바스크립트 코드를 만들면서 지역변수의 값을 실시간으로 확인하거나 산출물에 대한 결과를 리포트할때 사용하면 효과적이다. 지금부터 파이어버그의 콘솔을 활용하는 방법에 대하여 알아보자.
var debug = function(){
  // check browser has console
  if(typeof console != 'undefined' && typeof console.log != 'undefined'){
    console['info'](arguments); // call Firebug's console
  }

출처 : http://firejune.com/1079
}

간 단하게 디버그 함수를 하나 생성했다. console['info'] 함수에 아규먼트(argument)로 넘긴 값이 파이어버그의 콘솔에 표시된다. 콜솔에 표시되는 메시지의 종류로는 'debug', 'info', 'warn', 'error'가 있다. 이것은 좌측 그림과 같이 메시지의 종류를 시각적으로 표시해준다. debug는 값만을 출력하며, info는 메시지 앞 에 파랑색 'i' 아이콘을 붙게되며, warn은 노랑색 'i'아이콘에 라인이 하늘색으로 강조된다. 그리고 error는 빨간색 'x' 아이콘이 붙고 라인이 연노랑색으로 강조된다. 여기서는 트레이스 구분을 위해 일괄적으로 'info'를 사용했다.

자, 이제 위에서 생성한 debug 함수를 활용해보자.
debug('hello world!');
// -> ["hello world!"]
debug(debug, typeof debug);
// -> [function(), "function"]
debug(document.getElementsByTagName('form'));
// -> [[form custom, form#weblog index.php]]
debug('value1', 'value2', 'value3', 'value4', 'value5');
// -> ["value1", "value2", "value3", "value4", "value5"]

파이어버그의 강력한 콘솔기능을 트레이스로 활용함으로써 조금더 편리한 디버깅환경을 구축할수 있다. 이것은 소스를 분석하거나 조작하는데에도 매우 효과적이다. enjoy it.
728x90
728x90

1/2

Niels Leenheer씨는 HTML 페이지의 로드를 가속화하기 위해 포함하는 자바스크립트 및 스타일시트 파일에 gzip을 사용하여 압축하고  모드리라이트(mod_rewrite) 모듈을 이용하여 자동-전송하는 방법을 자신의 개인 블로그에 소개했다. 좌축의 이미지는 파이어버그(firebug)의 Net 콘솔 화면으로 압축전과 압축후의 로딩속도와 파일용량을 비교한 것이다. 압축률은 1: 0.23~0.25 이며, 자료의 크기는 줄지만 완전히 투과하도록 작동하기 때문에 종전의 소스코드에는 변화를 줄 필요가 없다.

파일의 압축전송은 브라우저가 한정된 수만을 동시에 다운로드하므로 몇몇 파일이 완료될때 까지 기다리는 문제가 발생한다. 이 문제의 해결책은 1개의 큰 파일로 결합하여 전송 대역폭을 줄이는 방법을 제공한다. 예를 들자면 아래와 같다.
분리된 자바스크립트 라이브러리 URL :
http://www.firejune.com/javascripts/prototype.js
http://www.firejune.com/javascripts/builder.js
http://www.firejune.com/javascripts/effects.js
http://www.firejune.com/javascripts/dragdrop.js
http://www.firejune.com/javascripts/slider.js

하나로 결합하기 :
http://www.firejune.com/javascripts/prototype.js,builder.js,effects.js,dragdrop.js,slider.js
그리고 웹서버의 리소스 확보를 위해서 파일들의 요청이 있을때마다 압축하는 작업을 거치지않고 캐시를 사용하도록 설정되어 있다.(끌 수 있음) 설치를 시작하기 전에 우선 아래의 주소에서 소스를 다운로드하고 파일명을 'combine.php'로 저장다.

combine.php 다운로드 : http://rakaz.nl/projects/combine/combine.phps

설정을 위해 다운로드한 파일을 열어 자바스크립트, 스타일시트, 캐시 폴더의 경로를 설정한다. 만약 웹서버에 캐시폴더가 없다면 쓸수있는 권한이 있는 폴더를 생성해야한다. 그리고 웹서버의 루트(root)에 업로드 하자. 두번째로 모드리라이트를 손볼 차례이다. 루트의 .htaccess파일을 열어 아래와같은 내용을 삽입하자. 1번과 2번라인은 이미 설정되어 있다면 무시해도 무방하다. 이 또한 마찬가지로 php에서 설정한 자바스크립트가 있는 폴더와 스타일시트가 있는 폴더이름만 변경하면 된다.
RewriteEngine On
RewriteBase /
RewriteRule ^stylesheets/(.*\.css) /combine.php?type=css&files=$1
RewriteRule ^javascripts/(.*\.js) /combine.php?type=javascript&files=$1

다소 간편한 몇가지의 조작만으로 속도향상을 꾀할수 있었다. 자바스크립트와 스타일스트의 양이 많은 곳이라면 꼭한번 써봄직한 솔루션이다.

출처 : http://firejune.com/1080
728x90
728x90


Anchor | anchors array | Applet | applets array | Area | Array | Button | Checkbox | Date | document | FileUpload | Form | forms array | frames array | Hidden | History | history array | Image | images array | Layers | layers array | Link | links array | location | Math | MimeType | mimeTypes array | navigator | Number | Option | options array | Password | Plugin | plugins array | Radio | radio array | Reset | screen | Select | String | Submit | Text | Textarea | window


※ 녹색은 네스케이프, 혹은 익스플로러 전용으로만 사용되는 객체(속성,메소드)입니다

객체(Object)

속성(Property)

메소드(Method)

이벤트핸들러(Event Handler)

Anchor

name
text
x
y



anchors array

length



Applet


applet's methods


applets array

length



Area

hash
host
gostname
href
pathname
port
protocol
search
target


onClick
onmouseOut
onmouseOver

Array

length

concat
join
pop
push

reverse
shift
slice
sort
unshjft


Button

form
name
type
value

blur
click
focus

onClick
onmouseDown
onmouseUp

Checkbox

checked
defaultChecked
form
name
type
value

blur
click
focus

onClick
onmouseDown
onmouseUp

Date


getDate
getDay
getFullYear
getHours
getMilliseconds
getMinutes
getMonth
getSeconds
getTime
getTimezoneOffset
getUTCDate
getUTCDay
getUTCFullYear
getUTCHours
getUTCMilliseconds
getUTCMinutes
getUTCMonth
getUTCSeconds
getYear
parse
setDate
setFullYear
setHours
setMilliseconds
setMinutes
setMonth
setSeconds
setTime
setUTCDate
setUTCHours
setUTCMilliseconds
setUTCMinutes
setUTCMonth
setUTCSeconds
setYear
goGMTString
toLocaleString
toString
toUTCString
UTC
valueOf


document

activeElement
alinkColor
all
Anchor
anchors
Applet
applets
Area
bgColor
body
charset
children

cookie
defaultCharset
domain
embed
embeds
expando

fgColor
Form
forms
Image
images

lastModified
Layer
layers

linkColor
Link
links
location
parentWindow
plugins

readyState
referrer
scripts
selection
styleSheets

title
URL
vlinkColor

clear
close
createElement
createStylesheet
elementFromPoint
getSelection

open
write
writeIn


FileUpload

form
name
type
value

blur
focus

select

onBlur
onFocus
onSelect

Form

action
Button
Checkbox
elements
encoding
FileUpload
Hidden
length
method
name
Password
Radio
Reset
Select
Submit
target
Text
Textarea

reset
submit

onReset
onSubmit

forms array

length



frames array

length



Hidden

form
name
type
value



History

current
length
next
previous

back
foward
go


history array

length



Image

border
complete
height
hspace
lowsrc
name
src
vspace
width
x
y


onAbort
onError
onLoad

images array

length



Layers

above
background
below
bgColor
clip
document
hidden
left
name
pageX
pageY
parentLayer
siblingAbove
siblingBelow
src
top
visibility
window
x
y
zindex

load
moveAbove
moveBelow
moveBy
moveTo
moveToAbsolute
resizeBy
resizeTo

onBlur
onFocus
onmouseOut
onmouseOver
onmouseUp

layers array

length



Link

hash
host
hostname
href
pathname
port
protocol
search
target
text
x
y


onClick
onmouseOut
onmouseOver

links array

length



location

hash
host
hostname
href
pathname
port
protocol
search

reload
replace


Math

E
LN2
LN10
LOG2E
LOG10E
PI
SQRT1_2
SQRT2

abs
acos
asin
atan
atan2
ceil
cos
exp
floor
log
max
min
pow
random
round
sin
sqrt
tan


MimeType

description
enabledPlugin
suffixes
type



mimeTypes array

length



navigator

appCodeName
appMinorVersion
appName
appVersion
browserLanguage
cookieEnabled
cpuClass
languages
mimeTypes

platform
plugins
systemLanguage

userAgent
userLanguage
userProfile

javaEnabled
preference
savePreferences
taintEnabled


Number

MAX_VALUE
MIN_VALUE
NaN
NEGATIVE_INFINITY
POSITIVE_INFINITY

toString
valueOf


Option

defaultSelected
index
selected
selectedIndex
text
value



options array

length



Password

defaultValue
form
name
type
value

blur
focus
select

onBlur
onChange
onFocus
onKeydown
onKeypress
onKeyup
onSelect

Plugin

description
filename
name

refresh


plugins array

length



Radio

checked
defaultChecked
form
name
type
value

blur
click
focus

onClick
onmouseDown
onmouseUp

radio array

length



Reset

form
name
type
value

blur
click
focus

onClick
onmouseDown
onmouseUp

screen

availHeight
availLeft
availTop

availWidth
BufferDepth
colorDepth
height
pixelDepth
updayeInterval
width



Select

form
length
name
options
selectedIndex
type

blur
focus

onChange

String

length

anchor
big
blink
bold
charAt
charCodeAt
concat
fixed
fontcolor
fontsize
formCharCode
indexOf
italics
lastIndexOf
link
match
replace
search
slice
small
split
strike
sub
substr
substring
sup
toLowerCase
toUpperCase


Submit

form
name
type
value

blur
click
focus

onClick
onMouseDown
onMouseUp

Text

defaultValue
form
name
type
value

blur
click
focus
select

onBlur
onChange
onFocus
onKeydown
onKeyup
onSelect

Textarea

defaultValue
form
name
type
value

blur
click
focus
select

onBlur
onChange
onFocus
onKeydown
onKeyup
onSelect

window

clientInformation
closed

defaultStatus
dialogArguments
dialogHeight
dialogLeft
dialogLeft
dialogTop
dialogWidth

document
event
frames
history
innerHeight
innerWidth

length
location
locationbar
menubar

name
navigator
offscreenBuffering
opener
outerHeight
outerWidth
pageXOffset
pageYOffset

parent
personalbar
screen
screenX
screenY
scrollbars

self
status
statusbar

toolbar
top

alert
back
blur

close
confirm
find
focus
forward
home
moveBy
moveTo
navigate

open
print
prompt
resizeBy
resizeTo

scroll
scrollBy
scrollTo
stop

onBlur
onError
onFocus

onLoad
onResize
onUnload



728x90
728x90

문서 내 모든 링크의 아래 점선 없애기
728x90

'Developer > JavaScript' 카테고리의 다른 글

JavaScript Object Table  (0) 2007.05.03
윈도우 크기에 따라 글자크기 변경  (0) 2007.05.03
페이지 직접생성 팝업  (0) 2007.05.03
728x90
<script language="javascript">
function fnFontScale (windowWidth, fontSize, fontUnit) {
 if (typeof oFont == 'undefined'){
  oFont = new Object;
  oFont.windowWidth = parseInt(windowWidth);
  oFont.fontSize = parseInt(fontSize);
  oFont.fontUnit = fontUnit;
 }
 var screenWidth = document.body.offsetWidth;
 var scaledFont = oFont.fontSize * (screenWidth / oFont.windowWidth);
 document.body.style.fontSize = scaledFont + oFont.fontUnit;
}
window.onresize = fnFontScale;
</script>
728x90

'Developer > JavaScript' 카테고리의 다른 글

문서 내 모든 링크의 아래 점선 없애기  (0) 2007.05.03
페이지 직접생성 팝업  (0) 2007.05.03
자바스트립트 객체  (0) 2007.05.02
728x90
<script language="javascript">
function winOpen() {
 wobj = window.open('','','width=412,height=270');
 wobj.document.open();
 wobj.document.write('<html><head><title>Test Open Window</title></head><body style="margin:0"><img src="image/img_tmp.gif"></body></html>');
 wobj.document.close();
}
</script>
728x90
728x90
자바스트립트 객체

ㆍ설명

▶ 객체(object)란?
자바스크립트에서 객체란 브라우저창,이미지,입력양식등...웹문서속의 각각의 모든
항목들을 말한다고 보면 되겠습니다

▶ 속성이란?
각 객체가 지닌 특성을 말합니다.
사용법 : 객체명.속성="속성값";
예) window.status="반가워여"; --> 브라우저 상태바에 반가워여라는 글자를 보입니다.

▶ 메서드란?
각 객체에게 어떤 동작을하도록하는 명령어라고보면 됩니다.
예를들어 window객체의 close라는 메서드는 브라우저창에게 창을닫도록 명령합니다.
사용법 : 객체명.메서드(인자값);
예) window.alert("경고한다.밥무라"); --> 경고한다.밥무라라는 메세지로경고창을띄웁니다

▶ 자바스크립트와 DHTML
객 체의 메서드나 속성중에서 근래에는 잘쓰여지지 않는 것들도 있습니다, style을 이용한 다이나믹html이 대체되어 쓰이는 경우가 많이 있습니다. 예로 문서의 배경 색깔을 동적으로 변경시키고자 할때 예전에는 document.bgColor = "#ff00ff"; 이렇게 썼으나 요즘은 document.body.style.background = "#ff00ff"; 로 쓰는경우도 많이 볼 수 있습니다.


window 객체의 속성과 메서드

속성
closed - 브라우저 창이 닫혔는지를 체크
opener - 현재창이 새창일경우 현재창을열개한 브라우저창
status - 브라우저의 상태표시줄의 정보
screenLeft - 윈도우화면 좌측상단모서리에서 브라우저 상단까지의 x축 거리
screenTop - 윈도우화면 좌측상단모서리에서 브라우저 상단까지의 y축 거리


메서드
alert - 경고창을 띄운다
blur - 현재창을 최소화한다.포커스를 잃게 한다
focus - 현재창에 포커스를 준다,활성화 시킨다.
moveTo(x,y) - x,y좌표로 브라우저를 이동시킨다
moveBy(dx,dy) - 현재위치에서 dx,dy만큼 창을 이동
resizeTo(w,h) - 브라우저창 크기를 w(폭),h(높이)로 변경한다
resizeBy(dx,dy) - 브라우저창 크기를 dx,dy만큼 변경한다
open - 새창을 연다
close - 브라우저를 닫는다
print - 문서를 인쇄한다
setTimeout - 특정시간후에 특정작업을 호출합니다
clearTimeout - setTimeout으로 설정한 Timer를 해제합니다


document 객체의 속성과 메서드

속성
title - 문서의 제목
lastModified - 마지막으로 수정된 날짜
bgColor - 문서의 배경색
fgColor - 문서의 글자색
linkColor - 링크의 색상
alinkColor - 링크 클릭시의 색상
vlinkColor - 방문했던 링크의 색상
forms - 문서에 여러개의 폼이 있을경우 각폼들은 폼이름대신 document.forms[index]으로 접근할수있습니다. index는 0부터시작합니다.
links - 문서에서의 a href태그들의 정보를 가진 콜렉션
images - 문서에서의 모든 img태그들의 정보를 가짐
applets - 문서에서 여러개의 자바애플릿을 사용했을경우 모든애플릿들의 콜렉션
embeds - 문서에서 embed태그의 콜렉션


메서드
write - 문서에 내용쓰기
writeln - 문서에 줄바꿈을 포함한 내용쓰기


screen 객체의 속성

속성
width - 시스템 스크린의 폭(픽셀)
height - 시스템 스크린의 높이(픽셀)
availWidth - 시스템 스크린중 브라우저의 문서영역 폭
availHeight - 시스템 스크린중 브라우저의 문서영역 높이


navigator 객체의 속성과 메서드

속성
userAgent - 브라우저 전체정보
ex) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
appCodeName - 브라우저 CodeName
ex) Mozilla
appVersion - 브라우저 Version
ex) 4.0 (compatible; MSIE 6.0; Windows NT 5.0)
appName - 브라우저 이름
ex)Microsoft Internet Explorer
cookieEnabled - 브라우저 쿠키이용 가능여부
반환값 : true/false


메서드
javaEnabled - 브라우저의 자바이용가능여부
반환값 : true/false


history 객체의 속성과 메서드

속성
length history - 목록(방문한사이트목록)의 개수


메서드
go(숫자) - 지정숫자만큼 사이트이동 ex) go(2) 앞으로 2번째로 이동
back - 현재사이트 기준에서 이전사이트로 이동
forward - 현재사이트 기준에서 다음사이트로 이동


Event 객체의 속성

속성
keyCode - 이벤트를 일으킨 키보드의 키코드값
altKey - altKey를 눌렀는지의 여부
ctrlKey - ctrlKey를 눌렀는지의 여부
shiftKey - shiftKey를 눌렀는지의 여부
button - 마우스 오른쪽버튼을 눌렀는지 왼쪽버튼을 눌렀는지의 여부
clientX - 마우스 클릭시 브라우저기준의 x축거리
clientY - 마우스 클릭시 브라우저기준의 y축거리
srcElement - 이벤트가 일어난 엘리먼트


Form 객체의 속성

input type="text" - 각값은 document.form이름.엘리먼트이름.value 로 접근할수 있다
input type="password"
input type="checkbox" - 어떤 값이 선택되었는지는 루프를 돌며 checked속성이 true인지 false인지로 체크할 수 있다
input type="radio"
input type="file" - 파일업로드를 위한 객체로서 파일값이 변할때 onChange이벤트 핸들러를 사용한다
input type="button" - submit이나 reset버튼의 제한된 기능에 다른여러기능을 추가적으로 스크립트로 제어할 때는 input type="button"을 쓰고 onClick이벤트 핸들러를 사용한다
input type="submit" - 폼을 전송한다
input type="reset" - 폼을 초기상태로 reset한다
select - 선택값은 document.forms이름.엘리먼트이름.value로접근할 수 있습니다


속성
disabled - 버튼이나 셀렉트박스등을 클릭 선택하지 못하게 합니다
readonly - 텍스트 박스의 내용을 읽기 전용으로 합니다


Date 객체의 메서드

▶ 특징
다 른 객체와 달리 new연산자와 생성자 함수 Date()를 사용해서 객체인스턴스를 생성한후 그메서드들을 이용할수있다. 사실 생성자함수에는 몇가지유형 인자를 가지는 유형이 있으나 인자없는 단순한 Date(); 함수만으로도 충분하다 ..다른 인자를 가지는 생성자들까지 공부할려면 이야기주제는 자바스크립트라기보다 자바에 가까와 질듯하다...

메서드
getTime - 1970년 1월1일 오전0시0분0초로 부터 현재까지의 시간을 m초로 반환한다
getYear - 현재의 년도를 반환한다
getMonth - 현재의 월을 반환한다 (1월:0 2월:1...)
getDate - 날짜(1~31)를 반환한다
getHours - 현재의 시간을 반환한다 (5시 --> 17)
getMinutes - 현재의 분을 반환한다
getSeconds - 현재의 초를 반환한다
getDay - 요일(0:일요일 1:월요일)에 대한 숫자를 반환한다
 
728x90

'Developer > JavaScript' 카테고리의 다른 글

페이지 직접생성 팝업  (0) 2007.05.03
문자열(value)이 한글인지 아닌지를 체크  (0) 2007.05.02
SELECT Element간 ITEM이동  (0) 2007.05.02
728x90
function isKor(value) {
  if(value.length < 1 || value.length > 6) {
    return false;
  }

  for(var i = 0; i < value.length; i++) {
    var chr = value.substr(i,1);
    chr = escape(chr);
    if (chr.charAt(1) == "u") {
      chr = chr.substr(2, (chr.length - 1));
      if((chr < "AC00") || (chr > "D7A3")) {
        return false;
      }
    } else {
      return false;
    }
  } 
  return true;
}
728x90

'Developer > JavaScript' 카테고리의 다른 글

자바스트립트 객체  (0) 2007.05.02
SELECT Element간 ITEM이동  (0) 2007.05.02
HTML에서의 progress bar Loading표현  (0) 2007.05.02
728x90

/*

 * function Name:

 *     ListData_chk

 *

 * Description:

 *     두 SELECT Element (dblist_all & dblist_dir)의 item을 교환할 수 있는 스크립트

 * Parameter:

 *     mode: add와 del을 주어서 두 SELECT Element간의 이동 방향을 명시함.

 *         add: ←로 데이터 이동

 *         del: →로 데이터 이동

 *

 * Event:

 *     onClick = "ListData_chk('add')" & onClick = "ListData_chk('del')"

 *

 * Useful:

 *     리스트박스(SELECT Element)는 2개이며 둘 다 다중선택(multiple)을 지원한다.

 *     따라서 HTML소스는 다음의 형태를 취한다.

 *     <tr>

 *        <td><select name="dblist_all" size="10" multiple>...</select></td>

 *        <td><a href=# onClick = "ListData_chk('add')">←</a><br>

 *        <a href=# onClick = "ListData_chk('del')">→</a></td>

 *        <td><select name="dblist_dir" size="10" multiple>...</select></td>

 *     </tr>

 *

 * Bug report:

 *     2005.08.30:

 *         새로운 노드의 생성까지 만들어놓았으나 현재 병합하지 않음.

 *         (블로그 포스트 http://blog.naver.com/jujac/20015976816 참고)

 */


function ListData_chk(mode) {
 var total = MM_findObj('lbl_totaldb_all');
 var aryTempSourceOptions = new Array();
 var aryTempRecOptions = new Array();
 var x=0, y=0;

 if(mode=="add") {
  var odb = document.oform2['dblist_all'];
  var viewdb = document.oform2['dblist_dir'];
 } else {
  var odb = document.oform2['dblist_dir'];
  var viewdb = document.oform2['dblist_all'];
 }

 if(odb.selectedIndex == -1) {
  alert("DB를 선택하지 않았습니다.");
  return false;
 }

 for(var i = 0; i < odb.length; i++) {
  var objTargetValues = new Object();
  objTargetValues.text = odb.options[i].text;
  objTargetValues.value = odb.options[i].value;

  if(odb.options[i].selected) {
   aryTempSourceOptions[x++] = objTargetValues;
  } else {
   aryTempRecOptions[y++] = objTargetValues;
  }
 }

 if(x) {
  if(viewdb.length) vsize = (viewdb.options[0].text)? viewdb.length : 0;
  else vsize = viewdb.length;

  asize = aryTempSourceOptions.length;
  viewdb.length = vsize + aryTempSourceOptions.length;
  for (var i=0; i<vsize; i++) {
   viewdb.options[i].selected = false;
  }
  for (var i=vsize, j=0; i<viewdb.length; i++, j++) {
   viewdb.options[i].text = aryTempSourceOptions[j].text;
   viewdb.options[i].value = aryTempSourceOptions[j].value;
   viewdb.options[i].selected = false;
  }

  odb.length = aryTempRecOptions.length;
  for (var i = 0; i  <odb.length; i++) {
   odb.options[i].text = aryTempRecOptions[i].text;
   odb.options[i].value = aryTempRecOptions[i].value;
   odb.options[i].selected = false;
  }

  total.innerHTML = "Total: " + viewdb.length;
 }
 viewdb.options[viewdb.length-1].selected = true;
}

728x90

'Developer > JavaScript' 카테고리의 다른 글

문자열(value)이 한글인지 아닌지를 체크  (0) 2007.05.02
HTML에서의 progress bar Loading표현  (0) 2007.05.02
이메일 주소 검증  (0) 2007.05.02
728x90

<!---- Progress Bar ---->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>::Libmeta - Searching...</title>

<script language='javascript'>
<!--

var maxLength = 400;

/*

 * 문서내의 progressBar란 객체를 초기화하여 증가를 준비한다.

 * 그리고 progressBar객체를 (parameter t의 값*10)만큼의 시간동안 주기적으로

 * growUp()함수를 실행한다.

 */

function execute(t) {
    totalTime = t*10;
    barSize=0;
    document.all.progressBar.style.border = '1 solid black';
    document.all.progressBar.style.height = '8';
    moveNow = setInterval("growUp()",totalTime);
}

/*

 * 문서내의 progressBar객체를 너비 +10씩 최종 maxLength에 지정한 길이까지 증가시킨다.

 */

function growUp() {
    barSize += eval(10);
    document.all.progressBar.style.width = barSize;
    if(barSize >= maxLength) {
        clearInterval(moveNow);
    }
}

//-->
</script>
</head>


<!-- 보기좋으라고 걍 margin을 없앰 -->

<body style="margin:0;" onLoad="execute(10);">
<table width=700 height=80%>
<tr>
 <td
align=center valign=middle>
<!-- 이곳의 Table너비를 maxLength와 맞춰준다. -->

 <table cellpadding=0 cellspacing=0 width=400>
  <td><div align=center style="font:9pt dotum; color:dodgerblue;">검색중입니다...</div><br>
<!-- progress bar object -->

  <div id="progressBar" style="height:10; border:0; width:0; background-color:#FFEF9F;"><img src="" height=2 width=0></div></td>
 </tr>
</table></td>
</tr>
</table>

</body>
</html>

<!------------------------------------------------------------------

시간 t에 따른 로딩을 표시하기 위한 예제인데..

사실 실제 데이터와의 실시간적 매칭이 아닌 눈가림용이란걸 알수 있다.ㅋㅋ

다른응용도 가능할 것이며.. setInterval의 예제로 생각해도 좋을 듯..?

------------------------------------------------------------------->

728x90

'Developer > JavaScript' 카테고리의 다른 글

SELECT Element간 ITEM이동  (0) 2007.05.02
이메일 주소 검증  (0) 2007.05.02
How to use multiple window.onload events with external scripts  (0) 2007.05.02
728x90
function checkEmail(strEmail) {
    var arrMatch = strEmail.match(/^(\".*\"|[A-Za-z0-9_-]([A-Za-z0-9_-]|[\+\.])*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9][A-Za-z0-9_-]*(\.[A-Za-z0-9][A-Za-z0-9_-]*)+)$/);
    if (arrMatch == null) {
        return false;
    }

 

    var arrIP = arrMatch[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
    if (arrIP != null) {
        for (var i = 1; i <= 4; i++) {
            if (arrIP[i] > 255) {
                return false;
            }
        }
    }
    return true;
}
728x90
728x90
How to use multiple window.onload events with external scripts
faq216-4862
Posted: 19 Feb 04 (Edited 20 Sep 05)

Scripts probably conflict most often when using the onLoad event. Have you ever used code like this?

window.onload=myInitFunction;

This is fine if you're sure myInitFunction() will be the only function that needs to be called when the page is loaded. But how can you know for sure? What if a page that calls your script has code in its <BODY onload="..."> ? What if there's another external script on the page that also assigns a function to the onload event? The code above will overwrite what was there with your code and that's not good.

Use the function below to add your function without replacing what is already in the onLoad.

CODE

function addOnloadEvent(fnc){
  if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", fnc, false );
  else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", fnc );
  }
  else {
    if ( window.onload != null ) {
      var oldOnload = window.onload;
      window.onload = function ( e ) {
        oldOnload( e );
        window[fnc]();
      };
    }
    else
      window.onload = fnc;
  }
}

Example:

CODE

addOnloadEvent(myFunctionName);

// Or to pass arguments

addOnloadEvent(function(){ myFunctionName('myArgument') });
728x90

'Developer > JavaScript' 카테고리의 다른 글

이메일 주소 검증  (0) 2007.05.02
javascript cookie  (0) 2007.05.02
문자열이 ASCII 코드로만 이루어졌는지 체크하는 함수  (0) 2007.04.26
728x90

<script language="JavaScript">

function set ()
{
    var expdate = new Date();
    expdate.setMonth(expdate.getMonth()+6);
   alert("setting cookie \""+form1.txtName.value+"\" to \""+form1.txtValue.value+"\"");
    setCookie(form1.txtName.value, form1.txtValue.value, expdate);
}


function get ()
{
   alert("getting cookie \""+form1.txtName.value+"\"");
    var c = getCookie(form1.txtName.value);
    alert( "cookie = "+c );

    form1.txtValue.value = c;
}


function getCookie (sCookieName)
{
    var sName=sCookieName+"=", ichSt, ichEnd;
    var sCookie=document.cookie;

    if ( sCookie.length && ( -1 != (ichSt = sCookie.indexOf(sName)) ) )
    {
        if (-1 == ( ichEnd = sCookie.indexOf(";",ichSt+sName.length) ) )
            ichEnd = sCookie.length;
        return unescape(sCookie.substring(ichSt+sName.length,ichEnd));
    }
   
    return null;
}
  
function setCookie (sName, vValue)
{
    var argv = setCookie.arguments, argc = setCookie.arguments.length;
    var sExpDate = (argc > 2) ? "; expires="+argv[2].toGMTString() : "";
    var sPath = (argc > 3) ? "; path="+argv[3] : "";
    var sDomain = (argc > 4) ? "; domain="+argv[4] : "";
    var sSecure = (argc > 5) && argv[5] ? "; secure" : "";
    document.cookie = sName + "=" + escape(vValue,0) + sExpDate + sPath + sDomain + sSecure + ";";
}
   
function deleteCookie (sName)
{
    document.cookie = sName + "=" + getCookie(sName) + "; expires=" + (new Date()).toGMTString() + ";";
}

728x90
728x90
728x90
728x90

핸드폰요금 절약 5가지


1. 할인받는 재미가 있다?! 자신에게 맞는 최적의 요금제 선택방법!

   정통부가 직접 운영하는 "휴대폰 최적 요금제 조회"를 이용해서
   나에게 가장 적합한 요금제를 찾아 할인률을 높여보자!!
   자세한 내용은 홈페이지 참조!  
http://010.ktoa.or.kr/optimize.jsp


2. 핸드폰 기본요금이 너무 아깝게 생각된다면 FreePcs를 이용하라!

   FreePcs는 국내 최저 기본요금제인 월 4500원(부가세별도)으로 이용이 가능하다.
   기본료가 저렴한 대신 통화료는 10초당 33원(부가세별도)이다.
   자세한 내용은 홈페이지 참조!   http://www.freepcs.co.kr/


3. 핸드폰 통화료가 너무 아깝게 생각된다면 가장저렴한 별정통신을 이용하라!
 
   통신사와 기본요금에 상관없이 국내에서 가장 저렴한 통화료 10초에9원(부가세포함)
   1만원으로 3시간5분을 통화할 수 있다. 의무사용없이 남은시간은 무제한 이월되는 장점이 있다.
   자세한 내용은 핸드폰 절약하기 홈페이지 참조!  
http://www.pcsdc.ze.to/


4. 무료문자 무제한 보내기!

   매일 09:00~18:00까지는 보내기닷컴에서 무제한 문자가 무료이다. 그외 시간은 네이트온을 이용하자.
   자세한 내용은 홈페이지 참조!  
http://www.bonegi.com/


5. 신용카드, 체크카드로 통신료 할인받자!

   각 신용카드사에서 발급하는 할인혜택을 꼼꼼히 살펴뵤면 휴대폰 요금을 할인해 주는 서비스가 하나
   씩은 있다. 여기서는 BC카드중 통신료 5%할인해주는 TNT카드를 소개한다.
   자세한 내용은 홈페이지 참조!
http://www.bccard.com/card/html/cardinfo/brand/tnt.jsp

728x90

'Information' 카테고리의 다른 글

악플대처법  (0) 2007.05.02
세컨드 라이프, 이벤트 통해 삼성 휴대폰 배포  (0) 2007.04.16
사이드쇼 지원되는 노트북PC W5Fe  (0) 2007.04.14
728x90

http://opencapture.net

489K 라는 용량이 믿기지 않을 정도의 다양한 기능들을 제공하는 화면 캡쳐 프로그램이다.

웹브라우저를 캡쳐할때 필요한 자동 스크롤링 기능도 있고, 색상 캡쳐기능도 있다.

무엇보다, 한글이라는거!!

728x90

'Software' 카테고리의 다른 글

ASP 파일 업로드 컴포넌트 TABS Upload  (0) 2007.05.09
Rainlendar-0.22.1  (0) 2007.04.28
Edit Plus  (0) 2007.04.28
728x90

바탕화면에 달라붙어서 기본적으로 달력 기능을 제공하며, 스케줄 관리를 할 수 있게 도와준다.

http://vapaa.dc.inet.fi/~rainy/index.php

위 홈페이지에 가면 한글 언어팩과 스킨이 있으나,
개인적으론 그냥 영어와 기본스킨을 추천한다... -_-;

한글 언어팩의 경우 필요한 항목들에 대해서는 모두 한글화가 되어 있으나, 몇몇 부분에 대해서는 한글 번역이 되어 있지 않아서 완벽 한글버젼이라고 하긴 힘들다.

스킨 또한 이것 저것 바꿔봤지만, 역시 Default 가 젤 낫다는 결론에 도출했다는...-_-;;

스케줄 백업 기능이 있어서 다른 PC에 프로그램을 설치후 스케줄 파일을 불러올 수 있으나, 한글로 된 내용은 백업파일 복구를 할때 한글이 깨지는 현상이 발생한다.

그러므로, 보존이 필요한 스케줄은 영어로 하는 수 밖에 없는...
뭐, 영어공부 한다고 생각하고 하면 나름대로 위안이 된다는...;;;

728x90

'Software' 카테고리의 다른 글

opencapture  (0) 2007.04.28
Edit Plus  (0) 2007.04.28
새 하드디스크를 구입했다면, CopyHandler  (0) 2007.04.26
728x90

에디트플러스(Edit Plus)

진짜 졸라 울트라 캡쑝 짱 베리 굿 나이스 뷰티풀 원더풀 지대 지존 왕 대박 프로그램.

프로그램 하는 사람 치고 Edit Plus 안쓰는 사람 없다.

한국제품으로 회사는 경남 진주시 망경동에 있다.

대한민국은 위대하다..ㅜ_ㅜ)乃

30일 평가판이지만 30일이 지나도 무한 사용이 가능하다.

등록판과 평가판의 차이는 라이센스관련 알림창이 떠서 사용자로 하여금 '동의함' 버튼을 누르게 하는 귀차니즘을 유발시킨다는 것 뿐..

홈페이지 : http://www.editplus.com/kr/

728x90

'Software' 카테고리의 다른 글

Rainlendar-0.22.1  (0) 2007.04.28
새 하드디스크를 구입했다면, CopyHandler  (0) 2007.04.26
각종 Viewer  (0) 2007.04.10
728x90
function isASCII($str)
{
    if( preg_match('/^[\\x{00}-\\x{7F}]+$/u', $str) ){
       return true;
    }else{
       return false;
    }
}



표현식중 뒤에 나오는 패턴 변경자 u 는 패턴 문자열을 UTF-8으로 취급한다.
아래 보다 자세한 패턴 변경자를 참고!!

ASCII CODE TABLE 참고

바이너리 제로 문자(0x00)는 목표 문자열에서는 지원하지만, 패턴 문자열에서는 허용하지 않습니다. 패턴은 제로로 종료하는 보통의 C 문자열로 처리하기 때문입니다. 패턴에서 바이너리 제로를 표현하기 위해서는 이스케이프 시퀀스 "\\x00"로 사용할 수 있습니다.



패턴 변경자(Pattern Modifiers)

패턴 변경자 -- 정규표현식 패턴에 존재하는 변경자의 설명

Description

아래 목록은 현재 존재하는 PCRE 변경자입니다.
괄호 안의 이름은 각 변경자에 대한 PCRE 내부의 이름입니다.

i (PCRE_CASELESS)

이 변경자를 지정하면, 패턴의 문자는 대문자와 소문자를 구별하지 않습니다.

m (PCRE_MULTILINE)

기본적으로, PCRE는 주어진 문자열을 하나의 "줄"로 취급합니다. (실제로 몇개의 라인을 가지더라도) "줄 시작" 메타문자(^)는 문자열의 처음만을 인식하며, "줄 끝" 메타문자($)는 문자열의 끝이나 (D 변경자가 지정되지 않는 한) 마지막 뉴라인의 직전만을 인식합니다. 이는 펄과 같습니다.

이 변경자를 지정하면, "줄 시작"과 "줄 끝"은 주어진 문자열의 모든 뉴라인 직후와 직전을 인식합니다. respectively, as well as at the very start and end. 이는 펄의 /m 변경자와 동일합니다. 주어진 문자열에 "\n" 문자가 존재하지 않거나 ^나 $ 패턴이 일어나지 않으면 이 변경자는 아무런 효과가 없습니다.

s (PCRE_DOTALL)

이 변경자가 지정되면, 패턴의 점 메타문자는 뉴라인을 포함하는 모든 문자를 인식합니다. 지정하지 않으면, 뉴라인은 제외됩니다. 이 변경자는 펄의 /s 변경자와 동일합니다. [^a]와 같은 부정클래스는 이 변경자에 관계 없이 항상 뉴라인 문자를 포함합니다.

x (PCRE_EXTENDED)

이 변경자가 지정되면, 공백 문자는 이스케이프 되거나 문자 클래스 안에 있을 경우를 제외하고, 완전히 무시합니다. 문자 클래스 밖에서 이스케이프 되지 않은 # 사이와 뉴라인 문자 다음의 문자도 무시합니다. 이는 펄의 /x 변경자와 같고, 복잡한 패턴 안에 코멘트를 사용할 수 있게 합니다. 그러나 이는 데이터 문자에만 해당하는 점에 주의하십시오. 공백 문자는 패턴의 특별한 문자 시퀀스 안에는 존재할 수 없습니다. 예를 들면, 조건 서브 패턴을 나타내는 (?( 시퀀스에는 나와서는 안됩니다.

e

이 변경자를 지정하면, preg_replace()는 변경할 문자열을 PHP 코드로 처리하고, 그 결과를 검색된 문자열의 이용하여 일반적인 치환을 합니다.

preg_replace()만 이 변경자를 사용합니다; 다른 PCRE 함수는 무시합니다.

참고: 이 변경자는 PHP 3에서는 사용할 수 없습니다.

A (PCRE_ANCHORED)

이 변경자를 지정하면, 패턴을 강제적으로 "고정"합니다. 이는 ("주어진 문자열"에서) 검색된 문자열의 시작에만 매치도록 강제합니다. 패턴 자체에서 특정한 구조를 가지게 하는, 펄에서는 유일한 방법으로 같은 효과를 얻을 수 있습니다.

D (PCRE_DOLLAR_ENDONLY)

이 변경자가 설정되면, 패턴의 달러($) 메타문자는 주어진 문자열의 마지막에만 대응합니다. 이 변경자 없이는, 달러는 마지막 문자가 뉴라인일 경우에는 바로 직전의 문자에도 매칭합니다. (마지막이 아닌 뉴라인은 제외합니다) 이 변경자는 m 변경자가 지정되었을때는 무시됩니다. 펄에는 이 변경자가 존재하지 않습니다.

S

패턴이 여러번 이용되면, 매칭에 걸리는 시간을 절약하기 위해서 분석에 더 많은 시간을 들일 가치가 있습니다. 이 변경자를 지정하면, 추가 분석을 행합니다. 현 시점에서, 패턴의 분석은 하나의 고정된 시작 문자를 가지지 않는 비고정 패턴에만 유용합니다.

U (PCRE_UNGREEDY)

이 변경자는 수량 지시의 "greediness"를 뒤집습니다. 그리하여 기본값으로 not greedy하게 합니다. 하지만 "?"가 붙으면 greedy하게 됩니다. 이는 펄과 호환되지 않습니다. 패턴 안에서 (?U) 변경자 설정으로 지정할 수 있습니다.

X (PCRE_EXTRA)

이 변경자는 펄과 호환되지 않는 PCRE의 추가 기능을 사용하게 합니다. 패턴의 문자와 결합된 백슬래쉬가 특별한 의미를 지니지 않을 경우에 에러를 발생시켜서, 차후에 추가 기능을 위해 예약해둡니다. 기본적으로 펄은, 문자와 결합된 백슬래쉬가 특별한 의미를 지니지 않을 경우에는 글자로 취급합니다. 이 변경자는 다른 기능을 제어하지 않습니다.

u (PCRE_UTF8)

이 변경자는 펄과 호환되지 않는 PCRE의 추가 기능을 사용하게 합니다. 패턴 문자열을 UTF-8으로 취급합니다. 유닉스에서는 PHP 4.1.0부터, win32에서는 PHP 4.2.3부터 사용할 수 있습니다.

728x90

'Developer > JavaScript' 카테고리의 다른 글

javascript cookie  (0) 2007.05.02
자바스크립트 단축키 핸들러 - shortcuts.js  (0) 2007.04.20
Prototype base multi-Selection API  (0) 2007.04.18
728x90
http://www.copyhandler.com/
대용량 하드디스크 파일을 복사할때 사용하면 좋은 프로그램.
대용량 파일을 전송하면서도 다른 작업에 지장을 큰 지장을 주지 않는다.

출처 : http://kaistizen.net/EE/index.php/weblog/copyhandler/
728x90

'Software' 카테고리의 다른 글

Edit Plus  (0) 2007.04.28
각종 Viewer  (0) 2007.04.10
Foxit Reader  (0) 2007.04.07
728x90
Binny V A씨는 많은 자바스크립트 라이브러리가 있음에도 단축키를 지원하는 라이브러리는 발견하지 못했다면서 구글의 웹 애플리케이션인 Gmail이나 Reader처럼 보다 쉽게 웹 애플리케이션에 단축키를 사용할 수 있도록 함수를 만들어 배포했습니다.

아래의 예제를 보면 첫번째 아규먼트로 키를 지정하고, 두번째로 콜백 함수를 넣습니다. 마지막 세번째에는 옵션을 지정할 수 있습니다. 지원 되는 키에는 "Ctrl+X"와 같은 형식으로 작성하여 매우 직관적이며 Tab, Space, Return, Enter, Backspace, Scroll_lock, Caps_lock, Num_lock, Pause, Insert, Home, Delete, End, Page_up, Page_down, Left, Up, Right, Down, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12 키를 지원합니다.

옵션으로는 'type'에 'keydown','keyup','keypress' 이벤트를 변경할 수 있으며 'target'에 이벤트가 작동할 DOM단위의 영역을 설정할 수 있고 'propagate' 증식옵션(event.stop 또는 return false?)을 Boolean형태로 사용할 수 있습니다.

다운로드 자바스크립트 : shortcuts.js

예제 코드
shortcut("Ctrl+Shift+X",function() {
   alert("Hi there!");
});

shortcut("Ctrl+B",function() {
   alert("The bookmarks of your browser will show up after this alert...");
},{
   'type':'keydown',
   'propagate':true,
   'target':document
});
728x90
728x90
728x90

'Developer' 카테고리의 다른 글

정규표현  (0) 2008.01.29
Online Converters  (0) 2007.04.10
HTTP Status Code  (0) 2007.04.08
728x90
자바스크립트로 구현한 Prototype.js 프레임웍 기반 다중 선택기 API를 소개합니다.(API라고 하기에는 좀 부끄럽군요) 최초 올라로그 오픈베타 프로젝트에 사용되었습니다. 데스크탑 애플리케이션 못지않은 UI를 구현하겠다는 욕심에 조금은 억척 스럽게 만들어진 녀석입니다. 유저가 익숙하지 않다는 이유로 존속여부는 희박하지만, 라이브러리 형태로 공개하고 계속 발전시켜 나가볼 생각입니다. 조금더 다듬고 기능을 확장하여 여러환경에 적용할 수 있도록 손보았습니다. 웹 특성상 컨트롤 키를 조합하는 방식이 아닌 기본으로 활성화 되어 있는 상태입니다.(추가 예정)

download JS : http://firejune.com/javascripts/multiselect.js
download CSS : http://firejune.com/stylesheets/multiselect.css

사용방법


적용대상이 되는 엘리먼트는 리스트 아이템(UL)의 부모이며, 부모 엘리먼트는 다중선택 활성화 영역(parent)이 됩니다. 리스트 아이탬은 고유한 ID값를 지니고 있어야 합니다.(수정됨) 드래그 사용여부와 스타일 시트에서 지정한 스타일을 별도로 설정 할 수도 있습니다, 자세한 사용방법은 아래와 같습니다.(슬라이드 바는 포지션 리셋 테스트용 입니다.)
new MultiSelect('testElement');

// CSS 시각효과 설정
new MultiSelect('testElement', {
  dragSelect: false, // 드래그 사용 여부
  rectangleCN: 'MS-rectangle', // 선택영역 스타일 이름
  selectCN: 'MS-select', // 선택된 아이탬 스타일 이름
  unselectCN: 'MS-unselect', // 선택되지 않은 아이탬 스타일 이름
}});

// 예제에 사용한 코드
var selector = new MultiSelect('testElement', {
  // 변화가 생기면 이벤트 발생
  onChange: function(){
  var debug = $('debug2'), point = '';
  debug .innerHTML = 'Selected : ';
  selector.items.each(function(a){
    if(a.success) {
       debug .innerHTML += point + a.element.innerHTML;
       point = ', ';
    }
  });
}});

selector.setOffset(true); // 포지션 다시 계산하기
selector.selectAll(true); // 모두 선택하기
selector.selectAll(false); // 모두 선택 해제하기


추후 추가될 기능


- 윈도우 컨벤션을 따르는 UI 모드 추가(컨트롤 키 조합)
- 메모리 릭현상 제거
- 더블 클릭 이벤트 추가
- 아이템의 ID값 없이도 사용할 수 있도록 수정(수정됨)
- form 엘리먼트 지원

출처 : FireJune's Blog
728x90
728x90

FormatDateTime(Date[, NamedFormat])

 

date

Required. Date expression to be formatted.

NamedFormat

Optional. Numeric value that indicates the date/time format used. If omitted, vbGeneralDate is used.


vbGeneralDate

0

Display a date and/or time. If there is a date part, display it as a short date. If there is a time part, display it as a long time. If present, both parts are displayed.

vbLongDate

1

Display a date using the long date format specified in your computer's regional settings.

vbShortDate

2

Display a date using the short date format specified in your computer's regional settings.

vbLongTime

3

Display a time using the time format specified in your computer's regional settings.

vbShortTime

4

Display a time using the 24-hour format (hh:mm).


Function GetCurrentDate


' FormatDateTime formats Date in long date.


GetCurrentDate = FormatDateTime(Date, 1)


End Function



Response.Write FormatDateTime(Now, 0) & "<br>" '2005-06-21 오후 2:56:46

Response.Write FormatDateTime(Now, 1) & "<br>" '2005년 6월 21일 화요일
Response.Write FormatDateTime(Now, 2) & "<br>" '2005-06-21
Response.Write FormatDateTime(Now, 3) & "<br>" '오후 2:56:46
Response.Write FormatDateTime(Now, 4) & "<br>" '14:56

728x90

'Developer > ASP (Active Server Page)' 카테고리의 다른 글

asp 내장함수  (0) 2008.08.07
IIS 6.0에서 ASP include file 에러 발생시 대처법  (0) 2007.12.27
FileSystemObject개체  (0) 2007.07.03
728x90
세컨드 라이프에 삼성전자의 이름을 딴 섬이 생겼다. 소프트뱅크 모바일과 삼성 전자는 12일, 「세컨드 라이프(Second Life)」에서 삼성도(島)를 공개했다.



세컨드 라이프가 공개한 삼성도의 모습

이 이벤트는 소프트뱅크 모바일 전용의 삼성 휴대폰을 위한 프로모션의 일부로 섬 안에 숨겨진 메시지를 해독하면 오리지널 아이템을 얻을 수 있는 추가 이벤트가 진행될 예정이다.

유저는 수많은 거대 휴대폰이 떠다니는 섬을 탐험해 자유롭게 이벤트에 참가할 수 있다. 거대 휴대폰에는 메시지들이 숨겨져 있어 섬 안의 수수께끼를 풀기위한 힌트가 포함되어 있다. 메시지를 해독하면 세컨드 라이프가 제공하는 오리지널 아이템을 얻을 수 있다.

섬의 중심에 있는 거대한 「소프트뱅크 스테이션」건물에서는 원하는 휴대폰을 손에 들고 슬라이드를 시험해 보거나 휴대폰의 기능을 시험해 볼 수 있다.

전시되어 있는 휴대폰은 유저들이 자유롭게 소유할 수 있다. 현재 제공되는 휴대폰 모델의 종류는 707 SC, 708 SC, 709 SC, 707SCII 등이다.

출처 : http://www.zdnet.co.kr/news/digital/0,39030978,39156845,00.htm
728x90

'Information' 카테고리의 다른 글

핸드폰요금 절약 5가지  (0) 2007.04.30
사이드쇼 지원되는 노트북PC W5Fe  (0) 2007.04.14
VISTA에서 Adminpak 설치하여 사용하기  (0) 2007.04.13
728x90
PC제조업체 아수스가 26일 ‘사이드쇼’ 기능을 내장한 W5Fe 노트북PC를 마이크로소프트사(MS)의 윈도우 비스타 체험관에서 공개한다고 밝혔다.

아수스 W5Fe 노트북은 ▲이메일 확인▲스케줄 및 주소록 체크▲이미지 보기▲음악 감상▲간단한 게임 실행 등의 작업을 노트북PC의 외부 LCD창에서 수행할 수 있다.

예를 들면 W5Fe 노트북을 사용하는 유저는 엘리베이터 안에서 오늘 있을 미팅 시간 및 일정을 사이드쇼 디스플레이 창을 통해 노트북을 열지 않고도 간편하게 확인할 수 있는 것.


아수스 W5Fe 노트북PC은 사이드쇼 기능의 빠르고 효율적인 동작을 위해 별도의 1기가바이트(GB) NAND 플래시 메모리를 장착하고 있고, 윈도우 비스타 운영체제와 연동돼 다양한 데이터들을 실시간으로 체크할 수 있다.

아수스가 국내에서 판매하는 모든 정품 노트북은 전 세계 2년 무상 서비스가 지원된다.

출처 : http://www.zdnet.co.kr/news/spotnews/digital/0,39040052,39154957,00.htm


▲ W5Fe

아수스 W5Fe 노트북은 사이드쇼(SideShow) 디스플레이를 탑재해 이메일 확인, 스케줄 및 주소록 체크, 이미지 보기, 음악 감상, 간단한 게임 실행(Solitaire) 등의 작업을 빠르게 수행할 수 있다. 별도의 1GB 낸드(NAND) 플래시 메모리를 장착해 윈도우즈 비스타(Windows Vista) 운영체제와 연동, 다양한 데이터들을 실시간으로 체크할 수 있다.

<아수스 W5Fe 노트북 사양>

  • CPU : 인텔® 코어™2 듀오 프로세서 T7200 프로세서
  • 운영체제 : 마이크로소프트 윈도우즈 비스타 홈 프리미엄
  • 메모리 : DDR2 667MHz 1.5GB 제공(최대 1.5GB 확장 가능)
  • 디스플레이 : 12.1" WXGA 컬러 샤인 디스플레이
  • 그래픽 향상기술 : 아수스 스플랜디드 인공지능 비디오 향상기술
  • HDD : 160GB / SATA 타입 / 5400rpm HDD 장착
  • 화상카메라 : 235도 회전, 130만 고해상도 웹캠 제공
  • 무선 네트워크 : 802.11a/b/g, 블루투스 V2.0+EDR
  • 인터페이스 : 3× USB, 1× IEEE1394, 1× TV-Out, 1× 카드 리더, 1×익스프레스 카드, 1× VGA
  • 크기 & 무게 : 30.5 × 22 ×3.1cm / 약 1.7kg (3셀 배터리 기준) / 6셀 배터리 제공
  • 서비스 : 전세계 2년 무상 서비스 제공

<사이드쇼(SideShow) 외부 디스플레이>

  • 디스플레이 : 2.8" QVGA TFT LCD
  • 플래시 : 1GB 낸드 플래시
출처 : http://www.buyking.com/news/2007/03/news200703201016527
728x90
728x90
이 문서는 VISTA에서  윈도우즈서버2003의 관리도구인 adminpak의 설치/사용에 관한 것입니다.

VISTA를 메인으로 사용하다보니 가장 큰 불편사항이 adminpak을 사용할수없다는것이었습니다.
Remote desktops으로 많은 데스크탑을 한번에 열어서 작업하면 정말 편리하죠..
원격데스크탑으로 창을 하나씩 열어서 작업하는것은 정말 불편합니다.
adminpak에는 도메인을 관리하는 관리자에게 유용한 툴이 많답니다.
하지만 VIASTA에서  이 adminpak을 설치해도 실행되지않더군요..  구글을 뒤지다 답을 찾았습니다.
"VISTA adminpak installation"으로 검색을 했더니 다음의 문서가 나오더군요..
* install-windows-server-2003-adminpak-administration-tools-pack-on-vista

제 노트북에서 실행하여 관리도구들을 실행한 모습입니다.
Remote Desktops와 Distribute File system 그리고 Active Directory users and computers가
비스타 데스크탑환경에서 실행되고있습니다.  보시다시피...
근데 묘하게 Active Directory users and computers에서 그룹정책을 보려고했는데 실패했습니다.
사용에 다소 제한이 있는듯합니다. 해결되면 추후 다시 이것에 대해 포스팅하도록 하죠..
사용자 삽입 이미지

실행방법은 간단합니다. 뭐 더복잡한 방법들도 있었습니다만.. 이것만으로 잘 되더군요
1단계. 일단 윈도우2003 sp1용 adminpak을 설치합니다.
2단계. 다음의 명령들을 배치파일로 만들어서 관리자권한으로 실행합니다.
그러면  adminpak으로 설치한 많은 관리도구들을 사용할수있습니다.
regsvr32 /s adprop.dll
regsvr32 /s azroles.dll
regsvr32 /s azroleui.dll
regsvr32 /s ccfg95.dll
regsvr32 /s certadm.dll
regsvr32 /s certmmc.dll
regsvr32 /s certpdef.dll
regsvr32 /s certtmpl.dll
regsvr32 /s certxds.dll
regsvr32 /s cladmwiz.dll
regsvr32 /s clcfgsrv.dll
regsvr32 /s clnetrex.dll
regsvr32 /s cluadmex.dll
regsvr32 /s cluadmmc.dll
regsvr32 /s cmproxy.dll
regsvr32 /s cmroute.dll
regsvr32 /s cmutoa.dll
regsvr32 /s cnet16.dll
regsvr32 /s debugex.dll
regsvr32 /s dfscore.dll
regsvr32 /s dfsgui.dll
regsvr32 /s dhcpsnap.dll
regsvr32 /s dnsmgr.dll
regsvr32 /s domadmin.dll
regsvr32 /s dsadmin.dll
regsvr32 /s dsuiwiz.dll
regsvr32 /s imadmui.dll
regsvr32 /s lrwizdll.dll
regsvr32 /s mprsnap.dll
regsvr32 /s msclus.dll
regsvr32 /s mstsmhst.dll
regsvr32 /s mstsmmc.dll
regsvr32 /s nntpadm.dll
regsvr32 /s nntpapi.dll
regsvr32 /s nntpsnap.dll
regsvr32 /s ntdsbsrv.dll
regsvr32 /s ntfrsapi.dll
regsvr32 /s rasuser.dll
regsvr32 /s rigpsnap.dll
regsvr32 /s rsadmin.dll
regsvr32 /s rscommon.dll
regsvr32 /s rsconn.dll
regsvr32 /s rsengps.dll
regsvr32 /s rsjob.dll
regsvr32 /s rsservps.dll
regsvr32 /s rsshell.dll
regsvr32 /s rssubps.dll
regsvr32 /s rtrfiltr.dll
regsvr32 /s schmmgmt.dll
regsvr32 /s tapisnap.dll
regsvr32 /s tsuserex.dll
regsvr32 /s uddi.mmc.dll
regsvr32 /s vsstskex.dll
regsvr32 /s w95inf16.dll
regsvr32 /s w95inf32.dll
regsvr32 /s winsevnt.dll
regsvr32 /s winsmon.dll
regsvr32 /s winsrpc.dll
regsvr32 /s winssnap.dll
regsvr32 /s ws03res.dll

출처 : 우키의 블로그
728x90
728x90
"웹2.0 시대에 소프트웨어로 성공하기 위해서는 수개월단위로 개발 사이클이 단축돼야 한다. SW업체의 성공포인트는 어떤 기술을 신속하게 적용할 수 있는 능력이다. 지금의 신기술은 빨리 적용한다고 해서 품질을 저해하지는 않는다고 단호하게 말하고 싶다."

지 난 24일 삼성동 코엑스에서 열린 자바 컨퍼런스에 기조연설차 방한한 맷 탐슨 썬마이크로시스텔즈 총괄 이사는 "웹2.0과 오픈소스의 확산으로 속도가 무엇보다 중요해졌다"면서 국내 자바 개발자들을 상대로 '개발생산성 향상'을 거듭 강조했다.

유사한 서비스를 쉽게 개발할 수 있는 상황에서 신속한  개발 능력은 개발자가 갖춰야할 필수조건이 됐다는 것이다.

탐슨 이사는 "썬은 전세계 개발자들이 신속하게 소프트웨어개발을 지원하기 위해 넷빈즈 개발 플랫폼을 공급하고 있다"면서 "한국 개발자들은 넷빈즈와 솔라리스 플랫폼에 기반해 다양한 혁신과 실험을 해볼 수 있을 것이다"고 목소리를 높였다.

그는 또 "개발자들이 자바를 기반으로 PHP와 루비 그리고 리치 인터넷 등을 쉽게 빠르게 개발할 수 있는 환경을 제공하겠다"면서 넷빈즈에 앞서있는 '이클립스'  개발 플랫폼과의 뜨거운 한판승부를 예고했다. 다음은 탐슨 이사와의 인터뷰 내용을 정리한 것이다.

오전에 가진 기조연설에서 강조한 것은 무엇이었나? 다시 한번 요약을 부탁한다.

웹2.0과 오픈소스 그리고 썬이 이를 돕기 위해 어떤일을 하고 있느냐를 강조했다. 자바와 각종 신기술을 결합해 쓰는 것에 대해서도 초점을 맞췄다. 웹2.0과 오픈소스가 확산되는 상황에서 소프트웨어로 성 공하기 위해서는 수개월 단위로 개발 사이클이 단축돼야 한다. SW 업체의 성공포인트는 특정 기술을 빠르게 적용할 수 있는 능력이다. 빨라지면 품질이 떨어질 것이란 우려가 있을 수 있으나 지금의 신기술은 빨리 적용한다고 해서 품질을 저해하지는 않는다고 단호하게 말하고 싶다. 썬은 이제 자바 플랫폼 전체를 오픈소스화했다. 이것은 개발자들이 다양한 실험을 신속하게 할 수 있도록 하기 위한 것이다.

▲오전 기조연설에서 F3란 기술에 대해 언급했다. 정확하게 어떤 것인지 궁금하다.

F3(form follows function)는 개발자 커뮤니티에는 말하고 있지만 공식 발표를 한 것은 아니다. F3솔루션은 개발자들이 다양한 기기에서 쓰일 수 있는 리치인터넷애플리케이션(RIA)을 쉽게 만들 수 있도록 해주자는 것이다. F3는 JVM상에서 돌아가며 루비와 자바 스크립트와 병행해 사용할 수 있다. 곧 공식 발표를 할 것이다. PHP보다 풍부한 인터페이스를 구현할 수 있음을 입증하겠다.

▲RIA의 경우 구글은 아작스 기반 웹서비스로, MS와 어도비는 데스크톱과 웹과의 융합을 표방하고 있다. F3가 갖고 있는 차이점은 무엇인가?

아작스는 매우 좋은 것이다. 그런데 자바 스크립트상에서만 돌아간다는 단점이 있다. 자바 스크립트의 경우 몇가지 문제가 있는데 우선 양질의 코드를 작성하기 어렵고 콤포넌트를 만든 후 재사용도 쉽지 않다. 아작스는 자바 스크립트 콤포넌트이기 때문에 이런 문제점들을 벗어날 수가 없다. 썬도 아작스를 지원하기 위한 툴깃을 내놓고 협업도 하고 있다. 그러나 기본적으로 썬은 루비와 아작스를 함께 쓰도록 하는 노력을 하고 있다.

리치 인터넷은 잠재력이 있다. 그러나 구현하는데 있어 정답은 무엇인가? 개인적으로는 휴대폰과 TV 그리고 데스크톱에 플래시와 플렉스를 적용시키려는 어도비가 MS보다는 나은것같다. 썬의 목표는 다양한 디바이스에서 JVM을 활용, 애플리케이션을 쉽고 빠르게 만들 수 있도록 하자는 것이다. 분명한 것은 F3를 통해 개발자들은 RIA를 쉽고 빠르게 구현할 수 있다는 것이다.

▲국내 자바 개발자는 IBM이 주도하는 이클립스 개발 플랫폼 사용 비중이 높다. 썬이 내놓은 신기술이 확산되려면 기본적으로 넷빈즈 개발 플랫폼와 솔라리스 사용자 기반이 확대되야 한다.  이게 쉽지는 않을 것 같다는 생각도 든다.

썬의 목표는 IBM을 대체하자는게 아니라 개발자들에게 선택의 폭을 넓혀주자는 것이다. 이렇게 되면 승자는 자연스럽게 판가름날 것이다. 한국에서 이클립스가 활발히 쓰이고 있다는 것은 인정한다. 그러나 중국과 브라질에 가면 넷빈즈가 앞서 있다. 모바일 솔루션 개발에서 넷빈즈가 유리하기 때문이다. 강조하건대 혁신을 얼마나 가능하게 하느냐 측면에서 넷빈즈는 이클립스보다 뛰어나다. F3나 루비 등과 같은 신기술을 JVM에 적용시키는데 있어 이클립스는 역부족이다. 썬이 이클립스에 가입하지 않은 것도 바로 혁신이 어렵기 때문이다. 솔직히 1년전에는 이런얘기못했는데 이제는 자신있게 말할 수 있다.

▲개발환경으로서 솔라리스가 리눅스보다 낫다고 강조했다. 구체적인 근거는 무엇인가.

-썬은 최근 SAMP를 선보였다. SAMP는 솔라리스, 아파치(웹서버),  '마이SQL'(MySQL: DBMS), 포스트그레SQL(DBMS), PHP(웹프로그래밍 언어)를 의미하는 것으로 '리눅스+AMP'의 대항마로 보면된다. SAMP는 런타임이 길게 보장되고 LAMP에서의 전환도 쉽다. 중요한 것은 LAMP보다 속도가 30~200% 정도 빠르다는 것이다.

▲웹2.0 시대에 어울리는 개발자의 조건은 무엇이라고 보나.

개발자를 꿈꾸는 대학생들에게 게임 개발을 해보라고 권하고 있다. 게임 개발은 개발은 물론 작가로서의 자질을 요구한다. 스토리를 알아야 한다는 얘기다.

원문 : http://delight.bloter.net/_news/8df42a45c1fe8f98



728x90
728x90
http://www.ejschart.com/index.php

Description: http://ajaxian.com/archives/emprise-jav ··· h-canvas

Jacob Miller and his team have created a rich charting library called EJSChart.

EJSChart is canvas-based with many interactive features such as zooming and auto scaling. The product has been in development for some time but the web site has just been established.

It features interactivity, axis scaling, zooming, scrolling, ajax-driven data, and much more.


728x90

+ Recent posts