Two Reasons You Should NOT Get FileMaker Coaching

In-house FileMaker developers are in a precarious situation. Most of you were not hired to do FileMaker development. You were in sales or doing data entry and someone asked if you could ‘figure this FileMaker thing out.’ You’ve taken on the challenge, enjoyed it, and started delivering valuable results to your organization. It’s thrilling to do something new and above the call of duty. Eventually, as you transition to more development and less of your old job, you’re left with an identity crisis. You work each day to develop or improve the solutions your employer uses. Everyone sees you as ‘the FileMaker Expert’ and they can’t imagine why you’d want or need help with FileMaker. However, you’ve received little to no formal training on FileMaker, or the softer skills your new role requires (e.g. gathering requirements, planning features, documentation). We’ve been able to speak candidly with a few in-house developers and asked what stops them from getting help from an outside resource to overcome their lack of formal training and improve their skills. Here are the most common reasons: 1. ‘My boss won’t pay for that.’ This is the knee jerk response most people have. It’s unfortunate if you never get past it. You may be right but you’ll never know for sure unless you ask. More importantly, you’ll never know for sure unless you utilize the outside resources for all they’re worth and let them ask. That’s right, there are professional FileMaker development shops that would be happy to speak with you and your boss to discuss the costs and benefits of working with them. Let these folks do their job. You’ll quickly know if they’re going about it right because you’ll feel comfortable setting up a meeting to introduce them to your boss. Before you conclude that your ‘boss won’t pay for that’ ask yourself these questions?

  • Have you asked?
  • Has anyone asked?
  • Have you given him/her a reason to pay for it?
  • Do they understand that spending a little time honing your skills will make you a more valuable employee?
  • Do other employees go to professional training?
  • How much are they saving by having you as an in-house developer to begin with?

2. ‘Paying for outside assistance makes it seem like I don’t know how to do my job. I can’t afford for people to think that. I really enjoy feeding my children and making the house payment on time.’ Wow… Now we’ve struck a nerve. I believe this is the crux of the matter. Feeling threatened at this level can be paralyzing. You’re stuck seeking the free advice on forums, etc. but it doesn’t stop there. It’s also likely that you’re struggling with your identity as an employee. Am I a ‘developer’ now? Do other people see me as the FileMaker developer or in the role I was originally hired for? It’s nearly impossible to take on a consultative role that involves challenging the people around you to think differently while feeling this way. Before you draw this conclusion, ask yourself these questions:

  • Is your company using an accounting firm?
  • Does your employer outsource legal questions to an attorney?
  • Does your sales team have ongoing training / coaching?
  • Would you get more development done if you could call a FileMaker developer with encyclopedic knowledge of the FileMaker platform to ask a few quick questions?

Most likely, other parts of your organization have an outside resource they turn to in sticky situations. It’s not always easy to start a relationship with these outside resources. You’ve got to explain how it’s going to benefit the organization and ask for the resources. More importantly, you must approach ‘the-powers-that-be’ in a way that enhances your professionalism within the organization. Done well, the worst thing they’ll tell you is ‘no’, which won’t hurt too badly, and in the process you’ll learn more about the FileMaker platform and the developers available to help you in the future. Note: If shameless self-promotion bothers you, please divert your eyes momentarily. Have you noticed Skeleton Key’s FileMaker Coaching services? They are a great fit for in-house developers who need an outside resource from time to time. Our five (5) certified developers have 18 – 25 years of experience with FileMaker, each, and more importantly our goal in coaching is to make you look good. Get in touch and we’ll figure out which FileMaker Coaching option is the best fit for your circumstances. *** Jason Thomas manages Business Development at Skeleton Key. About Skeleton Key Skeleton Key is an accomplished team of technology consultants who solve business problems. We specialize in the rapid development of custom applications, integrating Macs and PCs in the professional workplace, and providing personalized training. Despite our end-to-end technical skills, we are consultant first and technologist second. We know that you don’t just need technology. You need to know that the technology you choose to deploy will provide the results you desire. Skeleton Key is a Platinum Level FileMaker Business Alliance company, an Authorized FileMaker Trainer, a member of the Apple Consultants Network and a Microsoft Registered Partner.

An Honor To Be Honored

