From the website:
jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. jQuery is designed to change the way that you write JavaScript.
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 website:
RSF is an open source web programming framework, with roughly the scope of Sun's JSF. RSF is written in Java, and is built on the Spring framework. RSF features a pure-HTML templating engine named IKAT, which achieves the cleanest separation between presentation and logic yet made - build "components" using pure HTML and libraries of code rather than heavy framework base classes. RSF also features a lightweight request-scope Spring clone, RSAC, which brings the magic benefits of inversion of control into the request scope. RSF currently has integrations for Hibernate, JSR-168, Cocoon and Sakai
This could be a good model for us since it is a very very clean separation of logic from layout. Makes widgets available to <div> containers in XHTML.
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.
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..
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.
I love lists! Here's a nice list of how to program.
- Do not expect a detailed specification.
- Do not spend your time polishing a detailed design.
- Keep your eyes on the real problem.
- Have a team of smart guys.
- Keep the complexity of your decisions down.
- Do not optimize your code without solid reliable data.
- Do not code "till it's done".
- Start debugging while designing.
- Do not flatter yourself that your system is bug-free.
- Do not expect to create a perfect documentation.
Using abstraction and new object oriented features in PHP 5.
"The introduction of new object-oriented programming (OOP) features in PHP V5 has significantly raised the level of functionality in this programming language. Not only can you have private, protected, and public member variables and functions -- just as you would in the Java™, C++, or C# programming languages -- but you can also create objects that bend at runtime, creating new methods and member variables on the fly. You can't do that with the Java, C++, or C# languages. This kind of functionality makes super-rapid application development systems, such as Ruby on Rails, possible."
Site with tutorials on xmlhttprequest, drag and drop, forms, uploaders, image gallery, live search, and tabbed pages.
A must page.
tagged ajax how_to javascript programming web2.0 by winkler4 ...on 17-MAR-06
tagged ajax javascript programming by winkler4 ...on 08-FEB-06
tagged ajax programming web_services by winkler4 ...and 1 other person ...on 08-FEB-06
CGI::Ajax is an object-oriented module that provides a unique mechanism for using perl code asynchronously from javascript- enhanced HTML pages. CGI::Ajax unburdens the user from having to write extensive javascript, except for associating an exported method with a document-defined event (such as onClick, onKeyUp, etc). CGI::Ajax also mixes well with HTML containing more complex javascript.
CGI::Ajax supports methods that return single results or multiple results to the web page, and supports returning values to multiple DIV elements on the HTML page.
Using CGI::Ajax, the URL for the HTTP GET/POST request is automatically generated based on HTML layout and events, and the page is then dynamically updated with the output from the perl function. Additionally, CGI::Ajax supports mapping URL's to a CGI::Ajax function name, so you can separate your code processing over multiple scripts.
Other than using the Class::Accessor module to generate CGI::Ajax' accessor methods, CGI::Ajax is completely self-contained - it does not require you to install a larger package or a full Content Management System, etc.
We have added support for other CGI handler/decoder modules, like the CGI::Simple manpage or the CGI::Minimal manpage, but we can't test these since we run mod_perl2 only here. CGI::Ajax checks to see if a header() method is available to the CGI object, and then uses it. If method() isn't available, it creates it's own minimal header.
A primary goal of CGI::Ajax is to keep the module streamlined and maximally flexible. We are trying to keep the generated javascript code to a minimum, but still provide users with a variety of methods for deploying CGI::Ajax. And VERY little user javascript.
tagged ajax cgi javascript programming by winkler4 ...on 24-JAN-06
Great tips on CSS, AJAX and other Web 2.0 thingies...
24 things refers to 24 things to do that will impress your friends. Things like:
- rounded corners
- ems
- prototype.js
- in-place editing!
tagged ajax programming web_services by winkler4 ...on 27-DEC-05
xISBN supplies ISBNs associated with individual intellectual works represented in the OCLC WorldCat database. Give it an ISBN, and it returns a list of associated ISBNs.
To be used by a program to return an XML document of all the associated ISBNs for a title. Sort of like what I do for journal titles using SFX to return ISSNs.
COinS (ContextObjects in Spans) is a simple, ad hoc community specification for publishing OpenURL references in HTML.
We should think about how to embed these in our pages...



