2006년 2월 27일 월요일

Server-Time 정확하게 맞추기

rdate -p -s www.hanyang.ac.kr


리눅스 시간 맞추기 : Time Server와 Sync (rdate, date)

사용하는 서버의 /etc/crontab 에 아래와 같은 줄이 있습니다.

0 0 * * 1 root rdate -s time.bora.net && clock -w

그러니까 매주 한번씩 타임서버인 time.bora.net에서 시간을 읽어와서 rdate -s 옵션으로 저장하고(man rdate 참조), clock 명령으로
CMOS 시간값에 저장합니다.(man clock 참조).

타임서버는 가까이 있는 신뢰할만한 타임서비스 서버를 적으면 좋겠지요.

경험에 의하면 타임서버가 외국서버라 해도 시간대에 관계없이(타임서비스 자체가 시간대정보까지 포함하는가 보죠.) 잘 작동합니다.

*-- 몇몇 타임서버 -----------*

time.kriss.re.kr
time.bora.net
time.nuri.net
time-a.nist.gov


제가 아는바로는 rdate -s 명령이나 date -s명령은 궂이 구분을 짓자면 소프트웨어적인 시간을 설정하는 것으로 압니다.
따하서 하드웨어 시간(CMOS)까지 조정해줘야(clock -w) 리부팅후 조정시간이 반영되겠지요.

하두 오래전 일이라 매뉴얼페이지를 다 뒤져볼수는 없지만 어렴풋한 기억으론 위의 말이 맞을것 같습니다.

제 경우 1주일에 한번씩 재설정하고 있긴 하지만(제 보드도 TYAN 입니다.)
항상 몇초에서 몇분씩 틀리긴 하더군요. 어긋나는 시간을 최소화하자는 취지에서 매주 1회 돌리고 있답니다.

타임서버에서 자주 시간값을 읽어와 재설정하는것도 좋긴 하지만 간혹 cron이나 at등의 스케줄에 영향받는 프로그램을 고려해야할것입니다.

예컨대 이런 문제도 발생할 수 있겠지요.

10시 1분에 일일 자료백업을 하도록 cron에 설정해두고, 10시 정각에 타임서버에 접속하여 시간을 재설정했는데 타임서버의 시간이 10시 2분이었다고
치죠.
그렇다면 10시 1분은 그냥 지나친 결과이기 때문에 예정된 작업은 수행되지 않을겁니다.

아무튼 date 명령으로 출력된 시간을 하드웨어(CMOS)에 기록하기 위해서는 clock -w 명령을 사용하면 되고, 리부팅시 초기에 CMOS 시간을 참조할 것이므로
조정된 시간이 반영될테지요.


[ns@ ~]# echo;echo -n "System : "; date;echo -n "CMOS : ";clock -r;
echo -n "Time Server : "; rdate time.bora.net;echo

System : Tue Sep 7 10:50:44 KST 1999
CMOS : Tue Sep 7 10:50:57 1999 -0.562593 seconds
Time Server : [time.bora.net] Tue Sep 7 10:50:55 1999


[ns@ ~]# rdate -s time.bora.net && clock -w


[ns@ ~]# echo;echo -n "System : "; date;echo -n "CMOS : ";clock -r;
echo -n "Time Server : "; rdate time.bora.net;echo

System : Tue Sep 7 10:53:33 KST 1999
CMOS : Tue Sep 7 10:53:34 1999 -0.171902 seconds
Time Server : [time.bora.net] Tue Sep 7 10:53:33 1999

2006년 2월 26일 일요일

도끼2를 공짜루... 오늘 4개를 지르다!

[출처]. http://miniwini.com/miniwinis/bbs/index.php?bid=share&mode=read&id=5199

모비블루에서 도끼2이어폰을 자사제품 B153 출시기념으로 택배비없이 2,990원에 모두 준다고 한다.
노마도 방금 4개 질러버렸돠~ ^____________^;

아래 주소를 클릭하면 구입할 수 있다.
참고로 회원가입하면 주는 가입기념포인트 1,000점으로 \1,000원의 할인혜택이...ㅎㅎㅎ

http://www.mobiblushop.com/shop/product_detail.asp?goods_no=35


모비블루" tt_link="" tt_w="411px" tt_h="411px" tt_alt="" />

이미지더보기..

2006년 2월 23일 목요일

2006년 2월 22일 수요일

RIA design 원칙

[출처] http://blog.naver.com/dykin/80022058723

Recently I was asked to provide input into a presentation. The question was asked, if you were going to provide some quick basic guidelines for designing rich applications what would they be.

Here were the nine thoughts as they originally came to my head.

1) Make it directly interactive
Instead of page to page interactions think direct interaction. Use in context editing as much as possible. Use drag and drop only where it makes sense. Barring a selection model, put tools as close to the objects being edited as possible. Cooper states it as "Where there is output, let there be input."

2) Make it inviting
Use hover to invite users to the next level of interaction. If the interface responds well to light events (like hover) it can be used to entice the user to interact.

3) Use lightweight, in-context popups instead of page transitions where possible
Although they will eventually get over-used, lightweight popups can be your friend. Think of them as annexed areas for your page.

4) Use real-estate creatively
As mentioned popups help. But slide outs have long been allies in desktop tools, they can be an aid in the world of the web.

5) Cross page boundaries reluctantly
Think of a page switch as a context boundary that the user may or may not want to cross. Think of it as a place that many of your users will lose interest and no longer follow you.

6) Create a light footprint
Make it extremely easy to interact. Rating movies or news with just a click on a star with no-refresh is awesome. Checking hostnames without leaving the page is an excellent way to keep a user engaged. Shopping by clicks that only add to a container on the page (instead of going to a new page) are like impulse aisles in the grocery store.

