The ACCU is once again hosting a UK Python Conference on the above dates
at the Randolph Hotel in Oxford. Sign up now.....
http://www.accu.org/index.php/conferences/2006/schedule
PROGRAMME
=========
I am happy to announce that Guido van Rossum is once again a keynote
speaker for the entire ACCU conference. Following his keynote we have
a single, 2-day Python track on Wednesday and Thursday including...
Steve Holden: The Best of PyCon
Michael Hudson: Error Handling with Recovery
Phil Thompson: PyQT 4
Michael Hudson: PyPy - a progress report
Simon Willison: Django
Remi Delon: CherryPy and TurboGears
Chris Withers: Templating systems
Andy Robinson: Metadata and models in Python
Andrew Thompson: Financial Programming in Python
...and of course lightning talks and BOFS will be welcome....
Friday 21st will feature a Dynamic Languages track with in-depth talks
on Javascript, Ruby and Groovy, which I am sure will be of great
interest to Python developers; and of course the dinner.
PRE CONFERENCE PYTHON TUTORIAL:
===============================
John Pinner will be giving a full day "Python for Programmers" tutorial
on Tuesday prior to the main event. This tutorial is aimed at
programmers who have no previous knowledge of Python but who would like
to know more about it. If you want to convert your colleagues, this is
where to send them....
ABOUT THE ACCU CONFERENCE
=========================
For those not familiar with the event, the ACCU conference is one of the
foremost gatherings of programming talent in the world, regularly
featuring authors and major figures from the C/C++/C#/Java/Python and
other communities. The cheapest way to attend is to join the ACCU
This will be the LAST CHANCE to attend this fantastic event; after more
than 5 years of being nurtured by the ACCU, the UK Python community will
hopefully be organising a standalone conference in future years. Python
talks will continue to be welcome (and we hope numerous) on the ACCU
programme, but not as an advertised "mini-conference"; instead we'll be
shifting focus to dynamic languages in general.
Best Regards,
Andy Robinson
ACCU Conference Committee
The ACCU is once again hosting a UK Python Conference on the above dates
at the Randolph Hotel in Oxford. Sign up now.....
http://www.accu.org/index.php/conferences/2006/schedule
PROGRAMME
=========
I am happy to announce that Guido van Rossum is once again a keynote
speaker for the entire ACCU conference. Following his keynote we have
a single, 2-day Python track on Wednesday and Thursday including...
Steve Holden: The Best of PyCon
Michael Hudson: Error Handling with Recovery
Phil Thompson: PyQT 4
Michael Hudson: PyPy - a progress report
Simon Willison: Django
Remi Delon: CherryPy and TurboGears
Chris Withers: Templating systems
Andy Robinson: Metadata and models in Python
Andrew Thompson: Financial Programming in Python
...and of course lightning talks and BOFS will be welcome....
Friday 21st will feature a Dynamic Languages track with in-depth talks
on Javascript, Ruby and Groovy, which I am sure will be of great
interest to Python developers; and of course the dinner.
PRE CONFERENCE PYTHON TUTORIAL:
===============================
John Pinner will be giving a full day "Python for Programmers" tutorial
on Tuesday prior to the main event. This tutorial is aimed at
programmers who have no previous knowledge of Python but who would like
to know more about it. If you want to convert your colleagues, this is
where to send them....
ABOUT THE ACCU CONFERENCE
=========================
For those not familiar with the event, the ACCU conference is one of the
foremost gatherings of programming talent in the world, regularly
featuring authors and major figures from the C/C++/C#/Java/Python and
other communities. The cheapest way to attend is to join the ACCU
This will be the LAST CHANCE to attend this fantastic event; after more
than 5 years of being nurtured by the ACCU, the UK Python community will
hopefully be organising a standalone conference in future years. Python
talks will continue to be welcome (and we hope numerous) on the ACCU
programme, but not as an advertised "mini-conference"; instead we'll be
shifting focus to dynamic languages in general.
Best Regards,
Andy Robinson
ACCU Conference Committee
Code available here:
http://littlelanguages.com/web/software/python/modules/cmdloop.py
Base class for writing simple interactive command loop environments.
CommandLoop provides a base class for writing simple interactive user
environments. It is designed around sub-classing, has a simple command
parser, and is trivial to initialize.
Here is a trivial little environment written using CommandLoop:
import cmdloop
class Hello(cmdloop.CommandLoop):
PS1='hello>'
@cmdloop.aliases('hello', 'hi', 'hola')
@cmdloop.shorthelp('say hello')
@cmdloop.usage('hello TARGET')
def helloCmd(self, flags, args):
'''
Say hello to TARGET, which defaults to 'world'
'''
if flags or len(args) != 1:
raise cmdloop.InvalidArguments
print >> self.OUT, 'Hello %s!' % args[0]
@cmdloop.aliases('quit')
def quitCmd(self, flags, args):
'''
Quit the environment.
'''
raise cmdloop.HaltLoop
Hello().runLoop()
Here's a more complex example:
import cmdloop
class HelloGoodbye(cmdloop.CommandLoop):
PS1='hello>'
def __init__(self, default_target = 'world'):
self.default_target = default_target
self.target_list = []
@cmdloop.aliases('hello', 'hi', 'hola')
@cmdloop.shorthelp('say hello')
@cmdloop.usage('hello [TARGET]')
def helloCmd(self, flags, args):
'''
Say hello to TARGET, which defaults to 'world'
'''
if flags or len(args) > 1:
raise cmdloop.InvalidArguments
if args:
target = args[0]
else:
target = self.default_target
if target not in self.target_list:
self.target_list.append(target)
print >> self.OUT, 'Hello %s!' % target
@cmdloop.aliases('goodbye')
@cmdloop.shorthelp('say goodbye')
@cmdloop.usage('goodbye TARGET')
def goodbyeCmd(self, flags, args):
'''
Say goodbye to TARGET.
'''
if flags or len(args) != 1:
raise cmdloop.InvalidArguments
target = args[0]
if target in self.target_list:
print 'Goodbye %s!' % target
self.target_list.remove(target)
else:
print >> self.OUT, \
"I haven't said hello to %s." % target
@cmdloop.aliases('quit')
def quitCmd(self, flags, args):
'''
Quit the environment.
'''
raise cmdloop.HaltLoop
def _onLoopExit(self):
if len(self.target_list):
self.pushCommands(('quit',))
for target in self.target_list:
self.pushCommands(('goodbye', target))
else:
raise cmdloop.HaltLoop
HelloGoodbye().runLoop()
I'll be doing a short presentation on my recent work on the StarPy
Asterisk Protocols for Twisted. These protocols allow Python programmers
to write Asterisk FastAGI and AMI customisation and management scripts
in the same process as code running any other Twisted clients/servers.
After that we'll have time for open discussion.
Meeting is at the regular time and place, Linux Caffe, 7pm.
Details here:
http://web.engcorp.com/pygta/wiki/NextMeeting
Hope to see you all there,
Mike
--
________________________________________________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://www.vrplumber.comhttp://blog.vrplumber.com
FileTrack is the first desktop-like web application based on Porcupine
Web application server and QuiX. It is a web enabled communication log,
keeping track of all your inbound and outbound documents. It supports
multiple logs, auto-archiving of older entries and generates simple
reports based on multiple criteria. One or more log entries, contacts
or documents can be grouped together into an issue, for easier
monitoring.
This release is compatible with the new Porcupine and QuiX APIs.
It also includes a minor optimization and a bug fix. The script that
assigned the security roles on a log entry, based on the sender, the
recipient and the CC list, was faulty. If a FileTrack author was
included in this list, its role on the log entry was changed to
'Reader'. As a result, despite of being a member of the "FileTrack
Authors" group, the user could not edit the entry.
The contacts' search query, when clicking on the initial letter, is
changed using recursive traversal of the "/Contacts" folder.
Download it at
http://www.innoscript.org/component/option,com_remository/Itemid,33/func,se…
This release includes numerous QuiX enhancements, but also introduces
some major QuiX API changes. The base widget class (Widget) has been
refactored. Most of its attributes have been replaced with getters and
setters. Thus, a single attribute change does not require a full
redraw.
This release also introduces the term "off-line widget", a major
performance enhancement. It is now possible to detach a widget
hierarchy by keeping it in memory, and attach it again, whenever this
is needed. So far, six QuiX modules have been optimized using this
technique.
On the server side, a new utility has been included. The
"db_init.py" script initializes a blank Porcupine database. This
script might be useful of those not being able to start the server due
to BerkeleyDB incompatible database formats.
The "stringresources.xml" configuration file is discarded. The
localized strings are kept inside UTF-8 encoded Python script files. By
this way, we prevent any possible resource naming conflicts by
different applications.
Finally, all system resources (servlets, PSPs and strings) are moved
inside the "resources/system" folder. The "system/servlets" and
"system/PSP" folders are discarded.
Due to the API changes introduced on both sides (server and client),
all previous versions of Porcupine applications are incompatible with
this release and should be upgraded.
Innoscript has also announced Quill, the upcoming QuiX visual editor.
The first WYSIWYG web interface designer for rich internet desktop-like
applications. For details see
http://www.innoscript.org/content/view/40/2/.
Resources
=========
What is Porcupine?
http://www.innoscript.org/content/view/30/42/
Porcupine online demo:
http://www.innoscript.org/content/view/21/43/
Porcupine tutorials:
http://wiki.innoscript.org/index.php/Developers/Tutorials
Developer resources:
http://www.innoscript.org/component/option,com_remository/Itemid,33/func,se…
The date for the second PyWeek challenge has been set: Sunday 26th March
to Sunday 2nd April (00:00UTC to 00:00UTC).
The PyWeek challenge invites entrants to write a game in one week from
scratch either as an individual or in a team. Entries must be developed
in Python, during the challenge, and must incorporate some theme chosen
at the start of the challenge.
REGISTRATION IS NOW OPEN --
To register for the challenge, visit:
http://www.pyweek.org/
Some of the challenge website isn't finished yet. I hope to have it completed
in the next week. This includes management of team entries.
PLANNING FOR THE CHALLENGE --
Make sure you have working versions of the libraries you're going to use.
The rules page has a list of libraries and other resources.
Make sure you can build packages to submit as your final submission (if
you're going to use py2exe, make sure you know how to use it and that it
works).
If you don't have access to Linux, Windows or a Mac to test on, contact
friends, family or other competitors to find someone who is able to test
for you.
--
Visit the PyWeek website:
http://www.pyweek.org/
We would like to announce that the beta python site will be
made live on the 5th March 2006. In order to ensure that the switch is
as smooth as possible, we are asking for some volunteers to help in
finalising the migration and checking of content and links. Guido van
Rossum will be announcing this during his keynote speech at Pycon and
there will be sprints from 27th February through to the 2nd March. All
the information you'll need is here.
http://wiki.python.org/moin/PyCon2006/Sprints/PydotorgSprint
It is our intention to move the current site to
http://archive.python.org and to allow certain paths of the new beta
site to still use the old content (for instance, it is likely that the
/docs section will remain as is until a new documentation template has
been approved).
The work won't be finished once the site goes live however, work has
already started on adding the facility for discussion, annotation and
additions to the website by integrating wiki page content. The plan is
for the best bits of the community contributions to be included as
appendices to each page of the site. Please get involved now and help us
to reach this ultimate goal as soon as possible.
If you wish to volunteer some time, please send an email to
tparkin(a)python.org and we will add you to the list.
beta.python team so far:
* Tim Parkin
* Stephan Deibel
* David Goodger
* Steve Holden
Greetings, program!
I am pleased to announce the first public release of httpy -- a sane and
robust HTTP library for Python. With httpy, you write "responders," and
put them on the network with "couplers." Here is a trivial responder:
import httpy
class Responder:
def respond(request):
raise httpy.Response(200, "Greetings, program!")
And here is how to couple it:
responder = Responder()
coupler = httpy.couplers.StandAlone(responder)
coupler.go()
httpy is so amazing, in fact, that with it I was able to write an entire
wiki in only 20 seconds! Don't believe me? Check out the screencast
(along with downloads and full documentation) at:
http://www.zetadev.com/software/httpy/
Thank you.
Chad Whitacre
http://www.zetadev.com/
P.S. I'm going to be discussing httpy, testosterone, and a couple other
projects at PyCon this weekend at an Open Space event on Saturday
morning entitled "Un-reinventing the Wheel: Some Lessons from Zope,
Backported to Unix." Join me if you can.