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 licence. We have a demo licence 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.

Register here, or copy and paste the url below

https://webinar.ringcentral.com/webinar/register/0a6c78d39ec444b1ce9025900181c3c5

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.

 

DevCon was such a huge blast that we are extending our DevCon Sale through this Friday. You can get 20% off all the products in our store.

We only do one sale a year. This is it and ends on Friday ( tomorrow ). Now is the time to save on all these great products.

  • FMPerception – the leading Realtime Developer Intelligence Tool.
  • Otto – Fully Automated File and Data Migration
  • Barcode Creator – Award-winning simple barcode generator.
  • LedgerLink – QuickBooks Online Integration
  • GoZync – Offline Mobile Sync Platform.
  • GoDraw – Diagramming, drawing and annotation add-on.
  • Kanban – Add Kanban boards to your FileMaker Apps.
  • Editor – Rich Text Editor addon for FileMaker
  • GoSign – Advanced Signature Capture for FileMaker Pro, and FileMaker Go

Use the coupon code DEV2018CON when you check out to get your discount.

FileMaker DevCon is my favorite time of the year. More than Christmas or even a vacation, I enjoy the deep dive into FileMaker for an entire week. The pool in the lavish hotel is a distant thought; I’d rather focus my time and energy on the technology and the community that makes up FileMaker.

And so I did throughout this entire week. Let’s take a look back at the highlights of the event, surrounded by Smurfs and QuakeCon and filled with great food, connections, and inspiration.

FileMaker DevCon 2018

This year, DevCon was held in Dallas, TX at the Gaylord Texan Hotel & Resort Center. The hotel was fabulous. There were plants and water and waterfalls and bright sun and Texas architecture.

The atrium of the DevCon hotel

The atrium of the DevCon hotel

I arrived a few days early to finish my training session. I could work in my room for a bit. Then I could walk to the atrium to do some work at a randomly placed table or chair, then move outside in the shade and humidity to continue for a bit. I enjoy getting there early just to relax. I found I could sit near a waterfall or geyser and the noise would drown out the sound of people talking as I focused on my work!

It’s tough to nail down one event that made this year’s FileMaker DevCon so special and inspiring. There’s too much going on in the week, and most of it great, to know exactly what causes the high I feel at the end of the time. Since there are are a plethora of event, I’ll group them not by day but by topic: Community, Sessions, and FileMaker.

The Community

I’m an introvert. A lot of FileMaker developers lean that way on the spectrum. But I think our introversion goes out the window at DevCon. For at least this week, we introverts tap into the current of FileMaker running through the Exhibitor Hall/food hall, in sessions, and at the bars. (Full Disclosure: I did often get away to a secluded spot on the grounds just to enjoy some solitude).

Geist Interactive’s booth at DevCon. Super comfy!

Everywhere I looked people were there, and I endeavored to meet them all.  I met folks as I walked to get some liquid energy, and met folks as I squeezed between them and narrow rows of chairs to find a spot in a session.

There’s always a bit of a balancing act between meeting new people and refreshing connections from folks I’ve met over the years. I tried to do both. I’m partial to meeting those people with the 1st-year ribbon since I recognize this is an intimidating event to attend. I seek those folks out and have made many connections and friendships that remain over the years.

As I walked through the hallways or peeked in the bars, I saw FileMaker DevCon attendees sitting there engaging in some conversation with each other. Inevitably, they huddled around a computer talking animatedly about some cool technique they either learned here this week or have been using already. I love seeing that.

The FileMaker community is an exciting one. It is awesome to come to DevCon and be a part, in person, with this group of people that love or are learning FileMaker.

The Sessions

FileMaker people are great, and I tried to meet as many as I could, but I was there to learn more FileMaker. There are sessions for everyone, and it’s my opinion we can continue to learn. I went into each session with an open mind and willingness to listen and learn, and I did learn. I picked up something valuable from each speaker, and I can apply to my thinking and development practices.

