FileMaker Version used

As you may know, we collect some statistics about plugin usage and today I’d like to show the versions of FileMaker used with MBS Plugins:



So we have about half of our users have FileMaker 15. FileMaker 16 is coming We currently have more users with FileMaker 11 as with FileMaker 16, but that will probably change quickly. As you may expect, we do still support FileMaker versions down to version 7 on Windows, but don’t test ancient versions any more (unless someone tells us about an issue). (more)

LogicalDOC Webservice

Some of our clients use the Loigcal DOC software, a document management system.

They do offer a webservice API for their system, so you can connect and query documents from FileMaker or Xojo solutions.

Today we wrote a FileMaker script to query a file given ID and login to the server:

(more)

Search in FileMaker Calculations and Custom Functions

Monkeybread Software got you a Christmas present for all FileMaker developers using a Mac.

We add Command-F shortcut to show find bar in any text view in FileMaker. Your calculations got long and you can’t find a word? No problem, now you can search for it. The standard search bar on macOS offers controls to find text in a text view. You may have seen the find bar already in TextEdit application and others. Optional you can enable replace and replace text:



MBS FileMaker Plugin 7.6pr5 or newer adds this great feature for everyone who has the plugin installed. No license required (but appreciated) as this is one of the many free features included with MBS Plugin. You can turn the feature on and off in our preferences dialog.

So here is a calculation dialog with search:



In general this works for every text view in FileMaker. In custom functions window we saw redraw issues with focus ring, but that doesn’t change functionality, so please ignore the blue lines. When working right, it looks like this:



Like all our additions to the FileMaker Development tool, we use very defensive programming techniques. The plugin registers the command-F shortcut here. If FileMaker ever itself needs Command-F, FileMaker comes first, so the plugin would no longer get the key press event. When we get it, we check if focus is on a text view, so for any other control, we just exit. Finally we check if there is a find bar, so if FileMaker ever starts registering one with the text view, we exit and don’t do anything.

Another little thing added with the Command-F is the Command-Option-C shortcut to copy the formatted text of the calculation. This helps to copy calculations and paste them in a forum or on a blog.

Download new plugin here. Let me know if you like it!

MBS FileMaker Plugin, version 7.6pr5

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

Execute defaults command with Shell functions

Since we introduced the Shell functions in MBS FileMaker Plugin, we find new uses each day. The following example uses the defaults command line tool to add preferences for the Dock application:

Set Variable [ $error ; Value: "" ] 

Set Variable [ $result ; Value: "" ] 

Set Variable [ $shell ; Value: MBS( "Shell.New" ) ] 

Set Variable [ $s ; Value: MBS( "Shell.Execute"; $shell; "/usr/bin/defaults"; "write"; "com.apple.dock"; "persistent-apps"; "-array-add"; "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/Font Book.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>") ] 

Set Variable [ $s ; Value: MBS( "Shell.Wait"; $shell; 2) ] 

Set Variable [ $error ; Value: $error & MBS( "Shell.ReadErrorText"; $shell; "UTF-8") ] 

Set Variable [ $result ; Value: $result & MBS( "Shell.ReadOutputText"; $shell; "UTF-8") ] 

Set Variable [ $s ; Value: MBS( "Shell.Execute"; $shell; "/usr/bin/killall"; "Dock") ] 

Set Variable [ $s ; Value: MBS( "Shell.Wait"; $shell; 2) ] 

Set Variable [ $error ; Value: $error & MBS( "Shell.ReadErrorText"; $shell; "UTF-8") ] 

Set Variable [ $result ; Value: $result & MBS( "Shell.ReadOutputText"; $shell; "UTF-8") ] 

Set Field [ Shell::Error ; MBS( "Text.ReplaceNewline"; $error; 1) ] 

Set Field [ Shell::Output ; MBS( "Text.ReplaceNewline"; $result; 1) ] 

Set Variable [ $r ; Value: MBS("Shell.Release"; $shell) ] 

 
Please note that this is the hard way to do this. I think Apple has an official API for adding dock icons and I may add it to the plugin if needed. 
As you see you need to specify shell tools with full path, so we pass "/usr/bin/defaults" and not just defaults. Also all parameters are passed as separate parameters to the Execute call. Next we run the killall tool on the same shell to kill the dock application and have it restart automatically.

