NativePath vs. AbsolutePath


For years Xojo had three types of paths on the folderItem class:
  • AbsolutePath
    For Mac the old MacClassic style for paths with semicolon as divider. For Windows and Linux this is native path.
  • NativePath, the native path for the OS, so you get the POSIX style path on MacOS. Same as absolute path for Linux and Windows. Introduced with Xojo 2013.
  • ShellPath, the escaped path for use in shell commands with shell class.
AbsolutePath has been deprecated for a while and may finally go with the next Xojo version. Time enough for us to look through thousands (Sic!) of examples and code snippets to find all places with AbsolutePath. Often we had code like this already:

#If RBVersion < 2013 Then
MsgBox "Failed to create file " + f.AbsolutePath
#Else
MsgBox "Failed to create file " + f.NativePath
#EndIf

But it is very annoying to write #If into hundreds of projects.

We got a nice idea to keep projects compiling in Real Studio (doesn't know NativePath) and the future Xojo versions (doesn't know AbsolutePath): Via plugin we add NativePath for Real Studio. All our projects can use NativePath and compile in older/newer versions.

So if you have AbsolutePath in the projects, it may be a good idea to replace it! Same for PathTypeAbsolute.

Hotel rooms for European MBS Xojo Conference 2019 in Cologne


We extended our hotel contingent for August, so you can still get a few rooms for Dorint Hotel.

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.

To give you an update, we have already over 50 attendees signed up from 15 countries:
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦, 🇪🇸, 🇯🇴, 🇧🇪, & 🇨🇦.



The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint Hotel as well as an accompanying social program.

Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers.

See also conference website, Things to do in Cologne beside our conference and European Xojo Conference FAQ.

Posters for DevCon


We printed posters for our booth at the FileMaker DevCon 2019 about what's new in the MBS FileMaker Plugin:

If you have questions, please don't hesitate to contact us. See you at the booth!

DynaPDF for iOS


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

We include four variants in our download:
  • DynaPDF for iOS Device
    64-bit for device
  • DynaPDF for iOS Simulator
    64-bit for simulator
When building your iOS app, just include the dynapdf framework file in the frameworks folder inside the app and call DynaPDF.Initialize in the start script passing the framework name and your license key.

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

Download: DynaPDF iOS 4.0.19.50.dmg or DynaPDF iOS 4.0.19.50.zip

PS: You may need to change the version number in the framework for iOS to a 3 component number (4.0.30 instead of 4.0.30.86). And for testing on your own device, please make sure the framework has your code signature.

Notarized MBS Xojo Plugins


When loading our plugin for Xojo on MacOS 10.15 Catalina, you may have seen such a dialog.

We now made a notarized version of the download: MBS-Xojo-Plugins193-notarized.dmg

This plugin download is notarized. We removed a few old examples with compiled code, but otherwise the same.
We hope to be able to notarize all downloads in the future for our 19.4 release to avoid friction.

Notarized MBS FileMaker Plugin


When loading our plugin for FileMaker on MacOS 10.15 Catalina, you may have seen such a dialog.

We now made a notarized version of the download: MBSFMPlugin93-notarized.dmg

This plugin download is notarized. But it misses the iOS parts as you can't have currently iOS frameworks in Mac software notarized.
We hope to be able to notarize all downloads in the future for our 9.4 release to avoid friction.

Three months till European MBS Xojo Conference 2019 in Cologne


Just three months left before our conference & training for Xojo starts. The hotel contingent has been extended for another month.

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.

To give you an update, we have already over 50 attendees signed up from 15 countries:
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦, 🇪🇸, 🇯🇴, 🇧🇪, & 🇨🇦.



The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint Hotel as well as an accompanying social program.

Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers.

See also conference website, Things to do in Cologne beside our conference and European Xojo Conference FAQ.

MBS FileMaker Plugin 9.3 - More than 5900 Functions In One Plugin


Nickenich, Germany - (July 24th, 2019) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 9.3 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 9.3 has been updated and now includes over 5900 different functions, and the versatile plugin has gained more new functions:

