Dogs look up to you; Cats look down on you; Pigs treat you as an equal
멍멍이는 당신을 높게 보고; 고양이는 당신을 깔본다; 그리고 돼지는 당신을 자기같은줄 안다.

- Winston churchill
Posted by kkckc
,
Dara Torres : The five-time US. Olympian shares her stories in a new book, Age is just a number.

Q) Can you give me any advice for my swimming career? I'm 8 years old, and I have been on a competitive swim team for 2.5 years.

A) When I was 8, I did other sports also. The one thing I would tell you is, Don't limit yourself to one sport for the rest of your younger years. It an get monotonous, and you can burn out really quick.

Q) 수영선수라는 직업에 대해서 조언부탁드려요~ 전 8살이구요. 치열한 수영팀에서 2.5년동안 있었어요

A) 내가 8살이었을때, 나는 다른 스포츠도 함께 했단다. 내가 너에게 해줄 수 있는 말은 너의 젊은 시절을 한가지 스포츠로 제한하지 않았으면 한다. 그러면 단조로움에, 너는 무척 빠르게 지치게(burn out) 될 거야.

Times, APRIL 20, 2009
Posted by kkckc
,
If Suffering brought wisdom, the dentist's office would be full of luminous ideas.
고통이 지혜를 낳는다면 치과는 위대한 사상으로 가득차 있어야 한다. 

-- Mason Cooley
 
그래서 난 치과가 싫다. ;
Posted by kkckc
,
매직 존슨을 기억하는 사람이 있을지 모르겠지만, 정말 대단한 선수였다죠..^^
이 아저씨의 인터뷰중 재미있는 내용이 있어서 소개합니다.
(http://www.time.com/time/magazine/article/0,9171,1860893,00.html)


Q) 사업(Business)을 하면서 얻은 가장 귀한 교훈이 무엇입니까?

A) 사업(Business)을 할때는 언제나 당신 자신의 관점이 아니라 고객의 관점에서 생각하십시오. 나는 스포츠용품점 사업을 할때 이 교훈을 얻었습니다. 나는 언제나 구매자였습니다. 그래서 나는 내가 좋아하는 것들을 잔뜩 샀지만, 고객들이 좋아하는 것들은 아니었습니다. 나는 이 일로 많은 돈을 잃었습니다.

Q) What is the most important business lesson you've learned? Chris Aultman BELLEVUE, WASH.

A) Always make your business about the customer and never about yourself. I learned that when I invested in a sports-paraphernalia store. I was also the buyer, so I bought everything I liked and didn't buy anything that the customers liked. I ended up losing a lot of money because of that.

Posted by kkckc
,
사람들과 지구온난화에 대해 내가 무엇을 할 수 있을지에 대한 토론을 한 적이 있었습니다. 개인적으로는 모든것이 너무 막막했습니다. 지구는 크고 나는 너무 작으니까요 -_-;

TIME 지 2009년 1월 12일 호에는 반기문씨를 주인공으로 10문 10답이 소개되어 있습니다.
(http://www.time.com/time/magazine/article/0,9171,1869226,00.html)



그중 인상적인 질/답이 있어서 소개합니다.

Q) 지구 온난화를 멈추기 위해 개인이 무엇을 할 수 있나요?
A) 지구 온난화(기후 변화)는 우리 세대의 큰 이슈입니다. 우리의 생활 패턴을 바꾸는 것이 아주 중요합니다. 잠자리에 들때 불을 끄십시오. 물을 절약하여 사용하십시오. 지구상에는 12억의 인구가 깨끗한 물을 공급받지 못하고 있습니다.

Q) What can individuals do to halt the global climate crisis?  (Carl Sack, VANCOUVER)
A) Climat change is the defining issue of our era. For individuals, changing life patterns is very important. Turning lights off when you goto bed. Using water in a sparing way. There are about 1.2 billion people who do not have access to safe drinking water

정말 간단한 답이지만,
정말 이만한 답이 없는것 같습니다.
Posted by kkckc
,
Valkyrie is a one&only utility to analyze valgrind log file under the GUI.
This is a manual to install Valkyrie program for Ubuntu User.

1) Install QT Library
sudo apt-get install libqt3 libqt3-mt-dev libqt3-headers

2) Set a Symbolic Link

