Our Blog, FileMaker only, Xojo only, Archive (older)     Follow us on Twitter, Xing, LinkedIn or Facebook.

Xojo Meeting in Berlin

We are coming back to Berlin in June, so we plan a Xojo developer meeting for 2nd June 2020.

Topics may be the last and upcoming Xojo conferences, what's new in recent Xojo and MBS Plugin releases and your experiences in development.

Interested? Please contact us soon to be added to the attendee list, so we reserve enough space.
We may have a few give aways, as usual.

MonkeyBread Software Releases the MBS Xojo Plugins in version 20.0

Nickenich, Germany - (January 14th, 2020) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 20.0 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 2600 classes and 67,000 documented features, and the versatile plugins have gained more new functions:

In this release we include with JavaScriptEngineMBS class our own JavaScript engine based on the DukTape opensource project. Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. You can evaluate JavaScript snippets, get and set global properties and add custom functions written in Xojo or JavaScript.

For HTMLViewer on Windows using Internet Explorer as engine, we got new classes like IEDocumentMBS to offer many more features. We deprecated the older IE methods on HTMLViewer to declutter auto complete. And our new class brings you an Evaluate function to run JavaScript and get back the result as variant. You can call JavaScript functions and pass Xojo variants for parameters, so we pass numbers as numbers and not convert them to text. Use SetInternetExplorerVersion function to request a newer Internet Explorer version for HTMLViewer.

With MacOS Catalina Apple includes new machine learning capabilities, which you can use in your applications to update a model on device with new training data. Enjoy new events in WKWebViewControlMBS control to decide policy for navigation and load HTML files easier. Use the WKBackForwardListMBS class to navigate the history.

Enjoy ImageMagick in version 7 and use it with 8 to 64-bit color depth per pixel component and optionally HDRI support. For LCMS2TransformMBS class you can now use multi threading to run transformation in parallel.

For Windows use MFPMediaPlayerMBS to play video/audio independent of Xojo's MoviePlayer control. If you use WindowsPlayerMBS class to play mp3 files, you can now choose the audio device.

Use LMFitMBS and related classes for Levenberg-Marquardt least squares fitting algorithm. Solve boolean satisfiability problem with LGLMBS class. When using iTunesLibraryMBS class to read iTunes library content, you can now do initialization in a thread to not block user interface.

Finally we updated DynaPDF to version, CURL to 7.67.0, LibArchive to 3.4, SQLAPI to 5.0.3, zint to 2.7, LibXL to 3.8.8 and Xcode to version 11.3.

See release notes for a complete list of changes.

Xojo Developer Conference 2020

Just about two months till the XOJO.CONNECT 2020 in Nashville, Tennessee, USA starts. Today is the last day to get tickets for early bird prices with a $100 USD off.

It will be held March 25-27, 2020 in Nashville, TN at the Sheraton Music City Hotel. This conferences is the best place to meet Xojo developers from around the world in real live, make contacts, present yourself as expert and learn what is new in Xojo. Registration is currently $100 off full price till Tuesday night (14th January). Please sign up early to get the best deal.

Don't forget to reserve a hotel room. Can be cancelled later free of charge, so you don't loose anything by reserving one now. If you find a better deal, you can cancel it.

Check out the conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!

Individual licenses for MBS Xojo Plugins

As you may know we have currently 40 plugins for Xojo. We offer licenses for 37 plugins as a package, named the Complete Set. But still DynaPDF, SQL and ChartDirector plugins cost us royalties, so those are not included in the set. The other 37 plugins can be purchased separately. Our web site shows in the order page about 20 parts with direct links.

For next release 20.0 we upgraded our license key system to be able to generate keys for all parts individually. For the store we just added an "other" item as place holder. A few people asked over the last year for licenses to individual licenses, so we got this now.

Please notice the dependencies list. For example when you would purchase AVFoundation plugin, you also need Main, MacBase, MacCG, MacCocoa, MacControls and MacCF installed. Those plugins must be installed to build an application using a single AVFoundation class. If you use one of the classes from he other plugins, you may need the other plugin license, too. That is the reason we offer users interested in those plugins the whole package to avoid them later run into an issue with a missing license.

