• Appraisal. Also spoke with the Redondo PD.
    • Sololearn. Refresher on details of Lambda, Map (apply func to iterable), Filter (pass args in iterable to function, return item if func returns true), itertools, etc.
    • Remember, the three main MUTABLE datatypes in Python are list, set, dict. The others are immutable (str, int, float, tuple, etc). You can mirror another variable to a string, but it actually just copies the value, it doesn’t point to the same id underneath. Better for efficiency, hashing, etc.
    • Generators are obviously more efficient. Lower memory footprint. Use when you want to iteratively return from a function.
    • PPA = personal package archive. You can add these as repositories and apt-get from them.
    • Certs
      • Apt updated on the supercontest server because Google changed its Origin.
      • TLS-SNI-01 is reaching end of life (at least for Let’s Encrypt support). I updated the Certbot version on the supercontest server (0.28.0 now) and renewed the certs.
    • SSH
      • AddKeysToAgent yes in .ssh/config means that every key you use will be added to the agent. Very convenient to avoid -i all the time.
      • You can also ssh into a hostname, like ssh southbaysupercontest.com.
      • You can also create an alias in .ssh/config. Now you can just do `ssh sc`.
    • Ran through a whole tutorial of graphql: https://medium.freecodecamp.org/how-to-set-up-a-graphql-server-using-node-js-express-mongodb-52421b73f474.
      • Registered with mLab (db-as-a-service for mongo) and created a db.
      • Npm for the javascript package.
      • Mongoose to connect to the mongo db I created with mLabGr.
      • Express as the web framework (like flask).
      • Nodemon to start the app in restart-after-changes-mode (debug=True).
      • GraphQL allows you to define queries (reads) and mutations (writes). Then the user can add rows, change cols, fetch data, etc! All from the browser.
      • GraphiQL is an interactive IDE that runs in the browser, allowing users to explore the db.