Claris Engage Keynote Bingo

Looking forward to the Claris Engage conference in Austin, Texas we got the idea to make a bingo game for things mentioned in the keynote.

Get your own random bingo card here: monkeybreadsoftware.com/filemaker/bingo/

(more)

MBS @ FMTraining.TV - The Claris FileMaker MonkeyBread Plug-in 14.0 Release

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We talk about the new version 14.0 of MBS Plugin. See announcements on the blog, the look on the details and the new functions in documentation. We talk about CURL, DynaPDF, JSON, Math, List, Phidget and other functions.

(more)

FileMaker Konferenz 2024 in Malbun - Anmeldung startet

Vom 1. bis 4. Oktober 2024 findet die nächste deutschsprachige FileMaker Konferenz in Malbun, Liechtenstein statt. Die Tickets für die Konferenz sind jetzt verfügbar, bis 20. April noch zum Frühbucherpreis.

Monkeybread Software ist als Sponsor mit Stand und Session vor Ort. Bitte kommen Sie mit Ihren Fragen vorbei!
Stefanie wird zwei Interessante Sessions übernehmen und wir planen noch für den 1. Oktober einen Wandertag ein. Wer mit möchte, kann dann bei hoffentlich schönem Wetter mit uns durch die Berge wandern. z.B. von Malbun aus am Sass-Seeli vorbei zur Alpe Guschg.

siehe FileMaker Konferenz.com



Die Veranstalter vom Verein FM Konferenz erwarten auch 2024 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!

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.

Auto crop a signature picture

Recently we got a client with a special problem. A scanned paper with a signature has a lot of unused space around. The scan shows a bit of dust and dirt. People have greasy fingers, the flatbed scanner is not clean and the paper not perfect white. We have to clean it up and got a problem: The normal trim method in GMImageMBS class would remove some of the space, but a dust piece on the scan may prevent it from removing a bigger part.

We found a relative easy fix. We scale down the image to a much smaller size and all the dust points disappear. Now we can check for bounding box of the content and apply the found rectangle to the original picture.

(more)

PDF Attachments in FileMaker with DynaPDF

Did you know you can have attachments within a PDF document? 

 

Yes, PDF documents can embed files, including other PDF documents. This allows to bundle various files with a PDF document just like attachments on emails. Or you can merge other PDF documents into a PDF and make them accessible via menu in Acrobat Reader or with buttons or clickable areas.

(more)

Charts with more than one x or y axis

When you use our chart classes in the MBS Xojo ChartDirector Plugin, you have the chance to have more than one X axis and/or more than one Y axis. When doing this, there are a few things to think about and some little things

The second axes for X and Y are basically always there, but only shown when you start configuring them. For example you may start with setting a title for the second axis:

// Add a title to the secondary (right) y axis call c.yAxis2.setTitle("Throughtput (MBytes)")

Now you may also want to set some colors:

// Set the axis, label and title colors for the primary y axis to red (&hc00000) // to match the first data set c.yAxis.setColors(&hc00000, &hc00000, &hc00000)
(more)

Optimization ideas for Draco calculation engine

Since HOnza posted about his Initiative ’24 about making FileMaker calculations quicker, I spend some time thinking on how to do this practically. Like what could be optimized if Claris puts work into their calculation engine. And I got some ideas:

(more)

Add Hover effect to your web controls

Recently a client asked how to give an image shown in a Xojo web app a hover effect. Basically a few WebImageView controls show various pictures and you need to pick one. When the mouse moves over the images, we like to highlight the image by making it darker or brighter.

We quickly thought how to do it:

  • in Xojo directly, there is no property and no MouseEnter/MouseExit events. But the server round trip would make this quite slow anyway.
  • in JavaScript would be faster and run in the browser. Like install mouse event handler and then swap out the image for a darker version.
  • in CSS is the best as the browser does it and we benefit from any graphics acceleration. And CSS doesn't need to swap the image and just darken it with an effect.
(more)

Data Detectors as context menu

Does your FileMaker made solution run on macOS (or iOS) and shows some text? Whether you show some emails, text messages or content from the web, we may have something for you: How about adding an action button with a contextual menu to offer various actions for the text?

Using the RegEx.DataDetector function from our MBS FileMaker Plugin, you can analyze text using Apple's frameworks. You get a JSON array of results for the found details, which can include:

(more)

Early bird offer ends for MBS Xojo Developer Conference

Just three months until the Xojo conference starts.

Early bird offer is about to end this week. If anyone likes to get a ticket, please be quick or pay the regular price later in the next months.

