onsdag den 31. december 2008

Backup OSX client to Ubuntu server using rsync

This is a guideline for backing up your OSX home folder to a Ubuntu Linux server. Some folders are excluded as they are backed up in other ways (see earlier post on how to synchronize images between OSX clients).

Requirements
  1. This guideline requires ssh without password (see earlier post on the blog).

Limitations
  1. The backup method used in this guideline is a mirrored copy of the original data. This means that backups will be replaced by the original data. You will only be able to roll back to the latest version of the data. This will ensure your data if your harddrive fails or if your Mac is stolen. It will not help you if for instance you delete sections in a document and want to revert to an older version. Check the links below for some hints on how to create incremental backups using rsync.

Guideline
  1. Download and extract the folder backup in /Applications
  2. Edit the top of /Applications/backup/scripts/backup.sh. Change to your own username, server IP and set the directory where the backup should be placed (create this directory on the server).
  3. Configure what directories shouldn't be backed up by editing the file /Applications/backup/scripts/exclude
  4. In the file /Applications/backup/launchd/com.skyandyou.tools.clientbackup.plist you can set the delay between backup's (default is 3 hours)
  5. Copy /Applications/backup/launchd/com.skyandyou.tools.clientbackup.plist to /Users/username/Library/LaunchAgents
  6. Restart your Mac
  7. Test the backup by executing:
    launchctl start com.skyandyou.tools.clientbackup
  8. Watch the log output:
    tail -f /var/log/system.log
Links
Using excludes in rsync
Incremental backups using rsync
Mac backup howto

tirsdag den 23. december 2008

Wireless connection slow on Asus WL-500W

When using 1.9.2.7-10 of Oleg's Asus firmware the wireless connection is really really slow. I found a hint that seems to fix it:

In the router web adminstration change to AES instead of TKIP (default)
WPA Encryption: AES
Authentication Method: wpa-auto-personal
Channel: 9
Wireless mode: Auto
54g protection: No check mark

Installing Oleg firmware on Asus WL-500W

This is a guideline for installing Oleg firmware on a Asus WL-500W router including using a USB pen for storage of additional software (ipkg packages) and setting up ssh. This guideline is a mix of the HOWTO's in the Relevant Link section below. Use of this guideline is on your own risk.

