Jump to content

David Heffernan

Members
  • Content Count

    3668
  • Joined

  • Last visited

  • Days Won

    181

Everything posted by David Heffernan

  1. Much of the development I do is refactoring. Not for its own sake, but to enable a new development. Typically this means refactoring existing code, relying heavily on the testing of that code, so that the new development can be added easily. Often the bulk of the time is spent refactoring and then the new development is trivial. In other words, even when code is well factored, it often needs to be refactored. Also, its not at all the case that replacing standalone functions with classes always makes your code better. Don't be afraid to have standalone functions if that is the right design.
  2. David Heffernan

    TTimer equivalent with smaller interval

    Timers are event driven. You are suggesting polling. That's no good.
  3. Why is OTL overkill, and PPL is not?
  4. David Heffernan

    Spell Checker implementation?

    http://hunspell.github.io/
  5. Imagine how fast it would be if you wrote code that didn't stress the heap allocator. That's the real route to performance. Real world benchmarks are the only ones that matter.
  6. David Heffernan

    class designation question

    They all do different things. Rather than have us explain this, did you read the documentation? I don't think that item 3 is very widely used. However meta classes, item 2, is widely used. Classic example is the streaming framework. It is used when you need to instantiate a class whose identity is only known at runtime. When streaming properties the framework reads the class name, looks it up using RTTI and then uses meta classes to instantiate the instance if that dynamically determined type. Always seen with virtual constructors.
  7. Threadvar is implemented on top of TLS on Windows. How is lock free going to handle deallocations made from a different thread from that which allocated the memory? But hey, if you want to write this code, go for it.
  8. David Heffernan

    Messages for exceptions only for main thread?

    All UI happens from the UI thread. So if you want an exception from another thread to result in UI, you need to marshal it into the main thread. Having madExcept in your process is great. But there are a class of exceptions that you don't want to trouble the user with a bug report. I call these expected exceptions. You need to decide on a policy for those exceptions.
  9. David Heffernan

    Error when installing JCL from GetIt

    GetIt, I just don't get it. Surely you are better off pulling from the repo?
  10. David Heffernan

    What are your compiler settings for debug builds?

    This is one of the reasons why the cool cats don't use RTL collections
  11. David Heffernan

    How to make app with tabbed set of VNC windows

    Cross process window parenting relationships never end well. Don't try this. https://devblogs.microsoft.com/oldnewthing/20130412-00/?p=4683
  12. David Heffernan

    How to make app with tabbed set of VNC windows

    Cross process UI is fraught with complications. I wouldn't dream of trying to parent a window from one process into another process.
  13. David Heffernan

    What are your compiler settings for debug builds?

    People for sure would rather have an error message than incorrect results. You are just kidding yourself if you say otherwise. It's simple human denial. Suppressing errors will result in a program with more defects. We all know this to be true. And yet people still choose the path with more defects. What happens when you access an array out of bounds with range checking disabled? Perhaps the memory is valid and so the program continues running. But now it's behaviour is unpredictable. Often you will corrupt memory which leads to obscure errors later that you can't tie back to the original defect. Or quite often it's a straight AV which is hardly preferable to a range check error, since it isn't reproducible.
  14. David Heffernan

    What are your compiler settings for debug builds?

    Yes, but since you don't know that the error will be inconsequential, it's kinda pointless looking at the impact.
  15. David Heffernan

    What are your compiler settings for debug builds?

    Better hope that the incorrect information that you show to the user is inconsequential.
  16. David Heffernan

    What are your compiler settings for debug builds?

    I'm amazed that you can guarantee that the error will be far away from the observer. How did you do that?
  17. David Heffernan

    What are your compiler settings for debug builds?

    No you wouldn't. Giving the user the wrong results is always worse than showing an error, even if the error is poorly worded.
  18. David Heffernan

    What are your compiler settings for debug builds?

    I agree with this. If it doesn't impact performance, then for sure include it in release builds. However, sometimes it really does. It does in my numerical code, but obviously that type of code is probably in the minority amongst Delphi code.
  19. David Heffernan

    Dynamic Test creation possible?

    You can change viewer. You don't need to change the test framework in order to use a different viewer.
  20. David Heffernan

    What are your compiler settings for debug builds?

    Unless performance is impacted
  21. David Heffernan

    What are your compiler settings for debug builds?

    Irrespective of what any poll says, opt off, range & overflow checks on is the correct thing to do
  22. I don't understand that.
  23. Certainly I'd do all the work to prepare the resource from the source file as a pre build step, properly automated. I'd question the choice to use compression. What is the point of that?
  24. David Heffernan

    Delphi on Windows 10 HOME 64-bit?

    No
×