We got a nice group of attendees so far:

  • We are happy to have three Xojo staff members there.
  • Some long term Xojo community members are joining.
  • Some students and teachers using Xojo in school are coming.
  • We got newbies, who started Xojo less than a year ago.
  • And we got retired people who code in Xojo.
  • Finally we have a few professional people using Xojo as their development tool of choice.
  • People from nine countries so far including a lot of Europe, Canada and USA.
  • We have about 10 wives joining their husbands on the conference for the evenings. My wife may offer a city walk in Andernach one day while the conference runs. There is a lot of history, nature and culture to see.

More spots for conference and training days are available as well as hotel rooms in the Einstein Hotel. Register here and let us know if you need a hotel room.

Picture from presentation at Berlin conference 2017.

We are very happy about the feedback we got. A lot of people seem to be excited for another conference.


Meet Christian at Claris Engage

If you have a question, comment or otherwise like to say Hello, please meet me at Claris Engage in Austin, 6th to 8th February 2024 in Austin, Texas.

We should have time for appointments as usual with the conferences. Please contact us if you like to meet-up. Closer to the conference we may look for a time. But there are plenty of possibilities before/after the conference or in lunch breaks.

We are sorry to report that we didn't get a booth this year, but of course we hope for another conference in 2025 to take a chance on getting a booth again. If you like to know what is new in MBS Plugin in 2023/2024, you can watch the EngageU conference video here.

Just look for a tall guy with a blue shirt with the MBS logo. That's me!

PS: If anyone needs a new license, please use the coupon code FileMakerConference for this years conference promotion in the webshop from us.


News from the MBS Xojo Plugins Version 24.0

In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 24.0.

Randomness Decides

We have three new global methods that deal with randomness. We provide you with three algorithms with which you can generate random numbers. You can choose from the normal distribution, exponential distribution and poisson distribution. You can also specify the mean or lambda in each method to further influence the method. RandomNormalDistributionMBS then returns random numbers according to the Normal (or Gaussian) random number distribution. RandomExponentialDistributionMBS a random non-negative floating-point number, distributed according to probability density algorithm and RandomPoissonDistributionMBS gives you a non-negative integer value, distributed according to discrete probability algorithm

(more)

New in MBS FileMaker Plugin 14.0

In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 14.0.

DynaPDF

Let's start with DynaPDF. DynaPDF has received new parser functions. With these functions you can search for text on a PDF page and then delete or replace it. For example, if you already have an imported page, you can create a parser object with DynaPDF.Parser.Create. With the function DynaPDF.Parser.SetAltFont we can then set an alternative font. With DynaPDF.Parser.ParsePage we parse a page and store the page contents in an objects internally.

Now we can call various functions, e.g. to find the text. With DynaPDF.Parser.FindText we can search for a specific text on the page. In this function we then specify the desired search mode, e.g. you can decide whether you want to perform a CaseSensitive or CaseInsensitive search. There is also a parameter that is particularly useful if you have longer texts. This is because you can decide whether you always want to start at the beginning of the text or whether you want to continue searching from the last position. If you have previously used the DynaPDF.Parser.FindText function, you can now use DynaPDF.Parser.SelectionBBox to determine where the found text is located on the page. We thus receive a list of coordinates that describe a box around the location where the text was found.

(more)

Data Detectors as context menu

Does your Xojo made application run on macOS (or iOS) and shows some text? How about adding an action button, a contextual menu or a popup-menu to offer various actions for the text?

Using the NSDataDetectorMBS class from our MBS Xojo MacCocoa Plugin, you can analyze text using Apple's frameworks. You get an array of NSTextCheckingResultMBS objects for the found details, which can include:

  • URLs
  • Email addresses
  • Phone numbers
  • Addresses
  • Transit Information
  • Dates

We can process the found information and offer action commands. This may include copying the found text. When we have an URL or can build one, we can offer to open this URL. Normally this opens a website in the default browsers. Email addresses can open a new email in the mail application. With all this actions, we can show a menu like this:

In our example we use a timer to check the text a few milliseconds of the text changing. Once checked, we could decide whether to enable the button for the actions. You may provide it as a gear button like other applications to offer these additional actions.

The example project will be included with future plugins or you can email us for a copy as usual. If you'd like to do something similar for Windows or Linux, please check our RegEx plugin and use a few regular expressions to find phone numbers, emails or URLs yourself.


