San Diego User Group: March Meeting

It’s March Madness time, and we’ve got some great topics this month. Dave Graham and Lance Brandenberg will present for us.

Geist Interactive’s Generator

Dave Graham will share the work Geist Interactive has done on Generator: Using FileMaker to Create FileMaker. We’ll explore all the great features of this wonderful and free tool.

Testable FileMaker Solutions by Lance Brandenberg

With the release of FileMaker 16 and native JSON functions, the ability to create a testable solution has been vastly improved. I will walk you through a simple example of what testing is, and how it can improve your solutions. Most developers have had situations where they need to alter some existing logic, and are concerned that they might alter something with unforeseen consequences. Wouldn’t it be nice if you could ensure that your changes didn’t break existing code? Welcome to FileMaker Testing.

Come join us for these great topics. And as always, bring your ideas and thoughts.

Geist Interactive at FileMaker DevCon 2018


We love FileMaker DevCon. We get to hang with our peeps, and talk about our favorite thing, the awesome power of the FileMaker Platform. That’s why we are very excited to announce that Geist Interactive is a Diamond Sponsor of the 2018 FileMaker DevCon in Dallas, Tx  Aug 6 – 9, 2018. Our team will be there in force, delivering presentations, hanging out in our booth, or leveling up our skills. We hope to see you there.

Training and Sessions

This year three of the team members will be presenting in sessions throughout the week. Here is a list of the topics we bring to DevCon. And be sure to check out the full schedule.

Todd Geist

 Modular FileMaker 2.0

Modular FileMaker is a guideline for writing re-usable code that can be shared between developers or different projects. The web-site was launched more than 4 years ago, and has proved to be very popular. There are over 60 modules published on the site to date. Times have changed. JSON and Card Windows add some of the much needed native features we lacked back in 2013. It’s time for an update. We’ll look at the new updated guidelines and examine several sample modules. We’ll also introduce everyone to how they can contribute to this important free community resource.

Microsoft Office Addons Integration

FileMaker Server and Microsoft Office are a powerful combination. Not only does FileMaker Server OAuth support Active Directory, the FileMaker Data API, provides a way to connect custom MS Office Addons directly to FileMaker data. MS Office Addons are built with HTML and JavaScript, and are embedded directly inside the MS Office suite. In this session, we’ll construct and Outlook Addon that works on Mac, Windows, Web, iOS, and Android, and connects to a FileMaker database to allow viewing and editing data related to the currently displayed email.

Lance Brandenberg

Testable FileMaker Custom Apps

With the release of FileMaker 16 and native JSON functions, it’s easier than ever to create testable FileMaker apps. We will walk through a simple example of what testing is, and how it can improve your solutions. Most developers have had situations where they need to alter some existing logic, and are concerned that they might alter something with unforeseen consequences. Wouldn’t it be nice if you could ensure that your changes didn’t break existing code? Welcome to FileMaker Testing.

Jeremy Brown

JavaScript for FileMaker Developers

JavaScript, the easy-to-read and most widely used language is the only programming language that is natively supported in all parts of the FileMaker platform. The language brings more functionality and speed to our custom apps. JavaScript is very much worth learning. In this course, we will learn JavaScript starting with our vast knowledge of FileMaker. We will focus on scope, variables, and functions, connecting those concepts to what we know already. By the end of the morning, you’ll have many small apps and have a better understanding of JavaScript. Jeremy loves this stuff and is excited to share about it.

This session is a half-day training session that is an additional cost.

FileMaker DevCon

Geist Interactive Team at our San Diego Office

Geist Interactive Booth

In the exhibit hall, we will have a large booth where team members will gladly say hi, offer advice, and talk about our services and products. The larger-than-life Dave Ramsey, author of FMPerception and DamageDetectoR will give entertaining and informative impromptu talks about the FileMaker platform and FMPerception.

FileMaker DevCon Out and About