The videos of each session will be available soon in the FileMaker community.

Here are some highlights of the sessions.

Geist Interactive

We at Geist Interactive led in total four sessions during the normal week. Here’s a quick recap of each.

Todd Geist spoke on two topics: Modular FileMaker 2.0 and Microsoft Add-ons. In the first session\, he spoke of the changes coming to the Modular FileMaker site and how these changes are preparing for the future.  Not wanting to wait for said future, Todd, the night before, started the website the night before and wrote a small app to copy the XML from some custom functions to place into any custom app. Live coding!

In Todd’s second session, he again built an add-on for Outlook to connect directly into FileMaker. He did this on the stage, coding and talking and not making too many mistakes. Certainly, people show up to learn, but I also think they show up just to watch him code in real time.

Lance Brandenberg talked about testing in FileMaker. The session went quickly, filled with details and information and good live coding. I was sitting near the front, and as I got up and turned to leave at the end, I saw folks sitting there in some sort of amazement. They were trying to digest all that they just saw.

The crux of Lance’s session is that we should test in FileMaker the same way JavaScript developers test. We should write tests that test the intended functionality of each business-logic script. Of course, that presupposes each script is set up in this way: It receives a JSON payload, and it returns a JSON payload. We should write scripts that test the scripts in the app. I work with Lance, and I’m still trying to digest it.

I (Jeremy) led a half-day training session called “JavaScript for FileMaker Developers”. If I do say so myself, it was exciting and fun. There were over 150 people in the small room. We worked together to learn more about JavaScript and how to integrate JavaScript libraries. As I do after every training, I came away energized and ready to do more. I’ll write about that very soon.

Other Sessions

There were so many other sessions that showed off the speaker’s passion and knowledge of FileMaker, and in many cases displayed the speaker’s innovation. Here are a few that I attended and enjoyed.

Create a Starter File Implementing Design Standards to Call your Own

Deborah Zempel. This session was a good reminder to set and continue to use design standards. She also went over ideas about when to use certain objects such as a card window or popover.

Performance Tips for Beginners

Josh Ormond It is always great to get down to the nitty-gritty and take a performance audit of any system. Josh showed those areas that could possibly cause an app to crawl and, of course, how to fix the issues.

Use JSON to Get Arrays

Daisy Graves I enjoyed this session immensely. Daisy explored everything there is about JSON and showed many examples of using the native functions to construct and read-from JSON objects.

Modular Programming with Card Windows

John Renfrew John never ceases to amaze me with some insight about FileMaker. He explained how useful card windows are to create one module or window to perform one function (such as data-input) many times throughout.

It’s a Trap! Errors in Scripting

David Jondreau David, a first time speaker and a buddy of mine, spoke on a topic of great interest. How to trap and handle errors in our scripts. I appreciated this session; there’s not a whole lot out there about how to do so. David shone the light on steps that causes errors and the steps we go through to handle them. General Ackbar would approve!

Flexible Reporting with Virtual Lists and ExecuteSQL

Martha Zink Sessions led by Martha are always full of great tips and unique demos. She takes great pains to make sure her files are clever and good looking. I use these two techniques a lot, but Martha taught me a few new things.

IoT and the FileMaker Data API: Sending Sensor Data to FileMaker Server from a Raspberry Pi

Wim Decorte. Wim’s sessions, too, are chalk full of interesting tidbits. In this session, he introduced us to the world of the Raspberry Pi and IoT and how we can use it as FileMaker developers. I’ll refer to this session for many weeks out.

Under the Hood with Clay

Special Mention: Clay Maeckel of FileMaker, Inc. Clay did two sessions, one on the new data migration tool, and one on storage and queries. I must say, I thoroughly enjoy listening to Clay speak. As one of the few original authors of the FileMaker platform, every word he says is steeped in FileMaker knowledge and history. Listen to these sessions and any other he’s done as much as you can.