For DynaPDF we got support for ZUGFeRD 2.0 and Factur-X. Our new example database shows you how to create invoices in PDF format with embedded XML invoices. The DynaPDF.Optimize function got new flags to convert existing images in a PDF to grayscale, RGB or CMYK color spaces. With ReplaceJP2KWithJPEG option, you can convert JPEG 2000 images into regular JPEG Images.

This release addresses a few problems with thread synchronization on FileMaker Server, which could lead to crashes in previous releases. With the new release we made significant changes, so you can use CURL, SQL, JSON, GraphicsMagick, and many other functions parallel in several scripts. We tuned the mutexes used for synchronization to allow even more functions to run in parallel.

For MapKit functions on iOS and MacOS to show Apple Maps within a FileMaker layout, we got a new MapView.Screenshot function. Beside the snapshot functions to render maps, the screenshot function returns the current viewed map with all pins and annotations. The MapView.SetScript function allows to define a script to be triggered when you click on a pin. Pins can now have a custom color.

To compare two tables you can use our FM.CompareTables function, e.g. compare current against yesterday's version. The function will analyze the field list and report changes as JSON. This includes changes to the field list, changes to the record IDs and if you request per field changes for each record. The function has excellent performance and can even show progress with our ProgressDialog functions.

While you can use styled text in FileMaker fields, it may be hard to analyze styles. Our Text.Styles function reports all text style information from a text as JSON array. This includes the text, start position, font with size, color, font styles like bold and italic.

The WebView functions got improvements to better find the web viewer in the windows. Those functions should now work fine from the data viewer. Our WebView.SetCustomUserAgent function works now for iOS, too. For Mac and iOS we got new functions to decide whether to show link previews. FontManager.ListFontFamilies and GraphicsMagick font mapping got implemented for iOS as well as WebView.AllowsAnyHTTPSCertificateForHost for WebKit 2.x.

For reminders on Mac you can now query start and due date as timestamps, with the UNNotification functions you can deliver a notification now or schedule it with a timestamp. The new SystemInfo.ADSystemInfo function queries Active Directory details for current user, the JSON.Sort function sorts your JSON data, and the Trace function got new options.

Finally we updated CURL to version 7.65.3, DynaPDF to 4.0.30.87, libcpuid to 0.4.1, libiconv to 1.16, libPNG to 1.6.37, libssh2 to 1.8.2, libxlst to 1.1.33, libxml2 to 2.9.9, libzint to 2.6.3, OpenSSL to 1.1.1c, PCRE to 8.43 and SQLite to 3.29.0.

See release notes for a complete list of changes.

MonkeyBread Software Releases the MBS Xojo Plugins in version 19.3


Nickenich, Germany - (July 24th, 2019) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 19.3 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 2500 classes and 65,000 documented features, and the versatile plugins have gained more new functions:

For DynaPDF we got support for ZUGFeRD 2.0 and Factur-X. Our new example project shows you how to create invoices in PDF format with embedded XML invoices. The Optimize function in DynaPDFMBS got new flags to convert existing images to grayscale, RGB or CMYK color spaces. With kofReplaceJP2KWithJPEG option, you can convert JPEG 2000 images into regular JPEG Images. Calls to our Graphics class integration can now be logged to text file with our trace feature. Drawing strings can now be multi line.

For MacOS we implemented the OpenDirectory framework from Apple, so our new ODQueryMBS, ODRecordMBS, ODNodeMBS and ODSessionMBS classes allow you to query LDAP and Active Directory servers. We still provide LDAPMBS class for a cross platform solution.

We got a new sort method in JSONMBS class. It allows you to sort your values in the array including numbers, booleans and text. The Convert method to convert between JSONMBS and dictionaries, arrays and variants can now include JSONMBS objects in the variants.

In our OpenSSLMBS module we got a new PKCS7SignedData function to read content of P7M files. In Italy digitally signed e-invoices in CAdES format include an embedded XML payload in a signed P7M file.

Our SQL Plugin got new BindedValues and BindedTypes properties for SQLPreparedStatements class, so you can inspect bindings in debugger for your prepared statements. We added constants for CubeSQL libraries. We still provide a built-in CubeSQL library.

