Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Programming and Hacking > Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 23rd December 2010, 00:55   #81  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
The installer should work on Windows 2000 again. It seems the NSIS "LockedList" Plug-in is broken on Windows 2000
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.


LoRd_MuldeR is offline   Reply With Quote
Old 2nd January 2011, 04:04   #82  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
I finally implemented the translation system. Currently only English and German translations are available.

This also means that translators can have their fun now

If you are interested in translating LameXP, you should make yourself familiar with the Qt Linguist tool first. Then you can start translating from the (latest!) "Blank.ts" file, which you can find here.

When Linguist asks for Settings the first time you open the TS file, you should keep "Source language" at "English/Any Country" and change "Target language" to whatever you are going to translate to.

BTW: I also updated MediaInfo to the latest SVN version, which should fix MediaInfo crashes with certain MP3 files (details).
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 2nd January 2011 at 18:32.
LoRd_MuldeR is offline   Reply With Quote
Old 2nd January 2011, 07:00   #83  |  Link
boyumeow
Registered User
 
boyumeow's Avatar
 
Join Date: Aug 2007
Posts: 143
Hi LM, hope U have enjoy your holidays well .

Not sure r U joking with us, but I'm getting this with build 210 in Vista32



Hope it really a joke, please advise. Thanks.

Last edited by boyumeow; 2nd January 2011 at 07:02. Reason: more info include
boyumeow is offline   Reply With Quote
Old 2nd January 2011, 16:41   #84  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quote:
Originally Posted by boyumeow View Post
Hi LM, hope U have enjoy your holidays well .

Not sure r U joking with us, but I'm getting this with build 210 in Vista32



Hope it really a joke, please advise. Thanks.
Nope, it's NOT a joke, of course!

