This specification defines an API that allows Web application authors to spawn background workers running scripts in parallel to their main page. This allows for thread-like operation with message-passing as the coordination mechanism.
This is a work in progress! This document is changing on a daily if not hourly basis in response to comments and as a general part of its development process. Comments are very welcome, please send them to whatwg@whatwg.org. Thank you.
The current focus is in developing a first draft proposal.
Implementors should be aware that this specification is not stable. Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways. Vendors interested in implementing this specification before it eventually reaches the call for implementations should join the WHATWG mailing list and take part in the discussions.
This specification is also being produced by the W3C Web Apps WG. The two specifications are identical from the table of contents onwards.
What Jangle (Just another generic library environment) is an experiment with middleware for library applications. If you build, use, manage or just want simple access to a library system, Jangle could be for you. Why The aim of the Jangle project is to provide a free, easy to use framework for building web services for LMSs/ILSs by exposing resources through the Atom Publishing Protocol. The goal of Jangle is to develop conventions intercommunication between the backend library services, such as ILSes and other applications and the AtomPub server (known as the Jangle "core"). By leveraging AtomPub, it eliminates the need to develop an entirely new API and allows developers to use existing client library and knowledge to easily integrate library data into new places.
HUBzero allows you to create dynamic web sites that connect a community in scientific research and educational activities. HUBzero sites combine powerful Web 2.0 concepts with a middleware that provides instant access to interactive simulation tools. These tools are not just Java applets, but real research codes that can access TeraGrid, the Open Science Grid, and other national Grid computing resources for extra cycles. HUBzero was created by researchers at Purdue University in conjunction with the NSF-sponsored Network for Computational Nanotechnology. The technology was originally developed to support nanoHUB.org, a national resource for nanotechnology simulation. It has since been extended to create science gateways for other scientific domains.
SKOS is an area of work developing specifications and standards to support the use of knowledge organization systems (KOS) such as thesauri, classification schemes, subject heading systems and taxonomies within the framework of the Semantic Web. SKOS & RDF SKOS provides a standard way to represent knowledge organization systems using the Resource Description Framework (RDF). Encoding this information in RDF allows it to be passed between computer applications in an interoperable way. Using RDF also allows knowledge organization systems to be used in distributed, decentralised metadata applications. Decentralised metadata is becoming a typical scenario, where service providers want to add value to metadata harvested from multiple sources.
WS-* specs
There are a variety of specifications associated with web services. These specifications are in varying degrees of maturity and are maintained or supported by various standards bodies and entities. Specifications may complement, overlap, and compete with each other. Web service specifications are occasionally referred to collectively as "WS-*", though there is not a single managed set of specifications that this consistently refers to, nor a recognized owning body across them all. The reference term "WS-*" is more of a general nod to the fact that many specifications are named with "WS-" as their prefix. This page includes many of the specifications that might be considered a part of "WS-*".
Source of information on SOA.
Custom Buttons² Firefox extension buttons can be written to do various tasks that the user may require. The buttons are coded in JavaScript. Many bookmarklets can easily be converted to buttons.
Extension developers will find this extension quite useful in the development cycle. JavaScript code can be prototyped in a custombutton, avoiding the reload chrome step till the code is proven. Then the code can be moved to the extension
"My Sakai" widgets show you recent activity on all of the worksites you're a member of. This means that the widget will tell you when a new announcement or a new resource has been added. The widgets also provide synoptic views of Resources and Announcements.
We have created widgets for Mac DashBoard, Vista Sidebar, Facebook, iGoogle, Google Desktop, and RSS.
From the website:
Mechanical Turk aims to make accessing human intelligence simple, scalable, and cost-effective. Businesses or developers needing tasks done (called Human Intelligence Tasks or "HITs") can use the robust Mechanical Turk APIs to access thousands of high quality, low cost, global, on-demand workers -- and then programmatically integrate the results of that work directly into their business processes and systems. Mechanical Turk enables developers and businesses to achieve their goals more quickly and at a lower cost than was previously possible.
From the website:
Croquet is a powerful open source software development environment for the creation and large-scale distributed deployment of multi-user virtual 3D applications and metaverses that are (1) persistent (2) deeply collaborative, (3) interconnected and (4) interoperable. The Croquet architecture supports synchronous communication, collaboration, resource sharing and computation among large numbers of users on multiple platforms and multiple devices.
From the IBM website:
The page-reload cycle presents one of the biggest usability obstacles in Web application development and is a serious challenge for Java™ developers. In this series, author Philip McCarthy introduces a groundbreaking approach to creating dynamic Web application experiences. Ajax (Asynchronous JavaScript and XML) is a programming technique that lets you combine Java technologies, XML, and JavaScript for Java-based Web applications that break the page-reload paradigm.
From the website:
XML::Generator::PerlData provides a simple way to generate SAX2 events from nested Perl data structures, while providing finer-grained control over the resulting document streams.
Processing comes in two flavors: Simple Style and Stream Style:
In a nutshell, 'simple style' is best used for those cases where you have a a single Perl data structure that you want to convert to XML as quickly and painlessly as possible. 'Stream style' is more useful for cases where you are receiving chunks of data (like from a DBI handle) and you want to process those chunks as they appear. See PROCESSING METHODS for more info about how each style works.
From the web site:
Compass is a first class open source Java Search Engine Framework, enabling the power of Search Engine semantics to your application stack decoratively. Built on top of the amazing Lucene Search Engine, Compass integrates seamlessly to popular development frameworks like Hibernate and Spring. It provides search capability to your application data model and synchronizes changes with the datasource. With Compass: write less code, find data quicker.
As of version 0.8, Compass also provides a Lucene Jdbc Directory implementation, allowing storing Lucene index within a database for both pure Lucene applications and Compass enabled applications. Note, when using Compass, using a database as the index storage requires only updating configuration settings.
From the website:
The goal of MARC4J is to provide an easy to use Application Programming Interface (API) for working with MARC and MARCXML in Java. MARC stands for MAchine Readable Cataloging and is a widely used exchange format for bibliographic data. MARCXML provides a loss-less conversion between MARC (MARC21 but also other formats like UNIMARC) and XML.
Shale is a modern web application framework, fundamentally based on JavaServer Faces. Architecturally, Shale is a set of loosely coupled services that can be combined as needed to meet particular application requirements. Shale provides additional functionality such as application event callbacks, dialogs with conversation-scoped state, a view technology called Clay, annotation-based functionality to reduce configuration requirements and support for remoting. Shale also provides integration links for other frameworks, to ease development when combinations of technologies are required.
It's all about tools, baby...
The Yahoo! User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. The YUI Library also includes several core CSS resources. All components in the YUI Library have been released as open source under a BSD license and are free for all uses.
More tools...
While writing this blog a small library of reusable components based on YUI has been started. The library was namespaced YAHOO.ext (short for Yahoo! UI extensions), and already has a few very useful classes that make day to day development with YUI much easier. All of the classes are well-documented and there are some examples of using them found in the posts on this blog. The code is of course free and has the same unrestrictive (BSD) license as Yahoo! UI.
More tools...
While writing this blog a small library of reusable components based on YUI has been started. The library was namespaced YAHOO.ext (short for Yahoo! UI extensions), and already has a few very useful classes that make day to day development with YUI much easier. All of the classes are well-documented and there are some examples of using them found in the posts on this blog. The code is of course free and has the same unrestrictive (BSD) license as Yahoo! UI.
It's all about tools, baby...
The Yahoo! User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. The YUI Library also includes several core CSS resources. All components in the YUI Library have been released as open source under a BSD license and are free for all uses.
FormFacesTM is a pure JavaScript solution that utilizes AJAX techniques and can be seamlessly integrated with AJAX applications. This means that XForms+HTML can be sent directly to the browser where JavaScript transcodes the XForms controls to HTML form controls and processes the binding directly within the browser - requiring ZERO server-side processing and ZERO plug-ins.
The FormFacesTM JavaScript is compatible with browsers that implement XHTML 1.0, ECMA-262 3rd Edition, and DOM Level 2 which includes Internet Explorer, Netscape, Mozilla, FireFox, Opera, Konquerer, Safari, and NetFront.
ePresence Interactive Media software is a content capturing, archiving, and webcasting system that delivers video and presentation media over the internet using multiple streaming formats for multiple platforms. ePresence also supports text and voice interaction among event participants.
ePresence Interactive Media consists of ePresence Media and ePresence Live!.
ePresence Media is open source software that supports media capture, archiving, and archive access.
Members of the ePresence Open Source Consortium have a choice of two support service packages and also receive ePresence Live! code which supports real-time streaming.
Cookie based web authentication and single sign on system designed for largish intranets under a single domain where many people run their own webservers (and you don't trust them all much).
On first connection, an untrusted webserver redirects new requests for restricted pages to the idcheck server (to be authenticated). The idcheck server takes and checks the users credentials and, if successful, redirects the users browser back to the page they requested. As it redirects, the server installs a private cookie (scoped only for the idcheck webserver) and a second cookie that acts as a session cookie for the untrusted webserver (which is checked for validity, over http against the idcheck server) when downloading subsequent pages.
When the user accesses another webserver that also has idcheck restricted pages he does not need to enter his credentials again because of the private idcheck cookie indicates that he has already authenticated and so can bypass the login form. This provides a single sign on environment for multiple webservers in a single domain..
The Tacos library project provides components and ajax behaviour for the Tapestry java web application framework. Most of the functionality is based on the exceptional dojo javascript library. Thanks dojo!
It's intent is to provide a library of high quality components that may be used in your tapestry application, as well as provide a core infrastructure for using ajax related logic in these and your own components and pages.
Nice javascript library that could be helpful. It has a widget for date and time...
KinoSearch is a loose port of the Java search engine library Apache Lucene, written in Perl and C. The archetypal application is website search, but it can be put to many different uses.
Features
- Extremely fast and scalable - can handle millions of documents
- Incremental indexing (addition/deletion of documents to/from an existing index).
- Full support for 12 Indo-European languages.
- Support for boolean operators AND, OR, and AND NOT; parenthetical groupings, and prepended +plus and -minus
- Algorithmic selection of relevant excerpts and highlighting of search terms within excerpts
- Highly customizable query and indexing APIs
- Phrase matching
- Stemming
- Stoplists
Catalyst is an elegant web application framework, extremely flexible yet extremely simple. It's similar to Ruby on Rails, Spring (Java), and Maypole, upon which it was originally based.
MVC
Catalyst follows the Model-View-Controller (MVC) design pattern, allowing you to easily separate concerns, like content, presentation, and flow control, into separate modules. This separation allows you to modify code that handles one concern without affecting code that handles the others. Catalyst promotes the re-use of existing Perl modules that already handle common web application concerns well.
Here's how the M, V, and C map to those concerns, with examples of well-known Perl modules you may want to use for each.
- Model
Access and modify content (data). DBIx::Class, Class::DBI, Plucene, Net::LDAP...
- View
Present content to the user. Template Toolkit, Mason, HTML::Template...
- Controller
Control the whole request phase, check parameters, dispatch actions, flow control. Catalyst itself!
If you're unfamiliar with MVC and design patterns, you may want to check out the original book on the subject, Design Patterns, by Gamma, Helm, Johnson, and Vlissides, also known as the Gang of Four (GoF). Many, many web application frameworks are based on MVC, including all those listed above.
When it comes to testing and debugging sites, it seems that Firefox can’t be beaten. Not only does it have an inbuilt DOM Inspector and Javascript console to beat all others, but the plethora of useful extensions is unmatched. Everyone knows and uses Chris Pedericks Web Developer extension, along with any number other handy extras – Firebug, X-Ray, Aardvark, etc.
Other browsers have useful tools though, which gave me an idea for an ad-hoc series highlighting useful web development features, starting with Safari. While it doesn’t have an official plugin architecture like Firefox, that hasn’t stopped developers finding ways around it and providing excellent plugins.


