Activate your free membership today | Log-in

Friday, December 19th, 2008

Write your own Yahoo! BrowserPlus service with new SDK

Category: Browsers, Plugins, Yahoo!

Lloyd Hilalel and the Yahoo! BrowserPlus team have released a BrowserPlus SDK which allows you to easily create your own services:

We're extremely happy to announce the availability of the BrowserPlus SDK. This first SDK and the accompanying documentation gives you all the tools you'll need to start extending the web using BrowserPlus. Getting started is easy, you can hop over to our tutorial and write your first service in about 15 minutes.

In addition to the SDK, we've pushed a new platform version, 2.1.14, that fixes several bugs reported by all of you. We deeply appreciate your continued contributions and hope with the SDK and our ongoing process of open sourcing BrowserPlus we'll empower you to contribute even more to the project.

A Ruby example service is shown:

RUBY:
     class MyGreatServiceInstance 
       def initialize(context) 
       end 
       
       def HelloWorld(transaction, args) 
         transaction.complete("Hello #{args['who']} from my great service!") 
       end 
     end 
       
     rubyCoreletDefinition = { 
       'class' => "MyGreatServiceInstance", 
       'name' => "MyGreatService", 
       'major_version' => 0, 
       'minor_version' => 0, 
       'micro_version' => 1, 
       'documentation' => 'A GREAT service.', 
       'functions' => 
       [ 
         { 
           'name' => 'HelloWorld', 
           'documentation' => "Say \"hello\" to the world", 
           'arguments' => [ 
             { 
               'name' => 'who', 
               'type' => 'string', 
               'documentation' => 'who you want to say hello to', 
               'required' => true 
             } 
           ] 
         }   
       ]   
     } 

There is also a new service released:

Welcome the new Zipper service to our collection! A big problem with some web apps today is being able to efficiently attach all file types. Zipper plays nicely with Uploader and lets you compress files or folders on the client before uploading them. This service should be considered alpha, and we look forward to your feedback and ideas on how to make this more useful. We've got lots of ideas of which way to take this service (lzma being first and foremost), but would love to hear your thoughts.

Posted by Dion Almaer at 5:13 pm
Comment here

++++-
4.3 rating from 29 votes

Tuesday, November 18th, 2008

Live Blogging the Yahoo BrowserPlus Release Party

Category: Browsers, Plugins, Yahoo!

Austin Chau and I are here on the Yahoo campus for the Yahoo BrowserPlus release party. I'm going to blog the event as it happens here (Disclosure: I work for Google with the Open Web Advocacy and Gears teams).

First, Ernest Delgado, Canvas whiz here at Yahoo, sent me a cool demo showing a prototype he and Michael Johnston made of Yahoo Maps and Flickr integrating with Yahoo BrowserPlus using the native gyroscope on Macs. You just hit the side of the laptop, for example, in order to jump to the next Flickr picture, or tip your laptop to zoom around a Yahoo Map:

Eric Miraglia is opening the release party up with a nice Introduction to YUI:

* Starts with some really nice demos of things you can create in the browser using YUI.
* Underlying technologies driving browsers are very complicated.
* About 7 knowledge areas needed for web development -- each is different than the standard, with bugs and specialized expert knowledge. You get about 672 different permutations of things needed for you to know and test on.
* YUI focused on "A-grade browser support".
* Good to target toolkits like YUI, since it helps you be future-compatible when new browsers appear like iPhone and Google Chrome
* Goal of YUI: Have a sophisticated widget like a rich text editor work cross-browser using just a snippet small snippet of code.
* Also want things to be automatically accessible.
* Progressive enhancement should be easy and possible, showing a cool demo of hierarchical menus still being readable on Lynx, a version of Firefox with no JavaScript, and then a full IE with CSS and JavaScript on.
* YUI is ala carte, file sizes are small, between 15 and 30K for any given component (including gziped)
* Deployed at Yahoo for three years, on every major property, 400 million users/browsers consuming YUI every month. In properties like Flickr and on the front page, well tested.
* YUI in lots of places: iGoogle, Wall Street Journal, Mozilla, LinkedIn, Southwest.com, Obama website, more
* ~1,000,000 external downloads

Now Lloyd Hilaiel is getting up to present on Yahoo BrowserPlus, the focus of today's event:

