Key Moments
Desktop Mashups: Combining Web Applications to Make Desktop Productivity Tools
Want to know something specific about what's covered?
We've already dissected every moment. Ask and we will deliver (with timestamps).
Key Moments
Web applications can now be desktop tools using standard languages like XHTML and JavaScript, but combining them with personal data to create truly intelligent applications is the next frontier.
Key Insights
Sidewinder allows any document, including Flash or XHTML, to be transformed into a desktop application without direct control over the original content.
The framework enables web applications to gain desktop-like features such as docking windows, auto-hiding, and transparency, previously only achievable with native code.
JavaScript is treated as a first-class language within Sidewinder, allowing developers to programmatically create and manage desktop application windows and interactions.
Sidewinder promotes significant code reuse, enabling a single web application built with HTML to function as a desktop application or a widget within another application.
The emerging capability involves integrating external web data with a user's accumulated personal data (via microformats, RDFa) to create more context-aware applications.
The ultimate goal is to move beyond simple mashups by intelligently mixing external web data with personal data, anticipating user needs and enhancing interactions.
Bridging the gap between web and desktop applications
The presentation introduces Sidewinder, a framework designed to empower web applications to function as first-class desktop productivity tools. Traditionally, web applications were confined to the browser, while desktop applications required complex native development (e.g., C++, Java). The speaker argues that web applications, with their cloud-based data storage and collaboration benefits, offer significant advantages. However, the browser model itself has limitations, such as the unintuitive save commands or the risk of accidental closure. Concurrently, building traditional desktop applications is deemed too difficult. Sidewinder aims to solve this by enabling web technologies like XHTML and JavaScript to create desktop-like experiences, blurring the lines between the two paradigms. The core philosophy is to leverage existing web standards and applications to build more robust and integrated desktop tools.
Any document can become a desktop application
One of Sidewinder's primary goals is to allow any document, regardless of its origin or whether the developer controls it, to be transformed into a desktop application. This is demonstrated by taking a simple embeddable widget from a site like 'yourminis.com'. Initially, this widget functions as a standard web element. By adding metadata to the XHTML page, Sidewinder can host this widget as a desktop application, allowing it to dock to specific screen positions, auto-hide when not in use, and even achieve transparency by matching a specific background color. This capability extends to applications hosted on external servers, like Adobe's Flex store demo, which can be launched and controlled via command-line arguments passed through the URL, specifying properties like position, auto-hide behavior, and title. This transforms web content into easily accessible desktop tools without altering the original application.
Enhancing web applications with desktop functionalities
Sidewinder equips web applications with features commonly found in traditional desktop environments. Developers can exploit JavaScript as a first-class language within the framework to programmatically create and manage windows. When a web application, such as Gmail within Sidewinder, requests a new window (e.g., to open an email), the Sidewinder framework intercepts this request. Using JavaScript, it can then create a custom window with specific properties—title, docking, auto-hiding, and more—before passing it back to the application. This allows for greater control over the user interface and interaction flow, offering capabilities that go beyond the standard browser window. The framework uses standards like DOM-to-Events to abstract away operating system differences, ensuring cross-platform compatibility for these enhanced interactions.
Promoting code reuse across applications and widgets
A crucial design tenet of Sidewinder is maximizing code reuse. The framework facilitates taking existing web applications or components and repurposing them in various contexts. For instance, an application built using XHTML and XForms to display a NASA video stream could be seamlessly integrated into a larger desktop application. This application might also incorporate other reusable components, such as RSS feeds for NASA news, also built with XForms. Sidewinder allows these independent components to be orchestrated together. Furthermore, a web application like Google Maps, originally designed for a web page, can be transformed into a reusable widget that can be embedded into other applications or displayed multiple times on a single page. This approach significantly reduces development effort by treating applications and widgets as modular, interoperable pieces.
Building desktop applications with web standards
Sidewinder champions the use of web technologies to build not just standalone web applications, but full-fledged desktop applications. The presentation argues against using C++ or Java for 'internet-facing' applications, preferring the efficiency and familiarity of web standards. A compelling example is a chat client; instead of traditional native development, the proposed approach is to containerize sophisticated web-based chat clients within a Sidewinder framework, providing a seamless desktop experience. This hybrid approach combines the power of web applications with the integrated feel of desktop software. The framework supports various application types, including plain text, XHTML, and XForms, and allows for the creation of custom renderers, enabling developers to build complex applications using familiar web languages.
Extending the platform for personalized data integration
The most exciting frontier for Sidewinder is the integration of external web data with a user's personal data. While current mashups primarily combine distributed external data, the vision is to mix this with data accumulated through daily web usage. For example, if a website lists events, Sidewinder could personalize the display based on the user's calendar or holiday schedule, highlighting events they cannot attend or are not interested in. This involves using technologies like microformats and RDFa to embed structured metadata within web pages. The framework can then collect this data as users navigate, storing it in a 'triple store' (a type of database). This collected personal data can then be consumed by other applications, such as a travel map that displays relevant events or meetings, creating a much more intelligent and context-aware user experience.
Towards a meta-aware application environment
The ultimate goal is to create an environment where applications are not just functional but also 'meta-aware'—understanding and leveraging user data to enhance interactions. The speaker envisions a future where applications can proactively inform users about potential conflicts or opportunities, even in casual conversations. For instance, if a user is chatting with their spouse about dinner plans, and the system knows they have a conflicting meeting due to data funneled through the common Sidewinder environment, it could subtly provide that information. This requires the underlying architecture to have access to metadata about everything, enabling intelligent synthesis of disparate data points. This vision represents the next phase of development, moving from creating nimble applications to building a platform that makes user interactions more powerful and flexible by integrating personal context with external information.
Mentioned in This Episode
●Products
●Software & Apps
●Companies
●Organizations
●Concepts
●People Referenced
Building Desktop Productivity Tools with Web Technologies (Sidewinder)
Practical takeaways from this episode
Do This
Avoid This
Common Questions
Sidewinder is a framework that aims to blur the lines between web and desktop applications. It allows web applications and documents to be hosted outside the browser, behaving like traditional desktop applications, and offers enhanced features like docking and transparency.
Topics
Mentioned in this video
An XForms processor that is part of the Sidewinder framework, conforming to the W3C XForms standard.
A website where users can find and embed Flash widgets and gadgets, used as an example of an external application that Sidewinder can host.
Resource Description Framework, a standard model for data interchange used here to load RSS feed data within XForms.
A W3C standard for XML forms for web documents, used as a foundation for Sidewinder.
APIs provided by Google, leveraged in the development of the Sidewinder framework.
A web-based word processor and spreadsheet application that exemplifies cloud data storage and collaboration benefits.
An API that allows for the creation and integration of desktop gadgets.
A webmail application demonstrated running within Sidewinder, showcasing how the framework can augment external web applications with desktop-like features.
A mapping service that is used in examples of Sidewinder applications, showing its integration and reusability as a widget.
A website from which event data was grabbed and stored for display in a Sidewinder application.
A programming language discussed as being overly complex for building internet-facing desktop applications compared to the proposed web-based approach.
A programming language mentioned as a traditional but difficult option for building desktop applications, contrasted with the Sidewinder approach.
The framework developed by export.net that enables web applications to function as desktop applications, offering features like docking, autohiding, and transparency.
A W3C recommendation that allows for linking to specific parts of XML documents, referenced as a similar technique for embedding metadata in URLs for Sidewinder.
Mentioned as an example of business-oriented applications that could be integrated with the Sidewinder framework in the future.
A first-class language within the Sidewinder framework, enabling the creation and control of desktop-like application windows.
A syntax for embedding structured data within HTML pages, used by the Sidewinder framework to extract metadata.
A startup company in England developing the Sidewinder framework.
Mentioned as the provider of the Flex store demo, which was used as an example of an external web application hosted by Sidewinder.
A mapping service used in an example to overlay travel information, contrasting with Google Maps in a later example.
A set of simple, open standard formats at the intersection of a document and the data it represents, used by Sidewinder to extract structured data from web pages.
A W3C standard used for defining interactions between different parts of the Sidewinder environment, abstracting platform-specific details.
More from GoogleTalksArchive
View all 48 summaries
58 minEverything is Miscellaneous
54 minStatistical Aspects of Data Mining (Stats 202) Day 7
45 minKey Phrase Indexing With Controlled Vocabularies
63 minMysteries of the Human Genome
Ask anything from this episode.
Save it, chat with it, and connect it to Claude or ChatGPT. Get cited answers from the actual content — and build your own knowledge base of every podcast and video you care about.
Get Started Free