MBS @ FMTraining.TV - FileMaker MBS Plug-in and more Phidgets

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We check the new Phidget functions in MBS FileMaker Plugin and various Phidget devices we go to try: Slider, Temperature sensor, Barometer sensor for air pressure, Joystick with button, distant sensor, motion sensors, and IR receiver. And we talk about other available sensors like RFID readers.

(more)

DynaPDF Parser for FileMaker

With MBS FileMaker Plugin 14.0 we include the DynaPDF Parser functions. These functions provides a top-level interface on the parser in DynaPDF. You can do various operation using them:

  • Parse a page
  • Find text on the page.
  • Extract text on the page
  • Delete text within a rectangle.
  • Query coordinates for found text.
  • Replace found text with new text.
  • Set alternative font for new text.
  • Finally write changes back to page.

The combination of these allows for a lot of things. Like finding text on a page and replacing it with new text for a little PDF editor. Or to find text and then:

  • Draw rectangles around the found text to show it.
  • Put highlight annotations on the text.
  • Find website names or keywords and put WebLink annotations on them.
  • Use DeleteText function to remove the text from the PDF.
  • Find each character and then know the coordinates of every letter.
(more)

MBS Xojo Developer Conference Update

About three months left until we start our MBS Xojo Developer Conference in Andernach, Germany. Let's update you what's new this week:

Early bird offer

Don't miss the deadline for the early bird offer next week. If you planned to join the conference, three months before is a great time to plan your trip.

Hotel rooms are still available and can be cancelled up to one week before the

Dinner Event

We will go to Baggerado for the dinner event. We'll have a grill buffet, an open bar and plenty of space to sit.

(more)

ISO FileMaker Magazine: FileMaker Maps - Using MapKit & MBS

Check out the FileMaker Magazine website. Matt Petrowsky provides a huge collection of training videos around FileMaker. And recently he started a series of videos about our MBS Plugin:

Watch it on YouTube and subscribe to his channel.

Matt shows what cool things he built with our MapView functions. We never thought about overlaying the map view, but this is perfectly possible.

More videos from Matt about MBS Plugin in this playlist.


MBS FileMaker Plugin 14.0 for Claris FileMaker

Nickenich, Germany - (January 16th, 2024) -- Monkeybread Software today is pleased to announce MBS FileMaker Plugin 14.0 for Claris FileMaker for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for Claris FileMaker produce line. As the leading database management solution for Windows, macOS, iOS and the web, the Claris FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 14.0 has been updated and now includes over 7200 different functions, and the versatile plugin has gained more new functions:

We added new JSON functions creating diffs with the changes between two JSON documents. A matching JSOn function can apply the patch later to the JSON if needed. The functions allow you to log changes between JSONs to document changes.

For DynaPDF we got new parser functions. They allow you to find and replace text on a page, highlight or mark texts and delete texts.

We improved Phidget functions and you can start server discovery to find remote devices. A phidget can be connected to a wireless hub, that forwards all data via Ethernet or Wifi to a computer in the local network. New example databases show how to use barometer, distance sensor, IR receiver, voltage input and digital inputs.

If you received data and you are not sure about the type of data, please check Container.IdentifyData, Files.IdentifyData and Text.IdentifyData functions to identify the data.

If you use macOS contacts database, you can store fmp:// URLs for the contacts to open FileMaker by clicking the URL and jump to your record right away. In FileMaker, use CNContactStore.ContactsMatchingURL function to find the record based on such an URL.

For CURL you can set different triggers for success or failure state of the transfer, which is great for transfers running in the background. We got an useful XML.ToHTML function to visualize XML. Use Math.Random.ExponentialDistribution, Math.Random.NormalDistribution and Math.Random.PoissonDistribution functions for random numbers with exponential, normal or poisson distribution.

The XL.FormControl.JSON function can provide an overview about form controls in an Excel worksheet. When working with form fields, you can now refer to them by name as well as by index.

Use List.Shuffle and QuickList.Shuffle functions to randomize the order of list entries. Functions to find duplicates in the lists can now optional work case sensitive. We added a timestamp parameter for Archive.AddContainer, Archive.AddFile and Archive.AddText functions.

When you run a SQL query within FileMaker with FM.SQL.Execute, you can transfer the result to a matrix using FM.SQL.ToMatrix function. The Matrix.IndexOfFirstValueMatching function can be used to find which row contains a certain value.

The comment links to scripts got improved with the possibility to specify the target script by ID instead of name. Pressing the option key while clicking the link will open the target script in a new window.

