Some highlights of FileMaker Cloud 1.17.0 include:
Support for the features in the FileMaker 17 Platform.
The 90-day trial SSL certificate included with FileMaker Cloud can now be renewed up to 60 days prior to expiration.
The FileMaker Data API is no longer a trial version. The improved REST API includes support for FileMaker scripts and the ability to upload files to container fields.

NOTE: Any previously released software patches must be applied before updating to FileMaker Cloud 1.17.0. Only FileMaker 17 clients are compatible with FileMaker Cloud 1.17.0.

As you may know, you can use SSH command line to start a tunnel from your computer through the SSH connection to a server on the other side. For one app, we use the following tunnel for MySQL:

e.g.
/usr/bin/ssh -L localhost:3307:localhost:3306 -N xxxx@1.2.3.4

We my not do the same in Xojo, but we can tunnel ourselves a connection with the new SSH2SessionMBS.OpenDirectTCPIPChannel function in the upcoming 18.3 plugins. This function opens a tunnel, so you can send data. Your data first goes through SSH connection and than through a TCP/IP connection to the server on the other side. Here is an example:

If you'd use a local server socket to listen for incoming connections, you could have your socket feed data through the tunnel and do the same as the command line. But please be aware that we will use the command line tool in future as it's much easier than coding it all ourselves and without any threading trouble.

If you like to test, you can contact us for a preview of the new Network plugin.

For a client we made an example file to show how to personalize PDFs just in time. This runs on a FileMaker Server and is accessed via WebDirect. The admin can upload PDF files and put them in container fields:

The clients can browse through PDF files and only see personalized PDFs files which get their name printed on the PDF.

We personalize the PDFs using the DynaPDF functions to load the existing PDF, add more pages from other PDF files, add page numbers, write the client name on each page and save the new PDF in a global field. As global fields are per session on a server, each user has their own copy in the field, even two users come to the same PDF record.

We use a few triggers to do the work. The on record load trigger will process the PDF and put the personalized PDF into the container accessible to the user. They will never see or download the original PDF, but only their own copy.

The whole processing runs on the FileMaker Server and there is no noticeable delay for the user. DynaPDF is quick enough to handle even huge PDFs in a fraction of a second, so the transfer to the browser is the usual bottleneck.

You can simply load an image with given size from a string specification with gradient as codec. It takes as parameters two color specifications, either as names or numeric values. With hex notation you can use #ffff00 for yellow as example.

e.g. "gradient:white-black" creates a gradient from white to black. Or "gradient:#20a0ff-#ffff00;" creates the gradients on the right with color effect from blue to yellow.

ImagePicker.SetShowsCameraControls defines wether the standard camera controls are visible. If you hide those, you can put instructions there for your own use. As you get a script triggered for a new picture, you can automatically close the panel, when a picture is taken.

As you may know, we use a live chat on the website powered by olark.com.

On the bottom of each website, you see a chat button, which may open a chat window. This is very convenient, if you like to quickly ask a question to me about a function, an order or the next conference.

But there is a downside. The guys from Clark see all your browsing on our website and every time you load a page, they ping the olark server to add the chat button.

Starting today this changes. All MBS websites first show a chat button, with a more blue bubble (to see the difference) and only if you click on it, we start the chat system. If you have been in a chat before and you load a new page on the same domain, we start the chat automatically, so it can continue. In the next days, we will certainly fine tune this and try to optimize the chat to properly load everywhere. If you see a white bubble without being a chat, let me know.

Nickenich, Germany - (May 22nd, 2018) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 8.2 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, macOS, 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 8.2 has been updated and now includes over 5200 different functions, and the versatile plugin has gained more new functions:

This new version is optimized for FileMaker 17, but still supports older versions down to FileMaker 7. So whatever version you use from FileMaker, please use latest plugins to benefit from all our improvements and bug fixes.

For iOS we added new HealthKit functions to query the health data, like all the steps run from the last week. If you like to sell item via in-app-purchase, you can use our new StoreKit functions to query products and let the user buy something. We got a few new triggers for iOS to detect app loosing focus and you can now use RichText functions for iOS.

