2011년 1월 6일 목요일

open source license

BSD License

버클리 소프트웨어 배포 라이센스입니다. 진정한 의미에서의 Free가 어울리는 오픈소스 라이센스로, 소스 사용에 대한 어떠한 제약도 없습니다. 소스 수정 및 재배포, 바이너리 제품판매 등에 대해서도 아무런 제약이 없습니다. 소스 공개에 대한 조건도 없습니다. 한마디로 BSD로 배포되는 소스 및 바이너리에 대해서는 완벽한 자유가 보장된다고 보시면 됩니다.
예전에는 제작자의 이름을 명시하는 것이 요구되었으나, 프로젝트가 장기화, 거대화 되면서 이름이 엄청나게 길어지면서 그 조항도 현재는 없어졌습니다.
대표적으로 BSD계열의 유사 유닉스와 아파치 계열 라이센스가 있으며, 아파치 라이센스는 거의 동일한 내용입니다.



GPL(General Public License)

유명한 리쳐드 스톨만이 만든 오픈소스 라이센스입니다. 여러가지 복잡한 내용이 있지만, 요약하면 자유롭게 소스를 사용하고 배포하되 GNU GPL라이센스 조항을 반드시 포함해야 하며, 해당 소스를 사용해서 만든 것은 GPL을 따라야 하며 소스배포를 강요하게 됩니다.
이 조항들이 적용되는 범위가 상당히 넓은데다, 실질적으로 상용 라이센스로서의 의미를 가지기 힘들기 때문에 소프트웨어 제조사에서는 사용을 기피하는 편입니다. 레드햇 등의 유명 리눅스 제조사가 OS를 무료로 배포하고 서비스로 수익을 얻는 구조를 가지는가의 이유이기도 합니다.
기본적으로 이상적으로 봐서는 모든 소프트웨어가 GPL을 따르면 누구나 우수하고 좋은 프로그램을 무료로 쓸 수 있을 것 같지만, 반대로 수익 모델이 그렇게 매력적이지 못하기 때문에 회사들에게서 전폭적 지지를 받지는 못할 라이센스가 아닌가 생각됩니다.(우리나라 회사들도 GPL에 데어서 벌금 낸 회사가 부지기수입니다)
한마디로 무료로 받아서 무료로 배포하는 것이 전제라 하겠습니다.
대표적인 프로젝트로 리눅스와 GNU툴들이 있겠습니다.



모질라 라이센스(MPL)

불여우로 유명한 모질라 재단의 라이센스로, GPL과 비슷하지만 GPL이 너무 강성 노선이라면 MPL은 조금 그 영역을 좁혀서 소스 코드의 공개는 강제하되, 바이너리의 상용화 및 비공개에 대해서 보장하기 때문에 GPL에 비해서는 그 활용 영역이 넓다 하겠습니다. 즉 GPL과 달리, MPL을 따르는 프로젝트의 소스를 얻어 그 소스의 특정 부분을 변경하여 상용 프로젝트를 만들었다면, 해당 소스의 변경점을 공개하고 바뀐 부분을 알려야 하지만, 결과물에 대해서 상용화 및 소유권을 인정하는 형태입니다.
GPL과 BSD를 잘 섞은 듯한 느낌의 라이센스입니다.



LGPL(Lesser GPL)

GPL이 앞서 얘기했듯 GPL과 관계되면 모두 GPL을 따라야 하다보니 사람들이 오픈소스 진영을 제외하고는 기피하는 경향이 강했기 때문에, 그 상황을 호전시키기 위해서 나온 것으로, 라이브러리 등을 LGPL을 따르게 하면 해당 라이센스를 따르는 라이브러리를 상용 및 다른 라이센스와 연계해 사용하고 배포하는 것이 가능합니다. GPL과 마찬가지로 배포시 해당 라이브러리가 LGPL을 따른다는 것을 알리는 내용을 첨부해야 하며 해당 라이브러리를 수정 및 재배포시 소스를 공개하고 LGPL을 따라야 합니다. (해당 모듈 및 라이브러리만)
FFMPEG등에서 사용되고 있으며, FFMPEG가 사용된 곰플레이어 등은 상용소프트웨어임을 생각하시면 이해가 쉽겠습니다.