Nevertheless, if you can't afford Complete Set and you need one of the plugins, you are welcome to order a license. If you take the other item in the store, we'll ask you which one you want. And if you later prefer Complete Set within a few weeks, we may just refund the old part.

MBS Xojo Plugins, version 20.0r8

New in this prerelease of the 20.0 plugins:
  • Updated DynaPDF to version
  • Added EqualContent method to JSONMBS class.
  • Changed OpenStream for PortAudioStreamBufferedMBS class to always change format to Float32.
  • Fixed ReadError and ReadOutput for WindowsProcessMBS class to return empty string when called with value zero.
  • Added parameter for FindValueInArray and FindValueInObjectArray in JSONMBS class to compare by content.
  • Updated JavaVMMBS constructor to better find Java libraries.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Xojo Plugins, version 20.0r7

New in this prerelease of the 20.0 plugins:
  • Added threaded parameter for Constructor in iTunesLibraryMBS class.
  • Changed the text file embedded in xojo plugin files to include a random build UUID which is different each time a plugin is built as well as a Plugin UUID which doesn't change for the same plugin.
  • Implemented synchronous EvaluateJavaScript for 32-bit in WKWebViewControlMBS control and fixed bug in 64-bit.
  • Added ChannelMask and DeviceID properties to WindowsPlayerMBS class.
  • Added OpenDialogItemMBS class.
  • Added Items and Files methods to OpenDialogMBS class.
  • Added WindowsPlayerDeviceMBS class.
  • Fixed problem with Progressive property in JPEGExporterMBS not always being used.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Xojo Plugins, version 20.0r6

New in this prerelease of the 20.0 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Evaluate JavaScript for web viewer in Windows

Imaging what you could do in a web viewer in FileMaker or HTMLViewer in Xojo if you could evaluate JavaScript and get back the result?

Coming soon for MBS FileMaker Plugin for MacOS, Windows & iOS and MBS Xojo Plugins for MacOS, Linux & Windows.

Array size allocation in Xojo

When you allocate an array in Xojo, you may wonder how many bytes are allocated and when.

We measured a bit and it looks like allocating an empty array will just allocate the array structure, but not allocate data for the array values. Then when you append the first value, the memory is allocated for 16 values, byte size depending on byte size of elements. Then whenever the appended values fills the allocated space, the allocation is resized to make room for more values. The number of values added is doubled each time as you see in our table:

From UboundSize in BytesNumber of values

When you do a redim on the array, you set the allocated size to the array to an explicit value. So unless redim has already the value of ubound, a new memory block will be allocated and data is copied. There is no optimization to just change internal ubound and keep array allocation if e.g. size is just shrinking by one or two. We made a feedback request to ask for optimization: Feedback 58755.

What to do? Whenever you fill an array and you know the final ubound in advance, you can use redim beforehand and then set values. Otherwise you use append or insert methods which dynamically allocate new memory when you hit the current allocation limit.

Whether to order updates or not

As you may know you can purchase MBS Plugin license and later decide whether you purchase a license update to extend the maintenance for your license. For this we have four different customer groups:
  • First group of clients receive an email notification about the end of their maintenance and they immediately order an update. Those customers pay in advantage for future updates and in general expect they will use those newer versions. When this happens, they can add a full year (or several years) to their maintenance time.
  • Second group of clients waits till a new version comes out that has interesting new features or critical bug fixes. Those customers buy the update when needed and that is fine of course. This may mean that the customer orders an update from last year version to this year and does not get a full new year of updates as the maintenance is of course expanded from where it ended before. Or if they didn't purchase within the year after expiration, they have to pay the full price for a new license.
    When we had Black Friday offer running last November, we did email those clients to inform them that buying a new license with discount was cheaper then the update order for two years!
  • Third group of clients doesn't care for updates or maintenance. When they need a newer version after many years, they just buy a new license. We are long enough in business to see that some of them easily have a 5 year gap between orders.
  • Forth group are developers just use the plugin in demo or trial mode. Maybe they work at home and have a license only at work. Or they are consultants and the client buys the license later. Some get trial licenses several times, so we ask them kindly to purchase a license for themselves.
