<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Fiery Robot! &#187; Widgets</title>
	<atom:link href="http://www.fieryrobot.com/blog/category/widgets/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fieryrobot.com/blog</link>
	<description>Defender of Corporate Headquarters</description>
	<lastBuildDate>Mon, 12 Jul 2010 21:26:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Being One with the DOM</title>
		<link>http://www.fieryrobot.com/blog/2007/05/14/being-one-with-the-dom/</link>
		<comments>http://www.fieryrobot.com/blog/2007/05/14/being-one-with-the-dom/#comments</comments>
		<pubDate>Tue, 15 May 2007 02:21:36 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/2007/05/14/being-one-with-the-dom/</guid>
		<description><![CDATA[Over the past couple of weeks, I&#8217;ve been doing a lot of work with our Konfabulator DOM. In some ways, we are completely redoing it so we can use it as the basis for everything (finally). I have also been looking at better ways to expose it via JavaScript. What I continuously learn is that [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past couple of weeks, I&#8217;ve been doing a lot of work with our Konfabulator DOM. In some ways, we are completely redoing it so we can use it as the basis for everything (finally). I have also been looking at better ways to expose it via JavaScript.</p>

<p>What I continuously learn is that I really didn&#8217;t know the DOM spec like I thought I did. There is a lot of subtlety in the language that isn&#8217;t quite clear until you finally live the life for yourself. Over the weekend I was trying to get some stuff straight in my head. After working through it and getting my head around how to organize things, I was reading the W3C spec and noticed that it had basically said what I had just realized all along. It&#8217;s not super-obvious unless you really know a DOM implementation inside and out and have had to understand the design out of necessity. It&#8217;s a bit akin to my experience in karate where you&#8217;ll have someone tell you things a million times and then once you do it a zillion times you finally get it and say &#8220;my god, they&#8217;ve been telling me this all along&#8221;. There&#8217;s so much about learning that&#8217;s about experience and not words.</p>

<p>But of course the good news is that our DOM is much cleaner now and can be used for more things. I still need to figure out if I want to switch to use an Interface idiom ala Mozilla. It would simplify some things, but complicate others. More to think about. If I do go with Interfaces, I&#8217;ll probably just rely on C++ and not go so far as to use something like xpcom internally. That seems a bit much. But if I do C++ for now, it should be relatively straightforward to switch later if for some reason a COM-like solution was needed.</p>

<p>By far the trickest part is going to end up being how we expose things via Javascript. I&#8217;m not happy with the amount of work we have to do to expose a class. Too much repetitive work. I guess if we did use xpcom it would be a lot simpler since xpconnect does all these things for you. But that is biting off way more than we can afford to chew right now. Phasing is critical to success long term. I do have a decent hybrid solution in mind that can bridge the gap from where we were and a completely generic solution such as xpconnect.</p>

<p>Once our new foundation is in place it&#8217;s going to make a huge difference in what we&#8217;re able to do and how quickly we can do it. A lot of doors are going to open up when I&#8217;m done. It&#8217;s going to be pretty cool. If only I could finish!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2007/05/14/being-one-with-the-dom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Badges of Honour</title>
		<link>http://www.fieryrobot.com/blog/2007/05/09/badges-of-honour/</link>
		<comments>http://www.fieryrobot.com/blog/2007/05/09/badges-of-honour/#comments</comments>
		<pubDate>Wed, 09 May 2007 23:57:43 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/2007/05/09/badges-of-honour/</guid>
		<description><![CDATA[Yes, you can now put a badge on your website pointing to any Widget in the Yahoo! Widget Gallery by going to our Badgers page. You can point to any Widget you want, be it your own or your favorite. Badge away! (I&#8217;ve badged the Flickr Widget over on the right as an example.)]]></description>
			<content:encoded><![CDATA[<p>Yes, you can now put a badge on your website pointing to any Widget in the Yahoo! Widget Gallery by going to our <a href="http://widgets.yahoo.com/badgers">Badgers page</a>. You can point to any Widget you want, be it your own or your favorite. Badge away!</p>

<p>(I&#8217;ve badged the Flickr Widget over on the right as an example.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2007/05/09/badges-of-honour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Day!</title>
		<link>http://www.fieryrobot.com/blog/2007/05/09/developer-day/</link>
		<comments>http://www.fieryrobot.com/blog/2007/05/09/developer-day/#comments</comments>
		<pubDate>Wed, 09 May 2007 19:22:52 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/2007/05/09/developer-day/</guid>
		<description><![CDATA[We&#8217;re offering the first ever Yahoo! Widgets Developer Day at our headquarters in Sunnyvale, CA. If you happen to be a Widget developer, we&#8217;d love to see you there. You can get more information on the Widgets Blog.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re offering the first ever Yahoo! Widgets Developer Day at our headquarters in Sunnyvale, CA. If you happen to be a Widget developer, we&#8217;d love to see you there.</p>

<p>You can get more information on the <a href="http://widgets.yahoo.net/blog?p=21">Widgets Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2007/05/09/developer-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo! Widgets 4 Released</title>
		<link>http://www.fieryrobot.com/blog/2007/03/21/yahoo-widgets-4-released/</link>
		<comments>http://www.fieryrobot.com/blog/2007/03/21/yahoo-widgets-4-released/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 07:02:10 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/2007/03/21/yahoo-widgets-4-released/</guid>
		<description><![CDATA[We&#8217;re done with Yahoo! Widgets 4! Read all about it on our official Widget Blog. This release took a while to get done, but the team is ramped up substantially. We do still have three engineering reqs. to fill, so if you know someone who&#8217;s a wiz at doing framework-level development, send them our way. [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re done with Yahoo! Widgets 4! Read all about it on our official <a href="http://widgets.yahoo.net/blog">Widget Blog</a>. This release took a while to get done, but the team is ramped up substantially. We do still have three engineering reqs. to fill, so if you know someone who&#8217;s a wiz at doing framework-level development, send them our way. The next couple of releases are really going to change things.
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2007/03/21/yahoo-widgets-4-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey! That ain&#8217;t right!</title>
		<link>http://www.fieryrobot.com/blog/2007/03/19/hey-that-aint-right/</link>
		<comments>http://www.fieryrobot.com/blog/2007/03/19/hey-that-aint-right/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 01:03:13 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/2007/03/19/hey-that-aint-right/</guid>
		<description><![CDATA[Check out this picture. On the left, Konfabulator/Yahoo! Widgets. On the right, an Apollo sample. As you can see, they stole our images verbatim. Not cool. I should point out that their Widget takes 26MB of RPRIV on Mac OS X, our Weather Widget takes 3MB. Booyah. Yeah, i know it&#8217;s alpha, but still.]]></description>
			<content:encoded><![CDATA[<p>Check out this picture. On the left, Konfabulator/Yahoo! Widgets. On the right, an Apollo sample. As you can see, they stole our images verbatim. Not cool.</p>

<p><img id="image62" alt="Bad Adobe!" src="http://www.fieryrobot.com/blog/wp-content/uploads/2007/03/untitled.PNG" /></p>

<p>I should point out that their Widget takes 26MB of RPRIV on Mac OS X, our Weather Widget takes 3MB. Booyah. Yeah, i know it&#8217;s alpha, but still.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2007/03/19/hey-that-aint-right/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What is a Widget?</title>
		<link>http://www.fieryrobot.com/blog/2006/07/10/what-is-a-widget/</link>
		<comments>http://www.fieryrobot.com/blog/2006/07/10/what-is-a-widget/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 01:24:42 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/2006/07/10/what-is-a-widget/</guid>
		<description><![CDATA[An interesting topic came up in a meeting recently surrounding what a Widget is. What is it? Should they be small an extremely lightweight in functionality, or should you be able to write some moderately complex things with the technology? There is a continuum of possibility, but where should one draw the line? Should there [...]]]></description>
			<content:encoded><![CDATA[<p>An interesting topic came up in a meeting recently surrounding what a Widget is. What is it? Should they be small an extremely lightweight in functionality, or should you be able to write some moderately complex things with the technology? There is a continuum of possibility, but where should one draw the line? Should there be a line at all?<span id="more-33"></span></p>

<p>Certainly the current attitude has been that they should be small mini-applications, and not try to approach the complexity of a full-fledged desktop application, such as a word processor or mail program. But really, where do you draw the line? If you look at our current FIFA Widget, it&#8217;s actually quite complex. It&#8217;s merely a data display device though&#8230; lots of data in a compact form factor. However, Something like the Yahoo! Address Book Widget has much more functionality: not only can you view your address book, but you can add and remove entries right in the Widget. Have we gone too far, or not far enough?</p>

<p>Certainly the current engine we have isn&#8217;t going to be used to write anything as thorough as something like Photoshop. But given time and resources, we could add the necessary support. The question of course becomes &#8220;why&#8221;. That&#8217;s what&#8217;s not clear. One of our goals has always been to make it very simple to dabble with writing Widgets. The more complex you allow the platform to become, typically the greater the barrier to entry becomes. I do think we have an advantage in that we don&#8217;t need to shoehorn what we want to accomplish into any existing standards, for the most part (though as time passes, we are attempting to use more standard idioms and names for things). This does allow us to have a very low barrier to entry while still allowing more complicated things to be done. And we do in fact have plans to make some of these complicated things even easier in the future.</p>

<p>Another point about going the full toolkit route: we could certainly add all the functionality in the world, but then we&#8217;re almost doing the same thing as something like XULRunner. I think for Widgets, XUL is too much. The sheer number of things available to use can make the simple hobbyist who just wants a server monitor balk. Do we want our engine to be that large and complex? If there is a line, that seems way over it. And since XULRunner (mostly) exists, it&#8217;s not clear that we&#8217;d even want to go down that road for our engine anyway.</p>

<p>So I think the answer is that at least for the duration, Widgets should remain small, lightweight, and quick and easy to put together. I still don&#8217;t know where to put that line, but I think we&#8217;ll have an idea when we&#8217;re up against it. When that happens, I&#8217;ll let you know <img src='http://www.fieryrobot.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2006/07/10/what-is-a-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo! Widgets 3.0 Released</title>
		<link>http://www.fieryrobot.com/blog/2005/12/12/yahoo-widgets-30-released/</link>
		<comments>http://www.fieryrobot.com/blog/2005/12/12/yahoo-widgets-30-released/#comments</comments>
		<pubDate>Mon, 12 Dec 2005 22:24:45 +0000</pubDate>
		<dc:creator>Ed</dc:creator>
				<category><![CDATA[Widgets]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://www.fieryrobot.com/blog/?p=18</guid>
		<description><![CDATA[Yes, finally. Yahoo! Widget Engine (nee Konfabulator) was just released today. It&#8217;s a huge step forward both in end user benefit and developer features. For users, there are all new Widgets that connect to Yahoo! properties (Search, Maps, Flickr, Y! Photos, Notepad, 360) and some significant fixes, particularly for Outlook users who used PIM Overview [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, finally. Yahoo! Widget Engine (nee Konfabulator) was just released today. It&#8217;s a huge step forward both in end user benefit and developer features.</p>

<p>For users, there are all new Widgets that connect to Yahoo! properties (Search, Maps, Flickr, Y! Photos, Notepad, 360) and some significant fixes, particularly for Outlook users who used PIM Overview (now called Day Planner). It also brings some performance improvements, particularly on Mac. We were encountering problems with Cocoa&#8217;s lack of support for overlapping sibling views. Apparently the answer in the past was to just draw everything all the time. But that wasn&#8217;t flying so well these days with more complex Widgets. So I changed it to bypass the Cocoa view system and just use the same basic view system we do on Windows. We tried to layer it at first but we got some weird overdrawing issues with rotated items. Turns out eliminating the Cocoa draw path sped us up considerably (very user-perceptable in some Widgets such as Atomic Timer).</p>

<p>For developers, there is a whole new set of features: a native XML parser, Level 1 DOM support , XPath, XMLHttpRequest, subviews, scroll bars, and much more. The interesting thing is that I still have a whiteboard full of things we still want to do for the future. We&#8217;re hardly done making this platform as powerful as we want it to be.</p>

<p>Anyway, I&#8217;m very glad this is now out the door as we can start concentrating on some of the features I&#8217;ve been dying to do for some time. Things that will really up the ante for what you can pull off in a Widget. But first I must rest and do my Christmas shopping!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fieryrobot.com/blog/2005/12/12/yahoo-widgets-30-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
