Jump to content

mvanrijnen

Members
  • Content Count

    455
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by mvanrijnen

  1. mvanrijnen

    swagger help needed

    Yes, but can't publish the version we are using here (at work). I will start soon, creating a new more general version at home (knowledge is in my mind already 🙂 ).
  2. mvanrijnen

    swagger help needed

    Using our own swagger parser > delphi unit generator here. works great. Generates the needed types as classes and a class which executes the methods. Will see if i can extract/publish a public version in my spare free time 🙂
  3. mvanrijnen

    Delphi Code-Insight problems

    Reasonable pricing 🙂 And reasonable discounts for longtime customers (subscriptors) We also created some tickets about the new LSP, and i really really wonder how the tested the new LSP, so many bugs in it what makes it unusable, and then if you switch back to thel old code insight, all the bugs are still there. it's a shame.
  4. mvanrijnen

    ANN: Parnassus Parallel Debugger

    I've had an employer like that also. And then they go mad because tackling problems with the software while in production takes ages for consultants and after them the developers, because they get no errors 🙂
  5. mvanrijnen

    ANN: Parnassus Parallel Debugger

    Looks good so far, sometimes a liitle bit slow with repainting the windows, but very usefull! That there are some issues matches the host application 🙂
  6. mvanrijnen

    Backing Up Delphi Install

    In recent versions there is a "migration tool" which also can be used for backup/restore actions. It covers not all things needed for a full backup of you delphi installation. You still have to backup files installed by installers (delphi, 3thparty components) etc.
  7. You got this from Rudy J.?
  8. Hey, we installed D10.4.1 lastweek, code completion works better, code insight still not realy usable (for us). But one thing, if you override a class, normally with codecompletion you would see all the overridable methods of the parent class, with the 10.4.1 we do not see them. so all the overrides you have to type full instead of pick them from the list. (e.g. destroy, afterconstruction, beforedestruction etc etc)
  9. mvanrijnen

    Delphi 10.4.1 Codecompletion no overrides etc

    Added commenct to rsp-29357 sreenshot, clean install of 10.4.1, simple console project. hitting ctrl-space for code compeltion Getting very, very, very tired of the Delphi IDE.
  10. mvanrijnen

    Year Countsdown

    Take a look to TTimeSpan in the, System.TimeSpan unit, maybe you can do something with that. For the years and months you can use YearsBetween/Monthsbetween. (also for the rest : )
  11. mvanrijnen

    Database app good practice

    Take a look here (noi do not have grijjy stock 🙂 ) MVVM Starter Kit (Part 1 of 3) – grijjy blog Good explanation and good examples. And a framework ready to go
  12. I like this one a lot: Efficient and easy-to-use JSON and BSON library – grijjy blog
  13. Always cost me a day to install or upgrade the Delphi IDE (now upgrading from 10.3 to 10.4), never goes smooth. but sorry for the bad words 🙂
  14. mvanrijnen

    In Case You Didn't Know

    My thoughts go to method injection 🙂
  15. Wich idiot (NOFI) wrote the getit manager? Feels like it's done by some intern? Slow search, Slow scroll, can not queue packages to install at once and go drink coffee. (sorry bad day 🙂 )
  16. mvanrijnen

    Large project does not start

    [badmorning mode] Yes the Delphi IDE performs at is best as: - You create all components manually - Do not use form/frame inherentance - Disable all code- and error insight features. - Use external compiler it's Embarcadero's believe that the IDE is best used as a luxury notepad. (but then you better use notepad++) 🙂 but hey, what else you gonna do with the few thousand dollars of the cost of Delphi 🙂 [/badmorning mode]
  17. Hi, i'm having a problem receiving mails with TIdSmtpServer from a specific client (it's a server enclosure, there the coolling alarm from) . Receive from all other kinds of clients works, (I use this in a service i call "ProtcolBridge", i can go - from simple smtp -> o365, gmail, etc - from ftp -> smtp - from smtp -> ftp i use this for "old" devices which have limited smtp and/or ftp support. ) This is a log of the chronical events of TidSmtpServer: 22-11-2020 00:56:46.587 [INFO ] - Connection from: 172.16.29.250:1498 [smtpReceiverConnect/MAIN] 22-11-2020 00:56:46.587 [INFO ] - Command Receieved from: 172.16.29.250:1498 | EHLO 172.16.29.250 [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:56:46.587 [ERROR] - Reset [MAIN] 22-11-2020 00:56:46.587 [INFO ] - SPFcheck OK [smtpReceiverSPFCheck/MAIN] 22-11-2020 00:56:46.587 [INFO ] - Command Receieved from: 172.16.29.250:1498 | MAIL FROM:<address1@company.name> [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:56:46.587 [INFO ] - SPFcheck OK [smtpReceiverSPFCheck/MAIN] 22-11-2020 00:56:46.587 [INFO ] - MailFrom: address1@company.name [smtpReceiverMailFrom/MAIN] 22-11-2020 00:56:46.602 [INFO ] - Command Receieved from: 172.16.29.250:1498 | RCPT TO:<meldingen@company.name> [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:56:46.602 [INFO ] - RCPTTO: meldingen@company.name [smtpReceiverRcptTo/MAIN] 22-11-2020 00:56:46.602 [INFO ] - Command Receieved from: 172.16.29.250:1498 | BDAT 350 [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:56:46.602 [INFO ] - BeforeMessage [MAIN] 22-11-2020 00:56:51.149 [INFO ] - Command Receieved from: 172.16.29.250:1498 | QUIT [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:56:51.149 [ERROR] - Reset [MAIN] 22-11-2020 00:56:51.149 [INFO ] - Disconnected from: 172.16.29.250:1498 [smtpReceiverDisconnect/MAIN] The message received never fires ?? here's an example of a client which works: 22-11-2020 00:32:22.513 [INFO ] - RCPTTO: meldingen@company.name [smtpReceiverRcptTo/MAIN] 22-11-2020 00:32:22.513 [INFO ] - Command Receieved from: 192.168.1.15:50656 | DATA [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:32:22.513 [INFO ] - BeforeMessage [MAIN] 22-11-2020 00:32:22.856 [INFO ] - Connected with smtp.office365.com:587 [SMTP_TO_SMTP:smtp.ict@company] 22-11-2020 00:32:23.356 [INFO ] - StartReceive. [MAIN] 22-11-2020 00:32:23.356 [ERROR] - 1 [MAIN] 22-11-2020 00:32:23.356 [INFO ] - Incoming message (sender: address1@company.name), subject: Healthy System - no action required (SN:00C0FF289B0F) for meldingen@company.name, on 192.168.1.18:25, from 192.168.1.15:50656 [MAIN] 22-11-2020 00:32:23.356 [INFO ] - EndReceive. [MAIN] 22-11-2020 00:32:23.356 [ERROR] - Reset [MAIN] 22-11-2020 00:32:23.356 [INFO ] - Command Receieved from: 192.168.1.15:50656 | QUIT [smtpReceiverBeforeCommandHandler/MAIN] 22-11-2020 00:32:23.356 [ERROR] - Reset [MAIN] 22-11-2020 00:32:23.356 [INFO ] - Disconnected from: 192.168.1.15:50656 [smtpReceiverDisconnect/MAIN] 22-11-2020 00:32:23.700 [INFO ] - Message for file e:\Data\Hesi\ProtoBridge\SMTP\smtp.ict@company\smtp.ict@company_20201122003222231.eml, send. [SMTP_TO_SMTP:smtp.ict@company] 22-11-2020 00:32:26.216 [INFO ] - Connected with smtp.office365.com:587 [SMTP_TO_SMTP:smtp.ict@company] 22-11-2020 00:32:27.169 [INFO ] - Message for file e:\Data\Hesi\ProtoBridge\SMTP\smtp.ict@company\smtp.ict@company_20201122003223356.eml, send. [SMTP_TO_SMTP:smtp.ict@company]
  18. mvanrijnen

    TIDSmptServer does not receive mail from certain client [Fixed]

    Things work now. Some how two version in two different folders where placed on the server by the sysadmin. So a few weeks ago i update the wrong folder and wrong config. I'v had added the possibility to enable/disable SMTP AllowPipelining property. For completion the logs with the BDAT sequence. INDY Intercept: 172.16.29.250:1545 Stat Connected. 172.16.29.250:1545 Sent 11/25/2020 10:36:58 AM: 220 Welcom to the ProtocolBridge<EOL> 172.16.29.250:1545 Recv 11/25/2020 10:36:58 AM: EHLO 172.16.29.250<EOL> 172.16.29.250:1545 Sent 11/25/2020 10:36:58 AM: 250-Hello 172.16.29.250<EOL>250-AUTH LOGIN<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-SIZE 0<EOL>250-CHUNKING<EOL>250-8BITMIME<EOL>250 BINARYMIME<EOL> 172.16.29.250:1545 Recv 11/25/2020 10:36:58 AM: MAIL FROM:<company@company.eu><EOL> 172.16.29.250:1545 Sent 11/25/2020 10:36:58 AM: 250 2.1.0 company@company.eu Address Okay<EOL> 172.16.29.250:1545 Recv 11/25/2020 10:36:58 AM: RCPT TO:<meldingengroep@company.eu><EOL> 172.16.29.250:1545 Sent 11/25/2020 10:36:58 AM: 250 2.1.5 meldingengroep@company.eu Address Okay<EOL> 172.16.29.250:1545 Recv 11/25/2020 10:36:58 AM: BDAT 355<EOL>Sender: company@company.eu<EOL>From: company@company.eu<EOL>To: meldingengroep@company.eu<EOL>Reply-To: <EOL>Date: Wed Nov 25 10:32:49 2020 +0000<EOL>Message-Id: <1606300369.99074@company.eu><EOL>Subject: Rittal CMC-TC: company (172.16.29.250), myplace<EOL>Message(s) from Rittal CMC-TC<EOL>-----------------------------<EOL>Name: company (IP: 172.16.29.250)<EOL>Location: myplace<EOL>Contact: xxx xxxx <EOL><EOL>BDAT 141<EOL>Message of 25.11.2020, 10:32:04<EOL>Blussing[02|01], Service/Blocked: Alarm <EOL><EOL><EOL>http://172.16.29.250<EOL><EOL>-- Do not reply to this E-Mail!! --<EOL>BDAT 0 LAST<EOL> 172.16.29.250:1545 Sent 11/25/2020 10:37:02 AM: 250 Ok<EOL> 172.16.29.250:1545 Sent 11/25/2020 10:37:02 AM: 250 Ok<EOL> 172.16.29.250:1545 Sent 11/25/2020 10:37:02 AM: 250 Ok<EOL> 172.16.29.250:1545 Recv 11/25/2020 10:37:02 AM: QUIT<EOL> 172.16.29.250:1545 Sent 11/25/2020 10:37:02 AM: 221 Signing Off<EOL> 172.16.29.250:1545 Stat Disconnected. 0.0.0.0:0 Stat Disconnected. ServicesLog: 25-11-2020 10:36:32.184 [INFO ] - Connection from: 172.16.29.250:1544 [smtpReceiverConnect/MAIN] 25-11-2020 10:36:32.184 [INFO ] - Command Recieved from: 172.16.29.250:1544 | EHLO 172.16.29.250 [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:32.184 [ERROR] - Reset [MAIN] 25-11-2020 10:36:32.184 [INFO ] - SPFcheck OK [smtpReceiverSPFCheck/MAIN] 25-11-2020 10:36:32.184 [INFO ] - Command Recieved from: 172.16.29.250:1544 | MAIL FROM:<ict@company.eu> [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:32.184 [INFO ] - SPFcheck OK [smtpReceiverSPFCheck/MAIN] 25-11-2020 10:36:32.184 [INFO ] - MailFrom: ict@company.eu [smtpReceiverMailFrom/MAIN] 25-11-2020 10:36:32.200 [INFO ] - Command Recieved from: 172.16.29.250:1544 | RCPT TO:<ict@company.eu> [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:32.200 [INFO ] - RCPTTO: ict@company.eu [smtpReceiverRcptTo/MAIN] 25-11-2020 10:36:32.200 [INFO ] - Command Recieved from: 172.16.29.250:1544 | BDAT 344 [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:32.200 [INFO ] - BeforeMessage [MAIN] 25-11-2020 10:36:36.731 [INFO ] - Command Recieved from: 172.16.29.250:1544 | BDAT 216 [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:36.731 [INFO ] - Command Recieved from: 172.16.29.250:1544 | BDAT 0 LAST [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:36.731 [INFO ] - StartReceive. [MAIN] 25-11-2020 10:36:36.731 [ERROR] - 1 [MAIN] 25-11-2020 10:36:36.731 [INFO ] - Incoming message (sender: ict@company.eu), subject: Rittal CMC-TC: company (172.16.29.250), myplace for ict@company.eu, on 172.16.29.4:25, from 172.16.29.250:1544 [MAIN] 25-11-2020 10:36:36.731 [INFO ] - EndReceive. [MAIN] 25-11-2020 10:36:36.731 [ERROR] - Reset [MAIN] 25-11-2020 10:36:36.764 [INFO ] - Command Recieved from: 172.16.29.250:1544 | QUIT [smtpReceiverBeforeCommandHandler/MAIN] 25-11-2020 10:36:36.764 [ERROR] - Reset [MAIN] 25-11-2020 10:36:36.764 [INFO ] - Disconnected from: 172.16.29.250:1544 [smtpReceiverDisconnect/MAIN] 25-11-2020 10:36:37.247 [INFO ] - Connected with smtp.office365.com:587 [SMTP_TO_SMTP:smtp.ict@company] 25-11-2020 10:36:37.950 [INFO ] - Message for file e:\Data\company\ProtoBridge\SMTP\smtp.ict@company\smtp.ict@company_20201125103636731.eml, send. [SMTP_TO_SMTP:smtp.ict@company]
  19. mvanrijnen

    auto-generated REST APIs?

    "Anyone on the client side with the credentials could run any kind of SQL statements, which may be pretty unsafe, like DROP TABLE or DROP DATABASE in the middle of a SELECT statement. Or it could access data from other customers." 100% agree 🙂 But for us it;s for "inner" use, and not directly sql statements, there are different parameters from which sql statements are generated, filter, (and|or etc), sortby, fields. Thereby for us it's select only, not update/insert/delete. it's more like an excercise for playing with rest
  20. mvanrijnen

    auto-generated REST APIs?

    Just written our own tool for this. We already have the DB layout in specific tables, with extra attributes, used for generating std forms, lists etc. Now busy with a experiment to acces tables with REST, also publish the table data & info with radserver (internal use only!). Generating now all the radserver resources for schema's (collection of tables for us), tables etc. Mostly just for getting the hang of radserver etc. (developing a a 1990 years environment here) But i agree that you should not expose your tables like this for the "public" or for what application whatever, my colleague likes to use tables for client apps (not through general api's though). I think api's should expose usable information blocks or usable application blocks, not simple table CRUD actions etc.
  21. mvanrijnen

    ANN: Sempare Template Engine for Delphi

    Was looking for something like this. Created myself a few half working "engines" (just for own needs), Hopefully can replace those with one good one 🙂
  22. mvanrijnen

    Having fun with Delphi

    Good idea with the pointer, you do have to encode somevalues in the stringbuilder (escape special chars etc) maybe with an TInterfaced (no need to free) THSURI2 = class(TInterfacedObject) private FScheme: THSURIScheme; FFragment: string; FQuery: string; FPort: Integer; FPassword: string; FHost: string; FUserName: string; FPath : string; function GetAsString: string; constructor Scheme(const AScheme : THSURIScheme); public constructor HTTP; constructor HTTPS; .... TMP2 := THSURI2.HTTPS .UserName('yourname') .Password('andpassword') .Host('www.website.com') .Port(1234) .Path('chapter') .Path('subchapter') .Path('subsubchaper') .Parameter('showall') .Parameter('yearstart', '1990') .Fragment('startreadinghere'); test := TMP2.AsString;
  23. mvanrijnen

    Having fun with Delphi

    Ok, did not know that. So have to be carefull where and how to use this. Would not be wise to use it in highperf code sections, but There where you set up connection strings, sql statements, urls etc, why not use it ?
  24. mvanrijnen

    Having fun with Delphi

    Something like: tmp := THSUri.HTTPS .UserName('yourname') .Password('andpassword') .Host('www.website.com') .Port(1234) .Path('chapter') .Path('subchapter') .Path('subsubchaper') .Parameter('showall') .Parameter('yearstart', '1990') .Fragment('startreadinghere'); tmp.AsString Reults in: 'https://yourname:andpassword@www.website.com:1234/chapter/subchapter/subsubchaper?showall&yearstart=1990#startreadinghere' I'm using the scheme (HTTP, HTTPS) as the record constructor/initializer. .... public class function Scheme(const AScheme : THSURIScheme) : THSUri; static; class function HTTP : THSURI; static; class function HTTPS : THSURI; static; ..... implementation class function THSURI.Scheme(const AScheme: THSURIScheme): THSUri; begin // some needed and needless inits. Result.FScheme := AScheme; Result.FPort := 0; Result.FHost := string.Empty; Result.FUserName := string.Empty; Result.FPassword := string.Empty; Result.FPath := string.Empty; Result.FQuery := string.Empty; Result.FFragment := string.Empty; end; class function THSURI.HTTP: THSURI; begin Result := THSURI.Scheme(usHTTP); end; class function THSURI.HTTPS: THSURI; begin Result := THSURI.Scheme(usHTTPS); end;
  25. mvanrijnen

    FireDAC and pooling random error

    "a specific part of the program" is a thread (amongst other parts) in your case, misunderstood your sentence there 🙂
×