IMEException.MailBody

delphi package - automated exception handling
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

I've already changed my code so that the mailto/shellmail body is only replaced if your madExcept settings define attachments. So in the next build, if you remove all attachments, things will work as you expected.

You might not like attachments, but I think you're pretty much in the minority there. It's so much more convenient to double click a bug report file attachment in an email, and then have the madExcept Bug Report Viewer open up automatically (if you use the "mbr" file extension which is assigned to the viewer) than trying to read a bug report text in an email program, which probably doesn't even use mono-space fonts.

If my exception box were VCL, it could not be used in situations where the main thread is "frozen" (e.g. in an endless loop without message handling, or in a deadlock). In these situations madExcept would not be able to show any exception box at all, when using the VCL. That would be a catastrophe.

You're right that my exception box is not DPI aware, that's on my to-do-list to look at. The "too many buttons" problem can be easily fixed. Just hide the buttons you don't like. There's also a checkbox in the madExcept settings named "show standard buttons instead of fading owner draw buttons". You seem to prefer that.

If you think that madExcept is not high quality, why are you using it? You can use Jedi Debug or EurekaLog instead, if you think they are higher quality. But you should be aware of that EurekaLog also creates its own non-VCL window. Why? Because it's necessary for a good exception catching tool, because the VCL is not thread safe. But it seems a win32 standard "look" is more important to you than a reliable exception catching functionality.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

madshi wrote:So in the next build, [...] things will work as you expected.
Thank you!
madshi wrote:You might not like attachments, but I think you're pretty much in the minority there.
The most people are want to have everything - but they are not able to handle this. I want to have small solutions, which are working well in all situations. Yes, you are right, I'm in the minority on this world.
madshi wrote:If my exception box were VCL, it could not be used in situations where the main thread is "frozen" (e.g. in an endless loop without message handling, or in a deadlock).
You want to handle this as well - that's nice. But do not try this, before you handle the basics. And DPI aware software is a basic. I told you this problem four years ago... and in this four years you were not able to realize this basic feature of a Windows application.
madshi wrote:If you think that madExcept is not high quality, why are you using it?
Because other implementations are more bad.
madshi wrote:But it seems a win32 standard "look" is more important to you than a reliable exception catching functionality.
Yes, now you got it! :D
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

Tahtu wrote:Because other implementations are more bad.
Haha, you got me there... :D

It's about time for me to start working on a new major madExcept upgrade (5.0), and high-DPI-awareness and a more "standard look" are things I'm going to look at.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

EurekaLog is too much overloaded with unneeded features. Do not make the same mistake.

EurekaLog and their website looks very nice ... but the software does not follow this nice looking.

But your software is better than your website, the setup program and the help system looks like.

Because of this, I suggest, you are working on the visual elements of your whole placement:
- More Windows standard usage of the Setup program. InnoSetup is a good and small program. But it does not use the MS Installer features. So maybe there is a better program for you. The Windows Installer have a very nice looking feature for selecting elements like madAsm, madDebug, madExcept...

- The exception dialog should look like a standard Windows dialog - without icons on the buttons, with DPI aware fonts / sizes. You can get this with SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ... GetSystemMetrics, GetDeviceCaps(screen, LOGPIXELSX).

- With "Help & Manual", you can create .chm files for the user system and .html file for your website with easily.

... and if you really think, you have to enclose graphics into your exception dialog, please put it in a large size into the resources and reduce it while runtime to the system specific resolution.

The madExceptPatch.exe program output could be very bit larger. Maybe something like "madExcept patches the Project1.exe file" or something like that.

All of them is not complication, just do it... :D


... and if you want to offer high quality of low level programing, ... you should reduce the file size additional of madExcept. :wink:
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

Thanks for the suggestions.

