Thursday, May 22, 2008

pyCologne Python User Group, Cologne, Germany, May 14, Notes

The Python User Group in Cologne met at the computer centre of the University of Cologne. The meeting was attended by 18 people. German speakers might want to refer to our wiki page: http://www.pycologne.de.

The meeting started with our yet traditional presentation of old and new participants.

Andreas Schreiber opened the meeting with some announcements:
  • FrOSCon will take place in Sankt Augustin near Bonn/Germany from 23rd to 24th August 2008
  • Europython will take place in Vilnius, Lithuania from 7th to 12th July 2008
This time we had two talks:

Introducing of the module Pyparsing (Tobias Schlauch):

Tobias gave a detailed overview of parsing texts and how to use the pyParsing-Module
  • What is pyParsing? What kind of grammers can be parsed using pyParsing?
  • Defining grammers with pyParsing.
  • Applying these grammers to texts.
  • Processing of parsing-events through special actions.
The presentation (in German language) can be found at http://www.slideshare.net/onyame/pyparsing/

Representation of (UML)-class-diagrams using Tkinter and the Canvas-Widget (Thomas Lenarz):

Thomas gave an overview of how Tkinter's Canvas-Widget can be used to draw Graph-like diagrams.
  • A general short introduction to Tkinter (Widgets, Geometry-Manager).
  • The Canvas-Widget (Display-List, drawing of compound graphical objects using Tags)
  • Drawing lines and UML-like arrow-types
  • Moving of objects and scrolling
The presentation and further information (in German language) can be found at http://wiki.python.de/User_Group_K%C3%B6ln/VortragUMLTkinter

The next meeting will be held on, Wednesday, June, 11th.

The minutes of the meeting in German language can be found here.

Like usual we enjoyed the rest of the evening in our usual italian restaurant having food, drinks and friendly conversation.

Monday, May 12, 2008

pyCologne Python User Group, Cologne, Germany, May, 14th, Announcement

The next meeting of pyCologne will take place

Wednesday, May, 14th
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

Agenda:
  • Talk: Introducing of the module Pyparsing (Tobias Schlauch)
  • Talk: Representation of (UML)-class-diagrams using Tkinter and the Canvas-Widget (Thomas Lenarz)
At about 8.30 pm we will enjoy 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, this page is in German only)

Thursday, May 8, 2008

Notes from the SoCal Piggies meeting on May 1st

This is overdue by a week, but better late than never...We had our SoCal Piggies meeting last Thursday May 1st at the offices of Gorilla Nation, who graciously provided the conference room and the food for the meeting. A lot of new people showed up at the meeting, plus some of the veterans. In all I think we had around 20 attendees -- not bad at all, considering our humble beginnings in March 2005.

The first speaker was Ben Bangert, who gave us an overview of his Python Web framework, Pylons. I hope I'll get the actual slides from Ben, and I'll post a link here as soon as I can (UPDATE: here are the slides in PDF format). In the mean time, I'll use my notes to give you an idea of what Ben talked about:
  • Pylons was created with simplicity in mind (it consists of only 1,400 lines of code)
  • It uses WSGI as the glue between various components
  • It follows the Model-View-Controller pattern: Pylons itself is the Controller, the ORM (SQLAlchemy) is the Model, and the template language (Mako) is the view
  • The core components of Pylons are: Routes for URL configuration, Beaker for session/caching management, WebError for exception handling/debugging info, WebOb for easier HTTP request/response handling, and Paste for WSGI loading/configuration
  • All these components are examples of what is called 'WSGI Middleware'
  • Pylons recommends SQLAlchemy for the database/ORM layer, and Mako for templating, but it supports other ORM and templating modules too (examples of alternative templating tools are Genshi and Jinja)
Ben followed these more theoretical consideration with practical examples of creating a 'Hello, world' Pylons application. He used the handy 'paster' command-line tool, which created the scaffolding for the application (including unit tests!). Ben then delved into details on customizing the application, using the template language, and debugging via the awesome WebError module functionality (which can be used by any WSGI application.) Watching Ben speak and demonstrate the code reminded me of a karate sensei doing a kata -- it all seems so easy when the master shows it to his disciples, but you can feel the vast experience and power behind this simplicity.

