Leaving soon from Phoenix airport.
I enjoyed a great week in Phoenix with the FileMaker DevCon and seeing so many developers:
I look forward to come back in one of the next years. There is still plenty left to see.
The picture above is from Dobbins Lookout in the South Mountain Park, a viewing place you can drive to south of downtown up on the hill (700m high).
And thanks to the Xojo developers who came to my Xojo developer meetings in Tucson and Phoenix.
I was pleased to see my logo once again on the nominee list:
Thanks for suggesting me!
Use the MBS FileMaker Plugin for FileMaker iOS SDK to receive push notifications. First on opening the solution, register for receiving them and query the device token. This device token is needed to send push notifications to the device from your servers. Push notifications can show a message to user, set the app badge or transfer data to the app:
First please review our documentation for the
UNNotification functions. When you add the MBS Plugin to the project, please also add our MBSInit framework. You may need to split both to only include the arm versions in the final app to run on a device.
After your app launched on a device, you may be asked to allow notifications. This happens only if MBSInit framework is loaded and triggers the early initialization of our plugin. The function
UNNotification.RemoteNotificationsDeviceToken returns you the device token as a long text with hex encoding. If something goes wrong, you get an empty text there and the function
UNNotification.RemoteNotificationsError will give an error message, e.g. that this is not available in simulator.
You can check permissions with
UNNotification.IsRegisteredForRemoteNotifications later. The new functions
UNNotification.AuthorizationGranted and
UNNotification.AuthorizationError let you know about whether you can work with notifications. But most likely you will check with
UNNotification.NotificationSettings directly for what is available or allowed. The user can for example allow you badge changes, but not popups.
Let me know if you like to try this and need assistant. You should be able to get notifications to show messages to the user, launch the app and trigger scripts. Even the sending of notifications to devices should work via MBS Plugin by using
CURL functions to talk to Apple's web service.
Please come and visit me in the booth #25 at FileMaker DevCon:
As usual you can come by, read the posters, ask me questions and talk with me about existing and future features.
You can already go downstairs and register.
And you can see the posters from sponsors as well as the floor plan to find the booths:
Meet me at booth #25 tomorrow and let me know your favorite plugin function!
If you like , come to my booth at FileMaker DevCon and ask me about using CoreImage's detectors to find faces, text, rectangles and QRCodes on a picture. You can check whether faces are like in this picture on the right.
So the example database has a script to detect faces and than color them in yellow with some dots for eyes and mouth. Check out our example script for this:
Set Field [ Core Image Detection::Result ; MBS( "CoreImage.Detect"; Core Image Detection::Image; Core Image Detection::Type; "Smile¶EyeBlink" ) ]
# Show areas
If [ MBS("IsError") = 0 ]
Set Variable [ $json ; Value: MBS( "JSON.Parse"; Core Image Detection::Result ) ]
Set Variable [ $count ; Value: MBS( "JSON.GetArraySize"; $json ) ]
Set Variable [ $image ; Value: MBS( "GMImage.NewFromContainer"; Core Image Detection::Image ) ]
Set Variable [ $imageHeight ; Value: MBS( "GMImage.GetHeight"; $image) ]
If [ $count > 0 ]
# for loop
Set Variable [ $index ; Value: 0 ]
Loop
Set Variable [ $item ; Value: MBS( "JSON.GetArrayItem"; $json; $index) ]
# draw area
Set Variable [ $x ; Value: MBS( "JSON.GetPathItem"; $item; "x" ; 1 ) ]
Set Variable [ $y ; Value: MBS( "JSON.GetPathItem"; $item; "y" ; 1 ) ]
Set Variable [ $w ; Value: MBS( "JSON.GetPathItem"; $item; "width" ; 1 ) ]
Set Variable [ $h ; Value: MBS( "JSON.GetPathItem"; $item; "height" ; 1 ) ]
Set Variable [ $y ; Value: $ImageHeight - $y -$h /* coordinates from CoreImage are swapped vertically */ ]
#
Set Variable [ $r ; Value: MBS( "GMImage.SetFillColor"; $image; "#FFFF00" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.DrawRectangle"; $image; $x; $y; $x+$w; $y+$h ) ]
# left eye
Set Variable [ $hasLeftEyePosition ; Value: MBS( "JSON.GetPathItem"; $item; "hasLeftEyePosition" ; 1 ) ]
If [ $hasLeftEyePosition = 1 ]
Set Variable [ $x ; Value: MBS( "JSON.GetPathItem"; $item; "leftEyePositionX" ; 1 ) ]
Set Variable [ $y ; Value: MBS( "JSON.GetPathItem"; $item; "leftEyePositionY" ; 1 ) ]
Set Variable [ $y ; Value: $ImageHeight - $y /* coordinates from CoreImage are swapped vertically */ ]
#
Set Variable [ $r ; Value: MBS( "GMImage.SetFillColor"; $image; "blue" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.DrawRectangle"; $image; $x-20; $y-20; $x+20; $y+20 ) ]
End If
# right eye
Set Variable [ $hasRightEyePosition ; Value: MBS( "JSON.GetPathItem"; $item; "hasRightEyePosition" ; 1 ) ]
If [ $hasRightEyePosition = 1 ]
Set Variable [ $x ; Value: MBS( "JSON.GetPathItem"; $item; "rightEyePositionX" ; 1 ) ]
Set Variable [ $y ; Value: MBS( "JSON.GetPathItem"; $item; "rightEyePositionY" ; 1 ) ]
Set Variable [ $y ; Value: $ImageHeight - $y /* coordinates from CoreImage are swapped vertically */ ]
#
Set Variable [ $r ; Value: MBS( "GMImage.SetFillColor"; $image; "blue" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.DrawRectangle"; $image; $x-20; $y-20; $x+20; $y+20 ) ]
End If
# mouth position
Set Variable [ $hasMouthPosition ; Value: MBS( "JSON.GetPathItem"; $item; "hasMouthPosition" ; 1 ) ]
If [ $hasMouthPosition = 1 ]
Set Variable [ $x ; Value: MBS( "JSON.GetPathItem"; $item; "mouthPositionX" ; 1 ) ]
Set Variable [ $y ; Value: MBS( "JSON.GetPathItem"; $item; "mouthPositionY" ; 1 ) ]
Set Variable [ $y ; Value: $ImageHeight - $y /* coordinates from CoreImage are swapped vertically */ ]
#
Set Variable [ $r ; Value: MBS( "GMImage.SetFillColor"; $image; "red" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.DrawRectangle"; $image; $x-50; $y-20; $x+50; $y+20 ) ]
End If
# next
Set Variable [ $index ; Value: $index + 1 ]
Exit Loop If [ $index >= $count ]
End Loop
End If
Set Variable [ $r ; Value: MBS( "JSON.Release"; $json ) ]
Set Field [ Core Image Detection::Output ; MBS( "GMImage.WriteToPNGContainer"; $image; "test.png" ) ]
End If
As you see we just get back a JSON block with an array of items, where we loop through and draw each area in yellow and if available we draw eyes and mouth. The JSON looks like this with one face:
[
{
"rightEyeClosed" : false,
"mouthPositionX" : 279.5625,
"hasRightEyePosition" : true,
"leftEyePositionY" : 1606.5,
"hasLeftEyePosition" : true,
"trackingFrameCount" : 0,
"hasMouthPosition" : true,
"type" : "Face",
"x" : 66.9375,
"mouthPositionY" : 1452.9375,
"y" : 1350.5625,
"trackingID" : 0,
"hasFaceAngle" : true,
"width" : 401.6250,
"height" : 401.625,
"leftEyePositionX" : 212.625,
"hasSmile" : false,
"leftEyeClosed" : false,
"rightEyePositionY" : 1606.5,
"hasTrackingID" : false,
"hasTrackingFrameCount" : false,
"faceAngle" : -7,
"rightEyePositionX" : 366.1875
}
]
This can be very useful for some databases as we can leverage Apple's libraries to find faces, detect QRCodes, find text and rectangle areas. For the text areas, you can pass those to OCR functions later.
PS: CIDetectorMBS class does the same in Xojo.
Nickenich, Germany - (July 18th, 2017) -- MonkeyBread Software today is pleased to announce
MBS FileMaker Plugin 7.3 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, Mac, iOS and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 7.3 has been updated and now includes over 4800 different functions, and the versatile plugin has gained more new functions:
This plugin got a couple of features for use with iOS SDK. You can offer the user a configurable
email or
message composer. Your script configures the message and provides recipients, content and attachments. The user can edit the email or text message and send it. Similar is our
social composer which allows you to post on Facebook, Twitter, SinaWeibo and TencentWeibo. Again your solution can provide content including text, URL and image and the user can edit and post. For iOS you can now use
DynaPDF functions to process PDFs on iOS devices.
Our
BinaryFile function allows to read and write any file type. Raw file reading and writing can be very useful to handle import or export in application specific file formats.
For the script workspace our zoom controls can now be triggered with command + and - keys. Script lines which are set to gray color by FileMaker now keep the gray color so you can identify incompatible script steps easier. Our variable check can now detect declarations via comments.
When handling big
XML documents, you can now parse them once using
XML.Parse and than query the object in memory often. As parsing is done only once, the performance is much better.
When playing a movie inside an interactive containers on Mac and iOS, you can now identify the
AVPlayer used by FileMaker and control it from our plugin. For example you can get pictures for the current playing frame.
For FileMaker 16 we updated the
WebView functions for website passwords (HTTP Authentication), so you can set the passwords and avoid login dialogs. For the new card window type, we can watch for mouse clicks on the side and trigger a script to close the card window.
We got SSE2 enabled PNG reading,
Audit with UUIDs, Dialog positioning, Metafile conversion (EMF/WMF) for DynaPDF, lower memory usage for queued
email sending and speak commands for iOS.
Finally we updated OpenSSL to 1.1.0f and 1.0.2l, libPNG to version 1.6.30, discount library to 2.2.2, SQLite to 3.19.3, DynaPDF to 4.0.11.31 and we use the FileMaker 16.0.2 Plugin SDK now.
See
release notes for a complete list of changes.
18. Juli 2017 - Monkeybread Software veröffentlicht heute das
MBS Plugin für FileMaker in Version 7.3, mit inzwischen über 4800 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:
Dieses Plugin hat viele neue Funktionen für das
iOS SDK. So können Sie dem Benutzer einen
Email oder
iMessage Dialog anbieten. Per Skript konfigurieren Sie die Nachricht mit Empfänger, Inhalt und Anhängen. Der Benutzer kann dann die Nachricht bearbeiten und abschicken. Ähnlich funktioniert der
Social Composer Dialog, mit dem man auf Facebook und Twitter posten kann. Wiederum können Sie per Skript den Text, URLs und Bilder übergeben und der Benutzer die Nachricht bearbeiten und absenden. Für iOS können Sie jetzt auch die
DynaPDF Bibliothek verwenden zum Editieren von PDF Dateien direkt auf dem iOS Gerät.
Unsere
BinaryFile Funktionen erlauben jeden Dateityp zu lesen und zu schreiben. Das direkte lesen von Bytes in Dateien kann sehr nützlich sein für den Import und Export von anwendungsspezifischen Dateiformaten.
Beim Skript Arbeitsbereich können Sie jetzt unsere Vergrößerungsknöpfe per Tastatur ansprechen mit der Tastenkombination + und - mit der Befehlstaste. Zeilen im Skript, die von FileMaker auf grau gesetzt werden, bleiben jetzt auch grau, so dass Sie inkompatible Skriptschritte leichter finden können. Die Überprüfung von Variablennamen kann nun auch Variablennamen berücksichtigen, die per Kommentar deklariert wurden.
Wenn Sie große
XML Dateien verarbeiten möchten, können Sie die Datei nur einmal mit
XML.Parse einlesen und dann Abfragen im Speicher durchführen. Da das XML nur noch einmal gelesen wird, können ihre Skripte viel schneller einzelne Werte abfragen.
Wenn Sie einen Film in einem interaktive Container auf macOS und iOS abspielen, können Sie jetzt die Referenz zum
AVPlayer bekommen und ihn via Plugin steuern. Zum Beispiel um ein aktuelles Bild vom Film abzufragen.
Für FileMaker 16 funktionieren jetzt auch die Authentifizierungsfunktionen im
Webviewer, so dass Sie dem Plugin Passwörter mitgeben und diese automatisch benutzt werden ohne dass der Benutzer einen Passwort Dialog sieht. Für die Karten können Sie via Plugins auf Mausklicks außerhalb der Karte reagieren und diese per Skript schließen.
Außerdem haben wir noch SSE2 Beschleunigung für PNG Dateien,
Audit mit UUIDs, Dialogpositionierung, Metadateien konvertieren (EMF/WMF) mit DynaPDF, geringere Speicherverbrauch beim
Emailsenden und Sprachausgabe für iOS.
Wir haben die OpenSSL auf Version 1.1.0f bzw. 1.0.2l aktualisiert, libPNG auf 1.6.30, discount auf 2.2.2, SQLite auf 3.19.3, DynaPDF auf 4.0.11.31 und wir verwenden jetzt das FileMaker Plugin SDK 16.0.2.
Alle Änderungen in den
Release Notes
In October all around Europe are conferences for FileMaker.
You can meet me at the German conference in Salzburg and this year also at the Spanish conference in Madrid:
20th to 21st October 2017 in Madrid.
See Website
Maybe I can get a short session to talk a bit about my plugin
Did you notice we just passed the
4800 function mark with version 7.3?
Just a new record reached just before DevCon.
And well, the posters are printed already for 4700...
The number of functions is always outdated.
Recent additions where new
BinaryFile functions, more
XL functions and the
XML functions for incredible performance.
Did you notice we added over 100
iOS only functions for 7.3 release?
New in this prerelease of the 7.3 MBS FileMaker Plugin:
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
New in this prerelease of the 7.3 MBS FileMaker Plugin:
- Added Text.ReplaceAll function.
- Improved speed of XML functions.
- Added Plugin.PNGVersion function.
- Updated libPNG to version 1.6.30.
- Updated DynaPDF library to version 4.0.11.31.
- Updated to FileMaker 16.0.2 SDK.
- Enabled SSE2 extension for libPNG for macOS as all Macs with Intel CPU should have SSE2.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
In gerade mal drei Monaten startet die
FileMaker Konferenz in Salzburg.
So langsam füllt sich die Konferenz und inzwischen steht auch das
Programm.
Vom 12. bis 14. Oktober 2017 treffen sich wieder ca. 200 Teilnehmer im Pitter in Salzburg. Die deutschsprachige FileMaker Entwickler treffen sich um Neuigkeiten zu FileMaker zu erfahren, mit den Mitarbeitern von FileMaker in Kontakt zu kommen und um alte Freundschaften zu pflegen.
Bitte bald anmelden um ein Ticket zu bekommen. Die Konferenztickets und die Zimmer im Hotel Crowne Plaza Salzburg waren in den vorherigen Jahren schon vor der Konferenz ausverkauft.
Für die
MBS Plugin Schulung am 11. Oktober sind noch Plätze frei. Nehmen sie sich einen Tag Zeit zu erfahren, was alles im MBS Plugin steckt, was dieses Jahr neu ist und probieren wir direkt einige Funktionen aus. Je nach den Wünschen der Teilnehmer bauen wir gerne neue Beispiele, die dann bestimmte Funktionen zeigen.
FileMaker Inc. just released an update to it's FileMaker Platform:
FileMaker, Inc. has released FileMaker Pro 16.0.2, FileMaker Pro 16.0.2 Advanced, FileMaker Go 16.0.2, and FileMaker Server 16.0.2. The FileMaker 16.0.2 Platform includes bug fixes and security updates.
Learn more:
FileMaker Pro
FileMaker Go
FileMaker Server
FileMaker Go (App Store)
iOS App SDK (FileMaker Developer Subscription required for access)
FileMaker Server 16.0.2
FileMaker Plug-in SDK
We'll soon update plugins for new plugin SDK and start testing with new version.
New in this prerelease of the 7.3 MBS FileMaker Plugin:
- Changed script coloring to keep gray script lines (deactivated or incompatible) in gray.
- Updated OpenSSL to 1.1.0f and 1.0.2l
- Calling StoreRegistration function now also invokes Register to test the key before storing it.
- Changed SQL.GetFieldAsNumber and SQL.GetParamAsNumber to return numbers outside 32-bit integer as text (now corrected).
- Added Filter column functions for Excel functions.
- Changed linux linking to avoid loader to connect function to wrong library if several versions of the library exists.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
As you may know our MBS Plugins are used in over 55 countries (FileMaker) and 74 countries (Xojo).
But still there are a lot of countries left, so we’d like to offer a promotion:
Get a
second year of updates for free when purchasing a new license from us in July when the order comes from a country we not yet have customers from. For some bigger countries, new state/province is also fine.
After a purchase, we can definitive say whether you are from a not yet listed country, so please contact us before/after purchase to check.
You may wonder which countries we don’t have clients from?
FileMaker:
In Europe for example Poland, Ukraine, Serbia and Bulgaria.
In North America for example Alaska, New Mexico and Maine in USA, Ontario in Canada.
In South America for example Peru, Ecuador, Panama and Guyana.
In Asia for example Vietnam, Indonesia or Pakistan.
In Africa there is a lot of space between Egypt and South Africa.
Xojo:
In Europe for example Lithuania, Montenegro or the islands Sardinia and Corsica.
In North America for example Alaska and South Dakota.
In South America for example Peru or Nicaragua.
In Asia for example Vietnam, Bangladesch and Papua-Neuguinea.
In Africa anything between Namibia and Egypt.
So if you like to get a license and contact us and we give you a free update if you add an entry to our country list or at least live somewhere we have no customers yet.
Please be aware about the
FileMaker error 1506. It is supposed to mean that an email was not sent correctly.
But I just learnt that it could mean the opposite. So you can get this error, if the email connection is dropped or server doesn't answer quick enough after email was sent.
Now for some servers this means that checking attachment for viruses takes a second too long and FileMaker considers it as an error (timeout), but email is still sent.
So please don't use error 1506 as the truth about the email sent / not sent status. More like an "Email was most likely not sent" error, but you can't be sure.
Otherwise, if you use
MBS Plugin with the
SendMail functions, you could of course always check the debug logs from our
CURL functions for exact status.
There you would see difference between timeouts and error from server.
Recently clients wondered what the can do with the new CURL functions in FileMaker 16 and how it compares to the plugin functions.
So I spend some time to put together a table to show the differences. FileMaker implemented new options so you can do all the REST API calls you need to do and they include a lot of options for various HTTP and SSL options.
But our plugin can do much more. We include SSH library for SFTP, do much more for email transfers and allow it to run in background. Please review the table:
(more)