I'm not sure I want to change the installer. It probably isn't ideal, but it does the job, and it includes all the key file logic etc. I'd have to invest a lot of hours to implement all the same features into a "standard" installer, and the end result wouldn't really be dramatically better, IMHO. My experience with standard installers isn't really all that great, anyway. It happens way to often that an installer forgets how to properly uninstall, or screws up licensing etc. Happens even with Embarcadero products from time to time. My installer doesn't have such issues. Also my installer has some features which no other installer has: E.g. if you edit the madExcept pas files and then install a new madExcept version, my installer will actually detect the changed pas files and copy them into "bak" folders, so your changes aren't lost. I don't think any other installer does things like that.

In win9x etc there was an old help file format, I don't even remember the name. At some point I considered using it. If I had, it would have been a catastrophe because current Windows versions are not even able to display it, anymore. I've chosen HTML because it will always work, on any OS, furthermore I can put it on my website (see http://help.madshi.net) without any extra effort. Again, maybe switching to a standard help system (e.g. using Help & Manual) would be an improvement, but it doesn't affect the end user, which is the most important thing. Changing the help system would cost me a LOT of time, which I'd rather spend on something that benefits the end user (and as a result, also you).

As I said, improving the exception dialog is in my to do list for the next major madExcept upgrade. This is really something that needs work, and it will benefit the end user (and thus, also us devs).

P.S: I don't think file size is too important these days. But anyway, I don't really know how to improve that. I could increase the compression of the map file information, but then I'd also need a more complex compression algorithm which would increase the code footprint. It would be a file size improvement for large EXE files, but probably make things worse for smaller EXE files. I could try to reduce the madExcept source code size, but that's hard to do without losing features. I've already made some things external. E.g. if you disable the disassembler section in the bug report, the file size should decrease slightly. I'm not sure if there's much more I can do about it.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

madshi wrote:I'm not sure I want to change the installer.
You don't want to, I know! But this is the point: The look and feel is important in this world. The humans want to feel good. And they are feel good, if they have something, they know. Every change, every new is bad. You are the best example for this: You don't want to change the setup program. :wink:

Indeed, you developed this software - it's YOUR software. But we humans don't living for our self and our egoism. We're living to serve another. You serve the humans, how uses your software. Because of this, you have to do, what they want to have - not want you want to have. :idea:
madshi wrote:My experience with standard installers isn't really all that great, anyway.
Using standard software if mostly the best way. Indeed it takes time to change. I needed 5 hours for the change form EurekaLog to madExcept. But I wasted much more time trying to handle EurekaLog in the years before. Again and again, I got trouble with it.

I'm still looking for a good MS Installer creation tool. I offer a Windows GUI program ... translated into 30 languages. Until now, I didn't find a good and small MS Installer creation to, which runs the setup program in 30 languages. But it's important, that the user have their own language up from the first minute: He feel good, if he have something he know. :wink: An he knows his own language as best.

But if you would offer a setup program in multiple languages, you would promise a program in that languages too. But madExcept (and the documentation) are available in english only.

So, I don't know, if InnoSetup is the right program for you - sorry, I can't tell you a ready solution in this case.
madshi wrote:Also my installer has some features which no other installer has
Indeed you have reasons for your solution. But again: Your job is it to serve other people - the users of your software. It's up to you to do what they makes happy. That's the reason, why we humans here in the world.
madshi wrote:In win9x etc there was an old help file format, I don't even remember the name.[/qoute]
Yes, I remember it. Imho it was better than the .chm format.

But people are knowing the .chm format and the HtmlHelp Viewer. Since they know it, they feel good using it. And you develop the software for them - not for yourself.
madshi wrote:At some point I considered using it. If I had, it would have been a catastrophe because current Windows versions are not even able to display it, anymore.
I used "Help & Manual" at that time too, I wrote my WinHelp file with Help & Manual. And while MS published the .chm format, all I had to do was updateing Help & Manual, choosing an other output format - done!

Because of this, it's important to use standard software. They will be updated.

I'm developing software in Pascal / Delphi since 30 years. All I learned in Pascal, I still use it today. I uses standard software...
madshi wrote:I don't think file size is too important these days.
This is a question of respecting the resources of other people and the world: Smaller file size is reducing internet traffic and making downloads faster. I offer bugfixes often. My download size is 5 MB. So the people, who updating their software often, are happy to get the update faster - and the internet does not have to handle unneeded traffic.
madshi wrote:But anyway, I don't really know how to improve that.
Ok, this point I understand. Working too much time of reducing the file size is not a good solution. I don't know your software. So I can't assist you in this point. But I know the overhead of madExcept is 30 % more than the overhead of EurekaLog 6. So there must be a way to reduce the file size.

I think a solution could be storing lesser informations of the map file. I think there are a lot of information, which are not needed in the ready published program. But maybe I'm wrong in this case - it's up to you to find a solution for this...
madshi wrote:I could increase the compression of the map file information,
I compare the file size of my ready compiled (public) setup program. InnoSetup creates this, with a very good compression, I think. So I think, the compression is not the point.
madshi wrote:I could try to reduce the madExcept source code size, but that's hard to do without losing features.
I read a lot of your help documentation. I didn't found a lot of unneeded or redundant information there. Because of this, I think you are able to do what is needed - an not too much. I have the same impression in the features of madExcept. So I think you program code is also good - not too much. Because of this, I don't think this is the solution too. But again: I never read you source code - so I can't know it.
madshi wrote:I'm not sure if there's much more I can do about it.
In my special case, I think you could use the ZLib library of Delphi, instead of using your own source code of the ZLib library. Indeed this is possible for newer Delphi versions only. In my case, this would reduce the file size, since I'm using the delphi implementation of it too. But this solution is not realized in EurekaLog 6 too. So the smaller footprint of it must base on an other point.

If I compile my program with all toolboxes, I have 1.500.000 lines of source code. The map file of it takes 4.7 MB. ... a lot of possible unneeded information in your footprint. :wink:

But I agree with you: The file size reducing is not so important like the look and feel. The users of your software are humans - not machines. And humans wants too feel good. So if you want to serve them, you have to do what gives them good feelings. All they know gives them good feelings.

The know standard installers. They know standard dialog boxes. They know .chm help files.

... and a lot of they are using Windows 10. So it could be also helpful to redisign your web site more nearly to the Windows 10 look and feel. Also your forum design is old right now. And the help pages doesn't look modern too.

I'm sorry to repeat it again and again: You are servering other human and their feelings... :D
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

You're right that it's more important what my customers need and want than what I need/want. But I can't just take your word as defining what all my other customers want. I have thousands of customers. I would have to do a survey first to be sure about what they want exactly. But I'm pretty sure the installer and help file format would not be critical to them, as long as the current solution works sufficiently. Based on all the feedback I've received in the past couple months and years, most devs using madExcept are mostly concerned about:

1) effectivity in finding bugs
2) good end user experience
3) ease of daily use (not ease of installation)

