Showing posts with label Mac. Show all posts
Showing posts with label Mac. Show all posts

Sunday, May 09, 2010

My iPhoto Workflow

As mentioned previously, I've just switched back to iPhoto after a few months using Aperture 3. One of the reasons for doing this was that I found the workflow in iPhoto to be as good as, if not better than, the most-recommended workflow in Aperture.

I promised to explain my workflow in iPhoto, so here it is. I hope someone finds this useful.

Step 1: Import

iPhoto's import process is pretty smooth, so this step doesn't need much comment. When you plug in your memory card it jumps to the import screen right away and starts bringing up previews of the contents of the card.

I usually don't bother to type the event name at import time, as there are often multiple events on my card, but I always choose Autosplit events after importing and Hide photos already imported. My events settings are shown below, with Autosplit set to Eight-hour gaps. I find this is a good middle-ground setting to use, but this is really a personal preference and doesn't really affect the workflow much.

Events Settings

I always use the Import All... button to get everything off the card quickly. You don't want to mess around with picking out images while they are still on the card. Just get them onto your hard disk and have iPhoto wipe the card when prompted. (Note: if you are really paranoid, you can kick off a Time Machine backup when iPhoto shows the Delete photos from your card? prompt.)

Step 2: Event Merging & Splitting

The first thing I do once I have the images in iPhoto is clean up the boundaries between events. Usually, with the 8-hour gap setting above, iPhoto gets it mostly right, but depending on the shoot it might split them up too finely or clump multiple things together. If the photos are from a multiple-day trip somewhere, I prefer not to put them all together into a single event, but rather have each event in iPhoto represent an activity or episode of the trip. (Note: one advantage Aperture has here is the ability to group events into folders. In iPhoto you just have to rely on the chronological proximity of the events to keep them together. However, I don't find this to be a problem at all.)

The best way to do this is on the Last Import view that is shown automatically after importing. Make sure you have event titles displayed (View > Event Titles). Just use drag-and-drop to merge events, and the Split button at the bottom of the screen to split them. Give the events titles – preferably the title you would use to publish a Set to Flickr.

The rest of the workflow is per-event, which is useful for breaking the work of processing images into manageable chunks.

Step 3: First Pass - Picks and Garbage

This step is equivalent to the "stack sorting" and "rejection" steps of the Aperture workflow, rolled into one.

I select the first image in the event, and hit the Space bar to blow it up to fill the iPhoto window. Then, I simply use the Left/Right arrow keys to quickly flick through the images, and the Delete key to "reject" unwanted ones.

This works great for "stack sorting", because it is very easy to find a sequence of shots that are very similar (e.g. where I have been trigger happy with the high-speed shutter on my 50D). I love being able to quickly flick back and forth between shots in-place to decide which is better. I find that comparing images side-by-side makes this harder, but by flicking between shots in full-screen lets me keep my eyes on the focus point, or notice subtle differences.

The reason I delete the non-picks is because I never want to see them again. If I make a mistake, I can easily fish them out of Trash. Better yet, when I finish processing a session I can empty the Trash and recover tons of disk space.

Apart from non-picks, I also use this step to get rid of "rejects", i.e. photographic failures like closed eyes, unrecoverably wrong exposures, out-of-focus shots, and accidental shots.

The key with this step is ruthless efficiency. I want to cut down the number of images as early as possible, so I try to rip through them quickly and just delete as much as I can stomach.

iPhoto just wraps around when it gets to the end of the event, so keep an eye out for that to avoid going through them all again. You can always hit the Space bar to quickly go back to thumbnail view to check where you are.

Step 4: Second Pass - Name Faces

The Faces feature in iPhoto '09 is pretty good but not 100% automatic, so you need to actually confirm the faces it finds. Trying to do this retrospectively over an entire photo library is extremely painful, and the lack of a "show me all the unnamed faces" feature makes it even worse. So I like to get this done on a per-event basis as I add them to my library.

In thumbnail view, select all images with Cmd-A and choose Detect Missing Faces from the right-click popup menu. Watch the little spinning arrows next to the Faces folder, and when it stops, click the Name button at the bottom to go into face naming mode.

I like to use the keyboard as much as possible here. You can press Tab to move through all the faces found in each photo, and type or accept iPhoto's guesses with Enter. Unfortunately I haven't found a keyboard way to remove faces iPhoto has detected; you have to use the mouse for those. And of course you need the mouse to use Add Missing Face.

Step 5: Third Pass - Editing and Losers

At this point, I have weeded out all the photos that will never make the final cut, and iPhoto now knows where all the faces are (which is important, as we'll see). Now we are down to serious photography, so it's time to go full-screen (Cmd-Opt-F) and make use of that nice big shiny Mac monitor. (It might be a good idea to lower the ambient light in the room to minimise reflections on that nice big shiny Mac monitor, too...) At full-screen, this is the biggest the photos are ever likely to be displayed, so if they look good here, they'll probably look good everywhere.

The objective of this step is to make photographic adjustments, and decide the final cut. iPhoto's full-screen mode is its edit mode. I look at each image, make adjustments if needed using the editing tools, and decide if it's a winner or a loser. If it's a loser, I use Cmd-L to flag it as "hidden", which removes it from view and goes to the next image. (Note: if iPhoto doesn't move to the next image when you hit Cmd-L, you probably have it set to display hidden photos. Use Cmd-Shift-H to turn this off.)

A few tips for making adjustments:

  • If you shoot in RAW (you should if you can), you can recover a tiny bit of detail from washed-out areas by holding Option when using the Adjustments window. The Exposure slider changes to a Recovery slider.
  • The magic wand Enhance button is pretty damn good considering the difficulty of its job. I often use it as my only edit, or at least as an excellent starting point. It is particularly good at finding the correct white balance.
  • Having all the faces identified is a big help for editing, since photos containing faces automatically have the Avoid saturating the skin tones option checked.
  • Cropping is often a great edit. iPhoto's cropping tool includes the 3x3 grid so you can find those "rule-of-thirds" sweet spots. But don't crop too much, because obviously this will reduce the resolution of your image.

I try not to make too many edits, because it reduces overall image quality (no matter what tool you use), and as a general philosophy I think it's better to try to get good shots to begin with. If I find a photo is still not satisfactory after 3 or 4 edits, I usually give up on it and mark it as a loser.

Update: As pointed out in Larry's comment below, it is important to note that editing doesn't affect the quality of the original image at all. You can always revert to the original if you mess up. The point I was trying to make here is that trying to squeeze too much out of a photo with edits can impact the output image quality.

Step 6: Pick of the Shoot

By this time, I usually have a favourite shot in the event, or at least a couple of candidates. I go back to thumbnail view, maybe preview them with Space if I need, and choose my overall best shot. I make it the "key photo" of the event by right-clicking and choosing Make Key Photo.

The nice thing about this is it means my Events view is automatically a single view of just my best shots.

Step 7: Places

I don't usually bother to get my places down to exact coordinates, so at this point I finish off the event by going back to the Events view and clicking the little "i" icon in the corner of the event tile to set a location for the entire event. This will apply to all the photos inside.

Step 8: Publish & Share

As I've noted before, it's important to get your photos polished and put them out there as soon as possible after the shoot. Personal photos are like fruit; they are much better fresh.

Since iPhoto has built-in ability to share on MobileMe, Facebook and Flickr, and it can even keep the online albums up-to-date automatically, I tend to just publish to all three. In a way, it's like having three online backups of all my photos in addition to my Time Machine – that's pretty safe!

I also like to create & purchase photo books from Apple if I want to keep the photos out on my coffee table for visitors, or send a copy as a gift to people who were on the trip with me. This is especially suited to non-technical family members.

You could even make a slideshow and export it as a movie for iPhone, MobileMe, YouTube, or a DVD. Whatever it takes to get the photos out into the world where they will actually be seen. After all, that's the point isn't it?

OK that's it! Repeat steps 3 to 8 for each event.

Ratings

Although iPhoto has the same 5-star rating system as Aperture, I find I don't really need them. The rating system most Aperture users recommend maps to my iPhoto workflow as follows.

  • × (rejected; something photographically wrong) = Trash
  • Non-pick of stack = Trash
  • ★ (technically OK) = Hidden
  • ★★ (might be OK with processing) = Hidden
  • ★★★ (Flickr-worthy) = Not hidden
  • ★★★★ (pick of the shoot) = Key Photo of event
  • ★★★★★ (one of all-time best) = "Best Shots" album

I have an album set up called "Best Shots", where I put my all-time best pictures. I don't use Albums for anything but this, as I find Events have pretty much replaced them functionally.

So there you have it – that's my iPhoto workflow. I hope you find this helpful. Let me know what you think in the comments.

Friday, May 07, 2010

Going Back to iPhoto... Sorry Aperture

back2iPhoto.png

I wanted to love Aperture 3. I really tried to love it. But after giving it a very decent chance, I have to say it hasn't floated my boat. That is to say, it hasn't offered a significant value proposition over iPhoto – certainly not ~$200 worth.

Aperture 3 was basically a catch-up to iPhoto '09. It improves slightly on the Faces and Places features that iPhoto '09 introduced, but the improvements are small UI changes which would be – and probably will be – easily adopted in iPhoto '10 when it comes out. But I can't shake the feeling that this is lipstick on the pig. Aperture 3 looks gorgeous, like a true Apple UI. But it can't match the intuitiveness and minimalism of iPhoto '09.

Maybe I'm missing something important, but the main advantages Aperture 3 offers over iPhoto '09 seem to boil down to the following:

  1. Stacks
  2. Editing
  3. Workflow
  4. Um....

Stacks

This is a nice workflow feature for the first pass over a shoot when you get home. It is especially useful if, like me, you like to set the camera to rapid-fire and hold down the shutter button.

But unfortunately the UI for stacks is very finicky, and the end result is I have huge numbers of photos on my hard drive that I don't and will never want.

The equivalent in iPhoto is really simple. All I do is use the space bar to preview the image at maximum size, and use the left & right arrow keys to compare them, and just delete the non-pick-worthy ones. They go to iPhoto's Trash folder, so if I make a mistake I can easily undo with a simple Cmd-Z.

Editing

Without a doubt, Aperture 3 is a fantastic photo editing tool. The sheer number of adjustments and controls available is incredible, and the UI for applying them is genius. I love the way they can be added and removed, previewed, brushed in & out and feathered, the edge-awareness, batch editing, etc. Just brilliant.

But in reality, when I come home from an overseas trip with 2,000+ images to process, I can't realistically spend a lot of time fiddling and tweaking the photos. Usually, if it's not a good shot straight off the camera, it goes in the bin. I also find that the quality of photos generally declines as you play with them. The bottom line is: If it's a bad photo to begin with, no amount of editing will make it a good photo.

But for what it costs (nothing), iPhoto is no slouch at editing either. If you have a good photo to begin with, iPhoto gets the job done extremely well.

One often-cited advantage of Aperture 3's editing is that it is non-destructive, i.e. the original "master" photo stays as-is, and all the edits are stored as tiny metadata and applied dynamically every time you view or export the image. This is certainly elegant, but the argument that it saves disk space is ridiculous when you consider that behind every stack there are photos you will never use, and behind the default "Unrated or better" view are hundreds of "Rejected" photos you never even see, all stored on your hard disk. The benefit of iPhoto's approach is that it's very fast to view and export.

Given that I went and paid for the damn thing, I'll keep Aperture 3 around for the occasional special editing task.

Workflow

I don't really see a workflow emerging from Aperture 3 - it is just a tool; you still need to come up with your own workflow that uses it. I had a pretty smooth workflow in iPhoto (perhaps the subject of another post) which worked just fine – in fact it was as good if not better than the most commonly recommended workflow in Aperture.

But the most infuriating things about Aperture's workflow are the beginning and the end.

The import process in Aperture is intensely unsatisfactory. In iPhoto, you plug in your card or camera, and it immediately recognises it and displays the import screen. In Aperture, there are a lot more clicks.

After the import, iPhoto asks you if you want to delete the photos from the card. So does Aperture, but for some reason it asks you twice, and then it doesn't even seem to work – every time the card is ejected before it is wiped clean.

In iPhoto, once you've done an import, you're done. For some reason, Aperture spends ages "Importing" the photos after you've pulled them off the card. And while this is happening, the performance of the application – no, the whole computer – suffers noticeably.

But much worse than import in Aperture is how you actually use the photos for something useful after processing them. Aperture 3 inherited the Flickr, Facebook and MobileMe support from iPhoto '09, and it's basically the same, but iPhoto remembers what you've uploaded and you can easily control the online albums from right within iPhoto.

iPhoto has a very fast file export as well, probably due to the pre-rendered edited copies of each photo that it has; but Aperture seems to take forever to export images.

The most annoying thing of all is the integration with the rest of the Apple universe. iPhone (and presumably iPad) syncing is fantastic with iPhoto, but pretty much sucks balls with Aperture. All other applications on the Mac know how to get photos from iPhoto, but not Aperture. Even the Mac screensaver doesn't seem to know how to use the filters in Aperture.

Um....

I'm sure there are a lot of other features in Aperture that I've overlooked and/or not discovered in my 3 months of usage. But if those features are so great, why were they not discoverable? I watched every inspiring introduction video on Apple's website...

Maybe Apple isn't Good at Pro?

I can see how Aperture might have made sense before iLife '09, especially for those who have truly huge libraries and needed a way to organise them, but with the tiny amount of effort it takes to use Faces and (to a lesser extent) Places in iPhoto, there really is no rational reason I can think of to do any manual organising anymore.

I had a similar, if not more extreme, reaction to Final Cut Express vs. iMovie. I'm starting to think that while Apple excels at casual, consumer-level software design, they are not so good at the professional stuff. In the case of Final Cut, it was patently obvious that there is a backward compatibility problem: (Probably) thousands of professionals make their living with Final Cut, so Apple can't afford to mess up their workflows by changing the UI, even if it is a huge improvement. Perhaps the same is true for Aperture.

iLife apps don't have that problem, so both iPhoto and iMovie got major changes in '08 and '09, and are now much, much better as a result.

And now we are seeing some seriously functional stuff on iPad... I am getting the impression that Apple's special talent is to provide all the functionality in a simple, intuitive, discoverably deep UI experience, which can and should render obsolete the need for "Pro" applications.

Sunday, January 11, 2009

Visually find what's using up space with Grand Perspective

I heard about this great open source app called Grand Perspective (Mac only) for quickly and visually finding what files are using up the most space on your hard drive. It's simple, and does what it says. Here's a screenshot of the scan I just did on my root folder:

At work I've been using more and more into this idea of using visual techniques to analyse complex data, and this is a great example.

The problem with statistics is that unless you are very well versed in the discipline, it is hard to use them correctly, and even harder to explain your findings to others. But with clever visual representations of data, suddenly important patterns just seem to jump out. I think this is because the human brain is basically an incredibly advanced pattern recognition engine.

As I do more and more analysis this way, it seems like using computers to attempt to extract important facts out of data is a stupid waste of time. It's much more efficient and effective to use the computer to do the grunt work of presenting the data visually, and your brain to do the analysis.

Thursday, August 07, 2008

AppleScript to generate iCal events from email

I just figured out a way to get my work calendar copied onto my iPhone! Yay!!

A bit of background first:

My company doesn't have Exchange, or any other real "groupware". For email, there's just a simple POP server (uuurgh!) and for calendar, they have a custom-built intranet application (huh?!).

The intranet calendar system has a function to send an automatic email alert whenever somebody books an appointment with me in my calendar. The email goes to my work email account, but I have configured an Outlook rule to automatically forward it to my home email address.

When it arrives at my Mac at home (which is always on), I have a Rule in Mail.app which runs the below AppleScript. The script parses the contents of the email, and creates a new event in iCal.

iCal syncs with MobileMe, which in turn syncs with my iPhone. Hooray!!

I haven't used this in anger yet, so I'll be trying it out for the first time tomorrow.

Known limitations:

  • It's highly customised to the format of the emails I get from the intranet calendar system.
  • It doesn't automatically handle recurring events. The first event will be registered, but I have to set the recurring settings myself.
  • It doesn't handle updates or cancellations of events. If an event is moved, it will simply register it again at the new date/time. The old one will still be there.
I'm yet to discover just how long it takes for a new event to finally show up on my iPhone, but based on experience with MobileMe "push", I'm expecting at least a 15~20 minute delay.

How to install:
  1. Launch the application Script Editor and copy the code below.
  2. Save the script somewhere. I saved it in my Documents folder as "MailToCalendar".
  3. Open Mail and select Mail > Preferences... from the menu bar.
  4. Under Rules, click Add Rule.
  5. Give the rule a name (mine is "MailToCalendar").
  6. Create the conditions to recognise the alert emails (mine is Subject Contains "スケジュール予約状況案内").
  7. Add the actions Delete Message, Mark as Read, and Run AppleScript (pointing to the location of the AppleScript you saved).
  8. Click OK. That's it.
Many thanks to AK who gave me a sample AppleScript to get started with! :-)
(*
Make an iCal event from an email
AK  IT Carlow Ireland May 2005
and Will Hains Tokyo August 2008
*)

 

using terms from application "Mail" on perform mail action with messages MessageList for rule theRule -- say "Starting MailToCalendar" set OldDelim to AppleScript's text item delimiters

tell application "Mail" set ThisOne to item 1 of MessageList set TheDetails to content of ThisOne end tell --Mail

set AppleScript's text item delimiters to {"\n"} set TheDetails to text items of TheDetails set TheTopic to "" set TheStart to current date set TheEnd to current date set ThePlace to "" set TheDescription to ""

repeat with ThisDetail in TheDetails set AppleScript's text item delimiters to {"\n"} try -- find the date if "日付:" is in text item 1 of ThisDetail then set AppleScript's text item delimiters to {":"} set TheDateTimeRange to text item 2 of ThisDetail

set AppleScript's text item delimiters to {"-"} set TheStartDateTime to text item 1 of TheDateTimeRange set TheEndDateTime to text item 2 of TheDateTimeRange

set AppleScript's text item delimiters to {" "} set TheStartDate to text item 1 of TheStartDateTime set TheStartTime to text item 2 of TheStartDateTime set TheEndDate to text item 1 of TheEndDateTime set TheEndTime to text item 2 of TheEndDateTime

set AppleScript's text item delimiters to {"/"} set year of TheStart to text item 1 of TheStartDate set month of TheStart to text item 2 of TheStartDate set day of TheStart to text item 3 of TheStartDate set year of TheEnd to text item 1 of TheEndDate set month of TheEnd to text item 2 of TheEndDate set day of TheEnd to text item 3 of TheEndDate