We added new shortcuts Command-+ and Command-- for calculation fields to directly adjust the font size. Use new shortcuts Command-Option-Cursor hotkeys in the relationship graph to align items and Command-Option-Shift-Cursor key shortcuts to resize items to smallest/biggest size. See tooltips on the buttons. When you use the search within a calculation field, please press Command-Shift-G to find the previous match.

The Search Scripts example file shows you how to combine HotKey, Clipboard and XML functions to perform a search in the current script. Once you press the F8 key, the database shows the script steps in a layout where you can perform a search and then see which line numbers you need to find in the Script Workspace. This finally provides a kind of search for Windows users.

Finally we updated CURL to version 8.5.0, DynaPDF to 4.0.82.239, openssl library to 3.1.4, SQLAPI to 5.3.0, SQLite to 3.44.1, LCMS to 2.16, Xcode to 15.2 and Visual Studio to version 2022.

See release notes for a complete list of changes.


MonkeyBread Software Releases the MBS Xojo Plugins in version 24.0

Nickenich, Germany - (January 16th, 2024) -- Monkeybread Software today is pleased to announce MBS Xojo Plugins 24.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 3000 classes and 81,000 documented features, and the versatile plugins have gained more new functions:

We updated our plugins for Xojo 2023r4. We updated the delegates in CURL, iOS, Mac64bit, MacBase, MacCF, MacFrameworks, Picture plugins and improved the RowSet handling in our MBS Xojo SQL Plugin to be compatible. Then we improved our Chromium based classes for the new Xojo version since it uses a newer CEF version. We highly recommend updating the plugins if you like to try this Xojo version or future ones.

For this release we rearranged internal plugin parts. While we ship 52 plugins currently, they are internally composed of about 400 parts. That is less than the older plugins with over 500 parts. Our plugins load quicker in Xojo due to the reduced number of plugin parts to load.

If you use Google Ads in your iOS applications, please update to the new plugin with Google AdMob SDK in version 10.14 and enjoy the additional classes to show the content dialog. The new consent dialog is required for Google Play store. You can simulate the use of your application in a different region where more or less consent is needed.

Our new JSON plugin gets new functions for creating diffs with the changes between two JSON documents. Then we can apply the patch later. The functions allow you to log changes between JSONs to document changes.

For macOS we added new controls NSSegmentedControlControlMBS and NSPathControlControlMBS, so you can easier use a plugin provided SegmentedControl and PathControl controls.

The DynaPDF plugin got a new DynaPDFParserMBS class to make the parser available for Xojo developers. It allows you to find and replace text on a page, highlight or mark texts and delete texts.

For Windows we got new functions to WindowsPDFPageMBS for synchronous and asynchronous rendering of pages to images. For Bluetooth LE, we improved the WindowsDeviceInformationPairingMBS class to work better on Windows 10.

The BigNumberMBS and LargeNumberMBS classes got new functions to convert to/from strings. You can configure the behavior for BigNumberMBS class with the new BigNumberConversionMBS class. If you need random numbers in various distributions in Xojo, you can use RandomExponentialDistributionMBS, RandomNormalDistributionMBS and RandomPoissonDistributionMBS functions.

We improved scrolling for NSSearchFieldControlMBS class, the NSMutableAttributedStringMBS class got a new replaceCharacters function, we made more properties in CURLEmailMBS class visible to the debugger and the new CopyArrayMBS function helps to quickly copy arrays.

Finally we updated CURL to version 8.5.0, DynaPDF to 4.0.82.239, openssl to 3.1.4, SQLAPI to 5.3, SQLite to 3.44.1, LCMS to 2.16, Xcode to 15.2 and Visual Studio to version 2022.

See release notes for a complete list of changes.


Neues MBS Plugin 14.0 für Claris FileMaker

16. Januar 2024 - Monkeybread Software veröffentlicht heute das MBS FileMaker Plugin für Claris FileMaker in Version 14.0, mit inzwischen über 7200 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Wir haben neue JSON-Funktionen hinzugefügt, die Diffs mit den Änderungen zwischen zwei JSON-Dokumenten erstellen. Eine passende JSON-Funktion kann den Patch später auf das JSON anwenden, falls erforderlich. Mit den Funktionen können Sie Änderungen zwischen JSONs protokollieren, um Änderungen zu dokumentieren.

Die DynaPDF haben wir neue Parser-Funktionen. Sie ermöglichen das Suchen und Ersetzen von Text auf einer Seite, das Hervorheben oder Markieren von Texten und das Löschen von Texten.

