MEP EP#350: Estimating Effort

Podcast Notes

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

Special thanks to whixr over at Tymkrs for the intro and outro!