set AppleScript's text item delimiters to {":"} set time of TheStart to (text item 1 of TheStartTime) * hours + (text item 2 of TheStartTime) * minutes set time of TheEnd to (text item 1 of TheEndTime) * hours + (text item 2 of TheEndTime) * minutes

-- say "the start is " & TheStart -- say "the end is " & TheEnd end if --Date

-- find the place if "利用設備:" is in text item 1 of ThisDetail then set AppleScript's text item delimiters to {":"} set TheMeetingRoom to text item 2 of ThisDetail set AppleScript's text item delimiters to {"会議室"} set ThePlace to text item 1 of TheMeetingRoom -- say "place is " & ThePlace end if --Place

-- find the topic if "予定:" is in text item 1 of ThisDetail then set AppleScript's text item delimiters to {":"} set TheTopic to text item 2 of ThisDetail -- say "the topic is " & TheTopic end if --Title

-- find the description if "内容:" is in text item 1 of ThisDetail then set AppleScript's text item delimiters to {":"} set TheDescription to text item 2 of ThisDetail -- say "the description is " & TheDescription end if --Description

on error errStr number errorNumber say "MailToCalendar error! " & errStr end try end repeat --iterate through fields

--set up the event in iCal tell application "iCal" -- say "Will now attempt to register in iCal" tell calendar 2 --CHANGE THIS to sequence number of target calendar set newItem to make new event at end of events with properties {start date:TheStart, end date:TheEnd} set summary of newItem to TheTopic set location of newItem to ThePlace set description of newItem to TheDescription -- say "registered in iCal" end tell --calendar end tell -- iCal