7) Think of your interactions as storyboards
As the designer you are the director. Think about the event states as acts in a play and your interface elements as actors. Get them all moving towards telling your story. Putting the frames down on a storyboard is a great way to rehearse your script. Think of the interesting moments as opportunities for engagement.

8) Communicate transitions
Keeping the user informed during lightweight operations (that don't leave the page) with spinning wheels, busy or progress indicators keep the user engaged with a living page.

9) Think in objects
Instead of thinking about content and pages, think about Rich Internet Objects. The travel log in Yahoo!'s Trip Planner is a good example. Once created it can be searched for or shared. This will help you create more interactive applications and make the user's work recognizable and sharable.

These are not exhaustive. Even as I go to publish this I can think of other tips to include... but I will resist adding to the list. Perhaps you have some tips/principles that have helped you solve design challenges?

2006년 2월 21일 화요일

number_format()

number_format
(PHP 3, PHP 4 , PHP 5)

number_format -- Format a number with grouped thousands
Description
string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

number_format() returns a formatted version of number. This function accepts either one, two or four parameters (not three):
If only one parameter is given, number will be formatted without decimals, but with a comma (",") between every group of thousands.
If two parameters are given, number will be formatted with decimals decimals with a dot (".") in front, and a comma (",") between every group of thousands.
If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (".") before the decimals and thousands_sep instead of a comma (",") between every group of thousands.

Only the first character of thousands_sep is used. For example, if you use foo as thousands_sep on the number 1000, number_format() will return 1f000.
Example 1. number_format() Example
For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. This is achieved with this line :

<?php
$number = 1234.56;
// english notation (default)
$english_format_number = number_format($number);
// 1,234
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>

하드디스크 공간의 계산법

[출처] http://blog.naver.com/plusrey/110001044075

자주는 아니지만 간혹 하드디스크의 공간이 실제와 다르다라는 얘길 듣습니다.
예를 들어 160기가 하드디스크를 구입했는데 윈도우에서 확인해보니 10기가나 부족한 149기가가 나온다. 라구요. 어떤분은 80기가 용량의 컴퓨터를 구입했는데 74기가로 나온다며 컴퓨터 구입업체에 따지는 경우도 있습니다.

어떤 하드디스크를 구입하더라도 하드디스크에 표기된 총 용량이 윈도우에서 제대로 표시가 안될겁니다. 하지만 이는 하드디스크 이상이나 윈도우 이상이 아닌것이니 아래 내용을 참고하시어 왜 이렇게 나오는지 확인해 보시기 바랍니다.

컴퓨터는 2진수(0과 1)란 단위로 모든것을 계산합니다. (00101, 10101001 이렇게)
이로인해 컴퓨터는 하드디스크와 메모리 크기를 2진수로 계산하여 표현합니다.
하지만 우리는 2진수로 표현된 코드해석을 못하기 때문에 컴퓨터는 내부로는 2진수로 계산을 하고 외부로는 우리들이 알기 쉽도록 이 2진수를 10진수로 변환하여 보여주게 됩니다.

2ⁿ (2의 n승) 을 2^n 으로 표현하겠습니다. (학창시절 배웠던 2진수를 10진수로 변환하는 방법입니다.)

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024

(참고. 이 변환방법때문에 메모리 단위가 16M , 32M, 64M, 128M, 256M, 512M... 로 표기되는 것입니다. 그래서 63M, 129M, 550M 란 위 단위를 벗어난 메모리는 없는 것이구요.)

10 진수 1을 표현할 때 컴퓨터는 2^10을 사용해서 1.024를 사용합니다.
(모든 수의 0승은 1이기 때문에 제일 위의 1을 사용안합니다.)
그런데 소수점이하는 나중에 계산이 복잡해지기 때문에 생략하기로하여 .024를 뺀 1만을 1로 표현합니다.
그래서 1을 정확히 따지면 1=1.024 가 되어 1.024가 되는것입니다.

그리고 컴퓨터에서 사용하는 단위는 다음과 같습니다.

B (Byte) = 바이트
K (Kilo) = 키로
M (Mega) = 메가
G (Giga) = 기가

위에서 1은 1.024 에서 소수이하를 생략한것이라고 하였으니 1을 정확히 계산하려면 1에 1.024를 곱해줘야 합니다. (그리고 밑의 계산법은 . 과 ,를 주의해서 보세요.)

1 B ================== 1.024 B =========== (1 x 1.024)
1 KB == 1,000 B ====== 1,024 B =========== (1 x 1,000 x 1.024)
1 MB == 1,000 KB ===== 1,048,576 B ======= (1,024 x 1,000 x 1.024)
1 GB == 1,000 MB ===== 1,073,741,824 B === (1,048,576 x 1,000 x 1.024)

이렇게 소수점까지 계산을 하면 1 GB 는 정확히 1,073,741,824 B 가 됩니다.
160기가 하드를 윈도우에서 보면 하드디스크 전체 용량이 149.05 GB 라고 보입니다.
그러니 이를 위의 계산대로 소수점 이하까지 다시 적용시키면

1,073,741,824 x 149.05 = 160,041,218,867 이 되어 정확히 160 GB 가 조금 넘게 됩니다.

전 200G 하드를 사용중인데 186G 로 나옵니다. 무려 14G나 차이나죠. (아래 그림 참조)
하지만 이것이 잘못 표기된 것이 아닌 소수점이하를 생략하여 간단히 표기한 결과입니다.

즉, 하드공간은 계산법에 따라 차이가 있을뿐 실제로 그 공간이 없어지거나 문제가 있는것은 아니니
안심하고 사용하시면 됩니다.

2006년 2월 18일 토요일

서양학자의 일본 바로보기 - Jon Carter Covell

출처. http://blog.empas.com/limmy0510/12664591

