사이드바 영역으로 건너뛰기

네트워크 모니터링 프로그램 IPTraf

터미널 상에서 간단하게 사용할 수 있는 네트워크 모니터링 프로그램 IPTraf
현재 트래픽을 확인하기 위해 찾은 프로그램.

<메인메뉴 화면>

메인 메뉴




Detailed interface statistics 화면
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

-5 / 4


애자일 이야기 - '표면적 단순함과 심층적 단순함 : -5 / 4는 얼마일까'




궁금하던 차에 찾은 글.. 원문은 링크를 참조하세요.
애자일 이야기 - '표면적 단순함과 심층적 단순함 : -5 / 4는 얼마일까'


-----------------------------------------
표면적 단순함과 심층적 단순함 : -5/4는 얼마일까
 
파이썬 마을에 grizlupo님이 을 하나 올리셨습니다. 파이썬이라는 언어에서는 -5/4가 -2인 반면, 다른 언어(특히, C, 자바 등 주류언어)에서는 그 결과가 -1인데 여기에 대해 커멘트를 구한다는 내용입니다.

정수 나눗셈 방식을 정하면 나머지(remainder) 연산도 자동으로 정해지게 됩니다. 몫 곱하기 나누는 수(제수) 더하기 나머지 하면 무조건 나뉘는 수(피제수)가 되는 원칙에 맞추려고 하기 때문입니다. 즉, -5/4를 -2로 보면, -5 나누기 4의 나머지는 3이어야 하고, -5/4를 -1로 보면, 나머지는 -1로 보아야 합니다(많은 수학자들은 제수가 양수인데 나머지가 음수가 될 수 있다는 것에 알레르기적 반응을 보이는 것 같습니다).

둘 중에 어느 방식이 옳을까요? 이 질문은 사실 답할 수가 없습니다. 수학이란 정의와 약속 위에 건축된 궁전이기 때문에 어떤 정의에 대해 옳고 그르다를 말하기가 어렵습니다. 하지만 어느 방식이 더 유용하거나 혹은 "엘레강트"할까요 하는 질문은 할 수 있습니다.

제가 여기에 대해 이렇게 커멘트를 달았습니다.



수학에서 Negate와 Negative Sign의 혼용에서 오는 문제점 같습니다. 연산자 우선순위가 있는 언어에서는 우선순위 문제(혹은 수학적 연산 우선순위의 해석 문제)라고 볼 수도 있겠죠.

즉, -5/4를 (-5)/4로 보냐, -(5/4)로 보냐의 문제인데... 자바 경우, 괄호에 상관없이 무조건 후자로 생각하죠 -- 즉 음수를 나누는 것도 결국 어떤 (물론 음의) 量 amount을 나누는 것으로 보는 겁니다. 그러면 음수를 어떻게 나눠야 하는지 고민하지 않아도 될 것 같습니다만, 정말 이게 더 간단하거나 유용할까요?

J라는 언어에서는 연산자 우선순위가 없고, negate와 negative sign을 따로 구분해서 이 문제를 해결합니다. 나누기와 floor라는 수학적 개념만으로 정수 나누기와 나머지 연산을 정의해 봅시다.

코드:

floor=. <.
of=. @
div=. %
intdiv=. floor of div
_5 intdiv 4
_2
- 5 intdiv 4
_1
left=.[
right=.]
mod=. left - right * intdiv
_5 mod 4
3
- 5 mod 4
_1


여기에서 앞에 언더바가 붙은 숫자는 그 자체로 하나의 명사이며, -는 동사로 negate라는 이름을 갖습니다. 즉, 음수라는 개념이 독립적으로 따로 있는 것이죠. J에서는 기본적으로 연산자가 무진장 많기 때문에 우선순위가 없고 대신 무조건 오른쪽에서 왼쪽으로 계산이 진행됩니다. 그리고 연산순서를 바꾸고 싶으면 괄호를 사용합니다.

저는 파이썬의 방식, 즉,

코드:

>>> -(5/4)
-1
>>> (-5)/4
-2

로 되는 것이, 자바의 방식(두 경우 모두 -1이 되는)에 비해, 훨씬 더 일관성 있고 간단한 방식이라고 생각합니다(위에 나온 intdiv나 mod의 정의를 보세요).

