New MacBook Pro tested


We got a new MacBook Pro to test here with Core i9 CPU. This is really a mobile powerhouse and you can easily get all 12 cores busy with some real work. It looks like the MacBook Pro can do that load for half an hour easily. Yes, it may get warm above the keyboard, but it stays cold for the lower parts.

While battery may be advertised as running for 10 hours with normal usage like web surfing, well at the full work load, e.g. while compiling large project with Xcode, it may only run 70 minutes till the battery is empty. And that is to be expected as the 83.6 watt-hour battery can only deliver the 50 to 60 watts needs for the CPU for just over an hour.

GeekBench shows 4058 for Single-Core Score and 13845 for Multi-Core Score on the older MacBook Pro (15 inch, 2016) with Core i7 @2.9 GHz.

The new MacBook Pro 15 inch with Core i9 @2.9 GHz shows 5430 Single-Core Score and 23700 Multi-Core Score.

To compare, the 2 year newer model is 33% faster single-core and 70% faster multi-core.

We do not see any speed problems with the CPU and look forward to let this machine increase our productivity with more RAM and CPU power on the go than we ever had before.


QLPreviewPanel functions for iOS


As you may know MacOS and iOS provide the QLPreview functions to provide previews of files. For MacOS, the QuickLookUI frameworks offers the QLPreviewPanel class and for iOS we have QLPreviewController class. Both allow us to load some files and show the as preview.

We add QLPreviewPanel functions for iOS with next plugin release. The reason is that we want to add the feature to show a preview of a 3D object there. As Apple adds new functions for Augmented Reality, you get new 3D objects to place in scenes. And if you have those objects in your FileMaker container fields, you can now preview them right in your FileMaker iOS solution.

QuickLook Preview can show:
  • iWork documents
  • Microsoft Office documents (Office ‘97 and newer)
  • Rich Text Format (RTF) documents
  • PDF files
  • Images
  • Text files
  • Comma-separated value (csv) files
  • 3D models in USDZ format (with both standalone and AR views for viewing the model) for iOS 12 or newer.
Our new QLPreviewPanel.AddContainer function allows you to pass a container directly into the panel. If it is saved external, we can pass through pass directly. Otherwise, we write a temporary file, which is deleted later when panel is cleared or app quits.

# Prepare
If [ MBS("QLPreviewPanel.IsVisible") ]
  Set Variable [ $r ; Value: MBS("QLPreviewPanel.Hide") ]
End If
Set Variable [ $r ; Value: MBS("QLPreviewPanel.Clear") ]
#
# Add all containers you have
Set Variable [ $r ; Value: MBS("QLPreviewPanel.AddContainer"; PlaceHolder::Container; "Stratocaster") ]
#
# Run it!
Set Variable [ $r ; Value: MBS("QLPreviewPanel.Show") ]

So please try the new functions with next prerelease and let me know how they work for you!

AVCaptureVideoDataOutput improvements


We have the AVCaptureVideoDataOutputMBS Class in MBS Xojo AVFoundation Plugin. This class allows you to get live data from the camera as CMSampleBufferMBS objects. Now this was a bit slow as we did all the processing on the main thread. But for doing something useful in 30fps, you need time on the main thread for your Xojo app and we need to move as much work as possible of the heavy work away from the main thread.

So for next pre-release we cache properties in CVImageBufferMBS class. If you query NSImageMBS, JPEGData or CIImageMBS there, we will create them for you and remember the values, so in case you call the methods again, we have the values directly available and don't recreate them.

As conversion of the camera data (e.g. in YUV format) to RGB may be expensive, we want to do the conversion on the preemptive threads. So we added PrepareCIImage, PrepareJPEGData and PrepareNSImage properties to AVCaptureVideoDataOutputMBS class. If you set them, we will do the part of the work you requested on the preemptive thread and than pre-fill CMSampleBufferMBS and CVImageBufferMBS with the data, so query calls on the properties will be very quick.

This does not reduce the CPU time needed for the whole app, but moves more work to other threads, so you have more time on the main thread for your application doing something with the video.

If you plan to display video, please do not draw it yourself to a canvas, but use the AVCaptureVideoPreviewLayerMBS class or the AVCaptureViewControlMBS control (the control is 64-bit only).

If you know other places, where we could do processing on background thread and call event later on main thread with results, please let us know.

FileMaker Excellence Award


At the FileMaker Developer Conference 2018 in Grapevine Texas, I got awarded with the FileMaker Excellence Award for Innovation for my MBS Plugin:



