FileMaker Cloud 1.17.0 now available

FileMaker Cloud 17We just got a notice that the new FileMaker 17 Server software for the cloud is released, so you can update your servers after you updated all clients to FileMaker Pro Advanced 17:

FileMaker, Inc. has released FileMaker Cloud 1.17.0. This release is available in the US, Canada, Europe, Japan, and Australia.

In addition, the Bring Your Own License (BYOL) option to purchase FileMaker Cloud through FileMaker, Inc. resumes availability today.

Some highlights of FileMaker Cloud 1.17.0 include:
Support for the features in the FileMaker 17 Platform.
The 90-day trial SSL certificate included with FileMaker Cloud can now be renewed up to 60 days prior to expiration.
The FileMaker Data API is no longer a trial version. The improved REST API includes support for FileMaker scripts and the ability to upload files to container fields.

NOTE: Any previously released software patches must be applied before updating to FileMaker Cloud 1.17.0. Only FileMaker 17 clients are compatible with FileMaker Cloud 1.17.0.

To download this software upgrade, visit the FileMaker Cloud Admin Console.


For more details, please check Release Notes.
MBS FileMaker Plugin 8.2 should work well on the new FileMaker Cloud software.

SSH tunnel in Xojo

As you may know, you can use SSH command line to start a tunnel from your computer through the SSH connection to a server on the other side. For one app, we use the following tunnel for MySQL:

e.g.
/usr/bin/ssh -L localhost:3307:localhost:3306 -N xxxx@1.2.3.4

We my not do the same in Xojo, but we can tunnel ourselves a connection with the new SSH2SessionMBS.OpenDirectTCPIPChannel function in the upcoming 18.3 plugins. This function opens a tunnel, so you can send data. Your data first goes through SSH connection and than through a TCP/IP connection to the server on the other side. Here is an example:
//* Open tunnel */ dim channel as SSH2ChannelMBS = session.OpenDirectTCPIPChannel("monkeybreadsoftware.de", 80) if channel = nil then print "Unable to open a channel" Return 4 end if // don't block channel.SetBlocking false app.DoEvents 10 // send http request through server to mbs website dim request as string request = "GET /cgi-bin/ip.cgi HTTP/1.1"+_ EndOfLine.windows+_ "Host: monkeybreadsoftware.de"+_ EndOfLine.windows+_ EndOfLine.windows app.DoEvents 10 call channel.Write request // now see if we get the IP of server returned do app.DoEvents 10 dim s as string = channel.Read(10000) if channel.LastError = session.kErrorEagain then // no answer yet Continue elseif s <> "" then // got answer print s else // no more data exit end if loop channel.Close channel = nil
If you'd use a local server socket to listen for incoming connections, you could have your socket feed data through the tunnel and do the same as the command line. But please be aware that we will use the command line tool in future as it's much easier than coding it all ourselves and without any threading trouble.

If you like to test, you can contact us for a preview of the new Network plugin.

Search lists in FileMaker user interface

Did you try the search feature in MBS FileMaker Plugin 8.2?
When a list has focus, you can press Command-F and search inside the list for text:

Search for layouts

For the upcoming version, we improve the feature and allow you to use Command-G to jump to the next occurrence.

Why you should try Xojo

Yesterday I was asked what is Xojo and why should you use it. So if you don't know what Xojo is or why you should use it, maybe here a few points:
  • Xojo is easy to learn, especially much easier than C++ or Java.
  • Xojo comes with a learning curriculum, several manuals and webinars to watch.
  • Xojo comes with a cross platform GUI framework, so no need to learn Cocoa, Win32 and GTK+ and no need to license QT or similar frameworks for C++.
  • Xojo Apps are free to distribute, as you only pay license fee once for your Xojo license.
  • Xojo comes with a graphical interface designer, so anyone can layout a window or webpage.
  • Xojo builds desktop apps for Mac, Windows and Linux from one project.
  • Xojo builds web apps to run on web servers and they offer cloud hosting.
  • Xojo can build apps to run on Raspberry Pi and other cheap computers.
  • Xojo can build mobile apps for iOS and soon Android.
  • Xojo comes with a debugger, which allows to inspect variables, step through code and monitor multiple threads.
  • Xojo can share code between projects, so you can use same classes in web, desktop and mobile projects.
  • Xojo comes with a community of friendly developers which help newbies.
  • Xojo provides localized resources in English, German, French, Spanish, Italian, Portugueses, Chinese and Japanese.
  • Xojo can connect to various databases.
    Choose between six built in database interfaces or 14 ones via MBS SQL Plugin.
  • Xojo runs a big conference in USA every year and we run a European conference in Germany.
  • Xojo is a company, where you can actually meat engineers and CEO and discuss Xojo topics in person.
Every Developer has to decide which tools to put in his toolbox and use in various projects. And Xojo is an excellent tool as it can build so many different things in short time. Try it today!

SQLite turned 18

SQLite just turned 18 years old.

The first check-in of SQLite code occurred 18 years ago.
see sqlite.org/src/timeline?c=2000-05-29

Version 1 just had a few commands. Open database, close database, execute a statement. Code for recordsets didn't exist at that time and came later.

Congratulations to Richard Hipp and his team!

Personalized PDFs for WebDirect on FileMaker Server

For a client we made an example file to show how to personalize PDFs just in time. This runs on a FileMaker Server and is accessed via WebDirect. The admin can upload PDF files and put them in container fields:

Personalized PDFs

The clients can browse through PDF files and only see personalized PDFs files which get their name printed on the PDF.

Personalized PDFs

We personalize the PDFs using the DynaPDF functions to load the existing PDF, add more pages from other PDF files, add page numbers, write the client name on each page and save the new PDF in a global field. As global fields are per session on a server, each user has their own copy in the field, even two users come to the same PDF record.

We use a few triggers to do the work. The on record load trigger will process the PDF and put the personalized PDF into the container accessible to the user. They will never see or download the original PDF, but only their own copy.

The whole processing runs on the FileMaker Server and there is no noticeable delay for the user. DynaPDF is quick enough to handle even huge PDFs in a fraction of a second, so the transfer to the browser is the usual bottleneck.

If you like to try, email us for a copy.

XDC2018 Videos

Have you seen them all?
Here the title pictures of all the videos:

Video Preview

All XDC sessions are available for attendees of the conference for free on the Xojo website.
Or for purchase of the video pack for just $399 USD in the Xojo Store.

Free videos: "Superhero SQLite" XDC 2018 Session | Paul Lefebvre and XDC 2018 Recap

FileMaker 17 Launch Event bei der Denkform am 29. Mai

Am 29. Mai 2018 treffen sich interessierte FileMaker Entwickler bei der Denkform in Hofheim (Taunus). Noch wenige Plätze sind frei.

Michael Valentin von FileMaker Deutschland kommt vorbei und präsentiert Filemaker 17 und steht dann für Fragen bereit.

Anschließend zeigt Christian Schmitz gerne ein paar Neuerungen im MBS Plugin 8.x.

Agenda:
18:00 Uhr Einlass und Begrüßung bei der denkform® GmbH
18:30 Uhr - 19:45 Uhr Michael Valentin: FileMaker Produktneuheiten und F&A
19:45 Uhr - 20:00 Uhr Pause
20:00 Uhr - 20:45 Uhr Christian Schmitz: MBS FileMaker Plugin Neuerungen; F&A
ab ca. 21:00 Uhr Stammtisch im Bella Bari.

Anmeldung auf der Denkform Eventseite. Zeitlich vermutlich 18 bis 21 Uhr. Eventuell mit optionalem Abendessen.

CubeSQL support for MBS Xojo SQL Plugin

Today we got CubeSQL support added to MBS Xojo SQL Plugin with a new internal cubeSQL client library.

So you can use our InternalCubeSQLLibraryMBS module to activate it with the Use command. This works the same way as our InternalSQLiteLibraryMBS module for SQLite and InternalPostgreSQLLibraryMBS for PostgreSQL. Once called, you don't need the cubesql dll file anymore, but use the one built into the plugin.

As usual you can use CubeSQL with our own SQLConnectionMBS interface or with SQLDatabaseMBS interface with the Xojo database interface.

// use internal CubeSQL library call InternalCubeSQLLibraryMBS.Use dim db as new SQLDatabaseMBS db.Option("APPNAME") = "Xojo Test" db.Option("ConnectionTimeout") = "5" // 5 seconds timeout? db.Option("ConnectionEncryption") = "AES128" // or "AES192" or "AES256" db.DatabaseName = "cubesql:localhost@mydatabase.sqlite" db.UserName = "admin" db.Password = "admin" if db.Connect then dim r as RecordSet = db.SQLSelect("select sqlite_version()") if r = nil or r.eof then MsgBox "Failed to query version." else MsgBox "Version: "+r.IdxField(1).StringValue end if end if
Betatesters are welcome and we include that in version 18.3 of our MBS Xojo SQL Plugin.

Colorize JSON or XML in FileMaker with line numbers

Do you display XML or JSON text somewhere for debugging? How about some color?



As you see, we just added a new Text.AddLineNumbers function for our MBS FileMaker Plugin which may be useful to add line numbers to existing text. And if you use it with JSON.Format and JSON.Colorize, you get nice formatted JSON with line numbers. Same for XML with XML.Colorize and XML.Format functions.

Coming in the next plugin version...

Gradients in GraphicsMagick

Did you know you can make Gradients with GraphicsMagick?

You can simply load an image with given size from a string specification with gradient as codec. It takes as parameters two color specifications, either as names or numeric values. With hex notation you can use #ffff00 for yellow as example.

e.g. "gradient:white-black" creates a gradient from white to black. Or "gradient:#20a0ff-#ffff00;" creates the gradients on the right with color effect from blue to yellow.

For FileMaker:

Set Variable [ $image ; Value: MBS( "GMImage.New"; "200x200"; "white" ) ]
Set Variable [ $r ; Value: MBS( "GMImage.Read"; $image; "gradient:#20a0ff-#ffff00;" ) ]
Set Field [ Contacts::Photo Container ; MBS( "GMImage.WriteToPNGContainer"; $image; "gradient.png") ]
Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $image) ]

For Xojo:

dim g as new GMGeometryMBS(200, 200)
dim i as new GMImageMBS(g, new GMColorMBS(&cFFFFFF))

i.read "gradient:#20a0ff-#ffff00;"

Backdrop = i.CopyPicture

Both snippets create a picture like the one on the right side.
The new GMImage.Read function is coming soon in next MBS FileMaker Plugin 8.3.

Overlay image for Image Picker

You may know our ImagePicker functions in the MBS FileMaker Plugin to take pictures on an iOS device.

Today we add new functions ImagePicker.SetOverlayImage and ImagePicker.ClearOverlay to create or remove an overlay image.

This overlay image can sit on top of the picker and tell instructions to the user like a frame to have the head of a person inside as guidance to better pictures.

The ImagePicker functions allow you to present a panel to the user to pick a picture from the device, e.g. from the photo roll. You can specify Camera, SavedPhotosAlbum or PhotoLibrary as source with ImagePicker.SetSourceType function. For the camera, you can use ImagePicker.SetCameraDevice to specify whether you like to get front or rear camera. ImagePicker.SetCameraFlashMode defines whether flash should be enabled by default or not. Use ImagePicker.SetCameraCaptureMode to switch between taking photos or videos.

ImagePicker.SetShowsCameraControls defines wether the standard camera controls are visible. If you hide those, you can put instructions there for your own use. As you get a script triggered for a new picture, you can automatically close the panel, when a picture is taken.

Coming soon for version 8.3 of the MBS FileMaker Plugin.

Privacy enhancements

In preparation for the Privacy and Electronic Communications Directive here in Europe, we made a few more adjustments already to comply better with regulation:
  • If you as client request to see our data about yourself, we can send you an email with records about you in customer database.
  • If you like to get an export all emails related to you from our email application for a client, we would export them in Apple Mail as PDF.
  • We got contracts for data handling with domainfactory (website hosted), Olark (website chat) and a few others.
  • We got our records of processing activities done.
  • Created an encrypted database to log emails we send, so we can tell people what emails we sent them.
  • Our privacy officer is me, Christian Schmitz.
  • The Olark chat is now only loading, when you click on it, so they can't track you if you don't use the chat.
So if everything works, those changes may benefit you. See also older posting about Privacy enhancements.
Anything we may have missed so far?

CURL function for OAuth

Today we got a new function for you to add OAuth authentication to your requests:

CURL.SetupOAuth for FileMaker and CURLSMBS.SetupOAuth for Xojo.

You call that method and pass in keys, secrets, parameters and we build the URL, authorization and set headers. You can pass in optionally headers, data entries, nonce and timestamp.

We use it for a project with magenta API using OAuth for the authorization for queries against the database from a FileMaker database. But you can use the same code for Twitter if needed.

Coming soon for next plugin versions.

Open Dialog upgraded

Today we upgraded our file dialog functions for Windows:



We now use IFileOpenDialog/IFileSaveDialog classes when available and only fall back to GetOpenFilename and GetSaveFilename for Windows XP.

So if you use OpenDialogMBS class in our Xojo Plugins or FileDialog.OpenFileDialog, FileDialog.SaveFileDialog or FileDialog.SelectFolderDialog in our FileMaker plugin, you may notice some improved dialogs the next time you update the plugins.

Coming soon for MBS Plugins.

Live chat for website

As you may know, we use a live chat on the website powered by olark.com.

On the bottom of each website, you see a chat button, which may open a chat window. This is very convenient, if you like to quickly ask a question to me about a function, an order or the next conference.

But there is a downside. The guys from Clark see all your browsing on our website and every time you load a page, they ping the olark server to add the chat button.

Starting today this changes. All MBS websites first show a chat button, with a more blue bubble (to see the difference) and only if you click on it, we start the chat system. If you have been in a chat before and you load a new page on the same domain, we start the chat automatically, so it can continue. In the next days, we will certainly fine tune this and try to optimize the chat to properly load everywhere. If you see a white bubble without being a chat, let me know.

Sign up for European FileMaker Conferences 2018

Please join 500+ FileMaker developers at the European developer conferences this year:
Conference Name Language Location Date Registration
FM Summit Dutch Gent, Belgium 15 - 17 October Website
FileMaker Italian DevCon Italian Bologna, Italy 17 - 19 October Website
FileMaker Konferenz German Malbun, Liechtenstein 17 - 20 October Website
FileMaker Devcon Scandinavia English Gothenburg, Sweden 22 - 23 October Website
FileMaker UK Developer Event English London, United Kingdom 23 - 24 October Website
FM Conférence French La Rochelle, France 24 - 26 October Website
FileMaker Spanish DevCon Spanish Madrid, Spain 26 - 27 October

Website


MBS FileMaker Plugin 8.2 - More than 5200 Functions In One Plugin

Nickenich, Germany - (May 22nd, 2018) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 8.2 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 8.2 has been updated and now includes over 5200 different functions, and the versatile plugin has gained more new functions:

This new version is optimized for FileMaker 17, but still supports older versions down to FileMaker 7. So whatever version you use from FileMaker, please use latest plugins to benefit from all our improvements and bug fixes.

For iOS we added new HealthKit functions to query the health data, like all the steps run from the last week. If you like to sell item via in-app-purchase, you can use our new StoreKit functions to query products and let the user buy something. We got a few new triggers for iOS to detect app loosing focus and you can now use RichText functions for iOS.

For MacOS you can now search most lists in the FileMaker user interface, e.g. the list of custom functions. Simply click in the list to set focus and press command-F to show find bar. Alternatively pick find in the contextual menu. Our Copy Script button can now copy HTML if you press alt key. For the lists for custom functions, layouts and fields, we now store the column widths for you.

Our FM.Loop function can help to implement for loops in FileMaker. For your tables, you can use FM.TableStatistics to check for statistics on how many container values use how many bytes.

For CURL functions, you can now query form data with CURL.GetFormData function. We added over 50 new properties to set for CURL to cover all the options in the CURL library. This includes new settings for asynchronous pipelining. For FileMaker 17 Server, we have a sample file to show queries for the Admin API.

If you use JSON or XML, you can now colorize it for showing to the user. JSON can now be converted to HTML to display to the user. We got a function XML.ToJSON to convert XML to JSON. And XML.ValidateFile can now validate an xml file against a schema file in a folder.

Our UUID functions can now create and convert UUIDs as numbers. This is new with FileMaker 17, but the MBS Plugin can provide same UUIDs for folder FileMaker versions with UUID.Number function. UUID.FromNumber and UUID.ToNumber allow to convert between numeric and hexadecimal representation.

We now offer a Site license for bigger companies with a lot of servers and clients. The clipboard functions on Mac can return styled text as HTML if needed and got improved for better UTF-16 handling.

Finally we updated CURL to version 7.60.0, DynaPDF to version 4.0.19.50, LibXL to version 3.8.2.6, SQLite to version 3.23.1 and SQLAPI to 4.2.2.

See release notes for a complete list of changes.

MonkeyBread Software Releases the MBS Xojo Plugins in version 18.2

Nickenich, Germany (May 22nd, 2018) -- Monkeybread Software releases version 18.2 of the MBS plug-in for Xojo.

The MBS plug-in comprises a collection of several plug-in parts which extend the Xojo (Real Studio) development environment with 2,300 classes featuring over 60,000 documented functions. Our plugins support all three platforms Mac OS X, Windows and Linux with all project types desktop, web and console including 64-bit and ARM targets. Some of the highlights on the 18.2 update:

