• Tuesday

    • Private work.
    • More pandas. For join, use merge. Left, right, inner, outer. .unique(), .sort_values(), .drop_duplicates, more.
      • Remember to not use truthy operators (or, and, not) like usual in python. Use bitwise (|, &, ~).
    • Changed trays.
    • Beside Altman, Greg, Ilya – the other 3 board members were Adam D’Angelo, Tasha McCauley, and Helen Toner. They don’t work at OpenAI (Quora, Rand, and Georgetown). Tasha is also Joseph Gordon Levitt’s wife. I don’t think any have tweeted since? Although some private. Ilya/Altman/Greg have.
    • CZ pled guilty for money laundering, 50M fine, step down as binance CEO.
    • Gardening.
    • Had to relaunch the gitlab runner, and with --restart always so it boots when wsl2 boots (anytime the docker daemon restarts).
    • Registered for re:invent (next week).
    • Stacked 10-player sinquefield cup started today.
    • Supercontest.
      • All elasticache all day today – the implementation on the app side.
      • Remember in the old flask-caching infra: You query the db once. It stores the resultant objects in the cache. A second request for the same data in. The cache returns the objects. But the objects are dangling (not associated with a session), and could be wrong, so sqla rejects them. I no longer have to worry about this with the redis cache.
      • Made sure ALL reads were from the queries module and ALL writes were from the commits module. There is one exception: flask-user. This is already scheduled for cognito replacement.
      • Split into queries (wrappers, returning python types) and _queries (direct cache/db reads, returning sqla objects).
      • This whittles down the surface area of (direct data access) vs (the app’s manipulation of data in python). I’ll only cache the former, for now. Maybe later I can cache commonly accessed views / whatever.
      • Used flask-redis which plugs directly into the app factory pattern instead of managing my own redis object.
      • Hmmm, nope – not needed. flask-caching (the standard, what I was using before) supports this. It can connect to a redis cluster. And it can cache view functions, custom functions, memoize, cache jinja snippets, auto-create keys for all of those based on specific request paths, args, etc – and exposes direct set() and get() calls from redis.
      • Updated banner.