expat은 handler를 기반으로 작동한다.
특정 이벤트에 작동하는 핸들러를 등록하여 그 값을 뺴내는데
이벤트(?)는 아래의 SetHandler 함수로 등록을 한다.

StartElement는 <tag>
EndElement는 </tag> 에
대해서 값을 받아 오도록 한다.

[링크 : http://www.hpc.wm.edu/SciClone/documentation/software/misc/expat/reference.html]

머.. 일단 실행은 해보고 -ㅁ-?
Start와 End는 확실한데.. 다른건 좀 일단 실험을... ㅠ.ㅠ

XML_SetElementHandler 는 XML_SetStartElementHandler 보다 우선하고,
static void XMLCALL ElementHandler (void *userData, const XML_Char *name, const XML_Char **atts)
에서 name은 XML_SetStartElementHandler 에서 리턴하는 것과 같고
atts는 몇 개인지 알수는 없으므로  atts[idx] != NULL 일때 까지 돌리는수 밖에 없다.

원본데이터
<ns0:feed xmlns:ns00="http://www.w3.org/2005/Atom">

결과물
name[ns0:feed]
atts[xmlns:ns0] atts[http://www.w3.org/2005/Atom]

atts[idx]

'프로그램 사용 > expat & XML' 카테고리의 다른 글

xml 트리 탐색 - XML tree navigation  (0) 2010.04.17
expat XML_SetCharacterDataHandler() function  (0) 2010.04.09
&amp; &lt; &gt; &quot; 는 머지?  (0) 2010.03.31
expat-2.0.1 example  (11) 2010.03.23
expat  (4) 2010.03.21
Posted by 구차니
개소리 왈왈/영화2010. 3. 28. 12:49
멧 데이먼이 출연했던 본 시리즈를 너무 재미있게 봐서
애인이 예약했던 "솔로몬 케인"을 취소하고 급 변경해서 보게된 영화이다.


포스터가 안티라는 증거, 왼쪽이 오른쪽 보다 뽀대가 2배 더 나잖아.txt


114분 상영시간에
정말 시간가는지도 모르게 한 90분도 안되는 느낌으로 몰입하게 하는 긴장감.
끝까지 어떻게 될지 모르겠는 오리무중의 시나리오와
적절하게 아쉬움을 남긴채 끝을 맺는 영화는 정말 최고라는 느낌이 든다.

사족 1 : 오랫만에 아바타를 잊게 해줄 멋진 영화였어!! -_-b
사족 2 : 포스터만 저 퍼런넘 보다 붉은넘이었음 사람들이 2배 더 많이 올꺼 같은데 ㅠ.ㅠ
사족 3 : 악악! 쓰고 싶은 내용이 있는데 스포일러가 되어서 쓰지 못하는..
            임금님 귀는 당나구 귀!!!!! 그냥 영화관으로 뛰어가서 보셈!!!

[링크 : http://en.wikipedia.org/wiki/Weapon_of_mass_destruction]

'개소리 왈왈 > 영화' 카테고리의 다른 글

free for what?  (0) 2010.04.02
end of D+848  (0) 2010.03.29
이상한 나라의 앨리스  (0) 2010.03.13
의형제  (1) 2010.02.06
크리스마스 선물  (4) 2009.12.25
Posted by 구차니

25렙 달성!
그러나 장비는 초 허접 ㅠ.ㅠ
Posted by 구차니
Linux/Ubuntu2010. 3. 26. 22:02
build-essencial을 깔았다고 해서 각종 man page들이 설치되는 것은 아니다.
각종 개발관련 man page는 manpages-dev 패키지에 존재한다.

$ sudo apt-get install manpages-dev

[링크 : https://lists.ubuntu.com/archives/ubuntu-users/2009-May/182747.html]
Posted by 구차니
Linux2010. 3. 26. 17:12
putty로 두개의 창을 ssh를 통해 열었는데,
ps -ef | grep sshd로 하니 아래와 같이 4개의 ssh 데몬이 검색되었다.
root      2050     1  0 Mar24 ?        00:00:00 /usr/sbin/sshd
root     25402  2050  0 10:23 ?        00:00:00 sshd: morpheuz [priv]

morpheuz 25404 25402  0 10:23 ?        00:00:00 sshd: morpheuz@pts/1
root     26343  2050  0 16:53 ?        00:00:00 sshd: morpheuz [priv]
morpheuz 26345 26343  0 16:53 ?        00:00:00 sshd: morpheuz@pts/4
morpheuz 26394 25405  0 17:00 pts/1    00:00:00 grep --color=auto sshd

priv는 previleged의 약자로, 보안을 강화하기 위해
접속은 소켓을 열수 있는 root로 열고
root의 sshd가 chile process를 만들어, 권한을 제한하여 서비스를 해준다.

위의 ps -ef 에서 보이듯,
[root] /usr/sbin/sshd
[root]           + sshd : morpheuz [priv]
[user]                    + sshd : morpheuz@pts/1
[root]           + sshd : morpheuz [priv]
[user]                    + sshd : morpheuz@pts/4
계층구조로 실행되며, 실질적인 권한은 사용자 권한으로 한정시켜, 시스템에 손상을 입히는 행위를 예방한다.

LOGIN PROCESS
     When a user successfully logs in, sshd does the following:

           1.   If the login is on a tty, and no command has been specified, prints last
                login time and /etc/motd (unless prevented in the configuration file or by
                ~/.hushlogin; see the FILES section).
           2.   If the login is on a tty, records login time.
           3.   Checks /etc/nologin; if it exists, prints contents and quits (unless root).
           4.   Changes to run with normal user privileges.
           5.   Sets up basic environment.
           6.   Reads the file ~/.ssh/environment, if it exists, and users are allowed to
                change their environment.  See the PermitUserEnvironment option in
                sshd_config(5).
           7.   Changes to user’s home directory.
           8.   If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, runs it; other-
                wise runs xauth.  The “rc” files are given the X11 authentication protocol
                and cookie in standard input.
           9.   Runs user’s shell or command.

[링크 : http://linux.die.net/man/8/sshd]

[링크 : http://www.citi.umich.edu/u/provos/ssh/privsep.html]
[링크 : http://www.citi.umich.edu/u/provos/ssh/privsep-faq.html]



Posted by 구차니
프로그램 사용/doxygen2010. 3. 26. 13:32
doxygen은 html / pdf / rtf / xml 타입으로
함수들의 목록이나 사용방법 메뉴얼을 만들어 주는 독한 녀석이다.
가장 익숙한 유사한 녀석은
API tree view인데
[링크 : http://java.sun.com/j2se/1.4.2/docs/api/]

이런녀석이 doxygen 류의(자바는 javadoc 이라고 자체 지원하는듯) 프로그램을 통해 자동 생성되는 녀석이다.
이런걸 왜하나면.. 프로그램 문서화의 일환이기도 하고, 좋게 말하면 인수인계 안하고
"소스를 보면 다 보이르니라~" 라고 발빼기 편하기 위함이다.(응?)


doxygen은 굳이 doxygen 문법으로 주석을 달아주지 않아도, 일단 생성은 해준다.
자세한 사용방법이나 설명서는 별도로 주석에 포함하여 작업을 해주어야 하지만 말이다.

Step 1. Project 탭
            Doxygen을 실행시키면 아래와 같은 화면이 나오고
           "Step 1:Specify ..." 부분에 프로젝트 루트의 경로를 입력한다.
            그리고 Project name / version or id 에는 임의로 넣어주어도 되니 대충 패스
            source code directory 에는 프로젝트 루트를 입력하고 "Scan recursively"를 반드시 체크해야
            빠짐없이 소스를 검색해서 api 문서를 작성해준다.
            Destination directory는 생성된 html 이나 pdf 파일이 저장될 위치로,
            프로젝트 내에 doc 폴더를 만들거나, 다른 경로로 지정해주어도 무방하다.

            단, 경로명에 한글을 지원하지 않으므로,
            중간에 "바탕 화면" 이런게 들어가면 작동하지 못하니 경로를 옮겨야 한다.


Step 2. Mode 탭
           출력될 내용을 고르는 것으로, 많은 양의 출력을 원하면 아래와 같이
           All Entities / Include cross-referenced source code in the output을 선택한다.
           그리고 doxygen이 인식할 언어를 고르는 건, 프로젝트의 언어에 맞게 골라주면 된다.


Step 3. Output 탭
           이 탭은 결과물을 어떤형식으로 저장할지에 대한 부분이다.
           HTML은 원래 웹에서 사용하는 용도로 만들어지긴 하지만,
           가장 알록달록해서 HTML로 저장해서 로컬에서 봐도 꽤 유용하다.
           API 탐색에 익숙한 tree 구조로 만들어주는게 좋기에 "with frames and a navigation tree" 를 추천한다.
           아무튼, 지원하는 문서 형식은 HTML / PDF(LaTeX) / RTF(word) / Manpage(Linux help) / XML 이다.


Step 4. Diagram 탭
           이녀석은 다른 작업을 해야 하는지 모르겠지만, GraphViz 는 별도의 패키지를 깔아야 하고
           built-in은 독립적으로 생성이 가능하다는 차이가 있다.(결과물은 당연히 GraphViz가 좋을듯?)


Step 5. Run
           솔찍히.. Next만 죽어라 누르다가 계속 누르면 만들어 지겠지.. 했는데 안만들어져서 한참을
           찾다보니 겨우겨우 "Run doxygen" 이라는 버튼이 발견되었다. ㄱ-
           아무튼 설정을 다하고 Run 버튼을 누르면 문서 생성이 시작된다.


[링크 : http://www.stack.nl/~dimitri/doxygen/] doxygen 공식 홈페이지
[링크 : http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc] 다운로드 링크
[링크 : http://www.graphviz.org/Download_windows.php] 그래프 그려주는 plugin(?)

[링크 : http://jwmx.tistory.com/1496]

'프로그램 사용 > doxygen' 카테고리의 다른 글

doxygen  (0) 2015.11.09
Posted by 구차니
개소리 왈왈2010. 3. 26. 01:09

60점 이상, 과목당 40% 미만 과락인데 다행히도 합격이다!!
이제 2차는.. 6만원인데 후덜덜 ㅠ.ㅠ

죠낸 서버 설정을 해봐야 하는건가 -ㅁ-!

1급 1001회 1차 02.01 ~ 02.17 03.13 03.26
2차 03.26 ~ 04.21 05.15 05.28
1002회 1차 07.05 ~ 08.11 09.04 09.17
2차 09.17 ~ 10.20 11.13 11.26







4월 21일 전까지 열심히 돈을 벌어서(응?)
시험을 등록하고 5월 15일에 보면 되는건가!
Posted by 구차니
c에서 python을 쓰는건 embedding 이라고 하고
python에서 c를 쓰는건 extend(확장) 이라고 한다.

[링크 : http://kukuta.tistory.com/69]
[링크 : http://kukuta.tistory.com/83]
[링크 : http://kukuta.tistory.com/91]
[링크 : http://kukuta.tistory.com/92]
[링크 : http://www.codeproject.com/KB/cpp/embedpython_1.aspx]
[링크 : http://koichitamura.blogspot.com/2008/06/this-is-small-python-capi-tutorial.html]
Posted by 구차니
Linux2010. 3. 25. 17:10
fdisk는 몇가지 옵션을 제공하지만, 실질적으로
interactive mode로 일일이 하나씩 설정을 해야 한다.

즉, 프로그램에 내장시켜 파티션을 전부 삭제하고,
단일 파티션으로 잡는다거나 하는 용도로 쓰기에는 모호한 감이 있다.

이를 해결하기 위해서 fdisk를 대화식으로 하지 않는 방법을 찾거나
$ echo -e "n\np\n1\n\n\nt\n8e\nw" | fdisk /dev/sdX

[링크 : http://www.commandlinefu.com/commands/using/fdisk]

혹은 다른 프로그램을 사용해야 한다.

[링크 : http://linux.die.net/man/8/sfdisk]
    [링크 : ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/]
[링크 : http://linux.die.net/man/8/parted]
    [링크 : http://www.gnu.org/software/parted/index.shtml]

Sfdisk is part of the util-linux package, which, as far as I can tell,
is unmaintained since the last release in Sept 2005.

There is a fork called util-linux-ng, released August 2007,
which you can get here: ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/

[링크 : http://www.linuxquestions.org/questions/linux-software-2/location-of-the-latest-sfdisk-source-590331/]

Posted by 구차니
Py_DECREF() 함수는 PyObject 변수의 참조의 값을 줄어주며,
python 자체의 garbage collector를 호출하여, 사용하지 않는 변수를 청소하는 역활을 한다.

아무튼, PyObject를 선언하고 사용후 종료하게 되면
Exception AttributeError: "'module' object has no attribute 'YouTubeService'" in 'garbage collection' ignored
Fatal Python error: unexpected exception during garbage collection
이런 에러가 발생했다.

[링크 : http://docs.python.org/c-api/refcounting.html?highlight=py_decref#Py_DECREF]
Posted by 구차니