Articles In Category Programming
Remember my angst about whether I should migrate my computing life to Mountain Lion? Well, that story's now over, and Mountain Lion has won.
In my previous article I spoke of a desire to get back to theming, and specifically mentioned a desire to do that "black matte" theme I've been thinking about. I guess the article helped spur me on, because after several weeks of work I'm now ready to release Smooth Black, a new button theme for CrystalClear Interface (CCI).
CrystalClear Interface and Crystal Black are marvelous, foolhardy, and frivolous experiments in theming the Mac OS X user interface. As they were in the beginning, so they remain today: Elegantly imperfect software products, which will always be buggy. It's just the nature of the experiment. Why? Because they try to do something Apple works hard to prevent, and therefore are outlaw apps: Only able to pop up here and there with a sparkling, think-different approach that just isn't meant to be.
I am the foremost user of these two themes, and I continue to develop them because (1) it's still possible and (2) I really like them. As the author, I'm tolerant of their occasional misbehavior, but I understand that not all observers are so patient. Nobody likes a screaming 3-year-old while enjoying a quiet evening at one's favorite restaurant. I'm no different in that, but I do try to make sure my children learn how to behave as new situations arise that cause them to flare up.
Still, there are always new situations, and, well, children will be children. My children are still quite young, but the day may come when either they are banned from new restaurants for their behavior, or I become too exhausted from apologizing for them to take them out in public any more.
With each release of its operating system, Apple drives me one step closer to that edge. It's not intentional, I'm sure... In the interest of providing a safe OS environment, Apple continues to tighten the knot around inter-application interactions — especially those that allow third-party software, like CrystalClear Interface (CCI), to load itself into other applications, such as the Finder or TextEdit. And yet, without that kind of interaction, CCI and Crystal Black (CB) could not function.
For now, it appears that CCI will survive the transition to Mountain Lion (Mac OS X 10.8), but as with every release of Mac OS X since Tiger (Mac OS X 10.4), the amount of effort to do so is greater. And I fear that as the technologies introduced by Apple for increased security in Lion and Mountain Lion are more widely adopted by software developers, the number of applications that won't run CCI properly will increase.
In some future update, Apple could introduce a change that will turn off the lights for CCI and CB for good, as well as those for AppMenu Magic and my freeware Text Tools. Such a change would mean I could no longer develop the software, let alone support it.
This little application provides two alterna-tive styles for the “Authenticate” panel that appears when-ever you’re required to enter a password on your Mac. It works by substituting differ-ent “NIB” files — the files that define the window’s interface — for the default system versions. (Jargon Alert: NIB stands for “NeXT InterfaceBuilder,” which was the original IB app developed on the NeXT operating system — the predecessor of Mac OS X.)
Some variation of these text tools have been included in CrystalClear Interface, as well as Crystal Black, since those applications were first released. However, the tools have nothing to do with the theming of buttons and windows, or with the general appearance of Mac OS X. I added them because they address a real need of mine, which no other software could do.
As a writer, I need ready access to a range of text functions, and I need them in whatever application in which I happen to be writing. In most of the rich text editors I use, those functions are available somewhere in the app’s menus, but typically they're in different places within each app. Some apps don’t include one or two key functions at all.
Mac OS X has a rich text framework that provides just the set of editing tools I require, and it would be extremely handy to be able to access those tools consistently across apps. This is precisely what the MarsThemes Text Tools do: Grant easy access to the key Cocoa text tools that writers and editors need but can’t find.
Work on programming and graphics is now far enough along that it's safe to say that CrystalClear Interface 2.6 will be ready for release soon. How soon? Don't ask, because my answer is always wrong.
CCI 2.6 will be a major upgrade, with some features customers have wanted for quite awhile now. The upgrade will be free for current CrystalClear Interface license-holders, but after release the software's price will increase to $18. The price increase reflects the major amount of work required to push CCI's functionality to the new level, and a lot of that work has to do with making it work — and look right — on Lion (Mac OS X 10.7).
Briefly, the main new features in CCI 2.6 will be:
- Incorporates the Crystal Black button theme for users on both Snow Leopard and Lion.
- Adds eight menubar themes users can mix and match with their chosen button theme.
- Seamlessly swaps custom application graphics for a given theme with the chosen new one.
- Fleshes out the custom system graphics for Lion, so that both the Gradient and the new Black Gloss button themes are almost in parity with Snow Leopard.
- Adds two new window frame styles — "Black Gloss" and "Black Gradient."
- Incorporates two new preset themes — "Black Gloss" and "Smooth Black" — to take advantage the new window styles.
- Adds numerous new Crystal Docs icons, and improves the icons tab to show previews of the various icons.
- Automates the installation of third-party Crystal Docs icons, so the user isn't interrupted and prompted to install for each app as they open it.
- Provides a new set of Crystal Desktop pictures, mainly for users who want a dark desktop. This set of "Deco Bubbles" desktops has six dark variations and four light ones.
- Adds code to enable readable statusbar text for the clock and username "menu extras." (Note: This feature currently doesn't work consistently on Lion.)
In the past few years, Adobe Flash has become more than an annoyance that some of us have kept in check by using "block Flash" plugins for our web browsers. More and more, entire web sites are being built with Flash, and they have no HTML alternative at all! This goes way beyond annoying, into the realm of crippling.
I had noticed the trend building for quite awhile, but it only really hit home when I realized that Google, of all companies, had redesigned its formerly accessible Analytics site to rely heavily on Flash for displaying content. This wouldn't be absolutely horrible except for the fact that Google provides no HTML alternative. I tried to needle the company through its Analytics forums, but only received assurance that yes, indeed, one must have the Flash plugin running to view the site.
Keep in mind that content like that on Google Analytics is not mere marketing information, like the sales pitch on the Analytics home page.
Those of us who are disturbed by the trend need to be a bit more vocal about our opinion. Hence, I'm starting a "Just Say No To Flash!" campaign, with its own web page, graphics for a banner, and the CSS and HTML code to deploy it on your own web pages.
I've mentioned this to some of my family and friends, and they often come back with: "So, Why should I say no to Flash?" I admit that as a power browser and a programmer geek type who, shall we say, makes more efficient use of the web, I'm more keenly aware of the ways that Flash is chipping away at the foundation of web content.
In the beginning, it seemed harmless: Flash was an alternative to animated GIFs, and an easy way to embed movies on web pages. But then advertisers wrapped their meaty mitts around it, and that's when Flash started to be annoying. However, one could block Flash in the browser, as part of a strategy of shutting out obnoxious advertising.
But publishing content via Flash is just wrong, for a number of reasons.
Dark interface themes are extremely popular with a small, but very passionate, group of Mac users. Sadly, since Apple introduced Leopard (Mac OS X 10.5), the old, relatively simple method of creating such themes on the Mac can't be used, and it took the theming community a good year and a half to figure out the current, relatively hobbled tools to theme the few bits of the interface that can be themed.
Given the weakened state of theming on the Mac, it's not surprising that the number of themes available has dwindled to a mere handful. And even those only go part of the way compared with what we used to be able to achieve with ShapeShifter. Still, the yearning for Mac themes remains strong among this community, and black themes are virtually nonexistent now.
Black themes have always been a challenge, because the frameworks used to build applications were designed to assume that text would always be black and the color of windows and buttons always light. Apple introduced a dark-theme paradigm a few years ago with its Heads-Up Display window style, which, with its translucent black background actually assumes that text will be white.
So, why would anyone undertake an effort to introduce a fully black theme for Snow Leopard?
I suppose it's because we Martians just can't step back from a challenge. Not to mention the fact that we, too, are afflicted with the passion for dark themes that many Earthlings suffer from. I also have a good starting point, having developed some useful techniques for the challenge through building CrystalClear Interface.
To acknowledge the theme's heritage, I've dubbed the theme Crystal Black.
In other words, the Web Inspector tool is nothing but an intricate, sophisticated, and extremely well designed web page!
Having built a Crystal Black CSS file for web pages in general, and with my past expertise in CSS, I attacked this challenge with relish! It reminded me of the time I realized that Dashboard widgets are, at their core, nothing but little web pages (as are simply apps for the iPhone). In tackling this one, the main question was, How should the various elements look? And the hardest part was inspecting the various parts in of the Inspector in great detail to determine which CSS rules governed their default appearance and behavior.
As I discovered, the WebKit has a a sub-framework called "WebCore," which in turn has a folder of resources specifically for the Web Inspector. In the Inspector folder, among other things, is a suite of CSS files that handle different aspects of the Inspector's design and behavior. Of these, the primary one I needed to tweak was called simply "inspector.css."
Crystal Black is a theme for Mac OS X "Snow Leopard" that I'm still refining and plan to release eventually. I published a preview of the theme last fall, and a few weeks ago released a Crystal Black theme for iTunes. The skins for both iTunes and CoverSutra will, of course, be included in the full theme once it's out.
Like many themers for Mac OS X 10.3 ("Panther"), I was awed by the beta releases of a theme called "Cathode" back in 2004. An artist named Dragun took the theme through a few iterations and then abruptly halted development.
Those of us who used ShapeShifter to run Cathode on our Macs understood why. Although Cathode was beautiful, in practice it was impractical. There were too many elements of too many applications that resisted a dark theme for buttons and window backgrounds.
For me, however—and I'm sure for many theming fans—the dream of using a beautiful black theme like Cathode was a siren call impossible to forget. Over the years, the dream receded further from our grasp because of roadblocks Apple erected—intentionally or not—to the existing mechanisms of theming Mac OS X.
Starting with Mac OS X 10.5 ("Leopard") in 2007, the main tool for applying Mac themes, ShapeShifter, went bye-bye and has never returned. This is one of the main reasons I continued development of CrystalClear Interface, because it was the only way for me to apply a fully realized theme to Mac OS X.
Since Leopard, themers have been able to finesse the problem by changing the system graphics files that apply buttons, menubar background, basic window shape and color, and a few other items to your window appearance. Despite best efforts to unravel the secrets of the Mac's new ways of drawing itself, this mechanism isn't able to consistently change text color in the many contexts in which it appears in a window, thus making design and use of dark theme impractical.
As I'll describe in a future article, tackling the design of Crystal Black, a new theme inspired by Cathode, has been far from easy. And there remain user interface elements that totally resist its charms. But for me, those elements are few enough to make Crystal Black practical.
At this point, I'm confident that I'll be able to complete Crystal Black and release it at some point for all Mac users of Snow Leopard (Mac OS X 10.6). The theme is an offshoot of CrystalClear Interface (CCI) and uses much of the same code. However, Crystal Black is much simpler, has a smaller impact on the operating system, and is compatible with many more applications than CCI. Also unlike CCI, Crystal Black provides a complete theme for iTunes 10.
I recently released a major new version of CrystalClear Interface (CCI). Among the most significant enhancements in version 2.5 are its full compatibility with Mac OS X 10.6 ("Snow Leopard") and its ability to finally theme the Finder. Because of new limitations to system add-ons imposed by Apple, taming Snow Leopard has been a daunting challenge, but the final outcome is a version of CCI that's the most stable, robust, and compatible yet. The extended struggle with Snow Leopard over the winter is one of the primary reasons I've decided to require a license fee for CCI 2.5 ($12.00).
Besides the set of Crystal Document icons previewed recently, another feature of the forthcoming CrystalClear Interface 2.5 is a new set of eight beautiful preset themes, shown below. (Click the images for a closer look.) The themes are designed to complement the eight Frosted Crystals desktop pictures released with CCI 2.2. Of course, you can still set colors, frames, and transparency settings for Mac OS X windows to your own taste, as always. The preset themes are ones I've enjoyed and find a convenient shortcut to designing custom themes.
This is a set of 74 document icons intended to complement CrystalClear Interface and the set of Crystal Albook system and application icons I released a couple of years ago. The set covers most of the document types used by Apple's applications as well as a limited set of document types for third-party applications. The icon set for third-party apps will be augmented substantially as time permits.
These icons are available for download now, and they will be included in the forthcoming release of CrystalClear Interface 2.5 (more on that in another article). In CCI 2.5, you will be able to automatically install and uninstall the various icon sets displayed below, including any of the Crystal Docs icons for any of the third-party applications you use. The new icon install feature will be included in the new CCI Preferences window.
I posted the new version of CrystalClear Interface a few days ago, and then proceeded to hunt down and squash a couple of last-minute bugs. Yesterday, I was also moved to make one of the hard-wired features a configurable option. While not as dramatic an upgrade as version 2.1, CCI 2.2 nevertheless has a large number of new features, enhanced features, and bug fixes, as well a great deal of code optimizing. This article summarizes the more significant changes since version 2.1 was released in June.
These are snippets of the 9 "Frosted Crystal" desktop pictures that'll be distributed with CrystalClear Interface 2.2. The look of frosted glass looks terrific when viewed through CrystalClear windows! I hope you enjoy using them as much as I have.
The Transparent Experiment Lives!
CrystalClear Interface 2.0 will soon enter a public beta release. This is a major step from the previous version, released in March 2008 and described in the Mars article:
Those of you who found CCI 1.9 outlandish no doubt find that version 2.0 sets a new standard for outlandishness.
Looking back,This is an update to the article I wrote last summer, when Safari 3.0 was first released. In the 9 months since then, a lot has happened, and I wanted to try to keep this info up to date. Opera, iCab, Konqueror, and Firefox have all made progress in adopting CSS 3.0 specifications, the next generation of the W3C's Cascading Style Sheets standard.
However, the WebKit team continues to lead the pack, as they have since I first contemplated this article over a year ago. In the last 6 months, that team has not only adopted more of the CSS 3.0 specs ahead of the others, but they have proposed several exciting new specs of their own, which the W3C is taking up as draft recommendations.
In addition to updating the state of CSS 3.0 in WebKit/Safari, I've also added some new demos for the Backgrounds section.
Here are the CSS 3.0 features I wrote about in July 2007:
- Box-shadow: Yes! Add drop shadows through CSS!
- Multi-column layout: Can we really do this now? With HTML?
- Rounded corners: Any can be made round.
- Colors with transparency: There goes another ugly hack from way back!
- Background image controls: Remember how great it was when you could add images as well as colors to an element's background CSS style? Well, it's about to get a whole lot better!
And since then, WebKit and Safari 3.1 have adopted the following new ones:
- Adopted last October, WebKit introduced its first take at CSS Transforms, which it has submitted to the W3C for consideration. With CSS Transforms,
- Announced at the same time is the equally exciting implementation of CSS Animations. At the moment, the only type of animation that's documented and demonstrated on the WebKit blog is based on CSS Transitions, which let you define how an object or attribute changes over time from one state to another.
- Also in October, WebKit added the CSS Web Fonts feature, which lets designers beam fonts to users through CSS and HTML, approximating the capabilities of PDF in a much lighter-weight form.
- Then, after a lull, things started to heat up again last month, when Apple released Safari 3.1. Safari 3.1 incorporated all of the CSS 3.0 features WebKit had pioneered earlier, plus it added a bunch of things the WebKit team hadn't blogged about. Chief among these was support for CSS Attribute Selectors. This is something of a holy grail to advanced web developers, since it opens up a whole world of possibilities for using the Document Object Model (DOM) to build better web interfaces. When released, WebKit was the first and only browser to support this geeky, but highly practical feature.
- And then, just today, WebKit added support for CSS Gradients to its portfolio. Gradients are not yet a CSS 3.0 specification, but they are part of the HTML 5.0 spec. No doubt Apple's implementation will be referred to the W3C for consideration.
This release fixes a problem with the uninstaller, and is otherwise the same as 1.9.0. (Note: Today’s update fixes the error in yesterday’s release, which inadvertently still had the 1.9.0 installer. Sorry about that!) The uninstaller now runs a new utility, GraphicsToggle, after running the installer/uninstaller, and this takes care of making sure the Leopard graphics are fully restored. See the documentation included with the download for more information about GraphicsToggle.
This unexpected journey into the realm of transparent user interfaces has taken me much further than I ever imagined. It's been almost a year now since the first inkling of the idea rattled my brain, which led to the first release of Crystal Clear for ShapeShifter in mid-February.
Thanks to the Cocoa InputManager SetAlphaValue, I was led, Pied-Piper-like, into the enormous and strange world of Objective-C and Cocoa during the summer. I'm finally surfacing from that expedition and have brought a souvenir of my travels into the strange, terrifying, and glorious realm of Cocoa.
Each computer user will have to decide for themselves just how much transparency they can stand while working at their Mac. I was surprised at the amount of loathing that was expressed towards Leopard's newly translucent menubar last month. But I don't think it's indicative of any permanent flaw in the concept. Quite the contrary, in fact: If anything, Leopard's toying with translucency is too much of a baby step, on the one hand, and smacks of me-tooism with Vista, on the other.
Very briefly, the premise I'm proposing is that our computer monitors are essentially glorious light sources, much like the ones that shine through windows in our houses and automobiles. Just as we do with those windows, there are times when we want to bask in the beauty shining through, and other times that we prefer to close the blinds to avoid glare. On the computer, we already know how to close the blinds. I'm suggesting that there's a world of beauty awaiting computer users who can enjoy the light as well.
I can’t believe it’s been 2 months since I published the preview article for Crystal Clear 1.5! What was going to be a 2-3 week project after that turned into a monster of a project that’s taken me on several journeys into the bowels of Mac OS X and Cocoa, the primary framework for building Mac OS X software in the programming language Objective-C. But the story of those journeys–if I ever have time to write them down–is an article unto itself.
Today, I just want to briefly report what’s going on with Crystal Clear. Besides the features noted in August, the screen movie above shows a variety of noteworthy advances, some obvious and some not so obvious. Here are the ones I want to point out in particular:
A lively discussion and exchange of information occurred recently on Hawk Wings, the blog site mostly devoted to news and resources for users of Apple’s terrific Mail program. A colleague at work sent me a message on Tuesday, excited when word on Hawk Wings started circulating about a “vacuum” process available for SQLite databases that appeared to dramatically speed up Apple Mail. He had tried the recommended vacuuming and definitely noticed peppier Mail performance. One thing led to another, and before I knew it, I’d become engrossed in developing and polishing up an AppleScript utility to automate a periodic vacuuming of my Mail, which I’m of course dubbing VacuumMail.
As the Hawk Wings discussion unfolded, we learned that Mail maintains an SQLite database called “Envelope Index” in your ~/Library/Mail folder, which gradually grows as the number of emails in your mailbox does. Natively, Mail performs no optimizations on this critical database, which contains pointers to all of your mail that become fragmented and somewhat disorganized over time. At the office, my Envelope Index file was over 100mb, and at home it’s about 30mb. SQLite offers a “vacuum” command that rewrites the Envelope Index, optimizing and reorganizing it for faster access. It sounds a bit like what happens when Mac OS X defragments your hard drive periodically.
At first, news of this function took the form of a shell command you can run in Terminal. It was quite interesting and exciting to see how the Mac users reading of this learned more about it as information was shared, and the command itself became more concise and precise as the day went on. Other users discovered that SQLite offers an “autovacuum” process that can do vacuuming without prompting, and I’m sure that’s a great thing as well. However, we also learned that vacuuming is a more robust and thorough optimizing of the file, since it actually analyzes and rewrites the whole thing, whereas autovacuuming acts only on a certain recent portion of mail pointers. The basic Terminal command turns out to be:
sqlite3 ~/Library/Mail/Envelope Index vacuum;
If you’re a Mac user who’s wandered in to this article and don’t know what Growl is yet, you might want to stop by that essential open-source project’s home page to get acquainted. Once your Mac starts Growling, you’ll understand how fitting it is that Apple’s naming all their OS X releases after large cats.
If you’re a Windows user, you’re still welcome to read up on Growl and why it’s become a standard component of so many Mac users’ desktops even though it’s still only at version 0.7.4. If you find Growl cool, too, you know what to do.
This article isn’t about Growl, though. It’s about Growl displays—the part of Growl you actually see when an event occurs you’ve asked to be notified about. You see, like many other cool apps nowadays (Adium, Synergy, Menuet, etc.), Growl is “skinnable.” Part of the fun—and the utility—of Growl is that users can customize the appearance of different kinds of alerts. In fact, Growl provides you with an astonishing degree of control over your customizing, and this flexibility is one of Growl’s coolest aspects. Using the Growl Preference Pane, you can:
- Set a default Growl style as your starting point.
- Customize certain aspects of each Growl style. Some styles let you set different attributes for up to 5 different priority levels.
- Assign a default style to each different application that’s registered with Growl. (Here’s a growing list of Mac OS X applications that now include support for Growl event notifications.)
- Override the default for any specific notification event, or for a given event priority.
With so many options, it’s no wonder that Growl users collect Growl styles like some Mac users collect system icons or desktop pictures!
Growl notifications can take several forms: Email, speech (using the Mac’s built-in vocal chords), or visual displays. The visual display types are roughly broken down into two kinds:
- Displays you build with AppleScript or xCode (those with the extension .growlView), and
- Displays that are basically just little web pages (those with the extension .growlStyle).
It’s the latter type I want to briefly shout about today.
Although I’ve been developing websites with MySQL for over 7 years now, until recently I had almost always used phpMyAdmin to manage my databases. phpMyAdmin is such an excellent web application and makes managing MySQL so easy that the only time I strayed was when it wasn’t available on the host server (which was very rare). When I needed a desktop MySQL client, I had turned to YourSQL, which I determined a couple of years ago was the best for me when connecting to MySQL from Mac OS X.
For various reasons that I won’t bore readers with here, I found myself needing a Mac desktop client for MySQL again recently, so I took the opportunity to review the market once again. What surprised me most, I suppose, is how many options there are for Mac OS X users who do a little light database work. (Caveat: I am by no means a database administrator, and my knowledge of SQL and MySQL is merely sufficient to develop web applications—meaning, I can build tables, relate tables, and build queries for those tables. The tools reviewed here are from this use case alone.) In the course of testing, I tried out nine different database apps:
- Aqua Data Studio
- iSQL Viewer
- MySQL Query Browser
In our modern, interconnected, always-on age, knowing one’s IP address comes in real handy at times. Knowing your IP address isn’t quite as important as knowing what time it is, but it helps to have an IP clock handy when you need it.
I’ve dabbled with quite a few solutions to this problem over the last few years, and there are a large number of decent IP clocks available… most of them for free. In my IP ramblings, I’ve ruled out solutions that work only in the Dock and ones that put an IP address right in your menubar. I don’t use the Dock that much anymore (between Quicksilver, ClawMenu, Dashboard, and menubar widgets, I don’t need it), except in its application switcher form. And IP addresses printed directly in the menubar take up too much valuable space and are invariably ugly.
Like many of you who develop on the Mac, I was amazed and very impressed by the WebKit team’s Web Inspector tool when it was unveiled in January. However, it was clearly not yet complete… two critical tabfulls of data were missing, which kept me turning to other tools—like the excellent Firebug for Firefox—when getting into a serious debugging session.
Well, tonight I was delighted to discover that the wait is over! On downloading a new build of WebKit today, I found that Web Inspector finally can provide those critical Metrics and Properties of each DOM element on my web pages. And boy, have they done a great job in the implementation! Every bit as cool and functional as the original bits, so I can now get all the details on any element of the page with a right-click of my mouse (control-click for some folks) and a simple selection of “Inspect Element.” Now come on Firebug fans, don’t you wish you could inspect an element that easily? Not that it’s hard with Firebug, but I always say, “Save a millisecond here and a millisecond there, and pretty soon you’ve saved a whole second!” (Just kidding… I never said that before.)
I admit I was skeptical when Yahoo took over Konfabulator last year.Â Apple had released Dashboard for Mac OS X 10.4 (”Tiger”), which had some clear advantages over the old Konfabulator widget model.Â The first time or two I tried the Yahoo widgets, I was singularly unimpressed not only with the performance of the widgets but also with their quality. They reminded me of why I had never been impressed with Konfabulator, although I’m sure Konfabulator’s wanting money for their product had something to do with that, too.
Also there was Yahoo! itself… a company that until the last 12 months or so had been growing more conservative, more commercial, more corporate, and less fun than the Yahoo I started loving 10 years ago. Not only that, but Yahoo appeared to be less and less friendly toward the world’s Mac-minded minority. I had grown so disenchanted with Yahoo mail that I finally gave up last summer and packed my bags for the terrific IMAP mail service called Fastmail. So it was a bit of a surprise when Yahoo wandered into territory that originally had been 100% populated by Mac-type aliens. Clearly, the visionaries had regained some influence at the company, as other recent smart moves testify (see all the cutting edge Yahoo goodies at the Yahoo Developer Network).
So, when I downloaded the Yahoo Widget Engine (YWE) 3.0 in December, I was pleasantly surprised to notice that things had changed quite a bit.Â Setting it aside until last month, YWE 3.1, the latest release as of this writing, confirmed my first impressions. YWE widgets are now very well behaved, for the most part, and take no more system resources than Dashboard widgets do.Â Plus there are actually some widgets that don’t have good Dashboard counterparts.
But finding more great widgets isn’t the only thing that’s made YWE a standard part of my desktop.Â What I really admire is the YWE implementation of widgets, which has firmed up my longstanding view that Apple needs to modify the Dashboard concept to make it more flexible, if they want Mac users to truly embrace widget-dom.Â The particular traits I admire are nothing new… they were standard in Konfabulator, and there’s one application for Mac OS X called Amnesty that will emulate the concept. I have stubbornly refused to pay the $20 that Mesa Dynamics wants for Amnesty, especially now that I use YWE, which does most of Amnesty’s tricks for free.Â So what exactly are those tricks?
- Run widgets like normal applications outside of Dashboard
- Easily change a widget’s “window level”–meaning, where it resides starting from the desktop itself up to a window that floats persistently above all regular windows, with several layers in between.
- Ability to lock a widget in place
- Ability to set transparency for a widget.
- Ability to access widgets–and their preferences–from a handy menubar item.
- Ability to stop and start the widget layer as the need arises.
I’m very pleased to report that the trend is moving strongly toward full compatibility. Of the eight new libraries, a full five of them achieve top grades of “A”. That’s a much higher percentage of the total than in March, and of the three non-A libraries, only one was a D (D+ actually). One was graded C+ and the other B. Of the revisited libraries, I was able to raise grades for three–Backbase, ICEfaces, and MochiKit. Only one library had a lower grade (Rico, down from A- to B), and the rest were unchanged.
Only two of the 8 new libraries have commercial licenses you’d have to pay for, and in one case you are really only paying for the IDE. Three of the new libraries require a java server architecture in order to be happy, one would prefer Cold Fusion, and the others are pure client libraries that are agnostic with respect to the application server. One library was added just a couple of days ago (Jitsu), and I haven’t had time to review it yet–but you’ll find it summarized here with the rest. Only one of these 16 libraries is DHTML with no Ajax controls–Uize. Even without Ajax, however, I think you’ll find Uize to be one of the most interesting here–especially in terms of visual richness.
3. Use Real Productivity Applications To Get Work Done Faster, Easier
As inventors of new tools have done throughout human history, the visionaries who designed and built the first personal computers saw them as tools that would provide an immense boost to human productivity. And they weren’t just thinking about business productivity, folks. They were also thinking of personal productivity: Getting more things done faster so we’d have more leisure time.
Today, in our Microsoft-Windows dominated world, we use the term “productivity application” to refer to Microsoft Office, and we think of the personal computer as a business tool. (Quick: Do a Google search for that term–”productivity application”–and see what you get.) But has Microsoft Office provided us with more leisure time? Of course not. Microsoft Office is a business tool that replaced prior, non-electronic tools like the typewriter and pencil. If it has enhanced productivity at all (and that is arguable), the productivity gain has come in the form of more output per worker… not more leisure time for the individual. In any case, whatever productivity impact Microsoft Office and its ilk had on the business world was completed many years ago. Yet even for businesses, productivity didn’t stop with improving our ability to prepare reports and memos, or compile numbers in spreadsheets, or do overlays for a presentation in PowerPoint.
Productivity goes up whenever you can suddenly do a task in less time than before, either at home or at work. Since its beginnings with the original Apple computer, Apple has appeared to be pursuing a vision that steadily expands the personal computer’s potential to save you time… to do complicated things simpler. Apple’s operating system recognizes that this kind of productivity gain begins with the simplest interface to the computer: Finding things, opening applications, printing, opening documents, organizing information, and the like. As a result of this vision, Mac OS X has two built-in features that are simply lacking in Windows, and they enable “productivity” applications that are truly the envy of the Windows world:
Lately, I’ve been on a bit of a rampage on the subject of cross-browser compatibility, becoming especially incensed by prominent websites and web 2.0 applications that don’t work in Apple’s Safari browser. I know some of you are sympathetic, but think I should just be pleased that these sites work in Mozilla Firefox, which runs on all platforms known to man (or woman (or Martian)).
Yes, it’s definitely worth celebrating that Firefox has broken through the stranglehold with which Microsoft’s Internet Explorer had gripped the industry for so long, providing not just a viable alternative, but a demonstrably superior web browsing experience. Firefox is the descendent of Netscape Navigator that’s finally returned to beat off the IE interloper, and it has a huge following among developers as well as users.
But there are a number of other excellent web browsers that get shortchanged when a company is testing its site or application in only IE and Firefox. For as good as Firefox is, it’s not the best in all aspects of web browsing, either on Windows or the Mac. This article highlights a few facts about the browser market and points to some really useful features found in non-IE, non-Mozilla browsers that explain why users remain devoted to them and, like me, continue to raise a stink when they are ignored. The other two browsers I use pretty much every day, in addition to Firefox, are Opera and Safari.
I have been among the developers and observers who have praised Yahoo for the technical strength of their recently launched User Interface Library. In my tests for the Ajax/DHTML Scorecard project in March, Yahoo’s library was a clear “A” in its cross-browser credentials, and I was very impressed with Yahoo’s development team, which published clear and exacting browser standards for their library.
According to Yahoo’s own Graded Browser Support table, Safari is an A-graded browser, meaning it achieves the highest level of support possible with the Yahoo interface library. Clearly, the thought that went into this table is impressive, and the authors conclude the explanation that precedes the table itself with an appropriate quote from Tim Berners-Lee on the importance of cross-browser support:
â€œAnyone who slaps a â€˜this page is best viewed with Browser Xâ€™ label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.â€
It is therefore highly disappointing and disillusioning to discover tonight that Yahoo has released a preview of its new, Ajax-enabled home page with support only for Internet Explorer 6.0 and Firefox 1.5. The only logic one can use to justify such a move is based on a totally PC-centric viewpoint, which argues that only Windows users are worth troubling with, since they comprise the vast majority of potential viewers. But this is precisely the viewpoint that must cease if Web 2.0 is to become the fertile melting ground for truly cross-platform interdependence that it wants to be. It’s simply not the viewpoint of any company that really cares about Berners-Lee’s vision or about the millions of users on platforms other than the virus- and malware-riddled mess that is Microsoft Windows today.
Today’s case is an Ajax/DHTML “tutorial” which has been advertised on a couple of websites that a lot of folks in the Ajax community rely on for good tips and pointers. Unfortunately, the only thing the script is a good example of is cross-browser carelessness, or perhaps simply cross-browser “couldn’t care less”-ness on the part of the developer.
It’s interesting that 2 months after an Adaptive Path essay coined the term “Ajax,” Apple released Mac OS X 10.4 “Tiger”, with its amazing and powerful dashboard widgets system. Within a couple of months, there were over 1,000 widgets available on the web, and these little babies were capable of completely replacing (almost all for free!) a number of system utilities, menubar items, and whole applications on the Mac. I’m tempted to think that awareness of Apple’s widgets helped promote awareness of, and interest in, what could be accomplished with rich Ajax/DHTML toolkits. After all, widgets are simply little Ajax/DHTML programs running in a special layer of Mac OS X called the Dashboard… They use exactly the same technologies as all of the Ajax/DHTML libraries, and in fact you can run them inside of Safari outside of the Dashboard.*
And so, it was fitting that when I finally found time to work on a widget I’d been planning to build since last summer, I decided to use one of the leading Ajax/DHTML toolkits rather than Apple’s own, for most of the widget’s functionality. Having done most of my recent DHTML web work with Prototype and its light-hearted, freewheeling sidekick, Script.aculo.us, I naturally turned to those libraries to help me out.
Back in early March when I first released the Ajax/DHTML Scorecard, rating all of the existing Ajax/DHTML toolkits against an ideal cross-browser scale, I rated Atlas an â€œE.â€ So, the good news for Microsoft fans is that Atlas is actually better than that. But not by much.
On April 4, I rescinded the original score after some readers correctly pointed out that I was treating Atlas differently from the other toolkits in the shootout. That’s because Atlas was simply vaporware in early March, and there was nothing to test. As I explained in an update to the article, the â€œEâ€ was based on Microsoft’s past conduct in the cross-browser-support department. Here, they had been very bad big boys. Microsoft is the reason that we have to worry so much about cross-browser support today, so it stood to reason that their entry in the Ajax field would continue their past strategy of steering all users to Microsoft products and away from alternatives.
Though I was skeptical Microsoft had changed its stripes, one writer assured me that
And so, I began testing with an open mind, especially after an Ajax blogger raved about Atlas in an article that was picked up by the No Fluff, Just Stuff RSS feed that I follow. (I’ll have to remember to ignore future articles by Brad Abrams, whose blog after all is hosted by msdn.com…)
Since Abrams was celebrating the release last week of the Atlas Control Toolkit, which includes 9 online demos of different Atlas controls, I decided to start my testing there. Unfortunately, Atlas failed on the very first control, the â€œCascading Drop Down.â€ Though it worked in Firefox on Mac OS X, it failed in both Safari 2 and Opera 9. After going through three or four of these, Atlas was batting a very low score, and I decided to keep track of results more scientifically.
The end result? Of the 9 Atlas controls very publicly celebrated by Microsoft this week, here’s how Atlas rates:
- Firefox, 8 of 9 controls worked
- Safari, 4 1/2 of 9 controls worked
- Opera, 3 1/2 of 9 controls worked
I don’t think you can count this as cross-browser support, folks.
Each of these technologies offered dramatic new ways of presenting information in a web browser, and developers who loved new gadgets glommed on to every advance, racing each other to see who could do the coolest things with these first. A lot of mistakes were made–a lot of really ugly eggs were hatched–but excitement and optimism were the buzz feelings. With Netscape in charge, you felt like you do when working as a protege with a master hacker: Does this guy ever stop pulling amazing tricks out of his sleeve?
One of the promises of Netscape’s vision was that the web–and, in particular, the web browser–could make one’s choice of operating system irrelevant. The web could level the computing playing field, since applications built for the web were applications for all, regardless of what OS you happened to prefer. What worked for NeXT, OS/2, Irix, Solaris, and Windows would also work just fine on Linux, Mac OS, Be OS, HP-UX, and BSD. The web browser could be the OS, and the only limiting factor in what you could do would be your hardware and connection speed. Microsoft’s lock on the computer desktop could be broken, and new competitors in operating systems and computers could unleash the full potential of the personal computer to improve our lives–both at work and at leisure.
Only, it didn’t quite turn out that way.