리눅스 컴퓨터에서는 하드웨어의 사양을 확인하기가 여간 불편한 것이 아니다. 윈도우처럼 GUI (Graphic User Interface) 방식의 장치 관리자(device manager) 같은 것이 있으면 좋을 텐데, 터미널에서 아래와 같이 일일이 명령어를 쳐야 하니 말이다.

cat /proc/cpuinfo
cat /proc/meminfo
more /etc/sysconfig/hwconf | more
df -lh

예를 들어 내 비디오 카드 사양을 확인하고 싶은데, 명령어를 모른다면 컴퓨터 뚜껑을 열어, 직접 눈으로 확인해야 된단 얘기가 아닌가? 다행히도 인터넷을 뒤져 보니, 몇 군데서 Hardware Lister (lshw) 를 추천하는 것이다. Plain text format 이나 html, xml 또는 그림창으로 컴퓨터의 장치를 보여줄 수 있는 프로그램인데, 크기도 작고 꽤 유용하다.

1. 설치하기

yum으로 설치가 안 되어서, rpm 패키지를 Dag Wieers의 사이트에서 다운받아서 설치하였다. 아래의 명령어를 터미날에 입력하여 설치하였다.

wget http://dag.wieers.com/packages/lshw/lshw-2.12-1.el5.rf.i386.rpm
wget http://dag.wieers.com/packages/lshw/lshw-gui-2.12-1.el5.rf.i386.rpm
rpm -ivh lshw-2.12-1.el5.rf.i386.rpm
rpm -ivh lshw-gui-2.12-1.el5.rf.i386.rpm

2. 사용하기

터미날에서 /usr/sbin/lshw-gui 또는 /usr/sbin/lshw -X 를 입력하면 아래와 같이 새 창이 뜨면서 컴퓨터의 하드웨어 정보를 알려준다.

Hardware Lister (lshw)로 비디오 카드 사양 확인한 이미지.


3. 메뉴바에 프로그램 등록하기

위의 그림창으로 하드웨어 정보를 확인할 수 있어서 좋으나, 여전히 터미널에서 명령어를 입력해야 하는 것이 불편하다. 윈도우에서처럼 메뉴바에 프로그램을 등록해서 사용해 보자. 우선 관리자 계정으로 로그인하여 lshw.desktop 이름으로 desktop entry file을 아래와 같이 만든다. 마지막 줄의 CTRL-D는 자판의 Ctrl 키와 D키를 동시에 눌러서 파일의 끝(end of file, EOF)임을 표시하는 것이다.

cat > /usr/local/share/applications/lshw.desktop
[Desktop Entry]
Name=Hardware Lister
GenericName=Hardware Configuration
Comment=Provide detailed informations on the hardware configurations.
Categories=GTK;Application;System;Monitor;
Exec=/usr/sbin/lshw-gui
Terminal=false
Type=Application
Icon=lshw-logo-32x32.png
Encoding=UTF-8
CONTROL-D

그런 다음, 메뉴 정의 파일(Menu definition file)인 /etc/xdg/menus/applications.menu을 열어서 lshw.desktop 과 관련하여 (굵은 체로 표시된) 한 줄을 아래와 같이 삽입한다.

  <!-- System Tools-->
  <Menu>
    <Name>System Tools</Name>
    <Directory>System.directory</Directory>
    <Include>
      <And>
        <Category>System</Category>
        <Not><Category>Screensaver</Category></Not>
        <Not><Category>X-Red-Hat-ServerConfig</Category></Not>
        <Not><Category>SystemSetup</Category></Not>
        <Not><Category>Monitor</Category></Not>
      </And>
      <Filename>lshw.desktop</Filename>
    </Include>

    <Exclude>
    </Exclude>
  </Menu>   <!-- End System Tools -->
 