You shouldn't launch LameXP with elevated rights (admin), as it was designed to operate with "normal" rights (user). If you launch LameXP with elevated rights, then all the tools launched by LameXP (like MediaInfo, LAME, OggEnc, and so on) will run with elevated rights too! That's because you can only elevate a process, but once the process has been elevated, it cannot de-elevate itself or create non-elevated child processes (at least I'm not aware of a method). And running the audio tools with elevated rights certainly is NOT a good idea, when processing a lot files that might originate from an "unknown" source...

(If however you get this warning although your are certainly NOT launching LameXP with elevated rights, e.g. "Run as administrator", please let me know. I don't have a Vista machine to test)

[EDIT]

Boyumeow, could you please run the attached tool on your system, once with "Run as administartor" and once without ???
Attached Files
File Type: zip ElevationTest.zip (29.1 KB, 86 views)
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 2nd January 2011 at 22:09.
LoRd_MuldeR is offline   Reply With Quote
Old 3rd January 2011, 01:14   #85  |  Link
cegy
Registered User
 
Join Date: Dec 2009
Posts: 98
Quote:
Originally Posted by LoRd_MuldeR View Post
Nope, it's NOT a joke, of course!

You shouldn't launch LameXP with elevated rights (admin), as it was designed to operate with "normal" rights (user). If you launch LameXP with elevated rights, then all the tools launched by LameXP (like MediaInfo, LAME, OggEnc, and so on) will run with elevated rights too! That's because you can only elevate a process, but once the process has been elevated, it cannot de-elevate itself or create non-elevated child processes (at least I'm not aware of a method). And running the audio tools with elevated rights certainly is NOT a good idea, when processing a lot files that might originate from an "unknown" source...

(If however you get this warning although your are certainly NOT launching LameXP with elevated rights, e.g. "Run as administrator", please let me know. I don't have a Vista machine to test)
would it be possible to make lamexp run without getting a msg about the elevated rights, maybe a option to turn it off as i DO trust what programs i run as i know where the files are from

Running on Windows NT 6.1 (win 7)

TokenIsElevated: YES
TokenElevationType: TokenElevationTypeDefault
cegy is offline   Reply With Quote
Old 3rd January 2011, 01:36   #86  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quote:
Originally Posted by cegy View Post
would it be possible to make lamexp run without getting a msg about the elevated rights, maybe a option to turn it off
Possible, yes. But the whole point is that you shouldn't be running LameXP with elevated rights. What is the point of doing so ???

Simply don't run LameXP with elevated rights and you won't (or at least shouldn't) see the warning

Quote:
Originally Posted by cegy View Post
as i DO trust what programs i run as i know where the files are from
That's not the point. The point is that the 100% perfect software doesn't exist in the real world. Even if the software isn't malicious and seems trustworthy, it still may (and most likely does) contain some kind of "vulnerabilities", like potential buffer overflows. New vulnerabilities are revealed almost every day. This applies to commercial software as well as to OpenSource software. An attacker might exploit such vulnerabilities to insert executable code into the program, for example with something as "harmless" as a manipulated MP3 file. In that case the attacker could obtain unlimited access to your system, if the program is running with admin rights. If the program is running with limited access rights, the attacker still might be able to exploit the vulnerability, but he cannot do much harm...

Quote:
Originally Posted by cegy View Post
Running on Windows NT 6.1 (win 7)

TokenIsElevated: YES
TokenElevationType: TokenElevationTypeDefault
That's a combination I haven't reproduced locally. I assume this was when you launched the application without "Run as administrator" ???

If so, what UAC level do you have configured in control panel?

(You can find the UAC options under "Start" -> "Control Panel" -> "User Accounts" -> "Change User Account Control settings")
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 3rd January 2011 at 03:47.
LoRd_MuldeR is offline   Reply With Quote
Old 5th January 2011, 00:26   #87  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Here is an update on the "process elevation" issue:

It seems that on systems with UAC disabled (i.e. lowest UAC level in Windows 7) the "TokenIsElevated" property will always return TRUE, even when the process was not elevated explicitly. Therefore it seems better to check the "TokenElevationType" property instead, which AFAIU will return TokenElevationTypeDefault in that particular case. With UAC enabled it will return either TokenElevationTypeLimited (not elevated) or TokenElevationTypeFull (explicitly elevated). So from now on I will simply look at the "TokenElevationType" and raise the warning only in the case of TokenElevationTypeFull.

http://www.mediafire.com/file/5bneyp....Build-217.exe
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 5th January 2011 at 00:42.
LoRd_MuldeR is offline   Reply With Quote
Old 5th January 2011, 06:25   #88  |  Link
boyumeow
Registered User
 
boyumeow's Avatar
 
Join Date: Aug 2007
Posts: 143
Hi LM, sorry to reply U so late. Guess U have found out about process elevation type, which I was intending to report U with pictures

i.e. "TokenElevationTypeFull"


and "TokenElevationTypeLimited"


with "UAC" turn on,

"TokenElevationTypeDefault"


with "UAC" turn off. In my case, I do have my "UAC" turn off in my Vista32. Got to test the "UAC" before I report it to U.

Phew, guess I can keep my Vista32 for some more time as I was going to ditch it sooner . I was planning to compile your LameXP on my own, just to suit my case. Since U have resolved it, guess I can keep my hands off it for the time being . Btw, I do not know about programming .

Thanks For Your resolution.

Last edited by boyumeow; 5th January 2011 at 06:31. Reason: pictures
boyumeow is offline   Reply With Quote
Old 5th January 2011, 16:45   #89  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quote:
Originally Posted by boyumeow View Post
with "UAC" turn off. In my case, I do have my "UAC" turn off in my Vista32. Got to test the "UAC" before I report it to U.

Phew, guess I can keep my Vista32 for some more time as I was going to ditch it sooner .
If you already made the move from WinXP to Vista, I can't think of a reason not to update to Win7 as soon as possible, except for the fact that you have to pay for the "update" again (in case you don't have MSDN-AA access). Actually you can think of Vista as a Beta version and of Win7 as the final product. I would also recommend to keep UAC enabled all the time. On Win7 it is much less annoying...
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 5th January 2011 at 17:15.
LoRd_MuldeR is offline   Reply With Quote
Old 8th January 2011, 16:26   #90  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Now with 100% more French and Italian, thanks to "Dodich Informatique" and "Roberto"
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 22nd January 2011 at 01:50.
LoRd_MuldeR is offline   Reply With Quote
Old 22nd January 2011, 01:56   #91  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Beta-1 is out

This version features more translations (thanks to all translators!), support for more input formats and finally there are some "advanced options" available.

(Note: My goal is to go for a "Final" release and replace v3.xx soon. So if you find any showstopper bugs, please report immediately!)
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 22nd January 2011 at 02:03.
LoRd_MuldeR is offline   Reply With Quote
Old 22nd January 2011, 03:25   #92  |  Link
boyumeow
Registered User
 
boyumeow's Avatar
 
Join Date: Aug 2007
Posts: 143
Good news to hear about "advanced options", I'm already impatiently waiting for it .

GO GO GO, LM .
boyumeow is offline   Reply With Quote
Old 23rd January 2011, 10:43   #93  |  Link
jfcarbel
Programmer
 
Join Date: Feb 2002
Location: Chicago, IL
Posts: 484
Wow, long time LameXP user and glad to see a new version is being worked on. Seems the focus is on Unicode and moving away from Delphi. Is there anything else planned?

I ask because I just recently began looking at fre:ac (former known as BonkEnc) and Xrecode

As I had a need for an audio conversion tool that also had built in:
- CD conversion on the fly to mp3 with integration to CDDB/freedb for auto tagging
- Normalize via ReplayGain
- metadata cover art support as well

As an added bonus it can take audio from video files including FLV, MP4, VOB. Not sure how often I would use that though.
jfcarbel is offline   Reply With Quote
Old 23rd January 2011, 13:34   #94  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quote:
Originally Posted by jfcarbel View Post
Seems the focus is on Unicode and moving away from Delphi.
Yes, not being able to handle Unicode file names and meta tags was an annoying limitation. And it is the main reason for the re-write. Delphi 7.0 can handle Unicode (UTF-16) strings too, but it's a real pain, as all the basic string manipulation functions and all the "native" GUI controls are ANSI. This means you'll have to re-write a whole lot of "standard" functions and/or use third-party components all the way. AFAIK newer Delphi versions provide better Unicode support (the basic "String" type is "WideString" now), but the update would be too costly for me and probably break a lot of my code anyway. So I decided to make a clean re-write with C++ and the Qt Framework, which provides full Unicode support as well as a sophisticated "internationalization and localization" tools. And, thanks to Qt, even cross-platform support is within the realms of possibility. However my focus is on Win32 and MSVC for the moment. Next step would be making the application compile with GCC/MinGW too. Then, maybe, make the move to Linux and/or MacOS...

Quote:
Originally Posted by jfcarbel View Post
Is there anything else planned?
First of all the goal is to get everything working that had been working under the 3.xx series. This includes encoders (output formats), decoders (input formats), filters and so on. Something that turned out to be a HUGE problem is that most of the command-line tools that I use do not support Unicode file names out-of-the-box! If the GUI front-end handles Unicodes file names just fine all the way, but then the CLI encoder/decoder mangles the commad-line parameters (by converting them them to ANSI and replacing each "foreign" character with a "?" character) you end up with the same Unicode problems as before. Consequently this time I have to make my own custom builds of most CLI tools (rather than using the pre-compiled binaries) and hack Unicode support into their code...

(I still wonder why nobody seems to care about Unicode support in their CLI tools. It's not that hard to do, really! I'm not familiar with their code at all, but I usually can do it within 1-2 hours. A person who is familiar with the code and already has the required build environment set up on his/her machine should be able to do it even faster and much cleaner)

Quote:
Originally Posted by jfcarbel View Post
As I had a need for an audio conversion tool that also had built in:
- CD conversion on the fly to mp3 with integration to CDDB/freedb for auto tagging
That's not really in the scope of an audio encoder front-end. There are various CD rippers available, so I don't want to re-invent the wheel. Maybe I will look into "embedding" one of the existing CD rippers, once I run out of ideas for other improvements. Currently there are enough TODO's on my list...

Quote:
Originally Posted by jfcarbel View Post
Normalize via ReplayGain
Normalization will be supported, like in the 3.xx version. However I will use Volumax (or SoX) for that purpose.

AFAIK the ReplayGain tool is mainly interesting if you want to "normalize" MP3 and/or AAC files without having to re-encode them (it modifies the MP3/AAC bitstream directly or adds a special tag).

As this is an audio encoder front-end, which you use for the task of re-encoding, we can apply a "hard" normalization just as well...

Quote:
Originally Posted by jfcarbel View Post
metadata cover art support as well
This would be possible if: The encoders that are used (LAME, OggEnc2, NeroAAC) support adding "cover art" via command-line and there is a convenient way to extract the cover from existing files. Currently I use MediaInfo to extract all the meta information from the input files. But I don't think it can "extract" the "cover art" too...

After all I really can't understand why people want to have a cover embedded in each audio file. Why not put a plain JPEG file into the "album" folder once, and avoid the redundancy?

(Is that yet another "Apple/iPod" crankiness, like forcing the user to use an incorrect .m4a extension for MP4 files ???)

Quote:
Originally Posted by jfcarbel View Post
As an added bonus it can take audio from video files including FLV, MP4, VOB. Not sure how often I would use that though.
MP4 should work, at least if the audio track is AAC. That's because AAC audio files are usually stored in a MP4 container, regardless of whether they have video or not.

For FLV and VOB, I will have to look into a suitable demuxer. There is "FLV Extract" and it even has a CLI version, but it's written in C# and thus needs the .NET Framework

(And I want to avoid dependency on the .NET Framework or the Java Runtime Environment by all means. I'm a big fan of "self-contained" and "portable" software ^^)
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 23rd January 2011 at 14:05.
LoRd_MuldeR is offline   Reply With Quote
Old 23rd January 2011, 14:18   #95  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 564
Well, you've lost dependency to .Net and Java but you gained dependency to Qt... ideally, a Windows application wouldn't depending on anything and would follow all the Windows Interface Guidlines so that beginners can get an easy start...

http://www.ics.uci.edu/~kobsa/course...Guidelines.pdf - a bit old and I agree not even Microsoft follows everything in here anymore but it's still a good read

http://msdn.microsoft.com/library/de...ml/welcome.asp
http://msdn.microsoft.com/windowsvista/uxguide
http://www.ssw.com.au/ssw/Standards/...nterfaces.aspx
http://www.microsoft.com/downloads/d...3-1b9e8ea7fe8c

Well anyway, I remember we've talked about it and I understand your decision, but I still felt like saying this for others to read... You can do beautiful apps using just native code - Virtualdub comes to mind for example - but I agree Qt makes it easier. Just not user friendly.
mariush is offline   Reply With Quote
Old 23rd January 2011, 15:13   #96  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quote:
Originally Posted by mariush View Post
Well, you've lost dependency to .Net and Java but you gained dependency to Qt...
Well, with "dependencies" is was referring to runtime dependencies. More specifically I meant software that the user would have to download and install separately, before he can run/use my software. Of course my software compiled with MSVC and based on the Qt Framework will unavoidably "depend" on the MSVC Runtime libraries, some of the Qt libraries (QtCore and QtGui in this case) as well as various Windows system DLL's. But all these "dependencies" can either be linked in as static libraries (the MSVCRT and the Qt libraries), which completely eliminates the runtime dependency, or they are guaranteed to be available on any Windows system out-of-the-box (the Windows system DLL's). After all, my software is deployed as a single self-contained EXE file that does not depend on any additional software. It runs "out-of-the-box" (i.e. without "installation") on any Windows system from Win2k up to Win7 as well as under Wine. And I think that's what generally is referred to as "portable" software.

(The only exception is the Nero AAC encoder, which cannot be re-distributed along with the application. But that's for legal reasons, not for technical reasons)

Quote:
Originally Posted by mariush View Post
ideally, a Windows application wouldn't depending on anything
I have to disagree here. IMO creating a non-trivial GUI application directly on top of the "raw" Win32 API is nothing but pain. It would result in HUGE code that is hard to understand and hard to maintain. In order to deal with this, one would probably start to create his own "wrapper" classes around the "native" Win32 API. You'd end up writing your own GUI Toolkit/Framework. However instead of re-inventing the wheel, you could as well pick one of the existing Frameworks. Even Microsoft has their own GUI Framework for C++ applications on top of the "native" Win32 API, namely MFC (Microsoft Foundation Classes). But IMHO the MFC are a huge mess, compared to Qt or WxWidgets. Also the Qt Framework provides a whole lot of extremely useful non-GUI "helper" classes, which otherwise you would have to either implement yourself or take from other libraries. And, last but not least, the biggest advantage of using a cross-platform Framework instead of the platform-specific Win32 API is that your application will run "natively" on other platforms too...

(EDIT: Of course I agree that avoiding runtime dependencies is preferable. But I don't see a problem with compile-time dependencies, as long as they subserve the project)

Quote:
Originally Posted by mariush View Post
and would follow all the Windows Interface Guidlines so that beginners can get an easy start...
My "Interface Guidline" is and always has been: Create software that you would like to use yourself. That plus: Change aspects of the software, if enough people complain

(BTW: When looking at user interfaces as annoying as Windows Media Player 12 or the "Ribbon" interface of Office 2007, I wonder if they still apply any guidelines ^^)

Quote:
Originally Posted by mariush View Post
but I agree Qt makes it easier. Just not user friendly.
How is Qt not user friendly? Some of the most intuitive and "user friendly" applications that come to my mind (e.g. SMPlayer) are based on Qt.

And, if desired, Qt can emulate the "look and feel" of Windows ("Classic" and "Luna" as well as "Aero") exactly - I think they even use "native" controls for that purpose.

IMO if an application's user-interface isn't "user friendly", then that's mainly a problem of the design, not so much of the underlying framework...

Quote:
Originally Posted by mariush View Post
You can do beautiful apps using just native code - Virtualdub comes to mind for example
Sure, it can be done. But it certainly needs more code (as you have to care about a whole lot of "low level" things) and it's a one-way street.

That's the reason why we won't see a Linux or MacOS port of VirtualDub.

(Also I persoanlly wouldn't call the graphical interface VirtualDub "beautiful", but "no-frills". But that's not necessarily a negative thing)
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 23rd January 2011 at 16:46.
LoRd_MuldeR is offline   Reply With Quote
Old 23rd January 2011, 16:45   #97  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 564
When I say user friendly, I'm talking about something to the terms...Put your grandma in front of the computer and tech her how to use the computer, then tell her to use your software"

You're going to teach her about the Start menu, about the menu and the fact that there will always be File, Edit, View, Help in this order (you have File, View, Tools, ? when you could have Edit to cut or delete files in the queue), so if she wants to save a document she must go to a menu that works with files titled (obviously) "File" and so on, that the Next button should always be on the right of the Previous button, that dialogues should have OK and Cancel and not Cancel and OK on them, that the interface should be easy to use by color blind or people that have to use screen readers because they're legally blind (think for a minute what would a screen reader do when your app will extract all those files in the background for a minute and will keep repeating "extracting lame dot exe dot dot dot new line extracting file : wget dot exe dot dot dot new line...)

Then you have the about window that I already told you about that pops with a scary grawl and is filled with a text that doesn't mean anything aka no legal value (because it's not the full GPL license, a simple scroll bar would fix the problem), the X button in the top corner doesn't work, the Accept button (aka Positive action from the user ) is in the middle while on the main form the positive action is on the left corner (Encode now) and the About button (the most useless because it's also in the ? menu) is in the middle, the center of the action) and so on...

And by the way... if i decline the license once, I can't use the application ever? Maybe I change my mind. Now I can't run it the second time. And it shouldn't close just because I decline the license - the harm was already done, I've already launched the application even though I haven't actually "used" it. I have to edit C:\Documents and Settings\Administrator\Local Settings\Application Data\LoRd_MuldeR\LameXP - Audio Encoder Front-End\config.ini manually to remove that and make it working again (and you're using "Mulder" in registry and Lord_Mulder in app data)

Maybe the better word would be "intuitive"...



Why the DOS path style?

Why popup with OK saying i don't have WMA, and then a second popup asking if I want to download and install... couldn't it be done in one step... The initial auto update was something like "Search for update" and "Postpone", this one is "Download & install " and "Cancel" ... why not "Postpone" to mantain consistency? Cancel would make me think the application would terminate.

"Goto" Home folder ... goto is not a word.... "Save output ... " is too long to read and complicated... in Meta Data Edit, the positive action, should be on the left of Reset which is sort of a Cancel or undo... checkboxes with [x] don't exist on Windows and confuse user who will think when checked it means "don't do it"...

Compression page shows quality/bitrate min and max, but going toward min increased the quality level which doesn't make sense to a user that doesn't know technology behind - the advanced option gets it right keeping it to Low quality, average, high quality, best etc



\ and / inconsistency ... and Output dir tab shows path with \ but the source files shows files with / in the panel (I know Windows treats / and \ the same but a Windows user may be puzzled by this /)...


Then all the frills of the QT like blue bars around text boxes, making a dotted rectangle around the buttons that are default (the OK for example if it's the only button on dialogue)... it all makes the interface "bad" for regular users...
mariush is offline   Reply With Quote
Old 23rd January 2011, 17:31   #98  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quite a number of suggestions

Quote:
Originally Posted by mariush View Post
When I say user friendly, I'm talking about something to the terms...Put your grandma in front of the computer and tech her how to use the computer, then tell her to use your software"

You're going to teach her about the Start menu, about the menu and the fact that there will always be File, Edit, View, Help in this order (you have File, View, Tools, ? when you could have Edit to cut or delete files in the queue), so if she wants to save a document she must go to a menu that works with files titled (obviously) "File" and so on, that the Next button should always be on the right of the Previous button, that dialogues should have OK and Cancel and not Cancel and OK on them, that the interface should be easy to use by color blind or people that have to use screen readers because they're legally blind (think for a minute what would a screen reader do when your app will extract all those files in the background for a minute and will keep repeating "extracting lame dot exe dot dot dot new line extracting file : wget dot exe dot dot dot new line...)
If extracting the files takes long on your system, it's probably because of slow A/V software slowing down the process.

On my system it takes ~10 seconds with MSE activated. With MSE de-activated, the extraction process takes like ~1 second (the SSD might be helpful here).

Quote:
Originally Posted by mariush View Post
Then you have the about window that I already told you about that pops with a scary grawl and is filled with a text that doesn't mean anything aka no legal value (because it's not the full GPL license, a simple scroll bar would fix the problem), the X button in the top corner doesn't work, the Accept button (aka Positive action from the user ) is in the middle while on the main form the positive action is on the left corner (Encode now) and the About button (the most useless because it's also in the ? menu) is in the middle, the center of the action) and so on...
I'm not a legal expert, but I display exactly the text that the official GPL document says that I'm supposed to attach to my application. Also many applications, that required the user to accept their license terms, do not display the complete license text during install, but only provide a link to the license text instead. As these are programs developed/distributed by big companies, which have a legal department for such questions, I assume it should be okay the way it is (in a legal sense). Most people won't read the whole license text anyway, so providing the link for those who actually are interested seems advisable to me.

Quote:
Originally Posted by mariush View Post
And by the way... if i decline the license once, I can't use the application ever? Maybe I change my mind. Now I can't run it the second time. And it shouldn't close just because I decline the license - the harm was already done, I've already launched the application even though I haven't actually "used" it. I have to edit C:\Documents and Settings\Administrator\Local Settings\Application Data\LoRd_MuldeR\LameXP - Audio Encoder Front-End\config.ini manually to remove that and make it working again (and you're using "Mulder" in registry and Lord_Mulder in app data)
Actually the application will call the uninstaller, when you decline the license. You can re-install at a later time, if you changed your mind. That of course can't work when you use the ZIP package, for obvious reasons, so the application will simply quit. Moreover there is no way to ask the user to agree to the license before he launches the application for the first time. So there's not much alternative to asking on the first startup. And that's how it is implemented in many other applications too (here Microsoft's ProcessExplorer and ProcessMonitor tools come to my mind, fore example).

