Python: Building an Open Source Project and Community SDForum Distinguished Speaker Series, 2/17/05 www.sdforum.org/dss Guido van Rossum Elemental Security, Inc. [email protected][email protected] What to Talk About Elemental Security, Inc. Personal history Python's history Python, the language Python, the software The Python community The Open Source community
Python's future Questions Feb. 17, 2005 2005 Guido van Rossum 2 Elemental Security, Inc. Enterprise security software cross-platform policy compliance reporting and enforcement Early stage startup in stealth mode but not much longer! :-) Using lots of Python
We're always hiring! See http://www.elementalsecurity.com Feb. 17, 2005 2005 Guido van Rossum 3 Personal History Age 4: first Lego kit Age 10: first electronics kit (with two transistors) Age 18: first computer program (on punched cards) Age 21: first girlfriend :-) 1982: "drs" math degree; joined CWI in Amsterdam 1987: first worldwide open source release 1989: started work on Python in spare time 1995: moved to USA to join CNRI
2000: got married 2001: became a father 2003: moved to California to join Elemental Security Feb. 17, 2005 2005 Guido van Rossum 4 Python's History Amsterdam Early '80s development of ABC (by others) 1990 Python developed & used internally 1991 Python released to the world Early '90s growing world-wide user base USA 1994 first Python workshop at NIST in Md
1995 Python's home moves to CNRI in Va Late '90s yearly Python conferences 2000 PythonLabs breaks loose from CNRI 2001 Python Software Foundation formed 2003 first PyCon organized by PSF Feb. 17, 2005 2005 Guido van Rossum 5 Python, the Langue Dynamically typed object-oriented language Python programs look like executable pseudo-code Supports multiple paradigms: procedural, object-oriented, some functional High level data types and namespaces
A bit like Lisp and Smalltalk Extensible in lower-level languages (C, Fortran, ...) that's the origin of its OO nature! Most controversial issues: block structure through indentation dynamic type checking Feb. 17, 2005 2005 Guido van Rossum 6 Example Function def gcd(a, b): "Greatest common divisor of two integers" while b != 0: a, b = b, a%b
return a Note: no declarations indentation+colon for statement grouping documentation string part of function syntax parallel assignment (to swap a and b: "a, b = b, a") Feb. 17, 2005 2005 Guido van Rossum 7 Comparison to Other Languages (Apart from syntax differences!) Perl: objects vs. regexps; TOOWTDI vs. TMTOWTDI PHP: general purpose vs. web language Java: dynamic vs. static typing
(and all that follows) C++: dynamic vs. static; memory management Lisp: code != data Smalltalk: namespaces Haskell, ML, Prolog: different paradigms Feb. 17, 2005 2005 Guido van Rossum 8 Python, the Software Open Source (non-GPL) Used by: Google, ILM, NASA, Disney, RealNetworks, Yahoo, ... BitTorrent, GNU mailman, games, ...
Runs on: Unix, Windows, Mac, Palm, VxWorks, PlayStation 2, ... Bundled with: Linux, Mac OS X Written in portable ANSI C Jython: Java version, translates to Java byte code IronPython: C#/.NET version, translates to IL Many 3rd party modules downloadable Feb. 17, 2005 2005 Guido van Rossum 9 Why Use Python? Dynamic languages are more productive
Burton Group: P-languages 5x as productive C-languages Python code is more readable Python code is more maintainable Burton Group: Python preferred for application development Python has fast built-in very high-level data types Developer time is more expensive than CPU time When Should You Not Use Python (Yet)? Things like packet filters, MP3 codecs, etc. Instead, write in C/C++ and wrap Python around it Feb. 17, 2005 2005 Guido van Rossum 10 Sample Use Areas
Server-side web programming (CGI, app servers) Client-side web programming (HTML, HTTP, ...) XML processing (including XML-RPC and SOAP) Databases (Oracle, MySQL, PostgreSQL, ODBC, ...) GUI programming (Qt, GTK+, Tcl/Tk, wxPython, ...) Scientific/numeric computing (e.g. LLNL) Testing (popular area for Jython) Scripting Unix and Windows Rapid prototyping (e.g. at Google) Programming education (e.g. Oxford physics) from middle school to college Feb. 17, 2005 2005 Guido van Rossum 11 The Python Community
On line: website, newsgroups, mailing lists, IRC, blogs many subcommunities (Zope, Twisted, SciPi, ...) separate communities for developers and users In stores: books, T-shirts In your face: conferences, local user groups, meetups, workshops Legally: Python Software Foundation Other organizations e.g. EuroPython, EuroZope, PyBiz Feb. 17, 2005 2005 Guido van Rossum
12 The Python Software Foundation Is a membership organization new members elected on merit special regards for paying sponsor members Is a 501(c)(3) non-profit receives US tax-free donations Owns or manages the copyrights to the software dedicated to release under Open Source license Takes financial responsibility for PyCon Sponsors a tiny bit of Python development only Does not control the developers if anything, it's the other way around! Feb. 17, 2005
2005 Guido van Rossum 13 Python's Development Processes Conservative release cycle new functionality release every 12-18 months 2.0, 2.1, 2.2, 2.3, 2.4 bug fix releases as needed, usually 3-9 months 2.3.1 ... 2.3.5 PEP (Python Enhancement Proposals) the RFC's of the Python world can propose community processes as well as software Checks and balances favoring slow growth
the user community wants it this way! BDFL (Benevolent Dictator For Life; me) breaks ties wields no actual power except through persuasion Feb. 17, 2005 2005 Guido van Rossum 14 Python's Developer Community Pyramid structure: 1 BDFL 10 key developers ("lieutenants") 100 core developers (checking privileges) 1000 contributors (numbers are rough approximations)
Key developers emerge through technical merit there ain't no shortcut to the top Other developers often have niche expertise e.g. a specific module or a specific platform Feb. 17, 2005 2005 Guido van Rossum 15 Python's User Community Often separate from the developer community Many roles: book authors, editors etc. 3rd party module developers teachers
self-appointed evangelists professional users packagers bloggers site administrators Python-based businesses Feb. 17, 2005 2005 Guido van Rossum 16 Related Communities Zope web application server, CMS framenwork Plone built on top of Zope Twisted networking Swiss army knife Scientific Python users Database module developers
PyPy Feb. 17, 2005 2005 Guido van Rossum 17 The Open Source Community Many separate communities Linux, languages, lots of individual applications Languages are biggest after Linux itself Apache is a case apart ASF served as model for PSF Similarities, differences exist; examples: Perl Foundation has no members
Apache has no single leader Unifying principle Open Source licenses (OSI-approved) The Free Software Foundation Feb. 17, 2005 2005 Guido van Rossum 18 Python's Future Slow growth Python 3000 is years away (still!) Optional type declarations?
Feb. 17, 2005 2005 Guido van Rossum 19 Questions Feb. 17, 2005 2005 Guido van Rossum 20
Penalties for plagiarism: Academic Misconduct Panel Plagiarised work = 0 marks (also for allowing work to be plagiarised) Repeated plagiarism can lead to termination Passing Modules Need 40% overall for assessment in order to pass a module (60% for music...
Anti-Drug Antibody (ADA) µg/mL → ng/mL. Neutralizing ADA (nADA) Human plasma. nADA = a needle in a haystack. Ratio ~ 1/1 000 000. LoQ. to reach for ADA ~ 100 ng/mL. Efficient sample preparation and sensitive/specific analysis method is crucial!...
Vocabulary: Is able to correctlyuse gender marker vocabulary sufficient to appropriate for developmental age and setting. Grammar: Is able to use multiple components like tense, singular/plural, adjective placement, pronouns, etc. along with gender. Repeat appropriate dialect in their community.
Cy- Ranch 2014-2015 It was difficult land to farm on but Mayan farming techniques produced agricultural surpluses. Cy- Ranch 2014-2015 Religion The Mayas were polytheists. They believed in many gods. A large temple pyramid stood in the middle of every...
San Diego-Imperial Counties Community CollegesWorkforce & Economic DevelopmentRegional Consortium. ... Key website requirements/branding concepts developed. ... Research Plan for LMI demand & supply gap analyses on target.
131210093 Fourth Ave ES. 131210060 G.W.Carver Institute. 131210130 Gordon Parks Academy ES. 131210170 J. Garfield Jackson, Sr. Academy ES. ... 133880110 Oakwood Avenue ES. 133880050 Orange HS. 133880115 Orange MS. 133880120 Park Avenue ES. 172060050 Hudson. Harrison. Harrison HS.
Every coach involved must have a US Soccer License. By 2020-2021 must have a US Soccer Federation B License. 6 month process - 3 meetings with 2 development periods. Required conduct. Behavior and conduct. Will address, will suspend, will expel....
Titus Andronicus, the people of Rome … Send thee by me, their tribune and their trust, This palliament of white and spotless hue, Be candidatusthen and put it on, And help to set a head on headless Rome. Titus: A...
Ready to download the document? Go ahead and hit continue!