일견 느끼기에는 모든 경우에 -1로 나오는 자바 방식이 쉽고 간단한 것 같지만 절대 그렇지 않습니다. 표면적 단순함에 속아서는 안됩니다.

참고를 위해 자바의 나눗셈 연산 설명을 아래에 인용합니다.

인용:

The binary / operator performs division, producing the quotient of its operands. The left-hand operand is the dividend and the right-hand operand is the divisor.

Integer division rounds toward 0. That is, the quotient produced for operands n and d that are integers after binary numeric promotion (§5.6.2) is an integer value q whose magnitude is as large as possible while satisfying |d * q | <= |n|; moreover, q is positive when |n| >= |d| and n and d have the same sign, but q is negative when |n| >= |d| and n and d have opposite signs.
http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#5047


혹시나 해서 한가지 예를 덧붙이자면,

코드:

range=.10 1000         NB. 좌표축에서 10부터 1000까지 선분이 있다고 할 때
range intdiv 4           NB. 1/4로 사이즈를 축소하면
2 250
range-100                NB. 원래 선분을 좌로 100만큼 움직이면
_90 900
(range-100) intdiv 4       NB. 이동한 선분을 1/4로 축소하면
_23 225
diff=. |@-/
diff range intdiv 4           NB. 원래 축소한 선분의 길이
248
diff (range-100) intdiv 4   NB. 좌측으로 이동한 선분을 축소한 길이
248


하지만 자바에서는 마지막 결과가 247로 나옵니다. 0을 중심으로 나눗셈 연산이 비대칭적이기 때문입니다.

이런 이유로 제가 자바(및 C 등등)의 나눗셈 연산이 더 복잡하면서 일관성이 떨어진다고 하는 것입니다.

--김창준


p.s.

일상생활의 예를 추가합니다.

14 나누기 3을 이렇게 해석해 봅시다. 우선 세상에 만원짜리 돈만 있다고 가정합시다.

상금으로 14만원을 받았습니다. 사람은 셋입니다. 14를 3으로 나누면 몫이 4가 되고 나머지가 2가 됩니다. 무슨 이야기냐면 각자 4만원씩 갖고 가고 2만원이 수중에 남는다는 겁니다. 같이 술이라도 한 잔 마시러 가면 되겠네요.

이제는 -14 나누기 3을 생각해 보죠. 술집에서 계산을 했더니 14만원이 나왔습니다. 사람은 셋입니다. 얼마씩 내야할까요.  4만원씩 내면 돈이 모자라죠. 5만원씩 내면 일단 술값을 낼 수는 있네요. 대신 1만원이 남습니다. 빚으로 1만원이 남는 것이 아니고, 우리에게 1만원이 더 있는 것이죠. 역시 그 만원으로 어디 가서 음료수라도 마시면 되겠네요.

자 이제 생각해 봅시다. 돈을 내는 것, 모자라는 것은 음수입니다. 돈을 받는 것, 남는 것은 양수입니다. 14만원을 내야하는 데(-14) 세 명이 나누면(-14 / 3) 한 사람당 담당할 몫은 "5만원씩 내는 것(-5)"입니다. 그러고 나면 1만원이 남습니다.

이 방식이 파이썬의 방식이고, 자바 방식은 한 사람당 4만원씩 내고(-4), 그 결과 2만원의 부채(-2)가 남는다는 것이죠.
by 애자일컨설팅 | 2006-03-22 14:37 | 관련글(2) | 덧글(2)
트랙백 주소 : http://agile.egloos.com/tb/1666312
내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from PRAGMATIC.CO.. at 2006-03-22 16:03

제목 : 제목을 입력해 주세요
전혀 신경쓰지 않던 부분인데 이런 차이가 있었군요....more

Tracked from SoWhat? at 2006-05-09 18:02

제목 : 미처 생각지도 못했던....
미처 생각지도 못했던 지식 매번 감사드리며 트래ㅤㅂㅞㄺ~ 표면적 단순함과 심층적 단순함 : -5/4는 얼마일까 ...more

