270 likes | 401 Views
Highlights from EPC 2006. Vincenzo Innocente On behalf of the Local Organizing Committee. EuroPython at CERN. EuroPython conference organized by SFT this year! Three days Parallel sessions in Bld 40 Keynotes and “Lightning†in main auditorium Dinner in the Globe 280 participants
E N D
Highlights from EPC 2006 Vincenzo Innocente On behalf of the Local Organizing Committee
EuroPython at CERN • EuroPython conference organized by SFT this year! • Three days • Parallel sessions in Bld 40 • Keynotes and “Lightning” in main auditorium • Dinner in the Globe • 280 participants • 100 presentations (w/o lightning) • 5 by “CERN” VI @ EPC06
Schedule 4 parallel sessions (in bld 40) • All synchronized • 5 minutes pause between talks • Easy for people to move from one session to another Plenary Lightning & key notes (in Main Amphi) VI @ EPC06
Scientific Program • 7 tracks • Python in Science • Python Language & Libraries • Agile Development • Web Frameworks • Business and Applications • Teaching • Games and Entertainment VI @ EPC06
Statisticsby Sebastian Lopienski • ~ 100 abstracts • words: ~13.6k • unique words: ~2.7k • some chosen words • plugin* 18 • secur* 2 • embedd* 4 • performance 13 • improve* 11 • interoperability 3 • distribut* 22 VI @ EPC06
Community • Who • Wide age spectrum • Many in post-doc age-range • All 5 continents • Very few women (1-2%, all managers?) • Where • Company developing Software Solutions • Revenue from Selling custom products or services • Find business advantages • In using open source software (contribute to its development) • Develop components reusable beyond a specific project • Research Labs • Domain specific applications • Reuse in the community (adapting to pre-existing “habits”) VI @ EPC06
Community • What: • Core language development • Web framework, web applications • Software development tools (web based) • Scientific data processing, visualization • No sys-admin, net-admin, embedded-software, office automation • Why: • Hear news about Language, Libraries, key products (Zope,…) • Discuss, propose, complain • Present their products • In many cases just a spin-off component • Work (in Sprint sessions) VI @ EPC06
Messages • Python as • THE integration framework • THE Business Domain Language • THE embedded scripting language • Language for rapid-prototyping, extreme-programming, just-in-time deployment Python is faster than Assembler VI @ EPC06
Keynotes • Alan Kay • Xerox PARC, etc • Children First! • Guido van Rossum • Python BDFL (Benevolent Dictator For Life) • Python 3000 VI @ EPC06
MGL Tools VI @ EPC06
The Indico Technology • Main programming language: Python • Runs on Apache using the Python module mod_python • Persistence based in ZODB (Zope Object Database) • Transparency: no need for explicit read/writes of the objects • Fits very well with Indico complex object model • Proven performance and scalability • Timetable generation: libXML, libXSLt + python bindings • Portable technologies: runs on Windows, linux • Export gateways: • iCalendar ; XML ; PDF outputs • OAI (Open Archive Initiatives) for ensuring integration with other services • Standard protocol for information exchange between digital libraries • Allows to expose conference data • Allows other systems to fetch conference data and build services over it • Simple mechanism XML over HTTP VI @ EPC06
The Invenio Technology • Main programming language: Python • Runs on Apache using the Python module mod_python • Uses MySQL RDBMS • Take advantage of fully featured query language • Invenio home made Indexes • Internal representation with XML-MARC • Export gateways: • Multiple output formats: HTML, XML, MARC, OAI, DC, etc. • Some modules: • Still in PHP (slowly moved to Python) • Some in Common Lisp (BibCheck) VI @ EPC06
Index Space Design (II) • Two important speed factors to consider: • speed of set intersections (Web App Server) • speed of set marshalling (Web App <-> DB Server) • Data structures tested: • sorted (lists, Patricia trees) • unsorted (hashed sets, binary vectors) • fast prototyping: (Python) • throw-away coding, organic-growth software • development model • typical search time gain: 4.0 sec 0.2 sec • typical indexing time loss: 7 hours 4 days • binary vectors found the best compromise (for all types of sets) VI @ EPC06
Performance Benchmarks (2002) • Testing marshalling/intersection/union/unmarshalling • Bytecode interpreted language study: (Python, Java) • Python faster than Java (mainly due to marshalling) • Machine code compiled language study: (ML, Lisp) • OCaml, CMU CL: 3+ times faster than Python C libs • CMU CL best scalable: intersecting 6M records in 0.01 sec, 30M records in 0.04 sec • Data structure study: • OCaml, 3,000,000 records: bit vectors 0.43 sec, hashed sets 1.71 sec, lists 3.76 sec, Patricia trees do not scale well for dense sets • Python fast enough for production (1M records) • fast C modules: Numeric (byte/bit), Marshal, Psyco VI @ EPC06
The + of Python • Clean aesthetical language • Easy to learn, important for many internship students and temporary members working on the project • Very good for rapid prototyping & organic-growth development • Plenty of ready-to-be-used modules • Bytecode-compiled only, speed okay for our needs VI @ EPC06
Lightning • 5 minute talks about “anything” • Strict timing, no one took longer • Advertising/promoting • Demos • Follow-up/Summary of parallel talks • Wild Ideas • In most cases the message passes • People Google for keywords in the talk… VI @ EPC06
What I learned • Easy to organize a conference if Nathalie is the boss • It is possible to have meetings • With a friendly, cooperative, tolerant atmosphere • Where speakers keep their timing… • … and the audience is not asleep • There are Communities which value • Sharing information • Building reusable software components • Cooperating in developing the basic building blocks • Become a community around such a common ground VI @ EPC06
More? • Wait for the talk at AA meeting • Visit • http://vanrees.org/weblog/topics/europython • http://indico.cern.ch/conferenceDisplay.py?confId=44 • http://www.europython.org/ • http://www.google.com/search?q=europython VI @ EPC06