Europython 2004 Day 2

"social skills track"

[eichin:20040608T0900+02]

Selling Open Source Python Applications to Big Business

Selling Open Source Python Applications to Big Business - John Pinner

John Pinner - Clockwork Software, UK

Mostly focussed on "satisfy customers and get word of mouth from them"; contacts, keep in touch with them.

Sell the solution, not the tech - just that you use the BEST tools.

Show them satisfied users.

"Don't say free software in english", though "libre" is ok...

Big company disadvantages: Bureaucracy, More Bureaucracy, Even More Bureaucracy. Factor it into your quote.

Many of them have approved rates for categories - so increase times, not rates.

Keep them in the picture - prompt meeting minutes, confirmations by email, etc.

Free Software in the public Interest

Free Software in the public Interest - Henrik Sandklef and slide

Henrik Sandklef hesa@gnu.org Jonas Öberg oberg@fsfeurope.org

(FSF Europe, GNU)

Free Software Directory (1999; 2003 - UNESCO gets involved)

Mostly stretched analogies and rhetoric, somewhat "preaching to the choir", except that EU software patents are up for a vote before the EU parliament...

Free Software in the public Interest - Jonas Öberg

References Lessig's "code is law."

Reminder to vote for European Parliament candidates.

Selling Open Source Python Applications to Big Business - Béatrice Fontaine, social skills track lead- 1

[eichin:20040608T0952+02]

Panel Session

GFDL brought up, in the context of Debian.

google(eff trusted computing) has some relevance to a current "EU consultation"...

software patents - more important than DRM...

Python linguistics

Static Type Inference and Compilation with Starkiller

Static Type Inference and Compilation with Starkiller - Michael Salib and example slide

Michael Salib msalib@alum.mit.edu http://web.mit.edu/msalib/www/presentation.pdf http://web.mit.edu/msalib/www/presentation.sxl

Starkiller does everything but exec/eval/dynamic module loading.

Entirely static - complete opposite of psyco. (Also Starkiller isn't polished and shipping.)

"bad software kills people"

"I am not an academic loser with no sense of reality. Even though I'm from MIT. I realize there's a large correlation..."

"In order to save the world, Python needs to be fast..."

"is Dan going to get pie in the face?"

yield uses gcc-computed-goto, returns the address of the label for the continue.

"I could work in Haskell or ML - I have - they're better languages than python, but the communities suck" :-) "the python community steadfastly supports people who work for a living"

It can do while loops now, but not for loops.

(talk ran long)

The Failure of Applications

The Failure of Applications - Jef Raskin- 1

Jef Raskin

A variety of equations - getting the point across that user interfaces can be quantified, and compared on the basis of user time/cost and "information efficiency" - bits supplied by the user vs. bits of significance of the action.

Mentions his more recent book as having all the equations together.

Demonstrates LEAP; talks about how emacs isearch gets it backwards because it leaves the point in the wrong place.

Expects a LEAP release later this year. Current version is sort of slow in wxPython, but the pyGame version is much faster; cheats a little and uses space for LEAP and shift(?) for reverse-LEAP. Little things like LEAP-RET for go-to-end-of-line are tempting.

Demonstrates embedded python execution.

Talks about a market for objects (which are effectively verbs, I think) that enable conversions or other operations - spellchecking a picture by using an OCR module, for example.

(I tried to capture parts of the demo in the following two video clips.)

Raskin movie 1

Raskin movie 2

Managing large scientific data sets using Python

Managing large scientific data sets using Python - Steven Johnston- 1

Steven Johnston [eichin:20040608T1331+02]

Moore's law - CPU every 18mo, HDD ever 12mo, but algorithms don't...

Data volumes are outpacing processing power

Win-FS (yukon db stuff) - another sign of metadata mattering

http://www.biosimgrid.org/ Includes simulation of motions of proteins, storing location and velocity for each atom; making collections of trajectories accessible to the community.

Not possible to force another format on scientists; XML in particular just isn't very good (compression, arrays.)

Trajectories (not the small metadata, but the data itself): x,y,z for each atom for each time step. 1000's of trajectories, about 3G/traj average. Velocities as well (same storage)

6 sites across the UK, 3.2Tb usable per site, RAID 5; store each at least twice, total capacity is 3000 trajectories.

Looked at DB2, Oracle 10G; everything is full normalized and indexed.

Using Numeric, pickle Frame objects in flat files, very fast; can index by Frames.

Speed: pickles and netCDF both 30x faster than DB2... and half the size!

Hybrid: Oracle (but could easily by MySQL) for metadata, flatfiles for the objects.

Transparent submission to any site, metadata database duplicated everywhere, layer to actually get the objects from wherever.

Uses Condor to manage distributing the user's python scripts... Look for a more secure sandbox; twisted talking to a jailed process works.

Considering p2p tools (torrent?) to pull from multiple sites.

Python Wrapper Tools - A Performance Study