마지막으로 오른쪽에 보이는 아이콘을 lshw-logo-32x32.png란 이름으로 아이콘 폴더에 저장한다. 아이콘은 일반적으로 /usr/share/icons/ 디렉토리 아래 테마별로 그리고 아이콘 사이즈 별로 저장이 되나, 본인은 그냥 32x32 크기의 아이콘만 /usr/local/share/pixmaps/에다가 바로 저장하였다.

자, 이제 메뉴바를 확인해 보면 아래 그림에서 보듯이 Hardware Lister가 메뉴바에 등록된 것을 알 수 있다.




참고. GNOME 2.14 Desktop System Administration Guide
Posted by 참향그늘
,
내 서랍을 열어보면 중, 고등학교 때 손으로 쓴 조그만 영어 단어장이 먼지를 쓴 채 구석에 있다. 이제는 오래 되어 색도 바랬지만, 아직도 영어 단어를 외우느라 고생했던 기억은 생생하다. 이제 나이도 들었지만 아직도 영어 앞에서 쩔쩔매는 건 변함이 없다. 아니, 나이가 들어서 더 힘든가 보다. 뇌가 완전히 휘발성 메모리가 되어 버린 건지, 자고 일어나면 어제 점심 때 뭐 먹은지도 가물가물하다. 그러고 보면 최근에 지갑도 세 번 정도 잃어 버렸다가 찾은 경험이 있고, 눈에 쓰던 안경은 어디다 뒀는지 2주 째 못 찾고 있다. 그렇게 나도 늙어가나 보다 하고 있을 때, 나이 드신 어머니께서 구청에서 개설된 영어 강좌를 1년 넘게 다니신 것을 알게 되었다. 그 모습에 자극이 되어 뒤늦게 다시금 영어 단어장이나 만들어 볼까 한 것이 이 모든 일의 시작이다.

그래도 디지털 세상인데, 예전처럼 조그만 종이에 쓰기는 그렇지 하면서 인터넷을 뒤져보았다. 웹 베이스로 영어 단어장을 쓸 수 있는 프로그램이나 툴이 없을까 해서다. 외국어를 공부할 때, 반복 학습만한 것이 없기에 언제 어디서든 인터넷만 연결되면 영어 단어장을 띄워 볼려니 웹 기반이어야 하는데, 이 놈의 검색 실력이 엉망인지 내 입맛에 맞는 걸 당최 찾을 수가 없는 것이다. 그렇게 한 두 시간 소일하다 Google Spreadsheet에 눈이 간다. 그렇지, 요 놈이면 어찌 되겠구나 싶어 작업을 한 결과가 아래의 이미지이다.


영어 단어장을 만든 과정을 간략히 설명하면 다음과 같다.
  1. 우선, 모르는 단어들을 Google Spreadsheet에 입력을 한다.
  2. 각 단어들을 Google 사전으로 링크를 건다. 예를 들어 aficionado를 클릭하면 아래와 같이 새 창이 뜨면서, 해당 단어의 뜻이 설명된다.
  3. 단어들은 나중에 알파벳 순으로 정렬을 한다.
  4. 이 문서의 작성이 끝나면 웹페이지로 출간한다. (Publish as a web page.)
  5. 이 때 주어지는 고유한 웹 주소를, 나중에 손쉽게 방문하기 위해서 Bookmark Toolbar에 등록한다.
  6. 휴대폰으로도 이 웹 주소로써 단어장 접속이 가능하다.

    휴대폰으로 접속한 단어장 이미지


한 가지 불편한 점은 일일이 단어들 사전 링크를 타이핑 해야 하는 것인데, 이거 단어만 넣으면 자동으로 링크되도록 하는 방법 없을까? 암튼, 전혀 멋지지는 않지만, 쉽사리 쓰고 고치고 어디서나 접속 가능한, 실속있는 나만의 영어 단어장이 생긴 셈이다. 이제 부지런히 외우기만 하면 되는데...