It’s 6:15pm, Wednesday, August 3rd. I’m heading to the lobby to meet up with my co-workers and colleagues where we will proceed to board the Inspiration Hornblower. The beautiful location chosen for the FileMaker Business Alliance Awards dinner at FileMaker Developer Conference 2011. My phone rings. It’s Mark:. “I won’t be joining the group tonight for dinner. I hate to miss it; but I feel the need to go over my WAN presentation tomorrow. Attendees paid to see something of value, and I want to make sure I deliver. If for some crazy reason Skeleton Key is recognized tonight, for anything, please ask Greg to accept on our behalf.” A couple of hours later, as the Skeleton Key crew was sipping coffee and enjoying the success and recognition of our deserving colleagues who won the other awards that night, we hear… …. for raising the level of professionalism in the FileMaker community by sharing his business practices and training. Through webinars, user-group presentations, and DevCons, he has shared his expertise in optimizing FileMaker solutions for better performance. His influence has extended beyond the FileMaker community; he’s been an advocate for FileMaker teaching best practices using FileMaker Server Advanced to the Apple Consultant Network members – Mark Richman, Skeleton Key. Later we all agreed that it sure SOUNDED like whoever was about to win the award for Outstanding Contribution to the Community shared many of the attributes of our own Mark Richman, but until they said the name… well, it took about 10 seconds for reality to set in and for Greg Lane to start moving toward the stage to proudly accept the award from Ryan Rosenberg. And Mark missed it! Ugh. From a marketing point of view, I was sorry – even sort of annoyed – that he wasn’t there. As his employee, his absence was an exclamation point on the the description of the award. I giggled as I realized it made perfect sense that he was focused on what he would be offering to the community the next morning. From Mark’s perspective: “The ringer on my phone was off, and the phone reception in the hotel was terrible, so I suddenly noticed I’d received a number of texts in very short time. They were things like ‘Woo hoo! You just won an award!’ and ‘We r not kidding’ along with a lo-res picture of an award on which I could not read the text.

I’ll admit, for about 2 minutes I figured my team was pulling my leg, and I was kind of impressed at how well they were carrying it off.

I’m honored and humbled by this recognition, and I hope I can continue to give back some of the value that the FileMaker engineers and community have given to me over the years.” Speaking of awards, the St. Louis Small Business Monthly ‘Top Twenty under Twenty’ Luncheon was held on Wednesday. This annual event honors the area’s top 20 companies/entrepreneurs that have less than 20 employees. Skeleton Key was nominated and selected as a recipient for this honor. And this time, I made sure that Mark was there to receive it.

Nancy Rodriguez manages Operations & Marketing at Skeleton Key. About Skeleton Key Skeleton Key is an accomplished team of technology consultants who solve business problems. We specialize in the rapid development of custom applications, integrating Macs and PCs in the professional workplace, and providing personalized training. Despite our end-to-end technical skills, we are consultant first and technologist second. We know that you don’t just need technology. You need to know that the technology you choose to deploy will provide the results you desire. Skeleton Key is a Platinum Level FileMaker Business Alliance company, an Authorized FileMaker Trainer, a member of the Apple Consultants Network and a Microsoft Registered Partner.

FAQ re: Practical Techniques for Improving Application WAN Performance

First of all, let me just say that I’m grateful for the awesome response to my 2011 FileMaker DevCon session on Practical Techniques for Improving Application WAN Performance. As you might expect, there were a lot of questions from attendees – both during the session and afterwards – and hardly enough time to get to all of them.

The letter below came from one such attendee, who was gracious enough to let me answer him publicly via this post. I’ve broken up his email so my answers could be placed inline and in the correct sequence.

Hopefully his questions match some of your own and this response will prove helpful. If not, please feel free to email me and I’ll do my best to respond promptly, perhaps publicly 🙂

A huge thank you to you for your session on practical techniques for improving WAN performance. This is a thing that I am constantly striving to get better with and any little tidbit or technique to help improve performance is always appreciated, and I found a number of them in your talk so cheers! I have a couple of questions I noted from the talk (too shy to ask them during the talk or at the end!)

Thanks for writing and for your questions. A few brave souls hung out after the session to see the WireShark demo (more on that later) and to ask some follow-up questions. Thanks too for letting me reply to your questions publicly, for the benefit of all.

The first one is concerning wireshark, I've downloaded it today and been playing around with it, can you let me know how you configure it for FM testing? So far I've just been capturing port 5003 traffic but wondering if there are any more specific filtering you use in your testing?

The updated slides and sample file (sent to FileMaker Inc. this week; I took a week off after DevCon) include some of this, and I promised during the session to blog with step-by-step instructions or a video for how to run a WireShark capture, but it basically boils down to four (4) steps:

  • Decide which interface you need to capture. e.g., if you run the tests locally like I do, you would capture loopback0 aka lo0; if you are capturing network traffic on your ethernet port, it’s likely ethernet0 or en0.
  • Set the capture filter to ‘tcp port 5003’. That’s the WireShark syntax for packet filtering. I suspect many packet filtering apps use a similar syntax. YMMV.
  • Display and export only the columns you need. The how-to post on capturing will break this down more, but the gist of the issue here is that WireShark capture a LOT of information about each packet, whereas all I needed for my analysis was, in effect, timestamp, source and destination port (so I could tell which traffic was ‘up’ to the server vs. ‘down’ to the client) and bytes.
  • Export as comma-delimited to a consistent file for easy import into a template. Again, stay tuned for the related post.

