ConFoo is Tomorrow

Author : Yannick Gingras

9 03 2010

ConFoo starts tomorrow but that it’s not too late to register. Don’t miss that unique opportunity to meet famous Pythonistas such as Mark Pilgrim (Dive into Python), Raymond Hettinger (core Python), Tarek Ziadé (Distribute), and Antoine Pitrou (new GIL).



Montréal-Python 12 on 2010-03-22

Author : Yannick Gingras

9 03 2010

Montréal-Python 12 will take place at UQAM, on Monday 2010-03-22 in the Sherbrooke building. The exact room number will be announced shortly. The SH building is located at 200 Sherbrooke west, Place-des-Arts metro station.

Here is our schedule for the evening:

  • 18h00: Opening
  • 18h20: Announcements
  • 18h30: Flash presentations
  • 19h00: Break
  • 19h20: Main presentation
  • 20h30: Discussions and refreshments at Benelux

Our main presenter is going to be Marcin Swiatek and he’s going to talk about Generating control images for microscopy software with Python and Numpy.

Numpy is the mainstay of all things numerical in Python. I will use one of my past projects – a pipeline for testing image analysis software – to introduce Numpy. The presentation will focus on basic array manipulation, random number generators, and elementwise operations. Real math will be given silent treatment. PIL, or Python Imaging Library will appear in a supporting role.

Marcin has been working on development of life sciences software for the past 12 years. He has been a Python user since the version 1.5.2.

We still have a few spots for flash presentations so don’t hesitate to contact us if you have something that you would like to present.

We want to thank our sponsors for making Montréal-Python 12 possible:



Upcoming Sprints

Author : Yannick Gingras

27 02 2010

ConFoo brings several experts in town and we take this opportunity to launch two sprints: one on TurboGears with Chris Perkins on 2010-03-13 starting at 10h30 am and one on Distribute with Tarek Ziadé on 2010-03-15 starting at 6 pm. Both sprints will be at Brasseurs Numériques’ office, 1124 Marie-Anne, suite 11.

The TurboGears sprint will focus on polishing the code base and the documentation for the upcoming 2.1 release. Some work on the Sprox from generator and on the C5T CMS is also very likely. Anyone somewhat familiar with Pylons should be able to contribute.

The Distribute sprint will focus on implementing the newly accepted PEPs: 345, Metadata; and 386, version schemas. Anyone who’ve used Setuptools to some exetent should be able to contribute.

Bring your laptop or make a pairing agreement on with someone else. As usual, capacity is limited to 12 sprinters so please sign up on the mailing list.



Follow-up on the second Django sprint

Author : Yannick Gingras

18 02 2010

The second Django sprint was another clear success. It was a pleasant surprise to have so many volunteer and we filled the Brasseurs Numériques’ office at capacity with 12 sprinters.

Thanks to Agence Universitaire de la Francophonie for sponsoring the event and a very special thank to all the sprinters:

  • Davin Baragiotta
  • Benoit Caron
  • Stéphane Duchesneau
  • Alexandre Forget
  • Yannick Gingras
  • Ali Jetha
  • Collin Lavoie
  • Martin Paquette
  • Cyril Robert
  • Francois Savard
  • Jean Schurger
  • Alexandre Vassalotti

We will try to have another translation sprint toward the end of March.

django-sprint-2-1django-sprint-2-2django-sprint-2-3



ConFoo: buy online before Monday for the best rate

Author : Yannick Gingras

18 02 2010

Sunday is officially the last day to register for ConFoo at the current price.

Actually, that not quite exact because as a way to thank you for reading this blog, we offer you $100 of rebate. Simply follow this link to register at the community rate: http://confoo.ca/pymontreal

You probably recall that Chris Perkins is giving a one-day training session on Web development with Python and Turbogears. You get an additional $100 of rebate if you attend to both the training and the conference. Having seen Chris in the tutorials at PyCon, I can’t put enough emphasis on how good a teacher he is. This is a very unique opportunity to get high quality training on Web development with Python right here in Montréal.



Learning Python, 4th Edition: Python Learning Reloaded!

Author : Ahmed Al-Saadi

18 02 2010

Learning Python is a well-written book by an experienced Python trainer that has served the Python community well since the first edition was published, back in 1999. Now at its fourth edition, this book by Mark Lutz arguably continues to be Python’s bible. This article reviews the fourth edition by discussing the target audience, scope, content, and pedagogical features. It concludes by a recommendation.

Audience

This book is intended as an introductory text to programmers new to Python.  Although people with no programming experience are not discouraged from reading it, they are warned that time is mostly spent teaching Python, not programming fundamentals. I agree with this picture, though from my own experience as well as those of others, the book is equally valuable to more experienced Python programmers both as a pseudo-reference, and as an introduction to more advanced topics. The critical point here is that the book does not make assumptions about educational or vocational experiences and provides many examples, which renders the book approachable by a large audience.

Scope

Both Python 2.6 and 3.x are covered in this edition. However, the latest 3.x line is considered the reference from which variations in 2.6 are discussed when appropriate. This approach is logical; the new Python 3.x presents a major change to the language, but is not sufficiently dominant to warrant exclusive treatment.