For MacOS you can now search most lists in the FileMaker user interface, e.g. the list of custom functions. Simply click in the list to set focus and press command-F to show find bar. Alternatively pick find in the contextual menu. Our Copy Script button can now copy HTML if you press alt key. For the lists for custom functions, layouts and fields, we now store the column widths for you.

Our FM.Loop function can help to implement for loops in FileMaker. For your tables, you can use FM.TableStatistics to check for statistics on how many container values use how many bytes.

For CURL functions, you can now query form data with CURL.GetFormData function. We added over 50 new properties to set for CURL to cover all the options in the CURL library. This includes new settings for asynchronous pipelining. For FileMaker 17 Server, we have a sample file to show queries for the Admin API.

If you use JSON or XML, you can now colorize it for showing to the user. JSON can now be converted to HTML to display to the user. We got a function XML.ToJSON to convert XML to JSON. And XML.ValidateFile can now validate an xml file against a schema file in a folder.

Our UUID functions can now create and convert UUIDs as numbers. This is new with FileMaker 17, but the MBS Plugin can provide same UUIDs for folder FileMaker versions with UUID.Number function. UUID.FromNumber and UUID.ToNumber allow to convert between numeric and hexadecimal representation.

We now offer a Site license for bigger companies with a lot of servers and clients. The clipboard functions on Mac can return styled text as HTML if needed and got improved for better UTF-16 handling.

Finally we updated CURL to version 7.60.0, DynaPDF to version 4.0.19.50, LibXL to version 3.8.2.6, SQLite to version 3.23.1 and SQLAPI to 4.2.2.

The MBS plug-in comprises a collection of several plug-in parts which extend the Xojo (Real Studio) development environment with 2,300 classes featuring over 60,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console including 64-bit and ARM targets. Some of the highlights on the 18.2 update:

This year we work on a Bluetooth plugin and in this release we start with 16 new classes for the CoreBluetooth.framework from Apple to connect to Bluetooth LE devices on your Mac.

For MacOS, our CanvasGesturesMBS class allows you to generically capture gestures on a canvas. This includes swipe, rotate and magnify gestures and now allows you to use standard Canvas to catch them instead of using a NSViewControlMBS control.

You can now query media libraries using our new MediaLibrary classes. This is 64-bit only, but allows e.g. to query playlists in iTunes.

For CURL, we added over 50 new properties and functions to query information. Our new CURLSSSLBackendMBS class allows to query what backends are available. The new AddMimePart and FinishMime methods and CURLSMimePartMBS class allows better MIME uploading handling. For the properties in CURLSMBS, we optimized storage and got memory usage reduced.

The new CWWiFiClientMBS class allows you to listen for Wifi related events. e.g. you can get notifications for new Wifi networks found.

For Windows, you can now enable spell checking for Xojo's textarea controls. The new WindowsGUIResourcesMBS class allows to query handle usage for GUI classes to detect running out of handles. With RemoteControlMBS.WinBringProcessToTop method you can bring a whole process to the front.

This week I prepared a new code singing script for runtimes made with FileMaker 17.

A few things changed in the runtimes with a new Cloud framework, addition of the swift libraries and removal of OmniORB4 framework.

If you distribute your runtimes, you need to sign the app and the disk image for Gate Keeper. If your runtime is not signed, the Finder will ask the user when launching the application after download to delete the app! Or you may get a message that the database is not found. To avoid users get confused or not use the runtime, we sign the runtime.

How?

Signing the runtime got harder with new requirements in Mac OS X 10.9 and the upcoming Yosemite release. We not just need to sign the actual application, but also make sure we sign all the components. For the frameworks inside the runtime, we need to fix them to give them a few standard symlinks which are missing. Without those modifications, the bundle will not sign. If you like to save a few bytes, you can delete the icon files: FM12Dict.icns, FM12Label.icns and FM12Plug.icns inside the runtime. Those are not referenced and never used.

Developer Account

In order to sign, you need to sign up for a Mac Developer Account with Apple. This costs $99 USD per year. In the Certificates, Identifiers & Profiles section, please go in Mac Apps section and there in Certificates. Create a new Developer ID certificate, follow the instructions and download the certificate file. Double click it to add it to Keychain Manager and voila, it is installed and ready to use.

Sign Script

When you edit the script in a text editor (like BBEdit or TextWranger), you can change the path to the runtime, the name of the app and the name of the certificate. Please note that this script will not work without correct values. If your file name or path contain special character, escaping may be needed. For example a space character needs to be escaped with putting a backslash character just before the space character. You can learn how to escape a path by dragging and dropping the file or folder into the window of the Terminal application. The path is inserted and you can copy & paste it.

Now when everything is setup for your runtime in the script, you can drop the script on a Terminal window and press return key to start it. You'll see a couple of messages. This may include some complains from rm command trying to delete files which are not there. Nothing to worry about, the script just makes sure everything is correct. Further you see a couple of sign message for various parts of the application. The final line should show "signed bundle with Mach-O thin" and report success for signing your runtime app.

Verification

To check if app is okay for Gate Keeper you can first verify code signature using a call to codesign with a couple of v for more details and -d to display certificate:

codesign -d -vvvv /Users/cs/Desktop/Test/test.app

Next with spctl utility you can show if app is accepted. So we run spctl utility with verbose messages and -a parameter:

spctl -a -vv /Users/cs/Desktop/Test/test.app

Please change path to your runtimes before running above commands. The output should say "accepted" and now you are lucky and can archive and upload your runtime. Good luck!
Now you can build disk image and sign it.

Already developers from nine countries are signed up including Xojo CEO Geoff Perlman and Xojo Evangelist Paul Lefebvre. The schedule is mostly done with only a few sessions still pending. Reserve your ticket and reserve your hotel room as soon as possible.

Our Hotel room contingent expires later this month, so please make sure you have a room booked.

We all look forward to presentations about Android, the new Web Framework other news in the Xojo keynote.

Registration is open. The late bird offer available till 7th June is just 599 Euro plus VAT if needed. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim Hotel as well as an accompanying social program.

Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers. If you like to hold a presentation, please contact us as soon as possible.

Sometimes we need to make screenshots or present with FileMaker in other languages and you can have at least eleven languages:

(you know all the languages for the menubars?)

I made a couple of little AppleScript apps to launch FileMaker 14/15/16/17 in another language. So I can double click the French one and another instance of FileMaker Pro launches on my Mac with French localization. Please try and let me know what you think about it.

This conference is organized by Egbert Friedrich and takes place from 7th to 9th June 2018 in Berlin, Germany. If you like to join and you are not yet on the list, I think you may need a really good reason for him to let you get a ticket.

Both refer to the same UUID and you can calculate the numeric value yourself by decoding hex parts and multiplying. Those UUID values allow you to use UUIDs as primary keys on the database. Sorting and indexing can be more efficient.

Sadly FileMaker 17 does not introduce the UUID data type to store UUIDs efficient as 16 byte in binary representation instead of 40 characters of text for the number or 36 characters for hex representation. That would save space.

So please start using UUID numbers, which avoid people guessing your record IDs by counting up or down.

If you need those for FileMaker 16 or older, you can use our new plugin function UUID.Number. It returns you an UUID as number, same as with FileMaker 17.

This class allows you to query the number of handles used for GUI and user objects. So you can have a timer monitor those values and maybe detect a leak in memory usage. For example, each picture needs a GUI handle. But a window may contain a few user object and GUI handles.

FileMaker Inc. just released their latest version of FileMaker product family and you can read elsewhere about all the details. Here I want to just point to a few changes, which may not be addressed in all the announcements.

Plugins

The new version of FileMaker has a new plugin SDK and plugin vendors should update plugins for the new version. For MBS Plugin, please use version 8.1 or newer. Version 8.2 will be released next week to give us a few days to test with the final FileMaker 17 version. We hope to quickly fix any issue found after the release is out.

We support 12 different FileMaker releases from version 7.0 to 17.0 and use a modified version of the SDK which does some extra steps to make sure the plugin loads for all the older versions.

Older plugins may or may not work for FileMaker 17. They may not load, not initialize correctly or you cause problems later. We fixed a couple of issues in our plugin for 17 in the beta time. But with 5000+ functions, you may never run into one of the affected functions! To avoid trouble, please use 8.2 or newer.

