As you may know, you can do SQL queries in FileMaker with MBS Plugin and than get result stored in memory to call other functions on that.
We got a few new functions for this: FM.SQL.Max, FM.SQL.Min, FM.SQL.Avg and FM.SQL.Sum
So you can do a query once and than let the plugin sum up the values or calculate an average on a subset of the result. You can specify column and first/last row to use.
# let FileMaker query data once
Set Variable [ $Records ; Value: MBS( "FM.SQL.Execute"; Get(FileName); "SELECT Price FROM Produkte") ]
# Now get sum, min, max and avg
Set Variable [ $sum ; Value: MBS( "FM.SQL.Sum"; $records; 0) ]
Set Variable [ $min ; Value: MBS( "FM.SQL.Min"; $records; 0) ]
Set Variable [ $max ; Value: MBS( "FM.SQL.Max"; $records; 0) ]
Set Variable [ $avg ; Value: MBS( "FM.SQL.Avg"; $records; 0) ]
Set Variable [ $text ; Value: MBS( "FM.SQL.Text"; $records; "" /* firstRow */; "" /* lastRow */; "" /* firstCol */; "" /* lastCol */; ", " /* rowSep */) ]
Set Variable [ $r ; Value: MBS( "FM.SQL.Release"; $records ) ]
Show Custom Dialog [ "Sum: " & $sum & ¶ & "Min: " & $min & ¶ & "Max: " & $max & ¶ & "Avg: " & $avg & ¶ & "text: " & $text ]
Coming soon for MBS Plugin 9.1.
For next version of MBS Filemaker Plugin, we added new DocumentPicker functions to our
FileDialog section. For iOS we didn't yet have a file dialog function and sometimes people like to pick a file via dialog. So we implemented
UIDocumentPickerViewController class from iOS to provide functions for FileMaker.
The document picker supports four modes. Each mode provides a slightly different approach to sharing files between apps:
- Import an external document. The user selects an external document. The document picker copies the document, leaving the original unchanged.
- Export a local document. The user selects an external destination. The document picker copies the document, leaving the original unchanged.
- Open an external document. The user selects an external document. The document picker provides access to the document, and the user can edit the document in place.
- Move a local document. The user selects an external destination. The document picker moves the document; however, the user can still access the document as an external document, and the user can edit the document in place.
In all cases the panel shows asynchronously, the user does something and you get a script triggered when work is done, so you can pick up the list of file paths.
Coming soon for version 9.1 or if you like to try early, please contact us.
The schedule is now available for the
Xojo Developer Conference. Check the session and speaker list for the conference and join us 1st to 3rd May 2019 in Miami, Florida. As you can see, there is now a MBS Plugin session listed, so you can learn what we have new this year. Let's see what new surprise we can bring to the conference.
The Marriott Biscayne Bay is located in the north side of Miami downtown and is a convenient location to reach most of Miami easily.
Registration is possible and current rate is $899 for the ticket.
Morgen findet der Stammtisch in Karlsruhe statt:
Die Organisatoren von der MKV GmbH laden herzlich zum monatlichen FileMaker Stammtisch in Karlsruhe ein. Das nächste Treffen findet am 29. Januar 2019 um 18:30 Uhr im Restaurant „Badisch Brauhaus“ statt.
Der feste Stammtisch-Termin ist jeweils am letzten Dienstag des Monats ab 18.30 Uhr. Die Veranstalter freuen sich auf informative und gemütliche Abende in großer Runde. Die Eckdaten für das erste Treffen des Jahres:
Aktueller Termin: 29. Januar 2019
Treffpunkt:
Badisch Brauhaus
Stephanienstrasse 38-40
76133 Karlsruhe
Anmeldung und Informationen bei MKV.
Man sieht sich!
We got a problem reported by am user about PDFKit RenderPage function (
PDFKit.GetPDFPageImage in FileMaker Plugin and
PDFPageMBS.Render in Xojo Plugin) in our plugin skipping some content in a PDF file. Precisely a server with MacOS failed to render a PDF completely as one of the images inside was missing.
The PDF itself seems to open fine in Preview.app on that Mac. But when you extract the JPEG, it fails to render
When you open that jpeg on the server in Apple's Preview.app, the app freezes. The stack trace looks like this:
+ 2669 CGImageProviderCopyImageBlockSetWithOptions (in CoreGraphics) + 137 [0x7fff367b16e0]
+ 2669 IIOImageProviderInfo::CopyImageBlockSetWithOptions(void*, CGImageProvider*, CGRect, CGSize, __CFDictionary const*) (in ImageIO) + 650 [0x7fff38ead344]
+ 2669 IIOImageProviderInfo::copyImageBlockSetWithOptions(CGImageProvider*, CGRect, CGSize, __CFDictionary const*) (in ImageIO) + 509 [0x7fff38ead5b1]
+ 2669 IIO_Reader::CopyImageBlockSetProc(void*, CGImageProvider*, CGRect, CGSize, __CFDictionary const*) (in ImageIO) + 101 [0x7fff38ead71d]
+ 2669 AppleJPEGReadPlugin::copyImageBlockSet(InfoRec*, CGImageProvider*, CGRect, CGSize, __CFDictionary const*) (in ImageIO) + 1708 [0x7fff38eae880]
+ 2669 AppleJPEGReadPlugin::createImageBlockSetWithHardwareDecode(InfoRec*, CGImageProvider*, CGSize, bool*) (in ImageIO) + 85 [0x7fff38f77397]
+ 2669 AppleJPEGReadPlugin::createImageBlockSetWithHardware_intel(InfoRec*, CGImageProvider*, __CFData const*, CGSize, bool*) (in ImageIO) + 343 [0x7fff38f16b1b]
+ 2669 AppleJPEGReadPlugin::createIOSurfaceWithHardware_intel(CGImageProvider*, __CFData const*, unsigned int, VPA_HWJPEGDecodeSession*, __IOSurface**) (in ImageIO) + 74 [0x7fff38f15d9a]
+ 2669 AppleJPEGReadPlugin::acquireSession() (in ImageIO) + 24 [0x7fff38f15816]
+ 2669 _pthread_mutex_firstfit_lock_slow (in libsystem_pthread.dylib) + 226 [0x7fff637944b7]
+ 2669 _pthread_mutex_firstfit_lock_wait (in libsystem_pthread.dylib) + 96 [0x7fff63796d6c]
+ 2669 __psynch_mutexwait (in libsystem_kernel.dylib) + 10 [0x7fff636dee76]
So JPEG rendering is done via Intel hardware in Mojave and the server in VMWare has no access to that hardware. But the same file in other places like Finder Icon preview works as that seems to use a different code path!?
Looks like the PDFKit code we use is different from the one Preview.app uses. With PDFKit drawing PDF into memory buffer to create image, it tries to do the hardware. That fails, but it doesn't wait endless, but returns quickly without rendering the JPEG image. Images not embedded in JPEG format render correctly.
Alternative way is to render would be via DynaPDF which brings its own code libraries.
PS: Also happens on a FileMaker Server on MacOS (Without VM) running without display. So if graphics card is deactivated, this seems to fail for PDFKit rendering, too. Reported to Apple with radar 47544376.
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 a few attendees already, we got a few session proposals from a few potential speakers and we even got the first student to apply for a free ticket. If you like to join the conference and get one of the first 20 tickets promotion, please sign up soon. If you like to speak, please send a proposal soon and please sign up for the conference soon. As of today we have people from six countries already signed up.
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 April is just 499 Euro plus VAT. For the first 20 people we offer tickets for just 399 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. If you like to hold a presentation, please contact us as soon as possible. Speaker receive discounted tickets.
More details on the
conference website.
We ported a bigger Xojo project to MacOS Mojave recently and in that process needed a good solution to update our alternating row colors for the list boxes. We used to have the usual code with "row mod 2 = 1" and picking a color for the every second row. But that is not perfect with a fixed color for switching between light and dark mode. And while the average user never switches the setting while using the application, the beta testers of course do that. So we needed a good solution for the project.
Xojo 2018r4 has the
AppearanceChanged event for Application class, which is very handy to switch colors. Or you check with
IsDarkMode function every time you draw something and decide the color. As
CellBackgroundPaint event in the
Listbox class is called for each cell, it can be called 100s of times just for redrawing the list once. So we like to optimize the handling and cache the colors.
In MBS Plugin we got last summer the dark mode additions for
NSColorMBS class. The NSColorMBS.alternatingContentBackgroundColors function returns an array with two NSColor objects with the current preferred background colors for lists. So we want to use this, but not call it for every event as building an array and color objects costs a little bit performance for each draw.
So here is some example code:
(more)
If you ever wondered how to lookup the hotel for the FileMaker DevCon 2019, you could use a self written FileMaker solution on your iPhone or iPad to do so.
With
MapView functions in
MBS FileMaker Plugin you can put a map on the FileMaker layout and show locations.
For next 9.1 plugin we'll add a few more functions for directions and showing routes. The map view will be embedded in the layout better, so it scrolls with other content on the same page.
What other features would you like to see?
Current 9.0 plugin can already render map images with 2D or 3D with
MapView.Snapshot function. When you have the map view on the layout, you can move to an address with
MapView.ShowAddress function and optionally put a pin there. Or just add pins for given coordinates with
MapView.AddPin function.
On the list for 9.1 are poly lines to show routes and get directions. If you have more ideas, please let us know. We'd like to polish the map functions a bit more to present them at DevCon in summer.
If you developer for iOS and need the 9.1 prerelease versions sooner, please contact us.
Xojo Inc. will recognizes developers for their Xojo applications at the upcoming
conference in Miami:
The Xojo Design Awards call for entries is officially open! The Xojo Design Awards foster creativity and encourage independent development by rewarding developers that produce quality products. Judging these awards gets more challenging every time, but the overwhelming response really illustrates how Xojo helps bring ideas to life.
The deadline for entry is March 20, 2019. The awards will be presented at XDC 2019, The Xojo Developer Conference, taking place May 1 - 3, 2019 in Miami, Florida. You do not need to be present to win.
The categories to be awarded (depending on participation) are likely to be:
- Best Overall
- Best iOS App
- Best Business App
- Best Consumer App
- Best Cross-Platform App
- Best Developer Tools
The criteria on which the software will be judged includes: creativity, ease of use, design, utility and best use of Xojo technologies. All software submitted to the Xojo Design Awards must be shipping at the time the software is entered (no beta software). Each winner will receive an engraved Xojo Design Award and the right to use the Xojo Design Award logo in marketing materials. For more information or to submit an entry, please visit xojo.com/designawards .
See you in Miami and good luck to win!
Nickenich, Germany - (Januar 22nd, 2019) -- MonkeyBread Software today is pleased to announce
MBS FileMaker Plugin 9.0 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, macOS, iOS and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application.
MBS FileMaker Plugin 9.0 has been updated and now includes over 5600 different functions, and the versatile plugin has gained more new functions:
The new
MapKit functions allow you to show a map control on the layout. We use Apple framework for the map view for Mac and iOS. You can add pin annotations to the maps and show an address. With snapshot function you render a picture of a given map area. Maps can show as standard, satellite, or hybrid, with the option to enable 3D flyover.
Our
CURL functions can download emails from IMAP mail boxes. The new
CURL.GetResultAsEMailList function parses the details returned from IMAP server to provide the list of emails with details in JSON. Each entry contains an URL to download the email, the unique identifier for the email, optional subject, sender and recipient addresses and the message id.
For
JSON we added new functions to create values, compare JSON objects and find values in arrays.
In our documentation we now link to blog articles related to the function. For our Mac users, you can enable links to documentation for MBS functions in the formatted calculations.
Nowadays most users on MacOS use the 64-bit FileMaker version. The 32-bit Mac version of MBS Plugin version is only available on request. We removed QTMovie, QTExport and
MovieView functions as they were 32-bit only.
This version includes an upgrade to
GraphicsMagick library with new and better functions. Now all platforms can use 16 bit color depth for each channel.
GMImage.NewFromContainer now returns better error messages. Try the new repage, extent, auto orient or resize functions.
SQLite is now built with API armor option to increase stability. We fixed bugs with
SQL connections to MySQL and Oracle. Improved default settings for connecting via ODBC to FileMaker.
We got new
path functions for short paths on Windows, more
ScriptWorkspace functions,
Applescript.DeterminePermissionToAutomateTarget to query user permissions for Apple Script usage,
Window.IsMaximized and
Window.IsMinimized.
Finally we upgraded CURL library to version 7.63.0, DynaPDF to 4.0.25.71, freetype to 2.9.1, GraphicsMagick to 1.3.31, iconv to 1.15, libarchive to 3.3.3, libexpat to 2.2.6, OpenSSL to 1.1.1a, png to 1.6.36, regex to 8.42, SQLAPI to 4.2.4 and SQLite to version 3.26.0.
See
release notes for a complete list of changes.
Nickenich, Germany - (Januar 22nd, 2019) -- MonkeyBread Software today is pleased to announce
MBS Xojo Plugins 19.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 2400 classes and 63000 documented features, and the versatile plugins have gained more new functions:
The rewritten
MapKit plugin now uses Apple's maps framework for the map views. It is 64-bit Mac only and includes showing maps, getting directions, and rendering snapshots.
Newer
archive classes allow to create or read various archive formats like zip, tar and handles several compression algorithms like gzip, bzip2 or compress. An example shows you how to zip a files/folders or how to expand an archive. Compared to the old zip file classes, the new classes better handle file permissions and support more archive types.
We upgraded
DynaPDFRasterizerMBS class to handle alpha channel better. You can now decide whether we render with alpha channel and provide you the rendered image as a picture with alpha channel. The updated class works with DirectDraw pictures on Windows.
We rewrote
FileListMBS class for MacOS to use newer APIs for higher performance on newer APFS and older HFS+. The new
ReadFileMBS and
WriteFileMBS functions allow you to quickly read or write a file, faster than BinaryStream or TextInputStream/TextOutputStream.
The documentation now links to blog articles related to the classes, modules or controls related.
If you use WebKit classes, the new ProgressChanged and TitleChanged events for
WKWebViewControlMBS control may be useful. With the new
NSURLCacheMBS class you can change cache behavior and use
NSCachedURLResponseMBS for cached responses.
Our
VLC classes got updated to better work with VLC 3.x libraries. This includes newer methods to get current picture from
VLCMediaPlayerMBS objects including CopyCGImage for getting
CGImageMBS and showing it in the window.
GraphicsMagick got a major upgrade in this release. New functions include auto orient, resize, and extent for images. Over 80 properties are now visible in the debugger.
The
SQL Plugin got improved for handling ODBC connections to FileMaker. Our SQL variant functions can now use folderitems to stream files for blob fields. SQLite is now built with API armor option to increase stability.
We got a new
XLCopyOptionsMBS class for copy options in Excel files.
JSON classes can now compare two objects and find items in JSON arrays.
CURL can now parse MLSD results for FTP file listings into
CURLSFileInfoMBS objects.
PNGReaderMBS and
PNGWriterMBS classes can now handle EXIF data blocks directly.
This release drops a lot of older classes, which are 32-bit Carbon only and can't really be used any more in Cocoa applications. Old carbon classes for ColorSync, View, Drag & Drop, Menu, Font, ATS and Navigation dialogs are gone. QuickDraw related picture support is gone and if you need a new plugin for Real Studio, please contact us.
Finally we updated CURL to version 7.63.0, DynaPDF to 4.0.25.72, freetype to 2.9.1, GraphicsMagick to 1.3.31, iconv to 1.15, libarchive to 3.3.3, libexpat to 2.2.6, OpenSSL to 1.1.1a, png to 1.6.36, regex to 8.42, SQLAPI to 4.2.4 and SQLite to version 3.26.0.
See
release notes for a complete list of changes.
22. Januar 2019 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 9.0, mit inzwischen über 5600 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:
Die neuen
MapKit Funktionen erlauben Ihnen eine Karte als Steuerelement auf ein Layout zu legen. Wir verwenden dafür das Apple Maps Framework für iOS und MacOS. Sie können Adressen anzeigen und Pins auf die Karte setzen. Mit der Snapshot Funktion rendern Sie Karten als Bilder. Karten können im Standard, Satellit oder Hybrid Modus angezeigt werden, alternative als 3D Überflug.
Unsere
CURL Funktionen können Emails von einem IMAP Emailserver laden. Die neue
CURL.GetResultAsEMailList Funktion parst die Antwort vom Email Server und gibt eine Liste der Emails als JSON zurück. Jeder Eintrag entält eine URL zum Laden der Email, die eindeutige Nummer der Email, optional den Betreff, Absender und Empfänger Adressen und die Message ID.
Für
JSON haben wir neue Funktionen zum Erzeugen von Werten, zum Vergleichen von JSON Objekten und um Werte in einem Array zu finden.
In der Dokumentation finden Sie bei den Funktionen Links zu relevanten Blog Artikeln. Für MacOS können Sie die Anzeige von MBS Plugin Funktionen als Links zur Dokumentation in den Voreinstellungen aktivieren.
Inzwischen verwenden die meisten Mac Anwender FileMaker in der 64-bit Version. Daher ist die 32-bit Mac Version des MBS Plugins nur noch auf Anfrage zu haben. Wir haben außerdem einige reine 32-bit Funktionen entfernt, u.a. QTMovie, QTExport und
MovieView Funktionen.
Diese Version hat eine neuere
GraphicsMagick Bibliothek mit neuen und verbesserten Funktionen. Auf allen Platformen können wir jetzt Bilder in 16-bit Farbtiefe pro Farbkanal verarbeiten.
GMImage.NewFromContainer gibt bessere Fehlermeldungen zurück. Probieren Sie die neuen Funktionen repage, extent, auto orient und resize.
Die SQLite Bibliothek bauen wir mit der API Armor Option für bessere Stabilität. Wir haben Fehler korrigiert für
SQL Verbindungen zu MySQL oder Oracle. Neue Voreinstellungen helfen für Verbindungen zu FileMaker über ODBC.
Wir haben neue Pfad Funktionen für Kurzpfade bei Windows, mehr
ScriptWorkspace Funktionen,
Applescript.DeterminePermissionToAutomateTarget um die Berechtigung für Apple Script zu überprüfen oder anzufragen und zwei neue Funktionen
Window.IsMaximized und
Window.IsMinimized für den Fensterstatus abzufragen.
Außerdem haben wir die CURL Bibliothek auf Version 7.63.0 aktualisiert, DynaPDF auf 4.0.25.71, freetype auf 2.9.1, GraphicsMagick auf 1.3.31, iconv auf 1.15, libarchive auf 3.3.3, libexpat auf 2.2.6, OpenSSL auf 1.1.1a, png auf 1.6.36, regex auf 8.42, SQLAPI auf 4.2.4 und SQLite auf Version 3.26.0.
Alle Änderungen in den
Release Notes.
If you are looking for an experienced Xojo trainer in Germany and surrounding countries, I'd like to remind you that Ulrich Bogun and Christian Schmitz (me) do offer personal and group training for Xojo.
Beginner's Training
Get a jump start into Xojo and let Ulrich show you the Xojo features. Next look at the programming basics like data types and objects. Learn about loops, structures and conditions and the OOP basics: Classes, inheritance and events.
From an idea to an app means to formalize your ideas and decide on algorithms to implement in a Xojo project. Learn about error handling, debugging and profiling to optimize and fix your application.
Finally learn about platform specific features and differences between platforms. Write code that works on MacOS and Windows as well as Linux. If possible, we can look into iOS vs. Android and check web projects in comparison to desktop projects.
Advanced Training
If you like to look deeper into Xojo with advanced features in detail, how about a session where we look into dictionaries, delegates, variants? We can work with exceptions and advanced usage of the debugger.
Databases are the core of most applications, so let's connect to several types of databases. Learn how to handle errors, use prepared statements and learn how to easily handle different databases in one app.
Network communication is essential for every application, so let's use sockets. Whether we use lower level TCP/UDP sockets or higher level HTTPSockets, we can communicate between two applications and use various web services.
Let's use threads and helper apps to process data in the background without blocking the user interface. Learn what IPCSockets do for you and how to synchronize threads and write efficient queues.
Training days in Cologne
Group training is available with the
MBS Xojo Conference in Cologne:
Training Website. Two days are planned where 23rd October 2019 is dedicated for English speaking trainees and 26th October 2019 is scheduled for German speaking guests. Of course that is a suggestion so if we get a lot of people who speak English, we may do both days in English unless someone is German speaking only. And technically we could also swap the days, depending on the people signing up.
Personal Training
Personal training for you or your company can be done in your office, our office or in a hotel meeting room somewhere between. The topics for the trainings is different and depends on the trainees. Usually we have our topics list as a base, but can do first your favorites.
As Christian Schmitz is the main developer for the MBS Plugins, we can of course schedule topics related to plugin classes, too. This may include getting you a kick start on how to use some plugins or help with integration of features right into your project.
Ulrich Bogun and Christian Schmitz are available as trainer and can travel as needed. Day rate for Ulrich is about 600 to 800 Euro and for Christian about 800 to 1200 Euro. Pricing depends on number of attendees, number of days and travel & hosting arrangements.
There is another
PauseOnError conference:
Organized by the SmallCo team, there is an upcoming conference in Tulum (Mexico) for up to 120 FileMaker developers. Between 8th and 11th April 2019, you have the possibility to deep dive into FileMaker and X, where X = javascript, web services, big data, IOT & just about anything else you can imagine. Sounds like integration into other services, databases and devices will be a big topic here!
The next big airport is in Cancun. With direct flights from USA, Canada, Germany, Spain, Belgium, Argentina and many more, this should be easy reachable for most attendees. The hotel shuttle can pick you up from the airport.
I visited PauseOnError conference before in Berlin and Cleveland. Mexico as location has a big advantage and that is immigration. Not everyone can get the Visas for USA or Europe, so it may be easier to get to Tulum for some attendees. And for South American visitors, I expect this to be a cheaper alternative than
FileMaker DevCon in Orlando.
The last version of Real Studio was released over six years ago. We still build our plugins for support with Real Studio (and REALbasic), but don't put them on the public download site anymore.
A few customers still need to use Real Studio for various reasons, but 99% of the plugin users are now using Xojo.
If you need new plugins for Real Studio or REALbasic in the future, please email us to get the current link to download them. We'll keep you on a list, so we can inform you if the download link changes or anything to the plugin related to the use with Real Studio or REALbasic.
Eventually there will be the day where we can stop building them.
New in this prerelease of the 19.0 plugins:
- Updated to DynaPDF to version 4.0.25.71.
- Changed default SQL options for connecting to FileMaker via ODBC so it works out of the box.
- Changed DynaPDFMBS.Optimize to use in memory flag by default unless you change it.
- Added index parameter for IORegistryMBS.PerformanceStatistics function.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
New in this prerelease of version 9.0 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
We are signed up for the
2019 Xojo Developer Conference. See you 1st to 3rd May 2019 in Miami, Florida. Stefanie will join me on the trip and I will present about what is new in our MBS Plugins.
The Marriott Biscayne Bay is located in the north side of Miami downtown and is a convenient location to reach most of Miami easily.
Registration is possible and current rate is $899 for the ticket.
The
session list has been published. An impressive list with a lot of new speakers. Check your schedule and get a ticket soon, if you can find the time to come.
With Apple Maps support coming for
MBS Xojo and
FileMaker Plugin you can even get 3D flyover hybrid snapshots:
This example renders with MapType=HybridFlyover with a camera set to 40.7457172/-73.9941266 coordinate. The distance is set to 3000 meter, the pitch is set to 70 degree and heading is at 28 degree. Please try soon with next prerelease or next week with final release.
Here a few smileys:
😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛
😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷
Do you see all 56?
Well, in our plugins we have functions to encode text to HTML and it didn't work for those smileys. The reason is that those are outside the normal 16-bit unicode range. They need 2 characters to encode in UTF-16 format. Most functions in our plugins don't care for this details. Normally it doesn't matter as we pass through texts. But for encoding to HTML we need to process text in UTF-32 well. So plugin needs to decode 16bit character pairs to make sure they are encoded correctly.
After a couple of hours work on our plugin's text handling you can enjoy plugins doing it right!
See
Text.EncodeToHTML function in
MBS FileMaker Plugin and
EncodingToHTMLMBS function in
MBS Xojo Util Plugin.
If you see an error message in FileMaker Server installer like this, you may need to remove or disable the built-in web server software to be able to install FileMaker Server.
So in order to disable it, you can dig into how to disable services in MacOS. But we found a simpler way. Just move the com.apple.serverd.plist out of the /Library/LaunchDaemons folder and restart the Mac.
We'd prefer to change the ports from either MacOS Server's web server or the FileMaker Server's web server, but both is not supported. As you may guess a lot of code simply expects https at port 443, so they don't even bother to offer you a way to enter a port number.
New in this prerelease of version 9.0 of the MBS FileMaker Plugin:
- Added MapView functions to put map control on the layout for Mac and iOS.
- Added MapView.Snapshot function to render map images.
- Manually applied CURL fix: vauth/oauth2: Fix OAUTHBEARER token generation #3377 (for Mac)
- Fixed bug with inline email text decoding and an extra space character sometimes.
- Updated to DynaPDF to version 4.0.25.69.
- Changed Printer.Print to prefer selecting exact match over beginning of text.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
New in this prerelease of the 19.0 plugins:
- Changed ICDeviceBrowserMBS destructor to call stop for you automatically.
- Added nil check of saveRequest parameter for CNContactStoreMBS.executeSaveRequest function.
- Manually applied CURL fix: vauth/oauth2: Fix OAUTHBEARER token generation #3377 (for Mac)
- Fixed bug with inline email text decoding and an extra space character sometimes.
- Updated to DynaPDF to version 4.0.25.69.
- Fixed bug in FileListMBS, introduced in pr6.
- Removed clock_gettime symbol for GraphicsMagick as that is not available before MacOS 10.11, bug introduced in pr4.
- Fixed bug in NewCFObjectMBSFromXML introduced in earlier pr.
- Added more clases for MapKit, so the framework is now completely covered in the plugin.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
Last year there was a little change in the CURL library for handling email downloads via IMAP. We used to download the list of email, get the index in the email box and download the email by passing the index with UID parameter in the URL. The first email in the mailbox is 1. If you delete email with ID 1, than the second email moves down to become the new first email.
Now since CURL version 7.62.0 from October, the default fetch is using the IMAP UID command. That means the IMAP server gives every email in the mailbox an unique ID which counts up for every new email coming in. The UID does not change if emails are moved or deleted, so we can address emails on the server much better. Now the new parameter is named UID and the old UID parameter is renamed MAILINDEX.
As you may guess, the old and new UID are not the name values, so existing applications with newer plugin fail to load emails. You can fix your script by changing UID to MAILINDEX.
MBS FileMaker Plugin in version 9.0 for FileMaker and
MBS Xojo CURL Plugin version 19.0 for Xojo have a mitigation to switch to MAILINDEX if the query via UID failed.
For newer projects we recommend to do the lookup of the emails in the mailbox with UID FETCH and get the emails with unique IDs. Next we recommend to use BODY.PEEK instead of just BODY to avoid emails being marked as read automatically. When switching to BODY.PEEK you can remove workarounds which removed the seen flag. And you can include options like INTERNALDATE for the date of the email and/or RFC822.SIZE for the email size:
UID FETCH 1:* (FLAGS INTERNALDATE RFC822.SIZE BODY.PEEK[HEADER.FIELDS (Message-Id DATE FROM SUBJECT TO SENDER REPLY-TO CC BCC)])
As you see we include a few headers fields in this sample query.
The result looks like this:
* 1 FETCH (UID 103 FLAGS (\Seen $junk) INTERNALDATE "06-Apr-2018 19:42:11 +0200" RFC822.SIZE 2091 BODY[HEADER.FIELDS (MESSAGE-ID DATE FROM SUBJECT TO SENDER REPLY-TO CC BCC)] {214}
From: Christian Schmitz
Subject: Hello World
Message-Id: <6F3B718F-8427-4EFB-B291-106A8ABFC1AA@monkeybreadsoftware.de>
Date: Fri, 6 Apr 2018 19:42:05 +0200
To: test@macsw.de
)
Now you can parse that easily. But for our FileMaker plugin we made a new function CURL.GetResultAsEMailList to parse the list and return as JSON. The JSON looks like this:
[{
"Index": 1,
"UID": 103,
"Size": 2091,
"InternalDate": "06-Apr-2018 19:42:11 +0200",
"URL": "imap://imap.macsw.de/INBOX;UID=103",
"Flags": ["Seen"],
"Subject": "Hello World",
"Message-Id": "<6F3B718F-8427-4EFB-B291-106A8ABFC1AA@monkeybreadsoftware.de>",
"Addresses": [{
"Type": "from",
"Email": "testing@monkeybreadsoftware.de",
"Name": "Christian Schmitz"
}, {
"Type": "to",
"Email": "test@macsw.de",
"Name": ""
}],
"Date": "06.04.2018 09:42:05"
}]
This JSON contains all the parsed values. We convert the date to the timestamp for FileMaker into local time zone. The subject lines and names are decoded if needed. For each email we include the URL to the email for easier download. Please try the new functions for UID fetch and let us know how you like them.
After weeks of work, the new
MapKit plugin for MacOS is done. We have all the features included and got a few example projects for you. One example shows the MapKit control, one to search for local items and one to get directions.
The classes include support for
- Showing map with standard, hybrid or satellite.
- Adding annotations like pins or lines
- Adding overlays like colored areas.
- Using customized renderes for overlays
- Get directions for routes
- Calculate expected time of arrival.
- Format distances as localized text
- Do local search query for finding items
- Show suggestions for auto complete for local search
- Control camera for fly over
- Render snapshots of maps
- Show user location
(more)
Did you sign up for
FileMaker Conference dotfmp.berlin 2019?
This conference is organized by
Egbert Friedrich and takes place from 6th to 8th June 2019 in Berlin, Germany.
As the conference is in english, this is your chance to meet people from around the world at a conference in Europe. And for a lot of people it's easier to get to Berlin than to cross the atlantic and deal with US immigration officers.
Who
dotfmp is an effort of various leading European FileMaker Developers. It is meant to bring all kinds of higher level developers together to share knowledge, educate and challenge each other.
When
dotfmp starts at the 5th June 2019 in the later afternoon with a relaxed "Beer and Sausages" in one of the most famous Berlin Beergarden. The session days itself last from 6th until 8th June with various socializing events in the evenings. Additionally we offer support on 10th June to see more from Berlin and its surroundings.
What
dotfmp is a 3 Day-Unconference, Meetup, Hangout or Barcamp. It is an informal and self-organized effort to meet on a personal base.
Where
dotfmp takes place in one of the most famous spots in Berlin. The GLS Campus is located in a vibrant area with a very short walking distance to all the famous restaurants.
Why
We feel there are far too few possibilities to talk to, learn from, and hangout with fellow developers in a relaxed and informal environment. And we'd like to share work and get feedback from people chewing on similar challenges.
If you like to join the conference and present something, please
register soon.
The January/February (17.1) issue of
xDev Magazine is now available. Here's a quick preview of what's inside:
Xojo UK Meetup by Paula Roberts (and Paul Budd)
Recently a small group of Xojo developers decided to get together for an informal meetup to show off their apps and discuss problems and solutions.
iOS Success by Jérémie Leroy (and Marc Zeedar)
If you're having trouble getting your iOS app noticed, Jérémie has some great tips for you.
Beyond JSON by Tim Dietrich
Using JSON to retrieve data from a web app is great, but what if you want something else, such as a graphic? Tim creates a web app that serves barcodes.
Vague Errors by Marc Zeedar
Marc discusses the problems of unhelpful error messages from both the developer and user perspectives.
Building a data-list Controller by JC Cruz
Jose shows how to build a data-list controller.
PLUS: Threads, Hour of Code, Best of the Web, Xojo Dojo, Xojo 2018r4, and more!
Im Januar gibt es mindestens noch die folgenden
FileMaker Stammtische:
Herzliche Einladung an alle FileMaker Entwickler bei einem Stammtisch vorbeizuschauen!
Wir versuchen in Karlsruhe und Bonn vorbei zu schauen.
The next
European Xojo conference organized by Monkeybread Software is going to be a significant upgrade to previous conferences from us. An excellent hotel, a ballroom for us, two tracks and space for even more attendees.
We have booked a full ball room in Cologne which can be split into two rooms. The ball room can fit over 150 people so we have plenty of space, even if we split it. We ordered of course two projectors and microphones as well as speakers. The advantage of taking the whole ball room is that we can be there on our own. No other group will fight with us for the coffee breaks. In Munich were one of three groups and the break area was too small. So we had to schedule to take break when others couldn’t have a break. This is different for Cologne, where we will have our own space in front of the ballroom. In the foyer we have all day coffee, a tea station, snacks for the breaks as well as a refrigerator with cold soft drinks.
We hope to find speakers to fill the schedule and have two tracks in parallel. The big sessions like the keynotes will be in the full ballroom. But for smaller sessions we split and than we could for example get a database and a mobile track.
For the dinner on Thursday we got an excellent party location. The
Höhnerstall is a two story event location with a fantastic view to the city center. We rented the place for our group, so we can enjoy ourselves. Buffet and an open bar will as well as the brewery tour will make a nice conference night. We expect a couple of you to bring partners and maybe even kids there, so please let us know how many you have for that night.
(more)
New in this prerelease of version 9.0 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
New in this prerelease of the 19.0 plugins:
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
First you need to add MBS FileMaker Plugin for iOS to your FileMaker iOS SDK app project as you can watch in following video on our website:
FileMaker iOS SDK and MBS Plugin
Next you need to copy MBSInit.framework to the Frameworks folder. In Xcode in the project settings, please add MBSInit.framework there to the list of libraries to link to. See the following screenshot with our two MBS files in the files list on the left and the MBSInit framework in the link list in the middle:
This makes sure the MBSInit framework is loaded at start of the application and initializes the notification system. Once your app runs, you'll see the following dialog asking for permissions:
If you click allow,
UNNotification.AuthorizationGranted function will return 1 and
UNNotification.AuthorizationError will be empty. If you like, query device token with
UNNotification.RemoteNotificationsDeviceToken and than pass this token to the server for push notifications.
Please also check system settings for your application for whether notifications are allowed. Especially if you want more than just text, you may need to allow sound or badges:
Once you got the notification system initialized, you can show a local notification with a script. The following example script creates a new notification, sets title and body texts, a time interval and schedules the notification.
# Create a new notification
Set Variable [ $notification ; Value: MBS("
UNNotification.New") ]
# Set Title and Body
Set Variable [ $r ; Value: MBS("
UNNotification.SetTitle"; $notification; "Hello") ]
Set Variable [ $r ; Value: MBS("
UNNotification.SetBody"; $notification; "Greetings from FileMaker") ]
# Set a time interval trigger
Set Variable [ $r ; Value: MBS("
UNNotification.SetTimeIntervalTrigger"; $notification; 60; 0) ]
# and schedule
Set Variable [ $r ; Value: MBS("
UNNotification.Schedule"; $notification; "test") ]
The notification shows while application is in background:
If you have questions, please do not hesitate to contact us.
For a client, we add a new
ReplaceLineEndingsMBS function to the MBS Xojo Plugin.
It addresses two problems the built-in Xojo function has:
- Performance: We can do the same job approximately 30% faster as far as we measured.
- Yielding: If you process 100 MB blocks, a yield every few MB may help to keep the application responsive, especially if you use the function on a thread.
Our new function handles all combinations of CR, LF, CRLF and LFCR correctly and replaces them with the given replacement text. The operation is done in binary mode for 8 bit encodings or no text encoding. For UTF16/32, we first convert to UTF-8.
The new function will be available soon in the next prerelease. See also other functions like ReplaceNonPrintableCharactersMBS.
Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt: FileMaker Magazin Artikel.
- FMM 201805: Alles in Code, Erzeugen von Barcodes in FileMaker
- FMM 201805: Import von XML und JSON, Die Importierautomatik im MBS-Plugin
- FMM 201803: SQL in FileMaker, Neue Möglichkeiten mit dem MBS - Plugin
- FMM 201802: Universelle Suche, Mein Mitbringsel für die FileMaker Konferenz in Kanada
- FMM 201801: PDF/A und ZUGFeRD, Rechnungen mit eingebettetem XML
- FMM 201706: PDFs drucken, Automatisch via MBS-Plugin
- FMM 201705: Automatisiertes Drucken, Mehr Möglichkeiten mit dem MBS-Plugin
- FMM 201704: Audit per MBS-Plugin, Wie FileMaker Änderungen mitschreiben kann
- FMM 201703: XML-Funktionen, Nützliches zu XML im MBS-Plugin
- FMM 201702: Hole (Cloud), Was meldet die Cloud eigentlich bei „Hole“-Funktionen?
- FMM 201701: Plugin-Installation, Wie man FileMaker Plugins richtig installiert
- FMM 201606: Word-Dateien ausfüllen, Ein Tipp zum MBS-Plugin
- FMM 201605: Das MBS-Kontextmenü, Script-Schritte schneller aktivieren/deaktivieren
- FMM 201604: Webservices in FileMaker einbinden, Verwendung von CURL-Befehlen im „MBS-Plugin“
- FMM 201603: 4000 Funktionen in zehn Jahren, Ein kleiner Rückblick auf das MBS-Plugin
- FMM 201601: iOS App SDK, Eigene iOS-Apps auf Basis von FileMaker
- FMM 201506: Authentizität durch Signaturprüfung, Daten übertragen und Veränderungen bemerken
- FMM 201505: Wünsche werden wahr, Neues im „MBS-Plugin“ bei der FMK 2015
- FMM 201504: Datensätze effizient kopieren, Mit etwas SQL und dem MBS-Plugin
- FMM 201503: Neue Datensätze ohne Layoutwechsel, Mit Hilfe von SQL-Befehlen und dem MBS-Plugin
- FMM 201501: QuickList, Schnelle Listen für FileMaker
- FMM 201405: E-Mail-Versand, Mehr Möglichkeiten mit dem MBS Plugin
- FMM 201405: Vorbereiten von PDFs für den Versand, Verkleinern großer Dateien
- FMM 201402: Variablen, Globalisierte Lösungen per Plugin
- FMM 201401: Kalendertermine und Erinnerungen, Wie man Ereignisse aus FileMaker anlegt
- FMM 201306: Zip-Archive auslesen, Bilder aus OpenOffice-Dokumenten extrahieren
- FMM 201303: Script-Träger übers Netzwerk, Scripts triggern übers Netzwerk
- FMM 201303: Syntax Coloring, Berechnungen und Scripts bekennen Farbe
- FMM 201203: Arbeiten mit Dateidialogen, Komfortablere Dateiexporte per MBS Plugin
- FMM 201105: Bilder skalieren mit dem MBS FileMaker Plugin, So bleibt Ihre Datenbank schlank
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.
New in this prerelease of version 9.0 of the MBS FileMaker Plugin:
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
New in this prerelease of the 19.0 plugins:
- Added SortByFileName method to FileListMBS class.
- Rewrote MapKit classes to use only Apple Map and get more features from it.
- Fixed crash in SKProductsRequestMBS destructor.
- Added XLCopyOptionsMBS class to specify copy options for MBS Xojo XL Plugin.
- Removed helpbook functions: RegisterHelpBookMBS, LookupHelpBookAnchorMBS, GotoHelpBookPageMBS, GotoMainHelpBookTOCMBS and SearchHelpBookMBS.
- Removed folderitem.GetFileAttributeMBS function.
- Removed descriptorWithFSRef and FSRefValue from NSAppleEventDescriptorMBS in favor of FileURL methods.
- Removed Application.IsBundleMBS function.
- Upgraded UTTypeMBS.UTI to newer API.
- Rewrote FileListMBS for Mac to get better speed on APFS.
- Added CFDateMBS convert and constructor methods.
- Changed conversion from CFDate to Xojo date and back to use current time zone instead of always UTC.
- Changed 80 properties in GMImageMBS class to be debugger visible.
- Added JasperLibVersion, TIFFLibVersion and ZLibVersion to GMImageMBS class.
- Added autoOrient, extent, formatExpression, Quiet, repage and resize methods to GMImageMBS class.
- Added ReadEXIF for PNGReaderMBS class.
- Added SetEXIF for PNGWriterMBS class.
- Added fillArea and limitPixels flags for GMGeometryMBS class.
- Added addBoundaryTimeObserverForTime and addLoopTimeObserver methods to AVPlayerMBS class.
- Added AVVideoCodecTypeAppleProRes422, AVVideoCodecTypeAppleProRes4444, AVVideoCodecTypeH264, AVVideoCodecTypeHEVC, and AVVideoCodecTypeJPEG functions to AVFoundationMBS class.
- Updated GraphicsMagick library to version 1.3.31.
- Updated iconv to version 1.15.
- Updated regex library to version 8.42.
- Updated png library to version 1.6.36.
- Updated freetype to version 2.9.1.
- Updated SQLAPI to version 4.2.4.
- Fixed a bug in Oracle initialization for Linux for SQL Plugin.
- Changed Linux compile to include function names for stack traces.
Download:
monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.
We got a new options in preferences for the MBS Plugin to make all function names clickable links within calculations:
Coming soon in next prerelease.
The older MapKit replacement framework we used to use is no longer supported and Google Maps now requires a developer key. But before changing the old framework, we decided to go with Apple Maps only.
So for next plugin version, we'll add more classes for MapKit.