Back to my page

Developers


2008: a year in review

This is year is coming to an end, parties are being planned already, and it might be time to look back at what 2008 brought us - and by us, I mean UWA and its ecosystem.

2008 has been a good year: we’ve released some very cool stuffs, added some functionalities to the API, and made the code sturdier. Let’s bring on The List:

  • Netvibes saw a major release, named Ginger, which quite simply overhauled everything, from code to design. UWA also benefited from this with some niceties (such as rich-icon, widget.readOnly and widget.addStar) and consequently the MiniAPI finally got put to rest.
  • Our dear DevNet site got a cool new design, and the UWA Cheat-Sheet got finalized in a lovely printable form, as a companion to the one-page documentation.
  • In May, we celebrated the first birthday of UWA late, with a Developer Conference where we released…
      netvibes.org: the central repository for all our open-source projects, with a proper bug-tracking tool ;
      Netvibes Platform: open-sourced UWA components, such as UWA JavaScript Runtime (to run UWA widgets), PHP Exposition libraries (to parse and compile UWA widgets) and Exposition widget server (to serve widgets to users) ;
      Full in-code documentation for all the above projects ;
  • To polish our opening of UWA, we published the first working draft of the UWA specification, for everyone to implement our widget API freely ;
  • Since september, designer can create their own theme for Netvibes, through an XML format ;
  • Ecosystem saw the addition of a full-blown widget creator, which eases the creation of widgets based on multiple feeds ;
  • And finally, as if all this wasn’t enough, we released a preview of our support for the OpenSocial API, allowing widget developers to not only have universal widget, but social too (provide the platform support OpenSocial).

All in all, this has been a very productive year, and we hope you’ve been happy with the direction we gave to UWA. Be sure that more evolution is being prepared for 2009!

Have some excellent NYE parties, everyone, and as the saying goes, “see you next year!”

UWA now supports the OpenSocial API

  • Xavier
  • December 12th 2008 at 05:32 PM
  • 1 Comment

We’ve been waiting a long time to unveil this new improvement to our widget platform, and this week’s edition of the LeWeb conference in Paris was the perfect occasion to release a handful of good news concerning Netvibes, including this little nugget:

UWA developers can now make their widgets social through the powers of the OpenSocial API.

UWA+OpenSocialAt the moment, we’re still in Public Preview mode - which means that it is not yet available on the main Netvibes site, and instead requires you to open an account in our sandbox site. It will allow you to test a few socials ideas with your widgets, until the official unveiling…

In order to test your OpenSocial-using UWA widgets, simply add the “UWA+OpenSocial” widget from the Essential Widgets list, and put your widget’s URL in its Edit section…

Because OpenSocial has its own website (and follows its own evolution path), our documentation on the subject is quite minimal: just the UWA basics you need to remember, the biggest part of the knowledge being on the OpenSocial site.

GoogleGadgetIn addition to making UWA more powerful thanks to OpenSocial, Netvibes is now supporting the Google Gadget format. Again, this is still a Public Preview available only from the sandbox site (through the “Google Gadget” module). We’ll keep you informed on the evolution of that support soon…

Let’s meet at Paris-Web 2008!

  • Xavier
  • November 7th 2008 at 06:20 PM
  • 1 Comment

(english version follows)

Paris-Web 2008L’année dernière, j’ai eu le plaisir d’animer un atelier sur UWA durant la dernière journée de Paris-Web, la meilleure conférence française sur les standards, l’accessibilité, les meilleures pratiques et la quality du développement web. Vous pouvez retrouver la présentation, la cheat-sheet et les photos sur cet article. L’équipe Paris-Web remet le couvert cette année, et l’évènement se déroule la semaine prochaine, du 13 au 15 novembre.

Faire un atelier n’est pas prévu pour cette année, mais j’y serai néanmoins présent pendant les deux premiers jours pour faire la promotion de notre plate-forme, distribuer des cheat-sheets et stickers à qui-veut, et répondre aux questions des intéressés.

Rendez-vous la semaine prochaine !

Last year, I had the pleasure to run a UWA workshop during the final day of Paris-Web, France’s best conference on standards, accessibility, best practices and quality in web-development. You can find slides, cheatsheet and pictures on this post. The Paris-Web crew is at it again this year, and the event will run next, from the 13th to the 15th of November.

