The recent post from my fellow MightyData developer, Darren Burgess, caused me to reflect on my own developer reference tool. This is a tool I built using FileMaker, since there were times I needed the function reference offline, or without a floating help window. I built this tool a few years ago starting just with calculation functions, then adding more reference sections to keep everything in one place.
The tool went through some minor revisions the past few years. I added all script steps, a list of script triggers, a layout where the script triggers are spoken so I can get a sense of the flow or order in which they are fired, a list of all FileMaker errors, the fmsadmin commands, all the various system limits, ports for server, modifier keys, script trigger code numbers, and some keyboard shortcuts. As I came across something in FileMaker that I used and could be organized, I added it to my reference.
My Custom Library
As developers we tend to build our own code libraries and reference tools. In the past, I’ve stored my various libraries and notes in different places, from text documents to web pages, to MySQL databases and ftp folders. When I built my FileMaker reference it started small: I wanted to keep track of a few commonly used functions and examples so I could quickly re-use them. Once I started to add in the native functions, I found I couldn’t stop, and soon I had all the functions. Since these are available in the FileMaker help file, one might ask, “Why bother?” I preferred a simpler interface, and one I could manage myself.
This tool is comprised of individual tables for the sections, such as functions and scripts. Rather than store everything in one table, and make adjustments as I add types, I decided to keep all my types or categories separate. There is a simple dashboard interface that lets me jump to the various areas to quickly look up information.
Developing this tool in FileMaker lets me experiment with several things, but as it’s a spare time effort, it remains continually under construction. Some of the information is basic – port numbers or error codes. Script steps are organized by type, with a goal of some day showing all the parameters so there no longer is a need to create a new script just to see these parameters. Rather than bringing up the Terminal and looking through the help, I can see all my notes at once.
Calculations often require trial and error. I set up the functions reference area so that I could test most functions without opening the Data Viewer, by evaluating the Code field (see below). This simplified method lets me quickly test some basic functions, and add notes as I come across certain behaviors or short-cuts. Though crude and limited compared to the Data Viewer, I’m able to extend this where the Data Viewer doesn’t work, such as FileMaker Go.
While not yet fully Go compatible, I ported over a version to FileMaker Go the moment this became available, giving me a reference-on-the-go. The smaller interface requires adjusting some features. The dashboard becomes more to the point. The space for notes no longer available, I considered using Show Custom Dialog. This does show more text while on the same record, but doesn’t allow editing. Still, having a quick reference in my pocket can be useful.
Although I’ve not added any FileMaker SQL references like Darren did with his Notational Velocity example, that seems like the next logical step. The key for any reference is to be comprehensive and useful, and as such my small tool cries out for a SQL section with examples.
As with every tool, there are pros and cons to building this reference tool in FileMaker. If I’m in the middle of something in another FileMaker solution, I cannot always get out of a modal window to check my reference. On the other side, I can experiment with design and interface using FileMaker, and as it’s my personal tool I can leave the mess unattended or shove it under a rug for another time. I think quite a few FileMaker developers have built their own reference tools. We have books, use the Internet for searches, but oftentimes we want to turn to something we use daily and assimilate the external knowledge into the familiar.