7:30
General hubbub, inventory end-of-meeting announcements, any first-minute announcements.
7:35 - 8:40pm Technical Program
Topic: The Natural Language Toolkit (NLTK)
Speakers: Steven Bird, Ewan Klein, and Edward Loper
Links:
NLTK Downloads
Most human knowledge--and most human communication--is representedand expressed using language. Language technologies permit computers to process human language automatically; handheld computers support predictive text and handwriting recognition; web search engines give access to information locked up in unstructured text. By providing more natural human-machine interfaces and more sophisticated access to stored information, Natural Language Processing has come to play a central role in the multilingual information society. The Natural Language Toolkit is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. NLTK includes some 50k lines of Python, a 380-page book (80% complete), and 300Mb of test data, all freely downloadable from http://nltk.org/index.php. In this presentation, the developers of NLTK will introduce the field of Natural Language Processing, demonstrate the main features of NLTK, and describe ways for the Pythoncommunity to participate in the ongoing development effort.
Steven Bird is Associate Professor in Computer Science at the University of Melbourne in Australia, and Senior Research Associate in the Linguistic Data Consortium at the University of Pennsylvania, specializing in R&D on models and tools for large databases of annotated text. Steven edits the book series "Cambridge Studies in Natural Language Processing," and was recently elected president of the Association for Computational Linguistics.
Ewan Klein is Professor of Language Technology in the School of Informatics at the University of Edinburgh in Scotland. He has also been Research Manager for the Natural Language Research Group of Edify Corporation, Santa Clara, and was responsible for spoken dialogue processing. Ewan was the founding Coordinator of the European Network of Excellence in Human Language Technologies. He has lead numerous academic-industrial collaborative projects, most recently in biological text mining.
Edward Loper is a doctoral student at the University of Pennsylvania, conducting research on machine learning in natural languageprocessing. In addition to NLTK, Edward has helped develop othermajor packages for documenting and testing Python software, epydoc and doctest.
7:30
General hubbub, inventory end-of-meeting announcements, any first-minute announcements.
7:35 - 8:40pm Technical Program
Topic: unittest
Speaker: Collin Winter
Links:
A new unittest
pythons unittest module sucks
Motivation for rewriting unittest
Collin reports on his recent work to redesign Python's unittest module. This is a preview of the presentation he'll be giving at EuroPython 2007 on the same topic: "Python's unittest module sucks. Come find out why and what's being done to fix it."
Collin is a Python core developer and works at Google with Guido van Rossum on Mondrian [1]_, Google's code review tool. Most of his Python work is focused on Python 3000, such as the 2to3 tool [2]_ for translating Python 2 into Python 3 source. (video) (code).
8:40 - 9pm
Mapping is a rapid-fire audience announcement of topics the announcer is interested in.
Random Access follows immediately to allow follow up individually on topics of interest.
7:30 - 8:45pm Technical Program
Topic: Newbie Night
Speaker: Alex Martelli, Drew Perttula, Wesley Chun, everyone
The long-awaited next incarnation of "Newbies' Night" happens again! All current memberes and attendees please bring at least one person new to and/or interested in Python. This friendly and interactive beginner talk is open to anyone and everyone in the nearby community who want a quick "intro to Python" and discussion.
Drew and Wesley are longtime members of the group, and Alex is a long-time and highly-respected member of the Python community. They will give a demo/lecture of the language and its features. We will most likely be using some of the slides from Wesley's intro BOF talk and/or Alex's recent talk on Python for Programmers (video) (slides [PDF]).
8:45 - 9pm
7:30 - 8:50pm Technical Program
7:35pm
Topic: Three Generations of User Interface
Speaker: Dennis Reinhardt
Materials: http://www.spamai.com/present/ (after presentation)
I have implemented DialogDevil via three different user interfaces:
The pros and cons of each approach from a developer's perspective will be discussed using metrics such as memory footprint, download size, flexibility, robustness, and visual styling.
8:00pm
Topic: Visualizing python profile results
Speaker: Drew Perttula
I'll present a simple development tool that reads results from the python profiler and renders them into a web page. The page uses colored bars and tinted table cells to highlight additional information about the profile results.
In past Baypiggies meetings, Drew has presented a video editor, an intro to pyrex, and a theater lighting control system. Currently, he spends most of his time working on films with ogres and princesses and on a web game startup.
8:25pm
Topic: Introduction to wxPython
Speaker: Ken Seehart
8:50pm
Announcements and discussion
7:30 - 8:30pm
Topic: PROGRAMMER PRODUCTIVITY: WHAT REALLY MATTERS?
Speaker: Shannon -jj Behrens
Are you fascinated by programmer productivity? Do you wish you could get more done in less time without sacrificing quality? This talk will cover a broad range of topics such as work environment, development environment, and programming language features.
Shannon -jj Behrens is a self-professed language lawyer who works for Mitch Kapor at Foxmarks, a Web 2.0 startup in San Francisco. His eventual goal is to implement a Python-like systems language and then develop a practice kernel in that language.
8:30 - 9:00 Meet & Greet
7:30 PM - 8:50 PM Technical Program
Topic: Python for Prototyping in Air Traffic Control
Speaker:Russ Paielli (NASA Ames Research)
The talk will start with a high-level overview of the US air traffic control system, then it will focus on tactical (i.e., short range) conflict alerting and describe the prototype software that we are developing to replace the legacy software that currently performs that function. Examples of actual "operational errors" will be presented, and the alerting performance of our system will be tested and compared with the legacy system. The rationale for using Python for the prototype and its testing will be briefly discussed.
8:50 PM Mapping/Random Access
7:30 PM - 8:50 PM Technical Program
Topic: Better, faster, smarter.
Python yesterday, today... and tomorrow
Speaker: Alex Martelli
Audience: Assume working knowledge of Python 2.2 or laterassume working knowledge of Python 2.2 or later
Materials:Python 2.5
The new core features and libraries of recently released Python 2.5 are described. The talk starts with Python 2.2 and traces the evolution of releases to build context for what is new in 2.5.
8:50 PM Mapping/Random Access
7:30 PM Technical Program
Topic: Introducing Plone (Content Management System)
Speaker: Donna M. Snow
Materials: Available September 7th
Presentation: Available September 7th
Donna has been building dynamic websites with Plone since 2001 and is an active member of the Plone community. Planned topics for this program (may be revised slightly):
8:30 PM Reports
8:50 PM Mapping/Random Access
Location: Ironport Dungeon Basement
Agenda:
7:30 PM to 8:15 PM
Topic: Paper Cutter Control Software
Speaker:Drew Perttula
I present a recent python project: control software for a modified paper cutter (the fancy-shapes kind, not the large-blade kind). I will get into the applications of python for driving the parallel port, parsing and rasterizing SVG, doing a preprocess on the curves to compensate for a hardware problem, etc. The python modules I used are Numeric, ScientificPython, twisted, louie, elementtree, and Tkinter.
8:15 PM to 8:45 PM
Topic: Twisted.Web2
Presenter: David Reid
I'd present Twisted.Web2. In particular what it is capable of, where it is going, how it differs from Twisted.Web, what all this means for Nevow. Of course I'd try to include a thorough summary of Twisted for those unfamiliar with the project.
8:45 PM to 9:00 PM
Event: Mapping/Random Access
Moderator: Dennis Reinhardt (DAIR Computer Systems)
Level: Open to and accessible by All
Mapping is a rapid-fire audience announcement of topics the announcer is interested in. Random Access follows immediately to allow follow up individually on topics of interest.
Location: Google
Agenda:
7:30 PM to 9:00 PM
Topic: Some Python Integrated Development Environments
Speakers: Marylin Davis (Emacs), Keith Dart (Vim), Tony Capellini (Pythonwin), Mark Ivey (Xcode) and Mike Cheponis (WingIDE)
There is a plethora of Integrated Development Environments for Python. If you need to pick one, or if you are curious about them, this is the meeting for you. We will have 5 developers, each talking about their own favorite environment.
The Demo People
Topic: Emacs
Presenter: Marylin Davis
Emacs - Historically the first piece of the GNU System (which includes Linux), Emacs has a Python mode which brings the classic, flexible, and extendible key-stroke or mouse-driven programmer's editor by Richard Stallman to the aid of the Python programmer. Marilyn will demonstrate the Python debugger under emacs, using a macro to make light work of complicated testing.
Marilyn Davis is the Python Instructor at UCSC-Extension. She is the lead developer at Maildance.com and Deliberate.com.
Topic: Vim
Presenter: Keith Dart
Vim is a ubiquitous and powerful text editor. Although unfriendly to newbies, it's remarkably fast and useful once you take the time to befriend it. Even users of powerful IDEs often long for the speed and convenience of editing text using Vim's key bindings.
Keith will show how he uses vim to integrate other tools to create a vim-centered Python development environment.
Keith Dart works in QA automation and is the primary developer of the PyNMS network application framework.
Topic: Pythonwin
Presenter: Tony Cappellini
Pythonwin is a Python IDE and GUI framework for Windows that runs on Windows 98, 2000, and XP. It comes with the Win32all Python extensions, and is actively under development. It was developed and is maintained primarily by Mark Hammond from Australia, with a fair amount of other people contributing to the project. It implements some IDLE extensions. Some of its features are a Python Shell (cmd line) with command completion, a debugger, editor with syntax highlighting, a popup Object Browser, and a trace collector which catches the output from wintraceutil. Some of the more notable features are its COM browser and makepy utility, which are a huge aid when working with applications using COM.
Tony Cappellini is a recently-unemployed test software engineer, having worked 18 years in the Hard Disk Drive industry. His new employment status offers almost-limitless opportunity to immerse himself into all things pythonic.
Topic: Xcode
Presenter: Mark Ivey
Xcode is the IDE that Apple ships with OS X. Although primarily targeted towards C++, Objective C, and Java it also plays well with Python. It is excellent for writing OS X applications in Python thanks to good integration with Apple's Interface Builder and py2app (the OS X distutils packager).
Mark Ivey is a senior engineer at R2 Technology. Although his job doesn't involve a lot of Python, it is his preferred evenings and weekends language.
Topic: Wing IDE
Presenter: Mike Cheponis
Wing IDE makes rapid Python development fun. Mike will demonstrate just a few of its features on real projects he has written. Mike talk about other features that might be of interests, such as built-in Zope, Plone, Subversion, and Perforce support, plus auto-completion for wxPython and PyGTK.
Mike Cheponis is President of California Wireless, Inc., a Silicon Valley consulting firm that specializes in Wireless Communications Systems, designing RF, Analog, Digital, and software subsystems and products. He writes code in assembly languages, Lisp, and Python.
Location: Ironport Dungeon Basement
Agenda:
7:30 PM to 8:20 PM
Topic: Mercurial Distributed Source Control Management
Speaker: Bryan O’Sullivan
Level: Beginner-oriented with some Intermediate
The Mercurial distributed SCM is written in Python, portable, distributed, easy to learn, and very, very fast. It's being used by such big, well-regarded operating system projects as Xen and OpenSolaris, and smaller, popular projects such as MoinMoin and microformats. Features and some of the techniques used to get good performance are presented.
8:20 PM to 8:45 PM
Topic: Designing Your Own Mini-language
Presenter: Ken Seehart
Level: Advanced
A recipe for the development of special purpose languages involving extensions to the C++ grammar is proposed. This presentation briefly describes the implementation of the NICL programming language.
8:45 PM to 9:00 PM
Event: Mapping/Random Access
Moderator: Dennis Reinhardt (DAIR Computer Systems)
Level: Open to and accessible by All
Mapping is a rapid-fire audience announcement of topics the announcer is interested in. Random Access follows immediately to allow follow up individually on topics of interest.
Location: Google
Agenda:
7:30 PM to 7:50 PM
Topic: CTypes Usage Examples: Direct Windows Api
Speaker: Dennis Reinhardt DAIR Computer Systems
Level: Advanced/Specialist
CTypes is an add-on package to be integrated into Python 2.5 release. CTypes provides a light-weight mapping from Python directly to system DLLs, illustrated in this talk by the Windows API. Difficulties encountered in implementation will be mentioned.
7:50 PM to 8:40 PM
Topic: 2006 BayPIGgies Member Survey Results
Presenter: Stephen McInerney
Level: ALL
2006 Member Survey
7:50 Prize Draw with Anna Ravenscroft
7:53 - 8:25 Slide Presentation
8:25 - 8:40 Interactive Q&A
(We must break at 8:40 sharp but can continue discussion afterwards.)
8:40 PM to 9:00 PM
Event: Mapping/Random Access
Moderator: Dennis Reinhardt
Level: Open to and accessible by All
This allows establishment of and follow up on mutual interest(s). Mapping is a rapid-fire audience announcement of topics the announcer is interested in. Random Access follows immediately to allow everyone to follow up individually on topics announced in which they also have an interest. This is modeled on the format of the legendary Homebrew Computer Club.
Agenda: Django talk
Location: Google
Level: all
Speaker(s): Jacob Kaplan-Moss
Jacob is one of the lead developers of Django, one of the up-and-coming web frameworks that seeks to challenge Ruby-on-Rails. He will be fine-tuning his talk until the last minute but plans to cover the following:
Agenda: Book review and newbie questions
Location: IronPort
Level: all
Speaker(s): JJ (Shannon Behrens)
JJ will review "Professional Software Development" with discussion and newbiew questions afterward.
Agenda: PyCon Previews
Speaker(s): (various)
Abstract:
In recent years there has been an explosion of interest in standardized
calendaring based on iCalendar (RFC2445). In 2004, several groups
perceived a need for and independently implemented general Python
iCalendar libraries. vobject sprung out of the Open Source Application
Foundation's need for Chandler to interoperate with CalDAV servers and
other calendar clients.
vobject features parsing and serialization of iCalendar objects,
including converting python standard timezone classes to and from
iCalendar VTIMEZONE. It also integrates with the dateutil package to
provide expansion of recurrence rules.
Speaker Bio: Jeffrey Harris recently moved to the Bay Area after living for 7 years in rural Missouri at Dancing Rabbit Ecovillage. He misses hot weather, but not snow. When he's not working for the Open Source Applications Foundation, he plays ultimate frisbee.
Abstract: py2exe is a Python distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation. This talk by the maintainer of py2exe will cover the simple use, options, more complex use, and future of py2exe.
Speaker Bio: Jimmy Retzlaff has been using Python professionally since 1998 and is the maintainer of py2exe.
Abstract:
This presentation discusses Spike Asset Manager
(SAM),
the reasons python was chosen as implementation language as well the
benefits python has provided.
SAM is a tool that detects open source components on a system
(windows, linux, mac). By the time PyCon rolls around SAM will have
transformed from a relatively simple cross platform command line
application to a network aware server capable of detecting other
instances. IT users will be able to control all instances from either
the command line or a gui (fancy AJAX provided in a web broswer
because some systems may be headless).
This talk will discuss the evolution of SAM, the design decisions made
and a few of the open source projects it uses (PDIS Xpath,
ElementTree, Path, Cheetah, json-py, MochiKit, WebStack, pyzeroconf,
py2exe and more). The intended audience is python users who are
interested in AJAX, Web2.0 or converting a commandline app into a web
enabled app.
Speaker Bio: Matt Harrison is a senior software engineer at SpikeSource, and is happy there because he gets to work with open source software and python. He has a BS in CS from Stanford.
Agenda:
"Why Python?" and "Newbies' Night"
Speaker:
Marilyn Davis
-
Marilyn earned a Ph.D. in Radio Astronomy from UCSD and Master's
degrees in Applied Physics from UCSD and Mathematics from DU. Computer
programming and teaching captured her imagination and she has made
significant contributions in scientific, statistical, operations
research, test-development and groupware applications. She has been
teaching C Programming at UCSC-Extension for 17 years, and Python for
3 years.
Marilyn will outline the characteristics of a *good* program and show how Python takes the sting out of achieving those characteristics. We will study 3 Python program files: a beginner's program to demonstrate syntax, readability, and introspection; an administrator's script to demonstrate library access and portability; and a module containing a class definition to demonstrate how Python de-mystifies object-oriented programming.
Time permitting, we will look at the results of a few language comparison studies as well as do the traditional "Newbies' Night" activities such as field questions about Python, data types, comparisons with Perl, etc., plus give a live demo of some of Python's features, so bring all your friends and colleagues who are curious about Python and why you are so passionate about it!
Agenda:
GCipher, a GUI encryption tool
Speaker:
Shannon -jj Behrens
GCipher is a simple application that shows how to combine Glade/PyGTK, the async module, and a plugin architecture.
Agenda:
Prototyping a GPS in Python
Speaker:
Hasan Diwan
Hasan will give a demo of a GPS system that is being prototyped in Python and implemented in Java. Let's all help him find reasons to skip the Java!
Agenda:
Audio/Visual Experiments in Python
Speaker:
Tim Thompson
Radio Free Quasar is an audio-mangling VST-Hosting application that was deployed inside an antique radio for a Burning Man installation in 2004. Ergo generates real-time graphics in response to drummer-generated MIDI input. These Python-based projects will be described and demonstrated. Slides from a presentation at electro-music 2005 can be found here.
Agenda:
SQLObject & FormEncode, A Practical Introduction
Speaker:
Ben Bangert
Agenda:
RRsR
and
OSCON 2005
Speaker:
Hasan Diwan
and OSCON attendees
Hasan Diwan will present RRsR, a web-based RSS reader written using
feedparser and python CGI. This is expected to be a
short presentation; afterward, anyone who was at OSCON is invited to
summarize what they saw/heard.
Hasan's blog is at http://hasan.wits2020.net/~hdiwan/blog/archives/cat_rrsr.html
Agenda:
Descriptors, Decorators, Metaclasses: Python's "Black Magic"?
Speaker:
Alex Martelli
Python's versions since 2.2 have introduced, enhanced, and clarified some new advanced mechanisms: two of them are the underpinnings of Python's Object-Oriented Programming (OOP), Descriptors and Metaclasses; one, introduced in 2.4, is a syntax for the systematic application of an important use case for higher-order functions. This presentation takes its contents mostly from the (informally known as...) "Black Magic" chapter of the Python Cookbook (2nd Edition), also known (official chapter title!) as "Descriptors, Decorators and Metaclasses", and focuses on some of the most interesting applications and related idioms presented there, with expanded explanations of the underlying language mechanisms and additional examples.
Descriptors control and guide attribute access. Python offers several built-in descriptor types -- for example, in today's Python, functions are descriptors -- and also lets you code your own.
Decorators are a simple syntax to feed a function as the argument to another (higher-order) function, and have the latter's resulting value used in lieu of the original function -- while decorator syntax ('@deco') is new in Python 2.4, you can use the same approach with slightly clumsier syntax ('func = deco(func)') in 2.3 and even 2.2.
Metaclasses are to classes as classes are to instances. Python's built-in metaclass is the built-in 'type', and you can subclass and customize it to produce custom metaclasses to control behavior of whole family of classes.
This presentation shows how to best use each of these mechanisms, both in terms of existing, Python-supplied objects and types (descriptors, decorators and metaclasses), and of coding and using your own custom ones. What are "data" and "non-data" (aka "override" and "non-override") descriptors, and how and why might you code and use either kind? When do you need introspection to ensure proprer decoration, and how can Python's standard library help there? How should custom metaclasses cooperate to insure peaceful coexistence of several of them, and how can you solve metatype-conflicts? And, of course -- how do custom descriptors, decorators, and metaclasses cooperate with each other, and with other powerful Python mechanisms such as introspection, closures and advanced dynamic gyrations, to let you write elegant and powerfully customized code with minimal effort? This presentation explores these questions, providing the fundamental knowledge and the outlook and guidance that will help you answer the questions in the most useful ways for your own applications.
Agenda:
Lighting System Project
Speaker:
Drew Perttula
Drew says:
I have worked since 2002 with partner David McClosky on a theater lighting control system. We've used the system every summer to design and execute lighting for a dance show. The system includes a music player, a variety of programs to design and time light cues, and drivers for hardware that outputs the DMX protocol used by most theatrical lighting gear.
The python issues I will cover include:
The hardware demo will consist of a flickering status LED only, unless someone else can bring in a DMX-controlled dimmer or light.
Pre-Meeting: To celebrate our first meeting there, a buffet dinner will be served by Google in the same room as the talk (see above) starting at 6:45p. The talk itself will begin at the normal 7:30p start time.
Agenda:
Design Patterns/OOP
Speaker:
Alex Martelli
Alex will be repeating his OSCON/PyCon presentations about OOP and design patterns -- with improvements!
Alex is a world-renowned author. He has written two "bibles" of the Python community: Python In A Nutshell (O'Reilly ISBN 0-596-00188-6) and Python Cookbook (O'Reilly ISBN 0-596-00167-3) co-edited with David Ascher. Alex has worked as an independent consultant, but is now part of the Google team.
Agenda:
PyCon Wrap-up
Speakers:
PyCon attendees (incl. Guido and others)
Agenda:
Python Objective C and GNUStep
Speakers:
Donovan Preston
Donovan Preston will lead a discussion about using Python with OS X, including integrating with PyObjC and GNUStep.
Agenda:
Developing Responsive GUI Applications Using HTML and HTTP
Speakers:
Donovan Preston
Donovan will be treating us to a preview of his PyCon presentation:
Google's Gmail was the first high-profile example of a highly responsive web application, blurring the line between the desktop and the web. The techniques employed by it to reduce perceived latency have been available for years, but involve a large amount of JavaScript that can be difficult to implement. This presentation will discuss the history of these techniques, implementation strategies, and the use of LivePage, included within the Nevow web application framework.
Agenda:
Python Tips and Techniques
Speakers:
Danny Yoo
Danny leads a discussion of Python coding techniques based on snippets contributed by several people. To add your snippet to the list before the talk, send e-mail to Danny. You may want to read the code listings before the talk.
You can also pick up the code in a tarball.
Agenda:
Open Source and Intellectual Property Law
Speakers:
Terry Carroll
Open Source is a great idea, but what are the ramifications of Open Source licensing with respect to intellectual property law, particularly when combined with commercial products? Terry Carroll discusses the following topics:
Terry Carroll is a former programmer and computer architect turned attorney. He's best known in the Internet world for the Usenet Copyright FAQ, written and periodically posted back when people still read usenet for more than the comp.* groups.
He's consulted on use of open source code, and teaches copyright law at Santa Clara University School of Law. At present, Terry is Intellectual Property Counsel for Borland Software Corporation, and programs in Python for fun on his own time.
Agenda:
C/C++ Integration
Speaker:
Chad Netzer
Python was designed for easy integration with C, but it has never been trivial. There are many different tools available, each with different strengths and weaknesses. Chad will be leading a series of mini-tutorials to expose the audience to some or all of the following: Boost, ctypes, Pyrex, Scons, SIP, SWIG, Weave
We haven't settled the agenda, so go to the BayPIGgies mailing list and vote!
As of Tues 11/9, we have speakers for the following:
Agenda:
Beginner's Roundtable
Speaker:
Danny Yoo
Agenda:
pyscheme
Speaker:
Danny Yoo
Agenda:
GUI programming and debugging
Speaker: Y O U
Agenda:
BitPim
Speaker: Roger
Binns
BitPim is a program that manipulates data on cell phones. Roger will discuss the issues in writing BitPim, including some or all of:
Agenda:
Python's Type System
Speaker: Bruce Eckel
Bruce will be repeating his keynote from PyCon DC 2004. From the PyCon website:
topMany people observe that type checking is a religious discussion best avoided. I often agree, having started more than my share of fires in this area. However, there are a few issues surrounding types and type checking that capture the essential distinctions between programming languages. This understanding makes the pitfalls worth the risk, so in this talk I will look at various issues and arguments surrounding the concept of type, and in particular examine the phenomenon of 'latent typing' (often called 'weak typing'), why the concept is powerful, and how it is expressed in different languages. In the process, I will attempt to clear up many of the issues that have arisen during attempts to describe Python's place in the spectrum of language features.
Agenda:
6pm dinner
PyCon trip report
Speakers: Guido van Rossum,
Aahz
At 6pm, we'll be having a pre-meeting dinner at Jing-Jing in downtown Palo Alto. It's located at 443 Emerson, just north of University. Please send e-mail to baypiggies@baypiggies.net if you're going.
During the meeting, Guido and Aahz will talk about PyCon. Learn what you missed so you'll be enticed into going next year. (Guido will reprise at least part of his PyCon keynote.)
topAgenda: Two sessions
A Practical Perspective on Python Performance
Jimmy Retzlaff
Toying With Python - Highlighting "Keywords" in a Body of HTML Text
Danny Yoo
Repeating the March structure, we're going to have two shorter sessions this meeting. In the first session, Jimmy will discuss a number of lessons learned regarding performance in a relatively large client-server Python application. Concepts including when, what, and how to optimize will be discussed. Technologies including extension modules, Pyrex, and Psyco will be briefly compared. The talk will conclude with some thoughts about the potential performance benefits of dynamic typing over static typing.
In the second session, Danny will demonstrate several approaches to solving a "simple" text processing problem including several wrong turns along the way to show what not to do. Both correctness and performance will be important in this problem. The tutorial should briefly cover: brute-force searching, dictionaries, regular expressions, and if we have time, maybe even something like the Aho-Corasick automaton.
topAgenda: Two sessions
The Bikle Python Learning Experience
Dan Bikle
Self Documenting Test Automation Framework
Patrick Schork
We're going to have two shorter sessions this meeting. The first one will be run by Dan Bikle, a newcomer to Python. He'll be talking about his experiences in learning Python as part of a CS class at De Anza college. In a reversal of the usual process, he'll be asking the questions and the audience will provide the answers. You can find his code at http://www.bikle.com/FOOFMAPI/FOOFMAPI.zip
In the second session, Patrick Schork will discuss a QA framework that combines Python and XML to help large testing teams build multi-tier regression and system levels tests.
topThis is progress and status report on SpamAI, a commercial anti-spam shareware application, implemented in Python and first reported to BayPiggies in Feb. 2002. The technical approaches and experience with packaging, updating, and supporting a ready to run Python distribution are discussed. This app hosts multiple client and server threads having both email and web protocols. The internal thread and process tree to support this are reviewed. as well as the object and module architecture.
Dennis Reinhardt has been designing computer hardware and software since graduating from MIT with dual degrees in 1965 and 1966. He was previously a Senior Architect at Intel and is now owner of DAIR Computer Systems. He was chair of the Hot Chips 8 conference and of the Santa Clara Valley Chapter of the IEEE Computer Society. He holds 7 US patents. He was elected to the board of the 1300+ member Association of Shareware Professionals for a 2-year term starting Jan. 1, 2004.
topAahz will rerun the Python Threads talk he gave at Pycon DC 2003, which is a cut-down version of the slides available from his OSCON 2001 Threads Tutorial.
topKeith Dart will talk about pyNMS, a project he has hosted on SourceForge. pyNMS allows one to develop network management applications. There will be discussion of the project, as well as discussion about a distributed Python software repository (ala CPAN or Gentoo)
topPython is an OO programming language that is usable for pedestrian tasks typically called "scripting", as well as for the construction of highly advanced class libraries. The latest versions, Python 2.2 and 2.3, have added significant power to Python's competence in the latter area, primarily through the introduction of two new concepts: iterators (a generalization of for loops) and descriptors (a generalization of customizable attributes).
In this talk I will present the principles and some examples of these additions, and show how they are useful for lowly scripting tasks as well as for advanced class library authors. I encourage audience participation and will be available for questions afterwards.
Guido van Rossum is the creator of Python, one of the major free scripting languages. He created Python in the early 1990s at CWI in Amsterdam, and is still actively involved in the development of the language.
In 1995 he moved to the US; first to work for CNRI in Reston, VA as a researcher, then for Zope Corporation as Director of PythonLabs, and since 2003, after a move to the SF bay area, for Elemental Security.
His home on the web is http://www.python.org/~guido/.
Pizza and snacks was provided before the meeting, at about 7:00. Thanks to Jim Oakley of Google for providing the pizza!
My slides from last night are online as PowerPoint and PDF files at http://www.python.org/doc/essays/ppt/ (scroll all the way to the end).
If you missed it, you can watch the Stanford video (linked to from the above URL) or come to the ACCU meeting in San Jose, Tuesday 12/9 at 7pm (http://www.accu-usa.org/).
topNote: our regular meeting times have been rescheduled: we are now meeting on the second Thursday of each month.
The topic of this month's BayPIGgies meeting is GUI programming, with an emphasis on the use of Model-View-Controller and Model-View-Presenter architectures. There will be a short presentation, followed by an open discussion.
Jimmy Retzlaff will present a simple RPN calculator application, written in wxPython, that demonstrates MVC decoupling between the GUI and other program logic. This will lead to discussion of people's experiences using MVC or MVP with Python's GUI toolkits. Bring your questions and experiences to help contribute. Discussion on other GUI concepts or toolkits are welcome.
Here are the URLs of the MVC/MVP pages I was showing in case anyone is interested in reading further:
If you want to explore the calculator source code further, you can download it from: http://www.averdevelopment.com/python/calculator.zip
I'm not prepared to release the magma.ui package yet, but I have included the most recent broker/broadcaster implementation in with the calculator source. The original broker/broadcaster Python Cookbook recipe is at:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/81983It also appears in slightly edited form in the print version of the Python Cookbook if you happen to have that.
Finally, here is a link to SciTE, the editor I use. You can also find information about the Scintilla control there.
http://www.scintilla.org/SciTE.htmlScintilla is used in a wide variety of projects:
http://www.scintilla.org/ScintillaRelated.html
This talk will demonstrate an implementation of a wavelets package for SciPy, and present some applications with signal processing and image classification. There will be discussion of the benefits of doing scientific computation with Python, unit testing with statistical methods, and using SciPy with PythonCard as a learning tool. (Knowledge of wavelets is not a requirement, and the math will be kept to a minimum)
NOTE: the original announcement for this meeting incorrectly mentioned the 11th. This is in error --- this month's meeting is on the 10th.
topWhat's up in Python 2.3? Find out tonite. :-)
Call For Talks: We are actively seeking speakers for BayPIGgies!
If you would like to give a talk at one of our remaining 2003 meetings
(any Python related topic), send mail to Wesley, Aahz, Tony, and Danny
to coordinate!
This month's an informal meeting where we all get together to shoot the hay and talk about the future of BayPIGgies: upcoming meetings, stephen's and chad's survey of topics, website cleanup, and future direction now that Wesley will be preoccupied in the near-term :-).
We will also ruminate about the upcoming O'Reilly Open Source Convention (OSCON) and Python 11 conference happening together in Portland the week after July 4th.
Finally, anyone fiddle around with Curl and want to give a talk on it with relationship to Python? Anyway, we'll be giving away a free copy of "Enterprise Curl" by Paul Sheehan (Dec 2002: Addison-Wesley) for the lucky volunteer -- talk must be presented in 2003 ;-) -- and also another giveaway copy in a separate drawing for all attendees this month. Some starter links:
1-page intros
http://developers.slashdot.org/article.pl?sid=01/08/06/2113227
http://www.wikipedia.org/wiki/Curl_Contents_Language
brief plus link to Lightweight Languages Workshop write-up: http://developers.slashdot.org/article.pl?sid=01/11/28/0636201
see cute post subjected with "Re:ANYTHING!!!" by Jason Earl on Fri Apr 06: http://slashdot.org/article.pl?sid=01/04/06/1335241
topWe will give a high-level overview of some of the talks which were given at the PyConf 2003 Python Community Conference which happened at the end of March in Washington, DC:
Wesley Chun is a volunteer coordinator for BayPIGgies and sometimes volunteer moderator for the Python Tutor mailing list. He currently works in San Francisco writing Python software for doctors.
topThe basic concepts of machine learning will be presented, with a focus on Support Vector Machines (SVM), which have shown their effectiveness in many domains of application. Examples of applying the methodology in areas such as text categorization and bioinformatics will be discussed.
About the Speaker:
Asa Ben-Hur
is applying machine learning methods for the analysis of
biological data ranging form protein function prediction, analysis of
gene expression and protein expression to methods for elucidating gene
regulation.
He is currently a postdoc at the biochemistry department at Stanford.
top
Agenda: PyChecker and Friends
Speaker: Phil Lindsay
PyChecker and friends: Easing the transition from ad hoc scripts to stable, maintainable Python applications
PyChecker can be thought of as "Lint" for Python, and is a tool for finding bugs in Python source code. This talk will introduce PyChecker, show some of its functionality and discuss some of the lessons learned from its use in a commercial software development environment. The presentation will be from the perspective of a happy user & interested hacker. Some of the future goals of the project's authors will also be described. If time permits, the speaker will demonstrate a couple of small tools he has developed to also help in the creation of stable, maintainable applications.
About the Speaker:
Philip Lindsay
is a recent graduate of the University of Canterbury, in
Christchurch, New Zealand. He has been in the Bay Area for the past four
months on a "Work USA" student work exchange program visa. During this
time he has worked for a San Francisco based software development company
using Python and wxPython.
The Python technology underpinning a new spam management program is described. The program uses Python threading with independent threads of control for acquiring POP3 email, delivering that email to client, and for user control via integrated http server. Threads are spawned dynamically. Most of the code is written at the socket level. The approach taken to allow an embedded single executable install and live update will be described. http://www.spamai.com
About the Speaker:Due to popular demand, we are having another Newbie Night (e.g. April 2002). This is the chance for all Python programmers to bring their friends and colleagues who should hear about Python. It is also for those who want to or are picking up Python and have questions! We will have a good number of Python experts who will try and help you out. Perl and Java experts are welcome too, as many Python developers also have experience there and can give you an honest comparison.
The format is this: Wesley (or Danny) will give just a short half-hour intro presentation on Python to beginners followed by a quick demo, and then we will open it up to everyone for Q&A. Mingling and networking will bring our meeting to a glorious conclusion. :-)
NOTEs: we had a great meeting this month... as usual, the socializing afterwards caused us to leave well past our bedtime.
topI want to edit digital video in a unix way. That means I want an open-source suite of non-monolithic, flexible tools and transparent data formats that I can use with all my other unix tools. I won't stand for any segfaults or other data-losing behavior. And most of all, I need it by yesterday.
Development started mid-September, and by late October I was transcribing and logging captured DV footage into my xml format. Soon after that, the timeline-style editor was running, and we were dragging thumbnails from footage index pages (in html displayed in Mozilla) right into the timeline. There's even the beginning of an effects plugin system, which I currently use to handle the mixing of audio tracks. At November's meeting, I'll be demoing the editor itself and discussing the tools I used, the components I had to build, and where I plan to go with it next.
I have a sloppy wiki site at http://bigasterisk.com/editor where I've put some screenshots, samples of the xml formats, use cases, and other notes I made during development. The wiki also gives instructions for getting all the code via anonymous CVS. The code is still very poorly packaged, so it's probably near-impossible to get the code to run anywhere else as of yet.
Notes: Drew's talk was excellent; we had a great turnout (over 16 people) and featured HOT food for the very first time!
topWesley will just give a run down on some of the key talks at this year's O'Reilly Open Source Convention which happened late July. Some of the talks to be summarized include:
Download links:
NOTE: We had our largest atttendance of the year with nearly 20 people this time! Invite all your friends!!
topWe will discuss how we are applying a new Python-based MVC architecture to create an efficient, Pythonic web application framework that separates presentation templates from the Python source code with DOMTemplate. The framework componentizes behavior into reusable objects with DOMWidgets and DOMHandlers.
After creating web applications in three separate Python frameworks -- Webware for Python, Zope and Apache/Python cgi -- InterSight decided to create its own MVC framework, based on some of the ideas from IBM and Lutris Enhydra's Barracuda project, to power their automated publishing applications. Their applications enable scalable content: the ability to produce, from a single set of managed data and images, many different marketing communication pieces: press-ready Adobe InDesign and QuarkXPress files, web pages, order sheets, sample stickers, price tags and more.
About the Speaker:
Donovan Preston is a software engineer at InterSight and applies his
extensive skills in the design and publishing industry to create automated
publishing software. Donovan has used Python to develop the WebMVC
architecture that enables the rapid development of large, Pythonic
Web Applications.
In this talk, we will discuss the pyNMS package -- what's in it, where to find it, and how to use it.
The pyNMS package is a collection of Python (and some C) modules for use in network management applications. It is also useful for testing and other types of applications.
This package contains a real grab-bag of modules, the most notable are SNMP Management, MIB browsing, XML and XHTML file manipulation, and other miscellaneous modules you may find useful.
About the Speaker:
Keith Dart has been working as a Quality Assurance Engineer and
Network Engineer at various ISPs, carriers, and equipment
manufacturers for many years. He currently works at Pivia, Inc.
writing QA infrastructure software in Python.
Notes: We had a great meeting with 8 attendees. It turns out that Keith's package is more than just about network management -- it turns out that there are many other useful tools which come in the distribution, not to mention tweaks and improvements to many of the existing Python modules.
topContinuing the high-level talks for the O'Reilly OSCON 2002 conference at the end of this month, Wesley will give an introductory talk on various forms of Internet programming using Python:
The full description of the tutorial I will be presenting can be accessed here. I will also be giving the "now"-annual intro to the complete newbie BOF: What is Python? at the upcoming conference.
top
Agenda: Python for (Perl) Programmers
Speaker: Aahz
This is a fast-paced tutorial that will be presented at
the O'Reilly OSCON 2002 conference at the end of July.
Although the non-Python examples use Perl, it's aimed at
experienced programmers of all sorts. Aahz will be using
BayPIGgies members as guinea pigs for the middle section
of the tutorial, which focuses on Python objects and
namespaces. :-)
Aahz has been kicking around the computer industry for more than two decades, doing tech support, programming, consulting, tech writing, and training. Aahz recently signed a book contract for an intermediate-level Python book, which will be published in early 2003.
topOur host at Stanford and BayPIGgies volunteer Danny is out of the country this month, so we are going to take Deirdre's advice and have a Python roundtable over dinner for this month's meeting!
We will meet at the usual 7:30pm time, but instead of Stanford, we will be at the Coco's in Sunnyvale right off of Lawrence and 101. If we finish early, there will be time for those who wish to go to the nearby Digital Guru bookstore or Fry's Electronics! Both are about 1-2 minutes away by car from Coco's.
topInvite everyone you know who may be interested in Python but have questions, would like to learn more about it, or need some advice on an application! These meetings have been very popular in the past, with a good mix of newbies as well as old hands. They are even more fun when one or more Perl experts come around wondering what the big deal is about Python. :-) Come join us for this interactive session!
Next Meeting (5/8): Eating Out with Python (our meeting room will not be available, so we will meet and chat over dinner at a local restaurant!)
topAndrew Dalke and Jeff Chang founded the BioPython project in August 1999 to promote the development of shared software infrastructure in bioinformatics. This field applies computational algorithms to the storage, distribution, and analysis of biological data. Since many researchers share similar common tasks, the goal was to reduce the overhead from duplicated work. Since then, Biopython has become quite successful in the field and is in use in over 100 sites around the world.
During this talk, Jeff will cover the architecture, technologies, and capabilities of Biopython. He will also give a sneak preview of the new functionality in the upcoming version.
Side Note: Steve Holden, author of Python Web Programming will be in the Sacramento area the last week of February, so if you want to meet him, chat, and/or get your book signed, drop him a line at sholden at holdenweb.com to coordinate.
topMany of us will not be able to make it to the Python10 Conference (Feb 4-7 2002)... Todd will give us the lowdown on what happened.
Notes: 14 people came to the great talk by Todd, who not only gave a summary of the conference but summarized his paper on using NNTP in a unique sort of way as well.
top
New Location: Stanford University, 7:30pm
Agenda: The new BayPIGgies and Python news
Speaker: Wesley Chun, BayPIGgies
Notes: we had 6 people show up at our inaugural meeting at Stanford; pretty good, esp. given the last minute notices. If you want a PDF of the slides, contact me at wesc at deirdre.org.