Once a year, software developers all over world gather online to compete in the Advent of Code. During the festive and joyous time of the year, geeks race against the clock to solve coding challenges using their platform of choice, to be one of the first to solve it in as little time as possible. It’s a stressful and panicked time, this end of year tradition. Happy holidays.

Over 41,000 people started the journey last year, December 1, 2017. Among those were FileMaker developers.

That’s right. Besides being innovators, we are also software developers and problem solvers. Our platform does all that any other platform such as JavaScript or Python or .Net can do. So when I stumbled on this last year and wrote a discussion post about it on the forums, I figured we can be a part of the fun.

Here’s the quick rundown:

  • The site is adventofcode.com. Register on the site.. Take a look around.
  • Each day of December, two puzzles are released, one after the other. The goal is to read the problem and use any platform (even and especially FileMaker) to solve it.
  • Once problem one is solved, and the answer is submitted to the site, problem two is released. Usually this one builds off of or branches from problem one.
  • There is a leaderboard, and the leaders on the board are determined by the elapsed time it takes to solve the problem.
  • There are example solutions to the problem, given a different starting point. These are used to test.

It was a little exciting

There was a pretty good response from FileMaker developers to this challenge last year. I think because:

  • The puzzles are a nice ‘brain break’ from we work on each day. Advent of Code doesn’t have us building card windows for new records or have us determine the fiscal year. I daresay the puzzles in the game have nothing to do with real life, and for some, that is great. The challenges exercise a different set of skills for us.
  • The small group of folks who participated shared their ideas. We supported each other without judgement.

A Puzzle from Last Year

Unfortunately the method I chose to talk about this wasn’t useful. Scattered among the main questions and discussions in the community were posts for each day of the challenge. Those got lost, and there was no good way to really talk about it.

Do it better

So this year, we’re going to try something a bit different. I’ve been thinking of this for awhile, and, it turns out, so has Mr.Watson-gbs. (Great minds, and all that). Here’s what we have for this year:

  • A separate community place (coming soon) that you can be a part of (or not) and follow (or not). Thank you Rosemary for this separate space.
  • Mr. Watcon-gbs has a template file that we can use (though there’s no requirement. Use your own if you wish).
  • For each day of puzzles, a document containing the text and translation of the text will be posted. Likewise, a discussion for each day will be posted.
  • On the discussion you can post your own solution to the problems. You can ask for help, talk with each other about their solutions, etc.

We’ll basically work together to solve these puzzles.

Additional thoughts

  • Register to the Advent of Code site and post your answers, track your progress, and view your place on the leaderboard, as much as you wish.
  • There will be no official leaderboard in the community for a few reasons:
    • 1. I don’t have any mechanisms to test each answer and get the timestamp, and
    • 2. this competition is not found in the FileMaker forums. There’s nothing at stake here. There’s no reward save for the utter enjoyment of solving puzzles with your fellow FM developers
  • Ask for help about a puzzle, get feedback on your method of the solution, and critique others’ solutions. But that’s as far as we’ll go. There will be no judgement.
  • Again: ask for help. Though many FileMaker developers will post their answers, ask for help if you’re struggling. Don’t just open someone’s solution and copy it. Try to reason through it and ask for guidance in that process.
  • This space will be around (as well as the puzzles ) for a long time, so feel free to come back to a day and try them out well after the festive month has ended. Feel free to bump the topic and revive the conversation.
  • Feel free to try out the puzzles of 2017. They’ll give you some idea about what to expect.
  • Use any programming language you want; FileMaker is not required. In fact, I strongly encourage the use of other languages; I’d love to see how these are solved in Java, for example. If you could help the rest of us out and make it so we can see the code and run the code, that would be great.

I encourage you to join the group as we talk Advent of Code puzzles. What I’m excited about, what dawned on me about a year ago, is that we can do these puzzles in FileMaker. We can, along side Java, C++, JavaScript, Basic, and Fortran programmers, find solutions to fun problems. I really don’t think it takes an expert FileMaker developer to do these. Anyone can participate.

Let’s talk about the puzzles together, let’s critique and discuss. I think this is a way to make us better in our craft: take on some challenging puzzle and attempt to solve it in our language.

I’m committing to working on each puzzle every day, though I probably wont get up the second each day’s puzzle is released to be the first so solve it. I’ll use FileMaker, and, if time, JavaScript (I love JavaScript).

You have a month to prepare, to test out some puzzles from last year, and to get yourself ready.
See in Advent of Code 2018!

