Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. dummzeuch

    Mustangpeak UltraExplorer

    Which functions / classes are missing if you remove that unit?
  3. dummzeuch

    Mustangpeak UltraExplorer

    Google translates this to: FW123-The website may have filing problems or sensitive information. Please check the filing status or website content. Not sure what it means.
  4. Today
  5. Angus Robertson

    Mustangpeak UltraExplorer

    The site still responds, but with a one line response in Chinese, I'm looking for ClipboardProc.pas: http://en.pudn.com/downloads770/sourcecode/delphi_control/detail3055532_en.html Angus
  6. I am defending a very important, and very well respected, member of the Delphi community. That's all.
  7. Riiight...do you actually have any superb security libraries to suggest for Delphi then? Or is this just your vain sharing of gratuitous psychoanalysis?
  8. In defence of Mathias his madExcept library is superb and very actively maintained. And his response to your comments in the thread seem reasonable. Why expect him to work on freeware? Anything he does is a bonus. It looks like your frustration is getting the better of you.
  9. Yesterday
  10. I reported a bug with madSecurity a while back here: http://forum.madshi.net/viewtopic.php?f=8&t=28726 Unfortunately the issue hasn't been fixed for over two months since the public report. Privately, he has made it clear that he has no interest in fixing the bug unless he is getting paid for it, which makes it sound like the library is dead to me. The self-professed "mad" author has moreover censored and edited the title of the post at his forum where I drew attention to the fact that he is no longer maintaining the library. My company had sponsored the 64-bit version of madSecurity a while back, so we're definitely very taken aback that our investment was misguided. Are there any alternatives to this library? Moving forward, we will be moving our code off his platform, and would advise other developers to steer clear of madSecurity which has many subtle bugs and code that is very obtuse.
  11. drliu1202@gmail.com

    Mustangpeak UltraExplorer

    What is the name of the Chinese site? Maybe you could try archive.org.
  12. stijnsanders

    GZip compression in MARS

    Hmm, yes if it's static content, there would be sense in keeping a cache of the gzipped-data somewhere and serve that on subsequent requests. If it's dynamic content on the other hand, you might suspect this data to be one-off specifically for each request. So if there's a lot of it (and might take some time to generate, typically longer than it takes to transmit over to the client...) and you're having transfer-encoding chunked (which enables keeping the connection open when the response is sent over) then you should use TZCompressionStream's capability to zip a next chunk based on the existing stream...
  13. The coder who previously worked on Indy's OpenSSL's support has been MIA for a long time. Any new updates will have to go through me, and I just haven't had any time to do it myself.
  14. Angus Robertson

    ICS V8.62 announced

    ICS V8.62 is now installable from GetIt on recent versions of Delphi. Angus
  15. I would but, unfortunately, I am lacking time and trying to spend as much time as possible adding new features (i.e. the new Devart UniDAC intregration and the Delphi-Cross-Socket support). Please ask if you need specific help. Sincerely, Andrea
  16. Andrea Magni

    The 9 Hints in MARS

    @Yaron are you using the master or develop branch? I can't see hints/warnings using the develop branch. Sincerely, Andrea
  17. Hi @Chau Chee Yang, I've never seen errors compiling this package. Which branch are you using (master or develop)? Isn't this equivalent to set -LUDesignIDE in the Compiling options? I've never been a package addicted. 😉 Sincerely, Andrea
  18. Hi @Chau Chee Yang Fixed, thanks: https://github.com/andrea-magni/MARS/commit/c9a0d1d75a97b40a56258a6694ae6313107efd98 If you like to be mentioned in the project, feel free to open issues on Github for this kind of problems: your contribution would be public then. For the moment, I've added a comment with a link to this thread. Sincerely, Andrea
  19. Andrea Magni

    GZip compression in MARS

    Frank Lauter suggested me to implement chunking in MARS but I haven't done it yet. I guess one should implement some sort of caching in order to avoid continuously gzipping the same content just to serve a specific chunk to the client. Would be very interesting to cover this as it may result in a great performance boost for large data transfers. Sincerely, Andrea
  20. Andrea Magni

    GZip compression in MARS

    Hi @Bjørn Larsen, thanks for you contribution! Some thoughts: I would say compression should be done as last step before sending back the response to the client. I mean, we can take advantage of the AfterInvoke mechanism (attaching an handler or not according to Engine parameters). This should be more generally available to all MARS TMARSActivation implementation (only one in the official repository, I know). Another point is that some deployment methods (Apache/IIS) may provide compression natively and I would let this instead of our implementation. What about moving your implementation to the Server.Ignition unit (MARSTemplate demo)? See code below as draft... I guess one could even implement a symmetric BeforeInvoke to support compression also the other way around (from client to server), I don't know how this is popular/expected, however. Using Response.SetHeader may lead to multiple Content-Encoding headers to be set at the same time (TPrimitiveTypesWriter, in MARS.Core.MessageBodyWriters.pas for instance sets the Content-Encoding to provide some information about text encoding. This may be a mine misunderstanding however... I need to check this sooner or later... if anyone has something to say about this, please do!). I switched to setting the Response.ContentEncoding property as I was having trouble with Postman (and Chrome) when multiple Content-Encoding headers were set. // Compression if FEngine.Parameters.ByName('Compression.Enabled').AsBoolean then TMARSActivation.RegisterAfterInvoke( procedure (const AActivation: IMARSActivation) var LOutputStream: TBytesStream; begin if ContainsText(AActivation.Request.GetHeaderParamValue('Accept-Encoding'), 'gzip') then begin LOutputStream := TBytesStream.Create(nil); try ZipStream(AActivation.Response.ContentStream, LOutputStream, 15 + 16); AActivation.Response.ContentStream.Free; AActivation.Response.ContentStream := LOutputStream; AActivation.Response.ContentEncoding := 'gzip'; except LOutputStream.Free; raise; end; end; end ); Let me know what you think about. I would be glad to accept your PR then... Sincerely, Andrea
  21. Kyle_Katarn31

    Broken proxy support with ICS 8.61

    Thanks, I'll give this a look and will come back with result and / or questions 🙂
  22. Angus Robertson

    Mustangpeak UltraExplorer

    Having put this off for several years, I'm now attempting to build UltraExplorer 2.5, don't know if the source ever actually built, no exectutable in SVN. Think I've installed all the necessary visual components (not all are listed in About), not necessarily the same versions MustangPeak used for Delphi 7, and I'm using Delphi 2007. The main form loads OK, but I can not find ClipboardProc.pas except on a Chinese site that appears to be dead, anyone got it? Still correcting errors and mismatches between components and forms, not sure the TNT defines are set everywhere. But getting close to building it. Angus
  23. Yes, IIRC you're correct. We had to (IIRC) use the .dproj file switch because for whatever reason (bug?) the compiler ignores the compiler directive but does respect the .dproj flag. (To add, in our case the "C++ output file generation" was also already off, however the compiler still emits/emitted this warning from one of the Synopse modules e.g. SynCommons.pas: "'ESynException.CreateLastOSError' with identical parameters will be inaccessible from C++" (and checking the module was being recompiled from scratch.) The only way that worked was the .dproj flag.
  24. Bill Meyer

    On The Design Of Uses Clauses

    I have had some correspondence with them. At present, the problem is that the project is huge, and some of these issues depend on third-party components, as well. One example I have already communicated to them is with respect to DevExpress components, where there are numerous units involved in various features, such as look and feel, which they identify as removable, but which are required. It is not a huge issue, and CnPack is similarly confused by DevExpress, so I generally remove them, and the file save puts some back in.
  25. The original code in QualityToInt causes a System.LoadResString for each "case" it checks every time you call that method and System._UStrEqual for the equals check. Neither of those two methods have changed between those versions according to the diff I just did. However LoadResString calls quite a number of other functions that I did not check for changes. I would say a dictionary is pretty much overkill here for those 3 strings - it only is faster because you eliminated the (as I assume) LoadResString calls every time. Try initializing values you compare to only once instead of comparing against the resource strings. I am pretty sure that will beat the dictionary.
  26. Uwe Raabe

    On The Design Of Uses Clauses

    If you can provide reproducible test cases, you should send them to Peganza. They are always interested in cleaning out those glitches.
  27. OK, I finally got around to finding out what the problem is. turns out string comparisons got massively slower from 10.3.1 to 10.3.3 for iOS. Here is what I did approximately 6000 times: function QualityToInt(aQuality: string): ShortInt; begin if aQuality = rsPoor then Result := 0 else if aQuality = rsAcceptable then Result := 1 else if aQuality = rsGood then Result := 2 else Result := 0; end; Where rsPoor etc. are defined as resourcestring. This (plus some other stuff) took 100 seconds. Changing that to filling a TDictionary with the appropriate pairs once and doing a if not QualityDict.TryGetValue(aQuality, Result) then Result := 0; instead not only improved iOS performance (now 20 seconds) but the Windows version is noticeably faster too. So...granted the latter is better code. But still: What got broken along the way?
  28. Bill Meyer

    On The Design Of Uses Clauses

    I can attest that the Peganza Pascal Analyzer Lite Uses Report has been very helpful. Note, however, that it is by no means perfect. 1. It seems always to report falsely that a class helper unit is not needed. 2. It tends to suggest removing units which are actually needed. 3. It sometimes asserts a unit ref can be in implementation, when the IDE wants to replace it in interface. 4. Form inheritance complicates the issues. That said, it is the only tool I am aware of which provides assistance in finding which unit refs can be demoted to implementation. For removal of unused units, I prefer CnPack, which does a test compile, and works with the map file, I believe.
  1. Load more activity
×