3rd party Exchange ActiveSync servers

April 30th, 2010

I’ve recently been looking for a comprehensive list of mail/groupware servers/services that offer Exchange ActiveSync integration, e.g. for the iPhone or Windows Mobile. Since I couldn’t find one, I’m putting together a list myself. (I’m not including Microsoft Exchange Server and all those Hosted Exchange solutions, since they’re pretty obvioius choices.)

Services:
Google Mail using Google Sync: Gmail (free) or own domain (free for up to 50 users)
coming in June: Hotmail
NuevaSync Premium: works with any IMAP mail server ($25/year)

Server software:
Kerio Connect’s ActiveSync Support ($540 for 5 users)
Open-Xchange using OXtender for Business Mobility: ($21.75 / 14.50€ per user)
Scalix using Scalix ActiveSync: ($299 for 10 users)
Zimbra Collaboration Suite using Zimbra Mobile for Smartphones: ($25/$35 per user per year + $500/$1000 per year)

Z-Push (free, appears to with any IMAP server)

If you know any others, please go ahead and add them to the comments, and I’ll add them to this list.

Beejive Transcript Importer for Adium

February 12th, 2010

A few months ago, I wrote a quick and dirty script that goes through iTunes’ iPhone backup, searches for Beejive’s data and converts it to Adium-compatible chat logs. It even imports files and pictures. It does not support timezones and daylight savings time, but other than that, it does a good job. I was initially planning for writing a converter to iChat log format, but iChat’s transcripts basically consists of serialized data stored in plists and is undocumented, so it would be very difficult to implement iChat’s transcript format.

You may download it here. If you find a bug, please do let me know in the comments, but don’t expect I’ll fix it anytime soon ;-) .

Slim down Final Cut Studio’s Media Content using HFS Compression

December 26th, 2009

A full installation of Final Cut Studio 3 with all media content (for Motion, DVD Studio Pro, and Soundtrack Pro Loops) takes up around 40-50 GB of hard drive space.
How about regaining 5-10 GB of precious by enabling HFS compression for these folders? Since HFS compression is completely transparent, there are no adverse effects to expect (other than browsing the content libraries being almost unnoticeably slower).

To start, you’ll need a command-line tool called afsctool which can compress (and, amongst other features, decompress) folders using HFS compression. The command you’ll need to run is e.g. sudo afsctool -c -l -k -v -i -9 /Library/Application\ Support/Final\ Cut\ Studio. This compresses all files the given folder using the highest possible compression, verifies its results, prints out the names of files it is unable to compress, and outputs statistics once it’s done.

Some of the folders I compressed:
/Library/Application Support/Final Cut Studio/ (contains Motion and DVD Studio Pro templates): 22.5% compression savings
/Library/Application Support/LiveType/ (contains Motion’s LiveType fonts): 11.4% compression savings
/Library/Application Support/GarageBand/ (contains GarageBand’s  instruments and learning-to-play stuff): 14.3% compression savings
/Library/Application Support/iDVD/ (contains iDVD’s themes): 19.5% compression savings
/Library/Audio/Apple Loops/ (contains GarageBand’s and Soundtrack Pro’s loops): 4.1%
/Library/Audio/Impulse Responses/ (contains  Soundtrack Pro’s impulse response data): 41.3% compression savings

Looking at the compression savings: everything that contains high-quality video can be compressed by around 20%, while audio which is already heavily compressed only yields around 5%. The most amazing result though are the 40% by which the Impulse Responsed were compressed – apparently, these are uncompressed AIFF audio files and thus ideal for compression.

Obviously, your mileage may vary and I’m not responsible if you compress too much and break your system (I’m sure there is a reason why Apple didn’t compress all system files). However, compressing the iLife and Final Cut Studio media content appears safe, I haven’t noticed any unwanted side-effects and it seems well worth trying if you’d like to regain a few gigabytes.

Laptop Theft Tracking Software for Mac OS X

August 17th, 2009