FileMaker Advanced only

First FileMaker Pro is gone and we only have FileMaker Pro Advanced. If you miss the Tools menu, please enable it in preferences and restart your copy of FileMaker Pro Advanced. Please note that independent of this preferences, the software itself via report itself as FileMaker Pro Advanced. e.g. Get ( ApplicationVersion ) returns something like "ProAdvanced 17.0.1".

For plugins this means that we have to do extra work in the MBS Plugin. But you can use that as MBS( "Platform" ) should return "Pro" if you use only the Pro version and Developer if advanced tools are enabled. We use this to disabled script highlighting automatically for FileMaker Pro until the first time you open the script editor. This avoids confusion with users who may see a colored number somewhere.

Please note that you as a solution provider can define whether Advanced Tools are enabled with the AI_DISABLEADVANCEDTOOLS=1 entry in the "Assisted Install.txt" file next to the installer.

FileMaker Data Migration Tool

The migration command line tool is great addition and certainly will help a lot of people. It allows to copy data from the older database into a clone of a newer version. Be careful to read the documentation for this tool. The rules on how to match tables and fields from old to new database could be unexpected sometimes as matching goes primary by name and not ID. So better do not rename tables or fields unless you want them to be empty after migration.

If calculated fields need to be recalculated, be aware that some context may be missing, especially calls to plugins will not work as far as we know and not return the expected values. Finally, please always use the -v command line switch for verbose output, so you see what is going on. Work on copies of the databases and it may be good to lock the old file as read only (Info window in Finder), so you don't accidentally overwrite the old database.

For the performance, calculated fields can make the process slow. Because if there is a field, which needs to be recalculated, that means that all related fields may need recalculating and finally the indexes need to be redone. And if each field needs to be touched and index rebuild for a table, the copy process can change from a second (copy on block) to minutes.

Perform Script by Name

As scripts can be performed by name, be always sure that the script called verifies that the one who called is allowed to call it. People could before trigger any script by name via URL already, but now it's even easier. So expect any script to be triggered by someone at any time. For best security, validate if the script is run in the correct layout, by the current account and exit with an error if something is not as it should be!

Temporary Logout

The new feature for temporary lockout is a good idea. But have you ever left your iPhone on the kitchen's table? If you have small kids, the may try some buttons and while they may not be able to read and write, they key can press buttons and get PINs entered. Sometimes I come back and the phone is locked for a minute!
So if someone comes to your FileMaker application, they can now block your access for some time by trying random passwords.

OS Requirements

FileMaker 17 has higher needs for the operation system. On Windows side you can use 7 year old Windows 7 SP1, but on MacOS, it must be 2 year old MacOS 10.12 Sierra or newer. I am personally not happy to only have two supported MacOS releases.

For iOS FileMaker Go requires the 11.2 release from last year. That maybe due to the Drag & Drop support which requires iOS 11.

FDS/FBA

With the newer license model, the benefits improve for the memberships. For 99 USD/year as FDS member, you can now get the FileMaker Data Migration Tool (you want that in your toolchain!) and a server license for your development. It is the cheapest way to get yourself a server for your own company, although with very limited connections.

Being FBA member is now worth more as you get 3 servers and 5 users included. That is cheaper than buying those licenses for yourself, so I would expect quite a few smaller FileMaker consultant companies can cover their company with those licenses. FileMaker iOS SDK and data migration tools are now included with FBA, so you may no longer need a FDS membership alongside a FBA membership.

Launch Events

Please check FileMaker Events website for announcements of FileMaker 17 Launch events.
We will be present at the launch events in Germany (29th May) and in Switzerland (12th June).

You may know that you can sign a PDF with DynaPDF cross platform in Xojo (and FileMaker) with a certificate file, usually a PKCS#12 file.

But for Windows, our Xojo plugin offers an alternative way by using the local certificate storage. So your user can have the private key with certificate installed on the Windows machine and sign without knowing the password for the certificate!

On the right, you see the dialog from Windows to pick a certificate in German.

If you have no certificate, you get an error message. If you have one, you can confirm to use it and if you have several certificates, you can pick one. The dialog is localized for the user.

