Python Programming

Collections Module - defaultdict

  • collections.defaultdict takes a type not a value
  • It will initialize based on the default value for that type
  • Common mistake: passing a value instead of a callable type
  • Example: defaultdict(list) not defaultdict([])
  • Cleaner than manually checking if keys exist before accessing

Version Control

Git Commands and Tricks

  • git log --format="%H" -n 1 | cat outputs the last commit ID
  • Useful for scripting and automation
  • The cat ensures the output is properly formatted
  • %H format specifier gives the full commit hash
  • -n 1 limits to the most recent commit

Cloud Infrastructure and DevOps

AWS EC2 Free Tier

  • EC2 has a Free tier! I can request a bunch of machines here
  • Great for learning and experimenting with cloud infrastructure
  • Limited resources but sufficient for development and testing
  • Good entry point for understanding cloud computing concepts

Juju - Multi-Cloud Orchestration

  • Juju is a tool that helps manage server providers, whether they are GCP, AWS, your own servers or Azure, among others
  • Gives you one way to start, setup and run your servers across different cloud providers
  • Abstracts away cloud provider differences
  • Enables consistent deployment across hybrid and multi-cloud environments

Juju Configuration System

  • Juju’s configurations are called charms
  • These are written in Python
  • Charms define how services should be deployed and configured
  • Reusable deployment patterns for common software stacks
  • Community-maintained charm store with pre-built configurations