set AppleScript's text item delimiters to OldDelim -- say "finished MailToCalendar" end perform mail action with messages end using terms from

 

Wednesday, July 09, 2008

Hardware Software... aaaarrrgghh!!

Why do hardware manufacturers insist on writing custom software for their installers and driver settings? As long as I have connected things to computers (Win or Mac), I have been stunned and appalled at the inexplicable attempts made by printer, camera, phone, and video card manufacturers to produce the computer-side part of their products.

After all the hard work put in by OS and software vendors to make it easy for them to "fit in" comfortably with the rest of the platform, they apparently just can't keep their crap software developers down.

Take a look at this (admittedly unremarkable) example from Epson:

Never mind that Mac OS X (like Windows) provides a lovely, user-friendly, painstakingly researched and usability-tested solution for software installation - no no no, Epson, like their equally software-braindead competitors, decided it would be much better to pay some software industry rejects gobs of cash to develop a custom installer, packed with confusing screens with too many images, cryptic sub-product names, and custom controls (like what the hell does that progress bar bring to the table???)

Why oh why do they find this necessary? Someone somewhere must feel there is a real business case for this, because it ain't free to develop this excrement. Surely hardware manufacturers have close enough ties with the OS vendors to have been informed of the recommended approach. Why haven't they noticed that almost all software vendors - actual experts in software development - opt for the OS-provided solutions to install their products?

