Quicklist - Fast lists for FileMaker

In FileMaker you use value lists for various things. Those lists are simply text separated with new line characters. You can build them easily in FileMaker calculations by appending new text to a list and using the ¶ character. To query a list you can use ValueCount and GetValue functions.

Performance

If you start to process lists with 10000 or more items, you will see degrading performance. Appending list entries requires FileMaker to make a new text and allocate memory for new size, copy existing text and new text together into the new text and return it. The longer the list becomes, the longer the copy process will take. For accessing list in a loop, you call GetValue a lot. Each time you query a value, the FileMaker runtime has to loop over the content of the text and find the nth item. The longer the text is, the longer this search will take.

Query values

The MBS Plugin now offers QuickList functions. With QuickList.New function you create a new list passing the text of existing list. The plugin will parse it once for fast access. You query the number of items using QuickList.Count function. The function QuickList.GetValue now reads a value and if you do a loop over thousands of entries. You will notice that for a lot of entries, the plugin will be magnitudes faster. When done, please free the list from memory using QuickList.Free function.

Building lists

To build a list, you also call QuickList.New. You can pass of course a text with initial list items. Than use QuickList.AddValue to add a value as often as you need. To optimize memory you can reserve memory upfront for a given number of entries using the QuickList.Reserve function. Now we you added enough entries to the list, you can use QuickList.GetList to get the whole list as text. Finally you release the memory of the list.

Results

The client we developed this functions had to import a text file with 150,000 lines and create new records. Just by using QuickList.GetValue instead of GetValue, the time needed for importing went down from over 20 minutes down to just below 3 minutes. Further optimization gained more speed ups like also using QuickList for parsing each row. While QuickList is built for lists with ¶, but the QuickList.New and QuickList.SetList functions take an optional parameter for delimiter. This way you can also use tab character (pass 9) or "|" (vertical line) as delimiter.

Macoun Article

At the Macoun I made some notes and wrote an article about the conference.

You can read it on the Mac & i website: heise.de/mac-and-i/artikel/Macoun-2014-iOS-8-Yosemite-und-Swift-2405151.html

The event was great and a big family meeting of the Mac and iOS developer community in German speaking countries.

Sending Email with FileMaker via MBS Plugin

While FileMaker has a built in script step to send email, it's fairly limited. You can specify only one attachment and just plain text for the email content.

As an alternative we want to show you how to use MBS Plugin functions to build and email and send it through your SMTP server via CURL functions. The MBS Plugin supports multiple recipients, multiple attachments and email content can be provided as html, rich or plain text. No worries about text encoding as the MBS Plugin encodes the email content as UTF-8, so all the umlauts and smileys survive. (more)

Greetings from Macoun

The Macoun conference is one of the biggest Mac and iOS developer conference with over 400 participants.

22 sessions about coding topics, well, it feels like a smaller WWDC in German. :-)
Currently I enjoy another session about Swift.

Check the website: macoun.de

FileMaker conferences

Just learnt that there is also a FileMaker conference in Stockholm this year. So here is updated list:

FileMaker conferences:
You can meet me in Winterthur, Toulouse and in Den Haag to learn more about the MBS FileMaker Plugin.

FileMaker Stammtisch Hamburg

Next week the FileMaker users in Hamburg meet for a casual get-together. Please join us and learn what's new in FileMaker.
Meeting is in Block House Wandsbek in Hamburg at 7pm.

I will attend and be around for questions.

see filemaker-magazin.de/service/filemaker-stammtische/hamburg

PS: Xojo meeting in Hamburg is 1st October.

Sending email via SMTP using CURL

If you have trouble sending email via CURL functions, how about trying those options:
  • OptionUpload on
  • OptionVerbose on
  • OptionPort 587
  • OptionFTPSSL all
  • OptionURL smtp://server
This way, we get right port, use SSL, but with TLS upgrade on a normal smtp URL. Using SMTPS URL fails as it starts a SSL connection right away. For some server this fails as they need a normal SMTP start and later an upgrade to SSL.

PS: This way you can send email via MBS Plugin in both FileMaker and Xojo over Office 360 smtp servers from Microsoft.

MBS Filemaker Plugin, version 4.4pr2

New in this prerelease of the 4.4 plugins:
  • Added QuickList functions to work on lists much quicker.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Filemaker Plugin, version 4.4pr1

New in this prerelease of the 4.4 plugins:
  • For loading of XL or DynaPDF library, you can now specify just name of DLL/dylib to find it in FileMaker folder or in the Extensions folder.
  • Updated DynaPDF to version 3.0.35.101.
  • Added Clipboard.ReadArchive and Container.WriteArchive functions.
  • Added Clipboard.GetData function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

FileMaker conferences

0You can meet me in Winterthur, Toulouse and in just two weeks in Den Haag to learn more about the MBS FileMaker Plugin.

FileMaker conferences:

MBS FileMaker Plugin 4.3 for OS X/Windows - More than 2700 Functions In One Plugin

Nickenich, Germany - (September 16th, 2014) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 4.3 for Mac OS X or 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, Mac, 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 4.3 has been updated and now includes over 2700 different functions, and the versatile plugin has gained more new functions:

For Mac OS X we added new functions for the toolbars in FileMaker. We can save and restore the current configuration of the toolbar. This way you can show and hide toolbar buttons by script commands. For example go to a layout where you show a print button and than move to another layout without a print button. Next you can change the background of the toolbar to feature an image of your choice. And finally you can even add your own custom toolbar items which call a script when clicked. So you can use the toolbar to navigate your solution.

With our new SendMail functions you can create emails with multiple recipients, multiple attachments and content as html, plain or rich text. The composed email is than delivered to the SMTP server using our existing CURL functions.

Our barcode functions for creating barcode images now can export images as SVG, Postscript or bitmap picture files like JPEG or PNG. We added more options for various barcodes like the error correction level for QR Codes.

For our SQL functions to connect to other databases, we added new options to connect to MySQL with SSL encryption. We optimized the handling of PDF in blob fields and parameters with new functions.

Our support for Windows operation system improved. Now you can use ListDialog, Icon reading, file kind and MenuItems functions on Windows.

One speciality of PDFKit on Mac OS X is the possibility to use Quartz filters for saving a PDF. We got functions to query list of installed filters and functions to show the filter manager window. Once you have a filter, you can apply it for saving and for example use an image compression filter. This can greatly reduce file size of the generated PDF file. If you need similar functions for Mac and Windows, please check our DynaPDF functions.

MBS Filemaker Plugin, version 4.3pr11

New in this prerelease of the 4.3 plugins:
  • Updated DynaPDF to version 3.0.35.100.
  • Added DynaPDF.GetEmbeddedFileCount, DynaPDF.GetEmbeddedFileAsContainer and DynaPDF.GetEmbeddedFile.
  • Added Socket.AvailableBytes function.
  • Changed DialogModifications.Set to be insensitive to letter case and improved handling of umlauts and other special characters.
  • Added Socket.ReadLineHex and Socket.ReadLine functions.
  • Added Socket.PeekAll, Socket.PeekAllHex, Socket.ReadAll and Socket.ReadAllHex.
  • Fixed XL.Sheet.SetRow to only require 4 parameters, not 6.
  • Added Socket.CloseAll function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Tip of the day: Start your Mac with pressed Shift Key

Just a little thing you can do every few months:
Press Shift key to start your Mac in safe mode. Than restart to get back to normal.
When doing that Mac OS X will do some cleanup and empty some folders with temporary files apps forgot to delete.
Freed 2 GB for me today :-)

MBS Filemaker Plugin, version 4.3pr10

New in this prerelease of the 4.3 plugins:
  • Added Text.TextToHTML function.
  • Added GMImage.ReplaceColor function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Filemaker Plugin, version 4.3pr9

New in this prerelease of the 4.3 plugins:
  • Updated CURL to version 7.37.1
  • Added NoReturnEnding parameter for List functions.
  • Fixed bug from pr8 where text was too short returned by various plugin functions.
  • Updated DynaPDF to version 3.0.34.98.
  • Added new SendMail functions to build emails and send them via CURL.
  • Added String.DecodeFromQuotedPrintable and String.EncodeToQuotedPrintable.
  • Changed Dialog.Run on Windows to make dialog task modal.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

You make backups?

On monday I wondered why my Time Machines stopped doing backups. Preparing took forever. Later that day I got messages from my scripts for building plugins about NilObjectExceptions. Turned out that operations like creating folders or creating binarystreams failed for virtual volumes. Later in evening the Finder started complaining that disk is full when copying files. VMWare stopped to launch as it could not write file for virtual memory. SMART analysis of my disk gave no errors, so I presumed a failure in the internal data structures for managing blocks.

Well, a SSD is a dream in speed, but when management fails on various levels, there is not much to repair like a good old hard disk with real disks.

