Generator v2.0.6

One of Generator’s primary jobs is to remove the tedium of doing the same thing over and over again.  Not only is it boring, but it is error prone.  If something can be automated it should be automated. In v2.06, Generator makes it even easier to go from JSON to FileMaker database fields. We’ll cover that in this video.

If you have some JSON on your clipboard you can quickly create all the fields in a FileMaker table, and create a script that maps those fields to your JSON object.  It takes about 30 seconds.  Of course, if you already have fields in your table you can map to those too.

There is clearly more we can do here.  We could add the table for example, or we could try to guess the field type before we create the field.  We’ll get to that at some point.

It’s Free!

By the way, in case you didn’t know Generator is completely free an unlocked!

Happy Generating 🙂

San Diego FileMaker User Group – July 7th, 2017

The San Diego FileMaker User Group will meet again July 7th at 5:00 PM. Anyone who uses or is interested learning more about the FileMaker Platform is invited. This month Marc Larochelle from Productive Computing will be presenting on the ins and outs of FileMaker hosting in the modern era. The hosting story is rapidly changing as we shift more and more into the cloud. Come hear how to get it done right.


5:00 PM Drinks and Snacks
5:30 User Group Meeting Starts
5:45 Presentations

Everything You Ever Wanted to Know About FileMaker Hosting but Were Afraid to Ask

Come join us where presenter Marc Larochelle from Productive Computing, Inc. gives us all the gory details, the dos and don’ts, and the pros and cons of FileMaker hosting.  Certified in FileMaker and AWS, Marc will explore the differences between on-premise versus cloud hosting.  Visit the future where we show you a brief look at AWS (Amazon Web Services) under the hood and hosting with FileMaker Cloud.  Discover all the other aspects of hosting you may not have even considered.  Walk away from this armed with the knowledge that you have a much better understanding of what it means to host a FileMaker database system giving you a big leg up on your next deployment.

Card Windows ( if time allows )

FileMaker 16 Card Windows are the big sleeper feature in this release. They have a couple of interesting unexpected behaviors that make them very good at making module solutions. We’ll take a quick look at how that works and what that might mean.

7:30 PM End


Geist Interactive, San Diego
1855 1st Ave
Unit 100
San Diego, CA 92101

Geist Interactive at FileMaker DevCon 2017

This year’s FileMaker DevCon is not to be missed. FileMaker 16 is the biggest most important release since FileMaker 7 more than a decade ago, and DevCon is the place to be to catch up on all the shiny new features.  Geist Interactive will be there with much of our team. We’ll have a booth, and we’ll be quite busy with presentations and product announcements.


Dave Graham will be presenting on Data Modeling That Scales on Wed June 26th at 1:00 PM. Dave will be talking about how to put together your relationship graph, so it remains flexible and scalable as your solutions evolve.

Todd Geist will be leading one of the training day sessions called “Connecting FileMaker to the Web.”  This class will focus on FileMaker 16 new abilities to connect with just about any API, and it’s remarkably tight integration with the modern web platform powered by HTTP, JSON, and JavaScript.


We’ll be demoing several of our very popular developer tools at our booth. FMPerception is the fastest database analysis tool available today. Barcode Creator is the easiest way to add Barcode generation to your FileMaker solutions, and fmQBO gives developers the power to connect their FileMaker solutions to QuickBooks Online.


Karbon is our new free advanced FileMaker business template.  Karbon is the result of more than two decades of building and supporting FileMaker business systems blended with a thoroughly modern approach to modularity, data modeling, integration, and design.  We’ll be releasing it at DevCon. You can come and check it out at the booth, and it also has its own vendor session.  See below for times and dates.

Vendor Sessions

We also have two special Vendor Sessions. Dave Ramsey, the creator of FMPerception, will be leading an in-depth look at all of the ins and outs of FMPerception. That will be Tuesday, 10:30 in Grand Canyon 5.  We’ll also be talking about Karbon at 10:30 AM on Wed also in Grand Canyon 5.

