• Wednesday

    • Schwab update: got another daily bump of interest (problem), called and they said it was expected. Because the trade took 2 days to settle (still insane), the sameday withdrawal put me on margin (for 2 days). It shouldn’t increase tomorrow, when I’ll check again. They’re putting a credit/waiver in process for the 2 days of interest.
      • For reference, in case this slips while I’m in Europe, and the margin/interest does a sneak accumulation in the background over a long period of time: the first person I talked to was a woman (didn’t catch name) at 877-870-7317 x70180, and the second person I talked to was Dan (no extension, was the next operator).
    • Absolutely loving the chess cheating scandal between Magnus/Niemann over the past 2 weeks.
      • From the Sinquefield withdrawal after Magnus’ first classical loss with white in >50 games to the JB generation resignation (where magnus went 10-4-1 including the intentional loss).
      • Really comes down to whether you believe Magnus as a person or not. The absence of public evidence is not an argument. There are many reasons (legal, mole, others) why remaining silent is the best option. I originally thought the most likely explanation was: The initial withdrawal+tweet (accusation) was an emotional overreaction, and then the world blew it up into a bigger deal that became increasingly embarrassing, and Magnus was soberly cornered and couldn’t really walk it down. But then he doubled down with the JB resignation, stating firmly that he believes his position strongly. So…should we? Compare the two characters. Magnus: world champion for a decade, known sportsmanship, never had a moral mishap like this before. Hans: known cheater, banned from online tournament sites, multiple times, has lied about extent of cheating before.
      • Today he gave his first interview after the round robin finished. He said he’d state more after the tournament.
    • Updated vscode, a bunch of drivers, and a bunch of windows patches.
      • Audio stopped working. Uninstalled the realtek driver, restarting the computer, fixed (without reinstalling any driver…?).
    • Edited some of the merge request settings in gitlab (require approval, tests must pass, etc).
      • Gitlab has a rebase button from the frontend, which can handle the conflict-less case – pretty great.
    • Apple wallet.
      • Tried to add my business credit card to apple wallet – the issuer (boa) doesn’t support it for this card yet.
      • Tried to add driver’s license too, since I updated to ios 16 – it’s not yet supported for NY, only for AZ and MD.
    • The user@host at the end of the public key stored on the server is effectively a comment. Anyone with the private key can ssh into that server. They don’t have to be the same user@host.
    • Supercontest.
      • CICD. Finished https://gitlab.com/bmahlstedt/supercontest/-/issues/161.
        • Installed tox in wsl.
        • Note that test-requirements is mixed with regular requirements for the final compilation. At installation, we only install the desired (by using -r with reqs and -c to constrain to compiled-reqs).
        • .gitlab-ci.yml -> makefile -> tox -> pylint/bandit/pytest
        • And remember “make test-js” exists and runs eslint and jasmine. Don’t think I ever got this passing though. Continuing to leave it off for now.
        • There was a conflict in flask-graphql and graphene on versions of graphql_core.
        • req-compile (Spencer’s tool) wasn’t able to resolve this (and looked unmaintained at this point), so I switched the resolver back over to the industry standard pip-tools.
        • Updated the reqs: https://gitlab.com/bmahlstedt/supercontest/-/commit/021c39e14444be5e50f34dbd7a61ff3dcaef5e96?view=parallel
          • Removed importlib-metadata and typed-ast and zipp.
          • Upgraded setuptools 50.3 -> 65.3 (undid later)
        • Delinted with ~moderate changes. No necessary changes to bandit or pytest, passed.
        • Removed the make requirement of test on update-reqs. You can pip-compile without testing anything. You can run tests without updating reqs. I want update to be manual, on my schedule.
        • The gitlab ci runners with metadata issue on python installation of my compiled reqs into the image. My tests and deploys work locally.
          • Image python37.
          • –use-deprecated=backtrack-on-build-failures and legacy-resolver did not work (in custom pip install command in tox).
          • Neither did apt install build-essential g++ python-dev, etc.
          • Nor upgrading pip and setuptools.
          • Nothing worked, so I switched from the python:37 image (debian) to the ubuntu:18.04 image and manually installed py37. That didn’t work either.
          • Aha! The issue is in jsmin itself, which runs use_2to3 in its setup, which was deprecated by setuptools in version 58! https://github.com/tikitu/jsmin/issues/33
          • Added that constraint to an input requirement, works now.
          • Well, explicitly added it to RIGHT BEFORE the env provisioning, which tox handles. If you pass it as a member of the compiled reqs, it tries to install your pinned setuptools version (alongside all other reqs) USING the new/bad version of setuptools, which still fails.
          • Sidenote – python images are debian (unless directly specifying slim or alpine).
        • After merge to master, massaged the deploy stage a bit as well.
          • Ansible doesn’t have a ubuntu/python image newer than 16/3. Reverted the 18/3 change. It’s just running ansible (no app components).
          • Didn’t finish. Unreachable by ssh, don’t want to autonomously manage the fragile key management and known hosts and ssh agents of client vs server and everything along with it. I have way more important things to work on. Will deploy manually for the time being.
        • Came back to this a bit later. Updated the privkey var in gitlab to the same ssh key I use in wsl, which I know is authorized. Also ran an ssh-agent and ssh-add in the docker build session, even though I’m passing the keyfile directly to the ansible call.
          • Full instructions on https://docs.gitlab.com/ee/ci/ssh_keys/
      • Updated league banner, committed league lines, submitted my picks.
      • Added a brand new admin view to change the status of a game.
        • https://gitlab.com/bmahlstedt/supercontest/-/issues/162
        • Super helpful when the live scoresheets are behind, which is often on sunday. I can lock a game with a view clicks from the internet anywhere, rather than sshing into the production server (often railed on mem/cpu) and doing it manually in psql.
      • Docker build efficiency.
        • https://gitlab.com/bmahlstedt/supercontest/-/issues/148
        • The prod dockerfile is already split into two stages. The first builds wheels for all deps from the list of compiled requirements. The second installs them and starts the app/db.
        • The build/install steps of the deps is what takes a couple minutes. This is not an inefficiency in docker steps, I need a proper python pkg cache. Won’t-do for now.