North Bay Python 2023

To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
10:15
10:15
15min
Saturday Opening

Administrative remarks.

The Barn
10:30
10:30
25min
PEP talk
Mariatta

If you use Python, chances are you've heard of PEP 8, the Python style guide.

But do you know what PEPs really are? PEPs are more than just a style guide. A PEP stands for Python Enhancement Proposal. It's a proposal documentation for when you want to change the Python programming language in a big way, for example when you want to change the syntax of Python. Think of the addition of f-strings, the walrus operator, or the ExceptionGroup, those changes all started with a PEP.

Let's have a PEP talk, where you can learn about the PEP process, what needs a PEP and what doesn't, and how you as community members can take part.

The Barn
11:05
11:05
25min
I Take Exception to Your Exceptions: Using Custom Errors to Get Your Point Across
Joe Kaufeld

Have you ever used a library, ran into a generic AttributeError, and then had to go chase down what the problem actually was? Wouldn't it be great to help others from running into that same issue on your code? In this talk, we take a look at custom exceptions in Python and ways to structure your code to use them effectively to communicate issues back to the end user (or end developer). We'll also cover a few cool lesser-used things you can do with exceptions to make your code really stand out!

The Barn
11:40
11:40
25min
Teaching with Jupyter
Moshe Zadka

Jupyter has a well-deserved reputation for being a research tool. The same properties that make it well suited for research make it a powerful tool for hands-on teaching. Whether it is abstract math, computer science, software development, physics, or many other subjects, Jupyter can be a powerful tool for teaching with integrated hands-on exercises.

The talk will show how JupyterLab can be used both for assigning independent work as well as to help follow along with traditional frontal teaching. It will cover concrete examples from math, software development, and physics, to show how to put it into practice.

The talk will also cover how to export Jupyter notebooks in a way suitable for students to download them and how to use Jupyter to grade work assigned as notebooks.

The Barn
12:05
12:05
85min
Lunch (Catered)
The Barn
13:30
13:30
25min
Have you tried...
Paloma Fautley

Have you tried turning it off again?

These words are the most useful and most annoying tech support. Yes, I know that it will probably fix it, but why??

This talk is about failure analysis and also robots and maybe there will be a story about my mattress exploding? Whatever the example, failure analysis is incredibly important and I will go over at least 2 case studies for deep root cause analysis and replication of failure states.

The Barn
14:05
14:05
25min
Make Your Engineering Team A Fabulous Place for Programmers with ADHD and Autism
Erin "August" Allard

In StackOverflow's 2022 annual survey of 16,000 developers worldwide, 10.6% of respondents reported being affected by concentration or memory challenges, such as having Attention Deficit Hyperactivity disorder (ADHD), and 4.3% of respondents self-identified as having an Autism Spectrum Disorder (ASD). These results indicate that on a team of 20 engineers, up to 3 people on the team may have what are called "neurodivergent" brains.

What are the symptoms of ADHD and ASD? What are the so-called neurodivergent "superpowers" you may have seen on social media? How can we create work environments that foster ease and success for neurodivergent software engineers? Join this session to find out!

The Barn
14:40
14:40
25min
Ship your Python code faster with PEX
Shalabh Chaturvedi

A lot of Python code is shipped around in Docker images. But did you know there is another way to ship Python code to production that is... better in some situations? This talk covers our exploration into making code deployment faster for our users (our product runs user code in our cloud). We will cover the limits we faced with Docker builds and container provisioning, various options we explored, and why we settled on PEX.

PEX is a tool that packages Python code and dependencies into a single file. It provides various features such as determinism (given the same input files, you get a bit-for-bit identical output file), isolation (a PEX file runs in the bundled environment, isolated from the system’s site-packages), composition (multiple PEX files can be combined to form new environments), and more. We used a number of these feature to great effect in our solution. By using PEX in addition to Docker we were able to reduce the time a developer waits for code to deploy from 3-4 minutes to about 30 seconds.

Shipping code isn't the only use for PEX. Once we see how PEX files work, we will also go over a few fun tips and tricks that are handy for everyday Python development.

The Barn
15:05
15:05
35min
Afternoon Break
The Barn
15:40
15:40
25min
Back to the Future of Hypermedia in Python
Mario Munoz

"Hypermedia is your friend," they said. "You don't need JavaScript anymore," they said. "You'll be fine..."

It's no secret that hypermedia has been making a quiet resurgence in the web development landscape. One of the most popular toolkits in the Python space is htmx, offering a simple, declarative approach to AJAX, CSS Transitions, and Server Sent Events directly from your HTML.

Additionally, tools like TailwindCSS are making it easier to design your application simply by adding preconfigured CSS classes to your HTML elements. There's no need to meddle around with a CSS file or fear that completely changing your design will increase bloat or introduce clashing code.

You can now build a beautiful and responsive application with nothing more than Python and HTML!

Let's take a look at some of the tools that exist to enable the PyHAT (Python htmx ASGI Tailwind) stack and discuss where we can go from here.

The Barn
16:10
16:10
35min
Beyond Programming Paradigms (with Python examples)
Luciano Ramalho

Java is object oriented and Haskell is functional. How about Python?
Is it really OO with free-standing functions and porous encapsulation?
Python has lambdas and closures, but is it functional? Are these
useful questions?