Quote:
Originally Posted by mariush View Post


Why the DOS path style?
If you ask why the path on your screenshot uses "short" (8+3) names, then that's because that is the path from which you launched LameXP on your system. LameXP simply displays the path (command-line argument) that it was launched with. I assume you double-clicked LameXP.exe in WinRAR, so WinRAR did extract the LameXP.exe to the %TEMP% folder and launched it from that location. Of course I have no control over how %TEMP% is defined on your local system. But it seems for reasons of backward compatibility, the %TEMP% environment variable is defined with "short" names on Windows systems by default. However usually you would not run LameXP from your %TEMP% folder, but from something like "C:\Program Files (x86)\LameXP". And in that case you would see the corresponding (long) path...

Quote:
Originally Posted by mariush View Post
Why popup with OK saying i don't have WMA, and then a second popup asking if I want to download and install... couldn't it be done in one step... The initial auto update was something like "Search for update" and "Postpone", this one is "Download & install " and "Cancel" ... why not "Postpone" to mantain consistency? Cancel would make me think the application would terminate.
Indeed, it could be done in one step.

Quote:
Originally Posted by mariush View Post
"Goto" Home folder ... goto is not a word.... "Save output ... " is too long to read and complicated... in Meta Data Edit, the positive action, should be on the left of Reset which is sort of a Cancel or undo... checkboxes with [x] don't exist on Windows and confuse user who will think when checked it means "don't do it"...
Well, if you have suggestions for better translations, I'm always happy. About the style of the checkboxes: These are Theme-specific.

