레이블이 pylons인 게시물을 표시합니다. 모든 게시물 표시
레이블이 pylons인 게시물을 표시합니다. 모든 게시물 표시

2009-02-04

lighttpd와 pylons을 연동하여 쓸 때 SCRIPT_NAME과 PATH_INFO가 동일하게 나올 때

참조: http://code.djangoproject.com/ticket/8490

lighttpd.conf에서 scgi 부분이 다음과 같을 때

scgi.server = ( "/" =>
(
"localhost" => (
"host" => "127.0.0.1",
"port" => 5000,
"min-procs" => 1,
"max-procs" => 2,
"check-local" => "disable"
)))


pylons에서 wsgi로 environ를 조사해 보면
SCRIPT_NAME과 PATH_INFO가 동일하게 나오는 경우가 있다. 이 경우 error 페이지와 같이 generate되는 html에서 URL에 SCRIPT_NAME 이 prepend되는데, 이것은 flup 모듈의 버그이다.

flup_1.0.1 대신에 flup_1.0을 사용하면 해결된다.

2008-10-29

pylons 0.9.7rc2 간단 help 오류

Using the Helpers 섹션에서
helper 코드가 작동하려면
lib/helpers.py에 다음 코드를 추가해야 함

from routes import url_for
from webhelpers.html.tags import *

그리고 예제도 다음과 같이 바뀌어야 함

${h.form(h.url_for(action='email'), method='get')}
Email Address: ${h.text('email')}
${h.submit('submit', 'Submit')}
${h.end_form()}

pylons에서 config 파일 (ini) 읽기

pylons.config['<항목명>'] 방식으로 접근 가능.

그런데 [server:main] 및 몇몇 필드 들은 읽히지 않는다 (예를 들어 use, full_stack 등)

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의 출시도 올해 안에 기대되기 때문이다.

2007-05-18

RubyOnRails vs Pylons vs TurboGears

사내 정보시스템용 Web Application을 위해 WAF를 survey했다.

결론적으로 TurboGears를 선택하게 되었다.

RubyOnRails

아직 가장 인기있는 WAF는 ROR일 것이다. 15분만에 weblog 사이트를 만드는 screencast를 보고 감명받지 않을 프로그래머가 있을까? Amazon에서 Ruby On Rails로 검색을 해보면 108권이 나온다. 오히려 우리나라에서 이제 겨우 관심을 주는 게 이상할 정도다.

그래서 가장 많이 사용하는 WAF라고 생각되는 ROR를 선택하였고, 간단하고 풍부한 기능에 어느정도 만족하였으나, Ruby라는 언어를 새로 익혀야 하는 부담이 있었다.

Ruby언어는 python이나 Perl을 알면 기본적인 문법을 배우는 시간이 많이 걸리지 않으나 usage에 익숙해지는 것은 또 다른 문제이고, 상대적이기는 하지만 아무래도 성능 문제
부담이 되었다. 그리고 앞으로 나올 Ruby의 VM에 대한 전망도 그리 밝아 보이지 않았다. 그리고

Programming Ruby를 읽으면서, 언어의 동적 특성이 편해 보이기는 했지만, 전혀 성능상의 고려를 안한 것처럼 보였다. Ruby는 재미있고 좋은 언어이다. 하지만 Perl이 그랬던 것처럼 탄탄한 내부 구조를 갖지 않으면 전문적인 소프트웨어를 개발하는데 사용하기가 꺼려질 수 밖에 없다.

RubyOnRails는 이러한 일반적인 인식을 뒤집어 엎은 소프트웨어다. 그리고 ROR에 붙은 가속도를 생각할 때, ROR 및 Ruby가 앞으로 어떻게 발전할지는 쉽게 예측할 수 없고 절대로 평가절하할 수 없다.

하지만 앞으로 일정기간 이상 유지보수되어야 하는 시스템을 내가 충분히 납득하지 못하는 언어로 개발하기에는 부담이 되었다.

Pylons

그래서 찾아 본 WAF가 Pylons였다. Pylons는 Python으로 작성되었으며 ROR과 유사한 구조를 갖고 있다는 게 가장 마음에 들었다. 그리고 MVC를 구성하는 모듈들도 유연하게 바꿀 수 있었다. 가장 큰 문제는 아직 mature하지 않았다는 점이다. 문서도 절대적으로 부족하고 안되는 기능이 너무 많다. 특히 REST를 아직 제대로 지원하지 못하여서 사용 목적에는 맞지 않았다. Pylons 코드를 보고 Pylons 자체를 개발 하려는 것이 아니라면 아직은 많이 부족한 상태였다.

TurboGears

django 사이에서 약간 고민은 되었지만, TG가 훨씬 ROR에 가깝다는 점에서 TG를 선택했다. 그래도 TG에는 ROR과 비슷한 screencast들도 있고 어쩌면 ROR보다 더 전문적인 Catwork 및 admi18n 과 같은 도구들도 있다. 물론 ROR의 짧고 우아하게 보이는 코드에 비해서 많이 늘어져 보이는 것은 어쩔 수 없다.