Commented by 퍼키 at 2006-03-22 20:15 x
역 사적인 배경에 대해서 하나 첨언하자면, 음수 나눗셈에 대해서는 초창기에는 별로 정의된 것이 없다가 최초로 표준으로 정의된 곳이 FORTRAN77 이라고 합니다. C 언어에서도 한참동안 표준에서 음수 나눗셈에 대한 뚜렷한 정책이 없어서 컴파일러 벤더마다 다르게 구현을 했다가 90년대에 와서 FORTRAN77을 쓰던 프로그래머들이 짠 옛날 코드들의 호환성과 투표권이 있는 대형 벤더들(FORTRAN방식의 나눗셈을 구현했던)의 입김으로 결국 FORTRAN 방식으로 결정되었다고 하는군요.. 다른 언어에 대해서는 http://caml.inria.fr/pub/ml-archives/caml-list/2001/11/b3c2be254757873bb585152f449853ba.en.html 여기~
자바로써는 C와 비슷한 문법에 대해서 다른 방식을 취하기가 껄끄러웠기 때문에 피할 수 없었을 듯 합니다.
Commented by 3DRicky at 2006-06-04 10:39 x
머리속이 맑아지네요 감사합니다.
마지막 예는 정말 멋집니다 ^ 0^)b
:       
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

Ubuntu Dapper에서 리모트 X 어플리케이션 실행하기


X 윈도우 시스템의 장점 중 하나라면 리모트 X 어플리케이션을 자신이 보고있는 디스플레이 장치 (X 서버가 설치되어 있는 컴퓨터의) 로 실행시킬 수 있다는 (?) 점이다. 
그 방법은 간단해서, X 서버가 설치되어 있는 컴퓨터에서

$ xhost + remote-host
라고 한 다음, 리모트 컴퓨터에서 -display 옵션을 사용하거나, DISPLAY 환경변수를 X 서버 주소를 설정해 주면, 실행되는 X 어플리케이션을 자신의 모니터로 학인 할 수 있었다.

그러나, 이런 방식은 보안상의 이유로 최근 배포판에서는 사용되지 않는 듯 하다. 그래서 우분투 대퍼에서는 리모트 X 어플리케이션을 실행하려면 ssh 의 X 프로토콜 포워딩 기능을 사용해야 한다.

방법은 간단하지만, 리모트 서버에 sshd 데몬이 설치/실행되어야 하고, xauth 패키지가 설치되어 있어야 한다.

X 서버가 실행되고 있는 컴퓨터에서 다음과 같이 실행한다.

myname@myserver:~$ ssh -X remote-id@remote-host
remote-id@remote-host's password:(remote-host의 remote-id 비밀번호 입력)

Linux remote-host 2.6.15-23-server #1 SMP Tue May 23 15:10:35 UTC 2006 i686 GNU/Linux

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Fri Jun 16 15:07:02 2006 from XX.XX.XX.XX
/usr/bin/xauth:  creating new authority file  /home/remote-id/.Xauthority
라고 한 다음, 리모트 컴퓨터에서 -display 옵션을 사용하거나, DISPLAY 환경변수를 설정한 다음 X 어플리케이션을 실행하면 자신의 컴퓨터에서 확인 할 수 있다.

* 2006년 7월 27일 추가
리모트 호스트가 솔라리스일 경우 안되어서 확인해 본 결과, 리모트 호스트쪽 sshd_config 파일의 내용이 다음과 같아야 한다. (붉은색 부분이 바뀐 부분)
XAuthLocation 항목은 xauth 프로그램 위치를 나타내는데, 굳이 없어도 잘 동작한다.
# Port forwarding
AllowTcpForwarding yes

# If port forwarding is enabled, specify if the server can bind to INADDR_ANY.
# This allows the local port forwarding to work when connections are received
# from any remote host.
GatewayPorts no

# X11 tunneling options
X11Forwarding yes
X11DisplayOffset 10
#XAuthLocation /usr/openwin/bin/xauth




* 도움 받은 글 : 우분투 포럼 Remote X Apps

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

우분투 Dapper 설정..


우분투 브리지에서 대퍼로 업그레이드 한 후 설정한 내용들..... 모두를 적은것은 아니고, 어떤 이유로 문서 내용과 조금 다르거나 특이한 내용만 적음.

파이어폭스 플러그인

나의 경우 일반 사용자로 파이어폭스를 실행하고 플러그인 설치를 하면 "실패"했다.
홈디렉토리 .mozilla 디렉토리 아래에 plugins 디렉토리를 만들어주고 다시 시작하면 제대로 설치된다.

EUC-KR

UTF8이 대세라곤 해도, 피치못할 사정(이라고 해야, 과거의 자원 사용때문인데, iconv로 바꾸자니, 몇몇 파일에서 중국 문자셋 big5가 발견.. -.ㅡ;)으로 일시적으로나마 EUC-KR을 사용하기로 결정
$ sudo locale-gen ko_KR.EUC-KR

skim

skim 관련 패키지를 모두 설치하였으면, 다음 명령을 실행한다.
$ sudo killall scim-gtk-launcher
$ sudo killall scim-panel-gtk
$ scim-panel-kde -d -f

위 명령이 제대로 실행되었다면 시스템 트레이에 skim 아이콘이 보인다.
이 아이콘을 누르고 configuration 메뉴를 선택하면 설정창이 뜨고,  설정창 메뉴에서 Fronted > General SCIM 선택 후 Other 탭을 누르면 Panel Program과 Config Module을 바꿀 수 있는 화면이 나온다.  여기서 Panel Program -> scim-panel-kde, Config Module -> kconfig 로 설정한다.
(참고 문서: The skim Handbook)

여기까지 하고 세션을 다시 시작하면 skim 을 사용 할 수 있게 된다.  위 핸드북을 보면 kde 세션 재 시작시 자동으로 skim 을 실행하려고 하면 Global Settings > Xwindows 메뉴에서 KDE 시작시 skim 자동실행을 체크하라고 되어있으나, 일단 Global Settings 는 Fronted로 바뀌었고 굳이, 체크하지 않아도 자동으로 skim은 시작되었다. 그러나, 핸드북에 있는대로 나중에 체크해 두었다.

3D Nvidia 비디오 카드 드라이버

대퍼 우분투 한글 가이드 하드웨어 섹션에 아주 잘 나와있다.
그대로 주욱~ 잘 따라하면 된다.
그러나,
  1. 새로운 드라이버를 이용가능하게 하려면 터미널에서 다음의 명령어를 실행하십시오:

$ sudo sudo nvidia-glx-config enable

나는 이게 안되더라..
내가 가지고 있는 비디오 카드가 아마..?? nvidia GeForce4 mx 440 일텐데...
하여간, 나는 nvidia-glx 패키지를 설치하고,
$ sudo sudo nvidia-xconfig
명령을 실행해서 성공했다.



멀티미디어 코덱과 Sun의 Java

이것 역시 마찬가지로  대퍼 쿠분투 한글 가이드 멀티미디어 코덱 섹션에 아주 잘 나와있다.
repository 리스트에서 universe 줄을 찾아서 'universe multiverse'로 바꿔주면 libxine-extracodes 패키지가 리스트에 나타난다.  아울러 sun-java-* 패키지 역시 나타난다.
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

가상 (virtual) IP 설정하기


  • 표시는 아래 줄과 연결됨을 의미함.
  • 특정 명령 실행 후 바뀌어진 부분은 굵은글꼴로 표시했음.

솔라리스에서 한 개의 네트워크 인터페이스 카드(NIC)에 여러개의 주소를 사용하기 위해서는 ifconfig 명령을 이용하여 가상(virtual) 인터페이스를 만들고 주소를 할당해 주어야 한다.

1. 시스템 부팅시 적용하기

시스템 시작시 자동으로 적용해 주기 위해서는 /etc/hosts 파일에 추가할 가상 주소의 호스트 이름을 적어주어야 한다.
#
# Internet host table
#
127.0.0.1           localhost
211.123.123.2    ns             # 원래 사용중인 주소 (211.123.123.x 는 가짜주소)
211.123.123.3    ns2           # 추가할 주소

그 다음 초기화 스크립트에서 인터페이스를 활성화 시키기 위해 사용하는 /etc/hostname.*[0-9] 파일을 만들어 주어야 하는데, 현재 하나의 NIC에 한 주소를 사용중이라면 /etc/hostname.hme0 파일만이 있을 것이다.  hme0 인터페이스 카드에 가상 주소를 부여하려고 한다면 /etc/hostname.hme0:1 이란 파일을 만들고 그 파일에 /etc/hosts 파일에서 추가한 가상 주소의 호스트 이름을 추가한다.

# pwd
/etc
# ls -alt hostname*
-rw-r--r--   1 root            6 Sep 21  2005 hostname.hme0
-rw-r--r--   1 root            6 May 25  21:00 hostname.hme0:1
# cat hostname.hme0
ns
# cat hostname.hme0:1
ns2

위 두 가지 작업이 끝난 다음, 시스템을 리부팅하고나서 ifconfig -a 명령을 실행하면 hme0 인터페이스 이외에 hme0:1 이란 인터페이스가 생겼고, IP 주소가 할당되어 있음을 확인 할 수 있을 것이다.

# /sbin/ifconfig -a
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843 mtu 1500 index 2
        inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63

시스템을 리부팅하지 않고 바로 적용하려고 한다면, 아래처럼 /etc/init.d/network restart 명령을 실행해도 된다. 그러나, shcat 이라는 명령을 찾지 못하고 호스트 이름을 'unknown'으로 설정해 버리는 문제가 있다.  이는 shcat 명령이 /etc/rcS 스크립트에 정의된 내장 함수이기 때문인데, 시스템 리부팅시엔 아무런 문제가 없지만, 일단 부팅된 다음 network 스크립트를 사용할 때는 shcat 명령을 사용할 수 없다. 따라서, 부팅하지 않고 network 스크립트를 이용해서 적용한 다음에는 반드시 hostname 명령을 이용해서 원래의 호스트 이름을 설정해야 한다.

# /etc/init.d/network restart
.... message ....

# hostname
unknown
# hostname ns
# hostname
ns

이상의 내용은 솔라리스 9 이하에서 작동한다. 솔라리스 10 에서는 초기화 과정이 바뀌었기 때문에 적용할 수 없다.

2. 수동으로 적용하기

수동으로 가상 주소를 위한 인터페이스를 만들고 주소를 할당하기 위해서는 ifconfig 명령만 잘 사용하면 된다.

일단, 가상 주소를 위한 인터페이스를 만들기 위해서는 plumb 옵션을 사용해야 한다.  plumb 옵션은 IP 주소를 할당하여 사용하기 위한 물리적인 인터페이스 카드 장치를 오픈한다.

# /sbin/ifconfig hme0:1 plumb
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843 mtu 1500 index 2
        inet 0.0.0.0 netmask 0

위 명령을 실행하고 나서 ifconfig -a 명령을 실행해 보면 hme0:1 이란 인터페이스가 추가되어 있음을 확인 할 수 있는데, 주소를 할당하지 않았기 때문에 0.0.0.0 으로 되어있는 것을 볼 수 있다.  hme0:1 인터페이스에 주소를 할당하는 방법은 아래와 같다.

# /sbin/ifconfig hme0:1 211.123.123.3 broadcast 211.123.123.63 netmask 
255.255.255.192 up
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843 mtu 1500 index 2
        inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63
여기까지 제대로 했다면, 이 시스템은 hme0 에 할당된 주소와 hme0:1 에 할당된 주소를 함께 사용 할 수 있다.  만일, 더 이상 hme0:1 주소를 더 이상 사용하지 않으려면 up 플래그와 반대되는 down 플래그를 사용하면 되는데, 이 명령 후 확인해 보면 hme0:1 인터페이스에 UP이라는 플래그가 사라졌음을 확인 할 수 있다.

# /sbin/ifconfig hme0:1 down
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e
hme0:1: flags=1000843<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 211.123.123.3 netmask ffffffc0 broadcast 211.123.123.63


만일, hme0:1 인터페이스 자체를 더 이상 사용 할 일이 없어서 지우려고 한다면 plumb 옵션과 반대되는 unplumb 옵션으로 아래와 같이 지울 수 있다.

# /sbin/ifconfig hme0:1 unplumb
# /sbin/ifconfig -a
lo0: flags=1000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843 mtu 1500 index 2
        inet 211.123.123.2 netmask ffffffc0 broadcast 211.123.123.63
        ether 8:0:20:ac:c1:8e



진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

스승의 날

5월 15일은 스승의 날이다.
날짜가 맘에 들지 않긴 하지만, 어쨋든 스승의 날이다. 우리 아버지는 초등학교 교사다.  내년이면 정년 퇴임인데도 여전히 평교사로 계신다. 아버지 동기는 물론이거니와, 후배분들 대부분이 교장으로 있지만, 아버지는 여전히 평교사이시다.