This book discusses the Python language and excludes the Python standard and non-standard libraries. The latter are discussed in other places, including Lutz’s own Programming Python, which stands at its third edition at the time of writing of this article. I find this separation necessary because of size considerations and, in fact, this division did not exist in the first edition of the book! However, one topic does not seem to fit in the language/libraries division, and that is packaging and deployment.

I will argue that there aren’t many (if any) books that discuss packaging and deployment of Python programs. I will also argue that this topic should be included in the book being reviewed here since it is essential to real Python programming. Since Lutz discusses the Python run-time environment, I do not think it would detract from the book’s coherence to include a single chapter on packaging.  It is possible that the proliferation of various packaging and deployment options such as distutils, setuptools, pip, buildout, virtualenv, paver, fabric and others, is the reason for this exclusion. Or it could be that these tools are in a state of major flux that any text will be quickly outdated.  If size is the reason for this exclusion, maybe Lutz or someone else can publish a “Packaging and Deploying Python” as a separate volume.

Content

The book starts by making a case for the use of Python. Both the features of the language and its prominent users are discussed to build credibility. Then, the run-time environment is discussed: how to run programs in various ways on various operating systems and language interpreters.

Types and statements, which are at the core of any language, are discussed next. Notably, there is an excellent discussion on the topic of iterators and generators (both are also covered in a later chapter).  Functions, modules and classes are then introduced. The text also includes a discussion of general object-oriented programming (OOP) principles which I find to be invaluable, as it brings the topic of classes to life.

Exceptions are introduced and discussed in detail. The placement here is appropriate since exceptions are now objects in Python so classes had to be discussed first. This chapter should prove to be especially useful for people migrating from other languages that do not have simple, yet effective, exception-handling constructs.

Finally, four advanced topics are covered: decorators, unicode, managed attributes, and meta-classes. I find the first two to be absolutely necessary for almost any system nowadays, even the smaller ones! The latter two are not as ubiquitous, but should be useful to more experienced programmers.

I should mention here that the discussion of the topics mentioned above doesn’t stop at the basics, but provides comprehensive coverage. This is also the case with the discussion of topics such as dynamic typing, inheritance order, iterators, generators, comprehensions, and functional programming, among many others. There is even an interlude on documentation and the pydoc library.

Pedagogical Features

Like many programming texts, Learning Python uses small programming examples (appropriately executed in the Python interactive shell). These small examples hope to capture the essence of the topic at hand, and it does that well within the limitations of a small-scale context. This fourth edition adds a new chapter on classes (Chapter 27) that contains a more realistic code example presented in a tutorial format.

In addition to examples, each chapter ends with a summary of the chapter’s content as well as a quiz. The quiz is immediately followed by its answers for easy reference. I have to admit that I do not use any of these two features, so I will not be able to comment on their efficacy.

Conclusion

Like many O’Reilly books, this is a well-written, coherent, and beautifully type-set book. I highly recommend it to anyone who wants to, or already does, program using python. It should help the novice in their transition to an excellent programming language, or otherwise, make an already familiar environment more powerful in the hands of veterans.

About the reviewer: Ahmed Al-Saadi is a Software Analyst who works for a Montreal Python house. He wrote his first lines of code on a Sinclair ZX Spectrum+, though unfortunately not in Python at the time.



TurboGears training on 2010-03-09

Author : Yannick Gingras

1 02 2010

As we mentioned during the last Montréal-Python meeting, Chris Perkins, core developer of TurboGears2, will be giving a one-day hands on training on TurboGears2 on March 9th. His tutorial covers several parts of TurboGears2 that are common to Pylons so those who were interested by the presentation by Alexandre Bourget will certainly get the opportunity to dig deeper into Pylons and the other parts of the WSGI ecosystem. At $300 and with the $100 rebate if you go to conference, it’s a real bargain.



User Groups Gathering on 2010-02-05

Author : Yannick Gingras

29 01 2010

Next Friday, why not celebrate the end of the week with members of
other user groups? Montréal-Python, W3Québec, PHP-Québec, AMUG, Montréal Girl Geek Dinners, and many others invite you for a drink or two at Pub Ste-Elizabeth starting at 6pm.



Review of Learning Python 4th edition

Author : Alex Gal

26 01 2010

When I first got the book, I was surprised by the number of pages it had (>1000).

But still, I managed to finish it relatively quickly because the font is big and the content well organized / spaced. I have also ignored a quite a few pages on how to install and configure your environment.

The target audience is without doubt beginners. If you want to learn the Python language, get the book. You won’t be sorry.

If you already know Python 2.6 you can just learn the language changes introduced in 3.0.

Read the rest of this review on Alex Gal’s blog.



Django translation sprint #2 on 2010-02-15

Author : Yannick Gingras

23 01 2010

Given the popularity of the first Django translation sprint, we decided to do it again. The next sprint will be on 2010-02-15 at Brasseurs Numériques’ office:

1124 Marie-Anne, suite 11,  Montréal, Qc H2J 2B7

We warmly thank Agence Universitaire de la Francophonie for supporting the event with food and drinks for every participants.

The sprint begins at 18h and ends once everyone is too tired to type. Bring your own laptop or make an arrangement for pairing on the mailing list beforehand. We only have 12 places; use the mailing list to RSVP. If you can’t join us physically, you can still participate on IRC, on #montreal-python on irc.freenode.net.