Quote:
Originally Posted by mariush View Post
Compression page shows quality/bitrate min and max, but going toward min increased the quality level which doesn't make sense to a user that doesn't know technology behind - the advanced option gets it right keeping it to Low quality, average, high quality, best etc
That wasn't my idea

It's defined by LAME that "0" means best quality and "9" means worst quality. If I reverse this, it might be more intuitive for newbies, but it wouldn't be consistent with LAME's CLI/manpage anymore and thus confuse the "power" users. So I think it's less confusing to keep it consistent with LAME's docs. And from the labels it should be clear which direction means "better" and which direction means "worse" quality.


Quote:
Originally Posted by mariush View Post


\ and / inconsistency ... and Output dir tab shows path with \ but the source files shows files with / in the panel (I know Windows treats / and \ the same but a Windows user may be puzzled by this /)...
As Qt is a cross-platform toolkit and the whole world, except for Microsoft Windows, uses "/" as path separator rather than "\", internally all paths will use "/" as separator. I should convert the strings to "native separators" before displaying them to the user. And I think that's what I did in most places. If I forgot it in some places, it should be easy to fix.

Quote:
Originally Posted by mariush View Post
Then all the frills of the QT like blue bars around text boxes, making a dotted rectangle around the buttons that are default (the OK for example if it's the only button on dialogue)... it all makes the interface "bad" for regular users...
Again that's Theme-specific. I personally like the "Plastique" style. But if you prefer "Cleanlooks" or a native "Windows" look, you can switch the theme at any time.

(LameXP will remember the selected theme for next startup)

EDIT: Maybe I should start a poll and let the users vote which style they like best. Then I can make that style the default one and nobody can complain
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 23rd January 2011 at 17:53.
LoRd_MuldeR is offline   Reply With Quote
Old 23rd January 2011, 18:28   #99  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 564
re: folder in 8.3 notation, see:

http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

Feeding a long path to these functions won't do any harm, so no matter what path you'd give them, you'd receive the long nice path in return.

re slow load: you can't ask users to disable the antivirus software to load the app fast, and considering most users will have some sort of antivirus installed you should work around it, not users around your app.

re theme: i completely understand but as I said... consistency and everything

re license : if you aim to make the zip version "portable" then it shouldn't touch the disk in any location other than the default temporary folder specified by the operating system. Users who don't wish to "install" something obviously don't want to create files in various locations (application data for example) or may not have the rights to create files there.

It should also not prohibit me from running the application again.. for example I start application, I see the license but I'm too tired today and I want to read the license tomorrow and understand it so I cancel the process and I see tomorrow that I'm no longer able to use the application because it saved the "no" answer in an .ini file somewhere on the disk without letting me know.

re license text: it's either full text or nothing - the full text is not required but it should either be a link to the license or the full license shown, not just a couple of paragraphs - user may understand by those paragraphs that those paragraphs are the full license and ignore the other terms of the license describe further, making it void.

A simple license.txt in the ZIP file would be actually enough, I believe. Virtualdub loads the full license text in a window using a text area with vertical scroll and only an OK button, then lets user decide if he wants to continue using the application or not, as there's no requirement for a user to accept the license (by continuing to use the software, it's an implied acceptance of the license) :

