MBS FileMaker Plugin, version 9.2pr3

New in this prerelease of version 9.2 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Windows Font Dialog

We have some new functions for you related to the Windows standard font dialog.

For FileMaker, the new TextView.ShowFontPanel function can show the font dialog and let user change the font settings. For MacOS, the function will show the system font panel, which allows you to adjust font information asynchronously.

For Xojo, the new TextArea.WinShowFontPanelMBS function can show the font dialog for a text area. Please use NSColorPanelMBS class and NSTextViewMBS usesFontPanel property for MacOS. The panel floats and allows to change font information for current text area.

In both cases, the dialog shows with current font selection, than user can change them and the new font settings are applied to the current selection in the text.

Changes are coming to next prerelease of our FileMaker and Xojo Plugins. If you like to test today, please email us.

Local FileMaker Meetings in California

Due to WWDC, I'll come for a visit to California in June. As usual I like to meet other developers beside the conference and like to join local meetings for FileMaker developers in Los Angeles and San José area.

13rd June 2019 @ DIGFM

Database Interest Group for FileMaker: The user group hosted at FileMaker Inc. headquarters in Santa Clara, California. It's like a free DevCon in monthly doses. Meets 2nd Thursday of the month: 1:30pm, Meet & Greet; 2:00pm, Presentation

FileMaker, Inc (The Wedge), 5201 Patrick Henry Dr., Santa Clara CA 95054

see FileMaker Community and website

14th June 2019 @ FMDiSC

FileMaker Developers in Southern California started in March of 1999 with a small group of FileMaker Pro developers getting together once a month to exchange development tips and ideas. Meets 2nd Friday at 9:30am

184 Bimini Pl, Hollywood/Korea Town CA

see meetup.com/de-DE/FMDiSC-FileMaker-Developers-in-Southern-California/ or website

Please sign up for the groups and let them know if you like to join the meetings. Exact times may change and if you are registered, they may remind you with an email.

If you are interested in private time for consulting, training or discussion MBS or FileMaker topics, we can of course schedule a meeting. Please contact me directly if you are interested.

FileMaker meeting for Miami

Due to XDC, we'll come for a visit to Miami in early May. As usual I like to meet other developers beside the visited conference and like to organize a meeting for local FileMaker developers.

We got a survey to find a date: Survey

Please vote and let me know which date is best for most people.

If you are interested in private time for consulting, training or discussion MBS or FileMaker topics, we can of course schedule a meeting. Please contact me directly if you are interested.

New JSONMBS methods for Xojo

As you may know we have a JSONMBS class in our MBS Xojo Util Plugin to work with JSON data. The class is optimized for best performance, but some people prefer to use native Xojo classes like dictionary for representing objects.

For the upcoming 19.2 release, we'll add new convert methods to our class. You can convert from Xojo objects to JSON and back. This involves using dictionaries for the objects and Xojo arrays for the arrays in JSON. As we don't know what is in the array, we use arrays of variants.

Convert(value as variant) as JSONMBS

This function checks what is in the variant and returns a matching JSONMBS object. String, boolean, integers and doubles are just wrapped with JSONMBS objects. Dictionaries are converted to JSON objects, but we only use text for the keys. Currency values are converted to double, colors to integers, dates and texts are converted to strings before processing them. We detect arrays of String, Object, Variant, Single, Double, Int32, Int64, Boolean and Currency and convert them to JSON arrays. Anything else can raise an exception about an unsupported type.

Convert as Variant

The counter-part function on the JSONMBS class returns the varisant matching whatever is in the JSON data. The plugin will create arrays of variant, dictionaries and values (string, double, int64, boolean and nil).

Performance on the new methods should be as good as Xojo.Core.Use Xojo.Data.ParseJSON and Xojo.Data.GenerateJSON functions in the Xojo runtime. But as we use Variant/String/Dictionary and not Auto/Text/Xojo.Core.Dictionary, this may be an interesting alternative for you?

If you like to try the new methods, please email us or wait for next prerelease.

Combine MBS functions to automate processes in FileMaker

You probably saw the Workspace Innovation Platform campagne from FileMaker?
Use FileMaker to escape the work rut and automate manual processes. Two things that really help here: First the Perform Script on Server script step to offload work to the server and to do things in background. Than the use of plugins to provide the toolbox to do all the things which are not built-in to FileMaker itself.

We like to show you a few example workflows and how various plugin functions can help:

1. Image upload

CoreML in FileMaker
  • User takes a new picture on iPad for new product to go into the webshop
  • FileMaker Go puts it in a record, triggers script on server.
  • On server using GraphicsMagick functions, a script normalizes image orientation to 0°, image file format is converted if needed to PNG or JPEG. Colorspace may be conveyed to SRGB if needed. Borders can be automatically removed. Thumbnails are made as needed with removed metadata for images going to public (e.g. GPS removed).
  • CoreML functions in MBS Plugins are used with machine learning model to detect image content and assign tags automatically to image to help to find this image later by keyword.
  • Using GraphicsMagick or CGImageSource functions, we extract the EXIF, IPTC or XMP metadata of the image.
  • If needed, image can be annotated with copyright label, article number or watermark.
  • CURL functions for SFTP or AWS S3 are used to upload image to web server, so it can be referenced by URL later from websites.
  • Regularly a nice PDF can be created to automatically show a gallery of new pictures and send to print shop.

