Web Info & Tutorials

October 31st, 2006

FIREWORKS: JAVASCRIPT ANIMATION EXPERIMENT

Here is a halloween fun post that is useless in your ajax development lives :)

Check out Fireworks.js: a javascript animation experiment:

Fireworks.js is a bit of Javascript that creates starburst-type explosions in a web document; in short, it’s a fireworks effect someone could theoretically use on their site. And come on, who doesn’t want something like that? As far as appropriateness is concerned, this effect could be compared to the dripping-blood-line, skull and fireball animated .GIF images so popular on the web in 1997. Exploding firework animations are hot, the new black, the script equivalent of the blink tag. Mmm, blink tag.

Nonetheless, Fireworks has been published here for fun, experimenting a bit with simple trigonometry and math, and those who are perhaps interested in javascript animation, object-oriented code or script-driven sound. It also serves as a dirty browser performance test of sorts, as a large number of elements are dynamically created, moved and destroyed on this page as the script runs.

Download the source

Fireworks

October 31st, 2006

GOOGLE HAS ACQUIRED JOTSPOT

First Writely, and now JotSpot. Google is really fleshing out their platform, and now the great rich collaboration tools of JotSpot are in the bag.

The future isn’t with emailing Word attachments, and I think we are going to see a nice vision from the Google campus (and others).

Abe Fettig was speaking on WYSIWYG editors at the show last week, and now he can put that knowledge to good use at Google too. This will hopefully mean more adoption of great Ajax technology.

Congrats to all concerned.

I wonder if they looked / are looking into buying Atlassian. Integrating JIRA into code.google.com would be a great thing.

October 31st, 2006

SECURE AJAX MASHUPS WITH THE TAG

Douglas Crockford had a enthusiastic speech at the exhibit terminal hebdomad close JSON, and how we crapper intend to a locate where bonded ajax mashups are possible.

Brent Ashley meet posted most the situation:

Take XMLHttpRequest - calls are restricted to the computer where the underway tender originated. Can’t comminute up without proxying finished the server. Doesn’t bit well.

Take iframes - you crapper embed a tender from additional site, but cod to Javascript same-domain restrictions, you cannot transmit with that tender without whatever quite undiscerning hackery on which you’d same to refrain relying.

Take the playscript tag - you crapper fulfil cipher from additional site, still you hit no possibleness whatsoever to inspect it for section before it gets executed, message there staleness be a aggregation of consortium in the another add of the dealings and no wish of avoiding man-in-the-middle attacks. Using playscript attach methods, cross-site cake admittance crapper drive concealment issues. Insecure, undesirable.

What we requirement is application features that were fashioned with mashups in mind. We requirement them to be additional to the browsers without having to move until IE8 and Firefox 3 (…Safari 3, Opera 10, etc).

We hit heard most JSON and JSONRequest, but the newborn banter on the country is a newborn html attach <module> that allows you to create bonded zones from binary sites on a azygos tender with dominated act between them.

Modules

I declare a newborn HTML attach for analysis a tender into a assemblage of modules.

<module id="NAME"
href="
URL" style="STYLE"
/>

A power has threesome attributes. The attributes are id, which is
utilised by scripts to acquire admittance to the power node, href, which
is the url of either a playscript enter or an HTML file, and style,
which is utilised to ordered the filler and positioning of the module. (There haw invoke out
to be constituent attributes.)

A power has digit nodes. The outmost convexity is unclothed exclusive to the outmost document.
The intrinsic convexity is the module’s window object. Scripts on digit side
of the power obstruction are unable to call scripts on the another lateral to to access
or add the another side’s accumulation structures or writing structures. Communication
between the outmost and intrinsic nodes is permissible exclusive using a send/receive mechanism.

We requirement to every intend behindhand these proposals, intend the impact started, and rattling near for a newborn application section power that let’s us verify these applications to the incoming level. What do you conceive we need?

October 30th, 2006

OSCAR 2007 SHOWCASE

The Hollywood Reporter has a single page application showcasing Oscar 2007.

The rich application uses Prototype and Flash for the movies. On the Mac I have some issues with scroll-bars not working probably which is a shame.

The Hollywood Reporter

October 30th, 2006

THE NEW PUSH

Wired Magazine PUSH

Pointcast. PUSH will kill the browser. Never worked out that way. That doesn’t mean that PUSH is dead. Comet is the next generation of Push technology, and Alessandro Alinone of Lightstreamer wrote an interesting article on Next Generation Push: a viable technology for web-based FX market data delivery.

The article discusses what this is all about, and choices available in push:

Conclusion

There is no doubt that pushing live FX market data via the Internet can benefit all FX market participants (i.e. both sell-side and buy-side). Specific real-time dashboards for both the trading and sales roles can be developed, requiring on the client side nothing more than a very common Web browser and an Internet connection (not necessarily broadband). The result is an improvement in information pervasiveness and a simplification in the client-side system administration.

October 30th, 2006

DYNAMIC DRIVE CSS LAYOUTS

Dynamic Drive has created a library of tableless, CSS tender templates that you crapper block into sites and applications.

Choose how immobile and changeful you are, the layout type, and download away.

CSS Layouts

October 27th, 2006

ANOTHER HTML GROUP IS BORN AT W3C

