The Idea Basket
“When you find yourself wanting to jump on a design trend, ask this simple question: does this really work for me? Sometimes a trend is just a style that appeals to small number of people.”
— Jared White

September 2006

Programming…via the GUI?

September 11th, 2006

The idea of programming via a Graphical User Interface rather than typed code has been around for a long time, but it’s never caught on because usually the solutions are still too hard and abstract for non-programmers to grasp and too cumbersome and clunky for power users comfortable with whipping out cryptic text-based jargon while drinking coffee at the local Starbucks.

But one project that’s trying to go beyond the limitations of both approaches and invent a new programming paradigm is Subtext. It is both a programming language and a development environment, and the demos I’ve seen of it are quite impressive. It’s given me some ideas to chew on in regards to some of my own development with PHP.

Let me put it to you straight: I’m not a big fan of code generation at all. But I’m also not a big fan of typing repetitive boilerplate code over and over again. Maybe it would be possible to offload some of the basic tasks applications typically need to perform to a specially created setup environment that bears some resemblance to Subtext? Interesting.

Developer Preview 2 of Willowgarden has been released today

September 8th, 2006

Willowgarden is an application platform/framework for PHP 5 that I started work on towards the end of August 2005, with serious development progress starting around the beginning of the year. On April 28, I released Developer Preview 1 of Willowgarden, and while that was a good start, I knew that the project still had a long way to go before it would resemble the level of quality and scope of functionality that it really deserved.

Well today, I’m so pleased to announce that Developer Preview 2 is ready. This is where the project is really starting to solidify and settle into a cohesive whole that can be used for hands-on development. I’ve been working on several Web site and applications using the DP2 codebase, and it has made my life as a PHP developer so much more fun than the bad old days of cobbling together scripts nearly from scratch.

Along with DP2, I’ve set up a new wiki that houses the partially-complete Users Guide as well as areas for future tutorials, how to’s, and more. I’ll be spending a lot of my time in the near future working on that end of things rather than code. You are most certainly welcome to contribute content to the wiki as well, so be sure to check that out.

And now I am going to make a bold statement: I am asking the cutting-edge PHP 5 developers reading this — and I know you’re out there! — to consider joining the Willowgarden project if it piques your interest. I would like to start moving interim versions out there at a more rapid pace, leading towards a stable 1.0 release of Willowgarden, and to do that I need the help of people with many different environments and expertise in fine tuning installations. I also have a huge number of ideas in store for future versions, and I’m sure you do as well. This is the time to get on board while the project is still young! To contact me, feel free to send me an e-mail (remove everything after jared before the @ sign).

Thanks for reading, and I hope you download Willowgarden DP2 and give it a thorough look-over. This release is stable enough that I encourage you to start using it for your experimental development efforts, and your feedback and ideas are very much appreciated. Also, I’ll be posting a lot here now about DP2, so check back soon for more information as well.

July 2006

Wild West vs. Sophistication

July 24th, 2006

I’d like to compare the current state of software development, particularly “private” Web applications for businesses, to the American landscape of the 1800’s. On the one hand you had the Wild West. Cowboys, indians, land and riches for the taking, almost anything goes, he who’s quickest on the draw wins, etc. OK, I’m kind of exaggerating, but you get the idea. On the other hand, you had the Sophistication of the East. City living, refinement, cultural societies, gala affairs. The Easterners and Westerners couldn’t see eye to eye. The Westerners thought the Easterners were city slickers, weak, soft in the head, didn’t have what it takes to be a man. The Easterners thought the Westerners were dirty, unmannered, uncivilized, didn’t have what it takes to foster the march of industrial and cultural progress.

What does this have to do with software? Well, we have a similar picture here: on one side is the Wild West world of open source, cutting-edge, scripting languages wired together with other components of the server stack through the code equivalent of duck tape and string. Ruby, PHP, Python. Linux or *BSD. Apache, or newcomers like lighttpd. On the other side is the Eastern Sophistication of Java, of WebSphere, of IIS, of ASP.NET, of C#, Windows, Solaris, etc. All respectable, civilized, cultured software supported by sophisticated, respectable, civilized, cultured people. March of the enterprise, of industry, of progress.