There were many other sessions. I actually was exhausted by the end of the conference for the sheer amount of information I consumed. It’ll take time to digest it all.

FileMaker

FileMaker, Inc. puts on a great conference. There might have been a typo in a sign here or there, but DevCon is a well-organized event, full of everything FileMaker. I’m sure we can all forgive the random misspelled word. Shari Martinez and her team pull off something extraordinary for the community. Rosemary Tietge and her team organize the sessions and speakers and events. Rick Kalman and his team of FileMaker PMs and engineers get to share the present and the future and generally their passion for the platform. It’s an amazing week of fun and learning.

Engaging with those that Create FileMaker

The PMs and the engineers of the platform left the Wedge and joined us. They got to speak of the platform they clearly love developing for us.  They are incredibly interested in making each product as strong and as full-featured as possible. Many of them sat with FileMaker developers to flesh out reported bugs or performance issues. And of course, they love talking FileMaker. I sat with a few of them at dinner one evening, and for three hours, we just talked FileMaker (I might have initiated all the conversation topics, but they joined in).

The entire platform is doing well and has a bright future. FileMaker DevCon is a chance to see the current state of FileMaker and to see what the folks at the wedge are working on to make it even better.

FileMaker DevCon 2018

FileMaker DevCon 2018 was a success. I enjoyed it. I got to meet a few folks and even get my picture taken with a few! Like others, I’ll be reviewing the notes from each session and try to incorporate some of the best tips and techniques into my daily practice.

We are very excited to announce that our Karbon framework will be released at the FileMaker Developer Conference in Dallas next week.

Karbon is an open-source framework for building ambitious custom FileMaker applications for the modern era. By “ambitious” we mean complex business applications of significant value that will be around for a while. If you have a simple problem, Karbon will just frustrate you and get in your way. But if you believe, as we do, that a thriving business requires a flexible and robust custom application, then Karbon maybe what you re looking for. In this post, I am going to lay out why we built Karbon and why we are releasing the core as an open-source project.

Times Have Changed

A lot has changed in the over 20 years that we’ve been developing complex applications with FileMaker. The landscape into which we deploy our solutions bears little resemblance to what it looked like 20 years ago. Technology has changed. Competition has changed. What’s possible has changed.

FileMaker has done an incredible job adapting to changing technology demands. There are few, if any, platforms that can boast 25 plus years of continuous success. The FileMaker Platform is incredibly robust and flexible, and it provides a solid foundation upon which to build custom applications of significance and value.

But what does an application of value and significance look like today? What does it need to do that it didn’t before? What are its characteristics?

Here are some of the high-level issues that we encountered over and over as we built and rebuilt Karbon and worked to solve our customer’s needs over the last several years. A custom application with significant value is going to need to do most of the following.

  • Integrate with other Apps and Handle Distributed Data
    Critical data is now spread out over many apps and services. It is no longer reasonable or even possible to avoid integrating with other apps and services. Even FileMaker Go apps often have to work offline. The ability to exchange data with third party services or an offline FileMaker Go app is an important first step, but without understanding the implications of distributed data, you can quickly get into trouble.
  • Work over the Internet
    Even if you aren’t planning to deploy with WebDirect, your FileMaker application must be built to serve users in across the country or even the world.
  • Allow for Collaborative Development and Maintenance
    It is no longer reasonable to build a business on a custom application that that relies on a solo developer—the risk to the business is too high. Even with the very best application development platform, solo developers or small teams will find it challenging to innovate to remain relevant in today’s fast-paced tech world. Applications must be able to incorporate the efforts of other people effectively, either by employing larger teams of developers or relying on third modules, which can be incorporated quickly and with little effort.
  • Automated Testing of Critical Business Logic
    If you can’t verify that critical business logic works, you can’t make changes to your logic without the fear of breaking your application. If you can’t change your logic, you can’t change your business—if you can’t change your business… well… somebody will come and change it for you.
  • Fail With Grace
    Applications crash. They get disconnected from the server. People close their laptops. Somebody locks a record. The consequences of these kinds of failures on valuable data can be severe. Given the distributed nature of networks and applications, these types of problems are even more common today. A valuable application must be able to handle failures while safeguarding critical data and enforcing complex business rules.
  • Solid, but Flexible
    For an application to have lasting value, the data has to be dependable and lasting. If you build a data structure that can’t be easily changed or adapted, you may find yourself painted into a corner.
  • Embrace Standards
    It is no longer reasonable to invent solutions to problems that are already solved by the rest of the world. All this does is create confusion for new developers coming from other other platforms. Time spent doing it our own way is time we could have spent creating value.
  • Continuous Improvement
    A complex business application today is never complete. There is no finish line. There is no final feature to be added. It continuously evolves. The application and its development process must be able to thrive in such an environment.

