• Read a few more Netflix tech blog posts. Encryption, streaming, etc.
    • Read some from Brendan Gregg. Pantastic perf resource http://www.brendangregg.com/.
    • Moved blog to blogger! Better search interface (for my own posts) than Medium. Domain hosted by blogspot (free).
    • Perf records total system activity over a time, then outputs files of the data for something else to analyze. Flamescope is the netflix (open source) tool to visualize this output and determine what was going on. Like a heatmap, it highlights areas of high activity with colors.
    • Periodic railing – could be garbage collection. Periodic idling – could be blocking on i/o, or one thread has a mutex.
    • Strace for system calls/signals, ftrace for kernel function calls, perf for general cpu profiling.
    • MySQL is from Oracle.
    • Read an interesting non-binary article that didn’t just discuss gender identity as a new thing, but race identity and age identity. It’s a new perspective to consider trans-gender like trans-race and trans-age.
    • Told Petty about modern db explorers (he was going to build an asp.net application from scratch to read the db lol). Showed him desktop and web versions, lite sqlitebrowser and sqliteonline.
    • Rather than 31+ years, I’ve been alive for 374 months, or 1629 weeks, or 11405 days!
    • Netflix Tech Blog posts.
      • Canary analysis. Deploy new version of software to canary systems to detect bugs. Basically diverting real traffic to a small canary cluster on the side of the production cluster, then comparing metrics and performance.
      • Spinnaker is the continuous delivery stack. They developed it at Netflix, but now it’s used at Google, MS, Amazon, Oracle, many places.
      • Kayenta is the platform that pulls both together. It makes canary deployments autonomous so users don’t have to do these tests manually.
      • Chaosmonkey is public.
      • Public repos!
    • “Disable Cache” is on the network tab of Chrome’s devtools. It only disables the cache while the devtools are open.
    • The em unit is usually the default browser font size.
    • $() is jquery. Much better than the old getElement* syntax.
    • Commas in css selectors means apply the rule to all. Spaces means hierarchy – only applies the rules to the latter elements that are children of the former elements.
    • Css classes aren’t applied in the order you put them on the element, they’re applied in the order they’re defined in the source css document!
    • Removing an element from an array by value is way more complex than it needs to be.
    • Jinja injects newlines stupidly!
    • Remember, var is function-scoped. The new ones for es6, const and let, are block scoped. Const is constant. Let can be reassigned (different than mutable).
    • Supercontest
      • I’m running Bootstrap 3.3.7.
      • Fixed the rounded corners in the table.
      • Smartly added the click functionality, restricted to the team columns, integrated with a submit button.
      • Submit button now smartly appears and disappears based on picks.
      • Used notify.js instead of flash.js to use the less-imposing messages rather than alerts.
      • Warnings appear on >5 picks and opposing-team picks now.
    • Supercontest
      • The local db was busted so I had to scp it from the prod server and upgrade to the schema with the user table again. Registered my one account to tinker. Copied the db to expedite this if it happens again.
      • Moved the flask_user_layout template to my repo (instead of in the venv flask-user installation) to customize the year and company name, while making everything more consistent. My supercontest layout.html now uses the css classes header-div and clearfix and with-margins and stuff.
      • Remember, if PyCharm is connected to the local db, the app won’t be able to write to it.
    • Talked with Levi! He’s working at a company called BetterUp. Loves it. Ruby app stack, but still does some Python.
    • Twitch has chat clients that you can embed into your website. Looks to be an easy integration.
    • Checked with Rebecca Balayan, my SpaceX HR coordinator, if I had any outstanding mission patches.
    • Opened the exercise request for my shares. I have 3 days to make the check payment. I’ll send it with Allie or Briley on Monday. Called home and asked for the 30k transfer. BOA has limitations so we may have to wire.
    • There was an $86 charge from 24hr fitness on feb 8. I’ll dispute this back in Hermosa next chance I get.
    • Instead of just instantiating a flask app, having a function return the app is called the “application factory pattern” for future reference.
    • Docker-compose is often used to orchestrate two containers: one for the service and one for the database.
    • Changed my default editor with sudo update-alternatives –config editor.
    • When rebasing, the bottom section of the <<<< ==== >>>> is the newer commit. It will show the hash. The top says head. It’s the older one.
    • When rebasing, “us” is the branch you’re rebasing on (master, usually). “Theirs” is the current branch.
    • HN:
    • Supercontest
      • Deleted branches #2 and #7, they were folded into #3. Rebased #3 and merged. There was some nasty conflicting history. Closed the ticket!
      • Started ticket #4, picks.
      • Created a stripe account to process payments (https://dashboard.stripe.com/test/dashboard). Created a ticket to finish this work later (https://github.com/brianmahlstedt/supercontest/issues/29).
    • Talked to the Best Buddies coordinators. They do monthly social hours (last thursday of every month at Q’s billiards in West LA. I’m going to go to the next one.
    • Night Crew Labs’ new website! https://www.nightcrewlabs.com/.
    • PW
      • Sklearn has a ton of cool machine learning capability. You can even do data analysis on text, finding correlations and such.
      • WSGI. Request handling and routing is different than application logic.
    • Squarespace is a very popular platform for building websites.
    • Ag will automatically skip folders like venv, so make sure to take that into account when searching for stuff that might be in site-packages.
    • Supercontest
      • Reinstantiated a lot of the flask-user routes. Played with them a bit. Tried to customize most of it by integrating the default forms and such into the navbar of my supercontest page. Ultimately decided against the customization. I can do it later, and right now I want to focus on function rather than style.
      • The navbar at the top is now in an ok place, with home, user, and signout.
      • Played with PyCharm a bit more.
      • SCP is great to move files between. It goes source -> destination. For example, to move the production db to your local dev machine, scp -i mykey southbaysupercontest.com:~/code/supercontest/data/supercontest.db ./test.db.
      • python manage.py db migrate -m “description of change” after you modify the models. Then go to an existing db and python manage.py db upgrade.
      • Pycharm allows you to enter an SQL console on the database in question, which is nice.
      • If you have an existing database with a version that isn’t tracked in the current history (the migrations folder), then internet might tell you to init/migrate/upgrade. This is fine, but it’s a shotgun approach. It’s a wipeover. If you know what version the old database is close to, you can just go into the db and overwrite the value in the alembic_version table, then upgrade as usual.
      • Copied the database over from the production server and upgraded it to the most recent model, which accommodates users and logins.
      • When pycharm is connected to the db, it locks it, so the app can’t write to it. You can disconnect in pycharm with a right-click.
      • The prod database now has a user! Me. I deleted the example user.
      • Aligned the th.