Archive for Mac OS

The Manta TR1 & Mira

Just as with cars, I tend to use computers until they die. So laptop upgrades for me are generally times of wonder and amazement as my new computers represent, to me, some six or seven years of technological advancement.

Such was the case this summer, when I replaced my 2006 MacBook Pro with a new 2013 model with a Retina display and a solid state hard drive. And like with every other upgrade, I love everything about the new machine.

Until, that is, I went to give a Keynote presentation for a class. I consider myself something of a guru with Keynote, with participants coming up afterward to ask not only about the topic of the presentation but about the presentation itself. Of course, Keynote itself works beautifully, and the Retina display makes everything look absolutely stunning, but with the new model, Apple decided — no doubt as a space-saving measure for the increasingly compact designs — to omit the infrared port.

The reason this was a problem is because I used an Apple Remote to control my Keynote presentations, and it worked beautifully. The simple design of the Apple Remote includes just what I need: controls for the next and previous slide, and control of the system volume. The remote is compact and slips easily in my pocket or computer bag, and the older plastic models and the new brushed steel models are interchangeable and work equally well.

Apple doesn’t generally leave its users in the lurch, however, and the official replacement was Apple’s own Keynote Remote app for iOS. I do have an iPhone, and this app is nicely designed, but it depends on a Wifi signal, and I have never been able to make it work consistently. (Part of the issue is wifi availability, but even the workaround for that — setting up an ad hoc wifi network between the laptop and iPhone — was extremely unreliable in my testing.) If there were a way to make the app work via Bluetooth, I think it would be more reliable, but unfortunately it is not designed to do so.

There are several presentation remotes on the market, and though some are nicely designed, none of the reasonably-priced models I was looking at included the important feature of volume control. For presentations, I took to using my Apple Magic Mouse as a clicker, which worked well for advancing through slides (though I had to be careful not to click it inadvertently) but which had no volume control.

Manta TR-1

The Manta TR-1 USB Receiver from Twisted Melon.

Finally I happened upon Twisted Melon, the developers of Mira, a software utility for customizing how your computer responds to the Apple Remote. In addition to their software, they sell an external infrared receiver, the Manta TR1. Combined with Mira, the Manta TR1 appeared to be able to allow me to use my familiar Apple Remote with my new, non-IR equipped laptop. I purchased their bundle (the Manta TR1 and a license for Mira) and the hardware took about a week to arrive.

I am delighted to report that the Manta TR1 worked exactly as advertised, and exactly as I’d hoped it would. I had been a little nervous because I didn’t see any explicit mention of the product working with the latest hardware and operating system (OS X Mavericks, in my case), but there are no incompatibilities as near as I can tell. The device isn’t much bigger than a 9-volt battery, and ships with a standard USB ‘Mini-B’ cable to connect it to the computer. All I needed to do was connect the device and install the software, which appears as a System Preferences pane. The standard Keynote controls were already set up by default (as well as instructions for a host of other applications), and so after opening Keynote I was able to control both slides and volume with my Apple Remote, just as I had before.

Well, actually a little better than before: the Manta TR1 has a small red light to give visual confirmation that the signal was received, which I find especially useful. Having the infrared port in a separate unit allows me to position is somewhere more accessible, though the device is able to detect a signal from several yards away, regardless of position or orientation.

Mira and Manta are available from Twisted Melon at their website, twistedmelon.com. At the time of writing, the Mira/Manta TR1 bundle, normally $40, is available for $29.99.

UPDATE (January 30, 2016): I’m now running El Capitan (specifically 10.11.2), and after upgrading Mira to the latest version both Mira and Manta TR1 continue to work flawlessly. Well, with one interesting exception… presenting this week at the Duke Energy Convention Center in Cincinnati, OH, in lobby areas and meeting rooms there must be something emitting infrared light at the exact same frequency as the Apple Remote, because the LED on the Manta TR1 indicates that it’s constantly picking up signal, and it prevents the Apple Remote from being detected. (I would assume that this would be an issue with any IR receiver, not just the Manta TR1.) Easiest solution was to place the Manta TR1 somewhere where it’s shielded from the overhead lights (which seem to be the source of the unwanted IR light); the Apple Remote signal still seems to get through just fine.

Dummies Guide to Darwin Calendar Server

I just realized a long-time dream of synchronizing iCal across multiple computers without a .Mac account, and so I thought I’d share the joy with anyone else who is interested.

Mac OS X 10.5 Leopard includes a new version of iCal that can connect to a CalDAV server, and so it’s simply a matter of setting up a CalDAV server. Leopard Server includes iCal Server, which I’m sure works just fine, but we haven’t upgraded our servers, and I don’t know when (or if) we’re planning to do so. However, iCal Server is available in an open source version, Darwin Calendar Server, which doesn’t include the Graphic Interface that I’m sure iCal Server includes.
Turns out that Darwin Calendar Server can be installed onto a Mac running Leopard (not necessarily Leopard Server) by a somewhat ordinary Joe like me without too much fuss. Here’s the skinny:

1. The first step is downloading the Calendar Server source, which is actually accomplished using Subversion, which is installed with the Leopard Developer Tools. (You can also get Subversion elsewhere, as mentioned on Mac OS Forge.) Once you have Subversion installed, open the Terminal, and type the following:

svn checkout http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk /Library/CalendarServer

This can apparently be done using XCode (also part of Leopard’s Developer Tools) but it wasn’t immediately obvious to me, since I’m not familiar with XCode.


2. Building the application from the source code is mercifully easy: move to the CalendarServer directory (cd /Library/CalendarServer) and run the following:
./run -s
The -s flag causes it to download the necessary supporting software and set up the service; this takes a little while, but it is verbose in its description, so it will be obvious when the process is complete.

3. Next, you’ll need to create a configuration file, which involves making a copy of the included configuration template:
cp ./conf/caldavd-test.plist ./conf/caldavd-dev.plist

4. This is the part that I was stuck on for a while: in order to access the server from another computer (which is the whole point of doing this), you need to edit this configuration file you just created (/Library/CalendarServer/conf/caldavd-dev.plist). In that file, find the BindAddresses entry and change the 127.0.0.1 to the IP address or DNS name of the machine you’re on. You can do this with Leopard’s Property List Editor, as shown below.
5. Next, read through the QuickStart page on Mac OS Forge regarding directory services… I just used the XMLDirectoryService, which is on by default; you might want to edit /Library/CalendarServer/conf/accounts-test.xml to add a login for yourself.

6. You can then test things out by running the server:

./run
Open iCal and go to the Accounts pane of the Preferences window. Add a new account and fill out the login information you added to the accounts-test.xml file. Click the disclosure arrow, and enter your server address followed by “:8008″ (i.e., myserver.com:8008) and leave the Kerberos checkbox unchecked. It should connect to the server and supply you with a default calendar (more can be added using the File > New Calendar submenu).

7. If things are working, you can quit the server by pressing Control-C in the terminal and run it as a background process by entering the following:

./run -d
This will run fine, but you’d have to remember to run it each time you restart the machine, so it’s better to make a startup item. There is a bit of a trick to this, because it requires fixing a little bug in the “run” script, but here’s how to do it:

8. To simplify the process of creating a launchd script (which is what will launch the server at system startup for you), download the latest OS X build of Lingon. Once you have downloaded it, open it up.

9. Click the “New” button to create a new service, and select “User Daemon” in the dialog that appears. Then enter the following information:
Name: com.apple.calendarserver
What: /Library/CalendarServer/run -d
When: Select “Run it when it is loaded by the system (at startup or login)”

10. Click “Save.” Now for the nitty-gritty part:

11. Navigate to /Library/CalendarServer/ and make a backup copy of the “run” script. Open the original in a text editor (I used TextEdit) and search for these lines (they’re toward the bottom of the script):
case “${USER}” in
  wsanchez)
    proto=”svn+ssh”;
    ;;
  *)
  proto=”svn”;
    ;;
esac;
svn_uri=”${proto}://svn.twistedmatrix.com/svn/Twisted/branches/dav-acl-1608-4″;
svn_get “Twisted” “${twisted}” “${svn_uri}” 19773;

Remove the necessary lines so that only these remain:
proto=”svn”;
svn_uri=”${proto}://svn.twistedmatrix.com/svn/Twisted/branches/dav-acl-1608-4″;
svn_get “Twisted” “${twisted}” “${svn_uri}” 19773;
Then find these:
case “${USER}” in

  cyrusdaboo)
    base=”svn+ssh://cdaboo@svn.osafoundation.org/svn”;
    ;;
  *)
  base=”http://svn.osafoundation.org”;
    ;;
esac;
svn_uri=”${base}/vobject/branches/users/cdaboo/vavailability-173″;
svn_get “vObject” “${vobject}” “${svn_uri}” 178;
put_setuptools “${vobject}”;


And replace them with these:

base=”http://svn.osafoundation.org”;
svn_uri=”${base}/vobject/branches/users/cdaboo/vavailability-173″;
svn_get “vObject” “${vobject}” “${svn_uri}” 178;
put_setuptools “${vobject}”;

12. Save your modified script and restart. iCal should now see the server running in the background.
This setup seems to have worked for me, and I’ve moved all my events from my regular iCal calendars into calendars that reside on my server (which can be done by dragging them to the new calendar in the Calendar list on the left). To do items are also managed this way, and the CalDAV server even synchronizes colors of calendars from machine to machine.