Tim Berners-Lee has announced that another HTML working group will be formed:

Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn’t work. The large HTML-generating public did not move, largely because the browsers didn’t complain. Some large communities did shift and are enjoying the fruits of well-formed systems, but not all. It is important to maintain HTML incrementally, as well as continuing a transition to well-formed world, and developing more power in that world.

The plan is to charter a completely new HTML group. Unlike the previous one, this one will be chartered to do incremental improvements to HTML, as also in parallel xHTML. It will have a different chair and staff contact. It will work on HTML and xHTML together. We have strong support for this group, from many people we have talked to, including browser makers.

There is also a plan for a separate group to work on the XHTML2 work which the old “HTML working group” was working on. There will be no dependency of HTML work on the XHTML2 work.

This is going to be hard work. I’d like everyone to go into this realizing this. I’ll be asking these groups to be very accountable, to have powerful issue tracking systems on the w3.org web site, and to be responsive in spirit as well as in letter to public comments.

Good luck to the new group. Hopefully politics will not be first in peoples minds, and the best thing for the users will win out.

October 27th, 2006

INTEGRATING MAPS INTO YOUR JAVA WEB APPLICATION WITH GOOGLE MAPS AND AJAX

John Ferguson Smart has written a nice article on Integrating Maps into Your Java Web Application with Google Maps and Ajax.

The article focuses on the Google Maps API (the only server side piece is a simple Servlet), and takes you through learning the API, and then using more advanced techniques such as dynamic markers, and ondemand (via ajax) content inclusion:

function fetchDetails(id) {
      var req = GXmlHttp.create();
      req.open("GET", "/maps/SiteDirectory?id="+id, true);
      req.onreadystatechange = getCallbackFunction(req, displayDetails);
      req.send(null);
}

function displayDetails(siteDetailsXML) {
      // Get the root "site" element from the document
      var site = siteDetailsXML.getElementsByTagName("site")[0];
      var name = getNodeValue(site.getElementsByTagName("name")[0]);
      var id = getNodeValue(site.getElementsByTagName("id")[0]);
      var symbol = getNodeValue(siteDetailsXML.getElementsByTagName("symbol")[0]);
      var website = getNodeValue(siteDetailsXML.getElementsByTagName("website")[0]);
      var address = site.getElementsByTagName("address")[0]
      var address1 = getNodeValue(siteDetailsXML.getElementsByTagName("line1")[0]);
      var address2 = getNodeValue(siteDetailsXML.getElementsByTagName("line2")[0]);
      var city = getNodeValue(siteDetailsXML.getElementsByTagName("city")[0]);
      var postcode = getNodeValue(siteDetailsXML.getElementsByTagName("postcode")[0]);

      marker = getMarker(id);
      marker.showMapBlowup();
      var html = '<span class="site-title-line">'
              + name + ' (' + symbol + ')'
              +'</span>'
              + '<span class="site-details-line">'
              + address1
              +'</span>'
              + '<span class="site-details-line">'
              + address2
              +'</span>'
              + '<span class="site-details-line">'
              + city + ' ' + postcode
              +'</span>'
              + '<span class="site-details-line">'
              + '<a href="' + website + '">' + website + '</a>'
              +'</span>'
      marker.openInfoWindowHtml(html);
}
 

October 27th, 2006

PROJAX: PHP GENERATORS FOR PROTOTYPE AND SCRIPT.ACULO.US

Projax is a opening of the Rails helpers that twine the JavaScript required for Prototype and Script.aculo.us cipher from Ruby, to PHP classes.

Getting Started

$projax = new Projax();

Please start your assemblage of relationship :
<?=$projax->text_field_with_auto_complete(‘dob’,null,array(‘url’=>‘index.php?task=ajax’));?>

for($i=1900;$i&lt;2006;$i++)$ret_val.=(strstr($i,$_POST[‘dob’]))?‘<li>’.$i.‘</li>’:‘’;
echo ‘<ul>’.$ret_val.‘</ul>’;
 

The User Guide info the acquirable functions:

JavaScript Helpers

  • button_to_function($name,$function=null)
  • link_to_function($name,$function,$html_options=null)
  • tag($content)
  • escape($javascript)

Prototype Helpers

  • evaluate_remote_response()
  • form_remote_tag($options)
  • link_to_remote($name,$function,$html_options=null)
  • observe_field($field_id,$options =null)
  • observe_form($form,$options=null)
  • periodically_call_remote($options=null)
  • remote_function($options)
  • submit_to_remote($name,$value,$options=null)
  • dump($javascript)
  • ID($id,$extend=null)
  • alert($message)
  • assign($variable,$value)

Script.aculo.us Helpers

  • dragable_element($element_id,$options=null)
  • drop_receiving_element($element_id,$options=null)
  • sortable_element($element_id,$options=null)
  • visual_effect($name,$element_id=false,$js_options=null)
  • auto_complete_field($field_id,$options=null)
  • in_place_editor($field_id,$options=null)

Some of these countenance a shade overkill? :)

October 27th, 2006

APPLE WEBMAIL GOES AJAX

Apple has upgraded the .mac webmail solution to use Ajax, following in the footsteps of Yahoo!, Google, Hotmail, and others.

It looks like it has been built to mimic Mail.app as closely as possible and features:

  • Drag-and-drop functionality
  • A message pane
  • Quick Reply
  • Address Book integration
  • Message previews
  • Message flagging
  • Keyboard shortcuts

And, with IMAP support you can bounce from desktop to web version and it will all look the same.