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.
And after adding multiple columns to our
ListDialog functions, we got the wish for a header, so we added that, too. Here a screenshot from MacOS:
You just need to call
ListDialog.SetColumnCount for the number of columns, then one call to
ListDialog.SetColumnHeader function for each title. Finally add text rows with tabs as separator. The list can be filled easily with a SQL query if needed.
Coming soon for next MBS Plugin 9.2 prerelease.
Just today our
ListDialog functions got support for multiple columns in a list dialog. Here a screenshot for MacOS:
and one for Windows:
You just need to call
ListDialog.SetColumnCount for the number of columns you need and then add text rows with tabs as separator. So it can be filled easily with a SQL query if needed.
Coming soon for next MBS Plugin 9.2 prerelease.
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.
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.
FileMaker developers are invited to join the local
FileMaker meet-up group.
The dinner meeting is 30th April 2019 at the Bubba Gump Shrimp Co. restaurant in Miami.
Please add yourself to the group on the
meetup website.
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.
Am 11. Juni 2019 veranstaltet die Medio-Ingeno AG einen FileMaker Event in Meilen am Zürichsee:
FMnext III
Zahlreiche FileMaker Vorträge am Abend rund um FileMaker, Empfang und einem unterhaltsames Special am Ende.
Bitte den Termin vormerken und frei halten.
While we interact a lot with each other in your development community via forum, social media and tons of emails, we should not forget the importance of being in a live face-to-face setting with others. Being active in the developer community can bring many benefits. There is power in being connected to other developers who are active in the same area. It can be easy to skip meetings and not come to the annual conferences, but soon you may have skipped them for several years. Joining the forums is not enough, you need to be active and post regularly. But to build personal connections, you need to join the conferences and meet the persons behind the forum avatar.
(more)
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.
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.
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.
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 ended
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.
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.
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
- 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.
(more)
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.
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!
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.
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.
New in this prerelease of version 9.2 of the MBS FileMaker Plugin:
- Updated DynaPDF to version 4.0.27.78.
- 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.
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.
New in this prerelease of version 9.2 of the MBS FileMaker Plugin:
- Added 20ms pause after setting copies in Printer.Print to let dialog notice the change.
- Added Archive.Verify function.
- Added DragDrop.CreateOnPopoverWithControl and DragDrop.CreateOnPopoverWithSize.
- Added DragDrop.GetHTML and DragDrop.GetRTF functions.
- Added DynaPDF.GetViewerPreferences and DynaPDF.SetViewerPreferences functions.
- Added FM.SetLastError function.
- Added MapView.FormatDistance, MapView.ParseDistance and MapView.PlanRoute functions.
- Added Math.PolylineEncode and Math.PolylineDecode functions for Google's Encoded Polyline Algorithm Format.
- Added new optional type parameter to PrintDialog.SetOption and PDFKit.SetPrintOption to set data type.
- Added new parameter for Files.CreateAlias to specify icon for the alias/link file.
- Added PDFKit.GetPrintLastSettings function.
- Added PDFKit.GetPrintOption and PDFKit.SetPrintOption functions to set custom options.
- Added ProgressDialog.GetImageHeight, ProgressDialog.GetImageWidth, ProgressDialog.SetImageHeight, ProgressDialog.SetImageWidth to show bigger images.
- Added Screen.Scale function.
- Added Text.DecodeIMAPFolderName function.
- Adjusted offsets for DragDrop.CreateWithControl to position on top of control better.
- Changed Archive.Content to return error if archive is broken.
- Changed Dialog.Run to return error if called on Server.
- Changed DynaPDF.Initialize to load dylib on iOS, too.
- Changed HealthKit loading on iOS a bit.
- Changed Printer.Print to only set collatePages is 0 or 1 and ignore parameter otherwise.
- Changed ProgressDialog on Windows to respect DPI of display.
- Changed SQL functions to not complain about missing functions with freetds.
- Changed SQL.SetConnectionOption to pass more options to commands for MS SQL: SQL_ATTR_CURSOR_TYPE, SQL_ATTR_QUERY_TIMEOUT, SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_SCROLLABLE and SQL_ATTR_CURSOR_SENSITIVITY.
- Disabled HealthKit for public release due to Apple's automatic tests. If you need a plugin with HealthKit, please contact us.
- Fixed a problem with FMWrapper loading for Mac runtime apps.
- Fixed a problem with NTML authentication with CURL functions on Windows.
- Fixed an issue where notification on iOS would not show up in the app or trigger script.
- Fixed Archive.Content to return flags correctly.
- Fixed bug in JSON generation for NULL strings.
- Fixed bug with WordFile.SetMarkers.
- Fixed LDAP timeout functions LDAP.GetNetworkTimeOut, LDAP.GetTimeOut, LDAP.SetNetworkTimeOut and LDAP.SetTimeOut.
- Fixed problem with delimiter detection in FM.InsertRecordCSV.
- Fixed problem with Path.RemoveLastPathComponent and path ending with (back)slash.
- Implemented Process.SetFrontMost for Windows.
- Improved error handling for DynaPDF.ImportPDFPage function.
- Manually applied CURL fix: vauth/oauth2: Fix OAUTHBEARER token generation #3377
- Manually applied NTML fix for CURL.
- Removed compatibility for Windows Vista, so Windows 7 is minimum to load MBS Plugin.
- Updated CURL to version 7.64.1.
- Updated DynaPDF to version 4.0.27.77.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.