See invisible characters in FileMaker calculations

At FileMaker conference in Tulúm, we got a feature request to see invisible characters in FileMaker calculations dialog. With next MBS Plugin 9.2, you can press Command-I in the text editor and to toggle showing invisible characters. You may see tab characters, new lines and even unprintable control characters show. This applies both to calculation dialog and custom functions dialog.

Another thing we got are tab stops. By default there are 12 and we just double this to 24 for you. So you can use tab characters to organize your bigger statements. Pressing Command-R will show the ruler if you need it, so you can see the tab stops. While you can use various options there, the formatting will not be saved in FileMaker.

You can press Command-F to search for text, press Command-G to continue search and press Command-Option-C to copy text with style.

Looking for memory leaks

We try to make memory leak free plugins. That is difficult and may even be impossible to do 100%. But we try our best and if you find a memory leak, please let us know.

Especially for server applications running a long time, a leak can bring down a server. If you just leak 5 KB per second on a server script, this may be over 2 GB in a week ending up in swap storage. If it's slow enough, it will fill your server's disk with swap files, but if it leaks fast, it will also hit performance a lot!

We do static analyses on our source code to find leaks. We do use C++ classes to automatically free memory when they are released, e.g. on function end. And we use NSAutoreleasePools on Mac to collect objects and release later. We try to get memory management right and automatically get there. But there may always be things not found by us.

A memory leak you report should be reproduced in a small script/method, which can be run several times. First call my do initialization steps and trigger some framework initialization, but any subsequent call should result in a higher memory usage each time. This method may have a loop to the relevant steps a 1000 times to make it a significant leak. On the end, you should have leaked a few Megabytes, so we can look for big objects not freed or thousands of small objects of the same type. Make sure you do all the release/free calls as provided by the plugin.

Due to memory management, memory is allocated in chunks. Memory is freed with delay, so you may need a short pause for memory pools to be cleared. So two or three runs may allocate the chunks

A lot of frameworks we use do leak themselves. e.g. Cocoa framework on Mac has a lot of small leaks. So in general we are not really looking for leaks which just leak a few kilobytes every few minutes. Watching a Cocoa app in Instruments we see a lot of small leaks. We prefer to fix the leaks in our code!

PauseOnError started

The FileMaker unconference in Tulúm, México started. About 45 people sitting on the stage on a mixture of seats. Looks like not everyone is here yet, maybe due to the fabulous reception yesterday in the garden?

Looking forward to meet the FileMaker developers here and get new ideas. This is much different than the mass meeting at FileMaker Inc's DevCon.

Scan document on iPhone or iPad

With the new Continuity camera feature in MacOS Mojave and your iOS device, you can scan documents:

So you place the document on a table, you start the process on your Mac and than you take the iOS device to take a picture. The yellow area shows where the document is recognized, so you can scan it. iOS will do the crop and rectify steps and store the document as PDF. I needed, you can add more pages.

We'll also offer the possibility to show the popup menu with all options including selecting device for more than one of them. Screenshot is in German, but the texts are actually localized to your language.

MBS FileMaker Plugin, version 9.2pr2

New in this prerelease of version 9.2 of the MBS FileMaker Plugin:
  • Updated DynaPDF to version
  • In formula editor, you can now press Command-I to show spaces and control characters more visually.
  • Changed syntax colorizing for formulas to ignore white space between function name and bracket.
  • Updated Hotkey key names to use left/right/up/down for Mac and Windows.
  • Changed JSON.SetPathItem to create objects if they are missing.
  • Added new functions for taking picture on iPhone to use ona Mac with continuity: ContinuityCamera.Import, ContinuityCamera.Result and ContinuityCamera.SetScriptTrigger.
  • Changed WordFile.ReplaceTag to look for tags in document properties.
  • Changed WordFile functions to also handle OpenDocument text files.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Continuity Camera for FileMaker

As you may know there is a feature in MacOS Mojave called Continuity Camera. When an application shows a view which accepts services bringing in photos, you may receive photos from your iPhone. So when you are in TextEdit application, you can use contextual menu on the text area and choose Insert Photo from your phone. The iPhone asks you to shoot a photo and the image file gets transported back and inserted into the text view on your Mac.

In FileMaker, you run a script calling MBS("ContinuityCamera.Import") and you get this dialog:

Once the image is captured, you get a script triggered (set with ContinuityCamera.SetScriptTrigger), where you can use ContinuityCamera.Result function to get the result. You can put the result right into a container field or post process.

As an option, you can ask for a document. You get a similar window on your Mac, but iOS will ask you to scan for document pages. Multiply pages are put together into a PDF document.

The final PDF can be put in the triggered script into a container field.

Coming soon for MBS Plugin 9.2. Please contact us if you like to try today.

MBS FileMaker Plugin, version 9.2pr1

New in this prerelease of version 9.2 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.


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