SamplingProfiler v1.7.4 is now available. This version adds an option for Delphi 2010 paths, and fixes a big with the silent mode execution that would render it inoperative. There also have been other minor changes, mostly cosmetic.
This release also includes preparation for an “attach to process” option, which is currently not enabled, but should hopefully make in the next version (available “when ready”).
Delphi 2010 paths added to options.
Fixed a bug in silent mode.
Tuesday, September 8, 2009
What To Do When You Find a Bug in Your Program
No Go Answers
If possible pretend that you are the company's answering machine. "You have reached Acme LTD, we are sorry but all the support lines are busy. Please call back in 12 hours".
Answer that you are sorry but the line is lousy and you did not hear the last sentence. Blib, zzp, blip. "Could you please call us back tomorrow, or when the lines are fixed?".
Answer that you are sorry but the support team is on holidays and that they will be back in no time, in 3 months.
Answer "I do not care, leave me alone, its Friday. You asked for the application now learn to live with it".
No Go Doings
After you have reproduced the steps and actually found the bug:
Introduce new, more severe bugs. The bug from the phone call will look like child's play. When this new bug is found, introduce another one. Just keep adding more bugs.
Ignore the bug. Just continue adding extra functionality to the application. Maybe users will forget and never again run into it.
Restart your development environment. If that does not help restart Windows. If that does not help restart Windows again.
Locate the line of the source code that is responsible for the bug (note: this requires lots of your valuable time). Then do one of the following (or all):
Delete the function containing the line of code that produces the bug. If you remove the cause - the consequence (bug) will go away. If, for example, the result of the function was a Boolean value, just make sure that sometimes false is returned and sometimes true is returned for the function result.
Turn your head away from the monitor. Pretend that you are dead. Maybe it will go away.
Turn your head away from the monitor. Pretend that you are dead. Try to scare the bug by quickly looking into the source code saying "bu". Repeat until the bug is gone or the code fixes itself.
Delete the application source. Delete any marks the application ever existed. Pretend that you never created the program in the first place.
Run. Run as fast as you can.
If possible pretend that you are the company's answering machine. "You have reached Acme LTD, we are sorry but all the support lines are busy. Please call back in 12 hours".
Answer that you are sorry but the line is lousy and you did not hear the last sentence. Blib, zzp, blip. "Could you please call us back tomorrow, or when the lines are fixed?".
Answer that you are sorry but the support team is on holidays and that they will be back in no time, in 3 months.
Answer "I do not care, leave me alone, its Friday. You asked for the application now learn to live with it".
No Go Doings
After you have reproduced the steps and actually found the bug:
Introduce new, more severe bugs. The bug from the phone call will look like child's play. When this new bug is found, introduce another one. Just keep adding more bugs.
Ignore the bug. Just continue adding extra functionality to the application. Maybe users will forget and never again run into it.
Restart your development environment. If that does not help restart Windows. If that does not help restart Windows again.
Locate the line of the source code that is responsible for the bug (note: this requires lots of your valuable time). Then do one of the following (or all):
Delete the function containing the line of code that produces the bug. If you remove the cause - the consequence (bug) will go away. If, for example, the result of the function was a Boolean value, just make sure that sometimes false is returned and sometimes true is returned for the function result.
Turn your head away from the monitor. Pretend that you are dead. Maybe it will go away.
Turn your head away from the monitor. Pretend that you are dead. Try to scare the bug by quickly looking into the source code saying "bu". Repeat until the bug is gone or the code fixes itself.
Delete the application source. Delete any marks the application ever existed. Pretend that you never created the program in the first place.
Run. Run as fast as you can.
Sunday, September 6, 2009
Search your HTML documentation with HelpNDoc 2.2

