Monthly newsletter about FileMaker®, iPad®, iPhone®, and AppleScript®
 June 2016

Summer is knocking on the door

To read a poem in January is as lovely as to go for a walk in June.”
-  Jean Paul Sartre

Hot News

Come to see us at DevCon

Less than one month is remaining to FileMaker DevCon 2016 so we cannot forget mentioning this major event for every FileMaker developer.

Of course, we’ll be there again, including HOnza, our champion of the last year’s DevCon Developer Cup, so make sure to come to our booth and schedule a free consultation.
Read more about our DevCon presence

Fresh Experience

Faster import without indexes

Importing data from one database to another may become a long-lasting task. We release new version of our own internal system almost every month, and because our data file has grown up to 6 GB over years, importing data from previous version has recently started taking way too long. Actually, yet two versions ago, it was taking almost 6 hours, so we had to start before going to bed and finish the task early in the morning to be able to start using the new version the next day.

We almost got used to this practice, until it recently prevented us to deploy new version as scheduled and we had to re-schedule. So we though about way to make the data transfer faster. First thought led us to omitting some less important portions of data and importing them later, until we got the following simple idea that changed the game for us completely.

As a new practice, we are now temporarily disabling all indexes in the new version. We do this by using the Recover command and setting the advanced options to remove indexes and have them rebuilt later.

Because FileMaker Pro does not have to build them while importing data from the previous version, the whole data transfer now takes less than 2 hours. Just running a server-side script that performs find in every table then ensures that the most important indexes get re-built by the server before we start using the system the next morning. But the system itself can be deployed and functional before we go to bed, without a need for any early-morning post-processing.

Let us help you with your our optimization. Schedule a call at http://24usw.com/ttintro or come to our booth at DevCon to consult your project for free.

CROSS-PLATFORM DILEMMA: Time out or not to time out?

An interesting issue has appeared when our web developers were working on a project where the Angular JavaScript framework was used. The application we developed is supposed to let the user log into the application for a limited time despite he is not connected to the Internet.

The issue appeared on Windows when implementing a technique to discover whether the app is offline or online. When the user was offline and tried to log into the app on Windows, the app wasn’t able to determine that he was offline, and instead was repeating the check endlessly.

Even though Angular is supposed to behave the same way across platforms, we’ve discovered that in this case the call was timing out by default on Mac, but did not have any timeout on Windows. Discovering this was difficult, solution then was easy. Manually specifying connection timeout has made our app behave well again.

Do you wanna avoid having to deal with such dilemmas? Let us help you with your cross-plaform development. See https://www.24usoftware.com/customdevelopment/

Current info at compile time, automatically!

Let’s say that you want to have permanently stored information in your program, valid at compile time - such as current build number from GIT, or the most recent EULA reference - and use it as a constant. One solution is always to copy the information ahead of the translation, which, however, has many disadvantages, such as human error possibility. The other way is to automate it.

Most of present development environments allow for execution of terminal scripts - for example the bash syntax - even before the translation of program. This can be used to create or modify some header file of the code being compiled to include the information. Due to script being performed before start of translation, informations are acted as is we wrote them ourselves.

Thanks to such scripts we can save time and be sure that we have not forgotten to update any commonly used piece of information.

Let us take care of your FileMaker plug-in, mobile app, or any other native software project the same smart way we take care of our own projects. Schedule a call at http://24usw.com/ttsales to discuss your specific needs with us.

Spread the Word

Did you enjoy this newsletter? Share it with your friends.
Feel free to send this link to anyone you like: