Archive for the ‘Mac’ Category

Cocoalicious 1.0b34: Bug Fixes

Sunday, May 15th, 2005

Since I’ve been on a coding roll lately, I decided to fix several Cocoalicious bugs this morning, and consequently am releasing b34 right on the heels of b33. Beta 34 fixes the full text search sorting regression I mentioned in the previous post, as well as a timing-dependent extended search bug, and a long-standing issue with the submission of posts containing plus signs or semicolons.

Cocoalicious 1.0b33: The “Async-ification” Release

Sunday, May 15th, 2005

It’s been a very long time (a few months, if I remember correctly) since I released a new Cocoalicious beta, but I think fans and critics alike will agree that Beta 33 was well worth the wait. I’ve been using builds of it for weeks now and I can’t get over just how significantly the changes I’ve made have improved the user experience. What are these wonderful changes you ask? Well, I’m thrilled to report that the internals of b33 have been significantly overhauled to minimize interaction with the del.icio.us API, and make all interaction with the del.icio.us server asynchronous.

You see, previous versions of Cocoalicious were heavily dependent on the del.icio.us API. Rather than maintaining its own post and tag lists, Cocoalicious always simply asked the del.icio.us server for updated data. This meant that the updated post and tag lists had to be re-downloaded every time a new post was added, or an existing post was modified. Constantly re-downloading the XML list of a user’s post gets to be pretty painful–particularly once the user has 1000+ posts and a 328 Kb XML download (as I do)!

Another major way the old Cocoalicious sucked was that, with the exception of the XML post list download, all of its HTTP requests were done synchronously. This meant that when the user posted a new link, deleted a link, tagged a link by dragging it to the tag list, or renamed a tag, the call to the del.icio.us API was done on the main thread. This blocked the UI (and brought up the dreaded spinning color wheel) until the del.icio.us server responded. Believe me: the lousy user experience this provided, as well as the irony of a “rich desktop client” that was less asynchronous and responsive than some of the new “Ajax” web apps, was not lost on me.

Fortunately, I put in a lot of work to fix these problems, and I think the experience of using Cocoalicious is improved massively by it. In b33, Cocoalicious does most of the work it used to rely on del.icio.us for internally. Cocoalicious now constructs and maintains its own tag list based on the current tags used in posts. When the user posts a new link, Cocoalicious simply adds it to its in-memory list, rather than re-downloading the entire post list every time. All of the server API requests necessary to relay these changes to del.icio.us are done in the background. The net effect is that Cocoalicious now truly feels as responsive as a desktop client should.

These are also important changes in that they pave the way for one of my biggest goals for Cocoalicious: implementing local persistence. The changes in b33 put Cocoalicious on the road to being an independent app that happens to sync with del.icio.us, rather than simply a rich front-end for it.

The only problem with this “async-ification” is that there is now no UI feedback to let the user know when (or if) the submission of a change to del.icio.us completes. I have some interesting ideas about how to address that I will try to post for critique and then implement in a future release.

In the meantime, enjoy the asychronicity! I know I have for the past few weeks.

(Update: Damn, I already noticed a regression: the post list is now unsorted when filtered by a full-text search. I guess b34 will probably involve fixing that…)

Search or Browse?

Tuesday, April 19th, 2005

A little while ago, Brent Simmons asked his readers about their window management style: whether they manage clutter by closing, minimizing, or hiding. Lately, I’ve been interested in a similar “Beatles People vs. Elvis People” distinction: some people tend to prefer to locate things by browsing, while others prefer search.

I, for example, fall squarely into the search camp. I almost never use the “Browse” view in iTunes–if I want to listen to a specific album, I find it more expedient to simply type the name of the album into the search field. This is a bit messier, of course, since it usually turns up songs that are not part of the album, but that doesn’t really bother me. I do the same thing with Mail: rather than sorting my messages into a number of folders, I prefer to let it all go into one big inbox and find what I need later by searching. I suppose you could say I prefer ad-hoc, logical views of my data to concrete hierarchical organization (which could also be one reason I love the concept of tagging so much).

Obviously Tiger, with its focus on search and metadata at both the system level and app level, is a huge boon to people like me, and I think my experience demoing it at MacWorld this year really threw the search/browse dichotomy into sharp relief. I demonstrated Spotlight features like Smart Folders to nearly everyone I talked to, but while everyone seemed to understand them, only about half seemed to think of them as killer features the way I do.

So how about you–are you a searcher or a browser?

Cocoalicious and Safari 1.3

Monday, April 18th, 2005

Observant users of Cocoalicious who have updated to Mac OS X 10.3.9 may notice a problem with the “New Post from Safari” feature: namely, the selected text on the page is no longer captured. This problem is caused by an unfortunate regression in both Safari 1.3 and Safari 2.0: the Javascript “getSelection()” call no longer works properly when invoked through Safari’s “do javascript” AppleScript command. Rest assured, there is a bug in Radar for it, and hopefully it will get fixed at some point.

(Update: Sent trackback to Hyatt’s Safari 1.3 regressions post.)

Collect ‘Em All

Tuesday, April 12th, 2005

Last week, Fraser Speirs posted Apple’s “Meet the Engineers Behind Tiger” page to his del.icio.us links. In what has proven to be an interesting study of the social power of del.icio.us, I then posted the same page to my own del.icio.us links, not so much because I wanted to bookmark it, but rather so that I could add the comment “Someone should make trading cards!” to the URL’s del.icio.us history. Since then, I have had one person contact me with a proposal to actually print some, and Martin Pittenauer actually went to the trouble (using Interface Builder no less!) of mocking up a series of “Magic: The Gathering”-style cards.

Like any good game, MAP’s cards have some tricky surprises. For example, you might think that Bertrand Serlet, the dread lord of OS-related software development at Apple, would be darn near unbeatable. But you’d be wise not to underestimate the might of Spotlight czar Yan Arrouye, who packs a +100 “Find Stuff” punch (not to mention the ability to summon Dominic Giampaolo at will).

Who knows–perhaps some enterprising soul will organize a “Battle of the Tiger Engineers” tournament for WWDC this year? I’ll provide the 12-sided dice.

The iPod Monolith

Friday, February 4th, 2005

Some friends and I were sitting around admiring my shiny new iPod shuffle last night, and gradually the conversation turned to the daring, minimalistic design of the tiny music player. Musing on the device’s lack of screen, I wondered aloud just how far Apple could go in stripping the iPod down, and the idea of the “iPod monlith” was born.

The monolith is, quite simply, a triumph of minimalism. It has no unsightly buttons, switches or indicators of any kind to confuse you. Rather, it is a seamless, enigmatic white slab. You can’t actually control the monolith, or even turn it off for that matter. It simply plays what it wants, constantly, and you merely tune into the stream (perhaps via a Bluetooth headset?).

What do you think—should I make an appointment with the ID team?

MacWorld 2005 Thoughts

Thursday, January 13th, 2005

A few random thoughts on this year’s MacWorld before I go to bed:

  • I don’t think I’ve seen anyone else say this so far, but for me the most amazing moment in the keynote had nothing to do with the product annoucements. Rather, it was the sight of Sony President Kunitake Ando on stage and evidently feeling the effects of the famous reality distortion field. This was incredible stuff—like witnessing an episode right out of The Second Coming of Steve Jobs. Sony is arguably Apple’s only credible threat in the digital music arena (disclaimer: my opinion and mine alone), and here’s Jobs (who clearly genuinely admires the company) charming the pants off their president, touting common goals in promoting HD video, and generally making the guy feel like a rock star. In a word: wow.

  • Working the Tiger demo area at the Apple booth was a lot more fun than I expected. I was scheduled to work right after the keynote emptied out, and the sudden influx of eager people reminded me of the scene in Pirates of Silicon Valley where Jobs and Woz are mobbed by geeks while demoing the Apple II. I enthusiastically talked about Spotlight, Safari RSS, Automator, Mail, and other new features for about three hours nonstop, until my throat was so parched I could barely speak.

    It can be hard being a Mac enthusiast who works for Apple. Often the day-to-day grind of keeping your bug queue under control and generally “seeing how the sausage is made” can slowly drain your enthusiasm for the product. Fortunately, getting out and talking to actual end users, and seeing their enthusiasm for the result of all that hard work, always reminds me why I’m in this business.

  • One of the best things about conferences is the opportunity to hang out with people, and this year’s show was no exception. I particularly enjoyed finally meeting the ever affable Eric Case, as well as his friends Willo, Ryan (of wiPod fame), and Skylar. I also got give restaurant recommendations to Jochen Wolters and catch up with Courtney Patubo, Allen Hutchison, and Lucien Dupont. I finished this evening at the 43 Folders meetup, where I got to meet Jasmeet, tell Danny O’Brien how much I love NTK, and get my own commemorative hipster PDA from Merlin Mann himself. Hooray for socializing!

  • Update: One thing I almost forgot to mention is that I had lunch with Scott Knaster a little while ago, and at that time he explained to me how he thought Apple could make a flash-based iPod compelling (he later wrote the idea up on his weblog). At the time I thought his ideas were interesting, but I had no idea he was on the right track as much as he was. Good thinking, Scott!

  • I just realized that, in all the excitement, I completely forgot to eat dinner tonight. It’s been a long time since that happened!

  • The “IBM Office” shirt I got from Panic is my new favorite article of clothing. I can’t believe the attention to detail that Cabel puts into Panic’s swag. The shirt even has an embroidered label that actually says “Panic.” I’d be willing to bet that Panic could be pretty successful supplementing their software income with clothing sales if they ever decided to!

  • I’ve got some photos up on Flickr. I think “Girl with iPod Shuffle” is one of the best photos I’ve ever posted, if I do say so myself.