This year we work on a Bluetooth plugin and in this release we start with 16 new classes for the CoreBluetooth.framework from Apple to connect to Bluetooth LE devices on your Mac.

For MacOS, our CanvasGesturesMBS class allows you to generically capture gestures on a canvas. This includes swipe, rotate and magnify gestures and now allows you to use standard Canvas to catch them instead of using a NSViewControlMBS control.

You can now query media libraries using our new MediaLibrary classes. This is 64-bit only, but allows e.g. to query playlists in iTunes.

For CURL, we added over 50 new properties and functions to query information. Our new CURLSSSLBackendMBS class allows to query what backends are available. The new AddMimePart and FinishMime methods and CURLSMimePartMBS class allows better MIME uploading handling. For the properties in CURLSMBS, we optimized storage and got memory usage reduced.

The new CWWiFiClientMBS class allows you to listen for Wifi related events. e.g. you can get notifications for new Wifi networks found.

For Windows, you can now enable spell checking for Xojo's textarea controls. The new WindowsGUIResourcesMBS class allows to query handle usage for GUI classes to detect running out of handles. With RemoteControlMBS.WinBringProcessToTop method you can bring a whole process to the front.

We got a new JSONMBS.ToHTML function to show JSON to user in a HTMLViewer, printing related functions for WebFrameViewMBS and printing related events for WebUIDelegateMBS class.

The NSURLConnectionFilterMBS class allows you on MacOS to filter connections for NSURLConnection queries. This allows you to set timeout for Xojo.Net.HTTPSocket requests.

Finally we updated CURL to version 7.60.0, DynaPDF to version 4.0.19.50, SQLite to version 3.23.1, SQLAPI to 4.2.2 and use the Xojo 2018r1 plugin SDK.

See release notes for a complete list of changes.

MBS FileMaker Plugin 8.2 - 5200 Funktionen in einem Plugin

22. Mai 2018 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 8.2, mit inzwischen über 5200 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Diese neue Version ist optimiert für FileMaker 17, unterstützt aber immer noch ältere Versionen bis hinunter zu FileMaker 7. Egal welche Version Sie von FileMaker verwenden, bitte nehmen Sie das neueste Plugin um von allen Fehlerkorrekturen und Verbesserungen zu profitieren.

Für iOS haben wir neue HealthKit Funktionen um Gesundheitsdaten abzufragen, wie zum Beispiel die Schritte der letzten Woche. Wenn Sie In-App Verkäufe anbieten möchten, so helfen Ihnen die neuen StoreKit Funktionen um die Produkte zu laden und dann eine Transaktion durch zu führen. Wir haben einige neue Trigger für iOS, um mit zu bekommen, wenn das Programm in den Hintergrund geht. Außerdem können Sie jetzt die RichText Funktionen bei iOS verwenden.

Für MacOS können Sie die meisten Listen in der FileMaker Oberfläche durchsuchen, zum Beispiel die Liste der eigenen Funktionen. Klicken Sie einfach auf die Liste um den Fokus zu setzen und drücken Sie Befehl-F um die Suchleiste einzublenden. Alternativ geht das auch über das Kontextmenü. Unser Skript Kopieren Button kann jetzt auch HTML kopieren, indem Sie die alt Taste gedrückt halten. Für die Liste der eigenen Funktionen, Layouts und Felder merkt sich das Plugin jetzt die Spaltenbreite in der Voreinstellungsdatei.

Die neue FM.Loop Funktion hilft Ihnen eine For Schleife in FileMaker zu realisieren. Sie können ihre Tabellen mit der neuen FM.TableStatistics Funktion analysieren und schauen wie viele Bytes die Medienfelder belegen.

Die CURL Funktionen erlauben Ihnen jetzt mit CURL.GetFormData die Formulardaten abzufragen. Dazu haben wir 50 neue Einstellungen eingebaut, damit Sie alle CURL Optionen verwenden können. Dies inkludiert neue Einstellungen für asynchrone Transfers mit Pipeline Option. Für FileMaker Server v17 haben wir ein neues Beispiel für die Admin API beigelegt.

Wenn Sie JSON oder XML verwenden, so können Sie diese einfärben vor dem Anzeigen in einem Textfeld. Konvertieren Sie JSON nach HTML und stellen Sie es dem Benutzer in einem Webviewer dar. Die Funktion XML.ToJSON konvertiert XML nach JSON und die Funktion XML.ValidateFile validiert einen XML Datei gegen ein XML Schema.

Unsere UUID Funktionen können jetzt auch UUIDs als Zahlen erstellen. Das ist neu in FileMaker 17, aber das MBS Plugin bietet diese Funktion auch für ältere FileMaker Versionen an. Die UUID.FromNumber und UUID.ToNumber Funktionen konvertieren UUIDs zwischen Zahlen und der üblichen formatierten Darstellung.

Wir bieten jetzt auch Site Lizenzen an für größere Firmen mit vielen Servern und Clients. Die Clipboard Funktionen am Mac können jetzt formatierten Text als HTML zurück geben und wurden für UTF-16 Kodierung verbessert.

Außerdem haben wir die CURL Bibliothek auf Version 7.60.0 aktualisiert, DynaPDF auf Version 4.0.19.50, LibXL auf Version 3.8.2.6, SQLite auf Version 3.23.1 und SQLAPI auf Version 4.2.2.

Alle Änderungen in den Release Notes.

Xojo 2018r1.1 available

Xojo Inc. released Xojo in version 2018r1.1 today.
This is a bugfix release with 19 bug fixes.

You can read the details here: Xojo 2018r1.1 Release notes

We recommend you to install the update soon. It fixes the breakpoint problem in 32-bit applications as well as a few other debugger issues we saw. Also fixed are crashes related to undo :-)

You can download the update here: Xojo Download

And now we look forward what comes for 2018r2.
We hope to learn about the Xojo 2018r2 release and a lookout for version 2018r3 in the Xojo keynote at the MBS Xojo Conference.

MBS FileMaker Plugin, version 8.2pr9

New in this prerelease of version 8.2 of the MBS FileMaker Plugin:
  • Fixed crash with Barcode.Detect with out of bounds access in image for bad QRCodes.
  • Changed Barcode.Detect to report the version number read when complaining about invalid version in QRCode.
  • Updated code signing script for FileMaker 17 runtimes.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo Plugins, version 18.2pr9

New in this prerelease of the 18.2 plugins:
  • Fixed crash with zxingQRCodeReaderMBS with out of bounds access in image for bad QRCodes.
  • Changed zxingQRCodeReaderMBS to report the version number read when complaining about invalid version in QRCode.
  • Fixed OpenDialogMBS for Cocoa target to handle better file extensions when several are separated by semicolon.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Code Signing FileMaker 17 Runtimes

This week I prepared a new code singing script for runtimes made with FileMaker 17.

A few things changed in the runtimes with a new Cloud framework, addition of the swift libraries and removal of OmniORB4 framework.

If you distribute your runtimes, you need to sign the app and the disk image for Gate Keeper. If your runtime is not signed, the Finder will ask the user when launching the application after download to delete the app! Or you may get a message that the database is not found. To avoid users get confused or not use the runtime, we sign the runtime.

How?

Signing the runtime got harder with new requirements in Mac OS X 10.9 and the upcoming Yosemite release. We not just need to sign the actual application, but also make sure we sign all the components. For the frameworks inside the runtime, we need to fix them to give them a few standard symlinks which are missing. Without those modifications, the bundle will not sign. If you like to save a few bytes, you can delete the icon files: FM12Dict.icns, FM12Label.icns and FM12Plug.icns inside the runtime. Those are not referenced and never used.

Developer Account

In order to sign, you need to sign up for a Mac Developer Account with Apple. This costs $99 USD per year. In the Certificates, Identifiers & Profiles section, please go in Mac Apps section and there in Certificates. Create a new Developer ID certificate, follow the instructions and download the certificate file. Double click it to add it to Keychain Manager and voila, it is installed and ready to use.

Sign Script

When you edit the script in a text editor (like BBEdit or TextWranger), you can change the path to the runtime, the name of the app and the name of the certificate. Please note that this script will not work without correct values. If your file name or path contain special character, escaping may be needed. For example a space character needs to be escaped with putting a backslash character just before the space character. You can learn how to escape a path by dragging and dropping the file or folder into the window of the Terminal application. The path is inserted and you can copy & paste it.

Now when everything is setup for your runtime in the script, you can drop the script on a Terminal window and press return key to start it. You'll see a couple of messages. This may include some complains from rm command trying to delete files which are not there. Nothing to worry about, the script just makes sure everything is correct. Further you see a couple of sign message for various parts of the application. The final line should show "signed bundle with Mach-O thin" and report success for signing your runtime app.

Verification

To check if app is okay for Gate Keeper you can first verify code signature using a call to codesign with a couple of v for more details and -d to display certificate:

codesign -d -vvvv /Users/cs/Desktop/Test/test.app

Next with spctl utility you can show if app is accepted. So we run spctl utility with verbose messages and -a parameter:

spctl -a -vv /Users/cs/Desktop/Test/test.app

Please change path to your runtimes before running above commands. The output should say "accepted" and now you are lucky and can archive and upload your runtime. Good luck!
Now you can build disk image and sign it.

New script will be included with MBS Plugin.

Two weeks left for early bird tickets for MBS Xojo Conference in Munich

Just about two weeks left for early bird tickets for our European MBS Xojo Conference 2018 in Munich. If you like to join, please sign up soon.

Already developers from nine countries are signed up including Xojo CEO Geoff Perlman and Xojo Evangelist Paul Lefebvre. The schedule is mostly done with only a few sessions still pending. Reserve your ticket and reserve your hotel room as soon as possible.

Our Hotel room contingent expires later this month, so please make sure you have a room booked.

The schedule:

Sep 4thDayoptional sight seeing tour
Sep 4thEveningoptional get-together with everyone arriving early
Sep 5thDayoptional Xojo training (English)
Sep 5thEveningoptional get-together with everyone arriving early
Sep 6th9:00 to 18:00First day of conference with keynotes
EveningDinner event in Augustiner Keller
Sep 7th9:00 to 18:00Second day of conference with more sessions
EveningOptional dinner together



We all look forward to presentations about Android, the new Web Framework other news in the Xojo keynote.

Registration is open. The late bird offer available till 7th June is just 599 Euro plus VAT if needed. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim 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.

Run FileMaker in different language on your Mac

Sometimes we need to make screenshots or present with FileMaker in other languages and you can have at least eleven languages:



(you know all the languages for the menubars?)

I made a couple of little AppleScript apps to launch FileMaker 14/15/16/17 in another language. So I can double click the French one and another instance of FileMaker Pro launches on my Mac with French localization. Please try and let me know what you think about it.

Download: LaunchFileMakerInDifferentLanguages.dmg
Now updated for FileMaker 17.

FileMaker 17 Event in der Schweiz und MBS Schulung

Zuerst einmal das FileMaker 17 Event für die Schweiz:

Medio-Ingeno AG veranstaltet zusammen mit FileMaker Inc. einen weiteren FMnext-Anlass am 12. Juni 2018, ab 16:30 Uhr im Jürg-Wille-Saal im Restaurant Löwen in Meilen.
Neuigkeiten zu FileMaker 17, artfremde Präsentationen von Andreas Reinhard sowie etwas für die Lachmuskeln von Rob Spence wird zu sehen und hören sein.
Für das leibliche Wohl ist wie gewohnt gesorgt.
Anmeldung und weitere Informationen unter fmnext.ch.
Wir freuen uns, Sie an diesem Anlass begrüssen zu dürfen.




Zudem wird eine MBS Plugin Schulung am gleichen Tag von ca. 9 bis 16 Uhr stattfinden.
Aufgrund einiger Anfragen, haben wir folgendes Programm zusammengestellt:
  • MBS Plugin Überblick
  • Scannen aus FileMaker
    • Mac & Windows
    • Duplex an/aus
    • Ordner anlegen
    • Bilder in Ordner ablegen
  • PDF Generierung aus Bildern
  • JSON Funktionen
  • FileMaker Server Admin API steuern
  • FileMaker iOS SDK Anwendung bauen
  • Fragen
Weitere Themen können je nach Wunsch der Teilnehmer noch dazu kommen.
Falls Sie Interesse haben dabei zu sein, dann melden Sie sich bitte bald bei uns. Anmeldung.
Kosten 150 Franken inkl. Mittagessen.

Three weeks till FileMaker Conference .fmp[x]Berlin 2018

Just three weeks left for FileMaker Conference .fmp[x]Berlin 2018?

Beside the local conferences in Europe coming in October, this is a pan-european conference for people from all over the world.

FileMaker developers from 16 countries attend:
🇦🇹, 🇧🇪, 🇨🇦, 🇨🇭, 🇩🇪, 🇩🇰, 🇪🇸, 🇫🇮, 🇫🇷, 🇬🇧, 🇮🇹, 🇱🇻, 🇳🇱, 🇳🇴, 🇸🇪 & 🇺🇸.

This is going to be the biggest international conference for FileMaker in Europe, I've ever seen!

I proposed three sessions:
MBS Sessions at FileMaker Conference .fmp[x]Berlin 2018

This conference is organized by Egbert Friedrich and takes place from 7th to 9th June 2018 in Berlin, Germany. If you like to join and you are not yet on the list, I think you may need a really good reason for him to let you get a ticket.

MBS FileMaker Plugin, version 8.2pr8

New in this prerelease of version 8.2 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 18.2pr8

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

FileMaker 17 Launch Event bei der Denkform

Am 29. Mai 2018 treffen sich interessierte FileMaker Entwickler bei der Denkform in Hofheim (Taunus).

Michael Valentin von FileMaker Deutschland kommt vorbei und präsentiert Filemaker 17 und steht dann für Fragen bereit.

Anschließend zeigt Christian Schmitz gerne ein paar Neuerungen im MBS Plugin 8.x.

Agenda:
18:00 Uhr Einlass und Begrüßung bei der denkform® GmbH
18:30 Uhr - 19:45 Uhr Michael Valentin: FileMaker Produktneuheiten und F&A
19:45 Uhr - 20:00 Uhr Pause
20:00 Uhr - 20:45 Uhr Christian Schmitz: MBS FileMaker Plugin Neuerungen; F&A
ab ca. 21:00 Uhr Get-to­ge­ther

Anmeldung auf der Denkform Eventseite. Zeitlich vermutlich 18 bis 21 Uhr. Eventuell mit optionalem Abendessen.

Xojo Stammtisch in Zürich

On my next visit to Zurich, I'd love to make another Xojo developer meeting:

Wer hat Interesse an einem Xojo Entwicklertreffen am 10. oder 11. Juni in Zürich?



Einfach gemütlich zusammen sitzen und über Xojo schnacken.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit Xojo Projekten. Einfach Computer mitbringen und was zeigen.

Bei Interesse bitte eintragen für Terminfindung: Umfrage

Wer Interesse hat an einem Termin mit mir für Softwareentwicklung, Schulungen, Entwicklungshilfe, Plugin Empfehlungen, assistierte Fehlersuche, Code-Review und IT-Beratung, der darf sich gerne melden für eine baldige Terminfindung.

BBEdit turns 25 years old

Do you know BBEdit?

It's still after many years it is my favorite text editor on MacOS.
I've been using it since version 6.x around year 2000, first the Light version and than full version later.

You can use BBEdit to edit any text file, convert between different line endings and text encodings.

I love it for searching and replacing texts in multiple files using regular expression and edit all my html, php and javascript files in it.

As BBEdit can be downloaded and tested for free, please give it a try today.

Thanks Bare Bones Software, Inc. for making it.

UUID Numbers

FileMaker 17 introduces a new function Get(UUIDNumber). It allows you to query the numeric representation of an UUID.

e.g.
145234071807015280356493410184603392874
6D431095-AC81-4E79-8C4F-A14AAAE85B6A

Both refer to the same UUID and you can calculate the numeric value yourself by decoding hex parts and multiplying. Those UUID values allow you to use UUIDs as primary keys on the database. Sorting and indexing can be more efficient.

Sadly FileMaker 17 does not introduce the UUID data type to store UUIDs efficient as 16 byte in binary representation instead of 40 characters of text for the number or 36 characters for hex representation. That would save space.

So please start using UUID numbers, which avoid people guessing your record IDs by counting up or down.

If you need those for FileMaker 16 or older, you can use our new plugin function UUID.Number. It returns you an UUID as number, same as with FileMaker 17.

We also got UUID.FromNumber and UUID.ToNumber functions to convert between hexadecimal and numeric representation.

Windows GUI Resources

For next MBS Xojo Win Plugin, we add a new WindowsGUIResourcesMBS class:



This class allows you to query the number of handles used for GUI and user objects. So you can have a timer monitor those values and maybe detect a leak in memory usage. For example, each picture needs a GUI handle. But a window may contain a few user object and GUI handles.

Coming soon for version 18.2 of our Xojo plugins.

FileMaker Stammtisch Ulm

Am 17. Mai treffen sich interessierte FileMaker Entwickler in Ulm zum Austausch von Neuigkeiten, Erfahrungen und Tipps & Tricks.

Diesmal als Thema vermutlich FileMaker 17 mit vielen Neuerungen und ersten Erfahrungen.

Wo: Mommo’s Pasta & Pizza, Frauenstraße 30, 89073 Ulm
Wann: 17. Mai 2018, ab 19 Uhr
Kosten: Nur die eigenen Getränke und Abendessen