일본이 오래 전부터 한국문화의 산물을 일본 국적의 것으로 기만하고 역사를 왜곡해온 사실을 폭로한 서양 학자가 있다. 미국의 동양미술사학자 존 카터 코벨(1912~96) 박사가 그 주인공.
컬럼비아대에서 일본미술사 연구로 박사학위를 받은 그는 백인 최초의 일본학 박사이기도 하다.
그는 일본문화를 연구하다가 그 근원인 한국문화에 심취해 깊이 있는 연구활동을 벌였다.


14세기 일본 大화가 80%는 한국인


역사왜곡이 문제다. 왜 모든 사람이 일본이 역사적 사실을 왜곡하는 데 대해 그처럼 치를 떠는가. 일본은 과거 500년이 넘게 역사를 왜곡해왔고, 대부분의 사람이 이를 그대로 받아들인다. 하지만 내가 공부한 한국의 고대사와 고고학에 따르면 바로 한국인들이 고대의 지도자들이었으며 당시 중국인에게 난쟁이들, 혹은 왜구로 알려진 지금의 일본인 이야말로 선진문명을 감지덕지 받아들인 수혜자임을 확신케 하는 것이다.


일본은 ‘난쟁이’ ‘왜구’ 같은 단어를 아주 싫어해 7세기부터 이 단어를 쓰지 않았지만, 사실상 왜인들은 오직 백제사신들을 통해서만 선진문물을 접할 수 있었다.


이를 증명하는 좋은 자료가 전 주일 미국대사 에드윈 라이샤워가 번역한 ‘옌닌(圓仁)의 일기-입당구법(入唐求法) 순례행기’다. 승려 옌닌은 “한국인 해상왕 장보고의 통치 아래 있던 중국 내 한국 식민지 신라방이 자신에게 베풀어준 배려가 아니었다면 중국에서 일본으로 돌아오지 못했을 것”이라고 썼다. 불교도인 옌닌 일행이 방문한 840년경 중국은 불교를 탄압하고 있었다. 옌닌 일행은 중국인에게 뇌물을 주고 한국인에게도 선물을 주어 중국으로부터 벗어나 금강경을 일본에 가지고 들어왔다. 모든 배편은 한국을 경유했으며 배도 모두 한국 배였다.


오늘날 일본이 저지르는 역사왜곡의 맥락에서라면 머잖아 히데요시의 군사들이 한국인 도공을 ‘초청’해다가 ‘일본에 파견근무’케 하고 이들에게 ‘무료 교통편과 숙식을 제공’하여 ‘그들이 기술을 이곳에 전파했다’고 할지도 모른다. 당시 일본의 도자기 기술은 5~6세기에 한국인들이 일본에 전한 스에키 토기 수준에 그대로 머물러 있었다. 그 사이 1000여 년 동안 일본 도공들은 한반도에서 온 도자기 기본을 따라 도자기를 만들어왔는데 16세기에 들어 그들은 조선 도자기산업의 새 피를 수혈할 필요성을 느꼈다. 새 피의 수혈은 뛰어난 기술혁신을 가져다 준 것이기에 이후 일본의 도자기는 한국적 착상에 힘입어 발전을 이룩했다.


한국 점령이 자랑거리?


1923년 도쿄와 요코하마를 덮친 관동대지진 때 한국인은 인명과 재산피해로 광포해진 일본인들의 희생양이 되어 타격을 받았다. 교과서가 씌어진 1930년대에는 한국인들이 모여 사는 빈곤지역을 ‘마늘 먹는 조선인’들이 사는 곳이라 부르며 일본인들이 기피하는 지역으로 몰아갔다.


미국 정부는 2차대전 당시 광분한 미국인으로부터 재미일본인들을 보호하기 위해 그들을 일정 지역에 피난시킨 루즈벨트 대통령의 조치를 교과서에 수록하도록 요구할지도 모른다. 그로부터 수십 년이 지난 오늘(1982년)에 와서 일본 자본가들은 그때 잃은 땅과 사업을 언제라도 마음만 먹으면 배상받을 수 있게 됐다. 그런데 일본은 이 같은 조치를 한국인들에게 취했는가.


아니다. 일본인들은 과거 한국에 해악을 끼친 사실에 대해 치욕을 느끼기는커녕 오히려 그것을 시건방진 자랑거리로 여기며 수십년 전과 달라진 바 없는 차별과 왜곡을 일삼고 있다. 일본 군부는 2차대전에서 아무 교훈도 못 얻었단 말인가. 겉보기에 그들은 분명히 반성의 기색이 없다.


그런데 일본문화사에서 한국의 영향을 모두 제거한다면 남아나는 것이 거의 없다. 적어도 서기전 3세기부터 8세기까지는 그러하다. 순수한 일본 고유 문화가 이룩됐다고 하는 10세기에 와서도 일본 대궐에서 벌어지는 가장 신나는 일 중의 하나는 대궐 사람들 중 누가 제일 한국춤을 잘 추는지 가려 뽑는 행사였다.


일본이 매우 자랑스럽게 여기는 14세기 새로운 수묵화의 기법은 사실 조선에서 먼저 생겨난 것이다. 일본의 수묵화를 그린 화가들 중에 조선 출신의 수묵화가이던 선승(禪僧)들을 다 추려낸다면 일본이 뽐낼 만한 부분은 거의 없다. 적어도 일본이 내세우는 14세기 수묵화 대가의 80%는 일본인이 아닌 한국인이다.


16세기에 들어와서도 조선에서 유입된 사상과 노동력이 일본의 예술을 발전시킨 원동력이었다. 그러나 20세기 들어 일본은 한국을 강제합방해 한국인을 노예로 부려먹었다. 또 있다. 정확히 언제 시작됐는지는 알 수 없으나 왜구의 노략질이 고려시대에는 특히 심했다. 그리고 지금에 와서는 역사왜곡까지 새롭게 시도해서 한국을 뒤흔들고 있다.


한국인들이 일본의 이런 압력에 굴복하거나 모욕을 한 귀로 흘려넘기는 한, 일본은 소리 없이 등뒤로 다가와 한국을 밟고 설 것이다.


