Jump to content

Vincent Gsell

  • Content Count

  • Joined

  • Last visited

Community Reputation

5 Neutral

Technical Information

  • Delphi-Version
    Delphi 11 Alexandria

Recent Profile Visitors

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

  1. Vincent Gsell

    Is it Omni question ?

    Even is heap is captured, object life time is not guaranted. i.e. : Your Exception object (E) is (certainly) no longer available when Proc in queue is running. Put E.Message in a string just before TThread.Queue Hint : CoInitialize... Try ... Finally CoUninitialize end; would be cooler here !
  2. Vincent Gsell

    ANN: Skia4Delphi v3.4.0

    Hi, On my side that it works nice under ubuntu 20.04TLS. (on a VM !) - I remove completely older version of skia (I had trouble on linux side (different than yours @Serge_G - lib load issue - But origin is on my side, I make mess 😉)), -> I just done the update via getit in 3.40, and Skia4Delphi demo app work nice ! @vfbb : very very nice work !
  3. ah ! if you get the joke, you're near to be a dev, sorry to hear that :)))) - The link correction is ok, and I was able to download it and have a (very) quick look: - the program is very tiny, and handles mostly the user interface. - As I see it (but short study, I may be wrong), the core of the program build a ".bat" file by adding command lines (from the UI data), and then executes it. (with argyll external binaries) - The program has (a lot of) dependencies throught commercial components. (TadvSmoothpanel (TMS software), TimageEnVie (ImageEn), TpLsController (Precision Language Suite) - Delphi (With an "I" not an "Y" !) is a commercial product, yes. But you have delphi Community Edition, which is quite complete and can be used for non commercial product for free. https://www.embarcadero.com/fr/products/delphi/starter/free-download Here, your very first problem is commercial components : For an OpenSource product, It is quite limitating. Very sorry for the delphi world, but as I see it, if "multilingual" stuff and "UI" stuff is not important for you, yes, it can be rewrite in python :)))) ---> Delphi has been used here to give to the product a cool UI, imho. - Github is a SCM. (A very tiny and discreet one) 😄 As I said, I have no personal time for that, but put it on a SCM could help, or, perhaps, directly on the business interest area (print, photography and so on) where a casual dev could handle it, ihmo)
  4. :))) Hugo : I like photography, but I don't have too much time too, but the project looks interesting !! Note: on the website you provided, the sources are not downloadable (Broken link) I also allow myself to try to "translate the joke" of Frost to help you, Hugo (As I understand, your are not developer) : - Python is a language that mainly calls libraries, written in languages like c, c++, pascal (or any other archetypal language) - Python therefore allows easy access to an underlying complexity. *But*, this complexity is hidden in libraries. No magic. - So, in your case, rewriting in python what your program does is total nonsense : It would it be 1000 times slower, it wouldn't be necessarily simpler, and it would be as verbose as it is now. And many times more weak, technically/support speaking. Ultimately, you would have to make a library of the "business" points of your program, then, it'll allow an "easy" access with python. That would make sense. But that's up for discussion, and it more a strategic question. That said, in your case, I would rather advise to begin to put your project on github (or other), in order to potentially interest other devs? cheers, and good luck for this nice project.
  5. Vincent Gsell

    Python code is running in main thread (on standard) ?

    Hello Pi4D is great! (Here is a "just in time" webinar ;)) IMHO, the use of threads is not straightforward with python. (in python alone, it's already not great, that said ;)) there are demos with thread management in the Pi4D subdirectories. Please, study it : for your issue, it will help. That said, here is my experience in python threading scenarios applied in production: - Use only 1 pythonEngine. - Simple Thread: Use the provided TPythonThread class. If we use only 1 thread so as not to "block the GUI" (as you seem to want to do), it works fine. Be careful, if you want to use the IO components, you *must not* set PythonEngine.ThreadMode to newInterpreter. - NewInterpreter disables IO (see PythonExecute) - In all case, An "AllowThreading" directive must be called before and after using thread. (see demo) - In multithreading (more than 2 threads), it is imperative to set PythonEngine.ThreadMode to newInterpreter (at least, according to my unit tests). --> Consequence: no more IO. We have to manage differently via the scripts - In Massif mutlithread : Under linux, as part of a cloud server running python services, I use Python by running a command line run and getting the standard output. This saves resources but we no longer have the advantages of handling scripts via P4D at all. So I adapt my scripts. Hope this helps!
  6. Hi ! On my side, I have 2 pro use case (delphi and FPC) where we changed standart memory manager : First, I'm fully agreed with David Hefferman, we have not succeded to spot "the" memory manager which spot all our need. -> I proclamed myself "basic user" on this subject, I plug, and launch test, and I took the best thanks memory/speed/context meters. :) - First case , where we used FastMM4 in a customized bus oriented server : (GridServer + custom synapse based socketing) work very well. (used preliminary for memory counsumption barrier) - Second case, in a raytracer-like image generator, where we targeted best thread usage with memory sharing : We are using currently scalemm2 on backend intel based server (and nothing on arm embeded based - (side question : is there some memory manager perform well on linux/arm under FPC ?). On the first use case, on FastMM4/FastMM5 usage, I have a slight better result on FastMM5. I'll dig :) On the second one, Test results give to ScaleMM2 to keep its avantage (Average of 35% more speed than FastMM5 - again, no tunning) Note that, this result is the same with FastMM4) @Pierre le Riche If you are interested to get some test code for this "graphics" test, I'll be happy to cooperate. Here it is, in all case *thank you a lot* Pierre, for your *amazing work* (and @Günther Schoch's company for sponsoring !): FastMM5 is cool and work well as is, no more really need to tune compile side, (this is cool), and the overall compatibility seems to be nice. regards, Vincent
  7. But if you ever contact the author, is it not better to ask a dll which wrap directly the data acqusition mecanism ? (if it is a cpp solution...) In fact, I had done such things, in order to get Panda3D "PBR" offscreen rendering image, and got pretty good result with sending data via UDP by 64k chunk, (App "from" was Python).
  8. Vincent Gsell

    DIBControls by Droopy Eyes Software

    Was very good comps ! I remember cDib.pas was excelent. :) Kudos Mr Morris :) Funny things is I tryed to recompile it for fun a couple of month ago, and it compile with only a few compilations directive and pchar ajustement under 10.3.2, but there are some unicode stuff needs to be upgrade under the tree :) So, It compiles, Install, but do not works :) I saw there are some animation compo that I did not see on 2K's times : I missed something. :) When working on PXL compos wrapper, I always had in mind DIBControl, how it was fast and smooth !
  9. Joining Lars's solution : Queue are cool, and the polling solution offer many avantage compare to syncho stuff, as you mention it. I usually stand on a Bus for intercommunication thread in case of dedicated taks thread resident and "service" oriented, as you describte. https://github.com/VincentGsell/GS.Bus
  10. Vincent Gsell

    Playing multiple wave files simultaneously

    Hi, Playing dynamicaly sounds on parallel channel is not easy : You have to deal with low level media implementation. I used BASS (https://www.un4seen.com/) for a kiosk app demo : it is free for non commercial use : Delphi exemple are provided and mixing are perfect : It is the lightweightest solution that I known for excelent quality. IT match delphi (Win) and FPC for Win, Nix, and OsX. As suggested by David, Mitov's AudioLab is, AFAIK, free for non cormercial use too, and match more target (FMX one) but I do not try it.