Tuesday, August 28, 2007
I haven’t had time to read it yet, but this looks like another great Cocoa graphics coding tutorial from Andy Finnell:
There is a lot more involved in implementing a magic wand tool than I originally thought. Although generating a bitmap mask that selects pixels is the obvious thing that I had to do, implementing the marching ants around the bitmap selection was also surprisingly involved. After figuring out both the image mask generation and marching ants, I decided the article wouldn’t be complete unless I also implemented a basic copy operation, so the user could copy the selection into another application. Although not technically part of the magic wand tool, implementing a copy command shows how you would actually use the selection generated by the magic wand tool.
Monday, August 27, 2007
And of course, the Pink project was all about building object-oriented frameworks. So we decided we needed a framework for unit testing. At the time I did some research to see if anyone else had done something similar, but this was back in the days before search engines and I didn’t really find anything.
We all know that premature optimization is the root of all evil. But a recent conversation brought to mind that we often don’t really know the runtime costs of the code we write. While we should be writing foremost for correctness and clarity, having an idea of these speeds is good, especially when we get it into our heads that some operation is much more costly than it really is. With that in mind, I compiled a list of common Cocoa operations and how much time they require at runtime.
Friday, August 24, 2007
Ever since I was a kid I pictured myself working at home.
When I was a boy, I dreamed of one day working in a fabric-covered box.
Thursday, August 23, 2007
To go along with this article I have created some sample code that will demonstrate everything I talk about. It’s a mixture of Cocoa and Quartz, although the ideas should work in any environment; only the API calls will change. This is within reason of course: Quartz takes care of a lot of complicated things like alpha blending and antialiasing, and if your API (like QuickDraw, GDI) can’t deal with that, then you’ll have a lot more work to do.
Mac Thought Crime:
There’s a generous helping of functions, and for obvious reasons, they have the same syntax as in Excel. Not nearly all of Excel’s functions are present, though. Worse, I’ve been relying heavily on Excel’s extensive help system when constructing a function: as you type, it displays the syntax for you, and mousing over each part will show you additional details. It’s very easy to get specific help for each function. Not so in Numbers: you’re pretty much on your own, and help is awkward. Functions are probably also considered an advanced feature that relatively few users would be interested in. Hopefully, Apple will beef up this part of Numbers for the next version.
There is one very useful feature, though, that immediately made me a fan (that is, if one can get fanatic about spreadsheets). Select a few cells in Excel, and the application will display the sum of all the numbers in them. Numbers takes this concept a step further: not only does it display their sum, count, average, minimum and maximum, but also lets you drag these to your table, as a really quick and easy way to create a summary field. Well done, that one!
My guess is the aggressive URL shortening services are doing a simple iteration across every permutation of the available characters they have as the URLs come in. Each new URL gets a unique three character combination until no more are left.
Faced with unexpectedly effective pressure from Blockbuster Video (who have turned Netflix’s own mail order model on its head by allowing their customers to return movies not just by mail but at the rental chains’ physical locations as well), Netflix has counter-intuitively invested millions of dollars in domestic telephone support facilities and staff.
Friday, August 17, 2007
Last quarter Apple announced sales of more than 1.7 million new Macs. Market share for our platform seems to be growing steadily as increasing numbers of Linux and Windows users decide to dip their toes into these tranquil Mac waters. It’s a great time to work on a platform where the majority of developers genuinely care for their colleagues, their products, and their customers.
Seth Dillingham’s first PMC software auction is live. Go bid now to get some great software and raise money for cancer care and research. Additional auctions with more software titles (including some from C-Command) are forthcoming.
We were seven feet apart.
He said: “We don’t like it when you introduce accelerator cards which are faster than our computers.” (At that time, I was the CEO of Newer Technology, which ultimately sold somewhere around 150K+ CPU accelerator cards for Macs.)
Wednesday, August 15, 2007
One subtle difference between the 2D and multidimensional models is that in the latter, the data model is expected to be dense. What this means you don’t really have unused cells; all cells are intended to have meaning in your model. It’s not a freeform grid but a packed model of data. For people used to sticking all sorts of random non-computational stuff into spreadsheets, this can be hard to adjust to. Basically, people are using spreadsheets not so much as computational tables but as a big piece of graph paper.
Numbers shifts this around a bit by making the tables a part of a larger freeform canvas. This is a big improvement from other traditional spreadsheets as I’ve always believed cells are for numbers.
But Numbers is, unfortunately, a traditional 2D spreadsheet. I agree that a consumer-level multidimensional spreadsheet would have been really neat. This is a case where adding dimensions probably makes things simpler.
Monday, August 13, 2007
While everyone knows the keyboard is based on the MacBook’s, no one seems to have realized that if they wanted to “try out that new keyboard,” all they had to do is sashay over to a MacBook and give it a whirl. It’s not based on it, it’s exactly the same. Sure, it’s in a different form factor, but the touch of the keys is identical and that’s really what people mean when they say they want to “try out.”
Oh well. It looks nice, but I don’t particularly like the feel of the MacBook keyboard, and the spaces between the keys drive me crazy.
- Why are the Flagged and Trash sources inside Recent?
- Event reflections are off by default—which I guess is almost as good as not having them in the first place.
- As with previous versions, the Preferences window looks like a normal window but is actually application-modal.
- The Web site is horrid. Each “tab” has the same page URL but with a different fragment.
- Why do iLife apps have their toolbars at the bottom of the window? The whole “Show in Toolbar” submenu would be unnecessary if it simply used a standard toolbar. Perhaps there’s an unwritten guideline that contextual toolbars go at the bottom of the window, but this doesn’t seem very well thought out to me. Plus, iWeb’s toolbar is at the bottom, but as far as I can tell it isn’t contextual.
Google kills purchased Google Video scheme and throws all purchased videos to the wind. For everyone. Paul Thurrott nails it: “This is, of course, the nightmare of DRM come to life. Even content that you “purchase” (i.e. not rented content) isn’t actually owned by you and it can be taken away.”
From Apple’s products you generally get the idea that they understand the concept of ‘less is more’, just look at the iPhone with its super elegant, simple interface or the iMac or any of their other minimalist designs. Yet the Leopard dock shows none of this design subtly or elegance, trading it in for crass visual effects. So perturbed was I, that I decided to have a go at redesigning the dock.
Looks good to me. Also see the comments about the Numbers icon and one-dimensional zoom boxes.
Saturday, August 11, 2007
Well, I finally got what I’ve been asking for all these years: a documented, supported SDK for iPhoto plugins from Apple.
It’s available from ADC. Now how about one for Mail?
Friday, August 10, 2007
Rory Prior, former iceKey user, says that he had to download the drivers to make the function keys work, and:
Once again this Apple keyboard seems very power hungry which seriously limits the usefulness of its built-in USB 2 hub. It won’t work with my SD card reader and only works with one of my USB flash drives.
Monday, August 6, 2007
In fact, what I expected from Lyons’s “I’ve been outed” acknowledgement on the Fake Steve weblog was something from Real Steve’s perspective, not Fake Steve’s. E.g. something like this…
BBEdit 8.7 can remember open windows between launches, adds “Go Here in Terminal” commands in various places (thus reducing the need for scripts), adds collections (like yellow folders in Xcode) and file/folder reference renaming to file groups, allows dragging file references out of disk browsers, and has a much better Python language module.
Friday, August 3, 2007
As a Mac journalist, I find it highly significant that a company the size of Microsoft can’t hit a release window that’s six months wide even when they set that target a mere six months in advance, and I think that’s worth giving the company at least a mild tongue-lashing. But really: I don’t care about the slip. It’s a pity, but no big deal.
What I do care very much about, though, as someone who uses words for a living, is the language Microsoft chose to use in the press release they sent out announcing this delay. It is, truly, a delay: a difference of (depending on how you interpreted “second half of 2007”) anywhere from two weeks to six months and two weeks. And most of the news sites that reported on the delay described it as such. But Microsoft themselves did not use the word “delay.” They didn’t mention that they’d previously announced an earlier date. They didn’t say they were sorry. Instead, they used standard weaselly marketing language to make it sound like they were announcing a virtual non-event, and perhaps even to subtly suggest that anyone who wanted to think about it differently doesn’t care about quality.
Of course, Microsoft isn’t the only huge Mac developer to miss a multi-month shipping window that it had only recently set. Apple’s reason for its delay sounded a little off, but it did admit that there was a delay.
Thursday, August 2, 2007