Boost your Libraries

For those waiting to see what happens to the Node.js controlled Lego car, right now it is stuck in the pit lane waiting parts. I can say though that I have had fun linking up the motors and testing with my iPhone just a little teaser there.

So what is this blog post all about. For just under a year now I have been developing a new product which is both a service and an application. With the mind boggling array of API’s emerging and the need to connect to these API services there is a need to simplify and streamline this use. Without going into full details pre launch I will just delve into the FileMaker Plugin development.

Being an avid programmer I often throw myself into the deep end and none could be more deep then starting to develop FileMaker Plugins. After some research I came across a site called 24U Software whereby I was able to download a template project to start programming with. The Plugin code is written in C and some C++ which I haven’t touched since I was at University and even then it was basic stuff. At first I was thinking of all the nice and cool functions I have become accustomed to with PHP, and how it is going to frustrate me now and I could see my hair falling out even more.

The very first compile worked but I was left with a sense of uncertainty as nothing ran. I started to backwards engineer the template code and found that there was no main function so how was this going to run. The answer lies with a Senior FileMaker Developer who said they need to be placed in the Extensions directory of the FileMaker installation. Moving forward I still wasn’t getting anywhere so I began to talk to our CTO Jason Erickson and developer of  SyncDek who pointed me in the right direction, but I was still a little off the pace. After a string of successful compiles the first batch of plugins were created.

After a few tweaks to the plugin the FileMaker Developers were let loose to have a play. What I found was FileMaker was able to get the information from the API services but handling the amount of data was cumbersome and slow.

Going back to the drawing board I decided to relearn C++ and what I have found is quite amazing. C has been around since the late 60s early 70s but since 1983 C++ has had a steady amount of changes over the years but from this we have languages such as PHP, Java, JavaScript, Objective-C and C# to name a few. What has become interesting is the sudden rate of change since C++11; the facts are going to be a little shady but since C++11 I realised that simple things such as a for loop have now been introduced, now what does this all have to do with the title of this post.

A library called boost which is now being dubbed as the test path for the C++ standard library has been giving developers more freedom, less hassle and a more richer programming experience. For instance string manipulation in the latest version of the Plugins I am producing, manipulating the string data coming in from the API service server has increased the performance of the Plugin and reduced the development time needed on the FileMaker developer. I can with out creating complex routines achieve the same simplicity that most modem languages give.

So far I have scratched the surface of this massive but powerful library but wanted to share and really spread the word of the boost library. One thing that does need to be done is create a web site that outlines the functions what it can do what it returns if any thing much like the PHP function library site does and even have developers post examples. Boost does have a sort of web reference library but I have found this cumbersome, stackoverflow has been more helpful than this library. I feel that if there’s a move to get people programming more then more needs to be done in terms of documentation.

Using the boost library in my projects has also speeded up development for cross platform development as the code I develop for the Mac can be ported and compiled on Windows with out the need to change anything. If I was then wanting to compile on Unix/Linux the same code could be used there also.

For those who want to get a little bit more of an understanding watch the video below or visit the following YouTube Channel.


Darren Kayes

Darren is Linear Blue's Chief Operations Officer, ensuring the smooth running of the company and making sure nothing gets in the way of our developers creating top-notch web and database solutions for our clients.

More Posts - Website

Leave a Reply