I do have backups: Online backup (so I can backup at client office, in hotel, etc.), Time Machine (Apple's backup software) with several Time Capsules in various places and an external bootable USB disk for cloning. So I updated my clone with last changes, formatted my internal SSD and cloned things back. Now everything is right and not a single file is lost.

If the clone is not an option, e.g. outdated, I would have used time capsule to restore last backup and use my online backup to get the changed files from the last 2 days.

What do you do for backup?

If you are interested in online backups and you want to use your own webspace or your own S3 account (Without an intermediate company between), you can use Arq from Haystack Software. It's a nice app to run in background and upload changed files. I'm using it now for over 2 years. Any I often see myself restoring files using Arq instead of Time Machine due the easier to use browsing.

If you like to order a copy, you can use this coupon code for 10% off: U17ITZRZL4UPIVBK (expires September 30, 2014).

I'm not affiliated with Haystack Software and just an user enjoying this software.

FileMaker Meeting in Colonge

FileMaker Stammtisch Köln

10. September, 19:00 Uhr im Pohlhof in Köln.

Pohlhofstr. 3, 50765 Köln, www.pohlhof.de

Neues zu FileMaker, zu den Konferenzen und ich zeige gerne, was es neues im MBS Plugin gibt.

FileMaker Magazin 2014/04

A new issue of the German FileMaker Magazine is published.

Das erwartet Sie in der neuen FileMaker Magazin Ausgabe:

Aus der Praxis

  • Von 6 auf 13
    Weitsprung mit sanfter Landung (Carsten Belling)

FileMaker Go

  • FileMaker Go 13
    „Doppelklick“ und Tippgeste (Jörg Köster)

FileMaker Konferenz 2014

  • Es schlägt wieder 13
    Im Oktober startet in Winterthur die 5. FileMaker Konferenz (Jan Rüdiger)

FileMaker Grundlagen

  • FileMaker und SQL, Teil 5
    Verknüpfungen alle Art (Jörg Wenzel)

FileMaker Konferenz Programm

  • Grüezi zur FileMaker Konferenz in Winterthur (FMK Verein)

Gewusst wie

  • Datensatz-History Teil 2
    Ergänzungen zur Histora-Funktion (Michael Heider)
  • Datensatz-History Teil 3
    Protokollierung des Primärschlüssels (Michael Heider)
  • Popover statt Einblendmenü
    Verbesserte Benutzerfreundlichkeit mit FileMaker 13 (Mario Vanella)

Tipps & Tricks

  • Einfacher Umgang mit Script-Triggern für Layouts
    Vorausdenken ohne zu planen (Thomas Siebert)

Neuigkeiten, Kleinanzeigen, aktuelle Versionen, Adressen, Stammtische


MBS Filemaker Plugin, version 4.3pr8

New in this prerelease of the 4.3 plugins:
  • Rewrote menu functions. Now also support Windows for most functions.
  • Fixed XL.Sheet.SetLandscape and XL.Sheet.SetPaper functions.
  • Added JSON.AddNumberToArray, JSON.AddStringToArray, JSON.CreateIntegerArray, JSON.ReplaceItemInArray and JSON.ReplaceItemInObject.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

.fmp[x]Berlin 2015

BERLIN, GERMANY, September 1, 2014:
Egbert A. Friedrich of herrfriedrich.com is pleased to announce the third edition of .fmp[x]Berlin, THE pan-European Unconference for FileMaker Developer. It will take place in Berlin from June, 4 - 6, 2015.

With the kind support and participation of some of the finest brains in Europe it has become one of the most inspiring and indispensable events in the FileMaker-World to share knowledge on a higher level. The necessity of such an event lead to the decision to hold this each year beginning of June.

Further information can always be found here first: www.dotfmp.com or by following us on twitter @dotfmp
The registration will open as soon as the location is final!
All data from the previous event is still available here: dotfmp.com/2014

herrfriedrich.com is one of the few FileMaker Platinum Members in Central Europe, FileMaker Trainer and FileMaker Certified Developer since v9

Menus for Windows coming

Take a look at this screenshot:


As you see we can show a menu in FileMaker using next MBS Plugin. But it seems like we can't port all the goodies from Mac to Windows. For example windows seems not to support tooltips, keyboard equivalents, mixed state or even transparency in images here.
We'll continue to improve it, but I'm actually very happy to get at least some features working like submenus, checkmarks, separators, disabled items and the script triggers.

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