OS X Yosemite hidden feature series – Part 2

os x yosemite hidden features part 2

Following on from Part 1 in this Yosemite series, looking at features of Yosemite that are not so well known or perhaps even hidden, Part 2 will focus on added features to the Apple Safari web browser app.

Apple have spent a lot of time on their web browser, and it really is a strong competitor now. And today, I’ve grabbed my favourite little gems!

New Feature 1: Recent Safari Browser History Removal

Previously, Safari would only allow you to remove your browsing history as an all or nothing feature. The only option to clear out recent browser history was to show all your browser history and manually select and delete required websites. A bit of a laborious task.

Well, Yosemite has stepped into change all that. Now you can choose to delete just your last hour of browser history, or perhaps just everything from today, or even the last 48 hours. You can, therefore, preserve your long-term web history while just removing more recent history. I won’t start speculating on the reasons why people may wish to clear out just their last hour or so of web browser history! ;)

So, how do we do this?

Pretty simply actually. In Safari, select the main ‘Safari’ menu or the ‘History’ menu and you will see the option for ‘Clear History and Website Data…’

clear safari browsing yosemite

Once selected, you can choose options from the pull down menu for how much browser history to clear:

clear history preferences safari yosemite

Don’t forget that you can always clear custom-selected browser history by selecting ‘Show History’ from the ‘History’ menu and selecting and deleting just the specific browser links you wish.

New Feature 2: New Private Window

Safari has had a Private Browsing feature for a while. However, it was again an all or nothing option.

If you wanted to browse the web on a computer without Safari tracking what web pages you’ve visited, adding cookies or saving the passwords you’re entering. You had to enable Private Browsing for ALL web tabs and windows and then remember to disable it afterwards.

Yosemite’s Safari has made Private Browsing more convenient.

You can now just enable it in a new browser window, allowing you to perform your unmonitored browsing in one window while leaving all your usual websites open in other windows.

Again this is easy to do once you know how. Just select the ‘File’ menu and choose ‘New Private Window’ (or use the keyboard shortcut of SHIFT + COMMAND + N):

private browsing in safari yosemite

This will open a new Safari browser window that will have private browsing enabled:

private browsing enabled yosemite

Any browsing you perform within this window, including any tabs you create and use, will have its history, cookies and other info deleted once you have closed the window. Plus any tabs you open, will not appear on your other devices if you are using the same iCloud account on multiple Apple devices. (Refer to ‘New Feature 3: Handoff’ from Part 1 in this blog series for more info on this feature).

Any Browser windows you had open prior to opening this new private window, along with any new windows you open with the usual ‘New Window’ or ‘COMMAND + N’ keys, will still work as normal, by auto-filling in your usernames and passwords, creating browser history etc.

As you can see below, this new private window has a dark coloured search field instead of Safari’s default clear white colour. This allows you to remember easily which Safari window is the private browsing window:

private browsing yosemite

New Feature 3: Viewing all Safari Tabs

I’m a big lover of Web tabs instead of having multiple browser windows open. Safari now has a nice feature to show you a clear view of all currently opened tabs in the current window. To do this, you could select ‘Show All Tabs’ from Safari’s ‘View’ menu or use the shortcut keys of ‘SHIFT + COMMAND + \’. But the easiest way, is to select the ‘Show all Tabs’ icon as highlighted in red below:

view all tabs in safari yosemite

Now I have 4 tabs open, 2 of which are from the same website. This new view has a handy feature where it will group Tabs from the same website. (See in the image below that the 2 tabs from www.amsys.co.uk are stacked together.)

Even better, if like me you have a Mac but also an iPhone or an iPad signed into the same iCloud account, this Show All Tabs feature will also show you any open tabs on any of your other iOS devices or even another Mac. (Notice that in the image below it shows the iCloud icon and the name of my iPhone along with the Safari tabs I’m using on my iPhone.)

view all open tabs on devices yosemite

If I now hover my mouse over these tabs from other devices, an ‘X’ will appear on the right allowing me to close those tabs on that device:

close tabs on other devices yosemite

New Feature 4: Recent Share History
yosemite share icon
Nice little titbit this one.

If you use the ‘Share’ icon in the Safari menu bar to send web information to someone either as a message, email, etc., Safari now has a ‘recents’ list. Handy for when you regularly share webpage links with the same person. It will also remember for you HOW you share with that person.

In the below example, I have shared a weblink as an iMessage to myself, which has been sent to my iPhone :

share via safari yosemite

New Feature 5: Favourites View

Most of us regularly visit the same core collection of websites every time we go online. Safari can now learn these for you, allowing you to choose quickly from a ‘favourites’ list.

safari favourites view icon

You can select the ‘favourites view’ icon (see right) in the Safari toolbar, but if you also click on the Smart Search field (where you enter a URL or perform a web search), a grid of icons will then appear displaying your favourite websites and frequently visited websites:

favourites view safari

You can drag out any favourites that you want to delete from the list with the usual ‘puff of smoke’ effect as well as re-order them should you wish.

Should you wish to remove this feature, select the Safari main menu and open the Preferences. Go to the ‘Search’ tab and un-tick the ‘Show Favorites’ option:

remove favourites view yosemite

New Feature 6: Importing bookmarks into Safari

Importing your bookmarks from other web browsers was sometimes not that easy. Even requiring exporting an HTML file first. Safari in Yosemite has improved importing.

You can easily now import Google Chrome or Mozilla Firefox’s configuration files. All you need to do is go to the ‘File’ menu and select ‘Import From’:

import bookmarks safari yosemite

The sub-menu will offer you dedicated options for importing from Chrome and Firefox, as well as the HTML import option:

import chrome firefox safari

Safari supports importing bookmarks, history and passwords from Firefox and bookmarks and history from Chrome:

import bookmarks history passwords safari

New Feature 7: RSS Returns!

In years gone by before social networking kicked off, I used to love using Safari to subscribe to news feeds known as RSS. With the introduction of OS X Mountain Lion, this feature was removed. After the initial moaning, I got over it and found other ways to keep up to date such as following news feeds on Twitter.

For those of you that would like to return to using RSS, Safari in Yosemite has integrated RSS feeds into the Shared Links feature and can also grab links from your Twitter and LinkedIn feeds.

Just click on the RSS link within any website and Safari will bring up a window asking if you would like to add this feed to your Shared Links:

rss feeds safari yosemite

sidebar icon yosemite Once you have added the feed to access your Shared Links, select the Sidebar icon in the Safari toolbar, which is usually next to the back/forward icons (see right), then select the @ icon. Or you can select ‘Show Shared Links Sidebar’ from Safari’s ‘View’ menu. (CONTROL + COMMAND + 3 will also do the trick).

If you have logged into social media accounts such as Twitter and LinkedIn, these will also have their feeds displayed here:

social media rss safari yosemite

apple hot new rss feed safari

Shared links are displayed by the date that they were posted. So you may find RSS feeds and social media feed posts merged.

If you want to remove a site from the Shared Links, follow the steps above to return to the @ tab of the Safari sidebar, and then click on the ‘Subscriptions’ button at the bottom:

remove site from shared links safari

remove feeds from safari

To remove a social media feed, un-tick the box. To remove a RSS feed, select the ‘X’ icon to the left of the feed.

New Feature 8: Clever Searching

Safari has gained the ability to ‘learn’ when you use a search field in any website. You can then use a website’s search feature directly from the main Safari URL/search bar without having to re-visit the specific site first.

Sometimes, Safari is so clever that you may not even need to visit a website and use its search field for Safari to offer you a website’s search field directly in the menu bar.

How can I explain this clearly? Well, a demo usually works.

Imagine that I have Googled the Apple Watch. I have then clicked a link to the Apple website where I have used the search field inside Apple’s webpage (The Magnifying Glass icon) to find all articles hosted directly on Apple’s website regarding the watch:

clever searching safari

Safari will now have learned that I have searched within www.apple.com for the term ‘watch’.

I can now perform this same search quicker next time by simply typing in ‘apple watch’ into Safari’s main smart search field as shown below:

smart search field safari

Notice that Safari has suggested www.apple.com/uk/watch/ and as well as searching discussions.apple.com for ‘watch’ which is exactly what I did manually.

Want to remove this feature?

Select the Safari main menu and open the Preferences. Go to the ‘Search’ tab and un-tick the relevant option(s):

remove safari smart search

Quick Website Search has a ‘Manage Websites’ button that allows you to view and remove the website that it has remembered you used in their internal search systems:

quick website search safari

New Feature 9: Where’s the full URL gone?

Finally, I wanted to mention a cheeky trick Safari now does with URL names. It now only shows you the main URL of a site or its domain name.

The idea here is to protect users from phishing scams by showing you just the base URL a web link has come from.

For example, if I visit https://www.apple.com/watch/apple-watch-edition/ and look at the Safari address bar, all I will see is ‘Apple Inc’:

short urls sarfari

Now the good news is that I now know that the link I am going to is officially from Apple. But I can’t see the full URL. Now you can just click on the base URL info, and it will expand to give you the full URL address. But if you wish to see the full URL by default, you just need to know where to enable it.

Select the Safari main menu and open the Preferences. Go to the ‘Advanced’ tab and Tick ‘Show full website address’:

see ful url safari

I hope you are finding this blog series useful, the features i am discussing are just a collection of the ones that i have discovered and found useful and is not a complete feature list.

Remember, Apple has a decent overview of the main new features of OS X Yosemite on their website.

Watch this space for more in this series!

Don’t forget, if you would like to learn more about OS X or just the Mac in general, then take a look at our collection of introductory training courses.

We also have a large collection of Mac Support and iOS IT courses, which you may also find useful.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

These features were tested using OS X Yosemite v10.10.1 and iOS v8.1.2 which were the latest Mac OS and iOS releases at the time of writing.

Exporting Users from OS X Server for Yosemite

With the release of OS X Server for Yosemite, Apple retired Workgroup Manager, thus leaving us System Admins no GUI method of exporting users and groups out of the server.

The old Workgroup Manager tool gave us the ability to both export and import users / group records, the Server app can just import users.

But not all is lost. We have a bunch of command line tools that allow us to interact with the user directories. In particular we have the dsexport command.

dsexport allows us to export records from our user directories to compatible files that the Sever app can use.

The command has the following three main arguments:

  • The path to the output file you wish to create
  • The path to the OpenDirectory node that contains the records you wish to export
  • The type of records we wish to export.   For example, dsRecTypeStandard:Users  or  dsRecTypeStandard:Groups

There are a couple of additional arguments you can supply, which include the ability to filter certain attributes for each record you wish to exclude and also a list of records you wish to export.

Exporting Users:

So, here are a few examples of exporting users.

1. To export all users from the local directory to a file called “exportedUsers.out”

dsexport   exportedUsers.out   /Local/Default   dsRecTypeStandard:Users

2. To export all users from the OpenDirectory LDAP node to a file called “exportedUsers.out”

dsexport   exportedUsers.out   /LDAPv3/   dsRecTypeStandard:Users

By default, all users are exported, including system, accounts. There’s nothing stopping you from editing this file and removing any accounts you wish. However, you can supply a list of users you wish to export with the -r parameter.

3. To export any user whose name is richard or oliver from the OpenDirectory LDAP node to a file called “exportedUsers.out”

dsexport   exportedUsers.out   /LDAPv3/   dsRecTypeStandard:Users  -r  richard , oliver

Exporting Groups:

Here are a few examples of exporting group records.

1. To export all groups from the local directory to a file called “exportedGroups.out”

dsexport exportedGroups.out /Local/Default dsRecTypeStandard:Groups

2. To export just the admin and staff group from the OpenDirectory LDAP node to a file called “exportedGroups.out”

dsexport   exportedGroups.out   /LDAPv3/  dsRecTypeStandard:Groups -r admin , staff


Once you have generated these files, you can then import them back into a new / replacement server if required.

  • You can use the Server app and import the file using the GUI
  • Or you can use the dsimport command line tool.

In its basic form, dsimport just requires:

  • The path to the text file you wish to import
  • The path to the directory node you wish to import into

As well as these basic two arguments, we also have some nice options to handle conflicts:

O    overwrite any records that have the same ids

M  Merge import date with existing records, or create the record if it does not exist

I  Ignore records that have conflicting ids

So to reimport our file, but ignore records that already exist we could use:

dsimport exportedUsers.out /LDAPv3/  I

Thanks for reading, I hope that this blog is of some use.

Changes to CCK 2 usage with Firefox 35

Hello again. Apologies in advance for another blog on Firefox but with a combination of frequent updates and Mozilla (again) changing where the files need to be placed to use CCK, I felt it was needed.

*Sigh* Firefox is starting to feel like Adobe Flash Player… [/personal whine]. To take full advantage of this blog, please open this page in another tab too.


Firefox Version: 35.0.0
CCK Version: 2.0.9
Date written: 15/01/15

The first of the latest change was actually with version 34, where the Mozilla developers changed where the “/Defaults/Firefox/Contents/Resources/defaults/pref” files go. These were shifted to “./Firefox.app/Contents/Resources/” instead of “./Firefox.app/Contents/MacOS/”.

With the latest version (v35), now ALL of the CCK produced files need to go into this new location.

First: Credit where credit is due

Previously, I’ve had to discover the majority of this information through trial and error and a lot of Googling, hence my effort to document my findings. However, at the start of December I found I wasn’t alone! A thread on JAMF Nation started by Tim Arnold documented the changes to CCK use with Firefox version 34.

Following on from this, a number of others contributed to show their own methods and information for CCK 2 usage, including that for Firefox version 35 once released.

It is from this forum thread the vast majority of the information below has been obtained.

So…what’s new?

Right, to prepare Firefox v35 for deployment, firstly I recommend following my previous blog “Locking down Firefox with CCK 2″ until step 47.

Here, replace step 47 with:

Navigate to the “Contents” > “Resources” folder within the bundle.

This new location will have all of the usual files previously located in “Contents” > “MacOS”. Once here, dump / install the CCK 2 files as directed in the remainder of the previous post. It should result in something like the below screenshot (depending on the lock downs you’ve configured):

change to cck2 firefox 35


This new location will have all of the usual files previously located in “Contents” > “MacOS”. Once here, dump / install the CCK 2 files as directed in the remainder of the previous post. It should result in something like the below screenshot (depending on the lock downs you’ve configured):


Thanks for taking the time to read my latest in a line of never ending Firefox posts! : P

As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can.

While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

Creating your first boot script

Why create a first boot script?

Anyone who is using the modular deployment technique will have hit the first stumbling block very early on. If you’re deploying an unbooted, unconfigured OS, how do you get it past the Apple setup assistant? After getting past this hurdle, lots of other questions start cropping up like “how do I get the Mac localised for my geographical region?” and “how do I add a local admin account?”

There are a bunch of different approaches people are using but the most popular by far is a first boot script. This is a script that is set to run on first boot, after the OS has been deployed / installed, that sets up all of these extra items so the Mac is ready for use.

Why should I build my own and not just use one I find on the Internet?

There are lots of good sources of example first boot scripts shared by the community and as long as you trust the source there is nothing wrong with using what you find. The goal of this blog is to demystify some of the first boot script contents and help you to learn how to create your own, or at the very least, understand the code that is included in others.

What language should you use for the script?

Technically speaking, any language that the Mac can understand would be OK. I generally use bash as it has most of the commands I need already built-in.

Most of the examples I’ve seen posted by other Mac admins have been in bash so although you could go for perl, python or something else, you may find getting help with tricky problems a bit of a challenge (I’m sure some perl and python masters out there will strongly disagree but this is just my opinion!)

What should I use to write the script?

You need a simple text editor for this task. I would avoid applications like TextEdit and definitely stay away from Word or other word processing apps. I have used Fraise for quite a few years and have recently started using Sublime Text. Other good options are Text Wrangler and BBEdit. In addition to these being basic text editors, they color code your text really nicely so you can see what’s a variable, a string, a comment etc.

a good text editor

User Template and Existing Users

There are quite a few settings that are per-user.  This means that some settings are stored in a preference file in each users home folder (i.e. /Users/dave/Library/Preferences/co.uk.amsys.mygreatsetting.plist, rather than /Library/ Preferences/co.uk.amsys.mygreatsetting.plist).

As a lot of you will already know, home folders are (by default) stored in /Users and when a new user logs in, the home folder is created from the template in /System/Library/User Templates.  There are a few different techniques people like to use to get their custom settings into the users home Library:

  • Use a LaunchAgent to write in the setting during login - This is a newer technique and it involves adding the settings to a script that will run at login, rather than as a first boot item. I have to say that I’m not a fan of this method mainly due to its consistency.  There is a lot going on at login and in the past I have had mixed results trying to configure user level settings quickly enough for them to always apply for every user at every login.
  • Write the data into the user template - This is my current preferred method.  Run the commands as part of the first boot script straight into the user template folders.  Any new users will then get these settings by default.

If you do use the user template method, you may need to write the data into any pre-existing home folders (for any users that logged in before you made the change).  In theory, if you have just deployed the Mac, there shouldn’t be any, but it is worth including the code so you can also use it on machines that have been in use for a while. 

My method for this is to loop through any folders found in /Users (as documented here). 

Some people have commented that it is better to read the value from the directory service.  That would also work, although it would pick up all of the system users, which would then need excluding.  My personal preference is to just go for what’s in /Users.  If I put the homes in a non-standard location, I can easily change the path for that particular environment).

I wanted to include this explanation regarding users and preferences in home folders so it adds some context around the code included in this blog.  There’s no particular right or wrong way really so go for which every method you prefer, as long as you get to where you need to be.

Commands Used

In my first boot scripts, the main commands I’m using are:

  • /usr/sbin/sysadminctl - Available in 10.10.x, used to add local accounts
  • /usr/sbin/systemsetup - Used to set NTP servers, time zones and other clock options (and lots of other things)
  • /usr/libexec/PlistBuddy - Used for reading and writing data into xml arrays
  • /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart – ARD command-line tool
  • /usr/bin/defaults – Used to read and write xml keys in plist files
  • /usr/sbin/spctl - For switching Gatekeeper on and off

Other Unix Features

  • Functions – Used to simplify the repetition of chunks of code
  • Loops – Used to repeat code based on pre-defined criteria (in this case the contents of folders)

A Quick Note About The Loops Used in The Example Script

You will notice in our example that we run very similar loops over and over again.  This isn’t necessarily the most efficient use of the code, which could be shorter.  The main reason for laying it out this way is to make each section of the script self-contained. 

This will enable you to chop out specific sections that interest you.  In reality, when we are writing a series of commands into the user template folder and existing user home folders, we would run them all in a single loop.  In this example we didn’t want you to have to find the bits you need hidden amongst other lines of unrelated code.

First boot script, step-by-step

Creating a local admin account

There are a couple of ways you can go about creating a local admin user.  One of my favorites for the past year or two has been CreateUserPkg.  This app lets you specify the account details and will generate a pkg from the resulting code that you can include in your deployment workflow.  Prior to this I was running a series of unfriendly dscl commands so this was much easier.

Since 10.10, a new command-line binary has been included called sysadminctl.  This binary lets you create and manage local user accounts.  In my 10.10 first boot script I just include a line like this:

sysadminctl -addUser localadmin -fullName “Local Admin” -UID 499 -password “apassword” -home /var/localadmin -admin

As this is a new command, here is the step-by-step breakdown:

  • Specifying the unix command to run: sysadminctl
  • Telling it I want to add a user account with the name “localadmin”: -addUser localadmin
  • Telling the command that I want the fullname to be “Local Admin”: -fullName “Local Admin”
  • Setting the UID to 499 (classed as a system account below 500): -UID 499
  • Setting a password: -password “apassword”
  • Specifying the home folder location (in a hidden directory): -home /var/localadmin
  • Specifying that I want the account to be an admin: -admin

Setting time zone and time server

There are a few different steps needed to get the time configured. For each of these commands we are using the systemsetup command line tool.  systemsetup can configure all sorts of things like sleep settings, the time, and the computer name. To see all of its options use systemsetup -help.

For our first boot script, first we need to set the time zone:

/usr/sbin/systemsetup -settimezone "Europe/London"

You can use systemsetup -listtimezones to get a full list of the available time zones.

Next I set the Mac to use a time server.  This isn’t specifying the actual time server (that’s in the next command), but rather its just saying “use a time server”:

/usr/sbin/systemsetup -setusingnetworktime on

Finally I tell the Mac which time server to use:

/usr/sbin/systemsetup -setnetworktimeserver "ntp.amsys.co.uk"

If you’re not sure which time server to use, you can always set it to your AD domain controller (if you have one) as they are configured to be time servers by default.

Region, keyboard and language

There are three separate elements we have to work on:

  • The keyboard layout
  • The language
  • The region (for the default currency etc.)

In this example I’ll be setting the Mac to use the British keyboard layout, en language and en_GB region.

The Keyboard Layout

This first part (in fact all three parts of the localization settings) require the use of plistbuddy.  This is because the data is stored in arrays.  While it might be possible with the defaults command, plistbuddy is the right tool for the job.

This part of the script is broken into two parts, first we create the function that will perform the actual task:

update_kdb_layout() {
  ${PLBUDDY} -c "Delete :AppleCurrentKeyboardLayoutInputSourceID" "${1}" &>/dev/null
  if [ ${?} -eq 0 ]
    ${PLBUDDY} -c "Add :AppleCurrentKeyboardLayoutInputSourceID string com.apple.keylayout.${NAME}" "${1}"
  for SOURCE in AppleDefaultAsciiInputSource AppleCurrentAsciiInputSource 
AppleCurrentInputSource AppleEnabledInputSources AppleSelectedInputSources
    ${PLBUDDY} -c "Delete :${SOURCE}" "${1}" &>/dev/null
    if [ ${?} -eq 0 ]
      ${PLBUDDY} -c "Add :${SOURCE} array" "${1}"
      ${PLBUDDY} -c "Add :${SOURCE}:0 dict" "${1}"
      ${PLBUDDY} -c "Add :${SOURCE}:0:InputSourceKind string 'Keyboard Layout'" "${1}"
      ${PLBUDDY} -c "Add :${SOURCE}:0:KeyboardLayout\ ID integer ${LAYOUT}" "${1}"
      ${PLBUDDY} -c "Add :${SOURCE}:0:KeyboardLayout\ Name string '${NAME}'" "${1}"

This function will delete the current keyboard layout entry (if present) and add in the new entries.

Next we set the keyboard layout in /Library/Preferences and in each user’s home directory. The setting is stored in the com.apple.HIToolbox.plist file.

update_kdb_layout "/Library/Preferences/com.apple.HIToolbox.plist" "${NAME}" 
for HOME in /Users/*
    if [ -d "${HOME}"/Library/Preferences ]
      cd "${HOME}"/Library/Preferences
      HITOOLBOX_FILES=`find . -name "com.apple.HIToolbox.*plist"`
        update_kdb_layout "${HITOOLBOX_FILE}" "${NAME}" "${LAYOUT}"

Setting the OS language

Similar to the keyboard layout, we create a function to set the language:

update_language() {
  ${PLBUDDY} -c "Delete :AppleLanguages" "${1}" &>/dev/null
  if [ ${?} -eq 0 ]
    ${PLBUDDY} -c "Add :AppleLanguages array" "${1}"
    ${PLBUDDY} -c "Add :AppleLanguages:0 string '${LANG}'" "${1}"

Then we use a loop script to write the value into /Library/Preferences and each user’s home folder. The language setting is stored in the .GlobalPreferences.plist file.

update_language "/Library/Preferences/.GlobalPreferences.plist" "${LANG}"
for HOME in /Users/*
    if [ -d "${HOME}"/Library/Preferences ]
      cd "${HOME}"/Library/Preferences
      GLOBALPREFERENCES_FILES=`find . -name "\.GlobalPreferences.*plist"`
        update_language "${GLOBALPREFERENCES_FILE}" "${LANG}"

Setting the region

Finally we need to set the region (for default currency and a few other values).

As before, it’s another function:

update_region() {
  ${PLBUDDY} -c "Delete :AppleLocale" "${1}" &>/dev/null
  ${PLBUDDY} -c "Add :AppleLocale string ${REGION}" "${1}" &>/dev/null
  ${PLBUDDY} -c "Delete :Country" "${1}" &>/dev/null
  ${PLBUDDY} -c "Add :Country string ${REGION:3:2}" "${1}" &>/dev/null

Followed by a script to set the values in /Library/Preferences and each user’s home:

update_region "/Library/Preferences/.GlobalPreferences.plist" "${REGION}"
for HOME in /Users/*
    if [ -d "${HOME}"/Library/Preferences ]
      cd "${HOME}"/Library/Preferences
      GLOBALPREFERENCES_FILES=`find . -name "\.GlobalPreferences.*plist"`
        update_region "${GLOBALPREFERENCES_FILE}" "${REGION}"

Apple Remote Desktop

Apple Remote Desktop has a number of options available that can be configured via a first boot script. The command-line tool is buried in the System Library so it is worth setting its location to a variable to make the other commands a bit more readable:


First off we will need to switch ARD on:

$ARD -configure -activate

Next we need to lock the service down to specific users and decide what they can and can’t do.

$ARD -configure -access -on
$ARD -configure -allowAccessFor -specifiedUsers
$ARD -configure -access -on -users localadmin -privs -all

These options will enable access for the Macs local accounts, ensure that only the specified users can get access, and then sets specific options for the localadmin account.

The -privs all tells ARD that localadmin is allowed to use all of the sub-options available in ARD. Other options for -privs include:

-mask <mask>

It is important to ensure that ARD can only be used by specified users. This is due to a security loophole with the “all users” option. When ARD is set to allow all users, this includes all users in any directory the target Mac is bound to. In the ARD app, you can send Unix commands as the root user. If all users are allowed to use ARD, this means that a non-admin domain user could send root commands to the Mac.

There are a lot more options available in the kickstart binary. Use the -help option to see the full list.

Tip: Make sure you include the ARD code AFTER creating the local admin user account (it can’t give access to a user that doesn’t exist).

Enabling SSH access

Either in addition to, or instead of ARD, you can enable SSH access with the following command:

systemsetup -setremotelogin on

Setting up the Login Window

There are a few options we normally configure for the Login Window.

First off we like to set it to username and password text fields rather than displaying a list of local users. This can be set with a one-line command:

/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool 

The second change is to allow admin host information to be visible. When this is enabled, you can click the hostname in the top right corner of the screen to get other information such as the Mac’s IP address:

/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo 

Finally, we disable External Accounts at the Login Window. External Accounts were introduced with an earlier version of Mac OS X (I can’t remember exactly which one but it was around 10.5) that allows you to store a user account and its home folder on an external drive. When you plug in the drive (after entering admin account details), the user can log in with the external account.

This isn’t a feature we want enabled so we disable it with the following command:

/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow 
EnableExternalAccounts -bool false

Disable iCloud Setup at login

The next alteration is to stop the iCloud setup screen appearing when users log in to the Mac. This is particularly useful in education environments as the students would not normally (certainly in shared device setups) need to login with an iCloud account.

This setting has always been a little tricky to configure as it changes depending on the OS version of the Mac. Thanks to Rich Trouton’s code, the following information can be written into the com.apple.SetupAssistant.plist file in each user’s home folder:

First we get the OS version and save the info into a variable:

osvers=$(sw_vers -productVersion | awk -F. '{print $2}')
sw_vers=$(sw_vers -productVersion)

Next we write the value into the files in the user template:

for USER_TEMPLATE in "/System/Library/User Template"/*
    /usr/bin/defaults write 
"${USER_TEMPLATE}"/Library/Preferences/com.apple.SetupAssistant DidSeeCloudSetup -bool 
    /usr/bin/defaults write 
"${USER_TEMPLATE}"/Library/Preferences/com.apple.SetupAssistant GestureMovieSeen none
    /usr/bin/defaults write 
LastSeenCloudProductVersion "${sw_vers}"
    /usr/bin/defaults write 
LastSeenBuddyBuildVersion "${sw_build}"

Finally we write the value into any existing user home folders in /Users:

for USER_HOME in /Users/*
		USER_UID=`basename "${USER_HOME}"`
		if [ ! "${USER_UID}" = "Shared" ] 
		if [ ! -d "${USER_HOME}"/Library/Preferences ]
			mkdir -p "${USER_HOME}"/Library/Preferences
			chown "${USER_UID}" "${USER_HOME}"/Library
			chown "${USER_UID}" "${USER_HOME}"/Library/Preferences
		if [ -d "${USER_HOME}"/Library/Preferences ]
			/usr/bin/defaults write 
"${USER_HOME}"/Library/Preferences/com.apple.SetupAssistant DidSeeCloudSetup -bool 
			/usr/bin/defaults write 
"${USER_HOME}"/Library/Preferences/com.apple.SetupAssistant GestureMovieSeen none
			/usr/bin/defaults write 
"${USER_HOME}"/Library/Preferences/com.apple.SetupAssistant LastSeenCloudProductVersion "${sw_vers}"
			/usr/bin/defaults write 
"${USER_HOME}"/Library/Preferences/com.apple.SetupAssistant LastSeenBuddyBuildVersion "${sw_build}"
			chown "${USER_UID}" 

Disable diagnostics at login

A second prompt that OS X has started offering at login is whether the user would like to submit diagnostic information. In a lot of our setups this isn’t something we want to ask the user so we disable it using a similar method to iCloud, although in this case we are back to plistbuddy as the information is stored in an array:

We normally use two variables for submitting info to Apple and to developers. This is just to make it easy to toggle them on and off as needed:


Then the main body of the script:

os_rev_major=`/usr/bin/sw_vers -productVersion | awk -F "." '{ print $2 }'`
if [ $os_rev_major -ge 10 ]; then
  CRASHREPORTER_SUPPORT="/Library/Application Support/CrashReporter"
  if [ ! -d "${CRASHREPORTER_SUPPORT}" ]; then
    chmod 775 "${CRASHREPORTER_SUPPORT}"
    chown root:admin "${CRASHREPORTER_SUPPORT}"
  for key in AutoSubmit AutoSubmitVersion ThirdPartyDataSubmit 
ThirdPartyDataSubmitVersion; do
    $PlistBuddy -c "Delete :$key" "${CRASHREPORTER_DIAG_PLIST}" 2> /dev/null
  $PlistBuddy -c "Add :AutoSubmit bool ${SUBMIT_TO_APPLE}" 
  $PlistBuddy -c "Add :AutoSubmitVersion integer 4" 
  $PlistBuddy -c "Add :ThirdPartyDataSubmit bool ${SUBMIT_TO_APP_DEVELOPERS}" 
  $PlistBuddy -c "Add :ThirdPartyDataSubmitVersion integer 4" 

Disable Time Machine Popups Offering for New Disks

When you plug in an external drive to a Mac, it will automatically offer to use it as a Time Machine destination. While most users would know which option to select, it is often not worth the risk. You can disable Time Machine offering new disks for backup with the following command:

 /usr/bin/defaults write /Library/Preferences/com.apple.TimeMachine 
DoNotOfferNewDisksForBackup -bool true

Turn off Gatekeeper

This is possibly a questionable command from a security perspective. Personally I like to keep Gatekeeper in its strictest setting, as I can manually allow new apps if needed. In some situations however you may want to disable Gatekeeper so that your install PKGs and other apps can run without warning messages. To configure this setting use the following command:

spctl --master-disable

This is only advisable if you have good control over who can run and install what on the Macs. If your users are admins, or if they use the Macs on unfiltered Internet connections, this might not be such a good idea.

For more information about Gatekeeper, take a look at these previous blogs:

Turn on right-click

We often get requests to enable right-click by default. This is another one that needs to be set in the user template for any new users and the existing home folders for any users that have already logged in:

To add the setting to the user template:

for USER_TEMPLATE in "/System/Library/User Template"/*
	/usr/bin/defaults write 
"${USER_TEMPLATE}"/Library/Preferences/com.apple.driver.AppleHIDMouse Button2 -int 2
    /usr/bin/defaults write 
"${USER_TEMPLATE}"/Library/Preferences/com.apple.driver.AppleBluetoothMultitouch.mouse MouseButtonMode -string TwoButton
    /usr/bin/defaults write 
"${USER_TEMPLATE}"/Library/Preferences/com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -int 1

To add it to existing user home folders:

for USER_HOME in /Users/*
		USER_UID=`basename "${USER_HOME}"`
		if [ ! "${USER_UID}" = "Shared" ] 
			if [ ! -d "${USER_HOME}"/Library/Preferences ]
			mkdir -p "${USER_HOME}"/Library/Preferences
			chown "${USER_UID}" "${USER_HOME}"/Library
			chown "${USER_UID}" "${USER_HOME}"/Library/Preferences
			if [ -d "${USER_HOME}"/Library/Preferences ]
				killall -u $USER_UID cfprefsd
				/usr/bin/defaults write 
"${USER_HOME}"/Library/Preferences/com.apple.driver.AppleHIDMouse Button2 -int 2
    			/usr/bin/defaults write 
MouseButtonMode -string TwoButton
    			/usr/bin/defaults write 
TrackpadRightClick -int 1

Turn off restore windows

If you don’t want application windows to automatically re-open when apps are re-launched, you can use the following script:

for USER_TEMPLATE in "/System/Library/User Template"/*
	/usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/ 
.GlobalPreferences NSQuitAlwaysKeepsWindows -boolean FALSE

To add it to existing user home folders:

for USER_HOME in /Users/*
		USER_UID=`basename "${USER_HOME}"`
		if [ ! "${USER_UID}" = "Shared" ] 
			if [ ! -d "${USER_HOME}"/Library/Preferences ]
			mkdir -p "${USER_HOME}"/Library/Preferences
			chown "${USER_UID}" "${USER_HOME}"/Library
			chown "${USER_UID}" "${USER_HOME}"/Library/Preferences
			if [ -d "${USER_HOME}"/Library/Preferences ]
			killall -u $USER_UID cfprefsd
			/usr/bin/defaults write "${USER_HOME}"/Library/Preferences/ 
.GlobalPreferences NSQuitAlwaysKeepsWindows -boolean FALSE

Stop writing .DS_Store files on the network

This is one for the Windows admins. To stop the Mac clients leaving a trail of .DS_Store files on network drives, use the following:

for USER_TEMPLATE in "/System/Library/User Template"/*
	/usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/.GlobalPreferences DSDontWriteNetworkStores -bool TRUE

To add it to existing user home folders:

for USER_HOME in /Users/*
		USER_UID=`basename "${USER_HOME}"`
		if [ ! "${USER_UID}" = "Shared" ] 
			if [ ! -d "${USER_HOME}"/Library/Preferences ]
			mkdir -p "${USER_HOME}"/Library/Preferences
			chown "${USER_UID}" "${USER_HOME}"/Library
			chown "${USER_UID}" "${USER_HOME}"/Library/Preferences
			if [ -d "${USER_HOME}"/Library/Preferences ]
			killall -u $USER_UID cfprefsd
			/usr/bin/defaults write "${USER_HOME}"/Library/Preferences/.GlobalPreferences DSDontWriteNetworkStores -bool TRUE

Set the Users Homepage

Safari home pages can be set various different ways. I have often included this in first run scripts so I can be sure that new windows and tabs are behaving just as I need them:

for USER_TEMPLATE in "/System/Library/User Template"/*
	/usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/com.apple.Safari.plist HomePage -string "$HOMEPAGE"
    /usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/com.apple.Safari.plist NewTabBehavior -integer 0
    /usr/bin/defaults write "${USER_TEMPLATE}"/Library/Preferences/com.apple.Safari.plist NewWindowBehavior -integer 0
# Existing users
killall cfprefsd
for USER_HOME in /Users/*
		USER_UID=`basename "${USER_HOME}"`
		if [ ! "${USER_UID}" = "Shared" ] 
			if [ ! -d "${USER_HOME}"/Library/Preferences ]
			mkdir -p "${USER_HOME}"/Library/Preferences
			chown "${USER_UID}" "${USER_HOME}"/Library
			chown "${USER_UID}" "${USER_HOME}"/Library/Preferences
			if [ -d "${USER_HOME}"/Library/Preferences ]
				echo "Working on home folder preference file: ${USER_HOME}/Library/Preferences/com.apple.Safari.plist"
				mv "${USER_HOME}"/Library/Preferences/com.apple.Safari.plist "${USER_HOME}"/Library/Preferences/com.apple.Safari.plist_bak
				/usr/bin/defaults write "${USER_HOME}"/Library/Preferences/com.apple.Safari.plist HomePage -string "$HOMEPAGE"
    			/usr/bin/defaults write "${USER_HOME}"/Library/Preferences/com.apple.Safari.plist NewTabBehavior -integer 0
    			/usr/bin/defaults write "${USER_HOME}"/Library/Preferences/com.apple.Safari.plist NewWindowBehavior -integer 0
    			chown $USER_UID "${USER_HOME}"/Library/Preferences/com.apple.Safari.plist

The numbers after the -integer option refer to specific settings accepted by the Safari preference file:

0 – Homepage
1 – Empty Page
2 – Same Page
4 – Top Sites

Example Completed Script

If you would like to test out a completed version of this script you can find it on our Github page

Getting the LDAP distinguished name for an AD user

Sometimes when I’m integrating Macs (and other systems) with Active Directory they ask for the full LDAP distinguished name of the user I’m using to authenticate. This is the user name in the traditional LDAP format:

cn=username,ou=something,DC=amsys,DC=com (for example).

In some cases, if it’s a fairly vanilla and small AD install you can take an educated guess from the domain name and the name of the user. In other cases, if the AD structure is quite complex you need to know exactly what it is. Here is my quick method for grabbing the information.

Using a Windows computer (doesn’t matter whether it is a server or a client), open the Computer Management Console by select Start > Run, typing computermgmt.msc and hitting return.

computer management console ad integration

Expand Users & Groups, select groups and open the properties screen for one of the groups.

In the Properties window, click Add.

expand users and groups

In the Select Users window, click Advanced.

In the Select Users window, search for the admin user name and select to show the X500 name in the attributes to display (which is the full distinguished name).

That’s it. The search will return the full distinguished name.

OS X Yosemite certified courses arrive at Amsys

os x yosemite logoHappy New Year! I hope that you had a wonderful break, are fully rested and ready to embrace what 2015 has to offer!

Just before Christmas, Mandy and I scheduled our very first set of 10.10 Apple Certified course dates, the first of which can be found below.

Call 0208 645 5806 or email training@amsys.co.uk for more information.

Look forward to seeing you on a course soon!

Amsys’ First OS X Yosemite Certified Course Dates 


OS X Support Essentials 10.10

os x yosemite support essential course datesLearn how to support and troubleshoot Mac devices running Apple’s latest OS X, Yosemite. This 3 day certified course will teach you the key skills needed to successfully troubleshoot 10.10 for your users.
Plus, take and pass the exam to receive your ACSP!



OS X Server Essentials 10.10

os x yosemite server essential course datesThis 3 day certified course will teach you how to integrate and administer OS X Yosemite server. Take this course to achieve 10.10 ACTC status. The highest certification that Apple awards!



Mac Integration Basics 10.10

os x yosemite mac integration course datesThis course has been created for techs who are responsible for introducing a Mac device(s) into a small business environment that’s predominantly Windows-based. The course to take to learn how to integrate Mac(s)!



Mac Management Basics 10.10

os x mac management 10.10 trainingDo you have a collection of Macs that need to be configured and managed, but don’t know where to start? Do you know what’s involved and how to ensure you can keep your Mac estate up to date?
If not, then attend the Mac Management Basics course.



Swift London – 1 Hr Beginner Workshop

swift london meetup

Founded on 5th of June 2014, the meet up group, Swift London has grown into a collaborative community of beginner and advanced developers, eager to learn more about the Swift programming language.

Over the last 6 months, the group has held a series of events, alternating between talks and hands-on sessions, culminating in their brilliant Christmas Party, whereby developers from across the UK showcased their experiences with Swift.

This month, we’re delighted to announce that Amsys will be co-hosting Swift London’s first Swift for Beginners workshop on the 19th of January.

When: 19th January 2015 (18:30 – 20:30)
Where: London

// Please register now if you want to attend as this event will be fully booked within the next 24 hours. //

Best Practices in 2015: Modular Deployment & Patch Management

Whether you have already deployed Macs in your organisation or you are trying to work out how to do it, one of our recommendations is to adopt a solid deployment and patch management approach from the start.

This topic breaks into a number of smaller methodologies described in one of our earlier blogs.

When you are starting to look at refining your deployment processes, there are a few things to take into account:

  • To get the Macs initially setup and useable you will need the ability to deploy your line of business apps
  • You will need to be able to patch this line of business apps and other parts of the system

It is worth pointing out that the time or money invested in improving these systems is often relative to the size of organization.  If you are a startup with 1 or 2 employees you probably aren’t going to rush into setting up a deployment system, but as your business grows, the time lost manually setting up machines and the risks associated with not patching them will grow.

Deploying line of business apps

The first recommendation is to set up a system that can deploy apps from a central point to each of your organisations Macs.  There are lots of different tools available and setting one up will mean you don’t have to touch each computer when you want to deploy new apps.

The key idea is to add the app installers to the deployment server and then “enroll” each computer so they can receive the packages.  You can then choose whether the deployment happens automatically or if they are presented to the user in a self service interface.

What tools can you use?munki guide

There are lots of options on the server side to accomplish this including Munki, Casper, Bushel, Absolute Manage & FileWave to name a few.  Our preference is either Munki or the Casper Suite.

The choice of one over the other will depend on budget, and the technical level of the operator (Casper has a slightly easier learning curve and being a commercial product, is backed by a thorough training programme).

For both of these tools and other programmes, the basic concept involves packaging each of your apps, adding them to the server and then configuring them to be deployed to the Macs.    The level of difficulty will really depend on the app you are packaging.

In some cases, if you don’t need any customisations made to the app, you can just drop in the installer straight from the vendor.  In other cases, strange licensing / activation processes, per user customisations and additional settings can make the packaging more complex.

volume purchase programmeA Note About The Mac App Store

Getting apps from the Mac App Store is a little different.  Many of you will have used the App Store to purchase individual apps and while you can still do that with your business computers, it can be more efficient to sign-up for a VPP account from Apple and use a deployment tool.

There are two methods we have been using recently to get the apps from the app store and onto the Macs.  The first is to re-package the app into an Apple installer file and distribute with a deployment server like Munki or Casper.

The main benefit is a zero-touch process for the end-users.  You can silently push the apps to the devices without user interaction, removing the need to manually configure each machine.  The downside is that updates for these apps are tied to the original Apple ID so you will need to look after the patching as well.jamf software

The second app store technique involves the Casper Suite from JAMF Software.  They have a neat feature that allows you to deploy Mac App Store apps in their self service portal.

The process is much easier than repackaging, although it does require a little more user interaction.  It has the added benefit of presenting all available apps (including non-app store apps) to the user in a single interface.

Patching and software updates

A lot of people consider the ongoing patch management of Mac OS X and the deployed apps even more important than the initial deployment.  The logic could be a little off as without the core business apps the Macs aren’t really much use, but I would agree that just focusing on getting the apps out without considering how you will keep things up to date is a bad idea.

If you ignore all updates, as well as being vulnerable to all sorts of attacks, you are putting off the inevitable.  The task of updating just keeps growing until it becomes a major project.

The tools and techniques used for patching Mac OS X, and your business apps go hand in hand with the initial deployment, with a few additions.  The goal is to be able to deploy updates to the base OS and third party apps with the minimum of fuss.

firefoxFor apps like Firefox, there is no delta installer, you will just be deploying the whole thing, in which case you would add it to your deployment server just as if you were deploying it for the first time (note: make sure you aren’t deleting user settings such as bookmarks in the process).

The same applies for lots of other delta updates like the Microsoft Office patches; the only difference is the requirement for the original program to be on the machine before the update is run.

For Apple updates, a traditional Software Update Server still works best.  You can set this up with a Mac running the server app, or if you are feeling more adventurous (or would rather run the service on non-apple hardware), you could use Reposado.

A Software Update Server lets you enable new updates to the base OS and Apple apps once you have tested them, avoiding deploying a potentially harmful update from disrupting the Macs.

The final option to streamline the patching process is to use AutoPKG.  This service lets you setup automatic workflows for a lot of your third party apps so the new versions can download and add themselves to your deployment system.  The project started out working with Munki but has been extended to also work with Casper (AutoPKGr).

It is important to note that if you set up this service to automatically download and deploy the updates, you are putting your trust in unknown parties.

We would recommend setting it up, so new updates go into a “quarantine” group and only deployed to test machines.  If you are more security conscious, or are bound by strict security compliance regulations AutoPKG may not be for you, in which case you would need to use a more manual process.

If you are thinking about deploying a new fleet of Macs or iOS devices and require Apple consultancy or advice, please contact our expert team today. Call 0208 660 9999 or email support@amsys.co.uk.

Setting the Network Time Server from the Command Line

Hi All, here’s a short and sweet blog post to kick off the new year!

I often get asked about setting up NTP configurations on client devices in a better way than manually. You can do this from the command line simply enough:

	/usr/sbin/systemsetup -setnetworktimeserver "$NTPServer"
	/usr/sbin/systemsetup -setusingnetworktime on

Swap the “time.euro.apple.com” with your desired NTP server and run the commands as root (using ‘sudo’ in front of them). The first command sets the NTP server address (viewable in the GUI in ‘System Preferences’ under ‘Date & Time’). The second command enables the use of the NTP.

Trick 1: Scripting

As this is a bash command, you can chuck it into a Bash / Shell script. Typically I will put this into a ‘first boot’ script to configure a device during imaging.

Trick 2: AD Domain

Another cool trick is if you’re in an AD domain scenario, you can usually set the domain as the NTP rather than a specific NTP and the client/s will use AD / DNS to find a specific NTP!

E.g. if your NTP servers are ‘time1.example.com’ and ‘time2.example.com’, and your domain is ‘example.com’, set the NTP to the ‘example.com’ address and it should find the NTPs automatically.


There you go, short and sweet.

As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can.

OS X Yosemite hidden feature series – Part 1

os x yosemite hidden features

Since OS X Yosemite was released in October, I’ve been hunting around for those cheeky little Easter eggs that Apple like to sneak in. In this new series, I will be blogging about some of my favourites.

I was going to start this blog series in the new year, but then I decided it might be nice to release the first part as a Christmas treat!

So, to kick us off in Part 1, I thought I’d start with a couple of new features in the Finder and Dock, therefore the user interface in OS X Yosemite.

New Feature 1: Finder Dark mode

Yosemite has a new look, and it’s brighter and crisper than ever. For some people though, this may be too bright and crisp! So, Apple provided a ‘Dark Mode’.

Simply navigate to the General pane of System Preferences and tick the box next to ‘Use dark menu bar and Dock’:

os x yosemite dark mode

Here is a ‘before’ snapshot showing the default menu bar and dock, notice how bright and white the menu bar and Dock are:

before dark mode yosemite

And now below is an ‘after’ snapshot showing the Dark Mode menu bar and Dock, notice the menu bar and Dock are now darker (black):

in dark mode yosemite

This ‘Dark Mode’ is ideal for anyone working in perhaps a professional photo or video environment.

New Feature 2: Batch rename files or folders in Finder

Have you ever had a bunch of files or folders and needed to rename them quickly and all in sequence? Yosemite makes this a breeze.

All you need to do is highlight all your files/folders, then control-click/right-click them and select ‘Rename items’ from the contextual menu that appears. Then just choose your choice from the drop down menu, select your criteria, click Rename and you’re all done!

Below is an example where I wish to rename 4 files in sequence:

Step 1: Select all the files in the Finder:

batch rename files in yosemite

Step 2: Control-click/right-click the items and select ‘Rename items’ from the contextual menu that appears:

batch rename four files in yosemite

There is now a choice of 3 renaming options:

batch rename replace text yosemite

You can simply Replace Text in all items:

replace text in all file names yosemite

Add Text in all items:

add text all files yosemite

Or use Format to reformat Text in all items:

use format to reformat text yosemite

Step 3: I have chosen to Format the text as follows:

reformat text in yosemite

This will rename each file in turn as ‘RussDoc’ and then add a sequential number starting from ’1′.

Below is the result:

batch reformat result yosemit3e

New Feature 3: Handoff

If you own more than one Mac device, let’s say an iPhone and an iMac, Yosemite and iOS 8 combined have a really nifty feature known as Handoff. It is technically 1 part of a feature known as Continuity.

So what is ‘Handoff’?

To quote Apple’s website:

“Say you start writing a report on your iMac, but you want to continue on your iPad as you head to your meeting. Or maybe you start writing an email on your iPhone, but you want to finish it on your Mac. Handoff makes it possible. When your Mac and iOS devices are near each other, they can automatically pass what you’re doing from one device to another.

An icon representing the last app you were using will appear on your second device — in the Dock on your Mac or on the Lock screen on your iOS device. Just click or swipe to pick up exactly where you left off without having to search for the file. Handoff works with Mail, Safari, Pages, Numbers, Keynote, Maps, Messages, Reminders, Calendar and Contacts. And app developers can easily build Handoff into their apps.”

Make sense?

So, let’s see it in action. I’ll be using an iPhone 5 running iOS 8.1.2 and an iMac running OS X Yosemite 10.10.1.

First of all, the requirements to use Handoff:

  • Sign into the same iCloud account on all your devices.
  • Turn on Bluetooth on all the devices you want to use. Make sure your devices are near each other.
  • Connect all your devices to the same Wi-Fi network.

Step 1: Go to the Settings App in iOS 8, choose ‘General’ and then ‘Handoff & Suggested Apps’ and ensure that ‘Handoff’ is enabled:

setting up handoff

Step 2: On your Yosemite Mac, ensure that Handoff is enabled in General Preferences:

enable handoff in general preferences

Step 3: Ensure both devices are logged into the same iCloud account, (iOS 8 = Settings App>iCloud, OS X Yosemite = System Preferences>iCloud), the same Wi-Fi network and have Bluetooth enabled.

Step 4: Start to compose a new email using the Mail app on your iPhone:

create and send an email using handoff

Step 5: Your phone should ‘notify’ your Mac in the far left of the Dock that there is an email that you can continue from your iPhone:

mail from iphone handoff

(You could also use OS X’s App switcher by using the Command-Tab keys to switch to an app with a Handoff icon).

Step 6: Select the Email icon at the far left of the Dock to open the email and continue:

reply to email handoff


Let’s look at it the other way round, ‘Handing off’ from OS X to iOS.

Step 1: Using the rules from above, but this time start the email on your Mac, then the Lock screen of your iOS device will show the icon of the Handoff supported app in the lower left hand corner, (and yes, that is me in the racecar!):

handing off from os x to ios

Step 2: Swipe the Handoff app icon ‘UP’, (in this case the Mail icon), and unlock the device if it has a passcode. The email or whatever Handoff content there is, will load on the screen.

You can also go to the multitasking display in iOS, (double-clicking the Home button on your your iPhone, iPad, or iPod touch,) swipe all the way from left to right to see that the Handoff app is the first icon in this list before the homescreen, then tap the app:

mulit tasking display handoff

New Feature 4: Quickly disconnect from a Wi-Fi network

I have often wanted to disconnect from a Wi-Fi network without having to turn Wi-Fi completely off. Before Yosemite, this couldn’t easily be done. Well, now you can!

In OS X Yosemite, once connected to a Wi-Fi network, simply option/alt click the Wi-Fi icon in the top right menu bar. You will now have an option to disconnect from the network listed underneath the name of the currently in-use Wi-Fi:

quickly disconnect from a wifi network

(If you are connecting to an iPhone/iPad using the Personal Hotspot feature of iOS, this feature is immediately available from the Wi-Fi menu without having to option/alt click).

I hope you have found this blog useful, there are many more features than I haven’t listed here, but these are 4 features that I have found people have not been aware of, or have not been able to use correctly so I thought they would be good to blog.

Read part 2 here, which covers all the new and hidden features in Safari!

Apple has a good overview of the main new features of OS X Yosemite on their website should you wish to see what else is out there.

Also, if you would like to learn more about OS X Yosemite and iOS 8 we teach a large collection of OS X Mac and iOS support courses, which you may find useful.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

Calling all iOS Developers!

We are on the hunt for 2 experienced and enthusiastic iOS developers, 1 senior iOS developer and 1 web/database developer who are based in or are willing to relocate to Glasgow!

Who will you be working for?

You will be working for one of the leading facilities management companies in the UK; who are looking to expand their in-house iPad app development team to develop innovative apps for their large network of retail clients.

Who do you need to be to apply?

An experienced iOS app developer or web developer! We have 3 roles that we have been tasked with to recruit for, all of which are offering a substantial pay packet and benefits package:

iOS Developer

  • Minimum 5 years overall development experience including 2+ years coding for iOS devices in Objective-C/Cocoa/Xcode
  • A link to a working iOS application that you have created or worked on.
  • Commercial software product development experience -  not just internal or personal software apps.

Read full job description here


Senior iOS Developer

  • You must have previous management experience
  • 6 years + overall development experience
  • Strong analytical and problem solving skills.

Read full job description here


Web/Database Developer

  • Minimum 4 years Web Development/JSON Web service experience
  • Minimum 2 years commercial experience in ASP.NET MVC
  • Strong C# and SQL Skills

Read full job description here

Amsys Advent Calendar Christmas Countdown

Kick off the festive season in style, and countdown the 12 days to Christmas with Amsys.

From tomorrow (12th December) we will be giving away an Apple themed gift or Amsys treat with every course that’s booked!

Your gift or treat can be redeemed by quoting the offer code that will be revealed each day by email. To join in with the festivities and to receive your 12 days of Christmas email – please add your email address to the field below.

Munki 2: Introduction

Hi all. I’ve been meaning to do this for the last few months. On 23rd September 2014, Greg Neagle released the official version 2.0 of the Munki solution.

Version 2 has brought a number of (good) changes and additional features to make the whole solution much prettier to the end user.

Firstly, the new requirements

New version means new requirements:

  • Munki 2 no longer supports Leopard (unlike Munki 1). This puts the client OS’ supported by Munki 2 at 10.6.x to 10.10.x
  • Munki 1 does not officially support Yosemite. This puts the client OS’ supported by Munki 1 at 10.5.x to 10.9.x.

New features

The biggest change for Munki 2 has been the GUI application on the client devices.

Munki 1 made use of a locally installed client application called “Managed Software Update” and this was modeled on the current built-in Apple Software Update tool of the time.

munki 2 managed software updates

However, Munki 2′s client application has been redesigned to have a similar look and feel as the modern day software update system, the Mac App Store. With this new look, is a new name, ‘Managed Software Centre’ and a new location in the main Applications folder.

munki 2 managed software centre

This new look and feel will show the most benefit to the optional applications you may offer through your Munki solution, specifically, the ability to group applications by category and to provide more detailed information regarding each installation along with screenshots and icons!

munki wiki

munki firefox wiki

This new solution also allows the customisation of the application (‘re-skinning’) to allow a number of branding options for your organisation.


The important question, what versions of Munki client and server work together? The answer (ignoring Mac OS X versions) is all!

The changes to the Munki server are purely some additionally directories in the Munki Repo, and some additional keys in the ‘pkgsinfo’ files. The interactions are as follows:

Munki 1 Server, Munki 1 Client

No change in behaviour.

Munki 2 Server, Munki 1 Client

Client will still use the older Managed Software Update tool. Any new items (keys) in the pkgsinfo files (such as path to icon, Categories, or Developer) will simply be ignored and the solution will function as before.

Munki 1 Server, Munki 2 Client

The Client will use the new App Store style application and will see any pkgsinfo files that are missing the keys as a blank value and use the default icons and settings (e.g. standard Apple installer icon and blank values for the others).

Munki 2 Server, Munki 2 Client

The Client will use the new App and the new features from the updated server.

Please Note: There will be no further releases for the Munki 1 tools and so any bugs that are found will not be fixed.

Looking ahead

As with the original Munki series, I’ve got a few blogs planned (time permitting!) At the risk of promising too much, I hope to cover:

  • Munki 2 Server setup / Munki 1 to Munki 2 Server upgrade
  • Munki 2 Client setup / Munki 1 to Munki 2 Client upgrade
  • Using Munki Admin with Munki 2
  • Updating your existing Munki Repo content for Munki 2

Ideally, these will be in my same ‘I assume you haven’t used Munki before and want an easy to follow, basic setup to build off’ style, please let me know if I go too much one way or another.

One more thing…

Around the same time, Greg moved the main storage of the Munki tools and wiki from Google Code to GitHub. New address is https://github.com/munki/munki


There you go again, a small introduction into Munki 2 and what has changed over Munki 1.

Any hints, tips or opinions? Let us know in the comments below and I’ll try to respond to as many as I can.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.


Setup Facebook Messages With Apple Messages App

Facebook is one of the biggest and most popular social media networks in existence. Thousands of messages are sent via it on a daily basis. A Mac user can setup their messages app so that it displays messages sent to them and allows them to reply without having a Facebook window open.

So, how do I setup Messages to work with Facebook?

setup Messages to work with Facebook

With the ‘Messages’ app open select ‘Preferences’ from the ‘Messages’ menu

open preferences in apple messages

When the ‘Preferences’ windows loads select the ‘Accounts’ tab

mail accounts general pane

This will list all the accounts that are used by messages e.g. iCloud account that is linked with an iPhone.

Click the ‘+’ button in the bottom left corner.

setup bonjour on facebook

This will open the add account screen, select the option to use a different account type.

add new email account facebook messenger

From the drop down menu select the Jabber message protocol for the ‘Account Type’.

add jabber facebook messenger apple

add a messages account jabber apple

You need to use your Facebook user name with @chat.facebook.com for the account name.

To find out you Facebook username you need to go to facebook.com/username

Here is the full support article for finding/changing you Facebook username.

Once you have added the details for the account click the ‘Next’ button.

Once the account has been created you will be put back on the main screen of the messages app. From here, click the button to start a new conversation.

create a new conversation facebook messenger apple

This will open the list of your friends allowing you to select whom ever you wish to message.

send a facebook message to a contact apple

Once you have selected a friend click in the message bar at the bottom of the window. Type your message and press the ‘return’ key to send the message.

send facebook message via os x

A green message bubble shows that the message has sent to the user. As long as the message app is running in the background when a message is sent to you it will show a badge icon over the messages app icon to indicate a new message.

4 “Mac in the enterprise” deployment techniques

mac deployment techniquesThere are a number of ways you can deploy Mac OS X.  The tools and techniques used have evolved rapidly over the past few years.  In this blog post I will summarize each deployment technique, explain our view on scenarios where you would use one over another and how new options such as DEP have moved things along.

The main methods we will discuss are:

  • Monolithic (traditional) imaging
  • Modular imaging (base OS image + packages and settings)
  • Thin imaging (just packages and settings)
  • User self-service

1. Monolithic (traditional) Imaging

This method has been around for some time.  Back in the heyday of NetRestore, this was the cool new way to deploy Macs (iOS didn’t exist!).  You would get your hands on a model Mac, typically the highest spec that had the most hardware features, install all of the software packages you needed and configure machine level settings, such as the Login Window layout and sharing preferences.

Once you were happy with the setup, you would create a disk image of the hard drive using hdiutil, disk utility or another tool, scan the image for block restoration and then deploy it to the rest of the Macs that you needed to set up.  The end result was a set of identically configured Macs so from that perspective it was a working process.

The downside, however, is when you either spot a problem with the configuration or an update is released just as you finish.  I had lots of situations where I would spot a minor imperfection in the image, meaning hours of work to deploy the image to the model Mac, correct the flaw, and then create a new image.

Each time I did this, the chance of unwittingly introducing a new flaw was high.  Updates being released just as you finished rolling out the image happened a lot as well.  There was nothing worse than creating your great new 10.2.3 OS X image with everything just as you need it, only for Apple to release the 10.2.4 update the next day.

This obviously brings up a flaw with the patch management processes, which were often non-existent.

We could, of course, add in a software update server to handle the Apple updates but what about Office, database apps, Silverlight, Flash, etc.?

In many cases, organisations just froze in time. They deployed their image, and that was it until the hardware was due to be refreshed.  Good from a change management point of view, not good from a functionality or security standpoint.

2. Modular Imaging (base OS image + packages and settings)

Modular imaging has also been around for a while, although adoption has been slower.  The basic idea is to separate out each part of your intended build into a base OS (with any necessary updates), the applications the users need, and finally any settings you would like to be configured from the start.  Each aspect of the final build is stored as either a package installer or a script that would run when the target Mac first boots.

There are three key benefits to this approach:

  • It’s easier to update or fix one part of a build than recreate the whole thing
  • It’s easier to update part of the build if a patch for a particular bit of software is released
  • You can create multiple “workflows” without having to store multiple monolithic images

For these reasons, you would assume this would always be the preferred method over monolithic imaging.  So why has adoption been slow?

The first (and probably the main) reason is an increase in technical difficulty.  When you’re creating a monolithic image you can ‘see’ what you are doing, it’s just like setting up a normal Mac and then taking a snapshot of its state.  With modular imaging, you have to learn a few new skills including scripting and software packaging.

The second reason is that it’s newer.  There are some techs out there that know how to create a monolithic image and are happy with the results. And, from a time investment perspective, they don’t want to spend time learning a new way to achieve the same goal.

At Amsys, we switched to modular imaging a few years ago and saw the benefits almost immediately. Once we had worked out how to package some of the trickier apps and some of the scripts that were needed we could create customised builds for our clients in much less time.

3. Thin Imaging (just packages and settings)

Thin imaging is one of the newest techniques.  It is quite similar to modular imaging, just without an OS.  The assumption here is that Macs from Apple come with a perfectly good, pre-installed OS, so why spend time wiping it, only to put the same thing back on the machine before adding the apps and settings.

With thin imaging, you take a Mac out of the box and run a workflow that installs the apps you have packaged and adds any settings that you need.

Some of the benefits for thin imaging are:

  • Time saved as you aren’t capturing / packaging a base OS
  • Time saved as you aren’t deploying an entire OS
  • You are less likely to introduce issues by replacing the OS (incorrect hardware extensions, etc.)

With this style of imaging, there are some other added benefits.  For example, you can take a machine that has already been set up by the user and deploy your company apps and configuration to it.  As you’re not wiping the drive there isn’t a risk of upsetting the user by deleting all of their data!

A potential negative, however, is the lack of a proper “imaging” option.  “Re-imaging” has long been seen as a way to eradicate problems from machines as it can return them to a known working state.  As thin imaging only adds to the target machine, it wouldn’t be a suitable option for removing a pre-existing problem.

This being said; thin imaging and modular imaging can co-exist together.  At Amsys, we quite often setup both options.  Once we have created a modular imaging workflow that can lay down an OS, it is only a few minutes work to create a separate workflow that performs all the same actions, just without a base operating system.

If the option of erasing the machines is a requirement, but you’d rather not “re-image” in the traditional sense, you can create an OS X installation package using a tool like createOSXinstallPkg.  This script generates a package that can be installed as part of your thin imaging workflow, but performs a standard OS X installation.  If you include a step to erase the target drive before installing, the result will be very similar to a modular build.apple device enrolment program

4. User self-service

The final deployment method I would like to talk about is user self-service.  The first three methods I have described are quite similar.  Some of the tools and techniques are different, but the underlying processes are the same, as are the results.

User self-service takes a different approach entirely and simply provides a mechanism for the user to install the apps and settings they need.  Some organisations I have worked with that have very large numbers of Macs (usually over 1,000 devices) are using this method.  It could be that it took that quantity of machines to force them to think of more efficient ways to get the machines out to the users.

One of the major benefits is the lack of IT involvement.  The IT team need to ensure that the catalog of packages and settings are tested and functional, and that there is a simple way to present these to the users (such as JAMF Software’s Self Service), but once this is done, the user only needs to enrol their device, launch the app and choose what they need.

This can be extremely handy if a user is in a remote location.  If they have a major hardware breakdown, they can go to their nearest Apple Store, buy a new Mac, enrol with the management system and open up Self Service to get going.  No IT involvement needed.

With Apple’s DEP (Device Enrollment Program) now, the users don’t even need to enrol.  They unbox their new Mac, complete the setup assistant and they are ready to go.


There are some projects we have been working on recently that I simply couldn’t imagine finishing without some of the newer deployment methods.  Tools like Casper and Munki have created some new and interesting workflows that are really helping to reduce the manual effort needed to deploy large numbers of machines consistently.

While monolithic imaging is rarely used, I couldn’t really say that any one of the other techniques described are the best, it really just depends on the scale of the deployment project, the location of the devices and users and what you want from the final setup.

If you are thinking about deploying a new fleet of Macs or iOS devices and require Apple consultancy or advice, please contact our expert team today. Call 0208 660 9999 or email support@amsys.co.uk.

Get SendEmail working with Yosemite and Mavericks

A while back, we found a nice little command line tool to send emails with authentication settings, custom subjects, etc., without using any of the built in email sending tools. This was handy for situations where a client might have various restrictions in place such as a relay server that requires authentication and / or a specific sender address to allow the emails to pass through.

The tool is called “SendEmail” and is available from the Caspian webpage for free! We commonly used this with a number of custom client-side notification systems.

Sounds handy, what changed?


Well, the solution is a script written in Perl, making use of the default Perl language installing and modules. With Mavericks, Apple added a newer default version of Perl, with which the script could not use the SSL Module for SSL communications

The main issue is that the developer is no longer actively developing this tool and so there is no full patch for the issue. After a short while, one of the commenters on the page posted a simple fix that involves editing the SendEmail tool to use the older, yet still included version of Perl, 5.12.

This is to open the script in a text editor (avoid TextEdit and use the free TextWrangler if possible), and modify the first line from:

#!/usr/bin/perl –w


#!/usr/bin/perl5.12 –w

And save the new script. This should now work fine in Mavericks.


With Yosemite, Apple removed the older Perl version meaning that the above fix no longer works. We have to make some more tweaks to the script and grab the single required module from the Perl 5.12 modules.

1. Find the Perl 5.12 Extras directory on a copy of Mac OS X Mavericks or Mountain Lion. This is located at “/System/Library/Perl/Extras/5.12″.

2. Grab the specific SSL.pm Perl Module from “/System/Library/Perl/Extras/5.12/IO/Socket/SSL.pm” and copy this to a location of your choosing. We typically use a /Library folder for our installations. E.g. “/Library/Amsys/Perl5.12/”. I would suggest you do the same and DO NOT modify your own “/System/Library” folder contents (this is because this area is Apple’s domain so any updates and definitely any upgrades will replace this folder).

3. Reopen the SendEmail script in a text editor of your choice.

4. If you made the above changes for Mavericks, we need to reverse these to use the default Perl language version. Modify the first line from:

#!/usr/bin/perl5.12 –w

Back to:

#!/usr/bin/perl –w

5. Now we need to tell the SendEmail script to use the extra SSL Module we have grabbed. Around lines 128 to 133 you’ll see this:

## Load IO::Socket::SSL if it's available
eval { require IO::Socket::SSL; };
if ($@) { $conf{'tls_client'} = 0; }
else { $conf{'tls_client'} = 1; }

Change this to:

## Load IO::Socket::SSL if it's available
use lib '/Library/Amsys/Perl5.12';
use SSL;
#eval { require IO::Socket::SSL; };
if ($@) { $conf{'tls_client'} = 0; }
else { $conf{'tls_client'} = 1; }

And change the highlighted section to the path where you have put your Perl v5.12 SSL.pm module file.

6. Run some tests and checks and this should all work. If you’re having issues, check that the Library folder/s and the SSL.pm file are owned by Root with 755 as the permissions (or however you specific implementation requires them).

Looking Forward

OK, I confess, this is a large bit of gaffer tape stuck over cracks in the script, but it’ll get most people who may use it out of a hole with the least amount of faff.

In the future, I’ll need to tear the script apart and find out what specifically it doesn’t like with the SSL module in the newer versions of Perl and correct this. As with most IT guys, it’s on a ‘To Do’ list, just not very high up it!


I hope this help anyone else who uses SendEmail to continue use a nice little tool for command line email sending!

As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can.

Amsys’ Yosemite Advanced Deployment course is here!

Over the last few years, my fellow trainers and I have been teaching our advanced Apple IT courses to a wide range of IT professionals who need to extend their OS X knowledge beyond Apple’s ACTC certification.

Last week, I delivered our very first OS X Yosemite training course, an updated beta version of our Advanced Deployment course

advanced deployment yosemite course

Over the last couple of months, I’ve been thinking about how I can make this course bigger and better (and more enjoyable)!

Now that Yosemite has arrived, I’ve managed to pack in more features and tools for administrators to play with. The Advanced Deployment course for 10.10 is all about hands-on labs, with plenty of time to get your hands dirty by trying out different deployment scenarios and solutions.

I’ve added lots of third party tools into the mix as either demos, discussion points and exercises. These sessions will provide valuable real-world context, as these tools complement OS X’s built-in installation and deployment software and have become an essential tool to many Mac Admins.

This 3 day intensive course is ideal for IT professionals who require an in-depth knowledge on deploying OS X systems and its software.

Students on the first course really enjoyed our hands on approach to training, with one commenting:

“The course will be very useful to me as it has expanded my knowledge on deployment. I handle all the deployments at my work, and I am also considering incorporating an MDM, this course has really opened my eyes to the options available in leveraging a combined deployment and MDM solution.

Being on the first beta of this course meant I was able to ask the questions I needed to ask without disturbing the progress of the course. Having the ability to test out Yosemite so close to its release date was fantastic. Russell also encouraged and assisted me in testing out my own theories and scenarios instead of performing the documented course exercises.”

What the Advanced Deployment course will teach you:

  • How to plan and develop a comprehensive, stable Mac Deployment strategy – including customizing deployed systems and implementation of all methods of deployment, from deploying single files to multiple OS X Systems.
  • Create a comprehensive Deployment planning checklist and Service-Level Agreement (SLA).
  • How to create, deploy and enforce Usage Policies on Apple devices.
  • Understand how the OS X Yosemite file system functions and how it handles file, folder and package installation.
  • Understand OS X installer Packages. Creating, customising, securing and deploying installer packages.
  • How the Mac App Store works. Ownership of Apps, downloading Apps, Volume License Agreement (VLA) and Volume Purchase Program (VPP).
  • Understand the built-in security features of OS X (such as GateKeeper and FileVault 2) and how to work with these during Deployment.
  • Third Party imaging and deployment tools including, Iceberg, Packages, AutoPkg, Munki and Casper.

Plus much more! Read the Yosemite Advanced Deployment course in full here.

If you want to learn how to deploy a fleet of Macs then come along to one of our Advanced Deployment courses in Central London, South London or Manchester. In the meantime,  keep an eye out for new announcements as we release updated and new courses on OS X Yosemite and iOS 8!

Yosemite: JavaScript for Automation

The Open Scripting Architecture for OS X has been around for a long time and has provided a standard and extensible mechanism for scripting applications and services on OS X.

AppleScript has been the staple OSA language for years but with Yosemite, Apple have added JavaScript.

JavaScript can be used in the Script Editor; there is a Run JavaScript automator action and you can also access it via the Terminal

Apple has got some great documentation, which is available here.

So, for example, take this simple piece of AppleScript that composes a new email along with a subject and message:

tell application "Mail"
set myMessage to make new outgoing message with properties 
{visible:true, subject:"My Test Email", content:"Hello World"}
end tell

The javascript equivalent would be:

Mail = Application('Mail');
content = "Hello World";
msg = Mail.OutgoingMessage({
subject: "My Test Email",
content: content,
visible: true

So, if you have JavaScript skills, you can start using them to automate the Mac.

If you are not sure what properties are available for an app, its dictionary through script editor now lists the properties by AppleScript or JavaScript.


Apple has even added an Objective-C bridge, allowing JavaScript to access Objective-C frameworks.

This really opens up a new chapter in OS X Automation.



Yosemite upgrade and network locations

Day to day I’m often at various sites most of which have some form of proxy configuration. To save myself having to change and remember the specific details for each site / customer, I normally create a new location for each site and switch using the Apple menu (there’s your pro tip for this post!)

When I upgraded to Yosemite (10.10.0) from Mavericks (10.9.5), I found that I had lost all but my default network settings. No Network Locations and no VPN configurations.

That sucks, what did you do?

As always, I took a full disk image of my Hard Drive prior to the upgrade, ‘just in case’ and this was one of the rare times when I had to use it.

I mounted my previous system and grabbed my network locations preference file from its backup location, restored it into the same place on my upgraded OS and restarted my laptop. Once complete, all my locations and VPN settings were restored and operational.

Say that again but slower!

Fair enough.

  1. I mounted the disk image of my OS from before the upgrade.
  2. On this mounted disk image, I found the network preference file located at “/Volumes/[name of my backup image]/Library/Preferences/SystemConfiguration/preferences.plist”
  3. I manually dragged a copy of this file from the above location to the same location on my booted YoYo system (“/Library/Preferences/SystemConfiguration/”) and replaced the file that was already present.
  4. I entered my administration username and password and rebooted the Mac.

That’s it!


Hopefully, if anyone else hits the same issue, this will help. AND ALWAYS TAKE A BACKUP BEFORE AN UPGRADE!

As always, if you have any questions, queries or comments, let us know below, and I’ll try to respond to and delve into as many as I can.

New “Reachability” feature in OS X YoYo server

Being the type of guy I am and in the role I am, I updated my home server to OS X Yosemite (10.10) over the first weekend of release. After fighting some I/O errors on the boot drive (another story for another time), I eventually got it running.

As usual I had a poke around the Server app and found a cool new feature, “Reachability”.

What’s that then?

This is a new service that can use Apple’s Servers to test your server for open ports and connections to services from the Internet. In combination with the new “Access” tab, you can limit both users and network IP addresses to your services.


So on the main landing page for server App, you’ll have a new “Details…” Box near the new “Internet” section. Click it.

os x yosemite server app

A new screen will appear. Once the server has had a chance to check with Apple, it will display all services that can be reached from the outside world.

os x yosemite reachability

Click the little refresh symbol to have it re-check the forwarded ports and services.

yosemite recheck reachability

At this point, I found out that when I previously had enabled SSH without locking down access to the LAN and forgot to disable it after testing (naughty me). To limit access to certain users and / or networks, use the new “Access” tab and double click the service in question.

yosemite lan

Add in your specific users and / or networks as required and hit “OK”. Problem solved!

This new page seems to combine the SACL list from 10.6.x Server and the firewall configuration.


There you go. I hope it helps someone out! So far I’m enjoying the new-look Yosemite even if I’m finding little stability issues!

As always, if you have any questions, queries or comments, let us know below, and I’ll try to respond to and delve into as many as I can.

10 OS X Finder tips that still work with Yosemite

Greetings again Mac enthusiasts!

With the recent release of OS X Yosemite, I thought I would keep the excitement going with some useful tips that have been around on the Mac for a while and still work with Yosemite!

Over the last couple of months, I have noticed that whilst delivering a collection of Amsys OS X training courses, there are a number of navigational shortcuts and hidden tricks that many Mac users are unaware of.

Although there are way too many for me to document them all here, in celebration of the recent 10th update to OS X, I have picked out the 8 most common ones that I find myself showing Mac users – new and old.

I also find that the main questions I hear from Windows to Mac switchers are, “In Windows, I do this…” or “How can I do xyz like I do on my PC?”.

So, these are often my answers to those questions too!

Please Note: Even though these are documented for Yosemite (OS X v10.10), most of these have been available for some time on the Mac platform and, therefore, function in earlier versions of OS X.

1) Keyboard Shortcuts

In general, OS X keyboard shortcuts are displayed in all apps including the Finder itself, just to the right-hand side of all of the pull-down menus at the top of the screen:

keyboard shortcuts osx yosemite

All of these keyboard shortcuts rely on what we call ‘modifier keys’. A modifier key changes the way keystrokes or mouse/trackpad clicks are interpreted by OS X.

The main modifier keys in OS X are:

  • cmd/Command
  • Shift
  • Option/alt
  • ctrl’/Control
  • Caps Lock
  • fn/Function

These keys are often represented by special symbols on the keyboard and also in menus and other parts of OS X as follows:

= Caps Lock
= Shift Key
fn = Function Key
= Control/ctrl key
= Option/alt key
= Command key

To use a keyboard shortcut, simply press the modifier key specified at the same time as the character key.

For example, pressing the Command key and then the “c” key copies your currently selected data to the Clipboard.

For you Windows users out there, you will find that for most shortcut keys, which on a PC you would use the ‘ctrl/Control’ key and a character key, you would simply substitute the ‘ctrl/Control’ key for the ‘cmd/Control’ key. (‘ctrl’ + ‘c’ becomes ‘cmd’ + ‘c’, etc).

There is a comprehensive list of OS X keyboard shortcuts on our blog and on Apple’s support site, which is well worth referring to or even keeping a copy:

2) File system and hard drive storage location shortcuts.

The Finder in OS X is designed to give the user only the information required to do a specific job. Most users have no need to rummage around the file system. All you should need is access to your Apps and documents. Thus, the Finder gives you quick access to these and not much else.

The default way to use a Mac is, therefore, to use the Dock to access the default Apps and storage locations and to use Launchpad to view all installed Apps. Then within the Apps themselves, they will offer you access to your documents and data relating to that App.

All Apps will give you a limited view of the file system to save new documents to, predominantly offering you locations such as your Documents folder, Downloads folder, Desktop folder, etc.

One of the quickest ways to access all the data stored on your hard disks is to use the Finder’s ‘Go’ menu:

file system and hard drive storage location shortcuts

From here, you can quickly select to ‘Go to your Computer’. Selecting ‘Computer’ is effectively like ‘My Computer’ in Windows. It will give you a list of all the connected drives on your Mac. Both internally and externally connected drives as well as Network drives.

There is also quick access to your entire Home folder, Documents, Desktop and Downloads as well as the Applications and Utilities folders. Not only can you quickly access your Desktop by using the Finder’s ‘Go’ menu, you can also very quickly clear your screen of Apps and Documents and access your Desktop by using the ‘fn’ + ‘F11′ keys on your keyboard. (On some Macs, you may not even need to use the ‘fn’ key and can simply just use the ‘F11′ key).

The Finder’s ‘Go’ menu also has the very useful ‘Go to Folder…’ option. This allows you to enter the file system path to any folder and quickly switch the Finder to that location.

You will often find blogs and documentation online that describes the location of software on a Mac by using file system paths, such as: /Users/russ/Desktop, which will specify my Desktop folder as the location to go to, as my user account is named ‘russ’ and is located in the startup disc’s Users folder:

go to folder os x

Each ‘/’ denotes a double click of a folder with the initial ‘/’ being a double click on your startup disk, which is, by default titled ‘Macintosh HD’ on a Mac.

Here’s the result of the above entered ‘/Users/russ/Desktop’ request:

os x desktop tips

3) Where am I?

So, you’re now starting to get used to using a Mac but now and then you get confused about WHERE in the file system the document you are working on is stored. Or, you just need to go back quickly to the folder in which the open document is located to open a related document that is stored in the same folder.

For me, this is one of the most useful hidden shortcuts on a Mac, and it’s so simple, once you know about it!

Simply ‘cmd/command’ click the folder’s name at the top of the folder window and you will see a full file system representation of where that folder is located.

For example, if I now ‘cmd/command’ click on the word ‘Desktop’ at the top of the Desktop window I am viewing, I will see the following:

where am i os x

Here I can see that the Desktop folder I am viewing is located inside my Home folder, (named russ), which is located inside the Users folder of a hard drive titled ‘RussMBPro’. This hard drive is connected to a computer that is named ‘RussPresentationMac’.

I can not only use this to discover WHERE I am in the file system, but to also use this to traverse back through this file system path.

For example, if I need to go back to my home folder, once I have ‘cmd/command’ clicked on the word ‘Desktop’, I can then select the word ‘russ’ and the Finder window I am viewing will switch to my home folder:

home folder yosemite

What I love about this feature, is that it not only works with folders within the Finder, but also works within documents in OS X Apps!
Again, just ‘cmd/command’ click on the name of the document at the top of the App’s document window to view the document location and to traverse through that file system path:

osx file system path

So, I can easily now see where this ‘RussImportantStuff document is stored, and also quickly switch to the folder it’s located in to access other related files. Genius!

4) App switcher.

I often see Mac users fighting to switch from one App to another by dragging document windows out of the way, hiding windows or clicking the Dock icon to switch in-between open Apps.

There is a much easier way!

To cycle through all of the Apps open on your Mac, hold down the ‘cmd/command’ key and then tap the ‘Tab’ key to access the ‘App Switcher’:

os x app switcher

Make sure you keep the ‘cmd/command’ key held down at all times, then for each tap of the Tab key you will see the ‘App Switcher’ switch one at a time through the open Apps.

In the example image above the currently highlighted App is TextEdit and therefore if I let go of both the ‘cmd/command’ and ‘Tab’ keys, my Mac will switch to TextEdit.

You can use the Tab key to shift one App at a time through the list, or you can use the arrows keys or even the mouse/trackpad pointer.

5) Quick Spotlight searching

Certainly one of the most useful keyboard shortcuts is the ability to very quickly bring up the Spotlight search window. This allows you to search your entire file system for a specific document or app, and now in Yosemite, the internet and network content too!

Simply use the ‘cmd/Command’ + ‘Spacebar’ keys together to instantaneously call the Spotlight window:

yosemite quick spotlight search

I typically use this to quickly open an App by typing in the first couple of letters of the App:

yosemite terminal spotlight

6) Windows ‘Delete’ key

When I am training a PC user or a Windows to Mac switcher, many students ask me about how to perform the function of the delete key like in Windows. This seems strange at first, since the Mac keyboard has a Delete key too.

However, the Mac Delete key doesn’t work in the same way; the Mac default Delete key is a ‘Backspace’ key. There is a Delete key, if you have a full size external Mac keyboard. Otherwise, you are stuck with just this Backspace key on Apple portables and the standard USB and Wireless keyboards.

So, how do you perform a ‘Delete’ key function? Well, simply use the ‘Control’ + ‘D’ keys together to delete the next character after the flashing text cursor.

7) ‘Right click’

Another classic from the ‘How to make my Mac act like my PC’ collection is the Right Click. Apple doesn’t give you a right click by default.

In fact, they don’t even give you a right mouse button on their mice or 2 trackpad buttons. There is a good reason for this and it all boils down to Apple’s main goal of having a simple to use “Point and click” interface without the user needing to have to worry about accessing too much information.

However, in reality, most of us want a right click don’t we?

Well, there are options for this. One option is to just add the ‘secondary button’ feature in either the Mouse or Trackpad system preferences.

In the image below, you can see that on my MacBook Pro I can add a ‘secondary click’ to my trackpad in Trackpad system preferences and that there are 3 options. I can either tap with 2 fingers together, click the bottom right corner of the trackpad or bizarrely, I can have a right click by left clicking! :)

right click on os x mouse

The image below also shows the options within the Keyboard & Mouse system preferences for a Mighty Mouse and Mouse preferences for a Magic Mouse. Both have the option to configure a Secondary Button or Secondary Click (for the Mighty Mouse, just select the pull down menu on the right-hand side and change the option from ‘Primary Button’ to ‘Secondary Button’:

mouse options yosemite

os x mouse gestures

The built-in way on ALL Macs to have a right click is to perform a left click but with the ctrl/control key held down. (Commonly known within Apple as a ‘Control Click’. So, if you are using someone else’s Mac, you never need to configure the right click on a mouse or trackpad, just use the control key with the left click!

8) Bring back the Finder window status bar

Since OS X Lion (10.7), the status bar along the bottom of each window has been disabled by default.

Even though, I can understand the reason for this, which is that it took up some screen space providing information that is irrelevant or too technical to most users. However, as a technician, this is something I always want to have available to me. It is a great way to check quickly how much hard disk space is available or even how many files and folders are in the current viewed folder.

There are a few ways to bring this feature back. You can just select ‘Show Status Bar’ from the Finder’s View menu, and you’re done:

bring back finder in os x

Notice below that we now have on all Finder windows the bottom footer displaying the Status Bar:

see storage space in os x

There is an even a quicker way to do this with a keyboard shortcut. Just click ‘CMD/Command’ + ‘/’ keys together to quickly toggle the status bar on and off.

(Refer to the Apple’s support article and information back in Tip 1 for more info on keyboard shortcuts).

9) Show the Finder window path bar

Similar to tip 7, the Finder Path Bar has also been removed in default installations of OS X and the solution is, therefore, also similar. Being able to quickly view the file system path is really useful for navigation and file storage. It also saves having to perform tip 3!

You can just select ‘Show Path Bar’ from the Finder’s View menu, and you’re done:

show os x finder path

Notice below that we now have on all Finder windows the bottom footer displaying the Path Bar:

path finder os x

There is again an even a quicker way to do this with a keyboard shortcut. Just use the ‘Option/alt’, + ‘cmd/Command’ + ‘P’ keys together to quickly toggle the path bar on and off.

10) Show the Finder locations of Recent Items

Most people access the same Apps and Documents regularly, and therefore the Apple Menu’s ‘Recent Items’ feature is really useful:

show finder location of recent items in yosemite

What most people are not aware of, however, is that if you view these Recent Items whilst holding down the ‘cmd/Command’ key, the Finder will now allow you to navigate to the folder that these Recent Items are located in:

view recent items osx yosemite

So there you have it.

The main OS X navigation tips that I find myself showing people that improve their Mac experience and saves them time! I hope you have found this blog useful.

There are many more tips and tricks in the OS X Finder. If you would like to learn more about these or just the Mac in general, then take a look at our collection of introductory training courses. We also have a large collection of Mac and iOS support courses which you may also find useful.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

This feature has been tested using OS X Yosemite v10.10.0 which was the latest Mac OS release at the time of writing.

Mac Meetup – Yosemite – 6th November – London

Following Apple’s announcements last night, we have decided to hold a Mac Meetup for everyone in London on 6th November.

We hope that you can join us, which will also feature a 30 min talk and demo on the new features and benefits of Yosemite and iOS 8.

As always, this will be a very informal affair, and a great chance for everyone to catch up with new and old friends alike.

  • 18:30 – Arrive and welcome drinks
  • 19:30 – Yosemite & iOS 8: New features & benefits
  • 20:00 – Close Networking and drinks

Venue: Red Herring, 9 Gresham St, London EC2V 7EH

Please click here to register for your free ticket to next month’s meetup

Have a great weekend and see you on the 6th!

When 16GB is no longer enough!

So a strange thing is happening with iOS 8 adoptions among iOS users. Apple released iOS 8 on the 17th September and within a week the adoption rate was 46% of active App Store users. Three weeks on and the adoption rate is only 47%, an increase of 1%. If you compare this to where iOS 7 was, it was at approximately 70%.

Now things can change, and I’m sure this number will continue to increase but something is different this year. One answer maybe the rocky start iOS 8 has had. The aborted 8.01 certainly didn’t help, and that may have put some people off.

However, there have been a few comments on this subject which ties in with my observations, which may explain the stalled uptake and that is storage.

With iOS 5, Apple introduced “Over The Updates for iOS”. This had a great benefit for users. They no longer had to be tied to iTunes; they could perform updates independently of a computer. In fact with the advent of iCloud backups a lot of users have never connected their iOS device to any type of computer.

With iOS 8, to perform an over the air update you need approximately 5Gb of free space and here lies the problem. On a typical 16GB device, roughly 4GB is taken up by the OS leaving 12GB free. Once you’ve installed apps, taken loads of photos, HD video and slow-mo videos, which doesn’t leave you with a lot of space left. Certainly for most users, this prevents OTA updates for the OS. It’s surprising how many users don’t realise they can update via iTunes, which reduces the amount of space required down to approximately 700MB.

I know of many people in this situation, who have not upgraded for this reason.

But for the time being, spread the word that iTunes is the answer. iOS 8 is a fantastic upgrade so it would be a shame to miss out.

Firefox CCK2 lockdown Casper Extension Attributes

Hey everyone. On another recent project, I had a secondary education client running Firefox, and they wanted to have the customisations installed. Typically I’d fire up CCK2, build them, package the finished product and push this out, as per my blog.

This time, partially because they were using Casper, I wanted a method that would automatically detect if the CCK2 items were not installed, and add these Macs into a smart group. That way (as long as my lockdowns worked); we could deploy the updates to Firefox and have the lockdowns installed without repackaging Firefox each time.

After packaging the lockdowns, I still needed a system that could know when these were missing and put the devices into a group to reapply the CCK. Casper has a cool thing called Extension Attributes (EAs) that, if you can script what you need, Casper can check for it.

After an hour spent writing and testing I created the below EA to accomplish what I needed.

Extension Attribute Configuration

Here’s my EA configuration:

firefox customisations Extension Attribute Configuration

Display Name: An arbitrary value, but it is what’s shown in each computer record so make sure that the results of your EA make sense with it.
Description: Again, arbitrary. Stick what you want here.
Data Type: Use “String” because this will reply with a yes or no, although you could tweak it for 1/0 or true/false.
Inventory Display: Where you want it to go. When you get a fair few EAs, sometimes it’s cleaner to stick them in their own area.
Input Type: Script.

Extension Attribute Script

Here’s my script:

firefox extension script

This breaks down as:

Line 1 The shebang. Lets the device know it’s a bash script
Lines 3, 4 and 5 The directory and two files we are deploying for CCK2. I have loaded them as variables for ease of script re-use and reading
Line 8 This runs a multi-input “if” statement. The use of the double pipes (“||”) denotes “or”. If you swapped these for double ampersands (“&&”) is would denote “and”. So this line says “(if directory ‘$distDir’ does NOT exist) or (if file ‘$overrideFile’ does NOT exist) or (if file ‘$autoconfigFile’ does NOT Exist), do then section between “then” and “else”.
Line 10 and 13 Command line feedback for troubleshooting.
Line 11 Echo into the Casper EA the word “No”. Essentially if any of those items are missing, then at least part of the customisations are missing, and the whole lot should be reinstalled.
Line 14 Echo into the Casper EA the word “Yes”. If none of those items are missing, then the customisations should be in place and working fine.
Line 15 Close the “if” statement.
Line 17 Exit the script.


So each time one of the client devices submits a recon / runs an inventory it will return a “Yes” or a “No” to its computer record in the Casper JSS. How is this useful?

Well, the next step is to create a computer smart group based on the following check:

“Does the EA ‘Firefox Customisations installed’ = ‘No’”

and this will pick up all the devices that need the CCK2 lockdown installed.

Create a new policy, set it to a frequency of ‘on-going’, scope it to this group and have it re-deploy your packaged CCK2 lockdowns. Job Done!

Next time you push out an update Firefox install, to be honest, I would also manually re-push out my lockdowns in the same policy, but either way, once the Mac runs a recon it will detect the missing lockdown and reinstall it.


There you go. I hope it helps someone out and saves you some time. Attached to this blog is an export of the EA. You can download this, upload it to your JSS and tweak it as desired.

Firefox Customisations Installed EA

At some point, I’ll document and share how to do this with Munki too, so the Munki Admins have something to play with!

As always, if you have any questions, queries or comments, let us know below, and I’ll try to respond to and delve into as many as I can.

Add a SharePoint bookmark in Microsoft Office 2011 to 100 Macs using Bash

Making changes on one Mac can easily be made using the GUI interface, but managing a large number of workstations (especially when performing the same operation) can unnecessarily consume too much of your time.

I recently had to add a bookmark for a SharePoint location for Microsoft Office 2011 applications. Doing so on one Mac was very easy by using the GUI interface but deploying the same change to 100 Macs would not have been possible without taking a few days and a few extra white hairs.

Thanks to Darren Wallace, I managed to complete the task with just a couple of terminal lines. I used the PlistBuddy terminal utility to edit the com.microsoft.office.plist file in my Library/Preferences folder.

Great job, I thought to myself. But how do I edit this file on every Mac and in every users’ home folder?

Luckily, the customer had a Casper solution in place that meant I just had to write a script in Bash and let Casper deal with the hard work.

Then I remembered that David Acland, my Technical Director, had written a previous blog about writing data into existing home folders as part of an installation package. I jumped on the web, found the blog, and that was it. I had a piece of art, which could serve as a base for my script.

Recycling scripts is an essential skill in the scripting world. What makes things even easier is that David’s script had invaluably helpful comments under each line. I easily found what I didn’t need and deleted those sections, which essentially made the script universal.

In the loop, I inserted my PlistBuddy commands, and that was it. Job done. In a couple of hours, I had a script that will add SharePoint locations for every user on every Mac in a medium sized organisation.

Here is what the script looks like:

counter=`ls /Users | grep "[A-z 0-9]" | grep -c -v -E 'Shared|Guest|.localized|.DS_Store'`
     # Outputs the number of folders in the /Users directory, excluding the Shared & Guest directories
 killall cfprefsd
 	# Restarts the process to allow plist changes to be applied
     while [ $counter -ne 0 ]
     # Loop start
               targetFolder=`ls /Users | grep "[A-z 0-9]" | grep -v -E 'Shared|Guest|.localized|.DS_Store' | head -$counter | tail -1`
                    # Gets the target folder name. We prefer an ls loop as otherwise you will need to work around non-mobile AD accounts 
                    #and using ls on the /Users folder (or wherever the home folders are on the target Macs) ensures that you only get 
                    #real device “users” and not all of the system accounts.
                /usr/libexec/PlistBuddy -c "Add :favoriteslist:Children:0 dict" /Users/$targetFolder/Library/Preferences/com.microsoft.office.plist
                	#Adds new dictionary under favouritelist, under Children
                /usr/libexec/PlistBuddy -c "Add :favoriteslist:Children:0:Name string "$4"" /Users/$targetFolder/Library/Preferences/com.microsoft.office.plist
                	#Adds the string Name in the newly created dictionary with a variable in its value $4 that can be replaced by a constant value.
			#The $4 will allow Casper to use custom labels preset in a policy.
                /usr/libexec/PlistBuddy -c "Add :favoriteslist:Children:0:URL string "$5"" /Users/$targetFolder/Library/Preferences/com.microsoft.office.plist
                	#Adds the URL string in the newly created dictionary with a variable in its value $5 that can be replaced by a constant value.
			#The $5 will allow Casper to use custom labels preset in a policy.
               counter=$(( $counter - 1 ))
                    # Reduces the counter by 1
killall cfprefsd
	# Restarts the process to allow plist changes to be applied
exit 0


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

New iCloud tool released by Apple to verify iOS Activation Lock status

Yesterday, Apple made another webpage available to assist users with iOS security.

This time, the website lets users verify the status of an iOS device’s Activation Lock feature.

Available since iOS 7, Activation Lock is a bolt on to the Find my iPhone service, protecting lost or stolen iOS devices by locking out users who do not know the Apple ID and password registered to that device.

Once activated, without knowing the Apple ID credentials, a user cannot disable Find My iPhone, perform any data wipe or reactivate the device under a different name.

This new tool is primarily aimed at assisting those purchasing a second-hand iOS device who want to make sure they will be able to access the device without chasing the seller for deactivation of Find My iPhone.

This new web-based iCloud tool is accessible here, as shown below:


ios activation lock status

You will need to know your iOS device’s IMEI, (International Mobile Equipment Identity) or the serial number and then enter a CAPTCHA phrase:

ios device activation captcha

The iOS device identifier will then be checked against an Apple internal database to confirm if Activation Lock is active or disabled:

ios activation lock on

Certainly if you are purchasing a second-hand iOS device, perhaps from an online selling site such as eBay, or even from a work colleague, friend or family member, this tool could be useful to ensure that the Activation Lock feature is disabled prior to purchase so you can gain full access to the device.

Obviously, a second-hand phone could potentially get locked by the seller AFTER you have checked the status, but before you receive the phone, but this is still better than nothing!

I would say that this is more useful to know that if you are buying a second-hand iOS device and this tool states that Activation Lock is ON. If you then contact the seller and they deactivate it, then by the seller having the ability to deactivate the Activation Lock feature, they should be the legal owner of the device and within their right to sell it to you.

If a device is stolen that has Activation Lock enabled, an illegal seller of that device would not be able to deactivate this feature.

Apple has released patches for the Bash vulnerability

Since the announcement of the vulnerability in Bash, Apple has released patches for Mavericks, Mountain Lion and Lion. It is recommended that you download and install these patches, asap!


Nice hidden iOS 8 features

iOS 8 has many new features, some of which perhaps aren’t as widely known. From playing on my iOS device and browsing the browsing the web, I have discovered some of the following hidden gems!

Send your iOS device’s last location to Apple – before your battery drains

If you’ve ever lost or misplaced your iOS device, this new feature allows your device to send its last known location to Apple when the battery drains to a critical level.

This feature was turned off by default on all my devices, to change it you need to:

  • Open Settings
  • Select iCloud | Find my (device)
  • Turn on the option for Send Last Location


How to Improve Battery Life

iOS 8.0 has some great new features, but since updating I have been experiencing battery drain. Apple’s OS updates have been known to suffer from this until the release of v*.1.

Until then, here’s what you can do to improve your iOS device’s battery life.

  • Open Settings
  • Select General
  • Select Usage
  • Select Battery Usage

By accessing this feature, which is dependent on what apps you are running, you can reduce battery drain. For example, if you see that the Mail app is using a lot of the battery – then you can change the background refresh settings.

extend your ios devices battery life

Open Desktop Site webpage instead of Mobile version in Safari

When browsing the internet on my iPad, some websites will load a mobile version.
Fortunately, iOS 8 makes loading the desktop version a lot easier:

  • Open Safari
  • Navigate to a website as normal
  • Once the mobile version loads, tap the address field, then swipe down
  • Select the “Request Desktop Site” button that appears

The Shellshock Bug & Workaround

NB: Apple has released the following patches:

This was tested on 10.9.5.

A new vulnerability has been discovered in the bash shell which is affectionately being called “shellshock”. It’s worth pointing out that this is quite serious and should be addressed.

There are some comments on blogs stating that “it’s not as bad as we think” so I will take a moment to explain what it could mean to you so you can make up your own mind.

The bash shell is built into almost every Mac OS X system (I say almost, as some clever person may have decided to remove it from their Mac). The deep, technical description taken from the following site is:

“Bash supports exporting not just shell variables, but also shell functions to other bash instances, via the process environment to (indirect) child processes. Current bash versions use an environment variable named by the function name, and a function definition starting with “() {” in the variable value to propagate function definitions through the environment. The vulnerability occurs because bash does not stop after processing the function definition; it continues to parse and execute shell commands following the function definition.

For example, an environment variable setting of:

  VAR=() { ignored; }; /bin/id

will execute /bin/id when the environment is imported into the bash process. (The process is in a slightly undefined state at this point. The PATH variable may not have been set up yet, and bash could crash after executing /bin/id, but the damage has already happened at this point.)

The fact that an environment variable with an arbitrary name can be used as a carrier for a malicious function definition containing trailing commands makes this vulnerability particularly severe; it enables network-based exploitation.”

Source: http://seclists.org/oss-sec/2014/q3/650

In a nutshell, this means that the shell has a small bit of code that it runs without question on certain older versions of bash. This code can be modified very easily so the attacker can add their own “bits” into it to give them access to your Mac and do as they wish.

From what I can gather it seems like this is only really a problem for computers that have some kind of external access enabled such as SSH or a web service. Some people have said “well that’s ok, I’m not running a web server”. The problem is, you probably are.

A lot of applications start up a small web service to perform their functions, not to mention the cups service running on port 631 that is accessible through a web browser by going to http://localhost:631.

I took a look at my Mac to do a quick port scan and see if I could “lock things down” but have decided that will be ultimately unachievable without a lot of work.

After a bit of digging, I decided that upgrading my bash shell was the simplest course of action so here are some instructions.

How to upgrade bash in OS X to version 4.3.25 to avoid the shellshock attack:

Its probably worth checking first that you are affected. Run the following command in the terminal and it will report back to say if you are vulnerable:

 env x='() { :;}; echo vulnerable' bash -c 'echo hello'

You can also check the actual version you are using:

 bash --version

You’ll get an output something like:

dave$ bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

It affects versions 1.13 (22 years ago) up to 4.3. I’m running 3.2.51 which is affected.

To start the upgrade process, install brew from the command-line by entering the following command and pressing return:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Quick note – I had XCode installed on my Mac but I hadn’t launched it since a recent update and so the above command was complaining that it couldn’t run properly. I just had to launch XCode, accept the Ts & Cs and then re-run the command.

Once complete, install the newest version of bash:

brew install bash

In my case it put it into /usr/local/Cellar/bash/4.3.25/bin/bash. The standard place for bash is /bin/bash.

Finally, you can either edit /etc/shells to remove /bin/bash and add the correct path to your new version or replace (after backing up) the default version of bash.

If you do opt to change the path in /etc/shells, make sure you also change the default shell in your user record.

The default shell can be changed from System Preferences or with dscl, but all three options just modify /var/db/dslocal/nodes/Default/users/user.plist

I just backed up the existing /bin/bash with:

mv /bin/bash ~/Desktop/

and dropped in the new version with:

dave$ bash --version
GNU bash, version 4.3.25(1)-release (x86_64-apple-darwin13.4.0)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

So I am running 4.3.25 which isn’t affected.

As a final check, I run the env check which should fail to run.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

Should I Learn Objective-C or Swift?

learn swift or objective c

Since Apple released the new iOS programming language, Swift, online forums and indeed the Amsys training email inboxes have been awash with questions like, Well – what do I do now? Should I learn Objective-C or Swift?

And our answer has been – both!  Here are our top 3 reasons why you should learn both iOS programming languages.

If you want to be a successful iOS app developer, you will need to understand Objective-C.

Why? Because you will need to understand the framework and the architecture of iOS apps.

Objective-C and the C language has been around for 20 years. Therefore, any iOS developer worth his salt, will need to understand the fundamental building blocks of iOS apps. Amsys Training recommends that you start off with Objective-C and then go on to learn Swift, which will be a walk in the park – as a result.

Every current iOS and OS X App has been developed using Objective-C.

Swift is only in its infancy, and Objective-C won’t be going anywhere for the foreseeable future.

Consequently, your future employer or potential clients will be hiring on the basis that you have at least an intermediate understanding of both languages.

During interviews, you may well be asked a question that refers back to the Objective-C language. If you don’t possess this fundamental knowledge you won’t be able to respond with a confident and correct answer – and you will be shown the door pretty quickly!

You will be lost without Objective-C.

Without learning Objective-C, it will be nigh on impossible to learn the Cocoa libraries (Apple’s native objective oriented application programming interface or APIs). These libraries allow you to add animation, networking and the “native platform appearance and behaviour” to your apps, with just a few lines of code. Once you understand the Cocoa way, the complex nature of Objective-C’s syntax will no longer be a problem.

Plus, as a developer, you will be looking at the source code of a variety of apps, some of which will contain Objective-C, as the two languages can be used side by side. If you don’t know Objective-C, then you simply won’t know what certain lines of code have been created to do.

So… if you’re still at a loss on what do.. learn Objective-C first, and then learn Swift!

iOS developers: Contracting VS permanent roles

The Amsys Careers team has recently been given the task of recruiting a new iOS Development team for one of our clients in Scotland.

Whilst resourcing the large pool of iOS developers in the UK, I have noticed a trend.

It’s still a contractors market.

Permanent is a bad, bad, word for developers – from ‘I only want to work Tuesday to Thursday’ to ‘I don’t work during the day!”  However, with the explosion of  enterprise apps, more and more companies are now looking to recruit in-house teams on a permanent basis with competitive salaries, which provides the kind of security that contracting simply doesn’t.

Pros & Cons of Being a Contractor

You’re your own boss You’re your own boss
£500+ a day! Where’s my next project?
Make your own hours 18hrs coding still @ day rate
Working from home MacBook’s died! ££££££


There is always going to be a market for contract iOS developers, but many of you are missing the optimum chance to use your skills and capabilities to create some great apps whilst having a secure career.

Personal development and training.

Swift is as we all know, the future in app development, which is why Amsys Training has been inundated with bookings for our new Beginning and Advanced Swift courses.

So – should you spend money from your own pocket? Or receive it for free once Amsys Careers finds you that perfect, secure and rewarding new role? Sound interesting find out more here.

Do you know a friend or past colleague looking for their next step?

If you’re happy as a contractor or in your current role, then ask about our fantastic referral scheme! By passing your friend’s details onto Amsys, and when they start their new role, you will be rewarded too.

Which brings me back to my main point; please forgive my ramblings.

My client! They are looking to build a new iOS Development Team. The team, which will take their successful business forward by creating in-house apps across the business, will each receive an enviable salary of £60,000 to £70,000 + benefits; this really is an opportunity not to be missed.

So if you fit the following bill, then apply online today, or call 028 645 5807.

  • Minimum 5 years overall development experience including 1-2 years coding for iOS devices in Objective-C/Cocoa/Xcode  (including SQLite for local storage).
  • Experience of SQL Server (Any Version).
  • Solid knowledge of Git.
  • Experience using web services (e.g. REST, JSON, XML).
  • Experience of working with local storage for offline functionality.
  • Any experience working with iBeacons will be advantageous.
  • A link to a working iOS application that you have created or worked on.
  • Must have commercial software product development experience and not purely building internal or personal software projects.
  • Familiarity with core iOS frameworks.
  • Strong analytical and problem solving skills.

View these roles now:

If you’re interested in hearing more – contact me on 0208 645 5807 or email me at jamesh@amsys.co.uk.


Q & A with Cisco’s Meraki

meraki elevated partner

Earlier on this year, we announced that we had joined the Cisco Meraki Elevate Partner Programme, to bring a secure, easy to manage and cost saving cloud networking solution to our SME and Education clients.

We got in touch with Pablo Estrado, who has been with Meraki since January 2011, where he started as a Solution Architect and  is currently the Director of Marketing, to find out about the kind of projects they have been working on and their plans for Meraki.

Who Uses Meraki?

The benefits of a cloud-networking solution aren’t limited to a certain industry or line of business. We have customers in the large enterprise space, in colleges and universities, in retail, healthcare, manufacturing, construction, hospitality and tourism and in large event venues. Customers range in size from the small mom-and-pop coffee shop all the way up to a large enterprise with tens of thousands of employees.

What is Meraki / Cloud Networking

The Cisco Meraki solution is completely web-based so lean IT staff can reconfigure any of their equipment without even being onsite. Our cloud-managed edge and branch networking solutions simplify enterprise-class networks, and includes wireless, switching, security, and devices that are all centrally managed from the cloud.

Via this approach, Cisco Meraki gives network administrators complete visibility and control through a browser-based dashboard, without the cost and complexity of traditional architectures. Administrators are able to gain unmatched visibility into what is happening on their network, all through a single pane of glass that makes managing a network painless.

Why Embrace Cloud Technology?

Just give it a try! We offer three ways to try the solution for free. You can request eval gear, which allows you to try for free any Cisco Meraki product on your network. We provide the technical support to get you set up.

We believe that once you try our solutions, you’ll be amazed at the simplified management and increased visibility into your network activity.

You can also receive a free Meraki access point (AP) by attending a webinar, or you can test drive the Cisco Meraki cloud management platform directly from your browser.

Innovative Examples of Meraki?

Just this summer, the Chevrolet Detroit Belle Isle Grand Prix used Cisco Meraki gear to bring connectivity for journalists and photographers at the event. The network was built on the two floors of the historic, 107-year-old Casino Building on Belle Isle, which was dedicated to media personnel during the race weekend.

A simple design started with a 45Mb/s Internet connection with a backup DSL connection, feeding into a Meraki MX100 Security Appliance and then relayed out to an array of strategically placed switches and wireless access points.

Meraki cloud networking is the perfect solution for events like this one. In the case of the Chevrolet Detroit Belle Isle Grand Prix the network was put together in half a day by the networking team, who had never worked with the equipment before. Meraki’s excellent application and client visibility available in the dashboard allowed the team to manage the network effectively even during peak times.

Financial Benefits For SMEs?

Cisco Meraki solutions allow smaller IT shops to provide their business with a large-scale enterprise experience without the large enterprise price tag. In addition, due to cloud-networking’s easy management capabilities, a smaller IT shop is able to manage a network with less manpower, freeing up IT to focus less on “keeping the lights on” and more on creating innovative IT solutions for the business.

Plans for the future?

We’ve grown our product line quite a bit over the last few years, adding dozens of new switches, access points, and security appliances. We’ve always kept a close eye on the problems our customers face and how we can help them solve those issues.

One of our most popular features is something called the “make a wish button.” This is a place where customers can directly enter suggestions and feedback and about the Meraki product.

It’s available on every page of the web-based dashboard and sends feedback directly to the engineering and product teams. We’re continuing to invest in all our product lines and will use this feedback to help ensure our products meet customer needs.

Favourite Feature of Meraki?

I think the Meraki dashboard – the network management interface – is where Meraki really shows its value. The analytics and insights gained through the dashboard give network administrators real-time actionable data. The tight integration of the dashboard with high-performance hardware that simply works unlocks countless possibilities for administrators – it provides the key to innovation.


To find out how your industry peers are already using Meraki, and the benefits the solutions can deliver for your organisation, please watch this free webinar or email support@amsys.co.uk.

Preparing for iOS 8

On the 17 September, Apple is releasing iOS 8 to the masses. Here are a few suggestions on making this experience as easy and trouble free as possible.

Device Compatibility

iOS 8 is compatible with the iPhone 4s and the iPad 2 onwards. As with previous systems, if  your device is the oldest one on the list, so in the case of the iPhone 4S, you may want to hold off upgrading until you have heard from other people about performance and reliability on these devices.


Free Space

Checking the amount of free space available is really recommended. Last year when iOS 7 was shipped the space requirements where approx 730MB to download the install image direct to the device and then approx 3.1GB to install the update. If you are no where near this, then it might be time well spent removing those apps you never use. You can reduce the amount of space required by installing the update via iTunes on your computer rather than over the air direct to the device. If you are really short of space, then removing your music or photos temporarily maybe of some help.


Updating iOS has always been very reliable, but there are bound to be a few people out the millions who upgrade who run across issues. So get a backup in before you upgrade. Backing up is easy and there are no excuses. You can either backup to iCloud, assuming you have enough space, or backup via iTunes on your computer. Apple have a nice tech article here on how to backup.


Check all your apps are up to date. This goes for the version of iOS 7 you are running and also your apps.

Assuming you have done all this, get ready to enjoy iOS 8.

My top iPhone 6 and iOS 8 features

Apple announced their next generation of smartphones this week, the iPhone 6 and the massive iPhone 6 Plus!.

Even better, we can pre-order these as of today, and they will be available along with the new iOS 8 from next week!

Let’s get bigger with 4.7-inch and 5.5-inch Retina HD phones shall we?! However, how cool is this; despite the display now being bigger, the phones are now much THINNER!

So, as today is pre-order day for the new iPhones, I thought I’d mention what I think I’d find useful with the new iPhone and iOS.

Nope, it’s not necessarily the new Retina HD display, nor is it a new, faster A8 chip, the M8 motion coprocessor, better power efficiency, advanced iSight and FaceTime HD cameras, ultrafast wireless technology or even Apple Pay. Although I am looking forward to these!

For me, I really like the idea of the new ‘Landscape view’ on the iPhone 6 Plus.

The larger display means that apps can offer a more productive landscape (horizontal) view, and Apple have already kicked this off with some of the built-in apps in iOS 8 such as Mail and Calendar:

iphone 6 landscape view

This new iPad-style two-pane landscape mode displays much more content on the screen than with the previous iPhones, and it also offers a ‘horizontal’ homepage mode! So the Home screen can now display app icons in landscape!

I’m forever rotating my iPhone 5 back and forth between portrait and landscape mode as both have something I want but not everything in one orientation!

The other feature I’m liking is ‘Reachability’.

This new ‘one-handed mode’ means you can Double tap the Home button which shifts the entire screen down closer to your thumb.

Also, the Sleep/Wake button is now on the right-hand side instead of the top for easier access. The amount of times I have to use two hands even on my iPhone 5 is just too much effort!

iphone 6 reachability

Other large smartphones offer similar features which scale the screen to one side or to a corner to make using one hand easier, but after using those I think I’d prefer Apple’s ‘shift’ technique.

Note: This feature requires you to just DOUBLE TAP the home button/Touch ID Sensor, NOT DOUBLE PRESS. Double pressing the Home Button continues to offer the ‘multitasking’ feature to show all open apps.

So, what about iOS 8?  Well, there’s a host of new and improved things here too. Like new Spotlight, Messages and Photos features, as well as completely new features such as a Health app, iCloud Family Sharing and iCloud Drive.

Plus, hello new 128GB model! :)

Well, my colleague Richard has already blogged about how excited he is with iOS 8 in his blog ‘iOS 8: Adds new enterprise features ‘iOS 8 Enterprise features’.

For me, certainly having the AirDrop function between iOS & OS X, once iOS 8 and OS X Yosemite are available, will be a huge benefit.

But, I’m liking the new QuickType keyboard.

Now, your iPhone will help you finish a text or email based on your past conversations and writing styles and offer you choices of words or phrases it thinks you might type next! Magic!

ios quicktype

iOS 8 even knows that someone has asked you a question in a message conversation and will offer choices like ‘Yes’ or ‘No’, or pick out answers from the question itself as shown below:

ios 8 quicktype features

This will come in very handy when I’m on the train to and from work and in a rush to reply to emails and texts before I get to that tunnel that will kill my network connection!

I’m also looking forward to using the Continuity features.

Again, something that will become really useful once iOS 8 and OS X Yosemite are available. The new ‘Handoff’ feature will allow you to start writing an email on your iPhone and then carry off where you left off when you switch on your Mac. All without having to save the email as a draft first! Obviously linked to iCloud, but this will mean seamless usage of Mac devices since let’s face it, you never can stop at just owning one Apple device!

continuity ios 8 yosemite

Well, handy for me! I’m always starting emails on my iPhone whilst on the train and then wanting to finish them off when I get to the office.

Guess what? You can even answer a phone call from your Mac if your iPhone is in the next room! As long as the two devices are on the same Wi-Fi network, your Mac can answer the call for you whilst your iPhone is on charge in the next room! Very cool.

Well, there’s just my thoughts, trying to contain my excitement until I get my hands on the new iPhone and iOS next week!

Look out for iOS 8 and iPhone support training courses and iOS 8 Developer courses coming your way soon.

And if your company is thinking about implementing these new delights, let our Amsys Professional Services team ease the transition by assisting you or setting them up for you with a complete design, plan and installation of your new iOS solution!

Right. I’ve wasted too much time talking about it, I’m off to place my order and I’ll see you on the other side, bye bye iPhone 5 and iOS 7, you served me well!

iCloud email notifications

In keeping with Apple’s commitment to make iCloud more secure, Apple have just added a new level of security to iCloud.

You are now sent an email when someone logs into www.icloud.com with your account credentials. The email gives you the option to ignore it, if it was you who logged in, or the option to reset your password.

The only slight glitch seems to be with the date and time stamp for when this event happened, which currently is set to PDT.

This is a nice addition.

Example email:


Munki: Munki Report PHP Client Installation and Tour

Hey Guys. munki guide

I hope you liked my blog on getting your Munki Report PHP server running. I know I like using that Munki logo face again!

In this post, I aim to show you how to get your clients hooked up into the Report system and give you a mini tour of the web interface

Additional information can be found on the Munki Report PHP site.


You have your Mac Server installed and configured with 10.9.2 and Server app 3.1.1. This has both forward and reverse lookups configured and working fine.

I will also assume that you have already followed all the steps in the original Munki guide parts 1 to 5, e.g. you have a fully working Munki Repo Server, Administration Server and Client. You also have followed the previous Munki Report PHP server and have a running ‘Report server.

Grabbing the enrollment file and loading it into Munki.

1. Open up terminal and enter the following command. Replace “” with the DNS name that your clients will use to submit reports.

open terminal

For example, if my server was at “munki.amsys.co.uk” I would use the following command:

curl –s http://munki.amsys.co.uk/index.php?/install/plist –o MunkiReport.plist

2. This will contact the Munki Report PHP server and grab a preference (plist) file to add into Munki and to enrol the clients.

3. Next, enter “open .” and press return. This will open the folder that the terminal window is currently in. This will contain a file called ‘MunkiReport.plist’. This is the file we need to add into your Munki Repo.

munki report plist

4. Copy this file into your Munki Repo under the “pkgsinfo” directory.

pkgs info

5. Finally, make Munki run a ‘Make Catalogs’ either through the ‘Make’ button in the Munki Admin application or by running the below command in terminal:


6. This will load the plist file as a ‘package’ into Munki. Use your normal methods to add this to your Catalogs and Manifests. Once complete, your clients will automatically install and start reporting in to your server!

Brief Tour of Munki Report PHP

Once you’ve got Munki Report PHP up and running (and a few clients reporting in), fire up the website and login. You’ll be presented with the main Dashboard:

main munki dashboard

Click on “Reports” then “Hardware” to see a summary of the Macs reporting into your server.

munki hardware reports

Click on the Name to be shown a much more detailed overview of the device.

detailed munki report

On the main page you’ll see the hardware specs and machine information in the top section…

hardware specs in munki

And the lower half will show the version of Munki tools installed, the last checks, and the status’ of any Managed Installs.

As expected, the Apple Software and Third party tabs will give you information on Apple Installed and ‘other’ installed applications.

installed apple apps in munki

The Inventory items tab shows all of the applications and binaries that Munki collects, along with their version numbers.

inventory of items in munki

And now, some of the cooler bits, The Network interfaces and Directory Services tabs show all of the devices interfaces, MAC addresses and IP details.

ethernet and wifi services view

With the last two tabs showing the Directory Services connections (if any) and FileVault 2 details (but no recovery keys!).

view directory services in munki

view file vault in munki


Well there you go. Munki Report PHP fully configured and clients reporting in, and another great tool to add to your Mac Administration / Munki toolkit.

Any hints, tips or opinions? Let us know in the comments below and I’ll try to respond to as many as I can.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

September’s London Apple Admin meet up

Hey everyone! Last night was the first large meet up of the London Apple Admins. The event, organised by Ben Toms and Graham Gilbert, with the event sponsored by Amsys, managed to ‘sell out’ of all 60 (free) tickets easily!

In a marked changed from both Amsys and London Apple Admin meet ups previously, the evening was spent following a detailed agenda including eight 10 minute presentations from a number of the London Mac Admins (including yours truly) as well as JAMF, Airwatch and macbrained.

The atmosphere was very relaxed (possibly as alcohol was available) but with a level of formality that encouraged mingling and discussions with new and regular attendees alike.

All in all, it was a great night, highly enjoyable and very friendly.

I’d like to convey a large amount of thanks to Ben Toms and Graham Gilbert for going to trouble of organising and promoting the event (as well as motivating the speakers!) and to our own Charley Allen for arranging the venue and promoting the event from the Amsys side of things.

Keep an eye / bookmark / favourite on the website for future meet ups and please do feel free to attend. We don’t bite!

My Presentation Notes

Ben Toms kindly roped me into a ten minute presentation for the meet up (I’m not bitter, honest :P) and I opted for Time Management.

Around the same time I was asked to do a presentation, I had recently finished watching Vanessa White’s “Load Balancing for Humans” video, and was halfway through the “Time Management for System Administrators” book. To be honest, going by the other speakers (either from meeting them, or the companies they work for) I felt I couldn’t ‘out-geek’ them, so I went for something different!

I’ve detailed the links and materials I mentioned in my talk below. I hope some of you will find them helpful!



Again, I’d like to thank Ben, Graham and Charley for organising an amazing event and for giving me ten minutes to ramble on. I’d also like to thank everyone who attended and I look forward to the next one!

iCloud Security Review

You may have seen in the press over the last couple of days that a large collection of explicit celebrity photos were released. It’s looking like the vast majority came from hacked iCloud accounts, specifically via Find My iPhone service.

From reports, the hackers used a brute force password tool. The tool would target an iCloud account ID and would run through a list of 500 of the most commonly used passwords that complied with Apples’ password policies. At the time, Apple did not throttle or lock out the attempts after a certain number of guesses within a given time.  So the hackers would target each account, try each of the passwords, and then move on to the next account. It’s surprising how may accounts you can get through using automated tools.

Since the breach, Apple has now changed things  and will now lock out the account after 5 attempts.

However even though this exploit has been closed, it’s always best to incorporate best practices for your passwords. Even though this document is targeted towards iCloud, a lot of this information you can re-use for other type of accounts.

Best Practices

  • First, although it’s tempting to use the same password across different services such as iCloud or Facebook. Don’t do this. Use separate, unique passwords for each service. That way if one account gets compromised, the other accounts are safe.
  • Use strong passwords. So don’t have passwords that include guessable items such as words found in a dictionary, proper nouns, etc. Don’t create a password based on personal information, such as a birthday. The longer the password, the better.Always use a mixture of characters including upper case and lower case letters. Also include special characters such as £, ? or %. Creating passwords can be a pain. In OS X, you can use the Keychain Access password assistant to create a secure password for you.




  • Once you start using more complex passwords they can become a pain to re-enter each time. I use a tool called 1Password that I use to manage all my passwords. They have OS X and iOS versions and is well worth the investment.
  • Quite often a service, such as iCloud, will add an additional security  measure, and  prompt you to select a number of security questions for which you provide the answers. In the event of you being locked out of the account, they will use these questions to verify who you are.Some of the questions relate to information that is easily found such as your mother’s maiden name.I tend to use random answers for these questions, to make them unguessable by other people. So for my mother’s maiden name I could use ‘London”. Again I use 1Password to record these answers.
  • Also, Apple offers two-factor authentication. By enabling two-step verification, whenever you attempt to log in on a new device with your Apple ID, you will be asked to enter a 4-digit verification code.This code will be sent to a device that you have registered as a trusted device, such as your iPhone, via the Find My iPhone notification or SMS.Apple has some great instructions on how to set this up which can found here.

I hope this is useful and if you have any concerns feel free to contact us at support@amsys.co.uk

Amsys Training partner with Belgium’s, The Catena Company

Earlier this month we partnered with The Catena Company, to license our custom training courses to the Belgium training market. The Catena company has been a trusted Apple Training Partner for quite some time and have a long-standing relationship with Apple.

In today’s blog, Alex Hawes, our Managing Director and Eddy Smets, Catena’s CEO, discuss their recent collaboration and the future of the European Apple Training Market.

eddysmetsThe Catena Company

The Company’s founders were pioneers in the Belgian market, spearheading the commercial expansion of official Apple Training over a decade ago. But even before that official foray into the market from Apple, Catena were offering training and education to IT professionals who were wanting to build Apple expertise.

Eddy Smets from the Catena Company explains:

“By establishing an ‘Apple Authorized Training Center’ channel, Apple added quality control, supervision and ultimately, consistency to the process.

Since that time, the Apple training marketplace has undergone a real transformation in terms of growth. If I recall correctly, back in 2003 there were only six training partners for the whole of Europe. Over the intervening years, the business has grown immensely and there are now a few hundred partners worldwide, and of course much of that expansion has been in Europe.

During that time, we met Alex Hawes from Amsys, they being an Apple Training Partner from the very early days of Apple expanding its training and support service network.”

Amsys content development in the UK

Amsys logoIn addition to being a Training Partner, Amsys is also an Apple Authorised Service Provider. They are the biggest European Training Partner, training in excess of 1500 students a year on a range of Apple technology courses.

“Market needs, Apple growth, and the demand for products and services, have been catalysts for exponential growth in the training business.” states Alex Hawes.

“This is further supported by increased uniformity in training content, a specific certification roadmap, and a worldwide consumer market.”

Eddy Smets continues: “Still there was an ever-present demand for derivative or more specialised training, beyond the generic Apple Authorised offering. As Apple consultants, we are in touch with the daily reality of what people are doing, so we get a good feel for the needs and wishes of businesses.”

Alex, experienced the same issues in the UK: “Our demographic market is larger than in Belgium. This allowed us to develop and commercialise proprietary training programs. Our instructors work together on our course content and structure, striving to achieve the same quality in our own proprietary programs, as in the Apple endorsed ones.

So whilst Apple focuses on generic courses, we can also offer more specialised instruction that caters for the needs of the technicians who are deploying these technologies.”

Amongst other topics, this led to courses for specialists deploying Apple OS X devices in Enterprise Networks, or for those responsible for integrating Apple OS X devices with Directory Services.

Catering for specialists trained on Windows is another popular avenue of training. This involves supporting the integration of Mac devices with Windows machines, and vice-versa, in configuring Windows servers for Mac clients.

Joining for forces to create a broad, top quality offering:catena-logo

“We strive to offer the best, but it isn’t always easy, – or indeed smart – for a business to try to achieve things in isolation.” Explains Eddy Smets. “In the past we provided custom training, coaching and advice. But in spite of our considerable experience in the field, much of the demand in Belgium is still not quite large enough to make the development of our own content an economical proposition.

That said, with iOS, we see a new market opening up, with its own specific needs in regard to development and deployment. So, being the proactive Apple consultants and trainers that we are, we are keen to be once again at the forefront in addressing these new demands. Teaming up with Amsys has facilitated our desire to lead from the front, and it’s a union which benefits Amsys as much as it does Catena.”



Alex Hawes adds. “We carry the investment for the marketplace, developing programs which allow other training centres to license this content from us. It’s a situation which makes economic sense for everyone involved; we are as happy to be in a position to offer our courses in Belgium through The Catena Company, as I’m sure they are in being able to present such courses.

And I’m further sure that deploying our training and content abroad in a larger market can only serve to improve the quality of content and trainers alike. Moreover – and as Eddy mentioned – the experience and feedback gathered by the Catena Company trainers presents us with invaluable ‘boots on the ground’ knowledge of a market they know well, which assists in the further development of training content.”

All in all it’s a win-win situation, a symbiotic relationship which can only cement continued improvement. But the biggest winner of all is the trainee of course, as a larger array of what is already high-quality training, becomes ever-more finely attuned to the needs of those at the forefront of IT in Europe.


Locking down Firefox with CCK 2

Hello again. Yes it’s another Firefox lockdown blog, and a second CCK one, but I have good reasons! I promise!

Firstly, Firefox has changed a little from version 24 to the (at time of writing) current version 30. Secondly, the excellent Mike Kaply has released a ‘new-proved’ (that’s new and improved) CCK, version 2, which offers a better system to maintain the lockdowns through Firefox updates.

Previously, you’d have to manually modify each newly updated Firefox bundle to keep your restrictions in place. With the new method, you can re-push / deploy the specific settings files, back into the newly updated (or replaced) application bundle.

I’d also like to take this chance to apologise to Mike for not having a chance to play and write this up sooner. CCK 2 was released back in November 2013.

One final thing…. I apologise in advance for the length of this post!

Right, let’s get to it.


Firefox Version:  30.0.0

CCK Version:  2.0.4

This blog post is split into four main sections:

  1. Obtaining and installing the CCK Wizard
  2. Configuring a CCK lock-down ‘auto-config’ package
  3. Installing the package into your Firefox bundle
  4. Using the new package when updating Firefox.

I suggest you use a new user account that hasn’t launched Firefox of any version to build your deployment copy.

Phase 1: Obtaining and installing the CCK Wizard

1. Navigate to the Firefox website and download the latest copy of Firefox.
2. Drag your new copy of Firefox to the desktop so you can work on it.
3. Launch Firefox and dismiss all of the first launch popups and messages.
4. Once you have got your copy of Firefox fully open, launch the Add-on manager by going to the “Tools” menu item, then “Add-ons”.


lockdown firefox cc2

5. In the “Search all add-ons” box, type in “cck” and hit return.

search add ons firefox

6.This should show the 2 CCK Wizard add-on installers. Click “Install” on the CCK Wizard 2.0.4 and once complete, close this tab.

cck 2 wizard
about addons cck2

7. Once Firefox has installed the plugin, you should see the below screen. This means that the CCK Wizard add-on is installed. This completes Phase 1.


thanks for installing cck2


Phase 2: Configuring a CCK lock-down ‘auto-config’ package

8. As directed by the ‘Thanks for installing…’ screen, click the new icon in the top right corner.


configuring cck lockdown firefox


9. This will launch the CCK Wizard 2 editor. Click “New” to create a new configuration. You can import previous CCK Wizard creations but sometimes it’s good to start from scratch to clear out the fluff.


launch cck wizard 2


10. Enter a name and a unique identifier for your lockdown profile. For this example, I have used “Amsys-Example-Lockdown-2014” and “amsys-cck-2@extensions.amsys.co.uk”. Click “OK”.


unique identifier

11. The entire plugin will now move to a new screen, with the sections on the left and the settings on the right. On the “About” page, set a description and give the configuration a version number. Use the “Choose…” option to select the location that the work in progress files will be stored. In this example I have used the desktop of my test user account. Once complete, Click “Next”.
Please Note: You can also navigate directly to each section using the titles in the left hand window.


cck example lockdown


12. The next section is “Web Pages”. This will allow you to set a homepage, lock the homepage, set a ‘new user’ welcome page and not to display it, and finally set a ‘Firefox has been upgraded’ page and not to display it. In my default ‘education lockdown’ I will set the Homepage, tick the ‘lock down’ box, leave the Welcome and Upgrade page URLs blank, but tick both “Do not display…” options. Once complete, click “Next”.


upgrade url page blank


13. Next is the “User Interface”, providing general options for the UI of the browser. Typically, I would only select / tick the “Remove the Web Developer menu”, “Remote the ‘Set As Desktop Background’ menuitem” and “Remove the ‘Restart with Add-ons disabled’ menuitem” options. The last option isn’t really that relevant with the new UI style of Firefox v30. Once complete, click “Next”.


cck user interface


14. The next section is “Help Menu” and allows you to modify some aspects of the Help system. Generally speaking, it’s not something I make use of but feel free to play (and test)! Click “Next”.

15. This section is the “Hidden UI” section. It allows you to hide whole sections of the Firefox UI. Again, generally speaking, it’s not something I make use of, but might be ideal for you. Once complete, Click “Next”.

16. The next section “Permissions” allows you to set default site preferences such as block/allow Popups, Installs, Cookies and Plugins. For this example I have used a (hopefully) fake site called “http://www.popsite.com” and blocked all. Clicking the “Add…” option, filling in the boxes, and then clicking “OK” added this. Repeat as required. Click “Next” once you’re done.

cck wizard permissions

cck wizard permissions 2


17. The “Add-ons” page. You can use the main section to load in the pre-downloaded extension files to include. Typically, I’d rarely use this feature but I heavily use the lower section. This allows the disabling of “Discovering Add-ons in the Add-ons Manager”, the Add-ons manager itself and the installing of Add-ons. I typically will tick all three. Click “Next”.

cck adds ons


18. “Search Engines”. As the name suggests, this allows you to customise the Search Engines that Firefox uses. By default Firefox uses Google so typically, I’ll leave this as is. Click “Next”.


cck wizard search engines


19. “Plugins”, the section for your web plugins such as Flash, Java, Adobe Reader etc. Generally, I’d be deploying Flash and Java to the system as standard I don’t typically use this section. Click “Next”.

20. “Bookmarks”. This section can be used to set some options relating to the bookmark items and view settings. I typically select all three options (“Display the Bookmarks toolbar by default”, “Remove Smart Bookmarks…” and “Remove Default Bookmarks…”). Click “Next”.


cck wizard bookmarks


21. “Toolbar” and “Menu”. These two sections allow you to add bookmarks, separators and folders to the bookmarks toolbar and menu item respectively. Added these is simple a case of clicking the relevant “Add [XXXX]…” button and filling in the popup box. Once complete, click “Next” on each section.

cck wizard toolbar menu


22. “Preferences”. This section is very similar to the one in CCK 1.x. Again, these are the same options available in the about:config menu and also very similar to those we’ve added in my previous Firefox deployment blogs.

23. To add a preference, click the “Add…” option.


cck wizard  preferences


24. In the “Preference Name” box, start typing the preference you want to set. The CCK will try and offer the preferences you are looking for. Once you find the one you want, click it.


cck browser shell


25. In the lower box, select the value you want. Click “OK”. Previously, this is also where you’d set to either ‘lock’ the preference (stopping it from being changed) or just to set it (as an initial setting, but changeable by each user).
cck wizard default browser


26. Once you’ve clicked “OK” you will be taken back to the previous page and shown the preference you have set. Consult my last blog for my personal favourites. To enable the ‘lock’ setting on the preference, set the preference, right click it and select “Lock”.

cck 2 lockdown firefox


27. The final option here is a tick box to block access to the “about:config” page of Firefox. This is a local page displaying all of the set and possible options for Firefox. Typically I would have this selected. Click “Next”.


cck wizard prevent access config wizard


28. “General”. This section provides you with three tick boxes that do, like much in the CCK, exactly as they say. I will usually set the middle option, “Don’t check if Firefox is the default browser at startup”. Click “Next”.


cck wizard general


29. “Privacy”. This section allows you to disable private browsing and to not remember search and form history. I tick the “Disable Private Browsing” option usually. Click “Next”.


cck wizard privacy


30. “Security”. This gives you the option to not remember passwords and to disable the creation of a master password to encrypt the stored passwords. This might be a good option for Kiosk style Macs but I don’t normally require this setting. Click “Next”.

31. “Sync”. This single tick box allows the Firefox Sync feature to be turned off. Generally I tick this option. Click “Next”.


cck wizard sync


32. “Data Choices”. This section provides three options to “Disable the crash reporter”, “Disable telemetry” and “Disable Firefox Health Report upload”. I would normally tick all three options to reduce end user popups and undesirably behaviour. Click “Next”.


cck wizard data choices


33. “Update”. This section has the sole option of disabling Firefox Updates. In a controlled environment I would always select this option to allow the site administrators to control the version of Firefox available to end-users. Click “Next”.


cck wizard update


34. “Windows Registry”. This section allows the adding of entries to the Windows Registry relating to Firefox. Being a Mac tech, I skip this section. Click “Next”.

35. “Certificates”. This section has three tabs; “Authorities”, “Servers” and “Overrides”. The first tab allows you to add CA certificates directly into the Firefox application. The second tab allows you to add individual server certificates and the Overrides section controls which domains are allowed to provide self signed certificates. I typically push out certificates using packages or MDM profiles as this will add them to the System Keychain and make them accessible to all applications, therefore I don’t make use of this section personally. Click “Next”.

36. “Network”. This section has two options; a drop down box to pick the setting and a tick box to stop users changing it. The default for Firefox is to use the System Proxy settings, which is normally the best option. I tend to forcibly set this and use the tick box to stop this being changed. Click “Next”.


cck wizard use proxy settings


37. “Miscellaneous”. This is where the ‘everything else’ settings live. I advise to certainly tick the first three options as these minimise the pop ups and stop users resetting Firefox. Click “Next”.


cck wizard miscellaneous


38. “AutoConfig Only”. As the name implies, this section only works for those of us that are going to deploy the setup using the “AutoConfig” method described in this blog. Those who want to use the extension method (as described previously but for CCK 1.x) should skip these two steps.

39. This section allows you to disable “Safe Mode”, to prevent the migration of Profiles and to set some JavaScript code to run before and after the CCK2 settings. The only option I’ve actively set and used is the “Don’t Migrate Profiles” option that I understand blocks the use of existing Firefox settings (as stored in ~/Library/Application Support/Mozilla). Click “Next”.


dont migrate profiles


40. “Extension Only”. Same as above, only fill in this section if you are going to use the Extension method to apply the configuration

41. “Finish”. The last section! If you want to use the Extension method, click “Create an Extension” and save the result to your desktop. Then use my previous blog, section 3, to deploy this. If you want to use the new “AutoConfig” method, then click “Use Auto Extension method to apply the configuration.

42. This completes the settings configuration.

Phase 3: Installing the package into your Firefox bundle

43. The next steps involving getting the new settings into the Firefox bundle itself. Navigate to the location you saved your final file in. This should end with the extension .zip

44. Double click this file to unzip the contents.


install package into your Firefox bundle


45. We need to get these files and folder into the Firefox Application, into “./Firefox.app/Contents/MacOS” but without replacing the folders already in place!

46. Keep the autoconfig window open and to one side. Go back to your build version of Firefox, right click and select “Show Package Contents”.


install firefox package contents

If you are using Firefox 35 please follow these instructions (open in a new tab).

47. Navigate to the “Contents” > “MacOS” folder within this bundle. This area will be familiar to those who’ve followed my many previous posts about Firefox deployment configuration.


navigate to contents


48. Copy the “distribution” folder, from your autoconfig folder into this location.

./autoconfig/distribution	 ->	./Firefox.app/Contents/MacOS/

copy distribution folder firefox


49. Within your Firefox.app folder structure, open up the “browser” folder (“./Firefox.app/Contents/MacOS/browser”) and open up the “browser” folder in your ‘autoconfig’ folder (“./autoconfig/browser”).

50. Copy the contents of the autoconfig folder into the Firefox “browser” folder.

./autoconfig/browser/*	 ->	./Firefox.app/Contents/MacOS/browser/

copy contents firefox folder


51. Last one! Within your Firefox.app folder structure, open up the “defaults” then “pref” folder (“./Firefox.app/Contents/MacOS/defaults/pref”) and open up the “defaults” then “pref” folder in your

‘autoconfig’ folder (“./autoconfig/defaults/pref”).

52. Copy the contents of the pref folder into the Firefox “pref” folder.

./autoconfig/defaults/pref/*	 ->	./Firefox.app/Contents/MacOS/defaults/pref/

copy pref contents folder


53. Firefox should now have its tweaks complete and stored within its application bundle. When a new user launches Firefox, it will silently use the lock-down configuration and apply the settings. To test I would recommend copying the final product into the Applications folder, then creating and using a new User account, verifying the behaviour is as expected. Also remember, to ‘reset’ a user to continually test the use of Firefox as a new user, just remove these two directories:

~/Library/Application\ Support/Mozilla
~/Library/Application\ Support/Firefox

Phase 4: Using the new package when updating Firefox

Wow, sorry about the length of that. Mike’s done a great job of splitting up the sections neatly; it just doesn’t make for an easy blog!

As promised, let’s have a brief chat about why I would recommend this change. The current easiest (and arguably most popular) method for updating Firefox is to push out the new .app bundle. I can’t disagree with this as it also ensures that any issue within the Application bundle are fixed when the whole lot is replaced. However, this causes the problem that for each new version, you need to re-apply your configurations inside the application before you can push it out.

With the new method, you can simple package those files we copied (steps 48, 50 and 52) in their final locations. With this new package, you can simply ensure to redeploy this after every Firefox update to ensure that your restrictions are applied.

Running Munki? Even easier! Add this package into your installs array and add the files into the pkgsinfo file’s installs array and watch, as Munki will automatically fix Firefox, each time it’s updated.

Running Casper? A little trickier but how about using a customer Extension Attribute that checks for the existence of these files, and if not present, add the Macs to a Smart group and use a scoped policy to reinstall them.


Thanks for sticking it out this far and apologies again for the long post. Hopefully that will help some of you with a better method, or even just an (another) alternative method of configuring Firefox for your deployments.

As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

The best way to really learn something is to actually do it

Philip Hodder from Encodis Consulting, first embarked on his app development journey with Amsys last year, by taking our 5 day iOS app development course, to turn an idea that he had been exploring into an app. The app is called “RTQ” and was recently accepted onto the App Store.

Congratulations Philip!

We got in touch with Philip to find out why he created his app “RTQ,” what the app does, and how Amsys Training helped him in achieving his app development goals.

Why did you attend our iOS App Development course?

I’ve found that the best way to really learn something is to actually do it! For iOS programming this obviously meant starting with an idea and ending up with a published app on the App Store.

Fortunately I’d been kicking the idea for the app around for a while, so after the course I could get stuck in straight away.

Why did you create the App?

There are a number of “daily quote” apps in the App Store, but these tend to be focused on one specific subject (Shakespeare, for example, or a particular TV show) – there didn’t seem to be many that allowed you to make up your own lists.

What functionality/features are included within the App?

In essence the app (called RTQ) is quite simple.

Imagine you have a list of things, arranged as a simple table. This table could contain anything:

- Different routes to run as part of a workout.
- Quotes from your favourite films.
- A list of books to read.

And so on.

You can select a table within the app and it will show a random row (or entry) from it. RTQ is short for “Random Tables and Quotes,”, which is what the app does!

Of course, there is a lot more functionality in there if you need it:

- Have several tables in the same “table set.”
- Adjust the formatting (font, colours and so on.)
- Add and edit tables and table entries within the app.
- Tables can be filtered by categories and sorted and so on.

There’s also a feature to import (from an email attachment, say, or from Dropbox) a text file containing a definition of a table set. This is useful for tables with a large number of entries.

How can the App be used?

Anyway you like! One of my primary target audiences for this app is the table top role playing game community. These games use lots of tables, and the app has lots of features to support quite complex tables.

How did Amsys training help you to create the App?

iOS programming has quite a steep learning curve – there’s a lot to learn about the programming language itself (Objective-C) and the environment you develop it in (XCode). The Amsys course was incredibly useful in getting up that curve!

Although there are a lot of iOS programming resources on the Internet nothing beats being able to ask someone how something works – or why something isn’t working! – right there and then. This gave me a solid grounding in the basics and sped things up considerably.

Are you planning on developing any more Apps in the future?

Definitely! Version 1.1 of RTQ is coming soon, although that’s more of a stability update. V1.2 will incorporate social media – so you can post a favourite quote on Facebook, for example.

The next versions will incorporate notifications – iOS 8 will probably have been released by then, and I’m keen to see what some of its new features can do in that area.

I’m also exploring an idea for another app with a colleague. This has the potential to be of interest to a range of users – from individual “hobbyists” all the way up to quite large companies. From a technical perspective, this will mean getting to grips with Core Data and iCloud, which I’m quite looking forward to!

RTQ edit table set RTQ table sets

RTQ-formatting RTQ-castle-names


We wish Philip lots of luck with his new app, and hope that the App receives plenty of downloads. We have thought of some great ways that this app can be used, for example, creating a list to generate ideas for what to cook for dinner tonight!

You can download “RTQ” for 69p from the APP Store today.

If you would like to start your app development journey with Amsys, please call us on 0208 645 5806, or check out our range of iOS app development courses for beginner and advanced developers.

Writing data into existing home folders as part of an installation package

I have been in a few scenarios where we need to deploy a package and put a file into the home folder of each user on the target system. Of course if we are using Casper we can just create a DMG package and use the “fill existing users” option. The below script gives you a way of doing this if you don’t have Casper deploying the package.

We start off by deploying the app / software via the package as normal. In this example we put the file we want to end up in the users home folders in /tmp. We then use a while loop to copy the file into each users home folder (excluding the Shared and Guest directories):

     # Sets the file name as a variable
counter=`ls /Users | grep -v Shared | grep -v Guest | grep -v .localized | grep -v .DS_Store | grep -c "[A-z 0-9]"`
     # Outputs the number of folders in the /Users directory, excluding the Shared &amp; Guest directories
# Loop start
     while [ $counter -ne 0 ]
               targetFolder=`ls /Users | grep -v Shared | grep -v Guest | grep -v .localized | grep -v .DS_Store | grep "[A-z 0-9]" | head -$counter | tail -1`
                    # Gets the target folder name (there’s probably a better way to do this but it works!)
               cp $fileName /Users/$targetFolder/Desktop/
                    # Copies the file into place
               chown $targetFolder /Users/$targetFolder/Library/Preferences/ByHost/com.apple.QuickTime.$uuid.plist
                    # Set the correct owner on the file
               counter=$(( $counter - 1 ))
                    # Reduces the counter by 1
exit 0

Plymouth University – The results are in!

amsys plymouth university

Late last year we embarked on a journey with Plymouth University to bring an innovative and collaborative Apple Support service to the University’s Mac and iOS devices for staff and students.

As we near the anniversary we wanted to find out just what our users thought of the service. After all, it’s no good just thinking you have delivered an exceptional project, without first finding out whether the service really meets the expectations from your client and their users.

So, we decided to undertake an anonymous survey of the 300+ users of the service and “The CORE” in order to understand their views and experiences of the service. The questions sought to discover opinions and feedback on all manners of the service, including the Amsys team that man the service and views on the response times and fix-rates.

We have been extremely impressed by the results and very proud of our teams who have delivered such a fantastic service to our client. The results have demonstrated an average score of 96% across the board and comments such as “It is extremely helpful to have such resource in campus, it saved me time and further aggravation to have someone available so quickly and near my office.” and “Following the one visit, I have been recommending Amsys to my colleagues.” Well-done team!

When you couple this with our 100% achievement of our Service Level Agreements since they were introduced, the survey results conclude that we are delivering a high-quality service, in tune with the user’s requirements.

The full survey results are detailed below.

Delivery Customer Satisfaction Survey            

Average %
How satisfied are you overall with our customer support? 4.71 94%
How satisfied were you with how the Amsys support staff resolved your recent problem? 4.76 95%

Please rate your Amsys Technician on the following attributes
Responsiveness 4.85 97%
Professionalism 4.83 97%
Politeness 4.88 98%
Knowledge of the problem 4.80 96%
Manner of handling follow up questions 4.73 95%

Please indicate your level of satisfaction with the following attributed of our service
Delivery of service 4.79 96%
Methods of communication 4.81 96%
Time taken before speaking to a technician 4.86 97%
Time taken before your issue was resolved 4.81 96%

Total Average



If you want to learn more about the solution Amsys delivered and the business and technical issues the University faced then download our free Apple in Education webinar, hosted in conjunction with Plymouth University.


To find out how we can help you integrate an Apple Support Service at your school or university please contact us today, email support@amsys.co.uk or call 0208 660 9999.

London Apple Admins debut event sponsored by Amsys

London Apple Admins has been founded by London based system admins, Ben Toms and Graham Gilbert. If you’re a regular twitter user, you may already be following these two popular tweeters!

Earlier on this year, Ben got in touch with us to see whether we could help them get their new event idea off of the ground, following the success of our own MMU events.

We agreed, and we are pleased to announce that the very first London Apple Admin “meet” will take place early next month at the Red Herring pub, in St Paul’s, London.

Here is a rough agenda to give you guideline on what to expect on the night. As you can see, there are already a number of confirmed speakers, however there are some spots still available.

So if you fancy sharing or demonstrating an idea, tool or scenario, then please get touch and get involved!

  • 19:00-19:15 – Arrivals
  • 19:15-19:25 – Ben Toms aka macmule (Pentland Brands Plc)
  • 19:25-19:35 – Graham Gilbert (Pebble.it)
  • 19:45-19:55 – Richard Purves (University of the Arts London)
  • 19:55-20:05 – Dan Mintz (JAMF Software)
  • 20:05-20:15 – Darren Wallace (Amsys)
  • 20:15-20:25 – Dana Campbell (macbrained)
  • 21:25-23:00 – Eat, Drink & Discuss

This  event, as with future events to come, entry will be free. However, you must register beforehand as there is limited capacity, so please get your tickets now.

Gatekeeper changes coming

Gatekeeper was introduced in Mountain Lion and OS X Lion v10.7.5. It’s used to help protect your Mac from malware and misbehaving apps downloaded from the Internet.

The safest and most reliable place to download and install apps is via the Mac App Store.

For apps that are downloaded from places other than the Mac App Store, developers can get a unique Developer ID from Apple and use it to digitally sign their apps. The Developer ID allows Gatekeeper to block apps created by malware developers and verify that apps haven’t been tampered with since they were signed. If an app was developed by an unknown developer—one with no Developer ID—or tampered with, Gatekeeper can block the app.

Apple have announced some changes for the forthcoming 10.9.5 update for Mavericks. For an application to remain trusted, developers will have to make sure the code is signed using OS X Mavericks 10.9 or later and create a v2 signature. This new requirement will also be a requirement for OS X 10.10 Yosemite. Applications signed using these new methods will also still work for older versions of OS X, such as 10.7.5 to 10.8.

This could mean some apps, that Gatekeeper previously allowed to run, will now generate a warning until their digital signatures have been updated. As a temporary work around, users can  right-click the app and choose “Open” from the contextual menu to bypass Gatekeeper for that application. Obviously only perform the action if you are 100% sure of the authenticity of the app.




Handy iOS 7 tips and tricks

ios 7 tips and tricks
I’ve recently been delivering some bespoke iOS training courses across London and realised that there were quite a few useful tips and tricks that I was demonstrating, which long time users of iPhones and iPads were just were not aware of.

So, to continue in Amsys’ ongoing mission to ‘spread the Apple love’, I thought I would jot a few down here for everyone – in-case others have missed these too!

Keyboard/Typing tips (Using iOS onscreen keyboard):

1) Using Caps Lock: Double-tap the ‘Shift’ key in the onscreen keyboard for caps lock, the Shift key’s icon will change to be underlined as shown below:

ios 7 keyboard tips

2) Creating customised keyboard shortcuts: You can specify a shortcut to a long word or even a phrase so that you can simply enter a couple of letters and iOS will replace this shortcut with the full word or phrase.

Go to Settings > General > Keyboard, then tap Add New Shortcut:

customised ios 7 keyboard

Enter the full ‘Phrase’ and then enter the reduced character ‘Shortcut’ that will be automatically replaced on entering for the full phrase.

  • Tap Save to save your new shortcut.
  • You can add as many shortcuts as you wish.

In the example below, in any app where I can use the built-in iOS onscreen keyboard, if I enter ‘amst’, this shortcut will be replaced with the phrase ‘Amsys Training.’ I just need to tap the space-bar key to accept the replacement suggestion:

reduced character shortcuts ios 7

What if you have a word or phrase you regularly use, which the built in dictionary keeps telling you is wrong, and you don’t want it corrected?

Simple. Create a shortcut, only entering your word as the phrase, but leave the Shortcut field blank.

In the following example, I regularly refer to Apple’s iOS SDK in emails and messages and the built-in dictionary doesn’t like the word ‘sdk”

adding custom words ios7

To delete a shortcut, just swipe from right to left over the shortcut in the Settings > General > Keyboard > Shortcuts list and tap ‘Delete’:

delete customised shortcut

3) Alternative Text characters: Touch and hold a key, then slide over one of the suggested options to choose it. (For example, ‘E’ and ‘O’ have additional accent and character options):

alternative text shortcuts ios 7

4) How to undo the last entered edit: On a desktop or portable mac, you can easily use the ‘Cmd’ + ‘Z’ keys to undo the last entered edit. In iOS, all you need to do is ‘shake’ your device to the left and right, then tap ‘Undo’ when the pop-up appears. You can also Redo an Undo!

undo last entered text edit ios 7

undo last entered text edit ios 7

5) Define a word: In apps like Safari, Mail, Pages etc you can define a word by double-tapping it to bring up the options menu, and then tap Define:

define a word in ios 7

Useful Mail Tips:

1) Quickly delete a message in Mail: Simply swipe from right to left on messages in your inbox to quickly delete them by selecting ‘Trash’:

quickly delete a message in ios 7 mail

(Use the ‘More’ option to select features such as to quickly Reply, Forward or Flag the email):

flag mail in ios 7

2) Go back in Mail: To go back, swipe left to right from the edge of your screen:

go back in mail ios 7

3) Get back to drafts: Touch and hold the ‘Compose’ button to switch to your list of draft saved messages:

get back to drafts in ios 7

4) Search mail for a message: Swipe down in the messages list to reveal the search field if not already on display.

Searching looks at the address fields, the subject, and the message body.

To search multiple accounts at once, search from a smart mailbox at the home page of the Mail app, (such as ‘All Sent’):

search of mail message in ios 7

5) Search mail by time-frame: Type something like “August meeting” to find all messages from August containing the word “meeting”:

search mail in timeframe ios 7

6) Search mail by message state: To find all flagged, unread messages, type “flag unread.”
(You can also search for other message attributes, such as “attachment”):

search mail by message attachment ios 7

If you would like to learn more about Apple’s iOS products and how to support them, then take a look at our collection of iOS end user & support training courses.
We also have a collection of iOS App Development Courses, which may also be of interest.

If you require something a little more bespoke, then please contact our training department who will be more than happy to organise something for you.


While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

These features were tested on an iPad (3rd Generation) running iOS v7.1.2 which was the latest iOS release at the time of writing.

Removing the NTSC presets from Final Cut Pro 7

Hey everyone.

On a recent consultancy project I had a higher education client running Final Cut Pro X but they still needed access to Final Cut Pro 7 for some legacy items. To assist their student’s choices when starting a new project, they asked that all NTSC presets be removed for the ‘new project wizard’ screen.

After some digging and trial and error I managed to get the task accomplished. In this blog I have detailed the steps I used to achieve this.

The usual Disclaimer:
While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

Right, let’s get to it.


After some digging, I found that there are three separate locations (and 5 sub-folders) that you need to gut to get the end result. These are:

  • /Applications/Final Cut Pro.app/Contents/Resources/English.lproj/Final Cut Pro Settings/Hardware Settings/
  • /Applications/Final Cut Pro Additional Easy Setups.localized/
    • ./French.localized/
    • ./German.localized
    • ./Japanese.localized
    • ./zh_CN.localized
    • ./English.localized/
  • /Library/Application Support/Final Cut Pro System Support/Custom Settings/

Inside of all these folders are over 60 files I have removed. As the client had no requirement, and to reduce the complexity, I ended up completely removing the French, German, Japanese and “zh_CN” localization folders.

Final List of Items to Remove

This is my final list of items I had to remove:

1. /Applications/Final Cut Pro.app/Contents/Resources/English.lproj/Final Cut Pro Settings/Hardware Settings/DV – NTSC*.fcpre
2. /Applications/Final Cut Pro.app/Contents/Resources/English.lproj/Final Cut Pro Settings/Hardware Settings/OfflineRT – NTSC*.fcpre
3. /Applications/Final Cut Pro Additional Easy Setups.localized/French.localized
4. /Applications/Final Cut Pro Additional Easy Setups.localized/German.localized
5. /Applications/Final Cut Pro Additional Easy Setups.localized/Japanese.localized
6. /Applications/Final Cut Pro Additional Easy Setups.localized/zh_CN.localized”rm -R “/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (HQ) NTSC 48 kHz Anamorphic.fcpre
7. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (HQ) NTSC 48 kHz.fcpre
8. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (LT) NTSC 48 kHz Anamorphic.fcpre
9. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (LT) NTSC 48 kHz.fcpre
10. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (Proxy) NTSC 48 kHz Anamorphic.fcpre
11. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (Proxy) NTSC 48 kHz.fcpre
12. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 NTSC 48 kHz Anamorphic.fcpre
13. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 NTSC 48 kHz.fcpre
14. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Cinema Tools – 23.98fps from DV NTSC.fcpre
15. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Cinema Tools – 24fps from DV NTSC.fcpre
16. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Cinema Tools – DV NTSC NDF.fcpre
17. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC 24p (23.98) Advanced Pulldown Removal.fcpre
18. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC 24p (23.98).fcpre
19. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC Anamorphic.fcpre
20. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC FireWire Basic.fcpre
21. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV50 – NTSC.fcpre
22. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV50 NTSC 24p (23.98).fcpre
23. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV50 NTSC Anamorphic.fcpre
24. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/IMX NTSC (30 Mbps).fcpre
25. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/IMX NTSC (40 Mbps).fcpre
26. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/IMX NTSC (50 Mbps).fcpre
27. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/OfflineRT NTSC 24fps.fcpre
28. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/OfflineRT NTSC 24p (23.98).fcpre
29. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/OfflineRT NTSC Anamorphic.fcpre
30. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Uncompressed 8-bit NTSC 48 kHz.fcpre
31. /Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Uncompressed 10-bit NTSC 48 kHz.fcpre
32. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (HQ) NTSC 48 kHz Anamorphic.fcpre
33. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (HQ) NTSC 48 kHz.fcpre
34. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (LT) NTSC 48 kHz Anamorphic.fcpre
35. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (LT) NTSC 48 kHz.fcpre
36. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (Proxy) NTSC 48 kHz Anamorphic.fcpre
37. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (Proxy) NTSC 48 kHz.fcpre
38. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 NTSC 48 kHz Anamorphic.fcpre
39. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 NTSC 48 kHz.fcpre
40. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Cinema Tools – 23.98fps from DV NTSC.fcpre
41. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Cinema Tools – 24fps from DV NTSC.fcpre
42. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Cinema Tools – DV NTSC NDF.fcpre
43. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC 24p (23.98) Advanced Pulldown Removal.fcpre
44. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC 24p (23.98).fcpre
45. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC Anamorphic.fcpre
46. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC FireWire Basic.fcpre
47. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV50 – NTSC.fcpre
48. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV50 NTSC 24p (23.98).fcpre
49. /Library/Application Support/Final Cut Pro System Support/Custom Settings/DV50 NTSC Anamorphic.fcpre
50. /Library/Application Support/Final Cut Pro System Support/Custom Settings/IMX NTSC (30 Mbps).fcpre
51. /Library/Application Support/Final Cut Pro System Support/Custom Settings/IMX NTSC (40 Mbps).fcpre
52. /Library/Application Support/Final Cut Pro System Support/Custom Settings/IMX NTSC (50 Mbps).fcpre
53. /Library/Application Support/Final Cut Pro System Support/Custom Settings/OfflineRT NTSC 24fps.fcpre
54. /Library/Application Support/Final Cut Pro System Support/Custom Settings/OfflineRT NTSC 24p (23.98).fcpre
55. /Library/Application Support/Final Cut Pro System Support/Custom Settings/OfflineRT NTSC Anamorphic.fcpre
56. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Uncompressed 8-bit NTSC 48 kHz.fcpre
57. /Library/Application Support/Final Cut Pro System Support/Custom Settings/Uncompressed 10-bit NTSC 48 kHz.fcpre

Now that’s a lot of work!

A Note Before We Proceed Further

So, in addition to the above, the client requested a system where the NTSC presets can be re-added if needed on a Mac-by-Mac basis. Before removing the above files, I dragged and dropped the items I was to remove, into a Composer packaging session and made an installer package to replace these files. Job done!


So to repeat these steps over and over again for each Mac is a pain, so I created a shell script to do the donkey work for me!

# This script has been created by Darren @ Amsys
# 0208 660 7750 - servicedesk@amsys.co.uk
# This script goes through the FCP 7 folders and removes and NTSC presetfiles to stop these being shown to the user
# This script is provide 'as-is' with no guarantees or warranties on its use
rm -R "/Applications/Final Cut Pro.app/Contents/Resources/English.lproj/Final Cut Pro Settings/Hardware Settings/DV - NTSC*.fcpre"
rm -R "/Applications/Final Cut Pro.app/Contents/Resources/English.lproj/Final Cut Pro Settings/Hardware Settings/OfflineRT - NTSC*.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/French.localized"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/German.localized"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/Japanese.localized"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/zh_CN.localized"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (HQ) NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (HQ) NTSC 48 kHz.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (LT) NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (LT) NTSC 48 kHz.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (Proxy) NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 (Proxy) NTSC 48 kHz.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Apple ProRes 422 NTSC 48 kHz.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Cinema Tools - 23.98fps from DV NTSC.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Cinema Tools - 24fps from DV NTSC.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Cinema Tools - DV NTSC NDF.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC 24p (23.98) Advanced Pulldown Removal.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC 24p (23.98).fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV-NTSC FireWire Basic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV50 - NTSC.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV50 NTSC 24p (23.98).fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/DV50 NTSC Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/IMX NTSC (30 Mbps).fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/IMX NTSC (40 Mbps).fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/IMX NTSC (50 Mbps).fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/OfflineRT NTSC 24fps.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/OfflineRT NTSC 24p (23.98).fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/OfflineRT NTSC Anamorphic.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Uncompressed 8-bit NTSC 48 kHz.fcpre"
rm -R "/Applications/Final Cut Pro Additional Easy Setups.localized/English.localized/Uncompressed 10-bit NTSC 48 kHz.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (HQ) NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (HQ) NTSC 48 kHz.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (LT) NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (LT) NTSC 48 kHz.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (Proxy) NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 (Proxy) NTSC 48 kHz.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 NTSC 48 kHz Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Apple ProRes 422 NTSC 48 kHz.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Cinema Tools - 23.98fps from DV NTSC.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Cinema Tools - 24fps from DV NTSC.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Cinema Tools - DV NTSC NDF.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC 24p (23.98) Advanced Pulldown Removal.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC 24p (23.98).fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV-NTSC FireWire Basic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV50 - NTSC.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV50 NTSC 24p (23.98).fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/DV50 NTSC Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/IMX NTSC (30 Mbps).fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/IMX NTSC (40 Mbps).fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/IMX NTSC (50 Mbps).fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/OfflineRT NTSC 24fps.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/OfflineRT NTSC 24p (23.98).fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/OfflineRT NTSC Anamorphic.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Uncompressed 8-bit NTSC 48 kHz.fcpre"
rm -R "/Library/Application Support/Final Cut Pro System Support/Custom Settings/Uncompressed 10-bit NTSC 48 kHz.fcpre"
exit 0

In case the formatting is changed when it’s posted, I’ve also included the script as a downloadable file.


Simply run this script manually or using ARD on your clients, package it up in a payload-free installer and again, run manually or push out via ARD, load into Munki as a post-flight script for your FCP 7 install, or load into Casper as a script and run it as a policy.


There you go, I know it’s an old piece of software but it does have its uses and hopefully this will save one of you some time and effort if you end up in the same situation!

As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can.


Well this Friday (25th July 2014) is our annual Amsys System Administrators Conference and this year will be my first year attending! The plan is for me to be a support-presenter to Hugo Costa on the Deployment and Management sessions.

Feel free to ask any questions you may have and I’ll do my very best to answer them!

Why Apple Training is now more important than ever

Following Apple and IBM’s announcement this year about their new global enterprise partnership, it has never been more important that your technical staff and users have the right skills, tools and support to manage, deploy and secure your Apple devices.

This new partnership has set a clear, resounding precedent. Apple is serious about taking a big, big slice of the enterprise market.

In fact,  VMWARE predicted Apple’s impending invasion of the enterprise, “as BYOC and BYOD continue to transform the enterprise, Macs have become a popular and preferred option compared to Windows PCs.”

Indeed, one key reason attributed to a surge in the adoption of Apple devices in the enterprise, is the increasing demands placed by the employee and senior management for Apple devices, rather than the IT personnel.

A trend that Apple recognised back in 2007 when they first launched the iPhone whereby they effectively ignored “corporate IT departments”  and instead opted to market directly to consumers.

Evidently, this tactic has worked. The iOS operating system is now already used in “92% of Fortune 500 Companies,” with the typical user citing that they “are just easier to use than their Windows-based counterparts.”

With 75% of IT administrators stating that they believe Macs are harder to support than Windows, where does this leave the corporate IT department?

When, four years ago, Apple discontinued the much loved Xserve, and along with it their popular System Administrator certifications, Apple IT professionals were left in the dark as to how they would continue to learn how to efficiently, and cost effectively, support and manage Apple Devices.

Our own team recognised this issue, which is why we continue to develop and teach our range of Mac Admin and iOS Deployment in the enterprise courses.

For more information about our OS X and iOS training courses, and how they can benefit your organisation, speak to our friendly, expert Apple Certified Training team today.

Amsys joins Cisco’s “Meraki Elevate Partner Programme”

meraki elevate partner

Meraki, the market leading cloud networking tool, provides cloud controlled WI-FI, routing and security products for wired and wireless networks. Organisations that choose Meraki to bolster their networking infrastructure can dramatically alter and improve their WI-FI landscape and centralised management capabilities.

Consequently, Meraki has taken both enterprise and education markets by storm as demonstrated by their current client portfolio. Touting high profile brands such as global shopping centre, Westfields, retail giant United Colors of Benetton UK and the prestigious, Stanford University as having already embraced Meraki as their networking tool of choice.

With Meraki installed, a network administrator can manage a large network, across several locations, from one centrally managed point. Quickly allowing for greater visibility and control, while cutting costs and complexity associated with traditional enterprise networks.

By adding the Meraki partnership to the Amsys portfolio of services we can now extend our offerings to a wider range of enterprise and education clients on a national scale.

Peter Lewsey, Amsys’ Strategic Accounts Director, and initiator of the Amsys/Meraki partnership is excited about the opportunities that this new relationship brings, stating:

“Having recognised Meraki’s scalable nature, we have been working with our  SME and Education clients so that they too can enjoy the benefits of this secure, easy to manage and cost saving cloud networking solution.”

To find out how your industry peers are already using Meraki, and the benefits the solutions can deliver for your organisation, please watch this free webinar presented by our partners at Cisco Meraki.

3 tips to improve the performance of your Mac

We all know that Macs offer fantastic performance and that the Mac OS is the most secure and efficient operating system out there, however there may come a time when you notice your Mac is running a little slowly, or not performing as well as it once did.

Let us take you through a few simple steps that can help improve performance and keep your Mac in tip top healthy condition.

Software Updates

Software updates are an essential part of the upkeep in maintaining a healthy Mac. They provide you with new features as well as under the hood fixes and bug repairs.

Software updates released by the App Store also come with release notes detailing what the update includes. It’s always worth having a quick read to see what is being improved.

os x software updates

Within system preferences, there is an option for “App Store” which  allows your Mac to check for updates automatically in the background or download them automatically. This is a very useful feature as it saves you having to open the App Store all the time and manually check for the next update.

app store preferences

Perform Regular Maintenance

Maintenance is essential to making sure your Mac is running as smoothly as possible. One of your top priorities should be ensuring your data is regularly backed up, especially if your device uses a standard hard drive.

Hard drives are mechanical parts and will eventually wear out over time, but there are some simple steps to help minimise this process.

Solid State Drives are better as they use “flash storage” for saving and storing your data. However, they can still suffer from issues. Therefore, you will still need to make sure you maintain your Mac as best as you can.

By using the recovering partition on your OS, you can easily manage the maintenance of your device.

To boot to the recovery partition you will need to start your Mac and hold the option key on your keyboard until the machine boots to the startup manager.

Once booted, open “Disk Utility” (you can also open this from the utilities folder inside the application folder on your startup disc.)

On the left of the disk utility window, you will see your device’s internal disc. In this case, it’s called Macintosh HD. Underneath,“Macintosh HD” you will see all your different disc volumes, in this example I just have the one Macintosh HD.

mac recovery partition

With the internal disc selected, you will have two options ‘Verify Disk’ and ‘Repair Disk.’ It’s always best to run verify disk first to check for issues.

With the volume selected, you will see two options ‘Verify Disk Permissions’ and ‘Repair Disk Permissions.’ If you ever experience repeated errors by an application, it’s a safe bet that something is wrong with the disk permissions.

mac disk permissions

The bootable volume will not allow you to use the option ‘Repair Disk’ until you have run ‘Verify Disk’ to see if anything is wrong.

This maintenance is a simple task, taking short amount of time to implement. I would suggest doing this once a month just to ensure that everything is running smoothly.


Hardware plays a large role in the performance of your Mac. The first thing to do when your Mac starts to run slowly is to check how much free space you have left on your startup disc.

To see how much space you have left, select the hard drive icon on the desktop, and tap your space bar to open the information window.

You will now see how much space is free on your disc. 20GB is the recommended amount to keep free, anything under that, and your Mac will start to slow.

mac hard drive space

RAM is another component that will affect the performance of your Mac, which will also be determined by the kind of tasks and applications you regularly use. For example, if you do a lot of video and image editing you will need more RAM than your average user!

I’m always asked if more RAM will improve the performance of a Mac. The simple answer is yes, if you have 4GB of RAM and upgrade to 8GB your Mac will have double the memory that can be allocated, resulting in smoother performance.

Each Mac Model has different restraints on its internal disc capacity and the amount of RAM available to that model. To discuss the options and upgrades available for your Mac, please contact our friendly Apple Technicians who will be able to advise you on the best option for you.

If you would like to book your Mac in for an upgrade or repair, please call us on 02008 660 9999 or log your Mac online here

While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.