Brought to you by Michael and Brian - take a Talk Python course or get Brian's pytest book

#103: Getting to 10x (results for developers)

Published Thu, Nov 8, 2018, recorded Tue, Nov 6, 2018

Sponsored by DigitalOcean: pythonbytes.fm/digitalocean

Brian #1: FEniCS

  • “FEniCS is a popular open-source (LGPLv3) computing platform for solving partial differential equations (PDEs). FEniCS enables users to quickly translate scientific models into efficient finite element code. With the high-level Python and C++ interfaces to FEniCS, it is easy to get started, but FEniCS offers also powerful capabilities for more experienced programmers. FEniCS runs on a multitude of platforms ranging from laptops to high-performance clusters.”
  • Solves partial differential equations efficiently with a combination of C++ and Python.
  • Can be run on a desktop/laptop or deployed to a supercomputer with thousands of parallel processes.
  • is a NumFOCUS fiscally supported project
  • “makes the implementation of the mathematical formulation of a system of partial differential equations almost seamless.” - Sébastien Brisard
  • “FEniCS is in fact a C++ project with a full-featured Python interface. The library itself generates C++ code on-the-fly, that can be called (on-the-fly) from python. It's almost magical... Under the hood, it used to use SWIG, and recently moved to pybind11. I guess the architecture that was set up to achieve this level of automation might be useful in other situations.” - Sébastien Brisard

Michael #2: cursive_re

  • via Christopher Patti, created by Bogdan Popa
  • Readable regular expressions for Python 3.6 and up.
  • It’s a tiny Python library made up of combinators that help you write regular expressions you can read and modify six months down the line.
  • Best understood via an example:

        >>> hash = text('#')
        >>> hexdigit = any_of(in_range('0', '9') + in_range('a', 'f') + in_range('A', 'F'))
        >>> hexcolor = (
        ...     beginning_of_line() + hash +
        ...     group(repeated(hexdigit, exactly=6) | repeated(hexdigit, exactly=3)) +
        ...     end_of_line()
        ... )
        >>> str(hexcolor)
        '^\\#([a-f0-9]{6}|[a-f0-9]{3})$'
    
  • Has automatic escaping for [ and \ etc: str(any_of(text("[]"))) → '[\\[\\]]'

  • Easily testable / inspectable. Just call str on any expression.

Brian #3: pyimagesearch

Michael #4: Visualization of Python development up till 2012

  • via Ophion Group (on twitter)
  • mercurial (hg) source code repository commit history
  • August 1990 - June 2012 (cpython 3.3.0 alpha)
  • Watch the first minute, then click ahead minute at a time and watch for a few seconds to get the full feel
  • Really interesting to see a visual representation of the growth of an open source ecosystem
  • Built with Gource: https://gource.io/
  • Who wants to build this for 2012-present?
  • Would make an amazing lightning talk!

Brian #5: Getting to 10x (Results): What Any Developer Can Learn from the Best

  • Forget the “10x” bit if that term is fighting words. - Brian’s advice
    • How about just “ways to improve your effectiveness as a developer”?
  • “… there is a clear path to excellence. People aren’t born great developers. They get there through focused, deliberate practice.”
  • traits of great developers
    • problem solver
    • skilled
    • mentor/teacher
    • excellent learner
    • passionate
  • traits to avoid:
    • incompetent
    • arrogant
    • uncooperative
    • unmotivated
    • stubborn
  • Focus on your strengths more than your weaknesses
  • Pick 1 thing to improve on this week and focus on it relentlessly

Michael #6: Chaos Toolkit

  • Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system's capability to withstand turbulent conditions in production.
  • Netflix uses the chaos monkey (et. al.) on their systems. Covered on https://talkpython.fm/episodes/show/16/python-at-netflix
  • The Chaos Toolkit aims to be the simplest and easiest way
  • to explore building, and automating, your own Chaos Engineering Experiments.
  • Integrates with Kubernetes, AWS, Google Cloud, Microsoft Azure, etc.
  • To give you an idea, here are some things it can do to aws:
    • lambda: delete_function_concurrency Removes concurrency limit applied to the specified Lambda
    • stop_instance Stop a single EC2 instance. You may provide an instance id explicitly or, if you only specify the AZ, a random instance will be selected.

Extras:


Want to go deeper? Check our projects