Crashing FileMaker with bad image file

Be aware that you can crash FileMaker Server with a broken image file. Crash report looks like this:

Thread 37 Crashed:
0 libsystem_platform.dylib 0x00007fff87b1efc9 _platform_memmove$VARIANT$Unknown + 41
1 com.filemaker.support.framework 0x000000010c51db31 Draco::ByteBuffer::Get(char*, unsigned int, unsigned int) const + 359
2 com.filemaker.support.framework 0x000000010c51e09f Draco::DataProviderGetBytesAtPositionCallback(void*, void*, long long, unsigned long) + 34
3 com.apple.CoreGraphics 0x00007fff87f80724 CGAccessSessionGetBytes + 204
4 com.apple.CoreGraphics 0x00007fff87f26b9c CGDataProviderCopyData + 359
5 com.apple.ImageIO.framework 0x00007fff92241e3d CGImageReadCreateWithProvider + 207
6 com.apple.ImageIO.framework 0x00007fff92241ce2 CGImageSourceCreateWithDataProvider + 262
7 com.filemaker.support.framework 0x000000010c563a8a Draco::Image2D::CreateImageFromData(Draco::ByteBuffer const*) + 40
8 com.filemaker.support.framework 0x000000010c5639c8 Draco::Image2D::Image2D(Draco::ByteBuffer const*, bool, Draco::QuadChar const&, Draco::UniversalPath const*, Draco::PhotoOrientation, Draco::PListMetadata*) + 304
9 com.filemaker.support.framework 0x000000010c563d2e Draco::Image2D::LoadImage(Draco::ByteBuffer const&, Draco::QuadChar const&, Draco::UniversalPath const*, Draco::PhotoOrientation, Draco::PListMetadata*, bool) + 108
10 com.filemaker.dbengine.framework 0x000000010b3fa81d Draco::DBBinaryData::GetExactThumbnailOnHost(Draco::CoordSize*, bool, Draco::CacheItem**, bool, unsigned int&) const + 1935
11 com.filemaker.dbengine.framework 0x000000010b5ada43 Draco::RCDownloadThumbnail::Perform() + 609
12 com.filemaker.dbengine.framework 0x000000010b5b654c Draco::RCNetworkStack::DispatchTransaction(Draco::RCConnection*, unsigned int, unsigned char*, unsigned int) + 1220
13 com.filemaker.dbengine.framework 0x000000010b5b5f8d RPO_i::Perform(unsigned int, char const*, unsigned int, OctetSeq&, OctetSeq_out) + 173

and

Thread 40 Crashed:
0 com.apple.CoreGraphics 0x00007fff87f26b75 CGDataProviderCopyData + 320
1 com.apple.ImageIO.framework 0x00007fff92241e3d CGImageReadCreateWithProvider + 207
2 com.apple.ImageIO.framework 0x00007fff92241ce2 CGImageSourceCreateWithDataProvider + 262
3 com.filemaker.support.framework 0x0000000109c2ba8a Draco::Image2D::CreateImageFromData(Draco::ByteBuffer const*) + 40
4 com.filemaker.support.framework 0x0000000109c2b9c8 Draco::Image2D::Image2D(Draco::ByteBuffer const*, bool, Draco::QuadChar const&, Draco::UniversalPath const*, Draco::PhotoOrientation, Draco::PListMetadata*) + 304
5 com.filemaker.support.framework 0x0000000109c2bd2e Draco::Image2D::LoadImage(Draco::ByteBuffer const&, Draco::QuadChar const&, Draco::UniversalPath const*, Draco::PhotoOrientation, Draco::PListMetadata*, bool) + 108
6 com.filemaker.dbengine.framework 0x0000000108abd81d Draco::DBBinaryData::GetExactThumbnailOnHost(Draco::CoordSize*, bool, Draco::CacheItem**, bool, unsigned int&) const + 1935
7 com.filemaker.dbengine.framework 0x0000000108c70a43 Draco::RCDownloadThumbnail::Perform() + 609
8 com.filemaker.dbengine.framework 0x0000000108c7954c Draco::RCNetworkStack::DispatchTransaction(Draco::RCConnection*, unsigned int, unsigned char*, unsigned int) + 1220
9 com.filemaker.dbengine.framework 0x0000000108c78f8d RPO_i::Perform(unsigned int, char const*, unsigned int, OctetSeq&, OctetSeq_out) + 173
10 com.filemaker.dbengine.framework 0x0000000108c75271 _0RL_lcfn_07aabdf5dad7309d_70000000(omniCallDescriptor*, omniServant*) + 180
11 com.filemaker.omniorb4.framework 0x0000000109525cef omniCallHandle::upcall(omniServant*, omniCallDescriptor&) + 1099
12 com.filemaker.dbengine.framework 0x0000000108c76459 _impl_RCFMP12::_dispatch(omniCallHandle&) + 1697


