Jump to content

Wagner Landgraf

Members
  • Content Count

    122
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Wagner Landgraf


  1. 46 minutes ago, Anders Melander said:

    Maybe you can get an older version of VTune to work.

    Probably that's what is happening here. I had an older VTune version that worked, and now I installed Tuen 2024 which doesn't. (Of course, "working" was very limited, it didn't support any hardware assisted profiling, but at least the Hotspots with no hardware was working, just to profile application logic).

     

    The problem is: where the heck to I find old VTune versions to install? I search everywhere, and I can't find any information. Closes I found was to register for Intel account and go to some download/registration center, but nothing is displayed there are it only lists "registered" products.

     

    Does anyone happen to have an old offline installer of 2023, maybe 2022 VTune?


  2. Has anybody tried to use VTune inside a VM with M1 (ARM MAC)?

    I recall I was able to use it, but I rebuilt my VM and now I can't make it work. I get this message:

     

    [Instrumentation Engine]: [tid:15552] Failed to allocate Injector, Error = INJECTOR_ERR Pin is exiting due to fatal error

     

    I just couldn't find anything relevant about this issue when googling for it. Even the VTune matrix demo doesn't work (so not related to map2pdb). 


  3. 4 minutes ago, David Schwartz said:

    Note that descope and Memberful are both viable "no-code" businesses with a growing user base

    Do you have reliable sources for this?

     

    Quote

    What neither descope nor Memberful offer is the ability to interface with them at a much lower level, which is what a Delphi foundation might offer.

    I don't know those tools specifically, but that's basically what a "no-code" solution is. Otherwise it would be a "code" solution. 🙂


  4. One of the most famous authentication SaaS is Auth0. Never heard about descope before. While those tools are really full-featured, they can get expensive pretty fast if your app grows.

     

    TMS Sphinx is our (TMS Software) alternative Delphi library for those solutions, where you build your own "descope-like" or "auth0-like" server yourself:

     

    https://doc.tmssoftware.com/biz/sphinx/guide/

     

    Things like "adding custom fields to user profile" would obviously not be an issue, since you have full control your authentication server.

     

    TMS Sphinx doesn't have all those enterprise features they offer, of course. But it's still OAuth2 compliant and has many features for an authentication server that servers most purposes, even for multi tenant, public SaaS services.

     

     

    • Like 1

  5. 10 hours ago, David Schwartz said:

    how to get around the Sparkle dependency on Windows

    That is not a "workaround" nor it's a "Sparkle dependency on Windows". Sparkle offers multiple ways to create an HTTP server, using different frameworks/APIs: Indy, Web Broker, http.sys...

    Of course, http.sys is a Windows kernel/API, so obviously it will only work on Windows. So if you want to create an HTTP server on Linux, you can't use http.sys, neither with XData nor any other framework in the known universe. 


  6. 1 hour ago, David Heffernan said:

    So for the original question that's not an issue because that is for Windows. 

    I didn't understand your statement. Isn't that the exact original question? This is what I see in original post:

     

    "

    But for other Delphi user's using exactly the same project NaN is displayed !

    Why ?

    Does any Windows language settings can do it ?

    "

     

     


  7. 5 minutes ago, David Heffernan said:

    Click on the word no

    I did. It works - on Safari. 

    After you mentioned I tried in Chrome, and then it doesn't work. But it's not a 404, instead a connection refused.

    Looks like it's because the link is insecure HTTP, which is rejected by Google but somehow Safari forces it to be HTTPS - which then works.


  8. 4 minutes ago, David Schwartz said:

    Personally, it makes no sense to me. They've got a huge installed code base that's stable, reliable, and fully debugged. So why go with another platform where all of the code is new, will take a couple of years to get to where the Delphi version was three years earlier, and will be full of bugs for the next several years? Why not build the NEXT version in Dephi, re-use as much existing code as possible (reducing your programming needs to some extent) and save a huge amount on development costs? Like I said, Delphi is the platform that companies love to hate today.

    I've seen such pattern all the time, since many years already (it started right after the Delphi 2005 fiasco). I often agree that "rewrite our software in X" is usually a bad idea. And I've also seen that happen - many companies who tried to migrate to another platform failed, either spending lots of money, either not being able to develop a product as good as they have before in Delphi, and many other failure stories. If you think about it, even TMS history had similarities with that. We were a pre-Delphi 7 component vendor company, and after that period, many component vendors went doing something else of "migrated" to .NET. 

     

    Of course there are successful stories of migration as well. But I understand the companies: I believe what scare them is Embarcadero behavior and their dependency. If they simply snap their finger and decided "no Delphi for you", many companies will have problems. But "no Delphi for you" I mean shutting down, not fixing bugs, not updating, whatever. It's a dangerous dependency. You might say "well, there are already doing that by not fixing bugs" and I would reply saying that that's the #1 reason I see companies *today* willing to migrate away from Delphi.

    • Like 2

  9. 1 hour ago, Lars Fosdal said:

    I have countless numbers of these and I am starting to wonder if they should be rewritten to

    That is not needed. The else is implicit in the try..except block, if an exception is not trapped in the "on" clause, it's re-raised.

    The point here is if you have code that needs to be executed, like a transaction rollback, or a log message that needs to be generated, etc.

    • Thanks 1

  10. 2 minutes ago, PeterBelow said:

    There is a case, though: if the code inside the try block calls something in a DLL and that DLL function does not trap any exceptions raised inside the DLL code these would bubble up the exception handler stack into your try except block, be trapped there but not recognized as deriving from the Exception class. This would even be the case if the DLL is written in Delphi, unless DLL and EXE are build with the same Delphi version and with run-time packages enabled for both projects.

    Thank you very much. That's the kind of situation I was wondering. So it's possible, especially because in the end Delphi apps are calling DLLs often. I just don't know the odds of such situation to happen. 


  11. 6 minutes ago, Uwe Raabe said:

    Just curious: What problem are you actually trying to solve?

    I've detected an odd behavior in an application that I can't explain yet why it happened. I searched for database transaction management as I felt it was related to it. All the transaction-related code has the usually pattern try..except, having a Rollback in the except block followed by a raise.

     

    Then I found there was only a single try..except which was constructed the way in my first post. DoSomething would be the rollback. All the other transaction-handling in the application code had the rollback just directly in the except block, not inside the "on E: Exception do". Interestingly enough, the different try..except was in a place that is somehow involved with the error.

     

    So I wondered if there might be a remote chance that some error happened, a non Exception object was raised, the rollback was not called, the exception was re-raised and everything continued as usual, but without the call to the rollback.


  12. Considering the following code:

    try
    except
      on E: Exception do
      begin
        DoSomething; 
        raise;
      end;
    end;

    Is it possible, in "real" applications (*), that in the case of something bad happens, DoSomething method does not execute?

     

    (*) I know that any object can be raised as an exception, so I understand that in theory, you can have exception objects that do not inherit from Exception class.

     

    But my question is more in this way: I know that my code doesn't raise any exception object that does not inherit from Exception. Also consider that third party libraries used do not do that.

    Is it still possible that DoSomething method doesn't execute? Say, for example, if some really low level error happen, Windows API calls, DLLs, etc.?


  13. 44 minutes ago, David Schwartz said:

    Does the TMS HTTP Config tool handle everything needed for dealing with the Windows firewall? (Do I even need the firewall running inside of the VM?)

    No.

     

    Quote

    I have the XData service set to watch on http://+:80/xyz and added an entry in the HTTP Config tool for that. Is there more that might be needed?

    You have to be sure your computer is accessible from outside - if you want to access it from outside. This is your config and out of scope for the http config tool.


  14. I also have a Mac and develop with Delphi in a Parallels VM inside it. I run XData servers in Windows and access them from Mac. There is not much different to do besides network configuration: properly configure your Windows Firewall to accept incoming requests, and making sure the VM is accessible from the Mac with the correct IP.

     

    I use Shared Network in Parallels, not bridged, but I also had not a problem when I used bridged. I believe you will have to dig more into your network configuration. Also try to temporarily disable the Windows Firewall to see if you have configured it properly.


  15. 1 hour ago, Lars Fosdal said:

    How deeply tied are the TMS Biz classes?

    It's only used to compile the generator executable. Anyone can compile, teste and contribute to code with the trial version.

    The compiled executable is provided so you don't need TMS BIZ to use it.

    The generated client code doesn't require TMS BIZ and works in both Delphi (XE8 and up) and Lazarus.

     

    About the custom generator, there are events in the code that you can use to intercept and modify the code generation.

    The OpenAPI parser can also be used separately, of course.

×