Thanks everyone for the good wishes. The last 12 years have been an incredible journey and we look forward to the next years to add even more features for FileMaker. We hope you enjoy our plugins!

See you at the next three conferences I attend in Liechtenstein, Gothenburg, London and the other conferences in Europe where you can meet a lot of fine FileMaker developers.

MBS FileMaker Plugin, version 8.4pr2


New in this prerelease of version 8.4 of the MBS FileMaker Plugin:
  • Added Contacts functions.
  • Changed HealthKit to be loaded at runtime, so it's not required to be link to it.
  • Fixed copyright symbol character in info.plist.
  • Added Window.ClearTouchBar and App.ClearTouchBar fucntions.
  • Changed CURL functions to turn gzip decompression on by default and follow redirections.
  • Improved DynaPDF.Print to use the device mode set with DynaPDF.Print.SetDevMode even if no dialog is used.
  • Changed DynaPDF.Table.Create to automatically load font Helvetica, so you have a font defined, if you don't set one yourself.
  • Building iOS plugin now 64-bit only.
  • Updated DynaPDF to version 4.0.21.56.
  • Changed FM.InsertRecord and other SQL based functions to process field names and remove field name postfix with :: in table names.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

See you at the next FileMaker DevCon


And the next conference will be at the Gaylord Palms Resort & Convention Center in Orlando from August 5-8, 2019.



See you there!

PS: Our coupon code for DevCon 2018 is good for all August, so don't hesitate to use it, when you return at the office.

On stage at DevCon


Today at the Deploying Your Apps to Vertical and Horizontal Markets session at FileMaker DevCon 2018, I had the chance to be on the stage for a panel and talk briefly about the machine learning functions in MBS Plugin for iOS and MacOS:



If you like to try them, please watch this video and play with the examples. If you are interested in machine learning creating models in FileMaker, get blockchain functions or use augmented reality functions from Apple for iOS and MacOS to be used in FileMaker, please contact us.

New Contacts functions for FileMaker


As you may know Apple has two APIs for the address book. The older Addressbook API was introduced in Mac OS X 10.4 long ago. With MacOS 10.11 Apple introduced a second API called Contacts. Applications can use both. Sadly the don't both do the same features! This is similar to the calendar and reminder APIs where we have Calendar and Events functions.

Here is a comparison between Addressbook and Contacts APIs:


Addressbook

Contacts

Minimum MacOS

10.4

10.11

Mac 32-bit

Yes

No

Mac 64-bit

Yes

Yes

iOS

Yes

Yes

Code Signature required

No

Yes, with entitlements

Multiple Accounts

No

Yes

Modification Dates

Yes

No

Trigger

Yes

Yes

Trigger Details

Yes

No

Search by Modification Date

Yes

No

vCard Import/Export

Single

Multiple

Set Me

Yes

No

Linked People

Yes

No

Set Primary Items

Yes

No

Format Address

Yes

Yes

JSON API

No, but could be added

Yes

Query Authorization Status

No

Yes

As you see, we need to code sign the FileMaker application to add the required entitlements for the new Contacts API. But once Contacts API works, we can use it to work with multiple accounts. Like if you use iCloud and Exchange, you can create a contact explicit in the one account you need.

For the foreseeable future, we will offer both APIs and you can choose. For synchronization we will want to use Addressbook as it provides modification dates for records.

New Contacts function will appear soon in next 8.4 prerelease.


MBS Plugin Presentation at DevCon


Please watch our MBS Plugin Presentation video for the FileMaker Developer Conference 2018 in Dallas:



Enjoy the video and please visit our booth for your questions, or send an email.
Don't forget to get the flyer with the discount code for the 20% conference offer.

This year, we have no live session to talk about the plugin.

MBS Booth ready for FileMaker DevCon


Please come and visit me in the booth #20 at FileMaker DevCon:

MBS Booth

As usual you can come by, read the posters, ask me questions and talk with me about existing and future features.
We got flyers with our DevCon 2018 coupon code for the discount on licenses.

Arrived in Grapevine, Texas


We arrived a few days ago in Texas and visited the local FileMaker and Xojo user group meetings, drove around to check out some historic parts here and already got out badge for the conference.



If you join DevCon, please visit our booth. If you don't come to conference, but still like to get an appointment, you can of course email or text us. At the booth, we got some pens, gummy bears and flyers for you. Including our DevCon 2018 coupon code for the discount on licenses.

MBS FileMaker Plugin, version 8.4pr1


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

Archives

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