Karbon’s Values

We have tried to build Karbon to address or begin to address all of the issues raised above. We should be clear that it isn’t close to “done” (nor will it ever be), but we think it’s far enough along to share with the rest of the world. We’ll have more information and downloads available at DevCon, but for now, I wanted to lay out what we call our Karbon Values. These are the principles that we tried to use while making decisions on our development approach.

  • First Correct, Then Fast Enough, Finally Pretty
    A beautiful user experience that hides fundamental problems in the data model or logic is far worse than an ugly user interface that handles the data logic and data model well.  That isn’t to say we don’t value nice user interface and user experience. We do. We just value data integrity more.
  • Modular Design
    We follow modular guidelines laid out a few years ago. Keeping things in their own box as much as we can within what FileMaker offers us helps us with organizing code especially at the sub-file level.
  • Database Transactions
    We consider any complex logic that updates more than one record broken if it doesn’t use database transactions. Once you learn to write transactional scripts, you are unlikely to want to return to any other method. It’s easy and safe and frankly has fewer moving parts.
  • Separation of Concerns
    This is not the same thing as the Separation Model, although it shares some of the ideas. Karbon has three core files: 1) a UI file, 2) a Controller file, and 3) a Data file. We don’t do this to avoid imports while migrating from development to production. We do this because this makes it easy to make consistent decisions on how to write good code. When we are writing a code in the Controller file we “know” that we are not dealing with user interface, or data modeling relationships. We can focus on scripting solid business logic. When we are in the UI file we can focus on building a good user interface, and not be concerned about building layouts or graphs that are concerned with enforcing business or database integrity rules, as those are handled by the controller scripts.
  • APIs First
    Karbon’s modular design allows building testable and transaction-safe API scripts based on JSON for all critical business logic.
  • Automated Testing
    We have integrated techniques into Karbon and into its supported files that make it easier to write testable code and write tests to validate rules. Tested logic is maintainable logic.
  • Separate Dev and Production
    Working on live files is a recipe for disaster. Separate development and production environments make testing, development and maintenance easier. Data migration issues have been mostly handled by new tools from FileMaker and other 3rd parties.
  • Understand the Source of Truth
    In modern systems, you likely will work with data that comes from third party systems; you need to know which app is considered correct.  Sometimes this isn’t always clear. Take invoices as an example: If you are integrating with an accounting system—like Karbon does with QuickBooks Online (QBO)—then you are likely sending invoices to that system. Once the invoice gets there, it may be modified in QBO; which is one is now correct?  Does FileMaker hold the truth, or does QBO? The answer, in this case, is provably QBO.  Once an invoice lands there, it has impacts on accounting reports and taxes. And once an accounting period has closed, it can’t be updated again from FileMaker. So clearly QBO holds the truth. Understanding that drives your development approach. For example, Karbon (by default) let’s QBO assign new invoice numbers.
  • Better Data Models Last
    Data models like the Party Model take longer to implement, but once implemented they allow the app to scale and adapt and avoid disruptive changes.
  • Spend the Time on The Right Stuff
    User interfaces change frequently. Every year we get new and different widgets from FileMaker that might radically impact how easy it to build a type of layout. For example, FileMaker 17 shipped with a drop-dead simple way to build Master Detail layouts. We’re wasting our time if we spend our time on complex workarounds but should instead focus on investing in transactional scripts with tests—this code likely won’t need to be changed or to become obsolete by FileMaker’s next release.
  • Sharing is Caring
    Sharing is not just about “feeling good” or “giving back to the community,” although those are critical aspects of it.  When you write code that is shareable, you are writing better code. It will have been worth it if the only person you share your code with is your future self.
  • Simple is Better
    Avoid building abstractions that don’t add value. Saving yourself some keystrokes is not value. Try to keep things as simple as you. Create abstractions that provide more value, without making things harder to read.
  • Documentation
    Documented code has a better chance of being successfully maintained then undocumented code. The standard we use also allows us to build code-generation tools.
  • Write Code that Writes Code
    If possible use, write FileMaker applications that can write other FileMaker apps. We proved this works well with Generator, our free utility for generating scripts to interact with JSON web APIs.