역사왜곡은 712년부터 이어졌다


일본인이 쓴 글에는 한일관계를 거짓으로 기록한 것이 아주 많은데, 한국인들은 이를 곧이곧대로 받아들인다. 히틀러는 “거짓말이 크면 클수록 사람들은 잘 믿는다. 거짓말이라도 자꾸 되풀이하면 머잖아 많은 사람이 진실로 받아들인다”고 했다.


첫 번째 왜곡은 1300여 년 전 씌어진 첫 일본 역사책에서 일어났다. 당시 나라(奈良)의 왜(倭) 지배자들은 일단의 학자들에게 사서 편찬을 의뢰했다. 편찬 목적은 당대의 일왕들이 정통성을 가진 지배자임을 내세우기 위한 것이었다.


일본 역사가들은 369년 가야 부여족의 왜 정벌 이래 700년까지 한국이 정치·문화적으로 일본을 전적으로 지배했다는 사실을 완전히 감춰버렸다. 히틀러가 말한 것처럼, 거짓말은 클수록 사람들을 속이기가 쉬운 것이다. 그렇게 해서 일본 사가들은 역사를 뒤집고 가야에서 온 부여족이 왜를 정복한 게 아니라 왜가 가야를 정복했다고 썼다.


‘일본에서 와 가야와 신라를 정복했다’고 알려진 유명한 신공(神功)왕후는 사실은 선단을 이끌고 왜를 침략해 정벌한 강인한 의지의 한국왕녀였다. 369년의 오진왕부터 게이타이왕 이전까지(또는 일본역사에 등장하는 15대 천황부터 25대까지)는 전혀 일본인이 아닌, 순수 한국인 혈통의 왜왕이었다.


일본 건국자로 알려진 초대 일왕 진무는 4세기 부여인들이 일본을 정벌한 사실을 반영할 뿐이다. 해의 여신인 천조대신(天照大臣)은 무당이며, 그녀의 오빠 스사노오노 미코도(素尊)는 신라인이다. 그러나 8세기 역사가들은 이 두 인물에게 일본옷을 입혔다. 20세기에 와서 이들의 정체가 드러나기까지, 역사가들은 사람들을 속이는 소기의 목적을 달성한 셈이다.


나이 든 부모를 버리는 불효자식 이야기가 있다. 일본인들은 두 세대 전 한국인들에게 한국문화는 열등한 것이라 며 일본말과 일본 이름, 일본식 제도를 따라야 한다고 강권했다. 한국의 수많은 서책이 불에 타 없어지고 예술 활동도 금지됐다. 숱한 보물이 나라 밖으로 실려 나갔다. 석굴암을 해체해 돌 하나하나를 일본으로 옮기려고까지 했지만 성공하지 못했다. 일본은 거짓말과 날조를 통해 한국인에 대한 문화적 대량학살을 감행했다. 그러나 진실은 일본이 초기 역사부터 8세기에 이르도록 한국이 떠주는 음식을 받아먹고 자란 어린아이였다는 것이다.


정말 배은망덕한 사람들이다. 그들은 이제 한일강제합방이 ‘한국을 위한 선택’이었으며, ‘한국인들이 원한 일’이라고 거짓말을 하며 역사를 재구성하려 한다.


일본이 일으킨 지금의(1982년) 교과서 파동은 첫 단계에 불과하다. 다음 단계는 일본 헌법의 전쟁 금지조항을 삭제하고, 셋째 단계에 가서는 천황가를 ‘성스러운 권력체’로 되살린다는 게 일본의 속셈이다. 이것이 실현 가능할까.


제2차 세계대전에서 패한 이후 집권여당이 된 자민당은 그 이름과는 동떨어지게 보수성과 상업성을 추구하는 정당으로 군림했다. 이제 자민당은 상징적인 존재인 일왕을 실제적인 국가원수로 키우고 싶어한다.


일본인은 솔직해질 수 없다


1980년 나는 유네스코 강당에서 3대의 영사기로 컬러 슬라이드를 비춰가며 한국·중국·일본의 예술형태를 통해 극동의 세 나라를 비교하는 강연을 했다. 세 나라의 특성을 한마디로 요약할 말을 찾다가 영어의 C자로 시작하는 낱말을 떠올렸다. 중국은 통제(Control), 한국은 무심함(Casual), 일본은 작의적(Contrived)이라고. 이런 대비는 삼국의 도자기를 비교해보면 뚜렷하게 드러난다.


중국 도자기는 가마와 유약의 사용을 철저하게 관리한 결과 특히 도자기에서 완벽의 경지를 이뤄냈다. 한국의 도공은 언제나 자연스럽기 짝이 없고 무심해서, 이들이 만들어낸 도자기에는 도공의 기질과 불이 어떻게 작용했는지가 그대로 반영된다.


일본인들은 15세기 이도다완 전쟁에서 보듯, 이러한 한국적 무심함을 높이 취해서 과도하게 발전시킨 나머지, 그들의 도자기는 자의식이 담긴 작의적인 것이 됐다. 일본인들은 가마에서 구워낸 화병의 한 귀를 일부러 구부리거나 깨버림으로써 한국 도자기가 갖는 것 같은 ‘무심함’의 미를 주려고 한다.


미국인이 보기에 한국 도자기의 이런 무심함은 솔직함과 통한다. 내가 일본의 교토보다 서울에서 더 편히 지내는 이유는 지극한 미소로 일관하는 교토 사람들보다 상대적으로 솔직한 서울사람들이 더 자연스럽게 느껴지기 때문이다.


