pre-release: North Bay Python meeting announcement

Please take a moment to review your details and reply with OK or edits.
Subject and below is what will go out and also will be used to title the videos.

Subject: 
ANN: North Bay Python at Reis River Ranch Sat July 29, 10:15p


North Bay Python
=========================
When: 10:15 AM Saturday July 29, 2023
Where: Reis River Ranch
North Bay Python is a boutique one-track conference, held in Petaluma, California. Our first events were held in 2017-2019 in a 100 year-old theater in the city's downtown. After a planned one-year break that's turned into almost four years, we're excited to return!

This year, we're holding our conference in July, in a barn, on a ranch overlooking the Petaluma River.
https://pretalx.northbaypython.org/nbpy-2023/schedule/

Topics
------
1. Saturday Opening


Administrative remarks.
 recording release: yes license: CC BY-NC-SA  

2. 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.
 recording release: yes license: CC BY-NC-SA  

3. 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!
 recording release: yes license: CC BY-NC-SA  

4. 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.
 recording release: yes license: CC BY-NC-SA  

5. 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.
 recording release: yes license: CC BY-NC-SA  

6. 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!
 recording release: yes license: CC BY-NC-SA  

7. 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](https://pex.readthedocs.io) 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.
 recording release: yes license: CC BY-NC-SA  

8. 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.
 recording release: yes license: CC BY-NC-SA  

9. 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?
 recording release: yes license: CC BY-NC-SA  

10. Saturday Close


Administrative remarks.
 recording release: yes license: CC BY-NC-SA  

11. Sunday Opening


Administrative remarks.
 recording release: yes license: CC BY-NC-SA  

12. 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.
 recording release: yes license: CC BY-NC-SA  

13. 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.
 recording release: yes license: CC BY-NC-SA  

14. 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
 recording release: yes license: CC BY-NC-SA  

15. SVGs, Lasers, Reality, and You
Evan Kohilas

Evan Kohilas is a Software Engineer down from Sydney, Australia, whose passions lie in improving the developer experience by reducing human error, enhancing code health, and optimising workflows.

When he's not thinking about security, informatics, or giving talks about his many projects, you'll find him either nomming on subway cookies, or chasing bunny rabbits.

https://pretalx.northbaypython.org/nbpy-2023/talk/XB7UTZ/

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.

00:00 - Intro
02:17 - Software
03:08 - Manufacturing
03:21 - Start of issues
03:42 - Complex tools and design
04:20 - Slow and iterative process
05:25 - Python: how and where?
05:57 - SVG Elements
06:18 - Path elements
07:38 - Creating rulers
08:41 - Generalising code
09:09 - Creating with ChatGPT
09:51 - Beyond the basics
10:35 - Researching before designing
11:48 - Assumptions about reality
12:55 - Assumptions about tools
13:40 - Unit testing
14:18 - Integration testing
15:28 - Documentation
16:00 - Version control systems
16:49 - Fonts
19:04 - Using the right tools for the job
20:10 - Understanding foundations
21:10 - Keep it simple stupid
22:07 - DIY
23:13 - Thanks
 recording release: yes license: CC BY-NC-SA  

16. Celebrating 25 years of Open Source & our friend Betsy
Josh

The Open Source Initiative turns 25 this year. 
North Bay Python says:  Thank you Betsy!
 recording release: yes license: CC BY-SA  

17. 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!
 recording release: yes license: CC BY-NC-SA  

18. 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.
 recording release: yes license: CC BY-NC-SA  

19. 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" will explore 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 15+ years of playwriting experience. It will focus on the following topics:

- How structuring and plotting a play is like structuring a computer program. David Ball’s book _Backwards and Forwards_, which instructs playwrights and directors to trace the events of a play backwards in order to figure out its chain of cause and effect, is also an excellent manual for software engineers!
- The similarities between docstrings and stage directions, and why both playwrights and programmers can find them difficult and frustrating.
- Nomenclature: programmers aren’t the only people who think that naming things is one of the hardest parts of their job.

Finally, the talk will discuss the biggest difference between the two kinds of scripts: debugging a failing computer program might be frustrating, but “debugging” (editing and improving) a play is exponentially more difficult. A good play is designed to give the audience an emotionally satisfying experience; but from the perspective of the writer, there is great emotional satisfaction to be found in programming as well.
 recording release: yes license: CC BY-NC-SA  

20. 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.
 recording release: yes license: CC BY-NC-SA  

21. Sunday Close


Administrative remarks.
 recording release: yes license: CC BY-NC-SA  



Location
--------
Reis River Ranch
Reis River Ranch
411 Highland Ave.
Penngrove, CA 94951

https://www.openstreetmap.org/search?query=411%20Highland%20Ave.%20%2094951#map=19/38.30534/-122.69594



800-732-8220

Take exit 472A (Petaluma Blvd South), and follow the signs to Reis River Ranch.

https://www.reisranch.com/equestrian-barn-weddings/

About the group
---------------