With everyone using the plugin, we say thank you for your business. As long as sales go well, we can continue the work.

MBS Meeting in Netherlands

As I am traveling again to the Netherlands, I like to arrange a MBS meeting for both FileMaker and Xojo developers.

Let's talk about Xojo, FileMaker, conferences, plugins and other programming topics.

Meeting will be Wednesday 8th January 2020 in Rotterdam in a restaurant near the main station around 18:00 to 21:00 o'clock. Some of you may come later, some earlier, but I try to be there around 18 o'clock to welcome you. We should have a separated space for the meeting. If you are early, wait at the bar.

Already over 20 people have announced they will come, so see you there!

If you like to join and you are not yet on the guest list, please contact us soon.

xDev 18.1 Issue

The January/February (18.1) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Numbers Please! Part 6 by Markus Winter
Wrapping up and building a demostration app.

On the Scene by Stefanie Juchmes
Getting started with Apple's 3D graphics toolkit, SceneKit.

Check Your Spelling by Eugene Dakin
Harness the power of Microsoft Word on Windows to add spelling checking to your apps.

Your First Web App -- Part 4 by Paul Budd
It's finally time to learn how to deploy the Web app!

Embedding Link by Stefanie Juchmes
How to use MBS to add links -- external or internal -- within your PDFs.

PLUS: Xojo 2019r3, Setting Goals, Color Groups, Iterators, Best of the Web, and more!

MBS Xojo Plugins, version 20.0r5

New in this prerelease of the 20.0 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Welcome 2020

Happy new year to everyone! The year 2020 will have some great news coming soon:
  • In mid January we will ship MBS FileMaker Plugin in version 10.0 with over 6000 functions! Over hundred new functions added since last release. Yes, in early December we reached the 6000 functions mark!
  • For Xojo the version 20.0 of MBS Xojo Plugins will come with over 1500 new items in our documentation. We now have 1000 global functions alone and documented 67000 items.
  • This year we'll celebrate 20 years of Monkeybread Software with a big party in April.
  • Nashville will 2020 be the target for us twice, first the Xojo.Connect conference in spring and later in summer the Claris Engage conference. See you there!
  • Later this year we look forward to the first Claris Engage Europe conference coming to Lisbon. Instead of going to the France, Spanish, Italian, English, Scandinavian, Dutch and German conferences, everyone can come to one place and meet Claris staff from Europe and USA together. And Lisbon is reachable via car, ship or train for those who prefer not to fly. It may be a nice road trip through France and Spain for us.
  • Already we signed up for the German FileMaker conference in Malbun.
  • You wait for the next Xojo conference in Europe?
    Please join Xojo.Connect in Nashville for 2020. There is no MBS Xojo Conference 2020 planned and announcement for 2021 may come later in the year.
  • Stefanie has done a great job in her first year here at Monkeybread Software. You may have notices her blog entries, magazine articles and met here at the conferences. You'll see more from her in the second year.
  • In general the year 2019 was a record year for us in sales, new customers and active licenses. We look forward to a great year 2020!
  • See you at one of the conferences!

Upgrading our HTMLViewer functions for Internet Explorer

When you look with auto complete at the methods for HTMLViewer, you see a lot of MBS functions there with IE prefix. We'll cleanup the mess and deprecate all the IE methods we have for HTMLViewer control currently. Instead of we add five new classes and provide the methods there:


All new functions now handle errors by raising IEExceptionMBS exceptions with error number and message set. We added over 50 new methods there to control HTMLViewer on Windows even more. Please let us know if you miss something.

An advantage of the new classes is that you can keep a reference to them in a property. Instead of us looking up the objects internally always, caching them will improve performance.

See also WKWebViewMBS, WebViewMBS, ChromiumBrowserMBS and LinuxWebViewMBS classes for other platforms. You may see the pattern, but instead of putting all methods directly on the HTMLViewer, we plan to move them all into classes and just give you a convenience method to get the instance for the given class.

