Xojo Conferences
MBSOct2019CologneDE
Our Blog, Filemaker only, Xojo only, Archive (older)

Follow us on Twitter, Xing, LinkedIn or Facebook.

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.

Older blog entries:

2019-07-02 FileMaker Magazin
2019-07-01 xDev 17.4
2019-06-30 Debugging problems on FileMaker Cloud for AWS
2019-06-29 FileMaker 18 - Exklusives Launch Event
2019-06-28 MBS Xojo Plugins, version 19.3pr4
2019-06-27 MBS FileMaker Plugins Mailinglist
2019-06-27 MBS Xojo Plugins Mailinglist
2019-06-27 MBS FileMaker Plugin, version 9.3pr4
2019-06-26 MBS Vendor Session at FileMaker Developer Conference 2019
2019-06-25 Four months till European MBS Xojo Conference 2019 in Cologne
2019-06-24 DynaPDF 4 for PHP
2019-06-22 JSON Sort
2019-06-22 Xojo Stammtisch in Wien
2019-06-21 Introducing FM.CompareTables function
2019-06-21 MBS Xojo Plugins, version 19.3pr3
2019-06-21 MBS FileMaker Plugin, version 9.3pr3
2019-06-21 Frühbucherangebot endet für FileMaker Konferenz 2019 in Hamburg
2019-06-19 MBS SQLite Extension in version 1.5
2019-06-18 Search for variables in data viewer
2019-06-18 MBS Plugins @ XDC 2019

Archives

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