Web Info & Tutorials

October 4th, 2006

“DON’T WASTE TIME” WITH GRAPHICAL AJAX SOLUTIONS

ZDNet’s Ryan Stewart argues against performing interactive graphics with Ajax (i.e. standard web technologies). The article relates to my post on different techniques for graphics with Ajax (covered on Ajaxian).

Michael responds that the main argument against Flash is the user base, then goes on to list the plusses and minuses of "richer plugins".

You simply should not be trying to create a rich, graphical experience in Ajax. The options (SVG, Canvas, VML, ect) are buggy, supported in different ways depending on the browser, and, for the most part, are a poor experience for both users and developers.

The kind of rich interactivity that Flash and Windows Presentation Foundation provide are going to be leaps and bounds ahead of what any browser technology can do, and that's why they will succeed. The web becomes richer every day. Video and Music are taking the web by storm, and with the surge in broadband adoption, people are making these things part of their every day web experience. Ajax applications can't take advantage of them in the way the Flash or WPF can.

Flash (more generally, Richer Plugins) was actualy one of the graphics techniques mentioned in the original article. It’s all about trade-offs. I’ve actually argued myself that Ajax developers ought to take Flash more seriously, as it’s an excellent complement to Ajax. Flash sometimes makes a nice sweet spot - with graphics and multimedia closer to that of the desktop than standard DHTML/Ajax, but still living in a web platform that’s often more convenient than the desktop. The two monster apps of the past 12-18 months, YouTube and MySpace, demonstrate the power of Flash and multimedia on the web.

The benefits of Flash over Ajax are self-evident and undeniable, but Flash comes with its own set of problems too - not every user has Flash installed, not every user has the latest version, not every network allows Flash applications to run, not every developer and company wants to commit to proprietary technology when viable alternatives are available. Ajax apps tend to be easier to degrade gracefully as well; Flash is more all-or-none.

What if I want to introduce a histogram to an Ajax enterprise app? I’ll happily use a DOM/CSS library like CSS Graphs. Or if I’m writing a Firefox extension, I might use a data: resource to create a whimpy graphic since I no longer care about portability or even extravagant display. Maybe I want a 16×16 heatmap next to each search result - I’ll draw it with a Canvas and keep all the search results in standard HTML. And so on. See? Competent developers don’t engage in dogmatic battles, because they know software is all about trade-offs. Many times, Flash wins. Many times, it loses.

Last word goes to Ryan:

Don’t waste time trying to build the next generation of the web with graphical Ajax solutions … you already have a solution, and it’s getting more robust by the day. As your web applications start to require a more rich environment, embrace Rich Internet Applications - you’ll be better off.

October 4th, 2006

WIDSETS: NOKIA MOBILE WIDGETS

Nokia has free widgets for the ambulatory world: WidSets.

This effectuation that you crapper create widgets for ambulatory phones meet as grouping hit gotten into creating widgets for the screen and webtop.

If you verify a extreme into the warning widgets you encounter that you requirement to create:

Config

Simple plan parameters.

XML:

  1.  
  2. <config>
  3.   <!– These are utilised to delimitate initial widget parameters. –>
  4.   <parameter name=“widgetname”>Example widget</parameter>
  5.   <parameter name=“feedurlrss”>http://www.yourfeed.com/index.xml</parameter>
  6. </config>
  7.  

Skin

The countenance and see example looks a lowercase old but a lowercase foreign. Check discover the styles:

XML:

  1.  
  2. <skin name=“Example widget” version=“0.1″>
  3.  
  4.   <!– Styles utilised by the widget –>
  5.   <styles>
  6.  
  7.     [bg]
  8.       background: installation scenery 15 11 12 11
  9.  
  10.     [feedIcon]
  11.       align: mitt vcenter
  12.    
  13.     [feedTitle]
  14.       font-1: small
  15.       color-1: #000000
  16.       align: mitt vcenter
  17.  

Widget

The widget enter itself:

XML:

  1.  
  2. <widget name=“Example widget” version=“0.1″>
  3.  
  4.   <info>
  5.     <creator>
  6.       <user>username</user>
  7.       <date>7.6.2006 12:00</date>
  8.     </creator>
  9.  
  10.   <!– Configuration of servicehandlers which the widget needs to control –>
  11.   <services>
  12.     <service type=“syndication” id=“feed1″>
  13.           <reference from=“feedurlrss” to=“feedurl”/>
  14.         </service>
  15.   </services>
  16.  

Soon someone module create a meta widget API that generates widget cipher for the different widget platforms :)

WidSets

October 4th, 2006

NATURAL DOCS: BETTER JAVASCRIPT DOC

Jesse Kuhnert (or Dojo/Tapestry fame) wrote to us pointing to Natural Docs.

Using the utility from http://naturaldocs.org and about 10-15 minutes of slight adjustment to my javascript comments I was fairly easily able to produce this.

Keep in mind that this is only a very small sampling of the Tapestry javascript library, but it looks like a promising utility for many javascript libraries out there. It even has dhtml tooltips + searching :)

Time for some better docs?

Natural Docs

October 4th, 2006

JOE’S LOGBOOK

Ian Smith (or Joe) has created a new online journal product called Joe's Logbook.

The tool lets users edit multiple journals in a single "grid" like interface. This makes it easy to create a food journal, a dream journal, and a personal journal and then update them all at the same time.

Joe\'s Logbook

October 4th, 2006

FRESH LOGIC STUDIOS SCRIPTS: OO JS

Fresh Logic Studios has created an goal familiarised JavaScript support with a planning help kindred to the Microsoft .NET Framework.

Inside you’ll encounter JavaScript implementations for a diminutive subset of the classes provided by the .NET Framework humble collection libraries.

The accumulation consists of classes for:

  • Console
  • Point
  • Size
  • Guid
  • String
  • Uri
HTML:

  1.  
  2. <script type=“text/javascript”>
  3.    FreshLogicStudios.Scripts.Console.SetIn(document.getElementById(’ConsoleIn’));
  4.    FreshLogicStudios.Scripts.Console.SetOut(document.getElementById(’ConsoleOut’));
  5.    FreshLogicStudios.Scripts.Console.WriteLine(’<span style=“color:blue;”>Console initialized…</span>‘);
  6. </script>
  7.  
  8. <h2>Console In</h2>
  9.  
  10.    <input id=“ConsoleIn” type=“text” /> <a href=“#” class=“Button” onclick=“FreshLogicStudios.Scripts.Console.ReadLine(); convey false;”>Evaluate</a>
  11. </div>
  12.  
  13. <h2>Console Out</h2>
  14.  
  15. <div class=“Code”>
  16.    <code id=“ConsoleOut”></code>
  17. </div>
  18.