아버지는 내가 아주 어렸을 적 교통사고로 인해 한쪽 팔을 사용하지 못하신다.
내 기억 속에는 아버지가 두 팔을 사용하셨던 기억이 없다.  그저 사진 속에서 아기였던 나를 안고 계신 모습을 볼 수 있을 뿐...

2년 전 쯤 스승의 날이 가깝던 어느 날 일요일, 아버지는 아침부터 안절부절 하지 못하시며 점심때가 다 되어 주섬 주섬 옷을 챙겨 입으시고는 일요일임에도 학교에 출근하신다고 하며 서둘러 나가셨다.  나는 그냥 별로 대수롭지 않게 생각했는데, 어머니가 이야기 하신다.
"그냥 애들이 부르면, 가서 같이 있다고 오면 되지 뭘 그렇게 빼느냐?"고....
옛날 제자들이 스승의 날이라고 동창회를 하면서 스승이었던 아버지를 초대했던 것인데, 아버지는 한사코 거절하며 학교에 출근해야 한다고 핑계를 둘러대셨던 것이다.  모처럼 친정에 와 있던 누나나, 어머니나, 나는 그런 아버지의 행동을 이해하지 못하고 의아해했다. 그래서 재차 어머니 말에 동조하면서 가시라고 재촉하는데, 양말을 신으시던 아버지가 이야기를 하신다.
"나는 걔들 앞에 나서는게 떳떳하지 못해서 가지 않는거야!"
"뭐가 그렇게 떳떳하지 못하신데요?"
"그 때가 언제였나면, 내가 교통사고 당해서 아주 힘들었을 때 담임 했던 애들이야, 내가 힘드니까 애들한테 화만 내고 아주 사소한 일에도 애들 때리고... 잘 했던 애들이야 아무렇지 않았겠지만, 걔들 중에는 날 아주 안좋게 기억하는 애들도 있을거라구! 그런데 내가 어떻게 스승이라고 걔들 앞에 나설 수 있겠어.. 나는 도저히 그렇게는 못하겠어!"
그 말을 듣는 순간 눈이 찡해져 옴을 느꼈다.
그리고 뭐라고 나무라는 어머니한테,  "엄마나, 나나 아빠한테 뭐라고 할 게 못되네... 그냥 아빠가 판단하실 일이네.."

* * *
나는 한 때 아버지의 모습이 부끄러웠던 적이 있었다.
아버지와 함께 목욕탕엘 가거나 같이 조깅할 때 지나가는 사람들이나 목욕하는 사람들이나 이상한 눈으로 아버지를 바라보는 눈길이 싫었다.  나는 남들의 그런 눈이 나에게까지 꼿히는 것이 싫어서 아버지와 떨어져 있으려고 했다.  그랬던 그런 나의 기억을 내가 아직 어렸을 때이니까라고 위안해 보지만 여전히 너무나 부끄럽고 후회스럽다.

나는 가끔 그런 생각을 해본다. 내가 만일 아버지 처지였다면 어땠을까 하고...
그런 생각을 해 보면 아버지처럼 의연하게 묵묵히 생활 할 자신이 없다. 내가 아버지 옆에서 느꼈을 시선을 아버지는 언제나 온 몸으로 직접 느끼셨을게다.

예전에 아버지와 함께 근무하셨던 분으로부터 아버지 별명을 들은 적이 있다. 아버지 별명이 홍길동이시란다. 왜 그런 별명이 생겼느냐고 물었더니, 아버지는 언제나 남들보다 앞서서 걷고, 여기 계신가 하면 어느 새 저쪽에 가서 궂은 일을 하시고...
아버지랑 같은 학년이 되어서 일 하면 참 불편하단다.  자기들 보다 나이 드신 분이, 거기다 몸도
불편하신 분이 궂은 일에 앞장서시니 자기들이 영 불편하다는거다. 나는 그 말이 무슨 뜻인지 안다. 아버지랑 벌초를 가면 아버지는 거의 쉬시는 법이 없다.  몸이 불편하셔서 모든 일을 다 도맡아 하시지는 못해도 당신이 하실 수 있는 일은 처음부터 끝 까지 쉼 없이 하신다.  그러니, 그런 모습을 옆에서 지켜보는 내가 쉴 틈이 없다.  잠시 쉬노라면 아버지는 여전히 일 하고 계신데 맘이 편칠 않으니 그냥 그렇게 쉴 수 없는 것이다. 아마, 아버지를 홍길동이라 부르시는 그 분도 나와 같은 기분이셨을게다.

