<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Netvibes Developers blog</title>
	
	<link>http://dev.netvibes.com/blog</link>
	<description>News and articles about the Netvibes API</description>
	<lastBuildDate>Wed, 14 Oct 2009 10:42:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/NetvibesDevNetBlog" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Understanding the TabView control</title>
		<link>http://dev.netvibes.com/blog/2009/10/14/understanding-the-tabview-control/</link>
		<comments>http://dev.netvibes.com/blog/2009/10/14/understanding-the-tabview-control/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:28:28 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=292</guid>
		<description><![CDATA[The TabView control, which allows you to put a standardized set of tabs within your widget, had been documented since day one, back in 2007. But that documentation was somewhat inprecise and lacking details, to say the least.
While its documentation has been severly improved since then (let us know if you consider it could still [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.netvibes.com/doc/uwa/templates_and_controls/tabview">The TabView control</a>, which allows you to put a standardized set of tabs within your widget, had been documented since day one, back in 2007. But that documentation was somewhat inprecise and lacking details, to say the least.</p>
<p>While its documentation has been severly improved since then (let us know if you consider it could still be better!), there remains a feeling that implementing tabs in a widget is a complex task, best left to wizard developers.</p>
<p>It&#8217;s not! And this article will drive the more sceptic among you through code samples that should make everything clear. Here goes.</p>
<h3>Sample 1: three different tabs</h3>
<p>The first sample code presents how to combine 3 widgets into one widget with 3 tabs, each one displaying the same content as the original widget. The three panels will display, in our example,</p>
<ul>
<li>some regular text;</li>
<li>the latest Astronomy Picture of the Day, as per <a href="http://dev.netvibes.com/doc/uwa/examples/apod">the APOD sample widget</a>;</li>
<li>the latest posts from this very blog, as per <a href="http://dev.netvibes.com/doc/uwa/examples/rssreader">the RSSReader sample widget</a>.</li>
</ul>
<p><img class="aligncenter size-full wp-image-303" title="uwa-tabview-various" src="http://dev.netvibes.com/blog/wp-content/uploads/uwa-tabview-various.gif" alt="uwa-tabview-various" width="424" height="233" /></p>
<p>The resulting widget is available <a href="http://nvmodules.typhon.net/xavier/uwa-samples/uwa-tabview-various.html">here</a>.</p>
<p>We can only advise you to dive into its code, and compare to the original widgets&#8217; code. We&#8217;ve provided as much comments as possible, so as to help you understand how we implemented some parts.</p>
<h3>Sample 2: three different tabs, paging in feeds</h3>
<p>You&#8217;d notice in the previous example that we did not use the Pager component, in order to simplify the code to the maximum. Therefore, if the user were to change the preference to only display the 5 of the 10 items in the feeds, he wouldn&#8217;t get the expected &#8220;prev/next&#8221; buttons at the bottom of the widget. This is what this sample code implements.</p>
<p><img class="aligncenter size-full wp-image-295" title="uwa-tabview-various-pager" src="http://dev.netvibes.com/blog/wp-content/uploads/uwa-tabview-various-pager.png" alt="uwa-tabview-various-pager" width="424" height="143" /></p>
<p>The resulting widget is available <a href="http://nvmodules.typhon.net/xavier/uwa-samples/uwa-tabview-various-pager.html">here</a>.</p>
<p>The difference with the previous sample code mostly resides in the block of code that starts with this line:</p>
<pre id="line29">var pager = new UWA.Controls.Pager(</pre>
<p>Here, the pager object is instantiated, and the rest of the code show you how to properly have it displayed.</p>
<h3>Sample 3: three tabs with a different feed each</h3>
<p>As you may know, the most popular use of tabs is to have one widget for many feeds, thus reducing the needed space. To that end, you&#8217;d need to re-use the previous sample widget, and duplicate the third tab into the two first ones.</p>
<p><img class="aligncenter size-full wp-image-296" title="uwa-tabview-onlyFeeds" src="http://dev.netvibes.com/blog/wp-content/uploads/uwa-tabview-onlyFeeds.png" alt="uwa-tabview-onlyFeeds" width="424" height="157" /></p>
<p>The resulting widget is available <a href="http://nvmodules.typhon.net/xavier/uwa-samples/uwa-tabview-onlyFeeds.html">here</a>.</p>
<p>Since we remove the code that displays the first two tabs (the text one, and the image one), the code gets shorter, but you should actually pay more attention to the code, because it presents how to have the logic work for us, and not crash the widget every time we change tab.</p>
<p>For instance, in the previous sample code, the pager was placed in a given, non-changing DIV tag:</p>
<pre id="line29">var pagerDiv = widget.createElement('div', {'class':'paging'});</pre>
<p>It is important to understand that each of the three tabs require its one pager, and therefore to have the code properly implement the pager so that tab-changing would not break it:</p>
<pre id="line24">var pagerDiv = widget.createElement('div', {'class':'paging_'+tabName});</pre>
<p>There are more advanced uses of the TabView control, which will have a look at in another post&#8230;</p>
<h3>Your turn!</h3>
<p>Go ahead, dive into each sample widget&#8217;s code, and you should come out of it with more understanding of tabs and their inner working.</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Understanding%20the%20TabView%20control&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F&amp;t=Understanding%20the%20TabView%20control" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F&amp;title=Understanding%20the%20TabView%20control" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F&amp;title=Understanding%20the%20TabView%20control" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F&amp;title=Understanding%20the%20TabView%20control" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F&amp;title=Understanding%20the%20TabView%20control" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F&amp;title=Understanding%20the%20TabView%20control" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F14%2Funderstanding-the-tabview-control%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/10/14/understanding-the-tabview-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making JavaScript and Flash work together in a UWA widget</title>
		<link>http://dev.netvibes.com/blog/2009/10/02/making-javascript-and-flash-work-together-in-a-uwa-widget/</link>
		<comments>http://dev.netvibes.com/blog/2009/10/02/making-javascript-and-flash-work-together-in-a-uwa-widget/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 08:43:49 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=275</guid>
		<description><![CDATA[We recently stumbled upon an interesting part of web application : making a Flash object communicating with its containing HTML page&#8217;s JavaScript functions. This is not unheard of, of course, but in the world of UWA, this can prove difficult to implement in a working way.
A reminder: JavaScript in UWA
As UWA developers know, portability and [...]]]></description>
			<content:encoded><![CDATA[<p>We recently stumbled upon an interesting part of web application : making a Flash object communicating with its containing HTML page&#8217;s JavaScript functions. This is not unheard of, of course, but in the world of UWA, this can prove difficult to implement in a working way.</p>
<h3>A reminder: JavaScript in UWA</h3>
<p>As UWA developers know, portability and predictability in the framework&#8217;s usage has lead us to not recommend the use of JavaScript objets such as &#8216;window&#8217; and &#8216;document&#8217;, instead recommending the equivalent to some of their methods that have been implemented in the UWA-specific &#8216;widget&#8217; objet. For instance, &#8216;window.open()&#8217; is to be dropped in favor of &#8216;widget.openURL()&#8217;, or document.getElementById(&#8217;uniqueID&#8217;)&#8217; is to be replaced by unique classes and the use of &#8216;widget.boy.getElementsById(&#8217;uniqueClass&#8217;)[0]&#8216;, among other things.<br />
Failing to find the needed function equivalent in the UWA JS Framework, developers are suggested to implement the required code within the widget&#8217;s HTML page.</p>
<p>That is all fine and dandy: all UWA developers are now used to play with these idiosynchrasies, and their widgets just get sturdier thanks to that. But when it comes to Flash-JavaScript communication, things get more &#8220;idiosynchratic&#8221;, if you will&#8230;</p>
<h3>The curious case of Flash-JavaScript communication</h3>
<p><img class="alignright size-full wp-image-283" title="Adobe_Flash_CS4_Logo" src="http://dev.netvibes.com/blog/wp-content/uploads/Adobe_Flash_CS4_Logo.png" alt="Adobe_Flash_CS4_Logo" width="256" height="256" />Flash-JS communication is a subject at least as old as Flash itself (well, at least as old as Flash 2 and FSCommand, then). The solutions at the time seemed almost magical, nowadays they are well understood and implemented within ActionScript &#8211; the Flash scripting language.</p>
<p>Calling a JavaScript function from the Flash application&#8217;s containing HTML page only requires a couple of ActionScript lines with Flash CS4. Let&#8217;s say we have on our Flash scene two main instances: a textfield named myInputText and a button named myButton. With a click on myButton, we want Flash to send the text content of myInputText to a JavaScript function called, for lack of a better name, theJavaScriptFunction().</p>
<p>Here&#8217;s how our ActionScript code could look like:</p>
<pre>import flash.external.ExternalInterface;
myButton.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
  if (ExternalInterface.available) {
    try {
       var tempStr:String = ExternalInterface.call("theJavaScriptFunction", myInputText.text);
    }
    catch (error:SecurityError) {
       // ignore
    }
  }
}</pre>
<p>Basically, with Flash CS4, the ExternalInterface object is the central place to improve your communication skillz. Past versions of Flash had other methods, that we&#8217;ll let you peruse at will, since it&#8217;s a safe bet CS4&#8217;s methods are here to stay&#8230;</p>
<h3>Flash-JavaScript communication in UWA</h3>
<p>Since UWA isn&#8217;t much more than a XHTML page, having Flash communicate with JS in that context should be a cake, right?</p>
<p>Wrong. Remember the first part of the article, where I reminded you of the &#8220;no &#8216;document&#8217; object&#8221; recommendation? Well, as it turns out, JS method calls from Flash are targetted at the document &#8211; which means, basically, that if you try to call your MyWidget.AwesomeFunction(), Flash will in fact target document.MyWidget.AwesomeFunction(). Hilarity ensues.</p>
<p>One solution here is to break out of the &#8220;no &#8216;document&#8217; object&#8221; rule, and build a proxy function for each JS method that you want called. For instance, in order to call this function:</p>
<pre>MyWidget.AwesomeFunction = function(var) {
  // some code
}</pre>
<p>&#8230;you&#8217;d simply have to define a proxy AwesomeFunction directly on the page&#8217;s default object (the &#8216;document&#8217; one), and have it call your UWA-tied function, like so:</p>
<pre>function AwesomeFunction(var) {
  MyWidget.AwesomeFunction(var);
}</pre>
<p>So, this would tend to prove a little diversion can go a long way. But wait! There&#8217;s more!</p>
<h3>Making your way through domains</h3>
<div id="attachment_284" class="wp-caption alignright" style="width: 373px"><a href="http://kb2.adobe.com/cps/402/kb402450.html"><img class="size-full wp-image-284" title="kb402450_crossdomain-text" src="http://dev.netvibes.com/blog/wp-content/uploads/kb402450_crossdomain-text.png" alt="kb402450_crossdomain-text" width="363" height="248" /></a><p class="wp-caption-text">Official explanation graphic from Adobe</p></div>
<p>Let&#8217;s say your ActionScript and JavaScript code is in place, as explain above. You load the widget directly in your browser (standalone mode), and it just works: awesomeness! But then you decide to install the widget on a Netvibes page, and lo!, it fails to even trigger AwesomeFunction(). <em>Fatalitas!</em></p>
<p>No, Netvibes is not blocking such usage of UWA code. Simply put, Flash has some security restriction which you will need to check one by one before you can make it all shine.</p>
<p>The basis of these security measures is the domain name. In short, by default, a Flash app (.swf) can only communicate with external files (.html, .php, .xml, .js &#8230;) if it is hosted on the very same domain name.</p>
<p>This behavior is therefore broken once in Netvibes (or any Exposition-based widget server, for that matter), since widget&#8217;s are not only displayed within an iFrame (which might be a problem in itself), but also on a unique domain name. Hence, the HTML file can never be on the same domain as the SWF file, and therefore the data loading (or JavaScript communication, in our case) cannot happen.</p>
<p>Luckilly, Macromedia at the time undertstood that need, and gave us support for a crossdomain.xml file, which would let the developer allow (or disallow) a given set of domain to be accessed by the SWF. This XML file, hosted at the root of the domain bearing the Flash file, can take this form:</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"&gt;
&lt;cross-domain-policy&gt;
  &lt;allow-access-from domain="*" /&gt;
&lt;/cross-domain-policy&gt;</pre>
<p>For added fun, you can add the following lines to your ActionScript code:</p>
<pre>import flash.system.Security;
Security.allowDomain("*");</pre>
<p>These lines are another way for Flash to validate crossdomain access.</p>
<p>One down, only one more to go&#8230;.</p>
<p>But that&#8217;s only for data, here. What we need in our case is access to the local JavaScript. This, in turn, is made possible by adding the AllowScriptAccess attribute in the SWF&#8217;s embed code, and setting it to &#8220;always&#8221;. Your embed code would therefore look like this:</p>
<pre>&lt;embed type="application/x-shockwave-flash"
  src="http://domain-name.net/uwa-flash.swf"
  width="250" height="100" bgcolor="#FFFFFF"
  AllowScriptAccess="always"&gt;&lt;/embed&gt;</pre>
<p>Still willing to use Flash for your widget? Then hop onto the next section!</p>
<h3>Handling UWA preferences from a Flash application</h3>
<p>As if that wasn&#8217;t enough, there are cases where you&#8217;d like your Flash application to make use of UWA&#8217;s preferences methods, if only in order to record the user&#8217;s settings for the Flash app within the confines of the UWA environment.</p>
<p>This case should be view from two points:</p>
<ol>
<li>Have the Flash settings be saved as UWA preferences;</li>
<li>Have the Flash app load the UWA preferences on startup.</li>
</ol>
<p>The first part is pretty ease if you you follow the instructions above: instead of calling widget.setValue() directly from ActionScript (which would result in document.widget.setValue() being called instead, and therefore nothing happenning), you&#8217;d call UWA_setValue(), which in the HTML file would be defined as&#8230;</p>
<pre>function UWA_saveInPref(varid) {
  widget.setValue('myValue', varid);
}</pre>
<p>Obviously, if you have more than one preference to set from Flash, you&#8217;d nees to expand on this code a bit&#8230;</p>
<p>Now, we want the SWF file to load up a preference, but only if it is set (obviously, else it would load the preference as &#8216;null&#8217; or other unset values). That can be done pretty easily by passing variables to Flash via the embed code&#8217;s URL (or more precisely, its query string).</p>
<div id="attachment_285" class="wp-caption aligncenter" style="width: 434px"><img class="size-full wp-image-285" title="uwa-flash" src="http://dev.netvibes.com/blog/wp-content/uploads/uwa-flash.png" alt="Why, yes it is!" width="424" height="255" /><p class="wp-caption-text">Why, yes it is!</p></div>
<p>Here is one way to get a nice, working query string for your Flash app&#8230;</p>
<p>First, retrieve the preference value, and build it into your query string via a ternary operator, for instance. Here is an example:</p>
<pre>var myValue = widget.getValue('myValue');
div_flash.innerHTML += '&lt;embed type="application/x-shockwave-flash"
  src="http://domain-name.net/uwa-flash.swf'+ (myValue?'?theValue='+myValue+'':'')
  +'" width="250" height="100" bgcolor="#FFFFFF" AllowScriptAccess="always"&gt;&lt;/embed&gt;';
widget.setBody(div_flash);</pre>
<p>If the ternary XXX finds that myValue is not empty (ergo, the preference is set), then it assigns its content to the Flash app&#8217;s theValue internal variable. If it is empty, &#8216;theValue&#8217; is not even defined in the query string, and the Flash app launches in its default state &#8211; which is pretty much the whole point of this ternary operator.</p>
<p>Second, add the following two lines of ActionScript in your SWF&#8217;s first frame (given that you want to update a &#8216;myInputText&#8217; textfield based on that query string):</p>
<pre>var myQueryStrings = this.loaderInfo.parameters;
myInputText.text = myQueryStrings.theValue;</pre>
<p>This will load our query string (using the loaderInfo object and its &#8216;parameters&#8217; property), and assign the &#8216;theValue&#8217; value as the text content of our beloved myInputText. Done: the textfield is updated with the correct UWA preference on each loading (or preference update)!</p>
<p>You can see it for yourself with <a href="http://nvmodules.typhon.net/xavier/uwa-samples/uwa-flash.html">this basic widget</a>, the code of which is available <a href="http://nvmodules.typhon.net/xavier/uwa-samples/uwa-flash.zip">here</a> (you might need Flash CS4).</p>
<h3>Two final tips, for the road</h3>
<p>1) Don&#8217;t forget to add wmode=&#8221;opaque&#8221; to your embed code, so that i doesn&#8217;t overlap with Netvibes&#8217;s content!</p>
<p>2) Choose the &#8220;hidden&#8221; preference type if you want that preference to only be changeable through your Flash app!</p>
<p>Now go and build more awesome Flash-based UWA widgets!</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F&amp;t=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F&amp;title=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F&amp;title=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F&amp;title=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F&amp;title=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F&amp;title=Making%20JavaScript%20and%20Flash%20work%20together%20in%20a%20UWA%20widget" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F10%2F02%2Fmaking-javascript-and-flash-work-together-in-a-uwa-widget%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/10/02/making-javascript-and-flash-work-together-in-a-uwa-widget/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Boost your feeds and make use of our numerous feed views</title>
		<link>http://dev.netvibes.com/blog/2009/09/01/boost-your-feeds-and-make-use-of-our-numerous-feed-views/</link>
		<comments>http://dev.netvibes.com/blog/2009/09/01/boost-your-feeds-and-make-use-of-our-numerous-feed-views/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 12:46:33 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=192</guid>
		<description><![CDATA[Netvibes  users were long used to using the Feed Reader widget which, combined with the internal full-page feed reader, makes for the greatness of Netvibes as a feed agregator, and from there on, as a complete digital dashboard.
Back in December 2008, we updated our Feed Reader widget with three new views (Ticker, Carousel, Magazine) ; [...]]]></description>
			<content:encoded><![CDATA[<p>Netvibes  users were long used to using the Feed Reader widget which, combined with the internal full-page feed reader, makes for the greatness of Netvibes as a feed agregator, and from there on, as a complete digital dashboard.</p>
<div id="attachment_263" class="wp-caption aligncenter" style="width: 530px"><img class="size-full wp-image-263" title="Feed widget in normal view" src="http://dev.netvibes.com/blog/wp-content/uploads/normal.png" alt="Feed widget in normal view" width="520" height="123" /><p class="wp-caption-text">Feed widget in normal view</p></div>
<p style="text-align: left;"><a href="http://blog.netvibes.com/?2008/12/08/223-new-layouts-opensocial-and-leweb-08">Back in December 2008</a>, we updated our Feed Reader widget with three new views (<em>Ticker</em>, <em>Carousel</em>, <em>Magazine</em>) ; we added four more feed views <a href="http://blog.netvibes.com/?2009/03/23/257-new-views-for-your-feeds">in March 2009</a> (<em>Classy Slideshow</em> and its black-background version, <em>Headline</em>, and <em>Quick Details</em>), bringing a total of 8 possible views for your feed. Netvibes users can then choose the most appropriate view for a given feed, and bring more variety to the whole page: feeds can now stand out, image-centric feeds are better than ever, it makes it easy to discernate between two feeds, etc.</p>
<div id="attachment_264" class="wp-caption aligncenter" style="width: 530px"><img class="size-full wp-image-264" title="Feed widget in Magazine view" src="http://dev.netvibes.com/blog/wp-content/uploads/magazine.png" alt="Feed widget in Magazine view" width="520" height="269" /><p class="wp-caption-text">Feed widget in Magazine view</p></div>
<p>All in all, these new views not only bring a whole better feedreading experience to the Netvibes users, but they can also prove to be very handy for those whishing to build some greate public pages based solely on feeds &#8211; with a the help of Flexible Layout tool that was also released in December 2008.</p>
<div id="attachment_267" class="wp-caption aligncenter" style="width: 530px"><img class="size-full wp-image-267" title="Feed widget with Ticket view" src="http://dev.netvibes.com/blog/wp-content/uploads/ticker.png" alt="Feed widget with Ticket view" width="520" height="165" /><p class="wp-caption-text">Feed widget with Ticket view</p></div>
<p>So, users can choose to set their page with different views, public pages editors can present their content in a great fashion of ways, but one point remains: how to you make sure that YOUR feeds can work properly with these new views?</p>
<h3>How can you make use of them?</h3>
<p>The best way for your feeds to be correctly handled by our various views, is to have them carry a proper link to your media content (most of the time, an image, but it could also be audio or video). This way, the feedreader can display more than just text, which in turn will make your feed stand out in the crowd of those without an image. Simple as that.</p>
<div id="attachment_265" class="wp-caption aligncenter" style="width: 530px"><img class="size-full wp-image-265" title="Feed widget in Classy view" src="http://dev.netvibes.com/blog/wp-content/uploads/classy.png" alt="Feed widget in Classy view" width="520" height="258" /><p class="wp-caption-text">Feed widget in Classy view</p></div>
<p>There is a handful of way to do this in the world of feeds, the most popular being:</p>
<ul>
<li>enclosures ;</li>
<li>MediaRSS ;</li>
<li>parsing of the post&#8217;s content.</li>
</ul>
<p>&#8230;which are all supported by Netvibes, of course!</p>
<p>Let&#8217;s explore each of these solutions&#8230;</p>
<h3>Enclosures</h3>
<p>Enclosures rely on a special type of XML tag, which have been supported by the RSS and Atom formats for a long time, and that all major feed readers now understand. In these two popular feed formats, enclosures simply point to one (or many) media files, along with useful metadata about these. Feed readers can in turn make use of these informations to display the media files along (or after) the post&#8217;s content.</p>
<p>The &lt;enclosure&gt; element was added to RSS back in 2000, when broadband was still rare and it would make better sense to let feedreader download a feed&#8217;s huge files during idle time (at night, for instance), allowing the user to come back to his/her feed reader with all files downloaded.</p>
<p>Using enclosures, an editor (or editing tool) can add an absolute URL to a file, to be dealt with by the feed reader accordingly. In the case of podcasting, that enclosed file would be an MP3 file (or some video format for &#8220;vidcasting&#8221;), file which the feed reader would download silently and make available to the user for his listening (or viewing) pleasure. Nowadays however, thanks to omnipresent broadband and cheaper bandwidth, files can just be listened through directly &#8211; such as is possible with Netvibes, with the podcast player.</p>
<div id="attachment_268" class="wp-caption aligncenter" style="width: 530px"><img class="size-full wp-image-268" title="Feed widget with Slideshow view" src="http://dev.netvibes.com/blog/wp-content/uploads/slideshow.png" alt="Feed widget with Slideshow view" width="520" height="207" /><p class="wp-caption-text">Feed widget with Slideshow view</p></div>
<p>Even for non-podcasters, enclosures can be useful simply in order to point the feedreader to a thumbnail image, which would bring more life to the feed in some feedreaders, and help it stand out in the crowd&#8230;</p>
<h3>MediaRSS</h3>
<p><a href="http://video.search.yahoo.com/mrss">MediaRSS</a> is an extension to the RSS 2.0 file-format, trying to solve one issue: enclosures in RSS could only link one media file per files. While one was enough at the birth of podcasting, now podcasters like to spread their audio/video files over more than a single, or include some more interesting media content besides the main file itself. This was solved right at the beginning in Atom, but the RSS format being frozen, extensions where needed.</p>
<p>In these case, the Yahoo! developers stepped up and proposed MediaRSS, which immensely improves on RSS enclosure tag, adding support for such much-needed data as thumbnail, title, description, keyword or even player source URL, for each link file.</p>
<p>Sadly, not all feed readers do understand MediaRSS, which leads to some CMS and feed-generators to not put this extension to wider use.<br />
Why so? Once you build upon a much-successful format, having your extension of that format adopted by the very people it targets can be hair-threatening. It&#8217;s very much like a <a href="http://en.wikipedia.org/wiki/Catch-22_(logic)">Catch-22</a> &#8211; or a chicken-and-egg dilemma, if you will:</p>
<ul>
<li>Why would data publishers implement your extension if no tool support it?</li>
<li>Why would tools support it if no data publishers implement it?</li>
</ul>
<p>We at Netvibes chose to support that extension as much as we could, since it the best way to benefit our users. Therefore, we fully encourage you to make use of MediaRSS, and help spread its usefulness.</p>
<h3>Parsing</h3>
<p>Alas, not all feeds/CMSs do implement MediaRSS &#8212; or even enclosures, for that matter. Still, there is no reason why these feeds would not have their image nicely thumbnailed for all to see. In this case, feedreaders cannot rely on standardized tags, and therefore have to rely on magic.</p>
<p>Magic, or in our case parsing, which means that the post&#8217;s content is scanned by the Netvibes feedreader, all the images are gathered, and the first one in the post is then used as a thumbnail. Problem solved. Magic, I tell you.</p>
<p>One recurring pitfal that you should strive to avoid: smileys. Along with social network buttons, they represent the culprit of badly-chosen thumbnails, and would most of the time happen when parsing is necessary (no enclosure nor MediaRSS tags to be found). While this misshap is pretty much unavoidable for image-less posts (we&#8217;re working on a solution), bloggers who use images in their posts can sometimes be surprised to find a smiley instead of their beautifuly crafted illustration.</p>
<div id="attachment_266" class="wp-caption aligncenter" style="width: 530px"><a href="http://Smileysgonebad"><img class="size-full wp-image-266" title="bad_smileys" src="http://dev.netvibes.com/blog/wp-content/uploads/bad_smileys.png" alt="Smileys gone bad" width="520" height="185" /></a><p class="wp-caption-text">Smileys gone bad</p></div>
<p>The explanation is easy: as said earlier, the post parsing makes a list of all images in the post, then uses the first image as the thumbnail. Therefore, in order for the first big image to be used as a thumbnail, you should try as much as possible to either&#8230;</p>
<ul>
<li>put the image as for the first content of the post, even before the text itself ;</li>
<li>never use a smiley before the first image of the post.</li>
</ul>
<p>Still, this remains a constrains, and we&#8217;re currently working on a solution around that issue&#8230;</p>
<h3>How it all works out in the end</h3>
<p>Because some feeds can propose both enclosures and MediaRSS tags, it&#8217;s up to the feereader to sort the wheat from the hay. Here&#8217;s how we decided to make it work at Netvibes :</p>
<ul>
<li>In the case of thumbnails :
<ol>
<li>use the first &lt;enclosure&gt; tag ;</li>
<li>use the first &lt;media:thumbnail&gt; tag ;</li>
<li>use the first image within the &lt;media:content&gt; tag ;</li>
<li>use the first image within the post&#8217;s content.</li>
</ol>
</li>
<li>In the case of videos :
<ul>
<li>we exploit the &lt;media:content&gt; tag that has a content-type of &#8220;application/x-shockwave-flash&#8221;.</li>
</ul>
</li>
</ul>
<p>As you can see, the best way to have your media files be correctly handled by the Netvibes feedreader, is to use the great MediaRSS extension to your RSS feed. Since not all CMSs support it out-of-the-box, you might have to dig for existing extension &#8211; <a href="http://wordpress.org/extend/plugins/mrss/">here&#8217;s one for WordPress</a>, and <a href="http://drupal.org/project/mediarss">another one for Drupal</a>, for instance. Know of more? Come and share them in the comments!</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F&amp;t=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F&amp;title=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F&amp;title=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F&amp;title=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F&amp;title=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F&amp;title=Boost%20your%20feeds%20and%20make%20use%20of%20our%20numerous%20feed%20views" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F09%2F01%2Fboost-your-feeds-and-make-use-of-our-numerous-feed-views%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/09/01/boost-your-feeds-and-make-use-of-our-numerous-feed-views/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building your own animated theme for Netvibes</title>
		<link>http://dev.netvibes.com/blog/2009/07/29/building-your-own-animated-theme-for-netvibes/</link>
		<comments>http://dev.netvibes.com/blog/2009/07/29/building-your-own-animated-theme-for-netvibes/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 16:12:01 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=234</guid>
		<description><![CDATA[It&#8217;s been a month since we revealed that Netvibes is supporting animated themes &#8211; that is, themes that change throughout the day, depending on the designer&#8217;s wishes.

Today marks another milestone for animated themes in Netvibes, with the official support of 10 brand new themes, which obviously make plenty o&#8217; use of time ranges.
I want my [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a month since we revealed that <a href="http://dev.netvibes.com/blog/2009/06/25/netvibes-now-supports-dynamic-themes/">Netvibes is supporting animated themes</a> &#8211; that is, themes that change throughout the day, depending on the designer&#8217;s wishes.</p>
<p><img class="aligncenter size-full wp-image-237" title="dyn-theme-animation" src="http://dev.netvibes.com/blog/wp-content/uploads/dyn-theme-animation1.gif" alt="dyn-theme-animation" width="520" height="98" /></p>
<p>Today marks another milestone for animated themes in Netvibes, <a href="http://blog.netvibes.com/?2009%2F07%2F29%2F294-10-new-animated-themes-to-personalize-your-page">with the official support of 10 brand new themes</a>, which obviously make plenty o&#8217; use of time ranges.</p>
<h3>I want my own!</h3>
<p>We hear ya! One of the great projects released with the <a href="http://www.netvibes.com/labs/">Netvibes Lab</a>s launch, <a href="http://blog.netvibes.com/?2009/04/15/264-netvibes-labs">back in April &#8216;09</a>, was the <a href="http://www.netvibes.com/labs/projects/theme-designer/">Theme Designer</a>, which allowed you to design your theme visually rather than through a tedious XML format.</p>
<p>However, our Theme Designer is not yet able to build animated themes (that&#8217;s planned for a further iteration), so in order to feast your visitors&#8217; eyes with an everchanging design, you will still have to dive into the code. Don&#8217;t be scared: it&#8217;s quite easy as long as you know how to handle XML.</p>
<p>Our <a href="http://dev.netvibes.com/doc/theme">theme documentation</a> already features most of the information you might need in order to code your own theme, be it static or animated.</p>
<p>In this article, we&#8217;ll dive into building a complete animated theme step by step, using the Theme Designer. That editor doesn&#8217;t yet support animated themes, but we can just as well use it to build a handful of static themes, and merge them into one file by hand, in order to get an animated theme!</p>
<h3>Step one: Deciding on the time ranges and graphics</h3>
<p>Before we hop into the editor and start choosing the header color for widgets, you should first have a clear idea of what you want your theme to look and behave like &#8211; which could greatly impact the header graphics.</p>
<p>For instance, you can have up to 24 different designs (one per hour of the day/night), but you can just as well have an animated theme with two different states.</p>
<p>For the purpose of this article, we&#8217;ll show you how to build a 5-parts theme, with 3 different behaviors: work, lunch, and spare time &#8211; therefore, your visitors will be able to know what you&#8217;re up to just by looking at your theme!</p>
<p>Each behavior fits into a specific time range:</p>
<ol>
<li>12am-9am: spare time</li>
<li>9am-1pm: work</li>
<li>1pm-2pm: lunch</li>
<li>2pm-7pm: work</li>
<li>7pm-12am: spare time</li>
</ol>
<p>Note that while the two &#8220;spare time&#8221; ranges are next to each other, the XML format requires us to keep them separated rather than having a single &#8220;spare time&#8221; range going from 7 PM to 9 AM: valid time ranges are from 12am &#8211; 12am, and if the end time is before the start time, it will cause an error.<br />
Also, make sure you set ranges for the full 24h of the day &#8212; you wouldn&#8217;t want your users to miss out on an hour&#8230;</p>
<h3>Step two: Making the graphics</h3>
<p>Our theme  has 5 parts, but we will base it upon 3 designs: &#8220;lunch&#8221; (used once), work (used twice) and &#8220;spare time&#8221; (used twice).</p>
<p>We&#8217;ll leave the graphic creation to you, and will simply remind you of the size recommendations for a good header image, as well as useful information:</p>
<ul>
<li>Images should be at least 175px tall. Since the user can expand the header&#8217;s height, it is recommended to go up to 260px, or even 300px to be on the safe side.</li>
<li>Center image must be at least 640px wide.</li>
<li>Tile image can be any size, but must wrap-up seamlessly.</li>
<li>Image should not weight more than 100 kb. Recommended weight is 40 kb, but prefer better quality to smaller size.</li>
<li>Images are centered in the header, both horizontally and vertically.</li>
<li>Images can use any format. Recommended are <acronym title="Portable Network Graphics">PNG</acronym> and<acronym title="Joint Photographics Experts Group">JPG</acronym>, but <acronym title="Graphics Interchange Format">GIF</acronym> can of course be used. Use <acronym title="Portable Network Graphics">PNG</acronym>/<acronym title="Graphics Interchange Format">GIF</acronym> if you need to use transparency.</li>
</ul>
<p>A lot more information is available in the <a href="http://dev.netvibes.com/doc/theme">theme documentation</a>, such as a description of the various layers available for the header, and image tiling&#8230;</p>
<h3>Step three: Making the themes using the Theme Designer</h3>
<p>Now that you have everything at hand, you can launch the <a href="http://www.netvibes.com/labs/projects/theme-designer/">Theme Designer</a> and simply fill-in the blanks for each section. You&#8217;ll have to do that for each of the various time ranges of your animated theme.</p>
<p><img class="aligncenter size-medium wp-image-249" title="nv-themedesigner" src="http://dev.netvibes.com/blog/wp-content/uploads/nv-themedesigner-500x358.png" alt="nv-themedesigner" width="500" height="358" /></p>
<p>Once you feel you static theme is perfect, you can save it by clicking on the &#8220;Download theme&#8221; button, available from the Main tab. You end up with an XML file containing all the needed info for your static theme, and named &#8220;theme.xml&#8221; &#8211; which we advise you to promptly rename into something more informative, for fear of overwriting it with your next theme saving.</p>
<h3>Step four: Merging static themes into a animated theme</h3>
<p>Each of the three static themes we have created are wholly contained within the &lt;ConfigMap type=&#8221;Skin&#8221;&gt;&#8230;&lt;/ConfigMap&gt; tags of each of their respective XML files. One theme XML file can contain more than one such &lt;ConfigMap&gt; tag, and they are differentiated using the sub-tag &lt;Trait&gt;, as explained in both the <a href="http://dev.netvibes.com/doc/theme">theme documentation</a> and <a href="http://dev.netvibes.com/blog/2009/06/25/netvibes-now-supports-dynamic-themes/">the announcement from last month</a>.</p>
<p>Therefore, merging static themes into one animated theme is simply a question of copy/pasting the &lt;ConfigMap&gt; tags from all files into the remaining one, after its own such tag. Once the pasting is done, add a &lt;Trait&gt; tag with the proper time range settings to each &lt;ConfigMap&gt;, and you&#8217;re pretty much done!</p>
<p>In our case, we have three static themes which apply to 5 time ranges, so two of them are bound to be duplicated within the XML. They will be singled out by their &lt;Trait&gt;.</p>
<p>In order to build our animated theme, we&#8217;ll start with the file for the static theme tied to the first time range, then paste the &lt;ConfigMap&gt; tags from the two other files into 5 distinct &lt;ConfigMap&gt; section, and finally differentiate them using their very own &lt;Trait&gt; tags. The sequence of the &lt;Trait&gt; tags might be as such:</p>
<ol>
<li>&#8220;spare time&#8221; theme: &lt;Trait name=&#8221;TimeOfDay&#8221;&gt;12am-9am&lt;/Trait&gt;</li>
<li>&#8220;work&#8221; theme: &lt;Trait name=&#8221;TimeOfDay&#8221;&gt;9am-1pm&lt;/Trait&gt;</li>
<li>&#8220;lunch&#8221; theme: &lt;Trait name=&#8221;TimeOfDay&#8221;&gt;1pm-2pm&lt;/Trait&gt;</li>
<li>&#8220;work&#8221; theme: &lt;Trait name=&#8221;TimeOfDay&#8221;&gt;2pm-7pm&lt;/Trait&gt;</li>
<li>&#8220;spare time&#8221; theme: &lt;Trait name=&#8221;TimeOfDay&#8221;&gt;7pm-12am&lt;/Trait&gt;</li>
</ol>
<p>Easy as peas!</p>
<h3>Step 5: applying the theme on your page</h3>
<p>You must upload the XML files and all the media files it uses on a public host in order to apply it. Do not remove it from the host after installation, since your page would lose the theme altogether&#8230;</p>
<p>Now comes the part were you get to see your theme in action. As explained in the documentation, you can apply the theme on either one of your private pages, or your public (or all of them!) &#8211; it all depends on the syntax you use.</p>
<p>If it&#8217;s on a private page:</p>
<ol>
<li>Go to that page of yours ;</li>
<li>Type the following in your browser&#8217;s adress bar:<br />
http://www.netvibes.com/?theme=http://URLOF YOURTHEME</li>
</ol>
<p>If it&#8217;s on your public page (http://www.netvibes.com/PAGEID):</p>
<ul>
<li>http://www.netvibes.com/?visit= PAGEID&amp;theme=http://URLOF YOURTHEME</li>
</ul>
<h3>Explore 10 exclusive themes!</h3>
<p>The 10 exclusive animated themes that were released today are available for your to browse through, in order to learn how to build awesome themes yourself!</p>
<p>Here are the links to their XML files, along with links to apply them on your current private page:</p>
<ul>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/4seasons/theme.xml">4 Seasons</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/4seasons/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/24hours/theme.xml">24 Hours</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/24hours/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/aurora/theme.xml">Aurora</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/aurora/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/colors/theme.xml">Colors</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/colors/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/food/theme.xml">Food</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/food/theme.xml">apply i</a>t)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/grey_texture/theme.xml">Grey Texture</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/grey_texture/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/heart/theme.xml">Heart</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/heart/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/lightness/theme.xml">Lightness</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/lightness/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/sea_serpent/theme.xml">Sea Serpent</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/sea_serpent/theme.xml">apply it</a>)</li>
<li><a href="http://www.netvibes.com/themes/xml-dynamic/yann_arthus_bertrand/theme.xml">Yann Arthus-Bertrand</a> (<a href="http://www.netvibes.com/?theme=http://www.netvibes.com/themes/xml-dynamic/yann_arthus_bertrand/theme.xml">apply it</a>)</li>
</ul>
<p><em>Caution: Applying one of these themes will replace the current theme.</em></p>
<p>Show us your own themes!</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Building%20your%20own%20animated%20theme%20for%20Netvibes&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F&amp;t=Building%20your%20own%20animated%20theme%20for%20Netvibes" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F&amp;title=Building%20your%20own%20animated%20theme%20for%20Netvibes" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F&amp;title=Building%20your%20own%20animated%20theme%20for%20Netvibes" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F&amp;title=Building%20your%20own%20animated%20theme%20for%20Netvibes" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F&amp;title=Building%20your%20own%20animated%20theme%20for%20Netvibes" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F&amp;title=Building%20your%20own%20animated%20theme%20for%20Netvibes" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F07%2F29%2Fbuilding-your-own-animated-theme-for-netvibes%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/07/29/building-your-own-animated-theme-for-netvibes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Netvibes now supports dynamic themes</title>
		<link>http://dev.netvibes.com/blog/2009/06/25/netvibes-now-supports-dynamic-themes/</link>
		<comments>http://dev.netvibes.com/blog/2009/06/25/netvibes-now-supports-dynamic-themes/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:42:31 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=227</guid>
		<description><![CDATA[Back in september 2008, we introduced a way for users to make their own theme, through a Theme API built to be compatible with iGoogle&#8217;s. At that time, we wrote that while we supported most of the features of the original format (and a few of our own), we couldn&#8217;t technically support dynamic themes. We&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>Back <a href="http://dev.netvibes.com/blog/2008/09/26/create-your-own-netvibes-theme/">in september 2008</a>, we introduced a way for users to make their own theme, through a <a href="http://dev.netvibes.com/doc/theme">Theme API</a> built to be compatible with iGoogle&#8217;s. At that time, we wrote that while we supported most of the features of the original format (and a few of our own), we couldn&#8217;t technically support dynamic themes. We&#8217;re happy to annonce that the issue has now been solved!</p>
<p><img class="aligncenter size-medium wp-image-229" title="nv-spring-theme" src="http://dev.netvibes.com/blog/wp-content/uploads/nv-spring-theme-499x143.png" alt="nv-spring-theme" width="499" height="143" /></p>
<p>Dynamic themes are themes that evolve according to the time of day. Provided the theme designer has built his theme conscienciously, a visitor to your public page would not see the same theme in the morning, in the afternoon or in the evening.</p>
<p>This can make for some very creative and inventive use of a theme! You can now express the whole spectrum of your personality through your public page&#8217;s theme.</p>
<h3>How it works</h3>
<p>In your themes, all you have to do is create more than one &lt;ConfigMap type=&#8221;skin&#8221;&gt; and indicate the time the skin must be displayed at. To do so, add the following tag: &lt;Trait name=&#8221;TimeOfDay&#8221;&gt;1am-2am&lt;/Trait&gt; in yout ConfigMap.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">You should end up with something like this:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;ConfigMaps&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;ConfigMap type=&#8221;skin&#8221;&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;Trait name=&#8221;TimeOfDay&#8221;&gt;12am-12pm&lt;/Trait&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8230;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;/ConfigMap&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;ConfigMap type=&#8221;skin&#8221;&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;Trait name=&#8221;TimeOfDay&#8221;&gt;1pm-12am&lt;/Trait&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8230;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;/ConfigMap&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;/ConfigMaps&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Make sure that your timestamps cover the whole day.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">We&#8217;re looking forward to improve the syntax. Help us build a better theme format by sending your feedback!</div>
<p>You should end up with something like this:</p>
<pre>&lt;ConfigMaps&gt;
  &lt;ConfigMap type="skin"&gt;
    &lt;Trait name="TimeOfDay"&gt;12am-12pm&lt;/Trait&gt;
    ...
  &lt;/ConfigMap&gt;
  &lt;ConfigMap type="skin"&gt;
    &lt;Trait name="TimeOfDay"&gt;1pm-12am&lt;/Trait&gt;
    ...
  &lt;/ConfigMap&gt;
&lt;/ConfigMaps&gt;</pre>
<p>Make sure that your timestamps cover the whole day. You can make your life easy by having just two themes (12am-12pm and 1pm-12am), or go crazy and make a specific theme for each hour (12am-1am, 1am-2am, etc.)! Don&#8217;t be afraid about using too many images: only the currently dispayed image is loaded.</p>
<p>We&#8217;re looking forward to improve the syntax. Help us build a better theme format by sending your feedback!</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Netvibes%20now%20supports%20dynamic%20themes&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F&amp;t=Netvibes%20now%20supports%20dynamic%20themes" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F&amp;title=Netvibes%20now%20supports%20dynamic%20themes" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F&amp;title=Netvibes%20now%20supports%20dynamic%20themes" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F&amp;title=Netvibes%20now%20supports%20dynamic%20themes" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F&amp;title=Netvibes%20now%20supports%20dynamic%20themes" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F&amp;title=Netvibes%20now%20supports%20dynamic%20themes" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F25%2Fnetvibes-now-supports-dynamic-themes%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/06/25/netvibes-now-supports-dynamic-themes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kludget supports UWA widgets</title>
		<link>http://dev.netvibes.com/blog/2009/06/18/kludget-supports-uwa-widgets/</link>
		<comments>http://dev.netvibes.com/blog/2009/06/18/kludget-supports-uwa-widgets/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 13:22:16 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=219</guid>
		<description><![CDATA[Having a widget format that can be exported to any of the major widget platform sure helps adoption of our massive collection of widgets. UWA adoption is even further helped when developers implement one of the supported format into their own project.
That&#8217;s exactly what happened last month with Kludgets. Kludgets (short for &#8220;Klumsy, Lame, Ugly, [...]]]></description>
			<content:encoded><![CDATA[<p>Having a widget format that can be exported to any of the major widget platform sure helps adoption of <a href="http://eco.netvibes.com/widgets">our massive collection of widgets</a>. UWA adoption is even further helped when developers implement one of the supported format into their own project.</p>
<div id="attachment_220" class="wp-caption aligncenter" style="width: 510px"><a href="http://dev.netvibes.com/blog/wp-content/uploads/netvibes.jpg"><img class="size-medium wp-image-220" title="netvibes" src="http://dev.netvibes.com/blog/wp-content/uploads/netvibes-500x300.jpg" alt="UWA widgets at work" width="500" height="300" /></a><p class="wp-caption-text">UWA widgets at work</p></div>
<p>That&#8217;s exactly what happened last month with <a href="http://kludgets.com/">Kludgets</a>. Kludgets (short for &#8220;Klumsy, Lame, Ugly, Dumb, but Good Enough&#8221; <img src='http://dev.netvibes.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) is a new, open-source and multiplatform (Windows and Linux) widget engine, which aim is to become a best-of-breed widget engine, taking inspiration from the best features of other platforms.</p>
<p>As such, <a href="http://kludgets.com/developer/">its widget format</a> is a clone of the Apple Dashboard&#8217;s. And since UWA widgets can be exported to the Dashboard format, it was only a matter of time before the Kudgets developer took advantage of it! <a href="http://kludgets.com/2009/05/netvibes/">As they write in their blog</a>, it only takes a handful of steps to get any UWA widget from Ecosystem to work on this new engine.</p>
<p>We&#8217;re really happy to see further proof that the UWA format&#8217;s versatility can be once more proven by this open-source project, and we wish it a swift and successful version 1.0!</p>
<p><em>Now, if they could directly implement the UWA format itself (either using the <a href="http://www.netvibes.org/specs/uwa/current-work/">UWA specification</a> or the LGPLv3 <a href="http://www.netvibes.org/">Exposition project</a>), that&#8217;d be neat!</em></p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Kludget%20supports%20UWA%20widgets&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F&amp;t=Kludget%20supports%20UWA%20widgets" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F&amp;title=Kludget%20supports%20UWA%20widgets" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F&amp;title=Kludget%20supports%20UWA%20widgets" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F&amp;title=Kludget%20supports%20UWA%20widgets" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F&amp;title=Kludget%20supports%20UWA%20widgets" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F&amp;title=Kludget%20supports%20UWA%20widgets" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F18%2Fkludget-supports-uwa-widgets%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/06/18/kludget-supports-uwa-widgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lest we forget…</title>
		<link>http://dev.netvibes.com/blog/2009/06/10/lest-we-forget/</link>
		<comments>http://dev.netvibes.com/blog/2009/06/10/lest-we-forget/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 22:27:31 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=195</guid>
		<description><![CDATA[Publication stopped on this blog a (too long) while ago, without further ado. In the same manner, it&#8217;s back again!
Well, ado there needs to be: let it be known, good people and dearest subscribers, that my time away from the blog has not been in vain, only that I was diverted by other projects which [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.netvibes.com/blog/wp-content/uploads/uwa-wordpress-plugin.png"></a>Publication stopped on this blog a (too long) while ago, without further ado. In the same manner, it&#8217;s back again!</p>
<p>Well, ado there needs to be: let it be known, good people and dearest subscribers, that my time away from the blog has not been in vain, only that I was diverted by other projects which needed my full attention. Even better, the latest of these time-consuming project has even been recently launched: French users of Netvibes can now profit (literally!) from a fully-featured <a href="http://blog.netvibes.com/fr/?2009/06/08/173-gagnez-de-l-argent-en-en-depensant">Cashback widget</a> &#8211; in the conception of which I had a not-too-small part <img src='http://dev.netvibes.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, the Netvibes DevNet blog is now back on tracks, and to make up for the lost time, here are a couple not-so-random facts that popped on our screens during the hiatus, and that we thought you might be interested in. In fact, far from being random, they are both tied to UWA one way or another. Neato!</p>
<h3>UWA widget for WordPress!</h3>
<p>Now that the major components of UWA have been <a href="http://dev.netvibes.com/blog/2008/06/11/new-developers-tools-netvibes-platform-and-the-uwa-iframe-method/">released as open-source</a> on <a href="http://netvibes.org/">Netvibes.org</a> (as well as the <a href="http://netvibes.org/specs/">UWA specification</a>), it was just a matter of time before some talented coder got hold of them to add UWA-capability to a project. Turns out the talent came from none other than François Hodierne,  a former member of the Netvibes team and the man behind the <a href="http://h6e.net/">h6e</a> moniker!</p>
<p>The <a href="http://h6e.net/wordpress/plugins/uwa">UWA Widgets plugin</a>, which hecreated and released back in January, is a WordPress plugin which lets you add UWA widgets on your WordPress dashboard. Simple as that.</p>
<p>What that means is that you can improve the overly dull defaults blocks of WordPress&#8217; dashboard, by mixingsome fun or useful widgets in.</p>
<p>Installing a widget is very easy, once you have a UWA widget&#8217;s source URL. The plugin adds a &#8216;Manage Widget&#8217; section in the &#8216;Settings&#8217; menu. Click it, and a quick interface reveals itself: a list of the installed widgets (with a remove button in case you need it), and simple form to add new widget.<br />
Copy-paste the new widget&#8217;s source URL in that form, validate, and from now on the dashboard will display it along with the other components. You can edit the widget just as you would on Netvibes or the Apple Dashboard: by clicking the &#8216;Configure&#8217; button that appears at the top-right of the block&#8230;</p>
<div id="attachment_217" class="wp-caption aligncenter" style="width: 510px"><a href="http://dev.netvibes.com/blog/wp-content/uploads/uwa-wordpress-plugin.png"><img class="size-medium wp-image-217" title="UWA Widgets plugin in action" src="http://dev.netvibes.com/blog/wp-content/uploads/uwa-wordpress-plugin-500x378.png" alt="uwa-wordpress-plugin" width="500" height="378" /></a><p class="wp-caption-text">The WordPress dashboard with the Twitter, i-Metro and Gaping Void UWA widgets</p></div>
<p>You can get this nifty plugin <a href="http://wordpress.org/extend/plugins/uwa-widgets/">from the WordPress.org Extend section</a>, or directly from WordPress&#8217; internal plugins installer (if you use WP 2.7+).</p>
<p><em>Note: the UWA technology relies on the <a href="http://framework.zend.com/">Zend Framework</a>. Hence, François have created a separate <a href="http://wordpress.org/extend/plugins/zend-framework/">Zend Framework plugin for WordPress</a>, which you should install and activate before activating the UWA Widgets plugin.</em></p>
<p><strong>UWA cheat-sheet in Russian!</strong></p>
<p>Our friends at <a href="http://www.rambler.ru/">Rambler.ru</a>, who&#8217;s own <a href="http://www.myrambler.ru/">personnalized startpage</a> uses the Netvibes technology, have been kind enough to make a russian translation of the UWA cheat-sheet, and share it with us. <a href="http://dev.netvibes.com/doc/uwa/documentation/cheatsheet">You download it here</a>, as with the English and French version!</p>
<p>If you happen to be interested in translating the cheat-sheet into your own language, don&#8217;t hesitate to contact us!</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Lest%20we%20forget...&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F&amp;t=Lest%20we%20forget..." title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F&amp;title=Lest%20we%20forget..." title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F&amp;title=Lest%20we%20forget..." title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F&amp;title=Lest%20we%20forget..." title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F&amp;title=Lest%20we%20forget..." title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F&amp;title=Lest%20we%20forget..." title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F06%2F10%2Flest-we-forget%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/06/10/lest-we-forget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to integrate Netvibes sharing in your website</title>
		<link>http://dev.netvibes.com/blog/2009/05/18/how-to-integrate-netvibes-sharing-in-your-website/</link>
		<comments>http://dev.netvibes.com/blog/2009/05/18/how-to-integrate-netvibes-sharing-in-your-website/#comments</comments>
		<pubDate>Mon, 18 May 2009 15:43:39 +0000</pubDate>
		<dc:creator>Maurice</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[share]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=204</guid>
		<description><![CDATA[Last year, we introduced social features with the &#8220;Ginger&#8221; version of Netvibes. One of them, is the ability for users to share their most interesting links with your all their contacts. Since the launch of the feature, several hundred thousand links have already been publicly shared.
If you&#8217;re running a website, you can get your users [...]]]></description>
			<content:encoded><![CDATA[<p>Last year, we introduced social features with the &#8220;Ginger&#8221; version of Netvibes. One of them, is the ability for users to share their most interesting links with your all their contacts. Since the launch of the feature, several hundred thousand links have already been publicly shared.<br />
If you&#8217;re running a website, you can get your users to easily share your links with their contacts. All you have to do, is build a link with up to 3 GET parameters.</p>
<p>Here is a sample link: <code>http://www.netvibes.com/share?title=Netvibes%20is%20awesome!&amp;url=http%3A//www.netvibes.com/</code></p>
<p>The resource <code>http://www.netvibes.com/share</code> accepts the following parameters:</p>
<ul>
<li><code>title</code> : Title for the shared link (my be URL-encoded);</li>
<li><code>url</code> : The link itself (must be URL-encoded);</li>
<li><code>autoclose</code> : Set it to 1 if you want the popup window to close after submission.</li>
</ul>
<p>To URL-encode your links, you can use the function <code>urlencode</code> in PHP or <code>encodeURIComponent</code> in Javascript.</p>
<p>We tried to make it easy for anyone to integrate those links in any page by keeping it very simple. However, if you&#8217;re looking for turnkey solutions, some universal <a href="http://blog.netvibes.com/?2009/05/18/269-share-your-favorite-web-links-with-your-netvibes-contacts">sharing buttons have already integrated Netvibes</a> and you may use one of them.</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F&amp;t=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F&amp;title=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F&amp;title=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F&amp;title=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F&amp;title=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F&amp;title=How%20to%20integrate%20Netvibes%20sharing%20in%20your%20website" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F05%2F18%2Fhow-to-integrate-netvibes-sharing-in-your-website%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/05/18/how-to-integrate-netvibes-sharing-in-your-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expanding and consolidating</title>
		<link>http://dev.netvibes.com/blog/2009/01/06/expanding-and-consolidating/</link>
		<comments>http://dev.netvibes.com/blog/2009/01/06/expanding-and-consolidating/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 17:10:55 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=171</guid>
		<description><![CDATA[It&#8217;s been a while since we gave you on update on UWA itself. You might think we either have too few to report, or would rather keep things under the radar until it&#8217;s the right time to talk about it. It&#8217;s actually much simpler: we&#8217;ve been busy.
Busy with improving your experience with UWA, that is! [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since we gave you on update on UWA itself. You might think we either have too few to report, or would rather keep things under the radar until it&#8217;s the right time to talk about it. It&#8217;s actually much simpler: we&#8217;ve been busy.</p>
<p>Busy with improving your experience with UWA, that is! <img src='http://dev.netvibes.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  While you might not jump to the eyes, some of our recent efforts have been centered around giving both users and developers a stronger UWA. We did this by working at improving two critical components of a widget developer&#8217;s life: the UWA code itself, and its documentation.</p>
<h3>Better, Faster, Stronger&#8230; and not Harder</h3>
<p>For the last few weeks, our developers have been steadily rewiring the internal compilers for most of the supported platforms, bringing the UWA Environment at top speed, and making room for further improvements. This all happened behind the scene, but the upgrade to the compilers (iGoogle, Opera, Apple Dashboard, Live.com, etc.) should improve your every day use of UWA widgets.</p>
<p>Aditionnally, we used these updates to normalize behaviors across the different platforms, and incorporate a bottom status bar to maximize the spread of your widgets. Every newly-exported widget from Ecosystem will feature this bar, which we hope will help your widget reach more people.</p>
<p>See for instance the <a href="http://fr.eco.netvibes.com/widgets/205553/web-radio-player">Web Radio Player</a> widget, as displayed on Apple Dashboard, iGoogle, Opera and with <a href="http://fr.eco.netvibes.com/export/blog/205553/web-radio-player">the export tool</a> :</p>
<p><a href="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-dashboard.png"><img class="alignnone size-medium wp-image-182" title="webradioplayer-dashboard" src="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-dashboard-228x300.png" alt="webradioplayer-dashboard" width="228" height="300" /></a><a href="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-igoogle.png"><img class="alignnone size-medium wp-image-183" title="webradioplayer-igoogle" src="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-igoogle-252x300.png" alt="webradioplayer-igoogle" width="252" height="300" /><br />
</a><a href="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-opera.png"><img class="alignnone size-medium wp-image-184" title="webradioplayer-opera" src="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-opera-224x300.png" alt="webradioplayer-opera" width="224" height="300" /></a><a href="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-blogexport.png"><img class="alignnone size-medium wp-image-185" title="webradioplayer-blogexport" src="http://dev.netvibes.com/blog/wp-content/uploads/webradioplayer-blogexport-230x300.png" alt="webradioplayer-blogexport" width="230" height="300" /></a></p>
<p>As you can see, they all share the same Share button at the bottom of the widget. This is not in place in the Vista/Live.com export for now.</p>
<p>Also, note that all changes made to UWA are regularly backported to the open-source Exposition Widget Server.</p>
<h3>&#8230;and easier on the eyes too!</h3>
<p>Let&#8217;s face it, the DevNet used to be a mess of intertwined pages. That alone was bound to lose the reader&#8217;s patience, but the fact that over the years more technologies other than UWA kept being added to the documentation site (REST API, Ecosystem API, Theme format&#8230;), made for a much-needed revamping of the homepage, as well as a reorganization of all pages and a trimming of the unneeded ones.</p>
<p>That means a few important changes in the documentation URLs. All the documentation used to be located under http://dev.netvibes.com/doc/, but the coming of non-UWA-related docs urged us to gave each of them its own directory, as it should. There are now 3 mains sub-directories:</p>
<ul>
<li><a href="http://dev.netvibes.com/doc/uwa">http://dev.netvibes.com/doc/uwa/</a> : all there is to know about UWA, the Universal Widget API;</li>
<li><a href="http://dev.netvibes.com/doc/api">http://dev.netvibes.com/doc/api/</a> : for some of Netvibes&#8217; other APIs;</li>
<li><a href="http://dev.netvibes.com/doc/theme">http://dev.netvibes.com/doc/theme/</a> : for our Theme file format.</li>
</ul>
<p>All the previously available docs have been moved to their respective directories. This would mean URL breakage, but we paid attention to make sure old URL would automatically redirect to the news ones. That being said, if you stumble upon any remaining ones, don&#8217;t hesitate to let us know!</p>
<p>Likewise, some pages of documentation have been deleted, some others created, some renamed for clarity, and most have been rewritten at least in part in order to take into account two years of UWA discussions on the forum. We&#8217;re still working on a brand new FAQ as of this typing, but all other page should be clearer yet.</p>
<p>Anyway, as the old song goes: &#8220;you have to admit, it&#8217;s getting better, a little better all the time&#8221; <img src='http://dev.netvibes.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=Expanding%20and%20consolidating&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F&amp;t=Expanding%20and%20consolidating" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F&amp;title=Expanding%20and%20consolidating" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F&amp;title=Expanding%20and%20consolidating" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F&amp;title=Expanding%20and%20consolidating" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F&amp;title=Expanding%20and%20consolidating" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F&amp;title=Expanding%20and%20consolidating" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2009%2F01%2F06%2Fexpanding-and-consolidating%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2009/01/06/expanding-and-consolidating/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008: a year in review</title>
		<link>http://dev.netvibes.com/blog/2008/12/30/2008-a-year-in-review/</link>
		<comments>http://dev.netvibes.com/blog/2008/12/30/2008-a-year-in-review/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 15:29:28 +0000</pubDate>
		<dc:creator>Xavier</dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://dev.netvibes.com/blog/?p=177</guid>
		<description><![CDATA[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 &#8211; and by us, I mean UWA and its ecosystem.
2008 has been a good year: we&#8217;ve released some very cool stuffs, added some functionalities to the API, and made [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.flickr.com/photos/msiebuhr/3129922971/'><img src="http://dev.netvibes.com/blog/wp-content/uploads/mistletoe.png" alt="" title="Mistletoe, by Morten Siebuhr" width="250" height="374" class="alignright size-full wp-image-178" /></a>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 &#8211; and by us, I mean UWA and its ecosystem.</p>
<p>2008 has been a good year: we&#8217;ve released some very cool stuffs, added some functionalities to the API, and made the code sturdier. Let&#8217;s bring on The List:</p>
<ul>
<li>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.</li>
<li>Our dear DevNet site got a <a href="http://dev.netvibes.com/blog/2008/04/29/new-design-and-uwa-doc-update/">cool new design</a>, and the <a href="http://dev.netvibes.com/blog/2008/06/06/new-version-of-the-uwa-cheat-sheet/">UWA Cheat-Sheet got finalized</a> in a lovely printable form, as a companion to the <a href="http://dev.netvibes.com/doc/uwa/documentation/uwa_monopage">one-page documentation.</a></li>
<li>In May, we celebrated the first birthday of UWA late, with a <a href="http://dev.netvibes.com/blog/2008/06/11/new-developers-tools-netvibes-platform-and-the-uwa-iframe-method/">Developer Conference</a> where we released&#8230;
<ul><a href="http://www.netvibes.org/">netvibes.org</a>: the central repository for all our open-source projects, with a proper bug-tracking tool ;</ul>
<ul>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) ;</ul>
<ul>Full in-code documentation for all the above projects ;</ul>
<ul>The <a href="http://dev.netvibes.com/doc/howto/uwa_iframe">UWA-iframe</a> method.</ul>
</li>
<li>To polish our opening of UWA, we published the first <a href="http://dev.netvibes.com/blog/2008/08/22/release-of-the-uwa-specification-working-draft/">working draft of the UWA specification</a>, for everyone to implement our widget API freely ;</li>
<li>Since september, designer can create their <a href="http://dev.netvibes.com/blog/2008/09/26/create-your-own-netvibes-theme/">own theme for Netvibes</a>, through an XML format ;</li>
<li>Ecosystem saw the addition of a full-blown <a href="http://dev.netvibes.com/blog/2008/10/10/ecosystems-new-widget-creator-is-live/">widget creator</a>, which eases the creation of widgets based on multiple feeds ;</li>
<li>And finally, as if all this wasn&#8217;t enough, we released a preview of our <a href="http://dev.netvibes.com/blog/2008/12/12/uwa-now-supports-the-opensocial-api/">support for the OpenSocial API</a>, allowing widget developers to not only have universal widget, but social too (provide the platform support OpenSocial).</li>
</ul>
<p>All in all, this has been a very productive year, and we hope you&#8217;ve been happy with the direction we gave to UWA. Be sure that more evolution is being prepared for 2009!</p>
<p>Have some excellent NYE parties, everyone, and as the saying goes, &#8220;see you next year!&#8221;</p>
<p>Share this post:</p>
<p>	<a rel="nofollow" target="_blank" href="mailto:?subject=2008%3A%20a%20year%20in%20review&amp;body=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F" title="E-mail this story to a friend!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" href="javascript:window.print();" title="Print this article!"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/printer.png" title="Print this article!" alt="Print this article!" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Netvibes"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="" title="Twitter"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/" title="Twitter" alt="Twitter" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F&amp;t=2008%3A%20a%20year%20in%20review" title="Facebook"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F&amp;title=2008%3A%20a%20year%20in%20review" title="Digg"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F&amp;title=2008%3A%20a%20year%20in%20review" title="Reddit"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F&amp;title=2008%3A%20a%20year%20in%20review" title="del.icio.us"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F&amp;title=2008%3A%20a%20year%20in%20review" title="blogmarks"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F&amp;title=2008%3A%20a%20year%20in%20review" title="description"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/dzone.png" title="description" alt="description" class="sociable-hovers" /></a><br />
	<a rel="nofollow" target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fdev.netvibes.com%2Fblog%2F2008%2F12%2F30%2F2008-a-year-in-review%2F" title="Wikio"><img src="http://dev.netvibes.com/blog/wp-content/plugins/sociable/images/wikio.gif" title="Wikio" alt="Wikio" class="sociable-hovers" /></a></p>
<p><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://dev.netvibes.com/blog/2008/12/30/2008-a-year-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
