ChiPy __Main__ Meeting


Join us for the April __main__ meeting!  We'll have food and beverages at 6:00pm, the talks start at 6:30pm.

When: April 10, 2025, 6 p.m.

Where: Slalom Build

Attendance:
In Person Pythonistas: 38

Topics


  • MCP Tool Kit
    By: Jack Thompson
    Experience Level: Intermediate
    Length: 15 Minutes
    Description:

    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.

  • Designing and Building Custom Keyboards ⌨ with Python
    By: Carlos A Aranibar
    Experience Level: Novice
    Length: 30 Minutes
    Description:

    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.

  • If This, Then That: Tools for Refactoring Conditional Logic
    By: Paul Zuradzki
    Experience Level: Intermediate
    Length: 30 Minutes
    Description:

    Outline

    • Setting up a test harness. How to use parameterized tests to refactor safely.

    • Simplifying conditionals 

      • Guard clauses and early returns

      • Method extraction vs inlining. Tradeoffs (“Clean Coder Uncle Bob” vs “Philosophy of Software Design Ousterhout).

      • Pattern matching with Python 3.10+ `match-case`

    • Boolean logic tricks (from discrete math)

      • DeMorgan’s Law

      • Double negation

      • Distributive laws

    • Understanding Python boolean semantics

      • Short-circuit evaluation

      • `and` / `or` behavior return-value behavior

      • Tripwires: when truthy expressions return unexpected values

    • Decoupling Behavior from Branching

      • Intro example

      • Strategy pattern in functional style. Dispatching callables with dicts.

      • functools.singledispatch for type-based dispatch

      • Strategy pattern in OOP style

        • With duck typing

        • With inheritance-based polymorphism

        • With protocol-based structural typing

    • If IF ain’t broke, then don’t fix it. 

      • Evaluating design tradeoffs. 

      • When the overhead of encapsulation or indirection might not be worth it.

    • Recap: when to use what

      • Summary of techniques, tradeoffs, and when each is favorable