나는 10여 년 동안 매년 여름과 겨울을 교토 대덕사(大德寺)의 유명한 선사찰 진주암에서 보냈는데, 그 무렵 나는 주지스님과 삶에 있어 ‘솔직함’이 무엇인가 하는 문제로 자주 다투곤 했다. 면전에서 하는 말과 등뒤에서 하는 말이 다른 일본인의 이중성에 대해 지적하면 그는 그래야만 하는 것으로 정당화하곤 했다. 그것이 바로 ‘호벤(方便)’, 즉 편의라는 것이었다.


일본에서는 솔직함이 통용되지 않는다는 말을 여러 번 들었다. 자기 감정을 밖으로 표현하는 법을 배우는 일본인들은 어떤 상황이라도 거기에 맞는 표정을 지어 보일 수 있다. 그들이 진짜로 느끼는 감정은 속에서 억제되고 대신 ‘작의적 얼굴’로 외부에 알려지는 것이다. 일본인에게 인생은 이미 오래 전에 의도된 대로 따라가야 하는 것이니 누구든 자신을 거기 맞춰 살아야지 예상에 없는 짓으로 혼란스럽게 해서는 안 된다.


진주암은 일본 역사상 아마도 유일하게 100% 솔직했던 인물을 받드는 절이기 때문에 나는 그런 개념을 특별히 더 기만적이라 생각했다. 겉으로는 독신을 내세우면서 뒤로는 온갖 난잡한 일을 다 저지를 대신 승려 잇큐(一休)는 거리낌 없이 여자들과 즐겼고 그로 인해 계율로 엄격하게 금지된 것들에 대해 잘 알았다. 이 때문에 잇큐는 호벤, 혹은 ‘편의상의 거짓말’을 생의 방편으로 정당시하는 사찰에서 받드는 인물이 됐다.


진주암에서 이런 문제로 한바탕 논쟁이 벌어지면 스님이 으레 하는 말이 “그래, 당신이 옳소. 잇큐는 솔직한 사람이고 우리도 그래야겠지만 여기는 일본이요. 잇큐처럼 정직한 건 미국에선 괜찮겠지만 일본에선 맞지 않아요”.


나는 일본에 있는 절이 모두 그런 식이라는 것을 알았기 때문에 ‘거짓말이 살아 있는’ 진주암에서 지냈다. 적어도 잇큐를 추모하는 사찰인 이곳에는 아름다운 정원이 있고 벽에는 섬세한 수묵화가 걸려 있었다. 그것은 여기서의 표준개념인 ‘살아 있는 거짓말’로부터의 도피이기도 했다

2006년 2월 16일 목요일

2006년 2월 15일 수요일

게시물을 읽은 회원 리스트 나오게 하기

table에 field를 추가하지 않고 예비용 field인 x,y를 이용해서 하는 법입니다.

먼저, 읽은 사람 리스트를 적용할 게시판의 id에 해당하는 테이블인
zetyx_board_id 테이블의 x,y의 자료형을 text로 수정하고요,

적용할 스킨의 view.php파일의 적당한 곳에 다음 내용을 삽입합니다.
<!--본문 읽은 회원 표시 시작-->
<?
$_zb_path = "/home/php/zb/"; // 제로보드 절대경로
include $_zb_path."outlogin.php";

if (10>$member[level]) {
$strArray = "";
$strArray = explode(" ",$data[x]);
if (($member[is_admin]==1) or ($data[name] == $member[name]) or array_search($member[user_id],$strArray)) {
$x=$data[x];
$y=$data[y];
} else {
if (!$data[x] and !$data[y]) {
$x=" ".$member[user_id];
$y=$member[name];
} else {
$x=$data[x]." ".$member[user_id];
$y=$data[y].",".$member[name];
}
}

@mysql_query("update $t_board"."_$id set x='$x' where no='$no'") or error(mysql_error());
@mysql_query("update $t_board"."_$id set y='$y' where no='$no'") or error(mysql_error());

echo "<table border=0 cellspacing=0 cellpadding=2 width=$width><tr>
<td bgcolor=#EEEEEE><font color=#555555>
이글을 읽은 회원들 : $y
</td>
</tr></table>"
;
}
?>
<!---->

위와 같이 작성하면,

글작성자, 관리자는 표시되지 않고요,
한번 이상 글을 읽은 사람은 한번만 표시됩니다.

페이지 리스트 "네이버 뉴스" 스타일로 수정하기

퍼온글 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&no=6595


* 수정전 확인사항

본 Tip은
제로보드 파일을 수정하여 적용하기 때문에 모든 게시판에 영향을 줄 수 있습니다. Tip적용후 해당스킨파일을 수정해야하는 약간의 번거로움이 있습니다. 사용자의 홈페이지 환경을 확인하시어 적용하시기 바랍니다.

또한, 본 Tip를 적용하면 현재 페이지를 포함한 10페이지 및 바로 이전페이지, 바로 다음페이지만 출력되고
맨처음페이지 및 맨나중페이지는 출력되지 않습니다.

만약의 사태에 대비하기 위해
원본파일을 백업하시고 작업하시기 바랍니다.
백업하지 않고 Tip을 적용한 후 발생한 문제에 대해서는 책임지지 않습니다.




* Tip 적용방법

1. 본 게시물에 첨부된 addimage.zip파일을 다운받아 제로보드폴더/images에 업로드합니다.(addimage.zip에는 양쪽에 표시되는 화살표의 이미지가 포함되어있습니다. 직접 제작하시어 사용하셔도 됩니다.)

[다운받기]



2. 제로보드폴더/zboard.php파일을 다른 장소에 복사해 둡니다.


3. 제로보드폴더/zboard.php파일을 메모장 등을 이용하여 소스를 수정합니다.

(수정전)
아래의 소스를 찾으세요.

/***************************************************************************
 * 스킨에서 사용할 페이지 정리
 **************************************************************************/

 $print_page="";
 $show_page_num=$setup[page_num]; // 한번에 보일 페이지 갯수
 $start_page=(int)(($page-1)/$show_page_num)*$show_page_num;
 $i=1;

(중략)

 

