football betting tips


May 12

How to be the fmserver user

If you are ever trying to troubleshoot a system script that will be run by the fmserver user on OS X you can do the following to replicate what the server is doing with terminal.

1. Type su

2. Enter the root user password

3. Type su fmserver

4. Type whoami and it should return fmserver. This last step verifies that you are in fact the fmserver user.

This is what it should look like in terminal:

servername:~ currentuser$ su
sh-3.2# su fmserver
bash-3.2$ whoami

An example of what you can do at this point is execute a shell script as fmserver.

sh /Library/FileMaker\ Server/Data/Scripts/

May 12

Preparing FileMaker Server System Script File for Mac OS X

When preparing a system script file for FileMaker server you must place it in the proper folder with proper ownership and privileges.

Step 1: Copy file to proper location

cp /Volumes/OS_Drive_Name_Example/Library/FileMaker\ Server/Data/Scripts/

Step 2: Navigate to FileMaker Server scripts folder

cd /Volumes/OS_Drive_Name_Example/Library/FileMaker\ Server/Data/Scripts/

Step 3: Assign FileMaker server owner/group to the file:

sudo chown fmserver:fmsadmin

Step 4: Assign proper privileges:

sudo chmod 755

Jan 12

scp: ambiguous target

I was recently trying to copy a simple bash script from one FileMaker server to another using scp. The standard scp command is:

scp file.ext destination_user@server.address:/Folder/file.ext

This would leave you to think that the scp command for copying a script from one FileMaker server to another would look like this:

scp user@123.456.7.8:/Library/FileMaker\ Server/Data/Scripts/


This however fails with the response from terminal being:

scp: ambiguous target

Since the FileMaker Server folder contains a space this causes the failure, despite placing the backslash before the space. The answer is to put quotes around the entire destination to look like this:

scp user@123.456.7.8:"/Library/FileMaker\ Server/Data/Scripts/"

Oct 11

CustomList custom function limited to 300 items in list on FileMaker Server

I received a nice email from Agnès who created the CustomList function. I have copied her email below.  The function has been updated.

“I just did the test and saw that the function Evaluate () is the problem ( the same for FileMaker Go )
it is the current limit of FileMaker Serveur internal Evaluate function
FileMaker GO Evaluate () is limited to 400 (+/-)
FMServeur Evaluate () is limited to 300 (test FMServeur v11 )
instead of 1700 (+/-) for FileMaker. ( runtime and IWP )

I update the calc CustomList for this to work correctly on FMSserver and )

Do not hesitate to let me know by email if you have a problem with CustomList ()
In this case, I have made test with FMS v11, maybe the limit is different with other versions.

Thank you



Be careful when using the CustomList custom function on FileMaker server. My testing has revealed that the list this function will generate is limited to 300 entries when used on FileMaker Server. The documentation of this functions states that it is limited to 500,000 on FileMaker Pro and 150,000 on FileMaker Go.


Jul 11

Bash script to FTP exported files from FileMaker Server

The below bash script can used if you need to FTP an export from FileMaker Server to anywhere.  The script basically looks to see what ever document is in the Documents folder of FileMaker Server and passes that to the cURL command.  It then moves the file to clear it out the directory.  You can /should include error trapping and maybe setup subdirectories but my objetive is to keep this simple to convey the concept after which you can “go nuts” customizing it.

cd /Volumes/Server\ HD/Library/FileMaker\ Server/Data/Documents/
curl -T /Volumes/Server\ HD/Library/FileMaker\ Server/Data/Documents/"$LOCALFILE" --user username:password
mv "$LOCALFILE" /Volumes/Drivename/uploads/

Jul 11

FileMaker Server scheduled bash script could not be found or is invalid.

If you are using FileMaker server to execute bash scripts be sure to check the first line to see that is includes the bang after the hash (#!/bin/bash).  I  ( and many others as revealed in a google search ) accidentally erased the bang while commenting a bash script and found out what happens. If you do this, you will see an error in the event.log file on FileMaker server when executed which looks like this.

Schedule “schedule_name” aborted; “” could not be found or is invalid.


Jun 11

Object naming order very important to FileMaker web viewer responding to script step

The FileMaker web viewer can be controlled via the script step Set Web Viewer.  This script step is dependent on you naming the web viewer object and telling the script step that name. I have often found that I like to make the entire web viewer a button for things like downloading a document from SuperContainer.  The absolute key to this working is that your must first name the web viewer BEFORE making it a button. If you do so afterword, only the button has an object name and not the web viewer. Since the web viewer would not have an object name in this case, it would not respond to the script step.

If you have found this information helpful, or if you have any tips or suggestions, please leave a comment.

Feb 11

Copying FileMaker portals to a new context in less time.

I recently attended a PauseOnError session by Danny Mack on leveraging FileMaker internal IDs. This blog post will demonstrate the method he showed to copy portals for use in a different context with minimal work.

Traditionally, when you copy a portal to a layout that has a different context, you need to redefine the copied portal, its fields, and other things like conditional formatting. This technique eliminates much of this work. I have attached a sample file so that you can try out the technique for yourself in a simple way.

The sample file copy_portal.fp7 has three tables: Parent_One, Parent_Two, and Child.

Step 1: Copy the portal Child__original_context to clipboard

Step 2: Enter relationship graph and duplicate the Child__original_context table occurrence. You will notice the duplicated table occurrence now has a number 2 following its name.

Step 3: Establish the relationship from Child__original_context 2 to the table occurrence Parent_two

Step 4: Rename the table occurrence Child__original_context to Child__original_contextx.

Step 5: Rename the duplicated table occurrence to Child__original_context

Step 6: Go to layout Parent_two and paste the portal that you copied to the clipboard in step one onto the layout.  You will see the correct context for the portal and the field it contains.  When you enter browse mode, the correct data will be displayed.

Step 7: Go back into the relationship graph and rename the table occurrence Child__original_context to Child__original_new_context. Then rename the table occurrence Child__original_contextx back to Child__original_context.

Step 8: Click ok and you have successfully copied a portal to its new context and retured everything else back to its original state.

Using this time-saving technique the other day, I copied 25 table occurrences, their established relationships, several portals (in one copy), and a lot of conditional formatting all using the same steps above. You can imagine how much time that saved!

If you have found this technique helpful or have any tips or suggestions to make it better, please leave a comment.

Feb 11

Fix FileMaker external authentication problems with dsmemberutil

Today I switched the group membership of one person in Open Directory to change their external authentication account and thus their FileMaker privilege set.  The change did not take effect and the user retained their existing privileges. I fixed the problem by using the command line directory service member utility.

My first advice is that you read the man page on the topic by typing into terminal man dsmemberutil and perhaps reading about FileMaker LDAP authentication as well.

The first thing I did was check group membership on the client machine by typing:

sudo dsmemberutil checkmembership -u 1234 -g 5678

You will need to replace 1234 with the user ID of the person you are testing and the 5678 with the group ID of which you are testing membership.  If the user is not a member of the group, terminal will respond with

user is not a member of the group.

If the user is a member of the group, then terminal will respond with

user is a member of the group.

Perform this check on both the client machine and the FileMaker Server machine.  If either gives information that is contrary to the current configuration of the user in Open Directory then you need to flush the directory cache.  This can be accomplished by typing

sudo dsmemberutil flushcache

You can run dsmemberutil checkmembership again to verify all is correct.  FileMaker external authentication should work correctly when all machines see proper group membership.

Jan 11

Unarchive Gmail and Google apps email back to your inbox.

I have a client who had been setup on google apps email service, bought an ipad, and wanted her email on it.  Simple request, however, her email client was originally setup with POP email.  The google settings for her pop account had it setup so that all messages were archived after being poped.  Basically, when you tell google to archive your messages, it removes the inbox label and your message goes on to live in “All Mail” for eternity.  There is no strait-forward way to put these messages back into the inbox which it what we needed since her email client would need to be converted to IMAP and I setup her iPad with Exchange.

With out further ado, here are the steps to accomplish this:

  1. Log into your gmail or google apps account and get to email / gmail.
  2. Click on settings located in the upper left corner located between your email address and Help.
  3. Click on Filters
  4. Click created new filter
  5. In the To field. enter the email address of this account.
  6. Click next step
  7. Check Apply the label
  8. Click on the drop down that says “Choose label”
  9. Click on new label
  10. Enter a name like unarchive and press OK.
  11. Check the box beside the text that reads “Also apply filter to ### conversations below.”
  12. Click Apply Filter
  13. On the left side find the mailbox named what you named your filter and click on it.
  14. Click Select all
  15. Click on the text that says, “Select all xxx conversations in “unarchive” . Unarchive is the name of the filter.
  16. Under the move to drop down, choose Move to Inbox.  Those messages are now in your inbox
  17. Now you need to remove all the messages from the “unarchive” filter/mailbox.
  18. Click Select all
  19. Click on the text that says, “Select all xxx conversations in “unarchive” . Unarchive is the name of the filter.
  20. Click on the button that says “Remove label “unarchive” “
  21. The label / mailbox shoud now be empty and can now be deleted.
  22. Click on settings.
  23. Click on filters
  24. Click delete
  25. Click on labels
  26. Beside the name of “unarchive” or what ever you named the label click remove
  27. A pop up box appears asking you to confirm “Delete the label “unarchive”?”
  28. Click OK
  29. You’re done!!!

I hope this is of help to someone.  Use the above with care, as I make no guarantee.  Email is pretty important to me and I imagine to you as well so be careful.