Search the Community
Showing results for tags 'ai'.
Found 11 results
-
After finishing migration from D2007 I could finally use libraries that previously were not available to me Now I needed to add an Event Bus implementation to my toolbox, and was between Delphi Event Bus and NX Horizon So I asked Claude Code to make me a summary of each one, and also an argumented list of strengths and weaknesses Then I asked it to assess me for my use case (I'm an ERP developer) spinettaro/delphi-event-bus: Delphi Event Bus (for short DEB) is an Event Bus framework for Delphi dalijap/nx-horizon: NX Horizon - Event Bus for Delphi ● Event Bus Comparison & Recommendation for CyberMAX ERP After analyzing both implementations, here's my detailed comparison and recommendation: Architecture Comparison | Aspect | Delphi Event Bus (DEB) | NX Horizon | |--------------|--------------------------------------------|--------------------------------------------| | Code Size | 1,790 lines (4 files) | 715 lines (1 file) | | Event Types | Dual: Interface-typed + Named channels | Single: Type-based (TypeInfo) | | Thread Modes | 4 modes (Posting, Main, Async, Background) | 4 modes (Sync, Async, MainSync, MainAsync) | | Subscription | Attribute-based ([Subscribe], [Channel]) | Programmatic with interface return | | Min Version | Delphi 2010 | Delphi XE4 | | Thread Pool | Custom (Delphi 28.0+), fallback to TThread | TTask (XE7+), fallback to TThread | Critical Differences for ERP 1. Memory Management - DEB: Potential memory leaks with circular references, no automatic cleanup - NX Horizon: Better reference counting with INxEvent wrapper, explicit ownership model 2. Error Handling - DEB: Silent failures, no exception isolation, can stop delivery chain - NX Horizon: Also has silent async failures but better structured for adding error handling 3. Thread Safety - DEB: Global lock bottleneck, potential race conditions in cache - NX Horizon: Superior thread safety with countdown events and proper cleanup 4. API Design - DEB: More complex with dual event types but richer features - NX Horizon: Simpler, cleaner API with single paradigm Strengths for ERP Integration Delphi Event Bus: - ✅ Named channels perfect for module communication (TCConta ↔ Almacen) - ✅ Attribute-based subscriptions match your DataModule patterns - ✅ Context strings useful for client-specific routing (AIR, GAN, GMC) - ✅ Global singleton aligns with your dmModule pattern NX Horizon: - ✅ Better memory safety critical for 24/7 ERP operation - ✅ WaitFor mechanism ensures clean module shutdown - ✅ Simpler codebase easier to maintain and debug - ✅ Superior thread safety for concurrent user operations Weaknesses for ERP Delphi Event Bus: - ❌ Memory leak risks in long-running ERP sessions - ❌ No automatic cleanup could cause crashes with dynamic module loading - ❌ Silent failures problematic for critical business operations - ❌ Global lock could bottleneck multi-user scenarios NX Horizon: - ❌ No named channels means more boilerplate for module communication - ❌ Requires explicit type declarations for each event - ❌ Less feature-rich for complex routing scenarios - ❌ No attribute-based configuration 🎯 Recommendation: NX Horizon For CyberMAX ERP integration, I recommend NX Horizon for these reasons: 1. Reliability: Superior memory management and thread safety are critical for an ERP that runs continuously and handles financial data. 2. Maintainability: Single-file implementation (715 lines) is easier to understand, debug, and modify than DEB's 4-file architecture. 3. Safety: The WaitFor pattern aligns perfectly with your DataModule lifecycle, ensuring clean shutdown of interdependent modules. 4. Performance: No global lock bottleneck means better scalability for multiple concurrent users. 5. Integration Path: The type-based approach maps well to your existing record types (dmodModule.records.pas). Integration Strategy // Define events for module communication type TFacturaCreatedEvent = INxEvent<TFacturaRecord>; TStockUpdateEvent = INxEvent<TAlmacenMovimiento>; TContaAsientoEvent = type Integer; // AsientoID // In your DataModule hierarchy TdmModuleHigh = class(TdmModule) private fEventSubscriptions: TList<INxEventSubscription>; public procedure AfterConstruction; override; procedure BeforeDestruction; override; end; Migration Considerations If you need channel-like behavior, create a wrapper: type TChannelEvent = record Channel: string; Data: TValue; end; TChannelMessage = INxEvent<TChannelEvent>;
-
After many times of copying and pasting debug messages (OutputDebugString) from the debugger view to the Claude Code (CC) form, so it could read it all, I decided making a MCP server that will just provide that: services to catch and read debug messages I had no idea on how to do that, but nevertheless asked Claude (rhe chat) to make a plan for it, so CC could just follow the instruction. Then asked CC to add it to one test MCP server I already had working. With help from another CC instance that connected to the server and tried using it, and finding why it errores, it's working now I've attached the initial document that Claude made (could have asked it to GPT or Gemini or whatever) Then I asked the CC instance that was using it for helpful enhancements I've attached both documents If there is interest on it, I could make a public repo MCP-debug-server.md MCP-debug-server-enhancements.md
- 9 replies
-
- ai
- claude code
-
(and 2 more)
Tagged with:
-
Automated splash window with fully alive automated progress bar (made 100% with Claude Code)
Javier Tarí posted a topic in General Help
This repository has been done 100% using Claude Code. I've not edited myself even one single line (In my opinion, if you don't know what's Claude Code, and you are a senior programmer, then you are losing money) Even the documentation and the readme have been written exclusively by Claude Code. The only file I've done is the .gitignore. What is this "Automated splash window with fully alive automated progress bar"? The splash screen runs as a second program, so it will always be animated and alive, even if your program is not responsive Your program only sends messages as "Initializing flowers", "seeding whatever", "Randomizing stuff" when it cans The splash screen will show a live progress bar, some animations, and your status messages At the same time, it learns how long it takes from program start to each message, and as soon as it has started at least 3 times, the progress bar will use the times learned, so it will progress correctly It keeps learning, and stores the latest 30 times your program runs, trying to be as precise as it can with thr progress bar I know the aesthetics are not good at all, but you can adjust that at your heart's content Where is the repository? JavierusTk/Splash: Automated Splash screen that keeps alive and autocalculates time left-
- ai
- claude code
-
(and 1 more)
Tagged with:
-
gpt I’ve just created a GPT to assist with programming in TMS Web Core
Juan C.Cilleruelo posted a topic in I made this
Delphi TMS Web Core Development Architect I referenced the user manual downloaded from the TMS Web Core documentation site, along with a cleaned-up version of the example files that ship with the product. Since the originals are never exposed, I believe this does not infringe any copyrights. I hope you all find it useful. I think you can use it with the free version of ChatGPT. Try it and comment, please. -
Hello everyone! Together with the Softacom team, I have been exploring how AI can support Delphi projects. As part of these experiments, we created a video showing how to use OpenAI features to generate text, images, and speech via an Embarcadero Delphi FMX app. If you are curious how these APIs can be integrated into your Delphi workflow, check out our video. I hope you will find it useful! Watch the video: If you prefer reading, we have article versions too: Generate text with GPT: https://www.softacom.com/blog/development/text-generation-capabilities-with-delphi-fmx-application-via-openai-api-gpt-models/ Create images using DALL·E: https://www.softacom.com/blog/development/image-generation-capabilities-with-delphi-fmx-application-via-openai-api-dall·e-models/ Convert text to speech with OpenAI API (TTS-1 and WHISPER-1 models): https://medium.com/@softacom.com/speech-and-text-by-speech-generation-capabilities-with-delphi-fmx-app-via-openai-api-tts-1-and-b19293070588
-
New TeeBI demo, one line of code calls the Google Gemini api and imports the results into normal TeeBI structures. These data then can be simple visualized or queried. The idea is to add more AI agents (ChatGPT etc) transparently in the near future. https://github.com/Steema/TeeBI/tree/master/demos/3rd_party/AI uses BI.AI, BI.DataItem; procedure TForm_AI_Demo.Button1Click(Sender: TObject); var Data1 : TDataItem; begin // One line of code, call Gemini and get a data structure: Data1:=TBIAI.From('your key', 'Give me the list of the highest 10 mountains by elevation in csv format, just the list', TBIAI.GoogleGemini); // Visualize it: BIGrid1.Data:=Data1; // in the grid BIChart1.Data:=Data1; // in the chart end;
-
How to Use ONNX Runtime in Delphi for Object Detection
Serge Pilko posted a topic in Tips / Blogs / Tutorials / Videos
Softacom has recently created a video showing how to use ONNX Runtime in Delphi to run object detection. The demo includes: A quick overview of ONNX Runtime Three integration approaches Pros and cons of each method, from HTTP services to native DLL calls and Python wrappers Live examples of AI-powered object detection in action And most importantly: how you can set it up the same way If you are exploring ways to bring AI features into your Delphi application, this video might be helpful. Watch it here: https://youtu.be/WDaCjraF9ts -
Add AI super power to your Delphi apps - Free Live Webinar May 20th
TMS Software Sales posted a topic in Tips / Blogs / Tutorials / Videos
Ready to add AI superpowers to your Delphi apps? Join our free webinar tomorrow! 📅 May 20th | 🕒 3 PM UTC / 5 PM CEST Already 270+ developers have signed up to learn from Bruno Fierens how easy it is to integrate AI using TMS libraries. Bruno will guide you step-by-step—from working with Large Language Models (LLMs) to building your own AI agents. Smart, simple, and powerful! 🎁 Bonus: Participate and get an exclusive discount on TMS ALL-ACCESS! 👉 Sign up: https://www.tmssoftware.com/site/tmswebacademy.asp?id=168 -
Has anybody already implemented a MCP https://modelcontextprotocol.io/introduction Server in Delphi? Any tips, or quickstarts?
-
I have a project that I originally started for a presentation at the ADUG 2023 Symposium, which was on AI and ChatGPT. Since then I have continued to improve it and added more features to it. One of the goals of this project is to provide a library to Delphi Developers that enables them to easily use various AI models / engines that are currently available. Currently this is mostly done through calling various different REST API's that different companies provide, although another goal is to enable models to be used locally where practical. Features include: - Voice Recognition - Text to Speech - Image Generation - Face Detection - Large Language Models (LLM) like GPT. I have created various example programs that exercise the different API's as well. Today, OpenAI released some new features and API's. I have since added support for Dall-e-3 and the Text to Speech engine so far. To find out more have a look at https://github.com/geoffsmith82/Symposium2023
-
AI experiences, GPT3 Leta series
Rollo62 posted a topic in Algorithms, Data Structures and Class Design
Hi there, I received my OpenAI beta test account recently, after waiting for that more than a year now. Finally I was very much excited about the AI capabilities, as I watched the amazing Youtube series of GPT3 Leta from Dr. Alan Thompson, who is experimenting with the DaVinci model and avatars to provide a real human chat experience. This machine will easily pass the turing test IMHO. Well, but when I first checked the Playground, I found the GPT3 models were not so much evolved as I expected. I also tried out the REST API, with the same disapointing outcome. GPT3 often gives completely wrong answers, mostly doesn't understand anything at all, not even a name or very basic texts, and all in all its far from capabilities of the Leta series I mentioned above. So maybe this is the case because I have not provided enough or wrong training data, but there is also no real explanation howto provide information, and especially what data would be really needed, to enable GPT3 to deliver most useful results. In the meantime during waiting for GPT3 access, I already tried GPT-J and tried others, but they all were not especially "intelligent" neither in understanding normal texts nor in providing real world answers (like: who won the latest nobel price in physics ?). Now I would say GPT3 is on a same level as GPT-J, at least when it comes to a unspecific chat application. What is Dr. Thompson's secret to make it so clever ? I assume that all GPT3 models use the same training data ( it was mentioned that training data was used only from the time until year 2018 ), so that also Dr. Thompson's machine should be using the same data. I wanted to ask if anybody here in DP had also some AI experiences, and maybe could squeeze better results out of GPT3 ? Would be great to exchange some tips and hints. howto handle AI best.