Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. We use our https://github.com/synopse/mORMot/blob/master/SynLog.pas Open Source logging framework on server side, with sometimes dozens of threads into the same log file. It has very high performance, so logging don't slow down the process, and you can make very useful forensic and analysis if needed. Having all threads logging in the same log file is at the same time a nightmare and a blessing. It may be a nightmare since all operations are interleaved and difficult to identify. It is a blessing with the right tool, able to filter for one or several threads, then find out what is really occuring: in this case, a single log file is better than several. For instance, one of our https://livemon.com server generates TB of logs - see https://leela1.livemon.net/metrics/counters - and we can still handle it. This instance for instance is running since more than 8 months without being restarted, and with hunderths of simultaneous connections, logging incoming data every second... 🙂 We defined our simple and very usable log viewer tool - see http://blog.synopse.info/post/2011/08/20/Enhanced-Log-viewer and https://synopse.info/files/html/Synopse mORMot Framework SAD 1.18.html#TITL_103 This is the key to be able to have something usable from heavily multithreaded logs. So if you can, rather use a single log file per process, with proper thread identification and filtering.
  3. Hans-Wolfgang

    ccr.exif for editing image metadata

    Recently I downloaded and installed the ccr.exif package; when I tried to compile the sample application that came with that package, the RadStudio compiler threw about 8 errors. Wondering if one of you, or someone from another Delphi-Praxis group, can connect remotely via TeamViewer to help me with this. Best, jwc
  4. In my company, we wrote our own logging solution from scratch for all of our apps to log to. It consists of a Windows service hosting an out-of-process COM server, managing a thread-safe FIFO queue of log entries. A background thread continuously writes the entries to a log file, stopping and starting a new file at night and archiving the old files, purging old records/files at scheduled intervals, etc. Another thread forwards certain log entries to a secondary service running on another machine, to email, to SNMP traps, etc. Our individual apps use the service's COM object to send log entries and other commands as needed. Under heavy load, it easily handles 1000s of log entries per second across multiple processes. And if a given app crashes, COM handles the cleanup for us. And then we have a separate viewer app to display the log entries in real-time. This is probably a bit extreme for your use case, though. Existing logging tech wasn't very good way back when this project was first started.
  5. Remy Lebeau

    FTP add virtual directory

    Or the one in Indy (TIdFTPServer). Not in FTP, no. That is simply not how the FTP protocol works. The client has to login up front at the beginning of the FTP session, and cannot re-login again afterwards without disconnecting first. Like Angus said, you will basically have to create your own FTP server that you have complete control over. A pre-existing server, like IIS, is not really going to help you with this kind of task. Statically defined virtual folders, yes. But dynamically defined virtual folders, no. Server components like the ones in ICS and Indy give you direct access to the client's commands, and virtual folders is really not that difficult to implement when you have direct access to the paths the client is trying to access. I once wrote a virtual folder manager for Indy (I don't have it any more, though), it is just a matter of splitting a requested path into its individual parts and then walking the parts resolving each one to a physical folder as needed until you end up with a final physical path. So, in your case, when the user starts the transaction, you create the virtual folder in your DB/whatever and make sure that folder is resolvable to a physical folder and is included in directory listings as needed. When the transaction is done, delete the virtual folder from your DB/whatever. If the client requests a path that includes a virtual folder that is no longer resolvable, a standard FTP 55x error response, like 550 or 553, will suffice to let the client know the path is no longer valid.
  6. I know, but from these graphs it is still pretty well visible, that issues stay in the queue/stack/whatever longer and longer and that new issues come faster then old issues are resolved. 800 days and increasing, that is a terrible value. I understand they they want to keep up to date with new Android, new iOS etc., but still I believe that they should have a team, which will resolve reported bugs.
  7. Wow, I'm not even 35 yet and being called oldschool 😞 I guess "OK boomer" is next in my bucket list 😄
  8. aehimself

    How to Code SQL IN Statement correctly

    Client - Server architecture, mostly. User opens up the Client and selects which records to process / manipulate. We do have filtering capabilities (so instead of an array of IDs we could send a filter) but it requires critical thinking so users are afraid of it. So we simply send 1-2-5-10k IDs to the Server. An other case would be if you need to fix data corruption in the database.
  9. Dmitry Arefiev

    GetLastAutoGenValue

    For SQL Server the AName parameter usage is not specified.
  10. You must keep in mind that Embarcadero only occasionally syncs the public jira with their internal one. Usually just before a new release lots of entries get closed. Unfortunately that does not always mean that they have been fixed.
  11. I changed my Interbase connection from IBLite to IBTogo. Now, if I run the app without the "-cleaninstall" in the Run parameters, it works fine on the device. If I create a bundle (32 & 64-bit) and upload it to the Google Play Store, I'm getting the same error: "product INTERBASE is not licensed". Have in mind that this is ONLY if the app is already installed and is updating; not when the user is installing it for the first time. I'm out of ideas.
  12. I know... And bugs resolved as "will not repair" (ie Translation Manager), bugs marked as duplicate... But the tendency in the graph is the same as my internal feeling in last years.
  13. There are of course other things to consider. Bugs converted to Feature Requests, and then there is that Dark Pool of internal Bugs that get resolved by the hundreds..
  14. You will find information on google if you look for how to make queries and charts in jira.
  15. Alexander Sviridenkov

    How to Code SQL IN Statement correctly

    Such queries may be slow, After some number join is faster,
  16. Well, for the purpose of bringing global var/const init capabilities into the code section they could serve quite well at the same time not causing too much eye pain to oldschool guys 😉 Foo(var r: TSomeRec = ( fInt: 123; fStr: 'bar' )) (at least as I imagine it - haven't tried 10.3 yet)
  17. Fr0sT.Brutal

    How to Code SQL IN Statement correctly

    I saw multiple opinions that such big IN's are bad design. Where they come from?
  18. Angus Robertson

    FTP add virtual directory

    You can apply file permissions to Windows folders against Windows logins, but not password protect a folder. Yes, ICS is from Overbyte, there is an ICS forum. You could run your FTP server on strange ports, but that is usually a nightmare with FTP and firewalls/routers. Fortunately my hosted server has a /27 subnet, don't even use all of them. Angus
  19. Yeeees, that is exactly what I was searching for! Nice graphs (with sad data in it). Please can you tell me how to get these graphs from quality.embarcadero.com?
  20. Mark Williams

    FTP add virtual directory

    Is it not possible to also password protect the folder? My intention is to maintain a record of the virtual folders in a database and require the user to signal continued use of the folder and as soon as there is a failure to do so the folder would be deleted. Is this the Overbyte stuff? I will have a look. So if I wanted to run IIS and ICS on the same server I would need a second static ip?
  21. Primož Gabrijelčič

    Best approach to Multi-file, multi-thread debug logging

    I'm usually doing such logging in a manner similar to the one Kas Ob. presented. I establish a logging queue. Usually a TOmniQueue as it does not require locking. Then I create a logging thread. In essence it does just: while logQueue.Get(msg) do Log(ms); Each part of the program that wants to log, just creates a `msg` record containing whatever info you need to perform the logging (message, severity, timestamp, target file ...) and pushes it into the logging queue. That's it.
  22. Angus Robertson

    FTP add virtual directory

    IIS FTP uses Windows accounts, so you need to set-up those from Delphi as well, can probably be scripted. The usual solution to your problem is to use a long random file name that disappears once the download is completed, but you need to watch the log to see when that happens. The better solution is to you use a Delphi FTP server, like the ICS one I support, then you can control logins and directories yourself easily, using the ICS FTP Server sample you should have a working solution in a few hours, days faster than using WMI. But it needs it's own IP address and port, will not help if you have to use IIS. There is no type library for the IIS management stuff, it's all WBEM based code. Angus
  23. Mark Williams

    FTP add virtual directory

    Thanks. I'll have a look at WMI. Which type library do you use? I've got a couple on my registered libraries.
  24. Mark Williams

    FTP add virtual directory

    Yes it's pretty easy to set up via IIS, but the security angle is precisely why I don't wish to do it this way. I want to check the user's credentials against database and then issue that user a one-off password for a single transaction and add a temporary ftp folder, which then gets removed as soon as the user has completed the transaction. There may be better ways of doing this. As I said I'm a FTP novice!
  25. The bitter-sweet memories are for the archived version of fPrint. I remember my first website I created (it was in the early 2000's though) but browser capabilities did not allow too much freedom (index.html, browserdetect.js, index_ie.html, index_ns.html; anyone? 🙂) and they were kinda similar. The (d)evolution of websites does not apply on it, nor yours. It's the mass: dynamic content loading causing browsers to eat up the memory of NASA's supercomputers, JavaScript attempting to behave like a real programming language, ads, consents, facebook integration with everything so you can't check an article without a profile (or registering), stuff like this. Things were much more simple in the early days.
  26. Angus Robertson

    FTP add virtual directory

    You can start reading at https://www.iis.net/overview/control/powerfuladmintools I'm just looking at WMI scripting for controlling IIS. Setting up a virtual directory through IIS admin is easy. Angus
  1. Load more activity
×