KeppySoftware / KMC

A fully functional MIDI to WAV/OGG converter.
https://www.youtube.com/channel/UCJeqODojIv4TdeHcBfHJRnA
119 stars 21 forks source link

Update on start by default - is not a good idea. #42

Closed bnote closed 6 years ago

bnote commented 6 years ago

Update on start by default - is not a good idea.

After troubles on installation the app wan't to start. Nice! It present in Process Explorer, but has no window.

Process Explorer Warning No visible windows found for this process

And it take about 30(!) sec... I almost decided to abandon this idea - to install and use this software - when the window was opened at last.

If you really think it necessary to update on start, so:

My application level firewall is on the block mode always. It seems, that most users do it in the same manner... .

KaleidonKep99 commented 6 years ago

It's hard for me to understand what you typed, your English looks cryptic...

So, you're saying that KMC stalls in the start-up process for about 30 seconds, because it had to auto-update? KMC won't install the update without the user's permissions, I'm pretty sure your connection was just losing packets while the converter was checking for any new release.

About turning this feature off by default, it's not a good idea. I've had a lot of users complain about KMC being buggy and never getting updates back when it was set to off by default, they never bothered checking for updates.

And KMC does show you a window, stating that there's a new update, look here: image

bnote commented 6 years ago

It's hard for me to understand what you typed, your English looks cryptic...

Sorry. It's not my native language - English. And there was a hard night... However, the true knowledge of the language is, in particular, in the ability to understand it warped by those for whom it is not native :)

So, you're saying that KMC stalls in the start-up process for about 30 seconds, because it had to auto-update?

Yeah! However, my firewall firewall did not allow him to do this.

KMC won't install the update without the user's permissions, ...

I repeat - it was the very first start. There was no user permissions setted still. The user simply had not yet the opportunity to make changes, because the app has not been launched yet and has never been launched before.

... I'm pretty sure your connection was just losing packets while the converter was checking for any new release.

About what "lost packets" you speek?.. :) I wrote in issue description: "My application level firewall is on the block mode always." The firewall blocks ALL network activity for applications that have no explicit permissions on it.

About turning this feature off by default, it's not a good idea ... etc.

I wrote in title(!): "Update on start by default" Have you see the difference on what you answered and what I wrote?

OK. I'll try to rephrase - it's bad to start with the update, while the interface has not been launched yet, and availability of internet channel, on which the update is being made, is not clear. A connection error can occur on any place between the client machine and the update server. And all this time nothing happens, visible to the user, putting him in a stupid position.

Let the user interface to boot completely, and then start the update process. Show a window that "I'm in updating now ..." , especially when the application starts for the first time. .

KaleidonKep99 commented 6 years ago

I'm not a native English speaker either, so it's hard for me to understand when it's "warped by other non-Native speakers".

I did try and block KMC's access to the Internet myself through Windows Firewall, and all it did was booting up without showing errors nor updating by itself (Which it can't do, since it's blocked and can't do it on its own, more about it down below), which is good behavior (It should show an error when failing to check for updates from the main menu or the information window), The update process starts asynchronously in another thread, so it's completely separate from the main window/UI. I added a small check in the latets version, which will make the thread run as soon as the main window is ready to be displayed (It relies on the main window to display errors/info),

But what I still don't understand is how it was trying to update itself. It does check for updates automatically by default, but that doesn't let the converter update itself without the user's permissions, it'll still ask for them (Which wasn't able to on specific configurations, since the main window was too slow to initialize itself, thus skipping the process).

Try the latest update and tell me if it behaves normally now.

(The way you speak makes you look like you're mean :thinking:)