The Big One!

This is a big DevCon, at an impressive hotel. I mean, come on, forget about all the excellent content, the hotel has a Lazy River! Who’d want to miss that!  Hope to see you there.

Geist Interactive Promoted to Platinum Level of FileMaker Business Alliance

Newbury Park, CA, USA — 6/9/17 — Geist Interactive, a leading FileMaker Platform developer, has been designated as a Platinum Level FileMaker Business Alliance (FBA) member. Partners who reach the FBA Platinum level are specifically selected by FileMaker, Inc., an Apple subsidiary, for exhibiting the highest level of customer service and technical expertise in creating innovative FileMaker Platform solutions.

“We are thrilled and honored to be joining such a prestigious group,” said Todd Geist, Founder, and CEO of Geist Interactive. “We look forward to working closely with FileMaker Inc, to help companies and groups get the valuable custom apps they need to succeed into today’s rapidly changing technological landscape.”

Geist Interactive believes that “Custom Software is a Right” and that no business or group should feel stuck using off the shelf applications that do not fit their needs. Geist Interactive blends the uniquely powerful FileMaker platform, cloud infrastructure, principles of the open web and thoughtful design to produce innovative and valuable custom apps for their customers around the world.

Pause Bootleg

Thanks to Tim Neudecker for recording this.

Testing FileMaker Custom Functions

Back when we shipped the original JSONCustom Function Library, we adopted rigorous testing as part of our development process. Testing FileMaker custom functions proved incredibly valuable. Those functions went to become critical parts of fmQBO, Generator, and every custom project we have done since.  We have a new library that we want to develop in the same way.  In this video, we’ll see how it becomes such a critical part of an open source project.


We love getting contributions. We are trying to create useful tools that everyone can use. But to do that we have to be able to collaborate effectively.  We need to make sure that new bug fixes or features don’t break existing features.  The best way to do that is with tests. We ask everyone who wants to contribute to help us by writing simple tests.  Don’t worry they aren’t hard.  Our Contributing Guide and this video show you how to do it.  Remember it’s just FileMaker.

Moving Forward and Getting Smarter

When FileMaker decided to add native JSON functions to FileMaker they used the test file that we had made for our JSONCustomFunction library to make sure that the new functions behaved mostly like the ones we had created.  That’s why the native functions are so similar to ours.Testing FileMaker

Why did they use our Test file? Why not create their own tests?  Because our test file included a number of edge cases and tricky issues that needed to be solved in the real world. Every bug we encountered, every new feature we added had tests. Over time those tests got smarter and smarter and covered more and more of the use cases that we encountered in the wild. In short using the test file for our functions was the easiest way for FileMaker to ensure that the new functions were useful.

Testing FileMaker Custom Function is Easy

Testing isn’t hard. But it does take more work up front.  But once you out the tests in place you will be glad you did.  It will save you countless hours in the future.  We’ll have more to say about testing FileMaker scripts and other parts of FileMaker in the future.

FileMaker 16 – Biggest Change Since FileMaker 7

FileMaker 16 is the most important release since FileMaker 7. It fundamentally changes both what you can do with the FileMaker platform and how you can do it. It provides first class connectivity to the global API economy, better user interface design tools, and new scripting and calculation features, that make it easier to write better, testable code.  These add up to radical new opportunities for those developers and business who choose to take advantage of them.

FileMaker is Changing. Maybe We Should Too

The technology landscape today is nothing like it was when FileMaker made its way onto the global stage.  There was no internet to speak of. Most FileMaker systems were written by 1 or 2 people and ran on a local area network.  Today applications are collaboratively written by hundreds or even thousands of people and then run in an always available global network of applications, APIs, and services.

FileMaker is adapting, adding new features that let us connect to this new world and design software that delights our users.  But we may need to change how we think in order to make the most of what we have been given. The usual practice of trying to solve old problems with new tools may not suffice.  What if those old problems are not even relevant anymore?  How would we know?  What are the new problems we can solve?  How do we learn this new approach?

John Sindelar and I designed this year’s PauseOnError conference to directly address questions like these.  We thought that a meditation retreat / tech conference / running clinic / art project would be an interesting way to try generate some new ideas, and maybe some new approaches to learning something new.  FileMaker 16 represents something new. There are still a few spots left if you would like to go.

I’ll have a lot more to say about what FileMaker 16 represents and the ways it has changed how I think about application building in FileMaker.  But for now, let me highlight a few of the most important features in FileMaker 16.

Card Windows

This new window type makes it possible to easily display two unconnected contexts in what appears to be the same window for the first time. This radically reduces the complexity required to handle many very common usage patterns. We can now spend time working on custom features for our customers instead of inventing complex and fragile user interfaces.

Native JSON Parsing

This solves a long standing problem around how to pass data around FileMaker. Obviously, it’s valuable for working with APIs, but it has a lot of value just for use within FileMaker itself. We can now create and process complex nested data structures, without having to hit the database. This will make it easier to create modular and testable code.  I’ll be introducing the concept of “Functional Scripting” in a later blog post that will cover this in more detail.

HTTP Support with cURL

Coupled with native JSON functions, FileMaker Pro is now a very capable HTTP Client.  For the first time, FileMaker Pro can natively take part in the API Economy, this vast globe-spanning network of interconnected services, APIs, and Apps. This is incredibly important. Custom Applications that don’t connect with the global network are at a serious disadvantage to those that do. It is getting harder to imagine a valuable custom application that doesn’t connect to APIs.

JSON and cURL may be very new to many FileMaker people. They aren’t actually very complicated, but they are different. Sometimes that can be a roadblock. We wanted to give people a tool that could help them use and learn these new features. So we created Generator, a FREE utility that you can use to try out the new stuff.  We have a version for FileMaker 15 and a new one for FileMaker 16 as well.  We hope you find them useful.

FM Data API & node.js

This one may not have a huge impact right away.  The Data API is in a beta release and is missing some key features.  But the decision to move to a standards-based based API server, built on node.js, will lay the foundation for even tighter integration with the global network of apps, APIs, and services. If you saw my presentation last year, “JavaScript is Eating the World“, you’ll know why I think JavaScript and node.js are important to pay attention to.

The Network Effect

This release begins to open up the FileMaker platform to the Network Effect.  I wrote a little about this back in 2014 in a post titled “What Can WordPress Teach FileMaker”. In that post, I pointed out that collaboration always wins. Make it possible for lots and lots of people to work on a problem, and it will get solved.  It’s a simple equation.  1,000 brains are more powerful than 1 or 2. Now that we can connect natively to the global network, we can gain access to the work product of millions of brains.

And Everything Else…

There are tons of other great features in this release, like PDF printing on the server, layout animations, and OAuth for Accounts.  Plus a whole new interface on Windows, and the awesome new Layout Objects viewer. Pro is better, Go is better, Server and Web Direct are better.  FileMaker 16 is a great big giant release. So glad it’s here.

Now… when is 17 coming?  🙂

FileMaker 16 Data API and OAuth

 Authenticating to the FileMaker Data API with OAuth

You can log into the FileMaker 16 Data API with OAuth. At the time of this writing, there isn’t much in the way of documentation on how to do that.  In this article, we’ll show how it works and provide some sample code that you can use to get up and running fast.

Read more

FMPerception Is Ready For FileMaker 16

Geist Interactive is excited to announce that FMPerception is ready for FileMaker 16. It has been almost a year since version 1.0 of FMPerception shipped. We started with a simple formula; build the fastest and most useful database analysis tool, and get new features to our dedicated users as soon as possible. We’ve released 34 updates since then, culminating in FMPerception v16, which provides support for FileMaker 16 the day it is released.

Read more

FileMaker Calculation Analysis with FMPerception

