Working of a remote file server: troubles & fixes



  • If you're storing your UFOs files on a server, depending on the protocol, you can experience lags.

    Here's Andy Clymer's explanations and tips with help from Frederik:

    The real solution is to try to connect with a different protocol, if possible. We were able to get a file server set up so that we could connect with Samba (smb://) or with CIFS which is a variation of Samba (cifs://)

    If it’s just another Mac that you’re connecting to, in the “Network” area of the System Preferences, you can choose to “Share files and folders using SMB” which will let you connect with smb://.

    If you’re only able to connect with AFP, Frederik was able to help us to get RoboFont to ignore the messages from the OS that the file had changed, like so:

    from lib.tools.defaults import setDefault
    setDefault("enableExternalFileCheck", False)
    

    And then set that preference back to True if you ever want to go back to the default way that things work.

    Just watch out that if you turn off external file checking, RoboFont will no longer automatically see any changes to external files even in cases where you want it to (like, if you make an edit in Prepolator or MetricsMachine, and then switch back into RoboFont). You will want to have a script that you can use to manually check for updates, Frederik helped us out with this too:

    from AppKit import NSApp
    
    for doc in NSApp().orderedUFODocuments():
        doc.setNeedsExternalChangeCheck_(True)
        NSApp().testForDocumentUpdates()
    

    So it’s not an ideal workaround, but it stops the beachballs! It’s more ideal to try to see if you can get your file server set up to work with a different protocol.

    Last update from Frederik (20.05.2015):

    you could also subscribe to the applicationDidBecomeActive notification and run this script
    this would be almost the same behaviour as the embedded file update checker....

    from AppKit import NSApp
    
    for doc in NSApp().orderedUFODocuments():
        doc.setNeedsExternalChangeCheck_(True)
        NSApp().testForDocumentUpdates()