The Barn
16:45
16:45
15min
Saturday Close

Administrative remarks.

The Barn
17:00
17:00
15min
Day 1 Concludes
The Barn
10:15
10:15
15min
Sunday Opening

Administrative remarks.

The Barn
10:30
10:30
25min
Automate Your City Data with Python
Philip James

Every week, in every city, hundreds if not thousands of decisions, big and small, are being made about the places where we all live. Most of the time, these decisions are hidden behind old systems, arcane websites, or poorly formatted PDFs. With the power of Datasette, Python data tooling, and Github actions, you can quickly set up a low-or-no-cost city data pipeline, and help us all better understand the decisions being made where we live.

The Barn
11:05
11:05
25min
Automated accessibility audits
Pamela Fox

It's 2023, so we all know the importance of website accessibility. Thanks to open source tools, we can now automatically check our Python Web Apps for accessibility issues. In this talk, I'll show how to use the open-source Axe-core accessibility checking engine with Python tools like Pytest and Playwright, plus tips for setting up CI/CD workflows to ensure that accessibility issues don't get introduced.

The Barn
11:40
11:40
25min
Oh the (Methods) You Can (Make): By Dunder Seuss
Josh Cannon

You can make many methods
Over 100 to be exact
That start with two underscores
What do you think of that?

The runtime, it calls these
At points A or B
To do special magic
At runtime, you see.

You may have seen __getattr__ or __init__
But __rfloordiv__? What’s the point of it?

Come take a quick tour, your mother won’t mind
And hear a talk that’s one-of-a-kind
About how Python uses them under-the-hood
And how you can use them to write code that's real good

The Barn
12:05
12:05
85min
Lunch (Catered)
The Barn
13:30
13:30
25min
SVGs, Lasers, Reality, and You
Evan Kohilas

Recently, I embarked on an adventure to design and laser cut a card for my wallet.

Little did I know that I'd face a Hydra called Reality. For every challenge that I solved, two new ones emerged...

In the software world, we often have the privilege of quick feedback loops, be it running code or tests.

But as we slowly broaden our scope and venture into the real world, navigating unpredictable variables from complex software, proprietary hardware, and a little thing called "physics", we quickly lose this privilege.

How can we use Python and SVGs to speed up and fortify this process, and what can the real world of fabrication with laser cutting teach us regarding software design?

By the end of the talk, you'll have a basic understanding of how to cleanly design SVGs and SVG paths with the assistance of Python. You'll also understand (more than want to know about) laser cutting, and some suggested learnings regarding software design.

The Barn
14:05
14:05
25min
Observability For You and Me with OpenTelemetry
Sarah Hudspeth

Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages (err, Python), challenges, and opportunities for getting started with telemetry data. The project is called OpenTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs. Python in particular has lovely documentation and auto-instrumentation for the most popular frameworks! Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!

The Barn
14:40
14:40
25min
Developing Labs for Teaching Kids Webdev
Matt Cengia

Come listen to the tale of how I and a small team of Scout Leaders developed and delivered a weekend course that took 11-15-year-old young adults from knowing almost nothing about networking or code, to being able to follow along and build their own website, complete with static HTML, CSS, and then transitioning to a simple Python Flask app, requiring nothing more than a web browser and Visual Studio Code on the student computers.

I'll cover how we gave each student full root access to their own "server", through to how we built the course material to be a manageable learning curve over such a tight timeline, the challenges we faced with content delivery, and ideas for improvements before we run our next course.

The Barn
15:05
15:05
35min
Afternoon Break
The Barn
15:40
15:40
25min
Two Kinds of Scripting: What Writing Plays Has Taught Me About Writing Python Programs
Marissa Skudlarek

It’s a set of instructions, describing a series of actions to be taken or events that should happen. It’s written with specialized syntax and formatting. You want it to be efficient; you don’t want it to bog down. It doesn’t reach its full potential until you run through it, start to finish, without error.

Am I talking about a play script, or a Python program?

"Two Kinds of Scripting" explores the surprising and thought-provoking connections between writing code and writing plays, from the perspective of a Bay Area software engineer with a degree in drama from a liberal arts college and two decades of playwriting experience. It will discuss how structuring and plotting a play is like structuring a computer program; the way that a knowledge of Method Acting can help you figure out to name your Python methods; and how stage directions are just as controversial among theater folks as code comments are among engineers. Finally, the talk will discuss some things that playwrights could learn from the engineering world, including version control and better feedback/"debugging" techniques.

The Barn
16:10
16:10
35min
Catching up on the weird world of LLMs
Simon Willison

Large Language Models are the engines that power AI tools like ChatGPT, Bing and Bard.

They are deeply weird, often frustrating and undeniably fascinating pieces of technology.

This talk will attempt to summarize everything I've learned about them over the past year: how they are built, what they can do, what they can't do and how we can best tame them and use them to solve interesting problems.

LLMs don't have to be large: I'll talk through the latest developments in openly licensed models you can run on your own devices, including on your phone and even in your web browser.

I'll also discuss their as-yet unconquered security flaws, and the bewildering ethical implications of how they are trained and what they can damage.

The Barn
16:45
16:45
15min
Sunday Close

Administrative remarks.

The Barn
17:00
17:00
30min
End of North Bay Python 2023
The Barn