FileMaker Feud at DevCon 2011

If you are going to DevCon 2011, and are a fan of the Family Feud, you might want to check out the FileMaker version of the popular game show – FileMaker Feud.

Whether you want to be a spectator or an actual contestant is your choice, but MightyData (who is sponsoring the event) would love for your answers to be part of the survey.

You can check out all the details at MightyData’s FileMaker Feud.

 

FMPHP: Passing an array of values and performance testing on adding records

In my previous post about the difference between the createRecord() and newAddCommand() functions in PHP, Anders Monsen asked in comments:

I’ve never tried the createRecord method, but the ability to send an array of field values in the method seems very interesting. How would you format this data in the $values array?
$rec =& $fm->createRecord(‘Form View’, $values);
The PHP API lacks good examples of each of the methods in the class, and this post brings attention to an alternate method to set data, though I’m not certain when it might be useful, aside from bypassing the large XML array in the $result. Might be worth a try to see the differences in performance.

So two worthy questions, for which I have answers! Continue reading ‘FMPHP: Passing an array of values and performance testing on adding records’

 

FMPHP: The difference between createRecord() and newAddCommand()

If you’ve been looking at building custom PHP scripts to add records to your FileMaker database, you might have come across the following snippet from the Custom Web Publishing with PHP document:

There are two ways to create a record:

  • Use the createRecord() method, specifying a layout name, and optionally specifying an array of field values. You can also set values individually in the new record object.The createRecord() method does not save the new record to the database. To save the record to the database, call the commit() method.
    For example:
    $rec =& $fm->createRecord('Form View', $values);
    $result = $rec->commit();
  • Use the Add command. Use the newAddCommand() method to create a FileMaker_Command_Add object, specifying the layout name and an array with the record data. To save the record to the database, call the execute() method.
    For example:
    $newAdd =& $fm->newAddCommand('Respondent', $respondent_data);
    $result = $newAdd->execute();

Which is somewhat helpful, but many people wonder what the substantive difference is between these two statements. Continue reading ‘FMPHP: The difference between createRecord() and newAddCommand()’

 

Please Join us May 24: SIMPLICITY: Concepts and Case Studies

Greetings FileMaker Enthusiasts,

Our next Philadelphia FileMaker Developer Group meeting has been scheduled for Tuesday evening, May 24th 2011 at 6:00 PM. The meeting will be held at the IT Solutions Fort Washington Office.

414 Commerce Dr., Suite 150, Fort Washington, PA 19034
Google Map

Please RSVP here if you are planning to attend this meeting:
http://www.fmpug.com/rsvp.php?eventID=1200

SIMPLICITY: Concepts and Case Studies

Chad Sager will present concepts from a recent series of blog posts on phillyfilemaker.org: “Don’t confuse me, I’m just a stupid developer. How treating yourself like an idiot can make your FileMaker application easy to understand and maintain”. Chad will discuss a few development principles that can simplify your software architecture, while maintaining flexibility and power.

Colin Keefe will give a short example of a modular data entry workflow that manages multiple entities: To Dos, Activities, Chat Logs, Milestones – through one script, one table and (potentially) one layout.

Both of these presentations should be pretty short, so we’re planning on spending the remainder of the time in a roundtable discussion on simplifying code. Continue reading ‘Please Join us May 24: SIMPLICITY: Concepts and Case Studies’

 

4/26/11 Meeting Video: John Sindelar and Jesse Barnum – Zulu iCal Server and Docubin

Thanks to Andy at fmpug.com for hosting this stream!

This was a great meeting – and at 2 hours and change, packed with stuff. Enjoy.

 

Pause On Error: In Review

PauseOnErrorPause On Error III (POE3) came and went this past February. This version of the increasingly popular FileMaker unconference was held at the Ace Hotel in New York City, where well over a 100 FileMaker developers gathered to share and discuss ideas about software development, mostly, but not necessarily, of the FileMaker kind. Colin Keefe and I represented IT Solutions. Here are my thoughts about POE3 and the energy and commitment surrounding the global FileMaker development community.

Continue reading ‘Pause On Error: In Review’

 

Choose the Right Layout

Ah the good old days!  Back when the status area was vertical, if you wanted to display a particular layout depending on some conditions, then you needed to create your own navigation buttons.  But face it, those buttons were never as good as the native navigation provided by FileMaker.  Thanks to script triggers we can use the built-in navigation buttons and also conditionally display a particular layout.

Continue reading ‘Choose the Right Layout’

 

I’m just a stupid developer, don’t confuse me… part 3 of 3

I’ve been posting about a few principles that have helped me minimize the pain of understanding complexity in my own code. See part 1 of this series where I briefly discussed leaving yourself and others notes about the “why” of your design decisions. And see part 2 for discussions about simplifying your code.

Continuing with the movement towards simplicity; whenever possible make functions and scripts single use and encapsulated. We can think about breaking functions (or scripts) down into their smallest useable parts as simplification, or we can talk about it as encapsulation. We broke down a confusing custom function into separate parts in order to improve readability. What we also gained was some compartmentalization and modularity. It’s difficult to separate the two principles of simplicity and encapsulation.

Continue reading ‘I’m just a stupid developer, don’t confuse me… part 3 of 3′

 

I’m just a stupid developer, don’t confuse me… part 2 of 3

See part 1 of this series where I briefly discussed leaving yourself and others clues about the “why” of your design decisions.

The second principle I want to talk about helps with the “how” and “what”.

It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.
- Albert Einstein

Or how it’s more often paraphrased:

Make things as simple as possible, but not simpler.

Take the time to make things simpler. This is much more about the “how” and “what” of programming.

Continue reading ‘I’m just a stupid developer, don’t confuse me… part 2 of 3′

 

I’m just a stupid developer, don’t confuse me… part 1 of 3

Our human brain has the amazing capacity to remember and understand the things we do. What’s more amazing is our brain’s capacity to overestimate how much it has the ability remember and understand the things we do. My average shelf life for remembering how my code works is about two months. That is to say if I don’t touch a part of an application for up to two months, I can jump in and get back to work, no problem. After that I have to study it a bit and get my bearings again. The longer I go the worse it gets. Your mileage may vary, but no one can escape this problem.

There are a few things that have helped me minimize the pain described above, which I’ll be posting about over the next couple of days.

Continue reading ‘I’m just a stupid developer, don’t confuse me… part 1 of 3′