[portland] Notes from last 5 "Reverse Q&A" / "Ask the Audience" Portland Python Meetup sessions

Rob Bednark rbednark at gmail.com
Sun Jun 29 18:25:38 CEST 2014


Portland Python,

Here's the link to the document for the Q&A session that I did at the
Portland Python Meetup last Wednesday (6/25/14), as well as for the meetups
on 5/28/14, 4/10/12, 1/10/12, 11/8/11
  http://bit.ly/pdxqa

Here's the content of that document:

Ask The Audience
AKA “Reverse Q&A”
Portland Python Meetup, Wed, Jun 25, 2014
Rob Bednark, rbednark at gmail.com  @rbednark


Shortlink to this Google Doc: http://bit.ly/pdxqa
Add to the document real-time
Got a problem?  Want advice?  Want to poll the audience?  Got something to
share?
previous Q&A sessions below
Python-related, but tangential questions are ok
time signal


Wed Jun 25, 2014 - 50 attendees
Q: What video processing libraries are available for Python? (all kinds;
discover what’s available)
A:
OpenCV (computer vision)
MoviePy (made supercut automatically by parsing subtitle files) --
videogrep; cool animated gifs of “Frozen”

Q: Packaging? Distribution?  dependendencies to external libraries
A:
cookiecutter (how to build package; write templates)
distutils (super easy to create rpm’s) (someone has some notes on how-to:
Here is the link to the lighning talk from Jan 2014:
http://bit.ly/lightning-talk-on-pip-packages)
setuptools
Twitter - “pants” - build single binary that contains Python, libraries;
run anywhere; creates a “pex” package;
pythonwheels.com -- can do extensions; binary; install with pip

Q: Favorite libraries, packages, frameworks?
A:
autopep8
spyne (soap web services)
twisted (web framework)
rq (Redis job queue)
suds (client for SOAP web services)
doctests  (autotesting docstrings)

Q: celery vs rq vs ??
A:
good writeup read recently;
rabbitmq with pika (celery is under the hood by default)
celery is very abstract; hard to troubleshoot
0mq / zeromq

Q: Who do you use / like for hosting?
A:
Digital Ocean (cheap; $5/mo 20gb ssd
Linode (reliable; cut prices to match Digital Ocean;
Opus Interactive (local - Portland; colocating metal)
docker containers - AWS; Google Compute; easy to put app on multiple hosts;
build and test container locally and then ship it to any server; like a
supercharged chroot; limit memory; setup networking; Digital Ocean
supports; boot2docker to run on a Mac; vagrant now supports docker;
OpenStack supports; BeanStalk on AWS;
Heroku (expensive, but carefree; 720 free dyno hours per month; PaaS)
OpenShift - PaaS; RedHat offering; low bandwidth free option for
low-traffic websites; Django 1.4
WebFaction - small company; portion of web server; do whatever you want;
great support (reply within 30 mins); 260 euros / 2 yrs; 15 euros / month;
CloudAtCost - pay once and get virtual server; $35; $1 / month



Wed, May 28, 2014 - 36 attendees

Q: resources/tools for migrating Django versions
A: read the change logs;
advice: do one version at a time (unit tests help)
pyodbc has not kept up; don’t upgrade Django above 1.5 if you are using it;
1.5 => 1.6 was easy;
depends on size of codebase -- did jump from 1.4 to 1.6  without any
problems;
Sublime is great for refactoring

Q: tips/tricks/tools for troubleshooting excessive locking in Postgres when
running massively multi-threaded Django apps
A:
could use lockless algorithms?
___ the locks in the same order;
Way for Django to explicitly print out locking?
logging module in Python?
locks show up in Postgres locks table; Django ORM is creating the locks;
Postgres 9.3.x

Q: What are some topics you would like to see presented at a Portland
Python meetup?
A:
automation, web-scraping, data mining;
AI (machine-learning)
Cython
tips/hints desktop CNC (generating CNC files using gcode) (anything to do
with artistic portion; dev env to take art and represent it in 3d ;
sculpting using 3d printer; surface etching;
consider using blender?
take color image and translate to greyscale, then 3d
Maya;
do a file-to-file format conversion?
something more robust; translate vector graphics
Blender has some add-on modules (but limitations for cutting into metal)
game development with Python
general game playing with Python (AI) (e.g., playing Go and beating a human)
pythonista -- iOS Python app
Kivy -- cross-platform mobile dev platform using Python (build native iOS
and Android apps)
Django 1.7 is coming out soon and that could provide another talk topic
maybe something like Django REST Framework backends with frontends on
smartphones using Javascript frameworks like Cordova or angular.js.
I was going to suggest that the Daniel Greenfield / Audrey Roy "Two Scoops
of Django" book (2nd ed.) has some notes on moving to 1.6 but now that I'm
home I see that it doesn't.  Could be a related topic (for a Presentation
Night talk, that is) to take major chunks of that book (maybe a bunch of
chapters), summarize the "best practices" recommendations per chapter, and
then do the equivalent of your reverse Q&A to update it to current best
practices.


Q: Anyone know ipython Notebook?  Wanna know more?
A: yes; (doing talk at OSCON, will consider doing one for Portland Python)

Q:What are your favorite Python libraries, packages, and frameworks?
A:
BeautifulSoup
Pandas
Django
configobj (alternative to configparser)
fuzzywuzzy (matches words fuzzily)
NLTK - natural lang toolkit
argparse
optparse
docopt
pyparse
swig - David Beazley’s Simplified Wrapper and Interface Generator
Flask
mmstats - nice for metrics (memory-mapped stats)
pdb

Q: Has anyone done any OpenGL Python?  libraries?
A:
Jason: PyOpenGL, but PyQt is better
PyGame
Pyglet

Q: discussion around unit testing in Ruby world; any impact on testing in
Python; How to do it well and right?
A:
TDD good way to do most things
doctests
mocking
coverage
frameworks with mocking;
nosetest
pymox (Google project for mocking)
flexmock
write app to capture gameplay with millisecond accuracy and run it back
through the system over and over; write API commands into log files
docker to test fabric scripts (integration test) (containers launch in
milliseconds) (MySQL db preloaded in container)

Q: How many of you are currently employed and using Python most every day
in your job?
A: about 11 of 36

Prepared questions that were never asked:
Q: What do you like about Python3?
Q: What kind of library / package / framework do you wish existed in Python?
Q: I’ve heard Python packaging is a pain.  Advice?  Easier ways to do it?
Q: What do you like about Python?
Q: What do you not like about Python?


Portland Python Meetup -- Ask the Audience / Reverse Q&A
Tue, April 10, 2012
About 51 people present

Q: What do you use for editing/debugging/....?
A:
  Vi/vim 27
  Emacs 12
  Sublime 7
  Eclipse / PyDev 5
  Visual Studio 2.5
  Pycharm 2
  Gedit 2
  Textmate 2
  MG 1
  Ed 1

Q: What is your job status?
A:
  Permanent jobs 22
  Freelancing?  6
  Unemployed 6
  Students 4

Q: How many people are using Python 3 in production?
A: 1

Q: For the quiz question with the unicode string, how would you include a
'\u' in a string that included Unicode Escapes?
A: u'\\uqwe\u0020asd'


Q: How many learned to program by going to school?
A: 7
   On your own?  35


Portland Python Meetup -- Ask The Audience / Reverse Q&A
Tue, Mar 13, 2012

Q: For newbie programmers, what is a good, small web development project
that can be done in Python and Django?
A:
   Blog.
   CRUD (Create Read Update Delete) (address book, todo list).
   Message syndicator (post to Facebook and Twitter).
   Extend the polling tutorial to work as a meeting organization tool
(submit ideas, ...).
   Learn how forms work.

Q: Python and NoSQL
A:
   - movement against SQL;
   - lots of Python interfaces for NoSQL db's;
   - Zope object db (zodb);
   - PostgreSQL meeting this week is about NoSQL;
   - tomorrow is CouchConf in Portland.

Q: Could someone talk more about Pyracite?
A: (Graham talked about it, but I didn't capture any notes)

Q: What did you find interesting at PyCon US 2012?
A:
   Link Grammar (natural lang parser); used by Relix (python bindings);
break English sentences down
   Enamel - Enthought - kit for GUI construction
   Brandon Rhodes - talk on how memory works - virtual memory issues;
faulting; reference counting;
   Python3 transition?  Guido - going fine, will take long time, transition
is happening;
   Django 1.4 coming; 1.5 will start rolling in Python3
   Guido - Google+ post - 2.7 is done (no more development)
   Carl Meyer - testing in Django talk; very good




Portland Python Meetup -- Ask the Audience / Reverse Q&A
Tue, Jan 10, 2012

Q: What are you using for automated web testing?
  Watir
  GhostJS
  Selenium (wrote own client using SeleniumRC) - 7
  Alfajor / Django_Alfajor - 4
  Sahi.co.in
  Cram - http client in Curl; Unixy (non-web browser) - 1
  Twill - 2
  Ruby / Cucumber / Rspec / Capybara - 2
  Lettuce - 2

Q: Does anybody do quant (quantitative) work with Python? (scipy, ...)
(stats, math optimization, ...)
  gmpy (arbitrary precision)
  pandas - financial, time series
  meetup group - solving academic problems (Numerical Computing group --
merged into another)
  Portland R group

Q: What is the clear winner among the Python web frameworks?
  Django
  Pyramid - new and upcoming
  Flask - ate up smaller frameworks
  CherryPy
  WSGI - roll your own
  Werkzeug*
  Twisted - it's own world; server protocol framework; lots persistent
connections; asynch network framework

Q: Anyone using PyPy in production?
A: No

Q: What do you like about Python?
    - reads like psuedocode
    - __metaclass__
    - free beer at meetup
    - forced organization (whitespace; no brackets)
    - module distribution (eggs, ...); environments (virtualenv, pip, ...)
    - great community
    - one right way to do things
    - python community - maintainers stick around;

Q: What do you not like about Python?
    - too slow
    - GIL (Global Interpreter Lock) - not truly multi-threaded
    - live debugging tools awkward; not powerful
    - lambdas (it's only one expression; not a real anonymous function
compared to other true functional languages)
    - fragmentation of the web platforms (webpy, django, pylons, zope)
    - BDFL (led Python into the woods) (lamdbas, GIL, Python3, ...)
    - Python3
    - lot of lib maintainers have not chosen to go to Python3 yet
    - no case, "x if something else y"
    - variable scoping is weird
    - subclassing, overriding, super, keyword args -- lot of syntax;
awkward syntax
    - don't like spaces preference over tabs
    - loop - repeat - extra expressions before you hit the repeat section;
initial value; increment; loop/until/repeat (Databasic on Pick OS)


Portland Python Meetup -- Ask the Audience / Reverse Q&A
Tue, Nov 8, 2011

Q: What are you using for building REST API's?
  Restish - 2
  Piston - 2
  Tastypy - 1
  DjangoRESTframework - 1
  Werkzeug - 4
  roll your own (httplib) - 9
  Twisted - 2
  Diesel -

Q: What version of Python are you using in production?
  2.4 - 1
  2.5 - 1
  2.6 - 9
  2.7.2 - 9
  3.1 - 2

Q: How long before you will be using Python 3 in production?

Q: How many are waiting for Django to move to v3?
4

Q: Who has been paid to program in...
        Ruby? 7
        Perl? 7
        C? 14
        C++ 11
        Java? 12
        Javascript? 19
        PHP - 14
        XBase - 1
        Cobol - 1
        bash - 13
        C# - 7
        J - 1
        Go - 2
        Haskell - 2
        Objective C - 3
        ActionScript -



Rob Bednark
<http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=10013+SE+Eastmont+Dr,+Damascus,+OR+97089&sll=45.450369,-122.391049&sspn=0.009483,0.022724&ie=UTF8&hq=&hnear=10013+SE+Eastmont+Dr,+Damascus,+Clackamas,+Oregon+97089&ll=45.447984,-122.391043&spn=0.009484,0.022724&z=16>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/portland/attachments/20140629/4f56e89f/attachment.html>


More information about the Portland mailing list