HelpNDoc 2.2 introduces a custom made JavaScript search engine to power the client-side searching functionality of the HTML generated documentation. This means that, without any complicated server-side technology, users will be able to search your HTML documentation with ease and speed.
PDF Generation is now more robust and the external files functionality has been totally rewritten to better handle HTML and Word documentation import. It is now easier than ever to include external files in topics.
PDF Generation is now more robust and the external files functionality has been totally rewritten to better handle HTML and Word documentation import. It is now easier than ever to include external files in topics.
Delphi 2010 migration was a beeze; samples/slides will be uploaded soon
This week, I found some time do migrate all the sample projects to the release versions of Delphi Win32 2010 and Delphi Prism 2010.
Delphi Win32 2010 works like a charm: it is much faster and has a much smaller footprint than any other Galileo based IDE.
In fact, it feels almost as fast as the pre-Galileo based IDE’s.
With the added benefit that all the new features make me much more productive, not the least because it has not yet crashed on me this week once.
Crashing has been a frequent thing on me since Delphi 4 (maybe I should not even mention that number ), for most IDE’s at least a couple of times a week, so this is good.
Delphi Prism 2010 works really nice too, it is rock solid, and the language as some great features not found in other .NET languages.
But it still needs a tiny bit more polishing on the Visual Studio IDE Integration part.
There are a few things not as smoothly integrated as I’m used to in C# and VB .NET (for instance when adding assembly references; C# and VB.NET allow you to do that from multiple places in the IDE; Delphi Prism from only one).
I know it is nitpicking (the same holds for the Team Foundation System integration in the Visual Studio IDE: ever tried to add files or folders? There is only one icon that allows you to do it. Ever tried to move files or folders around? No way you can drag & drop, in fact you can move only 1 file or folder at a time, and then the folder tree leaves you at the target).
The Embarcadero folks have worked hard on developer productivity in the Delphi Win32 2010 IDE.
(Did I mention the F6 key? It is an awesome way of directly jumping into configuration dialogs a zillion levels deep.
Did I mention the Ctrl-D key? It instantly reformats your source code to your formatting settings).
So maybe it is now time to put some of that effort into the Prism side as well.
Delphi Win32 2010 works like a charm: it is much faster and has a much smaller footprint than any other Galileo based IDE.
In fact, it feels almost as fast as the pre-Galileo based IDE’s.
With the added benefit that all the new features make me much more productive, not the least because it has not yet crashed on me this week once.
Crashing has been a frequent thing on me since Delphi 4 (maybe I should not even mention that number ), for most IDE’s at least a couple of times a week, so this is good.
Delphi Prism 2010 works really nice too, it is rock solid, and the language as some great features not found in other .NET languages.
But it still needs a tiny bit more polishing on the Visual Studio IDE Integration part.
There are a few things not as smoothly integrated as I’m used to in C# and VB .NET (for instance when adding assembly references; C# and VB.NET allow you to do that from multiple places in the IDE; Delphi Prism from only one).
I know it is nitpicking (the same holds for the Team Foundation System integration in the Visual Studio IDE: ever tried to add files or folders? There is only one icon that allows you to do it. Ever tried to move files or folders around? No way you can drag & drop, in fact you can move only 1 file or folder at a time, and then the folder tree leaves you at the target).
The Embarcadero folks have worked hard on developer productivity in the Delphi Win32 2010 IDE.
(Did I mention the F6 key? It is an awesome way of directly jumping into configuration dialogs a zillion levels deep.
Did I mention the Ctrl-D key? It instantly reformats your source code to your formatting settings).
So maybe it is now time to put some of that effort into the Prism side as well.
PDFtoolkit VCL v3.3
Gnostice PDFtoolkit is a comprehensive and versatile PDF component suite for Delphi™ and C++Builder®. PDFtoolkit VCL components come with hundreds of functions and properties that put immense power in the hands of the developer. PDFtoolkit hides the complexity of the PDF format and allows developers to easily create applications that can edit, enhance, secure, merge, split, view, digitally sign, and print PDF documents and process PDF forms. PDFtoolkit can extract text, export to images, and also add digital signatures.
PDFtoolkit does not require PDF software such as Adobe PDF library, Adobe Acrobat Professional, Adobe PDF Reader or GhostScript.
Note: PDFtoolkit works on existing documents. For creating new PDF documents in Delphi or C++Builder, you can use eDocEngine VCL. For other platforms, we have PDFOne .NET and PDFOne Java, which can create PDF documents from scratch as well as modify existing PDF documents.
PDFtoolkit does not require PDF software such as Adobe PDF library, Adobe Acrobat Professional, Adobe PDF Reader or GhostScript.
Note: PDFtoolkit works on existing documents. For creating new PDF documents in Delphi or C++Builder, you can use eDocEngine VCL. For other platforms, we have PDFOne .NET and PDFOne Java, which can create PDF documents from scratch as well as modify existing PDF documents.
Subscribe to:
Posts (Atom)