With NSWorkspaceMBS.requestAuthorization you can request an authorization for a file manager operation. You may receive an event later with the NSWorkspaceAuthorizationMBS object. Then with NSFileManagerMBS.fileManagerWithAuthorization you request the authorized file manager, which can be used to do privileged function like replacing a system file. Please code sign your app with the right entitlement to use this feature.

Our BarcodeGeneratorMBS class got an upgrade to a newer library version. New barcode types are added for MailMark, UPNQR and Vin. The new WindowsADSystemInfoMBS class allows you to query Active Directory details for current user. For SceneKit on MacOS we got new classes for geometry source, geometry tessellator and level of detail.

Finally we updated CURL to version 7.65.3, DynaPDF to 4.0.30.87, libcpuid to 0.4.1, libiconv to 1.16, libPNG to 1.6.37, libxlst to 1.1.33, libxml2 to 2.9.9, libzint to 2.6.3, OpenSSL to 1.1.1c, PCRE to 8.43, SQLite to 3.29.0, WinSparkle to 0.6.

See release notes for a complete list of changes.

Neues MBS FileMaker Plugin 9.3 - Über 5900 Funktionen in einem Plugin


24. Juli 2019 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 9.3, mit inzwischen über 5900 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Für DynaPDF haben wir die Unterstützung von ZUGFeRD 2.0 und Factur-X eingebaut. Unsere Beispieldatenbank zeigt wie man eine digitale Rechnung im PDF Format mit eingebettetem XML anlegt. Die DynaPDF.Optimize Funktion hat neue Flags um vorhandene Bilder nach Graustufen, RGB oder CMYK Farbräume zu konvertieren. Mit der ReplaceJP2KWithJPEG Option werden vorhandene JPEG 2000 Bilder nach JPEG konvertiert.

Die neue Version behebt ein paar Probleme mit der Synchronisation von Threads am FileMaker Server, die mit älteren Plugins von uns zu Abstürzen führen konnten. Mit der neuen Version haben wir signifikante Änderungen gemacht, so dass Sie unsere CURL, SQL, JSON, GraphicsMagick und andere Funktionne parallel in mehreren Skripten gleichzeitig nutzen können. Wir haben die Mutexe für die Synchronisation optimiert, so dass sogar mehr Funktionen als bisher effizient parallel laufen können.

Mit den MapKit Funktionen können Sie auf iOS und MacOS die Karten von Apple im FileMaker Layout anzeigen. Mit der MapKit.Snapshot Funktion erzeugen Sie gerenderte 2D/3D Kartenausschnitte. Neu ist eine MapView.Screenshot Funktion für Fotos von der aktuell anzeigten Karte mit allen Pins. Mit MapView.SetScript können Sie ein Skript festlegen, welches dann bei einem Klick auf einen Pin ausgeführt wird. Pins können jetzt eingefärbt werden.

Um zwei Tabellen zu vergleichen können Sie die FM.CompareTables Funktion verwenden, zum Beispiel die aktuelle Version einer Tabelle gegen den Stand von gestern vergleichen. Das Plugins schaut sich die Feldliste an und berichtet über Änderungen als JSON. Dabei melden wir Änderungen in der Liste der Felder, dann Änderungen bei den Datensätzen und auf Wunsch auch die einzelnen Feldänderungen für jeden Datensatz. Die Funktion ist recht performant, kann aber auch den Fortschritt über unsere ProgressDialog Funktionen anzeigen.

Während Sie zwar Text in FileMaker per Funktion formatieren können, bleibt es doch schwierig diese Formatierungen auszulesen. Unsere Text.Styles Funktion analysiert den Text und gibt alle Details als JSON Block zurück. Mit dabei sind die Texte, Positionen, Schriften mit Größe, Farbe und Schriftstilen.

Die WebView Funktionen haben Verbesserungen um den Web Viewer zuverlässiger zu finden, auch vom Data Viewer aus. Die WebView.SetCustomUserAgent Funktion unterstützt neben MacOS jetzt auch iOS. Für Mac und iOS haben wir neue Funktionen um festzulegen, ob eine Vorschau für Links angezeigt wird. Die Funktionen FontManager.ListFontFamilies und die Schriftenverwaltung für GraphicsMagick sind für iOS eingebaut und die Funktion WebView.AllowsAnyHTTPSCertificateForHost unterstützt jetzt WebKit 2.x.

Für Erinnerungen am Mac können Sie die Start und Endzeit als Zeitstempel abfragen, bei den UNNotification Funktionen können Sie eine Notification sofort ausliefern oder mit einem Zeitstempel terminieren. Die neue SystemInfo.ADSystemInfo Funktion fragt Active Directory oder LDAP Server ab zum aktuellen Benutzer, die JSON.Sort Funktion sortiert JSON Daten und die Trace Funktion hat jetzt ein paar Optionen.

Außerdem haben wir CURL auf Version 7.65.3 aktualisiert, DynaPDF auf 4.0.30.87, libcpuid auf 0.4.1, libiconv auf 1.16, libPNG auf 1.6.37, libssh2 auf 1.8.2, libxlst auf 1.1.33, libxml2 auf 2.9.9, libzint auf 2.6.3, OpenSSL auf 1.1.1c, PCRE auf 8.43 und SQLite auf 3.29.0.

Alle Änderungen in den Release Notes.

Fun with While function in FileMaker


We can use While function (or FM.Loop function in our plugin) to do loops directly in FileMaker.  With Let statement we can combine several calls to our plugin including While() calls into one expression. You can put this into a custom function or in a Set Variable call to calculate it where you need.

 

1. Simple loop

 

You can write a complete encapsulated While call which defines a list of numbers with values counting up:

 

While([ list = ""; i = 1]; i ≤ 10; [ list = list & i & ¶; i = i + 1 ] ; list )

 

This returns a list of 1 to 10.

 

2. Fill JSON array

 

Next we write a Let statement for combining several MBS calls and a while call to fill a JOSN array. Here we use our object reference numbers to avoid passing around the half finished JSON and speed up the performance of the calculation.

 

Let ( [

  // Create array object

  j = MBS( "JSON.CreateArrayRef" );

  // make a loop to add numbers

  r = While ( i = 0 ; i < 10 ; [ 

     r = MBS( "JSON.AddNumberToArray"; j; i )

     i = i + 1 ] ; i );

  // format the result

  text = MBS( "JSON.Format"; j );

  // free json

  r = MBS( "JSON.Release"; j )

];

// return result as text

 text )

 

This returns the following JSON:

 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

(more)

MBS FileMaker Plugin, version 9.3pr7


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

MBS Xojo Plugins, version 19.3pr7


New in this prerelease of the 19.3 plugins:
  • Changed NSColorMBS constructor and colorValue property to always use generic RGB for compatibility to Xojo.
  • Updated DynaPDF to version 4.0.30.87.
  • Updated CURL to version 7.65.3.
  • Fixed HTML tags for JSONMBS.ToHTML function.
  • Patched a bug in Optimize method of DynaPDFMBS class.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS Plugin beim FileMaker 18 Launch Event


Das Video zur MBS Plugin Präsentation vom FileMaker 18 Launch Event bei der Denkform in Wiesbaden steht bereit.



Viel Spaß beim zuschauen und bis bald auf der FileMaker DevCon in Orlando!

DynaPDF Manual online updated


DynaPDF has it's own documentation, which you can find included with our plugin: dynapdf_help.pdf.

In order to read it in a browser and for search engines to soon index it, I put the manual online as a webpage version:

monkeybread.net/DynaPDF-Manual/

Maybe it helps people. From time to time I can update it with current PDF file.

Embedded links with MBS and DynaPDF in Xojo


Perhaps you have a PDF document and want to add some links to the PDF. You want to add some page links to navigate inside the PDF Document and jump to the right pages or websites. Maybe you want to change the target of a linked url in the document. With the MBS Xojo DynaPDF Plugin for Xojo you can do it in an easy way. Now I want to show you how to do it.

Initialize and load PDF
At first we need to initialized DynaPDF and put, if you have one, the license key in the document:

Dim pdf As New MyDynapdfMBS

Then we call the open dialog for choosing the PDF for import. Next we ask the user where to store the final PDF file. If the saving dialog is canceled (outFile=Nil) the script return.

Dim f As FolderItem = GetOpenFolderItem(MyFileTypes.Pdf)
Dim outFile As folderitem = GetSaveFolderItem(MyFileTypes.Pdf, "PDF with links.pdf")
If outFile = Nil Then Return