shell) cd /usr/share/qt3/include/
shell) ln -s /usr/share/qt3/mkspecs/linux-g++/qplatformdefs.h
shell) ls -lrt qplatformdefs.h
lrwxrwxrwx 1 root root    48 Sep 24 12:06 qplatformdefs.h -> /usr/share/qt3/mkspecs/linux-g++/qplatformdefs.h

3) Get a valkyrie file from valgrind site
=> http://valgrind.org/downloads/guis.html

4) unzip it and compile it as a ordinary step 
shell) ./configure
shell) sudo make
shell) sudo make install

5) This is an example that shows us how can we make xml file with the valgrind program. (summary.exe)
shell) valgrind -v --leak-check=full --tool=memcheck --xml=yes --log-file=./summary.xml summary.exe

6) type a valkyrie and load xml file.

God Bless you.
Posted by kkckc
,

Even though many of the c programmers are using time_t data type to express a date format in the oracle database. It is nearly hard to convert each other. Thus, I made a function to convert it.
(Actually, time _t data type in an oracle is like as a long type in the c programming)


(1) First, you need to get a beginning of the second with a following program.

(compile and run it)

#include <stdio.h>
#include <time.h>

int main() {
      struct tm tt;
        tt.tm_year = 1970-1900; // The number of years since 1900
        tt.tm_mon = 0;
        tt.tm_mday = 1;
        tt.tm_hour = 0;
        tt.tm_min = 0;
        tt.tm_sec=0;
        tt.tm_isdst = -1;
        int tx = mktime(&tt);
        printf("%d", tx);
}

in Korea: -32400

time_t is the number of seconds since the Epoch, 1970-01-01 00:00. (UTC)

(2) Put the result of (1) to the red marks.
86400
: 60*60*24 (sec*min*hour)

-- This Function Is For DATE -> time_t (second)
CREATE OR REPLACE FUNCTION DATE_TO_SECOND (v_date DATE) RETURN NUMBER AS
BEGIN
  RETURN
     trunc((v_date-to_date('19700101','YYYYMMDD'))*86400-32400) ;
END;
/
-- This Function Is For time_t (second) -> DATE
CREATE OR REPLACE FUNCTION SECOND_TO_DATE (v_sec NUMBER) RETURN DATE AS
BEGIN
  RETURN
    numtodsinterval((v_sec+32400) , 'second')+to_date('19700101','YYYYMMDD') ;
END;
/



Posted by kkckc
,
얼마전에 개인용도으로 Redhat을 깔았는데.
yum이 안되더군요 yum을 누르면 아래와 같은 메시지가 뜹니다.

This system is not registered with RHN

CentOS는 Redhat의 쌍둥이 클론입니다. 즉 같은 rpm을 사용한다고 보시면 됩니다.
(Redhat 5 Update 2 => CentOs 5.2 와 같이 Update 버전에 따라서 서브 버전이 나뉩니다.)

게다가, 말로만 듣던 gcc버그때문에, gcc를 업데이트할 일이 있어서.
구글링을 하다가 관련 자료를 찾아서 함 시도해보았습니다.
(http://www.linuxquestions.org/questions/linux-software-2/using-centos-repos-under-rhel-644632/)

1. /etc/yum.repos.d/rhel-debuginfo.repo 을 백업하고 삭제합니다.
2. /etc/yum/pluginconf.d/rhnplugin.conf 을 수정합니다.
(사실 이건 상관없을것 같은데. 기분상 해줍니다 -_-)
[main]
enabled = 0
gpgcheck = 1

3. /etc/yum.repos.d 디렉토리에 아무 파일이나 만들어서 .repo 를 생성합니다.
현재 전 WS5 update1 버전입니다..  빨강 부분을 주의하세요 :)

# Cent.repo
[base]
name=CentOS-5 - Base
baseurl=http://mirror.centos.org/centos/5/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-5 - Updates
baseurl=http://mirror.centos.org/centos/5/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
baseurl=http://mirror.centos.org/centos/5/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
baseurl=http://mirror.centos.org/centos/5/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
baseurl=http://mirror.centos.org/centos/5/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

4. yum update gcc 등을 날리면 다음과 같이 나타납니다.

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       9 Package(s)
Remove       0 Package(s)

Total download size: 19 M
Is this ok [y/N]: y
Downloading Packages:
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>"
Is this ok [y/N]: y
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded

잘 되는군요.. ^^

