iCal View menu

Here’s iCal’s View menu.

ical-view-menu

What’s so confusing about it? You really need to see how it interacts with the iCal main window to understand. We’re going to be focusing on the group starting with “Hide Calendar List.”

The iCal main window looks like this:

ical-main-window

The sidebar on the left side of the screen looks simple enough. Now let’s look again at the menu. What would you expect Hide Calendar List to do?

Wrong. It does this:

hidden-calendar-list

 

Both the calendar and mini month calendar are hidden. Hiding both makes sense, but calling the command Hide Calendar List doesn’t. Go back to the menu, and we see the helpful command “Hide Mini Months.” What Mini Months? Oh, the ones that were on the iCal window, but aren’t anymore? I wonder what it does?

It does this:

hide-mini-calendar

That’s right. Choosing Hide Mini Months showed the mini calendar.

So here’s how the menu commands work:

The first command, Show/Hide Calendar List, hides the entire left side bar: The calendar list and whatever is under it.

The second and third commands, Show/Hide Mini Months/Notifications, control what’s under the calendar list, but still controlled with the Show/Hide Calendar List command. And they don’t actually do what they say they’re going to do if the calendar lis is hidden. They’re mutually exclusive: Think of them as Under Calendar List: None, Mini Months, or Notifications.

The fourth and fifth items are entirely independent of the first three items.

Granted, coming up with menu commands to control a UI like this is hard. But that’s no excuse to throw your hands in the air and settle on this UI.

Topless keynote

If you haven’t heard, Apple is pulling out of MacWorld. Personally, I think their stated reasons are pretty good, plus John C. Welch has a pretty good secondary reason, plus possible consequences that don’t involve the Mac community being a bunch of spineless jellyfish. There’s not much point in speculating about it. But various folks on the Internet have their own ways of fighting back, from the passive-aggressive guilt trip Mother’s Letter to Apple to the passive-aggressive and ineffective Silent Keynote, which operates on the horribly mistaken assumption that Apple would somehow be hurt if people just shut up.

My friends, if you haven’t guessed yet, I’m the king of passive aggressive. Really. Just check out that first paragraph.1 But I can tell you passive aggressive isn’t going to work in this situation. Instead, it’s time to get aggressive aggressive. Even if Silent Keynote kept the Mac faithful mostly quiet, mainstream reporters would spin it as “MacWorld confirms Apple decision to stop attending.” No, my friends, you need (and want) to grab attention.

Thankfully, I’ve had my staff here at Tewha busy at work on a solution. And they’ve come up with one, my friends. Oh yes. And you’re going to like it. Or hate it. I’m not sure which yet.

What’s the biggest American event in the last decade? No, no, my friends. Think TV. Take out the water and add moral outrage. That’s right, I’m talking about Janet Jackson’s wardrobe malfunction. It added the phrase “wardrobe malfunction” to common English, possibly for the rest of time.

No, Silent Keynote isn’t going to work. What we need is a Topless Keynote, my friends, a Topless Keynote.

Let’s be honest here: Nothing grabs the American public’s attention faster than breasts. Not violence, not politics, nothing. If you really want the mainstream media’s attention, my friends, you just need to add bare breasts.

So here’s my staff’s proposal: Go not just topless, but make it an art form. Wear a sweater, but at the right moment pull it off and reveal a top with cut out breasts. My friends: Let those nipples show!

I know, I know. You think I’m being sexist here. Well I’m not really. I’m just thinking of the biggest impact you can have on that keynote. And I’m not picking on just women here. Obviously, it’s more effective, but I think for moral support the men should join in, too. Just imagine it… at the right moment, there’s suddenly two hundred nipples on display.

Now that would make a point. That will shut up Phil Schiller in mid sentence. That will make the media perk right up and take notice. That will give you the attention, my dear MacMacs, that you so deeply need.

Completely unexpected. There’s no ignoring it, so it would cause a total derailment of the Keynote. Plus, mainstream reporters are going to ask. It’s unavoidable. “Excuse me, miss, why did you and a hundred others put your breasts on display when Phil was talking about the Xserve?” Plus, you know, it’ll be funny.

Ladies and gentlemen, I give you the Topless Keynote. Make it happen.

  1. I’m also a king of sarcasm. Not the king, just a king. But if you don’t believe that, read the rest of the post. []