It may be a good idea to first check image on client before inserting it into a database. So the client would crash and not the server. As you see the server crashes when creating the thumbnails. (this is FileMaker Server 13. Newer ones may handle this better)

MBS FileMaker Plugin, version 6.4pr2

New in this prerelease of the 6.4 plugins:
  • Updated to DynaPDF 4.0.2.5
  • Added EmailParser.ReceiveDate and renamed EmailParser.Date to EmailParser.SentDate.
  • Added PHP.GetResultContainer function.
  • The dialog functions now set the dialog title on Mac, too.
  • Added LDAP.AddList and added more parameters for LDAP.Add.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

FileMaker Conference Discount Offer

Just a reminder to all the people who visited out booth:
If you like to use the coupon code, please do it this month. The coupon code will expire soon. Alternative please email me what you need and I can setup an invoice for you.

In general we appreciate developers joining a conference. It is a big investment in time and money to actually attend in person and we want to honor this by offering discounts on our products. If I remember correctly all the offers in the exhibition area, you could actually save more money buying things on the show than the conference ticket costed you.

As FileMaker Inc. didn't provide a barcode scanner and barcodes on the badges, we have no email list to send a reminder.

LCMS 2.8 released

We just got notice about the release of a new LCMS version:

I am glad to the announce the release 2.8 of the Little CMS open source color engine.

This release has been sponsored by Alien Skin software

Version 2.8 is a featured release. It introduces alpha channel transportation and a new type of plug-in for enhancing performance, among bug fixes and other enhancements. XCode and Visual Studio 2015 are supported in this release.

Many thanks to Alien Skin software and also to all users that have tested this code.

Little CMS intends to be a small-footprint color management engine, with special focus on accuracy and performance. It uses the International Color Consortium standard (ICC), which is the modern standard when regarding to color management.

The ICC specification is widely used and is referred to in many International and other de-facto standards.

For more information, please take a look on:

Main site: littlecms.com
Downloads: littlecms.com/download.html

Best regards,
Marti Maria
The Little CMS project
http://www.littlecms.com

Thanks to Marti for keeping this project running for years.
As usual we will include the new version of LCMS in the next prerelease of our plugins.

FileMaker Developer Conference 2017

And the next conference will be in Phoenix, Arizona:



Join us from 24th to 26th July 2017 in Phoenix, Arizona and learn more about FileMaker 16.

Monkeybread Software presents MBS FileMaker Plugin at FileMaker Developer Conference 2016

LAS VEGAS, July 18, 2016 - Monkeybread Software exhibits at the FileMaker Developer Conference 2016 in Las Vegas. We invite everyone at the conference to visit our booth and learn about our latest MBS FileMaker Plugin.

Version 6.3 include over 4,000 documented functions to extend FileMaker Pro, Runtime and Server, including Web Direct. The plug-in adds new possibilities for you to deliver great new features for your clients in your solutions. Try our plug-in and see with over 400 example databases what you can do in FileMaker with our toolbox. Over the last ten years the plug-in grew to an unique toolbox for FileMaker developers all over the world and helped to provide solutions to thousands of users.

In our presentation, scheduled for Thursday at 10:45 am, we provide an overview of our plugin's functionality. We also demonstrate new features coming in the next release soon after the conference. Bring your questions and let us go deep into scripts to show you how things are done using our plug-in.

Learn more about using SQL with FileMaker, hotkeys, schedules, graphics, networking, menus and other outstanding features. Finally enjoy our syntax highlighting and more development goodies.

Our booth is located on the left side from the main entrance of the exhibit hall and open on all conference days in the breaks.

MBS FileMaker Plugin, version 6.4pr1

New in this prerelease of the 6.4 plugins:
  • Updated to DynaPDF 4.0.2.4
  • Added DynaPDF.GetColorSpaceInfo to query details on a color space.
  • Added DynaPDF.ListImages function to list images in a PDF file.
  • Fixed a problem with some XML with XML.Import where no fields where imported.
  • Added DynaPDF.OpenOutputFileEncrypted.
  • Plugin works again fine on Windows XP with FileMaker 10.
  • Changed ServerSocket functions to provide service via IPv6 and IPv4. That solves the problem when ServerSocket in 6.3 tried to connect via IPv6 to a IPv4 socket.
  • Added DynaPDF.GetBBox function.
  • Added Math.DecodeNumber and Math.EncodeNumber.
  • Added transparent as a possible color value for GraphicsMagick.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Visit MBS at FileMaker DevCon

Arrived in Las Vegas and he booth is ready for you to visit:

DynaPDF Optimize Command

With the next prerelease of our FileMaker, Xojo and Real Studio plugins we will include DynaPDF 4.0.2.4 and the Optimize command has two big changes: First, it now can now scale down images and reduce the size of PDF files significantly. Second, the license changes and the Optimize command is now included in the Pro license.

For optimize you can specify a few parameters. For each image in the PDF, DynaPDF will check the display resolution of the image. That is not the resolution stored in some metadata with the image, but the actual size the image will be displayed. You can specify the minimum resolution for images to be checked independently for Color, grayscale and 1 bit images. Next you define the resolution you want as maximum for the output images. For example you want to scale down all images with more than 100 dpi and reduce them to maximum 150 dpi. For the filter parameter you can specify the compression you want, e.g. JPEG. Converting images from Flate compression to JPEG with same or lower resolution will of course reduce the file size.

When optimizing PDFs, we can remove private data, invisible paths and create new link names. This further reduces size down and rebuilds the structure of the PDF. While doing the optimize we fix problems in PDF files automatically. Some PDFs which showed error messages when opening in Adobe Reader now open without errors.

Here an example:

The test PDF optimize-before.pdf is created with FileMaker 15 from the product catalog example with a few pictures. Than printed to PDF in FileMaker. Of course you can use whatever test PDFs you like for your own tests. Now we run through and let DynaPDF limit image resolution to 150 dpi. The new PDF optimize-after.pdf is much smaller. From 686 KB down to 89 KB (87% saved).

See yourself:
before vs. after

or when we scale them up at 200%:
before vs. after

We can extract the images and see that FileMaker placed a 816x612 Pixel big JPEG file (optimize-image-before.jpg) there. DynaPDF replaced that with a 206x154 Pixel big (optimize-image-after.jpg). I don't think you see the difference at the target size in the PDF. And 150 dpi is quite good for reading on screen and sending via email. FileMaker probably uses 600 dpi here to make sure it looks good when printing.

If you join FileMaker DevCon in Las Vegas, please visit our booth to try compression on your test PDFs!

Three month till German FileMaker Conference in Salzburg, Austria

Nur noch drei Monate bis zur FileMaker Konferenz und zur MBS Plugin Schulung in Salzburg:



Vom 13. bis 15. Oktober 2016 treffen sich wieder ca. 200 Teilnehmer im Pitter in Salzburg.
Bitte bald anmelden um ein Ticket zu bekommen. Die Konferenztickets und die Zimmer im Hotel Crowne Plaza Salzburg waren in den vorherigen Jahren schon Wochen vor der Konferenz ausverkauft.

Dieses Jahr gibt es neben meinem MBS Vortrag auch einen zum iOS SDK. Mal sehen, was bis zur Konferenz noch alles kommt von FileMaker. iOS Extension könnte ein Thema sein.

MBS Plugin Schulung
Am Tag vor der Konferenz (12. Oktober) findet der MBS Plugin Workshop statt. Einen Tag mal Intensiv das MBS Plugin anschauen, durch die Beispiele gehen, einen Webservice implementieren und Funktionen ausprobieren. Limitierte Anzahl von Plätzen und gleiches Hotel wie Konferenz, also bald anmelden.
(Noch wenige Restplätze verfügbar.)

MBS FileMaker Plugin 6.3 for OS X/Windows

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

With the new version we add SSH functions. They allow you to connect to a remote server with Secure Shell protocol. You can authenticate via password or your private key. Than you can execute shell commands, provide input and receive output text. Our existing CURL functions provide SFTP file uploads and downloads using the same SSH connection parameters.

As the speak command in FileMaker is limited, we added a new Text.Speak command. Our speak command has less problems and also works on Windows. You can choose the voice and decide whether to wait for speech to finish.

For accessing smartcard readers, we got a set of new functions. You can list the readers, detect cards and transmit data to them. This is very low level and requires knowledge about the protocols used with your smart card.

Our menu creation is now much quicker due to optimized internal storage of menu items. The DefineQuickMenu function is now much quicker. And you can decide whether a menu item is selectable. This way you can prevent people from selecting a menuitem with a submenu attached.

We updated DynaPDF to version 4.0.1.3. Our new functions DynaPDF.AppendImagePage and DynaPDF.AppendImagePages allow to easily add new pages for existing images, either from a container or a list of file paths. Our function to show difference between two pages can now be parameterized with a specific color tolerance.

For Webviewers on Mac you can now provide login credentials. When the website asks for a password, the plugin will supply it for you. This way you can visit websites without FileMaker showing a password dialog.

Our plugin can now create symbolic and hard links. When working with Word files, you can now replace images. For automated debugging you can now query the content of the data viewer window and store it in a log.

Finally we improved barcode reading, we accept now multiple file paths for Files.Delete and Files.RevealFile. GraphicsMagick handles resolutions better and allows querying/setting XMP data. PortMidi can now provide unicode device names.

See release notes for a complete list of changes.

