Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 06/03/20 in all areas

  1. Primož Gabrijelčič

    Revisiting TThreadedQueue and TMonitor

    Please go fight in private and stop killing this great thread.
  2. sakura

    wuppdi Welcome Page for Delphi 10.4?

    Yepp, I know why 😄 The original Welcome Page was designed by me during the field test, and at that time "wuppdi" was the "thing" at the German Delphi Praxis, and I wanted to include that somehow and that's how it ended up there 😄 wuppdi is a simple CSS class to hide different things. doShow CSS class was used to override wuppdi 😄
  3. Daniel

    wuppdi Welcome Page for Delphi 10.4?

    Oh - there must be a wrong default-value. I will check this later today. Thanks for reporting - and of course thank you for using this welcome-page. 🙂 //Edit: Yes, there was a minor glitch in the code. If the config-file mentioned by Uwe does not exist, the default value for the width is 0px - which might be a little narrow for one or the other... New version is 1.2.9 fixing exactly this problem. If it does not occur on your system, you're perfectly equipped with version 1.2.8.
  4. Mark Williams

    FTPServer Beginner

    Thanks to everyone for the detailed responses and suggestions. I think my fundamental error was my assumption (long-held and it seems with little basis) that FTP is faster than HTTP for multiple file transfers. I have already written an ISAPI dll using Delphi's TWebBroker which seems to be working well for my needs I just thought I could speed things up with FTP. From the above responses a better approach may be to more finely tune my ISAPI dll. The comments re Real Thin Client are noted and I will certainly look into this at a later point. In short, thanks for the feedback which it appears has saved me a potential mountain of unncessary work!
  5. Stefan Glienke

    JEDI Installation Annoyances 10.4

    If the term pebcak is offending you must be new to the internet. I simply explained the way that always works for installing jcl/jvcl 1. The same as always - jcl\lib\d27\win32 or win64 and jcl\source\include 2. Yes, works JCL/JVCL setup issues are almost always a problem with not properly executing them or rather not having the latest jcl/jvcl sources or having some old stuff lying around. Maybe you did not update the submodule and are missing on the defines for 10.4 Also did you select both (10.4 32bit and 10.4 64bit)? And did not set the "Install selected only" checkbox?
  6. Anders Melander

    Revisiting TThreadedQueue and TMonitor

    No. I don't know you anything about you. I'm arguing the points you make as I understand them. Nothing personal in that. I agree that things could be better (to put it mildly) with regards to the quality of the compiler, the RTL, the VCL and FMX. Is that because Embarcadero is not doing their best? I have no idea. I don't know enough about their financial situation, their business domain, their strategy or most of the factors that must affect their decisions. And I bet you don't either. We all make mistakes and we all write code that could be better. Those that have worked with me know that I have no problem with ripping someone a new a*hole, in public, if they make mistakes because they're lazy or if they don't own up to their mistakes. Like I said I don't know enough about the internals of Embarcadero to judge why they make mistakes, but they certainly could be better at acknowledging them and taking responsibility for them.
  7. Stefan Glienke

    JEDI Installation Annoyances 10.4

    Clearly a pebcak. Just pulled the jcl repo, ran install.bat - it compiled the setup using 10.4 and then I installed JCL for 10.4 32bit and 64bit without a problem
  8. Will answer this time to make sure the point(s) are delivered, may be one last time! The loudest voice in the room is mostly the wrong/stupid one, yea i see the irony here, but this all what i can do before let it go, sometimes you need to shout as loud as you can to make the other person get wake up and get your attention for one last time. I mentioned the compiler few times, as i said if they gave up on it, then i suggest to take the shortest path, work on the RTL, and remember no matter what RTL you do own, with the compiler it will return to those low level calls in the RTL.System , you know that and refuse to acknowledge it, that is your opinion, and i respect every opinion. No that wasn't the point, that was an example of not-best-decision and missed opportunity, like i said where would Delphi be without FireDac ?, what Dimitry is doing with them? ( no answer needed here) Delphi in 2020 doesn't have a communication suit ( sockets, HTTP, secure transport.....), doesn't have Security suit,... (too long to list) Hell without Pierre it wouldn't have decent Memory Manager, and now with Gunther and Pierre we have the chance to have better one, Andres , can you see the pattern ? When i mentioned RTC, i was comparing the right choice that could affect all of us and make it more attractive to be used in new projects, this is in their interest at first place, Will anybody having a bookmark navigator in the IDE affect his decision about buying the IDE ?! Again you did not get full picture of my point, simply put advertise what so ever you want as long you are taking care of your people, and your people are those 3rd-party along with your clients (us), they made Delphi what it is now. Anders, do i sound like ramblings, may be, believe me i am not enjoying this and i don't like wasting my time or anyones. Now again to make sure @ConstantGardener get me right because i feel we missed understand each other. I have no doubt Dimitry is a top expert in DB developing, that not a thing to discuss but will it be a good decision to ask Dimity to work on the compiler, with all my respect, that will be wrong because Dimitry mastership came from hundred thousands of hours with many many years working on the DB, while the compiler need same mastership with same expert level and time spent on compiler, and this is a contradiction, plain and simple. And this lead us to Embarcadero doesn't not have the qualified key people to get those things covered, yes they covered in DB with Dimitry, what about... !!! Now to be blunt: telling a friend or a relative Attaboy when he is wrong is wrong, no good coming from this, burying your head in the sand and pretend everything is OK, also wrong, is Embarcadero doing its best ?, nope, they are not even trying. Making long posts in a forum does have a chance to be heard and the points to delivered and received, so please Anders refrain form answering me as i said, you are going after me in person, while i am after correcting a process that affect me and my life like of all you here.
  9. Fr0sT.Brutal

    FTPServer Beginner

    In your scheme with tokens FTP is useless IMHO. Do everything with HTTP. You'd have to use custom clients anyway (to utilize token stuff) so no sense in FTP at all. Alternatively, you can really deal with temporary logins and folders personal for each user. This way FTP is fine and any standard client could be used. Expiration could be done by the moment of last activity
  10. Now i get it!, Dimitry is the god father of AnyDac, one of the two most valued jewels in Delphi collection, two without doubt were the right decisions made by the guys steering the wheel. On other hand about two years ago (i might be wrong about the dates), Danijel Tkalcec in his RTC licensed forum (private) offered his RTC SDK in full for sell, he made full disclosure about RTC financial situation and licenses sold for some year(s) period (also can't remember for sure), he preferred one of his users to buy, while as i remember Embarcadero was Happy acquiring a navigator with bookmarks, bookmarks !! CnWizards had them for years, i didn't even know that Delphi comes without bookmarks. Can Nexus Quality suit be included with Delphi/Rad Studio, sure, is it the best tool out there, no, but the developers at Nexus are capable to make it better, as long as there is interest and their time been paid, wouldn't this be better than marketing Deleaker ?
  11. Until Delphi 10.3, Search Declaration (e.g. CTRL-click on an identifier) in many cases did not work at all. Now it seems to work flawlessly. - Good work, Embarcadero!
  12. ConstantGardener

    Revisiting TThreadedQueue and TMonitor

    ... that was not my point. i think dmitry can handle something. ...some infos
  13. Remy Lebeau

    FTPServer Beginner

    If you are using HTTP for authentication, then why not just keep using HTTP for the file transfers, too? That is doable. However, there is nothing in the FTP protocol to handle such tokens, so that will have to be transmitted as the username/password/account for the session. But once authenticated, you can set the TIdFTPServerContext.HomeDir and TIdFTPServerContext.CurrentDir properties as needed. There is nothing in the FTP protocol to handle that. I would suggest simply deleting the token from the database as soon as a client logs in with it, making it a session token. That way, noone else can login with that same token, and it will be invalidated once the client disconnects. Yes, you can store custom data in the TIdFTPServerContext on a per-client basis. You definately do not want to query the database on every transfer. That will not work. There is nothing in the FTP protocol that would allow for such data on a per-request basis. But, the client can login with the token, and the server can validate it at the time of login and remember that the client is allowed to upload, and then the client can freely upload files as needed. Not necessary if the token is deleted as soon as it is redeemed during login. However, if would be trivial to remember the expire time on a per-client basis, and the server could validate the expiration on each file transfer, if needed. Same restrictions apply as above. Well, then now you are back to hitting the database on each file transfer, which is not a good thing for performance. You don't need to use CommandHandlers for this. TIdFTPServer does that internally for you. TIdFTPServer has OnUserLogin, OnUserAccount, OnStoreFile, and OnRetrieveFile events that you can use instead. Yes, a windows service would be a good idea. That is a very broad question with many possible different solutions.
  14. Remy Lebeau

    Problem starting FTP Server

    Yes. You cannot bind to an IP that does not belong to the local device that your server is running on. Alternatively, you can bind to '0.0.0.0' to listen on all local IPv4 addresses with a single socket (use '::0' for IPv6). The TIdFTP.ExternalIP property is for use with active-mode file transfers when the FTP session passes through a proxy/router. In active mode, an FTP client has to open a listening socket to receive an inbound TCP connection from the FTP server. As such, it needs to tell the FTP server which IP to connect to, which can't be the local IP when the client is running behind a proxy/router. The TIdFTP.ServerHOST property is used with virtual FTP server hosting, it has nothing to do with file transfers. An FTP server can host multiple sites on the same server IP. So, to differentiate which site an FTP client wants to access, it must send a HOST command to the FTP server. When the TIdFTP.UseHOST property is True, TIdFTP sends the HOST command before performing user authentication. If the TIdFTP.ServerHOST property is blank, the TIdFTP.Host property is used. TIdFTPServer has an OnHostCheck event, and a TIdFTPServerContext.Host property, for handling HOST commands from clients. Only the TIdFTP.ExternalIP property deals with file transfers. The TIdFTP.ServerHOST property has nothing to do with that. The TIdFTP.DataPort property is the local port that TIdFTP will listen on, and the FTP server will connect to, for active-mode transfers. If it is 0 (the default), an available random ephemeral port will be chosen by the OS. If TIdFTP is running behind a proxy/router, you need to set the TIdFTP.ExternalIP property to the proxy/router's public IP, and enable Port Forwarding on your proxy/router to forward inbound traffic from the router's public IP/DataPort to TIdFTP's listening Binding.IP/DataPort. If TIdFTPServer is running behind a proxy/router, you don't need to set the TIdFTP.ExternalIP (unless TIdFTP is also behind a proxy/router), but you do need to enable Port Forwarding on your server's proxy/router to forward inbound traffic from the router's public IP/Port to TIdFTPServer's listening Binding.IP/Port (not DataPort), as well as port forwarding for any ports you setup in TIdFTPServer's DefaultDataPort or PASVBoundPort(Min|Max) properties. The TIdFTP.Host property is the hostname/IP that TIdFTP will connect to when you call TIdFTP.Connect(), so it can't be blank. Having TIdFTP connect to the proxy/router's public IP will not work, since there is no FTP server running at that IP. That is merely the proxy/router's public IP to the outside world. The TIdFTP.ServerHOST property has no effect on where TIdFTP.Connect() connects to.
  15. Dmitry Arefiev

    Revisiting TThreadedQueue and TMonitor

    Thanks a lot ! The proposed here changes will be in 10.4 Update 1 with some modifications. Mostly due to new cross-platform AtomicCmpExchange128 for 64bit platforms.
  16. I answered your question on the Spring4D forum - sometimes I have weekend or vacation - thus no immediate answer 😉
  17. Kas Ob.

    FTPServer Beginner

    Yes. I would suggest to go with HTTP instead of FTP for some reason: 1) HTTP is router and firewalls friendly, you will ask any user of yours to open ports or configure port forwarding, hustle free! 2) HTTP or HTTPS is easier/simpler for you to manage on server side for both your FileCenter along with the web application ( your webserver), even you can use the same/one application to manage all of that. 3) Is HTTP slower than FTP ( or is HTTPS slower than FTPS/SFTP ) . NO 4) Does FTP provide simpler way to manage file permission, NO, same for both approach's, with small differences. 5) with FTP or HTTP you really should consider using encryption ( TLS or not) I am not well versed in Indy, in fact last time i used it was around 10 years ago, may be others can provide insight on that. Sure, Windows service is always the best, but here i want you to read the down notes. In case you want a separated FTP server, i can't provide much help here , except i used and i am using FileZilla as Sherlock suggest for simple FTP server usage, Only here i may suggest to use the portable version from XAMPP, it is simple folder copy it where ever you want and will work. Now to details in case you considered HTTP with RTC : I would suggest RealThinClient (RTC SDK) https://rtc.teppi.net/ ,it is one of the most prized and powerful library i ever had, it is not free but the price is relative to its usefulness, all what you mentioned above can be done with RTC in few hour when you are well familiar with RTC components, one problem though to keep in mind, the author is giving up on most of its functionality and deprecating many features. In case you considered it, i suggest to go ask the author before buying, i put this library in must have column for everybody. Some advantages/notes from using it: 1) Same code can be a stand alone server, windows Service or an ISAPI extension, i have deployed many ISAPI extensions built RTC, it is working. 2) It might look intimidating at first but the learning curve is astonishing, just try to understand the demos ( file server, webserver, messenger..) those demos you need to check, once you understood few key things like TRtcInfo, TRtcConnection, Sessions, DataProvider( this has nothing to do with DB there is others components to handle that ) and (Server/Client)Modules with functions, all of that sounds too much but in fact it is event-driven-can't-be-easier-to-use, then you can build very powerful client/server applications in record time. 3) You clients can use an app to upload ( built by you ) or use any Web Browser at hand. 4) In case you want to ditch HTTPS with it, it does have decent and sufficient encryption and security even if the traffic is plain HTTP, but in this case you lose the Web Browser usage. 5) RTC is cross platform out of the box. That few things came to my mind. Now away from RTC or HTTP, i think you should do your diligence (as you asked this question it does meant you are not familiar with FTP, right ?), so keeping an open mind and hear others suggestions in this forum, and ONLY use what you feel comfortable with.
  18. Sherlock

    FTPServer Beginner

    Will this server be open to the public? If so, please consider a finished, polished and most importantly relatively safe commercial/OS product. Though your token solution sounds good, it may not be once you have implemented it. Exposing yourself or maybe worse your customers like this should be given a lot of thought - and know how. First off, you should use FTPS or SFTP, not plain old FTP. If I had to, and I mean really head to, I would use FileZilla and for each user their own folders, without possibility to get out of that (resulting most likely in a Linux file system). Then into every folder a sym link (or whatever the're called) to the files they may retrieve.
  19. Geoffrey Smith

    Sending Email via GMail Using OAuth 2.0 via Indy

    I have updated the demo. The demo now includes saving and loading refresh tokens, as well as checking for expired access_tokens and refreshing them with the refresh_token. Have a look at https://github.com/geoffsmith82/GmailAuthSMTP/ Geoffrey
  20. Uwe Raabe

    MMX version 15.0.15 blocks Delphi 10.4 start

    There are probably still a couple of bug fixes and lots of performance improvements to be done. Until then new features are lower priority.
  21. Uwe Raabe

    MMX version 15.0.15 blocks Delphi 10.4 start

    No problem: HKEY_CURRENT_USER\Software\Raabe Software\MMX\14.0
×