Jump to content

Brian Evans

Members
  • Content Count

    313
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Brian Evans


  1. Was usually available in the registered users download area as mentioned here  https://support.embarcadero.com/article/44082  which links to Delphi Registered User Downloads (embarcadero.com). After logging in it times out a couple times but eventually comes up for me (probably slow queries to a back end database that time out but work once the data has been read from disk already on subsequent attempts). 

     


  2. It works here without issue after fixing up the python library symbolic link in the PAServer-22.0 directory. Can debug including setting break points and stepping through a command line program targeted to a Ubuntu 22.10 Server.  Below are the commands I used to test on a fresh + updated Ubuntu 22.10 server install:
     

    # Ubuntu : run commands from home directory to get required pre-requisites and PAServer archive and unpack
    # do other apt update/upgrade etc before this
    sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 lldb
    wget https://altd.embarcadero.com/releases/studio/22.0/112/LinuxPAServer22.0.tar.gz
    tar -xvf LinuxPAServer22.0.tar.gz
    
    cd PAServer-22.0/lldb/lib
    # rename current symbolic link so we can add the correct one
    mv libpython3.so libpython3.so_
    # this depends on the current Linux distribution for where and what it is called - this one is for Ubuntu 22.10 Server:
    ln -s  /usr/lib/x86_64-linux-gnu/libpython3.10.so.1.0 libpython3.so
    

    Do see a quality central bug report for the error you are seeing however: [RSP-39793] Linux - unsupported DW_FORM value: 0x1f - Embarcadero Technologies

     

     


  3. If the code still makes sense to you years latter and you can follow it without difficulty then there should be no complaints.   

     

    Applying a rule or guideline too rigidly before the skill or knowledge to do so has been acquired often makes things worse. In your example learning how to use continue; or break; to control the flow of a for loop would be best but applying a no goto rule and using multiple cascading IF's around a large blocks of code could be worse than just using a goto

     

    The top hall of shame code I have ever seen was due to developers rigidly applying rules before the skill and knowledge to do so was acquired. It made the code more complex and a lot harder to follow to the point is was often easier to just re-write it from scratch. 

    • Like 4

  4. Examining the PDFs I see they store the image using different filters: DCTDecode (fastreport) vs FlateDecode (SynPdf). The first is basically JPEG (larger and often has color shifts in parts)  while the second is like ZIP (smaller since the sample is a very uniform image). 

     

    Are you comparing colors between PDFs or with the source image?


  5. Looks to use OpenCV which is a computer vision library for the marker detection task. The bulk of other code is for hooking everything together and providing a UI. Delphi doesn't have the level of support for OpenCV and things like it that Python does. Bindings, examples, discussions and the number developers doing the same thing or similar are all larger for Python. OpenCV itself is multi-platform.

     

    You can use OpenCV from Delphi but it is a LOT more work and probably an exercise in frustration to both get things working and develop a solution to a problem. Likely less effort overall to develop parts in Python to come  up with a solution so you can take advantage of it's ecosystem and then migrate that to Delphi if desired.


  6. You can right click a clear area and select "View as Text" and search there (to switch back right click and "View as Form"). The Object TreeView / Structure panel (title depends on Delphi version) visible usually to the left of the form when viewing as a form can be used to select a component when you know it's name and what it is connected to going up the tree. 


  7. When I did it a few years ago it had to be claimed and was good for a one year subscription which could only be claimed once. So more of an extended trial than an included product. After claiming I got a product key that could be used on the CDATA site to download various FireDAC drivers. The product key also shows up on my registered products page for Embarcadero.com.  

     

    Special Offers and Promotions (codegear.com) - RAD Studio, Delphi or C++Builder Architect or Enterprise license holders with current Update Subscription - Claim your Enterprise Connectors (CData FireDAC Professional) Subscription key here

     

    The old announcement: Enterprise Connectors now part of RAD Studio Enterprise & Architect Edition (embarcadero.com)

     

    Tested a few of the connectors and was not all that impressed. 

     

    RegisteredProducts.png


  8. Old topic but since the product was updated and has been available for months I am adding a link here.  It also seems to have the worst web presence of a product I have seen in years. Almost impossible to find by web search which still brings up previous owners of the product.  The product page even has <meta name='robots' content='noindex, nofollow' />. 

     

     SmartInspect – Code Partners (code-partners.com)  Advanced High-Performance Logging and Tracing for .NET, Java and Delph


  9. Only thing I can think of is in regards to 64bit applications: Delphi 11.2 64 bit apps make more use of ASLR. Pointers are now less likely to have the top 32bits all zero so any use of an integer to hold them will now cause problems. Loading a 32bit value into a 64bit register on x64 clears the top bits so bad code could squeak by before if the top 32 bits of the real address were all zero. 

     

    Delphi Compiler Enhancements
    As part of the RAD Studio 11.2 Delphi compiler improvements, Delphi further expands Address Space Layout Randomization (ASLR) support for the Win64 platform by supporting High Entropy ASLR (HE ASLR) by adding the ability to randomize memory addresses at high locations.


  10. The language designer can save to a .lng file. See; FMX.Types.TLang - RAD Studio API Documentation (embarcadero.com) 

    Can also create a txt-file template then load from txt-file latter then save as a .lng file.

     

    The format of .lng files looks binary but not too complex - a section of strings (xxxx) one per line to translate then sections for a language code and translation pairs (xxxx=yyyy) one per line. 

    • Thanks 1

  11. Main system: Windows 11 Pro 22H2. using Delphi 11.2 patch 1 the minimal application retrieves the response without issue.

    Run exe on Windows 10 without update KB5018410 send request works.

    Run exe on Windows 10 with update KB5018410 send request fails.

     

    I did notice that Internet Options for Windows 10 has TLS 1.3 not checked by default and it says (experimental) after it. Windows 11 has it checked by default without the (experimental) tag.

    Search for Internet options in start menu and it should come up as a control panel result, TLS selections are near the bottom on the Advanced tab.

     

    No combination of settings gets it to work again on a patched Windows 10 system (KB5018410). There is some weird interaction between the patch and Delphi REST components it seems. It breaks TLS 1.2 somehow and TLS 1.3 isn't functional either. 

     

    Images below: Windows 10 before patch, Windows 11 22H2 and Windows 10 after patch. 

     

     

    Win10_TLS_SettingsBeforePatch.thumb.png.013d44b99c7edc6efb9ceaf28b33d508.pngWin11_TLS_Settings.thumb.png.49aa058d130211673d9f21065348e45f.pngCapture_TLS_Settings_AfterPatch.thumb.PNG.97c69e27eceb8bdfe9102c8562bd753a.PNG


  12.  TLS 1.0/1.1 are now disabled by default starting with this month's patch (Oct 2022). They were already disabled in some editions of Windows.

     

    TLS Security Settings fails after October 2022 Patch - Microsoft Community

    Windows 10: Beware of a possible TLS disaster on October 2022 patchday | Born's Tech and Windows World (borncity.com)

     

    Not sure why it stopped working however - just checked and your server offers just TLS 1.2 and TLS 1.3 so the older protocols should not be in use anyway. 


  13. I doubt any of your other projects has an added auto created datamodule. Perhaps an added datamodule instanced in one of the other units if splitting things up was desired vs everything in the Server Methods unit. 

     

    This type of project is inherently multithreaded and creates multiple instances of the Server Methods objects to handle multiple requests - tossing in a extra single instance of a datamodule not attached to any of the other units setup for this seems likely to break things period. 

     

    So why are you adding an auto created datamodule? 

×