QR Codes for Invoices in Switzerland

As you may know the Swiss will introduce ISO-20022 and have a QR-Code with payment data on invoices containing bank accounts and amount. The specifications are not yet finished and may take another year to get done. Introduction is planned for 2019, so you should make sure your software is ready. 

Based on the current spec I made the follow example script for all my plugin users: 

# ##### SWISS QR CODE GENERATION 

 

# Sample data for QR-Code. May need adjustment to final standard

Set Variable [ $text ; Value: "SPC" & ¶ & 

"0100" & ¶ & 

"1" & ¶ & 

"CH1234567890123456789" & ¶ & 

"Hans Müller" & ¶ & 

"Bahnhofstraße" & ¶ & 

"123" & ¶ & 

"1234" & ¶ & 

"Dorf am See" & ¶ & 

"CH" & ¶ & 

"Hans Müller" & ¶ & 

 "Bahnhofstraße" & ¶ & 

"123" & ¶ & 

"1234" & ¶ & 

"Dorf am See" & ¶ & 

"CH" & ¶ & 

"1234.56" & ¶ & 

"CHF" & ¶ & 

"2018-12-27" & ¶ & 

"Lisa Müller" & ¶ & 

"Dorfstraße" & ¶ & 

"12" & ¶ & 

"5678" & ¶ & 

"Dorf am Berg" & ¶ & 

"CH" & ¶ & 

"QRR" & ¶ & 

"000000000000000000000001234" & ¶ & 

"ligne 28"

# Barcode options. We use high level as we draw over barcode.

Set Variable [ $o ; Value: MBS("Barcode.SetOptions"; 4) // ECC Level with values from 1 = low, 2 = middle, 3 = better, 4 high. ] 

 

# CRLF line endings needed

Set Variable [ $text ; Value: MBS( "Text.ReplaceNewline"; $text; 3 ) ] 

# We render barcode at 4x size for better drawing later

Set Variable [ $img ; Value: MBS("Barcode.Generate";"QRCODE"; $text; 0; 0; 0; 4; 0; 1; "UTF-8") ] 

If [ MBS("IsError") = 0 ] 

Set Variable [ $r ; Value: MBS( "GMImage.SetType"; $img; 6) ] 

# Load cross image

Set Variable [ $cross ; Value: MBS( "GMImage.NewFromContainer"; base_test::Cross) ] 

# Scale to match size of barcode proportional

Set Variable [ $w ; Value: MBS( "GMImage.GetWidth"; $img) ] 

Set Variable [ $k ; Value: Round($w / 6,5; 0) // 20 point to 130 point is factor 6.5 ] 

Set Variable [ $r ; Value: MBS( "GMImage.Scale"; $cross; $k & "x" & $k) ] 

# Draw cross over barcode

Set Variable [ $r ; Value: MBS( "GMImage.Composite"; $img; $cross; "CenterGravity"; 1) ] 

# Save to field

Set Field [ base_test::Swiss_QR ; MBS( "GMImage.WriteToPNGContainer"; $img; "barcode.png" ) ] 

# Output with around 4.5cm side length so Swiss cross is 7mm big, (130 point in PDF and 20 point for cross)

# Clean up

Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $cross) ] 

Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $img) ] 

End If

As you see, we put together the data for the QR-Code. The given data is not correct (checksums) as I use sample IBANs and the reference number is just 1234. But you can collect the right data in your solution and assemble them as needed. Please use latest specs and make sure your data doesn't contain extra spaces or newline characters. Once you have the data, we convert line endings to Windows format (CRLF). Next we create a barcode in QR-Format with ECC Level High. We load the Swiss cross image overlay and scale it to the right size to composite over the barcode (needs fix in upcoming 7.6pr5 or use GMImage.CompositeXY instead). Than we write it to container, so you can place it on a layout to print or place the image on a PDF with DynaPDF.InsertImage.


FileMaker Magazin - MBS Artikel

For our German speaking users:

Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt: FileMaker Magazin Artikel

Wir empfehlen allen FileMaker Anwender ein Abo vom Magazin und den Kauf der alten Ausgaben. Das FileMaker Magazin ist eine excellente Quelle von Informationen, Anleitungen und Profitips.


MBS FileMaker Plugin, version 7.6pr4