TODAY  – 10/22/2018  – 6:30 PM Pacfic!

Next Monday ( October 22 ) Geist Interactive will be hosting the San Diego FileMaker User Group at our office in San Diego, if you don’t live in the area and still want to attend, you can join us via Facebook Live on our Facebook page.

We are going to attempt something interesting.  This is not just a webinar, or Go To Meeting. This a multi-camera Live Streamed event. We’ll have a  “director”, who will be able to switch between multiple camera angles and the presenter’s screen to provide the best view of what’s happening at the event. If everything goes well it’ll be like a TV show with a Live Studio Audience.  We’ll also take questions from the online crowd via Facebook Live.

Last Of the West Coast Tour

This is the final leg of our 2018 West Coast Tour, where we have been talking about Power Tools for The FileMaker Workplace Innovation Platform.  Here are some of the topics we have covered in the earlier shows.

  • JavaScript Intro and mini-workshop
  • Karbon – our free Ambitious App Starter.
  • Otto –  Fully automated data migrations
  • LedgerLink – Connect to Quickbooks from FileMaker

Watch the Live Stream

The Live Stream will start at 6:30 PM Pacific Standard Time. October 22nd, 2018. Join us on our Facebook page.

Attend in Person

If you are in the area please come in and be part of our studio audience. We gather for food and drink starting 5:30 PM at our office in San Diego.  The presentations will begin at 6:30 PM


Geist Interactive
1855 1st Ave Suite 103,
San Diego, CA 92101

I’m sitting here at the Denver International Airport, heading to Seattle for what begins the Geist Interactive West Coast tour of FileMaker user groups. I’m thinking of innovation, specifically innovative power tools and techniques that we have access to as FileMaker developers. Already an innovation platform, FileMaker continually expands, opening the door to more. I can’t wait to talk about the FileMaker power tools in  which I’ve invested my time.

Workplace Innovation Power Tools

Todd Geist and I (Jeremy Brown) are traveling north to south along the coast to talk Innovation power tools and frameworks and techniques:

WorkPlace Innovation Platforms, like FileMaker grow along with you. The more you learn the more powerful they become, allowing you to build more and more powerful systems. Eventually you may find yourself with a custom application that provides significant value to your company or organization. Maybe you didn’t start out wanting to be a professional application developer, but if your application has value, guess what? You are a Professional.

Todd Geist and Jeremy Brown of Geist Interactive are coming to Seattle to talk about Professional Development tools, practices and techniques. Todd will demo Geist Interactive’s latest pro tool, Otto. Otto provides fully automated File and Data migration. He’ll show how easy it is to migrate a complex solution from Development to production environments. Jeremy will review the current state of JavaScript in our FileMaker development and lead us in a workshop to implement a JavaScript library quickly in a custom app.

Sounds exciting, huh?


It really is exciting. As FileMaker developers we have access to power tools within the Workplace Innovation Platform. We can build frameworks, and use those frameworks our custom apps. And we can utilize new techniques to keep our custom apps modern and connected to the world.

I’m excited to share about JavaScript, which, as you know, I enjoy playing with and promoting. By the end of our discussion, you’ll be hooked on JavaScript and look for ways to innovate with it in your custom apps.

The Stops

We will make a tour of the West Coast user groups starting north.


If you’re on the West Coast and within traveling distance of these user groups, and if you want a review of Workplace Innovation power tools, frameworks, and techniques, then please join us for one of these. Feel free to join us at all of the meetings. We’ll take the train from Seattle to Portland, and then fly the other legs.  Come on. Join us for a great week of the awesome Workplace Innovation Platform called FileMaker and some Power Tools, Techniques, and Frameworks.


Download these links for access to the demo files we’ll show tonight:


Web Viewer Integrations.fmp12


The team here at Geist Interactive is hard at work, adding new features to LedgerLink. They recently added support for online payment processing using Quickbooks Online’s processing APIs. Barbara Cooney walks us through that feature here.

Key Points

  • LedgerLink never records or stores credit card or bank account information during the authorization process. Sensitive financial information is sent directly to Intuit’s servers. It never makes it to the FileMaker Server, nor is it written to disk anywhere. This relieves you from ever having to be responsible for properly storing credit card or bank account data.
  • Rates for the online processing are very reasonable. Quickbooks Online has that information.
  • Quickbooks Online’s documentation explains how to set up your account to use online payments.
  • In LedgerLink’s setup, the “Allow Payments” box needs to be checked.

You can read more about how to use online payments in LedgerLink and Quickbooks Online here. Download the demo and give it a try.


