Days sheltering in place: 151.
Exercise: too hot hot hot.
Keyboard practice: -G F E D, -F E D C, -E D C B, -E E; -E E; -E E D# E D# E
I just made it all the way through Für Elise, OK, OK, right hand only, and the probably the "easy arrangement", but it's a milestone for me. Those of you that can read music will have worked that out already as that is the last part notated above. What you don't understand the notation, sorry, I make it easy for you and you want staves!
The left hand doesn't look too bad so maybe I'll try that over the weekend. I've never going to be Rod Ardent, Keith Emerson or Rick Wakeman, but if I can manage a simple tune it is something to bring a smile to my face and my Wife will feel that buying me keyboard was a good idea after all. Of course now I have to buy her a drumkit!
Of course, that is not what I came to write about, I came to write about the fact that in some ways modern browsers are worse than they were a few years ago. The latest bane in my life is that Chrome banned synchronous calls in an unload event, which is exactly when you need them. Sure you can use fetch() or sendbeacon() but they may, or they may not execute after your next page load, or in parallel with your next page load. So if you are trying to save some data because the page is unloading, which the next page will need. There is a significant chance that the next page will load before you have managed to write that data.
The above is the classic race condition which can be solved with semaphores, but seriously I don't want to go that far, I really don't, just give me my sync ajax call back please Google.
Yes, in general this is all good. It makes a better experience for the user, the browser is more responsive. But sometimes, forcing developers to do things certain ways because it is better that way but not allowing them to do it the old way when they know better is getting very frustrating.