Jump to content

tgbs

Members
  • Content Count

    83
  • Joined

  • Last visited

Posts posted by tgbs


  1. After Delphi 7, I install every new major version on a new virtual machine. On a second disk (D:) I possibly clone and attach the relevant data for Delphi projects. In the bin folder there is a tool for migrating to a new computer and version. And it has its subtleties, but it works well if Getit packages are not installed.


  2. 9 hours ago, Darian Miller said:

    They seem to have been hiring Delphi devs for at least the last 10 years.  I was in a similar boat a while back - trying to hire year after year.  One problem for me was that I had 10 or more developers and there is always some turnover.  By the time you hire a replacement and get them up to speed, you get a little break and get to do it again.  Its tough finding quality Delphi developers that also want to relocate.  The good developers have likely been in their same job for decade or more and are happy where they are at.  The younger developers don't seem to stay in one place very long.   

    Why is this necessary?


  3. 1 hour ago, DelphiUdIT said:

    I don't use cosole application, i use a graphic (FMX) application (based on Indy demo).

    This is for ease of use only. In fact, the FORM does nothing except handle events and start / stop the server.
    All LOGs are sent to the console via writeln.

    Exact same thing in Linux. 

     

    Now with TLS 1.3 support :classic_biggrin:

     

    Bye

     

    P.S.: There is one flaw in certificate management, which is that the certificate's private key must be exposed and accessible to the application. This may be a vulnerability if the server is accessed locally by third parties.

     

    Thanks but my question is for Linux server, without GUI.


  4. @borni69 thanks. This is clear to me

     

    4 hours ago, mjustin said:

    Maybe this helps:

     

    "How can I keep a Free Pascal console application running "forever"?"

    https://stackoverflow.com/questions/14090697/how-can-i-keep-a-free-pascal-console-application-running-forever

     

    (it is related to the Indy TIdHTTPServer also)

     

    Basically a ReadLn could be a solution to keep the server running. But this does not answer the "or until I stop ..." part of your question and is worth a separate question. 

    I suggest to ask the question as a new post in the Delphi-Third-Party / Indy subforum at https://en.delphipraxis.net/forum/35-indy/.

     

    There are people here in this thread who are happy with this webserver. So far I haven't seen any other way to make it go forever other than some variant of looping. Either with sleep, or with CheckSynchronize. Readln for a Linux server doesn't sound serious to me. For my minor programs I have used sleep. And I use a webaction for example webserver:port/stopserver to stop it. I asked if there was a more elegant way to make this webserver work forever. Thanks


  5. That's because you're not using the installer. You did not write a version of IB. When you do something manually, it's good to be prepared for such surprises. You can search for a program that tells you the dependencies of gds32.dll. They are mostly on MS runtimes. In your case, maybe just copying msvcr120.dll would help, but that depends on the version and installed packages of Windows. You should also look at the log of the Windows programs, it also sometimes says which package is missing. In addition to these dlls, it is good to put an interbase.msg file... In general, either install the IB client or copy these files to the folder of your program. Because you may have a problem with different client versions for IB or Firebird, for example, on this computer

    • Like 1
    • Thanks 1

  6. 2 hours ago, Angus Robertson said:

    My Delphi web servers have an IP blocked list which hackers get automatically added to based on several criteria, any path with filers ,php, .pl., /,,, ;echo, mysel, etc,since there is no CGI or Perl or MySQL on the site, also if they access pages by IP address instead of the correct domain name using SSL.  I also block Tor exit nodes, to try and stop IP blocked users using alternate access. 

     

    Blocked IP addresses are cleared from the list 24 hours after their last access, and any accesses have a response delayed by one minute, so try and slow down the avalanche of requests hackers make, often hundreds a minute.  Currently 179 IP addresses blocked on my main site.

     

    Angus

     

    How do You get it is Tor client?


  7. Q. please solve (x+3)^2=25

    A. [snip] Calculate the value of sqrt(25) - 3. This will give you the solution to the equation: x = sqrt(25) - 3 = 5 - 3 = 2. In general, the solution to the equation (x+3)^2=25 is x = 2.

    Q. isn't x=-8 a solution?

    A. No, x=-8 is not a solution to the equation (x+3)^2=25. Because when you put the value -8 of the variable x into the equation, you don't get an equality. Instead, you will get an inequality: (x+3)^2 = (-8+3)^2 = (-5)^2 = 25 The inequality (-5)^2 = 25 is false because the square of -5 is -25, not 25. Therefore, x=-8 is not a solution to the equation (x+3)^2=25. The solution of this equation is x=2 as I told you earlier.

    Q. You are wrong. I don't know who taught you math. Please fix: Any negative number squared is a positive number. (-5)^2 = -5.-5 i.e. is 25

    A. I'm sorry if I made a mistake. You make an accurate estimate: any negative number squared is a positive number.[snip] However, in the case of the equation (x+3)^2=25, the solution is x=2, as I told you earlier. This equation has no solutions other than x=2. Because when you put the value 2 of the variable x into the equation, you get the equality: (x+3)^2 = (2+3)^2 = 5^2 = 25 The equality (x+3)^2 = 25 is true when x=2

    Q. you are wrong x=-8 is also a solution because (-8+3)^2 = (-5)^2 = -5*-5 = 25

    A. Sorry my previous explanation wasn't clear. Yes, x=-8 is a solution to the equation (x+3)^2=25. You make a correct argument: (-8+3)^2 = (-5)^2 = 25. This means that the equation (x+3)^2=25 has two solutions: x=2 and x=-8. It is a quadratic equation with two real solutions.

     

    But same question now

    A.

    (x+3)^2=25

    √(x+3)^2=√25

    |x+3|=5

    Now we have two cases to consider:

    Case 1: x+3=5 x=2

    Case 2: x+3=-5 x=-8

    Therefore, the solutions to the equation are x=2 and x=-8.


  8. 5 minutes ago, Vandrovnik said:

    OK, did not check 🙂 Just wondering, why previous record, too?

    I don't know why, you have to ask one of Team B.
    It's very convenient for me because you can go to the next record and check if you're an EOF, come back and do something. Without unidirectional if there are multiple close/open you will get out of memory
    Sorry for the offtopic


  9. 34 minutes ago, Vandrovnik said:

    For Firebird, I use IBX component, which have "Unidirectional" property. When set to True, only current record is kept in memory. Maybe your database components have similar functionality? 

    Two records :) Current and the previous one


  10. For Interbase we use TIBServerProperties from IBX package.

         List.Add (IBSrvProp.licenseInfo.LicensedUsers.ToString);
         List.Add (IBSrvProp.DatabaseInfo.NoOfAttachments.ToString);
         List.Add (IBSrvProp.VersionInfo.ServerImplementation);
         List.Add (IBSrvProp.VersionInfo.ServiceVersion.ToString);
         List.Add (IBSrvProp.ConfigParams.SecurityDatabaseLocation);

     


  11. On 7/5/2022 at 11:59 AM, Skrim said:

    Hi

     

    Lately I have had trouble getting emails through to addressee@gmail.com from my Delphi app Win32/D11.

     

    Today I sent 8 emails to Gmail and 1 was returned "Message missing a valid messageID header are not 550 5.7.1 accepted".

    (Every mail is generated the same way)

     

    It seems pretty random as 7 went through and 1 not. Some days all emails to Gmail are returned, other days none.

     

    All other addresses than Gmail have no trouble being received by the addressee .

     

    Is there something I can set in Indy to avoid this?

     

     

     

    This is already a practice for gmail. The smtp server must be configured to create such an id if it does not exist. Or manually add it to the message header. We have customers whose mailservers do not create such an id and have to have it generated by our software

×