New in this prerelease of the 7.6 MBS FileMaker Plugin:
  • Added MetaDataQuery functions for macOS and iOS, usually called Spotlight search.
  • Improved Syntax Highlighting speed for macOS 10.13.
  • Fixed problem where plugin would colorize script even when it's disabled in preferences.
  • Changed Audit to be able to use UUID field, even if it's not in the field list passed to audit function.
  • Fixed bug with PDFKit.Watermark for High Sierra.
  • Fixed bugs with DynaPDF.Print and scaling pages for some printers.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Spotlight search in FileMaker with MBS Plugin

We got a nice new search feature for our MBS FileMaker Plugin. You can create searches, run them and query results. Here is an example script to search all applications:

Set Variable [ $query ; Value: MBS( "MetaDataQuery.Create" ) ] 

Set Variable [ $r ; Value: MBS( "MetaDataQuery.SetQueryString"; $Query; "kMDItemContentType=\"com.apple.application-bundle\"") ] 

Set Variable [ $r ; Value: MBS( "MetaDataQuery.StartQuery"; $Query) ] 

# Wait for search to finish

Loop

Pause/Resume Script [ Duration (seconds): ,2 ] 

Exit Loop If [ MBS( "MetaDataQuery.IsGathering"; $Query ) = 0 ] 

End Loop

# Stop

Set Variable [ $r ; Value: MBS( "MetaDataQuery.StopQuery"; $Query) ] 

Delete All Records [ With dialog: Off ]

# Put global result on top:

Set Field [ Search Applications::All Results JSON ; MBS( "MetaDataQuery.Results"; $Query ) ] 

Set Variable [ $Count ; Value: MBS( "MetaDataQuery.ResultCount"; $Query ) ] 

Set Field [ Search Applications::ResultCount ; $Count ] 

# And show records:

Set Variable [ $index ; Value: 0 ] 

Loop

New Record/Request

Set Variable [ $path ; Value: MBS( "MetaDataQuery.PathAtIndex"; $Query; $Index ) ] 

Set Variable [ $result ; Value: MBS( "MetaDataQuery.ResultAtIndex"; $Query; $Index ) ] 

Set Field [ Search Applications::Name ; MBS( "Files.FileDisplayName"; $Path ) ] 

Set Field [ Search Applications::FilePath ; $path ] 

Set Field [ Search Applications::Attributes JSON ; $result ] 

Set Field [ Search Applications::Icon ; MBS( "Icon.GetIcon"; $Path; 128 ) ] 

Commit Records/Requests [ With dialog: Off ] 

# next

Set Variable [ $index ; Value: $index + 1 ] 

Exit Loop If [ $index ≥ $count ] 

# Lets exit when we have 100 items

Exit Loop If [ $index > 100 ] 

End Loop

Set Variable [ $r ; Value: MBS( "MetaDataQuery.Close"; $Query ) ] 

As you see, we create a new query. Than we set the query string where we check if content type is an application. We start the search which runs asynchronously in the background. For this example we use a loop to wait for the search to finish getting results. Than we stop query and check results. For the results, we give you two ways: You can have all the attributes as JSON or you just get the file path of the item.

The example database here shows the applications in records. We put in the icon of the application, show the display name, the path. The JSON is also stored and can be inspected. Please try with next prerelease and let us know whether you like it.


Trigger FileMaker Scripts from JavaScript in FileMaker 16

As you may know FileMaker 16 on macOS uses WebKit 2.x, so our old WebView.InstallCallback function broke. We got a workaround using WebView.Create for creating WebKit 1.x web viewers in FileMaker 16 and using older WebKit functions.

Now we have a new way for WebKit 2.x using a JavaScript bridging. With macOS 10.10 (and iOS 8.0) Apple introduced the ability to install custom JavaScript message handlers for WKWebView. We just added them for our plugins to call back from JavaScript to FileMaker scripts.
First you call Webview.AddScriptMessageHandler function to register a name:

MBS( "Webview.AddScriptMessageHandler"; Name )

Next you can use it in Javascript to trigger a script in FileMaker from JavaScript:

window.webkit.messageHandlers.test.postMessage({'filename':'WebView Message Handler.fmp12', 'parameter':'Hello World from JavaScript', 'scriptName':'test'});