I believe installer experience and help file format is WAY down the priority list for most madExcept devs. At least that's my impression from all the feedback I'm receiving. I think your priorities don't really match the majority of the madExcept users, to be honest. Except for "good end user experience", of course (e.g. high-DPI-awareness etc), where I agree with you.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

madshi wrote:I have thousands of customers.
Don't ask them - they don't know it by himself. Ask psychologs and marketing people. Take a look to successful software developers and their websites, their setup programs and their manuals.

Take a look to EurekaLog. Why their have much more success than you? Find the answer to this question by yourself - not from your users. The users who found you are not important. User who didn't find you are important. But how do you want to ask them? It's not possible...
madshi wrote:Based on all the feedback I've received in the past[/qoute]
Again: Not the users who found you are important. The users who didn't find you or who didn't contact you are important.
madshi wrote:1) effectivity in finding bugs
2) good end user experience
3) ease of daily use (not ease of installation)
You realized this features. So now you can take a look to the parts, you didn't realize until now.
madshi wrote:I believe installer experience and help file format is WAY down the priority list for most madExcept devs.
Feeling good it the highest priority for the very most humans. And they feel good, if they find what they know.
madshi wrote:At least that's my impression from all the feedback I'm receiving.
Yes, I believe this. But this is not how you can become more public and how you can get more users.
madshi wrote:I think your priorities don't really match the majority of the madExcept users
Yes, I agree with you!