Wir haben die Phidget-Funktionen verbessert und Sie können eine Server-Erkennung starten, um entfernte Geräte zu finden. Ein Phidget kann mit einem drahtlosen Hub verbunden werden, der alle Daten über Ethernet oder Wifi an einen Computer im lokalen Netzwerk weiterleitet. Neue Beispieldatenbanken zeigen, wie man Barometer, Entfernungssensor, IR-Empfänger, Spannungseingang und digitale Eingänge verwendet.

Wenn Sie Daten erhalten haben und nicht sicher sind, um welche Art von Daten es sich handelt, verwenden Sie bitte die Funktionen Container.IdentifyData, Files.IdentifyData und Text.IdentifyData, um die Daten zu identifizieren.

Wenn Sie eine macOS-Kontaktdatenbank verwenden, können Sie fmp:// URLs für die Kontakte speichern. Dann kann der Benutzer auf die URL klicken, FileMaker öffnen und zum Datensatz springen. Verwenden Sie in FileMaker die Funktion CNContactStore.ContactsMatchingURL, um den Datensatz anhand einer solchen URL zu finden.

Für CURL können Sie verschiedene Trigger für den Erfolg oder Misserfolg der Übertragung festlegen, was für im Hintergrund ablaufende Übertragungen sehr nützlich ist. Wir haben eine nützliche XML.ToHTML-Funktion zur Visualisierung von XML. Verwenden Sie die Funktionen Math.Random.ExponentialDistribution, Math.Random.NormalDistribution und Math.Random.PoissonDistribution für Zufallszahlen mit Exponential-, Normal- oder Poisson-Verteilung.

Die Funktion XL.FormControl.JSON kann einen Überblick über Formularsteuerelemente in einem Excel-Arbeitsblatt geben. Wenn Sie mit Formularfeldern arbeiten, können Sie jetzt sowohl über den Namen als auch über den Index auf sie verweisen.

Verwenden Sie die Funktionen List.Shuffle und QuickList.Shuffle, um die Reihenfolge der Listeneinträge zu randomisieren. Funktionen zum Auffinden von Duplikaten in den Listen können nun optional case sensitive arbeiten. Wir haben einen Zeitstempel-Parameter für die Funktionen Archive.AddContainer, Archive.AddFile und Archive.AddText hinzugefügt.

Wenn Sie eine SQL-Abfrage in FileMaker mit FM.SQL.Execute ausführen, können Sie das Ergebnis mit der Funktion FM.SQL.ToMatrix in eine Matrix übertragen. Die Funktion Matrix.IndexOfFirstValueMatching kann verwendet werden, um herauszufinden, welche Zeile einen bestimmten Wert enthält.

Die Script Links in Kommentaren wurden durch die Möglichkeit verbessert, das Zielskript über die ID statt über den Namen anzugeben. Wenn Sie die Optionstaste drücken, während Sie auf den Link klicken, wird das Zielskript in einem neuen Fenster geöffnet.

Wir haben neue Tastenkombinationen Command-+ und Command-- für Berechnungsfelder hinzugefügt, um die Schriftgröße direkt anzupassen. Verwenden Sie die neuen Tastenkombinationen Befehl-Option-Cursor im Beziehungsdiagramm, um Elemente auszurichten, und die Tastenkombinationen Befehl-Option-Umschalt-Cursor, um die Größe von Elementen auf die kleinste/größte Größe zu ändern. Siehe Tooltips zu den Schaltflächen. Wenn Sie die Suche in einem Kalkulationsfeld verwenden, drücken Sie bitte Befehl-Umschalt-G, um die vorherige Übereinstimmung zu finden.

Die Beispieldatei "Search Scripts" zeigt Ihnen, wie Sie HotKey-, Zwischenablage- und XML-Funktionen kombinieren können, um eine Suche im aktuellen Script durchzuführen. Sobald Sie die Taste F8 drücken, zeigt die Datenbank die Skriptschritte in einem Layout an, in dem Sie eine Suche durchführen und dann sehen können, welche Zeilennummern Sie im Skriptarbeitsbereich suchen müssen. Damit steht endlich eine Art Suche für Windows-Benutzer zur Verfügung.

Schließlich haben wir CURL auf Version 8.5.0, DynaPDF auf 4.0.82.239, openssl library auf 3.1.4, SQLAPI auf 5.3.0, SQLite auf 3.44.1, LCMS auf 2.16, Xcode auf 15.2 und Visual Studio auf Version 2022 aktualisiert.

