<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>SOS</title>
	<atom:link href="http://shaneosullivan.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://shaneosullivan.wordpress.com</link>
	<description>Shane O'Sullivan's technical blog... really ties the room together</description>
	<lastBuildDate>Tue, 16 Jun 2009 07:45:08 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/911b66e2c5876b2fc9dd0495b92cac39?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>SOS</title>
		<link>http://shaneosullivan.wordpress.com</link>
	</image>
			<item>
		<title>dojox Calendar updated</title>
		<link>http://shaneosullivan.wordpress.com/2009/06/13/dojox-calendar-updated/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/06/13/dojox-calendar-updated/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 19:13:08 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=272</guid>
		<description><![CDATA[Today I checked in some bug fixes and performance enhancements for the dojox.widget.Calendar widget.  If you&#8217;re currently using version 1.3 or later, I strongly suggest you grab it, as it addresses an annoying bug with displaying the wrong selected date.
You can either check out the file from source control, or grab it from here &#8211; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=272&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Today I checked in some bug fixes and performance enhancements for the <a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/tests/test_Calendar.html" target="_blank">dojox.widget.Calendar</a> widget.  If you&#8217;re currently using version 1.3 or later, I strongly suggest you grab it, as it addresses an annoying bug with displaying the wrong selected date.</p>
<p>You can either check out the file from source control, or grab it from here &#8211; <a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/Calendar.js" target="_blank">http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/Calendar.js</a> any time from Sunday June 14th.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/272/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=272&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/06/13/dojox-calendar-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>dojo.beer() in Dublin June 6th</title>
		<link>http://shaneosullivan.wordpress.com/2009/06/05/dojo-beer-in-dublin-june-6th/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/06/05/dojo-beer-in-dublin-june-6th/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 14:42:48 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=270</guid>
		<description><![CDATA[Just a quick reminder, the dojo.beer() event in Dublin, Ireland is on tomorrow, June 6th.  See my previous post at http://shaneosullivan.wordpress.com/2009/05/20/dojo-beer-event-in-dublin-june-6th for full details.  Should be fun!
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=270&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just a quick reminder, the dojo.beer() event in Dublin, Ireland is on tomorrow, June 6th.  See my previous post at <a href="http://shaneosullivan.wordpress.com/2009/05/20/dojo-beer-event-in-dublin-june-6th" target="_self">http://shaneosullivan.wordpress.com/2009/05/20/dojo-beer-event-in-dublin-june-6th</a> for full details.  Should be fun!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/270/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=270&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/06/05/dojo-beer-in-dublin-june-6th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Cool Portlets added to Dojo!</title>
		<link>http://shaneosullivan.wordpress.com/2009/06/01/cool-portlets-added-to-dojo/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/06/01/cool-portlets-added-to-dojo/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 21:36:39 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[dojo.data]]></category>
		<category><![CDATA[dojo.image]]></category>
		<category><![CDATA[dojox]]></category>
		<category><![CDATA[dojox.image]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[tab]]></category>
		<category><![CDATA[portlet]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=267</guid>
		<description><![CDATA[Last week I put the finishing touches my Portlets for the Dojo Ajax Toolkit.  You can see them now on the test page at http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/tests/test_PortletInGridContainer.html (it can take a while to load since it loads a hell of a lot of widgets and the code is not optimized with a build).
To see a description of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=267&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last week I put the finishing touches my Portlets for the Dojo Ajax Toolkit.  You can see them now on the test page at <a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/tests/test_PortletInGridContainer.html" target="_blank">http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/tests/test_PortletInGridContainer.html</a> (it can take a while to load since it loads a hell of a lot of widgets and the code is not optimized with a build).</p>
<p>To see a description of what they can do, see my original post announcing them at <a href="http://shaneosullivan.wordpress.com/2009/03/11/cool-portlets-in-dojo/" target="_blank">http://shaneosullivan.wordpress.com/2009/03/11/cool-portlets-in-dojo</a></p>
<p>As a brief description, Portlets are widgets that represent individual applications used in a web portal.  They can be rearranged by dragging and dropping them around the page, and can often be customised with a number of settings.</p>
<p>The Dojo Portlets, in the dojox.widget project, support some useful features like:</p>
<ul>
<li>Customisable settings widgets, for setting user defined options.</li>
<li>Loading Atom and RSS feeds to display as a list</li>
</ul>
<p>and a good bit more.  See my <a href="http://shaneosullivan.wordpress.com/2009/03/11/cool-portlets-in-dojo/" target="_blank">previous post</a> for a full description, or check out the <a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/widget/tests/test_PortletInGridContainer.html" target="_blank">test page</a>.</p>
<p>Below you can see the Portlets using the blue Soria theme from Dojo.  There will probably be some small changes to the look and feel before v1.4 is released, but nothing major.  Note the different types of Portlets, from the Atom &amp; RSS feed portlets on the left that can show more detail using tooltips or expandable secrions, to portlets containing generic widgets like a slideshow on the right.</p>
<p>Have fun!</p>
<p><img class="alignnone size-full wp-image-268" title="Portlets" src="http://shaneosullivan.files.wordpress.com/2009/06/portlets.png?w=895&#038;h=675" alt="Portlets" width="895" height="675" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=267&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/06/01/cool-portlets-added-to-dojo/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://shaneosullivan.files.wordpress.com/2009/06/portlets.png" medium="image">
			<media:title type="html">Portlets</media:title>
		</media:content>
	</item>
		<item>
		<title>Code style checker for Dojo</title>
		<link>http://shaneosullivan.wordpress.com/2009/05/23/code-style-checker-for-dojo/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/05/23/code-style-checker-for-dojo/#comments</comments>
		<pubDate>Sat, 23 May 2009 12:29:49 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=260</guid>
		<description><![CDATA[I&#8217;ve added a code style tool to the Dojo Util project that developers can use to ensure that their code is following the syle guidelines published here -http://www.dojotoolkit.org/developer/StyleGuide .
You can see the current report, as of May 23rd 2009 at http://skynet.ie/~sos/misc/dojoCheckstyle/util/checkstyle/checkstyleReport.html
It can be very difficult to police your own code for tabs and spaces, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=260&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve added a code style tool to the Dojo Util project that developers can use to ensure that their code is following the syle guidelines published here -<a href="http://www.dojotoolkit.org/developer/StyleGuide" target="_blank">http://www.dojotoolkit.org/developer/StyleGuide</a> .</p>
<p>You can see the current report, as of May 23rd 2009 at <a href="http://skynet.ie/~sos/misc/dojoCheckstyle/util/checkstyle/checkstyleReport.html" target="_blank">http://skynet.ie/~sos/misc/dojoCheckstyle/util/checkstyle/checkstyleReport.html</a></p>
<p>It can be very difficult to police your own code for tabs and spaces, and developers have much better things to be doing with their time than visually scanning over their code making sure that it is formatted correctly.</p>
<p>This tool identifies style guide violations, and gives developers a HTML file that displays them, and automatically fixes many of the common mistakes for you.  (This works best in Firefox right now, so you that if you have it)</p>
<p>The style checker is primarily aimed at Dojo contributors, but can also be used by normal users of the toolkit.  To override the standard folders that are examined, you can simply set the &#8216;<strong>dir</strong>&#8216; parameter relative to the Dojo base folder, and a checkstyle report will be generated for you custom code.</p>
<p>To see how to use the tool, get the latest vode from svn, the go to <strong>util/checkstyle</strong> and type</p>
<p><strong>checkstyle.bat help</strong></p>
<p>To run the checkstyle tool on the entire Dojo tree, simply type</p>
<p><strong>checkstyle.bat</strong></p>
<p>then open the checkstyleReport.html file, which you can see below.</p>
<p>If you want to be able to save files from the web interface, you&#8217;ll have to renamve the file <strong>checkstyle.php.rename.html </strong>to <strong>checkstyle.php</strong>, then click the <strong>Save</strong> or <strong>Save All </strong>buttons in the UI.</p>
<p>There is a ticket to track all checkstyle fixes at <a href="http://bugs.dojotoolkit.org/ticket/7390" target="_blank">http://bugs.dojotoolkit.org/ticket/7390</a> , so can developers please reference this when checking in style fixes?</p>
<p><img class="alignnone size-full wp-image-262" title="Checkstyle UI" src="http://shaneosullivan.files.wordpress.com/2009/05/checkstylepic1.png?w=866&#038;h=543" alt="Checkstyle UI" width="866" height="543" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=260&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/05/23/code-style-checker-for-dojo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://shaneosullivan.files.wordpress.com/2009/05/checkstylepic1.png" medium="image">
			<media:title type="html">Checkstyle UI</media:title>
		</media:content>
	</item>
		<item>
		<title>dojo.beer() event in Dublin, June 6th</title>
		<link>http://shaneosullivan.wordpress.com/2009/05/20/dojo-beer-event-in-dublin-june-6th/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/05/20/dojo-beer-event-in-dublin-june-6th/#comments</comments>
		<pubDate>Wed, 20 May 2009 20:50:35 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Ireland]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[dojo.beer()]]></category>
		<category><![CDATA[event]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=257</guid>
		<description><![CDATA[Announcing the dojo.beer event in Dublin on June 6th, in the Ginger Man on Fenian St.
dojo.beer events have been running all over the world for over a year now, where developers and users of the Dojo Ajax Toolkit meet up, usually with a presentation or two from Dojo committers, and always with lots of beer/wine/whiskey/Coke [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=257&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Announcing the<a href="http://www.chofter.com/?q=dojo.beer" target="_blank"> dojo.beer</a> event in Dublin on June 6th, in the <a href="http://www.dublinevents.com/dublin-bars/the-gingerman.php" target="_blank">Ginger Man</a> on Fenian St.</p>
<p>dojo.beer events have been <a href="http://www.flickr.com/photos/dylans/3399165278/" target="_blank">running</a> <a href="http://www.dojotoolkit.org/tags/dojo-beer" target="_blank">all</a> <a href="http://dojocampus.org/content/2009/04/22/dojobeer-amsterdam-munich/" target="_blank">over</a> <a href="http://www.dojotoolkit.org/2009/05/18/dojo-beer-tonight-may-18th-manchester-uk" target="_blank">the</a> <a href="http://www.flickr.com/photos/dylans/3444545276/" target="_blank">world</a> for over a year now, where developers and users of the <a href="http://www.dojotoolkit.org" target="_blank">Dojo Ajax Toolkit</a> meet up, usually with a presentation or two from Dojo committers, and always with lots of beer/wine/whiskey/Coke (for the designated driver) depending on the locale.</p>
<p>We&#8217;re very lucky to have <a href="http://www.sitepen.com/blog/author/Dylan/" target="_blank">Dylan Schiemann</a>,the co-founder of Dojo and CEO of <a href="http://www.sitepen.com" target="_blank">SitePen</a>, presenting on all things Dojo/Ajax/Web2.0.  I&#8217;ll also be doing a presentation on some of the cooler things you can do with Dojo, and I might even show you how to do them!</p>
<p>So, if you&#8217;re interested in the Dojo toolkit, or Ajax/Web 2.0 technologies in general, come along and knock back some beers with us.  The event details are:</p>
<p><strong>When</strong>: 5pm Saturday June 6th</p>
<p><strong>Where</strong>: Upstairs (private bar) in the Ginger Man pub on Fenian St. Click <a href="http://www.dublinevents.com/dublin-bars/the-gingerman.php" target="_blank">here</a> for a map.</p>
<p><strong>What</strong>: Two very interesting and informative presentations from Dylan Schiemann (Dojo co-founder) and Shane O&#8217;Sullivan (Dojo committer).  And beer.</p>
<p><strong>Duration</strong>: between 1 and 2 hours, but we&#8217;ll be hanging around for beers long after the official event is finished, so stay as long as you like!</p>
<p><strong>Cost</strong>: Free!  As with all things Open Source, the event is free entry, but you can buy me a pint if you like <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':-)' class='wp-smiley' /> .</p>
<p><strong>Contact</strong>: You can just turn up, or add yourself to the event on Facebook at <a href="http://www.facebook.com/event.php?eid=78088992918" target="_blank">http://www.facebook.com/event.php?eid=78088992918</a> . Or email me at shaneosullivan1 at gmail dot com</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=257&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/05/20/dojo-beer-event-in-dublin-june-6th/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>EasyCheckboxes: dojo.query and Greasemonkey</title>
		<link>http://shaneosullivan.wordpress.com/2009/05/02/easycheckboxes-dojoquery-and-greasemonkey/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/05/02/easycheckboxes-dojoquery-and-greasemonkey/#comments</comments>
		<pubDate>Sat, 02 May 2009 14:35:57 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[dojo.query]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=252</guid>
		<description><![CDATA[I&#8217;ve written a useful script for Firefox and Greasemonkey called EasyCheckboxes.  It makes it more convenient to work with multiple checkboxes on a page, enabling you to select, deselect or toggle groups of checkboxes. It will also work with all web pages.
See the video below for more info, or you can install it right now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=252&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve written a useful script for Firefox and Greasemonkey called <a href="http://chofter.com/apps/?n=easycheckboxes" target="_blank">EasyCheckboxes</a>.  It makes it more convenient to work with multiple checkboxes on a page, enabling you to select, deselect or toggle groups of checkboxes. It will also work with all web pages.</p>
<p>See the video below for more info, or you can install it right now by clicking <a href="http://userscripts.org/scripts/source/48011.user.js" target="_blank">here</a>, or by visiting the script homepage at <a href="http://chofter.com/apps/?n=easycheckboxes" target="_blank">http://chofter.com/apps/?n=easycheckboxes</a></p>
<p><span style="text-align:center; display: block;"><a href="http://shaneosullivan.wordpress.com/2009/05/02/easycheckboxes-dojoquery-and-greasemonkey/"><img src="http://img.youtube.com/vi/BNMT82l6Uls/2.jpg" alt="" /></a></span></p>
<p><strong>Context Aware Selections</strong></p>
<p>One of the most useful features of EasyCheckboxes is that it is context aware.  It figures out what checkboxes are related to the one you chose, and only changes the state of those. This is useful if you have multiple columns of checkboxes, and you only want to check all inputs in one column.</p>
<p>Of course you can also change the values of all checkboxes on the page.</p>
<p><strong>Using Dojo&#8217;s query engine, Acme, in Greasemonkey</strong></p>
<p>If you&#8217;re not interested in the techie details, you can stop reading now.</p>
<p>Since version 1.3 of the <a href="http://dojotoolkit.org" target="_blank">Dojo Ajax Toolkit</a>, it provides a standalone DOM query engine called Acme.  I compressed this down to a single line of code, and inserted it in my GreaseMonkey script.   I previously tried using the Sizzle query engine, but it had too many issues with Greasemonkey, the main being that it sometimes crashed the browser.</p>
<p>Using it is very simple.  Simply call:</p>
<p><em>acme.query(&#8221;.someClass&#8221;, unsafeWindow.document);</em></p>
<p>And it returns an array of the matching nodes.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/252/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=252&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/05/02/easycheckboxes-dojoquery-and-greasemonkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/BNMT82l6Uls/2.jpg" medium="image" />
	</item>
		<item>
		<title>Using dojo.query &amp; Greasemonkey to skip welcome screens</title>
		<link>http://shaneosullivan.wordpress.com/2009/05/02/using-dojoquery-greasemonkey-to-skip-welcome-screens/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/05/02/using-dojoquery-greasemonkey-to-skip-welcome-screens/#comments</comments>
		<pubDate>Sat, 02 May 2009 08:27:10 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[dojo.query]]></category>
		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=246</guid>
		<description><![CDATA[I posted a couple of weeks ago on how I used the Sizzle CSS selector engine in a Greasemonkey script to skip annoying &#8220;Welcome Screens&#8221;, see it here, or check out the very handy script here.  However, there were a couple of issues with using Sizzle:

It had to be inserted in the main page&#8217;s JavaScript [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=246&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I posted a couple of weeks ago on how I used the Sizzle CSS selector engine in a Greasemonkey script to skip annoying &#8220;Welcome Screens&#8221;, see it <a href="http://shaneosullivan.wordpress.com/2009/04/18/skip-welcome-screens-with-greasemonkey/" target="_blank">here</a>, or check out the very handy script <a href="http://userscripts.org/scripts/show/46987" target="_blank">here</a>.  However, there were a couple of issues with using Sizzle:</p>
<ul>
<li>It had to be inserted in the main page&#8217;s JavaScript context, otherwise it would not work.  This is obviously bad as it takes it out of the Greasemonkey sandbox, and potentially could break functionality on the page in question.</li>
<li>On some pages it crashed the browser.  Not good.</li>
</ul>
<p>So, I&#8217;ve replaced it with the Dojo standalone library, Acme.  Some advantages it has over Sizzle:</p>
<ul>
<li>It&#8217;s arguably faster</li>
<li>It doesn&#8217;t have to be put outside the Greasemonkey sandbox, so no interfering with the page code.</li>
<li>It doesn&#8217;t crash the browser <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>You can get the uncompressed version of Acme here &#8211; <a href="http://archive.dojotoolkit.org/nightly/checkout/dojo/_base/query.js" target="_blank">http://archive.dojotoolkit.org/nightly/checkout/dojo/_base/query.js</a></p>
<p>If you want a compressed version, that works independantly of Dojo, you can compress that file to a single line using the YUI compressor at <a href="http://www.refresh-sf.com/yui/" target="_blank">http://www.refresh-sf.com/yui/</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=246&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/05/02/using-dojoquery-greasemonkey-to-skip-welcome-screens/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Skip Welcome Screens With Greasemonkey</title>
		<link>http://shaneosullivan.wordpress.com/2009/04/18/skip-welcome-screens-with-greasemonkey/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/04/18/skip-welcome-screens-with-greasemonkey/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 17:31:24 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[sizzle]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=241</guid>
		<description><![CDATA[A feature of some websites that really annoys me are so called &#8220;Welcome Screens&#8221;, otherwise known as full page advertisements that you have to click through to see the real page. (e.g. Forbes.com).  This apparently annoys plenty of other people too, so I decided to write a simple GreaseMonkey script that will automatically get past [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=241&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A feature of some websites that really annoys me are so called &#8220;Welcome Screens&#8221;, otherwise known as full page advertisements that you have to click through to see the real page. (e.g. Forbes.com).  This apparently annoys <a href="http://www.networkworld.com/community/?q=node/14884" target="_blank">plenty of other people too</a>, so I decided to write a simple GreaseMonkey script that will automatically get past the majority of these pages.</p>
<p>It is called &#8220;SkipWelcomeScreen&#8221;, funnily enough, and you can install it on Firefox 3 from it&#8217;s homepage at <a href="http://chofter.com/apps/?n=skipwelcomescreen">http://chofter.com/apps/?n=skipwelcomescreen</a></p>
<p>If you&#8217;re not interested in technical details, you can stop reading now.</p>
<p><strong>Using Sizzle with Greasemonkey</strong></p>
<p>To very quickly search the page for anchor tags, I used John Resigs very cool standalone query selector engine, <a href="http://sizzlejs.com" target="_blank">Sizzle</a>.  However, it had to be modified very slightly to work in GreaseMonkey.</p>
<p>At the end of the Sizzle.js file, there is the line:</p>
<p><code>window.Sizzle = Sizzle;</code></p>
<p>which had to be changed to</p>
<p><code>unsafeWindow.Sizzle = Sizzle;</code></p>
<p>due to GreaseMonkey&#8217;s use of a sandbox.</p>
<p>Also, when calling Sizzle, it wasn&#8217;t possible to call it directly, like:</p>
<p><code>Sizzle("a");</code></p>
<p>instead it has to be called using the <em>unsafeWindow</em> parameter:</p>
<p><code>unsafeWindow.Sizzle("a")</code>;</p>
<p>Otherwise, it works perfectly, and is blisteringly fast.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/241/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/241/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/241/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=241&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/04/18/skip-welcome-screens-with-greasemonkey/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>SOS the Dojo Committer</title>
		<link>http://shaneosullivan.wordpress.com/2009/04/16/sos-the-dojo-committer/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/04/16/sos-the-dojo-committer/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 11:53:58 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=239</guid>
		<description><![CDATA[A quick note to say that yesterday Pete Higgins (Dojo Ajax toolkit lead) asked me to be a committer on the project, and I very happily accepted.
Not much will change really, I continue to own the components I&#8217;ve already committed to Dojo, such as the image widgets, calendar, numerous data stores etc.  However, it enables [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=239&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A quick note to say that yesterday <a href="http://higginsforpresident.net/" target="_blank">Pete Higgins</a> (<a href="http://dojotoolkit.org" target="_blank">Dojo Ajax toolkit</a> lead) asked me to be a committer on the project, and I very happily accepted.</p>
<p>Not much will change really, I continue to own the components I&#8217;ve already committed to Dojo, such as the image widgets, calendar, numerous data stores etc.  However, it enables me to participate in more of the conversations that drive the focus of the project, and should make the whole development process a bit smoother without me having to nag people continuously to check in my patches.</p>
<p>Congrats also to the other two new committers, Nicola Rizzo and the other whose name escapes me right now <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=239&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/04/16/sos-the-dojo-committer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Dojo TabContainer: beating the wrap</title>
		<link>http://shaneosullivan.wordpress.com/2009/04/04/dojo-tabcontainer-beating-the-wrap/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/04/04/dojo-tabcontainer-beating-the-wrap/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 18:02:31 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[dijit]]></category>
		<category><![CDATA[tab]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=233</guid>
		<description><![CDATA[One of the features of the Dojo Ajax Toolkit&#8217;s TabContainer that always bugged me was that, once there were too many tabs to fit horizontally in the widget, they&#8217;d wrap around, like you can see in the picture below.
It would have been far nicer for them to not wrap, and instead smoothly scroll, using either [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=233&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the features of the <a href="http://www.dojotoolkit.org" target="_blank">Dojo Ajax Toolkit</a>&#8217;s TabContainer that always bugged me was that, once there were too many tabs to fit horizontally in the widget, they&#8217;d wrap around, like you can see in the picture below.</p>
<div id="attachment_234" class="wp-caption alignnone" style="width: 421px"><img class="size-full wp-image-234" title="tabwrap" src="http://shaneosullivan.files.wordpress.com/2009/04/tabwrap.jpg?w=411&#038;h=247" alt="Wrapping Tabs" width="411" height="247" /><p class="wp-caption-text">Wrapping Tabs</p></div>
<p>It would have been far nicer for them to not wrap, and instead smoothly scroll, using either a menu to select them (like Firefox), or providing buttons to make the list of tabs slide right and left.</p>
<p>So, after much work, I&#8217;m just about finished upgrading the TabContainer with two new TabControllers:</p>
<ul>
<li>dijit.layout.TabController &#8211; the default widget, which places a single button to the right of the tabs, and shows a menu when you click it.  This is very similar to how many browsers deal with tabs.</li>
<li>dijit.layout.SlidingTabController &#8211; an optional widget, which places a button to left and right of the tabs, and slides the list left and right.</li>
</ul>
<p>The video below shows the two widgets in action.</p>
<p><span style="text-align:center; display: block;"><a href="http://shaneosullivan.wordpress.com/2009/04/04/dojo-tabcontainer-beating-the-wrap/"><img src="http://img.youtube.com/vi/Xk5MADqri6w/2.jpg" alt="" /></a></span></p>
<p>The upgrade is almost complete, and should hopefully make it into the upcoming 1.3.1 release of Dojo.</p>
<p><b>Update: the changes could not be put into 1.3.1, as that was only for bug fixes.  It will be in 1.4 instead&lt;/b</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=233&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/04/04/dojo-tabcontainer-beating-the-wrap/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://shaneosullivan.files.wordpress.com/2009/04/tabwrap.jpg" medium="image">
			<media:title type="html">tabwrap</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/Xk5MADqri6w/2.jpg" medium="image" />
	</item>
		<item>
		<title>Nice column move and resize effects added to Dojo Grid</title>
		<link>http://shaneosullivan.wordpress.com/2009/03/31/nice-column-move-and-resize-effects-added-to-dojo-grid/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/03/31/nice-column-move-and-resize-effects-added-to-dojo-grid/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 20:43:24 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=228</guid>
		<description><![CDATA[The Dojo Grid is a very cool widget, with many handy features.  However, one thing it definitely lacked was an attractive way of moving and resizing columns.  When resizing columns, the size of the header would change as you dragged it, and when the mouse button was let go, the column width would snap to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=228&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The <a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_data_grid.html" target="_blank">Dojo Grid</a> is a very cool widget, with many handy features.  However, one thing it definitely lacked was an attractive way of moving and resizing columns.  When resizing columns, the size of the header would change as you dragged it, and when the mouse button was let go, the column width would snap to the same size.  This gave the impression that the widget was slow, when it was not.</p>
<p>I submitted a patch a while ago (too late to make it into v1.3) to instead show a vertical line the same height as the grid which moves as you resize the column, with the header and body columns being resized at the same time.  This has been now been committed to the <a href="http://www.dojotoolkit.org" target="_blank">Dojo</a> source (and will be available in the Dojo nightly code drops from tonight, March 31st 2009).</p>
<p>When moving columns, it was difficult to tell where the new column would be placed, as there was not much in the way of indication.  The patch I submitted places an arrow above and below the point of insertion, making it easy to see where the column in going.</p>
<p>The video below shows these changes in the Tundra CSS theme, and you can see it in any of the Grid test files, e.g. <a href="http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_data_grid.html" target="_blank">http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/grid/tests/test_data_grid.html</a></p>
<p><span style="text-align:center; display: block;"><a href="http://shaneosullivan.wordpress.com/2009/03/31/nice-column-move-and-resize-effects-added-to-dojo-grid/"><img src="http://img.youtube.com/vi/HRmMqNs_Udw/2.jpg" alt="" /></a></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=228&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/03/31/nice-column-move-and-resize-effects-added-to-dojo-grid/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/HRmMqNs_Udw/2.jpg" medium="image" />
	</item>
		<item>
		<title>Cool Portlets in Dojo</title>
		<link>http://shaneosullivan.wordpress.com/2009/03/11/cool-portlets-in-dojo/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/03/11/cool-portlets-in-dojo/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 23:54:49 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[Date Picker]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[charting]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[dijit]]></category>
		<category><![CDATA[dojo.charting]]></category>
		<category><![CDATA[dojo.data]]></category>
		<category><![CDATA[dojox]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=223</guid>
		<description><![CDATA[I&#8217;ve been working on writing Portlets for the Dojo Ajax Toolkit for a while now, and they&#8217;re almost ready.
You can see a demo of it at http://www.skynet.ie/~sos/misc/dojo/dojox/widget/tests/test_PortletInGridContainer.html?theme=soria
A Portlet is similar to a dijit.TitlePane, in that it has a title bar, a content area, and is collapsible.  However, it should also have the option of being [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=223&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been working on writing <a href="http://en.wikipedia.org/wiki/Portlet" target="_blank">Portlets </a>for the <a href="http://dojotoolkit.org" target="_blank">Dojo Ajax Toolkit</a> for a while now, and they&#8217;re almost ready.</p>
<p>You can see a demo of it at <a href="http://www.skynet.ie/~sos/misc/dojo/dojox/widget/tests/test_PortletInGridContainer.html?theme=soria" target="_blank">http://www.skynet.ie/~sos/misc/dojo/dojox/widget/tests/test_PortletInGridContainer.html?theme=soria</a></p>
<p>A Portlet is similar to a dijit.TitlePane, in that it has a title bar, a content area, and is collapsible.  However, it should also have the option of being configurable, perhaps using a dialog box or an expandable area.  A nice example is the BBC website at <a href="http://bbc.co.uk" target="_blank">http://bbc.co.uk</a>, or the Google Portal <a href="http://www.google.com/ig" target="_blank">http://www.google.com/ig</a>.</p>
<p>Portlets are generally presented in a draggable grid, and a very cool new addition to Dojo is the dojox.layout.GridContainer, which provides this framework.</p>
<p>A number of types of Portlets and Setting widgets will be provided, hopefully in v1.4 (1.3 is in final beta, so this is too late for that).</p>
<ul>
<li>dojox.widget.Portlet &#8211; this is the basic Portlet, which provides a close button, a collapse button, and a settings button.  All of these are optional.</li>
<li>dojox.widget.FeedPortlet &#8211; this Portlet loads an external Atom or RSS feed and displays it as a list.  Hovering over an item shows a dijit.Tooltip with a summary of the news story.</li>
<li>dojox.widget.ExpandableFeedPortlet &#8211; similar to FeedPortlet, but instead of using tooltips, a toggle icon is used to show more or less of a news story.</li>
<li>dojox.widget.PortletSettings &#8211; a widget that can be placed inside a Portlet to provide customizable settings for that widget.</li>
<li>dojox.widget.PortletDialogSettings &#8211; like PortletSettings, but the configuration options are displayed in a dijit.Dialog.</li>
<li>dojox.widget.PortletFeedSettings &#8211; provides one or more URLs to Atom or RSS feeds for a FeedPortlet to load.</li>
</ul>
<p>These widgets offer pretty large set of functionality, which should be sufficient for the majority of peoples needs.  However, this is still in active development, and if you have any ideas for cool additions or changes I could make, please let me know.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=223&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/03/11/cool-portlets-in-dojo/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>IE8 solution to its performance problems?</title>
		<link>http://shaneosullivan.wordpress.com/2009/03/02/ie8-solution-to-its-performance-problems/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/03/02/ie8-solution-to-its-performance-problems/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 09:01:46 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Technical]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=219</guid>
		<description><![CDATA[
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=219&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/40000/3000/500/43539/43539.strip.gif" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=219&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/03/02/ie8-solution-to-its-performance-problems/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/40000/3000/500/43539/43539.strip.gif" medium="image" />
	</item>
		<item>
		<title>Big DaftMonkey update</title>
		<link>http://shaneosullivan.wordpress.com/2009/02/23/big-daftmonkey-update/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/02/23/big-daftmonkey-update/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 10:29:45 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[daftmonkey]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=215</guid>
		<description><![CDATA[I&#8217;ve added many new features to my Greasemonkey + Dojo script for Firefox and Daft.ie, including:

Price history tracking
Note taking for each property
Better UI
Filtering by agent

&#8230; and more.  See the video below for a rundown of its features.

Oh and yes, I&#8217;m still looking for a nice one bedroom apartment in Dublin &#8211; anybody know of one? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=215&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve added many new features to my <a href="http://shaneosullivan.wordpress.com/2009/01/26/dojo-greasemonkey-daftmonkey/" target="_blank">Greasemonkey + Dojo script</a> for Firefox and Daft.ie, including:</p>
<ul>
<li>Price history tracking</li>
<li>Note taking for each property</li>
<li>Better UI</li>
<li>Filtering by agent</li>
</ul>
<p>&#8230; and more.  See the video below for a rundown of its features.</p>
<p><span style="text-align:center; display: block;"><a href="http://shaneosullivan.wordpress.com/2009/02/23/big-daftmonkey-update/"><img src="http://img.youtube.com/vi/WPyFSMhV2Jk/2.jpg" alt="" /></a></span></p>
<p>Oh and yes, I&#8217;m still looking for a nice one bedroom apartment in Dublin &#8211; anybody know of one? <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=215&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/02/23/big-daftmonkey-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/WPyFSMhV2Jk/2.jpg" medium="image" />
	</item>
		<item>
		<title>Flex and its schizo ComboBox</title>
		<link>http://shaneosullivan.wordpress.com/2009/02/01/flex-and-its-schizo-combobox/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/02/01/flex-and-its-schizo-combobox/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 12:29:31 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=211</guid>
		<description><![CDATA[I&#8217;ve been working on Adobe Flex quite a lot recently (not by choice &#8211; those who keep my bank account from emptying told me to), and while some features are quite nice, the one thing that drove me absolutely crazy was the ComboBox.
It picks strangely arbitrary times to lose its value, changes the data that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=211&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been working on Adobe Flex quite a lot recently (not by choice &#8211; those who keep my bank account from emptying told me to), and while some features are quite nice, the one thing that drove me absolutely crazy was the ComboBox.</p>
<p>It picks strangely arbitrary times to lose its value, changes the data that it is bound to on a whim, and generally makes your application about as predictable as a ferret with rabies.</p>
<p>Of course we were able to fix many of the problems by sub classing and overriding many of the functions, but this should not be necessary.</p>
<p>Does anyone know of a good open source implementation of a Flex ComboBox?  If so, please Please PLEASE leave a comment pointing to it.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/211/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/211/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/211/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=211&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/02/01/flex-and-its-schizo-combobox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Dojo &amp; GreaseMonkey == DaftMonkey</title>
		<link>http://shaneosullivan.wordpress.com/2009/01/26/dojo-greasemonkey-daftmonkey/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/01/26/dojo-greasemonkey-daftmonkey/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 00:25:10 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[dojo.query]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=204</guid>
		<description><![CDATA[Given that I&#8217;m looking for a new apartment, and I live in Ireland, I use the property search website Daft.ie.  Everyone does.  However I wasn&#8217;t very happy with how slow it is to scan through the many results that match my meagre budget.  I realised that it could be readily fixed with GreaseMonkey, using the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=204&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Given that I&#8217;m looking for a new apartment, and I live in Ireland, I use the property search website Daft.ie.  Everyone does.  However I wasn&#8217;t very happy with how slow it is to scan through the many results that match my meagre budget.  I realised that it could be readily fixed with GreaseMonkey, using the Dojo Ajax Toolkit to make life easier when it comes to parsing the page, adding effects etc.</p>
<p>The result is <a href="http://www.chofter.com/apps?n=daftmonkey" target="_blank">DaftMonkey</a>.</p>
<p><span style="text-align:center; display: block;"><a href="http://shaneosullivan.wordpress.com/2009/01/26/dojo-greasemonkey-daftmonkey/"><img src="http://img.youtube.com/vi/WPyFSMhV2Jk/2.jpg" alt="" /></a></span></p>
<p>I wasn&#8217;t even sure if Dojo could be used from within a GreaseMonkey script, as it sandboxes away the custom script code.  However, with a little hackery it was (more or less) possible.  The steps I took were:</p>
<ol>
<li>Set up the <strong>djConfig</strong> parameter in the host window to tell Dojo that the page had already loaded, using <strong><span style="color:#ff0000;">unsafeWindow.djConfig = {afterOnLoad: true};</span>. </strong><strong>unsafeWindow</strong> is what GreaseMonkey calls the normal, non-sandboxed window.</li>
<li>Added the &lt;script&gt; tag for dojo.js to the head of the document.  In this case I used the dojo.js.file hosted on AOL&#8217;s CDN servers &#8211; see <a href="http://dev.aol.com/dojo" target="_blank">http://dev.aol.com/dojo</a> .</li>
<li>Now you have to wait for Dojo to load.  This can be done with a simple <strong>setInterval</strong> function call, checking if <strong>unsafeWindow.dojo</strong> exists or not.  (<strong>Update: thanks a comment from James, this has been changed to use the djConfig.addOnLoad function)</strong></li>
<li>Once Dojo is loaded, you can call a function kicking off whatever it is that you  script is supposed to do.  In this case, I wanted to add a bunch of DOM nodes to the page (which you can do without Dojo), and add some cool effects, so I also included the dojo.fx bundle.</li>
<li>Copy the <strong>dojo</strong> variable back into the sandbox window using <span style="color:#ff0000;"><strong>var dojo = unsafeWindow.dojo</strong></span>, otherwise you&#8217;ll have to refer to it as <strong>unsafeWindow.dojo</strong> all the time.</li>
</ol>
<p><strong>Screen Scraping With dojo.query</strong></p>
<p>A lot of the features of DaftMonkey rely on asynchronously fetching remote HTML pages and scraping the required data from them.  The approach I used for this was:</p>
<ol>
<li>Perform a remote request using GreaseMonkey&#8217;s native Ajax function <strong>GM_xmlhttpRequest</strong>.  This works more or less the same as <strong>dojo.xhrGet</strong>, and I saw no reason to not use it.</li>
<li>When the text is returned, create a DIV, and absolutely position it far to the left.  Fix it&#8217;s size to just one pixel so it doesn&#8217;t mess with the scroll bars.</li>
<li>Set the <strong>innerHTML </strong>of the DIV to the text you have retrieved.  Congratulations, you can now use <strong>dojo.query </strong>to find whatever nodes you need.  e.g. to find all images inside anchor tags, use <span style="color:#ff0000;"><strong>dojo.query(&#8221;a img&#8221;, tempDiv)</strong></span>.  Note the second parameter, this tells Dojo to only search inside the temporary DIV we created, and not the whole document.</li>
</ol>
<p>Some other site-specific things were required as part of the screen scraping process.  Many of the sites had <strong>iframe</strong>s included, and as soon as you add those to the temporary DIV, they start loading another page.  This was a nasty performance hit, so I had to remove them from the HTML string before setting the <strong>innerHTML </strong>of the temporary DIV.</p>
<p><strong>Problems</strong></p>
<p>One problem I found is that calling <strong>dojo.declare</strong> didn&#8217;t work from inside a GreaseMonkey script.  I don&#8217;t know why.  Therefore widgets had to be defined the old fashioned way.</p>
<p>A second problem was more related to the website I was writing the script for, Daft.ie.  The entire site is programmed using TABLES!  Seriously, there&#8217;s barely one or two DIVs on the page, with practically no CSS either.  This makes it quite difficult and brittle to screen scrape using <strong>dojo.query, </strong>as there&#8217;s really no classes to match.  Still it was possible, but could break relatively easily if the site layout is changed.</p>
<p><strong>Get the Source</strong></p>
<p>You can get the entire source for the script at <a href="http://userscripts.org/scripts/show/41105" target="_blank">http://userscripts.org/scripts/show/41105</a> .</p>
<p>To read a bit more about DaftMonkey, I&#8217;ve put up a page about it at <a href="http://www.chofter.com/apps?n=daftmonkey" target="_blank">http://www.chofter.com/apps?n=daftmonkey</a> .</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=204&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/01/26/dojo-greasemonkey-daftmonkey/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>

		<media:content url="http://img.youtube.com/vi/WPyFSMhV2Jk/2.jpg" medium="image" />
	</item>
		<item>
		<title>Broadband in Dublin: O2 Admits Defeat</title>
		<link>http://shaneosullivan.wordpress.com/2009/01/13/broadband-in-dublin-o2-admits-defeat/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/01/13/broadband-in-dublin-o2-admits-defeat/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 22:31:49 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ireland]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[broadband]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=201</guid>
		<description><![CDATA[I&#8217;ve been documenting my issues with broadband in Dublin (Ireland for the geographically challenged) on and off for a while &#8211; see here for previous rants.  I&#8217;ve been using mobile broadband from O2 for almost a year now, and have seen it get slower and slower as the year progressed.
Now they&#8217;ve officially told me to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=201&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been documenting my issues with broadband in <a href="http://maps.google.com/?ie=UTF8&amp;ll=53.345223,-6.267014&amp;spn=0.057287,0.181961&amp;z=13" target="_blank">Dublin</a> (Ireland for the geographically challenged) on and off for a while &#8211; see <a href="http://shaneosullivan.wordpress.com/category/broadband/" target="_blank">here </a>for previous rants.  I&#8217;ve been using mobile broadband from O2 for almost a year now, and have seen it get slower and slower as the year progressed.</p>
<p>Now they&#8217;ve officially told me to piss off and stop complaining about my pathetic speeds, as they have <strong>no intention of fixing the problem</strong>.</p>
<p>In November it started averaging about 5kB/s between 5pm and 10pm every weekday and Saturday mornings.  Yes, the same speed that I got back in &#8216;94 when I discovered the wonders of IRC channels and bulletin boards.  I reported this pathetic fact to O2, (see <a href="http://forums.o2online.ie/forums/showthread.php?p=18277#post18277" target="_blank">here</a>, <a href="http://forums.o2online.ie/forums/showthread.php?p=20902#post20902" target="_blank">here</a>, <a href="http://forums.o2online.ie/forums/showthread.php?p=20991#post20991" target="_blank">here</a>, and <a href="http://forums.o2online.ie/forums/showthread.php?p=29629#post29629" target="_blank">here</a> , ok so I bugged them..) and they replied that a mast in my area (a few minutes walk from the centre of the capital of our wonderful Knowledge Economy) was being upgraded in November and this would solve all my problems.</p>
<p>This being Ireland, it wasn&#8217;t upgraded until the end of December.  My speeds did indeed improve: they now average around 7kB/s.</p>
<p>Upon reporting this to O2, I was sent an email with this single line:</p>
<p><strong>You have been taken off contract, and can cancel your subscription at any time</strong></p>
<p>They simply admitted that if you live in the city centre, they either cannot or will not invest in sufficient infrastructure to overcome the contention issues.  So please piss off and annoy someone else with your talk of &#8220;getting what you pay for&#8221;.</p>
<p>O2 still continue to advertise the product as a 3 Megabit service.  I have never gotten this speed, and have not gotten over 1Mbit for 6 months.  I am sure something in there is illegal&#8230;. any ideas?</p>
<p>P.S.  I&#8217;ll of course be cancelling my contract with them very soon.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/201/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/201/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/201/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=201&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/01/13/broadband-in-dublin-o2-admits-defeat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Deleting DOM nodes with Dojo</title>
		<link>http://shaneosullivan.wordpress.com/2009/01/02/deleting-dom-nodes-with-dojo/</link>
		<comments>http://shaneosullivan.wordpress.com/2009/01/02/deleting-dom-nodes-with-dojo/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 16:47:22 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[dojo.query]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=196</guid>
		<description><![CDATA[This is a quick and simple tip for deleting multiple DOM nodes in JavaScript using the Dojo Ajax Toolkit.
A common pattern in non-trivial Ajax applications is the need to delete many nodes that may or may not have been created.  The code to do this without Dojo (or a similar library such as jQuery) would [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=196&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is a quick and simple tip for deleting multiple <a href="http://en.wikipedia.org/wiki/Document_Object_Model" target="_blank">DOM</a> nodes in JavaScript using the <a href="http://www.dojotoolkit.org" target="_blank">Dojo Ajax Toolkit</a>.</p>
<p>A common pattern in non-trivial Ajax applications is the need to delete many nodes that may or may not have been created.  The code to do this without Dojo (or a similar library such as jQuery) would look something like the following code (assuming nodes are identified by ID):</p>
<p><code>var nodeIDs = ["node1", "node2", "node3"];<br />
for (var i = 0; i &lt; nodeIDs.length; i++) {<br />
&nbsp;var node = document.getElementById(nodeIDs[i]);<br />
&nbsp;// Verify that the node actually exists, otherwise an error occurs<br />
&nbsp;if (node) {<br />
&nbsp;&nbsp;node.parentNode.removeChild(node);<br />
&nbsp;}<br />
}</code></p>
<p>This is of course a bit messy.   It would be infinitely messier if you needed to match nodes not by ID, but by another method such as by class name, relative position to it&#8217;s parent or sibiling nodes etc.</p>
<p>To achieve the same in Dojo, use this simple code.</p>
<p><code>var nodeIDs = ["#node1", "#node2", "#node3"];<br />
dojo.query(nodeIDs.join(",")).orphan();</code></p>
<p><strong>Update: There is a bug in Dojo that means that if the node with ID &#8220;node2&#8243; does not exist, &#8220;node3&#8243; will not be deleted.  (Thanks to Pete Higgins for letting me know). Instead use the following code:</strong><br />
<code><span style="color:#ff0000;">dojo.forEach(arr, "dojo.query(item).orphan();");</span></code></p>
<p>Very simple, and much smaller and cleaner than the previous example.  It also scales very well to match nodes using <a href="http://www.w3.org/TR/CSS2/selector.html" target="_blank">CSS selectors</a>, not just by ID.  For example, to delete nodes both by ID and class name, use the following code.</p>
<p><code>var nodeIDs = ["#node1", "#node2", ".className1", ".parentClass .childClass"];<br />
dojo.query(nodeIDs.join(",")).orphan();</code></p>
<p><strong>Update: as with the first example, replace the second line with:</strong><br />
<code><span style="color:#ff0000;">dojo.forEach(arr, "dojo.query(item).orphan();");</span></code></p>
<p>For more info on the cool features of <strong>dojo.query</strong>, see the docs at <a href="http://docs.dojocampus.org/dojo/query" target="_blank">http://docs.dojocampus.org/dojo/query</a> .</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/196/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/196/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/196/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=196&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2009/01/02/deleting-dom-nodes-with-dojo/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Nasty style bug in Dojo&#8217;s Nihilo Button css</title>
		<link>http://shaneosullivan.wordpress.com/2008/12/23/nasty-style-bug-in-dojos-nihilo-button-css/</link>
		<comments>http://shaneosullivan.wordpress.com/2008/12/23/nasty-style-bug-in-dojos-nihilo-button-css/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 23:44:48 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Dojo]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=190</guid>
		<description><![CDATA[For anyone using Dojo  v1.2.3 and the Nihilo theme, you may have noticed that performing a build with it breaks your styles.  After much tracking down, it turns out that there is abug in Nihilo&#8217;s Button.css.
On line 80, there is an extra curly brace
.nihilo .dijitComboBoxActive .dijitDownArrowButton {
which should be
.nihilo .dijitComboBoxActive .dijitDownArrowButton,
I&#8217;ve submitted a bug [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=190&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For anyone using <a href="http://www.dojotoolkit.org" target="_blank">Dojo </a> v1.2.3 and the Nihilo theme, you may have noticed that performing a build with it breaks your styles.  After much tracking down, it turns out that there is abug in Nihilo&#8217;s Button.css.</p>
<p>On line 80, there is an extra curly brace</p>
<p><strong>.nihilo .dijitComboBoxActive .dijitDownArrowButton <span style="color:#ff0000;">{</span></strong></p>
<p>which should be</p>
<p><strong>.nihilo .dijitComboBoxActive .dijitDownArrowButton<span style="color:#ff0000;">,</span></strong></p>
<p>I&#8217;ve submitted a bug at <a href="http://bugs.dojotoolkit.org/ticket/8311" target="_blank">http://bugs.dojotoolkit.org/ticket/8311</a>, which should be in v1.3.  However, if you need a fix before that (as Nihilo is pretty unusable without it) just change that one line and you&#8217;re back in business.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=190&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2008/12/23/nasty-style-bug-in-dojos-nihilo-button-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
		<item>
		<title>Displaying a &#8216;JavaScript is Required&#8217; message</title>
		<link>http://shaneosullivan.wordpress.com/2008/12/21/displaying-a-javascript-is-required-message/</link>
		<comments>http://shaneosullivan.wordpress.com/2008/12/21/displaying-a-javascript-is-required-message/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 14:49:25 +0000</pubDate>
		<dc:creator>Shane O'Sullivan</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://shaneosullivan.wordpress.com/?p=182</guid>
		<description><![CDATA[A quick tip on a very simple pattern that can be used to tell a user who has JavaScript disabled that they have to turn it on.  Place the message you want to show between two script blocks that simply write a div around the message, setting it&#8217;s display to &#8216;none&#8217;.  If JavaScript is enabled, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=182&subd=shaneosullivan&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A quick tip on a very simple pattern that can be used to tell a user who has JavaScript disabled that they have to turn it on.  Place the message you want to show between two script blocks that simply write a div around the message, setting it&#8217;s display to &#8216;none&#8217;.  If JavaScript is enabled, the user will never see this message.  If it is disabled, they will see it.</p>
<p>The main advantage of this approach is that there is no flicker waiting for the page to load before the message is hidden.  See the example blow.</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;document.write(&#8217;&lt;div style=&#8221;display:none&#8221;&gt;&#8217;);&lt;/script&gt;<br />
You must enable JavaScript to use this site<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;document.write(&#8221;&lt;/div&gt;&#8221;);&lt;/script&gt;</p>
<p>Update: As pointed out in the comment thread, this is the same as &lt;noscript&gt; really, but no harm in having one more pattern out there</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/shaneosullivan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/shaneosullivan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/shaneosullivan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/shaneosullivan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/shaneosullivan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/shaneosullivan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/shaneosullivan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/shaneosullivan.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/shaneosullivan.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/shaneosullivan.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=shaneosullivan.wordpress.com&blog=258432&post=182&subd=shaneosullivan&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://shaneosullivan.wordpress.com/2008/12/21/displaying-a-javascript-is-required-message/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/abaeb4f7149a11600f472c23652ae7db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">shaneosullivan</media:title>
		</media:content>
	</item>
	</channel>
</rss>