While running another workshop is not on our slate this year, I will attend the conference during its first two days, in order to promote our platform, give away cheatsheets and stickers to those in dire need, and answer questions from the widget-eager crowd.

Let’s meet next week!

Ecosystem’s new widget creator is live!

We’ve made a few adjustments to Netvibes Ecosystem this week, mostly centered around the header section:

  • First, a new, bigger search box
  • Second, a whole new tool for creating widgets out of multiple feeds : the Widget Editor

Embiggen your search with an over-cromulent form!

The point of having an improved search form seems evident: rather than throwing popular or featured widget at the visitor’s face, with search as a side dish, we wanted to get the user in command of the Ecosystem, and let him decide what’s best for him, through searches.

That being said, the home page steal features the three classic, ever-useful sorting tabs: Featured widgets, Most popular widgets and Just arrived. More power to you!

Easily build a multiple-feed widget!

But the real deal behind this new improvement of Ecosystem is a second green button in the top bar, next to the usual “Submit widget” button - which lets you send our way your content (in the form of a UWA widget, a Flash file or an iCal file) to automatically register them into Ecosystem as widgets.

That second button is called “Create widget”, and is the result of an evolution of UWA feed widgets: the multifeed widget, and the tool to easily make some.

Once you click on that button, you’re taken to an options screen:

  • On the left, a link to an old friend: the tool to create a widget out of any type of feed (RSS, Atom, RDF…) ;
  • On the left, a link to the new tool, code-named ”Miso”, which is a whole new way of creating advanced feed-based widgets altogether.

The Multifeed Editor is very easy to understand, even more so if you’ve already used the Feed Editor. On the right is a preview of your widget, updated as soon as you change any value on the left. That left section is where you’ll decide how many feeds you want to put into that widget, and what you would like the widget’s header to look like: a simple colored background, or an image that you designed, complete with a cool background and your logo?

If you choose to upload your own image, the Multifeed Editor will let you crop it in order to fit the recommended 350*100 size: select the portion of the image (click the selector borders, or drag the selector around), and you will immediately see live how it turns out in your widget. Until you have validated the whole thing, cropping is non-destructive, and you can try it out as often as needed, until you find the perfect match. You might also want to choose a background color that fits with the image…

So there you go, folks: better tools for easy widget creation, and bigger search for easy widget findability.

Hope you will enjoy it! Let a thousand multifeed widgets bloom! :)

Create your own Netvibes theme

  • Xavier
  • September 26th 2008 at 05:46 PM
  • 1 Comment

Good news for Netvibes users: they now have a hundred more themes to choose from when deciding on their pages appearance. And this good news comes along with a probably even better one for both designers and developers: you can create your own Netvibes themes, and import themes from other theme-creators. This means that the Netvibes interface is now open to a lot more creativity.

It’s been a long while since we wanted to bring such freedom to the creativity of our users, and in the end we decided to use a theme format that would be compatible with iGoogle’s Theme API. You can already dive in our theme design documentation!

So build away! The file format uses XML, and it’s easy to build a theme, using images and a few simple rules. Once you design is done, put all the files online, and to use the design on a Netvibes page, just call it using this URL: http://www.netvibes.com/?theme=[absolute URL of theme's XML file]

Technical details

These themes are applied on internal theme framework, with some CSS rules that cannot be over-ridden - so you won’t be able to move the tabs to the left column for now, for instance - but you can use the existing gadget_area.tab.* value to style the tabs the way you want.

Your design choices will apply upon this basic framework, just as it does in iGoogle. We do support the same mutliple-layers approach, and could even support dynamic theme (the <Trait> tag), if it were not for a CDN issue that we are going to fix.

Parting words

This is just the very first step in a project that we intend to build more and more, like tools and directories. And this is were users are taking part: let us know what kind of customiztion you want to see, and we’ll do our best to improve our support for this Theme API, even by extending the original XML format.

That’s why the DevNet forum now features a dedicated forum for Themes development. Give us your feedback, and let’s work together in improving this great feature!

UWA widget on your site: improved iframe communication code

  • Xavier
  • September 16th 2008 at 04:16 PM
  • 2 Comments

Last week’s post about the Share tool of Netvibes Ecosystem was a prelude to another internal code update, which bears explaining here in more details.

