Archive for the 'Mac' Category

SproutCore, Cocoa, and The Idiomatic Web

Wednesday, June 25th, 2008

If you follow web technology news, you may have seen a number of postings about SproutCore over the last couple of weeks. SproutCore is the framework that Apple’s using for their MobileMe applications.

The “sync-all-your-devices-to-the-cloud” functionality is MobileMe’s core value proposition. The beautiful and rich web client experience is icing on the cake, and could have been implemented using a half-dozen existing JavaScript libraries.

Therefore, my intitial reaction to these “Cocoa apps for the Web” and “Flash Killer” reviews was that the revolutionary-ness of SproutCore was definitely overblown.

I figured that the hype would be over in a couple of days. Since articles like Why Objective-J, Cappuccino and SproutCore are completely changing the web app industry are still cropping up all over the place, I figured that I’ll weigh in on the discussion. I hesitated because I think that the techniques in question are very clever. Just not “Completely-Change-The-World-As-We-Know-It-Forever” clever

I’ll hedge a bit here here by saying that all bets are off if Apple leverages technologies like these to allow Cocoa developers to use Interface Builder and XCode to build web apps and/or build special stuff into Safari to natively render SproutCore markup as native Cocoa. But at the current time, I think that the hype machine is in overdrive.

SproutCore and Cappucccino extend Cocoa concepts such as Key-Value Coding (KVC) and Key-Value Observing (KVO), and it’s great to see these ideas brought to the world of web development in a big way. But I think that SproutCore and similar frameworks will have limited long term appeal to the broad web technology marketplace, considered niche players alongside the Java-based Google Web Toolkit (GWT). Methinks that web app architectures that rely on code generation will have limited appeal moving forward.

Keep in mind that I’m not anti-niche: Creating the framework that powers Apple’s MobileMe apps by itself is quite the accomplishment, and their approach is both novel and effective. I’m simply making the case that web app development in the large is not likely to follow MobileMe’s direction from a client engineering perspective.

I think that if we fast-forward the clock by a few months, we’ll see a backlash against these SproutCore-like frameworks, since they go against the grain of traditional web development approaches. Instead, they’ll be a call for a return to The Idiomatic Web, where semantic markup, stylesheets, and good JavaScript are top-tier building blocks, not simply implementation details below a new set of alternate client architecture abstractions.

The real widespread change will come to web app development when KVO/KVC approaches are employed in conjunction with idiomatic web frameworks like YUI.

When staking out the future of the Web, Evolution rather than Revolution will rule the day.

Python Success Story: Checkout

Friday, June 22nd, 2007

Here’s an Apple Developer Connection profile of Checkout, a Point-of-Sale application developed in Cocoa and Python, using PyObjC (Python<->Objective-C bridge) to glue the Python-based business logic to the UI and other framework-level Cocoa libraries.

On the value of Python and development process:

Bok explains how this combination contributed to the development efforts. “Using Python and the PyObjC bridge gives you the best of all worlds—Python and Cocoa,” Koen says. “Python is great for unit testing and agile development. Because Checkout manages critical business information, we swear by writing unit tests for everything that even comes close to any financial data.”

Koen continues, “And since Python is interpreted and not compiled, launching a debug session takes seconds. You can make a modification and see the effect of the change immediately.”

(From MacDevCenter.com)

10.4.8.wow

Wednesday, October 4th, 2006

If you haven’t seen it yet, the latest update to Mac OS X (10.4.8) includes a new feature where ctrl-mousewheel provides a full-screen zoom. It’s amazing (at least to me) how cleanly the render quality degrades as the zoom level increases. Things get blurry, but they don’t get blocky and pixelated. Thanks again, Quartz.

I think that the scroll zoom will be very much like Preview.app. It’s not the kind of feature that makes one stop what they’re doing and run out to buy a Mac, but you really miss it when working on other platforms. With a Mac, things Just Work (cough, most of the time).

Case in point, a few hours ago, I had to enter in a 15 digit number on a computer that was 10 feet away from my MacBook where I had the number up on the screen. I simply wheel-zoomed to the point where I could read it from far away, and zoomed back when I was done.

No harm, no foul. No thought involved.

But wait, you could do that with Windows/Linux/TRS-80/etc. simply by [INSERT 3 STEP PROCESS HERE]. But I firmly believe that the best technology is the stuff that you don’t notice.

