Yahoo! Widget Engine
Encyclopedia
Yahoo! Widgets is a free application platform for Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. The software was previously called Konfabulator, but after being acquired by computer services company Yahoo!
Yahoo!
Yahoo! Inc. is an American multinational internet corporation headquartered in Sunnyvale, California, United States. The company is perhaps best known for its web portal, search engine , Yahoo! Directory, Yahoo! Mail, Yahoo! News, Yahoo! Groups, Yahoo! Answers, advertising, online mapping ,...

 it was rebranded. The name Konfabulator was subsequently reinstated as the name of the underlying rendering engine. The engine uses a JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 runtime
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

 environment combined with an XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

 interpreter to run small applications referred to as widgets, and hence is part of a class of software
Computer software
Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

 applications called widget engine
Widget engine
In computer software, a widget engine is a software service available to users for running and displaying applets on a graphical user interface, such as that of the desktop.The widget model in widget engines is attractive because of ease of development...

s.

Features

Yahoo! Widget Engine includes some default widgets to get users started, including a weather widget, a digital clock, and a calendar among other things. Some of the most downloaded ones include a world timezone clock, dedicated countdown timers, simple RSS
RSS (file format)
RSS is a family of web feed formats used to publish frequently updated works—such as blog entries, news headlines, audio, and video—in a standardized format...

 feed readers, and webcam
Webcam
A webcam is a video camera that feeds its images in real time to a computer or computer network, often via USB, ethernet, or Wi-Fi.Their most popular use is the establishment of video links, permitting computers to act as videophones or videoconference stations. This common use as a video camera...

 viewers.

Each widget runs in its own system process
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

, 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.

Heads-Up Display/Konsposé

Yahoo! Widgets provides a feature that can quickly bring all open widgets to the top of the desktop
Desktop environment
In graphical computing, a desktop environment commonly refers to a style of graphical user interface derived from the desktop metaphor that is seen on most modern personal computers. These GUIs help the user in easily accessing, configuring, and modifying many important and frequently accessed...

. 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. Initially called Konsposé (alluding to Mac OS X's Exposé
Exposé (Mac OS X)
Exposé is a feature of the Mac OS X operating system. First previewed on 23 June 2003 at the Apple Worldwide Developers Conference as a feature of the then forthcoming Mac OS X v10.3, Exposé allows a user to quickly locate an open window, or to hide all windows and show the desktop without the need...

), it was renamed to "Heads-Up Display" with the release of Yahoo! Widget Engine.

(The) Dock

With the introduction of Yahoo! Widget Engine 4.0, the engine has included a feature called the dock. The dock shows all widgets with representative icons. 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 head-up display
Head-Up Display
A head-up display or heads-up display is any transparent display that presents data without requiring users to look away from their usual viewpoints...

. 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 entirely.

Developer/API features

The Yahoo! Widget Engine (Konfabulator) has a very flexible application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 (API) based on JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 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 download webpages from the Internet, as well as file input/output
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

, and animator objects to aid in visual effects. A built in interface allows widget developers to run OS specific code such as shell scripts and COM
COM
COM is the original, yet still common, name of the serial port interface on IBM PC-compatible computers. It might not only refer to physical ports, but also to virtual ports, such as ports created by bluetooth or USB-to-Serial adapters....

 applications on Windows, and AppleScript
AppleScript
AppleScript is a scripting language created by Apple Inc. and built into Macintosh operating systems since System 7. The term "AppleScript" may refer to the scripting system itself, or to particular scripts that are written in the AppleScript language....

 on Mac.

As of Yahoo! Widget Engine 4.0, SQLite
SQLite
SQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard...

 has been included in the engine, allowing developers to create and modify databases. Also included with 4.0 is the Canvas class, which allows vector drawing. 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, so they have 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
CSS
-Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code...

 styles for formatting. Another new feature included in version 4.0 is the ability to automatically check gallery downloaded widgets for updates. Previously only available to official Yahoo! Widgets, this feature was enabled for all third-party widget authors on August 17, 2007.

Yahoo! Widgets 4.5, released on November 29, 2007, introduced support for both WebKit
WebKit
WebKit is a layout engine designed to allow web browsers to render web pages. WebKit powers Google Chrome and Apple Safari and by October 2011 held over 33% of the browser market share between them. It is also used as the basis for the experimental browser included with the Amazon Kindle ebook...

 and Adobe Flash
Adobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...

, allowing development of widgets using HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

 and JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 as well as the capabilities of Flash. The WebKit support does not include plugins, so Flash is supported through the use of a separate native object.

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 $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!
Yahoo!
Yahoo! Inc. is an American multinational internet corporation headquartered in Sunnyvale, California, United States. The company is perhaps best known for its web portal, search engine , Yahoo! Directory, Yahoo! Mail, Yahoo! News, Yahoo! Groups, Yahoo! Answers, advertising, online mapping ,...

. Shortly prior to this, Apple
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...

 released a similar widget engine, Dashboard, as part of its Mac OS X Tiger