Now, like many geeks, I tend to be a Wild West kind of guy. But I do know one thing: the Wild West was only made possible because all those cows were sold to Easterners so they could eat their roast beef. The people who struck it rich in California went back East to buy a mansion in New York — or built a mansion in a sophisticated town like Sacramento. The farmers sold their crops to the city slickers to provide the cultured food for their gala affairs.

The fact is, the West needed the East, just like the East needed the West. And we geeks need the enterprise. While it’s cool to poke fun at “enterprisey” solutions that are over-complicated, over-engineered, and over-priced, we need to remember that our solutions have to be well-documented, well-supported, stable, and fully-featured in order for the West (open source scripting languages, servers, and OSes) to be a truly viable option for the East (big proprietary companies who like big proprietary solutions).

I want the PHP software I develop to be good enough to survive, nay, to thrive in the enterprise. But like the Westerners of old, I like my beef rare and right off the ranch.

Awesome photo workshop

July 5th, 2006

End of last week I attended a two day photography workshop taught by a couple of instructors from The Institute of Photographic Studies. These two crazy guys travel around the world taking amazing photos, teaching workshops, and and documenting and helping missionary and charitable efforts in far-flung corners of the globe. Both of them come from very safe, very “sane” backgrounds — straightforward day jobs and whatnot — but at different times they felt called by God to switch gears completely and enter into a far more radical lifestyle. Their names are Will Thornton and Rowan Gillson. I really admire people who throw caution to the wind and pursue their dreams, wherever they may take them.

On a note closer to home, I got a chance to get back into photography for a bit and play with my woefully-neglected Canon Digital Rebel XT 350D. Man, I love that camera! It’s so-o-o-o cool. And another thing: I finally got around to downloading the latest beta of Adobe Lightroom. It’s not without its faults, but overall I’m highly impressed and love using it thus far. BTW, I haven’t used Apple Aperture yet, but unless Lightroom ends up costing the same or more money (I highly doubt it), I don’t feel too interested in switching. Sorry, Apple.

At some point down the road when I have enough decent photos to assemble into something resembling a photo album, I’ll probably set up shop on Flickr. Hope to see ya around!

(Special thanks to Shannon Taylor for setting up the workshop. I had a great time!)

June 2006

The Death of WIMP

June 27th, 2006

In the past (before this incarnation of The Idea Basket), I’ve blogged about what the “next-generation” desktop user interface might look like. My hypothesis was that neither Microsoft nor Apple could afford to throw existing UI concepts out of the window because it wouldn’t make immediate financial or business sense. I also said it was unlikely the Linux crowd would jump to the forefront in UI innovation because they were too busy cloning Windows. No, I said, if there were to be a quantum leap ahead in the GUI space, it would come from a totally unknown source with nothing to lose and everything to gain.

Well, even though I had no idea what that source might be, I basically wasn’t too far off the beam. It looks like the death of the standard “WIMP” (Windows, Icons, Menus, Pointer) GUI is actually starting to appear on the horizon, and a new paradigm is coming into view. And what is this new paradigm, you ask? Why, nothing less than the venerable Web page.

WHAT?!?! That’s no paradigm. Web pages have been around for years now, and they’re just interactive documents with fancy graphics. The more they act like apps, the closer they get to the “real deal” — desktop software with a traditional GUI.

Nope, that’s not what’s happening at all. Sure, lots of Web apps over the years have tried to emulate traditional GUIs, complete with desktop-like icons, menus, windows, etc., but you know what? They all sucked, big time. The era of sluggish Java applets and pixelated, battleship-grey interfaces is over, and everyone knows it. The new era is everything we love about Web 2.0.

User-focused design. Big, happy fonts. Descriptive text that helps you learn your way around. Simplicity. Less features (as the grammatically-challanged 37signals folks would say). In-place editing and in-context actions via the power of Ajax. Tagging. Links. Striking visual effects via cutting-edge CSS and Javascript. The list goes on. And you know what virtually none of these awesome new apps use? The old paradigms of WIMP. There’s no menu bar. There are no windows (or if there are, they’re just tiny pop-up dialogs). There’s no pool of icons. Only the Pointer of WIMP is left, for the most part.