Sex and the iPod

Monday, November 15th, 2004

Last night a friend and I were at the bar of a popular Las Vegas nightclub called rumjungle. We were sitting next to a trio of attractive, cosmopolitan young ladies, who were in the process of being chatted up by a trio of eager young men. At one point, my ears pricked up, because the topic of their conversation had turned to the iPod. The girls all professed their deep love for Apple’s chic music player, and everyone took turns enthusing about their devices’ respective song counts. Meanwhile, on the screens above the bar and dance floor, some familiar looking psychedelic computer graphics were pulsating. If that left any doubt as to which popular jukebox application was providing the evening’s soundtrack, a white Apple logo soon materialized to dispell them.

To say that Apple has gained some mindshare in the music business lately would, I think, be a severe understatement.

Interestingly, there was even a ray of hope for those of us who work on Apple’s less sexy, non-music products: one of the girls went one step further and proudly announced that she had gone “all Mac for everything,” which struck me as a pretty geeky topic of conversation for the mating ritual (at least outside of Silicon Valley). Could it actually be possible that “Hey baby, I work on Mac OS X” is about to become an effective pickup line? One can dream…

Eat Shit and Die?

Saturday, November 6th, 2004

When Cory Doctorow lashed out over Apple’s disabling a third party iPod song copying plugin in iTunes 4.7, I decided to be prudent and bite my tongue, even though, as the author of a similar product, I naturally have an opinion about the matter. But sitting in Adam Curry’s Podcasting session at Bloggercon today, and listening to suggestions that Apple might somehow move to shut down podcasting, followed by a litany of grave “don’t trust Apple” warnings, I felt my blood pressure rising again and knew I wouldn’t be able to keep quiet. Unfortunately, time ran out before I could comment in the session, so I’m going to ignore my better judgement and post my comments here (the usual disclaimer applies: completely my opinions, not my employer’s).

As I see it, there are two problems with the suggestion that Apple might shut down podcasting. First, the only realistic way for Apple to stand in the way of an app like iPodder would be to shut down iTunes’ AppleScript interface and/or remove iPod support for open formats like MP3 (which someone in the session seriously suggested they might). The latter would amount to commercial suicide (witness Sony’s unfortunate experiment with an ATRAC only audio player), and the former would be unlikely because there are Apple products that rely on iTunes AppleScript (e.g. GarageBand). Second, it assumes Apple would have any reason to even care about how people get content for their iPod outside of Apple’s own applications.

And this brings me back to my criticism of Cory Doctorow’s screed, which is that he is missing an important point about the nature of the iPodDownload plugin that iTunes 4.7 disabled: it operates within iTunes. It essentially modifies iTunes itself so that it can be used to circumvent iTunes’ “no copying from the iPod” policy (it also violates Apple’s stated iTunes plugin license). By contrast, my own, standalone application, PodWorks, has been around for almost two years now, and has never been challenged by Apple (even though Apple could easily have made life difficult for me by constantly changing the database format, or encrypting it, sicking the lawyers on me, or things like that). Because PodWorks is a standalone application that has nothing to do with Apple, Apple just doesn’t have any reason to be concerned about it.

In my estimation, what it all comes down to is this: Apple is still walking a fine line between giving consumers what they deserve and giving the record companies what they want. In order to continue striking this balance, Apple must avoid any appearance that it is facilitating intellectual property theft, and thus must prevent its music platform from becoming a direct accessory to piracy. I don’t think anyone at Apple has the anti-consumer agenda that Doctorow suggests (“eat shit and die!”). If someone actually did, I can assure that PodWorks, at least, would have disappeared a long time ago.

Pre-WWDC Notes

Friday, June 25th, 2004

Well, WWDC is fast approaching, the Tiger preview is in the can, and Mac geeks from all over the world are descending on “The City™” for five days of peace and programming.

Meanwhile, I’m just finishing my masterful (ha!) planning for the unofficial WWDC Weblogger Dinner, which seems have stabilized somewhere around 25 attendees. If anyone wants to attend and hasn’t let me know, now is the time (I’ve told Buca di Beppo we will be seating approximately 25, but I plan to call them tomorrow with an absolute, firm count).

Also, it looks like I will be at the Student Developer Career Reception event on Sunday night, so if you’ll be there, you might drop by and say hello. I’ll be the guy in the black t-shirt and jeans. What? Not specific enough? Alright—I’ll be the short guy in a black t-shirt and jeans.

I really look forward to meeting everyone, and particularly to hearing peoples’ reactions to Tiger. It should be a great show.