Over the past 2.5 years or so, I’ve been developing a piece of software that allows tracking a stolen Mac laptop (works for Desktops too, though they are obless likely to get stolen).
Once installed on your Mac, it starts contacting my server in regular intervals to check whether it has been armed through a Web GUI. If it is armed, it starts sending screenshots and iSight captures, as well as network information like internal and external IP and available wireless networks, which you can then provide to the police in order to aid recovery of your Mac. So in that regard, it is very similar to software like e.g. Orbicule’s Undercover.

After 3 major releases of LTT and beta testing on close to 200 computers, I can now say that version 3.0.4 is very stable and runs well on both Tiger and Leopard, has no known bugs and is ready for widespread use. My current server setup can (theoretically) handle around 10000 simultaneously active clients. If you’re interested in testing it or if you would like to give your Mac some additional theft protection, please contact me so that I can set you up with an account to use the service.

Frequently Asked Questions

How secure is LTT?
All communication is done over an SSL-encrypted connection, so it is protected from being spied on and not prone to things like ARP spoofing or DNS poisoning.

How do you prevent unauthorized access to my LTT account, which could potentially be used for spying?
As long as you keep your password secret, there is not a whole lot you need to worry about. However, if somebody were to break into my server, I obviously can’t guarantee for it ;-) .

Why am I not receiving screenshots?
If the screen is asleep, screenshots are apparently not possible – this is not a bug in my software, it’s probably due to the way Apple implemented WindowServer.

Why am I not receiving iSight captures?
Either  the camera is in use by a different program or the laptop is being operated with the clamshell closed.

USB to SATA/IDE adapter

April 5th, 2009

If you often find yourself needing to temporarily connect bare hard drives (2.5″, 3.5″ or 5.25″) to your computer, a USB to SATA/IDE adapter is a nice investment.

A while ago, I bought the Sharkoon DriveLink. The nice thing about it is that it can run 2.5″ hard drives without the power brick. However, it would randomly disappear from the computer, interrupting any file transfers that may have been in progress. I returned it and got a replacement unit that showed the exact same behavior, so I returned it for a refund.

Instead, I bought the Scythe Kama Connect 2. So far, it’s been working like a charm.

Building your own OpenDirectory server on Linux

April 4th, 2009

OpenDirectory is a feature included with Mac OS X Server. Wouldn’t it be nice if you could use it without having to spend hundreds of dollars on a server license? Wouldn’t it be great if you could add it into your existing Linux-based OpenLDAP server? It’s actually quite easy because OpenDirectory is a standard OpenLDAP server with a special Apple schema.

0. Prerequisites
- OpenLDAP server with Samba integration (I’m runnig it on a Ubuntu 8.04 server, using the standard OpenLDAP and Samba packages). I won’t go into the details of how to set this up, there are lots of tutorials around the web on this.
- some kind of LDAP admin tool, I used phpLDAPAdmin
- Mac OS X 10.5 Leopard clients

1. Adding the Apple schema to your OpenDirectory server
It is located in /etc/openldap/schema/apple.schema on any Mac. Copy this file to your OpenLDAP server and add it to your slapd.conf.
You may run into the problem that apple.schema references some samba.schema entries that were deprecated with Samba 3. Specifically, these are acctFlags, pwdLastSet, logonTime, logoffTime, kickoffTime, homeDrive, scriptPath, profilePath, userWorkstations, smbHome, rid and primaryGroupID, so you’ll need to editapple.schema and replace these with their Samba 3 counterparts.
Now, restart the OpenLDAP daemon so it recognizes the changes.

2. Adding some Mac-specific attributes to your LDAP server
Add an ou=macosx branch to your LDAP tree, under which you’ll need to create ou=accesscontrols, ou=augments, ou=automountMap, ou=autoserversetup, ou=certificateauthorities, ou=computer_groups, ou=computer_lists, ou=computers, ou=filemakerservers, ou=locations, ou=machines, ou=maps, ou=mount, ou=neighborhoods, ou=places, ou=preset_computer_groups, ou=preset_computer_lists, ou=preset_computers, ou=preset_groups, ou=preset_users, ou=printers, and ou=resources.
To all your LDAP groups, add the apple-group objectClass. To all your LDAP users, add the apple-user objectClass.

