Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 03/21/23 in all areas

  1. Lars Fosdal

    [Very unsure] Indy vs sgcIndy

    Open source without the source... not sure what I think about that - particularly when it is based on another open source project.
  2. Stefan Glienke

    [Very unsure] Indy vs sgcIndy

    You might not like it but it's according to the Licenses. Open source does not mean that any modification automatically has to be open and free - that would be the case if choosing MPL.
  3. That is not needed when the dcu folder is configuration and platform specific using something like $(Platform)\$(Config). That way the existing dcu files in that folder are compiled with the last settings for that platform and configuration. If working with several projects it also helps to have separate dcu folders for each. Some use $(SanitizedProjectName) for that. With this approach I have no problems switching platforms, configurations or projects. I very rarely make changes to the directives in a project configuration. If that turns out to be necessary I'd rather add another (child-)configuration with separate dcu folders. BTW, avoiding circular unit dependencies gives a significant performance boost for Code Insight.
  4. Maybe because they did not want to look for the problem description within an entire novel? https://en.wikipedia.org/wiki/XY_problem - addressing that is better than giving a solution to what has been asked. Granted the structure and the goal of SO are not well suited for that at times. ChatGPT is like a device that gives you fish whenever you need some but it won't teach you to fish. This leads to the dilemma I wrote about before: maybe it will be the future where all we know is how to ask good questions to our AI that solves the issues for us that we are not able to solve ourselves anymore.
  5. Again, I think most of you are missing the point. In any workplace scenario, most code written by inexperienced programmers is checked by more experienced programmers. Also, just because the code passes unit tests doesn't mean it's "accepetable" code, although I'm sure there are organiations that would disagree with that. The point is ... ChatGPT seems to generate code somewhat on par with newbie programmers. There's a LOT of useful code it generates, and some that's wrong. It may not compile right off the bat, but that doesn't mean it's 100% useless. I can't speak for anybody else here, but while I know that there are lots of eyeballs on code posted to SO, most of it is short and STILL isn't something that can simply be copy-and-pasted into anything without spending time reviewing it and making it "fit in" with your existing code. That seems to be the "ideal" that everybody is holding up and saying, "Well, when it's as good at programming as I am, then I'll consider it worthwhile." I'd say, well bubba ... when it's THAT good, you and I will be out of work. There are plenty of things on SO where nobody offered up good solutions that ChatGPT can at least help with. Looking for stuff on SO is like going on a Treasure Hunt, and what you get is often no better than what you can get directly from ChatGPT. The thing is, ChatGPT is not just FASTER, but it will invariably get better over time. I've hired supposedly "experienced" devs over the years to write relatively small and highly-specific code units for me, and the quality of their code they sent me was mostly pretty low. Most, I'm assuming, couldn't even solve the problem I gave them b/c they just disappeared after a while. There's also a problem I encounter a lot on SO (among other places) where I'll ask for a solution to X and end up with a bunch of suggestions to redefine my problem to solve Y instead because they don't understand X. At least ChatGPT answers the question without trying to redefine things! And know-it-alls on SO frequently downvote QUESTIONS they don't like and argue about whether they should even be asked. In fact, I find that MOST Delphi questions submitted lately all have negative upvotes ON THE QUESTION ITSELF. This just screams out, "Don't post stupid questions here!" ChatGPT is far less judgmental in that respect, which I think is a Good Thing.
  6. v5.0.0 Added GPU backend render to TSkAnimatedPaintBox in Vcl; #108 Controls Rewritten Canvas, addressing all pending issues and further enhancing performance; #201 #40 FMX Render Improved performance of TSkAnimatedImage in Vcl; Controls Improved anti-aliasing through multi-sampling; FMX Render Improved library reliability through more unit tests; Tests Fixed numerous minor issues and improved the wrapper as well as the C++ code; API Fixed compilation to Android on RAD Studio Rio; #206 API Fixed issues related to transparency and addressed problems with OpenGL in fullscreen mode on Windows #127; FMX Render Fixed deployment for custom build config; #208 Library Fixed custom font in TSkAnimatedImage; #203 Controls Fixed support for Android 5 and Android 6 broken in last version; Library Deprecated SkParticles since Skia stopped maintaining it at Milestone 112; API Minor improvements. Skia version: 107.2.0 Compatibility break We changed very specific APIs, which are unlikely to generate incompatibilities for developers, but a new major was necessary because we faithfully follow the semantic version. Github: github.com/skia4delphi/skia4delphi Website: skia4delphi.org
  7. Dalija Prasnikar

    VCL and VCL styles - bugs and future

    To avoid flooding another thread with unrelated posts about VCL quality and bugs, I have opened this topic for discussion about VCL in general and VCL Styles. First, I would like to respond to comment made by @Attila Kovacs VCL is not abandoned, not even close. Maybe it is not receiving too many new features as people would hope so, but it has more to do with its maturity than anything else. FMX (is) was in frenzy development cycle, only because it didn't have the needed features VCL already had, and it still does not have all. So it may have seemed that FMX is getting all the love and attention, but that was not the case. Many new Windows related features introduced since FMX has come to play, are still VCL only. Keep in mind that IDE is based on VCL, and I don't see that changing in foreseeable future. VCL is evolving and it will continue to evolve. It is not that FMX is new better, improved framework mean to replace VCL for all purposes, it is framework with completely different architecture and it covers different use cases. While some functionality certainly overlaps, and there are (Windows only) applications where both VCL and FMX can be chosen, there are also applications where VCL is far better (and sometimes, even only viable) choice. VCL Styles are buggy, they have been buggy since they were introduced in XE2. But, they are now part of the IDE. That means two things. First, IDE is now suffering from some bugs, but it also means that those bugs will get fixed sooner rather than later. Unfortunately, not all bugs can be solved overnight, and the more specific, reproducible bug reports there are, the higher are chances that those bugs will get a fix. If you have any filed VCL bug reports you might want to share, please do so.
  8. Stefan Glienke

    Spring4d compile error on Delphi CE 10.4.2

    CE does not have working command line compilers afaik so you have to manually install: - open <your-spring4d-dir>\Packages\Delphi10Sydney\Spring4D.groupproj - build the project group (unit tests might not compile as they require TestInsight - does not matter to you) - add <your-spring4d-dir>\Library\Delphi10Sydney\<platform>\<config> directory to the library path (Tools->Options... then Language->Delphi->Library (select the platform at the top and then "..." next to the Library path
  9. programmerdelphi2k

    Spring4d compile error on Delphi CE 10.4.2

    to manuall install, have you updated your "...Delphi\Library\Library Path" (indicating all folders used to find .pas or .dcu source) on TOOL menu, for example? Library Path = to compiler Browsing Path = to code-editor Debug Path = to debug :_)
  10. Die Holländer

    Try to create Docker image with latest PAServer but on Ubuntu 18

    The error message went away when I converted the paserver_docker.sh file from Windows file to Unix file. (UNIX EOL issue) That functionality is built into Notepad++. From the "Edit" menu, select "EOL Conversion" -> "UNIX/OSX Format". Now I got other errors but now I can go on...
  11. Anders Melander

    bitmap is not displayed

    Don't expect people to help you if you don't want to make an effort yourself. You need to make it as easy as possible for us to help you. Generally, when describing a problem there are 4 things you need to state: What are you trying to do (high-level description)? E.g. I'm trying to display a bitmap How are you doing it (the steps)? Clean up your code. Post the whole method/function and use the code tag (the </> button). What is the expected result? E.g. The bitmap is drawn in the window What is the actual/observed result? E.g. Nothing is drawn in the window You don't need to write it as a list but unless we have all this information we will have to guess and that just slows things down. See also: https://stackoverflow.com/help/how-to-ask
  12. Lars Fosdal

    Type inference question

    FFS... I need to log off. Scrolling further up in the source code, I found... type Use<T> = record public class function When(const aBool: Boolean; const WhenTrue: T; const WhenFalse: T): T; static; end; { Use<T> } class function Use<T>.When(const aBool: Boolean; const WhenTrue, WhenFalse: T): T; begin if aBool then Result := WhenTrue else Result := WhenFalse end;
  13. In fact they are: type TStringArr = array of string; const cStringArr: TStringArr = ['Hello', 'World']; Just not with the record element type, because the record constants are not accepted as true constants.
  14. Lars Fosdal

    Type inference question

    The code compiles without a warning - also for that last line, @Stefan Glienke. In fact, even b := Use.When<Byte>(Cond, 1, 300); compiles. That is a bit weird, I think. Edit: Note to self - make sure you compile the project that contains the file you are fiddling with.
  15. When I switch from 64 to 32 I use the syntax check to (alt-p-s) Before the compile. The issue in a package. Pat
  16. Get another developer to clone/copy one of your projects and try working on it. Have them copy / duplicate NOTHING of your system/network/software/development configuration. Something sounds off with your system/configuration/network/etc. Long IDE freezes can be as simple as dead paths being searched - Windows can take a long time to timeout checking a network drive where the other side doesn't respond at all for example and Delphi tends to re-search the same paths often making it take even longer. The worst would be an intermittently accessible path / storage location which would cause all sorts of hard to discern problems. Even bad sleep/resume of a storage device can cause problems or delays. For all the internal errors - if they happen reliably you might be able to narrow it down to small test case(s) - they usually do get fixed if there is a reliable way to reproduce both so they can see the error and test a fix.
  17. I've been doing some simple testing. Delphi 11.3 2000000 TStringList.AddObject in 141.17ms (14,167,115.00/s) TStringList.Rehash in 1us TStringList.Clear in 47.36ms first TStringList.IndexOf in 7us 20000 TStringList.IndexOf in 8.35s (2,392.00/s) 2000000 TStringListHash.AddObject in 139ms (14,387,661.00/s) TStringListHash.Rehash in 0us TStringListHash.Clear in 46.22ms first TStringListHash.IndexOf in 275.24ms 20000 TStringListHash.IndexOf in 5.60ms (3,570,790.00/s) 2000000 TDictionary.AddObject in 788.58ms (2,536,188.00/s) TDictionary.Clear in 292.92ms 20000 TDictionary.IndexOf in 3.24ms (6,172,839.00/s) Spring4D's IDictionary 20000 IDictionary.Add in 3.38ms (5,917,159.00/s) first IDictionary.TryGetValue in 1us 20000 IDictionary.TryGetValue in 753us (26,560,424.00/s) Use Spring?
  18. Because there isn't (at least not in the RTL) - ChatGPT is making that up (as so often).
  19. David Heffernan

    Delphi 11.3 is available now!

    It's entirely possible to have a compiler that is fast during development / debug builds, but takes more time to optimise for release builds. So much Stockholm Syndrome in Delphi-land!
  20. Remy Lebeau

    How to force update to label during a loop

    You don't necessarily need threading, you just need to return control to the main UI message loop periodically. For instance, break up your loop into chunks that you can trigger with TThread.ForceQueue() for each iteration, eg: procedure TMyForm.DoProcessing(i: Integer); begin Label1.Text := 'Step ' + IntToStr(i); Inc(i); if i <= 10 then TThread.ForceQueue(nil, procedure begin DoProcessing(i); end, 200) else TThread.ForceQueue(nil, AfterProcessing); end; procedure TMyForm.StartProcessing; begin DoProcessing(1); end; procedure TMyForm.AfterProcessing; begin ... end;
×