On Fri, Sep 29, 2017 at 12:14 PM, Bill <bill_nos...@whoknows.net> wrote:
> > I'll write for the possible benefit of any beginners who may be reading. > I guess by definition, if one still has a "bug" it's because one doesn't > quite understand what the code is doing. And I would say you should lose > your license if you "fix something", and don't understand why it works > (within reason of course--some mystery's of library functions should > probably remain so forever). So ADT (Any Damn Thing--I just made that up > that acronym) you can do to understand your code better is fair game! : ) > In fact, in my experience, the sooner you start getting a little bit > angry, the sooner you'll get to the heart of matter. Usually, what looks > like a long route, isn't, in the end. Don't be afraid to write *really > descriptive* output statements, and do so even though you "don't need to". > Besides for making you more productive, it will help soothe you : ) > Beginners almost never need to... I think that getting out of the > beginner phase requires developing a certain amount of humility. Just wait > 5 or 10 years, any look back, and see if what I've written isn't more true > than false. > > The only part I am unsure of is whether you are supposed to get a little > big angry or not (YMMV). I find 2 cups of coffee about right. That is, 2 > before and 2 after lunch. Of course, that does not include "meetings". > -- > https://mail.python.org/mailman/listinfo/python-list > Reminds me of a bug I had to chase down recently. I've been working on the front-end of this web application for a while. It's an SPA built with Vuejs. The bug arose in the login workflow. Basically, it went like this: client loads login screen -> user enters credentials into form and submits -> client sends credentials to server -> server verifies credentials -> server sends back auth token -> client receives auth token and stores it -> client redirects user to home screen -> home screen makes get request for some data Now, this worked perfectly fine everywhere except for Safari 9.1 on OSX. A user could login just fine on Safari 9.1, but after that, no requests would complete. Safari's dev tools were no help because they were not showing any errors or any failed requests. I checked the server logs and found that no requests were even sent. It took me 2 days to figure out this bug. I tracked it down to the function that injected the authorization header into all requests if the user was logged in. Based on troubleshooting, I knew it couldn't be anything else. That said, I was still confused because this worked on literally every other browser(even IE 9). After searching for people with similar problems and coming up with nothing I got to thinking about the asynchronous nature of JS. So, out of sheer frustration I moved the line of code that stored the auth token from one function to another, booted up my testing environment, and it worked. So, the bug was basically because Safari was waiting for a specific function call to complete before it committed the token to local storage even though the line of code that did so was within said function. So, two days worth of work to move a single line of code from one function to another. You can only imagine the tirade of curse words directed at apple during the above calamity. Had I simply written a console log for every function down the chain, I may have been able to find the cause of the bug more quickly. -- https://mail.python.org/mailman/listinfo/python-list