And you can evaluate an expression in JavaScript:

window.webkit.messageHandlers.test.postMessage({'evaluate':'MBS( "Msgbox"; "Hello from Evaluate in JavaScript" )'});

As you see, we get for our message handler a new entry in the namespace called window.webkit.messageHandlers.test. This allows us to call postMessage method there and this triggers the plugin code to trigger scripts or do evaluation. The parameter to the postMessage must be a Javascript object with a few properties:
  • fileName: The name of the file with the script.
  • scriptName: The name of the script to trigger.
  • parameter: The parameter to pass to the script.
  • evaluate: The expression to evaluation.
This works nice in first tests and we'd love to see what you can do with this technique. Please try with next prerelease or email us for a copy today.

PS: Works in FileMaker 16 runtimes, too.

Upload email to Sent folder via IMAP

As you know you can send emails via the CURL functions in MBS Plugins for Xojo and FileMaker. To have your mails how up in sent folder, you need to upload them to the IMAP server. The following script does it for FileMaker. Key thing is to pass in URL to IMAP Server with name of Mailbox, e.g. "imap://imap.monkeybreadsoftware.de/INBOX.Sent". Than you set the upload option and provide the data to send. Of course you should use SSL, certificate verification and pass in your credentials. So here the FileMaker script from the sample database:
 

Set Variable [ $curl ; Value: MBS("CURL.New") ] 

# Set URL with name of the mailbox included:

Set Variable [ $result ; Value: MBS("CURL.SetOptionURL"; $curl; CURL Test::URL & "/INBOX.Sent") ] 

# We upload

Set Variable [ $result ; Value: MBS("CURL.SetOptionUpload"; $curl; 1) ] 

Set Variable [ $email ; Value: CURL Test::email ] 

Set Variable [ $email ; Value: MBS("Text.ReplaceNewline"; $email; 3) ] 

Set Variable [ $result ; Value: MBS("CURL.SetInputText"; $curl; $email; "UTF-8") ] 

# your credenticals

Set Variable [ $result ; Value: MBS("CURL.SetOptionPassword"; $curl; CURL Test::Password) ] 

Set Variable [ $result ; Value: MBS("CURL.SetOptionUsername"; $curl; CURL Test::Name) ] 

# Maybe use alternative IMAP port?

// Set Variable [ $r ; Value: MBS("CURL.SetOptionPort"; $curl; 143) ] 

# This turns TLS on and requires connection to be encrypted

Set Variable [ $r ; Value: MBS("CURL.SetOptionUseSSL"; $curl; 3) ] 

# force TLS v1.2

Set Variable [ $r ; Value: MBS("CURL.SetOptionSSLVersion"; $curl; 6) ] 

# This disables certificate verification, so we accept any: 

Set Variable [ $r ; Value: MBS("CURL.SetOptionSSLVerifyHost"; $curl; 0) ] 

Set Variable [ $r ; Value: MBS("CURL.SetOptionSSLVerifyPeer"; $curl; 0) ] 

# Better with certificates if you have some:

// Set Variable [ $r ; Value: MBS( "CURL.SetOptionCAInfo"; $curl; "/Library/FileMaker Server/certificates.pem") ] 

// Set Variable [ $r ; Value: MBS("CURL.SetOptionSSLVerifyHost"; $curl; 2) ] 

// Set Variable [ $r ; Value: MBS("CURL.SetOptionSSLVerifyPeer"; $curl; 1) ] 

Set Variable [ $result ; Value: MBS("CURL.SetOptionVerbose"; $curl; 1) ] 

# do it!

Set Field [ CURL Test::Result ; MBS("CURL.Perform"; $curl) ] 

# Check result:

Set Field [ CURL Test::debug ; MBS("CURL.GetDebugAsText"; $curl) ] 

Set Variable [ $result ; Value: MBS("CURL.Cleanup"; $curl) ] 


Let me know whether this works fine for you. 
 
For Xojo this translate more or less 1:1 to the CURLSMBS class. The properties have the same name and you just pass email via SetInputData method. Just remember to make sure to use ReplaceLineEndings with EndOfLine.Windows.

MBS FileMaker Plugin, version 7.6pr3

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

Install fonts for PDF generation in FileMaker Cloud

