In a kind of déjà vu moment, two of my favorite blogs posted about the same thing, on the same day! The topic: How writing code is similar to writing prose. Christina Wodtke of Boxes and Arrows takes E.B. White's "List of Reminders," from The Elements of Style and compares them to web design. Matt Linderman of 37 Signals compares the stages of the writing process to that of software development. I think there's a lot to be learned with these comparisons. Without a full understanding of how construction or manufacturing actually occur, it's easy to compare software projects with construction projects. I think there's probably more similarity between writing software and writing prose than manufacturing or construction.
July 2006 Archives
I've written before about our ExCodeWarrior dev shirts we got as reward for successfully moving our code from CodeWarrior to Xcode. Well, now you too, can pay your respects to CodeWarrior, in mournful black, as well as honor the great work the Xcode team has done, and all this in time for WWDC 2006! I'll have my ExCodeWarrior shirt on, will you? ;-)
After reading John Siracusa's hilarious post about WWDC Buzz Word Bingo, I got to thinking about what I'd most like to see at WWDC. Here's my list:
1. Make it brain dead simple to write multi-threaded applications.
How simple? If my application runs fast on a dual core machine, I want it to run twice as fast on a quad-core, no recompile. Too difficult? I'd settle for automatically routing all AppKit method calls to the main thread only, so anything the user sees with their eyes is on the main thread, but everything else happens on other threads, no extra coding by me.
2. Widescreen iPod phone
First and foremost, make it a great phone. Second an iPod. Third, and a distant third at that, a platform I can build upon.
3. Video Airport Express
Encode TV signal to MPEG 4 and send to my Mac's disk drive in real time while I watch another channel streaming from my Mac.
That's it. I'd be happy with that.
P.S. If you are going to be at WWDC this year, drop me a line. I'll be there, and I'd love to chat!
A few years back, my sister and I went on a travel study trip to Egypt, Jordan, and Israel. It was fantastic! I had a digital camera, a wide angle lens, a Kaidan mount adjusted for the focal point of the lens on my Dad's Kodak, DC265 Digital Camera, and enough storage for about 64 "high quality" digital pictures.
Side Note: If in the future, you are going to bring a digital camera to a place where you will most likely never visit again, make sure you have enough batteries and storage to take as many pictures as you can, even if it costs a lot.
Well, I did get a few good pictures, but one of the most interesting places we visited was Petra, Jordan It is was one of the high lights of the trip. I set up the tripod and 12 or 13 portrait pictures later, I had enough to stitch together in Apple's QTVR creation software. It was super fun and I thought you might enjoy the look around. You can also check out the Google Maps images here.
Recently John Gruber wrote about the The Mac OS X Tipping Point and finished with this sumation:
You can't appeal to all people all the time, but Mac OS X comes remarkably close. The old Mac OS, as insanely great as it was, did not.
I think what is so quickly forgotten about the transition to Mac OS X was Apple's against-the-grain assertion that they could build an OS the did appeal to beginner users and power users alike! This was NOT the prevailing wisdom of the day. I even remember seeing previews of the OS in which there were "modes" like standard user and advanced user. Simple Finder in Mac OS 9, ultimately was an outgrowth of this kind of thinking. Additionally, Microsoft was pursuing a dual code base strategy for desktop vs. server. Apple's insistence that you could actually build an OS that did scale from the grandma turning on a computer for the first time to a seasoned UNIX developer was courageous and spunky at the very least.
Recently, I have noticed a resurgence of the idea that the general purpose tool is by definition a less effective solution as compared to something more task specific. This hits home to me personally since I work on software that is used by a very broad spectrum of Mac users. There will always be tension when trying to design software to appeal to such a large and diverse audience, but simply factoring the problem into a "pro" and "beginner" products is the easy way out. You can make software that has general appeal and scales gracefully to a user's needs as they grow, it's just very hard to do! Difficulty aside, it is this kind of "scaling up" that defines what I love about great Mac software. All the core features are apparent and easily discoverable, but as you need more functionality, you effortlessly find them, almost as if the designers read your mind. Tools like these become transparent to your workflow and are a joy to use.
Did you ever get one of those tests on how well you could follow directions? I remember a sheet of paper with more than 20 step by step directions (not unlike some usability studies...) and when you get to the last step you realize you've gone all wrong because of a careless reading of the instructions before step one? Well, here's your chance to redeem yourself. Maybe. ;-)
P.S. I must have clicked it at least 100 times before I stopped...
For you die hard control-clickers MacBook Pro users out there, with Mac OS X 10.4.7, Apple just updated the OS so that in order to produce a right-click you simply place two fingers on the trackpad and click. While not as addicting as two fingered scrolling, this is a welcome improvement and allows Apple to retain their iconic single button mouse without a significant loss of functionality. Could a three fingered click be next? Don't count on it.