User:Drevor/Konfab

'''Yahoo! Widgets''' is a free application platform for Mac OS X and Microsoft Windows. The software was previously called Konfabulator, but after being acquired by computer services company Yahoo! it was rebranded. The name Konfabulator was subsequently reinstated as the name of the underlying rendering engine. The engine uses a JavaScript runtime environment combined with an XML interpreter to run small applications referred to as Widgets, and hence is part of a class of software applications called widget engines.

Note the uppercase "W" in Widget; this is the proper use of capitalization when referring to the actual applets that Yahoo! Widget Engine runs. The aforementioned use of capitalization is unique to this particular widget engine.

Features
thumbnail|right|Yahoo! Widgets running under Windows XP with 'Heads Up' enabled. Yahoo Widgets includes some default Widgets to get users started, including a weather Widget, a digital clock, and a calendar among other things. However, many will want to customize their desktop and look for Widgets that perform tasks not met by the default set of Widgets. Some of the more popular ones include a world timezone clock, dedicated countdown timers, simple RSS feed readers, and webcam viewers. You can get these wide variety of widgets from their website

Each Widget runs in its own system process, separate from other Widgets and the main Konfabulator system process itself, thus improving the stability of the software application as a whole. Should a problem occur with a Konfabulator Widget requiring it to be shut down, that particular Widget can be shut down without affecting other Widgets or the main Konfabulator application. A disadvantage of doing this, however, is the extra computer memory needed for each process to run. Computer users who are careful about computer memory usage or run computer memory-intensive software applications usually point this out as the main disadvantage or their main concern about Konfabulator.