Mac OS X v10.4
Mac OS X v10.4 Tiger is the fifth major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers. Tiger was released to the public on 29 April 2005 for US$129.95 as the successor to Mac OS X Panther , which had been released 18 months earlier...

 operating system. Konfabulator's main commercial competitor on the Windows platform is DesktopX
DesktopX
DesktopX is a shareware desktop enhancement program that allows users to build their own custom desktops. Amongst its features is a complete widget engine for Windows as well as a desktop object system. User creations can be exported as .desktop files or as widgets...

, developed by Stardock
Stardock
Stardock Corporation is a software development company founded in 1991 and incorporated in 1993 as Stardock Systems. Stardock initially developed for the OS/2 platform, but was forced to switch to Windows due to the collapse of the OS/2 software market between 1997 and 1998...

. Other programs offering similar functionality include Kapsules
Kapsules
Kapsules is a freeware desktop widget engine for Windows. It makes use of the Windows Scripting Technology, allowing widget designers to use any scripting language that has an ActiveScript engine. Those widgets are then made available on Kapsules' website. , widgets are available in eight...

 and AveDesk
AveDesk
AveDesk is a freeware widget engine for Windows XP that runs small, self-contained widgets called "desklets", as well as ObjectDock "docklets" , and is created by Andreas Verhoeven, a freelance...

 (for Windows), gDesklets
GDesklets
gDesklets is a GNOME program which provides the architecture for small applets to be placed on top of the user's desktop. It is comparable to other desktop widget programs...

 (for GNOME
GNOME
GNOME is a desktop environment and graphical user interface that runs on top of a computer operating system. It is composed entirely of free and open source software...

), and SuperKaramba
SuperKaramba
SuperKaramba is a tool that allows one to easily create functionality enhancement modules on a KDE desktop. Currently, only Linux is officially supported, although it also works well on FreeBSD and NetBSD...

 (for KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

).

The JavaScript engine used by Konfabulator uses the Mozilla
Mozilla
Mozilla is a term used in a number of ways in relation to the Mozilla.org project and the Mozilla Foundation, their defunct commercial predecessor Netscape Communications Corporation, and their related application software....

 SpiderMonkey
SpiderMonkey
SpiderMonkey is the code name for the first-ever JavaScript engine, written by Brendan Eich at Netscape Communications, later released as open source and now maintained by the Mozilla Foundation.-History:Eich "wrote JavaScript in ten days" in 1995,...

 implementation, and conforms to the Mozilla JavaScript version 1.5 standards (equivalent to ECMAScript
ECMAScript
ECMAScript is the scripting language standardized by Ecma International in the ECMA-262 specification and ISO/IEC 16262. The language is widely used for client-side scripting on the web, in the form of several well-known dialects such as JavaScript, JScript, and ActionScript.- History :JavaScript...

 262 edition 3, with Mozilla extensions).

The idea of Konfabulator originated in 1998, when Arlo Rose saw how he could skin
Skin (computing)
In computing, a skin is a custom graphical appearance achieved by the use of a graphical user interface that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users....

 the MP3
MP3
MPEG-1 or MPEG-2 Audio Layer III, more commonly referred to as MP3, is a patented digital audio encoding format using a form of lossy data compression...

 media player running on his computer. His idea was to "skin any information you wanted to see on your desktop."

Prior to this, he had experience with Kaleidoscope, a skinning program for the Apple Macintosh operating systems, akin to WindowBlinds
WindowBlinds
WindowBlinds is a computer program that allows users to skin the Windows graphical user interface. It has been developed by Stardock since 1998, and is the most popular component of their flagship software suite, Object Desktop. It is also available separately, and as an ActiveX/COM component...

. He coined the term "Konfabulator" to describe his idea, and then tried pitching his idea to other software programmers
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...

. 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, Rose and Clarke launched version 1.0 of Konfabulator. Before the launch, Rose 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, Rose and Clarke had to quit their jobs to work on Konfabulator full-time.

In July 2003, Rose and Clarke 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, Rose persuaded Ed Voas (who was then a friend of Rose and had 10 years of software programming experience at Apple Computer
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...

, 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
Prototype
A prototype is an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from.The word prototype derives from the Greek πρωτότυπον , "primitive form", neutral of πρωτότυπος , "original, primitive", from πρῶτος , "first" and τύπος ,...

 and presented it to the Konfabulator development team within two days.

In November 2004, Konfabulator 1.8, the first cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 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, however, platform-specific.

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 API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s 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 widgets and the Konfabulator framework.

On May 23, 2006, the Universal binary
Universal binary
A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.With the release of Mac OS X Snow...

 of the Yahoo! Widget Engine, version 3.1.4, was made available to users of Intel-based Macintosh computers.

In August 2006, Perry Clarke, the original engineer of the Mac version of the widget engine, left the Yahoo! Widgets team, followed later by Arlo Rose himself. In August 2008, Ed Voas, who developed the first Windows version of Konfabulator, also left the team.

External links


Dashboard and Konfabulator comparisons

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK