PyGTK 2.0 에서는
CList와 TreeView를 TreeView 위젯으로 함께 제공하는데 이에
따라서 TreeView에서는 Toggle 위젯을 구현할때
gtk.CellRendererToggle 를 사용하는데
이때 그냥 표시만 하면 Toggle 표시가 안되는데 토글 표시를 하려면
toggled 메소드를 CellRendererToggle에 걸어주고 liststore(또는 treestore)를 추가 인자로 넘겨주고
콜백 메소드에서 self, cell, path, liststore를 인자로 받아서
liststore[path][컬럼번호] = not liststore[path][컬럼번호]
를 적고 return을 해주면 toggle 기능이 되면서 체크박스가 선택되게 된다.
컬럼 헤더에서는 조금 다른 방법으로 이를 해결해야 한다.
2006/01/27
2006/01/26
윈도우 2000과 XP에서 재부팅 없이 IP 변경하기
인터넷이 보급되기 시작하면서 휴대용 노트북도 많은 장소에서 인터넷을
접속해야 하는 경우가 많이 늘어났다. 이에 IP를 변경하는 방법이 다양
해졌는데 다음과 같은 방법을 사용하면 IP를 쉽게 변경할 수 있다.
단) 윈도우 2000 이상에서만 동작한다.
--
우선 윈도우에서 인식되는 네트워크 장치명을 알아야 한다. 네트워크 장치명은
시작->설정->제어판->네트워크 연결
을 통해 들어가면 보이는 이름이 네트워크 장치명이다. 바꾸지 않고 기본값으로 두었다면
"로컬 영역 연결"
"무선 네트워크 연결"
로 보일 것이다. 내 컴퓨터는 무선 인터넷을 사용하기 때문에 무선 네트워크 연결이
포함되어 있다.
메인보드에 장착하는 네트워크 카드가 2개라면 "로컬 영역 연결 2"라는 이름이 추가되서
보일 것이다. 이름은 조절해도 상관없지만 그러지 않기를 바란다. 본인이 뭘로 바꿨는지
하루만 지나도 까먹기 때문이다.
이름을 어딘가 적어두었다던가 했다면 다음으로 넘어간다.
IP 변경 명령어 : netsh
netsh 의 명령줄의 예는 다음과 같다.
netsh -c int ip set address name="로컬 영역 연결" source=static addr=11.11.11.11 mask=255.255.255.0 gateway=11.11.11.1 gwmetric=0
명령어 분석 /:
name : 변경하고자 하는 interface (보통 "로컬 영역 연결" 이라고 되어있습니다.)
- 내 내트워크환경->오른쪽 클릭->속성 에서 확인할 수 있습니다.
addr : 변경하고자 하는 IP주소
mask : 변경하고자 하는 subnetmask
gateway : 변경하고자 하는 gateway
설정하고자 하는 IP가 DHCP 등일 경우 /:
netsh -c int ip set address name="로컬 영역 연결" source=dhcp
DNS 변경
앞서서는 ip address 만 변경했는데 DNS 변경은 다음과 같이 할 수 있다.
DNS 수동 설정
netsh -c int ip set dns name="로컬 영역 연결" source=static addr=111.111.111.11 register=PRIMARY
DNS 자동 설정
netsh -c int ip set dns name="로컬 영역 연결" source=dhcp
IP 세팅 Backup & Restoring
앞에서 설명한 내용이 이해되지 않으면 다음과 같은 방법을 사용해 설정을 저장해서 사용한다.
IP 세팅 백업 :
netsh -c interface dump > 사무실.txt
IP 세팅 복구 :
netsh exec 사무실.txt
txt 파일을 특정한 위치(자기가 좋아하는 위치나 관리상에 두는 위치)에 놓아두었을
경우 파일명 앞에 파일이 위치한 전체 경로를 기재하면 된다.
txt 파일은 수정하지 말아라
!!! 이 방법은 Windows 2000 이하에서 실행되지 않는다.
접속해야 하는 경우가 많이 늘어났다. 이에 IP를 변경하는 방법이 다양
해졌는데 다음과 같은 방법을 사용하면 IP를 쉽게 변경할 수 있다.
단) 윈도우 2000 이상에서만 동작한다.
--
우선 윈도우에서 인식되는 네트워크 장치명을 알아야 한다. 네트워크 장치명은
시작->설정->제어판->네트워크 연결
을 통해 들어가면 보이는 이름이 네트워크 장치명이다. 바꾸지 않고 기본값으로 두었다면
"로컬 영역 연결"
"무선 네트워크 연결"
로 보일 것이다. 내 컴퓨터는 무선 인터넷을 사용하기 때문에 무선 네트워크 연결이
포함되어 있다.
메인보드에 장착하는 네트워크 카드가 2개라면 "로컬 영역 연결 2"라는 이름이 추가되서
보일 것이다. 이름은 조절해도 상관없지만 그러지 않기를 바란다. 본인이 뭘로 바꿨는지
하루만 지나도 까먹기 때문이다.
이름을 어딘가 적어두었다던가 했다면 다음으로 넘어간다.
IP 변경 명령어 : netsh
netsh 의 명령줄의 예는 다음과 같다.
netsh -c int ip set address name="로컬 영역 연결" source=static addr=11.11.11.11 mask=255.255.255.0 gateway=11.11.11.1 gwmetric=0
명령어 분석 /:
name : 변경하고자 하는 interface (보통 "로컬 영역 연결" 이라고 되어있습니다.)
- 내 내트워크환경->오른쪽 클릭->속성 에서 확인할 수 있습니다.
addr : 변경하고자 하는 IP주소
mask : 변경하고자 하는 subnetmask
gateway : 변경하고자 하는 gateway
설정하고자 하는 IP가 DHCP 등일 경우 /:
netsh -c int ip set address name="로컬 영역 연결" source=dhcp
DNS 변경
앞서서는 ip address 만 변경했는데 DNS 변경은 다음과 같이 할 수 있다.
DNS 수동 설정
netsh -c int ip set dns name="로컬 영역 연결" source=static addr=111.111.111.11 register=PRIMARY
DNS 자동 설정
netsh -c int ip set dns name="로컬 영역 연결" source=dhcp
IP 세팅 Backup & Restoring
앞에서 설명한 내용이 이해되지 않으면 다음과 같은 방법을 사용해 설정을 저장해서 사용한다.
IP 세팅 백업 :
netsh -c interface dump > 사무실.txt
IP 세팅 복구 :
netsh exec 사무실.txt
txt 파일을 특정한 위치(자기가 좋아하는 위치나 관리상에 두는 위치)에 놓아두었을
경우 파일명 앞에 파일이 위치한 전체 경로를 기재하면 된다.
txt 파일은 수정하지 말아라
!!! 이 방법은 Windows 2000 이하에서 실행되지 않는다.
2006/01/20
PyGTK에서 TextView 에 다른 Widget 추가
PyGTK 2 에서 textview 위젯에 위젯 포함할때
TextView 위젯 안에는 다른 위젯을 포함할 수 있는데, 이때 위젯은 TextView에 간단히 추가되지 않는다.
추가할때 PyGTK의 객체 추가방법과는 조금 다른 방법으로 추가된다.
1. window 나 box 위젯에 객체 추가하기
add 메소드나 pack_start, pack_end 메소드 사용하기
add 메소드 사용
win.add(widget)
pack_start, pack_end 메소드 사용
hbox.pack_start(wiget, expand, fill, spacing)
vbox.pack_end(widget, expand, fill, spacing)
그런데 textview 위젯에서는 iter와 anchor 를 얻어서 생성해야 한다. 그리고 textview 에 위젯을 추가하는 메소드를 사용한다.
2. textview 위젯에 다른 위젯 추가하기
textview buffer 얻어오기
buffer = textview.get_buffer()
textview buffer의 iter 얻어오기
iter = buffer.get_start_iter()
textview buffer에 anchor 추가. # create_child_anchor 메소드는 iter 를 요구한다.
anchor = buffer.create_child_anchor(iter)
textview 에 추가할 위젯 생성
checkButton = gtk.CheckButton("생성된 파티션을 확인하시겠습니까?")
checkButton.show()
button을 textview 에 추가. # add_child_at_anchor 는 1번째 요소로 추가할 위젯을 받고, 2번째 요소로 anchor를 받는다.
textview.add_child_at_anchor(checkButton, anchor)
######### 참고 #########
이때 anchor가 미리 생성되어 있다면 anchor 추가 구문 대신 다음 구문을 써서 anchor를 받아올 수 있다. 물론 생성되어 있다는 가정하에서는 iter 를 얻어오는 구문 조차 필요하지 않다.
anchor = buffer.get_data("anchor")
########################
이제 실행된 textview에는 다른 위젯이 포함되어 있는걸 확인할 수 있다.
------------------------------------------ textview에 위젯을 더 추가해보기
textview에 위젯이 포함되어 있을때 위젯을 더 추가하려면 anchor를 한번더 생성해야 한다.
이때 anchor 생성은 anchor를 생성하는 구문만 한번 더 써주면 되며 iter를 생성할 생각이라면
get_start_iter() 메소드는 textview의 가장 첫번째 iter를 얻어오게 되므로 마지막에 위젯을
추가할 생각이라면 get_end_iter()를 이용해서 iter를 얻어와야 합니다.
-----------------------------------------------------------------------
TextView 위젯 안에는 다른 위젯을 포함할 수 있는데, 이때 위젯은 TextView에 간단히 추가되지 않는다.
추가할때 PyGTK의 객체 추가방법과는 조금 다른 방법으로 추가된다.
1. window 나 box 위젯에 객체 추가하기
add 메소드나 pack_start, pack_end 메소드 사용하기
add 메소드 사용
win.add(widget)
pack_start, pack_end 메소드 사용
hbox.pack_start(wiget, expand, fill, spacing)
vbox.pack_end(widget, expand, fill, spacing)
그런데 textview 위젯에서는 iter와 anchor 를 얻어서 생성해야 한다. 그리고 textview 에 위젯을 추가하는 메소드를 사용한다.
2. textview 위젯에 다른 위젯 추가하기
textview buffer 얻어오기
buffer = textview.get_buffer()
textview buffer의 iter 얻어오기
iter = buffer.get_start_iter()
textview buffer에 anchor 추가. # create_child_anchor 메소드는 iter 를 요구한다.
anchor = buffer.create_child_anchor(iter)
textview 에 추가할 위젯 생성
checkButton = gtk.CheckButton("생성된 파티션을 확인하시겠습니까?")
checkButton.show()
button을 textview 에 추가. # add_child_at_anchor 는 1번째 요소로 추가할 위젯을 받고, 2번째 요소로 anchor를 받는다.
textview.add_child_at_anchor(checkButton, anchor)
######### 참고 #########
이때 anchor가 미리 생성되어 있다면 anchor 추가 구문 대신 다음 구문을 써서 anchor를 받아올 수 있다. 물론 생성되어 있다는 가정하에서는 iter 를 얻어오는 구문 조차 필요하지 않다.
anchor = buffer.get_data("anchor")
########################
이제 실행된 textview에는 다른 위젯이 포함되어 있는걸 확인할 수 있다.
------------------------------------------ textview에 위젯을 더 추가해보기
textview에 위젯이 포함되어 있을때 위젯을 더 추가하려면 anchor를 한번더 생성해야 한다.
이때 anchor 생성은 anchor를 생성하는 구문만 한번 더 써주면 되며 iter를 생성할 생각이라면
get_start_iter() 메소드는 textview의 가장 첫번째 iter를 얻어오게 되므로 마지막에 위젯을
추가할 생각이라면 get_end_iter()를 이용해서 iter를 얻어와야 합니다.
-----------------------------------------------------------------------
2006/01/16
PyGTK 2.0에서의 리스트 구현
PyGTK 2.0에서는 원본 gtk에 들어있던 CList를 더 이상 구현하지 않을 생각에 있다.
따라서 PyGTK 2.0에서 CList와 같게 구현하려면 TreeView Widget에 ListStore를 쓰면 된다. 나머지는 컬럼 등에 관한
사항은 TreeView 에 관한 것을 쓰고 내부적인 것에 대해 트리 구현일 경우는
TreeStore 를 사용하고
CList 와 같은 일반 리스트를 구현할 경우
ListStore를 사용하면 된다.
잘 모를 경우 직접 실험해본다.
예제는 PyGTK 2.0 튜토리얼에 있는 BasicTreeView.py 파일을 참조하고 TreeStore와 관련된 것을 적절히 ListStore로 변경시킨다.
따라서 PyGTK 2.0에서 CList와 같게 구현하려면 TreeView Widget에 ListStore를 쓰면 된다. 나머지는 컬럼 등에 관한
사항은 TreeView 에 관한 것을 쓰고 내부적인 것에 대해 트리 구현일 경우는
TreeStore 를 사용하고
CList 와 같은 일반 리스트를 구현할 경우
ListStore를 사용하면 된다.
잘 모를 경우 직접 실험해본다.
예제는 PyGTK 2.0 튜토리얼에 있는 BasicTreeView.py 파일을 참조하고 TreeStore와 관련된 것을 적절히 ListStore로 변경시킨다.
2006/01/05
SYSLINUX의 Display 파일인 MSG 확장자 파일 포맷코드
지금 하고 있는 일이 리눅스 인스톨러를 만드는 일인데, ISOLINUX에 있는 확장자가 *.msg 인 파일에는 일반인이 이해할 수 없는 코드가 몇가지 있는데 이 코드에 대해서 다음과 같은 내용을 갖다놓는다.
이 코드를 VIM에서만 입력을 해보았는데 입력을 할 경우 Ctrl+V 를 먼저 누르고 입력해야 한다. (숫자 ^0 처럼 보이는 것은 영어 대문자 O이다. 터미널에선 구분이 잘 되지 않는다)
전문 : http://syslinux.zytor.com/faq.php#format
-----
{ What is the DISPLAY File Format? }
DISPLAY and function-key help files are text files in either DOS or UNIX format (with or without <CR>). In addition, the following special codes are interpreted:
<FF> <FF> = <Ctrl-L> = ASCII 12
Clear the screen, home the cursor. Note that the screen is filled with the current display color.
<SI><bg><fg> <SI> = <Ctrl-O> = ASCII 15
Set the display colors to the specified background and foreground colors, where <bg> and <fg> are hex digits, corresponding to the standard PC display attributes
0 = black 8 = dark grey
1 = dark blue 9 = bright blue
2 = dark green a = bright green
3 = dark cyan b = bright cyan
4 = dark red c = bright red
5 = dark purple d = bright purple
6 = brown e = yellow
7 = light grey f = white
Picking a bright color (8-f) for the background results in the corresponding dark color (0-7), with the foreground flashing.
Colors are not visible over the serial console.
<CAN>filename<newline> <CAN> = <Ctrl-X> = ASCII 24
If a VGA display is present, enter graphics mode and display the graphic included in the specified file. The file format is an ad hoc format called LSS16; the included Perl program "ppmtolss16" can be used to produce these images. This Perl program also includes the file format specification.
The image is displayed in 640x480 16-color mode. Once in graphics mode, the display attributes (set by <SI> code sequences) work slightly differently: the background color is ignored, and the foreground colors are the 16 colors specified in the image file. For that reason, ppmtolss16 allows you to specify that certain colors should be assigned to specific color indicies.
Color indicies 0 and 7, in particular, should be chosen with care: 0 is the background color, and 7 is the color used for the text printed by SYSLINUX itself.
<EM> <EM> = <Ctrl-Y> = ASCII 25
If we are currently in graphics mode, return to text mode.
<DLE>..<ETB> <Ctrl-P>..<Ctrl-W> = ASCII 16-23
These codes can be used to select which modes to print a certain part of the message file in. Each of these control characters select a specific set of modes (text screen, graphics screen, serial port) for which the output is actually displayed:
Character Text Graph Serial
------------------------------------------------------
<DLE> = <Ctrl-P> = ASCII 16 No No No
<DC1> = <Ctrl-Q> = ASCII 17 Yes No No
<DC2> = <Ctrl-R> = ASCII 18 No Yes No
<DC3> = <Ctrl-S> = ASCII 19 Yes Yes No
<DC4> = <Ctrl-T> = ASCII 20 No No Yes
<NAK> = <Ctrl-U> = ASCII 21 Yes No Yes
<SYN> = <Ctrl-V> = ASCII 22 No Yes Yes
<ETB> = <Ctrl-W> = ASCII 23 Yes Yes Yes
For example:
<DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
... will actually print out which mode the console is in!
<SUB> <SUB> = <Ctrl-Z> = ASCII 26
End of file (DOS convention).
<BEL> <BEL> = <Ctrl-G> = ASCII 7
Beep the speaker.
이 코드를 VIM에서만 입력을 해보았는데 입력을 할 경우 Ctrl+V 를 먼저 누르고 입력해야 한다. (숫자 ^0 처럼 보이는 것은 영어 대문자 O이다. 터미널에선 구분이 잘 되지 않는다)
전문 : http://syslinux.zytor.com/faq.php#format
-----
{ What is the DISPLAY File Format? }
DISPLAY and function-key help files are text files in either DOS or UNIX format (with or without <CR>). In addition, the following special codes are interpreted:
<FF> <FF> = <Ctrl-L> = ASCII 12
Clear the screen, home the cursor. Note that the screen is filled with the current display color.
<SI><bg><fg> <SI> = <Ctrl-O> = ASCII 15
Set the display colors to the specified background and foreground colors, where <bg> and <fg> are hex digits, corresponding to the standard PC display attributes
0 = black 8 = dark grey
1 = dark blue 9 = bright blue
2 = dark green a = bright green
3 = dark cyan b = bright cyan
4 = dark red c = bright red
5 = dark purple d = bright purple
6 = brown e = yellow
7 = light grey f = white
Picking a bright color (8-f) for the background results in the corresponding dark color (0-7), with the foreground flashing.
Colors are not visible over the serial console.
<CAN>filename<newline> <CAN> = <Ctrl-X> = ASCII 24
If a VGA display is present, enter graphics mode and display the graphic included in the specified file. The file format is an ad hoc format called LSS16; the included Perl program "ppmtolss16" can be used to produce these images. This Perl program also includes the file format specification.
The image is displayed in 640x480 16-color mode. Once in graphics mode, the display attributes (set by <SI> code sequences) work slightly differently: the background color is ignored, and the foreground colors are the 16 colors specified in the image file. For that reason, ppmtolss16 allows you to specify that certain colors should be assigned to specific color indicies.
Color indicies 0 and 7, in particular, should be chosen with care: 0 is the background color, and 7 is the color used for the text printed by SYSLINUX itself.
<EM> <EM> = <Ctrl-Y> = ASCII 25
If we are currently in graphics mode, return to text mode.
<DLE>..<ETB> <Ctrl-P>..<Ctrl-W> = ASCII 16-23
These codes can be used to select which modes to print a certain part of the message file in. Each of these control characters select a specific set of modes (text screen, graphics screen, serial port) for which the output is actually displayed:
Character Text Graph Serial
------------------------------------------------------
<DLE> = <Ctrl-P> = ASCII 16 No No No
<DC1> = <Ctrl-Q> = ASCII 17 Yes No No
<DC2> = <Ctrl-R> = ASCII 18 No Yes No
<DC3> = <Ctrl-S> = ASCII 19 Yes Yes No
<DC4> = <Ctrl-T> = ASCII 20 No No Yes
<NAK> = <Ctrl-U> = ASCII 21 Yes No Yes
<SYN> = <Ctrl-V> = ASCII 22 No Yes Yes
<ETB> = <Ctrl-W> = ASCII 23 Yes Yes Yes
For example:
<DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
... will actually print out which mode the console is in!
<SUB> <SUB> = <Ctrl-Z> = ASCII 26
End of file (DOS convention).
<BEL> <BEL> = <Ctrl-G> = ASCII 7
Beep the speaker.
2006/01/04
어머님이 입원하셨다는 메시지를 받아보곤...
지난 1월 2일 오전에 일어나자마자 휴대폰으로 날아든 비보.
어머니가 병원에 입원하셨다는 동생의 메시지였다. 어렸을 적 너무 많이 고생시키고 속 썩여드리던 나였기에 앞뒤 잴 요량없이 바로 회사 상사와 파견지에 연락을 하고 청주로 향했다.
부모님이 아프시고 병원에 입원하신 상황에 놀라지 않은 자식이 어디있고 걱정하지 않을 자식이 어디있단 말인가? 청주에 어머니가 입원해 계신 병원에 찾아가 병실을 묻고 병실에 가니 창백한 몸으로 누워계신 어머니 모습이 보였다.
아버지는 그전날부터 주무시지 못한 모양이신지 많이 피곤해보이셨고, 2분다 회사는 어떻게 하고 왔냐고 물어보시길래, 얘기하고 왔다고.. 그렇게 말했다.
또 지나서 하는 얘긴데, 어머니 모습을 볼때 순간 울컥했다. 전생이 어머니에게 죄가 없으실 분에게
왜 장마비 같은 병이 생기는 것인지... 부처님이 순간 너무 싫었다.
오전에 찍은 X-ray 사진 검토 결과를 받고 별다른 이상이 없다고 해서 그날 서울에 올라왔다.
"엄마 아프지 마세요.. 지금 많이 못해드리지만 더 잘해드리도록 노력할께요"
어머니가 병원에 입원하셨다는 동생의 메시지였다. 어렸을 적 너무 많이 고생시키고 속 썩여드리던 나였기에 앞뒤 잴 요량없이 바로 회사 상사와 파견지에 연락을 하고 청주로 향했다.
부모님이 아프시고 병원에 입원하신 상황에 놀라지 않은 자식이 어디있고 걱정하지 않을 자식이 어디있단 말인가? 청주에 어머니가 입원해 계신 병원에 찾아가 병실을 묻고 병실에 가니 창백한 몸으로 누워계신 어머니 모습이 보였다.
아버지는 그전날부터 주무시지 못한 모양이신지 많이 피곤해보이셨고, 2분다 회사는 어떻게 하고 왔냐고 물어보시길래, 얘기하고 왔다고.. 그렇게 말했다.
또 지나서 하는 얘긴데, 어머니 모습을 볼때 순간 울컥했다. 전생이 어머니에게 죄가 없으실 분에게
왜 장마비 같은 병이 생기는 것인지... 부처님이 순간 너무 싫었다.
오전에 찍은 X-ray 사진 검토 결과를 받고 별다른 이상이 없다고 해서 그날 서울에 올라왔다.
"엄마 아프지 마세요.. 지금 많이 못해드리지만 더 잘해드리도록 노력할께요"
최진실의 동생은 가수 박진영인가?
얼마전인 지난해 12월 31일 KBS에서 연기대상 시상식이 있었다. 그동안 연예가에서 MBC와의 계약 문제등 떠들석했던 최진실씨가 최우수상 및 네티즌상등을 받았다.
물론 그녀의 연기만으로 봤을때 그건 충분히 상을 받을 가치가 존재했다.