* * *

예전에는 느끼지 못했지만, 요즘들어 아버지가 부쩍 힘들어 하심을 느낀다. 내 기억에 아버지가 감기에 걸리신 모습을 본 적이 없는 것 같은데, 요즘엔 아주 가끔씩 아주 심하게 앓으신다.  그런 모습을 보면 아버지가 정말 나이가 드셨구나 하는 생각에 직접 표현하진 못하지만 마음이 싸아 하다.

우리 집 3남매 중 아버지와 가장 많은 트러블을 일으킨 사람이 바로 나다. 누나나 동생은 아마 내가 일으킨 트러블 때문에 감히 트러블을 일으킬 생각조차 못했을지도 모를 정도로. 그래서 그런지 몰라도, 나는 자다가도 가끔씩 아버지 생각에 갑자기 감정이 복받쳐 올라 주체하지 못하고 한참을 흐느끼며 우는 적이 있다.

언제부터였을까.
누군가 내게 가장 존경하는 인물이 누구냐고 물으면, 나는 우리 아버지와 어머니라고 대답한다. 세상에는 동서양을 막론하고 타인으로부터 존경을 한 몸에 받는 사람들이 많다. 하지만, 그들의 존경스럽다는 삶은 내가 직접 보고 느낀 것이 아니기에, 나는 내가 직접 보고 느껴온 아버지와 어머니의 삶을 존경하고 사랑한다.

나는 지금까지 태어나서 아버지나 어머니께 단 한번도 사랑한다는 소리를 해보지 못했다. 언젠가는 꼭 한번 "사랑합니다.", "존경합니다!"라는 말을 하고 싶은데, 아직까지 못했다. 더 늦기 전에 꼭 한번 하고 말리라...
"아버지 사랑합니다! 어머니 사랑합니다! 그리고 존경합니다. 오래오래 건강하게 사세요!"
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

CSS2 규격 한글 번역문 목록

이 문서의 원 주소는 http://trio.co.kr/webrefer/css2/cover.html#minitoc 입니다. 
이 문서의 저작권은 '1.5 저작권 경고'를 보세요.

W3C CSS2 규격 한글 번역문 Trio 홈페이지 
CSS 1 규격 HTML 4 규격 XHTML1.0 규격 XML 1.0 규격 HTML규격 스타일
CSS2 규격을 한국어로 번역한 것이다.
번역에 관련한 주석는 이 색상으로 표시하여 원문 번역 내용과 구분하였다.
이 번역은 MS Internet Explorer 4.0 이상, 해상도 800x600 이상, 스크린 256색상을 기준으로 작성하였다.
CSS 적용은 Explorer와 Netscape가 서로 잘 맞지 않는 것이 많으나 두가지를 다 적용하도록 하려면 표현이 잘 안되고 복잡하여 이해하기가 어려우므로 Explorer 를 기준으로 하였음을 이해하기 바란다.
또한 W3C에서 번역문에서 추가적인 기능을 부가하지 않도록 요청받아 설명에 추가하지 않고 가급적 원형 상태를 유지했다.




요약

이 규격은 카스케이딩 스타일 쉬트 레벨 2인 CSS2를 정의한다. CSS2는 저자들과 사용자들이 문서들의 구조(예: HTML과 XML 문서들)에 스타일(글꼴, 간격, 음성)을 첨부할 수 있게하는 스타일 쉬트 언어이다. 문서의 내용과 구별하여 문서들의 스타일을 표현하는 CSS2는 웹의 제작과 유지관리를 용이하게한다.