Last Thursday, we held our first-ever webinar that focused on Karbon, our Framework for Ambitious FileMaker Custom Apps. We briefly touched on Karbon’s purpose and position, Karbon’s data model, and Karbon’s API integration. We also spoke about our tool Generator that helps us generate 95% of the code needed for Karbon. Finally we looked at testing in Karbon and one specific integration with LedgerLink and Quickbooks Online.


The webinar was about 1 hour and 20 minutes. Here’s a breakdown of the main points:

  • 0:00:00–Welcome and introduction to Karbon.
  • 0:06:49–Getting started in Karbon
  • 0:09:45–Separation of concerns in Karbon
  • 0:14:45–Karbon’s data model
  • 0:22:12–Example API integrations
  • 0:28:50–Karbon  API scripts
  • 0:37:25–Karbon transaction logging
  • 0:39:31–Karbon Generator
  • 0:48:48–Karbon testing
  • 1:01:00–Karbon and LedgerLink
  • 1:05:29–How to participate
  • 1:07:16–Q & A

You can participate

As Todd mentioned in the webinar, you have the opportunity to participate. We’ve got three ways that you can get involved:

  1. Provide feedback and features.  We want to create an ecosystem of discussion around this framework to discuss ideas and features about Karbon. There’s great thoughts out there in the community, and we want to know those.
  2. Pay us to add features.
  3. Become a Patron. Support us through Patreon so that we can hire someone to work exclusively on Karbon.


We are excited about Karbon. It is ambitious for complex custom apps, and we think it is sorely needed in the community. We all need a framework from which to start. Karbon is it.

Stay tuned to Karbon’s main page for more information, more videos, and more excitement about Karbon.


Our QuickBooks Online connector product fmQBO is now called LedgerLink. It has lots of new features and security enhancements. Because of changes that are coming in 2019 and beyond we will need everyone to migrate to this version sometime in the next 6 to 12 months. Even though most people have a year to make this transition, we recognize that this might be inconvenient, so we are offering a package deal that includes a free year off LedgerLink and having us do the migration for you.

Whats New With LedgerLink

No More Plugin

First, there is no more need for the Base Elements plugin, and there is no locked code of any kind. Everything is open and available for you to see and learn from. Everything in LedgerLink is native FileMaker code.

More Built in Syncing Tables

We have built in sync support for many more Quickbooks Tables then before.  The list of QBO tables that LedgerLink works with now includes: Items, Customers, Invoices, Terms, Tax Codes, Company Info, Tax Rates, Accounts, Preferences, Payment Methods, Payments, Classes, Departments, Bills, Estimates, Journal Entries, Purchase Orders, Vendors, SalesReceipts, and  Attachments.

Credit Card Payments and ACH Withdrawals

LedgerLink has built in support for processing Credit Cards and making Bank withdrawals with Quickbooks Online Payment processing. Charging a Bank Account is free.  Thats right zero processing fees. You just need to have Quickbooks Online Payments already enabled in your QuickBooks Online Account.

Developer Incentives

If you are a FileMaker Developer, it is now easy to purchase multiple LedgerLink connections that you can use with some or all of your customers. You get the ability to manage and control their access to LedgerLink features. Easily add value to all your custom FileMaker Applications

New Authentication

LedgerLink is is built using the latest QuickBooks authentication scheme based on OAuth. The older scheme used by fmQBO v1 and v2 will be phased out over time.

End of Life

fmQBO v1 will reach it’s end of life on Mar 31st, 2019. fmQBOv2 within 9 months after that. Both Intuit and FileMaker are pushing forward with new and important changes to their respective platforms, and we are trying to be as proactive as possible to help people prepare for whats coming. We recognize that this might present some difficulties for some people people. This is why we are giving such a long lead time and providing a service to perform the migrations for you. We hope that this helps everyone make the transition.

Can I Do the Migration Myself?

Yes, but there will be some manual work to do.  If you have a working fmQBO integration most of the hard stuff has already been thought out.  You will simply need to follow our integration instructions. If you were able to do it the first time, you should have no problem doing it this time. We’ll apply any unused time on your subscription to the new LedgerLink purchase.

If you would like us to do the migration for you see the next section.

Migration Offer: $2000 Off!

If you have Items, Customer, and Invoices in your system we will convert your system to the the new LedgerLink and give you a free year off the connection fee for LedgerLink for $3499. AND If you act before October 31 we’ll give you additional $1000 off bringing the cost down to just $2499.