Anmeldung am Besten beim Swen Bauer und Fabrice Ricker. Die können euch dann auch in Zukunft über weitere Termine informieren. Siehe auch FileMaker Magazin

Würde mich freuen Euch dort zu sehen.

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.

PS: Noch sind Plätze zur MBS Schulung frei bei Brainworks am 14. Juni frei.

XDC 2018 Highlights Video

Watch the XDC 2018 highlights video now:



The next conference is just 4 months away: MBS Xojo Conference, 6th/7th Sep 2018 in Munich.

My FileMaker 17 Release Notes

FileMaker Inc. just released their latest version of FileMaker product family and you can read elsewhere about all the details. Here I want to just point to a few changes, which may not be addressed in all the announcements.

Plugins

The new version of FileMaker has a new plugin SDK and plugin vendors should update plugins for the new version. For MBS Plugin, please use version 8.1 or newer. Version 8.2 will be released next week to give us a few days to test with the final FileMaker 17 version. We hope to quickly fix any issue found after the release is out.

We support 12 different FileMaker releases from version 7.0 to 17.0 and use a modified version of the SDK which does some extra steps to make sure the plugin loads for all the older versions.

Older plugins may or may not work for FileMaker 17. They may not load, not initialize correctly or you cause problems later. We fixed a couple of issues in our plugin for 17 in the beta time. But with 5000+ functions, you may never run into one of the affected functions! To avoid trouble, please use 8.2 or newer.

FileMaker Advanced only

First FileMaker Pro is gone and we only have FileMaker Pro Advanced. If you miss the Tools menu, please enable it in preferences and restart your copy of FileMaker Pro Advanced. Please note that independent of this preferences, the software itself via report itself as FileMaker Pro Advanced. e.g. Get ( ApplicationVersion ) returns something like "ProAdvanced 17.0.1".

For plugins this means that we have to do extra work in the MBS Plugin. But you can use that as MBS( "Platform" ) should return "Pro" if you use only the Pro version and Developer if advanced tools are enabled. We use this to disabled script highlighting automatically for FileMaker Pro until the first time you open the script editor. This avoids confusion with users who may see a colored number somewhere.

Please note that you as a solution provider can define whether Advanced Tools are enabled with the AI_DISABLEADVANCEDTOOLS=1 entry in the "Assisted Install.txt" file next to the installer.

FileMaker Data Migration Tool

The migration command line tool is great addition and certainly will help a lot of people. It allows to copy data from the older database into a clone of a newer version. Be careful to read the documentation for this tool. The rules on how to match tables and fields from old to new database could be unexpected sometimes as matching goes primary by name and not ID. So better do not rename tables or fields unless you want them to be empty after migration.

If calculated fields need to be recalculated, be aware that some context may be missing, especially calls to plugins will not work as far as we know and not return the expected values. Finally, please always use the -v command line switch for verbose output, so you see what is going on. Work on copies of the databases and it may be good to lock the old file as read only (Info window in Finder), so you don't accidentally overwrite the old database.

For the performance, calculated fields can make the process slow. Because if there is a field, which needs to be recalculated, that means that all related fields may need recalculating and finally the indexes need to be redone. And if each field needs to be touched and index rebuild for a table, the copy process can change from a second (copy on block) to minutes.

Perform Script by Name

As scripts can be performed by name, be always sure that the script called verifies that the one who called is allowed to call it. People could before trigger any script by name via URL already, but now it's even easier. So expect any script to be triggered by someone at any time. For best security, validate if the script is run in the correct layout, by the current account and exit with an error if something is not as it should be!

Temporary Logout

The new feature for temporary lockout is a good idea. But have you ever left your iPhone on the kitchen's table? If you have small kids, the may try some buttons and while they may not be able to read and write, they key can press buttons and get PINs entered. Sometimes I come back and the phone is locked for a minute!
So if someone comes to your FileMaker application, they can now block your access for some time by trying random passwords.

OS Requirements

FileMaker 17 has higher needs for the operation system. On Windows side you can use 7 year old Windows 7 SP1, but on MacOS, it must be 2 year old MacOS 10.12 Sierra or newer. I am personally not happy to only have two supported MacOS releases.

For iOS FileMaker Go requires the 11.2 release from last year. That maybe due to the Drag & Drop support which requires iOS 11.

FDS/FBA

With the newer license model, the benefits improve for the memberships. For 99 USD/year as FDS member, you can now get the FileMaker Data Migration Tool (you want that in your toolchain!) and a server license for your development. It is the cheapest way to get yourself a server for your own company, although with very limited connections.

Being FBA member is now worth more as you get 3 servers and 5 users included. That is cheaper than buying those licenses for yourself, so I would expect quite a few smaller FileMaker consultant companies can cover their company with those licenses. FileMaker iOS SDK and data migration tools are now included with FBA, so you may no longer need a FDS membership alongside a FBA membership.

Launch Events

Please check FileMaker Events website for announcements of FileMaker 17 Launch events.
We will be present at the launch events in Germany (29th May) and in Switzerland (12th June).

Xojo Stammtisch in München

Wer hat Interesse an einem MBS Xojo Entwicklertreffen am 14. Juni in München?

Einfach gemütlich zusammen sitzen in einem Restaurant oder Biergarten und über Xojo reden.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit Xojo Projekten. Einfach Computer mitbringen und was zeigen.

Bei Interesse bitte bald bei mir melden.

Für die Xojo Konferenz im September sind noch Plätze frei.

FileMaker Stammtisch in München

Wer hat Interesse an einem MBS FileMaker Entwicklertreffen am 13. Juni in München?

Einfach gemütlich zusammen sitzen in einem Restaurant oder Biergarten und über FileMaker reden.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit FileMaker Datenbanken. Einfach Computer mitbringen und was zeigen.

Bei der MBS Plugin Schulung bei Brainworks sind noch Plätze frei.

Wir haben schon sieben Teilnehmer, aber wer noch dazu kommen möchte, möge sich bitte bei mir melden.

Dies ist zusätzlich zum regulären FileMaker Stammtisch in München.

Sign PDFs with DynaPDF using Windows Certificate Storage

You may know that you can sign a PDF with DynaPDF cross platform in Xojo (and FileMaker) with a certificate file, usually a PKCS#12 file.

But for Windows, our Xojo plugin offers an alternative way by using the local certificate storage. So your user can have the private key with certificate installed on the Windows machine and sign without knowing the password for the certificate!

On the right, you see the dialog from Windows to pick a certificate in German.

If you have no certificate, you get an error message. If you have one, you can confirm to use it and if you have several certificates, you can pick one. The dialog is localized for the user.

PS: If needed, we could add that quite soon for FileMaker, too.

MBS FileMaker Plugin, version 8.2pr7

New in this prerelease of version 8.2 of the MBS FileMaker Plugin:
  • The MBS Plugin now makes column width changes in the fields, table and layout lists permanent stored in preferences file on Mac.
  • Changed XML.ToJSON to create array if a key is used several times.
  • Changed Layout ID view, so every time, we add the column, we first clear cache to forget old IDs. Still not working correctly if you have two files with same name!
  • Changed Script ID list to clear cache when we add column to get fresh IDs.
  • Changed table ID / field ID view to clear cache, when we add checkboxes.
  • Rebuild iOS for DynaPDF library. Download.
  • Fixed an issue with Webview functions failed to run JavaScript in iOS in case FileMaker didn't run the script on main thread.
  • Ported most RichText functions to iOS. Word files and PDF generation is not possible there for iOS.
  • Implemented WebView.GetFormattedText, WebView.CopyFormattedText and RichText.ReadWebviewer for iOS and FileMaker 16.
  • Fixed problem in AVRecorder.StartPreview to run a second time. ClosePreview now stops preview correctly, so we can start it again later.
  • Added Addressbook.multivalue.indexForLabel function.
  • Improved JSON.AddNumberToArray and JSON.AddNumberToObject to handle large numbers better.
  • Improved Copy Script button. Press option key to get HTML in clipboard instead of styled text.
  • Changed Clipboard.GetHTMLText to convert styled text to html if you ask for HTML and clipboard has styled text.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo Plugins, version 18.2pr7

New in this prerelease of the 18.2 plugins:
  • Implemented InvertMBS for alpha channel pictures.
  • Changed CURLSMBS to use less memory for storing properties.
  • Changed CollectOutputData, CollectHeaderData and CollectDebugData for CURLSMBS/CURLMBS/CURLNMBS to track if you set property and if you set to false, we ignore the data and do neither return error nor collect data. If never set, we may turn them to true, when you have no event and no file streaming.
  • Reduced memory footprint of CURLSMBS.FormAddField method.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

Permanent column widths for FileMaker

Did you notice that FileMaker does not remember what column width you set for several dialogs?



That's changing today as we now add a feature to store column widths permanently in the preferences file for MacOS. So in the Manage Database dialog, we remember for the tables and fields lists the columns. Also for the layout dialog, we remember the widths.