The entire team will be there for the entire week, so find one of us and say hi. We’ll have the “Geist Interactive” swag, so we will be easy to identify. We want to meet everyone and talk FileMaker! Come to our booth or find us around the exhibit hall or in the sessions or by the pool, and we’ll happily chat about the platform we love.

Introducing DamageDetectoR

The creators of FMPerception are pleased to bring to you a new, free tool: DamageDetectoR.
Sometimes you get a Database Design Report (DDR) that just won’t import properly into FMPerception or a DDR-analysis tool.  It will either fail to import at all, or it will look like it imported properly and then large numbers of scripts or layouts will just be missing.  There are documented processes for fixing the problem, but they’re time consuming, confusing, and ultimately require making DDR after DDR until you’ve fixed all the issues.
Though it will appear as though your DDR analysis tool is doing something wrong, the issue is with the process that makes the DDRs in the first place.  Reports of users with such problems regularly appear at our helpdesk. So we wrote a tool to help us diagnose the problems and provide our users with better guidance… and now we’re making that tool available to the whole community for free.
DamageDetectoR is a macOS-only tool that will help identify those issues that occur from time to time in an XML DDR which would cause the DDR to fail the import. While these issues typically do not cause database corruption or failure of the database to run, they do hinder our ability to view the scripts and layouts and other items within our file in FMPerception.

 A Specific Focus

DamageDetectoR is set to identify a specific range of typical XML issues:
  1. Bad Characters – It is possible to paste a character into some calculation or layout object that you couldn’t normally type into FileMaker. These include non-printing (lower) ASCII characters such as a NULL or a vertical tab. These characters are not encoded by FileMaker, and result in bad characters. Damage DetectoR can find these.
  2. Corrupted Lines – Sometimes a FileMaker object will become slightly corrupted, which effects only the XML that is formed. In this case a tag in the XML is not closed, causing XML parsers to fail. DamageDetectoR can find these as well.
  3. Over 10MB – Some settings in FileMaker can produce a block of text that is over 10mb.  DamageDetectoR will identify those issues.

After identifying the issue, DamageDetectoR shows where the issue is located, as specific as the object on the layout.

DamageDetectoR is free, is macOS-only, and is available now.

San Diego FileMaker User Group February 2018 Meeting

Join us February 12 for another great user group. This month’s topics include the DataTables integration, Women of FileMaker fundraiser, and pickers!


DataTables Integration: The Complete Guide

Not everything is a nail, but those things that are nails deserve a hammer. Jeremy Brown loves working with the FileMaker Web Viewer object and looks for reasonable opportunities to include some kind of integration in projects. He recently dove deep into the DataTables JavaScript library and learned a lot in the process. Jeremy will present this integration and demonstrate how easy it is to apply this library to data in our custom apps, giving the users a clean and fresh view of their data.

Women of FileMaker Fundraiser

Barbara Cooney will speak about the great work the Women of FileMaker organization is doing. Just like last year, they are raising funds to send people to FileMaker DevCon in August. Barbara will share the plans for this and inspire us to help out.

Data Pickers

Presented by Dave Graham. Value lists and pop-up menus offer limited functionality and poor performance when selecting (“picking”) complex objects with lots of records. Learn how to leverage the power of a free picker module—bolt it on to your existing solution to pick contacts (or any type of record). Using card windows, the functionality can be integrated into your solution without having to merge any code, and with minimal scheme references. This solution uses JSON functions and requires FileMaker 16.

Barbara Cooney Joins Geist Interactive

We are really excited to announce that Barbara Cooney has joined Geist Interactive as an Application Developer. Barbara lives on Long Island, NY, and is a key acquisition as Geist Interactive continues its eastward expansion! 😉

Barbara is a certified FileMaker developer with over 15 years of experience. She began her career as the training manager for the largest Apple dealer in the NY metro area during the halcyon days of desktop publishing, and served as an application specialist before blue shirts were a thing. After a short stint as a corporate IT systems analyst, Barbara decided to devote her time to FileMaker development, and has worked for several FBA firms as a subcontractor. When not indulging her passion for learning and watching DevCon videos for fun, you’ll find Barbara outside away from all electronics: hiking, boating and gardening.

FileMaker Indirection (and how to find those instances)

The latest version of FMPerception (16.1.1) includes a new report: Indirection Sources for FileMaker. What is FileMaker indirection, you ask? Let me illustrate with an example.

I’m standing, somewhere near a corner, at the Welcome reception for DevCon 2018, with some beverage in my hand. Someone comes up and talks to me and asks who the FileMaker community Award winner was last year. I say “Josh”. “Who?” they ask. “Josh,” I say. “Which Josh?” I point to the middle of the room. “That one.” “There’s lots of them,” she says. Finally, in desperation to go back to my silent-corner standing, I walk to the middle of the room and drag the correct Josh over to where the woman awaits. “This Josh” I say.

That, friends, is Indirection.

Indirection, in software development, is tightly defined as referencing something by name rather than the value itself. In FileMaker, we often use indirection. We reference the name of something rather than the thing itself. It sounds like a big no-no, but that’s far from the truth. Indirection is useful and valid, but it does require some “knowing what I’m getting into” thought. You have to be aware of its use in your custom app.

FileMaker Indirection, Described

Let’s dive into FileMaker indirection a bit more by using the story above and two script steps.
In my story above, I first used the person’s name to whom I was referring. I said the word “Josh”. I could have even spelled it for her: “J-O-S-H”. In FileMaker, we can use the script step Set Field By Name [] and literally type in the field name: Set Field By Name [“Students::FirstName”]. Both of these are indirection because they refer to the name of the object (person or field).
When I went over and brought the actual award winner person to the woman, I directly pointed to the person. In FileMaker, we can also use the script step Set Field[]. If I use Set Field[Students::FirstName] I am directly pointing to that field (FileMaker is actually using the internal, unchanging ID of the field ). I’ve removed the indirection by specifically pointing to the object (person or field). My act of physically pointing to the person works even if, while walking across the room, Josh decides to change his name to George.
Examples of FileMaker Indirection

Examples of FileMaker Indirection

As we said before, FileMaker indirection is fine. Indirection allows us to be clever in our coding (see the links below for ideas). However, it will cause problems when a field name or layout name or table occurrence name is changed by a developer other than the original one (or by the original developer who forgot they used indirection in a script step).

Other Thoughts on FileMaker Indirection

There have been many discussions about indirection in the past:

  • DBServices wrote a few posts on indirection, examining what it is and how to code around it.
  • Wim Decorte at Soliant Consulting has talked about it in reference to ExecuteSQL (a common indirection source)
  • Mike Mitchell spoke of indirection at FileMaker DevCon 2017. Read his notes and watch the video.
  • And we have discussed it in terms of the function GetFieldName().

Each one of these also give some good ideas on how to use indirection effectively.  But keep on reading here.

Find Your Uses of FileMaker Indirection

So FileMaker indirection is a thing, and a thing we therefore should consider. And with FMPerception 16.1.1, we can examine all of our uses of indirection in a new report which points out all the script steps, functions, and field calculations in which we used something that could cause indirection.

A list of FileMaker Indirection functions, script steps, and field calculations

A list of FileMaker Indirection functions, script steps, and field calculations

In FMPerception, we define FileMaker indirection a bit more loosely. FMPerception includes here any function or script step that explicitly uses a string as a parameter to reference a FileMaker Pro object. GetField() allows a string: GetField (“FirstName”) will get the value in a field of the current table called “FirstName”. But when the field’s name is changed to “First_Name”, this function breaks.
FMPerception also includes functions or script steps that are signposts for possible indirection issues. One common function: Get ( LayoutName ) is used many times in navigation and logic. Something like:
 If [ Get ( LayoutName ) = “Students”]
 //Do some code here
 End If
Get ( LayoutName ) is not indirection exactly, but it often is used as shown above, where the logic checks this function against a string. This logic could break if the layout named “Students” is changed to “Students_Detail”,
FMPerception counts the number of times a particular function or script step is used and lists all the places you used the the functions listed: in a script step, a field definition, conditional formatting logic, hide-field logic, custom menus . . . anywhere we use a calculation window. The report also includes script steps that include indirection such as Set Field By Name[]. Both the count and each instance of a function gives you plenty of information for your consideration.

How this is Helpful

I took a system upon which I’m currently working, created an XML DDR, and opened the DDR up in FMPerception so that I could examine my file as it is mid-development. As I examined the Indirection Sources report, I stopped and considered three things.

First, I got to consider how each function or script step is used and where it is used. I can see in my 20 uses of ExecuteSQL that sometimes I hard-code the field name, and sometimes I use a proper custom function to reference the field. I should really go and fix those hard-coded statements.

A list of the 20 instances of ExecuteSQL

I’m using ExecuteSQL () 20 times in my custom app.

Second, I can consider the sheer number of indirection uses for a decision on how much to change schema names.  If I’m using Get ( LayoutName ) = “Students” 100 times, I probably do not want to change the name of the layout referenced here. If I do want to remove this indirection source, I can use methods described in the links above. This consideration may be useful in determining how much work it will be to maintain and add to a newly-acquired system.

Third, the report made me consider indirection as I continued to develop. Every time I used ExecuteSQL () I made sure to use custom functions to get the reference of each field and table in the statement.

FMPerception provides another clear view into your custom app through the Indirection Sources report. It will be useful for many developers who are taking over a system and for monthly maintenance. We think it will be a valuable tool for anyone looking to tighten up their system and make it better. If you’ve not yet tried it out, head over to the FMPerception page to read more about it and give it a try.

Jeremy Brown Joins Geist Interactive

We are very happy to announce that Jeremy Brown has joined Geist Interactive  as an Evangelist of the FileMaker platform, our products and services, and other technologies. Jeremy is a certified FileMaker developer ( 12- 16) and brings skills and passion to the team.

Jeremy’s path to us started in the classroom. He taught elementary and middle school for fifteen years in Minnesota and Colorado. In the last six years of his teaching, he stumbled into FileMaker and began to develop a custom app to allow users to be more efficient. At one point, he decided he would rather only work one full time job, so he transitioned into full time development.

He comes to us from Soliant Consulting where he developed custom apps for clients and wrote many blog posts and created many videos. His skills in this area as well as teaching make him a great fit for us as we become a larger resource for folks learning FileMaker and paving the way into what’s new about the platform.

Jeremy is a DevCon speaker, presenting two workshops at DevCon 2017. He’s an MVP on the FileMaker community forums, and he is generally a patient person, willing to help anyone learn and strengthen their skills.

My passion is to help people learn the concepts and techniques of FileMaker correctly the first time, so they become more proficient quicker. I want to be a bridge between those titans of the platform and those just stumbling into it.

He is based in Denver, Colorado where he spends much of his time learning JavaScript, FileMaker and many other technologies. He also plays video games and walks his two very energetic pups.

Keep an eye out for his posts and videos here at

San Diego FileMaker User Group January 2018 Meeting

Come join us for the first meeting of the 2018 year. We’re starting off the year with a bang with two wonderful presentations. Be sure and join us if you can.


Analyzing Data Streams

Presented by Jeremy Bante

We’re working with larger volumes of data every year, and users increasingly expect real-time feedback on how their operations are doing. This problem is not unique to the FileMaker community. The solution is to use algorithms designed to work on data streams — the algorithm only gets to look at each record once, and only remembers a small summary of what it’s already seen. Methods fitting within these constraints make several analytical tasks more practical to perform natively in FileMaker apps.

