<?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>Hackerdude &#187; Mozilla XUL</title>
	<atom:link href="http://www.hackerdude.com/category/dev-platforms/mozilla-xul/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackerdude.com</link>
	<description>Software Development Blog by David Martinez</description>
	<lastBuildDate>Fri, 17 Sep 2010 18:31:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Speed Up Firefox web browser &#8211; Ubuntu Geek</title>
		<link>http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/</link>
		<comments>http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 18:13:55 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mozilla XUL]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/</guid>
		<description><![CDATA[Ubuntu Geek provides a great little guide on speeding up Firefox. A lot of the about:config settings he proposes changing are already fairly optimal on a Mac, but disabling IPv6 seemed to make the most difference on my case. [From Speed Up Firefox web browser&#160;&#124;&#160;Ubuntu Geek]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ubuntugeek.com">Ubuntu Geek</a> provides a great little guide on speeding up Firefox. A lot of the about:config settings he proposes changing are already fairly optimal on a Mac, but disabling IPv6 seemed to make the most difference on my case.</p>
<blockquote cite="http://www.ubuntugeek.com/speed-up-firefox-web-browser.html">
<p>[From <a href="http://www.ubuntugeek.com/speed-up-firefox-web-browser.html"><cite>  Speed Up Firefox web browser&#160;|&#160;Ubuntu Geek</cite></a>]
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/04/09/speed-up-firefox-web-browserubuntu-geek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wazaabi &#8211; XUL for RCP.</title>
		<link>http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/</link>
		<comments>http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/#comments</comments>
		<pubDate>Fri, 08 Dec 2006 16:17:31 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mozilla XUL]]></category>
		<category><![CDATA[Web Development: Client Side]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/</guid>
		<description><![CDATA[This opens pretty interesting possibilities: Via TheServerSide: Wazaabi includes a GUI framework that brings XUL to Eclipse RCP plugin developers and a set of components that link the client-side XUL based viewers and forms to server-side business components. Thus, rich client developers can use XUL to code a GUI, rather than using SWT. Wazaabi brings [...]]]></description>
			<content:encoded><![CDATA[<p>This opens pretty interesting possibilities:</p>
<p>
</p>
<p>Via TheServerSide:</p>
<blockquote cite="http://www.theserverside.com/news/thread.tss?thread_id=43385"><p>
Wazaabi includes a GUI framework that brings XUL to Eclipse RCP plugin developers and a set of components that link the client-side XUL based viewers and forms to server-side business components. Thus, rich client developers can use XUL to code a GUI, rather than using SWT.</p></blockquote>
<p class="citation"><cite cite="http://www.theserverside.com/news/thread.tss?thread_id=43385"><a href="http://www.theserverside.com/news/thread.tss?thread_id=43385">Wazaabi brings XUL to Eclipse RCP based rich client applications</a></cite></p>
<p />This is an actual XUL viewer, not a similar syntax like XSWT or similar attempts. They use servlets to communicate between the XUL side and your application, to keep the flexibility of sending the XUL to a mozilla browser. Very interesting.</p>
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/java" rel="tag">java</a>, <a href="http://technorati.com/tag/xul" rel="tag">xul</a>, <a href="http://technorati.com/tag/eclipse" rel="tag">eclipse</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2006/12/08/wazaabi-xul-for-rcp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XUL Notes</title>
		<link>http://www.hackerdude.com/2005/12/03/xul-notes/</link>
		<comments>http://www.hackerdude.com/2005/12/03/xul-notes/#comments</comments>
		<pubDate>Sat, 03 Dec 2005 18:39:04 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mozilla XUL]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/?p=432</guid>
		<description><![CDATA[Some XUL notes]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mozilla.org">Firefox 1.5</a> has been released. As a result <a href="http://www.xulplanet.com/">XUL</a> is cool again. Having dealt with XUL in Mozilla 1.4 through 1.7, I know it has its place on medium-sized projects. It will be interesting to see what happens with this.</p>
<p><span id="more-432"></span></p>
<h2>A little XUL background</h2>
<p>XUL is a javascript/DOM/CSS platform. Basically what the mozilla team did is the following:</p>
<ol>
<li>They added to the javascript interpreter the capability to talk to the C-written internal browser objects directly (XPCOM), when the javascript is not running from the web, as well as a security model through which javascript can ask for permission to use XPCOM on specific objects. Javascript in a local machine can run without permission restrictions.</li>
<li>They then reimplemented the browser on top of this javascript interpreter and XPCOM. I'm oversimplying, but the C parts of mozilla nowadays are just a rendering engine, a javascript interpreter and a DOM object model. All of the customer-facing code (everything you see on your screen) is driven via javascript.</li>
<li>They created DOM element wrappers for all the widgets in their application widget library, even widgets that are not part of the HTML standard (trees, dialogs, etc). Defining colors and styles is done through CSS. The resulting XML syntax is called XUL. The collection of XUL and Javascript is sometimes called a "chrome application". When you start firefox itself, you're basically running the engine and "navigating" to chrome://browser/content/browser.xul (clicking only works on Firefox). Type this into your browser bar and check it out. <a href="http://kb.mozillazine.org/Chrome_URLs">There's a list</a> of available "stock" chrome URLs to examine in Mozillazine.</li>
</ol>
<p>The XUL syntax can be extended. In essence, you can create your own DOM widgets by using a part of XUL called <a href="http://xulplanet.com/tutorials/xultu/introxbl.html">XBL</a>, which defines a XUL collection as a tag and provides methods and properties in embedded javascript. The end result of this is the ability to create reusable UI components. The component "registry" (knowing what components are available to which applications) is achieved through extensions to CSS.</p>
<h2>Scripted Applications</h2>
<p>So now that we understand how Javascript is structured, you can start to see what it may be adequate for.</p>
<p><b>Disclaimer:</b> Just like people, languages grow to become better, and continuously reinvent themselves. This writing is what I think about this language as of 2005, having enjoyed its best features and suffered through its worst issues for a while. This may become less relevant as people address the problems.</p>
<p>Writing software in XUL is fun. Testing and debugging them, not so much. One of the reasons scripted applications are enjoying a bit of a revival lately is their community's embracing of test-first approach. With a strong testing culture, something that breaks at runtime is not so bad because the automated verification test should catch it. Having said that, mozilla XUL developers as a whole definitely don't have a test-first approach.</p>
<p>Don't fall on this trap. You can and should add automated tests to your XUL. <a href="http://www.edwardh.com/jsunit/">JSUnit</a> works somewhat - it will be your friend, and it will influence your OO design if you write the tests as you write the code, making maintenance down the line a lot easier. I wonder if <a href="http://selenium.thoughtworks.com/index.html">Selenium</a> can be used to test XUL (they can test HTML and javascript, so I don't see why it wouldn't be useful for chrome URLs).</p>
<h3>Learning Curve</h3>
<p>Remember XUL was implemented using web standards. If you're not a web developer already, be prepared for a steep learning curve. If you are familiar with writing complex web applications, still make sure you brush up on DOM, JavaScript, XML, CSS. CSS in particular is used to a much greater extent than I was expecting.</p>
<p><!--adsense#firefox--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2005/12/03/xul-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