Guideline:
  1. Download firmware (the version I curently use is 1.9.2.7-10) from Oleg firmware list
  2. Go the router web management (default is http://192.168.1.1)
  3. In System Setup, Firmware Upgrade select the Oleg firmware on your harddrive and start the upgrade.
  4. telnet to the router (from a terminal/shell/cmd) using the username and password settings configured in the web management console:
    telnet 192.168.1.1
  5. Install ssh (dropbear):
    mkdir -p /usr/local/etc/dropbear

    dropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key


    dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key


    mkdir -p /usr/local/sbin/


    touch /usr/local/sbin/post-boot

    touch /usr/local/sbin/post-firewall

    touch /usr/local/sbin/post-mount


    touch /usr/local/sbin/pre-mount


    touch /usr/local/sbin/pre-shutdown


    chmod +x /usr/local/sbin/*


    echo "#!/bin/sh" >> /usr/local/sbin/post-boot


    echo "dropbear" >> /usr/local/sbin/post-boot


    flashfs save && flashfs commit && flashfs enable && reboot
  6. Put a USB pen in the USB slot on the router (I use a 2GB USB pen)
  7. Partition the USB pen (one partition for swap and one for IPKG packages):
    insmod scsi_mod && insmod sd_mod && insmod usb-storage && sleep 5s
    fdisk /dev/discs/disc0/disc
    In fdisk, Create swap:
    n -> p -> 1 -> 'return' -> +512M -> t -> 82
    Create IPKG partition:
    n -> p -> 2 -> 'return' -> 'return'
    End fdisk by pressing 'w'
  8. Start the swap:
    mkswap /dev/discs/disc0/part1

    swapon /dev/discs/disc0/part1
  9. Format the IPKG partition:
    mke2fs -j /dev/discs/disc0/part2
  10. Add fstab:
    vi /etc/fstab
    Paste the following:
    #device Mountpoint FStype Options Dump Pass#
    /dev/discs/disc0/part1 none swap sw 0 0
    /dev/discs/disc0/part2 /opt ext3 rw,noatime 1 1

    Save the file (esc -> wq)
  11. Save fstab for reboot:
    echo "/etc/fstab" >> /usr/local/.filescv
  12. Mount usb on startup by editing /usr/local/sbin/post-boot:
    vi /usr/local/sbin/post-boot
    Add the following:
    # Start SSH service
    dropbear

    # test if USB disc has been attached
    # if not - then insert needed modules
    if [ ! -d /dev/discs ]
    then
    insmod scsi_mod && insmod sd_mod && insmod usb-storage && sleep 5s
    fi

    # Wait for /opt to mount
    mount /dev/discs/disc0/part2 /opt
    mount /dev/discs/disc0/part3 /tmp/harddisk
    i=0
    while [ $i -le 30 ]
    do
    if [ -d /opt/etc ]
    then
    break
    fi

    sleep 1
    i=`expr $i + 1`
    done

    # Activate swap
    swapon /dev/discs/disc0/part1
  13. Save all settings and reboot:
    flashfs save && flashfs commit && flashfs enable && reboot
  14. After reboot, check that all is mounted ok:
    free (swap enabled?)
    df -h (IPKG partition avaliable?)
  15. Install IPKG:
    mkdir /opt/tmp

    mkdir /opt/tmp/ipkg

    ipkg.sh update

    ipkg.sh install ipkg

    ipkg update
  16. Install IPKG packages eg. nano:
    ipkg install nano
  17. Save all settings and reboot:
    flashfs save && flashfs commit && flashfs enable && reboot

Relevant Links:
ipkg on Asus WL500
Asus wl500g HOWTO
Asus wl500g with USB pen drive HOWTO
Oleg firmware list
Oleg router forum
WL500W-1.9.2.7-10 Oleg firmware

søndag den 14. december 2008

Backup to SMB share

Mount smb share on ubuntu:
sudo smbmount //192.168.0.3/backup /smb/r5nas/backup -o username=yyy,password=xxx,uid=500,gid=500

Backup to smb share using rsync (background job):
sudo nohup rsync -azv /data /smb/r5nas/backup > /home/username/log/smb.log &

Watch the output:
tail -f /home/username/log/smb.log

Unmount smb share on ubuntu:
sudo smbumount sambashare

I had some problems with files being copyed even though they weren't changed. It seems like setting modify-window up helps. Also rsync had problems with setting permissions on the files after copy (see links below). I ended up using this combination:
sudo nohup rsync -rltDvhi --modify-window=3600 /data /smb/r5nas/backup > /home/username/log/smb.log &

As an alternative you can backup files using FTP (see the link below) but you will have to copy everything every time you do a backup.

Relevant links:
smbmount
Recursive copy using FTP
rsync FAQ
rsync chown problem

torsdag den 11. december 2008

Download and Convert Youtube videos to your favorit format

I just found two cool websites that can be used for converting Youtube videos to most video formats. This is helpful when using videos for e.g. Powerpoint presentations..

Download Youtube video to your computer:
http://www.techcrunch.com/get-youtube-movie

Convert the flv-movie to a large number of formats (on mac .mov is supported in Powerpoint):
http://w5.media-convert.com/convert

fredag den 21. november 2008

Automatic conversion of FLAC to MP3

All my CD's are ripped to FLAC. On the plus side I don't loss any quality on the down side the files are still alot bigger than lossy files (eg. mp3). This is no problem when listening to the music in the home but it makes it hard to store the music on portable devices.

I solved this problem by both storing the files in FLAC and in a lossy format (mp3). Everyday a script will be executed to look for modifications in the FLAC file collection and then convert the changes to mp3. The only challenge in this task was to find someone (thanks Robin Bowes) who had done it before and then get it working on my Ubuntu server. It is based on flac2mp3 ticket 96 which supports embeded album art.

Guideline
  1. Install the libraries required by flac2mp3 (lame, perl, flac). See Requirements
  2. Place this directory in /usr/bin/
  3. Edit the convertmusic.sh so it points to your musiccollection and where you want the mp3 files stored
  4. Edit the top section of flac3mp3.pl if for instance you want higher/lower quality of the converted files
  5. Test the script by running:
    /usr/bin/flac2mp3/convertmusic.sh
  6. Setup a cronjob to execute the conversion once a day by executing:
    sudo crontab -e
    Add this line:
    34 12 * * 1-7 /usr/bin/flac2mp3/convertmusic.sh
    And save it (34 12 means that it will be executed 12:34 every day).
  7. Watch it do its job by tailing the log (everything is logged to messages using logger):
    sudo tail -f /var/log/messages
    And
    sudo tail -f /var/log/syslog
Relevant links:
flac2mp3
flac2mp3downloads
flac2mp3 ticket 96 (support for album art)
flac2mp3 ticket 96 download
flac2mp3.pl and album art
crontab guideline
flac
lame
logger

mandag den 17. november 2008

Automatic update of ITunes library

Intro
ITunes does not include functionality to look for new music and dynamically update the music library. All my music is store on a server so I needed an application that could:
  • Synchronize music files from server to clients
  • Update client ITunes libraries with new music files from server
The first bullet was solved easy with rsync, and the other was solved using a combination of Java and Applescript. Deep directory structures are supported (recursion) and already imported files are ignored, so it should only produce heavy load when alot of new files are added.

Limitations
  1. Albumart is not imported automatically using this approach.

Installation guideline
  1. Place the directory syncitunes in /Applications/
  2. Edit the settings in the top of the shell script in syncitunes/scripts/syncITunes.sh (rsync commands can be commented out if you dont need to sync with a server)
  3. Edit the settings in syncitunes/launchd/com.skyandyou.tools.itunes.sync.plist
  4. Copy or move the com.skyandyou.tools.itunes.sync.plist file to /Users/username/Library/LaunchAgents
  5. Add execution of the script to launchd (this will make the script run with the delay defined in com.skyandyou.tools.itunes.sync.plist) by running following command in Terminal:
    launchctl load /Users/username/Library/LaunchAgentscom.skyandyou.tools.itunes.sync.plist
  6. In ITunes, Preferences, Advanced: Change the settings so music wont be moved to the ITunes directory
  7. Test the synchronization and library update by executing this command in Terminal:
    launchctl start com.skyandyou.tools.itunes.sync
    Open an other Terminal and watch all the action in the system.log:
    tail -f /var/log/system.log


Relevant links
rsync
Applescript
Applescript through Java

torsdag den 13. november 2008

Applescript to import images into IPhoto

Applescript for importing image directories into IPhoto:

set workingDir to POSIX path of "/Users/username/Pictures/400D_-_juni_2007"
tell application "iPhoto"
import from workingDir force copy 0
end tell

onsdag den 12. november 2008

Applescript to import music files to iTunes

I was looking around for a applescript which could import files to the iTunes library but couldn't find anything. Maybe it is just too simple...

Add single file:
set musicfile to POSIX file "/Users/username/Music/Michael_W_Smith/Stand/Come_See.mp3" as alias
tell application "iTunes" to add musicfile

You can also add a directory (recurses into subdirectories):
set musicdir to POSIX file "/Users/username/Music" as alias
tell application "iTunes" to add musicdir

It discovers already added files so it wont create duplicates and it will only take noticable time to import when there are new files to import.

søndag den 9. november 2008

Synchronizing IPhoto libraries between two Macs

After spending some time finding a working solutions on how to sync the IPhoto libraries on two computers I gave up and decided to implement my own.

Intro
The solution is based on a server where the clients can sync their images to. This solves the problem with one client trying to sync when the other client is offline. It should be possible to get this running without a server but I have not tried it. The clients are running Leopard and the server is a Via Epia mini-itx running Ubuntu Linux (on the server any OS which is able to act as SSH and rsync server will be fine).

How is it working

The clients will sync their image directories with a directory on the server using rsync. First it executes rsync to receive all changes from the server directory and then it executes rsync to upload all the added images on the client to the server. After this syncing of files is completed a Java application is executed which scans the IPhoto library and the image directory on the client. Pictures which has not already been imported to IPhoto will then be imported using Applescript. All the executed scripts and applications are executed automatically hourly on the clients.

Limitations
  • Only the original files on the clients are syncronized between the clients. This means that any change in IPhoto (e.g. edit image, delete image, rename image..) wont be synchronized.
  • If multiple clients are syncing with the server at the same time there is a risk that only a part of a directory with images will be imported. Next time it will be imported again, a new "roll" with the same name will be created and the remaining images will be imported. IPhoto will ask if the already imported images should be imported again.
  • The image directories may not have any other files than files that can be imported into IPhoto. It will result in errors when importing.
  • A drawback of this solution compared to accessing the images on the server is that the images potentially uses a lot of harddrive space. But then again it is safer to store the images multiple places, the performance is better when working with the images (espcially if the clients are on a wireless network) and the images are accessible also when the clients aren't on the same network as the server.
  • The Java application used for accessing IPhoto relies on Apple not changing the format of the AlbumData.xml file which is a database that keeps track on what is imported and what rolls and albums are created. As a side note you should know that the application uses XPath to read from the file but never writes to it as that could harm data in IPhoto. All writes to IPhoto is done through Applescript.
  • It does not deal well with duplicate images. It will work but every time IPhoto discovers a duplicate it will prompt the user if the duplicate should be imported or ignored. The shell application fdupes can be used to remove duplicate files (on ubuntu just run sudo apt-get install fdupes to install it).
  • Photo Booth images will be synchronized and imported but as Photo Booth is using an unconfigurable naming scheme the clients will most likely overwrite each others files. Photo Booth syncing can be turned off by excluding it in the rsync calls in /scripts/syncIPhoto.sh

Installation guideline
  1. On the server create a user for each client that should be synced (eg. user1 and user2)
  2. Create a directory on the server (eg. /data/pictures/sync). The directory should be put in a group that is accessible for all users created in step 1.
  3. Setup passwordless ssh between the clients and the server (see past article)
  4. Copy the iphotosync application directory to /Applications/ on all the clients
  5. On the clients edit the first section (e.g. username and server ip) of the shell script /Applications/synciphoto/scripts/syncIPhoto.sh
  6. On the clients edit the username in the plist-file /Applications/synciphoto/launchd/com.skyandyou.tools.iphoto.sync.plist
  7. Copy or move the com.skyandyou.tools.iphoto.sync.plist file to /Users/username/Library/LaunchAgents
  8. On the clients add the plist to launchd by executing the following command from Terminal (this will make the synchronization run every hour):
    launchctl load /Users/username/Library/LaunchAgents/com.skyandyou.tools.iphoto.sync.plist
  9. On the clients change the IPhoto settings so images wont be copied to the IPhoto-library (IPhoto/Preferences/Advanced)
  10. Test the synchronization on the client by executing this command in Terminal:
    launchctl start com.skyandyou.tools.iphoto.sync
    Open an other Terminal and watch all the action in the system.log:
    tail -f /var/log/system.log

Relevant Links
launchd
launchctl
rsync
fdupes
launchd information
rsync FAQ

tirsdag den 28. oktober 2008

Recursice Linux commands

Recurse through directories and delete files with a specific text inside the name
find . | grep FILENAMETOSEARCHFOR | xargs rm -r

Recurse through dirs, find files with a certain textstring in the filename and delete them
find . | grep TEXTSTRINGINFILENAME | xargs rm -r

Find all files that has a certain textstring inside the file
find . | xargs grep TEXTSTRINGINSIDEFILE

Recurse though directories and delete all empty directories
find -depth -type d -empty -exec rmdir {} \;

Recurse through directories and force removal of duplicate files
yes 1 | fdupes -rd .

Recurse and list subdirectories (pipe the command to wc -l if you want to count the number of subdirectories)
find directoryname -mindepth 2 -type d

Remember to backup before you execute commands that recurse and delete!

mandag den 27. oktober 2008

sshd_config for ssh without password (using a public key)

It seemed so easy to get ssh working without providing a password (using a public key)...

On you client just execute (password left empty):
ssh-keygen -t dsa
Copy the created id_dsa.pub file to the server:
scp ~/.ssh/id_dsa.pub myuser@222.222.222.222:~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub myuser@222.222.222.222:~/.ssh/authorized_keys2
scp ~/.ssh/id_dsa.pub myuser@222.222.222.222:~/.ssh/id_dsa.pub
Then ssh to the server without using your normal password. Well for me that just did not work! The last three days I have been googling arround for help on the problem and at last I found the solution. It seems like the problem is common but the reasons varies. One of the major errors are permissions on directories. My problem was not related to permissions but to the sshd_config file on the server. As I couldn't find anyone posting a working configuration file here it goes:

/etc/ssh/sshd_config:
# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication yes
# similar for protocol version 2
HostbasedAuthentication yes
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords yes

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM no

AllowTcpForwarding yes

AuthorizedKeysFile /usr/NX/home/nx/.ssh/authorized_keys2

This is the content of ~/.ssh directory on the client:
-rw------- 1 username staff 668 26 Okt 22:08 id_dsa
-rw-r--r-- 1 username staff 635 26 Okt 22:08 id_dsa.pub
-rw------- 1 username staff 786 22 Aug 19:27 known_hosts

This is the permisions of ~/.ssh directory on the server:
drwx------ 5 username staff 170 26 Okt 22:08 .ssh

This is the content of ~/.ssh directory on the server:
-rw------- 1 username username 635 Oct 26 22:09 authorized_keys
-rw------- 1 username username 635 Oct 26 22:09 authorized_keys2
-rw------- 1 username username 635 Oct 26 22:09 id_dsa.pub
-rw------- 1 username username 1326 Oct 26 02:05 known_hosts

This is the permisions of ~/.ssh directory on the server:
drwx------ 2 username username 4096 Oct 26 22:09 .ssh

This is the permisions of the user directory (~) on the server:
drwxr-x--- 4 username username 4096 Nov 2 18:40 username

If this does not work you can change the log level in /etc/ssh/sshd_config:
LogLevel DEBUG3

Restart sshd:
sudo /etc/init.d/ssh restart

And watch the log while you try and log in:
tail -f /var/log/auth.log

By the way. I'm runing Ubuntu 8.04 on the server and OSX Leopard on the client. See also http://www.securityfocus.com/infocus/1810

lørdag den 4. oktober 2008

Windows Vista Home Premium OEM 64 bit on Macbook Pro with VMware Fusion 2.0

I just installed Windows Vista Premium OEM 64 bit through Boot Camp and everything just worked without problems. Well until I tried starting the Boot Camp partition from VMware Fusion 2.0 (116369) and it started complaining about a missing ethernet controller driver and a missing basic system driver.
After installing VMware tools and restarting the virtual image it found new hardware and installed the matching VMware drivers. Only problem was that the ethernet driver wasn't found. I then tried installing it manually but without luck and I finally had to contact VMware support. To my surprise the OEM version of Vista isn't supported in Fusion 2.0 and therefore they could not guarantee that it would work...
Well after some communication back and forth they gave me a very simple solution that solved the problem:

VMware Fusion Team does not recommend using OEM install as Guest OS in VMware Fusion. Please go through the following KB article for the same. This is applicable for all VMware Products.

http://kb.vmware.com/kb/1116

Typically, OEM install CDs are designed to place an operating system onto a PC with the factory configuration and defaults specific to that vendor.

I would still like to outreach and help you out, but we would like to remind you that the following suggestions may or may not help you out, even if the suggested solutions works, it might fail under several unpredictable conditions.

If the recommended solution fails then, I would recommend you to install Guest OS using retail/Volume version of Windows OS in Fusion. However it may be possible to install OEM license version of Windows OS, which may or may not lead to unexpected behavior on your system.

I am suggesting you to change "Ethernet Controller" and then install Ethernet driver by going through the below instructions.


1. Power off Virtual Machine
2. Quit VMware Fusion Application
3. Navigate to Virtual Machine folder

Default path for Virtual Machine: Macintosh HD/Users/User Name/Documents/Virtual Machines/Virtual Machine

4. Select Virtual Machine and right click on Virtual Machine
5. Click on "Show Package Contents"
6. Select and open ".vmx" file using a standard text editor
7. Add following parameter to the configuration file

ethernet0.virtualDev = "e1000"


8. Save the modified Configuration file
9. Power on Virtual Machine and check


After adding above parameter in the .vmx file, please download the driver for Intel "e1000" network adapter for Windows Vista from below URL and install the same.

http://support.intel.com/support/network/sb/cs-006120.htm

Thank you for your continued interest with VMware Fusion. We appreciate your valuable inputs shared with us so far.


As my Vista isn't a real VMware image but a Boot Camp partition, the path for the virtual machine was a little different:
/Users/username/Library/Application Support/VMware Fusion/Virtual Machines/Boot Camp/%2Fdev%2Fdisk0/Boot Camp partition.vmwarevm/Boot Camp partition.vmx

After adding the "e1000-line" the network worked after starting the image and I did not need to install the Intel driver described in the last step.

I must say that I am very satisfied with the highly professional and comitted support from the VMware supporter that handled my issue!


Automatic synchronization of Sony Ericsson K750 with Macbook

This has been on my todo list for some time now.. I got my Macbook a couple of months ago and without any problems I synced iCal and the contacts with my K750 through iSync. Only problem is that iSync doesn't allow you to setup automatic synchronization in a certain time interval or when the phone is linked through Bluetooth.

With the help from the very useful scripts and instructions from Ali Rantakari I managed to get it running. Well the guideline use launchd to allow syncing between intervals but I wanted automatic syncing when the phone is connected through Bluetooth. So here are the steps to get it working:
  1. Download the forceSync script package from http://hasseg.org/blog/?p=136 and unzip them in /Users/username/scripts/forceSyncScript
  2. Make forceSync.bash executable by running "chmod +x forceSync.bash"
  3. Download and install Growl from http://growl.info
  4. The Growl package you download has an application called "growlnotify" in the Extras directory. Copy this application to /usr/bin/
  5. Make growlnotify executable by running "chmod +x growlnotify" in terminal
  6. Download bluelist from http://will.harris.ch/bluelist.gz place it in /usr/bin/
  7. Make bluelist executable by running "chmod +x bluelist" in terminal
  8. Edit the settings section in forceSync.bash so the paths and phone names are set correct
  9. Test the script setting by executing ./forceSync.bash -v
  10. Create a new Applescript in "Script editor" that executes the forceSync.bash script (save it in /Users/username/scripts/forceSyncScript/mySync.scpt):

    do shell script "/Users/username/scripts/forceSyncScript/forceSync.bash"
    tell application "iSync" to quit

  11. Download and install Proximity from http://reduxcomputing.com/proximity.php
  12. Start Proximity and change the settings in Proximity preferences (its the "X" in the osx menu line). In the "Scripts" section point the "In range script" to the sync.scpt script
  13. Turn on Bluetooth on the phone and you should see the iSync starting to sync the devices

Optionally you can download the files from here