Friday, March 23, 2012

PyCon: Lightning Talks

Numba is a Python compiler for NumPy and SciPy. It replaces byte-code on the stack with simple type-inferencing. It translates to LLVM. The code then gets inserted into the NumPy runtime. They use LLVM-PY. They have a @numba.compile decorator. It's from Continuum Analytics.

IHasAMoney.com is a replacement for mint.com. He doesn't trust mint.com. IHasAMoney.com does not require the use of a mouse--it's for hackers. You can run it locally so that you don't have to give another web site your bank passwords.

Why do so many talks fall flat? Your talk should tell a story. People are story tellers. People care about people. Show puzzles, not solutions. Hacking is a skill, not a piece of knowledge.

He was measuring the Python 3 support for packages on PyPI. 54-58% of the top 50 projects on PyPI support Python 3. We planned on moving to Python 3 over the course of 5 years. We're at year 3. Update your Trope classifiers to say that your project supports Python 3.

He got Python working on an iBook. This is helpful for eBooks. He used Emscripten to compile CPython into JavaScript. This does not require jail breaking. See bit.ly/pyonbook (?).

PyCon 2014 and 2015 will be in Montreal. You'll need a passport.

bpython is an interactive shell. It only works on UNIXy systems. It looks gorgeous! It has syntax highlighting. It shows you all the callables on an object. It even shows you the docstrings, etc. It looks like Curses. You can jump to the source easily. It has rewind. It looks like a curses-based Java IDE (in a good way). pip or easy_install bpython.

Rpclib makes it easy to expose your service using multiple protocols. You can specifies types for input and output arguments. You can expose your API using a WSGI-compliant server. It also works with SOAP. It can produce XML output. It can also generate HTML microformats.

Python 3.3 will be awesome. PEP 393 gets rid of UCS2 vs. UCS4. It uses a codepoint abstraction. It surpasses the Unicode support in other languages. We won't have any more surrogate pair problems. This makes us as good as Perl, which apparently has very good Unicode support. Python 3.3 also unifies IOError and OSError. There is a new "yield from obj" syntax to flatten iterators (wahoo!). It also has a package module.

HUB is a wrapper around Git that makes working with GitHub easier. The only way you can install it is via Homebrew on a Mac. It lets you do lots of things on the command line that you would normally have to use the website for. You can use hub as an alias for git; it's a wrapper.

__init__ does not get re-run on unpickled objects. Hence, you can't add new members in new versions of __init__ because objects picked with the old version of __init__ will not get those members. However, __new__ is run. All pickled classes must be at module scope and consistently named. Only do one dump; don't use separate dumps because you might get multiple copies of subobjects.

Someone on the virtualenv team said, "I can't believe [virtualenv] even works at all." They're working on virtualenv 3, which they're hoping to get into Python 3.3. They want people to try it out. This is PEP 405.

PyPy gave a 10x speedup for generating fractals using his code. Shed Skin gave a 50x speedup, but only accepts a subset of Python. It compiles down to C++. But, using NumPy and Cython, he got 207x speedup (using multiple cores); using prange. NumPy gets behind the GIL. It takes about a day to learn how to do this stuff.

Hieroglyph is an extension for Sphinx which helps you write HTML5 slides from reStructured Text.

No comments: