How to track a customer only bug - debugging

Scenario:
A customer is reporting bugs in a near useless fashion "sometimes when i press button A it does not work".
There story is constantly changing every time you talk to them "button A seems to go wrong after pressing button B" "now button A goes wrong after pressing button C" "Button A goes wrong irrespective of buttons B and C it was all just coincidence"
I have a test rig in my office and can see button A working perfectly, i have never had any issue and cannot replicate the customers problem no matter how many times i try.
management are 120% sure the issue is in the code, no chance that the issue is with the customers button A hardware.
What steps can be taken to trace this issue ? What do you do to show you have covered all possible bases before informing management the code is not the problem and you cannot fix it.
Edit: the software is embedded firmware not an application running on a computer.

As your customer is on the other side of the world I'm guessing your office hours are different and that's what makes it difficult to see what they're doing remotely. If the office hours isn't an issue, then you could ask them to let you watch their screen whilst they attempt to reproduce the issue. Software which could help this remote viewing process includes:
Join.me (FREE)- http://join.me
LogMeIn - https://secure.logmein.com/
GoToAssist - http://www.gotoassist.co.uk/remote_support/
amongst others.
If remote viewing isn't a possibility, another option might be to ask them to record the process, by using Steps Recorder (this is built in to Windows 7 & 8, so only useful if they're using one of these). A guide on how to run it is available here:
http://pcsupport.about.com/od/toolsofthetrade/ht/problem-steps-recorder.htm
They could then send you this file which would mean you could see exactly what they're doing and what the outcome is.

Often what's going wrong is that the customer is omitting some detail that seems insignificant to them (always makes sure to submerge everything in water before use, for example), but is actually the other part of the cause. Ideally, you want as much detail as possible. If practical, visit in person to see the bug in action. If not, see if they can make a video recording of start to finish.

Related

Google parental control Family link app doesn't ask for approval

I've setup google parental control on my children phone, they ask for approval to install a game and i approved it, later i changed my mind and uninstall it from there phone, but they went to play store a re-install it, but this time family link didn't ask for my approval, it's just installed it and showed me a notification that it's been installed. What i want is that whenever they install anything, no matter it was once approved or millions times, google play must ask them for my approval each time it's reinstall.
Most probably you approved the app as Always allowed app. To edit app activity:
Open the Family Link app Family Link and then Select your child.
On the "App activity" card, tap Set limits or More.
Next to your desired app, tap Always always allow.
From here you can select an option to:
Always allow always allow.
Set a time limit Set limit.
Set unlimited time Empty hourglass.
Block an app Block.
The Google Family Link app lacks the 'whitelist' feature to allow only a strict set of application to install. Unfortunately, the answer is you cannot prevent the installation of a previously installed application (as a previous answer suggested, you could block said apps).
I experimented and unfortunately disabling and re-enabling Family supervision will still allow previously installed apps to install. Also, the previously installed apps will be available if you get a new device for the child's account. Or at least, this is the functionality circa Fall 2022.
An extreme solution would be to create a new account, but obviously this is a frustrating answer if you are trying to do something like protect an older family member who has established accounts for billing.
This solution outlined below will not work, but I did read it as a proposed solution elsewhere online. I thought I would include it and mention it with this warning.
Open the Play Store app
Select the account icon in the upper right corner
Choose the Manage app & device from the popup menu
Select Manage
Click Installed
Select Not Installed
Select all applications you wish to remove in checkable list
Click the Trash Can icon in the upper right corner
This would disassociate the application from the account in an ideal world; however, it does not and the child account can still reinstall the offending applications. The parent is notified of this installation, but they cannot prevent it.
Had the same issue but rather than doing the "google play delete not installed apps list"-thing which doesnt solve the problem anyway, use this list to search and install the apps you dont want your child to have installed. After that you can manually block these unwanted apps from normal family link app and deinstall them after you've done that. (You can also leave them on the phone, i mean they are blocked anyways, but it should still take memory space so no reason to not deinstall them after)
Now you will see the following if your child tries to reinstall the app from the play store:
picture
it says "your parents blocked this app" (just in german :) )
This "feature" (if you even want to call it that way) is really stupid and this way might be the only one to solve this problem even if a bit time-intensive. Hope Google will work on Family Link. Big potential but soooo many problems.

Control Ecobee thermostat via HomeKit

I'm an iOS developer and my app (AirCompare) controls a HomeKit-enabled thermostat based on the weather and other factors. A user has an Ecobee 4 and it occasionally behaves in unexpected ways. The Ecobee documentation...well, basically there isn't any.
Here's one example I discovered last year: The thermostat may be set to "Off", not heating or cooling, but changing the temperature set point will trigger the thermostat to change the mode to achieve that new set point. That's understandable but my Ecobee 3 does not change mode on its own, so it was a surprise.
Now somehow an Ecobee 4 under control of my app self-changed its mode to "Auto", and proceeded to turn on my user's furnace despite having the windows open to cool off the house. I'm not quite sure what triggered that.
Does anyone know where to find any references on this? This is the first thread on SO to include both "Ecobee" and "HomeKit", so I'm not super optimistic. Please surprise me!
I used esp32 here is the code file.
I am have not worked with Ecobee but I am sure it will help you.
Checkout here for further docs.

Minmizing OpenGL app while preserving EGL Context results in HUGE PROBLEM

I'm using opengl es 3.0 API with the android studio ndk to create apps.
But I've encountered a very huge problem. I've created a demo app, all it does it change the background color of the screen from white to black and vice versa, every frame. And so when I go to minimize this app, I still see it rendering the background, mostly at the edges of the screen, and not in full color but still very strongly apparent. And it doesn't go away when I close the app, when I restart the device, or when I run "kill apps" on it. Only a factory data reset fixes the issue, so it's not easy for me to debug this.
This is the relevant code that I'm using for when the app is minimized and receives the APP_CMD_TERMINATE event:
eglMakeCurrent(engine->display,EGL_NO_SURFACE,EGL_NO_SURFACE,EGL_NO_CONTEXT);
eglDestroySurface(engine->display,engine->surface);
engine->display = EGL_NO_DISPLAY;
engine->surface = EGL_NO_SURFACE;
I've error checked that eglDestroySurface() is successful.
And I've put debugging messages in to make sure that the main draw loop is NOT executing when the app is minimized. But the problem persists and I don't know what to do about it. Thanks for any help.
UPDATE: well, no one has responded, and I still don't know what to do. Could it be related to threads?
UPDATE: Still can't determine what it is, but for some reason it's messing with the System UI. Willing to upload my entire source code somewhere if someone would be willing to go through this with me, as I'd really like to be able to continue working on my game engine.
Is it the "Strict Mode" developer option on the device settings, perhaps?
That one flashes the screen if an app is blocking.
It would explain why a factory reset changes behaviour.
The answer is not a solution here. The above comment by the user columbo was correct.
I've demoed switching from black to white at high framerates on 3 different android devices, and also my Linux Desktop, all via the openGL api, and it has exhibited this issue on all the devices. So what he said must be correct: this is a problem with LCD monitor technology itself. Interestingly, doing completely random colors does not cause this problem.

Google Play Developer App Marketing Strategy-Why App download decreased after icon change?

I have an app on google play over 5000000 downloads. And 20000+ downloads every day. When the designer changed the app icon to new good one ,the daily download decreased from 20000+ to 5000- . I don't think it's not good icon. I think may be there is a marketing strategy after icon changing google play changed app position on google play. Any idea about this?
Old Icon
New Icon
It is hard to pin down an exact reason. Maybe it was too similar to another app icon or simply new users didn't like it as much.
You can run A/B tests in the store listings, it's a hidden menu. Click Store Listing and beneath that, you should see experiments. You can run up to 4 icons (for example) and see which gets more downloads. This also works with the promotional video, screenshots, short app listing and full app listing.
There are a lot of customization choices as well.
I would make a few iterations of the logo, with different elements removed. I think the new one is a little too busy. try removing the phone on the left and right and see how users respond.
Sources:
Run A/B tests on your store listing
Increase installs with Store Listing Experiments
I think that the main reason is people knew the product. If they start looking for it now, they see something that they don't know as it has changed and will not download it as fast as before.
If everyone is used to the icon, your downloads will increase.
There is no ranking part that depends on the icon, so as I know.
I think there are 3 possible reasons:
1) Google dropped your app in the list because at the time you changed the icon, there where other apps added in this category. This made google to re-place and orden the apps. As your app was there longer and had a minor change, it was ranked as "old & going down", so it lost the confident place in the list.
2)Because of the new icon, people are not finding it as quick or they think the new icon is an actual scam version of your app, so they aren't downloading it anymore.
3)Your app simply got less popular. You got pretty much downloads, the rate was high. Maybe you reached all the people that needed this app and there are minus people wanting it.
Anyways,
maybe the download count raises again and you just need to wait a little week. It is very unlikely, but it also could just be a error at Google's side.
...

For a web application, how to close all the related browser windows when session is timed out / user signs out?

Suppose user has opened my web application in many different browser windows. After sometime he is timed out / sign out from the application.
I want to close all the related browser windows. How can we handle this?
(I think GMAIL does that)
If you maintain references to any child windows, you can use window.close() in combination with setTimeout().
As a note, you should probably exercise caution when closing users' windows, as it can potentially cause a bad user experience. Imagine that I've opened up my bank's website to look at the transactions for an account so that I can clear/reconcile them. But in the middle I run off to grab some lunch or something. When I come back, I find that all of my windows have been closed and I have to relogin, even though I didn't need to 'cause I was just looking at a relatively static list of data. Or even worse, if the window-closing isn't coded correctly, I might find that my browser has been closed entirely, which is definitely a bad experience.
Don't. As far as the typical user is concerned, your web site does not have the right to close the user's windows and they will HATE your site if you try. If you think that your web site's proper operation depends on being able to close the user's browser, then you are doing it wrong.
Furthermore, there is no way that you can count on the success of your attempt to close user windows or perform similar such actions. So spend your time making your web site work properly regardless of what the user does in the browser. Besides, it is easier that way.
Write a scriplet that when the focus is brought to the window (for your application) it checks to see if the session is still valid. If it is not, then send a command to close the window.

Resources