Joe Maller.com

WWDC 07 Predictions & Wishlist

The rumor mill is exceptionally quiet this year, I’m probably more excited because of that. Quoth Fake Steve Jobs:

Arrive early, wear comfortable clothes, and prepare to have your mind blown. Because this one is going to be the most awesome WWDC we’ve ever had. Seriously.

Here are a few rumor roundups: TUAW, MacRumors.

I’m not expecting any new hardware. It’s too close to the iPhone release and there haven’t been any major recent hardware developments. The only potential outlier is some sort of ultra-portable based in part on Intel’s mobile Metro notebook or that new Dell ultra-portable. Even if that is coming, I don’t think it will be announced here. This show is about what can be made with software. Even the t-shirt says so.

Sun’s slip about ZFS in Leopard is probably true. ZFS is just too good for Apple not to use it. Time Machine with a ZFS backend becomes efficient and practical.

I think it might be technically possible to convert an active drive from HFS+ to ZFS, in-place, without any additional hardware. The foundations are in place, Boot Camp has proven that HFS partitions can be dynamically resized. ZFS seems to be astonishingly robust and inherently malleable The process might take a few hours, but I think the shocking thing is that, if you have a few gigabytes of free space on your HFS drive, it will be possible to convert a drive from HFS to ZFS without reinitializing the whole thing. But I have no direct experience with ZFS, so I could be completely wrong here.

Core animation will prove to be central to the entire Leopard experience. Everything will have transitions, animations and eye-candy–however small and fast. Apple knew what it was doing with the Dashboard animations, and they’re going to run with it, not just in the iPhone, but throughout the MacOS. Apple isn’t competing with Aero here, the really amazing UI-candy to beat is mostly coming from Beryl/Compiz

An Apple virtualization product/feature doesn’t seem likely. Parallels Desktop and VMWare Fusion are providing a load of value in this area and it doesn’t make sense to shake up an already healthy competitive marketplace. Apple only benefits from those two companies trying to outdo one-another, providing an integrated virtualization product doesn’t seem to make sense from a business standpoint.

I really hope there’s some integration between some of the Google apps and the iApps. Especially read/write from iCal to Google Calendar, but I’d just settle for allowing multiple people to work on the same calendar with iCal via .Mac.

We might see a radical re-casting of the iLife and iWork components. The various applications have proven different levels of usefulness and some seem far more important than others. Personally I don’t even have GarageBand, iWeb or Pages on my machine anymore, I needed the space and they are all pretty big. iTunes is it’s own universe, there’s absolutely no reason it should be a part of iLife, besides it’s too tied to development of iPods and Windows. iPhoto is the gorilla of iLife, it should probably be rolled into Leopard and let iLife be a suite of creative apps, iMovie, iDVD, iWeb and Garageband. iWork is more coherent, but keynote is the component that I see getting the most use. Maybe Apple will finally introduce the long-rumored Charts, but this doesn’t seem like the place. Un-rolling iPhoto would cut into iLife’s sales, but it would fit in with the “whole package” idea that Steve mentioned last time.

Random predictions:

  • Developers will complain about the food.
  • AAPL will go into the $130s, possibly as high as $135 if there’s good iPhone news.
  • Developers will complain about not getting bussed to Cupertino for the annual bash
  • More alcohol than just beer and wine will be served at the SF party, many people will get unpleasantly drunk and Friday morning’s sessions will be poorly attended and full of moaning.

Pie-in-the-sky hope: Apple will have iPhones on hand and offer Developers the chance to buy one and start using it this week, before anyone else gets them. Yeah, this is completely nuts and not going to happen. While it would turn several thousand developers into Apple indentured servants, completely cowed vassals ready to do Apple’s bidding. It would also piss off all the international attendees who wouldn’t be able use it yet.

Not a WWDC prediction per se, but I am certain that there will be several dozen articles and blog posts about errors typing with the iPhone. Someone (probably some apple-hater on c-net) will attempt to enter Jabberwocky, just like Robert McNally on his Newton in 1993, and try to hype the hell out of whatever comes out. I share some of Steven Frank’s concerns about the touch screen, that thing had better work.

Share |