3. Connecting your Mac to the LDAP directory
On your Mac, go into Directory Access and add your LDAP server. Choose OpenDirectory as the server type and adjust the Samba mappings to match your changes from step 1. Here is a plist you can import into Directory Access that already has these mappings corrected: LDAPv3_Unix_Samba3_OD.plist.
If you want your other clients to automatically use this mapping, create a cn=config branch in your LDAP tree and use the Write to Server button in Directory Access.

4. Use Workgroup Manager to set network home folders, managed preferences, …
Now, you can use Workgroup Manager to manage network home folders and managed preferences, just like you would on a Mac server.  You’ll need to authenticate using an LDAP user who has full write privileges to the directory (as set in slapd.conf). The standard cn=admin,dc=example,dc=com user will NOT work.

5. Conclusion
Almost everything works, except for:
- adding new users and group through Workgroup Manager
- solution: unknown
- assigning directory admin privileges to users through Workgroup Manager
- solution: using an OpenLDAP server set up to use cn=config instead of slapd.conf. This will also require going into Directory Access again and adding the OLCBDBConfig, OLCFrontEndConfig, OCGlobalConfig, OLCSchemaConfig and OLCOverlayDynamicID record types back in (they are included in the OpenDirectory mapping, but I deleted them from mine because they only cause error messages on an OpenLDAP server with slapd.conf configuration).

Here are all the web sites that helped me in the process of figuring this out:
http://docs.info.apple.com/article.html?path=ServerAdmin/10.4/en/c6od15.html (this one is especially important because it explains what to do if your LDAP server is not set up for SASL authentication)
http://www.emmes-world.de/mac-afp-homes.html (this one describes a similar setup and was my most important resource)
http://rajeev.name/blog/2006/09/09/integrating-mac-os-x-into-unix-ldap-environment-with-nfs-home-directories/
http://www.netmojo.ca/blog/tag/ldap/
http://www.macdevcenter.com/pub/a/mac/2003/08/26/active_directory.html?page=2

7. Further Information
Since you’re not using Kerberos for authentication, you may want to look at securing your LDAP connections with SSL. Here are some links that talk about it:

http://www.novell.com/coolsolutions/feature/19965.html

http://www.afp548.com/article.php?story=20071203011158936

Running Mac OS X (non-Server) in VMWare Fusion

March 23rd, 2009

VMWare Fusion supports running Mac OS X Leopard Server. But did you know that with a little hacking, you can easily run Leopard non-Server or even Tiger in VMWare Fusion? Here is how to:

Patching VMWare
First of all, you’ll need to patch the Mac OS X VMWare Tools ISO, replacing all occurrences of ServerVersion.plist with SystemVersion.plist inside it. This is the only thing Fusion looks at to determine whether you’re trying to run OS X Server or Client (/System/Library/CoreServices/ServerVersion.plist only exists on OS X Server, while /System/Library/CoreServices/SystemVersion.plist exists on both). Since Fusion uses some signature checking, you’ll need to re-sign all VMWare Tools ISOs with your own certificate, otherwise Fusion will refuse to run.
The German computer magazine c’t  (issue 24/2008, page 266) figured all of this out and even wrote a small tool (MultiMac Helper) to automate the process.

Installing Leopard
Installing Leopard is very straight-forward – just pop in your Leopard retail DVD and create a new VM in Fusion (selecting Mac OS X 10.5 Server 64-bit). Now proceed as if you were installing Leopard Server in Fusion. After completing the installation, you can even install VMWare Tools and they’ll run just fine.

Installing Tiger
Installing Tiger is a bit more difficult. Since there are no retail DVDs of Tiger for Intel (it was exclusively shipped with new Macs, and those machine-specific discs refuse to install on anything but the Mac model they came with), you cannot install it by booting it in a VM. So what you’ll need to do is: install Tiger onto an external HD and make an image of it. Then attach a second virtual hard drive to your Leopard VM and from inside the VM, clone the image to the second virtual hard drive. Now remove that virtual hard drive from your Leopard VM and attach it to your Tiger VM. It will boot up just fine. However, VMWare Tools will not work in Tiger.