FileMaker Magazin - MBS Artikel

For our Germans 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 excellente Quelle von Informationen, Anleitungen und Profitips.


Alternativer Wolf- und Bärenpark Schwarzwald

This week I had the chance to visit the Alternativer Wolf- und Bärenpark Schwarzwald. This is a project to protect wolves and bears here in Germany and they provides a home to eight bears and three wolves. Those bears are freed/rescued from circus and other places where they had a bad live with punishment. Now they can enjoy the rest of their lives in a natural environment there in the black forest. And visits can go and see them.
As those animals are used to humans they can't survive alone in nature.

My visit there was due to the FileMaker training organized by MKV. I gave a short presentation about the MBS FileMaker Plugin and had some time to talk with the trainees.

If you have a chance, please visit the two parks in Worbis and Bad Rippoldsau.

MBS FileMaker Plugin, version 6.3pr6

New in this prerelease of the 6.3 plugins:
  • Added SQL.FreeAllConnections.
  • Added WordFile.GetMediaFile, WordFile.MediaFiles and WordFile.SetMediaFile functions.
  • Fixed bug in DynaPDF.ShowDifference introduced in pr4.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

New FileMaker London User Group

I got notice that a FileMaker developer group is meeting in London area:

The FileMaker London User Group is aimed at intermediate level FileMaker developers. Run by Nick Stockbridge of FileMaker Authorised Training Company Transmedia Training, our meetings are self-help sessions, with members offering tips and advice to others. Meetings will generally consist of a demonstration of a useful idea or technique, followed by a Q and A on a work in progress with which a member is getting stuck. So bring in your tricky calculations and scripts and start receiving (and giving) some help!

Dates: Generally the first Monday in the month, every other month.
Time: 6.30pm to 8.30pm.
Location: Transmedia Training, 85 Tottenham Court Road, London W1T 4TQ

Forthcoming dates:

8 August 2016
3 October 2016
12 December 2016
6 February 2017
3 April 2017

Sessions are free. Coffee, tea and refreshments are provided. For more information, please call Nick Stockbridge on 0208-269 4260, or email nick@transmedia.co.uk.

see also thread on FileMaker community.

When I have my next client visit to London, I may be able to schedule my trip to be there for a meeting.
Else you can meet me at DevCon in two weeks :-)

Tip of the day: Mount drive on FileMaker Server

From time to time we get the question whether we can copy files from FileMaker Server to a network share, e.g. for backup.

The answer: Yes, we can, but you need permissions.

When you login to a FileMaker Server and you mount a network drive, this drive is only accessible for the current user (your admin account). It is not available to other accounts on the server including the FMServer or SYSTEM account the FileMaker Server uses. That is a common problem for us here.
One solution is to mount the volume for all users on the local machine. And to provide permissions for anyone to write to a specific folder.

Another solution is maybe more elegant:
You can use Files.Mount to mount the shared folder yourself to a local drive letter. Than you copy files there and later you unmount it with Files.Unmount. This way you only mount when needed and you have full control over what credentials are used.
To copy files or folders you can simply use Files.CopyFile function.

MBS FileMaker Plugin, version 6.3pr5

New in this prerelease of the 6.3 plugins:
  • Improved CURL.GetResultAsContainer to detect extension based on mime type.
  • Fixed PortMidi.GetDeviceInfo's Name property to correctly handle special characters on Mac.
  • Added Clipboard.GetPicture and Clipboard.SetPicture.
  • Changed Barcode.Detect to better detect barcodes which have no whitespace around.
  • Added DynaPDF.AppendImagePage and DynaPDF.AppendImagePages.
  • Changed Files.Delete to accept a list of paths.
  • Added List.DeCombine function.
  • Added new flag to XML.Query to ignore namespaces and do the queries without them.
  • Fixed an issue where XML.Query would respond with two ?xml lines with encodings.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

SQLite 3.13 with ICU

Recently a client asked for support of ICU in the MBS SQL plugin.
There is just a little problem. ICU libraries are 20 MB in size and including them for all platforms would increase SQL Plugin size for about 120 MB in size!
But you can use our SQL Plugin with an external SQLite library. Simply download the source code and built a copy with ICU enabled.

For your convenience I just built a copy of the SQLite library for Mac using the ICU library coming with OS X:

Download: SQLite3Mac.zip

To check whether it is working, you can for example do a "SELECT upper('ä')" and see if you get back ä (non working) or Ä (working). You can try lower, like and regexp, too.

FileMaker DevCon 2016

Do you come to Las Vegas for FileMaker conference?
We'd be happy to meet you at our booth (#111).


Join us at FileMaker DevCon in Las Vegas, July 18-21, 2016.

If you need extra time for consulting, training or to review your solution with us, please make an appointment. The normal breaks between sessions are too busy to talk for more than a few minutes.

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