link: Jun 10, 2007 9:46 pm
posted in: Apple Mac OS X

TextMate’s Bundle Items popup menu

If the ^ ⎋ (control-escape) shortcut isn’t working to pop open the Bundle Items Menu in TextMate, try disabling Apple Remote Desktop in System Preferences->Sharing. Having keyboard access to that menu eliminates a ton of mousing.

Sometimes I need remote access on my machine, so disabling Apple Remote Desktop is not ideal. I couldn’t find any information about what ARD is doing with that shortcut, or why ARD would need any shortcuts on a client machine. The bindings could also be changed in TextMate, but I’ve always preferred to keep application defaults for those occasions when I’m using a different machine.

Share |

link: Mar 18, 2007 3:20 pm
posted in: Mac OS X

Workaround for Illustrator CS2 Crashing on Intel Macs

Adobe Illustrator CS2 on Intel Macs crashes a lot. Usually, the crash has to do with something involving a compound path, even simple ones. The kind that have been working just fine for twenty years. Today I had a reasonably simple, hand-drawn compound path which would crash Illustrator immediately if I so much as tried to change it’s color.

The improbable workaround is to restart Illustrator with the Appearance palette hidden. It really is that simple. Just close the Appearance palette, quit and restart Illustrator. The palette works file after that, at least for the current session.

Chelan on Adobe’s forums deserves credit for discovering this. Me, I just kept doing the same thing over and over again, expecting different results.


Mac Virtual Desktops

After playing around with Beryl on Ubuntu, I started really wanting virtual desktops on my Mac. Beryl maps the workspace to a giant cube, which you can then grab and toss around. Windows can be dragged from one face of the cube to another, it’s intuitive and feels as natural as moving a stack of papers to the other side of my desk.

A while back I’d tried out Desktop Manager, but found it sort of clumsy. The most recent version had the same issues as before. VirtueDesktops, while far more polished, has many of the same issues.

I don’t like keyboard shortcuts for window stuff, I like to use the screen and mouse to move things around. Having to switch from a dragging operation to a keyboard operation and then back to dragging is just too many shifts of state. Window management on multiple desktops should use the same action model as multiple physical monitors.

YouControl: DesktopsBy way of this comparative article from 2004, I found You Control: Desktops. Finally, someone got window management right. While that article seemed largely negative, I found YCD to be very polished and do nearly everything I was looking for. Window dragging between desktops just works. The popup pager is very well thought out and useful. Stability isn’t a problem. Unplugging my external monitor didn’t seem to cause any issues.

The only negatives I can come up with are:

  • no list of hot-keys. They’re easy enough to set, but sometimes I forget what I’ve set and shortcuts don’t show in visual palettes
  • No mouse-button binding options
  • Price. YCD is expensive, especially considering 2/3 of the competition is free and Apple will be introducing Spaces in Leopard.

This may be going onto my system full time, however because of the price, I’m going to really measure how much this affects my productivity before buying.

Dragging windows between desktops is huge, I can’t imagine using virtual desktops without it. If Spaces doesn’t can’t do dragging, this app might live on in 10.5.

Share |

link: Dec 21, 2006 2:06 pm
posted in: Apple Mac OS X
Tags:

MacPorts

The project formerly known as DarwinPorts has spent the past few months transitioning to MacPorts. The project is now hosted on Mac OS Forge, after OpenDarwin decided to shutdown.

Unfortunately, the project appears to be foundering. To be fair, they’ve undertaken several fairly huge architectural challenges including moving from CVS to Subversion, from BugZilla to Trac and of course from OpenDarwin to MacOSForge. All of these moves are non-trivial undertakings especially considering the amount of data they must have.

While there has been a lot of port maintenance activity on the Trac revision log, what worries me is the lack of traffic on the MacPorts developer mailing list and the lack of news on the project site.

Worst of all, there is no obvious dowload link. It wasn’t that the link was just misplaced or buried, they kind of didn’t make one for this release. The 3.5 screens of wiki installation info should be bad joke, especially since a package manager exists to make one’s life easier.

Thankfully, some of the devs know this, and while pointing out why no download link is a problem, also pointed out a far better installation path. Here’s a far better way to get MacPorts up and running:

How to install MacPorts

  1. Download the previous 1.3.1 dmg installer and install
  2. In Terminal, run sudo port selfupdate

That two-step installation should be prominently displayed on the MacPorts site.

Two caveats to the above: Install XCode and the Developer tools, you’ll need the C compilers that install with it. If it doesn’t work after the above, check your PATH and default shell. I’ve had the best luck running bash. If echo $SHELL returns something other than bash, change the default in Terminal preferences (or NetInfoManager). The installer should have added ‘/opt/local/bin:/opt/local/sbin:’ to the $PATH declartion in ~/.profile, if it didn’t, add it yourself.

Why bother with any of this?

If you ever need to install some disparate piece of Unix software, I can’t recommend a port manager like MacPorts strongly enough. Get over the “I built that from code” puffery because unless you’re an old-hand Unix jock it takes way too long to track down and build the zillion required libraries, repeat steps and figure out where everything went. A port manager takes all the guesswork out of the process and makes maintenance of installed software easy (while writing this, MacPorts upgraded dozens of installed components and libraries in the background). I’ve tried Fink previously, but preferred the simplicity of MacPorts. Either one will make your life easier.

Yes there are occasional bad ports, or applications that don’t behave and bugger up the works. These usually get straightened out and can be avoided by trailing the bleeding edge by a few weeks. I will default to a binary installer when they’re available, but for all those other tools, a port manager is essential.

Share |

link: Dec 12, 2006 11:08 am
posted in: Mac OS X
Tags:

OS X GUI lockup with Command-Tab

Every once in a while, probably twice this month, my GUI locks up after pressing Command-Tab to bring up the Application Switcher. Everything on screen is stuck behind the switcher display, the mouse still works but nothing can be clicked.

Most infuriating is that the guts of the machine are working normally, I can SSH in and run any non-GUI app I want and everything works fine. I’ve tried working up the ladder of apps to kill (via SSH), but nothing I’ve found manages to restore the computer to working order. Except restarting by holding the power button (or the shutdown command via SSH).

Today the screen froze while iTunes was playing, iTunes finished the song it was playing then stopped. No Apple Events work (ie. osacript -e’tell application “Finder” to quit’)

At least two, maybe three other people are having this problem too; Matthew Conway, poster lazydog on MacRumors and Rich Collins (who’s having it much worse and is willing to pay $125 for a fix.)

The machine is in otherwise excellent health. Disks are regularly checked and permissions repaired (FWIW). Nothing unusual seems to be appearing in the logs and there isn’t anything particularly funky running on the machine. Since it’s so irregular, trying to recreate this in a second user account isn’t a realistic option.

This has happened a few times and I’m totally at a loss as to why. That people are seeing it on non-Intel hardware is reassuring that it’s not a hardware failure. Any ideas about how to fix/prevent this are welcomed. If you’re having this problem, please leave a comment.

More from Apple Discussions: Command-Tab freezes system (sporadically)

I deleted the com.apple.dock.plist file, here’s hoping that works.

Update: I seem to have a partially failing stick of RAM, which may or may not be related. It passes Apple’s Hardware Test, but the computer won’t boot if that chip is installed by itself, or in the lower slot (where it was before I discovered this?!), it boots and seems to run fine in the top slot. I installed a new chip this morning (Sept 21), no issues so far.


Note about AppleScript records

When combining an existing AppleScript record with another overlapping record, the order of concatenation matters. Consider this example:

set breakfast to {food:"toast", drink:"coffee"}
set lunch to breakfast & {food:"sandwich"}

--- lunch is {food:"toast", drink:"coffee"}

Because breakfast comes before lunch (naturally, when I get to eat breakfast), food is already defined and isn’t recast by the new record. So we get toast for lunch.

Flipping the order of how the lunch record is built gives the expected result, and a better lunch:

set breakfast to {food:"toast", drink:"coffee"}
set lunch to {food:"sandwich"} & breakfast

--- lunch is {food:"sandwich", drink:"coffee"}
Share |

link: Sep 10, 2006 1:55 pm
posted in: Mac OS X
Tags: ,


« Previous PageNext Page »