=== Leipzig Python User Group ===
We will meet on Tuesday, April 19 at 8:00 pm at the training
center of Python Academy in Leipzig, Germany
( http://www.python-academy.com/center/find.html ).
Our last meeting in March was togheter with peopel from the Leipzig Rails
Community at Topic Maps Lab. We meet again in April at Python Academy.
Christoph Petschnig talk abot Ruby on Rails 3.
**Note**: This will be one week later than or regular second Tuesday of the
month. The meeting place is different from our usual location.
Everybody who uses Python, plans to do so or is interested in
learning more about the language is encouraged to participate.
While the meeting language will be mainly German, we will provide
English translation if needed.
Food and soft drinks are provided. Please send a short
confirmation mail to info(a)python-academy.de, so we can prepare
appropriately.
Current information about the meetings are at
http://www.python-academy.com/user-group .
Mike
== Leipzig Python User Group ===
Wir treffen uns am Dienstag, 19.04.2011 um 20:00 Uhr
im Schulungszentrum der Python Academy in Leipzig
( http://www.python-academy.de/Schulungszentrum/anfahrt.html ).
Nach dem gemeinsamen Treffen im März mit den Leuten der Leipziger Rails
Community im Topic Maps Lab, treffen wir uns auch im April wieder gemeinsam.
Diesmal aber in der Python Academy.
Christoph Petschnig wird über Ruby on Rails 3 sprechen.
**Achtung**: Der Termin ist eine Woche später als der regelmäßige, zweite
Dienstag im Monat.
Willkommen ist jeder, der Interesse an Python hat, die Sprache
bereits nutzt oder nutzen möchte.
Für das leibliche Wohl wird gesorgt. Eine Anmeldung unter
info(a)python-academy.de wäre nett, damit wir genug Essen
besorgen können.
Aktuelle Informationen zu den Treffen sind unter
http://www.python-academy.de/User-Group zu finden.
Viele Grüße
Mike
A new version of the Python module which wraps GnuPG has been
released.
What Changed?
=============
This is a minor enhancement and bug-fix release. See the project
website ( http://code.google.com/p/python-gnupg/ ) for more
information. Summary:
Better support for status messages from GnuPG.
The ability to use symmetric encryption.
The ability to receive keys from keyservers.
The ability to use specific keyring files instead of the default
keyring files.
Internally, the code to handle Unicode and bytes has been tidied up.
The current version passes all tests on Windows (CPython 2.4, 2.5,
2.6, 3.1, 2.7 and Jython 2.5.1) and Ubuntu (CPython 2.4, 2.5, 2.6,
2.7, 3.0, 3.1, 3.2). On Windows, GnuPG 1.4.11 has been used for the
tests.
What Does It Do?
================
The gnupg module allows Python programs to make use of the
functionality provided by the Gnu Privacy Guard (abbreviated GPG or
GnuPG). Using this module, Python programs can encrypt and decrypt
data, digitally sign documents and verify digital signatures, manage
(generate, list and delete) encryption keys, using proven Public Key
Infrastructure (PKI) encryption technology based on OpenPGP.
This module is expected to be used with Python versions >= 2.4, as it
makes use of the subprocess module which appeared in that version of
Python. This module is a newer version derived from earlier work by
Andrew Kuchling, Richard Jones and Steve Traugott.
A test suite using unittest is included with the source distribution.
Simple usage:
>>> import gnupg
>>> gpg = gnupg.GPG(gnupghome='/path/to/keyring/directory')
>>> gpg.list_keys()
[{
...
'fingerprint': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2',
'keyid': '197D5DAC68F1AAB2',
'length': '1024',
'type': 'pub',
'uids': ['', 'Gary Gross (A test user) <gary.gross(a)gamma.com>']},
{
...
'fingerprint': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A',
'keyid': '0C5FEFA7A921FC4A',
'length': '1024',
...
'uids': ['', 'Danny Davis (A test user) <danny.davis(a)delta.com>']}]
>>> encrypted = gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A'])
>>> str(encrypted)
'-----BEGIN PGP MESSAGE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\n
\nhQIOA/6NHMDTXUwcEAf
...
-----END PGP MESSAGE-----\n'
>>> decrypted = gpg.decrypt(str(encrypted), passphrase='secret')
>>> str(decrypted)
'Hello, world!'
>>> signed = gpg.sign("Goodbye, world!", passphrase='secret')
>>> verified = gpg.verify(str(signed))
>>> print "Verified" if verified else "Not verified"
'Verified'
For more information, visit http://code.google.com/p/python-gnupg/ -
as always, your feedback is most welcome (especially bug reports,
patches and suggestions for improvement). Enjoy!
Cheers
Vinay Sajip
Red Dove Consultants Ltd.
Practical Python Programming (Ultimate Edition)
[4.5 days] Raymond Hettinger and David Beazley join forces to create
what might be the most ultimate introductory Python course around. In
the first part of this class, Raymond will put his own expert spin on
Dave's "Practical Python Programming" curriculum. This is followed by
a variety of in-depth Python programming topics drawn from Raymond's
body of highly regarded Pycon presentations and invited talks. This
course is best suited for programmers, scientists, and engineers who
already know a little Python and who want to take their skills to a
new level. However, even if you are completely new to Python, this is
a unique opportunity to learn from someone who knows Python inside-
out. Topics are aimed at tasks that you face on a day-to-day basis.
For example, analyzing data files, encoding/decoding various file
formats, automating system tasks, working with collections,
integrating Python with other software, and more. The course features
a 300 page guidebook and more than 50 hands on exercises.
Details and registration: http://www.dabeaz.com/chicago/index.html
This will be a fun, highly interactive class for a very small group of
people. The small group size ensures that everyone has extensive
individual attention so that everyone is assured of success in
mastering practical python programming.
Hope to see you there,
Raymond and David
@raymondh and @dabeaz
The following is a call for tutorials for the first PyCon DE.
The rest of the message is in German.
Call for Tutorials zur PyCon DE 2011 in Leipzig
-----------------------------------------------
Wir rufen alle erfahrenen Python-Nutzer auf, Bewerbungen für Tutorials für die
PyCon DE 2011 einzureichen. Die Tutorials finden am 4. Oktober 2011 im Rahmen
der PyCon DE (http://de.pycon.org) statt. Ein Tutorial soll drei Stunden
dauern.
Die Themen der Tutorials können Einführungen in Python,
fortgeschrittene Themen, Web-Frameworks oder andere große Python-Bibliotheken
sein. Auch typische Softwareentwicklungsarbeiten wie Testen oder
Versionskontrolle mit Python können Thema eines Tutorials sein.
Bitte richten Sie Ihren Vorschlag bis zum 30. April 2011 an info(a)de.pycon.org.
Der Vorschlag muss Folgendes enthalten:
* Titel
* Kurzbeschreibung des Inhaltes
* Zielgruppe (Anfänger, Fortgeschrittene, Experten)
* stichpunktartige Gliederung des Tutorials mit Zeitangaben zu den
einzelnen Punkten (die Summe muss 180 Minuten betragen)
Jedes Tutorial umfasst zwei Blöcke von je 90 Minuten mit einer halbstündigen
Pause. Eine Person kann Vorschläge für zwei Tutorials machen. Wenn sich das
Thema nicht sinnvoll in drei Stunden abhandeln lässt, ist können auch zwei
aufeinander aufbauende Tutorials vorgeschlagen werden.
Vor jedem Tutorial müssen die Teilnehmer vor dem Beginn die Unterlagen als
Datei oder ausgedruckt erhalten.
Tutorial-Trainer erhalten freien Eintritt zur Konferenz.
Aktuelle Informationen unter:
http://de.pycon.org/2011/call_for_tutorials
=========================== Call for Papers ============================
DSL 2011: Conference on Domain-Specific Languages
(IFIP sponsorship pending approval)
6-8 September 2011, Bordeaux, France
http://dsl2011.bordeaux.inria.fr/
IMPORTANT DATES
* 2011-04-18 : Abstracts due
* 2011-04-25 : Submissions due
* 2011-06-10 : Authors notified of decisions
* 2011-07-11 : Final manuscripts due
* 2011-09-05 : Distilled tutorials
* 2011-09-06 / 2011-09-08 : Main conference
CALL FOR PAPERS
Domain-specific languages have long been a popular way to shorten
the distance from ideas to products in software engineering. On one
hand, the interface of a DSL lets domain experts express high-level
concepts succinctly in familiar notation, such as grammars for text or
scripts for animation, and often provides guarantees and tools that take
advantage of the specifics of the domain to help write and maintain
these particular programs. On the other hand, the implementation of a
DSL can automate many tasks traditionally performed by a few experts
to turn a specification into an executable, thus making this expertise
available widely. Overall, a DSL thus mediates a collaboration between
its users and implementers that results in software that is more usable,
more portable, more reliable, and more understandable.
These benefits of DSLs have been delivered in domains old and new, such
as signal processing, data mining, and Web scripting. Widely known
examples of DSLs include Matlab, Verilog, SQL, LINQ, HTML, OpenGL,
Macromedia Director, Mathematica, Maple, AutoLisp/AutoCAD, XSLT, RPM,
Make, lex/yacc, LaTeX, PostScript, and Excel. Despite these successes,
the adoption of DSLs have been stunted by the lack of general tools and
principles for developing, compiling, and verifying domain-specific
programs. General support for building and using DSLs is thus urgently
needed. Languages that straddle the line between the domain-specific
and the general-purpose, such as Perl, Tcl/Tk, and JavaScript, suggest
that such support be based on modern notions of language design and
software engineering. The goal of this conference, following the last
one in 2009, is to explore how present and future DSLs can fruitfully
draw from and potentially enrich these notions.
We seek research papers on the theory and practice of DSLs, including
but not limited to the following topics.
* Foundations, including semantics, formal methods, type theory, and
complexity theory
* Language design, including concrete syntax, semantics, and types
* Software engineering, including domain analysis, software design,
and round-trip engineering
* Modularity and composability of DSLs
* Software processes, including metrics for software and language
evaluation
* Implementation, including parsing, compiling, program generation,
program analysis, transformation, optimization, and parallelization
* Reverse engineering, re-engineering, design discovery, automated
refactoring
* Hardware/software codesign
* Programming environments and tools, including visual languages,
debuggers, testing, and verification
* Teaching DSLs and the use of DSLs in teaching
* Case studies in any domain, especially the general lessons they
provide for DSL design and implementation
The conference will include a visit to the city of Bordeaux, a tour
and tasting at the wine museum and cellar, and a banquet at La Belle
Époque.
INSTRUCTIONS FOR AUTHORS
Papers will be judged on the depth of their insight and the extent
to which they translate specific experience into general lessons
for software engineers and DSL designers and implementers. Where
appropriate, papers should refer to actual languages, tools, and
techniques, provide pointers to full definitions, proofs, and
implementations, and include empirical results.
Proceedings will be published in Electronic Proceedings in Theoretical
Computer Science ( http://info.eptcs.org/) . Submissions and final
manuscripts should be at most 25 pages in EPTCS format.
PROGRAM COMMITTEE
* Emilie Balland (INRIA)
* Olaf Chitil (University of Kent)
* Zoé Drey (IRIT)
* Nate Foster (Cornell University)
* Mayer Goldberg (Ben-Gurion University)
* Shan Shan Huang (LogicBlox)
* Sam Kamin (University of Illinois at Urbana-Champaign)
* Jerzy Karczmarczuk (University of Caen)
* Jan Midtgaard (Aarhus University)
* Keiko Nakata (Tallinn University of Technology)
* Klaus Ostermann (University of Marburg)
* Jeremy Siek (University of Colorado at Boulder)
* Tony Sloane (Macquarie University)
* Josef Svenningsson (Chalmers University of Technology)
* Paul Tarau (University of North Texas)
* Dana N. Xu (INRIA)
ORGANIZERS
Local chair: Emilie Balland (INRIA)
Program chairs: Olivier Danvy (Aarhus University),
Chung-chieh Shan (Rutgers University)
------------------------------------------------------------------------
The next meeting of pyCologne will take place:
Wednesday, April, 13th
starting about 6.30 pm - 6.45 pm
at Room 0.14, Benutzerrechenzentrum (RRZK-B)
University of Cologne, Berrenrather Str. 136, 50937 Köln, Germany
On this month's agenda:
- wxWidgets - a look at the demo (Ralf Schönian)
- PythonCamp planning (everyone)
Any presentations, news, book presentations etc. are welcome
on each of our meetings!
At about 8.30 pm we will as usual enjoy the rest of the evening in a
nearby restaurant.
Further information including directions how to get to the location
can be found at:
http://www.pycologne.de
(Sorry, the web-links are in German only.)
Regards,
Andi
Hello,
the first version of sec-wall, a feature packed high-performance
security proxy, has just been released.
sec-wall has many interesting features, including the support SSL/TLS,
WS-Security, HTTP Auth Basic/Digest, extensible authentication schemes
based on custom HTTP headers and XPath expressions, powerful URL
matching/rewriting and an optional headers enrichment.
sec-wall uses and is built on top of several fantastic Python open
source technologies, such as gevent, Spring Python, pesto, lxml, zdaemon
or PyYAML and is meant to be highly customizable and easy to use. Good
performance, tests, documentation and building an awesome community are
at the very heart of the project.
Here's an example showing how little is needed to secure a backend
server with HTTP Basic Auth.
# ######################################################
# -*- coding: utf-8 -*-
# stdlib
import uuid
# Don't share it with anyone.
INSTANCE_SECRET = '5bf4e78c256746eda2ce3e0e73f256d0'
# May be shared with the outside world.
INSTANCE_UNIQUE = uuid.uuid4().hex
def default():
return {
'basic-auth':True,
'basic-auth-username':'MyUser',
'basic-auth-password':'MySecret',
'basic-auth-realm':'Secure area',
'host': 'http://example.com'
}
urls = [
('/*', default()),
]
# ######################################################
Links:
Project's homepage: http://sec-wall.gefira.pl/
Getting started:
http://sec-wall.gefira.pl/documentation/getting-started/index.html
Usage examples:
http://sec-wall.gefira.pl/documentation/usage-examples/index.html
Twitter: https://twitter.com/fourthrealm
Blog: http://www.gefira.pl/blog
IRC: #sec-wall channel on Freenode network
cheers,
--
Dariusz Suchojad
Hello all,
I'm happy to announce a new release of mahotas, my computer vision
library for Python.
WHAT'S MAHOTAS
--------------
Mahotas is a library which includes several image processing algorithm.
It works over numpy arrays. All its computation heavy functions are
implemented in C++ (using templates so that they work for every data
type without conversions).
The result is a fast, optimised image processing and computer vision
library.
It is under heavy development and has no known bugs. Reported bugs
almost always get fixed in a day.
WHAT'S NEW
----------
Major change is that Mac OS compilation now works! Thanks to K-Michael
Aye for the patch that saved the day.
Minor changes include fixes to ``cwatershed`` and adding the tests to
the source distribution (use `python setup.py test` to run them). Some
of these.
INFO
----
*API Docs*: http://packages.python.org/mahotas/
*Mailing List*: Use the pythonvision mailing list
http://groups.google.com/group/pythonvision?pli=1 for questions, bug
submissions, etc.
*Author*: Luis Pedro Coelho (with code by Zachary Pincus [from
scikits.image], Peter J. Verveer [from scipy.ndimage], and Davis King
[from dlib]
*License*: GPLv2
Thank you,
--
Luis Pedro Coelho | Carnegie Mellon University | http://luispedro.org
Announcing Trombi version 0.9.1
Trombi is an asynchronous CouchDB client for Tornado, the asynchronous
web server by Facebook.
Version 0.9.1 fixes a major header handling bug in present previous versions.
Currently the only problem the bug causes is a rare corner case with
long polling changes feed using filter document where the CouchDB
becomes unable to respond to the request.
Trombi is available at PyPI: http://pypi.python.org/pypi/trombi/
Sources and issue tracker are available in Github:
https://github.com/inoi/trombi
Documentation for 0.9.1 is available at: https://github.com/inoi/trombi
Cheers,
Jyrki Pulliainen