As you may have noted, FileMaker Could comes preinstalled with around 50 font faces. The font you love and use in layouts may not be included in the list. The fonts include in various styles:
  • Baekmuk Batang
  • Utopia
  • URW Gothic L
  • URW Bookman L
  • Century Schoolbook L
  • Dingbats
  • Nimbus Sans L
  • Nimbus Roman No9 L
  • Nimbus Mono L
  • URW Palladio L
  • Standard Symbols L
  • URW Chancery L
  • IPAPGothic
  • Liberation Mono
  • Liberation Sans
  • WenQuanYi Micro Hei Mono
  • WenQuanYi Micro Hei
  • WenQuanYi Zen Hei Mono
  • WenQuanYi Zen Hei Sharp
  • WenQuanYi Zen Hei
If you like, you can install more fonts with those easy steps:
  1. Get login for your FileMaker Cloud Server via SSH.
  2. Create a new folder in /usr/share/fonts folder for your fonts.
    e.g. sudo mkdir --mode=777 /usr/share/fonts/myfonts
  3. Copy fonts in your new folder.
  4. Run "fc-cache -f -v" command to update cache.
  5. You can verify with "fc-list" command whether fonts were found.
  6. Reboot machine or at least restart the WebDirect engine.
Now you can create PDFs with any font you like. Let me know if it works for you.

You can use MBS( "DynaPDF.AddFontSearchPath"; $PDF; "/usr/share/fonts"; 1 ) with our DynaPDF functions to use the fonts on the FileMaker Cloud.

MBS FileMaker Plugin, version 7.6pr2

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

LDAP with JSON

For the next plugin prerelease, we introduce three JSON functions for use with our LDAP functions.

So you can use query and get the result as JSON with the new LDAP.JSON function. See this little example which connects and makes a query and finally shows the JSON in a dialog:

# Connect

Variable setzen [ $r ; Wert: MBS("LDAP.Connect"; "ldap.forumsys.com"; 0; 389) ] 

Wenn [ MBS("IsError") ] 

Eigenes Dialogfeld anzeigen [ "LDAP error" ; "Failed to connect." & ¶ & $r ] 

Sonst

Variable setzen [ $ldap ; Wert: $r ] 

# Login

Variable setzen [ $r ; Wert: MBS("LDAP.Bind"; $ldap; "uid=tesla,dc=example,dc=com"; "password"; "simple") ] 

Wenn [ MBS("IsError") ] 

Eigenes Dialogfeld anzeigen [ "LDAP error" ; "Failed to authenticate." & ¶ & $r ] 

Sonst

# Search

Variable setzen [ $r ; Wert: MBS("LDAP.Search"; $ldap; "dc=example,dc=com"; "subtree"; "(givenName=*)"; ""; 0; 20; 999) ] 

# Check results

Eigenes Dialogfeld anzeigen [ "JSON" ; MBS("LDAP.JSON"; $ldap) ] 

Ende (wenn)

# Cleanup

Variable setzen [ $r ; Wert: MBS("LDAP.Release"; $ldap) ] 

Ende (wenn)

 
The answer in JSON looks like this:
 

[{

"dn": "uid=test,dc=example,dc=com",

"attributes": [{

"name": "objectClass",

"values": ["posixAccount", "top", "inetOrgPerson"]

}, {

"name": "gidNumber",

"values": ["0"]

}, {

"name": "givenName",

"values": ["Test"]

}, {

"name": "sn",

"values": ["Test"]

}, {

"name": "displayName",

"values": ["Test"]

}, {

"name": "uid",

"values": ["test"]

}, {

"name": "initials",

"values": ["TS"]

}, {

"name": "homeDirectory",

"values": ["home"]

}, {

"name": "cn",

"values": ["Test"]

}, {

"name": "uidNumber",

"values": ["24601"]

}, {

"name": "o",

"values": ["Company"]

}]

}]
 
So we have an array of entries fill with an object for each entry. Each entry has attributes and there each value can have several values. 
 
For add, modify or delete, you can now use the LDAP.AddJSON and LDAP.ModifyJSON functions to pass in JSON formatted changes.
The structure looks like this:

[{
    "operation": "Add",
    "type": "xxx",
    "values": ["Hello", "World"]
},
{
    "operation": "Replace",
    "type": "yyy",
    "value": "Other"
},
{
    "operation": "Delete",
    "type": "zzz"
}]