FileMaker + Zapier = Simple but Intense Automation

Ken d’Oronzio of Paradise Partners and soSIMPLE Software will show some really cool tricks using Zapier and FileMaker 16’s new Data API. He showed this during his DevCon presentation “Automate the REST”. Using these two connected services and the free fmGateway app from soSIMPLE Software (, you can easily hook your FileMaker solution up to hundreds of web services without any coding.
  • new leads from your website can be automatically collected into your database
  • ecommerce orders can be imported automatically
  • SMS updates can be sent automatically to alert clients in changes to their order
  • customers can be automatically subscribed to your newsletter
  • invoices can be sent via PayPal or Invoice Ninja (
  • updates can be sent to Slack and vice-versa
The options are only limited by the number of apps available on the Zapier web site – and there are hundreds of them.

One Spark End of the Year Fundraiser


Seven years ago, my wife, Lori Peters and I started an experiment. We wondered if it would be possible to create an educational environment where the kids come first, where we could jettison the bureaucracy and red tape, and focus on what works. Could we find some way to keep the costs low and still pay the bills. It turns out we could, with a lot of help from you.

Dr Steve Yoshinaga, teaching chemistry at One Spark Acadmey

We started One Spark Academy that first year with seven students and four teachers. This year we have 58 students, and more than 10 teachers, and staff members. It’s our biggest year ever. We are getting so big that we need start thinking about a new building sometime in the not too distant future. In short, things are going really well. But we still need your help.

Geist Interactive continues to donate back office services and financing to One Spark, and each year we reach out to the FileMaker community and to our customers to ask them to consider donating to a worthy cause. If education is important to you, please consider giving to our end of year campaign.  Your donation is tax deductible. Every little bit helps.

Thank you

Todd Geist
CEO, Geist Interactive
President, One Spark Academy.

For more info on the campaign please visit:–2

For more information about One Spark Academy, please visit our website.

Lori Peters, Founder, and Executive Director, with three students from our Mapping the World by Heart class.

San Diego FileMaker User Group December 2017 Meeting

Come join us for our December meeting! We will be celebrating the holidays with beer, wine, cookies and other festive treats, and of course your favorite FileMaker tips and tricks.


Quick and Easy Dashboards with FileMaker

presented by Gary Hoffman

A dashboard is a good way to give decision makers important trend data so they can avoid surprises and take action early to avoid operational disaster. Rather than making busy managers pore over a lengthy report of tabular data, a dashboard gives a graphical view of timely key performance indicators meaningful to management. Get a whirlwind tour of FileMaker dashboarding techniques plus plenty of examples that you can use.

JSON Custom Function Super Powers

presented by Todd Geist

FileMaker 16 opened up a new world with its new world of possibilities with its native support of JSON. Although JSON in combination with Data API’s gets all the hype, JSON itself can have a huge impact on how we write our regular FileMaker code. We’ll take a look at some Custom Functions we created that build on top of this awesome power to make your FileMaker Scripts and calcs even more powerful. It’s like getting bitten by a radio-active software bug. You’ll never be the same.

Case Study: Partnerships with Industry

presented by Lance Brandenburg and Dave Graham

Lance built a mobile Time Sheet application as part of our ongoing support of Partnerships With Industry.  Dave and Lance will discuss what went into the design and structure of the application and how it fits into the PWI’s larger plan.



December Meeting

Monday, Dec 11, 2017, 5:30 PM

Geist Interactive
1855 First Ave, Suite 100 San Diego, CA

8 Members Attending

Come join us for our December meeting! We will be celebrating the holidays with beer, wine, cookies and other festive treats, and of course your favorite FileMaker tips and tricks. Topics Quick and Easy Dashboards with FileMaker presented by Gary Hoffman A dashboard is a good way to give decision makers important trend data so they can avoid su…

Check out this Meetup →