• 2 Posts
  • 61 Comments
Joined 6 months ago
cake
Cake day: December 24th, 2023

help-circle


  • I had an issue where a client reported a crash on login. The exception and stack trace reported were very generic and lent no clues to the cause. I tried debugging but could not reproduce. I eventually figured out that the crash only happened for release (non-debug) builds that were obfuscated. I couldn’t find the troublesome code, so I figured out which release introduced the issue, then which commit, then went change by change until I was able to find the cause. It turned out to be a log message in a location that was completely unrelated to login. That exact log message was fine a few lines up. Other code worked fine in that location. For some unknown reason, having that log message in that specific location caused a crash in a completely different area of code.


  • I’ve used Bing for a few years for the free rewards points and purchase rebates, and it has worked very well for me when it comes to normal searches including searches for software development. I very rarely have to turn to Google when trying to look something up, and as you mentioned, sometimes Google honestly gives me worse results. I will say however that I have found the image and video search on Bing to be significantly worse than Google’s (which I already have some issues with). Not sure about the other search types like shopping or news since I never use them.


  • It was obfuscated only in the release build. The issue is that they have a system to send certain logs to an API so they can refer to them if a user has an issue that needs further investigation. Unfortunately, their target audience is not very tech literate and have a hard time explaining how they got into a situation where they experienced a bug, so the remote logging was a way to allow us to try to retrace the user’s steps. Some of the logs that get sent to the API have JSON values converted from class data, will refer directly to class names, etc, and those logs had the obfuscated names.


  • I have a somewhat related real world story. I had a client that was convinced that tons of people were going to decompile their application and sell their own version of the program, so they insisted that they needed their code obfuscated to protect company secrets and make it harder to reverse engineer. I tried explaining to them that obfuscation wasn’t that big of a deterrent to someone attempting to steal code through reverse engineering and that it would likely cause some issues with debugging, but they were certain they needed it. Sure enough, they then had a real user run into an issue and were surprised to find that their custom logging system was close to useless because the application was outputting random obfuscated letters instead of function and variable names. We did have mapping files, but it took a lot of time to map each log message to make it readable enough to try to understand the user’s issue.




  • I can’t remember what the exact issue was that was produced by those steps. I want to say it was some sort of visual bug where parts of the page wouldn’t load. I do know that it only happened if you toggled Bluetooth within seconds of flipping the pages so many times. I honestly have no idea why the user decided to change pages so many times. You could take a little bit of time changing the pages, so maybe they kept viewing a page and backed out only to want to view the page again?


  • User reported bugs can be wild. I had one where the user was tapping a button repeatedly so fast that the UI was not keeping up with the code and would no longer sync certain values properly. I’m talking like tap the button 15 times in a second. Another issue involved flipping back and forth between the same page like 10 times then turn the device Bluetooth off and immediately back on.



  • I would say it’s a bit more nuanced than that. I have installed quite a few games on my Deck that have had serious issues that require their own unique fixes in order to work. I had a few games that had shader issues with flashing neon textures that required specific Proton versions to work, a few games that could never get past the main menu due to infinite loading that required reinstalls and using specific Proton versions, and one that required adding some additional commands on the startup in order to avoid crashes. I’ve also run into a few games where the Deck has quirks, such as one I played where the keyboard would cover the game’s text input and the keyboard would appear immediately after closing, which meant you could hardly read what you were entering text for. They do work eventually, so you are technically correct, but they require effort to fix that some people will not feel comfortable doing.