Changed CollectOutputData, CollectHeaderData and CollectDebugData for CURLSMBS/CURLMBS/CURLNMBS to track if you set property and if you set to false, we ignore the data and do neither return error nor collect data. If never set, we may turn them to true, when you have no event and no file streaming.

Did you notice that FileMaker does not remember what column width you set for several dialogs?

That's changing today as we now add a feature to store column widths permanently in the preferences file for MacOS. So in the Manage Database dialog, we remember for the tables and fields lists the columns. Also for the layout dialog, we remember the widths.

This feature is not very difficult, as the list control used here from Apple does provide that feature out of the box. FileMaker doesn't make use of it, but the plugin can enable it. So when we now look to add out checkboxes for the ID column or the column itself, we can make sure auto saving is enabled.

You need to enable Layout IDs to have the patch for layout dialog be applied. And enable the checkboxes for field/table IDs for the field/table lists.
Coming soon to the next prerelease of MBS FileMaker Plugin 8.2. Who wants to try?

What's new in MBS Plugin since last conference?
07 Jun | 15:00 - 16:00
Let's take a look on the features added the last 12 months and let's discuss what you'd like to see in the next months.
Preferable not a slide show presentation, but a walk though examples and a discussion on what you can do with the functions or by combining functions.

MBS Plugin Goodies
08 Jun | 15:00 - 16:00 Let me show you what MBS Plugin already does for the FileMaker development environment.
Variable checking, syntax highlighting, search and much more.
And lets discuss what I may add in the future.

FileMaker App for iOS to the App Store with plugins
09 Jun | 10:00 - 11:00
Let's build an app for iOS with plugins and than submit it to the app store.

Anything else you'd like me to talk about?

This conference is organized by Egbert Friedrich and takes place from 7th to 9th June 2018 in Berlin, Germany. If you like to join and you are not yet on the list, I think you may need a really good reason for him to let you get a ticket.

Today we got some code to detect whether a DLL is 32-bit or 64-bit. That can be useful if your app requires the user to install a custom DLL, e.g. mysql DLL for use with our MBS Xojo SQL Plugin.

Technically you need to read the DOS header from the DLL/EXE file, check where the PE header starts and lookup the field for CPU architecture. If something is not supported, we ignore it, like a wrong position value and if the MZ or PE texts are not there. As you see, we can easily do that with binary stream class in Xojo and Microsoft defines a lot of constants for the various possible architectures.

If you find a DLL from a Windows RT copy, please let me know if it detects ARM as target. Thanks.
(more)

We recently got a new FM.Loop function for our plugin. It allows you to run a loop in one plugin call and evaluate a lot of things in one line. For example you can loop over items in a JSON array and sum them up.

Lets take our first example. We have a JSON area with numbers from 1 to 10. You probably remember this sums 55 from school. The JSON.GetArraySize queries the number of entries in the array. With the loop function we loop from 0 to count-1 to query each of the items int the array and sum them up. For that we use a Let statement. In this case we first query the value with JSON.GetPathItemand than use $sum variable to add the new value. Take a look:

For the next example we have a bigger JSON string with an array of objects. You may have got this from a web service. Like this list of prices for items:

[

{

"item": "1",

"name": "Test",

"price": 123

},

{

"item": "2",

"name": "Other",

"price": 234

},

{

"item": "3",

"name": "Item",

"price": 345

}

]

Our script is a bit more complicated as we need to build the path to the item in the script with the calculation i & \¶ & \"price\". That takes the index of current array element, followed by ¶ as separator and price as the item to pick. This is the script with a lot of extra backslashes for escaping:

Today we rebuild the the DynaPDF library for iOS, so you can use the current version of DynaPDF with your FileMaker iOS SDK apps when using the MBS FileMaker Plugin.

We include four variants in our download:

DynaPDF for iOSThe universal one, which includes library for simulator and device

DynaPDF for iOS ARM64 onlyFor building 64-bit only iOS app

DynaPDF for iOS Device32 and 64bit for device

DynaPDF for iOS Simulator32 and 64bit for simulator

