- Number of videos:
I released the first version of PyEphem in 1998. Built with SWIG, it made astronomical calculations in Python only slightly more convenient than writing C code to make raw calls to the libastro library. A massive rewrite five years later improved the interface, but a decade of fielding questions from users has convinced me to re-think how an API can better help programmers cope with an unfamiliar and complex domain like astronomy. This talk will explore how API design, NumPy integration, and modern high-performance Python computation combine in Skyfield, the new pure-Python astronomy library that I will release during the PyCon Canada sprints!
What are the key features of a modern dynamic language like Python that let a programmer make progress even against difficult problems, even on days when things are not going well? Starting simple and then ramping up to complex, Brandon takes us from how beginners can use a Python dictionary to pair up matching data, to how to use ctypes to work around limitations in the built-in Python SSL module, as he takes us through the tools and approaches that for a Python programmer are all part of a day's work — the features without which we would not be as productive.
While Java and C# use static type declarations to eliminate ambiguity, the Python programmer must survive through sheer clarity and consistency in naming variables. We will explore the deep unspoken conventions that the Python community has developed and honed over two decades to make Python code readable and meaningful within the freedom that a dynamically-typed language grants us.
Projects can succeed or fail because of their documentation. When you write, you need to concentrate on your prose—not on how to get text rendered, indexed, highlighted, and cross-referenced. The Sphinx documentation framework exists to make these parts easy so you can focus on writing. This tutorial will use hands-on exercises to teach you to write, theme, and deploy documentation using Sphinx!
Why did I start using Python in the late 1990s? Was it for any of the reasons that I remain a fan today? In this talk we will explore how Python, even while training us to avoid and become blind to its rough edges, works to teach us new ways of making programs beautiful. Even novices should learn new things to love about Python by listening to this talk!
The Python community has learned a lot about how to use our language since we started back in the 1990s, and this talk will use simple one-slide programs to illustrate the crucial refactorings that can help make a large real-life application far more testable and maintainable while making its code easier to re-use. This will not be a re-hash of Gang-of-Four refactorings, but specific to Python.
Why does “top” show that your Python process uses 110 MB of virtual memory but has a resident set size of 9 MB? Does it consume more memory to spawn several interpreters, or to run one Python and have it fork() further workers? What is an “undefined symbol,” anyway? Learn about how an operating system manages memory, loads shared libraries, and what this means for Python servers and applications.
How do you take the big step from casual SQLAlchemy user, who treats your database as a mysterious object store, to advanced power user, who optimizes critical queries, plans indexing and migrations, and generates efficient reports? This talk will teach you how databases think; why humanity invented the Relational Algebra; and how SQLAlchemy grants you access to relational power.
Python projects can succeed or fail because of their documentation. Thanks to Sphinx, Python now has a “documentation framework” with indexing, syntax highlighting, and integration with your code. Students will be given a small undocumented Python package, and during the exercises they will give the package a tutorial and reference manual. Plus: deployment and theming!
Relational databases are often the bread-and-butter of large-scale data storage, yet they are often poorly understood by Python programmers. Organizations even split programmers into SQL and front-end teams, each of which jealously guards its turf. These tutorials will take what you already know about Python programming, and advance into a new realm: SQL programming and database design.