RECENT TOPICS

Express Yourself! Conveying Information with Exceptions By: Heather White (eevelweezel)
Date: Aug. 14, 2025, 6 p.m.

When properly used, exceptions are a powerful tool for conveying information.  Let's take a look at how better exception management can help us avoid some common antipatterns.

Expressive: a new library for compiling symbolic expressions into fast NumPy functions By: Russell Fordyce
Date: Aug. 14, 2025, 6 p.m.

Introducing a new library which can compile symbolic expressions into fast NumPy functions - I hope it can help widen the bridge between mathematicians and programmers

A SymPy expression or string is accepted along with sample data, then directly used or converted into a loop over the first dimension of those arrays, and finally compiled with Numba's ahead-of-time mode using the types from the data and exposed through the object's `__call__()`

The given sample data can also be used to internally verify the results match in Python, SymPy (substitution), and the compiled function

Extra features (such as support for summations) and arbitrary helper functions can become embedded and made available too

Expressive can also parse indexed names like x[i-1] to refer to arbitrary offsets of the input arrays and also members of the result array (which can be provided filled or with seed values or generated dynamically)

Proposed Agenda
* Expressive overview
* How fast is this thing?
* Use cases
* Other cool stuff this can do
* Configuration system
* What's next?

PyPDFForm - A Python PDF Form Library - Part 2 By: Jinge Li
Date: July 10, 2025, 6 p.m.

About a year and half ago, I did a speak at ChiPy about my open source project PyPDFForm. The project has been evolving since then with lots of newly implemented features and QOL changes. So I think it's time to do a part 2 of the speak to give some quick updates and introduce some of these new features.

Agenda (tenative):

  • Quick recap on features went through from last speak
  • Slide intro to new features
  • Live coding session:
    • Create PDF form fields
      • Text field
      • Checkbox/radio button
      • Dropdown
      • Image/Signature field
    • Fill PDF forms in place (simulate manual filling)
    • Adobe Acrobat mode
  • QOL changes
  • Restrictions and future improvements
  • Q/A
Can my friends predict wine style and price? By: Albert Xue
Date: July 10, 2025, 6 p.m.

I hosted a single blind wine tasting amongst friends where they had to guess wine styles and prices. I collected the answers and used python to determine winners and output various plotly visuals. And for fun, I applied data science techniques to identify if any of my friends can identify wines with statistical significance. 

Flexible, Maintainable Python: A Gentle Intro to Dependency Injection By: Paul Zuradzki
Date: June 11, 2025, 6 p.m.

Dependency injection (DI) isn’t just for enterprise Java. DI is a simple, versatile design technique that can help you write less coupled, more modular, and more testable code. By the end of this talk, you'll be able to:

  • Spot implicit dependencies in your code

  • Understand what dependency injection is and why it matters

  • Apply simple DI in your Python code using functions or parameters

  • Know when not to use it

 

Outline

  • Motivation: Good Design and Why DI

  • Recognizing Dependencies

  • What is Dependency Injection (DI)

  • Dependency Injection (DI) vs Dependency Inversion Principle (DIP)

  • Practical Examples

  • Styles of Dependency Injection

  • DI for Testing

  • DI for Decoupling

  • DI for Flexibility

  • Composition Root: Where to Wire Dependencies

  • When Not to Use DI

  • Patterns that Use DI

    • Strategy

    • Factory

    • Service, Repository, and Domain

  • DI and Python Idioms

  • DI Containers and Frameworks for Large or Complex Projects

 

To pickle or not to pickle By: Joshua Herman
Date: June 11, 2025, 6 p.m.

We will go over the implications of how deciding a serialization format (also known as a data interchange format) can have on your performance, security and readability. We will study JSON, pickle and safetensors and understand the decision making and the specifications of those formats have and why you should choose one over the other. We will also show the implications of how others have used and when these formats while are a good idea before start to change in such a manner where you need to migrate to a format for the previous reasons mentioned (performance, security and readability). Also, at the end there will be a security demo derived from a blogpost.

Scale your Machine learning with Sagemaker Pipelines By: Drake Loud
Date: May 8, 2025, 6 p.m.

In this session, we’ll introduce key machine learning concepts and explore how Amazon SageMaker Pipelines simplifies and automates the end-to-end ML workflow, allowing you to scale your projects to your needs.

We will start at a high level, then dig into the code and discuss the core concepts and how it all works behind the scenes.

LLMs, PDFs, and Load Balancers: A Love Story By: Eugene Scray
Date: May 8, 2025, 6 p.m.

Join me for a whirlwind tour of building real apps with Large Language Models, where the PDFs are endless, the prompts are moody, and the alerts come at 2AM.

We’ll cover:

  • Semantic search with KNN, Lucene, and TF-IDF (because one search method is never enough)

  • Parsing PDFs at scale without crying (much)

  • Prompt engineering with Semantic Kernel (AI therapy sessions included)

  • Web apps behind load balancers (hello, uptime!)

  • Datadog alerts when things catch fire (they will)

Come for the LLMs, stay for the tech glue and mild existential dread.

Designing and Building Custom Keyboards ⌨ with Python By: Carlos A Aranibar
Date: April 10, 2025, 6 p.m.

As programmers, we spend a lot of time typing, but we often overlook how keyboard designs affect our comfort and productivity. In this talk, we'll explore custom keyboards and how Python can help us create our own typing experiences. 

We'll start by looking at the history of keyboard design and the limits of standard layouts like QWERTY. Then, we’ll discuss the advantages of alternative layouts, such as ortholinear and split designs, which can help reduce strain and improve typing speed. 

Next, we’ll go through how to design a custom keyboard PCB and learn from Python tools like GDSFactory. You’ll learn to arrange the keys based on your hand shape and create a layout that focuses on the keys you use most in your favorite programming languages. 

Once we have our PCB design, we’ll move on to building our custom keyboard. We’ll cover basic assembly to turn our design into a real device. Finally, we’ll talk about getting used to our new keyboard layout. We’ll look at online tools and Python scripts to analyze our typing habits, helping us identify our most common keys and monitor our progress as we retrain our fingers. 

No prior experience with keyboard building or PCB design is needed – just bring your curiosity and eagerness to create a custom typing experience. By the end of this talk, you’ll know to question the design of your current keyboard and might want to build and improve your own custom keyboard using Python.

MCP Tool Kit By: Jack Thompson
Date: April 10, 2025, 6 p.m.

Microsoft sponsored. Best way to build vertical agents. Server and Tool kit for Model Context Protocol server written in python. Run multiple tools on a single server.