When building your iOS app, just include the dynapdf framework file in the frameworks folder inside the app and call DynaPDF.Initialize in the start script passing the framework name and your license key.

The result should be OK if everything worked. If you get an error message including "mach-o, but wrong architecture", well you did copy the wrong framework file.

The May/June (16.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Farewell New Framework by Marc Zeedar
Big announcements were made at this year's Xojo Developers Conference in Denver, Colorado in late April. Find out all the details here!

A Roundabout Way to Denver by Marc Zeedar
As usual, Marc likes to do things the hard way. Instead of a quick flight to Denver and a stay in a comfy hotel, he decided to drive 1300 miles and sleep in his car. Er, what?!

Give Yourself to the Dark Side by Sam Rowlands
Apple has added "dark mode" support in recent OS updates, but using it in the best way can be tricky. Sam demonstrates how by creating a custom slider control.

A Predicate For Data, Part 2 by JC Cruz
This time Jose adds new features to his data predicate class.

For some weeks I had this idea on how to make a gallery for FileMaker, which shows images from a table, but in a grid style. As you see we still have rows, which show containers, but the assignment of which image shows in which container is defined in formulas:
On the layout, we put in five container fields all defined by a formula, which picks the right field via a custom function and using SQL. But let's start with a helping function ImagesCountPerRow:

Min( 5; Max ( 1; Round ( Get ( WindowWidth ) / 266 ; 0)))

This returns how many fields are needed for a given window width from 1 to 5. In the un-stored calculation of the formulas, we use a formula like this:

]
; If(error3 = 0 and error2 = 0 and error1 = 0; value; "") )
As you see we use If() functions with error status to make sure we only call further functions if the previous function worked. So FM.SQL.Execute runs the SQL to find just the one container value we need using the offset command to skip some values before and only fetch one value. If we got a row, we fetch the field value of the first field. On the end we return the value or "" if not found.

On the layout, we can add a trigger for a script to refresh using the Refresh Window script step. This will cause the images to reformat and adjust to new window width.

The example is available with next plugin prerelease or today if you ask kindly.

In the example you also find the script to pick a folder via dialog and import all image files.

As you may know, we can query address book in our plugins. Now you can store your own IDs for users in the contacts database by using an extra URL.

The key today is that we use an URL in the addressbook and make it a FMP URL, so the user can actually click on the URL and go to the FileMaker database right away. When synchronizing the IDs between database, we can store our own ID this way. To search, we use Addressbook.searchElementForProperty function to search for our label in URLs property and compare to the ID.

Monkeybread Software today is proud to announce Combine PDFs 5.3, an update to their popular PDF merge and split tool for Mac OS X. With a focus on ease-of-use, Combine PDFs is a lightweight utility which allows anyone to merge PDF files and images into a single PDF file. The user need only drag & drop files onto the program icon. The main window appears, allowing the user to set the order in which the files are joined.

Changes in Version 5.3:

Added swedish translation.

Can use app store license in shareware version.

Added retina support and now a Cocoa application.

Added preference option to enable copying of annotations.

Requires MacOS 10.9 or newer.

Upgraded to 64-bit.

Fixed preview window setting, so it's saved and honored on next app start.

Already over 35 attendees are registered from seven countries and the schedule is filling quickly. Reserve your ticket and reserve your hotel room as soon as possible.
Our Hotel room contingent expires later this month, so please make sure you have a room booked.

We all look forward to presentations about Android, the new Web Framework other news in the Xojo keynote.

Registration is open. The late bird offer available till 7th June is just 599 Euro plus VAT if needed. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim Hotel as well as an accompanying social program.

Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers. If you like to hold a presentation, please contact us as soon as possible.

Not yet signed up for the FileMaker Developer Conference in Dallas?
Well, you missed already one deadline, but the early bird offer with $100 discount is still available through May 31. Regular tickets will cost $1499 USD.

This is a fantastic conference hotel with 1500 rooms, 10 restaurants, several pools indoor and outdoor. And as may know this was my guess for the conference hotel.

Rooms can be reserved on the hotel website ($189 +tax per night). As you can cancel rooms and they may run out of them, you better reserve now a room and block the week in your calendar. See you there at the MBS booth!