- I care much less about the API utilization metrics that FMD provides. The most interesting is the API performance. Graph below. I wish they had multi-version api perf like they do for utilization. The results are mostly expected, but still an awesome feature. https://southbaysupercontest.com/dashboard/api_performance.
- In checking back, you can see multi-version api perf for specific endpoints! Just not an overview of all routes for the application.
- South Park is back!
- FMD
- Verified that it CANNOT do patchfix version resolution. Only major and minor.
- A major version (3) was released yesterday, which appears to have broken the overview page. 3.0.3 was released a couple hours ago, looks like they’ve had a few bugfixes. Upgraded, and confirmed the overview is still broken.
- Maybe this line of questioning will help the lesser perspectives understand the ignorant racism in the NBA owner concession:
- Is it ok to compare someone to Saddam Hussein, when they have nothing in common with him except that they’re Arab?
- Is it ok to compare someone to Hitler, when they have nothing in common with him except that they’re German?
- Is it ok to compare someone to slaveowners, when they have nothing in common with them except that they’re white?
- It it ok to compare someone to <anyone bad or good>, when they have nothing in common to do with it except that they share the same race?
- No. None of these comparisons are ok. They’re offensive. Doesn’t matter the historical subject/object, victim/aggressor, small/large, green/orange, old/young.
- All daemon threads will be killed when the last non-daemon thread dies. The non-daemons are the main ones. The daemon threads are subservient – they will not hold the main app.
- Supercontest.
- Got a few “AttributeError: ‘AnonymousUserMixin’ object has no attribute ‘id’” errors in the production app, with an IP from singapore. This just means they tried to access a route and weren’t logged in. The flask_user.current_user object is AnonymousUserMixin when the user is not logged in, so they can’t do anything. The error was caught pre-route in the url_value_preprocessor.
- Right now, I have 94 compiled requirements (including testreqs) and 26 input requirements (not including testreqs).
- Remember that while 99% of requests make it to the app and you can check the standard uwsgi/flask logs (make logs-prod), there’s a small chance that nginx catches something. just run `docker logs -f nginx-proxy` to check.
- Added text for harner’s banner.
- Tons more work on the redesign of blueprints, routes, url_prefix, url_defaults, url_value_preprocessor.
- Used request.url_rule.endpoint and request.url_rule.argument to infer all of the values (in g) that the current view would have access to. Then I conditioned the url_for() navlink builds in the templates based on those.
- It’s all in a great place now. This was frustrating for a few days, but will be much easier to manage/change in the future without breaking things.
- Closed https://github.com/brianmahlstedt/supercontest/issues/102.
- Added apscheduler (advanced python scheduler) for the weekly email pick reminder.
- Not sure how, but two people submitted 10 picks into the db. Both were pairs of the same 5. I deleted them manually, but I’d like to know how this happened.
- Split up the utilities module into a separate util package, containing distinct modules for the specific type of functionality they provided. It was getting too big.
- Originally wrote the email reminder with apscheduler, but there’s a specific flask-apscheduler that made it a little easier. Don’t need to manage the debug app duplication, atexit, or any of that peripheral wrapping.
- Tested with my email only and a modified cron. Worked! The apscheduled job shows up in the regular flask logs too.
- Closed the weekly reminder ticket: https://github.com/brianmahlstedt/supercontest/issues/97.
- In debug mode, flask loads two instances of the application. If your app does something like schedule an external cron job, it will happen twice.
- Added Google Keep back to phone and to browser bookmark. I was missing the ability to immediately open something and jot a note down, especially while I was out and about, away from my laptop/blog.
- The `date` command in bash gives the local datetime with tzinfo.