Our Blog, Filemaker only, Xojo only, Archive (older), Follow us on Twitter, Xing, LinkedIn or Facebook.

Bind database fields with fields array in Xojo

The last days for a project in Xojo we had a different idea for prepared statements to avoid using wrong indices.

As you may know the MBS SQL Plugin allows you to use field names in the Bind statement to avoid messing up with indexes for named parameters. For this project the database access is without MBS Plugin, but with Xojo's built in database classes. So we had several queries to update 20+ fields in same tables and mixing up the indices for all the Bind() and BindType() calls and all those question marks.

So I had the idea to put all the field names in an array first, build SQL statement using that field and use the field array later to find the index in code. Take a look on this function: (more)

MBS FileMaker Plugin, version 7.4pr8

New in this prerelease of the 7.4 MBS FileMaker Plugin:
  • Changed script ID display to show ? if two scripts have same name and we don't know which ID is right.
  • Added iOSApp functions to get notification on low memory, going to background, coming to foreground or significant time changes.
  • Fixed Folders.UserVideo to make it work on Windows.
  • Added stars to field ID list in database design window to highlight where we didn't find a neighbor ID.
  • Added Dictionary.AddSQLRecord function.
  • Added CSV functions: FM.InsertRecordCSV, List.CSVSplit and QuickList.CSVSplit.
  • Enabled XML for GraphicsMagick for Mac as it's needed for SVG.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo Plugins, version 17.4pr8

New in this prerelease of the 17.4 plugins:
  • Improved RawSocketMBS.CalcChecksum and added new example project.
  • Updated to LibXL 3.8.1.
  • Enabled XML for GraphicsMagick for Mac as it's needed for SVG.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 7.4pr7

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

Xojo Training in Germany and Europe with me

I just returned from a three day training in a big cooperation. One of them visited my training day at the Berlin conference and was so happy that they hired me for three days in their office :-)

Well, if you like to get a Xojo training on site, let me know. We can arrange training days in our office, in your office or meet in a hotel nearby. Usually I prefer to get you a bit disconnected from your company so you can concentrate and not respond to email/phone while you are in the training.

Common topics include introduction to Xojo IDE, basic coding techniques, demonstration of various controls and framework classes. For example using XML, JSON, RegEx or sockets classes with example projects. For database access we usually write a contacts or image database to include adding records, retrieving them, use BLOBs and prepared statements. We can dig into advanced language features like threads, declares, delegates, exceptions, variants/auto data types and the debugger.
Usually the training starts with an introduction of the trainees where we collect topic wishes.

Beside on-site training, we do have regular group training days:
Previously we had trainings in London, Berlin, Munich, Zurich, Frankfurt and a few other places.
If you have a few people interested in your area, we could offer a group training day for your group or a public one.

Training can of course also include showing you plugin features and building little projects which you can use a prototypes for your own solutions, e.g. show you how a certain feature can be done which is the core of your next solution.

Field Picker in FileMaker resizable and in black

Take a look on this screenshot:

Another nice idea for people with big databases where the names of the fields can be really long.
You can enable resize and/or black color in the preferences dialog for MBS Plugin.

All options can be toggles on/off and should work fine in various FileMaker versions.

Showing Script IDs in FileMaker Script Workspace

The MBS Plugin can soon show the script IDs in the Script Workspace:

As you trigger scripts via ID, it may be convenient to see the IDs right in the tab.
Coming soon in the next 7.4 prerelease. Or email for a copy to test today.

Update: We'll move the numbers to the script table, as you better see them there, I think.

New Windows Framework for Xojo coming

Have you read the blog post The Short-Term Xojo Roadmap from Geoff Perlman, CEO of Xojo Inc.?

Looks like they feel sorry to change the priorities on a few projects. Xcode 9 requires them to use 64-bit debugger for iOS apps. So be aware not to install Xcode 9 too soon!
While they work with all engineers on 64-bit features, the Android, InterOps and the Xojo Library project type will be delayed.