The Share tool is a handy way of letting users get the HTML code add any UWA widget on any website, be it a blog or anything that is displayed through a browser. The nice thing is that the user can set the initial size of the widget, and moreover have the widget auto-resize itself, along with other nifty interactions.

These interactions require trickery on our part in order to be transparent to the final user. As it is, the embed code used by the Share tool has a lot in common with the UWA-IFrame method, first and foremost because the widget is displayed through an IFrame in both methods.
Relying on iframe is both simple to implement and very secure, but it calls for clever code in order to have the iframe resize itself according to the widget’s size - resizing being one of many possible communication happening between the iframe and the iframed-widget. If the UWA widget needs a bigger or lower height, it sends a resizeHeight message to the page the features the iframe, which needs to handle that resizing code accordingly.

Browser has postMessage?
Firefox 3 yes
Webkit nightlies yes
Opera >= 9.50 yes
Internet Explorer 8 beta yes
Internet Explorer 7 no
Internet Explorer 6 no
Firefox 2 no
Safari 3 no
Safari 2 no
Opera < 9.50 no

The trick here is to make container and contained talk to each other seamlessly, which is tedious because of browser’s security settings. IFrame communication was therefore not an easy task until the recent creation of the postMessage API. Defined by the fine folks behind the HTML5 specification, its scope is to greatly ease cross-window messaging. It has since been implemented in most modern browsers, such as Firefox 3, Opera 9.50, and Webkit nightlies. Internet Explorer 8 should also let developers use it. In these browsers, we can leverage postMessage in order to enhance the UWA-IFrame code.
Sadly, postMessage is too recent for the majority of users, who rely on older versions, and this we have to cater for them too: IE6/7, Firefox 2, Safari 2/3, Opera before version 9.50… For all non enabled postMessage browsers, we use a special trick, based on a local HTML proxy. This trick is made transparent to the final user, who do not need to know how the message is getting to his page.

While it is transparent to the user, the UWA-IFrame method has to make it explicit to the developer, by design. We have therefore updated the documentation about it with a new section about the local HTTP proxy, and trimmed down some lines here and added up some there. If you are using this method to include UWA widgets on your site, you should definitely take a look at it…

Sharing (widgets) is caring

  • Xavier
  • September 3rd 2008 at 04:02 PM
  • 1 Comment

We’ve long said, and proved, that UWA works on all major widget platforms - you know the drill: Netvibes, Apple Dashboard, iGoogle, Opera, Vista, Live.com… But there is one more that deserves to be as well known: blog export.

The ability to work on blogs, and for that matter on any website,  has always been part of UWA starting with the now-deprecated BlogWidget method. BlogWidget was a nice first try at including UWA widget within the premises of a website, but in the long run was a hassle to instal, and for us it quickly became hard to maintain.

UWA compilers have improved a lot since last year, and the release of the Ecosystem was for us a chance to push further the proverbial envelope of exporting UWA widgets. So we built UWA export right into Ecosystem, and called it Share.

Let’s say you like news so much, you want your website’s visitors to see our New-York Times widget in your sidebar. With the new Share tool, this previously laborious task has gotten very easy: go to the widget’s Ecosystem page, and click on the Share button, located next to the widget preview, right between the install links for the current 5 support platforms and the Source button, in all its orange glory.

Clicking that link brings you to a whole new tool in Ecosystem, where you can configure the look of the widget for better inclusion in your website. There, you can change the widget’s title, its height and the color of the header. While make these changes, you can see them live in the preview on the right side of this export tool, and can even update the height manually rather than using the counter.

Since exported widget do not offer an Edit section (by design), this tools lets you configure the widget’s preferences directly.

Once you are happy with the preview, you can directly grab the HTML code in the section below. As you can see it’s still pretty close to the old BlogWidget method, but believe me, it really has improved since that first version, the export tool being just the surface of it.

The most advanced among you might even find it cool to dabble with the code directly rather than through the interface…

Stick that in your website’s HTML code, at the right place, upload, reload, and you should new be the proud owner of a UWA widget on your website!

Release of the UWA specification working draft

  • Xavier
  • August 22nd 2008 at 05:58 PM
  • 1 Comment

Simply put: it’s out! Go check it out, along with the brand new /specs/ page on netvibes.org!