Alle Änderungen in den Release Notes.


Identify data content

We got various cases where it would be useful to have a way to check the content of a file in FileMaker. Whether the file comes as hex or base64 encoded string, a container value or a file on disk. Why would be need this? Well, let's think about a few cases:

  • You got a file without file extension and you need to know what it is.
  • You got a JPEG, which actually is a PNG or HEIF image.
  • Some user wanted to edit an image before uploading. They dropped it into a word document and later renamed it to have the extension to be imported.
  • You like to check if an attachment is an executable as you like to prevent passing on malware.
(more)

DynaPDF Parser for Xojo

With MBS Xojo DynaPDF Plugin 24.0 we include the DynaPDFParserMBS class. This class provides a top-level interface on the parser in DynaPDF. You can do various operation using this class:

  • Parse a page
  • Find text on the page.
  • Extract text on the page
  • Delete text within a rectangle.
  • Query coordinates for found text.
  • Replace found text with new text.
  • Set alternative font for new text.
  • Finally write changes back to page.
(more)

FileMaker License Pricing Details

Depending on how many licenses you need, you should be aware of a few license options from Claris. Like when you have 24 users, always order 25 since that is cheaper due to the tiers. And consider the site license as it may be cheaper. But lets go into details: (more)

40 Goodies in MBS Plugin

Have you seen our list of goodies in MBS FileMaker Plugin?

Since we started this in 2012 (read about the story), we got a lot of improvements for FileMaker's user interface to benefit the developers using it.

Earlier in 2023 a client asked if there is a list to describe them all, since the information was split over various blog entries, an outdated list of 20 goodies and a lot of details hidden in our documentation. We collected all the bits and pieces and added them to a comprehensive list. You find a list of all shortcuts here where we explain search shortcuts.

Recently we even showed them off in the live stream at RCC's fmtraining.tv.

(more)

MBS @ FMTraining.TV - Changing Image Formats in Containers with the MBS FileMaker Plug-in

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We check out the image functions in MBS FileMaker Plugin like Container.ReadImage and Container.ReadImageFile to convert HEIC/HEIF images to PNG, then use GraphicsMagick functions to check if we can read it. And we came up with the idea of Container.IdentifyData to tell you what really is a container. Sometimes you have an image declared to be JPEG, but really is a PNG, a HEIF or even a word document since someone put the wrong file extension to the name.

(more)

MBS Xojo Plugins, version 24.0pr8

New in this prerelease of the 23.6 plugins: Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

You can subscribe to our Xojo mailing list to get notified for new pre-release and release versions.


MBS FileMaker Plugin, version 14.0pr8

New in this prerelease of version 14.0 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in DropBox folder or ask for being added to the DropBox shared folder.

You can subscribe to our FileMaker mailing list to get notified for new pre-release and release versions.


MBS Xojo Developer Conference Update

About three months left until we start our MBS Xojo Developer Conference in Andernach, Germany. Let's update you what's new this week:

Conference room at Einstein Hotel.

New Sessions

We got a new session with Marc Zeedar and Christian Schmitz:

More Design Patterns

You may have heard about Design Patterns, but you aren't sure what they are, how they'd help, or how to implement them in Xojo. Here Marc builds on his London 2023 presentation and covers more patterns in Xojo with practical examples.

This session will cover topics such as:
  • Types of design patterns (Creational, Structural, Behavioral)
  • The benefits of using patterns:
    • Reliability
    • Reusability
    • Simpler program structure and clarity
    • Flexibility
    • Better code encapsulation
    • Forces you to use a more object-oriented design
  • Demos and Examples
  • Exploring several patterns such as Observer, Command, Facade
  • Show how a pattern can benefit a project and solve a code-structure problem in a better way
by Marc Zeedar, publisher of xDev Magazine. (more)

NSSegmentedControl and NSPathControl

For Xojo in macOS we got two new controls for you:

Sample controls

The NSSegmentedControlControlMBS control hosts a NSSegmentedControlMBS view to show a button with multiple segments. Similar to the SegmentedControl in Xojo itself. You can query the NSSegmentedControlMBS object for the SegmentedControl to configure it with more options.

The NSPathControlControlMBS control hosts a NSPathControlMBS view to show a file path visually to the user. You may have seen this in the Finder in various places. The texts will localize automatically to the user and it shows icons for the folders if they have one.

On the way to implement this control we added two new events for NSPathControlMBS class: willDisplayOpenPanel and willPopUpMenu. This events allow you to customize the control for what shows up when it shows a menu because there is not enough space available to show the full path. Further customization is possible using NSPathComponentCellMBS, the cell subclass to display the path components.

