Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/02/21 in all areas

  1. Dalija Prasnikar

    Asynchronous Programming Library

    Thanks! Look at the dates... he wrote about it in 2008 and the thing was included in 2015 in XE8. Why I have the feeling it was added just to add some check mark on number of new features, without thinking about the impact. At that point having proper cancellation token would be more useful feature. How is this useful in combination with PPL I still cannot figure out. Proof of concept is one thing, imposing it on TComponent is another. If it would be in domain of helper methods, then it would probably be more flexible (adjusting the behavior through inheritance is very rigid) Of course, I understand why it was implemented directly... because we can only have single helper in scope Maybe, it is handy for some quick RAD kind of development, where you need to bang up some example code fast and you need to make the application responsive. One place I know this is used is in System.Net. But, have you ever tried debugging such asynchronous HTTP requests. It is mission impossible, you have to jump through the hoops not knowing where you can safely put your breakpoint to land on some code you need to inspect because it is buried deep. Not to mention that handling request and response code is broken down scattered around in order to satisfy BeginInvoke/EndInvoke pattern. And if you take the look at the THTTPClient declaration, with zillion various Begin... methods, it becomes more obvious that implementing asynchronicity on this level is not the best idea. It brings needles complexity. Asynchronous frameworks should be implemented as wrappers around code and tasks (like PPL), not be implemented on the same level (from within the class that performs some operation). This simply does not scale well.
  2. Vincent Parrett

    Asynchronous Programming Library

    I can attest to this, currently rewriting my http client library using the WinHttp C api, as the com api doesn't work in the delphi ide (due to coinit issues) - I'm using it's async mode (not embarcadero's) which uses a callback.. the delphi debugger and it do not play well together! I really can't understand why more focus hasn't been put on the PPL, and seriously cancellation tokens are a must have. Embarcadero don't seem to have realised that the world has moved on from everything being a component you drop on a form. If I can't see it at runtime on my screen then it doesn't need to be a component/control, I'm quite capable of instantiating an instance at runtime, and I don't need all the baggage that TComponent brings along.
  3. Alexander Elagin

    Firebird Admin Tool

    IBExpert, of course (https://www.ibexpert.net). DBeaver is a good tool, but not so fine tuned for the Firebird specifics.
  4. Stefan Glienke

    Is it bug? (type inference)

    Bug and already reported - all types of typekind = tkFloat getting inferred as Extended - which then causes followup errors: https://quality.embarcadero.com/browse/RSP-25799 https://quality.embarcadero.com/browse/RSP-31289
  5. Uwe Raabe

    Asynchronous Programming Library

    Ahem, AFAIK it was in fact Allen Bauer who laid out the architecture of the APL - if not actually wrote the whole stuff himself: A Sink Programming More A Sink Kronos programming Value Capture vs. Variable Capture
  6. Vincent Parrett

    Asynchronous Programming Library

    Thinking about this some more overnight, I suspect this was designed by the same persion who designed the TTitlebar abomination (everything is arse backwards) - why on earth is all this functionality embedded in a TComponent - TComponent just getting more and more heavyweight with code that can't be removed/replaced with a better design later (like TForm now). Does embarcadero have a chief architect these days - someone to guide the overal design of the rtl and frameworks? Doesn't seem like it. I miss the days when we have people like Allen Bauer - every major feature was carefully considered with regards to future impact etc.
  7. Dalija Prasnikar

    Asynchronous Programming Library

    Nope. Frankly, it is abomination. My primary objection is that it slaps control flow into TComponent where it does not belong. TComponent is not thread safe class and asynchronous operations and multithreading imposed on that level open recipe for disaster. It does not give you more control, it takes it away from you and it is overly complicated. Maybe there are some small use cases, but I still haven't found any. At the same time we don't have cancellation token implemented in PPL which desperately needs it. Good implementation of cancelation tokens could then be used in other code even asynchronous one that does not run in threads. I have no idea what is original intent behind that library, so maybe I am missing something obvious.
  8. David Heffernan

    Is it bug? (type inference)

    Currency isn't a floating point type, it's a fixed point type. Sorry to be so pedantic, but you know me on this topic......
  9. Delphitron

    Firebird Admin Tool

    Firebird Editor Pro https://www.texteditor.pro/firebird/index.php?page=overview
  10. Zoran Bonuš

    Firebird Admin Tool

    Flamerobin www.flamerobin.org (free, opensource) Database Workbench www.upscene.com (paid) IBExpert ibexpert.net (paid)
  11. In that case, I would have created a worker thread (or threads) that have a private RIO, work in, work out queues, and a default heartbeat ping loop method that is called when the work in queue is empty .
  12. Vincent Parrett

    Asynchronous Programming Library

    One significant difference is he was suggesting a helper class for this rather than saddling every tcomponent descendant with it.
  13. Uwe Raabe

    Asynchronous Programming Library

    OK, it may still be true that for today no one else actually knows how to use it properly.
  14. Gary

    cannot load client library ibtogo.dll

    Yes, all are in folder I copied over. That was Interbase last chance. Switched to Firebird 4.0, all is well.
×