Now I’m sure that there is some 19 year old rock star developer in Western Elbonia implementing that same wheel-zoom functionality in Linux (assuming it isn’t already implemented), to be folded into Ubuntu three scheduled releases from now (ditto).

The thing that’s great about the Mac is that the features a) Work Now, and b) Work Together. That is worth spending a few extra clams to me when I buy a new computer every couple of years.

But lest my advocacy be misinterpreted as elitism, believe me, when I first noticed that scroll-zoom (or any other wicked cool OS X benefit), I didn’t settle down into my best Thurston Howell the 3rd voice and ponder aloud about how the other half could possibly live.

The last thing we want as users, particularly those of us working with multiple platforms, is to have Daffy Duck jumping on Tux the Penguin’s head saying “Down, down, down. Mine, mine, mine.” Rather, the cross-proliferation of features across the Mac/Linux/Windows worlds may be bad for platform zealots, but it’s great for the rest of us.

That being said, OS X is probably the best end user experience “right now”, for most values of “right now”. Isn’t that true, Lovey?

Pirates of the Caribbean III, starring Cap’n Crunch (My Apple 9/12 “Showtime” Prediction)

Thursday, September 7th, 2006

So I guess I’ll jump on the September 12th “Showtime” Event rumor bandwagon. This is pure speculation.

I’ve had a MacBook for several weeks now, and I love it for all the typical reasons (it’s fast, runs Parallels, etc.), but there is one thing that has bugged me since the night I opened the box:

With all of their industrial design and packaging acumen, why would Apple bundle a remote control with a laptop that has a 13″ screen?

Sure, you could run the video out of the laptop to a TV. But when you paint the picture of a laptop sitting on the floor in front of a TV, tethered to both the wall (for power) and to the TV (for video), it comes across as, well, very un-Apple-like.

Tonight, I’m willing to venture a guess regarding the real reason behind the Apple Remote. But first, the backstory.

One of the things that Steve Jobs said years ago regarding phone phreaking was that he was fascinated how something as small as a telephone could control something as large as the Packet Switched Telephone Network.

So for a while now, I’ve been waiting for Apple’s Really Next Big Thing, when Steve would recall the magic of the Homebrew days (sans some phreakin’ details of course), and talk about how Small Thing X can control Large Thing Y, for some consumer-ish values of X and Y.

I am speculating that Apple will be unveiling an AirPort-like wireless router that plugs into your TV. Let’s call it “AirPort Video”.

Wait, before you get ticked off and stop reading, I realize that this type of device has been rumored for a while now. The extra twist that I haven’t come across yet is that the AirPort Video would work with the Apple Remote, by reading the RF signal from the Apple Remote and schlepping the requests over 802.11 to your Mac sitting in the other room.

So the experience of pointing an Apple Remote at a screen and having movies come out is consistent whether you are pointing at an iMac, an AirPort Video-connected TV, or even (cough) some future Apple TV.

Think about it: The smallest device that Apple makes (the Apple Remote) controlling the biggest thing out there: The consumer’s living room.

I think that this is totally congruent with Steve’s early fascination with network-based technology and Apple/Steve’s current role in the entertainment ecosystem.

It would be like a mashup of 1970s hacker Steve Jobs with his 2006 iTunes/Pixar/Disney self. Metaphorically speaking, its Pirates of the Caribbean III, starring Cap’n Crunch.

Why is TextMate so popular?

Wednesday, August 9th, 2006

TextMate won the 2006 Apple Design Award for Best Mac OS X Developer Tool. Congrats to Allan and everyone who has contributed to the project.

I was a Vim guy for many years, and recently made the jump to TextMate. I’ve had a few false starts in the past, going back to what’s familiar, but I’ve completed the transition in less than 210 days. (Applause).

There are a couple reasons why I switched. Most important was my belief that while Vim is great at slicing/dicing text, TextMate was built for slicing/dicing higher-level concepts and structures expressed in text. I convinced myself that the context-awareness and snippet-fu that TextMate brings to the table would lead me to be more productive in the long run.

TextMate brings to the commoditized world of text editing what OS X has brought to the commoditized world of operating systems. I think that the tastes and preferences that lead a developer to buy into and evangelize the Mac platform are the same ones that lead that same developer to buy and evangelize TextMate.

