MEP EP#350: Estimating Effort

Python Demo for Extra Life API

Stream Date: November 5th, 2022
Functionality so far

Check Extralife API for donations

This is done with the requests module
This endpoint seems to return old and new donations
There isn't a “new donation” end point it seems

Get the donation IDs and compare them to a local file

Local file is made with the pickle module
Pickle allows you to take any data structure in python and “package it” into a binary file for storage. 

If there is a new donation ID that isn’t in the local file

Queue up a random audio clip
Record the donation ID to the local file

Audio is placed through the playsound module

Weird “bug” that short audio clips get cut off
Add a little sleep after the call to get around it

Auto parses the audio folder for the files

Looks into audio file
Gets all the file names
Adding a new audio clip is as simple as dropping it into the folder

Preventing truly random files

Made a rotating buffer
Used the collections module to implement a bi-directional “stack”

Think like a bitwise shift but with an array of strings

Multithreading!

Threading module used to setup the API and Audio player queues

API runs every 20 seconds
Audio player runs every 30 seconds

If a new donation, global mailbox variable increases one for each new donation.
Audio player runs and looks at that global variable. 
Threading has a “lock” function to prevent race conditions on that global variable.

What is next?

Play graphics in Open Broadcast Software
OBS has some python hooks that I am just starting to learn 

Chip Fab Jobs

Need practically every engineering discipline
Mechanical to design and maintain equipment
Chemical for designing the masking / chemical bath processes
Electrical for testing and validation 

Estimating project time

PCB layout
New project revision

About 1600 parts
Lots of duplicates

Things that impact timing

Components

Parts with pours and complex ground
Specific trace routs like differential or snake traces

Layers
Duplication
Rest day
Cleanup day