FileMaker Calculation AnalysisFileMaker Calculations are everywhere, not just in fields and script steps. They are all over your layouts, in your custom menus and even in your security settings. They might just be the heart and soul of your FileMaker system. But they are scattered all over the place, which makes them hard to track. FMPerception has a new feature that can help you find and fix problems related to calculations getting out of hand. It makes FileMaker Calculation Analysis a thing of beauty.

Heart and Soul

Most of the business logic of your FileMaker solution is either encoded in Calculations or passes through calculations in some way. You can use calcs to hide and/or format layout objects. You can use them to filter portals, display dynamic button labels, show tooltips, and populate placeholders. And that’s just layouts.

There are custom function calcs, custom menu calcs, and record level access calcs. There are of course calculations in scripts, and in fields. But hey, did you know that a field can have two calculations at a time, one for the auto-enter and one for validation calculation?

Think about this for a moment. A single field object on a layout can have the following calculations defined in or on it:

  • Field Definition
    • Auto-Enter
    • Validation
  • Layout Object
    • Data Hide
    • Tooltip
    • Placeholder
    • Several Script Trigger Parameters
    • Dozens of Conditional Formatting Functions
    • Button Parameter

That’s a lot of functions!  Calc functions are everywhere and are used for lots of different types of logic.  They are the heart and soul of any FileMaker Custom Application. Since they are so useful, they get copied and pasted around, they get broken, they get used out of context. Sometimes they just get huge and complex, or reference other huge and nested unstored calculations.

FileMaker Calculation Analysis

You have always been able to use FMPerception to help fix some of the problems we outlined above.  But…  It was scattered about.  Since the FMPerception interface mirrors FileMaker’s structure we displayed the calcs embedded in each object.  For example, if you searched for some text that appeared in every one of the calcs on the example field above, you would only get one result. Just the field. That’s it.  Even though FMPerception found each instance of the string it had no way to show you all those results.

Enter the Calculations List view, located in the slow query section of the browser.  The Calculations List view is a single list of every calculation in your custom application. You can also easily narrow the list down to just every calc in a single file, or script, or (my particular favorite) just one layout.  Suddenly we have a much better way to look at and explore our calculations. But our story doesn’t end there.

The Devil is in the Details

Ok great. We have one list of calcs. Very helpful.  But it’s the details we get with the list that makes it super interesting.  There are about 2 dozen columns of information about each of those calcs, that you can sort, re-arrange and filter. You can easily find the biggest calculation in your system, or all the commented out calcs, or all the portal filters, or calcs that can’t possibly work, because of disconnected contexts or… or …etc.  The list goes on and on. See the docs for more information or watch the videos on this post.

Now if you have a slow layout, you can just start with the list of calcs defined on that layout. Every calc on that layout is there. If you have a slow layout, it is almost certainly because of calcs that take a while to resolve. The culprit is probably on that list. Use the FileMaker Calculation Analysis information in the columns to help you locate it.

Problems Solved

Many of the problems come from calculations getting copied and pasted around in the form of conditional formatting, hide calcs, portal filters, button params etc.  These calcs may have worked correctly at one time but now are pasted into a context that no longer makes sense.  Sometimes the calcs are disabled when this happens if there is no valid path to the table occurrences it needs.  But sometimes there is a valid path. It’s just the wrong path.  And it could be slowing your system down or leading to unexpected behavior.

Selector Connector based systems are vulnerable to this because it intentionally creates a valid path to just about every part of your graph.  One of the columns in the detail list is a list of TOs that are touched. Selector Connector users can use the TO List to make sure that layout calcs like formatting, hiding or portal filter calcs don’t pass through the Selector Connector TOs, which is a sign that something is amiss.

FMPerception can help you find and fix all those problems, plus much more that we haven’t even thought of yet. It keeps expanding our knowledge of how the heart and soul of our FileMaker custom applications work. FileMaker Calculation Analysis?  Yeah. It’s a thing.