Web Info & Tutorials

March 10th, 2008

SUBPRIME MARKET WOES TEST OF INVESTORS’ METTLE

“Worst of subprime have mart impact behindhand us”

“Accordingly, I verify the function that we’re not by some effectuation over the difficulties we grappling in the assign crisis” commented Mike Mett. via The Toronto Star

March 10th, 2008

MOZILLA PRISM UPDATE MAKES IT EASY TO CREATE WRAPPERS

Mozilla Prism has just released a new version that shows off Firefox integration:

Today we’re releasing a major update to Prism that includes new desktop integration capabilities and simpler installation. With this update, you can now get Prism simply by installing a small extension to Firefox 3. With the new Prism extension for Firefox 3, users can now split web applications directly out of Firefox without needing to install and manage a separate Prism application. Just install the extension, browse to a web app, then select Tools > Convert Website to Application.

prism-menu.png

Other new or improved features include:

  • Pick an icon to represent a web app on the desktop: Prism can use the web app favicon or the user can pick a custom image to represent the web app.
  • Run each web app in its own profile: Prism now places each web app into its own process/profile so they don’t interfere with each other, which also makes it possible to install a web app twice and use it simultaneously with two different user accounts.
  • Badge the dock icon: Initial support for adding a badge to the desktop icon has been added. Currently, this can be done through a custom webapp.js file. We’re working on creating and reusing web standards to expose this to content without requiring custom scripts.
March 10th, 2008

INTERNAL IE-HTML DOM STILL ISN’T XHTML COMPLIANT

Jon Davis was glad to see that XHTML compliance was on the list in IE 8, but was surprised to see the above. It turns out that he found:

XHTML compliance exists in parsing and rendering only. Microsoft is still using an internal IE-HTML DOM that is not XHTML-compliant, even in XHTML documents. All you have to do prove this out is, in script, alert(document.documentElement.outerHTML); and what do you see? The most obvious observation is a total disregard for XHTML 1.0 § 4.2, which reads, “Element and attribute names must be in lower case; XHTML documents must use lower case for all HTML element and attribute names. This difference is necessary because XML is case-sensitive e.g. <li> and <LI> are different tags.” Why does this matter? It matters because of DHTML. It matters because there is an implemented and oft-used setter on DOM elements’ innerHTML. It matters because people actually use the DOM programmatically, both in evaluating and assigning markup. It matters because the browser has a Content-Editable mode that is often used with online content editing whereby the innerHTML contents are posted to the server for viewing as content. It matters because Internet Explorer has a COM interface that can, and often is, used to parse and tidy HTML markup, or to provide a WYSIWYG rich text editor for applications. It matters because it’s broken, has been all along, and has never been deemed acceptable.

Should IE be looking to fix this?

March 10th, 2008

APPCELERATOR: RIA + SOA

Appcelerator is a fairly new open source toolkit on the block that is trying to be an Open Web RIA to compete with Flex and co. with high profile folks such as Marc Fleury as advisors.

Nolan Wright, CTO, has written a piece for syscon entitled The Next Web Development Episode Is RIA + SOA. In the article Nolan talks about Appcelerator and how it fits into his world view:

1. Design the "look" of the application

This is the general appearance of an application. It includes things like: color, fonts, graphics, and a general page layout. Common toolsets: HTML, CSS and images

2. Integrate Widgets

Widgets encapsulate a set of common capabilities within a single component. They typically contain both “look and feel” as well as a set of pre-defined dynamic behaviors. They are a fundamental building block of an RIA.
Common toolsets: ExtJS, Dojo, Yahoo YUI and several other small widget projects

3. Add dynamic behavior to the user interface

Creating dynamic behavior in the user interface involves two things:

  • Event handling
  • Document Object Model (DOM) Manipulation

Event handling is the ability to know when a particular event occurs (e.g., a user clicks a button or a service response is received). DOM Manipulation allows you to dynamically change the user interface based on the receipt of an event. Common toolsets: Javascript libraries like JQuery, Prototype, and Scriptaculous

4. Consume services

Consuming backend services is a key capability of an RIA. It enables the creation of single page user interfaces that exchange application data with services. It also enables a clean separation between the user interface and the service tier. The most common method for interacting with services is Ajax. Common toolsets: Javascript libraries like JQuery and Prototype

5. Create services

Services provide an interface to data and application business logic. Common toolsets: There are several frameworks available for creating services in your programming language of choice.

To illustrate the DSL that Appcelerator uses, Nolan has some comparisons between jQuery code such as:

JAVASCRIPT:
  1.  
  2. $(function(){
  3.   $("select#comboOne").change(function(){
  4.     $.getJSON("/combo.php", {id: $(this).val(), ajax: 'true'}, function(j){
  5.       var options = '';
  6.       for (var i = 0; i <j.length; i++) {
  7.         options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '';
  8.       }
  9.       $("select#comboTwo").html(options);
  10.     })
  11.   })
  12. })
  13.  

And the meta language:

HTML:
  1.  
  2. <select id=”comboOne”
  3. on=”change then r:load.combo2.request”>
  4. </select>
  5. <select id=”comboTwo”
  6. on=”r:load.combo2.response then value[property=rows,text=text,value=value]>
  7. </select>
  8.  

We have been talking about the world of SOA coming to fruition for quite some time. TIBCO GI was talking about this several years ago. Is 2008 going to be the year?

March 10th, 2008

JAVASCRIPT WEBDAV CLIENT

Vladimir Lichman of IT Hit has released an Ajax library for managing WebDAV servers.

The library is compliant with WebDAV RFC 2518 and allows management of Class 1 and Class 2 complaint WebDAV servers. With IT Hit AJAX Library you can copy, move and delete items, read and set custom properties, lock items and discover locks. It is written entirely in JavaScript and supports IE, Firefox, Safari and Netscape.

JAVASCRIPT:
  1.  
  2. var session = new ITHit.WebDAV.Client.WebDavSession();
  3. var folder;
  4. try {
  5.   folder = session.OpenFolder("http://server:8080/folder");
  6. } catch(e) {
  7.   if(e instanceof ITHit.WebDAV.Client.Exceptions.NotFoundException)
  8.     alert("Folder not found.");
  9.   else
  10.     throw e;
  11. }
  12.  
  13. if (folder != null) {
  14.   var items = folder.GetChildren(false);
  15.   for (var i=0; i<items .length; i++) {
  16.     document.getElementById("container").innerHTML += items[i].DisplayName + "<br/>";
  17.   }
  18. }
  19.