Python Wrapper Tools - A Performance Study - Ola Skavhaug- 1

[eichin:20040608T1359+02]

Ola Skavhaug, Paul Scherrer Institute

Floating point operations: 150x C/C++, without things like the SIMD optimizations in the C compiler Function call: 90x c/c++ Dictionary lookups make variables expensive

Tried: SWIG, SIP, Boost.Python, Babel; wrapped a simple sparse matrix class template from C++

Doesn't show pyrex? -- apparently had some misconceptions about how it worked.

SIP is almost as fast as raw

BOOST is slower, it turns out

Audience mention: PYSTE - generates XML descriptors?

Integration of Numerical Models in Python

Integration of Numerical Models in Python - Mike Mueller

[eichin:20040608T1438+02]

Mike Mueller - Dresden Groundwater Resarch Center e.V.

Large scale lignite mining left wide barren areas, open pits become lakes, groundwater contamination problems.

Goal: eventually they should be swimming-grade water.

Before 1999, no models existed, before this project.

Reused components of existing models - CE-QUAL-W2, PCGEOFIM, PHREEQC. Led to new models for double porosity and erosion: MODGLUE, and POMO.

"adapter" and "facade" patterns. Operator splitting, loose coupling.

Mix of fortran, python, and C-extension glue

Used ZODB as easy object store with transactions + undo; netCDF for large arrays, good for talking to fortran too.

Integration of Numerical Models in Python - Ground Water Model slide

Runs on an 8-node linux cluster; Pyro used to parallelize PHREEQC, the slow bit, got 90% speed increase for small (380 cell) model

biggles plotting tool.

PyPy

[eichin:20040608T1537+02]