Now we create a new and empty PDF at the given file. Pass nil instead to create an in-memory PDF:

Call pdf.CreateNewPDF(outFile)

We subsequently set flags for the import. We want pages (not templates) and get all parts of the pages. By asking to use visible coordinates, our coordinates are relative to pages crop box (if existent) and honors the orientation of the page.

dim flags as integer = Bitwise.BitOr(pdf.kifImportAsPage, pdf.kifImportAll)
Call pdf.SetImportFlags(flags)
Call pdf.SetUseVisibleCoords(True)


kifImportAsPage constant set the import options for import the page as pages and not as a template. With the setting kifImportAll all elements of the source PDF are imported. For example you can only import the bookmarks or all elements except the annotations.

After that we open our import file and import it page wise to our pdf:

Call pdf.openimportFile(f, pdf.kptopen, "")
Call pdf.ImportPDFFile(pdf.GetPageCount + 1, 1.0, 1.0)
call pdf.CloseImportFile


pdf.GetPageCount+1 define the destination page number. We use this to be able to call import in a loop and import new pages after existing ones. (more)

MBS FileMaker Plugin, version 9.3pr6


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

MBS Xojo Plugins, version 19.3pr6


New in this prerelease of the 19.3 plugins:
  • Updated CURL to version 7.65.2.
  • Added LinuxWebViewMBS.IsLoading function.
  • Fixed geometrySourceWithData function in SCNGeometrySourceMBS class.
  • Implemented WebKit2 support for Linux partially.
  • Updated SQLite to version 3.29.0.
  • Updated DynaPDF to version 4.0.30.86.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Drei Monate für FileMaker Konferenz 2019 in Hamburg


Vom 16. bis 19. Oktober 2019 findet die zehnte deutschsprachige FileMaker Konferenz in Hamburg, Deutschland statt. FileMaker Anwender und Entwickler sind herzlich eingeladen sich anzumelden.

Die Veranstalter vom Verein FM Konferenz erwarten auch 2019 rund 180 Entwickler, Anwender, IT-Fachleute und Entscheidungsträger aus Wirtschaft, Bildung und Verwaltung. Rund um über 25 Fachvorträge und Workshops wird es viel Zeit zum Vernetzen in den gemeinsamen Pausen und beim Abendprogramm geben.

Dieses Jahr gibt es wieder eine MBS Plugin Workshop, diesmal am 16. Oktober 2019.
Anmeldung bei Monkeybread Software.

Was gibt es neues bei MBS Version 9.2


In diesem Artikel möchte ich ihnen die neuen Funktionen, die ihnen mit der Version 9.2 des MBS Plugins zur Verfügung stehen, vorstellen.

Matrix
Wenn sie bereits einmal mit einer anderen Programmiersprache gearbeitet haben, kennen sie vielleicht schon die Möglichkeit zweidimensionale Arrays zu erstellen. Mit der neuen Komponente Matrix bieten wir ihnen dies nun auch für die Programmierung in FileMaker an. Ein zweidimensionales Array kann man sich wie eine interne Tabelle vorstellen, die Zeilen und Spalten besitzt. In den einzelnen Zellen dieser Tabelle stehen Werte, die über ihre Zeilen und Spaltennummer angesprochen werden können. Es können Zeilen und Spalten nach belieben hinzugefügt werden.

Wie der Name der Komponente schon sagt, können nun auch Berechnungen von Matrizen durchgeführt werden. Dafür stellt ihnen das MBS Plugin einige mathematische Operationen, wie den durchschnittlichen Wert oder die Summe einer Spalte, zur Verfügung.

Verschlüsseln und Entschlüsseln von Polylines
Wenn sie mehrere Koordinaten haben, können sie diese mit den Funktionen aus der neuen MBS Version verschlüsseln und entschlüsseln. Der Polyline compressions Algorithmus erlaubt es ihnen, eine Kette von gegebenen Koordinaten in einen einzigen String zu verpacken. Mit Math.PolylineEncode wird z.B. 38.5 zu _p~iF und mit Math.PolylineDecode wird _p~iF wieder zu 38.5. Genauere Angaben zum Algorithmus finden sie hier: developers.google.com/maps/documentation/utilities/polylinealgorithm

Continuity Camera
Mit iOS 12 und macOS Mojave brachte Apple das Feature Continuity Camera heraus. Mit Continuity Camera können sie von ihrem Mac aus ihrem iOS Gerät mitteilen, dass sie ein Foto machen möchten oder ein Dokument mit ihrer Camera einscannen wollen. Nach dem sie das Bild gemacht bzw. das Dokument mit ihrem iOS Gerät gescannt haben, wird die Datei an ihren Rechner geschickt und kann dort benutzt werden. Nun macht auch das MBS Plugin für FileMaker dieses möglich. Sie können so z.B. eine Kundendatenbank aufbauen und vor Ort mit ihrem iPhone ein Profilbild des Kunden hinzufügen, sowie Dokumente ohne zusätzliches Zubehör scannen. (more)

Customer Distribution


for our MBS plugin users, we have this distribution:

Japan: 2%
Australia: 3%
Canada: 3%
France: 3%
Netherlands: 4%
Italy: 4%
Switzerland: 5%
United Kingdom: 6%
Germany: 19%
United States: 33%

and just a few in Afghanistan, Argentina, Armenia, Austria, Bahrain, Belgium, Brazil, Burkina Faso, Cayman Islands, Chile, China, Columbia, Costa Rica, Croatia, Cyprus, Czech republic, Denmark, Dominican Republic, Ecuador, Egypt, Estonia, Finland, Georgia, Greece, Guadeloupe, Guernsey, Haiti, Honduras, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Jamaica, Jordan, Kuwait, Latvia, Liechtenstein, Lithuania, Luxembourg, Macau, Madagaskar, Malaysia, Malta, Mexico, Mosambik, Namibia, Nepal, Netherlands Antilles, New Caledonia, New Zealand, Norway, Pakistan, Panama, Peru, Philippines, Poland, Portugal, Puerto Rico, Romania, Russia, Serbia, Seychelles, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sri Lanka, Sweden, Taiwan, Thailand, Turkey, Uganda, Ukraine, United Arab Emirates, Uruguay and Venezuela.

In general plugin users are living where a lot of people live, who speak some english (to read documentation) and have enough knowledge to do software development and know about Xojo or FileMaker.

MBS Xojo Plugins, version 19.3pr5


New in this prerelease of the 19.3 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 9.3pr5


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

Calendar access in FileMaker 18


We have a little problem with MacOS privacy protection on MacOS Mojave. To access the Calendar, Reminder or Addressbook databases, you need user consent. Usually you query Events.AuthorizationStatusForEntityType function with our plugin to ask for status. The Events.requestAccessToEntityType function then triggers the dialog asking for permission. This works fine in FileMaker 17 and MBS functions work, when you grant access. For FileMaker 18, you always get permissions denied for the status check and the dialog never shows.

First solution

Some users use FileMaker Pro Advanced in version 16 or 17 to enable it once and then work with FileMaker 18. That may work for some, but not all users may want to install older versions of FileMaker in parallel.

Second solution

Well, to change FileMaker, you can change info.plist in the FileMaker application. There you can add NSCalendarsUsageDescription entry with a text about the calendar usage, e.g. "MBS Plugin provides calendar access to FileMaker solutions.". By changing the info.plist you break the code signature of the application, which will make the permissions dialog to not work. You can code sign FileMaker application yourself with your own code signing certificate, if you are a registered Mac developer. When you do that, as far as we know, the dialog for authorization will work again.

We reported the issue to FileMaker Inc. via product feedback. See community thread here. It would be nice if a future FileMaker update could include the info.plist entries for all possible things a plugin could add to FileMaker. e.g. NSCalendarsUsageDescription with text like this: "A plugin requires Calendar access to offer scripts functions to work with the calendar database in your solution.". Or Apple could provide some kind of wildcard entitlement for FileMaker to use them all.

Third solution

A third way we plan to investigate next week is to make a little utility to ask for permission and add the required entries for FileMaker application in the privacy database. Then you would need to use the utility to ask for permissions.

PS: If you need to reset the database with permissions for Calendars, you can use "tccutil reset Calendar" command in Terminal application.