Normally this work would require a 20 hour implementation package plus the license bringing the total regular price to $4500. If you act by October 31, 2018 you will get a $2000 savings.

If you act after the October 31st deadline you’ll still get a $1000 savings. You only need to put down a $500 dollar deposit to hold your special pricing. You do not need to have everything done by October 1st.


This offer is only good for customers with existing fmQBO integrations and only includes integrating Invoices, Customers and Items. If you have have other QuickBook entities we can provide an estimate for the cost of those additional entities. If you are new to LedgerLink/fmQBO we’ll be happy to provide you with custom integration services implementation package.

How To Get Your Special Offer.

Simply email us at support@geistinteractive.com and ask for the “LedgerLink Migration Package”. We’ll get you started from there.

For more information on LedgerLink, please visit the LedgerLink page.

Please email support@geistinteractive.com with any questions.

It is always good to know how to get started with any product. And in this video, Barbara Cooney takes us through how to do just that with LedgerLink.

Follow along with Barbara as she helps you get started using LedgerLink:

Key Points

  • Obviously, you need to have a LedgerLink license. We have a demo license to test it out, or you can test it out.
  • You need to enter a  Master Admin account when logging into Quickbooks Online in order to connect LedgerLink.
  • After logging in, you’ll be given a list of your companies. After selecting one of them, that company information is brought into Ledger Link.

Common Mistakes Include

  • Trying to connect to Quickbooks Online with an account that doesn’t have Master Admin privileges.
  • Use Sandbox option. The sandbox comes from Quickbooks Online, and it’s used to test. You might not have a sandbox account, so be sure to uncheck this.

After the initial connection

There are two options for using LedgerLink:

  1. Use LedgerLink to store data as a starter file.
  2. Use LedgerLink to act as a bridge between Quickbooks Online and your custom app. Basically, use LedgerLink for its sync engine.

LedgerLink Configuration

Head to the “Sync Config Log” screen. This is the place to mark what you want to send-to and receive-from Quickbooks Online. All of the entities in LedgerLink can be either sent or gotten or both. Review this section to see which entities apply to your needs and uncheck those that don’t.

Read more information about LedgerLink here. Download the demo and give it a try.

We need to do better logging in Karbon, both developer logging at design time, and process logging at runtime. This video covers some of the progress we have made towards solidifying our approach to logging.

Why not just use DBTransactions?

It is tempting to use the DBTransactions table as our log, and in fact, it includes many log-like features. However, DBTransactions is really about database transactions, not logging. Logging is really a separate thing, which has many nuances of its own. Conflating the two concerns is probably not wise in the long run.

Logging from within Transaction

The other problem is that you want to log info from within a transaction and make sure that data stays even if the transaction is reverted. So step 1 is to develop a log method for logging within the transaction. That “transaction log” can later be sent of to the main log, which we’ll get to later.

This feature is not yet “done”. More work needs to go into generic logging, and process logging. Stay tuned for that.

Karbon Info

Karbon is our free framework for building complex apps. We share rough updates like this from time to time because people have expressed interest in what we are doing. For more info on Karbon see here.

Come join us for our free webinar introducing Karbon our free application framework for building ambitious custom business applications. If you are interested in using the FileMaker Workplace Innovation Platform at a high level you’ll probably want to see what we have cooked up.

UPDATE:  The webinar is now full. We’ll have more of these in the future. Stay tuned.

FileMaker is easy to get started with, but unlike other “easy” app builders it doesn’t leave you short of your goals. You can use it to build large powerful complex applications that run important business processes as well. Karbon shows you how to do that in a way that is scalable, testable and maintainable.

The webinar is free, and Karbon is free!

For more information, you can read the manifesto, and check out the github page.

Training Day at DevCon 2018 finally arrived, and I was ready. After fretting over my ‘lesson plan‘ for so long, I was ready to do some FileMaker DevCon JavaScript training, for FileMaker developers. So I left the breakfast room and entered my classroom. I was hoping to get some moments of calm before we started. To clear my head, to focus on the material at hand.

I walked in the room, and there were like 20 folks there. “Woo,” I thought.  I got them started on some ‘morning work’ to prepare for the time.

A few minutes later, there were over 60 people in the room., still barely 45 minutes before the 8:30 AM start time. I handed out more USBs.

By 8:30 am, the start time, folks were ready to learn JavaScript. A lot of them.

The JavaScript worm

