In early versions of Prototype, the framework came with basic support for class creation: the Class.create() method. Until now the only feature of classes defined this way was that the constructor called a method called initialize automatically.
Prototype 1.6.0 now features a richer class system that's backward-compatible and adds some new features.
The cornerstone of class creation Read More →

Prototype takes the complexity out of client-side web programming. Built to solve real-world problems, it adds useful extensions to the browser scripting environment and provides elegant APIs around the clumsy interfaces of Ajax and the Document Object Model.
Getting started: Defining classes and inheritance • How Prototype extends the DOM • Introduction to Ajax • Using Read More →

Approximate joins
from the Artful Common Queries page

There are two main ways to reconcile payments against charges:

Open Item: match payments against individual charges, typically by carrying the charge number in the payments table
Statement: list and sum all charges and all payments, and show the difference as the outstanding balance.

The Open Item method needs a foolproof way Read More →

Parents without children
Given tables parent(id INT), child(id INT,parent_id INT), how do we find parents with no children? It's the All X for which there is no Y pattern, which can be written as an exclusion join...

FROM parent
LEFT JOIN child ON = child.parent_id
WHERE child.parent_id IS NULL;

or with a NOT EXISTS subquery, which is logically equivalent to the exclusion join, but usually performs much slower:

FROM parent
FROM parent
JOIN child ON parent.ID = child.parent_id

Parties who Read More →

About the Abstract Factory
In the Abstract Factory Pattern, an abstract factory defines what objects the non-abstract or concrete factory will need to be able to create. The concrete factory must create the correct objects for it's context, insuring that all objects created by the concrete factory have been chosen to be able to work correctly Read More →