Users with my priorities looking for their whiches at EurekaLog, since thier look and feel promise much more, than your look and feel promises. But the promises of EurekaLog will not be fulfilled by that software.
madshi wrote:Except for "good end user experience", of course (e.g. high-DPI-awareness etc), where I agree with you.
Psychologs found out, that humans mostly decide within 10 seconds, if they feel good or not. Because of this, it's important to what the first impression says. A web site have to make good feelings - and the reader has to find what he is looking for within this 10 seconds.

Than he tries to download the software. Again he want to be successful with the download within 10 seconds. Because of this, the file size is important.

Now he see the program icon. A human decides within one or two seconds, if he like an image or not. So maybe it could be helpful for you to think about the icon too.

Ok, now he click to the icon. Again you have 10 seconds to give the user good feelings. But you installer look VERY, VERY different from other installers. In the first moment, the user don't know, what he see. This gives him bad feelings. He have to find out, what he see and how to proceed. This takes more that 10 seconds ... too much: The user does not feel good.

... the same 10 seconds, you have after the installing. EurekaLog offers a video. I don't like videos, but a lot of people can easier to learn what he have to do, if they see a video. I don't tell you to make a video - this is not the point. The point is: I want to give you an impression how humans are feeling while using software.

After installing, I wanted to find out, what I installed. So I opened my start menu, since I expect new installed software there. But I didn't found madExcept that. Within this first 10 seconds, I felt bad - is this, what you want?

I found out, I have to learn, what I installed. I needed a long time to find your help files. Bad, since I was not successful within this 10 seconds. And after I opened that help files in my browser, I thought: Hey, documentations in this form was modern 10 years before. How old is the developer? Why is he not able to implement actual standards? And my next thoughs: Is he able to write software state of the art? Or is his software so bad like his help files?

The content of your help files are great. It's good structurized, good formated and easy to understand. But navigating is very bad again, since I missed the know content tree on the left side.

Do you understand, what I say?

Feelings are important! Human feelings - and the knowing, how humans are feeling. The first impression... maximal 10 seconds...

Take a look to advertisings: There are nearly NO informations - only feelings.
Politic ... there are no facts, only nice (empty) words.

But this is the other extrem to your extrem. Finding the middle is what we are living on earth.

Your software is great - the feelings for the users are bad.

The users, you have came to you, since they thinking like you. But what about all the humans, who don't use your software? Why is EurekaLog more public than madExcept?

You are a great software developer. But you have to find ways, how you can bring you good software to the people...

You don't want to let tell you something from other people. You think you know everything. A lot of people feel this, and don't contact you. Because of this, you don't recognize, that your software it bad implemented.

Be open for the humans. Find out by yourself, what they need to feel good. This is the job of a software developer: Finding out, what the users needs - and give it to them.
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

I don't know EurekaLog sales numbers so I'm not sure who's more successful, but you could be right.

You definitely make some good points there. I do need to improve the "first impression".

Thanks.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

Wow, you got it! Great!

Now go your own way. Do not further listen to me! You are right: I'm a single human, and my opinion is not important.

My words are my respecting for your software: I tried to give you, what I can pay for your work - a new kind of view.

Thank you for listening to my words.


Good luck!

PS
Sales are not important. Making people happy is the way to feel good by yourself. :o
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

madshi wrote:I'm not sure I want to change the installer. It probably isn't ideal, but it does the job, and it includes all the key file logic etc. I'd have to invest a lot of hours to implement all the same features into a "standard" installer,
I like the InnoSetup compiler. But it does not create a MS Installer setup program. That's bad imho.

But the InnoSetup compiler handles indiviual install and uninstoll procedures of Delphi code.

So if you would give InnoSetup a chance, maybe you could overtake a lot of routines from you own setup creation tool. Just and idea...

Additional, I thougt further more about you diffent components of the madCollection setup. Now I have to install three components to use madExcept. But finding out this, waste my time while the first installing. And after I installed madExcept and integreated it into my IDE, I had to configure the command line compilation. At that moment, I had to add the source pathes of the three component too. This made me confuse - a bad feeling.