We know that control is double there, but that's how the scheme works. We take the name of the view and append Control for the hosting control object in Xojo. The API 2 version has a Desktop prefix added automatically. But otherwise both variants are identical.

The new controls are available for version 24.0 for you to try. The control works on macOS only, but you can put it on a window and it will do nothing for Linux and Windows. If you use API 2 for your desktop projects, you will automatically use DesktopNSPathControlControlMBS and DesktopNSPathControlControlMBS controls.

Using PerformScript in a custom WebViewer in FileMaker

When you make a custom WebViewer with MBS FileMaker Plugin, you may miss the callbacks with FileMaker.PerformScript there. But we got a way to get them into our WebViewer, too. Let us explain:

(more)

Calling C functions from FileMaker

For some years we have our CLibrary and CFunction functions in our MBS FileMaker Plugin. They can be used to load a library file, dylib on macOS, DLL on Windows and so on Linux. Then you can inspect the library for offered functions and load one. You need to have the declarations for C to know what parameters and return types are used. But once you translate them to our plugin's notation, you can load the function and call it.

 

Our first example is the version function from SQLite: 

 

const char *sqlite3_libversion(void);

 

The return value is a C string, so from our documentation we pick Z as notation for this data type. No parameters are given, so the signature is just "()Z". We can load the libsqlite3.dylib file on macOS with the full path. Please notice this file doesn't exist on disk in modern macOS since the library is loaded from a cache file provided by Apple. Once we loaded the function, we can keep the object around and call it anytime. Our call function takes whatever parameters you like to pass and returns the result, which is converted to a value in FileMaker.

(more)

Background Log Custom function

We recently talked to a client about sending log messages out in background. You know a normal script would block the interface and we really prefer to have the user not notice it, even when the network hangs. By using CURL.PerformInBackground function, we can send the log in the background without to another server and receive it there. Whether this is your own php or python script, or you decide to pass it to the FileMaker data API or one of the AWS services doesn't matter. Just include the credentials to use with the request. And with CURL.PerformInBackground function, the transfer will happen even if FileMaker shows a dialog, performs another script or is busy for a few minutes.

 

The custom function below builds the CURL request, setups all the options and then starts it in background. FileMaker may show some dialog and block a script from running, but the custom functions runs in a few milliseconds and then the plugin can do the transfer on a background thread. We setup an expression to simply release the CURL object when it succeeds and set a script to run in case of failure. That allows us to log the failure locally with a script in FileMaker and do something about it. For older plugin versions, you may do similar with CURL.SetFinishedEvaluate and CURL.SetFinishedScript functions.

 

SendLog(JSON)

Let([

   curl = MBS("CURL.New");

   r = MBS("CURL.SetOptionURL"; curl; "https://www.your-domain.com/filemaker/log.php");

   r = MBS("CURL.SetOptionHTTPHeader"; curl; "Content-Type: application/json");

   r = MBS("CURL.SetOptionPostFields"; curl; json);

   // in case of success, just release it.

   r = MBS("CURL.SetSucceededEvaluate"; curl; "MBS(\"CURL.Release\"; $$ID$$)" );

   // in case of failure, trigger script to log error

   r = MBS("CURL.SetFailedScript"; curl; Get(FileName); "Transfer Failed" );

   // start sending in background

   sent = MBS("CURL.PerformInBackground"; curl)

]; sent)

 

Logging to a separate server helps to make sure that nobody deletes traces in logging when hacking the system. Just an extra thing to think about when you do logging in your systems. The new functions in MBS FileMaker Plugin 14.0 allow you to put in different handlers for success and failure. Please try and see if you can adapt this!


MBS Xojo Plugins, version 24.0pr7

New in this prerelease of the 23.6 plugins: Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

MBS FileMaker Plugin, version 14.0pr7

New in this prerelease of version 14.0 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in DropBox folder or ask for being added to the DropBox shared folder.

Custom styles in Scintilla Control

While we have 100+ lexers to colorize your text in ScintillaControlMBS control, you may sometimes need a custom solution. If none of our existing lexers suits you, you can do it all yourself in Xojo.

You would implement StyleNeeded event to provide coloring for a range of text. You get the position where the action happened, e.g. user typed a few letters. Then you query EndStyled property to know when existing style information ended. Since you are asked usually in chunks, you may start where you finished recently. From there we usually go back to the start of the line, so we query the line with LineFromPosition and the start of the line with PositionFromLine. Then we colorize from that position to the current one.

Scintilla with custom lexer (more)

One month until Claris Engage 2024

Just one month left until Claris Engage 2024, 6th to 8th February 2024 in Austin, Texas.
As far as I know, there are just 50 tickets left, so if you like to join the event, please sign-up soon.



The Claris Engage conference will take place one day in the Apple Campus (6900 West Parmer Lane) for training and keynote. After the keynote, we'll meet each other at a party with food and drinks. Plenty of time to welcome old friends and talk about the keynote content. The other two days are on a different Apple Campus (5505 Parmer Lane). All the sessions will be there with lunches and refreshment breaks. Hotel are in the Austin Domain area and Claris provides shuttle busses to get to the conference.

I hope to meet a lot of users of MBS FileMaker Plugin there, answer questions and have a great time!

MBS @ FMTraining.TV - Another 20 Free FileMaker MBS Functions to Change Your Development - Part 2

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We check out the second 20 free goodies in MBS FileMaker Plugin around syntax coloring.

(more)

MBS Xojo Developer Conference Update

Overview of Andernach from Mountain.

Less than four months left until we start our MBS Xojo Developer Conference in Andernach, Germany.

Since early bird pricing ends

New Sessions

We added David Cox as speaker with two presentations:

Cross-platform development using Convert to Method Pair

If you have a massively multi-platform project you quickly discover that placing code in 12 locations (in Objects, Methods and Classes for Desktop, Web, iOS and Android)) becomes nearly impossible to manage. Using Convert to Method Pair allows you to place all your source code into one external Class per Window/Container/Page/Screen making your applications work consistently and making debugging much easier.

Using URLConnection to Export to PDF across all platforms

Providing PDF reports from HTML within your applications is easy for Desktop and Web apps, but nearly impossible with Mobile apps. Including additional software to do the conversion makes your app larger and more likely to be rejected by App Stores. Instead, create a RESTful Web server to take your HTML via a URLConnection and place the result into a database as a solution that works consistently for Desktop, Web and Mobile apps.

(more)

MBS at FileMaker en Valencia

There is a Spanish FileMaker conference coming up end of March 2024:

Friday, March 22 and Saturday, March 23, 2024

Hotel Valencia Oceanic Affiliated By Meliá
In Valencia, Spain

See website codewave.es


MBS sponsors the event and I will be there to show off some MBS Functionality and answer questions.


xDev Magazine 22.1 Issue

The January/February (22.1) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Faster, Xojo, Faster! by Marc Zeedar
We got a new faster Xojo for Christmas, but just how much of a speed improvement will we see? Marc runs some tests.

Design Patterns Part 2 by Marc Zeedar
Our design pattern series continues with a look at the Decorator (a.k.a. Wrapper) pattern. It allows you to dynamically change the behavior of objects at run-time by wrapping one object with another.

Rasp Pi Electronic Fun Part 5 by Eugene Dakin
Getting information from your Raspberry Pi is important for debugging. Today we're going to demonstrate how to retrieve GPIO info, such as the state of various pins.

Sandstorm by Marc Zeedar
Marc got a "falling sand" desktop toy and used it as inspiration to simulate it in Xojo. Just how hard is it creating digital falling sand? Not hard at all, it turns out.

Plus: Topics such as Xojo 2023R4, handling exceptions, parsing emails, nonobvious obvious stuff, and more!

MBS Xojo Plugins, version 24.0pr6

New in this prerelease of the 23.6 plugins:
  • Fixed a problem with file property in NSColorSpaceMBS class not working.
  • Updated SQLAPI to version 5.3.0.
  • Fixed a problem with int32 read as string in SQL classes.
  • Added CopyMemoryBlock method to SQLStringMBS class.
  • Added SQL Unit Tests project, so you can run over 500 tests on our MBS Xojo SQL Plugin.
  • Added replaceCharacters method to NSMutableAttributedStringMBS class.
Download: monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or from DropBox.
Or ask us to be added to our shared DropBox folder.

MBS FileMaker Plugin, version 14.0pr6

New in this prerelease of version 14.0 of the MBS FileMaker Plugin:
  • Added Reset Colors button to the preferences dialog.
  • Improved SyntaxColoring.FactoryDefaults function to reset both dark and light colors.
  • Updated SQLAPI to version 5.3.0.
  • Fixed a problem with int32 read as string in SQL functions.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in DropBox folder or ask for being added to the DropBox shared folder.

Archives

Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
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