Bradezone

Archive for ‘Web Stuff’

Thursday, June 10th, 2010

Simple or Flexible… or Both?

A one-for-all, all-for-one solution to website content management is the holy grail of my profession. For my web development work for clients, I find that several of them have a lot of specific features they want in their content management system (CMS). But soon enough I’m walking the tight rope between simplicity and flexibility.

Selecting a tool to build such a website or application is a matter of audience. The first audience, software developers, need either a lot of freedom or a lot of options. In practical terms, for my PHP development, this is a choice between CakePHP and Drupal. Working with both of these equally has been eye-opening, because without fail there are many features that are much faster to implement in one or the other—it truly ends up about 50/50. Want to display a custom calculation in a specific place on the site? With CakePHP it’s simple. Want a paged image gallery with Lightbox functionality? Drupal can get you there much more quickly.

For both these platforms, the other audience comes into play as well, namely the client. Obviously the client needs to have their available options presented as concisely as possible—they don’t need (or want) a huge amount of freedom or options. So the creation of such a simple interface falls to the developer. The trick is knowing which stuff to allow them to change and which stuff to hard-code. In both cases, priority #1 is defining these as variables (or object properties) as soon as possible in the code, so we can switch back and forth if need be. Yet clients will always possess an uncanny knack for requesting the tweaks that are most troublesome to implement. Granular permissions, anyone?

Creating robust software that is still easy to use is the challenge facing any software developer. Apple has rightly gained a reputation for striking this balance with substantial success, yet they are certainly not above reproach. In the web industry, the balance of power is more volatile, as anyone with a great idea can launch a web application with little to no concern for infrastructure—innovations from Google, Rackspace, Amazon, and the like are taking care of those issues. And while there are a wealth of options in the realm of content management, several of them quite good, I believe this abundance indicates the ongoing problem of balancing features with simplicity in these applications. After a myriad attempts, the world still awaits a truly excellent CMS.

NOTE: Parts of this post were originally a comment at Gadgetopia.

Friday, February 26th, 2010

Bonus Content!

You know, I actually do have some blog posts that are aching to be released into the wild. Soon, my sweets, soon… Until then, nourish yourselves with a helping of Brade-approved bonus content, courtesy of Bradezone’s newest feature: Items of Intrigue. Naught more than a lode of links meticulously selected by yours truly, these nuggets will no doubt tide you over between my official musings, and are available atop each page of this website, where you may also subscribe to them with your feed reader of choice. Speaking of which, if you haven’t already subscribed to the main blog itself, it’s time to rectify.

Friday, June 26th, 2009

Firebug Fail

LOLbugWhat’s up, all you savvy web developers? Question: do you enjoy using Firebug to make coding and debugging a blissful experience? Does it indeed make you feel warm and fuzzy inside? Well, good for you, because things are about to change. Turns out “awesome” wasn’t a good enough standard for the Firebug devs, so they’ve set out to fix what wasn’t broken and completely change the activation model, completely disposing of domain whitelisting and blacklisting. Ummm, thanks? Anyhow, I decided to voice my thoughts on the matter via the official Google Group:

This new “activation model” is patently insane and just made my life 100 times more difficult. If someone were to create a fork of Firebug 1.3 that preserved domain whitelisting/blacklisting, I would pay $50 for it easily. johnjbarton [the resident firebug developer], since you seem oblivious to how the new version is problematic, let me spell out some common scenarios I have tried:

Previously I enabled firebug for localhost, since that’s where I do most of my testing and developing. Then I would browse from page to page (without the panel open) until the “script error” message came up on the status bar. Then I’d open the firebug panel and troubleshoot. I’d fix it then perhaps browse around a few more pages, with the panel still open. When I was happy I’d solved the problem, I minimized firebug (back in those halcyon days, I could click the “x” button or the little firebug icon to remove the panel—it didn’t matter). But firebug stayed active, so I would be alerted to script errors if they happened.

Fast forward to today. Seems firebug now remembers panel position PER PAGE, which is ludicrously stupid. So as I browse from one page to the next, the panel is randomly disappearing and reappearing. And of course I can no longer simply tell firebug to be active only for localhost. WOW, WHAT SOME GREAT NEW FEATURES, GUYS!

The new system is completely absurd, and I hope now you can begin to see why. When a tool as ubiquitous as firebug gets changed so drastically, the question is WHY? We all loved it before, so please stop butchering it. And again, I put out the call to some developer out there who would want to continue the awesomeness of firebug 1.3 and perhaps rename it. That person would be regarded as a hero at this point…

I received an immediate response that at least acknowledged the legitimacy of my point of view:

Work on Firebug 1.4 is complete. Your scenario description is a good one, I wish we had it back when we were working on this feature. I’d love for Firebug to be perfect for everyone, but in every change there will be some winners and losers I guess.

The activation model in 1.4 was designed to allow extensions to provide special activation solutions.  If anyone wants to create one for this use case we’d be happy to give advice. (Just to set expectations, I have no plans to do any more work on activation myself).

As you can see, it seems this train is already moving at full speed, and those of us who loved the way Firebug formerly behaved will unfortunately have to endure (for the time being) the headache it has become. We can only hope a proper “extension” is released that brings back the wholly intuitive domain-based activation scheme that worked perfectly before. Until then, a single tear shall roll perpetually down my cheek.