Please try in next prelease.


FileMaker Cloud Tipps & Tricks

First, you may know we used to simply restart the FileMaker Cloud instance when we installed a new plugin. That is due to the fact that if old and new plugin have the same file name and the OS can’t distinguish them. When FileMaker tries to load a new one, it still gets the handle for the old plugin copy. I suggested to FileMaker Inc. to make a hard link to load it with a random postfix in file name.

But we found a workaround. You can simply rename the plugin each time before adding it to the container to upload. So if first plugin is MBS1.fmx and you install MBS2.fmx via Install Plugin Script Step, you get the new one loaded and the old file is deleted. That’s great way to solve this. For the next plugins, we simply include the build number in the linux file name, e.g. MBS.3100.fmx to help you install it easily.

Second, whenever a plugin crashes the FileMaker Server scripting process, you see error 812 on the client. That can be irritating, but it simply means the client didn’t get an answer due to the lost connection.

Third, you may want to see debug messages from the plugin. Especially if we want to debug an issue. As none of the log files so far contain our debug messages, we change the plugin for next prerelease to redirect them itself. Within the /FileMakerData/Logs folder we create two new files ServerScriptingPluginsStdOut.log and ServerScriptingPluginsStdErr.log to log messages from stdout and stderr. Trace messages and debug messages end up in stderr. Regular outputs of messages may be in the stdout file.

I now usually connect two Terminal windows via SSH and run the commands to output the files live:

tail -f ServerScriptingPluginsStdOut.log
tail -f ServerScriptingPluginsStdErr.log

So in both windows I can watch live what is going on. To exit tail, you can press Control-C.

Forth, the FileMaker Cloud linux is secure. This includes that you can’t simply list all environment variables. EnvironmentVariables.Names returns an empty list. But you can still query some variables:
MBS( "EnvironmentVariables.Value"; "LANG" ) returns "en_US.UTF-8"

The MBS Plugin performs well on the FileMaker Cloud, although that's currently only 5% of the servers out there as far as we know about. Popular functions used on the FileMaker Cloud include our CURL functions, SQL functions within FileMaker and JSON functions.

FileMaker Magazin - MBS Artikel

For our German speaking users:

Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt:
FileMaker Magazin Artikel:

Wir empfehlen allen FileMaker Anwender ein Abo vom Magazin und den Kauf der alten Ausgaben. Das FileMaker Magazin ist eine excellente Quelle von Informationen, Anleitungen und Profitips.


MBS FileMaker Plugin, version 7.6pr1

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

FileMaker Cloud, best with BYOL

Be aware of a little limitation when using FileMaker Cloud with annual subscriptions for the FileMaker Server software with AWS:

If you purchased an annual licnese via the Amazon Marketplace, do not change the instance size after installation. Doing so will switch your instance to become hourly billed.


So if you ever plan to up/downscale without hassle on the FileMaker Cloud servers, you better go and buy the license from FileMaker directly (or a your favorite reseller).

With that license, you can easily switch from t2.medium on development (2 cores, 4 GB RAM) to t2.large (2 cores, 8 RAM) for a beta test and up to t2.2xlarge (8 cores and 32 GB RAM) for deployment on busy days. It would be pity if your next AWS bill for FIleMaker Cloud would be $700 for hourly billing, because you just changed instance type.

And you can use one license over the year for several servers independently. e.g. buy a FileMaker Server for a project in February, terminate the server in April and later in August start a new one for another project with the existing license.

For details, please check answer 25984.

Booked for Montreal

For the upcoming Québec FileMaker Developers Conference (QFDC) next year in Montreal, I am happy to be signed up a sponsor and I booked my flight already. Due to flights being much cheaper going to Toronto, I will come to visit that nice town and maybe organize a local developer meeting there.

Montreal at night

The conference will probably be announced soon, but it may be good to keep mid March free for now.

Archives

Sep 2025
Aug 2025
Jul 2025
Jun 2025
May 2025
Apr 2025
Mar 2025
Feb 2025
Jan 2025
Dec 2024
Nov 2024
Oct 2024
Sep 2024
Aug 2024
Jul 2024
Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
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
Mar 2010
Dec 2009
Nov 2009