Launch Services did it!

For quite a while, I’ve noticed an odd pattern whenever I open Activity Monitor on my Mac – something was writing to my disk every 2 or 3 seconds, at a peak rate of 4.5MB/second. Over time, the total data written would climb into the terabytes (far exceeding the total data read from the disk) – but my free disk space wouldn’t diminish. Looking at the system logs didn’t enlighten me, and nothing was obvious in Activity Monitor. I’d shake my head and ignore it.

This morning, I noticed the pattern again, right after rebooting the system, and I decided to try to find out what was causing the I/O.

First step: ask Google. In particular, I asked it what process is doing i/o mac and found many potentially-useful pages. The one I chose to pursue was an Ask Different question: Which process is periodically writing to the disk? because the screenshot in the question matched mine almost exactly.

The accepted answer to the question led me to try iotop(1), but I kept getting errors from DTrace (even though I ran it as root). So I tried what looked like the next best answer, using fs_usage(1):

sudo fs_usage -w -f filesys -e grep  \
   | grep -i ' write ' > /tmp/iouse.txt

and then looking at iouse.txt showed me that a process named lssave was doing a ton of I/O. A quick Google for lssave led me to this Stack Overflow page, which led me to this macosxhints discussion, which made it clear that I needed to rebuild my Launch Services database. I used Onyx to do the job, and voilà – no drumbeat of writes!

Doing without

I had an interesting experience at Next Step Toastmasters today. I had signed myself up to “Sell a Product”, which was supposed to be a 10–12 minute talk. I decided to sell a real product, 1Password, which solves real problems for me.

I verified that a projector would be available, and I built a copiously-illustrated PowerPoint deck, even including a short screencast demonstrating how to log in to the Toastmasters member site using 1Password. I was set.

Until I arrived at the meeting, when I found out that getting a projector and screen from the venue would cost the club $150 (yes, we meet in a hotel!), and that it wasn’t going to happen. I decided to press on anyway, and got up to speak as scheduled.

Needless to say, I had to rework my talk substantially; instead of relying on slides, I had to paint pictures in the minds of my audience. That meant that I had to use magic words like “imagine” and “consider”, instead of showing them exactly what I meant.

And then, long before I expected it, the timer showed the green light, indicating I only had two minutes to go. I sped up my delivery and got through my critical points, leaving the audience with a call to action just as my time expired. I left the stage to applause (as expected – everyone gets applause at a Toastmasters’ meeting!) and sat down.

At the break a few minutes later, the timer apologized to me; he hadn’t noticed the “10–12 minutes” on the agenda and had given me the green light in accordance with the timing for a normal speech, at 5 minutes, not 10.

I was surprised when my evaluator said that I’d met all of my objectives, and that I’d convinced him to buy 1Password, even though he didn’t know he had a password problem before my speech! And several other people told me they were going to buy it, too. One person even praised me for spending so much of my time looking at the problem rather than focusing on the product I was selling; she said it made me more effective and more believable.

The time I spent putting together the PowerPoint presentation wasn’t wasted; it forced me to think through my material. But I was better off not being able to use it – that forced me to connect with my audience instead of hiding in front of my slides. And doing without 5 minutes of my time slot made me step up my game in real time – though if I’d been using my slides, I would have been in trouble.

Next time, though, I wouldn’t mind if things went according to plan.