python web

Python Resources

HomePeoplePythonEmulation

About Python

Python is a programming language that we can thoroughly recommend. On this page, it is intended that various projects that we have been working on can be studied by anyone interested enough to do so. See also David's own projects page!

Python Software

  • The analysis package provides facilities for the analysis of Python source code and the production of summaries and programs in other programming languages.
  • The jailtools distribution consists of modules and programs for restricting the execution of programs using chroot "jails".
  • The kpartplugins package provides useful extensions for KHTML within the Konqueror Web browser.
    (This is mostly David's work.)
  • The libxml2dom package provides a PyXML-style DOM API for libxml2.
  • The pprocess distribution provides elementary, multiprocess parallel programming support for Python programs.
  • The qtxmldom package provides a PyXML-style DOM API for qtxml, KHTML and KHTML via DCOP.
  • The RDFCalendar, RDFMessage and RDFFormats distributions provide facilities for processing and storing information in RDF data stores.
  • The sqltriples distribution provides SQL-accessible RDF data stores.
  • The t616hack distribution provides access to information stored on various mobile telephones.
    (This is based on work by Nelson Minar.)
  • WebOrganiser is a distribution of applications for managing calendars and messages via the Web.
  • The WebStack package provides a common API for Python Web applications.
  • The xhtmlhook module permits the importing of XHTML documents within Python as Python modules.
    (This is mostly David's work.)
  • The XSLTools package provides XML/XSL processing support for Python applications.

Python Documentation

Other Python Documentation

For up-to-date information on Python Web frameworks, see the WebProgramming section of the PythonInfo Wiki. (The original basis of that section was the "Python Web Frameworks" overview and the comparison of Python framework features and J2EE standards found on this site.)

pythonweb

pythonweb

The Python Web Project is an attempt to further enhance Python and promote it as the best language for web programming.

This involves designing and writing the necessary modules, packaging distributions and documenting the modules with examples and tutorials as well as spreading the word about Python.Read more »



Projects:
Web Modules
Snake SQL

Latest News

29th June 2006 - Work on pythonweb has officially stopped so the code is no longer maintained. For an alternative try Pylons which the developers of pythonweb now work on instead.
7th August 2005 - Bricks, the rapid web application development framework, has a first alpha
4th August 2005 - PythonWeb components have been split up into sepearate projects. The 0.6.0 alphas are here.
15th April 2005 - Web Modules Development Release 0.5.3
22nd March 2005 - Web Modules Development Release 0.5.2
18th March 2005 - PythonWeb SourceForge.net project registered
15th February 2005 - Web Modules Development Release 0.5.1
31st January 2005 - Web Modules Development Release 0.5.0
04th January 2005 - Website restructured, standards compliant, contributers section
21st December 2004 - Mailing list created for discussions
20th December 2004 - SnakeSQL 0.5.2 Alpha released - supports simple joins, PyPI
25th November 2004 - SnakeSQL 0.3.4 Alpha released, announced on DB-SIG, PyPI

More news »

Download

Quickly download the latest version of the modules, 0.5.3

Download latest stable version of the web modules Download Latest

Mailing List

Download latest stable version of the web modules Join the list

The list is for discussions related to any of the software hosted on PythonWeb.org.

Kindly hosted on sourceforge.net.

python web tutorial

web tutorial



2011년 1월 5일 수요일

python c api 사용

Some ideas include:

  • Wrapping the code as a Python C extension using the Python API
  • Wrap the C code using SWIG
  • Add a DLL wrapper to the C code and load it into Python using ctypes
  • Add a small XML-RPC server to the c-code and call it using xmlrpclib (yes, I know this seems a bit far-out!)

2011년 1월 4일 화요일

python tutorial content

Contents