CSS2는 번역문 CSS1 위에 만들어 졌으며, 유효한 CSS1 스타일쉬트는 몇개의 예외를 제외하고는 거의 전부 CSS2 스타일쉬트에서 유효하다. CSS2는 메디아를 적용하는 스타일쉬트를 지원하므로, 제작자는 그들의 문서들을 보는 브라우저, 음성장치, 프린터, 점자장치, 핸드장치(handheld device) 등에 맞게 표현을 할 수 있다. 이 규격은 또한 내용의 위치, 다운로드할 수 있는 글꼴, 테이블의 배열, 국제화 지원 기능, 자동 카운터, 번호붙이기와 사용자 인터페이스와 관계된 일부 속성의 기능을 지원한다.

이 문서의 상태

이 문서는 W3C의 멤버와 관련자들의 검토를 거처 임원회의 승인을 받은 상태이므로 인용하고 사용하는데 안전하다. 이는 안정적 문서로서 조회하고 다른 문서에서 인용할 수 있다. W3C는 이 추천안 발전을 널리 보급하도록 장려한다.

현재의 W3C 추천안과 기술문서들의 목록들은 원문 http://www.w3.org/TR에서 찾을 수 있다.

공개된 CSS 기능에 관한 토론은 원문 www-style@w3.org에서 이루어 지고 있다.

얻을 수 있는 양식들

CSS2 규격은 다음 양식들이 있다:

HTML:
원문 http://www.w3.org/TR/1998/REC-CSS2-19980512
텍스트 화일:
원문 http://www.w3.org/TR/1998/REC-CSS2-19980512/css2.txt,
tar로 압축된 HTML:
원문 http://www.w3.org/TR/1998/REC-CSS2-19980512/css2.tgz,
zip으로 압축된 HTML:
원문 http://www.w3.org/TR/1998/REC-CSS2-19980512/css2.zip,
압축된 PostScript 화일:
원문 http://www.w3.org/TR/1998/REC-CSS2-19980512/css2.ps.gz,
PDF 화일:
원문 http://www.w3.org/TR/1998/REC-CSS2-19980512/css2.pdf.

만일 그들사이의 차잇점이 있으면, 원문 http://www.w3.org/TR/1998/REC-CSS2-19980512가 최종적으로 맞는 것으로 고려된다.

언어들

이 영어 규격이 유일하게 지정된 유효 버전이다. 그러나, 다른 언어로의 번역문은 원문 http://www.w3.org/Style/css2-updates/translations.html에서 알 수 있다.

오류들

이 규격의 알려진 오류들은 원문 http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html에 목록화 되었다. 이 문서에 오류가 발견되면 css2-editors@w3.org로 알려주기 바란다.

완전 목록

저작권  ©  1998 원문 W3C (원문 MIT, INRIA, Keio), 모든 권한 보유.


페이지 맨위로맨위Trio 홈페이지 문서( http://trio.co.kr/webrefer/css2/cover.html#minitoc)는 자유로이 연결 사용이 가능함.
(수정일 [object String])


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

tar gzip

자꾸 맨날 까먹어... 까먹을 것도 없는데 말이쥐...

$ gzip -d < file.tar.gz | tar xvf -


$ tar cvf - list... | gzip -c > file.tar.gz
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

/etc/system (계속 추가됨)

솔라리스 시스템에서 사용하는 /etc/system 내용을 요약함. 더 자세한 내용은 docs.sun.com 에서 확인해야 함. 여기있는 내용은 단순 참고용.

rlim_fd_max

프로세스에서 열 수 있는 파일 디스크립터 최대 숫자를 정의한다. (hard limit)
기본값은 65536

rlim_fd_cur
프로세스에서 열 수 있는 파일 디스크립터 숫자를 정의한다. (soft limit) 이 값은 hard limit
값을 넘을 수 없다.
기본값은 256 이며, 이 값은 쉘 상에서 'ulimit -n 값'으로 수정할 수 있으며 C언어에서 setrlimit 시스템 콜로도 수정 가능하다.

set rlim_fd_max=65536
set rlim_fd_cur=1024






진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크

테스트 합니다.


1. 이런 저런 이런 저런 우리나라 뭐라고 써야 할까.... 이것은 테스트용으로 올려보는 글입니다. 아자ㅤㅂㅛㅇ..!


  • 하나 둘 셋
  • 넷 둘 여섯
  • 다섯 열
ㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓ
이렇게 저렇게



으하하



1 4
2 5
3 6


제대로 잘 되는군요....


좋아!
그 말이라니깐..
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크