Jump to content

Anders Melander

  • Content Count

  • Joined

  • Last visited

  • Days Won


Anders Melander last won the day on February 6

Anders Melander had the most liked content!

Community Reputation

168 Excellent

1 Follower

About Anders Melander

Technical Information

  • Delphi-Version
    Delphi 10.3 Rio

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Anders Melander

    Why upgrade?

    What breaking changes are those? At one of my clients we upgraded all projects (many millions LOC) directly from Delphi XE & XE2 (for 64-bit) to Delphi 10.2 with no significant effort. The worst part was the tasks you'll have to do anyway every time you migrate a project from one version of Delphi to another. If they had kept up to date all the way through, they would have had to pay maintenance on 20+ licenses to get the occasional new feature they didn't really need and they would have had to fix and work around all the new bugs they got as well.
  2. Anders Melander

    Why upgrade?

    Windows does a better job of making old applications behave well under high DPI than the VCL has so far managed. I would prefer to have the UI consistently scaled than having some parts support high DPI, some parts scaled and some messed up.
  3. Anders Melander

    Why upgrade?

    You must love the Windows Update policy in Windows 10.
  4. Anders Melander

    Why upgrade?

    Yes, we've had that discussion already. No thanks.
  5. Anders Melander

    pre-generic dictionary class

    Probably not, but either use Duplicates=dupIgnore or do the test manually. Don't do both.
  6. Anders Melander

    pre-generic dictionary class

    IMO it's not that clear what he needs. dupError is set which means that duplicates should cause an exception, but the code explicitly produce duplicates - and prevents them from being added. Anyhow, I don't think I have anything to contribute on the topic that a quick google search couldn't have provided in the first place.
  7. Anders Melander

    pre-generic dictionary class

    Here: Okay, but setting Sorted=True and then adding to the list will keep the list sorted; It's using binary search to find the insertion point so it's not that bad, but it might be better to add unsorted and then sort at the end. It depends on the dataset.
  8. Anders Melander

    Why upgrade?

    Tell them you agree. If the applications are in maintenance mode then I don't see any reason to upgrade, potentially introducing new problems with no benefit to the company or its customers. Keeping Delphi, and 3rd party libraries, up to date is a costly investment and unless a product is being actively developed that investment might not yield a sensible return. Whenever someone mentions the idea of a completely rewriting something from scratch I simply respond "Like Netscape?" https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ I've been through a couple of successful complete rewrites myself, but they were architectural rewrites that were done incrementally. We basically refactored everything one tiny thing at a time until we finally arrived at the destination, many years later. And we stayed with Delphi. An incremental rewrite isn't really possible when you're replacing the platform.
  9. I see. But I'm guessing the introduction of a lock, even if it's a spin lock, might influence the thread schedule. IMO an interlocked increment would have been better for the verification part.
  10. Is that change relevant to your patch? It's hard to compare the results when more than one factor has changed.
  11. Anders Melander

    pre-generic dictionary class

    It's a bit hard to see what exactly it is you're benchmarking with that code. Your first loop is supposedly meant to measure Add performance, but it also contains a Lookup. And after the first iteration of the outer loop it just produces duplicates, but then skips all those duplicates. Also your test is too synthetic. Use realistic data instead. I'm guessing your actual data isn't all possible three character strings with perfect distribution... And is sorting the stringlist after each insert really a realistic scenario? If you're really that interested in the performance of your dictionary I suggest you profile with real data instead of this guesswork.
  12. Anders Melander

    AddFontResource/Ex not working on some machines

    Have you tried installing the fonts manually on these machines?
  13. There was nothing in what I wrote that was directed at you personally but if I have offended you I apologize for that. I really do understand your POW and I agree with most of the problems you and others have, repeatedly, pointed to. What I object against is the one sided, two dimensional, demonization of Embarcadero. I too have been down the road of a disgruntled customer. I experienced a great misalignment between the needs of me and my company as a customer and the direction Embarcadero took with Delphi. There was also the whole Resource Editor debacle, which I won't go into here. We knew from experience that complaining about things didn't make any difference, so we decided to vote with our money. After Delphi XE we cancelled all maintenance contracts and recommended to our clients that they do the same. Personally I stopped participating in the community and I no longer released any open source stuff. Basically I took my ball and went home. That was 10 years ago. Around the time Delphi 10.2 was released I had finally cooled down. I had also come to the realization that the primary reason why I became a disgruntled customer in the first place was that my expectations were wrong. I had once seen Borland as "my friend" and I hadn't adjusted to the new reality of Delphi struggling to survive and stay relevant. I expected them to behave in a certain way and when they didn't I was disappointed. I not taking all the blame for that because they certainly tried to make us believe in the dream. I'm taking the blame for believing it.
  14. I don't like it either. Like everyone else I would love for every bug to be fixed yesterday, the compiler to produce better code, the VCL and RTL to support all the new shiny stuff and that my wife was 20 again. I'm assuming Embarcadero has the same wishes (Okay, maybe they don't care about my wife) but obviously their first priority is to make money. They're not in it for the Karma. I myself used to be very vocal in the field test newsgroups in my critique of the decisions made by the various owners of Delphi during the years, to the point that I was asked not to participate in the field tests. So it's not like I don't understand the frustration or the need to vent it. However I also know that I don't know all about why they make the decisions they do. If I were in their shoes I might make the exact same decisions. Of course they make mistakes. They make huge mistakes sometimes *cough* Delphi 8 *cough*. That is obvious to all. But it gets really tiresome to constantly read this whining about how bad Delphi is or how evil Embarcadero are. It's leading nowhere. Not a day goes by that I don't curse some part of Delphi to hell, but at the same time Delphi has payed for my house, my cars, my children's education and all my vacations. Anyway, this has nothing to do with hash tables. Sorry for hijacking the thread.
  15. If you're losing money using Delphi then you should find another tool. I'm assuming that was what you meant, but I have a hard time parsing what you wrote.