Posted by kkckc
,
사실 어려운 팁은 아닌데, 인터넷에서 잘 검색이 안되서 남겨봅니다.

요즘 세상에서는 네트워크 2개 이상이 잡히는 경우가 많이 있습니다.
특히 이런 경우 네트워크 하나를 활성화 했다가 다른걸 활성화 했다가 하면
아주 고생입니다.

이럴때 윈도우에서 쉽게 사용할 수 있는 방법이 특정 라우팅 경로를 직접 설정해주는 방법이 있습니다.

1) 윈도우즈에서 시작->실행 을 누른후, cmd를 타이핑해서 도스 모드(command line mode)를 실행합니다.
2) route 라고 쳐 봅니다.

Manipulates network routing tables.

ROUTE [-f] [-p] [command [destination]
                  [MASK netmask]  [gateway] [METRIC metric]  [IF interface]

왠 이상한게 쭉 나옵니다. 다시 route print 라고 쳐 봅시다.
그러면, Active Route 라고 리스트가 쭉 나오지요.
보이는 리스트가 현재 설정된 라우팅 테이블입니다.

3) ifconfig를 쳐 봅니다.
아래와 같이 예를 들면, 제 아이피를 142.23.37.1 이라고 할때, wibro를 하나 더 붙어서 wibro가 162.254.2.2 아이피를 쓴다고 가정합니다.

Ethernet adapter 로컬 영역 연결:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 142.23.37.1
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 172.23.37.254

Ethernet adapter 로컬 영역 연결 6:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 162.254.2.2
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . :

이런 상황에서, 210.101.1.1 과 같은 특정 아이피 (혹은 대역)에 접근하기 위해서는 예를 들어 다음과 같이 입력합니다.

command> route add 210.101.1.0 mask 255.255.255.0  162.254.2.2

즉, 쉽게 설명하면 210.101.1.(모든) 대역대는 169.254.2.2 쪽으로 보내라는 것이지요.

4) 잘 추가되었는지 확인합니다.
command> route PRINT

유용히 사용하시길.^^


Posted by kkckc
,
보통 통상적으로 유니코드 표현법으로 쓰이는 UTF-8 의 사이즈는 가변길이다.

한글 표현에 있어 가장 범용적인 EUC-KR의 경우 2Byte를 사용하게 되는데,
UTF-8의 경우는 보통 3Byte를 사용한다. (오라클 및 기타 application)

