# tar xvf URI-1.54.tar.gz
# tar xvf String-Ediff-0.09.tar.gz
# tar xvf MIME-Types-1.29.tar.gz
개별 디렉토리에서 아래와 같이 make를 실행해준다.
# perl Makefile.pl
# make
# make install
여기서 경로를 /opt/lampp/lib 로 해주면 좋겠지만, 해보지 않았으니
일단 perl lib들을 위해
/opt/lampp/cgi-bin/cvsweb.cgi 의 94 라인즈음에 usr lib "/usr/lib/perl5/site_perl/5.8.8" 를 넣어준다. (use Cwd qw(abs_path); 이 내용 윗줄에)
5.8.8 은 FC6의 perl 버전으로 다른 버전을 사용한다면 버전확인후 수정해야 한다.
cvsgraph 설치하기 공식홈페이지에서 최신버전을 다운받는다.
그리고 아래와 같이 압축을 해제후, 컴파일을 한다.
# wget http://www.akhphd.au.dk/~bertho/cvsgraph/release/cvsgraph-1.7.0.tar.gz
# tar xvfz cvsgraph-1.7.0.tar.gz
FC6에서 설치하기 따라 다르지만, gd(Graphic Library)가 정상적으로 설치되었다면 어려움 없이 설치 될것이다.
# configure
# make
# make install
그리고 기본환경설정 파일을
# cp cvsgraph.conf /usr/local/etc/
로 복사해준다.(/etc로 해도 된다.)
cvs 경로
기본값으로는 /var/cvs로 되어있다.
enscript 설치
ecscipt는 문법강조를 해서 알록달록하게 보여주는 녀석이다. 공식홈페이지에서 다운로드 하여 설치한다.
# wget
http://www.iki.fi/mtr/genscript/enscript-1.6.4.tar.gz
#
tar xvfz enscript-1.6.4.tar.gz
# cd enscript-1.6.4
# ./configure
# make
# make install
소스에 syntax hilighting이 되지 않으니 가독성이 떨어진다.
enscript를 이용하여 syntax
hilighting하여 보도록 변경하자.
다음 명령으로 자신의 시스템에 enscript가 설치되어 있는지 파악하라.
PXE 부팅 설정으로 들어가려면 Shift-F10을 누르라고 하는데
들어가도 설정한건 없어서 그냥 나왔으니 패스 -ㅁ-!
꼼지락 대면서 BOOTP를 통해 ip와 pxelinux.0를 받으려고 한다.
받아온 아이피는 192.168.0.200 그리고 DHCP 서버는 tftpd32가 설치된 0.100 이다.
tftp를 통해 pxelinux.cfg 파일을 읽고 내용을 받아와서 부팅이 된다.
Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:A0:D1:C2:42:E7 [25/04 23:04:03.796]
DHCP: proposed address 192.168.0.200 [25/04 23:04:05.296]
1544 Request 2 not processed [25/04 23:04:05.343]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:A0:D1:C2:42:E7 [25/04 23:04:05.812]
Previously allocated address 192.168.0.200 acked [25/04 23:04:07.312]
Connection received from 192.168.0.200 on port 2070 [25/04 23:04:07.328]
Read request for file <pxelinux.0>. Mode octet [25/04 23:04:07.328]
OACK: <blksize=1456,> [25/04 23:04:07.328]
Using local port 2440 [25/04 23:04:07.328]
1544 Request 2 not processed [25/04 23:04:07.375]
<pxelinux.0>: sent 11 blks, 14776 bytes in 0 s. 0 blk resent [25/04 23:04:07.421]
Connection received from 192.168.0.200 on port 57089 [25/04 23:04:07.437]
Read request for file <pxelinux.cfg/e1ce8620-13bc-11dc-a70e-00a0d1c242e7>. Mode octet [25/04 23:04:07.437]
File <pxelinux.cfg\e1ce8620-13bc-11dc-a70e-00a0d1c242e7> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.437]
Connection received from 192.168.0.200 on port 57090 [25/04 23:04:07.437]
Read request for file <pxelinux.cfg/01-00-a0-d1-c2-42-e7>. Mode octet [25/04 23:04:07.437]
File <pxelinux.cfg\01-00-a0-d1-c2-42-e7> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.437]
Connection received from 192.168.0.200 on port 57091 [25/04 23:04:07.437]
Read request for file <pxelinux.cfg/C0A800C8>. Mode octet [25/04 23:04:07.437]
File <pxelinux.cfg\C0A800C8> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.437]
Connection received from 192.168.0.200 on port 57092 [25/04 23:04:07.437]
Read request for file <pxelinux.cfg/C0A800C>. Mode octet [25/04 23:04:07.437]
File <pxelinux.cfg\C0A800C> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.437]
Connection received from 192.168.0.200 on port 57093 [25/04 23:04:07.437]
Read request for file <pxelinux.cfg/C0A800>. Mode octet [25/04 23:04:07.453]
File <pxelinux.cfg\C0A800> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.453]
Connection received from 192.168.0.200 on port 57094 [25/04 23:04:07.453]
Read request for file <pxelinux.cfg/C0A80>. Mode octet [25/04 23:04:07.453]
File <pxelinux.cfg\C0A80> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.453]
Connection received from 192.168.0.200 on port 57095 [25/04 23:04:07.453]
Read request for file <pxelinux.cfg/C0A8>. Mode octet [25/04 23:04:07.453]
File <pxelinux.cfg\C0A8> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.453]
Connection received from 192.168.0.200 on port 57096 [25/04 23:04:07.453]
Read request for file <pxelinux.cfg/C0A>. Mode octet [25/04 23:04:07.453]
File <pxelinux.cfg\C0A> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.453]
Connection received from 192.168.0.200 on port 57097 [25/04 23:04:07.453]
Read request for file <pxelinux.cfg/C0>. Mode octet [25/04 23:04:07.453]
File <pxelinux.cfg\C0> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.453]
Connection received from 192.168.0.200 on port 57098 [25/04 23:04:07.453]
Read request for file <pxelinux.cfg/C>. Mode octet [25/04 23:04:07.468]
File <pxelinux.cfg\C> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.468]
Connection received from 192.168.0.200 on port 57099 [25/04 23:04:07.468]
Read request for file <pxelinux.cfg/default>. Mode octet [25/04 23:04:07.468]
OACK: <tsize=127,blksize=1408,> [25/04 23:04:07.468]
Using local port 2451 [25/04 23:04:07.468]
Connection received from 192.168.0.200 on port 57100 [25/04 23:04:07.578]
<pxelinux.cfg\default>: sent 1 blk, 127 bytes in 0 s. 0 blk resent [25/04 23:04:07.578]
Read request for file <ubuntu-installer/i386/boot-screens/menu.cfg>. Mode octet [25/04 23:04:07.578]
OACK: <tsize=813,blksize=1408,> [25/04 23:04:07.578]
Using local port 2452 [25/04 23:04:07.578]
<ubuntu-installer\i386\boot-screens\menu.cfg>: sent 1 blk, 813 bytes in 0 s. 0 blk resent [25/04 23:04:07.671]
Connection received from 192.168.0.200 on port 57101 [25/04 23:04:07.671]
Read request for file <ubuntu-installer/i386/boot-screens/stdmenu.cfg>. Mode octet [25/04 23:04:07.671]
OACK: <tsize=395,blksize=1408,> [25/04 23:04:07.671]
Using local port 2453 [25/04 23:04:07.671]
Connection received from 192.168.0.200 on port 57102 [25/04 23:04:07.781]
<ubuntu-installer\i386\boot-screens\stdmenu.cfg>: sent 1 blk, 395 bytes in 0 s. 0 blk resent [25/04 23:04:07.781]
Read request for file <ubuntu-installer/i386/boot-screens/text.cfg>. Mode octet [25/04 23:04:07.781]
OACK: <tsize=401,blksize=1408,> [25/04 23:04:07.781]
Using local port 2454 [25/04 23:04:07.781]
<ubuntu-installer\i386\boot-screens\text.cfg>: sent 1 blk, 401 bytes in 0 s. 0 blk resent [25/04 23:04:07.875]
Connection received from 192.168.0.200 on port 57103 [25/04 23:04:07.875]
Read request for file <ubuntu-installer/i386/boot-screens/amdtext.cfg>. Mode octet [25/04 23:04:07.875]
File <ubuntu-installer\i386\boot-screens\amdtext.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.890]
Connection received from 192.168.0.200 on port 57104 [25/04 23:04:07.890]
Read request for file <ubuntu-installer/i386/boot-screens/gtk.cfg>. Mode octet [25/04 23:04:07.890]
File <ubuntu-installer\i386\boot-screens\gtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.890]
Connection received from 192.168.0.200 on port 57105 [25/04 23:04:07.890]
Read request for file <ubuntu-installer/i386/boot-screens/amdgtk.cfg>. Mode octet [25/04 23:04:07.890]
File <ubuntu-installer\i386\boot-screens\amdgtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:07.890]
Connection received from 192.168.0.200 on port 57106 [25/04 23:04:07.890]
Read request for file <ubuntu-installer/i386/boot-screens/stdmenu.cfg>. Mode octet [25/04 23:04:07.890]
OACK: <tsize=395,blksize=1408,> [25/04 23:04:07.890]
Using local port 2458 [25/04 23:04:07.890]
<ubuntu-installer\i386\boot-screens\stdmenu.cfg>: sent 1 blk, 395 bytes in 0 s. 0 blk resent [25/04 23:04:07.984]
Connection received from 192.168.0.200 on port 57107 [25/04 23:04:07.984]
Read request for file <ubuntu-installer/i386/boot-screens/adtext.cfg>. Mode octet [25/04 23:04:07.984]
OACK: <tsize=566,blksize=1408,> [25/04 23:04:07.984]
Using local port 2459 [25/04 23:04:07.984]
<ubuntu-installer\i386\boot-screens\adtext.cfg>: sent 1 blk, 566 bytes in 1 s. 0 blk resent [25/04 23:04:08.078]
Connection received from 192.168.0.200 on port 57108 [25/04 23:04:08.093]
Read request for file <ubuntu-installer/i386/boot-screens/adamdtext.cfg>. Mode octet [25/04 23:04:08.093]
File <ubuntu-installer\i386\boot-screens\adamdtext.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:08.093]
Connection received from 192.168.0.200 on port 57109 [25/04 23:04:08.093]
Read request for file <ubuntu-installer/i386/boot-screens/adgtk.cfg>. Mode octet [25/04 23:04:08.093]
File <ubuntu-installer\i386\boot-screens\adgtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:08.093]
Connection received from 192.168.0.200 on port 57110 [25/04 23:04:08.093]
Read request for file <ubuntu-installer/i386/boot-screens/adamdgtk.cfg>. Mode octet [25/04 23:04:08.093]
File <ubuntu-installer\i386\boot-screens\adamdgtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:08.093]
Connection received from 192.168.0.200 on port 57111 [25/04 23:04:08.093]
Read request for file <ubuntu-installer/i386/boot-screens/vesamenu.c32>. Mode octet [25/04 23:04:08.093]
OACK: <tsize=144392,blksize=1408,> [25/04 23:04:08.093]
Using local port 2463 [25/04 23:04:08.093]
<ubuntu-installer\i386\boot-screens\vesamenu.c32>: sent 103 blks, 144392 bytes in 0 s. 0 blk resent [25/04 23:04:08.234]
Connection received from 192.168.0.200 on port 57112 [25/04 23:04:08.468]
Read request for file <pxelinux.cfg/default>. Mode octet [25/04 23:04:08.468]
OACK: <tsize=127,blksize=1408,> [25/04 23:04:08.468]
Using local port 2464 [25/04 23:04:08.468]
<pxelinux.cfg\default>: sent 1 blk, 127 bytes in 0 s. 0 blk resent [25/04 23:04:08.515]
Connection received from 192.168.0.200 on port 57113 [25/04 23:04:08.515]
Read request for file <ubuntu-installer/i386/boot-screens/menu.cfg>. Mode octet [25/04 23:04:08.515]
OACK: <tsize=813,blksize=1408,> [25/04 23:04:08.515]
Using local port 2465 [25/04 23:04:08.515]
<ubuntu-installer\i386\boot-screens\menu.cfg>: sent 1 blk, 813 bytes in 0 s. 0 blk resent [25/04 23:04:08.625]
Connection received from 192.168.0.200 on port 57114 [25/04 23:04:08.625]
Read request for file <ubuntu-installer/i386/boot-screens/stdmenu.cfg>. Mode octet [25/04 23:04:08.625]
OACK: <tsize=395,blksize=1408,> [25/04 23:04:08.625]
Using local port 2466 [25/04 23:04:08.625]
<ubuntu-installer\i386\boot-screens\stdmenu.cfg>: sent 1 blk, 395 bytes in 0 s. 0 blk resent [25/04 23:04:08.718]
Connection received from 192.168.0.200 on port 57115 [25/04 23:04:08.718]
Read request for file <ubuntu-installer/i386/boot-screens/text.cfg>. Mode octet [25/04 23:04:08.718]
OACK: <tsize=401,blksize=1408,> [25/04 23:04:08.718]
Using local port 2467 [25/04 23:04:08.718]
<ubuntu-installer\i386\boot-screens\text.cfg>: sent 1 blk, 401 bytes in 0 s. 0 blk resent [25/04 23:04:08.828]
Connection received from 192.168.0.200 on port 57116 [25/04 23:04:08.828]
Read request for file <ubuntu-installer/i386/boot-screens/amdtext.cfg>. Mode octet [25/04 23:04:08.828]
File <ubuntu-installer\i386\boot-screens\amdtext.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:08.828]
Connection received from 192.168.0.200 on port 57117 [25/04 23:04:08.828]
Read request for file <ubuntu-installer/i386/boot-screens/gtk.cfg>. Mode octet [25/04 23:04:08.828]
File <ubuntu-installer\i386\boot-screens\gtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:08.828]
Connection received from 192.168.0.200 on port 57118 [25/04 23:04:08.828]
Read request for file <ubuntu-installer/i386/boot-screens/amdgtk.cfg>. Mode octet [25/04 23:04:08.828]
File <ubuntu-installer\i386\boot-screens\amdgtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:08.828]
Connection received from 192.168.0.200 on port 57119 [25/04 23:04:08.828]
Read request for file <ubuntu-installer/i386/boot-screens/stdmenu.cfg>. Mode octet [25/04 23:04:08.828]
OACK: <tsize=395,blksize=1408,> [25/04 23:04:08.828]
Using local port 2471 [25/04 23:04:08.828]
<ubuntu-installer\i386\boot-screens\stdmenu.cfg>: sent 1 blk, 395 bytes in 0 s. 0 blk resent [25/04 23:04:08.921]
Connection received from 192.168.0.200 on port 57120 [25/04 23:04:08.921]
Read request for file <ubuntu-installer/i386/boot-screens/adtext.cfg>. Mode octet [25/04 23:04:08.921]
OACK: <tsize=566,blksize=1408,> [25/04 23:04:08.921]
Using local port 2472 [25/04 23:04:08.921]
<ubuntu-installer\i386\boot-screens\adtext.cfg>: sent 1 blk, 566 bytes in 1 s. 0 blk resent [25/04 23:04:09.031]
Connection received from 192.168.0.200 on port 57121 [25/04 23:04:09.031]
Read request for file <ubuntu-installer/i386/boot-screens/adamdtext.cfg>. Mode octet [25/04 23:04:09.031]
File <ubuntu-installer\i386\boot-screens\adamdtext.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:09.031]
Connection received from 192.168.0.200 on port 57122 [25/04 23:04:09.031]
Read request for file <ubuntu-installer/i386/boot-screens/adgtk.cfg>. Mode octet [25/04 23:04:09.031]
File <ubuntu-installer\i386\boot-screens\adgtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:09.031]
Connection received from 192.168.0.200 on port 57123 [25/04 23:04:09.031]
Read request for file <ubuntu-installer/i386/boot-screens/adamdgtk.cfg>. Mode octet [25/04 23:04:09.031]
File <ubuntu-installer\i386\boot-screens\adamdgtk.cfg> : error 2 in system call CreateFile 지정된 파일을 찾을 수 없습니다. [25/04 23:04:09.031]
Connection received from 192.168.0.200 on port 57124 [25/04 23:04:09.031]
Read request for file <ubuntu-installer/i386/boot-screens/splash.png>. Mode octet [25/04 23:04:09.031]
OACK: <tsize=7999,blksize=1408,> [25/04 23:04:09.031]
Using local port 2476 [25/04 23:04:09.031]
<ubuntu-installer\i386\boot-screens\splash.png>: sent 6 blks, 7999 bytes in 0 s. 0 blk resent [25/04 23:04:09.140]
Connection received from 192.168.0.200 on port 57125 [25/04 23:04:10.812]
Read request for file <ubuntu-installer/i386/linux>. Mode octet [25/04 23:04:10.828]
OACK: <tsize=3890400,blksize=1408,> [25/04 23:04:10.828]
Using local port 2477 [25/04 23:04:10.828]
<ubuntu-installer\i386\linux>: sent 2764 blks, 3890400 bytes in 2 s. 0 blk resent [25/04 23:04:12.265]
Connection received from 192.168.0.200 on port 57126 [25/04 23:04:12.265]
Read request for file <ubuntu-installer/i386/initrd.gz>. Mode octet [25/04 23:04:12.281]
OACK: <tsize=8209207,blksize=1408,> [25/04 23:04:12.281]
Using local port 2478 [25/04 23:04:12.281]
<ubuntu-installer\i386\initrd.gz>: sent 5831 blks, 8209207 bytes in 2 s. 0 blk resent [25/04 23:04:14.953]
The filesystem path of the part of the CVS repository that you
want to convert. It is not possible to convert a CVS repository
to which you only have remote access; see the FAQ for
details. This
doesn't have to be the top level directory of a CVS repository;
it can point at a project within a repository, in which case
only that project will be converted. This path or one of its parent directories has to contain a subdirectory called CVSROOT
(though the CVSROOT directory can be empty).
Configuration via options file
--options=PATH
Read the conversion options from the specified file. See
section options
file method
for more information.
Output options
-s PATH --svnrepos PATH
Write the output of the conversion into a Subversion
repository located at PATH. This option causes a new Subversion
repository to be created at PATH unless the
--existing-svnrepos option is also used.
자세히 보면 티가 나지만, 어떤녀석은 URL 이고 어떤 녀석은 PATH이다.
일단 URL에서 파일 경로일 경우에는 file:/// 이라고 / 개 3개가 들어가야 한다.
$ svnadmin create [repository direcotry name]
$ svn checkout file:///[absolute path] [name of repository which will create]
머.. 일단 콘솔에서는 이렇게 초기화 하고 만들면 될 듯.
$ svnadmin help
general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]
Type 'svnadmin help <subcommand>' for help on a specific
subcommand.
Available subcommands:
crashtest create
deltify
dump
help (?, h)
hotcopy
list-dblogs
list-unused-dblogs
load
lslocks
lstxns
recover
rmlocks
rmtxns
setlog
verify
$ svnadmin help create
create: usage: svnadmin create REPOS_PATH
Create a new, empty repository at REPOS_PATH.
Valid options:
--bdb-txn-nosync : disable fsync at transaction commit
[Berkeley DB]
--bdb-log-keep : disable automatic log file removal
[Berkeley DB]
--config-dir arg : read user configuration files from
directory ARG
--fs-type arg : type of repository: 'fsfs' (default) or
'bdb'
$ svn help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.3.2.
Type 'svn help <subcommand>' for help on a specific subcommand.
Most subcommands take file and/or directory arguments, recursing
on the directories. If no arguments are supplied to such a
command, it recurses on the current directory (inclusive) by default.
Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/
$ svn help list
list (ls): List directory entries in the repository.
usage: list [TARGET[@REV]...]
List each TARGET file and the contents of each TARGET directory as
they exist in the repository. If TARGET is a working copy path, the
corresponding repository URL will be used. If specified, REV
determines
in which revision the target is first looked up.
The default TARGET is '.', meaning the repository URL of the current
working directory.
With --verbose, the following fields will be shown for each item:
Revision number of the last commit
Author of the last commit
If locked, the letter 'O'. (Use 'svn info URL' to see details)
Size (in bytes)
Date and time of the last commit
Valid options:
-r [--revision] arg : ARG (some commands also take ARG1:ARG2
range)
A revision argument can be one of:
NUMBER revision number
"{" DATE "}" revision at start of the
date
"HEAD" latest in repository
"BASE" base rev of item's working
copy
"COMMITTED" last commit at or before
BASE
"PREV" revision just before
COMMITTED
-v [--verbose] : print extra information
-R [--recursive] : descend recursively
--incremental : give output suitable for concatenation
--xml : output in XML
--username arg : specify a username ARG
--password arg : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--config-dir arg : read user configuration files from
directory ARG
$ svn help checkout
checkout (co): Check out a working copy from a repository.
usage: checkout URL[@REV]... [PATH]
If specified, REV determines in which revision the URL is first
looked up.
If PATH is omitted, the basename of the URL will be used as
the destination. If multiple URLs are given each will be checked
out into a sub-directory of PATH, with the name of the sub-directory
being the basename of the URL.
Valid options:
-r [--revision] arg : ARG (some commands also take ARG1:ARG2 range)
A revision argument can be one of:
NUMBER revision number
"{" DATE "}" revision at start of the date
"HEAD" latest in repository
"BASE" base rev of item's working copy
"COMMITTED" last commit at or before BASE
"PREV" revision just before COMMITTED
-q [--quiet] : print as little as possible
-N [--non-recursive] : operate on single directory only
--username arg : specify a username ARG
--password arg : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--config-dir arg : read user configuration files from directory ARG
--ignore-externals : ignore externals definitions
expat도 SAX의 일종이라고 할 수 있을지는 모르겠지만,
방식측면에서는 event-driven 이니 SAX는 맞는것 같다.
아무튼, DOM 구조가 없으니 navigation은 힘든편.
SAX (Simple API for XML) is a serial
accessparserAPI for XML. SAX
provides a mechanism for reading data from an XML document. It is a
popular alternative to the Document Object Model (DOM).
두 가지 유형의 XML 문서 파서가 있다. 이들은 XML 문서에 액세스하는 방식부터 다르다:
Document Object Model (DOM). XML 문서로의 랜덤
액세스(random
access)에 사용된다. DOM의 장점은 메모리 안에 문서의 전체 모델을 갖고 있다는
점이다. 이는
모든 XML 엘리먼트에 어떤 순서로든지 액세스가 가능하다는 것을 의미한다. 하지만 큰
문서의 경우 둔해
질 수 있다. 메모리에서 실행시키지 않으면 시스템이 한계에 다다를 때 퍼포먼스가 느려진다.
Simple API for XML (SAX). 순차적
액세스(sequential access)에
사용된다. SAX의 장점은 문서의 한 부분이 메모리에서 사용될 수 있기 때문에 보다 큰
문서를 핸들할
수 있다는 점이다. SAX의 단점은 엘리먼트를 순서대로 처리해야 하며 한번에 볼 수 있는
문서 부분도
작다. SAX를 이용하여 문서를 파싱할 때 XML 부분을 저장할 수 있다.
Simple
API for
XML (SAX)는 이벤트 중심 API이다. XML 마크업의
다른 부분들(시작과 끝 태그, 텍스트, 엔터티)에서 실행된 특정 이벤트용 핸들러 코드를 등록한다. 이 파서는 인풋 XML에
기반하여 이러한 이벤트들의 스트림을 보내면, 핸들러 코드는 이를 처리한다.
VLC 에는 web interface 라는 넘이 있는데,
이녀석을 원격지에서 http query를 통해 제어가 가능하다.
윈도우에서 기본설치시
C:\Program Files\VideoLAN\VLC\http\requests 경로에 존재하는 파일을 읽어보면 될 듯 하다.
웹에서 접속시에는
http://localhost:8080/requests/filename.xml?query
식으로 하면된다.
아래는 readme.txt 파일
$Id$
This file describes commands available through the requests/ file:
Lines starting with < describe what the page sends back
Lines starting with > describe what you can send to the page
All parameters need to be URL encoded.
Examples:
# -> %23
% -> %25
+ -> %2B
space -> +
...
status.xml:
===========
< Get VLC status information, current item info and meta.
> add <mrl> to playlist and start playback:
?command=in_play&input=<mrl>
> add <mrl> to playlist:
?command=in_enqueue&input=<mrl>
> play playlist item <id>:
?command=pl_play&id=<id>
> toggle pause. If current state was 'stop', play item <id>:
?command=pl_pause&id=<id>
> stop playback:
?command=pl_stop
> jump to next item:
?command=pl_next
> jump to previous item:
?command=pl_previous
> delete item <id> from playlist:
?command=pl_delete&id=<id>
> empty playlist:
?command=pl_empty
> sort playlist using sort mode <val> and order <id>:
?command=pl_sort&id=<id>&val=<val>
If id=0 then items will be sorted in normal order, if id=1 they will be
sorted in reverse order
A non exhaustive list of sort modes:
0 Id
1 Name
3 Author
5 Random
7 Track number
> toggle random playback:
?command=pl_random
> toggle loop:
?command=pl_loop
> toggle repeat:
?command=pl_repeat
> toggle enable service discovery module <val>:
?command=pl_sd&val=<val>
Typical values are:
sap
shoutcast
podcast
hal
> toggle fullscreen:
?command=fullscreen
> set volume level to <val> (can be absolute integer, percent or +/- relative value):
?command=volume&val=<val>
Allowed values are of the form:
+<int>, -<int>, <int> or <int>%
> seek to <val>:
?command=seek&val=<val>
Allowed values are of the form:
[+ or -][<int><H or h>:][<int><M or m or '>:][<int><nothing or S or s or ">]
or [+ or -]<int>%
(value between [ ] are optional, value between < > are mandatory)
examples:
1000 -> seek to the 1000th second
+1H:2M -> seek 1 hour and 2 minutes forward
-10% -> seek 10% back
playlist.xml:
=============
< get the full playlist tree
browse.xml:
===========
< ?dir=<dir>
> get <dir>'s filelist
vlm.xml:
========
< get the full list of VLM elements
vlm_cmd.xml:
============ < execute VLM command <cmd> ?command=<cmd> > get the error message from <cmd>