Good thing is the work on the new/improved Windows framework makes progress and Geoff announced it in the blog post! There have been rumors about this and maybe it was mention before at conferences as one of the side projects they do. Details are to be seen. This could be anything from using layered drawing on Windows, embedding some .net controls, switching to .net framework for the GUI or even using Windows Presentation Foundation for this. FileMaker uses WPF as far as I know. I remember we talked about that some time ago and how plugins may be affected.

For the MBS Plugins, well, we have to see what Xojo Inc. delivers. It may be that all functions related to windows and controls on Windows will no longer work. If we still get a normal windows handle for the windows, some things may work. It may be a lot of work, to change plugins and declares, but getting rid of flickering, should be worth it!

MBS Plugin now showing field and table IDs in database design dialog

Take a close look on this FileMaker dialog:

Of course you can toggle this off in preferences dialog and the checkboxes allow you to enable it only if you want to see them.
But if enabled, the plugin tries to query all the field and table IDs and show them in a new column. We use a checkbox to enable it as the query to get table/field information from FileMaker can take a few seconds on big databases.

If you like to test, email me for a copy. macOS only.

MBS Xojo Plugins, version 17.4pr6

New in this prerelease of the 17.4 plugins:
  • Fixed bug with CURL's GetInfoCookieList function.
  • Fixed plugin options for CURL to pass empty C string for empty Xojo string. This helps with OptionCookieFile = "" to use in memory cookie engine.
  • Added StdInMBS.Echo property.
  • Added RegistryKeyMBS.DeleteTree and RegistryKeyMBS.CopyTree functions.
  • Added classes for CoreML.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 7.4pr6

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

Bluetooth Vulnerability BlueBorne Impacts Android, iOS, Windows, and Linux Devices

Have you seen the details on the Blueborne attack?

Any device unless patched can simply be taken over via bluetooth by just being in range of a hacker!
If someone places a bot to hack all devices in range automatically in a subway station, they can get thousands of devices taken over and have a huge bot army.

This is one of the bugs, which renders all unpatched devices to be no longer used. So any Android and Windows without security patch installed, and iOS before version 10 should no longer be used. And for Android it's unlikely, that your phone has currently the September security patch installed, if it's available for your phone at all!

Another solution is to disable bluetooth on all devices.

Playing with CoreML in FileMaker

For the release of macOS 10.13 High Sierra, we are working on supporting CoreML framework in FileMaker and Xojo. Here is my test database to detect :

While macOS 10.13 is not ready for a few weeks, we can already download the beta versions of macOS and Xcode and play with it. You can use a model quite easy as you see in the Core ML presentation from WWDC 2017. With just a few lines in a script we load a model, setup source image and run it though the neural network to classify the picture. You can get sample models from Apple's Machine Learning website.

The plugin will be available later this month with the macOS release.

Problems with killing Xojo threads with plugin calls.

While you can kill a thread in Xojo, you may think twice before doing it.
The kill command usually raises a ThreadEndException on the thread which with normal exception handling exists all methods and returns to the run event, which on exit ends the threads. So with normal Xojo code this should often work fine.

Now things are different when one of my MT methods in the plugin run. Kill command causes problems there including crashes and runtime assertions. In my MT methods the plugin will run a loop and yield time to other Xojo threads. The actual work happens on a preemptive thread in parallel. The plugin doing the loop has currently no way to know you called kill, so it will continue until the work is done on the preemptive thread and return with the result. But yielding time may cause the ThreadEndException to be processed. The thread can be released from memory, objects destroyed and that pulls the rug out from under the plugins feet. The plugin continues trying to get the work done and this causes major problems for some client.

The better way usually is to define a cancel flag on the thread class and set it to true, when thread should be considered killed. In the thread, you could regularly check the flag and exit code immediately when it's true. This way you can exit safely and do clean up which may not happen when using kill, e.g. delete temp files.

For the future, the new thread class has no kill method.

Here a list of MBS Plugin functions with preemptive threading:

Image view for FileMaker via MBS Plugin

