Jump to content

Dany Marmur

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Dany Marmur

  1. Dany Marmur

    thread-safe ways to call REST APIs in parallel

    I am going to suggest something completely different here. Even though you may have "corporate decisions" or some such to use certain libraries, some 3rd party libraries has these thing pinned down with examples and demos and stuff. In order to learn the "advanced basics" of concepts a demo or even a one-dev-one-year licence can take you a long way IMHO. Two tricky concepts and two 3rd parties with the "umpf" to educate properly (not just with "Hello world" demos): http and multithreading: real thin client, https://rtc.teppi.net/ Firebird/full blown RDBMS advanced transaction handling: http://www.ibobjects.com/. HTH
  2. Dany Marmur

    Saving tree to Data Base

    @Martin Wienold According to the current programming on the radio (sunday service) everyone, e v e r y o n e, deserves mercy so Mercy you shall have! In abundance!
  3. Dany Marmur

    Saving tree to Data Base

    In Firebird (and i am sure other RDBMSs) you have a BLOB subtype. If this subtype is set to text, you can do where clauses on the BLOB column. But the use of querying the blob content re the OPs needs sounds useless, so. Emphasis on "effectively", ok!
  4. Dany Marmur

    Working with SVG in OpenXML SDK in Delphi

    misc_bb, delphihtmllibrary has an "office" add-on. It is almost as pricey as the .net variants out there. I have incorporated it now at around 40% for my own imlementations. Comes with image handling classes too. Generally, it looks great. You should IMHO send an e-mail to them for a quote or more info. Pure delphi code, no external libs, so quite unique actually.
  5. Dany Marmur

    What is this syntax?

    So writing "= 0" is similar to "explaining variables" IMHO. Not the worst.
  6. Dany Marmur

    What is this syntax?

    type myEnum = (meFirst = 0, meSecond, meThird); ... myUnitExternalButCompiledArray[Ord(myEnum)] ... Pure Delphi. Useful or "anti-pattern"? Please note that this is not a flame, it is a sincere question. Regards, /D
  7. Dany Marmur

    Working with SVG in OpenXML SDK in Delphi

    I am not 100% sure about the reference to the blog, but it seems like it is a set of examples of how to manipulate OOXML files. I would guess that the samples do not contain a specific routine for what you are trying to do. So what i used to do is read the specs, let word do it (whatever complex operation) and analyse the resulting file from word, then mimic the "actions" needed for a complete "operation". There's also the Microsoft SDK tools to inspect files rather than unpacking and sifting through the archive with EditPad or VS. The SDK tool exposes the some C# classes and i would guess (have not checked, not interested in having a .net dll in my server setups) they have some functionality, but that is .NET and i am 100% Delphi, so zip + xml it is for me. HTH I should say that i started to exchange my own ooxml code with delphihtmlcomponents office library, one reason is that i hate writing image manipulation routines 🙂
  8. Dany Marmur

    How to create a grid that looks like this

    I have personally avoided all "owner draw" thingies since HighDPI. It is detailed and cumbersome to write painting code, especially upon another component as the exact way it's done varies a lot. But that's me, i have always had a little "quiziness" for pixel handling. My 15 yrs old mastodont had a lot of owner draw. I took time to develop and it bites back sometimes. Enough tl;dr! I have no idea about your budget, and did see "no more dependecies", but this seems like a "match in heaven" for https://www.delphihtmlcomponents.com/. If you are using DevExpress it should be quite possible with their grid too, but the result IMHO would be a bit more efficient with htmlcomponents *if* using their "adorners" or similar. HTH
  9. Do Zeos "skip" or hide the prepare/unprepare stage? Anyway/anyhow, these implementation specifics would be the "way the library works" and would/could be different for each library. The most convenient behaviour for the lib users should be the goal (easily said...). Regarding this specific case i tend to agree that i would like to get an exception, otherwise i might do something resource-intensive by mistake. Here, IMHO, devs will use trial-and-error (i'm not advocating it, simply stating). If an exception is thrown (would be done at #4 too upon access w/o open?) "they" will be "nudged" to read-up and handle the resources correctly. And if a reprepare/reopen is called, the dev intentionally requested that. So at first glance #4 looks good.
  10. Dany Marmur

    JSON parsing question

    { "myArray": [10, 20, 30, 40], "myObject":{"subValue":44}, "version":"1.2" } { "myArray": [10, 20, 30, 40], "myObject":{"subValue":43, "subName":"AHA!"} } If "version" is missing, it's null. If "subName" is missing it's null. Or to express it differently any conceivable value not specified is null. It's actually like objects in JavaScript, you can almost "add anything to them anywhere". Or like this; If a JSON does not have a schema, then you can definitely miss "stuff" if you "analyse" it. So JSON requires documentation or a kind of "schema" IMHO, at least in your use case. HTH, correct me if needed.
  11. Dany Marmur

    Class tree utility released

    Excuse my stressed question (i do not have the time to...) what is the difference between this (OT) and DelphiAST? TIA, /Dany
  12. Dany Marmur

    Need suggestion on developing a custom component

    The way Alexander solved the OP problem is a brilliant example for when to use one "technology" and ditch another. The OP was about VCL? Yes? I would have thought that FMX already had thingies to cover for what i these days find are easier achieved in HTML5/CCS3 compared to Win32/VCL painting approach. But each time i read a post on FMX, if digging, i conclude that FMX is... they peeps that are into it are not happy. (I have only used VCL, oh and OWL and C++ and APIs, but never FMX). I actively subscribe to Alexanders "office suite". This is gold for me. But regarding desktop VCL stuff i have DX. Regarding desktop VCL stuff there are a lot of alternatives! Alexander do not need to put effort into the site, because all and every one who payed up for any version of his components is happy. Me too! Mr. Sviridienkov is showing some pretty effective "muscles" regarding building components. I have some personal ideas and comments about the way support and subscription is handled, but i am sure that as his business grows he will put those thing in place. If not for me so for him, himself and and his. If you have only the finances for one 3rd party component suite, go HTML components!
  13. Dany Marmur

    Few do-not in website

    Attribute? <tag-name attribute-name="attribute-value"></tag-name>
  14. Hello Trevor! Normally, i would pay for licenced "components" or "libraries". Sources intended to be incorporated in "any" project but more importantly something that is properly interfaced (not depending on more stuff, and so on). So; i see screenshots of an application. Is it is only after i have purchased a licence that i can actually put my head around the code-stack? I cannot see anything about the code itself. How would i know anything about integrating "source code" into *my* project if i ether cannot have docs + demos or sources (before payment) to scrutinize? I have an "application framework" of my own (as does many developers), so i am rather confused as to how to evaluate your offer. TIA, /Dany
  15. @haentschman all the love for Firebird!! Frickin' cool RDBMS engine 🙂 W/o the big companies meddling (a.k.a foundation-based). @all, check out 4.0. Just released!
  16. Dany Marmur

    OmniPascal: Auto-Implementation of methods not working

    In that case, my laudable applauds! Saw the issue "SmartPascal - OmniPascal". I have an old bad conscience where i got Mr. Budde to start implementing a VC LSP for SmartPascal (w/o the RTl-ish stuff). The project never kicked off (mostly because of my neglect). But it would be an absolute BOON if Emba + Wosi would author [VC] LSPs for both Delpi/Freepascal. And if the SMS team would have an interest, they could do VC by plugging into Delphi LSP. But they want to sell their IDE + RTL-ish stuff.
  17. Dany Marmur

    FireDAC: Need help understanding "ConnectedStoredUsage"

    The statement in "docs" you referred to is blatantly super-non-verbose. Never use complex 3rd party lib w/o sources.
  18. Dany Marmur

    Few do-not in website

    You mean "client side", in all invocations of all the browsers i personally use? Server-side i deliver *everything* from the same server. No CDNs, no trickery, no 3rd party anything. Just knockout.js (and bootstrap but that sh*t that will be purged in 6 months hopefully, meaning jQuery will go away too). Thanks!
  19. Dany Marmur

    Few do-not in website

    It's kind of funny that they (fb) used the path "tr" for that endpoint. TRacking. Why did you put the red square on the google gets above and below? Are you saying the above and below requests are related or is it to emphasize the double square to the right?
  20. Dany Marmur

    Few do-not in website

    @Anders Melander, so ok, they use Jira... I know you said that to add information in order to cater for the OPs ruminations. But i cannot refrain... All decisions are decisions and someone "took" them. M: So we want a captcha. DV: It's a bit tricky in Jira. M: So do trickery, then. DV: OK. Result: nobody no-one not anyone "own" or remembers this. Kas Ob (and me) suffers... Should have been (1): M: So we want a captcha. DV/A: Why? M.... Result: working login Jira page. Should have been (alt 2): M: So we want a captcha. DV: It's a bit tricky i Jira. A: Why do we want a captcha? Why do we need Jira? What is would the results of a "trick" be? DV/M/A: [5 hours of weighing scenarios] Fuck captcha! Result: working login Jira page. ** or ** Should have been (alt 3): M: So we want a captcha. DV: It's a bit tricky i Jira. A: Why do we want a captcha? Why do we need Jira? What is would the results of a "trick" be? DV/M/A: [5 hours of weighing scenarios] Fuck Jira! Result: Neat and nice clamped down system for doing what is important. Happy Kas (and me)! ** or ** Should have been (3): M: So we want a captcha. DV: It's a bit tricky i Jira. A: Why do we want a captcha? Why do we need Jira? What is would the results of a "trick" be? M/A: [5 hours of weighing scenarios] Fuck the DV, get his a** kicked! Result: Better Emba. My $.005
  21. Dany Marmur

    Fail faster than calling Connected := True?

    @bobD, well, you'll have to choose "technology" from the base of your needs. FTOMH, Some DACs have the concept of "delayed updates". Might work good with a DB without too many triggers. This is a kind of client-centered approach since the client has the logic for updating several rows at a time (deferred posts). Then you could synchronize DBs server-wise, here comes changed views (or FB triggers) in use. Good for a database where the "main stuff" (i.e. the sychronized tables) are few and their updating not over-complicated. None of these two approaches requires you to write a middle-tier server (perhaps you would need a server-side process with a DAC to do the actual synching but that is another thing) A middle tier would pack a request of data into some proprietary format (yes, a ClientDataSet could be used to transport the data) and send that up the line. For changes a middle-tier server could either work with the client using a "delta"-scheme (to only process changes) or a edit-post-scheme (communicate the events of a TDataSet). I'm sure there are additional techniques.
  22. Dany Marmur

    Fail faster than calling Connected := True?

    When i had direct connections to DBs from applications, i would do the connection in a thread so the UI at least was responsive during a possible time-out trial. The only solution that will cover this is a middle-tier. One could probably write a very small https server that only knows/cares about the DBs availability (sits on the same machine) and thus every now and then checks the DB. You could the make a simple request to that "database discovery service". /D
  23. Dany Marmur

    How to Highlight a Control that Fails Validation

    This sound like your starting point. You send something to someone (server). Then you should get a response (as you indicate above). Does the response contain validation information? Then that information must be mapped to the control (perhaps via a field DataLink) and code written to indicate what is a miss. If the response does not contain error information specific enough, then you option would be to show an error message unconnected to the "field" that is the culprit. Show us the response from the server for better advice.
  24. Dany Marmur

    Q for MAPI Expert

    In Winapi.MAPI there is the InitMapi method called before a lot of operations. I have traced into that method from TSendMail.Execute. The method tries to read some registry keys but fails. I have checked another MAPI implementation i have access to, the one in madExcept. That exact registry check can be found there to, but it's commented out (!). I have been googling but there's so much noise! Is it a VCL (Vcl.ExtActns/Winapi.MAPI units) bug? TIA, /Dany