What’s replaced all that is the evolution of three components: attractive graphics design, intelligent copy and typesetting, and the hyperlink. Who knew years ago that the separation between application and document would virtually disappear as the concept of software platform shifted from a window-centered one to a page-centered one?

Now some would argue that the familiar, repeatable consistency of a WIMP-based GUI with the OS and all applications sporting the same kind of interface is far superior to the Wild-West-anything-goes world of the Web. I say otherwise. People generally learn new Web apps far easier than they learn new desktop apps — because the UI is tailored to the content. Certainly there are plenty of recognizable UI elements that you find in most Web apps. Patterns are emerging, designers are following competitors’ leads. But the main strength of this new Web 2.0 world is in its very inconsistency. We’ve all had the displeasure of living in the “everything’s the same” WIMP world with the OS telling apps how to look and feel. It stank. We all ended up with confusing, bloated, and unreliable software. On the Web, people expect stuff to Just Work. And if people can’t make it work in 1 minute, they’ll go somewhere else. Confusing, bloated software withers on the vine.

If you think the WIMP GUI is just fine, thank you, and is totally unrelated to the explosive growth of Ajax-style Web apps, that’s your prerogative, but I maintain there’s a definite comparison here. Imagine Backpack, Flickr, Amazon, Google, Wordpress, del.icio.us, etc., done WIMP-style using a traditional Mac OS X or Windows XP interface. It’d look boring as hell and be damn hard to use. Seriously.

I, for one, welcome our new Web 2.0 overlords. I enjoy my time on the Web as much as I ever have using any desktop app. And that, my friends, is where the real UI innovation is happening. Microsoft, Apple (yes, Apple), Linux distros, and virtually everyone else are adding features to their interfaces that the Web has had for years. Ironic, isn’t it — a few years ago, people were trying to figure out how to make Web pages look like desktop apps. Now people are trying to figure out how to make desktop apps look like Web pages.

I love it.

May 2006

Wonderful video discussion of personal organization methods

May 25th, 2006

I recently watched an extremely enjoyable and inspiring presentation at Google by a researcher with University of Washington’s Keeping Found Things Found project. In the presentation, William Jones covers a wide range of organization topics, going beyond the usual folders vs. tags debate to a more comprehensive look at the how’s and the why’s of the ways people try to organize their information — and, more importantly, the ways people try to find their information again.

Clearly everyone knows computers still have a long way to go before they can match up with how our brains reference, process, and store information. There’s a huge impedance mismatch between how we think and how computers save, and the question is: must we “reinvent the desktop” from scratch (unlikely any time soon) or can we simply refine and enhance the metaphors already in place?

Years ago, I started spending a lot of time researching and investigating these questions. Readers of former incarnations of The Idea Basket will remember my “MediaVoom” mockups that showed a folderless metadata-based file storage system and next-generation interface. I also worked on couple of different Mac OS X applications that never got released — both providing features above and beyond the current Spotlight technology Apple has developed.

My hope is that OS X 10.5 “Leopard” that Apple will be showing off later this year will take Spotlight to a new level and will offer more ways to organize data besides mere name-based folders. I think Microsoft’s future plans for WinFS are also on the right track. But the jury is still out on just how effective any of this will be in getting users to add metadata to their stuff — because without user-supplied metadata, desktop search innovation and usefulness will remain limited and narrow in scope.

To innovate: don’t listen to your customers

May 14th, 2006

I feel like I’m posting on the Signal vs. Noise blog with this one, but what the hey. I was just reading a TIME article on the Nintendo Wii, which to my non-gamer brain sounds like a great product, and I was struck by the brilliance of the philosophy behind the design of the Wii. From the article:

