We have added
CNContactPicker.Show and
CNContact.Show for next version of MBS Plugin and using those functions you can show a picker to select a contact or show details for a contact:
e.g. if you have contacts in your FileMaker iOS SDK based application, you can have an import button to select an entry in your contacts and read the values into FileMaker database.
Checkout the other
Contacts and
Calendar functions (includes reminders) for MacOS, iOS and iPadOS.
Let's compare a bit
XojoScript built-in to Xojo to
JavaScriptEngineMBS class in
MBS Xojo Tools Plugin. What are differences and benefits for both?
XojoScript is the scripting engine provided by Xojo and is heavily used in Xojo for
IDE scripting. You can use it in your projects, compile code at runtime with a
reduced Xojo language and the run it. With context object you can provide your own methods and properties and use them in the scripts. While you can precompile and then run several times, there is no way to store the compiled code anyhow. There is only one source piece containing all the code, so you can't just predefine some routines outside source.
On the other side we have
JavaScriptEngineMBS, which uses
Duktape library to provide a ECMAScript engine. So the language is JavaScript and there is built-in functionality for text, array and JSON functions. You can just pass some JavaScript from your user to the engine and let it execute. Our plugin allows you to set/get global properties in the JavaScript memory. With XojoScript you would have to predefine variables either in context object or in the source code. For JavaScript you can define your own functions to be used in the script by calling AddFunction method, so you don't need to know those at compile time and you can load them from a database at runtime. You could load a JavaScript from your user and let them write functions which you call with our CallFunction function. Finally like the XojoScript context object you can use Xojo methods to define JavaScript functions via delegates and have JavaScript call back to your Xojo application.
The JavaScript is evaluated at runtime, it may be parsed before running, but it is not compiled into machine code as with LLVM compiler in XojoScript. We don't expect anyone to notice the difference unless you do some heavy calculations. The JavaScript function definitions in Duktape can be exported as a BLOB and stored in binary notation in a database. See SaveFunction and LoadFunction methods in
JavaScriptEngineMBS class.
As we don't know your use case, the decision which to use can be difficult. XojoScript has the big advantage that it's built-in and uses the same Xojo language you know about. But your users may be more familiar with JavaScript, so our plugin may be a good choice, too. As our JavaScript doesn't need to be defined as much at compile time, you can invoke it more dynamically. Like loading your context functions from a database and installing them at runtime and loading global properties from database and registering them via code. Finally you can add functions to call methods on different objects via delegates, so some methods you offer can go to the app object, some to the current window and others to your Xojo class for the data model you have.
If you have questions, please don't hesitate to contact us. See also
New in the MBS Xojo Plugins 20.0
Today we added
WebView.PostURL to load a website with a POST request in a web viewer. For some websites this allows to pass some extra data to a website and then display the result in the FileMaker web viewer. We can pass extra headers which is great for authentication, but can also be used to override the user-agent for the request:
As you see we passed a different user agent and confused this website a bit to think we have a Mac with Safari. We load the website with a call like this:
MBS( "
WebView.PostURL"; "web"; $URL; ""; "User-Agent: Mozilla/5.0 (FileMaker; Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15 )")
As we pass no post data, this will not be a POST request, but a GET request. For headers you can pass list of entries, but here in the example it is just one line.
Maybe this may help you with some websites to go past some browser detection. See
WebView.PostURL function.
Please do not hesitate to contact us with question.
New in this prerelease of the 20.1 plugins:
- Added LTCMBS and related classes to encode/decode timecode.
- Added Read and Write methods and ReadAvailable and WriteAvailable properties to PortAudioStreamBaseMBS class and removed them from PortAudioStreamMBS class.
- Added isValidDateInCalendar and isValidDate for NSDateComponentsMBS class.
- Added dateFromComponents, componentsInTimeZone, dateByAddingComponents to NSCalendarMBS class.
- Updated NSDateComponentsMBS class to have debugger visible properties.
- Updated DynaPDF to version 4.0.37.103.
- Fixed buffer overrun in BytesToKey function in CipherMBS class.
- Fixed BacktraceMBS to work again in console and web projects.
- Fixed a bug in ShellMBS class when running applications on Windows with empty ApplicationName.
- Added JavaScriptDateComponentsMBS class.
- Added DateComponentsToTime, TimeToDateComponents and Now methods to JavaScriptEngineMBS class.
- Updated SQLite to version 3.31.0.
- Updated curl to version 7.68.0.
- Documentation now includes references to Xojo Developer Magazine articles in html and PDF.
- Added Navigate method for IEWebBrowserMBS class to pass headers and POST data with loading URL.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
New in this prerelease of version 10.1 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
Our documentation now links to issues of the
Xojo Developer Magazine.
For each class/module/control, we link to relevant articles, so you can quickly find them.
e.g. if you scroll down on the page for
DynaPDFMBS class, you find listed methods and properties using this class, example projects, blog entries and new the list of articles in
Xojo Developer Magazine referencing this function.
We hope this makes live easier for those using MBS Xojo Plugins and subscribing to the
Xojo Developer Magazine.
Even if your English is not perfect, you may want to read it as the Magazin is a big treasure with the back issues from 18 years.
In total we reference the magazine from 290 items with 400 relevant pages. Enjoy!
As you may know we publish a few articles in German
FileMaker Magazin.
For our documentation we added links to relevant articles, so you can quickly find them.
e.g. if you scroll down on the page
FM.ExecuteFileSQL, you find listed related functions, example databases, blog entries and new the list of pages in FileMaker Magazin referencing this function.
We hope this makes live easier for those using MBS Plugin and subscribing to the
FileMaker Magazin. Even if your German is not perfect, you may want to read it as the Magazin is a big treasure with the back issues from 25 years.
We keep a few articles from the magazine here:
FileMaker Magazin MBS Artikel
In total we reference the magazine from 356 functions with 630 relevant pages. Enjoy!
Last year we presented our
DynaPDF graphics class integration, a feature we worked on a few weeks before the conference in secret (see
presentation video here). Beside the normal support requests and preparing the session slides that was a bit of extra work each day. The presentation file, I submitted before the conference, did miss the new special slides and I added them just before the presentation to make sure I didn't leak the news myself.
For
Xojo.Connect 2020 in Nashville this year we look for a new idea on what to present as a surprise. Not sure if we find a compelling idea. It should be something which is useful to a large portion of the user base and not a feature for a you alone or a handful of people. And it should be plugin feature, so not a wish for iOS extension or some grid with containers as that is better written in Xojo directly.
Do you have ideas? Please
email us.
I would also encourage the Xojo team to take a week before XDC, look through feedback cases and maybe let every Xojo engineer pick an annoying bug, a little feature request or something they'd like to see or have and spend some time onto this. Especially as a lot of feedback cases never come to the top 100 list and never get attention of the management. The in the keynote Geoff could present that list and maybe demonstrate those improvements. Those items would be first hand news shared with the crowd. Finally for the last session, if something got fixed at the conference, present it there. I did this before at a conference where I had a short lightning talk on the end and could show a new feature I programmed at the conference.
One of the feature I would do as a developer on the compiler is to make sure it annotates the nil object checks and out of bounds exceptions as far as possible with details like line numbers or name of variable. Not for all cases of course, but the functions to raise this exceptions could be overloaded and when the LLVM frontend for Xojo parses the lines and adds the checks, it could include the parameter with line number if it knows them.
Our work continues for custom font for FileMaker and some people like JetBrains Mono, but why not a different font and make it user choosable?
Not all fonts work, so we filter the font list and only include those with characters used in script workspace like brackets. So WingDings for example is not offered.
We'll see if this feature works well or causes trouble for some users.
This feature is coming for next MBS FileMaker Plugin version 10.1 one early March.
As a Xojo developer, do you use Feedback application to report bugs and feature requests?
Did you notice in the recent section that a lot of feature requests got marked as implemented for Web 2.x?
Seems like there is a quite a bit of WebAPI 2.x progress and I am looking forward to
Xojo.Connect conference to learn the details!
We expect a beta version to be ready either at the conference or shortly after it. At the conference for attendees would be great because if we all download and play with it there, we may report bugs and show them directly to Xojo staff so they could be fixed at the conference.
We got a new preferences dialog for our
MBS FileMaker Plugin on Windows. It allows you to see the plugin version and allows to install a license key locally, which is saved to the registry as with
StoreRegistration function:
As the dialog on MacOS, we may show the license state, e.g. demo with no license, trial license or purchased license.
Over the next release we may tweak the dialog a bit. Currently it makes trouble if you click on FileMaker window and the dialog moves to background.
In the last week
JetBrains Mono font was released. It got some attention and a couple of people asked whether we can have that in FileMaker as font for the script workspace and/or calculation dialog. The font has a few nice features for developers including easy to distinguish 0 and O characters as well as 1, l and I all easy to recognize. A couple of ligatures help to make code easier readable with minus and greater than drawing more like an arrow for example. See yourself in a calculation:
Work is still in progress, but here is the script workspace with Jet Brains Mono:
We noticed that you need to restart FileMaker in case you change font, but I think we'll add a preferences for our preferences dialog to define that.
This feature is coming for next MBS Plugin version 10.1 one early March.
Just two months till the
XOJO.CONNECT 2020 in Nashville, Tennessee, USA. Tickets are still available for $999 USD.
It will be held March 25-27, 2020 in Nashville, TN at the
Sheraton Music City Hotel. This conferences is the best place to meet Xojo developers from around the world in real live, make contacts, present yourself as expert and learn what is new in Xojo. Tickets are available in the
Xojo store and if you bring your partner, you can order an extra guest ticket for the dinner events.
Check out the
conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!
Wether you are full or part time Xojo developer, this is your chance to learn all about the Web 2.0 framework, the Android progress and what's new in the Xojo world.
Last week we introduce the MBS Xojo Plugin in version 20.0. Today I want to give you an overview about what’s new.
JavaScript Engine
Furthermore we offer functions for the use of JavaScript in Xojo solutions. If you have a problem that you want to solve, you don't have to reinvent the wheel again and again. Perhaps someone has already found a solution to this problem and shared his solution on the internet. If the code of the solution is in javascript, you can evaluate the code with the help of the MBS Plugin in your project. You can add and call functions, Set and Get global properties and execute JavaScript code. For example we want to write a function that add a numeric value to a global JavaScript variable the code can look like this. An example:
Dim js
As New
JavaScriptEngineMBS
Dim r
As Integer
js.GlobalProperty(
"A") = 2
js.AddFunction
"AddNumberToVariableA",
"function (x) { return A+x; }"
r = js.CallFunction(
"AddNumberToVariableA", 3)
MsgBox Str(r)
You can use our
JavaScriptEngineMBS class just like you would use
XojoScript control to define your own scripting language.
Also new is the
WKWebviewMBS class for macOS to better use WebKIt 2.x. We can have objects that displays interactive web content, such as for an in-app browser. You can load content and can navigate through it. In the web view you can even execute JavaScript code with the EvaluateJavaScript method.
(more)
In this article I want to show you what’s new in the
MBS FileMaker Plugin version 10.0. Year! We reach the 10 in front of the dot. With a new Year and a new plugin version we get a lot of new functionalities.
List and QuickList comprehension
At fist I want to show you the new functions to compare specified columns of lists and quick lists. The difference between a list and a quick list is, that a quick list is a reference to a list object managed by MBS Plugin instead of just a block of text passed around.
Now you can compare listen entries in a specified column from two lists. You can filter the list items that are in both lists (
List.AndColumn), List items from the first list that don’t find a match on the second list (
List.NotColumn), list elements of both lists where entries that occur in both lists are only mentioned once (
List.OrColumn) or list elements that’s are only on one list (
List.XOrColumn). The functions are similar for quick lists. Here is an example for the use of it.
(more)
The
Coding in the Cotswolds group regularly organizes Xojo meetings in the south west of the United Kingdom near Swindon. I plan to attend the next meeting on 5th March 2020. Seating is limited, so if you are interested, please contact Paula or Bill and get or the guess or waiting list.
Beside this workshop we could of course organize a Xojo developer meeting for dinner in the same week. Someone interested?
We recently got a query how to create the scripts to handle barcode creation everywhere with MBS Plugin. This includes passing the request to a FileMaker Server if no local plugin is installed:
- in FileMaker Pro with MBS Plugin to create barcode locally.
- in FileMaker Pro or Go without MBS Plugin and using the plugin installed on server
- in a scheduled script on FileMaker Server with MBS Plugin installed
- in WebDirect on FileMaker Server
- in FileMaker Data API on FileMaker Server, where we need to trigger script in server side scripting engine.
Update: With FileMaker 19.4 you can install our MBS Plugin for the Data API process, so you can use it directly there.
- in FileMaker iOS SDK with either local plugin or server side plugin
The following script runs on the FileMaker Server and creates the barcode there if the MBS Plugin is installed. Pass JSON as script parameter with the barcode parameters. The script then returns a JSON object text with either error or barcode entry filled. But see yourself:
# This script is run on server to provide barcode to clients without MBS Plugin
Set Variable [ $JSON ; Value: Get(ScriptParameter) ]
#
Set Variable [ $result ; Value: "" ]
If [ GetAsText(MBS("Version")) = "?" ]
# no MBS Plugin
Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; "No MBS Plugin on server installed."; JSONString ) ]
Else
# with MBS Plugin
#
# generate barcode based on JSON
Set Variable [ $img ; Value: MBS("Barcode.GenerateJSON"; $JSON) ]
If [ MBS("IsError") = 0 ]
# Create PNG image file as container value
Set Variable [ $Image ; Value: MBS( "GMImage.WriteToPNGContainer"; $img; "barcode.png") ]
If [ MBS("IsError") = 0 ]
# Return image base64 encoded
Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "barcode" ; Base64Encode ( $Image ); JSONString ) ]
Else
# Pass back error
Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $Image; JSONString ) ]
End If
# free memory
Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $img ) ]
Else
# Pass back error
Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $img; JSONString ) ]
End If
End If
Exit Script [ Text Result: $result ]
(more)
The
Xojo.Connect conference will take place March 25-27 in Nashville, TN. On our way to Nashville we stop in New York for a few days and we like to organize another Xojo developer meeting, this time in New York City.
Please vote on the day:
Survey
Email us to make sure we have a matching email address for the attendee list, so we can keep you informed.
We meet in a nice restaurant somewhere central in New York City, so we can shop talk about Xojo and have dinner together. Time will probably be around 18 to 22 o'clock and you can of course come later or leave earlier. Suggestions for a restaurant with some separated space for our group is welcome.
If you are interested in private time for consulting, training or discussion MBS or Xojo topics, we can of course schedule a meeting. Please contact me directly interested.
Noch fünf Monate bis zur
FileMaker Konferenz 2020 in Malbun (Liechtenstein) und zur
MBS Plugin Schulung Schulung am Mittwoch vorher.
Vom
17. bis 20. Juni 2020 28. bis 31. Oktober 22. bis 24. Juli 2021 findet die elfte deutschsprachige
FileMaker Konferenz in Malbun, Liechtenstein statt. Aktuell läuft die Frühbucherphase bis 20. Februar mit vergünstigten Tickets.
Die Veranstalter vom Verein FM Konferenz erwarten auch 2020 rund 120 Entwickler, Anwender, IT-Fachleute und Entscheidungsträger aus Wirtschaft, Bildung und Verwaltung. Rund um über 20 Fachvorträge und Workshops wird es viel Zeit zum Vernetzen in den gemeinsamen Pausen und beim Abendprogramm geben.
Für den Deutschsprachigen Raum ist diese Konferenz das Treffen des Jahres. Hier finden Sie vom Anfänger bis zum Profi Kontakte zu anderen Entwicklern. Lernen Sie was es neues gibt, nehmen Sie Impulse mit für die eigene Arbeit und erfahren Sie mehr zu FileMaker von deutschsprachigen Experten!
Die
MBS Plugin Schulung vorher findet voraussichtlich am
17. Juni 2020 21. Juli 2021 statt (im gleichen Hotel).
Bitte planen Sie wenigstens einen extra Tag ein für ihren Besuch in Liechtenstein, damit Sie die Natur in dem schönen Tal geniessen können. Den Aufstieg auf den Sareis können Sie bequem zu Fuß vom Hotel aus starten und die Turnastraße hinauf spazieren bis zum Restaurant am Gipfel. Oder alternativ die Seilbahn nehmen.
Interesse an mehr? Die
Claris Engage Europe 2020 vom 26. bis 28. Oktober 2020 bietet deutlich mehr Vorträge, mehr internationale Teilnehmer und vor allem FileMaker Mitarbeiter aus den USA, die gerne mal einen Blick unter die Haube von FileMaker bieten.
In the last weeks a few people asked about automating web viewer in FileMaker, so here a video to show a couple of features in
MBS FileMaker Plugin:
To automate a website, you may first want to inspect it. For that you can use our Form Utility application to show which form fields are available. The application suggests which commands to use to query or set fields. Then you can use
WebView.SetFormButtonValue,
WebView.SetFormInputChecked,
WebView.SetFormInputValue,
WebView.SetFormSelectValue,
WebView.SetFormTextAreaValue and
WebView.SetFormValue to change form fields.
For MacOS and iOS in FileMaker 16 or newer you can use
WebView.SetPreferences function to set preferences for developer extras and show the inspector in the web viewer.
Use
WebView.RunJavaScript or
WebView.Evaluate to run JavaScript. This allows you to query individual pieces of information from the website, execute some JavaScript on the website or send events to fields like a click event. When you send a change event, the website may recognize your changes and validate the form.
Finally send the form by clicking a button with
WebView.ClickInput, submit the form with
WebView.FormSubmit or run some JavaScript to start an action.
Our
MBS Xojo SQL Plugin supports the use of transactions. Two settings define the behavior, first the transaction mode and second the isolation level.
Please set transaction mode and isolation level after connecting to the database before running commands.
(more)
As you may know the FileMaker Server Data API does not load plugins. If you need to run a script using plugins, you need to use a little trick. You query the application version of the script engine running the script. If you get back "FileMaker Data API Engine 18.0.1", you know the script is run via Data API. Now you can branch to the same script on the server scripting engine. That is a different process on the FileMaker Server which does load plugins. Then you return the result back to the calling script. Let us show you an example script:
If [ Position ( Get(ApplicationVersion) ; "Data API" ; 1 ; 1 ) > 1 ]
# forward call to Server Scripting Engine
Perform Script on Server [ Specified: By name ; Get(ScriptName) ; Parameter: Get(ScriptParameter) ; Wait for completion: On ]
Exit Script [ Text Result: Get(ScriptResult) ]
End If
Exit Script [ Text Result: "MBS: " & MBS("Version") & ", Server: " & Get(ApplicationVersion) ]
As you see we forward parameter and get back the result. So without the trick with the if block, we get back from the script:
"MBS: ?, Server: FileMaker Data API Engine 18.0.1"
and with the if loop and our forward:
"MBS: 10.0.0.9, Server: Server 18.0.1"
And you can use MBS Plugin on the server via Data API.
We recommend to check LastError via Get(LastError) function call after Perform Script on Server to see if you got "Hosts capacity exceeded" with error number 812. In that case it may be good idea to make a 10 second script pause and try again.
PS: See also product idea:
Support plugins in Data API
We are coming back to Berlin in June, so we plan a Xojo developer meeting for 2nd June 2020.
Topics may be the last and upcoming Xojo conferences, what's new in recent Xojo and MBS Plugin releases and your experiences in development.
Interested? Please contact us soon to be added to the attendee list, so we reserve enough space.
We may have a few give aways, as usual.
PS: This event is
cancelled.
Recently a client asked how to leverage JavaScript in FileMaker to do a specific calculation. For this blog post we replace the client's function with a CRC function to show you how to do it.
Up until a few weeks ago we would have pointed to loading JavaScript in a web viewer and using WebView.RunJavaScript to run the JavaScript. But now we would point to WebView.Evaluate and just run it. See the example script in our documentation for this CRC function.
With MBS FileMaker Plugin in version 10.0 we got our own JavaScript functions using the DukTape engine. We have an example in the documentation to run the CRC function right in a Let command and the JS.Evaluate command. But instead of initializing it each time in a Let statement, you may prefer to split this into three scripts, so you do the initialization only once.
(more)
Nickenich, Germany - (January 14th, 2020) -- MonkeyBread Software today is pleased to announce
MBS FileMaker Plugin 10.0 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 10.0 has been updated and now includes over 6000 different functions, and the versatile plugin has gained more new functions:
In this release we include with
JavaScript functions our own JavaScript engine based on the DukTape opensource project. Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. You can evaluate JavaScript snippets, get and set global properties and add custom functions written in JavaScript. Those
JavaScript functions work on FileMaker Server for server side scripts including WebDirect and PSoS.
For web viewer on Windows using Internet Explorer you can use
WebView.Evaluate function to run JavaScript and get the result back. Call
JavaScript function with
WebView.CallFunction function and pass parameters and receive results. We convert between FileMaker data types and JavaScript, so numbers are passed as numbers and not converted to text.
WebView.Evaluate is supported on MacOS, Windows and iOS.
With MacOS Catalina and iOS 13 Apple includes new
machine learning capabilities, which you can use in your applications to
update a model on device with new training data. Improved
SyntaxColoring.AddContextMenuCommand for MacOS to add separators and add hotkeys to menu entries.
For Windows use
WMFP functions to play video/audio independent of FileMakers's container field control. This includes playing audio in background. We added more parameters to
Printer.SetPrinter function to set paper format, orientation and source.
In your FileMaker iOS SDK application use
DocumentCameraScan functions to scan documents via camera on iOS, rectify them and store them in container fields or files. Use
ContinuityCamera functions to scan documents or take pictures on iOS and store them in your database on Mac. Use
EIDSDK functions and Zetes Bluetooth card reader on iOS to scan Belgian ID cards.
Use
Window.PositionNextDialog function to position dialogs in FileMaker on MacOS and Windows. Check network statistics with
SystemInfo.NetworkStats function and copy multiple files parallel with
Files.CopyFiles function. Added
DynaPDF.CreateGoToAction and related to add links to tables in PDF. We improved
XML.ToJSON,
SmartCard.ReadFile and performance for
EventMonitor functions on Windows and receiving data in CURL for POP3 and IMAP protocols.
Finally we updated DynaPDF to version 4.0.37.101, CURL to 7.67.0, LibArchive to 3.4, SQLAPI to 5.0.3, zint to 2.7, LibXL to 3.8.8 and Xcode to version 11.3.
See
release notes for a complete list of changes.
Nickenich, Germany - (January 14th, 2020) -- MonkeyBread Software today is pleased to announce
MBS Xojo Plugins 20.0 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo.
MBS Xojo Plugins have been updated and now includes over 2600 classes and 67,000 documented features, and the versatile plugins have gained more new functions:
In this release we include with
JavaScriptEngineMBS class our own JavaScript engine based on the DukTape opensource project. Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. You can evaluate JavaScript snippets, get and set global properties and add custom functions written in Xojo or JavaScript.
For HTMLViewer on Windows using Internet Explorer as engine, we got new classes like
IEDocumentMBS to offer many more features. We deprecated the older IE methods on HTMLViewer to declutter auto complete. And our new class brings you an Evaluate function to run JavaScript and get back the result as variant. You can call JavaScript functions and pass Xojo variants for parameters, so we pass numbers as numbers and not convert them to text. Use SetInternetExplorerVersion function to request a newer Internet Explorer version for HTMLViewer.
With MacOS Catalina Apple includes new machine learning capabilities, which you can use in your applications to
update a model on device with new training data. Enjoy new events in
WKWebViewControlMBS control to decide policy for navigation and load HTML files easier. Use the
WKBackForwardListMBS class to navigate the history.
Enjoy
ImageMagick in version 7 and use it with 8 to 64-bit color depth per pixel component and optionally HDRI support. For
LCMS2TransformMBS class you can now use multi threading to run transformation in parallel.
For Windows use
MFPMediaPlayerMBS to play video/audio independent of Xojo's MoviePlayer control. If you use
WindowsPlayerMBS class to play mp3 files, you can now choose the audio device.
Use
LMFitMBS and related classes for Levenberg-Marquardt least squares fitting algorithm. Solve boolean satisfiability problem with
LGLMBS class. When using
iTunesLibraryMBS class to read iTunes library content, you can now do initialization in a thread to not block user interface.
Finally we updated DynaPDF to version 4.0.37.101, CURL to 7.67.0, LibArchive to 3.4, SQLAPI to 5.0.3, zint to 2.7, LibXL to 3.8.8 and Xcode to version 11.3.
See
release notes for a complete list of changes.
14. Januar 2020 - Monkeybread Software veröffentlicht heute das
MBS Plugin für FileMaker in Version 10.0, mit inzwischen über 6000 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:
Diese Version bring eine eigene
JavaScript Umgebung mit zum Ausführen von JavaScript Skripten. Mit der Open Source DukTape Bibliothek haben wir eine eingebettete, portable und kompakte JavaScript Laufzeitumgebung. Berechnen Sie Ausdrücke in JavaScript, lesen oder setzen Sie globale Variablen und definieren Sie eigene Funktionen. Diese
JavaScript Funktionen können Sie auf dem Server in Skripten verwenden inklusive WebDirect.
Für den
WebViewer unter Windows mit Internet Explorer haben wir eine neue
WebView.Evaluate Funktion um JavaScript auszuführen und das Ergebnis in FileMaker zu verarbeiten. Rufen Sie
JavaScript Funktionen direkt über die
WebView.CallFunction Funktion auf und übergeben Sie mehrere Parameter. Wir konvertieren zwischen JavaScript und FileMaker Werten, so dass Zahlen als Zahlen übergeben werden und nicht als Text. Wir unterstützen
WebView.Evaluate auf MacOS, Windows und iOS.
Mit MacOS Catalina und iOS 13 bring Apple neue Funktionen für
Maschinelles Lernen mit, so dass wir ein Modell jetzt auf dem Gerät mit neuen
Trainingsdaten anpassen können. Mit der verbesserten
SyntaxColoring.AddContextMenuCommand Funktion können Sie Tastenkombinationen definieren und Separatoren einfügen.
Für Windows verwenden Sie die neuen
WMFP Funktionen zum Abspielen von Audio/Video Dateien unabhängig von interaktiven Containerfeldern, inklusive dem Abspielen von Musik im Hintergrund. Wir haben neue Parameter für die
Printer.SetPrinter Funktion um das Papierformat, Orientierung und Papierquelle anzugeben.
In Ihrer Anwendung basierend auf dem FileMaker iOS SDK können Sie die
DocumentCameraScan Funktionen verwenden um Dokumente unter iOS zu scannen, gerade auszurichten und in ein Containerfeld oder eine Datei abzulegen. Mit den
ContinuityCamera Funktionen können Sie Bilder mit einem iPhone oder iPad erstellen und das Bild in die Datenbank am Mac einfügen. Mit den
EIDSDK Funktionen steuern Sie den Zetes Bluetooth Kartenleser an und lesen belgische Personalausweise aus.
Positionieren Sie Dialoge in FileMaker mit der
Window.PositionNextDialog Funktion bei MacOS und Windows. Fragen Sie die Netzwerkstatistiken ab mit
SystemInfo.NetworkStats und kopieren Sie mehrere Dateien parallel mit
Files.CopyFiles. Mit der
DynaPDF.CreateGoToAction Funktion können Sie Aktionen anlegen und mit Tabellenzellen in PDF Dokumenten verknüpfen. Wir haben
XML.ToJSON und
SmartCard.ReadFile verbessert und die Geschwindigkeit für
EventMonitor Funktionen bei Windows sowie den Empfang von Daten in CURL für IMAP und POP3 verbessert.
Außerdem haben wir die DynaPDF Bibliothek auf Version 4.0.37.101 aktualisiert, CURL auf 7.67.0, LibArchive auf 3.4, SQLAPI auf 5.0.3, zint auf 2.7, LibXL auf 3.8.8 und Xcode auf Version 11.3.
Alle Änderungen in den
Release Notes.
Did you know you can define different colors for your calculations in FileMaker for macOS?
- Normal variables: $test
- Global variables: $$test
- Variables in Let starting with tilde: ~test
- Variables in Let starting with cent: ¢test
- Variables in Let starting with underscore: _test
- Specific variables like $$UserID with a different color, so you see when it's misspelled.
Those colors can be useful to distinguish different variables to read code easier and find logical mistakes in your code better.
Please use
SyntaxColoring.AddTag function in
MBS FileMaker Plugin to change values as needed. Check fmSyntaxColorizer database from
MrWatson included with our examples to define your own color set.
Just about two months till the
XOJO.CONNECT 2020 in Nashville, Tennessee, USA starts. Today is the last day to get tickets for early bird prices with a $100 USD off.
It will be held March 25-27, 2020 in Nashville, TN at the
Sheraton Music City Hotel. This conferences is the best place to meet Xojo developers from around the world in real live, make contacts, present yourself as expert and learn what is new in Xojo.
Registration is currently $100 off full price till Tuesday night (14th January). Please sign up early to get the best deal.
Don't forget to reserve a hotel room. Can be cancelled later free of charge, so you don't loose anything by reserving one now. If you find a better deal, you can cancel it.
Check out the
conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!
Claris Inc. is looking for speakers for the upcoming Claris Engage conference.
Apply here.
As speaker you receive a complementary ticket and hotel room for the conference. This year
Claris International Inc. hosts the Claris Engage conference in Nashville, August 3-6 2020.
We will probably attend and have a booth as usual, so see you there!
As you may know we have currently 40 plugins for Xojo. We offer licenses for 37 plugins as a package, named the Complete Set. But still
DynaPDF,
SQL and
ChartDirector plugins cost us royalties, so those are not included in the set. The other 37 plugins can be purchased separately. Our web site shows in the
order page about 20 parts with direct links.
For next release 20.0 we upgraded our license key system to be able to generate keys for all parts individually. For the store we just added an "other" item as place holder. A few people asked over the last year for licenses to individual licenses, so we got this now.
Please notice the
dependencies list. For example when you would purchase
AVFoundation plugin, you also need Main, MacBase, MacCG,
MacCocoa, MacControls and MacCF installed. Those plugins must be installed to build an application using a single
AVFoundation class. If you use one of the classes from he other plugins, you may need the other plugin license, too. That is the reason we offer users interested in those plugins the whole package to avoid them later run into an issue with a missing license.
Nevertheless, if you can't afford Complete Set and you need one of the plugins, you are welcome to order a license. If you take the other item in the store, we'll ask you which one you want. And if you later prefer Complete Set within a few weeks, we may just refund the old part.
New in this prerelease of the 20.0 plugins:
- Updated DynaPDF to version 4.0.37.101.
- Added EqualContent method to JSONMBS class.
- Changed OpenStream for PortAudioStreamBufferedMBS class to always change format to Float32.
- Fixed ReadError and ReadOutput for WindowsProcessMBS class to return empty string when called with value zero.
- Added parameter for FindValueInArray and FindValueInObjectArray in JSONMBS class to compare by content.
- Updated JavaVMMBS constructor to better find Java libraries.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
New in this prerelease of version 10.0 of the 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 version 10.0 of the 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 20.0 plugins:
- Added threaded parameter for Constructor in iTunesLibraryMBS class.
- Changed the text file embedded in xojo plugin files to include a random build UUID which is different each time a plugin is built as well as a Plugin UUID which doesn't change for the same plugin.
- Implemented synchronous EvaluateJavaScript for 32-bit in WKWebViewControlMBS control and fixed bug in 64-bit.
- Added ChannelMask and DeviceID properties to WindowsPlayerMBS class.
- Added OpenDialogItemMBS class.
- Added Items and Files methods to OpenDialogMBS class.
- Added WindowsPlayerDeviceMBS class.
- Fixed problem with Progressive property in JPEGExporterMBS not always being used.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
We just added
DocumentCameraScan functions for use with FileMaker iOS SDK to scan documents right with the camera and insert them right in a container field the database:
Just call
DocumentCameraScan.Initialize on startup and later call
DocumentCameraScan.Scan function to show the dialog. When you set a script with
DocumentCameraScan.SetScript to be triggered after the scan, you can use
DocumentCameraScan.PageCount to query number of pictures. You can get the pictures with
DocumentCameraScan.PageImage function and put them into container. Or use
PDFKit functions to build a PDF document.
Included later tonight in 10.0pr7 plugin version. See
ContinuityCamera for use of iOS camera for MacOS.
In Zusammenarbeit mit dem Verein
FM Konferenz bieten wir eine Schulung zum MBS Plugin an. Am
17. Juni 2020 28. Oktober 2020 21. Juli 2021 können Sie in Malbun, Liechtenstein an einer eintägigen Schulung teilnehmen. Lernen Sie die über 6000 Funktionen einmal näher kennen und wie Sie sie effektiv einsetzen. Sammeln Sie Ideen und verbessern Sie ihre FileMaker Lösungen durch den Einsatz unseres Plugins.
Das Monkeybread Software Plugin für FileMaker stellt eine vielseitige Erweiterung der eigenen Datenbank dar. Der Kurs bietet nicht nur einen tiefgreifenden Überblick in die Benutzung und Entwicklung, sondern bietet auch die Chance das Plugin günstiger zu erstehen.
- Einführung in das MBS Plugin
- Überblick über die Funktionsbereiche
- Neues im MBS Plugin dieses Jahr und in der dann aktuellen Version
- Rundgang durch ausgewählte Beispiele
- Gemeinsames Implementieren von Plugin Funktionen in eine Datenbank.
- Upload/Download mit CURL auf einen HTTP/FTP Server
- Ausfüllen eines Formulars auf einer Webseite
- Bilder bearbeiten
- PDF Verarbeitung
- Druckerfunktionen
- Barcodes und Zahlungsscheine
- Einbinden von Webservices with JSON/XML für REST/SOAP.
- Senden und Empfangen von Emails.
- Fragen und Antworten
Die Teilnahme kostet 150 CHF (Frühbucher bis 20. Februar 2020) bzw. 200 CHF inkl. Verpflegung und MWSt.. Trainer ist der Plugin Entwickler und Monkeybread Software Geschäftsführer Christian Schmitz persönlich. Beginn gegen 9 Uhr und Ende gegen 17 Uhr.
Anmeldung bei Monkeybread Software.
Am Abend vorher treffen wir uns zum gemütlichen Beisammensein im Restaurant vom
Konferenzhotel. Im Anschluss an die Schulung können Sie gleich rüber zum Apero gehen und die anderen Teilnehmer kennen lernen.
Bei Fragen und Themenwünschen melden Sie sich bitte direkt bei uns.
Weiter Schulungstermine: 3. Sep 2020 bei der
Denkform in Wiesbaden.
New in this prerelease of version 10.0 of the MBS FileMaker Plugin:
- Added WebView.CallFunction to call any JavaScript function on Windows.
- Added WebView.Evaluate function to evaluate JavaScript expression and get back result for Windows.
- Fixed problem with plugin detecting runtime as normal FileMaker Pro.
- Improved conversion from Windows VARIANT to FileMaker value for Windows functions (WMI, WIA and WebView).
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
New in this prerelease of the 20.0 plugins:
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
Imaging what you could do in a web viewer in FileMaker or HTMLViewer in Xojo if you could evaluate JavaScript and get back the result?
Coming soon for
MBS FileMaker Plugin for MacOS, Windows & iOS and
MBS Xojo Plugins for MacOS, Linux & Windows.
When you allocate an array in Xojo, you may wonder how many bytes are allocated and when.
We measured a bit and it looks like allocating an empty array will just allocate the array structure, but not allocate data for the array values. Then when you append the first value, the memory is allocated for 16 values, byte size depending on byte size of elements. Then whenever the appended values fills the allocated space, the allocation is resized to make room for more values. The number of values added is doubled each time as you see in our table:
From Ubound | Size in Bytes | Number of values | ∆ |
-1 | 0 | 0 | |
0 | 128 | 16 | 16 |
16 | 384 | 48 | 32 |
48 | 896 | 112 | 64 |
112 | 1920 | 240 | 128 |
240 | 3968 | 496 | 256 |
496 | 8064 | 1008 | 512 |
1008 | 16256 | 2032 | 1024 |
2032 | 32640 | 4080 | 2048 |
4080 | 65408 | 8176 | 4096 |
8176 | 130944 | 16368 | 8192 |
16368 | 262016 | 32752 | 16384 |
32752 | 524160 | 65520 | 32768 |
When you do a redim on the array, you set the allocated size to the array to an explicit value. So unless redim has already the value of ubound, a new memory block will be allocated and data is copied. There is no optimization to just change internal ubound and keep array allocation if e.g. size is just shrinking by one or two. We made a feedback request to ask for optimization: Feedback 58755.
What to do? Whenever you fill an array and you know the final ubound in advance, you can use redim beforehand and then set values. Otherwise you use append or insert methods which dynamically allocate new memory when you hit the current allocation limit.
As you may know you can purchase MBS Plugin license and later decide whether you purchase a license update to extend the maintenance for your license. For this we have four different customer groups:
- First group of clients receive an email notification about the end of their maintenance and they immediately order an update. Those customers pay in advantage for future updates and in general expect they will use those newer versions. When this happens, they can add a full year (or several years) to their maintenance time.
- Second group of clients waits till a new version comes out that has interesting new features or critical bug fixes. Those customers buy the update when needed and that is fine of course. This may mean that the customer orders an update from last year version to this year and does not get a full new year of updates as the maintenance is of course expanded from where it ended before. Or if they didn't purchase within the year after expiration, they have to pay the full price for a new license.
When we had Black Friday offer running last November, we did email those clients to inform them that buying a new license with discount was cheaper then the update order for two years!
- Third group of clients doesn't care for updates or maintenance. When they need a newer version after many years, they just buy a new license. We are long enough in business to see that some of them easily have a 5 year gap between orders.
- Forth group are developers just use the plugin in demo or trial mode. Maybe they work at home and have a license only at work. Or they are consultants and the client buys the license later. Some get trial licenses several times, so we ask them kindly to purchase a license for themselves.
With everyone using the plugin, we say thank you for your business. As long as sales go well, we can continue the work.
As I am traveling again to the Netherlands, I like to arrange a MBS meeting for both FileMaker and Xojo developers.
Let's talk about Xojo, FileMaker, conferences, plugins and other programming topics.
Meeting will be Wednesday
8th January 2020 in Rotterdam in a restaurant near the main station around 18:00 to 21:00 o'clock. Some of you may come later, some earlier, but I try to be there around 18 o'clock to welcome you. We should have a separated space for the meeting. If you are early, wait at the bar.
Already over 20 people have announced they will come, so see you there!
If you like to join and you are not yet on the guest list, please contact us soon.
The January/February (18.1) issue of xDev Magazine is now available. Here's a quick preview of what's inside:
Numbers Please! Part 6 by Markus Winter
Wrapping up and building a demostration app.
On the Scene by Stefanie Juchmes
Getting started with Apple's 3D graphics toolkit, SceneKit.
Check Your Spelling by Eugene Dakin
Harness the power of Microsoft Word on Windows to add spelling checking to your apps.
Your First Web App -- Part 4 by Paul Budd
It's finally time to learn how to deploy the Web app!
Embedding Link by Stefanie Juchmes
How to use MBS to add links -- external or internal -- within your PDFs.
PLUS: Xojo 2019r3, Setting Goals, Color Groups, Iterators, Best of the Web, and more!
New in this prerelease of version 10.0 of the 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 20.0 plugins:
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
Happy new year to everyone!
The year 2020 will have some great news coming soon:
- In mid January we will ship MBS FileMaker Plugin in version 10.0 with over 6000 functions! Over hundred new functions added since last release. Yes, in early December we reached the 6000 functions mark!
- For Xojo the version 20.0 of MBS Xojo Plugins will come with over 1500 new items in our documentation. We now have 1000 global functions alone and documented 67000 items.
- This year we'll celebrate 20 years of Monkeybread Software with a big party in April.
- Nashville will 2020 be the target for us twice, first the Xojo.Connect conference in spring and later in summer the Claris Engage conference. See you there!
- Later this year we look forward to the first Claris Engage Europe conference coming to Lisbon. Instead of going to the France, Spanish, Italian, English, Scandinavian, Dutch and German conferences, everyone can come to one place and meet Claris staff from Europe and USA together. And Lisbon is reachable via car, ship or train for those who prefer not to fly. It may be a nice road trip through France and Spain for us.
- Already we signed up for the German FileMaker conference in Malbun.
- You wait for the next Xojo conference in Europe?
Please join Xojo.Connect in Nashville for 2020. There is no MBS Xojo Conference 2020 planned and announcement for 2021 may come later in the year.
- Stefanie has done a great job in her first year here at Monkeybread Software. You may have notices her blog entries, magazine articles and met here at the conferences. You'll see more from her in the second year.
- In general the year 2019 was a record year for us in sales, new customers and active licenses. We look forward to a great year 2020!
See you at one of the conferences!