This feature is not very difficult, as the list control used here from Apple does provide that feature out of the box. FileMaker doesn't make use of it, but the plugin can enable it. So when we now look to add out checkboxes for the ID column or the column itself, we can make sure auto saving is enabled.

You need to enable Layout IDs to have the patch for layout dialog be applied. And enable the checkboxes for field/table IDs for the field/table lists.
Coming soon to the next prerelease of MBS FileMaker Plugin 8.2. Who wants to try?

XDC2018 Superhero SQLite Video available for free

Nothing to do on a Sunday evening?
You can watch the Superhero SQLite session video from XDC 2018 and learn all about SQLite from Paul Lefebvre.



"Superhero SQLite" XDC 2018 Session | Paul Lefebvre and XDC 2018 Recap

All XDC sessions are available for attendees of the conference for free on the Xojo website.
Or for purchase of the video pack for just $399 USD in the Xojo Store.

MBS Sessions at FileMaker Conference .fmp[x]Berlin 2018

Did you sign up for FileMaker Conference .fmp[x]Berlin 2018?

I proposed three sessions:
  • What's new in MBS Plugin since last conference?
    07 Jun | 15:00 - 16:00
    Let's take a look on the features added the last 12 months and let's discuss what you'd like to see in the next months.
    Preferable not a slide show presentation, but a walk though examples and a discussion on what you can do with the functions or by combining functions.
  • MBS Plugin Goodies
    08 Jun | 15:00 - 16:00 Let me show you what MBS Plugin already does for the FileMaker development environment.
    Variable checking, syntax highlighting, search and much more.
    And lets discuss what I may add in the future.
  • FileMaker App for iOS to the App Store with plugins
    09 Jun | 10:00 - 11:00
    Let's build an app for iOS with plugins and than submit it to the app store.
Anything else you'd like me to talk about?

This conference is organized by Egbert Friedrich and takes place from 7th to 9th June 2018 in Berlin, Germany. If you like to join and you are not yet on the list, I think you may need a really good reason for him to let you get a ticket.

Detect 32 vs. 64bit DLL in Xojo

Today we got some code to detect whether a DLL is 32-bit or 64-bit. That can be useful if your app requires the user to install a custom DLL, e.g. mysql DLL for use with our MBS Xojo SQL Plugin.

Technically you need to read the DOS header from the DLL/EXE file, check where the PE header starts and lookup the field for CPU architecture. If something is not supported, we ignore it, like a wrong position value and if the MZ or PE texts are not there. As you see, we can easily do that with binary stream class in Xojo and Microsoft defines a lot of constants for the various possible architectures.

If you find a DLL from a Windows RT copy, please let me know if it detects ARM as target. Thanks. (more)

Sum up values in JSON with MBS FileMaker Plugin

We recently got a new FM.Loop function for our plugin. It allows you to run a loop in one plugin call and evaluate a lot of things in one line. For example you can loop over items in a JSON array and sum them up.

 

Lets take our first example. We have a JSON area with numbers from 1 to 10. You probably remember this sums 55 from school. The JSON.GetArraySize queries the number of entries in the array. With the loop function we loop from 0 to count-1 to query each of the items int the array and sum them up. For that we use a Let statement. In this case we first query the value with JSON.GetPathItem and than use $sum variable to add the new value. Take a look:

 

Set Variable [ $json ; Value: "[1,2,3,4,5,6,7,8,9,10]" ] 

Set Variable [ $count ; Value: MBS( "JSON.GetArraySize"; $json ) ] 

Set Variable [ $sum ; Value: 0 ] 

Set Variable [ $r ; Value: MBS( "FM.Loop"; "i"; 0; $count-1; 1; "Let([v = MBS( \"JSON.GetPathItem\"; $json; i; 1); $sum = $sum + v];0)" ) ] 

Show Custom Dialog [ "Sum" ; $sum ] 

 

For the next example we have a bigger JSON string with an array of objects. You may have got this from a web service. Like this list of prices for items:

 

[

  {

    "item": "1",

    "name": "Test",

    "price": 123

  },

  {

    "item": "2",

    "name": "Other",

    "price": 234

  },

  {

    "item": "3",

    "name": "Item",

    "price": 345

  }

]

 

Our script is a bit more complicated as we need to build the path to the item in the script with the calculation i & \¶ & \"price\". That takes the index of current array element, followed by ¶ as separator and price as the item to pick. This is the script with a lot of extra backslashes for escaping:

 

Set Variable [ $json ; Value: "[   {     \"item\": \"1\",     \"name\": \"Test\",     \"price\": 123   },   {     \"item\": \"2\",     \"name\": \"Other\",     \"price\": 234   },   {     \"item\": \"3\",     \"name\": \"Item\",     \"price\": 345   } ]" ] 

Set Variable [ $count ; Value: MBS( "JSON.GetArraySize"; $json ) ] 

Set Variable [ $sum ; Value: 0 ] 

Set Variable [ $r ; Value: MBS( "FM.Loop"; "i"; 0; $count-1; 1; "Let([v = MBS( \"JSON.GetPathItem\"; $json; i & \¶ & \"price\"; 1); $sum = $sum + v];0)" ) ] 

Show Custom Dialog [ "Sum" ; $sum ] 

 

We hope you enjoy hacking JSON like this with our plugin!


JSON with large integers

Did you know that MBS Plugin can handle JSON with large integers?

In native FileMaker the call

JSONSetElement( ""; "key"; 12063660878882855000013426248015578834577; JSONNumber)

returns {"key":1.20636608788829e+40} as result. So in-between, the number is converted to double data type, which only has a precision of 15 digits.

With curent MBS Plugin, you would add a number directly like this:

MBS( "JSON.AddItemToObject"; "{}"; "test"; "12063660878882855000013426248015578834577" )

and get back

{
  "test": 12063660878882855000013426248015578834577
}

So MBS Plugin got the feature to pass through large numbers and avoid conversions to double.
This is a nice advantage and allows our plugin to parse a big JSON and preserve numbers. e.g.

MBS( "JSON.Compact"; MBS( "JSON.Parse"; "{ \"test\": 12063660878882855000013426248015578834577}"; "test" ))

returns {"test":12063660878882855000013426248015578834577} back and the big number is not affected.

For next release (8.2) we also updated JSON.AddNumberToArray and JSON.AddNumberToObject to use the newer code to pass through big numbers.

Copy Script Button with HTML

You may have noticed we have a copy button to copy the visible text of a script in FileMaker?

As you may know we include colors for styled text in the clipboard so you can get excellent results when copying & pasting a script to a forum.

For the next 8.2 plugin, we include the possibility to press option-key and get HTML for the script.

And you can paste into your favorite text editor and for example do comparison between two version. This way you can see what things you modified in a script easily.

Check our QuickLook Plugin for Xojo and Real Studio Projects

You have several Xojo and Real Studio versions in use?
You want to know in advance what Xojo version a project was saved with?

Please try our plug-in for QuickLook: MBS-Xojo-QuickLook-Plugin.dmg

After installation of our plug-in to /Library/QuickLook and you run "qlmanage -r" in Terminal app or logged in the next time, your icons look like this:


This plug-in is freeware, so please share with friends and enjoy!

DynaPDF for iOS

Today 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
    The universal one, which includes library for simulator and device
  • DynaPDF for iOS ARM64 only
    For building 64-bit only iOS app
  • DynaPDF for iOS Device
    32 and 64bit for device
  • DynaPDF for iOS Simulator
    32 and 64bit 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

xDev Magazine Issue 16.3

The May/June (16.3) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Farewell New Framework by Marc Zeedar
Big announcements were made at this year's Xojo Developers Conference in Denver, Colorado in late April. Find out all the details here!

A Roundabout Way to Denver by Marc Zeedar
As usual, Marc likes to do things the hard way. Instead of a quick flight to Denver and a stay in a comfy hotel, he decided to drive 1300 miles and sleep in his car. Er, what?!

Give Yourself to the Dark Side by Sam Rowlands
Apple has added "dark mode" support in recent OS updates, but using it in the best way can be tricky. Sam demonstrates how by creating a custom slider control.

A Predicate For Data, Part 2 by JC Cruz
This time Jose adds new features to his data predicate class.

Plus: Xojo 2018r1, refactoring, PITR, MailgunX, and more!

Image Gallery in FileMaker using SQL

For some weeks I had this idea on how to make a gallery for FileMaker, which shows images from a table, but in a grid style. As you see we still have rows, which show containers, but the assignment of which image shows in which container is defined in formulas:

On the layout, we put in five container fields all defined by a formula, which picks the right field via a custom function and using SQL. But let's start with a helping function ImagesCountPerRow:

Min( 5; Max ( 1; Round ( Get ( WindowWidth ) / 266 ; 0)))

This returns how many fields are needed for a given window width from 1 to 5. In the un-stored calculation of the formulas, we use a formula like this:

Let (
[
x = 1;
w = ImagesCountPerRow
];
If(w >= x ; GetImage ( Get ( RecordNumber ) ; x ; w); "")
)

This checks how many fields are needed and calls GetImage only, if the current container index (x) is needed. So we only use the number of containers in a row which are visible.

The GetImage function takes the number of the record, the number of the field and the field count per row. We calculate the index of the container value we need and fetch it with SQL:

function GetImage(nRecord; nField; nFieldCount)

Let ( [
n = (nRecord-1) * nFieldCount + nField-1;
sql = MBS( "FM.SQL.Execute"; ""; "SELECT Image FROM Images OFFSET " & n & " ROWS FETCH FIRST 1 ROWS ONLY" );
error1 = MBS("IsError");
count = If(error1 = 0; MBS( "FM.SQL.RowCount"; sql; n; 0 ); "");
error2 = MBS("IsError");
value = If(error1 = 0 and 0 < count; MBS( "FM.SQL.Field"; sql; 0; 0 ); "");
error3 = MBS("IsError");
r = If(error1 = 0; MBS( "FM.SQL.Release"; sql ); "")

]
; If(error3 = 0 and error2 = 0 and error1 = 0; value; "") )

As you see we use If() functions with error status to make sure we only call further functions if the previous function worked. So FM.SQL.Execute runs the SQL to find just the one container value we need using the offset command to skip some values before and only fetch one value. If we got a row, we fetch the field value of the first field. On the end we return the value or "" if not found.

On the layout, we can add a trigger for a script to refresh using the Refresh Window script step. This will cause the images to reformat and adjust to new window width.

The example is available with next plugin prerelease or today if you ask kindly.

In the example you also find the script to pick a folder via dialog and import all image files.

XDC 2018 Session Videos

The XDC Videos are available.

You can get over 30 videos from the sessions for download in your Xojo account, if you visited the conference. All others, can buy the video pack for just $399 USD in the Xojo Store.

Here is the list of all tracks:
DayNameLength
1Android Update Presentation34:45
1Ask the Engineers36:38
1Keynote1:05:40
1New IDE Features37:48
1SQLite Presentation46:17
1Web Framework38:57
1Windows Presentation43:39
2Advanced Reporting In Xojo50:39
2Aloe Express59:53
2Database Driven Web Apps54:12
2Databases 10144:55
2Factoring Project Testability51:47
2Lean On Me (the Compiler)45:58
2Leveraging LLVM42:53
2Practical Color Management48:06
2Rapid Database Application51:34
2Rest API54:18
2SELECT encrypted data52:02
2Use Monkeybread Plugins32:30
2Web Server For Mobile Apps43:16
3Anatomy Of An IOS App51:36
3Being Successful With An IOS App38:30
3Linux39:45
3Mastering The Dialog Box Part 250:09
3Mastering The Dialog Box39:14
3Moving Beyond Example Files40:24
3Policies Procedures & Processes51:21
3Project Management46:56
3Searching For Code54:37
3Tip Control SF59:15
3Using OPP52:02
In total over 24 hours of Xojo knowledge.

Sign up today for the next conferences: PS: Today is the XDC 2018 Recap webinar.

Store your ID in URLs in Mac address book

As you may know, we can query address book in our plugins. Now you can store your own IDs for users in the contacts database by using an extra URL.

The key today is that we use an URL in the addressbook and make it a FMP URL, so the user can actually click on the URL and go to the FileMaker database right away. When synchronizing the IDs between database, we can store our own ID this way. To search, we use Addressbook.searchElementForProperty function to search for our label in URLs property and compare to the ID.

To store the value, we use the following script: 

Set Variable [ $PersonID ; Value: MBS( "Addressbook.Me") ] 

Set Variable [ $myID ; Value: "FMP://~/Clients?script=ShowContact&param=123456" ] 

Set Variable [ $MyLabel ; Value: "FileMakerID" ] 

# Query current URLs

Set Variable [ $r ; Value: MBS( "Addressbook.record.valueForProperty"; $PersonID; "URLsProperty" ) ] 

Set Variable [ $Count ; Value: MBS( "Addressbook.multivalue.count" ) ] 

Set Variable [ $index ; Value: 0 ] 

Set Variable [ $foundIndex ; Value: -1 ] 

Loop

Set Variable [ $label ; Value: MBS( "Addressbook.multivalue.labelAtIndex"; $index ) ] 

If [ $label = $MyLabel ] 

Set Variable [ $foundIndex ; Value: $index ] 

Exit Loop If [ 1 ] 

End If

# next

Set Variable [ $index ; Value: $index + 1 ] 

Exit Loop If [ $index >= $count ] 

End Loop

If [ $foundIndex >= 0 ] 

# found, so update

Set Variable [ $r ; Value: MBS( "Addressbook.multivalue.replaceValueAtIndex"; $foundIndex; $myID ) ] 

Else

# not found, so add

Set Variable [ $r ; Value: MBS( "Addressbook.multivalue.addValue"; $myID; $MyLabel ) ] 

End If

Set Variable [ $r ; Value: MBS( "Addressbook.record.SetValueForProperty"; $PersonID; "URLsProperty"; "multi" ) ] 

# save...

Set Variable [ $r ; Value: MBS( "Addressbook.save" ) ] 

And to read back the value, we can use a script like this: 

Set Variable [ $PersonID ; Value: MBS( "Addressbook.Me") ] 

Set Variable [ $MyLabel ; Value: "FileMakerID" ] 

# Query current URLs

Set Variable [ $r ; Value: MBS( "Addressbook.record.valueForProperty"; $PersonID; "URLsProperty" ) ] 

Set Variable [ $MyID ; Value: MBS( "Addressbook.multivalue.valueForLabel"; $myLabel ) ] 

Show Custom Dialog [ "MyID" ; $MyID ] 

 
Let me know if you have questions. Same can of course be done with our Xojo plugins. 


FileMaker Magazin - MBS Artikel

For our German speaking users:

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.


Combine PDFs 5.3

Monkeybread Software today is proud to announce Combine PDFs 5.3, an update to their popular PDF merge and split tool for Mac OS X. With a focus on ease-of-use, Combine PDFs is a lightweight utility which allows anyone to merge PDF files and images into a single PDF file. The user need only drag & drop files onto the program icon. The main window appears, allowing the user to set the order in which the files are joined.

Changes in Version 5.3:
  • Added swedish translation.
  • Can use app store license in shareware version.
  • Added retina support and now a Cocoa application.
  • Added preference option to enable copying of annotations.
  • Requires MacOS 10.9 or newer.
  • Upgraded to 64-bit.
  • Fixed preview window setting, so it's saved and honored on next app start.
Combine PDFs Website

Requires MacOS 10.9 or newer for 64-bit. Older 32-bit version stays available and still works very well.

This application is made with Xojo 2018r1.

Query URL from downloaded file

Did you know that your Mac tracks URLs used with downloaded files?

In the metadata for a file, you find extra attributes for download URL and download date, which spotlight uses to track downloads. In Finder, you find the URL in the information dialog for the file.

In Xojo, you can use MDItemMBS class:

dim file as FolderItem = DownloadsFolderMBS(0).Child("test.html") dim item as new MDItemMBS(file) dim value as Variant = item.GetAttribute(MDItemMBS.kMDItemWhereFroms) if value <> nil then dim values() as Variant = value dim Link as String = values(0) MsgBox link end if

In FileMaker, our MetaDataQuery.AttributesForFile would provide all the metadata as JSON and this includes the kMDItemWhereFroms entry:

Set Variable [ $path ; Value: "/Users/cs/Downloads/test.html" ]
Set Variable [ $json ; Value: MBS( "MetaDataQuery.AttributesForFile"; $path) ]
Set Variable [ $link ; Value: MBS("JSON.GetPathItem"; $json; "kMDItemWhereFroms¶0") ]
Show Custom Dialog [ "Link" ; $link ]


If you like to get rid of the attributes, you can use   xattr -c   followed with the path to the file.
Or in Xojo use ExtendedAttributesMBS module to do it in code.

MBS FileMaker Plugin, version 8.2pr6

New in this prerelease of version 8.2 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 18.2pr6

New in this prerelease of the 18.2 plugins:
  • Updated DynaPDF to version 4.0.19.50.
  • Added DynaPDFMBS.GetUsesTransparency, DynaPDFMBS.GetDocUsesTransparency and DynaPDFPageMBS.SetBBox.
  • Added CWWiFiClientMBS class for MacOS to watch for Wifi changes.
  • Fixed SQL problem introduced in pr4 where all recordsets where empty.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

FileMaker Stammtisch in München

Wer hat Interesse an einem MBS FileMaker Entwicklertreffen am 13. oder 14. Juni in München?

