TITLE OF PAPER: Keynote URL OF PRESENTATION: _URL_of_powerpoint_presentation_ PRESENTED BY: Mitch Kapor REPRESENTING: Open Source Applications Foundation CONFERENCE: PyCON 2004 DATE: 20040324 LOCATION: _venue_and_room_in_venue_ LOCATION OF NOTES: (where will these be stored on the net????) -------------------------------------------------------------------------- REAL-TIME NOTES / ANNOTATIONS OF THE PAPER: {If you've contributed, add your name, e-mail & URL at the bottom} Topics: Open Source Python Chandler - Open Source Personal Information Management System (Based on Python). Very cool tool. Why am I here? Explanation of his nervousness in addressing developers. First experience with a decimal computer (Bendix G10) in 1966 at a summer camp. Realized he was in awe of people who are good developers. Developers have a special set of skills and abilities. what makes a developer a developer (will he go here?)?? - Obsessive Compulsive Behavior (Comment by JCC). We all have to be a little nuts to debug code for days on end. Non-developers do not seem to have this trait. - programmers fill in gap between computers capabilities and "what it does" (read: capabilities vs programs) - Personally I think developers are drawn to computers like artists are drawn to their craft. Writing code is a form of expressive art. There is more to computers than just programming -- there's the design, not just the writing of the program. What kind of human purposes should the program/computer serve? (reminder of the history of the PC and the availability of computers to individuals) Fascination with the Apple II. And reached the Zenith of his programming career in AppleSoft II BASIC. Started writing programs for clients like doctors, dentists, etc. Quick Survey - What was your first computer? - C64/Apple IIC (Comment by JCC) :) - Apple II+ (twl) - Vic20 (for home) PDP/8e ever (CGP) - Amiga 500 (GWL) - Tandy 1000 (jon) - TI 99/4A / C64 / Apple IIGS (zjb) - TI 99/4A / Mac 128 (dp) - Apple Performa 475 (JB) - Mac Performa 450 (rpw) - Apple II [used] / IIgs [owned] (rpk) - IBM PCjr (rji) - Apple IIe [first owned] / VAX 11-780 (rsf) - Z100 (sdm) Lotus 1-2-3 was a partnership btwn Kapor (designer) and Jonathan Sachs(?) (architect/developer) We've gone from DOS to Windows, but the "kinds of products" were the same thing from 15 years before. (No new ideas/CGP). The Internet was great, but the desktop experience was "not great." The great inconvenience of personal system administration. Example: Freada's consulting business -- Mitch became front line tech support. Lead to thinking about open source, for complex scheduling requirements among multiple people in a small consulting biz. First met RMS when RMS was picketing Lotus/Mitch (1980's). [ co-wrote article on why patents bad for software, see ref below] No commercial market for software to help people get/stay organized. In the mid 1990's Kapor observed unexpected success of Linux/OSS. By late 1990's became convinced that open source would become the dominant methodology for software development. Went back to years of ideas for applications and started thinking about doing them in open source. Chandler: Shared calendar E-mail (has become the center of some people's lives) (todo lists) (how ties into IM) Contacts Free form notes Track information items (designed Agenda in the 1980's to do this) No system administration---"It just works." More in the style of social networking (Friendster, Orkut) ZeroConf/Rendezous/SubEthaEdit/iChat Rendevous view - ad hoc local social networks (hmmm...) Challenge: How to not to let ambition prevent doing something useful. "We picked Python" John Anderson (original NeXT software team) and Andy Hertzfeld (plug for www.folklore.org) w/ Kapor's concurrence. Kapor asked "why are we writing this in Python?" Aware of perl (CGI, more visible than other high level languages) Aware of Java (Swing no good for end-user applications) Python education (developer productivity [cut lag time between conception of idea and implementation idea], good for late binding (letting people add functionality after the fact)] C++ is too hard, not good for prototyping - Used to complaints from developers, legitimate "we can't do that" Standing on the shoulders of giants: wxWidgets, wxPython, BerkeleyDB, DBXML, Lucene, OpenSSL OSS Contributions: PyLucene (Lucene as a Python extension; compile lucene to C with gcj, expose to Python with SWIG wrapper) Extend Lucene to index and search textual data stored in BerkeleyDB. -----Comments by JCC - Based on Mitch's Comments -------- Open source allows us to "commoditize" software infrastructure. Everything becomes a commodity over time. Thats what scares the hell out of the big "infrastructure" companies like Microsoft and Oracle. When the infrastructure becomes commoditized these companies lose vendor-lockin. OS -----> Linux Web Server ----> Apache App Server ----> Zope, JBoss, Geronimo PLangauges ----> Python, PHP, Java (Eventually) Databases ----> BDB, MySQL, Postgres I think the next wave of commodization will be the "business infrastructures" systems: Accounting packages Contact Management ------------------------------------------------------- Fewer billionaries (people will still get paid to develop), but consumers will get access to more and better software. An acceptable social tradeoff. In 5-10 years, it'll be a completely done deal that F/OSS has taken over. Challenges: Performance - you can never do enough to improve the performance of your system. There's always more things to do with the additional performance than waste them. Security - The internet has become mainstream. There are plenty of people out there trying to figure out how to harm people's systems. Flexibility - letting end users add/customize functionality (Applescript like functionality?) - creating functionality/customizing, macro like) "Taking the desktop" - get the various projects work together to accomplish fit and finish. There's more than just your individual project. IP reform - a quick comment here, but desperately needed -- must clean up toxic patents. "Our laws are out of wack with reality." Sustainability of projects - the free rider problem. Companies who use but don't contribute back is an issue. Basic core of projects require maintenance to retain relevance, performance, etc. Final thought Open source has importance beyond software. Tease out general principles. Model for other kinds of biz & other undertakings. Offers lessons that are a corrective to things that we've absorbed that are beliefs not truths. Example: "selfishness is the basis of economic success" -- is this a belief or a truth? [ayn rand?] Open source projects are an example that "selfishness does not have to be the basis of progress" Questions & Answers Funding - Money from Mitch, but also $3M from Mellon Foundation, as well as a consortium of 25 universities (Berkeley, MIT, CMU, etc) who want their own more academic version. Not actively fundraising, waiting until a product exists. Considering "Sleepy-Cat"ish dual licensing to distinguish between commercial and non-commercial use. Organizations - There needs to be a way for non-technical, but "business people" to be involved. How to get them jump-started. Foundations are one model, but not the only one. Intellectual Property - We are not well organized to deal with this issue, and we had better hope that the big crises doesn't hit immediately. Also need help from big corporations (IBM) to do the "heavy lifting" for legal defense of open source. Agile Development - Yes, but.. chandler does both quarterly "dot" releases and continuous builds. Trying to be transparent, and put out a lot of information (wiki). This is a process of "continuous learning." Running in 2 week cycles, always have something usable, and constantly refactoring. Need to make it easier for people to participate, but "not everything is possible." The more baked a piece of architecture, the easier it is for people to participate. Early on, it's hard to have many people involved who are not in the "day-to-day flux". Time-machine - "How would you use Guido's time-machine?" No answer really, will post in his soon-to-be-resurrected blog. [blog link below] -------------------------------------------------------------------------- QUOTES: "Hot and cold running IT" "More code developed per erg of developer energy" "when [OSS] work is done, anyone can benefit" "Selfishness does not have to be the basis of progress." "You know open source is important when the big time parasites show up to collect money." -------------------------------------------------------------------------- REFERENCES: {as documents / sites are referenced add them below} patent article: http://lpf.ai.mit.edu/Links/prep.ai.mit.edu/issues.article hertzfeld mac history: http://www.folklore.org/ spiral calendar: http://xanadu.com.au/ted/INFUTscans/INFUT_Ch3Part1b.jfx lucene: http://jakarta.apache.org/lucene/ wxWidgets: http://wxwidgets.org/ wxPython: http://www.wxpython.org/ BerkeleyDB / XML: http://www.sleepycat.com/ OpenSSL: http://www.openssl.org/ Chandler: http://www.osafoundation.org/Chandler_rel._0.1.htm PyLucene: http://cvs.osafoundation.org/index.cgi/osaf/chandler/persistence/PyLucene/ Applescript: http://www.apple.com/applescript/ Ayn Rand selfishness: http://tinyurl.com/6lb3 OSAF: http://www.osafoundation.org/ Python SF: http://www.python.org/psf/ Kapor Blog: http://blogs.osafoundation.org/mitch/ -------------------------------------------------------------------------- CONTRIBUTORS: {add your name, e-mail address and URL below} Ted Leung, twl@osafoundation.org, http://www.sauria.com/blog Ryan Wilcox, rwilcox@wilcoxd.com, http://radio.weblogs.com/0100544/categories/rpwconferences/ John Carnell, john.carnell@netchange.us, http://netchange.us Donovan Preston, dp@divmod.org, http://www.ulaluma.com/pyx/ Zachery Bir, zbir@urbaape.com, http://www.urbanape.com/ Bob Kuehne, rpk@blue-newt.com, http://www.blue-newt.com Jared Barden, jbarden@wilcoxd.com, http://www.wilcoxd.com Bob Ippolito, bob@redivi.com, http://bob.pycs.net/ Clayton Parker, clayton@sixfeetup.com, http://www.sixfeetup.com Chris Petrilli, petrilli@amber.org, http://www.amber.org/~petrilli/ Russell Finn, rsf@sprucehill.com, http://www.sprucehill.com/rsf/blog/ [soon] -------------------------------------------------------------------------- E-MAIL BOUNCEBACK: {add your e-mail address separated by commas } rpk@blue-newt.com,petrilli@amber.org,ianjones@umich.edu -------------------------------------------------------------------------- NOTES ON / KEY TO THIS TEMPLATE: A headline (like a field in a database) will be CAPITALISED This differentiates from the text that follows A variable that you can change will be surrounded by _underscores_ Spaces in variables are also replaced with under_scores This allows people to select the whole variable with a simple double-click A tool-tip is lower case and surrounded by {curly brackets / parentheses} These supply helpful contextual information. -------------------------------------------------------------------------- Copyright shared between all the participants unless otherwise stated...