Maybe it would a good idea not to offer one madCollection installer, but instead of it one madExcept installer. (And indeed one madCodeHook, one ... installers too.) So the user could decide the tool he wants to install before downloading it.

On this way, all the sources of one product you could place into one folder in the users installation. This makes it easier for the user to understand, what he installs on this computers. Additional, the user don't have to select what he wants to install inside the setup program. And whithout this, you can use InnoSetup instead of a MS Installer tool.

Understanding what happens makes a human very satisfied. And you want to give the user this good feeling, isn't it?

I know, if you want, you will find a lot of reasons not to overtake this idea. If you are looking for reasons, you will find reasons - independent of the direction you are looking for. So finding a reason not to change something is not a reason not to change something. :wink:
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

I would love to have separate installers for madExcept and madCodeHook, but both are based on madBasic and madDisAsm. If I install madExcept and madCodeHook into separate directories, which madBasic and madDisAsm version will Delphi use then? The user/dev might even install an old madExcept version and a new madCodeHook version. The madDisAsm version shipping with madExcept might be incompatible with madCodeHook and vice versa. Delphi doesn't really support a situation like this. I'd have to duplicate madDisAsm, name one madDisAsmExcept and one madDisAsmCodeHook, and then I'd have to implement any changes in both. Furthermore the EXE/DLL size would increase because there would be 2 instances of the disassembler linked in.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

madshi wrote:I would love to have separate installers for madExcept and madCodeHook
Ok, but why?

Why do you try to offer separate products?

You could all place in one single folder - and use separate component tabs inside the Delphi IDE.
madshi wrote:The user/dev might even install an old madExcept version and a new madCodeHook version.
Our world is much too complex for the most people. It's time to simplify it.

Imho, there is no sense to install an old madExcept, but new madCodeHook version. Please offer one package with both of them together. Your software is small, so there is no requirement to reduce the HDD space. The Delphi linker also integrate the code, which are used. Find ways, that the linker knows, which part of your software is used by the users of your software.

Just place the source code of your software into the installer - no precompiled units.

Please remember the sense of developing software: Serving other people.

The humans are making the live so complicated, since they prefer to serve himself and his private egoism instead of serving other people. Just serve other people - and trust them and trust god, that you get, what you need for yourself.
madshi
Site Admin
Posts: 10753
Joined: Sun Mar 21, 2004 5:25 pm

Re: IMEException.MailBody

Post by madshi »

madCodeHook by default comes without source code. Only the very expensive source code edition comes with source code. The reason is that madCodeHook is a very sensitive product. It has been misused repeatedly by malware developers in the past. Because of that I'm limiting the source code to only be available to big companies. The number of madCodeHook customers is also lower than the number of madExcept customers, but there are a lot of very big companies licensing madCodeHook, so they can afford to pay much higher prices to get the source code. On the other hand, there are some single developers who license madCodeHook, by they usually choose the cheaper non-source-code version because they can't afford the source code version, and that's also important for me because if a single developer (not a big company) in some far away country would get access to the source code and would leak it to the internet, I couldn't even sue them. So it's an important protection that only big companies get access to the source code.

Also, madCodeHook is available for MSVC++ and Delphi while madExcept is available for Delphi, only. madCodeHook has both a Delphi and an MSVC++ code base. So it's impossible to ship madCodeHook with just the source code and no precompiled units. It wouldn't even work for MSVC++.
Tahtu
Posts: 51
Joined: Thu Sep 06, 2012 12:03 pm

Re: IMEException.MailBody

Post by Tahtu »

madshi wrote:madCodeHook by default comes without source code.
Change it!

The reason is that madCodeHook is a very sensitive product.[/quote]
Secrets are only needed for egoism reasons. But every kind of egoism living does not get the most advantage for the whole humanity. So if you want to live in peace and harmony with everybody, you should never have any secretes.
madshi wrote:So it's an important protection
God is the protection, we humans need. A protection against other people is an egoism game, you can't win. This kind of games does not have any advantage for the humanity, so it's sensless wasting energy to play that games.

Again and again: Please change your kind of thinking.
Post Reply