For next MBS FileMaker Plugin release we add an image view control for macOS and iOS:

So you can show an animated GIF images on the layout independent of container fields!
Of course other images work, too. And you can hide/show as needed, change size and close the control as needed.
Like to try? Well, contact us for a new plugin. Documentation

PS: Now available in 7.4pr6 to test.

Session List for Xojo Developer Conference 2018 posted

The session list is online with the first 26 sessions.
A few more will follow once they are ready:

This includes sessions about what is new Xojo in April including Android, Web Framework 2.0, Compiler changes and not yet released features. A few sessions talk about best practice like SQLite, project management, HTML5, REST APIs and object orientated programming. Interesting is always to learn from experience of other developers with their projects like the Baseball Team Stats application from Paul Lefebvre. As Xojo targets a lot of platforms, the sessions include all platforms from iOS and Android, Web and Desktop with Linux, macOS and Windows.

Just three weeks to register and get the early bird rate: Save $200 when you register by October 1st.

xDev Magazine Raffle winners

The raffle for a free Xojo Developer Magazine subscription ended.

What raffle?
Well, please read the last sentence in blog post.

Congratulations on the winners: Lewis, Markus and Mattias.

As three people commented and I couldn't decide on which random number generator to use, I spontaneously decided to give each one a subscription!

Happy programmers day to everyone!

Sponsoring FileMaker conferences

I recently noticed that I had not yet signed up to sponsor the FileMaker conferences in Leiden and Rouen.
So now I changed that and you can find my logo on the list of sponsors. So you can now join those conferences:

fmconf.com, FM Conférence 2017 in Rouen, 18-20 October
fmsummit.info, FM Summit 2017 in Leiden, 9-11 October

We also sponsor FileMaker Konferenz in Salzburg and FileMaker DevCon in Madrid.

TextInputCanvas for GTK3 and 64-bit

As you may know there is an open source project called TextInputCanvas. It provides some better text input events to Xojo apps using custom text control like the Formatted Text Control.

Recently Xojo 2017r2 was released which uses GTK in version 3.0 on Linux. Previous versions used GTK 2.

You can load a copy on my plugin download page.

This plugin is build with my plugin build system, so it has MBS in the name and includes libraries for Mac, Windows and Linux including ARM, so you can use it in all projects. If you find a bug related to the GTK3 or 64-bit port, please tell me.

A speciality of MBS Plugins with GTK is, that we built plugins to link dynamically to GTK and use either GTK 2 or GTK 3 depending on the Xojo version. This should help to have just one set of plugins to work with Xojo 2013 up to 2017r2.

MBS FileMaker Plugin, version 7.4pr5

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

Older blog entries:

2017-09-11 MBS Xojo Plugins, version 17.4pr5
2017-09-11 MBS FileMaker Plugin Schulung auf Deutsch bei der FMK 2017
2017-09-10 FileMaker DevCon 2018 to be announced in October
2017-09-09 Xojo Stammtisch in Braunschweig oder Wolfsburg?
2017-09-09 Dash help archives for Xojo and FileMaker
2017-09-08 Xojo Developer Conference 2018
2017-09-08 Got a new cabinet. Cube loves it!
2017-09-07 FileMaker Magazin - MBS Artikel
2017-09-06 One year till European MBS Xojo Conference in Munich
2017-09-06 FileMaker Stammtisch Rhein-Main
2017-09-05 xDev Magazine Issue 15.5
2017-09-04 High Sierra Tester
2017-09-01 Xojo Training and Meeting Events in London, UK
2017-08-31 MBS FileMaker Plugin, version 7.4pr4
2017-08-31 MBS Xojo Plugins, version 17.4pr4
2017-08-30 FileMaker and PDF Containers
2017-08-30 Xojo Consulting in German
2017-08-28 Sign up for European FileMaker Conferences
2017-08-27 Things to do in Denver beside XDC
2017-08-26 Custom WebView in FileMaker 16


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
XML: RSS Feed XML: Atom Feed