Einfach gemütlich zusammen sitzen in einem Restaurant oder Biergarten und über FileMaker reden.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit FileMaker Datenbanken. Einfach Computer mitbringen und was zeigen.

Bei der MBS Plugin Schulung bei Brainworks sind noch Plätze frei.

Bei Interesse bitte eintragen in die Umfrage hier: München FileMaker Stammtisch.

Dies ist zusätzlich zum regulären FileMaker Stammtisch in München.

PS: Vorzugsweise bei Doodle anmelden vor dem Abstimmen, damit niemand ihre Stimme ändern kann. Danke.

Xojo Stammtisch in München

Wer hat Interesse an einem MBS Xojo Entwicklertreffen am 13. oder 14. Juni in München?

Einfach gemütlich zusammen sitzen in einem Restaurant oder Biergarten und über Xojo reden.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit Xojo Projekten. Einfach Computer mitbringen und was zeigen.

Bei Interesse bitte eintragen in die Umfrage hier: München Xojo Stammtisch

PS: Vorzugsweise bei Doodle anmelden vor dem Abstimmen, damit niemand ihre Stimme ändern kann. Danke.

Neues MBS Schulungsvideo online

MBS Schulung März 2018
Präsentation

(Deutsch)

1:03:26 minutes
Thumbnail
Auf der Monkeybread Software Video Webseite steht jetzt das Video zur MBS FileMaker Plugin Schulung bei der Denkform vom 1. März 2018 zur Verfügung.

Jede Schulung hat andere Schwerpunkte und auch wenn das Thema immer das MBS Plugin ist, so haben wir jedes mal andere Fragen und neue Funktionen.

Diesmal habe ich das ganze aufzeichnen lassen und zusammen geschnitten. Ich hoffe die Aufnahme ist interessant für euch!

Zusätzlich gibt es noch die Aufzeichnung von der 2017er Konferenz in Salzburg und die Aufzeichnung von der DevCon 2017 in Phoenix.

Weiter Schulungstage:
DatumOrtLinks
14. Juni 2018Münchenbrainworks-training.de
19. Juli 2018Hamburgbrainworks-training.de
27. Juli 2018Zürichbrainworks-training.de
17. Oktober 2018Malbun, LiechtensteinAnkündigung, Anmeldung
6. Dezember 2018Hofheim (Taunus)denkform.net
7. März 2019Hofheim (Taunus)denkform.net

Zusätzlich sind natürlich noch weitere Schulungstage möglich, wenn sich hierfür einige Teilnehmer finden, gerne auch als private Schulung in Ihrer Firma.


Four months till European MBS Xojo Conference in Munich

Just four months left for our European MBS Xojo Conference 2018 in Munich. If you like to join, please sign up soon.

Already over 35 attendees are registered from seven countries and the schedule is filling quickly. Reserve your ticket and reserve your hotel room as soon as possible.
Our Hotel room contingent expires later this month, so please make sure you have a room booked.

The schedule:

Sep 5thEveningoptional get-together with everyone arriving early
Sep 6th9:00 to 18:00First day of conference with keynotes
EveningDinner event in Augustiner Keller
Sep 7th9:00 to 18:00Second day of conference with more sessions
EveningOptional dinner together



We all look forward to presentations about Android, the new Web Framework other news in the Xojo keynote.

Registration is open. The late bird offer available till 7th June is just 599 Euro plus VAT if needed. Attending the conference costs regularly 699 Euro plus VAT, including food and beverage in the Maritim 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.

FileMaker Exklusives Business Event - Produktneuheiten

Am 29. Mai 2018 treffen sich interessierte FileMaker Entwickler bei der Denkform in Hofheim (Taunus).
Wir laden Sie zu unserem exklusiven FileMaker Event ein:

Michael Valentin (Technischer Leiter - FileMaker™) wird Ihnen die wichtigsten Neuerungen und Produktneuheiten von FileMaker vorstellen.

Christian Schmitz von MonkeyBreadSoftware zeigt alle Neuerungen in seinem einzigartigen und mächtigsten MBS Plugin für FileMaker.

Anschließend laden wir ein zum Get-to­ge­ther

Programm
18:00 Uhr Einlass und Begrüßung bei der denkform® GmbH
18:30 Uhr - 19:45 Uhr Michael Valentin: FileMaker Produktneuheiten und F&A
19:45 Uhr - 20:00 Uhr Pause
20:00 Uhr - 20:45 Uhr Christian Schmitz: MBS FileMaker Plugin Neuerungen; F&A
ab ca. 21:00 Uhr Gemütliches Beisammensein

Anmeldung auf der Denkform Eventseite.
Bitte den Termin frei halten und bald anmelden. Mehr Details zu den Programmpunkten folgen. Anmeldung hier

Xojo on Sale this weekend with 20% off

Xojo is on sale and you can buy all new licenses and updates for 20% off this weekend. See Xojo Store.

XDC 2018 videos arrived and are available for all attendees for free (included with ticket purchase).
If you didn't attend, you can buy them for $399 USD currently.

And finally if you like conferences, the XDC 2019 tickets are currently available for $200 off ($799 instead of $999 USD).

For our MBS Xojo Conference, you can sign up this weekend and save 200 Euro from the regular price with coupon code "Sale", so you pay 499 Euro instead of 699 Euro (+VAT if needed).

The sale at Application Systems Heidelberg for spring is still running with 20% off with coupon code BHKMTLS18Q2 and works for Xojo, too.

MBS Sponsoring FileMaker conferences

As of today, we are now sponsoring already five of the European FileMaker conferences: As usual, if you plan a conference and you look for sponsors, let us know and we may decide to either show up with a presentation or just send a logo with some money.

Early bird ends soon for FileMaker Developer Conference 2018

Not yet signed up for the FileMaker Developer Conference in Dallas?
Well, you missed already one deadline, but the early bird offer with $100 discount is still available through May 31. Regular tickets will cost $1499 USD.



August 6-9, 2018 | Gaylord Texan Resort | Grapevine, Texas

This is a fantastic conference hotel with 1500 rooms, 10 restaurants, several pools indoor and outdoor. And as may know this was my guess for the conference hotel.

Rooms can be reserved on the hotel website ($189 +tax per night). As you can cancel rooms and they may run out of them, you better reserve now a room and block the week in your calendar. See you there at the MBS booth!

MBS Xojo Plugins, version 18.2pr5

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

PS: SQL Plugin broke for RecordSet class. Please keep pr4 for SQL Plugin.

MBS FileMaker Plugin, version 8.2pr5

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

Sightseeing in Munich

You like to join our MBS Xojo Conference in Munich?

You can do quite some sight seeing in Munich itself: Don't forget to walk though the various parks and enjoy a stop in one of the beer gardens!
To get around, a day ticket for the subway may be useful.

For a day trip, you can visit the following places: Depending on how many interested foreign visitors we have, we may organize a group tour to something, e.g. to go to Wendelstein, Palace Herrenchiemsee and back with a stop at a nice beer garden.

MBS FileMaker Plugin Schulung in 2018

Der Termin in München findet statt. Wenn noch jemand dazu kommen möchte, bitte bald anmelden!


Wir bieten in Zusammenarbeit mit der Denkform, Brainworks und dem Verein FM Konferenz einige MBS Workshops an.

DatumOrtLinks
14. Juni 2018Münchenbrainworks-training.de
19. Juli 2018Hamburgbrainworks-training.de
27. Juli 2018Zürichbrainworks-training.de
17. Oktober 2018Malbun, LiechtensteinAnkündigung, Anmeldung
6. Dezember 2018Hofheim (Taunus)denkform.net
7. März 2019Hofheim (Taunus)denkform.net

Nehmen Sie sich einen Tag Zeit sich über das MBS FileMaker Plugin und all die Funktionen zu informieren.

Themen:

  • Einführung in das MBS Plugin
  • Rundgang durch ausgewählte Beispiele
  • Gemeinsames Implementieren von Plugin Funktionen in eine Datenbank:
    • Einbau von Auditing in eine Datenbank
    • Upload einer Datei mit CURL auf einen FTP Server
    • Download einer Datei
    • Ausfüllen eines Formular auf einer Webseite
    • Bilder bearbeiten
    • Eine Excel Datei laden und ausfüllen
  • Fragen und Antworten

Wenn Sie bei der Veranstaltung oder kurz danach eine Pluginlizenz bestellen möchten, erhalten Sie 50 Euro Rabatt.


Xojo Stammtisch in Berlin

On my next visit to Berlin, we have another Xojo developer meeting:

Wer hat Interesse an einem Xojo Entwicklertreffen am 5. Juni in Berlin?
ca. 18 bis 21 Uhr.

Einfach gemütlich zusammen sitzen in einem Restaurant oder Biergarten und über Xojo schnacken.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit Xojo Projekten. Einfach Computer mitbringen und was zeigen.

Wer noch dabei sein möchte, bitte per Email melden. Anmelden

Archives

Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008