I was never satisfied with results of "Reduce File Size" Quartz filter when trying to make some PDFs smaller before sending them by e-mail. It made them too small, and the graphics were fuzzy.
I eventually found where these filters are:
I was delighted to find out they're XML files easily editable with TextEdit (or any other text editor). I also found why this particular filter makes quite unusable PDFs, as these parameters were just too low:
Compression Quality 0.0
So I copied this file to my Desktop, and then made two more copies of it, and called them Reduce File Size Good, Better and Best. Then I changed the parameters of each file to 0.25, 0.5 and 0.75 for Compression Quality, and used these three values for ImageSizeMax:
842 (that's A4 at 72dpi)
1684 (A4 at 144dpi)
3508 (A4 at 300dpi)
Finally, I changed the default string for the Name key at the end of each file to reflect the three settings, so they display the names I have given them in the menu.
Then I copied them to a /Library/Filters folder I created (for some reason, ~/Library/Filters doesn't work in Lion) and now when I open a picture or PDF in Preview, I have the option of four different qualities for reduced file sizes.
As an example, I have a JPEG of scanned A4 invoice at 300dpi and it's 1.6MB. When exporting to PDF in reduced size, the file is only 27 KB and it's quite unusable - very fuzzy and hard to read. The Good one is much easier to read, slightly fuzzy and still only 80 KB. Better is 420 KB and clear, and the Best is 600 KB and almost as good as the original even on a laser printer.
[kirkmc adds: Interesting hint. I see this as useful only for creating PDFs from files. If I'm scanning something, and I don't want the file to be too big, I'll either scan it at a lower resolution, or change the resolution in an image editor before making a PDF.]
When your MacBook Pro switches from integrated Intel graphics to the dedicated GPU, power consumption goes up considerably. Which API calls or program attributes trigger this switch is not totally clear, and programs that you least expect might be draining your battery.
Cody Krieger’s free gfxCardStatus will tell you when a switch occurs and lists which programs are causing this. (It also lets you manually toggle the mode.)
I found out, for instance, that EagleFiler and Twitter both triggered the GPU, significantly reducing the time I could run on battery. (EagleFiler's author is investigating this.) Neither program is particularly graphics intensive, so I'd never have suspected that leaving them up (and hidden) would be draining my battery prematurely.
[kirkmc adds: Since I now have a new MacBook Pro with Retina display (wow, that display is nice!), this hint comes at just the right time. This utility has been around a while, yet it's never shown up here as a hint. Jeff Carlson reviewed it for Macworld last year, so you can read more about it there. One thing I can say about the new MacBook Pro is that the battery life is orders of magnitude better than my late 2010 MacBook Air, and with this utility, I'll be able to use it even longer.]
Have you ever been annoyed to find that your Mac won't got to sleep when you tell it to? It turns out that in Mac OS X 10.6 and later, there's a simple way of finding out what's keeping your Mac awake.
Run the following command in your Terminal:
pmset -g assertions
In the first section of output, you'll see the status of two kernel assertions named PreventSystemSleep and PreventUserIdleSystemSleep. An accompanying status of 1 for either of these means that it is currently triggered.
The second section of the output lists the processes which owns any enabled assertions, both by process id (pid) and bundle id. If the verbose bundle id doesn't ring a bell, you can always use ps up <pid>, or look in Activity Monitor, to find the name of the exact command associated with this process.
With the arrival of Google's Chrome web browser on iOS, many are finding this to be a better tool than Safari. Developer Jon Abrams posted a nifty trick to easily open a web page in Chrome. Since iOS doesn't allow you to choose which browser will open links, Safari takes over every time you tap on one. But you can create a bookmarklet for Safari to open the current page in Chrome.
To do this, do the following:
Bookmark this or any web page.
Open Safari's bookmarks, tap on “edit,” and edit the new bookmark.
Rename it to “Open in Chrome” or whatever name you wist.
Delete the bookmark's URL in the bookmark and paste in the above code in its place.
The Activity window can be extremely useful for quickly finding resources for a web page, identifying which ones failed to load, etc. However, with a lot of pages open, it often shows too much information by default, as each web page's disclosure triangle is expanded. This takes longer to view the page and requires you to scroll to find the site you want to check, if you have multiple windows or tabs open. Fortunately, Safari has a setting that controls this behavior, although it isn't accessible via the GUI.
Simply type the following in Terminal to make the Activity window open with all sites collapsed by default:
defaults write com.apple.Safari ActivitiesStartExpanded -boolean NO
Quit and relaunch Safari for this to take effect.
To reverse the setting, simply invert the last argument:
With MobileMe shutting down, many users have thought to download their photos and files. An Apple e-mail that MobileMe subscribers received said, "Download your photos and files. MobileMe ends June 30. Remember to download your Gallery photos, iDisk files, and move your iWeb sites before that date."
If you have iDisk syncing turned on, you may think that the entire contents of your iDisk are on your Mac. This will be in a disk image in the Previous Local iDisks folder on your Desktop, when you turn of iDisk syncing.
In many cases this is true, but you may not realize that some of the folders are aliases. So your local iDisk may not contain all of your files. The following folders may contain content that you want to save:
Backup: holds old backups made with Apple's Backup application.
Groups: if you created a group, you may have content in this folder.
Library: this contains some synced files.
Web: this folder contains some website stuff I published from iWeb, and my own domain, which I hosted on MobileMe.
I manually downloaded the Backup folder as none of these backup archives were on my computer, and I wanted the historic backup files of the old Macs it had backed up.
I also manually downloaded the Web folder. Although I could probably find many of the webpages found in this folder, I would have to look through all Macs I have had over the years.
For some of you, your iDisk this maybe the only place you have some of the files. So check that you have everything from these folders before they disappear for good.
[kirkmc adds: It's true that the iDisk is tricky. It's a good idea to go through everything and copy it, as the poster suggests, just in case you don't have local copies of any of your files. As much as one can complain about MobileMe, I found the iDisk a practical - if slow - tool for exchanging large files with clients. It's a shame that it's going away, and that Apple doesn't provide something similar to Dropbox for such purposes.]
I don't take a lot of photos, and don't use Aperture, but when I stumbled on this Apple tech note, I had a feeling that it might be useful to those who take a lot of pictures.
Apple explains how to use a "unified photo library with iPhoto and Aperture." Setting up the unified library isn't rocket science, but the document lists a number of limitations that are good to know about. If you use both programs, read this document to see how to share a library, and to see what you can and cannot do with each program.
In a conversation on Twitter yesterday, Daniel Jalkut, of Red Sweater Software, asked whether there was a way to find out what entitlements a sandboxed app has. Brian Webster, of Fat Cat Software, shared the solution. Apparently, this command provides the information:
codesign -dvvv --entitlements - /path/to/app
(Replace "/path/to/app" with the path to the application.)
Not being a developer, I don't know exactly what this all means, but to those readers who are developers, this may be useful.
If you have a Retina MacBook Pro, you'll find a new checkbox in the Get Info window for an application: it says "Open in Low Resolution." This box is checked for Pages, for example. Unchecking it cleans up the text enormously. Why would the box be there and why is it checked for iWorks packages? (And is there any harm in unchecking it and getting clearer text?)
[kirkmc adds: Can't test this one, unless someone wants to send me a Retina MacBook Pro... If anyone has insight into the questions at the end of the hint, feel free to comment.]
I needed an automated way to disable/enable iPhoto sharing with ControlPlane. I used GUI scripting in AppleScript to accomplish this task. The most recent version of the script below can be found here.
How to run it: osascript toggle_iphoto_sharing.scpt "disable" "no"
- the first parameter is the status to set sharing to - disable or enable
- the second parameter is whether or not to start iPhoto to make the change
Note: iPhoto must be running for this script to change anything.
tell application "System Events" to (name of processes) contains appName
on run argv
set a_stat to (item 1 of argv)
#set a_stat to "disable"
set start_iphoto to (item 2 of argv)
set do_work to "no"
if not appIsRunning("iPhoto") then
if start_iphoto is equal to "yes" then
set do_work to "yes"
set do_work to "yes"
if do_work is equal to "yes" then
tell application "iPhoto" to activate
tell application "System Events"
tell process "iPhoto"
click menu item 3 of menu "iPhoto" of menu bar 1
click button "Sharing" of tool bar 1 of window 1
if value of checkbox "Share my photos" of group 1 of group 1 of window 1 is equal to 1 then
if a_stat is equal to "disable" then
click checkbox "Share my photos" of group 1 of group 1 of window 1
if a_stat is equal to "enable" then
click checkbox "Share my photos" of group 1 of group 1 of window 1
click button 1 of window 1