OK, But What Can You Do With It?

That’s a fair question. Karbon’s first release is focused on Customer Relationship Management. It handles contacts, activities, and some sales transactions.  It has a fleshed-out Party Model. It has tested transactional scripts for critical business logic. It’s pre-integrated with several APIs like Smarty Streets and Quickbooks Online. It is a solid foundation to build a business on, and we have plan to continue extending the feature set in the future.

We think that some people who are at the beginning stage of a project might just choose to adopt Karbon in its entirety. Others who are already deep into a project will be able to grab large chunks of it and move them into their own system. Still, others may just tear it apart and try to learn everything they can from it. All of those outcomes are a win as far as we’re concerned.

Why Give it Away?

The core of Karbon is open source and will remain free. We think that a project like this has to be free to fully express the values listed above. But it is also a practical approach to a large and complex problem. As we encountered more of the issues outlined above, it became clear we needed a different approach to provide our clients with awesome value. We also needed this for our internal applications. We know that it’s a large and challenging task.

We want feedback and help from people who are interested.  Good software is always widely used, and we’d like others to use Karbon and tell us where it doesn’t make sense, or what’s broken, or what it should do instead. Lastly, we want to help improve the state of the art in the community. We want people in the community who want to build—or already are building—these kinds of projects to have good examples of how to deal with the issues we discussed above. We hope that this will create a cycle of virtuous feedback that will benefit anyone who chooses to participate.

How does Geist Interactive Get Paid?

At the end of the day if we can’t afford to work on projects it doesn’t matter how cool they are. They can’t get done. So clearly, we think that this will pay off in some way.

  • Karbon’s core will be free, but we will likely ship it with several optional modules, which we will charge for. Users can remove them or not use them at all, and not have to pay anything. But if they want to use them they will need to license those parts. For example, Karbon will ship pre-integrated with Quickbooks Online. The module that empowers that integration is called LegerLink and will cost $500/yr.
  • We also have some other modules that will not ship with Karbon but will be built to work with Karbon.  Those modules may carry a fee.
  • We will also offer support, implementation and training for Karbon.

Any Questions?

If you have questions and are going to DevCon come to see us at our booth. If you aren’t going to be at DevCon keep a close watch our various feeds for news during the conference. We’ll be announcing how to download Karbon, and how to get started during the conference itself.
Thanks for your interest. We hope you find Karbon useful.

In less than a week (as of Monday, July 30), I will work with FileMaker developers to learn, or get started learning JavaScript. I can’t wait. While I’m nervous about it, I’m also pumped that we get to talk the power of JavaScript and the power of the web viewer. It’s been my life’s goal (for the past 4 or so years) to get FileMaker folks excited about using JavaScript. We get to take another step in that direction. JavaScript is easy, it is powerful, and it is part of native FileMaker.