But the name Wii not wii-thstanding, Nintendo has grasped two important notions that have eluded its competitors. The first is, Don’t listen to your customers. The hard-core gaming community is extremely vocal–they blog a lot–but if Nintendo kept listening to them, hard-core gamers would be the only audience it ever had. “[Wii] was unimaginable for them,” Iwata says. “And because it was unimaginable, they could not say that they wanted it. If you are simply listening to requests from the customer, you can satisfy their needs, but you can never surprise them. Sony and Microsoft make daily-necessity kinds of things. They have to listen to the needs of the customers and try to comply with their requests. That kind of approach has been deeply ingrained in their minds.”

Wow, another company besides Apple that actually “gets it”. As the article goes on to discuss, one of the main reasons the iPod rose to dominance was precisely because it eschewed the “more features and more power is better” school of product development in favor of “simple and fun and elegant is better”. Nintendo is betting on the same philosophy to help them gain a lead on their arch-rivals in the console business. I believe it will work.

And I believe this is a good time to tell the truth about innovation: it doesn’t work if you are letting your customers design your products for you. Don’t give customers what they want, give customers what they need. If you can figure that out better than anyone else, you’ve won.

Working on xajax 0.5 and Willowgarden DP2 in parallel

May 8th, 2006

Whew, I’m feeling a bit overwhelmed with the amount of work I have ahead of me for xajax 0.5 and Willowgarden DP2. Not that it’s particularly difficult or time-consuming compared to the work I’ve already done, but in both cases the work requires a singularly focused and specific train of thought, which is tricky to keep up for long.

In the case of xajax 0.5, we’re looking at the most substantial and architecture-altering upgrade in the entire history of the project. xajax is nearly a year old, and I jumped on board around October 2005, so it was already getting established when I started working on improvements. The latest release, 0.2.4, is a fine product, but I feel like the true potential of xajax has only just begun. I want 0.5 to provide an incredible platform for a huge ecosystem of innovation around the Ajax concept, and it’s going to take a huge amount of design precision to make that happen. In particular, xajax is going to be retrofitted to work around a hot-swappable plugin architecture, so it will be possible to extend it completely in three major areas: the Javascript client side, the server request processing side, and the response command output side. It’ll be amazing if done right, but a train wreck if done poorly, so there’s a lot riding on the outcome of this endeavor.

As for Willowgarden, Developer Preview 1 was a decent first start, but there’s a ton of work still to do — a lot of which isn’t even code related. I need to get the wiki up and running and start writing How To’s and the beginnings of a real User’s Guide. And on the code side, I want to have a fair amount of unit tests in place for DP2, as well as some additional sample apps to play with.

Hey, it’s all fun. Otherwise, why am I doing all this?!?! :)

MacBook coming soon, I hope

May 8th, 2006

‘Tis the night before Tuesday, and all through my brain, I’m hoping tomorrow brings joy and not pain!

Ugh. Leaving aside for a moment my horrible poetry skills, I’d like to tell you how excited I am about the new MacBooks that Apple is about to release. It’s not certain tomorrow is the day, but it’s certainly going to be with the next couple of weeks according to just about everyone’s prediction. The reason I’m so excited about this is because the iBook is the coolest little notebook around (I use my iBook G4 constantly and love it to pieces) — except for the fact that it is just too underpowered by today’s standards. Plus the matte (and IMHO dull) white finish and thick, kiddie case are starting to get long in the tooth. The MacBook will likely sport a sleeker, sexier case, and will most certainly boast a dramatically faster architecture. Plus with the prospect of using Windows via dual-booting and virtualization at near-native speeds when it’s time to do some boring office task or play the odd game or two, the whole package makes me salivate. I haven’t been this excited about a new Mac coming out since the Mac mini debuted in January of 2005.

If we’re really, really lucky, we might even see a price drop. Who knows? At any rate, the iBook has had a good, long run, and I love mine dearly — but it’s time for a big change. Apple, don’t fail us now!

Interview at AJAX Magazine

May 1st, 2006

Hey, I was recently interviewed by Hatem Ben Yacoub at the online AJAX Magazine, so you might want to check that out if you’d like to hear me talk more about xajax and Willowgarden. Thanks Hatem!