Heads-Up Display/Konsposé
Konfabulator was the first widget engine to provide a feature that could quickly bring all open Widgets to the top of the desktop. Called Konsposé (alluding to Mac OS X's Exposé), it can be activated by pressing a hotkey (set by the user). This causes all Widgets to be brought to the foreground, and all other applications to be dimmed. Widgets can also be set to be Konsposé-only, meaning that they will only appear when Konsposé is activated.

With the release of Yahoo! Widget Engine, Konsposé was renamed to "Heads-Up Display". It functions just like Konsposé and differs only in name.

(The) Dock
With the introduction of Yahoo! Widget Engine 4.0, the engine has included a feature called the dock. The dock shows all currently open Widgets with representative icons and allows users to expand the dock to show all Widgets inside the users "My Widgets" folder. Widgets that do not specify images are either provided with their screen-shot from the official Widget gallery or the default Widget icon, both shown on the right. When rolled over with the mouse, the dock helps users manage their Widgets with buttons to close a Widget, show a Widget's preferences, and reveal a Widget from the Heads-up Display. For users who prefer not to have a dock visible all the time, the dock has options to auto-hide when not active, or even close the dock entirely.

Developer/API Features
The Yahoo! Widget Engine (Konfabulator) has an very flexible Application Programming Interface (API) based around JavaScript with many features useful to developers. A few basic features include items such as text-areas, images, and timers. Other features include the ability to make "calls" to the Internet to retrieve webpages, RSS, or interact with online scripts, as well as file IO (the ability to write, delete, and otherwise manage files), and Animator objects to aid in visual effects. A built in interface allows Widget developers to run OS specific code such as a shell scripts and COM applications on Windows, and AppleScript on Mac.

As of Yahoo! Widget Engine 4.0, SQLite has been included in the engine, allowing developers to create and modify databases. Also included with 4.0 is Canvas. In simple terms, Canvas allows developers to create Widgets without a single image or create simple drawing programs. However because Widgets are based around JavaScript, the only real limit is the developers imagination. Canvas "images" can be saved to either a JPG or PNG image file. With the introduction of the dock, Widgets can set their own dock icons. Dock icons support a small subset of the engine's features, such as the ability to display multiple images and text. This is useful to Widgets designed to be such things as a clock, or a weather forecaster. Also added to text objects is support for simple CSS styles for formatting.

Another new feature included in version 4.0 is the ability to automatically check gallery downloaded Widgets for updates, but as of August 2, 2007, the feature has not been activated. Currently, only official Yahoo! widgets report updates. Official developers have stated that as soon as they "throw a switch on the server", it will become active for all Widgets.

Initial development
Yahoo! Widgets was originally developed as Konfabulator, by a core development team consisting of Arlo Rose, Perry Clarke, and Ed Voas. Originally released on February 10 2003 as a Mac OS X only application which cost US$24.95 (and later, with the release of version 2.0, US$19.95), its Windows version was released on November 8, 2004 with the release of version Konfabulator 1.8, and made freeware with the release of Konfabulator 2.1 on July 25 2005, when it was sold to Yahoo!. Shortly prior to this, Apple released a similar widget engine, Dashboard, as part of its Mac OS X Tiger operating system. Konfabulator's main commercial competitor on the Windows platform is DesktopX, developed by Stardock. Other programs offering similar functionality include Kapsules and AveDesk (for Windows), gDesklets (for GNOME), and SuperKaramba (for KDE).

The JavaScript engine used by Konfabulator uses the Mozilla SpiderMonkey implementation, and conforms to the Mozilla JavaScript version 1.5 standards (equivalent to ECMAScript 262 edition 3, with Mozilla extensions).

According to the online comic strip depicting Konfabulator's history on Konfabulator's web site, the idea of Konfabulator originated in 1998 when Arlo Rose saw how he could skin the MP3 media player running on his computer. His idea was to "skin any information you wanted to see on your desktop", to quote the comic strip.

Prior to this, he had experience with Kaleidoscope, a skinning program for the Apple Macintosh operating systems, akin to WindowBlinds. He coined the term "Konfabulator" to describe his idea, and then tried pitching his idea to other software programmers. He was unsuccessful until the year 2002, when Perry Clarke (who would later become one of the core developers of Konfabulator) heard about his idea and agreed to work with him on the project.

On February 10, 2003, Arlo and Perry launched version 1.0 of Konfabulator. Before the launch, Arlo created a teaser web site asking visitors what Konfabulator is, while it was still in development. When it was finally released, users of Konfabulator were highly impressed with the idea of Widgets, and its popularity soared as a result, something which surprised the developers of Konfabulator. Due to its popularity, Arlo and Perry had to quit their jobs to work on Konfabulator full-time.

In July 2003, Arlo and Perry started working on a Windows version with another software programmer, but internal differences broke them up and they were forced to scrap the work already done. Later, Arlo persuaded Ed Voas (who was then a friend of Arlo and had 10 years of software programming experience at Apple Computer, and would later become the third member of Konfabulator's core development team) to develop a Windows version for them. Initially he declined, but later he created a working prototype and presented it to the Konfabulator development team within two days.

In November 2004, Konfabulator 1.8, the first cross-platform version of Konfabulator, was released. Windows users were pleased with the fact that most Konfabulator Widgets for the Mac OS X operating system could run seamlessly on their Windows machines, and vice-versa, thus making most Konfabulator Widgets truly cross-platform capable (some Widgets developed later were platform specific, though).

A few months later, on May 18, 2005, the first major release of Konfabulator since version 1.0, Konfabulator 2.0 (sometimes shortened to K:2), was released, along with a visual overhaul of Widgets, improved functionality, and a marked down price of US$19.95 from the previous US$24.95 (this was after many users, especially Windows users used to the idea of freeware and other cheaper widget engines, complained about the high price). The popularity of Konfabulator accelerated soon after that, and companies were seeking to use Konfabulator in their projects. In response to the demand for Konfabulator, and to provide a proper information source for Widget developers (some of whom were scraping web sites for information for their Widgets), the Konfabulator development team decided to sell Konfabulator to Yahoo!.

Yahoo! Acquires Konfabulator
On July 25 2005 Konfabulator was acquired by Yahoo!, and Yahoo! released Konfabulator for free. Whilst the Konfabulator framework was renamed Yahoo! Widgets, the underlying engine continued to be branded as Konfabulator until December 2005.

Yahoo! said the reason they purchased Konfabulator was that they wanted an easy way to open up its APIs to the Widget developer community and allow them easy access to the information on the Yahoo! Web site. In doing this, Widgets could be built without having to scrape or search web sites in order to get information regarding the APIs for Widget and the Konfabulator framework.

On May 23 2006, the long-awaited Universal binary of the Yahoo! Widget Engine, version 3.1.4, was made available to users of Intel-based Macintosh computers.

In August of 2006, Perry Clarke, the original engineer of the Mac version of the Widget Engine, left the Widgets team.

"Dashboard versus Konfabulator" Debate
Many people have made comparisons between Konfabulator and Apple's Dashboard, especially after Apple announced the feature while Mac OS X v10.4 was in development. It was a subject of debate on the online community following the few months before Mac OS X Tiger's official release.

One school of thought came to the conclusion that Dashboard was a "rip-off" of Konfabulator. They point out the visual and functional similarities between Dashboard and Konfabulator, and the fact that both programs used the term "widgets" to describe the applications they ran. Indeed, Apple was using the term "gadgets" to describe the widgets Dashboard ran before switching to "widgets" during the course of Mac OS X Tiger's development for unknown reasons, and that both have widgets that used several modern Internet technologies.

An opposing group claims that the idea of Konfabulator was actually not new. They point to Desk Accessories, a feature found in early Apple Macintosh operating systems in 1984. They point out that many of the functions the original Desk Accessories had were similar to what Konfabulator provided (or could provide). Among them were things such as a calculator and a clock. Some even draw the conclusion that Konfabulator is ripping off Apple, and not the other way around.

Both claims were refuted by the article, Mac OS X 10.4 Tiger by John Siracusa. The author of the article points out that none of the Konfabulator developers hold any patents on Konfabulator's implementation. Neither was the idea of an "accessory" application; it had been around for quite some time and has taken on several forms, from the widgets discussed here to full-fledged software applications.

Also, despite the similarities, there are some underlying differences between both programs. The widget engine is different; Konfabulator Widgets use XML and JavaScript. However, Dashboard widgets use HTML and Cascading Style Sheets (CSS) along with JavaScript, and can display themselves in the Safari web browser as if they were web pages. The operation of widgets in both environments is also different; Konfabulator Widgets can be set to be visible on the desktop, as well as to appear only when Konsposé is activated. Also, Konfabulator Widget preferences are usually set using a dialog box, accessible by bringing up the context menu of each Widget. However, Dashboard widgets cannot normally stay on the desktop, and the preferences of each widget is set by "flipping" over the widgets and setting any options on the "back" of the widget itself.

Similar software

 * Apple Mac OS X Dashboard Widgets
 * adesklets (X11)
 * Amazing Brass
 * AveDesk (Windows)
 * DesktopX (Windows)
 * dotWidget Open source widgets engine done in VB6
 * gDesklets (GNOME)
 * Google Desktop (Windows, Mac OS X, Linux)
 * Kapsules (Windows)
 * Litestep (Windows)
 * Microsoft gadgets
 * Samurize (Windows)
 * SuperKaramba (KDE)
 * Windows Sidebar
 * Desktop Sidebar (Windows)

Dashboard and Konfabulator comparisons

 * Comparison of Dashboard and Konfabulator from John Siracusa's review of Mac OS X v10.4 for Ars Technica
 * Comparison of Dashboard and Konfabulator from Daring Fireball's John Gruber

Yahoo! Widget Engine Yahoo! Widget Engine Yahoo! Widget Engine Yahoo! Widget Engine