I guess there is one more thing worth mentioning, and that is the idea of layering on a display filter, e.g. just displaying/exporting/plotting traffic in one direction. In short:

  • If you plan to gauge the traffic ‘by sight’, i.e. in the filtering tool, then consider using a display filter, e.g. ‘tcp.srcport == 5003’.
  • If you plan on exporting to analyze the traffic elsewhere, capture it all and plot ‘up’ and ‘down’ traffic separately, for additional insight.
The second thing was a point you mentioned in your talk that had me thinking. You mentioned that when in form view, Filemaker downloads the record you are on (providing there is a field from that record on the layout) but it also downloads I believe 25 other records in that found set as a pre-fetch action. Can you confirm that this is indeed the case (I cannot find it on the slides).

That’s correct.

This has implications for us where we use an interface/data separation and all interaction with the system is via the interface record. This lets us control record viewing to one at a time without any pre-fetch, BUT on the interface table itself we may have many interface records at any given time. If the found set on interface is always kept to 1 record (the logged in users) will this download additional records in the table providing they are not in the found set?

If the found set is one (1) record and at least one field from that record is visible on the layout, then the only data downloaded to the client should be:

  • Whatever graphical elements are required for the layout to be drawn.
  • Data from all the text, date, number, timestamp and stored calculation fields.
  • Data from any container fields in that record, so long as they are visible on the layout.
  • Data from any unstored calculation fields in that record, so long as they are visible on the layout.
  • Data from any summary fields in that record, so long as they are visible on the layout.

A couple of caveats:

  • It’s not entirely clear to me in your example if the interface record is displaying data via relationships, or just data from externally referenced Table Occurrences (TOs). If it’s the former, than the answer might be that only one record’s worth of data comes down at a time, as all the ‘local’ record data is really related, in a one-to-one relationship.
  • Those last two items above (unstored calcs and summary fields) can expose you to additional data from related records, e.g. such fields often access related records, either directly or indirectly.
  • Similarly, conditional formatting is often based on unstored data, and thus might call related record data into play (e.g., a status color that changes based on related line item fulfillment).
If I ever get into a situation where all interface records are in the found set, would they all be downloaded providing there were less than 25? It had always been my assumption only the current record in form view would be downloaded, but your comments got me thinking!

Yes – if there are less than 25 records in form view, you’ll download data all of them. If you had more than 25, when you flip to record 26, you’ll get the next 25, etc. Also, keep in mind that any sorting or summarizing of the found set (or a related set of records, at the TO or portal level) can also trigger ‘other-record’ data to start moving too.

I have also taken my files offline and set the last opened layout to a blank layout with no records and a blank table, haven't noticed a significant drop in packets transmitted but probably to be expected as my startup/shutdown layouts are generally small anyway. Also in the process now of zeroing out all of my development/data layouts initially, hopefully this gives a little boost.

It might, but as someone in the audience pointed out, YMMV. For example:

  • ‘Zeroing out’ records on a layout (i.e., scripting a change from the default state of ‘Show All Records’ to the desired state of ‘Show No Records’) is not really per-table or per-layout as much as it is per-context, i.e. per-table-occurrence.
  • As each new window opens, only the foreground context (i.e., the TO behind the layout you’re on) inherits the found set, all the rest revert to ‘Show All Records’, so you’ll need to manage new windows in your planning.
  • If you never take a user (or allow them to freely navigate) to a context, then zeroing it out may be an unnecessary effort that simply generates extra traffic (the layout load and find process).
One thing I did notice is that on startup of one of my larger solutions, the total packets transmitted during startup from woe to go, was about 6,100 packets. Of those, about half were transmitted before the startup script began running which seems quite high given the layouts it goes to are blank. Can you shed any light on what is downloaded prior to the startup script running, other than the layouts required? Does FM download the entire script/layout catalog, or all the field definitions for the table in question (ie Interface)?

First of all, I’d probably focus less on packet count than bytes transmitted.

As pointed out by FileMaker engineers, FileMaker 11 isn’t fully optimized (yet) in terms of how many remote calls a client makes to the server during a ‘transaction’ (for lack of a better term) or in how the packets are sized (a legacy networking issue that hopefully will be improved in future versions). In addition, there’s little you can do to micro-manage packet count.