한글 위키에는 이러한 사이즈에 대한 분류 카테코리가 알기쉽게 잘 명시되어 있지 않지만, 영문 위키에는 이 카테고리가 알기쉽게 명시되어 있는데 내용은 다음과 같다.
(http://en.wikipedia.org/wiki/UTF-8)

1. One byte is needed to encode the 128 US-ASCII characters (Unicode range U+0000 to U+007F).
2. Two bytes are needed for Latin letters with diacritics and for characters from Greek, Cyrillic, Armenian, Hebrew, Arabic, Syriac and Thaana alphabets (Unicode range U+0080 to U+07FF).
3. Three bytes are needed for the rest of the Basic Multilingual Plane (which contains virtually all characters in common use).
4. Four bytes are needed for characters in the other planes of Unicode, which are rarely used in practice.

즉, 무슨 이야기냐면,

(1) 한바이트는 ASCII 에 명시된 케릭터 128개 표현이 가능하다. (쉽게 알파벳)
(2) 두바이트는 그리스아, 히브리어, 등등 라틴계통 언어나 몇가지 계통 언어 표현이 가능하다.
(3) 세바이트는 일반적인 다국어 표현이 가능하다. (즉 한글의 범주다!)
(4) 네바이트는 일반적으로 잘 안쓰이는 글들의 표현이 가능하다.

요약하면, UTF-8에서 한글을 사용하기 위해서는 세바이트가 필요하다.
Posted by kkckc
,
 레온, 조지프, 클라이드는 모두 메시아 콤플렉스를 겪고 있다. 이 세 명은 미시간 주 입실란티 시의 한 병원에 입원중이며, 만성적 정신질환, 과대망상, 정신착란 불안정으로 진단받았다. 그들은 각자 자신이 예수 그리스도가 다시 성육신한 사람이라고 주장했다. 세계가 자신을 중심으로 돈다고 믿었다. 말하자면, 그들은 세 명의 작은 메시아들이었다.

 심리학자 밀턴 로키치는 이 사람들을 돕기 위해 자신이 시도했던 치료 방법을 가지고 The Three Christs of Ypsilanti(입실란티의 세명의 그리스도들)라는 책을 썼다. 이 책을 통해 그들이 자기들의 실체를 알고, 보통의 레온, 조지프, 클라이드라는 그들 모습을 찾길 바랬던 것이다. 로키치는 이 년동안 그들과 함께 지냈다. 그러나 변화는 어려웠다. 그 환자들은 자신들이 메시아라고 믿지 않고서는 살아갈 자신이 없는 듯했다. 로키치의 말에 의하면, 그들은 삶의 다른 국면들에서는 매우 이성적일 수도 있었지만, "우스꽝스럽고 자기 방어적 현실 왜곡인" 메시아로서의 착각을 계속 고수했다.

 밑져야 본전이라고 생각한 로키치는 한 가지 실험을 시도했다. 이 세 명은 이 년동안 한 방에서 자고, 함께 식사하고, 함께 같은 일을 하고, 함께 한 가지 주제로 토의하는 시간을 가졌다. 서로 다른 메시아를 만나 지내면서 자신의 착각을 깨우치기를 바랬던 것이다. 이것은 일종의 메시아 12단계 회복 그룹이라고 할 수 있었다.
 
 실험 중 흥미로운 대화가 오고 갔다. "나는 메시아이며, 하나님의 아들입니다. 나는 사명을 가지고 이 땅을 구원하기 위해 이곳에 보냄 받았습니다." "그것을 어떻게 압니까? 로키치가 물었다. "하나님이 내게 말씀하셨습니다."
 그러자 다른 환자 한 명이 되받아쳤다. "나는 너에게 그런 말을 한 적이 없다."

 결국 그들의 메시아 논쟁은 세 명의 희극 연기로 끝났다. 즉 그들이 삼위일체에서 그들의 위치를 논쟁하는 것으로 끝났기 때문이다.

- 평범 이상의 삶 / 존 오트버그 pp.179-180

주) 메시아 콤플렉스 : 마치 자신이 메시아인 양 모두를 감당하지 않으면 강박관념에 사로잡혀 엄청난 스트레스와 착각에 빠져 있는 상태를 일컫음



Posted by kkckc
,
"사람들은 자기가 할 수 있을 것 같은 일들로 자신을 평가하지만, 다른 사람들은 그 사람이 지금까지 해 놓은 일들로 그 사람을 평가한다."

-Henry Wadsworth Longfellow


Posted by kkckc
,
요즘은 PlugProxy라는 Proxying 툴을 유용하게 쓰고 있습니다.

Proxying? 이라는 말은 쉽게 설명하면 보통 A라는 서버에서 B라는 서버에 접속할 때,
A랑 B랑 길이 막혀 있다면, 돌아가는 중간다리 정도로 생각하시면 큰 무리가 없을 듯 합니다.

비슷하게 Port Forwarding 이라는 것도 말도 있습니다.
예를 들면 22번이 ssh의 정식 포트입니다. 그런데, 문제는 사내의 public에서는 22번 포트가 개방되어 있지 않다고 가정합시다. 하지만, 웹 포트인 80 포트는 열려 있지요.
그렇다면 이렇게 해 볼 수 있겠지요.

방안1) ssh를 80 포트로 연다.
방안2) 80포트로 들어오는 내용을 -> 22번 포트로 돌려서 데이터를 전송하게 한다.

방안 2를 쉽게 Port Forwarding 이라고 합니다. 방안 2를 위해서는 일반적으로
리눅스에서는 iptables 라는 툴을 사용하기도 하지만,
룰이 워낙 복잡하고 옵션이 많아서 쉽지 않습니다.
게다가 윈도우의 경우에는 마땅한 툴이 그다지 없습니다.
또 엉뚱한걸 받아 프로그램을 띄우면 스파이웨어가 있기도 하고. 무겁기도 합니다.

PlugProxy는 JAVA기반이라 OS Independent 한 데다가,
가장 좋은점은 별다른 설정없이 자바 PATH만 잡고 그냥 띄우면 됩니다. -_-
옵션도 간단합니다.
사용법)
PlugProxy host rport lport
예제 1) 8080포트로 오는 내용을 22번 포트로 포워딩
PlugProxy localhost 22 8080
예제 2) 내 컴퓨터의 80포트로 오는 내용을 123.223.111.11의 80번 포트로 포워딩
PlugProxy 123.223.111.11 80 80

간단한 예만 들었지만, 사용하는 법에 따라서 많은 응용이 가능합니다.


Posted by kkckc
,
어느 날 옥스퍼드 백작Earl of Oxford이 엘리자베스 여왕을 알현하러 갔다. 그는 여왕이 가장 총애하는 신하였다. 하지만 불상사가 일어났다. 그가 여왕에게 절을 하기 위해 깊이 엎드리는 찰나 공교롭게도 방귀가 터져 나왔던 것이다!

 "뿡!"

 그는 여왕 앞에서 방귀를 뀌었다는 사실이 너무나 창피스러워 쥐구멍이라도 있으면 들어가고 싶으 심정이었다. 더구나 결혼도 하지 않은 독신 여왕 앞에서. 그는 너무나 창피한 나머지 곧 짐을 꾸려 해외 여행을 떠났다. 무려 7년간이나 해외를 전전하며 창피함을 잊으려 애썼다. 그가 귀국해 여왕을 알연했다. 방귀 사건을 이제는 잊었으려니 하는 마음으로. 그런데 여왕이 그의 얼굴을 보자마자 던진 첫마디는 이것이었다.

 "맙소사, 그 방귀를 까맣게 잊고 있었군! My lord, I had quite forgotten the fart!"

 여왕은 그의 얼굴을 보는 순간 그가 뀌었던 방귀를 다시 상기하게 됐던 것이다! 여왕이 방귀 사건을 잊도록 하겠다는 일념 하나로 버텨온 7년간의 외유가 완전 물거품으로 사라지는 순간이었다.

- 역사를 뒤바꾼 못말리는 천재 이야기 / 김상운 pp. 231-232
Posted by kkckc
,
우리에게 잘 알려지지 않은 서양 동화 중에 <벨벳 토끼>라는 이야기가 있다. 이 이야기는 어떤 아이가 갖고 있는 장난감 말과 토끼가 나누는 대화로 이루어져 있다.

"나는 '진짜'토끼가 되고 싶어. 진짜는 무엇으로 만들어졌을까?"
잠자는 아이의 머리맡에서 새로 들어온 장난감 토끼가 아이의 오랜 친구인 말 인형에게 물었다.
"진짜는 무엇으로 어떻게 만들어졌는가는 아무 상관이 없어. 그건 그냥 저절로 일어나는 일이야."
말 인형이 대답했다.
"진짜가 되기 위해서는 많이 아파야 해?"
다시 토끼가 물었다.
"때로는 그래. 하지만 진짜는 아픈 걸 두려워하지 안아."
"진짜가 되는 일은 갑자기 일어나는 일이야? 아니면 태엽 감듯이 조금식 조금씩 생기는 일이야?"
"그건 아주 오래 걸리는 일이야."
"그럼 진짜가 되려면 어떻게 해야 해?"
"아이가 진정 너를 사랑하고 너와 함께 놀고, 너를 오래 간직하면, 즉 진정한 사랑을 받으면 너는 진짜가 되지."
"사랑받으려면 어떻게 하면 되지?"
"깨어지기 쉽고, 날카로운 모서리를 갖고 있고, 또는 너무 비싸서 아주 조심스럽게 다루어야 하는 장난감은 진짜가 될 수 없어. 진짜가 될 즈음에는 대부분 털은 다 빠져 버리고 눈도 없어지고 팔다리가 떨어져 아주 남루해 보이지. 하지만 그건 문제 되지 않아. 왜냐하면 진짜는 항상 아름다운 거니까."

아이의 장난감이 아이의 사랑을 받음으로서 닳고 닳아야 비로소 생김새는 초라하지만 진정한 아름다움을 지닌 '진짜'가 될 수 있는 것처럼, 사랑을 받는다는 것은 '진짜'가 될 수 있는 기회를 부여받는 일이다. 잘 깨어지고 날카로운 모서리를 갖고 있으며, 또 너무 비싸서 장식장 속에 모셔 두어야 하는 장난감은 위험하고 거리감을 느끼기 때문에 아이가 사랑하지 않게 되고, '진짜'가 될 기회를 잃게 된다.

- 내 생애 단 한번 // 장영희 pp. 29-30

Posted by kkckc
,