Ruiz-Ade.com

Living life so you don’t have to.

Browsing Posts published by Gregory Ruiz-Ade

If you’re anything like me, you have a strong dislike for all the stupidity that surrounds the Adobe Reader (formerly known as Acrobat Reader.)

I won’t go into the details here (though this guy can explain it in great detail), but because I very occasionally need features of Adobe Reader, I still keep it installed on my Mac, while I use Preview for all my other PDF needs. I’ve gone so far as to install the Firefox PDF Plugin for Mac for when I use Firefox, just to avoid Adobe Reader. And, really, there’s no point in Adobe Reader for most cases where you just want to be able to view or print PDF files. Doubly so, since Mac OS X lets you print any document to a PDF file as a default feature of the OS.

There are, though, edge cases where having Adobe Reader installed and available are useful. So I have it installed, but I refuse to use their web plugin. Adobe doesn’t care, though, and will periodically, sometimes randomly, and sometimes even without my consent, re-install the plugin. Even though I’ve told it not to. Adobe Updater, I’m looking at you, here.

Sadly, my solution is heavy-handed. I created a launchd task that will forcibly remove the Adobe Reader plugin from /Library/Internet Plugins whenever it’s created. It’s fast, efficient, and works.

And, as soon as I can figure out the new wordpress theme, I’ll post it here in a legible form

UPDATE: Thanks to Lynne and Chad on Twitter for suggesting the Preserve Code Formatting plugin!

And now, the Launchd config. Save this as:
"/Library/LaunchDaemons/org.unnerving.RemoveAdobeReaderPlugin.plist"


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>org.unnering.RemoveAdobeReaderPlugin</string>
  <key>ProgramArguments</key>
  <array>
    <string>rm</string>
    <string>-rf</string>
    <string>/Library/Internet Plug-Ins/AdobePDFViewer.plugin</string>
  </array>
  <key>QueueDirectories</key>
  <array>
    <string>/Library/Internet Plug-Ins/AdobePDFViewer.plugin</string>
  </array>
  <key>WatchPaths</key>
  <array/>
</dict>
</plist>

Apparently weblogs are not for busy people, who don’t have time to write for them more than once a quarter. It would also help if I perhaps didn’t use a weblog engine that required upgrading every month because of new security holes.

Bleh.

Miranda Lynne was born at 8:58AM, April 23rd, 2009. We’ve been so busy with her (and other things) that I haven’t had time or energy to write a long entry here, which is actually disappointing to me. One must have priorities, though, and baby comes before blogging!

I was trying to help explain to someone on IRC (yes, I know, I know) how HTML wasn’t “programming” while javascript was, and the best I could come up with was:

HTML is like bolting a wing onto your trunk lid. Javascript is like bolting a blower onto your motor. One is just decoration, and the other actually does something to your machine.

I amused myself, so I share it with you. Aren’t you so much happier now?

A true mark of good design is the little details that the user discovers over time that reminds them why they picked your product in the first place.

What made me think of this today was the stop-and-go traffic in the rain. The rain was light enough that I had my wipers on long-delay intermittent. I noticed, at first, that every once in a while the wipers would go an extra time, out of cycle with the pauses. A few more times, and I realized what was happening: if I let off the brake at a full stop, the car would trigger the wipers, regardless of where they were in the intermittent cycle.

The car was purposely ensuring that the windshield was clear when you started moving the car from a dead stop.

This may seem like a small thing, but damn, it’s a nice touch. I have to hand it to the Acura people. It’s been six months now that we’ve had the 2009 TSX, and I’m still telling people how much I love the car.