Hotel rooms for European Xojo Conference 2019 in Cologne


Our hotel room contingent "Xojo" will expire in two weeks, about three months before the conference. If you plan to join the conference, but you don't yet have a hotel room in Dorint Hotel, please reserve your room as soon as possible.

Monkeybread Software is pleased to announce the European MBS Xojo Conference in metropolitan Cologne, Germany. We meet in the lovely Dorint Hotel in the center of Cologne. The hotel is in the city center and in walking distance to the main station. Beside our two conference days we have accompanying social programme with our dinner event and optional two training days. For the evenings we have casual get-together in the hotel bar or beer garden.

To give you an update, we have already over 50 attendees signed up from 15 countries:
🇩🇪, 🇬🇧, 🇳🇱, 🇫🇷, 🇨🇭, 🇺🇸, 🇬🇷, 🇸🇮, 🇦🇹, 🇮🇹, 🇺🇦, 🇪🇸, 🇯🇴, 🇧🇪, & 🇨🇦.

We extended our last offer: Save 100 € till 24th July and pay 599 instead of 699 Euro for the ticket (+VAT if needed).



The schedule:

Oct 23rd: Xojo Training in English
Oct 24th: Conference, first day with dinner event
Oct 25th: Conference, second day
Oct 26th: Xojo Training in German

Registration is open. The early bird offer available till 24th July is just 599 Euro plus VAT. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Dorint Hotel as well as an accompanying social program.

Sessions are to be held in English. Our conference is conceived as a networking event for the Xojo community. The conference is an ideal opportunity for sharing your thoughts and your own development experience with fellow users and developers.

See also conference website, Things to do in Cologne beside our conference and European Xojo Conference FAQ.

SMTP Server Settings


Sending Emails with various servers can be a challenge. In this blog article we like to collect the settings needed for using our SendMail functions in FileMaker or CURLEmailMBS class in Xojo to send emails. As you see we always prefer to use encryption.

Bei checking certificates, we can detect and avoid giving our password to a transparent proxy. And we enable TLSv1.2 for all here and require encrypted connection. It's important to test and verify this, as I once run into a hotel reading my emails to count them and prevent spamming. (more)

RecordSet to JSON and back


Today I want to show you two useful methods to convert from a RecordSet in Xojo to a JSON string and back. We combine BuildRecordSetMBS function (in MBS Xojo SQL Plugin) with JSONMBS class (from MBS Xojo Util Plugin) and the new Convert method helps a lot!

Here the function RecordSetToJSON:

Function RecordSetToJSON(r as RecordSet) As String // adds data in recordset to a JSON Dictionary Dim FieldNames() As String Dim Values() As String // Query list of field names Dim c As Integer = r.FieldCount For i As Integer = 1 To c Dim d As DatabaseField = r.IdxField(i) FieldNames.Append d.Name Next // get all fields from all records into values array While Not r.EOF For i As Integer = 1 To c Values.Append r.IdxField(i).StringValue Next r.MoveNext Wend // make new Dictionary with the values and field names Dim j As New Dictionary j.Value("FieldNames") = FieldNames j.Value("Values") = Values // Convert to JSON Dim v As Variant = j Dim json As JSONMBS = JSONMBS.Convert(v) // return as JSON string Return json.toString End Function
(more)

One month till FileMaker Developer Conference 2019


Please join the FileMaker DevCon 2019 next month and come to visit our booth. Our vendor session will be Wednesday, 7th August 2019, from 12:00pm to 12:30pm.



Please join us 5th to 8th August 2019 in Orlando, Florida, USA.
Monkeybread Software has a booth as usual and we'll be there for a whole week.

You can book the conference for 2 days (1199 USD) or 3 days ($1699), but I would suggest to add training day for ($399) and make it a 4 day conference. And if you come from far away, please make sure you have a day before/after to enjoy some extra activity with other attendees, like a visit to a Disney Park.

TextInputCanvas for GTK3 and 64-bit


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

We just rebuild a copy to avoid problems with code signing on MacOS.

You can load a copy on my plugin download page.

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

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

FileMaker Magazin - MBS Artikel


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

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


European Xojo Conference Planning Update