If you are reading this and you know someone who works for a peripherals manufacturer, please take action. Friends don't let friends distribute crap software!

Friday, November 23, 2007

Gmail & Mail.app - the right way

I was getting a bit sick of firing up Parallels just to do email and GTD in Outlook, so today I thought I'd give Apple Mail another look.

I had already set up Gmail IMAP in Mail, but it was more than a little clunky, and I was a bit worried about what happened when I pressed "Delete".

I Googled around a bit and found these tips, which as far as I can tell iron out all the problems. To save you following the link, here's what you do:

  1. Set up Gmail IMAP according to Google's instructions
  2. Open Mail Preferences
  3. In General, set Dock unread count to Inbox Only
  4. In Accounts, select your Gmail account and set IMAP Path Prefix to "[Gmail]"
  5. In Composing, set Create Notes & To Do's in to On My Mac (notes & to do's really don't work with IMAP - don't even try)
  6. Close Mail Preferences
  7. From the menu bar turn on View > Organize by Thread if you haven't already
  8. Select the All Mail mailbox, then from the menu bar select Mailbox > Use This Mailbox For > Trash (this makes the Delete button in the toolbar work like Archive in Gmail)
  9. Repeat for the Spam mailbox - use it for Junk
  10. Repeat for the Drafts mailbox - use it for Drafts
  11. Repeat for the Sent mailbox - use it for Sent

That's it! Now Mail will essentially work just like the Gmail web UI, with one disappointing exception: when new messages arrive for existing conversations, Mail doesn't show the previous messages of the conversation in the Inbox, so you have to scroll through the reverse-order quoted text like a moron. I wonder if there's a way to use the Rules option to do this automatically... dunno.