If you’ve not yet registered up for the training day (an additional cost), I encourage you to do so. I know it’s an investment. So to make sure your return will be adequate, I’ve described in pretty minute detail what we will do during the morning (there are other great sessions in the afternoon). You can check out the outline here. And you can review this video.

 

The Highlights

On our minds

As we wrap our brains around JavaScript, we’ll keep in mind two questions:

    1. How does our current understanding of FileMaker help us learn JavaScript?
    2. What are the benefits to using JavaScript in our FileMaker development?

In education, these are called “Essential Questions”. These are vital mainly to our adoption of JavaScript as a viable tool in our FileMaker development, and they keep us grounded. As cool and powerful as JS is, we need to remained focused on our client’s data and custom app and needs.

Hands-on

We will spend most of the time in the session:

  • Working with pure JavaScript. We’ll write little functions that accomplish something for data presentation in FileMaker or data manipulation.
  • Exploring how to set up using JavaScript in any environment, for any custom app.
  • Implementing and customizing current JavaScript libraries out there for our use.

I’ve got quite a few files for us to work with. Here’s a few screenshots.

We will spend a lot of our time in here. writing functions that display our data in interesting ways.

We will spend a lot of our time in here. writing functions that display our data in interesting ways.

This file is a reference for what is known about the web viewer object

An example integration we’ll implement.

Join the JavaScript revolution

I encourage you to sign up for this training session. The more FileMaker developers that know and use JavaScript, the more the movement grows and the more awesome custom apps get delivered to clients.

Join me August 6, 2018 at 8:30 a.m. at DevCon 2018 to begin the JavaScript journey.

-Jeremy

Introducing FileMaker Kanban. This tool organizes data such as tasks in a visual way into lanes and cards. It is familiar for users and flexible for developers. The tool provides a full suite of data-management functionality. A FileMaker user can organize the tasks into different lanes, reorder the lanes, edit the data, and add new cards to the board and to FileMaker.

Familiar for the User

Kanban provides a rich and familiar interface for all FileMaker users.

They can clearly see the organization of the tasks as cards on lanes. Further, any user can move the cards or lanes, repositioning them on the board and saving the position back in FileMaker. Cards can be added to the board, data can be edited. There’s a lot of functionality possible.

Flexible for Developers

FileMaker Kanban is just that. It consists of a layout, a web viewer, and some scripts. That’s it.

These scripts allow the developer to make many changes including:

  • Change the color of the board background
  • Remove dragging functionality
  • Remove editing functionality
  • Use data to change the color of a card background

And much more. Find out all the possible customizations.

The scripts that run from the FileMaker Kanban board can be easily disabled or adapted for any custom app.

And the data that generates the board is a JSON object, which can be constructed in any number of ways using just FileMaker. The example uses tables and fields and records, but that’s only one way.

Give FileMaker Kanban a try

Read more about Kanban and download the demo and see how Kanban is easy to use, to implement, and to customize. The demo is fully-featured, though it does limit the data to three lanes, and shows an additional lane with relevant Geist Interactive blog posts.

 

We love Kanban, and we are excited to use it in our daily work. See if it works for you.

 

Lance Brandenberg, Solutions Architect here at Geist Interactive, will present a session title “Testable FileMaker Custom Apps”, focusing on FileMaker testing.

He is a first time speaker at DevCon, and we’re excited that he is another voice in the ‘testing-in-FileMaker’ conversation. He hopes to jumpstart the topic again and get folks talking about it because, as he will argue in his session, FileMaker developers have more of a need to rely on testing.

His session is Wednesday, August 8, from 1:00 p.m. to 2:00 p.m. Here are the details:


Session Description

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.

Recommended Background

How to write modular scripts, trapping for errors, and some experience with using JSON objects.

Session Objectives
  • What is Testing?
  • How to write testable scripts
  • Benefits of testing
  • Custom functions needed for testing

