#103 Getting to 10x (results for developers)

Python Bytes - Un pódcast de Michael Kennedy and Brian Okken - Lunes

Categorías:

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:

Visit the podcast's native language site