* The teams motivations: people get browsers -- browsers could be so much more -- plugins aren't working! Takes too long for new innovations to propagate (5-7 years)!
* Non-goals: no fixing web UI, no web outside the web (like AIR or Mozilla Prism), no improving JavaScript (that's the domain of YUI, JQuery, Dojo, etc.)
* YES to new web features with low overhead. Low overhead: low intellectual overhead, low overhead to implement and get it into widespread production
* Plugins have strengths (scriptable, cross-browser), but they have problems... installing them sucks, writing them is hard, sharing doesn't happen, updating is clumsy, securing them is hard
* BrowserPlus enables in-browser desktop applications
* Abstraction layer over web plugins. Implements all the stuff common to web plugs, decreasing cost of development and helping end users with management and installation
* User install core platform just once
* Page requests distinct services it wants to use, if not installed user is prompted to accept services and they are installed on the fly
* Demo of Flickr uploader working in browser using Yahoo BrowserPlus - drag and drop into browser of images, even folders for recursive uploading, 100% leveraging client-side functionality, multiple file selection.
* Demo of a BrowserPlus marble maze game using the Mac's motion sensor that exposes a single function that gives the laptop's x and y position and acceleration. Idea is that you can expose simple functions for custom hardware -- rest of app can just use web technologies.
* Demo where you can drop a file into a page and then work with the files contents, service coming out soon. Took just one day for them to create. Imagine dragging and dropping vCards or iCal files for example for a web-based calendering system.
* Demo showing desktop notifications
* Services installed on demand, no more monolithic plugins -- instead smaller services, installation seemless, no browser restarts
* Authoring of new services currently restricted to Yahoo and partners
* BrowserPlus will be Open Source! Goal is to have Service API and services open source by end of year, everything else by mid next year.
* Need to figure out how to protect end-users while removing Yahoo from the loop of handling serving up the services
* Yahoo roles: consumer of the platform and the project maintainer (bug fixes, feature requested, service adoption)

After a short break the team (Lloyd Hilaiel, Steve Spencer, David Grigsby, and Gordon Durand) did a deep dive on the Yahoo BrowserPlus architecture, security model, user-facing interaction, how web developers interact with it, and how to create your own services. There is some really impressive engineering in here; they've tackled some hard problems. There's lots of great material they went over, too much to summarize here. You can download the presentations from here in Keynote format.

Here's a snippet of using BrowserPlus from some JavaScript:

Desktop notifications:

JAVASCRIPT:
  1.  
  2. BPTool.Notify.create().show("My Title", "My Message");
  3.  

Drop-in uploading widget:

JAVASCRIPT:
  1.  
  2. BPTool.Uploader.create("uploader", {uploadUrl: "up.php"}).render();
  3.  

Check out the full developer docs that went live for more details.

Services are either binary shared libraries (.so or .dll) or Ruby script! The Ruby interpreter itself is a Yahoo BrowserPlus service that other services can use (services can be composed together and can work with each other, similar to how Unix utilities work with piping).

Posted by Brad Neuberg at 7:36 pm
1 Comment

+++--
3.6 rating from 16 votes

Monday, October 20th, 2008

Greasemonkey, Chrome Edition

Category: Browsers, Chrome, Plugins

Chromium gained an important patch over the weekend, with the introduction of Greasemonkey support. The patch came from none other than Aaron Boodman, creator of the original Firefox add-on, and also a Google employee.

For now, it's just a patch and it's not yet clear if and when it will be part of the official Chrome release. As GHacks explains:

Since there is no way of adding extensions to Chrome yet users have to live with some limitations. Only scripts in c:\scripts are loaded and only if the user adds the parameter –enable-greasemonkey by appending it to the program’s shortcut.

The Firefox Greasemonkey extension has been a huge success, and spawned an entire ecosystem of scripts, developers, and users in its own right. Its ultra simplicity has made it immeasurably easier for enthusiasts to "scratch their own back" and patch up a troublesome website in a matter of minutes. It's not hard to see how the pure Javasript approach could be extended to form a more comprehensive extension platform. It will be interesting to see if, as I speculated on my blog today, this patch is to be the seed for Google's overall approach to Chrome extensions.

In any event, the Chrome space has a lot of user-scripting innovations to look forward to in coming months. And I daresay the odd porting effort too.

Posted by Michael Mahemoff at 5:09 pm
4 Comments

++++-
4.4 rating from 17 votes

Monday, July 21st, 2008

WebMonkey’s Five Best Firebug Extensions

Category: Debugging, Plugins

Adam DuVander over at WebMonkey has compiled a list of their five favorite Firebug extensions. The ever-popular YSlow tops the list, but to that they add:

  • Firecookie for easy access to cookie information
  • FirePHP to integrating server-provided PHP debugging information with the Firebug UI
  • Pixel Perfect for overlaying mock-ups on top of the real thing to ensure you've got a good implementation
  • Rainbow for JavaScript syntax highlighting

Nice list!

Posted by Ben Galbraith at 9:06 am
11 Comments

++++-
4.7 rating from 25 votes

jQuery: Sparklines Plug-in

Category: Plugins, jQuery

Edward Tufte has long had a following of fans in the field of information visualizations. Among his interesting taxonomy of visualization types is the "Sparkline", which he describes as "data-intense, design-simple, word-sized graphics".

While Tufte originally suggested that computer displays are too low-resolution to effectively make use of Sparklines (vs. printed page), James Dempster pointed us to some work the folks at Splunk have done to join a long line of folks who have given it a go anyway.

The resulting jQuery plug-in is really nice. Now if only they had the ability to overlay two line graphs over the same area using a transparent fill... ;-)

(Oh, and there's also a simple Sparkline generator for Google Charts over at style.org.)

Posted by Ben Galbraith at 8:21 am
9 Comments

+++--
3.9 rating from 28 votes

Friday, October 19th, 2007

jQuery Logging

Category: Library, Plugins, Tip, jQuery

Dominic Mitchell has created a mini jQuery logging plugin that ties Firebug to the call chain.

This means that if you are debugging something you can quickly add a .log("....") in the chain:

JAVASCRIPT:
  1.  
  2.   jQuery.fn.log = function (msg) {
  3.       console.log("%s: %o", msg, this);
  4.       return this;
  5.   };
  6.  

Now, I can just stuff a call to .log() in the middle of what I’m doing to see what I’m currently addressing. e.g.

JAVASCRIPT:
  1.  
  2. $(root).find('li.source> input:checkbox').log("sources to uncheck").removeAttr("checked");
  3.  

The nice thing about logging to firebug is that each node becomes clickable in the console, so you can immediately see the context.

Posted by Dion Almaer at 11:05 am
12 Comments

++---
2.8 rating from 74 votes

Wednesday, August 29th, 2007

AjaxRain.com gets a facelift, tops 600+ Ajax/JS/RIA controls

Category: Ajax, Plugins, Roundup

AjaxRain.com, the site dedicated to aggregating Ajax, JavaScript and RIA controls & libraries, has gotten a cool facelift and some much needed features. On top of that, they continue to post controls at an amazing rate with 638 submissions at last count.

Some of the new nuggets include:

  • Storing favorites
  • Comments
  • Voting on entries
  • Date that a submission was posted
  • Enhanced search
  • Expansion into posting RIA components based on SilverLight & Flex

MiniAjax.com, a site that was doing the same thing and started off with a bang, has since gone stale and it looks like AjaxRain now leads the pack. Are there other sites like these? If so, post the links in the comments.

Posted by Rey Bango at 1:00 pm
10 Comments

++---
2.7 rating from 3 votes

Monday, August 7th, 2006

Ajax3D - the Next Arc up the Hype Curve

Category: Editorial, Plugins

Overuse a term and it becomes meaningless. How much meaning is still in the term 'Ajax?' Media Machines tries to wring a little more buzz out of it -- first take an X3D and VRML browser plugin with ECMAScript bindings (Flux), combine it with XMLHttpRequest and voila! You've got Ajax3D. At least that's what you have according to their latest press release.

Media Machines, Inc., a leading provider of open source, real time 3D communications on the web, today announced Ajax3Dâ„¢, a Javascript-based software library and development paradigm for deploying online virtual worlds and 3D web applications based on Ajax and X3D. The company also issued an open call for participation in an industry forum at www.ajax3D.org, dedicated to the research and development of online virtual worlds using 3D open standards and Ajax best practices.

A quick look at www.ajax3D.org reveals a somewhat anemic collection of forums and 'tutorials.' You have to view source and download the javascript files to figure out what's going on.

JAVASCRIPT:
  1. //ajax3d.js
  2. var browser = null; var context = null; var listener = null; var listenersSetup = false;
  3. function initAjax3d(filename)
  4. {
  5.    browser = null;   context = null;   listenersSetup = false;
  6.    browser = document.FLUX.getBrowser();
  7.    if (browser != null) {
  8.       listener = new Object();
  9.       listener.browserChanged = browserChanged;
  10.       browser.addBrowserListener(listener);
  11.       if (filename != null)
  12.          browser.loadUrlS (filename);
  13.       else
  14.          context = browser.getExecutionContext();
  15.    }
  16. }
  17. // [snip]
  18. function createX3DFromString(str) {
  19.    var scene = browser.createX3DFromString(str);    var rootnodes = scene.getRootNodes();    var i;
  20.    // Do a bit of work to deal with the quirky X3D add/remove root node paradigm
  21.    for (i = 0; i <rootnodes.length; i++) {
  22.        node = rootnodes[i];
  23.        scene.removeRootNode(node);
  24.        context.addRootNode(node);
  25.    }
  26. }

There's no documentation to speak of, unless you head over to www.web3d.org and read through their obtuse standards documents. To Media Machines' credit, they did just release the source of their plugin to open source, so you could crawl through the code to figure out all of the bindings. Even so, how much is the 'Ajax' involved with '3D'? Not a whole lot. Certainly not enough to warrant the coining of a new term and the issuing of a press release.
Update 1: The ajax3d.org site now does have some text to go with the tutorials. Was I too harsh in my assessment of Ajax3D as an excercise in hype? I don't have anything against the 3D or VRML folks, but unless you can show me 3D without a plugin, I'm still a skeptic.

Posted by Dietrich Kappe at 5:45 pm
12 Comments

+++--
3.1 rating from 25 votes