Jump to content

Lars Fosdal

Administrators
  • Content Count

    3335
  • Joined

  • Last visited

  • Days Won

    110

Everything posted by Lars Fosdal

  1. Lars Fosdal

    XML File - I need a schema for this file

    From https://www.freeformatter.com/xsd-generator.html - "Salami Slice" design Does this look ok? <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="title"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="lang" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="content"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="lang" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="items"> <xs:complexType> <xs:sequence> <xs:element ref="title"/> <xs:element ref="content"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="name" type="xs:string"/> <xs:element name="posts"> <xs:complexType> <xs:sequence> <xs:element ref="items" maxOccurs="unbounded" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="author"> <xs:complexType> <xs:sequence> <xs:element ref="name"/> <xs:element ref="posts"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="authors"> <xs:complexType> <xs:sequence> <xs:element ref="author"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
  2. Lars Fosdal

    Exception logging/reporting on MacOS?

    do not support ARM64. I also pointed out "bare bones stack trace". The two mentioned offer so much more functionality for those that need it. I wonder how many people that don't use such tools as they don't want to take the cost? But this still is a purely academical discussion. That said, they already have the code to unwind the stack in the debugger, which they need to maintain, so the step is not that huge.
  3. Lars Fosdal

    How to debug a Not Responding program element

    Pausing the app in the debugger and inspecting each thread might also offer clues. In my experience, such hangs are typically caused by - forgetting to call an inherited method - deadlock on a resouce - loop that has exit conditions that are never met and in rare cases, slow recursions with low stack impact
  4. Lars Fosdal

    Exception logging/reporting on MacOS?

    Practical - as in practical for the users of their products, i.e. us.
  5. When you find a problem with RAD Studio, make sure to create a report in https://qp.embarcadero.com/ which has replaced the former https://quality.embarcadero.com See https://blogs.embarcadero.com/the-new-quality-portal-is-live-here-are-the-details/ for clues on how to use the new reporting platform. And - please describe the problem properly! What you are trying to do The actual result you got The result you expected Most important: How to reproduce the problem - either as a detailed step by step description - or as a small, self-contained, compilable example project - or both of the above Better reports = better chance of getting stuff fixed.
  6. Lars Fosdal

    Exception logging/reporting on MacOS?

    Well, it would be practical to have a bare bones stack trace tool for all supported platforms.
  7. I sometimes use these where a method has been broken into sub-routines to create more readable code, but more often than not, I tend to pass arguments to these sub-routines as parameters.
  8. Lars Fosdal

    Exception logging/reporting on MacOS?

    Doesn't mention architecture, though - Intel vs ARM.
  9. Lars Fosdal

    TFDQuery BindVisually to TStringGrid

    It is not too complex to write the classes required to handle this, and decide how to orientate rows vs columns. I did that for TMS TAdvStringGrid, where I first collect the data into a matrix (by column, then by row), then stuff the content into the grid in the orientation I prefer, automatically setting up the grid props, handling rows, cols, width sizing as well as titles, etc. The matrix can be filled from a database query, or from a list of objects, or by code. I wish I had time to do a rewrite for TStringGrid, as the lib has too much proprietary code to share as is.
  10. Lars Fosdal

    Slow rendering with SKIA on Windows

    S = GlobalUseSkia V = GlobalUseVulcan GlobalUseSkiaRasterWhenAvailable = False HW: Lenovo P16 Name NVIDIA RTX A4500 Laptop GPU PNP Device ID PCI\VEN_10DE&DEV_24BA&SUBSYS_22DB17AA&REV_A1\4&35D2CA85&0&0008 Adapter Type NVIDIA RTX A4500 Laptop GPU, NVIDIA compatible Adapter Description NVIDIA RTX A4500 Laptop GPU Name Intel(R) UHD Graphics PNP Device ID PCI\VEN_8086&DEV_4688&SUBSYS_22FB17AA&REV_0C\3&11583659&0&10 Adapter Type Intel(R) UHD Graphics Family, Intel Corporation compatible Adapter Description Intel(R) UHD Graphics
  11. You should report it. Remember to include screen resolution, DPI, scaling, etc. Also mention WHEN it crashes on drag. As soon as it is starting to appear on the second screen, or fully on second screen, or only at mouse release. I don't use split screen on a second display as I have a huge 40" display.
  12. Lars Fosdal

    JSON feed, replacement form RSS/Atom

    Depends on the Social medium 🙂 https://mastodon.social/@LarsFosdal.rss
  13. Lars Fosdal

    JSON feed, replacement form RSS/Atom

    Quite a few sites still support RSS. Even those that don't announce their support, can have a living www.site.com/rss URL. One of the enemies of RSS, are Paywalls.
  14. Lars Fosdal

    hourglass and freezing problem with Firedac

    @saeedbay Ref MARS - Don't explicitly set it to 'Yes'. Leave it to the driver default. // Multiple Active Result Sets http://msdn.microsoft.com/en-us/library/ms131686.aspx if DisableMARS then Params.Values['MARS'] := 'No'; Do you use threads? Do you call CoInitialize/CoUninitialize per thread? Do you exec your queries in the same thread as you create them? Do you reuse queries? Do you make sure to reuse them only in the thread they were created? Do you reuse the queries that are already in use? - Don't. Do you only do reads with the query? - Test if Query.FetchOptions.Unidirectional := True; gives you more speed. Is the form created in the .dpr? Don't do that. procedure TSomeParent.ShowTheForm; begin var form := TYourForm.Create; // feed it with values if needed try if form.ShowModal = mrOK then ; // deal with the results if needed finally form.free; end end; If you want to have only one instance of the form at a time, deal with that, f.x. with critical sections or similar. Do you use MadExcept or EurekaLog or similar? If not, you should - it really helps for pinpointing issues
  15. Lars Fosdal

    Slow rendering with SKIA on Windows

    The more details you provide, the more likely it is that someone with Skia experience may be able to help. Ping @vfbb
  16. Lars Fosdal

    hourglass and freezing problem with Firedac

    Capture your query and run it in SSMS to get the execution plan. Perhaps you can improve performance with indexes.
  17. Lars Fosdal

    Slow rendering with SKIA on Windows

    Can you create a small app that demonstrates the problem and that you can share?
  18. Lars Fosdal

    Memory not freed in Linux but freed in Windows

    Awesome!
  19. Lars Fosdal

    Memory not freed in Linux but freed in Windows

    EmptyWorkingSet discussion moved to on request from @DelphiUdIT
  20. Lars Fosdal

    Slow rendering with SKIA on Windows

    What kind of graphics hardware are you running on?
  21. Lars Fosdal

    Memory not freed in Linux but freed in Windows

    @michel.seicon In theory, it could be related to Ref. https://stackoverflow.com/questions/48651432/glibc-application-holding-onto-unused-memory-until-just-before-exit Delphi memory manager on Linux wraps malloc, so the question then becomes - is it possible to invoke malloc_trim from Delphi for Linux? I suggest you clean up the test program to run correctly, and report it at https://qp.embarcadero.com with a proper description of the differences in behavior. That way we might get some information from EMBT.
  22. Lars Fosdal

    hourglass and freezing problem with Firedac

    It is compatible with all MS SQL servers. Currently using the same FireDAC integration with 2008, 2012, 2016,2017 and 2019. How do you parameterize your connection? Have you double checked that your query doesn't pull back a massive amount of data? Check the FireDAC Monitor to see if it offers any clues. Which driver are you using? I recommend using the ODBC drivers. class function TPSDFireDatabasePoolMSSQL.FindBestDriver(const Link: TFDPhysMSSQLDriverLink): String; const // Constants copied from implementation section of FireDAC.Phys.MSSQL C_SQL_SERVER = 'SQL Server'; // DO NOT TRANSLATE C_2019_ODBC = 'ODBC DRIVER 19 FOR SQL SERVER'; // DO NOT TRANSLATE C_2018_ODBC = 'ODBC DRIVER 18 FOR SQL SERVER'; // DO NOT TRANSLATE C_2017_ODBC = 'ODBC DRIVER 17 FOR SQL SERVER'; // DO NOT TRANSLATE C_2016_ODBC = 'ODBC DRIVER 13 FOR SQL SERVER'; // DO NOT TRANSLATE C_2012_ODBC = 'ODBC DRIVER 11 FOR SQL SERVER'; // DO NOT TRANSLATE {$IFDEF POSIX} C_FreeTDS = 'FreeTDS'; // DO NOT TRANSLATE {$ENDIF} {$IFDEF MSWINDOWS} C_2012_NC = 'SQL SERVER NATIVE CLIENT 11.0'; // DO NOT TRANSLATE {$ENDIF} var DriverList : TStringList; WantedList : TArray<String>; Driver: string; begin Result := ''; // Blank = Default WantedList := {$IFDEF MSWINDOWS} {$IFDEF SQLNative} [C_2012_NC, C_2017_ODBC, C_2016_ODBC, C_2012_ODBC] {$ELSE} [C_2018_ODBC, C_2017_ODBC, C_2016_ODBC, C_2012_NC, C_2012_ODBC] {$ENDIF} {$ENDIF} {$IFDEF POSIX} [C_2018_ODBC, C_2017_ODBC, C_2016_ODBC, C_2012_ODBC, C_FreeTDS] {$ENDIF}; DriverList := TStringList.Create; try Link.GetDrivers(DriverList); DebugOut('Available SQL drivers'); // DO NOT TRANSLATE for Driver in DriverList do DebugOut(' "' + Driver + '"'); for var Wanted in WantedList do for Driver in DriverList do begin if CompareText(Wanted , Driver) = 0 then begin DebugOut('Selected driver: "' + Driver + '"'); // DO NOT TRANSLATE BestDriver := Driver; Exit(Driver); end; end; finally DriverList.Free; end; end;
  23. Lars Fosdal

    Memory not freed in Linux but freed in Windows

    It was Eurekalog. 32-bit 64-bit Lenovo P16 Processor 12th Gen Intel(R) Core(TM) i7-12850HX, 2100 Mhz, 16 Core(s), 24 Logical Processor(s)
  24. Lars Fosdal

    Memory not freed in Linux but freed in Windows

    That is weird! Maybe it is EurekaLog?
Ă—