Furthermore, a lot of those packets may be the ones going back to the server from the client, simply acknowledging receipt of some other packet, i.e. display-filtering the packet capture for ‘srcport or ‘destport’ will let you see which ‘direction’ packets are moving.

That said, items (schema, structure and data) that come to mind and which could be downloaded during the startup process:

  • Items on the layout specified in File Options.
  • Data triggered to move on layouts that are displayed (per the list a few questions above) during the startup process.
  • Data triggered to move by scripts that run (and which can perform operations on sets of local and/or related records, which will call those records’ data into play) during the startup process.
  • Data triggered by access privileges that are invoked (and which can use calculations to derive table- or record-level access) during the startup process.
  • Schema for the tables and fields needed for the layouts, scripts and conditional-access-privileges that are invoked during the startup process.
  • Some amount of relationship schema data in general, for a dependency check, depending on what files you already have open and where any open files are hosted. I have not done tests of this yet, but I suspect this is fairly small and consists primarily of a cross-reference of External Data Sources and associated TOs.
What about calculations on the interface table that reference other tables, does this start a cascade of downloading of all tables in question (their field definitions?) Any insight would be hugely appreciated.

Yes, unstored calculations (which are often unstored either due to the presence of a globally stored field or a related field being present in the calculation) can trigger data from related records to start being accessed as well. Depending on how you structure your calculations, this can easily cascade from parent to child to grandchild, ad infinitum.

One little thing I noticed in your talk also which isn't on the slides but got my attention when you mentioned it. You said at one point that summary functions are to be avoided in some situations as they download all record data, which is fine, but you also mentioned that the Get ( Foundcount ) function has the same effect of downloading the records. I believe this to be untrue, and that Get ( FoundCount ) is actually super fast as it is a single # returned from server requiring no record downloads. In our solutions we have replaced Count summary with a call to Get(FoundCount) and it has hugely improved speeds when we simply need a count, in fact it is almost instant for millions upon millions of records counted. Just wanted to let you know.

You’re right, that was an error on my slide. Someone pointed this out after the session as well and it has been corrected in the slide. A better example of a calc to avoid would have been an aggregate function, e.g. Count ( Record::ID ).

Thanks again for the great session - it was definitely the best one I went to and by far the most useful, look forward to more sessions on this topic in the future!

Considering the phenomenal cast of speakers, I am humbled. Thanks!

It’s especially gratifying to know my efforts are helping people like you build better applications.

Oh – and one more thing – please fill out the speaker evaluation form and let FileMaker Inc. know you want more of this topic in the future! 😉

Mark Richman is an Owner, the President, a FileMaker Certified Developer and a FileMaker Authorized Trainer at Skeleton Key.

About Skeleton Key

Skeleton Key is an accomplished team of technology consultants who solve business problems. We specialize in the rapid development of custom applications, integrating Macs and PCs in the professional workplace, and providing personalized training.

Despite our end-to-end technical skills, we are consultant first and technologist second. We know that you don’t just need technology. You need to know that the technology you choose to deploy will provide the results you desire.

Skeleton Key is a Platinum Level FileMaker Business Alliance company, an Authorized FileMaker Trainer, a member of the Apple Consultants Network and a Microsoft Registered Partner.

Advantages of Using a Non-Portal Picker for Your Solutions

https://youtube.com/watch?v=LEYz4OVCmSE%3Fhl%3Den%26fs%3D1

Inspired by Chad Novotny, The Support Group, Inc., during his session – Simplifying the Relationship Graph last week at FileMaker Developer Conference 2011, I decided to create a quick video to demonstrate some advantages of using a Picker, without using a Portal. In the video, I’ll use a List View instead of a Portal. The biggest advantages of using a Non-Portal Picker are flexibility and the ability to use more of FileMaker’s built-in features like sorting and grouping. Please check out the video. I encourage you to download the sample file, tear it apart, see what I’m doing and possibly apply this technique to your own solutions. I welcome your feedback; please contact me with suggestions, comments or questions. Chad Adams is a FileMaker Certified Developer at Skeleton Key. About Skeleton Key Skeleton Key is an accomplished team of technology consultants who solve business problems. We specialize in the rapid development of custom applications, integrating Macs and PCs in the professional workplace, and providing personalized training. Despite our end-to-end technical skills, we are consultant first and technologist second. We know that you don’t just need technology. You need to know that the technology you choose to deploy will provide the results you desire. Skeleton Key is a Platinum Level FileMaker Business Alliance company, an Authorized FileMaker Trainer, a member of the Apple Consultants Network and a Microsoft Registered Partner.