Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/15/23 in Posts

  1. Jonah Jeleniewski

    SonarDelphi v1.0.0 released!

    We are pleased to announce the release of SonarDelphi v1.0.0. SonarDelphi is a free and open-source Delphi language plugin for the SonarQube code quality platform. GitHub: https://github.com/integrated-application-development/sonar-delphi Release: https://github.com/integrated-application-development/sonar-delphi/releases/tag/v1.0.0 Background If you're thinking "I've seen this before", you're probably right! SonarDelphi was originally open-sourced by Sabre Airline Solutions in 2012. It's bounced from maintainer to maintainer on GitHub (including Embarcadero). This project is a greatly improved version that has been actively developed (and extensively rewritten) by IntegraDev for the last 4 years. Features Powerful semantic analysis 120+ analysis rules Custom rules via templates or a programmatic java API Import NUnit test reports (compatible with DUnitX) Import test coverage reports (compatible with DelphiCodeCoverage) Feedback and contributions are welcome!
  2. This is fixed in Delphi 12.
  3. Kas Ob.

    Changes in the C++ Builder 12.0 editor

    Look at the bright side, Embarcadero Mail server is working, which is nice.
  4. Kas Ob.

    Delphi 11 & 12 LZMA Compression

    Your obj files are compiled with VS C RTL, aka Microsoft Visual C++ Run Time, remove that dependency then rebuild it, and you will get rid of that error.
  5. dummzeuch

    Error on Build of rev 4096 in D12.

    I have now moved building the .res files for icon.rc and the manifest to pre build scripts. Compiling from command line and the IDE and works on my computer with freshly checked out sources even in a directory containing a space character ("GExperts Test") for both, Delphi 11 and 12.
  6. Possibly related read: Allocation-Free Collections – grijjy blog JustAddCode/AllocationFreeCollections at master · grijjy/JustAddCode (github.com)
  7. David Heffernan

    Locking an Object

    It's a mutex. One thread at a time through protected blocks. Is it the right structure? Maybe. But using a mutex is only going to be useful if you do it right. Do you see the code that accesses FOperationsLoaded outside the mutex. What's your rationale there? Anyway it's kinda hard to analyse your code with it spread over loads of different posts.
  8. Anders Melander

    Delphi 11 & 12 LZMA Compression

    It's a private repository... and why don't you migrate it to 64-bit yourself?
  9. Anders Melander

    Delphi 11 & 12 LZMA Compression

    AFAIK the zlib library that TZipFile wraps does not support LZMA compression. If you google for "delphi lzma" there's plenty of other solutions.
  10. I don't use packages except those that exist by default compile time, so I haven't really seen it as a massive problem, but yes - any list that needs a scrollbar, probably also needs a filter.
  11. Stefan Glienke

    Spring4D dictionary and record values

    More features, better performance, fewer bugs (and if there are any not having to wait for the Delphi version that fixes them), less binary code bloat.
  12. David Heffernan

    Spring4D dictionary and record values

    waiting for @Stefan Glienke to show up and answer this
  13. Philip Ostle

    Delphi Registration

    Some News.. I chivvied Grey Matter along as I had not heard anything other than an acknowledgement, and informed them (as an aside) that I had been in contact with legal departments both governmental and private and had been advised that my first course of action should be to try and resolve it with the supplier (i.e. them). (Both of these statements are true, but not necessarily connected!!) I have to say that they were verging on excellent and said that they would sort it and get my registration count bumped up (but to wait a few days). I just tried and voila, re-registered and back in. I suppose that there is a lesson in this (apart from NEVER change the name of your computer) in that buying directly from Embarcadero gives you no protection or clout. As an individual you are just a name on a list and fair game for a maintenance scam. The supplying agent has far more influence. I don't know about the US, but in the UK, the seller is accountable for anything sold that is not 'of merchantable quality' and I would be entitled to redress, irrespective of whether they were just a third party. They are still liable (as is AMEX who I bought it through). The redress could have been in the form of a full refund, and probably would have been (I feel) if all else had failed. If I had gone down that road, I would have immediately bought Delphi again but now with an extra 12 months maintenance. Alternatively, Grey Matter could have simply given me a new licence (claiming back from Embarcadero I supose) and yea, 12 months maintenance again. In all of this painful experience, Embarcadero get 'nil point' and Grey Matter a good 8 (they would have got 10 if they had acted without the 'by the way' mention of legal action) Quite how Embarcadero think this will benefit them I can't fathom. It pisses off every independent developer, gives them (Embarcadero) a god awful name and can only result in them falling further and further back in the good product category. If this was introduced by someone in middle management who thought it was a good idea they should be sacked. If it was brought in by someone at a more senior level, they should resign. I don't know how much it was bumped up as I am too wary to try.
  14. David Heffernan

    Delphi Registration

    They must be breaking their own licence terms. They'd probably back down very quickly if threatened with legal action. When I faced this problem, reassigning a licence from a retired developer to a new hire, I had to use my personal contacts with the senior developer team to get it resolved. I don't feel great about having had to do this.
  15. angusj

    Delphi Registration

    If I understand this thread correctly, Embarcardero / Idera are insisting on an active subscription to validate a reinstallation of a time unlimited licensed product. If this is happening then I agree that it's unconscionable and the matter should be escalated to more senior staff. This sort of problem reinforces my perception that Delphi is fast approaching end of life.
  16. Dalija Prasnikar

    Delphi Registration

    They route license increase to Sales and Renewals, and of course, Sales will try to sell you a subscription, but AFAIK you don't have to purchase it and they will bump your license count. Still, this is confusing practice and sometimes you need to be persistent.
  17. David Schwartz

    thread-safe ways to call REST APIs in parallel

    I have no problem paying for libraries. I am aware that some come with better examples than others. I'm also aware that there are plenty of things in the Delphi help system that are completely undocumented, even though they have placeholder pages for them on the wiki or the help system. We all continue to pray that our steadily increasing annual "maintenance" fees will eventually be used to pay someone to fill in these gaps instead of just creating more. That IS what "maintenance" is all about, right? It's also annoying when there is documentation that only explains WHAT parameters are needed and leaves it to the reader to figure out HOW this mess of stuff is supposed to be used. I've found that to be fairly common with the different classes and whatnot involved with this particular effort. Why should one need to buy a 3rd-party library to figure out how to code something that Delphi has plenty of available mechanisms to work with, but they're just not documented anywhere? There are no examples shown in Delphi's help for TRESTRequest.ExecuteAsync for example, even though there are help pages there.
  18. David Schwartz

    thread-safe ways to call REST APIs in parallel

    I understand from the first reply that the three objects need to be created dynamically inside the task. That's fine. A different post about this general topic suggested a fork/join approach using a counter object to know when it's finished. That's fine, too, although it may be more complicated than I need. Another reply here pointed out ExecuteAsync which I had not noticed (although I looked for Async...something), and it has some very interesting properties that also suggest the fork/join approach might have a simpler solution with it. In particular, I like the options that the anonymous methods offer in conjunction with the parameters that say whether the code should run in the main form's thread or the current thread. But every other post here added a warning about this or that, and it got confusing with the Execute vs. ExecuteAsync. The entire discussion seems like it could have been reduced to one or two short code examples like the above, so thank you Dalija. (The whole discussion on fork/join has quite a bit of code in the referenced article, although it seems to me it shouldn't be that complicated. Be that as it may, adding the logic needed to perform the REST queries in the task shouldn't add very much complexity.) I looked on SO for examples as well. It's hard to search for help there (or anywhere) on obscure topics. The few I found had lots of comments back and forth debating this and that, and not much code. (I'd post something on SO, but it seems a lot of my questions get downvoted or locked for being "off-topic". They're Delphi questions -- I don't get what's "off-topic" about Delphi questions in a forum intended for Delphi questions. Now I get warnings from SO saying my account is close to being locked because of the "low-quality" of my questions. I used to have nearly 2000 points and 45 badges before something short-circuited and SO's support people denied there was a problem. All of that "bling" just disappeared. So I don't spend much time there any more. I'm also very hesitant to post any more questions. The last one I posted got lots of opinions, and no definitive answers.) OT: There have been times in my life when I worked with a team of other developers. For the past 12 years or so, I've been either the only Delphi dev or had a junior person working with me with only 3-5 years of experience. Also, I'm a fairly high-level abstract thinker and most of the folks I work with are heavily left-brained highly detail-oriented people who can't handle abstract discussions. They want concrete examples for everything, which I find challenging. My only resources for help have been this place, SO, and Google. I truly do appreciate all of the help that's available here, and it's mostly because I value the level of mastery everybody here has. I know I can be a PITA at times because I often have very clear pictures in my head of what I'm looking for, I just have trouble expressing things clearly. We programmers are often no better at describing things in our heads than our clients, eh? 🙂 Unfortuntely, my memory recall is getting a little flakey, and complex topics I used to have no problem dealing with seem to show up in my head with pieces missing. But I still do love the process of programming -- it has always been like playing word games to me, and it's something I can do for hours and hours and never really get tired of doing. I'm sure most of you can relate ... how many people can say that about the things they do to earn a living? We're blessed in that respect. I only have one compliaint about what we do: we spend way too much time describing and explaining, in text, what it is we're talking about. I mean ... that's all programming is at its core: we have an idea in our head, we conjur up a recipe in some arcane language (Delphi in this case) and we use that to make the computer sing, dance, and jump through hoops. If we want to see a circle on the screen, we describe a circle. If we want to launch a rocket, we describe all of the steps that all of the different parts need to accomplish that. As annoying as I find reverse-engineering code to understand what it's doing (since most code is undocumented and what's there is usually outdated), sometimes the answer to a question is better given as code (or pseudo-code) than words describing what code needs to be written. But overall, I wish there was a more abstract way of dealing with things other than, say, English words explaining what's needed in a translation.
×