from the GPL 2.0 license text:
Quote:
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
The GPL 2 license, as far as I understand reading it, does not prohibit user from running the application. It only prohibits user from modifying and re-distributing it when certain conditions aren't met. Running application is neither modifying or re-distribution. So refusing user to run the application is silly if not above what the license requires.
mariush is offline   Reply With Quote
Old 23rd January 2011, 19:21   #100  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 12,929
Quote:
Originally Posted by mariush View Post
re: folder in 8.3 notation, see:

http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx

Feeding a long path to these functions won't do any harm, so no matter what path you'd give them, you'd receive the long nice path in return.
I know about these functions.

But if I only deal with "long" and fully-qualified path names all the way, and that's what I do, there is no need to explicitly convert to "long" names.

The only way how a "short" name can slip into the application is by explicitly calling the executable with a "short" path name (as WinRAR probably did). And then you'll get what you have requested.

I don't think that is a case we should worry about. Normally the user will launch the application from Explorer or Startmenu and then it get's called with a "long" path name.

Quote:
Originally Posted by mariush View Post
re slow load: you can't ask users to disable the antivirus software to load the app fast, and considering most users will have some sort of antivirus installed you should work around it, not users around your app.
Sure, we can't request people to turn off the Anti-Virus software. Still what my application does is legitimate work and an Anti-Virus software is supposed to not impair legitimate actions of legitimate applications! So this certainly is not something that I'm supposed to fix on my side. It's something they are supposed to fix on their side. As soon as legitimate software needs to implement workarounds against bothersome Anti-Virus software, something is seriously wrong. Consequently while people shouldn't turn off their Anti-Virus software, the should report the problem to the A/V vendor. And if the A/V vendor doesn't fix the problem, they should switch to another product. If nobody complains about slow Anti-Virus software, the developers of these products will think that it's no worth to spend any resources on speed-optimizations...

