Jump to content

stijnsanders

Members
  • Content Count

    42
  • Joined

  • Last visited

Everything posted by stijnsanders

  1. stijnsanders

    ISAPI DLL concurrent requests

    Would you like to share some code? From what I learned about isapi from making xxm, it's important to catch any and all exceptions in your code, and not have them pass through into IIS as it can't properly handle Delphi exceptions and indeed may terminate the worker process. Typically you have a try except inside of every callback handler, the except clauses set an appropriate return value, but never re-raises, perhaps writes to an extra log.
  2. Just to be able to support TLS without the need for extra DLL's, I've used Windows' own 'SChannel' for a project once here.
  3. 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...
  4. stijnsanders

    GZip compression in MARS

    Does MARS do streaming? Or does MARS do transfer-encoding chunked? (If so, you're apparently supposed to gzip first and then do the chunking...)
  5. stijnsanders

    his control requires version 4.70 or great of COMCTL32.DLL

    I remember Windows introduced manifest resources into exe files at some version and they also control the mapping to one of the versions of comctrl.dll that is present in the system. Could a manually modified .manifest file be causing this problem?
  6. stijnsanders

    Relaxed JSON

    I've been dabbling on a JSON parser that accepts pascal strings, and "=" instead of ":", and allows missing ","... https://github.com/stijnsanders/jsonDoc
  7. stijnsanders

    registering D6

    I rember something about old Delphi versions acting up when you've done some of the most recent windows updates. If I recall correctly, you need to delete a key "LM" under HKEY_CURRENT_USER\Software\Borland\Delphi\6.0 and then start Delphi to re-create that value with the right data.
  8. I've noticed something strange with Delphi 10.3 update 2: If you have the IDE maximized, minimize it, and restore it again, the window appears to get narrowed a bit, even the "X" top right is no longer visible. Is that a bug that is recently introduced, or is this something I only get?
  9. stijnsanders

    COM server to MARS

    I would respectfully request you to have a look at an alternative web platform I've been working on: https://github.com/stijnsanders/xxm It's not really designed to do REST endpoints, but all of the worker threads are COM enabled and also the main interface to generically connect all of the things any HTTP server environment offers is a COM interface. If I understand correctly, mapping each request to and from the different COM objects and their methods should be set up. This could be quite a manual task, or in the best case partially generated from scripts based on the IDL, but for a public facing HTTP endpoint it's important to do input sanitation and other security measures.
  10. stijnsanders

    HMAC_SHA256

    I copied the reference code for sha256 and hmac to Delphi once, have a look if you can make these work for you: http://yoy.be/md5.html
  11. stijnsanders

    Funny Code in System.Types

    Guys, are all of you missing this? Due to the Pascal calling convention, the first (plain!) argument of a function maps into the same register(s), so in fact this is valid and correct code. Though strictly I agree it looks weird and like as if in 'normal' cases the Value members aren't assigned to Result members. Bit in fact, they're already there! So what is actually needed is a 'type size limiting' cast, which is exactly what Result.x:=SmallInt(Result.x); is.
  12. stijnsanders

    LLVM static C objects triple need for IosSimulator

    Shoudn't that be "i686-apple-darwin-sim"? https://clang.llvm.org/docs/CrossCompilation.html
  13. stijnsanders

    Laufleistung

    I like alliterations, what about "total tire travel"? https://dictionary.reverso.net/german-english/Leistung
  14. stijnsanders

    DelphiTwain on 64-bit

    Even so, is TWINDSM.DLL you're using also 64-bits? (Is this the place to get current ones?)
  15. stijnsanders

    JSON string value

    Funny thing is, I recently had to think back at how I started with Delphi. Yes I did a bit of Turbo Pascal before, but I can't clearly remember what exactly it was I needed to get fluent in Delphi. As far as I can vaguely remember, it all did start with the documentation and the 'get stated' tutorial. Even if something like that covers the bases, the next step should be obvious. You should have enough knowledge to start a simple project. I remember my first Delphi project was a good old numbers to roman numerals converter. And I took off from there. (And about the initial discussion, sorry but I can't help it, I want people to know: If you know what you're doing, and really really need only the JSON and nothing extra, I've written my own no frills JSON parser here)
  16. stijnsanders

    Saving a large project takes soooo Loooonnnnggg..

    Would mounting a RAM-disk (perhaps with something like ImDisk) work with speeding it up?
  17. stijnsanders

    Git UI tools

    I use both TortoiseGit and https://gitforwindows.org/ without any problem. Comitting shouldn't feel like it's not easy. I've worked with TortoiseSVN (and still do) as well, and with git you just need to remember you're comitting to something local and still need to push to a remote somewhere. (and/or fetch and merge)
  18. stijnsanders

    Can TFDQuery (SQLite) work as fast as TFDmemtable ?

    My own clean SQLite 3.dll wrapper is here: https://github.com/stijnsanders/TSQLite
  19. stijnsanders

    Exclude already read posts

    I just consume the RSS feed with my (own) feed reader
  20. stijnsanders

    PDF Encryption

    You should check if synpdf can do it: https://github.com/synopse/SynPDF
  21. Because of the problems with Delphi's own ISAPI units, and because I'm always searching to have the thinnest possible wrapper around things, I've created my own ISAPI units for my own web-solution: https://github.com/stijnsanders/xxm#xxm There's a lot more in the project where the entire website compiles into a single library, and the ISAPI handler (or the Apache handler, or the SCGI handler) can re-compile the library if the source has changes, or auto-update the library when a new version is available, all hot-loaded by suspending incoming requests a little while unloading the old and loading the new. But in this specific case I wonder if you would run into the same problem if you base your project on xxm.
  22. stijnsanders

    TJson - Strip TDateTime property where value is 0?

    In case anyone would be interested. Because when working with Variants with ADO, and because I really dislike long lists of overloads, I've created my own JSON handler fully based on Variants (and arrays of Variants, and Variants holding IUnknown derivatives...): https://github.com/stijnsanders/jsonDoc#jsondoc And Variant has a Null value as well, which could solve this problem. (And also a varDate VarType, but I just notice now that my jsonDoc converts from varDate to JSON, but not correctly back, hmm.. but like Attila Kovacs says above, it's open source so you could just add a type handler any way you like)
  23. Is there a page that lists alternatives? I would like to list my Delphi+HTTP platform there also so people can check it out and decide what would suit them best: https://github.com/stijnsanders/xxm It started as a way to use the Delphi compiler to create dynamic web-pages, and not so much a API/ORM/Data-connector style HTTP+Delphi setup you see with almost all the other solutions. I kept a strong focus on having everything for the website in a single DLL, and have the option of switching the same DLL between IIS, Apache or anything really. And even hot-swapping the DLL for a next version of the DLL, suspending new requests a little to unload the old DLL and load the new one instead. This is also something I haven't seen with other Delphi for the web solutions out there...
  24. stijnsanders

    Troubled relationship with m$Xml

    I myself mostly use MSXML2_TLB.pas imported from the type library of Microsoft XML itself, not Delphi's take on it which makes things unneccessarily complicated. Also what you may need is to set LDocument.setProperty('SelectionNamespaces','xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02"'); to make it work
  25. stijnsanders

    HELP: Using C++ .dll in Delphi

    Also use PAnsiChar instead of string. It's a stricter translation of C’s *char and Delphi has great auto conversion to and from string with it
×