// 검색시 Divsion 페이지 이동 표시 (여기 윗부분까지 수정하셔야합니다^-^;)


(수정후)

/***************************************************************************
 * 스킨에서 사용할 페이지 정리
 **************************************************************************/

 $print_page="<td width=1 bgcolor=#CCCCCC nowrap></td>";
 $show_page_num=$setup[page_num]; // 한번에 보일 페이지 갯수
 $start_page=(int)(($page-1)/$show_page_num)*$show_page_num;
 $i=1;

 $a_1_prev_page= "<Zeroboard ";
 $a_1_next_page= "<Zeroboard ";
 $a_prev_page = "
<table cellspacing=0 cellpadding=0 border=0><tr align=center>";
 $a_next_page = "
</tr></table>";

 if($page>1) $a_1_prev_page="<a onfocus=blur() href='$PHP_SELF?id=$id&page=".($page-1)."&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'>";
 if($page<$total_page) $a_1_next_page="<a onfocus=blur() href='$PHP_SELF?id=$id&page=".($page+1)."&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'>";

 if($page>$show_page_num) {
  $prev_page=$start_page;
  $a_prev_page="
<table cellspacing=0 cellpadding=0 border=0><tr align=center><td style='padding:3 8 0 8' nowrap><img src=images/prev_arrow.gif align=absmiddle><a onfocus=blur() href='$PHP_SELF?id=$id&page=$prev_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'>이전</a></td>";
//  $print_page.="<a onfocus=blur() href='$PHP_SELF?id=$id&page=1&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'><font style=font-size:8pt>[1]</a><font style=font-size:8pt>..";
  $prev_page_exists = true;
  }
 while($i+$start_page<=$total_page&&$i<=$show_page_num) {
  $move_page=$i+$start_page;
  if($page==$move_page) $print_page.="
<td style='padding:3 8 0 8' onmouseover=this.style.background='#F7F7F7' onmouseout=this.style.background=''><font color=ff6600><b>$move_page</b></font></td><td width=1 bgcolor=#CCCCCC nowrap></td>";
  else $print_page.="
<td style='padding:3 8 0 8' onmouseover=this.style.background='#F7F7F7' onmouseout=this.style.background=''><a onfocus=blur() href='$PHP_SELF?id=$id&page=$move_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'>$move_page</a></td><td width=1 bgcolor=#CCCCCC nowrap></td>";
  $i++;
 }

 if($total_page>$move_page) {
  $next_page=$move_page+1;
  $a_next_page
="<td style='padding:3 8 0 8' nowrap><a onfocus=blur() href='$PHP_SELF?id=$id&page=$next_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'>다음</a><img src=images/next_arrow.gif align=absmiddle></td></tr></table>";
//  $print_page.="<font style=font-size:8pt>..<a onfocus=blur() href='$PHP_SELF?id=$id&page=$total_page&select_arrange=$select_arrange&desc=$desc&category=$category&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&sn1=$sn1&divpage=$divpage'><font style=font-size:8pt>[$total_page]</a>";
  $next_page_exists = true;
 }

// 검색시 Divsion 페이지 이동 표시
(중략)



4. 사용하시는 스킨의 list_foot.php파일을 메모장 등을 이용하여 소스를 수정합니다. 본 Tip에서는 제로보드 기본스킨인 nzeo_ver3를 기준으로 설명하도록 하겠습니다.

아래의 부분을 찾습니다.

<?=$a_prev_page?>[이전 <?=$setup[page_num]?>개]</a></font> <?=$print_page?> <font class=zv3_normal><?=$a_next_page?>[다음 <?=$setup[page_num]?>개]</font></a>



위의 소스를 모두 삭제하시고

<?=$a_prev_page?><?=$print_page?><?=$a_next_page?>

로 수정하시면 됩니다.


5. 수정한 파일을 업로드(zboard.php파일과 스킨파일의 list_foot.php파일)하시어 해당 Tip이 적용되었는지 확인합니다.

2006년 2월 14일 화요일

감각떨어지지 않으려 만들어 본 네이버SWF

그냥 한 번 만들어본 네이버 플래시파일입니다.
요즘 네이버 블로그에는 동영상업로드도 가능하다고 그러던데.....
그것들 구경하다가 동영상나오기전에 나오는 플래시가 이뻐서 만들어봤습니다.
쪼매 다르긴 하나...뭐 그런데로...ㅎㅎㅎ



▣ 제작프로그램 : Flash Professional 8
▣ ActionScript : 없음
▣ 제 작 기 간 : 약 45분

디자인놈에서 fla파일을 회원들에 한해 다운받을 수 있습니다.

rdate (타임서버로부터 로컬서버의 시간설정)

rdate

rdate는 지정한 원격지의 타임서버로 부터 날짜시간정보를 받아와 보여주거나 날짜시간설정을 하는 명령어이다. 이 명령어는 date와 clock명령어와 함께 공부를 하면 학습효과가 좋다.

우선 간단한 설명부터 보도록 하자.

-p옵션을 사용하면 지정한 원격 타임서버(아래의 예에서는 time.bora.net)에서 시간정보를 가져와서 보여준다. 아래는 그 예이다.

[root@host1 root]# rdate -p time.bora.net
rdate: [time.bora.net]  Tue Sep  9 11:44:25 2003


그리고 다음은 date명령어로 현재 시스템의 날짜시간정보가 맞는가를 확인하였다.
그리고 현재 시스템의 날짜시간정보가 틀리다는 것을 확인하고 원격지의 타임서버에서 날짜시간정보를 가져와서 현재 시스템에 적용을 한 것이다
날짜시간설정을 하려면 -s옵션을 사용해야한다. 아래는 그 예이다.