This specification is one important that we’ve meant to add to our .org website for a long time. Netvibes.org started as a repository for all our open-sourced code, among which the whole UWA code: its JavaScript Runtime and PHP libraries along with full in-code documentation, and even the fully-working Exposition server - the very same one that runs on our servers. All these tools were placed under GNU LGPL license, so as to facilitates the spread of this code to other projects and platforms.

For those willing to take part in the future of UWA, we also set up a public Trac tool for those who’d wish to submit an idea or a bug, or simply the changes to the public Subversion server.

The main point of all these releases was (and still is) to help UWA spread to other, yet-unsupported platforms. Being compatible with all major widget platforms (iGoogle, Windows Vista, Apple Dashboard, Live.com, iPhone, Opera, blogs, MySpace, etc.) sure is a great thing, but there are still many websites and widget engines users that could profit from the huge choice offered by our Ecosystem - and we can’t possibly handle them all :)

So the next natural step is to publish the UWA specification for all to see - and, mostly, platforms implementors. The current document is more of an Editor’s Draft than a real Working Draft (some sections are still missing, for instance), but this is as much details as we can give about the inner functioning of UWA without giving you the source-code - which we already give out anyway :)

We chose to license it under the Creative Commons BY-SA license, which should give enough freedom as to how you use it. But most importantly, we’d like to hear back from you about this document! This specification documents UWA 1.2, which is still very much in development, and not quite deployed yet, so this is your chance to participate directly in the evolution of the Universal Widget API!

See you on the forum!

Harnessing the Activities Timeline

You might not have noticed it, but in addition to completely revamping our Ecosystem (you didn’t know? check it out!), we’ve been silently adding new functionalities here and there, for developers to play with.

One of these “toys” is the expanded Timeline Search. As a Netvibes user, you must know about the User Timeline, where a user can post his good links, his favorite posts or simply his though of the moment, and let all your followers see them.

These three kinds of item can be posted to the timeline, respectively, using the Star-It widget (which uses the new widget.addStar() method, so you can also build starring within you own widgets), via a click on the little star that is displayed by some widgets (one of which is the internal feed reader, so that makes it easy for blog posts and podcasts), and the My Community widget (which you can find in the Essential Widget section of the Add Content panel). 

It’s all fine and dandy, but you might think that all this data is only available to logged-in Netvibes users who chose to follow your Universe - and therefore, quite walled-garden-y for the reste of teh intarwebs. Luckily, there’s more than that.

When we announced the Netvibes REST API a couple months ago, it already gave a lot of power to developers, like retrieving the whole content of a Netvibes Universe in XML form, but the documentation for the Timeline Search method wasn’t really complete a the time. We’ve been working towards improving it, and the result is that you can now easily use the Timeline data just about anywhere, thanks to an expanded set of options.

In short, the expanded Timeline Search makes it possible for anyone to create services or tools based on public Timeline data retrieval! Desktop apps, anyone?

The documentation itself features a handful of ideas already:

  • Need to pull the 100 last public status updates in Atom format? You can do it.
  • Want to know who’s been mentioning the iPhone 3G lately, and get it in JSON? Have a lookee here.
  • Feel like visiting the recent favorite links of one’s followers, in XML? Here you go.
  • Fan of the “FAIL” meme, and want to know who’s been commenting items with “FAIL”? Yup, can do.

This is just a part of what can be done with the REST API, and an avant-goût of things to come from our recent developments. Until we uncover these, you advise you to have a closer look at all the possibilities of the Netvibes REST API, which can offer a lot more than searching public timelines…
 

It’s easy to have a good-looking widget

On this blog, we’ve been steadily giving you advices about content and code, two of the main aspects of what makes a good widget in our opinion: content, because a widget is nothing without it ; and code, because that’s what UWA gets its flexibility and portability from.

It was all content and code, until now: the design part of the widget is when that got little love around here until now, but truly deserve it. Once you have coded your widget and it’s full of content goodness, the best way to set it apart from other widget that display the same content, is to display it in a more attractive way.

There are many ways to design a better, and we’re going to explore some of them in this post.

Re-use your knowledge

