About Curious Efficiency
========================
About the site
--------------
Curious Efficiency is the intermittently updated personal website of Nicholas
Coghlan, CPython core developer, PSF Fellow, software development toolsmith,
cognitive science dabbler, and cynical idealist.
The main portion of the site is generated via
`Nikola `__,
hosted on `GitHub Pages `__,
and under source control on
`BitBucket `__.
Python specific technical writing tends to end up on the
`ReadTheDocs `__ powered
`Python Notes `__ subsite.
About the name
--------------
Curious Efficiency is actually a reframing of my original blog title,
Boredom & Laziness - the original boredomandlaziness.org URLs now redirect
here. The original site blurb on Boredom & Laziness read as follows:
There are a couple of very, very scary things in this world.
The first is a bored human. Bored humans have time to indulge their
curiosity, with potentially amazing results.
The second is a lazy human. Lazy humans can be quite inventive when it
comes to figuring out how to do less work.
So, here's to boredom & laziness - two of the prime movers in human progress!
"Curious Efficiency" is really just a nicer way of referring to the same
concept.
`This post <../posts/2012/07/the-title-of-this-blog.html>`__ goes into some
additional detail on the concepts that inspired the naming, both the original
form, and the current more conventionally acceptable phrasing.
About the author
----------------
.. image:: ../files/pycon2011_language_summit_cropped.jpg
:align: right
Nick is a CPython core developer, a Fellow of the Python Software Foundation,
and the founder of the PyCon Australia Education Seminar.
He is the author or co-author of several accepted Python Enhancement Proposals
(including PEP 453, which saw the ``pip`` installer bundled with Python 3.4+,
PEP 466, which saw several key Python 3 network security enhancements backported
to the Python 2.7 series, and PEP 538, which updated CPython to coerce the
legacy ASCII-based C locale to a suitable UTF-8 based locale when one is
available), and has also accepted a number of PEPs on Guido van Rossum's behalf
as BDFL-Delegate.
Nick is currently the BDFL-Delegate for most packaging related PEPs, serving
as the primary liaison between the CPython core development team and the
`Python Packaging Authority `__. His own efforts in the
packaging space are focused primarily on the
`Python Packaging User Guide `_, and the
`pipenv `_
application dependency management project.
At the PyCon US 2013 language summit, Nick successfully argued for updates to
the Python Enhancement Proposal process (described in PEP 1) that allowed
BDFL-Delegates to approve PEPs that don't affect the language definition or
the standard library directly on the relevant mailing lists (without needing
to rehash the discussions on python-dev).
In addition to CPython, the PSF, the PyPA, and the PSF's
`Packaging Working Group `__,
other projects & programs of particular current interest include:
* `Kubernetes `__: a Google created open source
application deployment platform, designed to ease adoption for folks
accustomed to managing their own Linux servers directly, and supported across
all major public clouds. I'm interested in this as I believe it addresses many
of the vendor lock-in concerns otherwise raised against public cloud adoption
(and unlike previous efforts in that space, it has support from the major
public cloud vendors themselves).
* `OpenShift `__: Red Hat's fully open source
Kubernetes-based Platform-as-a-Service offering that provides tools to
handle automatic updates of deployed images when either application code
or the underlying base image changes. I'm interested in this as Red Hat are
veterans at selling to the legacy infrastructure crowd, and many of the "But
what about..." objections raised against plain Kubernetes already have
solutions built in to OpenShift.
* `Zappa `__: a toolkit for running Python WSGI
applications in AWS Lambda behind AWS API Gateway. I'm interested in this
as I think it's the level of "Don't bother me with irrelevant infrastructure
details" that Kubernetes et al should be aspiring to, but they're not there
yet.
* `Software Collections `__: a
Red Hat supported approach to deploying platform components (such as language
runtimes, database engines and web servers) on Linux, such that end user
applications can use newer versions without interfering with the versions
integrated directly into the underlying operating system distribution. I'm
interested in this as "We have to use the system Python in some ancient RHEL
version and aren't allowed to install packages from PyPI" is one of the
largest drags on innovation in the Python ecosystem, and Software
Collections are the main mechanism that Red Hat uses to offer newer Python
runtimes to their customers.
* `Zappa `__: a toolkit for running Python WSGI
applications in AWS Lambda behind AWS API Gateway. I'm interested in this
as I think it's the level of "Don't bother me with irrelevant infrastructure
details" that Kubernetes et al should be aspiring to, but they're not there
yet.
* `Conda `__: a cross-platform environment manager
created initially for the Python data science community. Its language
independent design means it can not only manage the installation of Python
packages, but also manage the Python runtime itself, external binary
dependencies written in C/C++/FORTRAN/etc, and data analysis components
written in other languages entirely (such as R and Julia).
* `Fedora Scientific `__: a
KDE-based Fedora desktop distribution with a range of science and data
analysis applications pre-installed, including IPython Notebook.
Selected articles, presentations and interviews
-----------------------------------------------
Selected Python Enhancement Proposals:
* PEP 338: `Executing modules as scripts `__ (aka "the -m switch")
* PEP 343: `The "with" statement `__ (co-authored with Guido van Rossum)
* PEP 366: `Main module explicit relative imports `__
* PEP 394: `The "python" command on UNIX-like systems `__ (co-authored with Kerrick Staley)
* PEP 414: `Explicit Unicode Literal for Python 3.3 `__ (co-authored with Armin Ronacher)
* PEP 432 (Draft): `Simplifying the CPython interpreter startup sequence `__
* PEP 453: `Bootstrapping pip in Python installations `__ (co-authored with Donald Stufft)
* PEP 466: `Network Security Enhancements for Python 2.7.x `__
* PEP 477: `Backport ensurepip to Python 2.7 `__ (co-authored with Donald Stufft)
* PEP 489: `Multi-phase extension module initialisation `__ (co-authored with Petr Viktorin and Stefan Behnel)
* PEP 493: `HTTPS verification migration tools for Python 2.7 `__ (co-authored with Robert Kuska and Marc-Andre Lemburg)
* PEP 538: `Coercing the legacy C locale to a UTF-8 based locale `__
* PEP 565: `Show DeprecationWarning in __main__ `__
* PEP 558 (Draft): `Defined semantics for locals() `__
Selected Python related presentations (video links):
* Opportunities & Challenges in Open Collaboration
* `PyCon Pune 2017 `__
* Contributors, Colleagues, Clients & Customers: Sustaining Open Source Communities
* `PyGotham 2015 keynote `__
* `PyCon Poland 2015 keynote `__
* Python Beyond (C)Python (Adventures in Software Distribution):
* `PyCon New Zealand 2014 keynote `__
* `SciPy 2014 keynote `__
* Python Packaging:
* `Python Packaging 2.0: Playing Well With Others `__ (linux.conf.au 2014)
* `Nobody Expects the Python Packaging Authority `__ (PyCon Australia 2013)
* CPython Core Development:
* `Here be dragons: some elegant & ugly hacks in CPython `__ (PyCon Australia 2014)
* `How Python Evolves `__ (PyCon Australia 2011)
Selected Python related articles and presentation reviews:
* `Considering Python's target audience `__
* `The Python Packaging Ecosystem (September 2016) `__
* `27 Languages to Improve Your Python `__
* `The Transition to Multilingual Programming `__
* `Why Python 4.0 won't be like Python 3.0 `__
* `Python 3 Q & A `__
* `Linux Weekly News article `__ on my Python Packaging 2.0 presentation at linux.conf.au 2014
* `Justifying Python language changes `__
Selected software design, development and deployment related presentations and articles:
* `Front-end Integration Testing with Splinter `__ (PyCon Australia 2017)
* `Tracking package updates with release-monitoring.org `__ (LWN article on my linux.conf.au 2017 presentation)
* `What problem does it solve? `__ (on constructively criticising API designs)
* `Musings on the culture of python-dev `__
* `Status quo wins a stalemate `__
* `Scripting Languages and Suitable Complexity `__
* `Path Dependent Development `__ (PyCon Australia 2012)
* `Full Stack Integration Testing with Beaker `__ (linux.conf.au 2014)
Selected community management related articles and interviews:
* `27 Languages to Improve Your Python (introduction) `__
* `The Quid Pro Quo of Open Infrastructure `__
* `Abusing Contributors is not OK `__ (reflecting on some comments from Linus Torvalds during his plenary session at linux.conf.au 2015)
* `Effective communication, brain hacking and diversity `__
* `opensource.com interview `__ on my joining the PSF board of directors
Podcast appearances (in reverse chronological order):
* `Free as in Freedom `__ (with hosts Karen Sandler & Bradley M. Kuhn, recorded January 2015)
* `Pragmatic `__ (with host John Chidgey, recorded August 2014)
* `From Python Import Podcast `__ (with hosts Mike Pirnat & Dave Noyes and fellow guest Alex Gaynor, recorded March 2014)
* Historical note of potential interest: I consider this discussion between Alex and myself to be one of the key events on the road to PEP 466's backport of Python 3 network security features to the Python 2.7 series, and PEP 476's switch to verifying HTTPS certificates by default in Python 2.7.9+ and 3.4.3+
* `Radio Free Python `__ (with host Larry Hastings, recorded February 2012)