그렇다고 해서 내가 이야기하고 싶은 최진실씨의 연기는 아니고 그걸 보도한 신문기자의 무례한 행태를 이야기하고 싶어서다.
사진에 보면 분명 최진실씨의 동생은 최진영임에도 불구하고 박진영으로 적어두었다. 내가 그 기사를 보고 해당 기자에게 메일로 잘못 적었다고 알려주었음에도 불구하고 수정하지 않는 태도는 뭔가?
기자가 문젠가? 아니면 이미 지난 기사라서 그런것인가? 아니면 기자가 속한 회사 사장이 바보멍청이인가?
독자의 겸허한 비판은 수용하되, 잘못된게 있으면 받아들여야 하는데 이놈들은 그렇지 않으니 솔직히 열이 받는다. 이 일을 이런식으로 공론화 시켜야만 자기들의 잘못을 이해하겠나?
기사는 최소한 공정성과 진실을 이야기 하는 매체다. 최진실씨의 동생이 박진영이면 박진영의 동생은 정지훈씨라고 말하는 것과 어찌 다른가?
정신차려라. 이 머니투데이 놈들아!!
물론 그녀의 연기만으로 봤을때 그건 충분히 상을 받을 가치가 존재했다.

그렇다고 해서 내가 이야기하고 싶은 최진실씨의 연기는 아니고 그걸 보도한 신문기자의 무례한 행태를 이야기하고 싶어서다.
사진에 보면 분명 최진실씨의 동생은 최진영임에도 불구하고 박진영으로 적어두었다. 내가 그 기사를 보고 해당 기자에게 메일로 잘못 적었다고 알려주었음에도 불구하고 수정하지 않는 태도는 뭔가?
기자가 문젠가? 아니면 이미 지난 기사라서 그런것인가? 아니면 기자가 속한 회사 사장이 바보멍청이인가?
독자의 겸허한 비판은 수용하되, 잘못된게 있으면 받아들여야 하는데 이놈들은 그렇지 않으니 솔직히 열이 받는다. 이 일을 이런식으로 공론화 시켜야만 자기들의 잘못을 이해하겠나?
기사는 최소한 공정성과 진실을 이야기 하는 매체다. 최진실씨의 동생이 박진영이면 박진영의 동생은 정지훈씨라고 말하는 것과 어찌 다른가?
정신차려라. 이 머니투데이 놈들아!!
2005/12/29
요즘 연애부 기자들의 기억력은 새머리가 아닐까?
내가 좋아하는 연예인이 있어서 비교적 연예계 뉴스나 그 소식에
관심을 많이 갖는 편인데, 강수정 아나운서의 말 실수에 대해
어떤 기자가 기사를 썼는데 그이가 진행하는 강수정의 뮤직쇼(예전엔
김장훈의 뮤직쇼였다)가 방송하는 KBS 2FM인 Cool FM의 채널이
91.9Mhz 란다.
91.9Mhz는 수도권에서 MBC 표준 FM인데, 게다가 89.1Mhz.
Cool FM은 수도권이외에는 방송조차 안하는데 과연 이 연애부 기자는
글 쓸때 주파수 확인도 안하나? 하긴 기자보다 편집장이 더 문제지.
이러니까 우리나라 신문의 기사들이 항상 개판이지.
ㅋㅋ
관심을 많이 갖는 편인데, 강수정 아나운서의 말 실수에 대해
어떤 기자가 기사를 썼는데 그이가 진행하는 강수정의 뮤직쇼(예전엔
김장훈의 뮤직쇼였다)가 방송하는 KBS 2FM인 Cool FM의 채널이
91.9Mhz 란다.
91.9Mhz는 수도권에서 MBC 표준 FM인데, 게다가 89.1Mhz.
Cool FM은 수도권이외에는 방송조차 안하는데 과연 이 연애부 기자는
글 쓸때 주파수 확인도 안하나? 하긴 기자보다 편집장이 더 문제지.
이러니까 우리나라 신문의 기사들이 항상 개판이지.
ㅋㅋ
2005/12/28
일일 드라마 보기
거참 드라마 보기 힘들다. 내가 한국에서 정말 첫째나 둘째 가라면 서러울 정도로
거의 모든 드라마의 등장인물과 스토리, 미리보기 내용을 꾀차는데
마침 오늘 오후 8시 25분에 시작하는 KBS1 일일 드라마 별난여자 별난남자를
보려고 KBS에서 로그인해서 OnAir를 가동했는데. 어랏
왜 드라마가 안 나오지. 뭔가 좀 이상했다. KBS2에서 뉴스 좀 보다가 방송
편성표를 보는 순간 느꼈다.
"앗 KBS2가 아니라 KBS1이었다 ㅡ.ㅡ"
한 12분 남은 상태에서 보기 시작했는데 역쉬, 드라마는 글자로 읽어대는 것보다
영상으로 보는게 최고다.
우헥. 그나저나 조엘은 아직도 내 신경을 박박 긁는걸.
거의 모든 드라마의 등장인물과 스토리, 미리보기 내용을 꾀차는데
마침 오늘 오후 8시 25분에 시작하는 KBS1 일일 드라마 별난여자 별난남자를
보려고 KBS에서 로그인해서 OnAir를 가동했는데. 어랏
왜 드라마가 안 나오지. 뭔가 좀 이상했다. KBS2에서 뉴스 좀 보다가 방송
편성표를 보는 순간 느꼈다.
"앗 KBS2가 아니라 KBS1이었다 ㅡ.ㅡ"
한 12분 남은 상태에서 보기 시작했는데 역쉬, 드라마는 글자로 읽어대는 것보다
영상으로 보는게 최고다.
우헥. 그나저나 조엘은 아직도 내 신경을 박박 긁는걸.
원서 접수 안된게 교육부와 대학이 잘못한 말로만 외쳤던 교육혁신의 일환으로 볼 수 있나..
하루동안 대학에 원서 접수를 못하고 원수 접수 서버들이 다운당했다고 하는데
뉴스와 학부모들 학생들은 말로만 교육 혁신을 외치지 말고 서버 증설부터
하라고 하는데 그게 말이 되나.
하나. 원서접수 서버를 늘리면 되지 않냐고?
국내에서 원서 접수 회사는 총 3곳. 원서 접수는 매년 이 시기에만 집중적으로
이뤄질 뿐이고 그 이외의 기간에는 사실상 원서 접수가 거의 없다.
그런데 원서 접수 업체에 서버를 늘리라고? 매달 IDC에 나가는 비용은 어떻게 하라고?
둘. 원서 접수 업체는 대학에서 운영하지 않나?
대학들이 자기네들 돈 들여서 왜 남의 대학까지 원서 접수할 수 있는 시스템을 마련하겠나?
셋. IT 종사자들이 바보 같아서 그렇다고?
물론 시스템 설계가 엉성해서 그런일이 발생했다고 칩시다. 있을 수 있는 일이니까
그런데 왜 IT를 싸잡아서 비난할껀 뭐냐고? 몰려드는 사용자들을 어찌하라고?
결론. 그러니까 미리 어디갈지를 정해두던가. 대학놓고 저울질하면 우울한 세상밖에 더 만들어지겠나?
바보같은 한국인들 1편.(엇 그러고 보니 나도 한국인이네.. ㅋㅋ)
뉴스와 학부모들 학생들은 말로만 교육 혁신을 외치지 말고 서버 증설부터
하라고 하는데 그게 말이 되나.
하나. 원서접수 서버를 늘리면 되지 않냐고?
국내에서 원서 접수 회사는 총 3곳. 원서 접수는 매년 이 시기에만 집중적으로
이뤄질 뿐이고 그 이외의 기간에는 사실상 원서 접수가 거의 없다.
그런데 원서 접수 업체에 서버를 늘리라고? 매달 IDC에 나가는 비용은 어떻게 하라고?
둘. 원서 접수 업체는 대학에서 운영하지 않나?
대학들이 자기네들 돈 들여서 왜 남의 대학까지 원서 접수할 수 있는 시스템을 마련하겠나?
셋. IT 종사자들이 바보 같아서 그렇다고?
물론 시스템 설계가 엉성해서 그런일이 발생했다고 칩시다. 있을 수 있는 일이니까
그런데 왜 IT를 싸잡아서 비난할껀 뭐냐고? 몰려드는 사용자들을 어찌하라고?
결론. 그러니까 미리 어디갈지를 정해두던가. 대학놓고 저울질하면 우울한 세상밖에 더 만들어지겠나?
바보같은 한국인들 1편.(엇 그러고 보니 나도 한국인이네.. ㅋㅋ)
2005/12/27
조엘 온 소프트웨어
지금까지 나름대로 프로그래머라 항변하며 살아왔는데 내가 알고 지내는 한사람의
추천으로 읽게 된(순수하게 추천이었다) 조엘 온 소프트웨어는 지금 내 가치관을
뒤흔들고 있다.
뭐 정확하게 표현한다면 내가 없다고 해야 되나. 어쨌거나 지금 이 조엘이라는 작자는
내가 책을 보면서 가슴뛰는 감정을 느끼게 한 2번째 필자임에는 틀림없다.
1차는 누구냐고? 자바 개발자인 이창신씨다. 이창신씨는 아파치 자카르타 커미터로 활동하고 계시다.
이창신씨가 지은 자바 SDK 책이 이렇게 가슴뛰게 했었는데 오랜만에 귀한 진주를
만난 것 같다^^
다 읽으면 그대로 시행해 볼 수 있도록 노력해보자.
추천으로 읽게 된(순수하게 추천이었다) 조엘 온 소프트웨어는 지금 내 가치관을
뒤흔들고 있다.
뭐 정확하게 표현한다면 내가 없다고 해야 되나. 어쨌거나 지금 이 조엘이라는 작자는
내가 책을 보면서 가슴뛰는 감정을 느끼게 한 2번째 필자임에는 틀림없다.
1차는 누구냐고? 자바 개발자인 이창신씨다. 이창신씨는 아파치 자카르타 커미터로 활동하고 계시다.
이창신씨가 지은 자바 SDK 책이 이렇게 가슴뛰게 했었는데 오랜만에 귀한 진주를
만난 것 같다^^
다 읽으면 그대로 시행해 볼 수 있도록 노력해보자.
2005/12/22
답변형 게시판 알고리즘
어디에서나 흔히 볼 수 있는 웹 게시판 알고리즘이긴 하나 때때로 계속 만들기 귀찮아서 올려둔다.
다음과 같은 구조로 되어야 한다. 마지막에 올린 답글이 가장 최상위에 올라오게 된다.
새로운 글을 시작할 경우 family 값은 TABLE에서 max 값을 가져오고 childLevel은 1로 시작하게 된다.
이때 새로운 글에 답변이 달리면 자연이 childLevel의 값은 자기 부모글의 childLevel보다 1 높은 값을 지니게 된다. 이때 childLevel이 1인 부모글에 답글을 달게 되면 처음 작성된 답변글이 childLevel값이 나중에 달린 childLevel 값과 같아지게 되므로 누가 가장 먼저 나올지 며느리도 모른다.
따라서 이문제를 해결하기 위해선 마지막에 올린 답글이 가장 최상위에 올라와야 한다는 걸 생각하면 다음과 같은 방법으로 문제를 풀 수 있다.
table에 새로운 답변글을 하나 더 인서트하기 전에 html 폼에서 넘어온 family 값과 childLevel 의 값(이미 1이 더해진 값)을 받아서 table에 같은 family 값을 가지면서 childLevel보다 높은 값은 하나씩 더 하면 문제가 해결된다. 위의 알고리즘은 지금 설명한 내용을 기준으로 다음과 같은 형태를 지니게 된다.
단지 이렇게 할 경우 글을 family와 childLevel의 값으로 asc 혹은 desc 정렬를 하면 순차적으로 값은 가져올 수 있으나 얼마나 칸을 띄워야 하는지 이것에 대한 판단 기준이 없으므로 이 부분에 대해선 조금 더 생각해볼 필요가 있다.
혹은 childLevel에 1이 더해진 값이 이미 존재할 경우 update 하지 않는 방법도 있을 것이나 글쎄.. 이건 조금 더 생각해 볼일이다.
idx family childLevel Subject
1 1 1 글 1
3 1 2 [RE] 글 1
6 1 3 [RE][RE] 글 1
5 1 4 [RE] 글 1
2 2 1 글 2
4 2 2 [RE] 글 2
다음과 같은 구조로 되어야 한다. 마지막에 올린 답글이 가장 최상위에 올라오게 된다.
새로운 글을 시작할 경우 family 값은 TABLE에서 max 값을 가져오고 childLevel은 1로 시작하게 된다.
이때 새로운 글에 답변이 달리면 자연이 childLevel의 값은 자기 부모글의 childLevel보다 1 높은 값을 지니게 된다. 이때 childLevel이 1인 부모글에 답글을 달게 되면 처음 작성된 답변글이 childLevel값이 나중에 달린 childLevel 값과 같아지게 되므로 누가 가장 먼저 나올지 며느리도 모른다.
따라서 이문제를 해결하기 위해선 마지막에 올린 답글이 가장 최상위에 올라와야 한다는 걸 생각하면 다음과 같은 방법으로 문제를 풀 수 있다.
table에 새로운 답변글을 하나 더 인서트하기 전에 html 폼에서 넘어온 family 값과 childLevel 의 값(이미 1이 더해진 값)을 받아서 table에 같은 family 값을 가지면서 childLevel보다 높은 값은 하나씩 더 하면 문제가 해결된다. 위의 알고리즘은 지금 설명한 내용을 기준으로 다음과 같은 형태를 지니게 된다.
idx family childLevel Subject
1 1 1 글 1
7 1 2 [RE] 글 1
3 1 3 [RE] 글 1
6 1 4 [RE][RE] 글 1
5 1 5 [RE] 글 1
2 2 1 글 2
4 2 2 [RE] 글 2
단지 이렇게 할 경우 글을 family와 childLevel의 값으로 asc 혹은 desc 정렬를 하면 순차적으로 값은 가져올 수 있으나 얼마나 칸을 띄워야 하는지 이것에 대한 판단 기준이 없으므로 이 부분에 대해선 조금 더 생각해볼 필요가 있다.
혹은 childLevel에 1이 더해진 값이 이미 존재할 경우 update 하지 않는 방법도 있을 것이나 글쎄.. 이건 조금 더 생각해 볼일이다.
2005/12/20
NeverSpam 적용을 위한 자바스크립트 및 Anchor
---> 이메일 확인을 위한 페이지(HTML)에 삽입(ex. 방명록 리스트, 게시판 세부 화면)
<script language="'javascript'">
function AntiSpam(id) {
window.open('./antispamin.php?UniqId='+id,'AntiSpam','width=180,height=263,left=1,top=1');
}
</script>
---> 이메일이 보였던 곳에 삽입(ex. 방명록 리스트 안의 실제 이메일 링크)
<a href="'javascript:AntiSpam($Id)'">추출방지</a>
/----------------------------------------------------------------
JavaScript 인자 id는 이메일이 있는 테이블(방명록 테이블)에서
넘어온 게시물을 확인시켜주고자 하는 것이다.
예) table description
id name subject email
1 이상호 소은씨만 봐요 search5@gmail.com
이라고 한다면 방명록 리스트에선 1이라는 id 값이 넘어올 것이다. 물론 이때의 1은 방명록
리스트에서 각 게시물의 고유한 아이디로서 다중 게시판을 사용할 경우 게시판 ID도 포함할 수 있으며 email 을 확인하기 위한 고유의 게시물 아이디등을 추가할 수 있다.
-----------------------------------------------------------------/
NeverSpam은 크게 2가지의 실행 방식을 제공하는데 gd 방식을 추천한다. exe 방식은 외부에 보안문제를 일으킬 수 있기 때문이다.
다중 보드일 경우 (gd)antispamin.php에 넘길 UniqID 값은 기본적으로 하나이며, 이 값에 추가로 덧붙이지 않고 다른 변수를 하나 더 추가해서 넘기고 (gd)antispamout.php에서 uniqid 는 신경쓰지 않고 $Email에 값을 집어넣는 곳에서는 UniqID 및 추가로 넘긴 값을 DB로 쿼리를 던져 값을 얻어온다.
네버스팸 프로그램은 http://www.neverspam.or.kr 에서 얻을 수 있다.
ps.. > 네버스팸은 아직까지도 베타이며 ASP, PHP, JSP, Perl 버전으로 제작되어 있다. 파이썬 버전이 없고, 프로그램은 구조화가 잘 되어 있지 않기 때문에 Class 를 이용하는 프로그램에선 면밀히 분석해서 클래스를 제작해서 구현해야 할 것이다. 나 역시 클래스 버전으로 재포팅을 생각해보고 있다.(이렇게 해서 쓰고 있는 라이브러리가 있다.)
네버스팸 프로그램에선 크게 5개의 함수와 중복된 함수(내용은 다르다) 2개가 있는데, 이중 4개의 함수는 공통적으로 쓰인다.
공통 함수명 : IpTest(), BlockIpRelease(), BlockIf(), BlockIpList()
(gd)antispamin.php 에서만 쓰는 함수명 : DelBmp()
중복 함수명 : Start()
클래스 제작시 Start 함수는 이름을 조금씩 바꿔 제작한다.
궁금한 사항은 search5@gmail.com 으로 메일 주세요~(근데 이거 관심가지고 있는 사람이 얼마나 될까..)
<script language="'javascript'">
function AntiSpam(id) {
window.open('./antispamin.php?UniqId='+id,'AntiSpam','width=180,height=263,left=1,top=1');
}
</script>
---> 이메일이 보였던 곳에 삽입(ex. 방명록 리스트 안의 실제 이메일 링크)
<a href="'javascript:AntiSpam($Id)'">추출방지</a>
/----------------------------------------------------------------
JavaScript 인자 id는 이메일이 있는 테이블(방명록 테이블)에서
넘어온 게시물을 확인시켜주고자 하는 것이다.
예) table description
id name subject email
1 이상호 소은씨만 봐요 search5@gmail.com
이라고 한다면 방명록 리스트에선 1이라는 id 값이 넘어올 것이다. 물론 이때의 1은 방명록
리스트에서 각 게시물의 고유한 아이디로서 다중 게시판을 사용할 경우 게시판 ID도 포함할 수 있으며 email 을 확인하기 위한 고유의 게시물 아이디등을 추가할 수 있다.
-----------------------------------------------------------------/
NeverSpam은 크게 2가지의 실행 방식을 제공하는데 gd 방식을 추천한다. exe 방식은 외부에 보안문제를 일으킬 수 있기 때문이다.
다중 보드일 경우 (gd)antispamin.php에 넘길 UniqID 값은 기본적으로 하나이며, 이 값에 추가로 덧붙이지 않고 다른 변수를 하나 더 추가해서 넘기고 (gd)antispamout.php에서 uniqid 는 신경쓰지 않고 $Email에 값을 집어넣는 곳에서는 UniqID 및 추가로 넘긴 값을 DB로 쿼리를 던져 값을 얻어온다.
네버스팸 프로그램은 http://www.neverspam.or.kr 에서 얻을 수 있다.
ps.. > 네버스팸은 아직까지도 베타이며 ASP, PHP, JSP, Perl 버전으로 제작되어 있다. 파이썬 버전이 없고, 프로그램은 구조화가 잘 되어 있지 않기 때문에 Class 를 이용하는 프로그램에선 면밀히 분석해서 클래스를 제작해서 구현해야 할 것이다. 나 역시 클래스 버전으로 재포팅을 생각해보고 있다.(이렇게 해서 쓰고 있는 라이브러리가 있다.)
네버스팸 프로그램에선 크게 5개의 함수와 중복된 함수(내용은 다르다) 2개가 있는데, 이중 4개의 함수는 공통적으로 쓰인다.
공통 함수명 : IpTest(), BlockIpRelease(), BlockIf(), BlockIpList()
(gd)antispamin.php 에서만 쓰는 함수명 : DelBmp()
중복 함수명 : Start()
클래스 제작시 Start 함수는 이름을 조금씩 바꿔 제작한다.
궁금한 사항은 search5@gmail.com 으로 메일 주세요~(근데 이거 관심가지고 있는 사람이 얼마나 될까..)
2005/12/19
PyGTK로 여러 화면 애플리케이션 작성 코드 sample(class)
데이터들은 사전으로 넘기면 될듯 하다. 인스톨러 제작하면서 시도해본다.
---
#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk
class MultiWindow1:
def btNext(self, widget, data=None):
window2 = MultiWindow2()
self.window1.hide()
def __init__(self):
self.window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Next")
button.connect("clicked", self.btNext)
self.window1.add(button)
button.show()
self.window1.connect("destroy", lambda w: gtk.main_quit())
self.window1.show()
class MultiWindow2:
def btPrev(self, widget, data=None):
window2 = MultiWindow1()
self.window.hide()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Prev")
button.connect("clicked", self.btPrev)
self.window.add(button)
button.show()
self.window.connect("destroy", lambda w: gtk.main_quit())
self.window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
MultiWindow1()
main()
---
#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk
class MultiWindow1:
def btNext(self, widget, data=None):
window2 = MultiWindow2()
self.window1.hide()
def __init__(self):
self.window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Next")
button.connect("clicked", self.btNext)
self.window1.add(button)
button.show()
self.window1.connect("destroy", lambda w: gtk.main_quit())
self.window1.show()
class MultiWindow2:
def btPrev(self, widget, data=None):
window2 = MultiWindow1()
self.window.hide()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Prev")
button.connect("clicked", self.btPrev)
self.window.add(button)
button.show()
self.window.connect("destroy", lambda w: gtk.main_quit())
self.window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
MultiWindow1()
main()
PyGTK로 여러 화면 애플리케이션 작성 코드 sample(non-class)
가장 첫번째 줄은 리눅스 등의 유닉스 아류작에서만 사용된다.
---
#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk
def window_show(widget, data=None):
window2 = gtk.Window(gtk.WINDOW_TOPLEVEL)
window2.connect("destroy", lambda w: gtk.main_quit())
button = gtk.Button("이전")
button.connect("clicked", window_hide, window2, data)
window2.add(button)
button.show()
window2.show()
data.hide()
def window_hide(widget, data=None, data2=None):
data2.show()
data.hide()
window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("다음")
button.connect("clicked", window_show, window1)
window1.add(button)
button.show()
window1.connect("destroy", lambda w: gtk.main_quit())
window1.show()
gtk.main()
---
#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk
def window_show(widget, data=None):
window2 = gtk.Window(gtk.WINDOW_TOPLEVEL)
window2.connect("destroy", lambda w: gtk.main_quit())
button = gtk.Button("이전")
button.connect("clicked", window_hide, window2, data)
window2.add(button)
button.show()
window2.show()
data.hide()
def window_hide(widget, data=None, data2=None):
data2.show()
data.hide()
window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("다음")
button.connect("clicked", window_show, window1)
window1.add(button)
button.show()
window1.connect("destroy", lambda w: gtk.main_quit())
window1.show()
gtk.main()
믿어? 믿지 않아?
동시대의 사람들이 자주 쓰는 말이 어떤 것이 있을까? 지난 토요일 늦은 7시에 친구들을
만났다.
뭐.. 이 녀석들 말로만 친구지.. 연락은 지네들끼리 하질않나.. 게시판에 글 남기라면 남기지도
않지.. 너무하는 것들 아냐.
뭐 그런 녀석들이래도 어쩔 수 없다. 같이 초등학교 나와놓고서 딴말할 수 없는 것 아닌가?
가만.. 그날 누가 나왔었지..
김복래, 김현숙, 서지명, 박득규, 송권호, 김한중, 은현준, 이경치, 안병찬, 나~
그래 이렇게 나왔었네.. 다들 오랜만에 보는거라서.. 수다도 많이 떨줄 알았는데.. 역시나더군..
어떻게 새벽 4시까지 수다를 떠냐. 이것들아
물론 나야.. 몇마디에서 멈췄다.. 우헥... 니가 그래놓고도 천하의 수다쟁이란 말야??(사실 난 수다쟁이가 아니다)
그건 그렇구.. 오랜만에 본 복래는 9급 공무원이 되었고.. 득규는 카센터에 있고.. 권호는 하이닉스 다니고.. 한중이는 KT 인터넷 관리팀에 있고.. 병찬이는.. 해경이 될 몸이시고..
하긴 이 나이쯤 되면 다들 어느정도 자리잡을때가 되었지(내 나이는 24..)
나도 남들처럼 군대를 제대했어야 했는데. 너무 귀찮았다 ㅡ.ㅡ;;;
아무튼.. 오늘도 늘.. 행복한 시간...
ps... 미움..그리움..행복함..사랑해... 지금부터야. 가자!! 미래로.
만났다.
뭐.. 이 녀석들 말로만 친구지.. 연락은 지네들끼리 하질않나.. 게시판에 글 남기라면 남기지도
않지.. 너무하는 것들 아냐.
뭐 그런 녀석들이래도 어쩔 수 없다. 같이 초등학교 나와놓고서 딴말할 수 없는 것 아닌가?
가만.. 그날 누가 나왔었지..
김복래, 김현숙, 서지명, 박득규, 송권호, 김한중, 은현준, 이경치, 안병찬, 나~
그래 이렇게 나왔었네.. 다들 오랜만에 보는거라서.. 수다도 많이 떨줄 알았는데.. 역시나더군..
어떻게 새벽 4시까지 수다를 떠냐. 이것들아
물론 나야.. 몇마디에서 멈췄다.. 우헥... 니가 그래놓고도 천하의 수다쟁이란 말야??(사실 난 수다쟁이가 아니다)
그건 그렇구.. 오랜만에 본 복래는 9급 공무원이 되었고.. 득규는 카센터에 있고.. 권호는 하이닉스 다니고.. 한중이는 KT 인터넷 관리팀에 있고.. 병찬이는.. 해경이 될 몸이시고..
하긴 이 나이쯤 되면 다들 어느정도 자리잡을때가 되었지(내 나이는 24..)
나도 남들처럼 군대를 제대했어야 했는데. 너무 귀찮았다 ㅡ.ㅡ;;;
아무튼.. 오늘도 늘.. 행복한 시간...
ps... 미움..그리움..행복함..사랑해... 지금부터야. 가자!! 미래로.
2005/12/12
이소은 4집 애인..
한번 들으면 슬픈 멜로디로 나의 감정을 적셔오는 노래다. 언제부터인지
소은씨의 노래는 늘.. 내 감정에 살아 숨쉬고 있는 느낌이다^^
--
헤어진지 꽤나 오래됐는데 아직도 누가 내게 물으면
애인있다 하죠
사랑하는 사랑이 애인이잖아
내곁에 머무르지 않아도 애인인거잖아
나혼자 걸어도 나 혼자 웃어도
니가 곁에 있는 듯이 그렇게 생각해
내마음이 너를 놓치 못하는 걸
아직도 그 자리에 남아서
맴돌고 있는걸
우리다시 그 어떤 예쁜 기억도
만들수 없다는 거 알지만 그래도 괜찮아
눈을 감고 니 어깨에 기대울던
따뜻한 지난 겨울 만으로 웃을 수 있는걸
나혼자 걸어도 나 혼자 웃어도
니가 곁에 있는 듯이 그렇게 생각해
내 마음은 너를 버릴 수 없어
너를 잊어버리려 하지만 그럴 수가 없어
그럴 수가 없어
소은씨의 노래는 늘.. 내 감정에 살아 숨쉬고 있는 느낌이다^^
--
헤어진지 꽤나 오래됐는데 아직도 누가 내게 물으면
애인있다 하죠
사랑하는 사랑이 애인이잖아
내곁에 머무르지 않아도 애인인거잖아
나혼자 걸어도 나 혼자 웃어도
니가 곁에 있는 듯이 그렇게 생각해
내마음이 너를 놓치 못하는 걸
아직도 그 자리에 남아서
맴돌고 있는걸
우리다시 그 어떤 예쁜 기억도
만들수 없다는 거 알지만 그래도 괜찮아
눈을 감고 니 어깨에 기대울던
따뜻한 지난 겨울 만으로 웃을 수 있는걸
나혼자 걸어도 나 혼자 웃어도
니가 곁에 있는 듯이 그렇게 생각해
내 마음은 너를 버릴 수 없어
너를 잊어버리려 하지만 그럴 수가 없어
그럴 수가 없어
주말의 기말시험..
학교를 벌써 5년째 다니고 있다.. 사실 군대를 연기하기 위해서
다니는 거라서 학점엔 그다지 신경쓰고 있지 않지만 이제 관리의 필요성을
느끼고 있다.
쌍권총의 압박이라고 해야 할까?? 가히 쌍권총의 압박은 도대체 매해 이러니
살맛이 안나기도 할려고 한다. 그건 그렇고
주말에 갑작스레 변경된 시험장소로 향했다. 원래 학교는 한양대 앞에 있는
덕수정보산업고등학교. 그런데 무슨 일인지 시험 며칠전에 성동여자실업고등학교로
바뀌어 버린탓에 적응을 못하고 있었다..(머리가 요즘 아프다)
시험일인 11일 오전 9:40가 넘어서야 일어난 난 아뿔사를 외치며, "아 이게 아니야"
라는 소리를 연발하기 시작했다. 다음 시험 시간이 10:30분 부터 였기 때문에 급했다.
허겁지겁 씻는둥 마는 둥 학교 차를 몰고 시험장으로 향했다. 어떻게 잘 도착하고
주차도 문제없이 끝내고 교실을 막 찾아 들어갔더니 바로 시험.. 으악....
공부를 못했으니 성적이 안나오리나는 건 당연지사가 아닐까나.
시험 과목 자체가 1, 2학년껄 보다보니 오전, 오후에 두루 걸쳐 있었다.
결과적으로 플래너에 시험시간에 늦지 않게 준비하자는 빈 말이 되어버렸다. 이에는 내가
한게으름하는 탓도 있었지만 우리학교 전산 시스템이 모조리 activex 를 사용해 버리는 탓에
리눅스를 사용하는 내가 접속할 수 없었다.
참 아쉬운 일이 아닐 수 없었지만 그냥 참기로 했다. 내가 신도 아니고...
정오에 간단하게 식사를 챙겨먹고 교재를 가져가지 않고 가져온 PyGTK 튜토리얼을
뚫어지게 시험보는 내내 빈 시간때마다 챙겨보기 시작했다. 내 장점은 여기에 있는
거겠지만..
그렇게 1과목을 놓친 5과목을 보는 둥 마는 둥 하고 나오고 같은 장소는 아니지만 대학
동기 누나를 만나 책 사고 밥 먹고 나왔다.
그러고 보니 종로 영풍문고는 15분당 500원이라는 아주 저렴한 주차비였었다.
담에 종로 갈일 생기면 영풍빌딩에 묶어나야 겠다.(근데 종로까지 차를 타고 납실일이 있을까?)
오늘도 분주하게 시작한 하루. 성과있는 하루를 만들어내기 위해 노력하자!
다니는 거라서 학점엔 그다지 신경쓰고 있지 않지만 이제 관리의 필요성을
느끼고 있다.
쌍권총의 압박이라고 해야 할까?? 가히 쌍권총의 압박은 도대체 매해 이러니
살맛이 안나기도 할려고 한다. 그건 그렇고
주말에 갑작스레 변경된 시험장소로 향했다. 원래 학교는 한양대 앞에 있는
덕수정보산업고등학교. 그런데 무슨 일인지 시험 며칠전에 성동여자실업고등학교로
바뀌어 버린탓에 적응을 못하고 있었다..(머리가 요즘 아프다)
시험일인 11일 오전 9:40가 넘어서야 일어난 난 아뿔사를 외치며, "아 이게 아니야"
라는 소리를 연발하기 시작했다. 다음 시험 시간이 10:30분 부터 였기 때문에 급했다.
허겁지겁 씻는둥 마는 둥 학교 차를 몰고 시험장으로 향했다. 어떻게 잘 도착하고
주차도 문제없이 끝내고 교실을 막 찾아 들어갔더니 바로 시험.. 으악....
공부를 못했으니 성적이 안나오리나는 건 당연지사가 아닐까나.
시험 과목 자체가 1, 2학년껄 보다보니 오전, 오후에 두루 걸쳐 있었다.
결과적으로 플래너에 시험시간에 늦지 않게 준비하자는 빈 말이 되어버렸다. 이에는 내가
한게으름하는 탓도 있었지만 우리학교 전산 시스템이 모조리 activex 를 사용해 버리는 탓에
리눅스를 사용하는 내가 접속할 수 없었다.
참 아쉬운 일이 아닐 수 없었지만 그냥 참기로 했다. 내가 신도 아니고...
정오에 간단하게 식사를 챙겨먹고 교재를 가져가지 않고 가져온 PyGTK 튜토리얼을
뚫어지게 시험보는 내내 빈 시간때마다 챙겨보기 시작했다. 내 장점은 여기에 있는
거겠지만..
그렇게 1과목을 놓친 5과목을 보는 둥 마는 둥 하고 나오고 같은 장소는 아니지만 대학
동기 누나를 만나 책 사고 밥 먹고 나왔다.
그러고 보니 종로 영풍문고는 15분당 500원이라는 아주 저렴한 주차비였었다.
담에 종로 갈일 생기면 영풍빌딩에 묶어나야 겠다.(근데 종로까지 차를 타고 납실일이 있을까?)
오늘도 분주하게 시작한 하루. 성과있는 하루를 만들어내기 위해 노력하자!
2005/12/09
ldconfig에서 에러나면??
회사에서 쓰고 있는 데비안 리눅스에서 다음과같은 에러가 발생하였다.
# apt-get dist-upgrade
...
Setting up zlib1g (1.2.2-4.sarge.2) ...
ldconfig: Writting of cache data failed: No space left on device
dpkg: error processing zlib1g (--configure):
subprocess post-installation script returned error exit status 1
Error were encountered while processing:
zlib1g
여기에서 보이는 바와 같은 에러는 / 파티션이 100% 다 썼을때 나타나는 현상이다.
해결하려면 / 파티션의 공간을 넓혀주어야 하나 LVM이 아닌경우엔 다시 설치해야 하는
치명타가 있다.
--원문
# apt-get dist-upgrade
...
Setting up zlib1g (1.2.2-4.sarge.2) ...
ldconfig: Writting of cache data failed: No space left on device
dpkg: error processing zlib1g (--configure):
subprocess post-installation script returned error exit status 1
Error were encountered while processing:
zlib1g
여기에서 보이는 바와 같은 에러는 / 파티션이 100% 다 썼을때 나타나는 현상이다.
해결하려면 / 파티션의 공간을 넓혀주어야 하나 LVM이 아닌경우엔 다시 설치해야 하는
치명타가 있다.
--원문
That's most likely because your root partition (/) is full, and it's
trying to write to the /etc directory - which is included in your root
partition.
You could either delete something you don't need on the root partition
to give yourelf some wiggle room (as previously mentioned), or you could
consider adding some disk space to the root partition by resizing it.
Looks like you have plenty of elbow room on the drive (especially in
your /home partition) to do the resizing.
You can get a better look at your overall partition layout by running
'fdisk -l /dev/hda' (as root), and you can get the output into a text
file with 'fdisk -l /dev/hda > filename'
정말 어이없다.. 리눅스 또 깔아야 하다니.. 지겹다..
피드 구독하기:
글 (Atom)