http://www.gnu.org/software/octave/doc/interpreter/Function-Files.html#Function-Files

옥타브(Octave) 스크립트(script)를 실행하면, 스크립트에 적혀 있는 명령어(command)나 변수(variable)들을 순차적으로 옥타브가 실행한다. 이 때, 옥타브는 우선 이미 컴파일(compile) 되어서 부호표(symbol table)에 저장되어 있는 명령어, 변수부터 찾기 시작한다. 만약 여기서 찾을 수 없으면, 경로(path)에 나와 있는 디렉토리(directory) 아래에 있는 .m 파일들 중에서 명령어와 파일이름이 동일한 것으로 고른다.

옥타브 경로 변수는 DEFAULT_LOADPATH와 LOADPATH가 있다. DEFAULT_LOADPATH는 옥타브 내부적으로 내정한 값으로 일반 사용자가 건드리지 않는 것이 좋다. 옥타브 명령 창 (command window) 에  DEFAULT_LOADPATH 를 치고 엔터 키를 누르면 아래와 같이 콜론(:)으로 구분된 일련의 디렉토리들이 나열된다.

octave:1> DEFAULT_LOADPATH
DEFAULT_LOADPATH =.:/usr/local/libexec/octave/2.1.73/site/oct/i686-pc-linux-gnu//:/usr/local/libexec/
octave/site/oct/api-v13/i686-pc-linux-gnu//:/usr/local/libexec/octave/site/oct/i686-pc-linux-gnu//:/usr/local/
share/octave/2.1.73/site/m//:/usr/local/share/octave/site/api-v13/m//:/usr/local/share/octave/site/m//:/usr/local/
libexec/octave/2.1.73/oct/i686-pc-linux-gnu//:/usr/local/share/octave/2.1.73/m//

*.m 소스 파일들은 /usr/local/share/octave/2.1.73/m 디렉토리 아래에 들어 있다.

LOADPATH 는 사용자가 편집할 수 있는 경로로서 ~/.octaverc 파일에서 LOADPATH를 정의할 수 있다. 예를
들어, 개인 홈 디렉토리 아래 Codes/OctaveScripts 디렉토리 안에 옥타브 스크립트들이 있다면,
~/.octaverc 파일을 열어서 LOADPATH를 다음과 같이 정의한다.

LOADPATH = "::~/Codes/OctaveScripts//"

주의할 점은 두 개의 콜론을 반드시 넣어야 한다는 것이다. 이는 DEFAULT_LOADPATH에서 정의된 디렉토리들을 LOADPATH로 불러오기 위함이다. 이를 빠뜨리게 되면, 기본적인 명령어도 Octave가 이해하지 못하는 경우가 생긴다. 두 개의 콜론은 하나의 첫 콜론이나 하나의 마지막 콜론으로도 대체될 수 있다. 즉, 아래 표현들은 다 동일하다.

LOADPATH = "::~/Codes/OctaveScripts//"
LOADPATH = ":~/Codes/OctaveScripts//"
LOADPATH = "~/Codes/OctaveScripts//:"

위 예에서 // 는 OctaveScripts 자체 디렉토리 및 그 하위 모든 디렉토리를 의미한다.

옥타브 버전 3 부터는 직접 ~/.octaverc 파일을 건드리는 대신에 Octave 명령 창에서 path 관련 명령어를
이용하도록 바뀌었다.[각주:1] 예를 들어 ~/Octave 란 디렉토리를 Octave 검색 경로에 넣고 싶다면, 아래와 같이 입력한다.

octave:2> addpath("~/Octave")

디렉토리를 경로에서 지우고 싶으면 rmpath 명령어를 이용한다.

octave:3> rmpath("~/Octave")

옥타브의 검색 경로를 확인하고 싶으면 pathdef() 나 path 를 이용한다.

octave:4> pathdef()


  1. http://www.gnu.org/software/octave/NEWS-3.html [본문으로]
Posted by 참향그늘
,
리눅스 컴퓨터에서는 하드웨어의 사양을 확인하기가 여간 불편한 것이 아니다. 윈도우처럼 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 참향그늘
,