(Laura's explanation - funding for Sprints from the EU is different funding than going to conferences, and they're trying to figure out how to deal, though the case officer and the original funding caller are all psyched but don't have the authority to actually do it...)

This talk: high level of how PyPy actually works.

Armin Rigo?

Very cute Pygame based evaluator trace demo, showing the evaluator's actions ("fuzzy" and "nasty".)

PyPy - slide with fruit

Holgar Krekel

Showing actual pypy

PyPy - Holgar Krekel

The pypy logic is actually very close to the CPython logic, and really is starting to work as a "specification", some clarifications have been pushed back into the main tree...

Armin Rigo:

PyPy - slide

"translation" - to get speed back.

questions/comments:

Holger Krekel again: 6-7 one-week sprints total, considering South Korea and USA.

"Lisp backend" mentioned, not entirely sure it is real rather than an in-joke though. Makes sense for the translator, at least.

Parrot bytecode mentioned as well.

Psyco

Psyco - slide

[eichin:20040608T1630+02]

Armin Rigo

"Gave a talk two years ago, but now I can explain what it does..."

(Another pygame animation, probably the one on the net)

After a detailed explanation, a slide of performance numbers: implementing quicksort in pure python and then calling psyco, it is actually much faster than native .sort, even Python 2.3, because it doesn't have to repeat type inference.

Problem areas: too much polymorphism, leading to too much recompilation (combinatorial explosion) - not just large size.

(Yes, Intel architecture only, though there's an experimental backend for pseudocode for a virtual machine, and someone wants to do a PPC backend...)

Pre-Keynote

Keynote Preparation - getting set up for the keynote- 1

[eichin:20040608T1735+02] Jacob Hallen, organizer dude

Directions to the dinner - on "the avenue" (kings-something avenue.) Just follow the tram tracks down hill until you hit they moat, then turn right until you get to the big white building (Stora Theatre) - where avenue crosses the moat. Taking the tram: to Kungplatse. It is the former operahouse, but there's a new one (10 years old) that is used for theater.

Poll on having this here next year: overwhelmingly in favor.

ZOPE sprint arranged - they have room for 30 people, in one of the mathematics buildings, in case anyone else wants to join. PyPy team is elsewhere, but may move.

Keynote

Keynote - "... seriously high up"

[eichin:20040608T1742+02]

Mark Shuttleworth

intro: grew up in South Africa, done a lot for education

Keynote - overzoomed- 7

Keynote - "I'm also pretty certain that every single person in this room knows more about Python than I do.... So I'm going to use a LOT of pictures."

Got medical tests done as a way to convince people he was serious.

Keynote - Medical test slide

Downloaded ps/2 version, in russia... then tried perl... tried linux about the same time... kept bouncing back and forth, being intimidated. First experience should be "here's an IDE with sample code, start here"

Keynote - "The love affair began..."

"Back then I still thought of the sky as a limit..."

Flight documentation files -- abbreviated russian, looks a lot like perl...

"michelin-man" effect - suits are pressurized, instead of soyuz simulator being evacuated.

Right place at the right time - "50% of it is showing up", actually do something. (Getting in as one of Netscape's CA's was the "getting lucky" part)

Thawte started as 3 CGI scripts - one query a week, manually keyed in passphrase to do the signing. Today, it has some common libraries, but no framework, no sophisticated infrastructure - just code.

"Soyuz is not a boat" - "how long can you hold your breath".

Thawte was a clean break - fired after 4 days from a waiter job, 3 months then fired from a web storefront site - so he's just not a good employee :-)

Trying to get Python supported within the SA Computer Olympiad; TSF is supplying $10K in awards for it, he really wants kids to start using it, in the place of BASIC.

2 hours in the vacuum suit - radiative cooling isn't enough...

Variation among schools has more to do with organization, when both schools have no money...

Keynote - "SchoolTool (attempt 2)"

Also trying to make school administration an interesting problem, instead of mind-numbingly boring - by including neat technologies, solving the more interesting problems (like calendaring.) Releasing within a few months, a "shared calendar server" that mozilla can use...

Believes in "GPL+Custom" licensing model for funding development.

"Projectile vomit in zero G has to be seen to be believed..." Space Motion Sickness, so you get lots of drugs (american way) - the russians, instead, make you painfully ill on the ground, make it up to 10 minutes in the chair, and you get used to it, so you "disconnect from your sense of balance" which helped hugely.

"Executable Pseudocode" - the idea that python is something that people can talk about code in is very important and we must not lose it.

300 ton centrifuge - draws more electricity than the rest of star city; 30Gs max (8G's human test maximum.) Has been used for a profile of Silverstone race in a F1 car.

Re-entry is 5.5-12G, which mattered for wearing equipment on his chest...

Keynote - "Next Project: $DISTRO"

"Not because there's a shortage of them..." I'm starting a linux distribution. Goals include "put free software on any desktop" so gratis drivers and firmware are ok. Desktop oriented, Python Everywhere - common experience, so people can learn one language and be able to extend and enhance the system at every layer, all the way through the system! First release ("warty warthog") is debian based and coming out in September (working with Debian core people?). There's a good name, but still being acquired.

Keynote - "Barriers To Entry: Usability"- 1

Think about the list of things you need to get something done - "if we survive two years, everybody gets an apple notebook, because that's the goal we're going for." One uniform "set of things to know" at all levels.

(Audience question: java vs c#/mono? "java doesn't have much future, mono/dotNet have a major IP threat from MicroSoft, that's their whole plan")

"You could be a star!" (Soyuz compartment is the size of a russian thermonuclear weapon.) Hand made - you can see the weld breaks, takes 3 days to prep.

Worry about PEP mechanism: too easy to become a language for specialist interests that way.

Fast to comprehend someone else's code is the most important thing, along with learnability.

"The more complicated we make the language, the more of a barrier to entry..."

Sit people down and do real usability studies - sit real people down, and use that to guide evolution.

At the low end you get Visual Basic - but even there, there's too much subtlety and magic.

(Picture: Siberia from above, at nightfall)

(Picture: Soyuz docked)

Too many frameworks, not enough info on why one would use which one (python-xmpp vs. python-jabber, why?)

(Picture: indonesia)

(picture: south pacific)

(picture: aurora australis, over the poles, above the atmosphere; which can reach almost up to the station...)

(picture: space station seen from the russian part)

(picture: station from shuttle, over north africa)

(picture: soyuz approaching station)

(picture: post-landing capsule, with spasibo written on it...)

"Bits of molten metal running across your window, very disturbing. And then, 270m/s to 9m/s in 12s as parachutes open."

Question: "Did you program python in space?" - no, took mozilla, persistance of vision, but no python at the time. (Insert "Hello world" joke.)

Question: "Use LISP or Haskell?" - ie. if you want those features, use those languages.

Question: "what about the ide?" - Trying to make $DISTRO solid, up-to-date, but not going to actually push anything but the most important bits.

Surrealism

Alex Martelli and Anna??? announced (at the dinner) that they were getting married in Minnesota, and then going to OSCON the day after for their honeymoon (having convinced each other not to have the wedding at OSCON, mostly because it was more difficult for relatives to get to.) They met over Python, so it seemed appropriate.

Conference Dinner - Laura making some announcement

I've heard an amazing range different pronunciations for "Python" than I expected, even given the range of European languages present. I'm not the most-distant attendee - there's someone here from New Zealand, who commented on how NZ is effectively "microsoft-owned".

Conference Dinner - People across from me

Dinner discussions ranged wildly, the primary topic was why small startups worked in the US and didn't in Germany, how rich entrepreneurs tended to turn around and do it again, Oceanography and deep sea saline disks spun off from the Mediterranean, how the German Unions use Zope to organize negotiations and strikes, and various light discussions of computational linguistics. The dinner itself was in the Stora Theatern, the old operahouse - apparently we were seated on the stage, and entered via the backstage entrance. We were told outright to "sit with people you didn't know" and that seems to have worked out reasonably well.

Conference Dinner - Theater Ceiling (the dinner was actually on stage)

Conference Dinner - Japanese guest took our picture- 1