One thing I didn't quite realize before Ben's presentation is that Pylons and its core/recommended components are the work of a triumvirate which I'm tempted to call 'B Cubed', or The Bangert-Bicking-Bayer Ensemble. As Ian Bicking says, Ben Bangert lords over Pylons, Route and Beaker, Ian lords over Paste, WebOb and FormEncode, while Mike Bayer lords over SQLAlchemy and Mako.

The second presenter was Pablo M. He showed us a practical example of a Google App Engine application called tapapps and built using Flash as the front-end. His goal for this app is to be a portal that aggregates content from various sources. He will then synchronize his iPhone with this one app, as opposed to syncing it to a multitude of content sources. For now though, the app just accepts user input, saves it on the Google BigTable, and displays it to the other users. Pablo was impressed with the ease of deployment of a GAPE application. He modified his Flash source, rebuilt the swf file, then ran appcfg.py to upload a new version of the app to the Google cloud.

A lively discussion ensued following Pablo's presentation. The discussion mostly centered on the current shortcomings of the Google AppEngine environment. For example, any task launched from within your application will be killed after 3 seconds. This means that inserts into the Google Big Table better take less than 3 seconds. Ben actually witnessed how an operation that attempted to insert 50 records at a time was killed because it was too slow. Apparently, writes to the Big Table are very slow, but reads are very fast. Also, the lack of cron-type scheduling is something that really hurts GAPE applications. Not to mention the lack of various Python modules (such as socket, or compiler) -- of which I also complained in another post. Overall though, a Python interest group should have very little to complain about when it comes to the GAPE environment. After all, as Dave Winer said, GAPE turned Python into the new BASIC!

I'd like to thank Steven Wagner from Gorilla Nation for hosting the meeting, Ben Bangert and Pablo M. for presenting at the meeting, and Andre Stechert for facilitating Ben's presence at the meeting.

Wednesday, May 7, 2008

Python Sprint in Washington DC This Weekend

HacDC has kindly offered to host a Python sprint for the global Python sprint weekend, this coming Saturday afternoon (May 10th), noon to 4PM.

The sprint will be at HacDC's rented space at 1525 Newton St NW, Washington DC 20010 USA. There are maps to the location and a wiki page for signing up. Please add your name if you're planning to attend.

If there's interest, Andrew Kuchling can prepare a short introductory talk on Python development and the bug tracker; there's a separate section of the page where you can indicate your interest in seeing the introduction, so please add your name.

Sunday, May 4, 2008

pyCologne Python User Group, Cologne, Germany, April 09, Notes

The Python User Group in Cologne met at the computer centre of the University of Cologne. The meeting was attended by 14 people. German speakers might want to refer to our wiki page: http://www.pycologne.de.

This time the meeting started off with the talks immediately:
  • Firstly, Ralf Schönian talked about the use of Python in Enterprise Business Applications as an example:
    • Java is of prime importance for this type of applications. Nonetheless python is being used.
    • Karrigell as a lightweight framework, SoapPy, Epidoc, many backports for Python 2.3 (Elementtree, subprocess,...), SQLAlchemy
    • Ralf proposed to introduce his favourite editor Ulipad at one of the next meetings.
  • Secondly, Houman & Anh Tu Sam introduced their Online-Speed-Dating Project "ZweiDabei":
    • Online-Dating using a new concept: Speed Dating within the Internet using webcams
    • Implementation in Python using Django for the frontend-, Twisted for the backend-part.
    • Plan: It is planned to go online in summer using Amazons computing service
Furthermore, Ralf subscribed the Python-Magazine http://www.pythonmagazine.com/, brought the latest issue with him and commented on how subscription works.

This time at the end of the official part of the meeting old and new participants were introduced:
New participants Houman und Anh Tu Sam.

The next meeting will be held on, Wednesday, May, 14th.

The minutes of the meeting in German language can be found here.

Like usual we enjoyed the rest of the evening in a nearby restaurant having food, drinks and friendly conversation.