Jump to content

mjustin

Members
  • Content Count

    101
  • Joined

  • Last visited

  • Days Won

    2

mjustin last won the day on February 5 2023

mjustin had the most liked content!

Community Reputation

28 Excellent

About mjustin

Recent Profile Visitors

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

  1. 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
  2. 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.
  3. 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:
  4. 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/
  5. 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?
  6. Thank you for reporting - I have fixed the error, please try again.
  7. 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)
  8. 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.
  9. HTTP is a stateless protocol. Therfore, closing the connection should not cause any client-side errors. And connections are not "transferable" between processes or machines.
  10. Which HTTP client / component / library is used? (Indy, ICS, ...)
  11. mjustin

    Daraja HTTP Framework 3.0 released

    A first example is now online at https://habarisoft.com/daraja_framework.html More examples will follow. Many thanks for your suggestion!
  12. mjustin

    Daraja HTTP Framework 3.0 released

    The 3.0 Version contains some API improvements, all changes are listed here: https://github.com/michaelJustin/daraja-framework/milestone/9?closed=1 Noteworthy are * a simplified, parameterless Init method for WebComponents (and WebFilters). * methods which register WebComponents (and WebFilters). return an object which can be used for further configuration. * overloaded registration methods: instead of Context.AddWebComponent(...) and Context.AddWebFilter(...), Context.Add(...) can be used. The unit tests, code examples and API docs have been updated accordingly.
  13. Daraja is a compact and flexible HTTP server application framework for Object Pascal, based on the HTTP server included in Internet Direct (Indy). The framework uses URL patterns to match requests to your resource handler code, and optional request filtering for pre- and post-processing. It enables developers to create well-structured HTTP server applications, written with 100% open source code. Daraja HTTP Framework is dual licensed under the GNU Affero General Public License and a commercial license. More information - GitHub: https://github.com/michaelJustin/daraja-framework - API documentation: http://michaeljustin.github.io/daraja-framework/ - Features and FAQ: https://www.habarisoft.com/daraja_framework.html
  14. Habarisoft released new versions of the native STOMP client libraries for Delphi / Object Pascal for integration with popular open source message brokers: Habari STOMP Client for ActiveMQ 9.2 – tested with Apache ActiveMQ 6.1.4 Habari STOMP Client for Artemis 9.2 – tested with Apache ActiveMQ Artemis 2.38.0 Habari STOMP Client for OpenMQ 9.2 – tested with Eclipse OpenMQ 6.5.0 Habari STOMP Client for RabbitMQ 9.2 – tested with RabbitMQ 4.0.4 and 4.1.0-beta.1 Release notes: https://www.habarisoft.com/release_notes.html
  15. 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. Full example code is included. Location: https://github.com/michaelJustin/daraja-framework/tree/master/demo/17_google_refresh_token Requirements Daraja HTTP Server Framework (https://github.com/michaelJustin/daraja-framework) Indy 10.6.3 (https://github.com/IndySockets) OpenSSL DLLs for Indy (https://github.com/IndySockets/OpenSSL-Binaries) Delphi 2009+ 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. Security considerations The example code uses response_mode=form_post to receive the access token. Unlike with response_mode=fragment (or query), the browser does not receive the access_token parameter in the redirect request URI. Therefore, the access_token is not accessible within the browser’s memory. The example code 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. “Don’t use the application secret in a native app or single page app because a client_secret can’t be reliably stored on devices or web pages. It’s required for web apps and web APIs, which can store the client_secret securely on the server side.” (source)
×