Loving Xcode + iPhone SDK

I’ve been full time on an iPhone project (more of a prototype, really) for one day, and I absolutely love it.

  • It’s simple and intuitive. Drop controls, set up outlets and actions.
  • You don’t have to fight the framework. It does what it does with a minimum of fuss.
  • A good UI is a focused UI, rather than one full of features. I love this style of thinking.

I’m less thrilled with Xcode’s documentation viewer. It feels like a really poor web browser that takes more of the screen for junk, runs in the same workspace so you can’t command-tab in and out of it. Just splitting it into a separate process would immediately improve it.

In about a day, I created four screens and linked them all together. That doesn’t sound horribly impressive, but it felt easy. Granted, I’ve previously spent a few hours figuring out UINavigationController, but things were actually simpler than I had understood. Finding things took a while, but they were generally hidden in plain sight. The few times I violated something in the runtime, the error message was simple, direct and accurate.

I do wish SQLite was a more recent version. I would love to use sqlite3_open_v2 in some of this code, especially the SQLITE_OPEN_READONLY flag.

Objective-J

The Objective-J guys clear up some misconceptions. After reading this, I realize my initial rejection of this technology was based strictly on its name. It hasn’t sacrificed as much as the name implies. Definitely worth reading, and I’ll be checking it out further.

Fast iPhone scrolling with UITableView

Fast Scrolling in Tweetie with UITableView by Loren Brichter, author of Tweetie:

Cutting to the chase, here’s the secret: One custom view per table cell, and do your own drawing. Sounds simple? That’s because it is. It’s actually simpler than dealing with a ton of subviews of labels and images, and it’s about a bzillion times faster (according to my informal tests).

This is not exactly relovuationary, but it is a nice summary and includes example code. This was perfect timing for me, as a custom table cell is one of the next steps in a project I’m working on. (Via Daring Fireball.)

Save changes?

Is it any wonder I sometimes miss saving?TextEdit

Mail

Inkscape on Windows

Inkscape on MacNotepad
EditPad Pro

Morning Fog

morning-fog

Stephen Fry is surrounded by cables

Stephen Fry, surrounded by cables in a hotel room in New York, on the Blackberry Bold, Blackberry Storm and HTC G1 Android:

Watching someone writing an email on a Storm is like watching an antelope trying to open a packet of cigarettes.

WordPress 2.7 stops the UI abuse

I installed WordPress 2.7 this morning before coming to work. It’s a great upgrade. I want to love the new UI, but I feel it would be the same as loving someone because they finally stopped beating me.

WordPress 2.7’s administration UI is a breath of fresh air. Want to make a new post? One click. From any page in it. Common actions in general are one click away. It feels awesome. It even looks classy.

Anyway, if you use WordPress: Get the upgrade. Run, don’t walk. Save yourself grief.

Menu zen

With a 1280×800 screen, I decided to put a little effort into reducing my menu bar baggage.

Menu Zen

What I removed:

  • BlueTooth: Useful, but not on a day-to-day basis.
  • Time Machine: This system isn’t backed up. What? No, really. Everything important on it is either in MobileMe or Subversion. All my other systems use Time Machine.
  • MobileMe Sync: Knowing when MobileMe is syncing isn’t really that useful.
  • Keychain: Because I mostly use this to access Keychain Access, and I can just use Quicksilver.
  • Fast User Switching: Because it’s usually just me using this computer.
  • Quicksilver: Because it functions just as well without the menu.
  • Volume: Because there’s keys on the keyboard.

What I’m keeping:

  • smcFanControl: Because I want to run smcFanControl, but there’s no way to turn off the menu.
  • ExpanDrive: Again, no way to turn off the option.
  • iChat: Because I want to be able to quit iChat and stay online, and keeping it in the menu is requirement. But I never use the menu.
  • WiFi: Because wireless connections take just long enough to establish for this indicator to be useful.
  • Battery: Obvious.
  • Spotlight: Because there’s no official way to remove it. If there were, I’d probably use Quicksilver to activate it, but as it is I use it a lot too.

What I may change:

  • Add Script menu. Because it’s cool.
  • Display temperature in smcFanControl. Very anti-zen, but useful information. I’d prefer if the temperature was in the menu somewhere after you clicked it, like Apple’s battery menu and the “battery remaining” time.