Planning a conference is hard. You have a couple of variables from hotels and restaurants like conference room rent, delegate rates, hotel room rates, costs for buffets and refreshments. Sometimes you have to commit to a minimum number of attendees to get a nice room, which may lead to pay extra unused seats. A restaurant may impose a minimum revenue so you can be the only group that night. The big unknown left is how many attendees you have.

In Berlin we had 80 people attending the conference. The room was nice and big with possible space for over 100 attendees. We planned last year for Munich with 2 conference rooms. Just in case we got more people and would like to have two tracks. Six months before the event, we cancelled the second room as we only had around 30 people on the list that early. It doesn't make sense to have two tracks and only 20 people in each room.



For our Cologne event we planned a nicer conference with a ballroom and a lot of space to host even over 100 people. We started planning the schedule for two tracks and invited speakers.

Sadly the attendee numbers don't add up as much this year. We are just about 50 people and far away to fill two rooms for running with two tracks. The contract with the hotel allows to cancel 4 months in advance and we are have reduced to half of the space. We informed the speakers and attendees that we move all sessions in one room and reduce sessions to about 45 minutes each. The improvement for you is that you can now listen to all sessions. We still plan to record them and if you have to make a call or talk to someone in the foyer while a session, you can later watch it.

If you like to help the conference planner, please commit early for the conference and sign-up as early as you can. Don't wait for the last months as the conference size is reduced or enlarged months before the conference takes place. Such a conference is usually planned a year in advanced and adjusted about 4 to 6 months before to make sure we don't have too many empty seats.

FileMaker Magazin


Heute erschien die Ausgabe 3/2019 vom FileMaker Magazin im K&K Verlag. Die neue Ausgabe bringt 10 interessante Artikel von insgesamt neun Autoren. Schauen Sie mal rein!
  • Neue Funktionen in FileMaker Pro 18
    Ein Überblick
    Arnold Kegebein
  • Achtung, Grenzkontrolle!
    Neue Sicherheitsregeln für Plugins
    Christian Schmitz
  • WHILE you waited ...
    ... entstand eine neue Schleifenfunktion in FileMaker 18
    Dr. Volker Krambrich
  • Datenbankdesign im Alltag
    Feldtypen mit automatischer Werteeingabe Mario Vanella
  • Kleine Taste, große Wirkung
    Die vielen Talente der Option- bzw. Alt-Taste
    Klemens Kegebein
  • Software testen
    FileMaker Entwicklung professionalisieren
    Dr. Volker Krambrich
  • Dubletten zusammenführen
    Vereinigt euch! Teil 3 Klaus Kegebein
  • Auf Biegen und Brechen?
    Stressbewältigung im IT-Bereich Teil 2 Elvira Vega Lechermann
  • Willkommen zur FileMaker Konferenz 2019
    Im Jubiläumsjahr in die Hamburger Hafencity
    Jan Rüdiger
  • Gut verlinkt mit DynaPDF und MBS
    So gelingen Link-Sprünge in PDFs
    Stefanie Juchmes
Wir empfehlen allen deutschsprachigen FileMaker Entwicklern ein Abonnement. Mit dem Zugriff auf das Archiv stehen Ihnen über 160 Ausgaben zur Verfügung mit Beispielen zum Download. Gesammeltes Fachwissen aus 25 Jahren.

Einige Artikel von uns stehen auf der MBS Webseite hier zum Download zur Verfügung.

xDev 17.4


The July/August (17.4) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Numbers Please! Part 3 by Markus Winter
What is a number? And just how do you tell a program to detect a number?

TextField with Warning Sign by Markus Winter
For his Numberfield, Markus needed a new control with a warning sign.

Husband + Wife + Xojo by Richard and Trisha Duke
Richard looks back on 30 years in the computer business.

Creating Barcodes in Xojo by Stefanie Juchmes
With the MBS barcode plugin, you can create over 80 types of barcodes.

Curves Ahead by Marc Zeedar
Predicting the future is tough. All we really know is that everything will change.

Your First Web App by Paul Budd
Never created a Web App? Now is your chance!

PLUS: Computed properties, WWDC, Xojo Podcast, Client Communication, WeakRefs, Best of the Web, and more!

Archives

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