About | ACP | Buy | Forum | Industry Watch | Learning Curve | Search | Twitter | Xnews
Home » Learning Curve » Hotspots

Open Report

From Rixstep to Apple on the 4th anniversary of Tiger.

Buy It

Try It

Hi guys,

You're doing well. Your computer market share is up all the time and Microsoft are finally tanking. And no conscionable engineer will not celebrate that.

But soon you're going to unleash your next version of Mac OS X. And here are a few things we'd like to see happen. Even if these requests fall on deaf ears and even if they're too late.

1. Preview. Preview for 10.4 had things Preview for 10.5 doesn't have. 10.5 has a lot of cool new features but there are some things lacking.

The 'select all' is cool but the off-colour used for cropping with 10.4 was good. Your cropping rectangles on 10.5 aren't always that accurate either - they can be off by a pixel on any side.

And please make sure you show the new size of a cropped image before it's saved. A lot of times people have to get an image to a precise size and it's a pain and a half to have to save the blasted thing all the time to see what the new size is going to be. 10.4 did this OK so 10.5 should have done it too. Please put it back in 10.6. Preview is an incredibly useful and increasingly powerful program.

2. Mail. Stop hiding the Drafts folder. Just leave it there. The spinners for 10.4 were too small so you made them bigger for 10.5. But at least on top of the line MPBs they're too big. Show moderation.

Don't use intermediate data to show people what they have in their mail folders. The old NeXT way of going to disk and reading the old format mail files was good. Today when you've divided it all up into separate files for each message it should be even easier. Stop using caches to show people what you hope is the contents of their mail folders.

Get the formatting right. If a message is saved as plain text it should come back up as plain text. There are levels of logic here which don't get down to the nitty gritty and use intermediate values to establish behaviour. Get rid of these. It shouldn't be that hard to get this crucial program working 100% perfectly. Thank you.

3. Stop the inode race. Copy - not move - temporary files into their final destination. If you want to keep those dorky alert panels about files being locked then do so. But it's not a particularly good idea. And if you do so then override the ordinary copy mechanism and replace it with something else. But by default stop moving temporary files in. This is wrought with danger and you know it. The few times a lonely punter will be grateful you implemented this scheme cannot outweigh the loss of prestige when others notice how things get hosed and generally screwed up. The Cocoa document controller is a brilliant concept and for the most part a brilliantly implemented idea. So go ahead and make it perfect again.

4. Get rid of input managers. Completely. Give them a swift boot kick and get them the F out of the system once and for all. Clients cannot control their behaviour. This was a very bad design idea from the beginning. Now it has to be gone.

5. If startup items are lurking then make sure they're irrevocably gone too.

6. Get rid of the startup items property list (com.apple.systemloginitems.plist) in /Library. This is an immense security hole and it should be a matter of prestige to see it disappear.

7. Get all of the system sensitive stuff in /Library out of there. All these plasters with sticky bits and whatnot are only shambolic. Put that stuff in /System/Library and leave /Library only for the stuff that is not system sensitive.

8. Shorten the adaptation times of updates for your open source modules. This means you have to refactor your overall system design but just do it.

9. Perform open surgery on NSTableView. This poor thing is down for the count. You're leapfrogging the message queue, you've got wild timers in there screwing everything up, you've got obnoxious tooltips that can't be turned off with less than subclassing all over the place. Just fix this sorry thing. It used to be pretty great; all you have to do is revert all that indefensibly wacky code.

10. The Cocoa services mechanism. This has been broken since Tiger 10.4 - officially 29 April 2005, four years ago today. At first it was mostly Mail.app and Safari.app that broke it individually in their own ways. Mail.app has for the past four years used its own code to interact with the services rather than relying as earlier on the built-in support by NSTextView which Mail.app subclassed. Four years ago today the Mail team put an incorrect line of code in their own implementation which meant Mail.app was not looking at the correct pasteboard for the transformed text but looking at the standard 'general' pasteboard instead. This is a trivial mistake but when it's not been fixed in four whole years it becomes indefensible - and above all embarrassing to your companys.

Safari.app also interacts with the services - but it's not supposed to. It too must be using subclassed code of some sort but web pages rendered in Safari are supposed to be treated as 'read-only' - when the services ask Safari if there's text that can be transformed Safari is supposed to answer 'NO' but instead answers 'YES'. This mistake too would seem trivial and easy to fix - and yet it's been there for four years as well.

Things didn't improve with 10.5 Leopard - they got worse. Suddenly an unknown programmer in Cupertino decided arbitrarily that pointers to NSString objects with zero length strings that were returned by the services were an indication that 'something is wrong' when in fact this was the way - the only way - a service could indicate to a client that no changes could be made.

Suddenly with 10.5 Leopard users saw weird alert panels popping up, claiming there was something wrong with the service providers and advising users to contact their vendors. The joke here was that if the provider passed an 'illegal' return value - in the form of a 'nil' NSString pointer - the new Leopard code caught it yet didn't utter a word.

Third party vendors have for the past four years either written elaborate workarounds for these errors or given up entirely. We have workarounds for our services but many other vendors don't bother anymore. It is indefensible to keep errors in the code when the causes are so elementary and when the functionality is so important to the proper working of the operating system. Please fix this. After all it's been four years to the day and will be even longer before the release of 10.6 - surely you can find the time to fix this? How have you been able to avoid fixing this for so long?

And now the really important stuff. Start selling to government. Obama's staff want Macs - they're that smart; several other sectors of the US government have shown an growing interest in dumping their shabby Windows systems and replacing them with Macs. See to it everybody can have them and acquires them. Put your computer OS and your iPhone OS in runner-up positions and devote the brunt of your efforts to establishing a sales force that gets Macs out on desktops within governments. You know people want these boxes - give them the opportunity to use them.

And when you do - how about giving this new class of administrators a file management system they can actually use? Things don't have to look like the cockpit of a space shuttle - not by default - but please: administrators need proper tools and should not have to rely on third party solutions for these most basic of applications and should not have to - oh the irony - go to a command line on a platform from a company that boasted it didn't have one? When things have got so out of hand you have 'user experience engineers' fighting against such patently obvious things (which they themselves can never understand) you know that something's really got out of hand at One Infinite Loop. Cover Flow doesn't impress these people.

It's an unwritten rule in the business sector that a computer has to be ugly to be useful. That's changing. Today people perceive Macs as not only beautiful but also as immensely more safe, secure, and pleasant to use. You cut workflow times dramatically. With your development environment you create a symbiosis between end-user and developer that no other platform anywhere can achieve or ever hope to achieve. Who would ever have guessed that Apple with their 'beige box OS' would someday be reborn as the 'great hope' against the misery of Microsoft? And yet there we have it - and there you are. Get out there and sell sell sell as the Dukes once put it.

That's all. We hardly expect any of this to come to pass but you can't fault us for asking. We wish you all the best.

See Also
Hotspots: Please Mr Jobs

About | ACP | Buy | Forum | Industry Watch | Learning Curve | Search | Twitter | Xnews
Copyright © Rixstep. All rights reserved.