참, 누리꾼들 중에서 혹시나 쓸만한 영어 단어장 프로그램 아시는 분 있으면 추천해 주시길 바랍니다.
Posted by 참향그늘
,
Tcl을 사용하다 보면, 때때로 Tcl에서 간단한 벡터나 행렬 연산이 되면 좋겠다하고 생각하곤 했다. 예를 들어 두 행렬 간의 합이나 곱 구하기, 행렬의 행과 열을 치환하기, 두 벡터 간의 내적이나 외적 구하기, 또는 주어진 벡터 회전하기 등등을 하기 위해서 일일이 관련 함수를 만드는 것이 이만저만한 시간 낭비가 아닐 수 없다. 다행히도 Tcl 표준 라이브러리인 Tcllib 덕분에, Matlab 에 비할 바는 아니지만, Tcl에서도 선형대수와 관련된 기본적인 함수들을 사용할 수 있다.

1. 설치하기

우선 Tcl 라이브러인 Tcllib를 http://www.tcl.tk/software/tcllib/ 에서 내려 받은 다음, 아래의 일련의 명령어들을 실행함으로서 라이브러리를 설치한다. 이 때, 관리자 계정으로 로그인 한 상태이어야 한다.  

mv tcllib-1.11.1.tar.gz /usr/local/src/
cd /usr/local/src/
tar -zxvf tcllib-1.11.1.tar.gz
cd tcllib-1.11.1
./installer.tcl


2. 사용하기

간단한 Tcl 스크립트를 통하여 어떻게 Tcl에서 선형대수 함수를 사용할 수 있는지 보자. 이 스크립트를 다운 받으려면 오른쪽의 Matrix.tcl을 클릭하면 된다.

선형대수 함수를 사용하기 전에 관련된 라이브러리 모듈을 package require이란 명령어를 사용하여 불러온다. 그 다음은 주어진 행렬의 determinant를 계산하는 함수를 정의하는 부분이다. 이 함수는 Richard Suchenwirth에 의해 쓰여졌다. (출처: http://wiki.tcl.tk/11095 ) 이 후, 스크립트에 포함된 주석문을 참고한다. 
#!/bin/sh
# the next line is executed by /bin/sh, but not tcl \
echo Tcl script name: $0, with $# arguments; echo ; exec tclsh "$0" "$@"
#*******************************************
# Call necessary pacakges
#*******************************************
package require math::linearalgebra

#*******************************************
# Definition of procedures
#*******************************************
proc det matrix {
if {[llength $matrix] != [llength [lindex $matrix 0]]} {
error "non-square matrix"
}
switch [llength $matrix] {
2 {
foreach {a b c d} [join $matrix] break
expr {$a*$d - $b*$c}
} default {
set i 0
set mat2 [lrange $matrix 1 end]
 set res 0
foreach element [lindex $matrix 0] {
if $element {
set sign [expr {$i%2? -1: 1}]
set res [expr {$res + $sign*$element* [det [cancelcol $i $mat2]]}]
}
incr i
}
set res
}
}
}
proc cancelcol {n matrix} {
set res {}
foreach row $matrix {
lappend res [lreplace $row $n $n]
}
set res
}


#*******************************************
# Main program starts here
#*******************************************
# Durer's magic square
puts "Durer's magic square"
set A {{16 3 2 13} {5 10 11 8} {9 6 7 12} {4 15 14 1}}
puts "A = \n[::math::linearalgebra::show $A %2d]"

# Transpose the matrix A
puts "Transpose of the matrix A, At ="
set At [::math::linearalgebra::transpose $A]
puts "[::math::linearalgebra::show $At %2d]"

# Matrix Summation
puts "A + At ="
puts "[::math::linearalgebra::show \
[::math::linearalgebra::add $A $At] %2d]"

# Matrix multiplication
puts "At * A ="
set AtA [::math::linearalgebra::matmul $At $A]
puts "[::math::linearalgebra::show $AtA ]"

# Is a given matrix symmetric?
puts "isSymmetric( At * A ) = [::math::linearalgebra::symmetric $AtA]"

# Matrix determinant
set detA [det $A]
puts "det(A) = $detA.\n"

# Create a 3X3 matrix O whose elements are all zeros.
puts "Create a 3X3 matrix O whose elements are all zeros."
set O [::math::linearalgebra::mkMatrix 3 3 0]
puts "O = \n[::math::linearalgebra::show $O]"

# Create a 3X3 identity matrix I
puts "Create a 3X3 identity matrix I."
set I [::math::linearalgebra::mkIdentity 3]
puts "I = \n[::math::linearalgebra::show $I]"

# Create a 3X3 random matrix R
puts "Create a 3X3 random matrix R."
set R [::math::linearalgebra::mkRandom 3]
puts "R = \n[::math::linearalgebra::show $R]"

# Get the 2nd column from the matrix R.
puts "Get the 2nd column from the matrix R."
set c2 [::math::linearalgebra::getcol $R 1]
puts "c2 = \n[::math::linearalgebra::show $c2]"
위 스크립트를 실행시키면 그 결과가 아래와 같이 출력이 된다.
$ ./Matrix.tcl 

Tcl script name: ./Matrix.tcl, with 0 arguments

Durer's magic square
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Transpose of the matrix A, At =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1

A + At =
32 8 11 17
8 20 17 23
11 17 14 26
17 23 26 2

At * A =
378.0000 212.0000 206.0000 360.0000
212.0000 370.0000 368.0000 206.0000
206.0000 368.0000 370.0000 212.0000
360.0000 206.0000 212.0000 378.0000

isSymmetric( At * A ) = 1
det(A) = 0.

Create a 3X3 matrix O whose elements are all zeros.
O =
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000

Create a 3X3 identity matrix I.
I =
1.0000 0.0000 0.0000
0.0000 1.0000 0.0000
0.0000 0.0000 1.0000

Create a 3X3 random matrix R.
R =
0.3562 0.3277 0.0830
0.6627 0.9329 0.0609
0.9916 0.1730 0.3524

Get the 2nd column from the matrix R.
c2 =
0.3277
0.9329
0.1730

사실 Tcl 라이브러리는 단순한 선형대수 함수만 제공하는 것이 아니다. Tcllib 온라인 문서를 참조하면, 더욱 다양한 모듈이 제공됨을 알 수 있다.
Posted by 참향그늘
,


술탄 살라딘
카테고리 소설
지은이 타리크 알리 (미래M&B, 2005년)
상세보기

내가 이 책을 읽게 된 계기는 순전히 호기심과 우연의 조합이다. 2004년 쯤으로 기억하는데, 소프트맥스에서 나온 창세기전3 파트2 (2000년 출시)란 국산 PC게임을 뒤늦게 접하게 되고, 그 주인공인 살라딘이란 이름에 끌려 웹 검색을 하면서 역사적인 인물로서의 살라딘을 만나게 되었다.  2005년 여름에서야 비로소 이 책을 통하여 살라딘이라는 인물의 면면을 자세히 알게 된다. 일반적으로 소설이나 영화 속의 인물은 실제보다 미화되기 마련인데, 이 아랍의 고결한 지도자는 유럽에서도 그의 기사도적인 면모를 흠모한 작품들이 있을 정도이니, 실제로도 뛰어난 인물인 듯 하다. 오죽하면, 3차 원정군을 이끌었던 사자마음왕 리처드(Richard The Lionheart)가 살라딘을 "이슬람 세계에서 가장 위대하고 강력한 왕자"로 칭송하였을까.[각주:1]

십자군 전쟁, 사자왕 리처드는 굳이 세계사 시간이 아니더라도 누구나 한 번 쯤은 들어 봤을 터이다. 하지만 유럽 세계가 11세기부터 200년 가까이 8차 (또는 9차) 원정까지 저지른 이 거대한 역사적인 횡포의 대상자인 아랍 세계에 대해서는 상대적으로 모르는 것이 너무나 많다. 한국에서 정상적으로 공교육을 받았음에도 불구하고 살라딘이라는 인물이 존재하는 지도 몰랐으니, 나를 포함한 다수의 한국 사람들의, 세상과 역사를 보는 창이 얼마나 서유럽 중심의 해석에 뿌리깊은 영향을 받았는지 보여주는 일례일 것이다. 그 창을 깨뜨리고 싶은 사람들에게 이 책을 강력하게 추천한다. 사실 이런 거창한 명분이 아니더라도, 소설 자체로서의 재미와 역량도 뛰어난 수작이다.

(실존하지 않는 인물인) 유태인 서기 이븐 야쿠브의 눈으로 그려내는 술탄 살라딘의 모습은 바로 작가가 제대로 알리고 싶은 아랍 세계의 아이콘과도 같다. 저자는 이 소설 안에서 뛰어난 리더이자 너무나도 인간적인 술탄과 그 주변 인물의 이야기를 역사적인 배경과 함께 아랍 세계 특유의 성문화에 대한 묘사 등으로 자연스럽게 버무려 풀어낸다. 그렇게 함으로써 읽는 이로 하여금, 황량한 사막과 성전(聖戰·지하드)으로 대표되는 아랍에 대한 단편적인 고정관념에서 벗어나, 살아 숨쉬는 다양한 군상의 모습을 접하게 한다. 이 책을 읽고 나면 아랍이 아랍이란 추상적인 집합체로 뭉텅 그려지는 것이 아니라, 거기에도 다양성이 있고 인간성이 있고 풍성한 문화와 유서깊은 역사가 존재하는 세계로 새로 각인 될 것이다. 저자의 의도는 바로 여기에 있는 것이다. 소설 뒤에 나오는, 한국의 독자들에게 쓴 글에서 저자는 글을 쓴 동기를 아래와 같이 밝힌다.
내가 이 책과 『석류나무 그늘 아래』등 '이슬람 5부작'을 쓰기로 마음먹은 것은 걸프 전쟁이 터졌던 1990년이었다. BBC 방송에 나온 어떤 멍청한 논평가가 아랍인에게는 문화가 없다고 말하는 것을 듣고 분노했기 때문이다.
그의 구수한 글솜씨로 미루어 보건데,
저자 타리크 알리를 직접 만나 얘기를 들어 본다면, 소설 속의 이븐 야쿠브 만큼이나 재미있는 이야기 꾼이리라.


킹덤 오브 헤븐
감독 리들리 스콧 (2005 / 독일, 스페인, 영국, 미국)
출연 올랜도 블룸, 에바 그린, 리암 니슨, 에드워드 노튼
상세보기

제 3 차 십자군 원정 직전 시기를 영화화한 Kingdom of Heaven에서도 고귀한 적이자 현명한 지도자로 그려지는 술탄 살라딘의 모습을 볼 수 있다. 이 영화의 주인공인 이벨린의 발리앙(올랜도 블룸 분)을 소설 술탄 살라딘에서 찾아 보는 것도 재미일 것이다. 마지막으로 게임과 영화 그리고 15세기 삽화에 나타난 살라딘의 이미지를 감상해 보자.

 

창세기전3 파트2에서의 살라딘. 실존 인물과 아무런 관련 없음. 출처: 소프트 맥스

 

Kingdom of Heaven에서의 술탄 살라딘(Ghassan Massoud 분). 출처: http://snarla.wordpress.com/2007/08/23/saladin-the-animated-series/

 

15세기 삽화에 나타난 살라딘. 출처 : http://en.wikipedia.org/wiki/Saladin




     ¶ 살라딘에 관련한 기사 : 한겨례, '문명의 화해자' 살라딘이여 다시 한번
                                      : 오마이뉴스, 살라딘 그리고 끝나지 않은 십자군 전쟁
  1. 위키 백과 - 살라딘, http://en.wikipedia.org/wiki/Saladin [본문으로]
Posted by 참향그늘
,