Quote:
Originally Posted by mariush View Post
re theme: i completely understand but as I said... consistency and everything
For "consistency" you can switch to one of the native Windows themes at any time. The "Classic" style gives you consistency to Windows 2000, even under Windows 7. That's as much consistency as you can have (except if you want consistency to MS-DOS or Windows 3.11 ^^). Still I doubt that the average user cares about consistency that much. Compared to the fancy user-interfaces you see in many popular applications (just think of Skype/YM! or the infamous "Ribbon" interface of MS Office 2007 ^^) even the "Plastique" style of Qt still is extremely conservative.

Quote:
Originally Posted by mariush View Post
re license : if you aim to make the zip version "portable" then it shouldn't touch the disk in any location other than the default temporary folder specified by the operating system. Users who don't wish to "install" something obviously don't want to create files in various locations (application data for example) or may not have the rights to create files there.
LameXP doesn't create files in any location, except for the system directories that are intended for exactly that purpose. So temporary files go to the %TEMP% folder and configuration files go to the %APPDATA% folder, as intended. Storing configuration files in the same location where the EXE file is located is not an option, as the EXE file quite often will be located in "C:\Program Files (x86)", where Non-Admin users don't have write access (with UAC even Admins don't have access there). But somewhere the configuration must be saved! However I will implement a workaround that allows LameXP to store/load the configuration file to/from the "EXE directory", if explicitly desired by the user. Re-naming "LameXP.exe" to something like "LameXP-Portable.exe" should be the easiest method. This might be useful for people who have the software on their USB stick and use it on different computers. Also in this case it will be up to the user to ensure that write access to the "EXE directory" is granted. Of course the installer will create files (shortcuts) in the Startmenu as well as on the Desktop and it also creates a few Registry entries, but that's what one expects from an installer. You can choose the ZIP package if you don't want that.

Quote:
Originally Posted by mariush View Post
It should also not prohibit me from running the application again.. for example I start application, I see the license but I'm too tired today and I want to read the license tomorrow and understand it so I cancel the process and I see tomorrow that I'm no longer able to use the application because it saved the "no" answer in an .ini file somewhere on the disk without letting me know.
Right.

Quote:
Originally Posted by mariush View Post
re license text: it's either full text or nothing - the full text is not required but it should either be a link to the license or the full license shown, not just a couple of paragraphs - user may understand by those paragraphs that those paragraphs are the full license and ignore the other terms of the license describe further, making it void.
Still, the GPL text says "If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program." Followed by exactly the text that I have attached to my program. Regardless of whether displaying this text to the user has legal meaning or not, it still is a valuable information that should be presented to any user at least once (and doing that at the first startup seems reasonable). For the rest, there already is a link to the full text.

Quote:
Originally Posted by mariush View Post
A simple license.txt in the ZIP file would be actually enough, I believe. Virtualdub loads the full license text in a window using a text area with vertical scroll and only an OK button, then lets user decide if he wants to continue using the application or not, as there's no requirement for a user to accept the license
I will add the GPL as plain text file to the ZIP package and the installer. I just forgot about this.

Quote:
Originally Posted by mariush View Post
(by continuing to use the software, it's an implied acceptance of the license):

from the GPL 2.0 license text:

The GPL 2 license, as far as I understand reading it, does not prohibit user from running the application. It only prohibits user from modifying and re-distributing it when certain conditions aren't met. Running application is neither modifying or re-distribution. So refusing user to run the application is silly if not above what the license requires.
Okay. But even if the GPL does not imply that the user has to agree to the license before using the software, my software "as-is" does ask the user to agree. And (according to the paragraph you have quoted) without agreeing to the license, the user is only allowed to use the software "as-is" (which in this particular case means including the license agreement dialog, as that is part of the software) but not to modify or redistribute it. If the user wanted to remove/skip the license agreement dialog, this would require a modification of the software. And for such modifications the license has to be agreed anyway...
__________________
There was of course no way of knowing whether you were being watched at any given moment.
How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.



Last edited by LoRd_MuldeR; 24th January 2011 at 03:02.
LoRd_MuldeR is offline   Reply With Quote
Reply

Tags
aac, aotuv, flac, lame, lamexp, mp3, mp4, ogg, oggenc, opus, vorbis

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 03:52.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.