A quick analogy: If you look at text editors as operating systems, then TextMate is the OS X of Text OSes. Much like OS X takes the power of Unix and makes it lickably good looking and easy to use, TextMate has taken shell script pipelining and built the necessary abstractions required to profoundly flatten the learning curve.

But, you may rightly say, Emacs has had rich programmability for years. Any Emacs (or Vim, for that matter) guru can duplicate many of the functions that TextMate provides. Not only that, they can take the list of reasons why their editor is arguably better, have the items psychoanalyzed, and emailed to you in an encrypted file, all without leaving the confines of their Text OS, er, text editor.

My response? “Exactly.”

Any Emacs guru can and will do those things, and they will be very happy and productive in the process. Vim, Emacs, and TextMate are all great editors. It’s no longer a matter of what’s the best editor, but rather, what is the best editor for you?

I think that Emacs is the Linux of the Text OS world, whereas TextMate is the OS X of the Text OS world.

Specifically, the things that make users pick TextMate over Emacs are precisely the types of things that make a user pick OS X over Ubuntu Linux as their operating system of choice.

So once a developer makes the deliberate move to OS X, making the subsequent jump to being a TextMate customer is both easy to do and consistent with their underlying value system.

So that’s why Allan has sold scads of licenses. He’s built a great product that strongly resonates with many of the tastes and preferences of his entire target market.

Or…maybe it’s just that the Rails and TurboGears screencasts were flat-out cool. What do I know?

Apple iCal Server runs on Twisted

Wednesday, August 9th, 2006

There was a bunch of news coming out of the Apple Worldwide Developer Conference (WWDC), but in my opinion, the story with the lowest “press-coverage-to-significance” ratio is around Apple’s iCal Server. It turns out that the server itself is written in Python using the Twisted networking framework.

Yesterday, it was also announced that Apple officially joined CalConnect, the calendaring and scheduling consortium. The iCal Server supports CalDAV, the up-and-coming standard for standards-based calendar and scheduling over commodity web infrastructure. For more info on CalDAV, check out this CalDAV article on NewsForge.
I find this interesting from three perspectives:

  1. SMB Market Expansion: Apple’s movement into the calendaring space will provide another viable alternative to Exchange, especially for new businesses. Before WWDC, the rumor mill was buzzing about Apple getting into the Voice-over-IP (VOIP) business. I think that this is the classic Apple play: Take a useful technology that works, package it in an elegant interface, make it easy to use, and then cast the problem so that people say “Why didn’t it always work this way”. An easy to use Calendaring and VOIP solution from Apple would be a game-changing moment.
  2. Ruby vs. Python: It puts some context around the announcement that Ruby on Rails will ship with Leopard (OS X 10.5). The bundling of Rails is great news for everyone involved. The Rails community is very much pro-Mac (all of the core commiters, and the vast majority of Rails developers work on Macs (much to the delight of Allan Odgaard, developer of the phenomenal TextMate text editor).

    However, the fact that Apple is building new, high-profile applications using Python should indicate that Apple is not likely to be a one-trick pony when it comes to dynamic languages.

  3. Additional validation of Twisted: The fact that Apple is using Twisted as the foundation for something as strategically important as Calendaring should reinforce the well-deserved image and reputation of the Twisted team and the software that they produce.  In time, this is certain to introduce Twisted to the greater IT industry, and make Twisted-based applications much more interesting to the broader market.

Quicksilver

Sunday, July 23rd, 2006

If you own a Mac and haven’t tried Quicksilver, you may be doing yourself a profound disservice. Quicksilver is a smart application switcher / desktop workflow tool. Here’s a better explanation.

I’m pretty much using it for doing simple stuff like opening apps and finding files, but it seems that once you achieve Quicksliver guru status, you could rip through reasonably complex multi-step workflows like kids pull off long Tekken combos, in that the heavy lifting can be relegated to muscle memory.
After using it for a few weeks now, I’d have a real tough time getting rid of it.

I just installed the Cube interface, and although it’s arguably just eye candy, that UI seems more Quicksilver-ish (or true to itself) than the other interface options. Here’s a movie of the cube in action, recorded by Tim Gaden at Hawk Wings.