The Official Blog of Matthew Foster
- The Perfect Whitelist, purify input, preserve data. Regular expression character classes can be thought of as a character range, each character is represented by it's index in the ASCII table.
We can create abnormal ranges to cover the ideal set of characters allowed for input.
AsyncExecutioner is a new Prototype.js plugin designed to assist in this dilemma by sending chunks of the dataset, as small as a single item to a callback that will release the thread of execution after it has completed.
- Prototype Fisheye Goes Vertical The Fisheye is a great user interface control. Quickly capturing attention and allowing focus to be emphasized through an elegant zoom effect. A fisheye control that works from top to bottom.
- The AgileAjax library gets some finishing touches that are turning heads. AgileAjax now implements a comprehensive Ajax History module to tactfully tackle the ajax history problems, with complete synchronizaiton with history traversal and user interface representation. Accomodates complex stateful ajax applications to any degree.
Handles response caching, such that an identical request made previously will have a zero network impact as well as a making for a lag free interface.
- PHP Magic Methods, implement composite design patterns like never before. By using the __get/__set magic methods we can easily delegate these operations to an internal object reference. Since the __get method only fires when an attempt to access a property that doesn't exist, we can assume that the implementation is looking for our internal object and not a native property of the proxy object. This can be applied to functions as well using the __call magic method.
- Agile Ajax, Event Driven XHR An event driven approach for handling XMLHttpRequests. Decoupling request and response leads to more flexible code.
- ActionScript 3.0 AjaxRequest AjaxRequest, A wrapper class to bring URLLoader and URLRequest together for convienence of implementation. A morsel of ActionScript code to savor.
- The Simplest Singleton A singleton is a class that only allows one instantiation of itself in all environments that it is available.
- Implementing Timeout behavior for the XHR. Introducing timeout functionality for the XML HTTP Request object for all browsers using Prototype's Ajax.Request class.
- Mee-Easy, Web-based IM got a whole lot easier. Online IM has been exploding, the days of installing an AIM app are quickly fading. GMail's integration of the GTalk was a huge mile stone, proving that the behavior model of IM can be achieved in the browser. Meebo is making this even easier, and providing possibly the easiest implementation of a chat client on any website.
- Inheritance and the reclusive function. Two principles that are essential to the developers tool belt, class inerhitance and private methods. Inheritance allows us to write arbitrarily but with an intent, the idea of an abstract class is to roughly define things but leave them open. Private methods let us encapsulate functionality and keep the global namespace clean.
- An example of Ext.js coupled with Google Ajax search services. Ext is done very well, it provides remote request and UI functionality in a very flexible code base. Google Ajax Search provides a great library of classes to retrieve Google search results for any medium, image, news etc.
- A Google Gadget to provide accessible calendar information. Using the Calendar Time Slider component built in last month's blog, this gadget provides a great interface for anyone to quickly query calendar events, per day, per week, per month, any configuration you can come up with.
- A Prototypejs Custom Search engine, unofficial but completely dedicated. A Google Custom Search Engine dedicated to the prototypejs community, coupled with a great Google Gadget to harness the engine and convienently deliver your results.
- A Complete Solution to Ajax History and Stateful Applications. The biggest problem with Ajax applications is saving state and accomodating the familiar progression of the history controls (Back/forward buttons). Ajax allows the document to become stateful, but when the user instinctively goes for the history controls in the browser window, things go wrong.
- Bring a new search experience home to your iGoogle. A Custom Search Gadget is here to deliver results. A combination of fantastic technologies come together to bring you a Custom Search Gadget that can be completely customized.
- Pagination, segment your results, purify your view Continuing a tradition of easy to use prototype UI components comes an elegant approach towards client side Pagination.
- DateChooser, decoupled objects make for an easy interface. Built with prototype and a new style of event architecture allows for an all around easier grid API. Continued with an incredibly easy to use implementation of a date chooser.
- Google Gears, detect your network Google Gears is providing a solution for ajax applications to survive in the offline world. First step in enabling your application for offline activity is determining if the application is offline.
- A Method for Saving State in Ajax Applications An approach to enabling bookmark behavior in ajax applications.
- The Ajax Service class is formalized into a namespace With a namespace defined, Ajax.Service.Base provides a foundation for a solid approach to Ajax applications.
- A Fisheye Control built with the prototypejs library. Improve usability on your site by harnessing a fisheye control. Built specifically for the prototypejs community to provide the easiest method of implementation.
- A How-To on getting started with Google AJAX Search integration Google Custom Search Engines heralds a new age of searching. Deliver a pure ajax search solution to your audience.
- Search Results come home! Finally a solution that allows in house search results from Google.
- An Evolution of Service tackles the Ajax History paradigm Using best practices and a new HTML microformat your Ajax applications can support user's back/forward buttons.
- All the code needed to get the Ajax History Service up and running A page for snatching all necessary extensions for prototype.js to build the Ajax History Service.
- Ajax Service, Decouple DOM management from XHR requests Utilize Prototype-esque classes to implement a pure XHR Service for your web application.
- Client Side Filtering, cut the fat, represent that data set right. Use prototype.js elegant collection management to implement easy and quick client side filtering.
- Adopting HTML Microformats, leveraging prototype to implement. Using HTML Microformats in RIA's developed with Prototype.js. Use prototype's DOM Extensions to easily implement event driven interfaces.
- Build your own Google Checkout System An easy way to build and maintain a Google Checkout Store
- Center map on collection of GMarkers Solving a common problem with GMap2 applications
- Ajax Cache Learn about an easy way to use client side caching to enhance your user's ajax experience
- Ajax Queue A technique to create a queue of requests such that one isn't sent until its predecessor returns.
- Super and Sub An ajax programming pattern that I have used in many of my applications
- Script war, Action Vs Java A debate about the two competing technologies in the web application arena.
- Bound and determined Use prototype.js to work around even the worst browser inconsistencies, the event model.