2008-08-29

django 테스트

Django가 pylons을 대체하는 것이 좋을지 검토해보기 위해 django를 설치하고 tutorial을 따라가 보았다.

pylons은 turbogear와 통합되기 때문에 당연히 tg와 비교하는 것이 옳으나 tg는 잘 모르기 때문에 pylons과 비교하였다.

-- Django의 장점 --

- admin 기능
django가 신문사의 CMS용으로 만들어졌고 그래서 그 분야에 적합하다는 뜻을 이해할 수 있었다. CMS용이라면 별도의 코딩이 필요없을 정도로 특화되어 만들어진 것 같다.

- 도큐먼트
문서의 양과 질이 뛰어나다.

- 개발자 및 사용자 커뮤니티
많은 사용자들이 있고 로얄티도 좋다.
GvR의 고평가

-- Django의 단점 --

- SQLAlchemy와 같은 killer ORM을 default로 사용하지 않는다.

- 속성 접근과 같은 부분에서 __ (underbar 2개)와 같은 특이한 notation을 사용한다.
pythonic하지 않다.

- admin 기능에 CMS기능이 너무 통합되어 있다. General한 개발툴로서는 단점이다.

pylons을 버리고 django를 선택하는 것은 득보다 실이 많을 것으로 보인다. 특히 pylons과 turbogears가 통합되고 그 동안 알게 되었던 pylons + sqlalchemy의 경험을 버릴 정도로 django가 좋은지 모르겠다. 그리고 그동안 pylons의 document도 꽤 좋아졌고 tg2의 출시도 올해 안에 기대되기 때문이다.

2008-08-22

xinetd에 svn service 등록하기

svnserve를 xinetd를 이용한 서비스로 등록하기 위해서는
/etc/xinetd.conf에 svn이라는 이름으로 다음과 같은 내용을 갖는 파일 생성

service svn
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = svn
group = svn
umask = 002
port = 3690
server = /usr/bin/svnserve
server_args = -i -r /svnrepos
}



/etc/xinetd.conf 의 default 섹션에
groups = yes
항목 추가
이 세팅을 해주어야 svn 파일의 group 설정이 유효하게 된다.

원본: http://www.red-bean.com/pipermail/svnbook-dev/2005-March/000100.html

그리고 /etc/services 파일에
svn 3690/tcp
svn 3690/udp
항목을 추가한 후에

# /etc/rc.d/init.d/xinetd restart
하여 xinetd 를 재시작해준다

2008-08-21

공짜 툴로 파이썬 확장모듈 컴파일하기

- mingw를 설치한다.
gcc-core
gcc-g++
binutils
runtime
utils

설치한 후 bin 폴더가 PATH에 포함되도록 수정한다
(My Computer ➛ Properties ➛ Advanced ➛ Environment Variables).


- default compiler로 mingw가 되도록 파이썬 설치폴더에서 disutils.cfg 를 수정한다.
c:\python25\lib\distutils\distutils.cfg
:

[build]
compiler = mingw32

- C extension을 사용하는 모듈 소스를 다운로드 하여 빌드해본다

PyCrypto 다운로드
파일을 폴더에 풀고
> python setup.py bdist_wininst

- 제대로 빌드되었는지 확인해본다

> objdump -p build/lib.win32-2.5/Crypto/Cipher/AES.pyd|grep DLL

원본URL: Building Python extensions for Windows with only free tools

yum이 freshrpms에서 stop되어 있을 때

freshrpms.repo에 정의된 서버 혹은 mirrorlist 서버가 다운되었을 가능성 높음
아래와 같이 mirror 서버를 다시 정의해 준다.

[펌] http://forums.fedoraforum.org/printthread.php?t=184124
Hlingler 2008-03-23 03:35 PM PST

For your convenience, here is how to get FreshRPMs up and going:

Edit your /etc/yum.repos.d/freshrpms.repo and replace the line "mirrorlist=..." with: mirrorlist=file:///etc/yum.repos.d/freshrpms.mirror

create that file /etc/yum.repos.d/freshrpms.mirror:
Code:
http://ayo.ie.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/
http://ayo.uk3.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/
http://ayo.us5.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/
http://ayo.pt.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/

Proceed.

Works for me....

Happy Easter,
V

EDIT: On second thought, it's probably best not to destroy the existing "mirrorlist..." line in /etc/yum.repos.d/freshrpms.repo since you'll want it back when he gets it back on-line, so just comment it out with a pound-sign at the beginning, then add the new "mirrorlist..." line at the end of the file. If you already nuked that line, here it is for reference:
Code:
mirrorlist=http://ayo.freshrpms.net/fedora/linux/$releasever/mirrors-freshrpms