Keep in mind that thanks to UWA being based on well-known web-standards, you can apply your CSS, table and/or font magic on your widget just as easily as you would. From this standpoint, widgets are just smaller websites: you can make use of your usual tricks of the trade, and even CSS hacks if needed, to achieve the look you need.

One thing to remember, though, is that even if your content is displayed in smaller setting that on a good ol’ website, you still don’t know the width of the container. Not only can the Netvibes user set his page to display widgets in a given number of columns (up to 4 currently), or even resize columns independently , but thanks to the portability of UWA, you widget can find itself displayed through a number of widget platforms, through the browser or on the desktop.
In short: cater for all possible width, and set up your content to display harmoniously from 320 pixels wide to 1280 or more. Use percentages wisely! If you are stuck with fixed width, at least try to keep it centered, so that it looks good even in one column.

From there on, you can apply to your widget all the good advices you might have received from classic web-design books, using the technique you feel more comfortable with: align your form elements and general content so as not to present a mess to your users, KISS (don’t overwhelm with content), balance graphics and white-space in a legible way, etc.

Use the available tools

Users have expectations when browsing online, which are set by mostly habits formed from reading other websites. Consequently, while going with a disruptive look might be tempting in order to get more attention than the other displayed widgets, the end-result will most probably be that your widget will feel out-of-place, or even ugly in comparison to other, better-fitting widgets. Sticking to the rules might therefore be a sound idea.

One set of rules that are easy to follow, is UWA’s templates and controls, a set of CSS conventions and JavaScript object built from the ground up to help your content integrate seamlessly with the Netvibes look-and-feel. More generally, they offer a quick way to get a particular design idea in place, with way less work than if you had to build it all by yourself.

It’s also important to know that using controls, such as the TabView one, doesn’t implies that you are stuck with having to deal with them at all times. Remember that the widget’s content can be entirely built and re-built on demand through JavaScript, and thus you can set up various sections or customize colors, using JavaScript and the DOM. Conditional statements such as if..else or switch..case where created for a reason.

See how the ever-admirable Rugby World Cup 2007 widget makes use of tabs only when needed: on loading, it checks wether the hidden “mode” preference is set to “details”, and displays the content accordingly.

if (widget.getValue('mode') == 'details') {
  RWC.buildTabs();
} else {
  RWC.buildPodium();
}

This means basically that only the podium is displayed on first load (no tabs).

The user can then click a “switcher” link, built dynamically using JavaScript and DOM methods & events:

// Switcher
var toggle = widget.createElement('p');
var a = widget.createElement('a');
toggle.className = 'toggle calendar';
a.setText(toggleText);
a.href = '#';
a.onclick = function() { return false; }
var setDetailsMode = function(event) {
  widget.setValue('mode', 'details');
  RWC.buildTabs();
}
toggle.onclick = setDetailsMode.bindAsEventListener(this);
toggle.appendChild(a);

The buildTabs() method then erases the whole podium, and puts the tabs (and inline pager) in place - along with a bottom switcher link, so that the user can go from one mode to the other.

From there, thanks to the flexibility of JavaScript, anything is possible…

A subtle image can do a big impression

Placing your content harmoniously, using the existing templates: it’s all fine and dandy, but while these are necessary, it doesn’t make your widget stand out in the crowd. What will make it stand out is graphic design: adding color and/or images. But as explained before, this should be done in light touches, so as not to disrupt the general flow of the page.

Again, the RWC widget is a good example of this, with a non-disturbing crop of grass at the bottom, which helps the widget to go from “plain” to “playful”.

Another such example is the recent Euro2008 widget, which also servers as a great example of some of the ways you can make use of tabs and paging in a widget.

The user-contributed TripTouch widget also features a light strip of image at the top and 4 photos at the bottom, fine details which help to personalize the widget, and consequently let the user identifying it quicker in his page.

There are many other examples of great-looking widgets in Ecosystem. We’ll make regular posts on widget design and inspiration, so that as to give you fresh ideas and make your widgets look always better.


Business

Click here if you want to know more about how netvibes can help you widgetize your brand and connect to your audience.

Developers

Click here to learn about netvibes open widget platform and how you can create cool widgets for your service or your application that run everywhere.

Community

Click here to know how to join the netvibes community, get involved and help us translate and create a global directory of widgets for netvibes

Media

Click here to access informations about the company, our latest press release, our logos and media kit