Slowly but surely, JavaScript is becoming more present in FileMaker developers’ minds. The training session brought in over 150 people that think about JavaScript. These folks are interested in the power of JavaScript, in the fact that it is easy to learn and use. We are intrigued by the possibility that we can develop interactive charts or include a whole set of functionality in just a few minutes (maybe an hour at the most). We recognize part of making our custom apps innovative for the workplace is to use all the professional tools available, including JavaScript.

There’s a season for everything

I’m not the first to advocate for JavaScript in FileMaker. Many folks have come before me and have said the same thing. I rest on their shoulders. But now, it seems, is the good time to really explore what we can do with JavaScript (almost anything) in FileMaker. We get a glimpse at what we can do with the language. The time is right; let’s keep moving forward.

Many of the people & compaines who’ve contributed to my knowledge of JavaScript and the Web Viewer.

In the session

Focusing on pure JavaScript, we studied how to work with the Web Viewer.

For a very quick three hours, we took a look at JavaScript in the form of pure JavaScript and in the form of JavaScript libraries.

JavaScript, pure

First, we did a very brief study of some JavaScript concepts. I believe we all should know a little bit of the language so that when we want to do something in a library or in a blank web viewer, we have the knowledge to achieve it. So we spent time on pure JS, writing functions that added text to the web viewer or changed the color of a background. We built buttons in the web viewer and attached events to them. We learned a bit about variables and scope and functions.

JavaScript Integrations

After the break, we turned to JavaScript libraries, the fun part. Together we walked through how I have set up working with libraries to integrate into our custom apps using FileMaker data. We started with a chart and set it up, talking about that set up and how to customize the chart. The concepts we practiced in the first half helped us out here.

Along the way, I got to work with individuals and help them through very common mistakes (a missing comma or semi-colon). I also spoke about JavaScript concepts such as variables and scope and functions.

It was quite unfortunate that we didn’t have a full day to do this work. I wanted to spend more time on pure JavaScript and on how to integrate libraries. We completed 9 out of the 25 exercises, and only got to review one out of the eight integrations. But not all is lost. See below for more info on a plan.

I encouraged folks to sign up for the FM/JS SLACK group we started up a while ago. And many folks did. That’s one of the ways we’ll stay in constant contact throughout the next year.

Beyond the session

People left the session excited about using JavaScript. Many people approached me saying they see it as much more accessible now that we went through it. They were inspired to begin to use what we did in their own apps. That’s very cool. My goal has always been to excite FileMaker developers about JavaScript.

During the week of DevCon, at least two people continued the training session by working on an integration. Phillip Jaffe worked with the DataTables integration, and Logan Cornelius worked with the C3 Charting library. Through text messages or on SLACK or in person, I worked together with them to get their libraries integrated and to talk about the nuances of the library. We met at the Geist Interactive booth or in the hallway to get it worked out. Both attendees got their work done by the second day of the conference. Logan reported it took him about an hour to get the charting library working with data from his app.The rest of the week he tinkered with it, changing colors, adding options. 

I could tell he was excited about the work he did. And so was I.

Continuing the session

Lest anyone think they’ve heard the last of the session, we have a lot in store in the upcoming year. We want to keep this conversation going and inspiration hi, so we will do something with JavaScript every month leading up to DevCon 2019!. Here’s a list of what we’ll do and how you can participate.

  • On the FM/JS SLACK group, we’ll talk JavaScript and how we’re using it in our apps. It’ll be a great casual conversation. Please join and get in on the conversation.
  • The JavaScript training materials are found here. Download those and try them out.
  • I’ll do videos for each of the exercises in my JSPlayground file, and will set them up on a JavaScript-dedicated webpage.
  • I will do a ‘let’s integrate’ video for each of the integrations found in my session files. You can watch and listen as I work on one of these at a time.
  • As logistics allows, I’ll talk JavaScript at user groups throughout the community. Todd and I will be at the west coast user groups (Portland, Seattle, FMDIG, FMDisc, and San Diego) in October to talk JavaScript and other professional tools.
  • Occasionally we’ll do webinars on JavaScript and JS integrations. We’ll alert you in plenty of time so you can plan to attend.
  • And of course, I’ll suggest using JavaScript in the forums. I’ll be the first to admit not everything is a hammer (not everything needs JavaScript) but where it is a viable option, I’ll suggest and provide a sample file.

Join us for any of these events. We’ll take the next year to learn JavaScript and how it can be used in our custom apps.

Filemaker Devcon JavaScript Training

The future of FileMaker and JavaScript is bright. We will continue to promote its use and inspire folks, and I hope to work with others in the community to do the same. JavaScript is one of the many professional tools FileMaker developers can use to innovate.