Add the Saxon processor to MBS Plugins?

For years we had XLST 1.0 and XQuery in the plugins using open source libraries. We could add the Saxon processor library for XLST, XQuery and XML Schema functionality. But that library has a cost as a commercial library, so making a plugin would only work if we have enough people taking it. We are collecting a list of developers interested in this to know whether it is feasible to do this.

(more)

Omegabundle for Xojo 2024 ends in a few days

Omegabundle ended

Find computer location

Sometimes you may work on a project for macOS where it would be useful to know the location of the computer. You can use CoreLocation classes in MBS Xojo Plugins to query the location, but maybe it is not available, so lets check status.

We can ask locationServicesAvailable to check whether the API is available and use locationServicesEnabled to check whether it is enabled. Nowadays most Macs have location enabled, but sometimes in a cooperate environment, it may be turned off. If turned off, we can stop bothering asking the user.

Sub Init() If Not MyLocationManager.locationServicesAvailable Then MsgBox "Location Services are not available." end if if not MyLocationManager.locationServicesEnabled then MsgBox "Location Services are not enabled." end if End
(more)

MonkeyBread Software Releases the MBS Xojo Plugins in version 24.4

Nickenich, Germany - (September 17th, 2024) -- Monkeybread Software today is pleased to announce MBS Xojo Plugins 24.4 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 3000 classes and 82,000 documented features, and the versatile plugins have gained more new functions:

Use the ZxingBarcodeMBS module with the functions there to read barcodes from images. We support 18 different types of barcodes including EAN, UPC and QRCodes.

We improved our Linux support by using newer compilers for all 4 Linux targets: 32- and 64-bit on ARM or x86 architecture. This enables 32-bit Linux support for newer parts of our plugins. You can use JSONMBS class, Phidget classes, LibUSBTransferMBS class and XL classes there.

Use Handoff to continue tasks on your other devices with macOS or iOS. The NSUserActivityMBS class helps you to implement this in your Xojo project and pass the current state from one device to the other device.

If you use CURL to retrieve emails from your IMAP server, please use the DecodeIMAPFolderName function to decode folder names from UTF-7 encoding. You can specify not just the minimum required TLS version, but also the maximum and we have new constants for these. We improved CURLSMultiMBS class to let you better reuse CURL objects.

Showing a statusitem in the Mac menubar can be done with our NSStatusItemMBS class. Use the new DidMove and DidResize events to notice if the statusitem moved. The DidChangeOcclusionState event tells you if the statusitem got hidden when the screen resolution is too low to show all statusitems.

With DynaPDF you can query the encryption state of the file with the GetInEncryptionInfo function and the DynaPDFEncryptInfoMBS class. The TestPassword function and verify whether a password is correct.

We improved the MongoDB classes with better trace logging. The MongoCursorMBS class can now provide all records as one big JSON string.

The TidyDocumentMBS class got a Tidy() function to make the usage easier and tidy up XML and HTML with a function call. You can list all option names with the OptionNames function.

The NetSNMPMBS class got new properties for SNMPv3 support, the NSViewMBS class got a hitTest() function to find a view in the hierachie based on screen coordinates and in SceneKit you can specify shader modifiers with new properties in SCNMaterialMBS and SCNGeometryMBS classes.

Finally we updated CURL to version 8.10.0, DynaPDF to 4.0.92.261, LibXL to 4.4.0, openssl to 3.1.6, SQLAPI to 5.3.4 with DuckDB 1.0 support, SQLite to 3.46.1 and Tidy library to version 5.8.

See release notes for a complete list of changes.


Plugin backwards compatibility to older operation systems

In general we recommend you use a recent Windows version and a recent Linux distribution, so you have all the security fixes. But sometimes we get asked about support of older versions.

We tried the upcoming 24.4 plugins on Windows 7, Windows 8 and Ubuntu 18 to verify what works. Here are the results:

(more)

Xojo Stammtisch in Wien

Wer hat Interesse an einem Xojo Entwicklertreffen im September in Wien?

Einfach in gemütlicher Runde treffen in einem netten Restaurant und beim Abendessen was über Xojo reden. Vielleicht habt ihr ja auch Fragen und Probleme, wo ich helfen kann?

Zeit wäre ca. 18 bis 21 Uhr, so dass man auch später kommen oder früher gehen kann.

Termin: 23., 24. oder 26. September Termin Umfrage

Bei Interesse bitte bei uns melden.

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.

Read barcodes with newer zxing classes

We had zxing classes in our plugins to recognize barcodes for many years. The older zxing library we used got outdated, but there is a successor. The zxing library got branched and we can use the newer versions with a different interface to make new classes and a module for Xojo:

The new module has two methods to take a picture and find barcodes:

(more)

MBS Xojo Plugins, version 24.4pr6