Three days till year's end

The year 2019 will end in around three days. Do you need some more licenses?
  • Last chance to update licenses purchased in 2017.
  • You can order licenses for 2020 or later and have delivery plus payment done in 2019.
  • And of course you can order updates for several years in advance for all your MBS products.
  • As all Xojo plugin, LibXL and DynaPDF licenses are per developer, you should check if you got a new developer in your team this year and adjust licenses to match team size.
  • For FileMaker please check if you have enough license for the number of seats or servers you have in use.
Especially if you run on a budget and you want to spend some money in 2019, you can buy updates for several years in advance.

Xojo Plugins for EyeOne Devices

The print industry needs to have accurate colors and X-Rite Inc. has a few solutions in that direction. Those include various EyeOne devices to measure colors, quality control applications like ColorCert to make sure the color printed is the one specified and a cloud offering PantoneLIVE to make sure everyone uses the same color standards.

Xojo is a great development tool for cross platform applications for MacOS, Windows and Linux. A few Xojo developers write software to help them work with colors in various ways. This includes software to connect to EyeOne devices and measure colors. If you like to write such a software you need to get a SDK license from X-Rite, download the SDK and then ask us for the matching Xojo Plugin. Over the years we provided several plugins for the various SDKs from X-Rite to interface devices right from the Xojo: i1Pro3, I1IO3, i1iSis, i1Pro and i1iO.

You may also want to look in our LCMS Plugin classes to convert colors from one color space to another and the DynaPDF plugin to put your colors into the PDF files you pass to printers.

See also: Colorspaces in Xojo and Colorspaces in MacOS with Xojo

Merry Christmas

Frohe Weihnachten und ein gutes neues Jahr!

Merry Christmas & Happy New Year

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo

Franziska, Sebastian, Michael, Monika & Christian Schmitz

ChartDirector with Korean alphabet

One of our users asked whether ChartDirector can do text in Korean alphabet (Hangul). As the ChartDirector and MBS Xojo Plugins support unicode, we can answer this with a yes:

The rendering between Mac (left) and Windows (right) looks a little bit different due to different as the fonts are not identically and the platform depended parts of the drawing are not the same. But in order to use all unicode characters, please use a font containing the characters you need.

#If TargetWin32
  Call c.setLabelStyle "ArialUni.ttf"
  Call c.setLabelStyle "Arial Unicode.ttf"

As you see we specify here the font for the labels to be Arial Unicode as this font contains Korean characters. If you miss to specify the font, you get a default font, which may not contain the characters. The example will be included in future MBS Plugin releases. It also works with other asian characters including Chinese, Japanese and Thai.
If you have questions, please don't hesitate to contact us.

MBS Xojo Plugins, version 19.6pr4

New in this prerelease of the 19.6 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Older blog entries:

2019-12-18 Using pinned certificates with our CURL plugin functions
2019-12-17 Update Machine Learning Model on Device
2019-12-17 MBS Xojo Plugins, version 19.6pr3
2019-12-13 Fetch 5.8 released
2019-12-11 Xojo 2019 Release 3 Now Available
2019-12-11 Xojo Meeting in Netherlands
2019-12-10 MBS Xojo Plugins, version 19.6pr2
2019-12-10 Three weeks till year's end
2019-12-09 Our JavaScript engine for Xojo
2019-12-06 TraceFile option in MBS Xojo DynaPDF Plugin
2019-12-04 Heise Mac Dev
2019-12-03 ImageMagick 7 for Xojo
2019-12-02 Black Friday and Cyber Monday sale
2019-12-02 MBS Xojo Plugins, version 19.6pr1
2019-12-02 Top Reasons for not getting an answer email from us
2019-12-01 Birthday of our video page
2019-11-29 Xojo Developer Conference 2020
2019-11-27 Happy Thanksgiving
2019-11-26 Xojo Thanksgiving Sale
2019-11-25 SQL injections


Jan 2020
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
XML: RSS Feed XML: Atom Feed