[root@host1 root]# date                                    (현재시스템의 날짜시간정보 확인)
2003. 09. 07. (일) 01:30:01 KST
[root@host1 root]#
[root@host1 root]# rdate -s time.bora.net          (타임서버에서 날짜시간정보를 가져와 적용함)
[root@host1 root]#
[root@host1 root]# date                                   (현재시스템의 변경적용된 날짜시간정보 확인)
2003. 09. 09. (화) 11:45:40 KST
[root@host1 root]#

참고로 사용할 수 있는 타임서버(Time Server)의 종류로는 다음과 같은 것들이 있다.
time.bora.net
time.kriss.re.kr

참고로 date명령어는 현재시스템의 날짜와 시간정보를 확인하고 직접 변경할 수 있는 명령어이다.  date의 자세한 설명은 date명령어편을 참고바란다.

그리고 서버를 직접 관리하시는 분들께서는 매번 이런 시간을 직접 맞추어야하는 번거로움이 있을 것이다. 이런 경우에는 다음과 같이 /etc/rc.d/rc.local 파일에 명령어를 넣어 두거나 주기적인 시간설정을 위해 cron에 넣어두기도 한다.

/etc/rc.d/rc.local 파일에 넣는 예

 ## Set the date & time ##
/usr/bin/rdate -s time.kriss.re.kr
/sbin/clock -w

다음은 cron파일에 설정하는 예이다.

00 01 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/clock -w