New in this prerelease of the 24.4 plugins:
  • Fixed problem with ReadBarcodes function in ZxingBarcodeMBS module.
  • Updated LibXL to version 4.4.0.
  • Fixed thread naming to avoid renaming main thread.
  • Updated SQLAPI to version 5.3.4 with DuckDB 1.0 support.
  • Improved CURLSMultiMBS class to clear cancel flag for CURLSMBS objects.
  • Fixed NSFileCoordinatorMBS constructor to accept nil parameter.
  • Added DidMove and DidResize events for NSStatusItemMBS class.
  • Added DidChangeOcclusionState event for NSStatusItemMBS class to detect if your item is not shown.
  • Changed captureStillImageAsynchronouslyCompleted event in AVFoundationMBS class, so it prepares CMSampleBufferMBS with Picture when set PrepareCIImage, PrepareNSImage and PrepareJPEGData is set in AVCaptureVideoDataOutputMBS class.
  • Added shaderModifiers and handle properties for SCNMaterialMBS class.
  • Added shaderModifiers for SCNGeometryMBS class.
  • Updated CURL to version 8.10.0.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


Deprecation of TLS 1.0 and 1.1

Anyone still needs TLS 1.0 and 1.1 when working with MBS Plugins?

OpenSSL plans to disable them by default. We should do the same.

Everyone moved to TLS 1.2 and 1.3 as far as we know, so nobody should need the older one. The version 1.2 was published in 2008 and most browser already removed support for the older ones.
The older versions had weak ciphers and digest algorithms which shouldn't be used anymore. It's too easy to attack such connections and be the man in the middle, who could decipher the content.

Let us know if you still need older versions. Otherwise they will get disabled in future plugins, probably next year.

Managing File Access in Xojo with NSFileCoordinator

In the realm of cross-platform development, handling file access consistently across different operating systems can be a challenging task. For Xojo developers working on macOS or iOS, NSFileCoordinatorMBS and NSFilePresenterMBS from the Monkeybread Software’s Xojo plugins offer a powerful way to manage file access while avoiding conflicts with iCloud. In this blog post, we’ll delve into a practical example of using these classes in a Xojo project.

Introduction to NSFileCoordinatorMBS and NSFilePresenterMBS

Before we dive into the code, let’s briefly understand what NSFileCoordinatorMBS and NSFilePresenterMBS do:

  • NSFileCoordinatorMBS: This class helps in coordinating access to files across different processes. It ensures that multiple processes can read from or write to a file without interfering with each other, thus avoiding file access conflicts.
  • NSFilePresenterMBS: This class works in tandem with NSFileCoordinatorMBS and represents a file or directory that presents its state to the file coordinator. It allows your app to be notified of changes to the file or directory it is coordinating. We won’t really use this class today.

Example Scenario

Let’s walk through a simple Xojo application example where a user selects a file, and the application reads its contents. We will use NSFileCoordinatorMBS and NSFilePresenterMBS to manage file access on macOS or iOS while skipping these steps on Windows and Linux.

(more)

xDev Magazine 22.5 Issue

The September/October (22.5) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Xojo and MQTT by Tim Dietrich
MQTT is a low-resource messaging protocol that lets devices communicate with each other. It's ideal in scenarios where a device might not have a lot of power or connectivity. Tim explains how to use this with your own Xojo apps.

Balancing Act (Raspberry Pi Part 9) by Eugene Dakin
If you've ever wanted to use your Raspberry Pi to detect tilt and other movements, Eugene is here showing how to connect a gyroscopic sensor and read the results with Xojo.

Invaders from Space! by Marc Zeedar
In this fun summer project, Marc creates a version of the classic Space Invaders game in Xojo. You'll learn how to do animation, explosions, collision detection, and other aspects of game play. Use it as inspiration for your own retro games!

Design Patterns 6 -- Supporting Undo by Marc Zeedar
If you thought supporting undo in your app was difficult, it's because you weren't using the Command design pattern. Marc shows how it makes undo easy!

Plus: Topics such as how to use ChatGPT 4o-mini to correct your grammar, using overlays, retro gaming with Xojo, an interview with Kem Tekinay, and more!

17 years of MBS Xojo DynaPDF Plugin

About 17 years ago we started the development of our DynaPDF Plugin.

After a year of development, the plugin was released to the public on 1st Sep 2007 with MBS Plugin 7.6pr1.

This plugin has been a big success for us and provides the PDF engine to thousands of Xojo applications around the world. Based on user feedback we got a lot of functions over the years like the raster engine, PDF/A conversion and ZUGFeRD support.

Please make sure you try the plugin, make it part of your toolbox and start to enjoy all the PDF features you can add to your application.
The biggest plugin in space...

Archives

Aug 2024
Jul 2024
Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008