Jump to content
Registration disabled at the moment Read more... ×

mjustin

Members
  • Content Count

    109
  • Joined

  • Last visited

  • Days Won

    2

mjustin last won the day on February 5 2023

mjustin had the most liked content!

Community Reputation

31 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Habarisoft released new versions of Delphi and Free Pascal STOMP 1.2 client libraries for leading open source message brokers, tested with Apache ActiveMQ Classic 6.1.6, Apache ActiveMQ Artemis 2.40.0, Eclipse OpenMQ 6.5.0, and RabbitMQ 4.1.0. Full release notes: https://www.habarisoft.com/release_notes.html Blog Announcement with pricing and licensing changes: https://blog.habarisoft.com/2025/08/habari-stomp-clients-release-2025-08/ Limited time offer: use coupon code 082025 to receive a €20.00 discount.
  2. Sending emails through Exchange Online using SMTP with OAuth2 can be a robust, secure alternative to traditional username/password authentication. This project on GitHub is still "work in progress", but has successfully been tested now: https://github.com/michaelJustin/delphi-smtp-with-oauth2 The blog post https://blog.habarisoft.com/2025/08/secure-delphi-smtp-with-oauth2/ describes the three steps to send SMTP mails via Exchange Online with OAuth2 authorization and Object Pascal. Step 1: Configure Exchange Online and Register an Entra ID App Step 2: Acquire an OAuth2 Access Token Using Indy TIdHTTP and the Client Credentials Grant Flow Step 3: Send Email Using Indy TIdSMTP with OAuth2 Access Token With under 150 lines of code, the project stays lean and transparent—making it easy to adopt, extend, prototype, and test without overhead. Technical references: * Authenticate an IMAP, POP or SMTP connection using OAuth
  3. mjustin

    Sending Email via GMail Using OAuth 2.0 via Indy

    For Delphi 2009 and up, there is example here: https://github.com/michaelJustin/daraja-framework/tree/master/demo/17_google_refresh_token This application launches a local web server and requests an access token and a refresh token. After authentication and authorization is done, the tokens are displayed in a web page together with a button, which allows to request a new access token. Note: the example code contains the configuration for an existing public Google Cloud App registration. You may configure it to use a different App registration by modifying the constants in unit MainUnit. I have not tested it for a while, and not specifically used it for sending an e-mail. But it covers advanced authorization steps. The example uses PKCE, which stands for "Proof of Key Code Exchange", an extension of the OAuth 2.0 protocol that helps prevent code interception attacks. The example does not require a client secret.
  4. ScroogeXHTML for Object Pascal converts RTF (Rich Text Format) documents to HTML5 and XHTML. This release features * support for RTF documents which use an alternative way to represent Symbol font characters, using Unicode and a special mapping table. This alternative representation is used in newer RTF writers, for example LibreOffice. It is not documented in the latest RTF specification. Blog post: https://blog.habarisoft.com/scroogexhtml/2024-07-24-scroogexhtml-updates/ Key Features * Exports to stand-alone documents or fragments for embedding in existing documents. * Converts hyperlink fields, bookmarks, multi-language, and LTR/RTL text. * Includes an API for post-processing of the intermediate DOM-like document. * Includes full source code. * It's fast. Resources * Home page: https://www.scroogexhtml.com/object_pascal.html * Demo version: https://www.habarisoft.com/scroogexhtml/9.4/ScroogeXHTMLDemo.zip Save €150 Throughout July and August, ScroogeXHTML Server Deployment Licenses (1,000 concurrent users) are available with a €150 discount. The discount code is applied automatically at checkout. Other platforms ScroogeXHTML is also available for the Java platform. (different feature set)
  5. mjustin

    Experiences with D2Bridge Framework

    In the early 2000s, we used MIDAS aka DataSnap to communicate from a Delphi client application with a Delphi server over the Internet. It used TClientDataSet in the client and TDataSetProvider on the server side. The server used the SocketServer DCOM bridge. It worked well, with clients around the globe, connected to a single server. The client application used all kinds of DB-aware controls, e.g. the ExpressQuantumGrid. Client and Server exchanged data packets in a proprietary format, using a "briefcase" model, but from the developer point of view there was just a Datamodule with Datasets.
  6. mjustin

    Profiling Tools for Delphi Apps?

    Used it between 2005 and around 2010 with Delphi 7 (and maybe 2009). If I remember correctly, it worked well.
  7. mjustin

    Profiling Tools for Delphi Apps?

    https://www.delphitools.info/samplingprofiler/ "SamplingProfiler is a performance profiling tool for Delphi, from version 5 up to both 32bits & 64bit Delphi 12.x (and likely the next ones). Its purpose is to help locate bottlenecks, even in final, optimized code running at full-speed." ... "With version 1.7+, SamplingProfiler includes a small http web server which can be used for real-time monitoring of the profiled application. The monitor provides code hot-spot information in real-time, in HTML or XML form."
  8. For applications that need to process existing RTF documents—like those stored in BLOB fields—speed is critical. The new Convert to Text Preview feature makes one use case effortless: with a single property setting, you can instantly extract and convert the first paragraph of your RTF documents to HTML, delivering fast, reliable previews in your application. Instead of processing and converting the entire RTF document, only the first paragraph is extracted and converted to HTML. With minimal post-processing, the resulting HTML can easily be rendered or used as plain Unicode text. A preview demo for ScroogeXHTML 9.3 is available at https://www.habarisoft.com/scroogexhtml/9.3/ScroogeXHTMLDemo.zip
  9. mjustin

    RichEdit with MSSQL

    While the encoding issue can be solved by transforming the RTF to plain text (iirc TRichEdit can help with this), the bigger obstacle is the amount of data which will be read if the RTF is 'unlimited' in length. A workaround would be to process and show only a part of the RTF as plain text.
  10. I enjoyed reading your contributions on SO and your blog posts on this topic, for example https://www.uweraabe.de/Blog/2010/08/16/the-visitor-pattern-part-2/ ("The Visitor Pattern – Part 2"), which I think are a essential reading:
  11. The first two experiments evaluate GitHub Copilot Free and JetBrains AI Assistant in the context of maintaining Doxygen comment blocks. It highlights how each tool integrates with the IntelliJ code editor through their respective IDE plugins. A second article will cover VS Code. https://mikejustin.wordpress.com/2025/04/20/create-or-improve-software-documentation-with-an-ai-tool/
  12. The full source code of the ScroogeXHTML component is included in the registered version. I'm not sure about the other components. Are you suggesting that the demo code should be included in the demo download as well?
  13. Thank you for reporting - I have fixed the error, please try again.
  14. ScroogeXHTML for Object Pascal converts RTF (Rich Text Format) documents to HTML5 and other markup formats. The 9.2.1 release contains minor documentation updates. Features Exports to stand-alone documents or embeddable fragments. Provides many conversion configuration options. Supports hyperlink fields, bookmarks, multi-language and LTR/RTL text. Includes complimentary code for converting and embedding images as Data URIs. Conversion of pictures to a web-ready format may require third-party libraries. Includes an API for intermediate processing of the internal DOM-like document. Compatible with Delphi 2009 and newer and Free Pascal 3.2.2. Includes full source code. Resources Home page: https://www.scroogexhtml.com/object_pascal.html Demo version: https://www.habarisoft.com/scroogexhtml/9.2.1/ScroogeXHTMLDemo.zip User guide: https://www.habarisoft.com/scroogexhtml/9.2.1/docs/ScroogeXHTMLGettingStarted.pdf Release notes: https://www.habarisoft.com/scroogexhtml/9.2.1/docs/api/version.html Other platforms ScroogeXHTML is also available for the Java platform. (different feature set)
  15. mjustin

    Exception in AsyncReceive

    In this case, JclDebug or madExcept (commercial) may be useful. They can be used to include detailed information about exceptions, including stacktraces.
×