[ 출처: http://www.superuser.co.kr ]

2006년 2월 11일 토요일

[지구촌 경제] 아이디어는 여유에서 나온다

요즘 기업들의 화두는 '혁신(Innovation)'이다. 혁신이란 지금까지와는 다르게무언가 새롭고 좋은 변화를 가져온다는 것을 뜻한다.

혁신이나 창조는 업무에 매달려 바쁠 때보다 한가하고 여유로울 때 나오는 경우가 많다. 그래서 요즘 앞서가는 선진 기업들은 직원들에게 업무 외에 '창조적 시간(Creativity time)'을 따로 주거나 자유로운 기업 문화를 제공한다. 그대표적인 예가 미국의 3M과 구글, 지넨테크 등이다.

먼저 가장 최근에 알려진 지넨테크 사례를 보자.

지넨테크(Genentech)라는 생명공학 회사는 포춘이 최근 발표한 '2006년 가장 일하고 싶은 100대 기업' 중 1위를 차지했다. 퀄컴(23위), 골드만삭스(26위), 스타벅스(29위), 마이크로소프트(42위), 인텔(97위) 등 기라성 같은 기업들을 모두 물리쳤다.

지넨테크는 어떤 회사일까. 이 회사의 직원수는 지난 1월 현재 9000명이고 지난해 연간 매출은 66억달러다. 기업 규모로는 미국에서 중소기업에 속한다. 그러나 이 회사 매출은 지난 4년간 3배나 급증했다. 주식가격은 주당 95달러로 지난 1년간 100% 이상 상승했다. 성장속도가 매우 빠르다.

무엇보다도 기업의 실질가치를 나타내는 이 회사 시가총액은 1020억달러를 호가한다. 미국의 대표적 제약업체인 머크나 릴리의 시가총액을 넘어선다. 미국 전체 기업을 포함해도 20위 안에 든다.

지넨테크 성공의 비밀은 무엇일까. 직원들에게 다른 기업보다 많은 돈을 주기 때문일까. 그러나 이 회사 직원들의 평균 연봉은 7000만원에도 못 미친다. 평균 연봉 1위인 러셀인베스트먼트(57만4373달러)에 비하면 8분의 1에 불과하다.그런데도 직원들의 만족도는 최고다.

포춘은 지넨테크의 성공 비밀이 기업문화에 있다고 분석했다. 샌프란시스코 국제공항 북쪽에 위치한 본사는 회사라기보다는 마치 대학캠퍼스 같다. 캠퍼스처럼 넓고 자유분방한 분위기다.

회사 내에선 카푸치노 커피 등 음료수를 무료로 마실 수 있다. 점심 땐 취향에따라 생선초밥이나 스파게티도 무료로 먹는다. 그리고 매주 금요일에는 맥주파티가 열린다. 이는 1970년대 창업 이래 내려오는 전통이다. 당시 대학을 갓 졸업한 몇몇 젊은 과학자들이 입사해 즐기던 것이 이젠 전 회사 차원의 문화가 됐다.

또 이 회사 직원들은 오래 전부터 정장을 입지 않는다. 회사 주차장은 직급에 따라 할당되어 있지도 않고, 임원을 위한 특별 식당도 없다.

지넨테크의 이 같은 '노는 문화'는 그러나 그저 '놀고 먹기 위함'이 아니다. 핵심은 직원들의 창의성을 고양하고 생산성을 높이는 것이다. 이를 위해 지넨테크가 채택한 가장 중요한 정책이 직원들에게 '창조적 시간(C-time)'을 부여하는 것이다. 연중 근무시간의 20%는 평소 업무에서 벗어나 자신이 원하는 프로젝트를 하도록 권장한다.

또 지넨테크는 최고의 인재를 뽑는 데 심혈을 기울인다. 그러나 단지 인재를 뽑는 데만 그쳐서는 안된다고 생각한다. 인재들이 자신의 능력을 최대한 발휘할 수 있는 환경을 조성하는 데 심혈을 기울인다. 그 일환이 바로 직원들에게 'C-타임'을 주는 것. 그래서 재충전이 필요한 직원들에게는 안식년도 충분히 제공한다.

이 회사 아트 레빈슨 최고경영자(CEO)는 "전혀 관료적이지 않은 자유스러운 지넨테크 기업 분위기가 높은 창의성과 생산성을 낳는 원천"이라고 강조했다.

C-타임의 원조는 스카치테이프와 포스트잇(Post it)으로 유명한 3M이다. 스카치테이프, 포스트잇은 전 세계적으로 안쓰이는 곳이 없을 정도다. 이들 제품은창의성을 적극 권장하는 3M의 기업문화에서 탄생했다.

3M은 세계적인 아이디어 기업이다. 이 회사가 아이디어 기업으로 불리는 이유는 기업 풍토가 남다르기 때문이다. 3M은 근무시간의 15%는 개인 아이디어에 쓰라는 '15% 룰'로 유명하다.

이 회사 기술연구원들이 연구 시간의 15%를 회사에서 주어진 업무와 관계없이 자신이 원하는 연구 프로젝트나 작업에 사용할 수 있도록 제도화한 것이다. 자신이 원하는 일을 할 때 아이디어가 나오고 일의 효율도 극대화할 수 있다는 연구직 종사자들의 특성을 감안해 도입한 제도다.

'15% 룰'에 따라 연구원들은 근무시간에 자신이 원하는 프로젝트를 연구할 수 있다. 또한 그 연구가 실패하더라도 회사측에서 아무런 책임이나 이유를 묻지 않는다.

따라서 연구개발자들이나 기술자들은 이 규칙을 활용해 자유롭게 흥미 있는 연구에 도전할 수 있다. 이러한 자유로운 휴식이나 여유 있는 제도 속에서 새로운 아이디어가 생겨나는 것은 당연하다.

3M은 또 최근 3년 내 개발한 제품으로 매출의 30%를 올린다는 '30% 원칙', 상사가 모르는 비밀프로젝트를 권장하는 '밀주제조' 제도, 아이디어가 나오면 각부서가 모여 그것만을 위해 조직을 따로 만드는 '제품챔피언' 제도 등 다른 기업보다 창의성 실현을 위한 조직문화가 잘 마련돼 있다.

이 같은 시스템 덕분에 3M은 오늘날 하루 평균 1.4개의 신제품을 쏟아내고 있다. 제품수로 치면 1만3000여 종에 달하는 제품을 생산해 판매하고 있는 것. 기업 문화는 이처럼 구성원의 창의력을 개발해 생산력 향상과 기술혁신을 몰고오는 엄청난 역할을 한다.

'C-타임'을 적극 활용하고 있는 또 다른 기업은 구글(Google)이다. 98년 미국 스탠퍼드대 대학원생 래리 페이지와 세르게이 브린이 설립한 이 회사는 2004년8월 나스닥에 상장됐다. 그러나 구글은 상장 2년도 채 안되는 사이에 마이크로소프트(MS)를 위협할 정도로 막강한 기업이 됐다.

구글은 지난해 후반 미국 기업 사상 최단 시일에 시가총액 1000억달러를 돌파했다. 이 회사 시가총액은 약 1180억달러(1월 20일 기준)로 IT기업 중 MS, 인텔, IBM 다음이다.

구글은 IT회사지만 IT 전문가만 채용하지 않는다. 세상이 워낙 빨리 변해 '전문가'라는 게 의미가 없다는 것이다. 대신 새로운 업무를 빨리 배우고, 새로운일을 만들어 낼 수 있는 인재를 뽑는다.

신경외과 의사를 영입해 네트워크 운영을 맡기거나 자동차 경주 선수, 발레리나 등 다양한 영역에서 활동하던 사람들을 끌어들인다.

인재를 채용한 다음에는 자유로운 발상과 창의력을 유지하도록 근무 시간의 20%는 담당 업무가 아닌 개인 프로젝트를 할 것을 권유한다. 지넨테크와 같은 '20% C-타임제'다. 자유로운 분위기 속에 그들이 기발한 아이디어로 성과를 낼 수 있도록 하기 위해서다. '회사를 키우는 종합비타민, C타임'을 통해 당초의 창조적 벤처 정신을 계속 유지해 가겠다는 의도다.

[오화석 기자]

< Copyright ⓒ 매일경제. 무단전재 및 재배포 금지 >

2006년 2월 8일 수요일

MS SQL 2000을 설치하면서...

버전확인!

Query.
SELECT 'SQL Server '
+ CAST(SERVERPROPERTY('productversion') AS VARCHAR) + ' - '
+ CAST(SERVERPROPERTY('productlevel') AS VARCHAR) + ' ('
+ CAST(SERVERPROPERTY('edition') AS VARCHAR) + ')'


MS-SQL 보안관리 Microsoft 기술문서 http://www.microsoft.com/korea/technet/prodtechnol/sql/2000/maintain/sqlops3.asp

* 서비스팩4 다운로드

DB dump

mysqldump -u사용자명 -p암호 디비명 테이블명(안적으면 디비전부다 덤프함) > 파일명

그러면 sql파일이 생깁니다.


덤프한 sql파일을 다시 DB에 넣을려면

mysql -u사용자명 -p암호 디비명 < 파일명.sql

2006년 2월 7일 화요일

얼마전 출근길에 눈이 너무 많이 와서...한컷

포스팅날짜.'2006-03-05 15:31

출근길 버스타러가는길에..


2006년 02월 07일.. 출근길에 눈이 너무 많이 와서리..
많이 힘들긴 했지만, 예쁘게 눈꽃들도 피고해서 찍어봤는데...
영~
카메라가 좋아야지 원~~

2006년 2월 3일 금요일

무단링크 방지설정

Apache/2.0.52...

httpd.conf ....


Options FollowSymLinks
AllowOverride None

#링크를 허용할 주소.
SetEnvIfNoCase Referer ^http://203.255.179.40:8888/ goout
SetEnvIfNoCase Referer ^http://nomcomputer.com/ goout

#이미지의 경우 클릭시 새창에서 X로 보이는것을 방지하기위해.레퍼렐이 존재하지 않는 요청.
SetEnvIfNoCase Referer ^$ goout

#파일 확장자 지정.

Order deny,allow
deny from all
allow from env=goout

#무단링크시 보일 이미지 지정.지정안하고 주석처리하시면 기본 403포빈 에러뜸.
ErrorDocument 403 http://주소/이미지.gif