To get a better understanding of this topic, I sat down with him over RingCentral and asked some questions. Catch the video here of our interview. You can also read it here.

Here’s our conversation in written form:

Q: Who are you? What experience do you have in FileMaker?

A: Lance is a Solutions Architect at Geist Interactive. He’s been working in FileMaker since 2006. He stumbled into the platform while running a screen-printing business. Like many of us, he decided to get out of that game, selling the business in 2011 to become a full-time FileMaker developer. He’s in San Diego, and really enjoys working at Geist Interactive so that he gets access to the cool tools that Todd and the company have developed.

Q: Describe your session.

A: Lance’s session “Testable FileMaker Custom Apps”, on FileMaker testing. Building FileMaker solutions so their testable is interesting. There doesn’t seem to be a lot out there in the FileMaker space, so he’s excited to start that conversation. There’s a lot of ground to cover: modular scripting, custom function libraries. For attendees, you’ll see the benefits of testing and some live coding to see how to build these tests. (Lance will be brave and live-code!).

Q: Why is FileMaker testing important?

A: Remember the game “Wack-a-Mole”? It’s extremely close to how we develop in FileMaker in complex apps. We develop a new feature, and that has the potential to break something already working. Lots of feature requests means we need to test more, and we then need to develop a robust testing methodology. It’s possible we don’t test enough since we do have the rapid-application-development platform, but we really need to.

Testing allows you to build more durable solutions. If you write a test a year ago, and you add a feature today, you should be able to run the test causing nothing to break. We don’t have to worry when we deploy that something’s going to break. If we rely on tests and new tools that we have such as the Data Migration Tool.

It is not simple to test, but it is highly worthwhile. Testing is specifications in code. Scripts that run tests are run by anyone.

Q: What is a tip or trick that you’re going to demonstrate in your session?

A: Lance hopes to have a FileMaker Testing Generator file built. It is similar to our Generator file. A FileMaker developer can create a test using script comments written in a standardized JavaScript form. Test-writing seems boring and challenging, tedious. Lance’s Testing Generator file will help write tests a lot quicker with no mind-numbing work to do.

Lance welcomes anyone to continue the testing generation idea.

In all of software development, testing is complex. We have to be aware of what testing can achieve, and we also should test everything we can anticipate.

Q: Does the person who develops the code also test?

A: The best way to produce tests is the developer who makes changes or creates new features. She knows the system inside and out and knows how the app should work.

Q: Is Testing different than QA work?

A: Yes. A QA person is operating like a user, doing some user testing. What Lance will talk about is more analogous to functional testing. Lance will demonstrate with a purchase order system where a developer is adding new features and how to add tests to accommodate those new features.

Q: What materials will be available?

A: Lance has three libraries on GitHub libraries: JSON Validations, a custom-function library, and an error tracking library. These are all FileMaker custom functions. Lance will also include the starter file upon which he will do the demo. Finally, he’ll have references to documentation on such things as JavaScript standards and his Testing Generator library.

Q: What are modular scripts?

A: There are a few sessions at DevCon this year. Todd will speak of Modular FileMaker, and John Renfrew will speak about Modular Programming. These modular scripts should be a must-attend session. Modular scripts are, in essence, scripts that perform one function well. For example, you can build a script that returns the end date of an event if the script is given the start date and the event length as a parameter. Inside this script is the logic that will return the correct end date.

Q: How much JSON do you, Lance, use in your daily work?

A: Every project Lance work on uses JSON primarily to pass data around. JSON makes modular code easier. Each script has to receive data and return data. The chunks of code (in the form of JSON) make it very easy to work. Lance will always use JSON.

Q: What is something we could know about you that has nothing to do with FileMaker:

A: Lance will be a dad in December.


Lance’s session, “Testable FileMaker Custom Apps” is Wednesday, August 8, from 1:00 to 2:00. Check it out. It will be a good one.