<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DEfusion.org.uk &#187; OOP</title>
	<atom:link href="http://www.defusion.org.uk/archives/category/web-development/oop/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.defusion.org.uk</link>
	<description>I too will force my opinions on you</description>
	<lastBuildDate>Mon, 04 Jul 2011 19:28:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How I Increased My Ruby on Rails Productivity on Windows</title>
		<link>http://www.defusion.org.uk/archives/2008/02/20/how-i-increased-my-ruby-on-rails-productivity-on-windows/</link>
		<comments>http://www.defusion.org.uk/archives/2008/02/20/how-i-increased-my-ruby-on-rails-productivity-on-windows/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 20:53:15 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[OOP]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2008/02/20/how-i-increased-my-ruby-on-rails-productivity-on-windows/</guid>
		<description><![CDATA[A couple of weekends ago I was about to begin a large amount of re-factoring of our Ruby on Rails app (more on that to follow) to move it from a functional wireframe of the app to the final polished first version that users can use without cursing us. However I&#8217;d knocked together the wireframe [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image109" class="featureImg" src="http://www.defusion.org.uk/wp-content/uploads/2008/02/ubuntu_cola_thumb.jpg" alt="Ubuntu Cola, the way to increase RoR productivity on Windows?" />A couple of weekends ago I was about to begin a large amount of re-factoring of our Ruby on Rails app (more on that to follow) to move it from a functional wireframe of the app to the final polished first version that users can use without cursing us. However I&#8217;d knocked together the wireframe version fairly quickly and had not taken time out to put down some decent test coverage, yes I know, and doing the amount of re-factoring I was planning without having any tests to verify that I haven&#8217;t broken anything isn&#8217;t a good idea.</p>
<p>So I undertook to get our test coverage up to scratch, I got <a href="http://www.zenspider.com/ZSS/Products/ZenTest/">ZenTest</a> to ensure that the tests get run for every saved modification, which is a great help during development. But this exposed me to something which I had already started to notice but which hadn&#8217;t become a real issue yet, <em>Ruby on Windows is slower than a 1-legged dog down the dog track</em>. ZenTest was taking 20 seconds or more to even notice a file had changed and then took even longer to begin the test. Combined with Ruby using 100% CPU most of the time this really dented my productivity and I had to do something. Luckily all that spare time I had while I was waiting for the tests to run every time I pressed save meant I could look into resolving the problem.<br />
<span id="more-157"></span><br />
After investigating the problem further it seemed like there was some issue with the startup phase of Ruby, as it took ages to get things like Webrick, mongrel, IRB, Rake tasks etc. started but once they were running everything was fine and dandy.</p>
<p>I came across a few solutions but I opted for <a href="http://blog.rayngwf.com/2008/01/getting-almost-all-ruby-gems-and-c.html">this solution</a> using <a href="http://www.andlinux.org/">andLinux</a> &#8212; which is a install of Ubuntu Linux for running within Windows, think <acronym title="Virtual Machine">VM</acronym> but without the hassle of setting up a <acronym title="Virtual Machine">VM</acronym>, or think Cygwin but more powerful (you can do apt-get to get any Ubuntu package quickly etc.). That tutorial helped me to setup andLinux and my Ruby &amp; Rails environment in under an hour.</p>
<p>Suddenly it was all blazingly fast and <strong>I was happy developing again</strong>.</p>
<p>I then looked to my IDE, I had been using <a href="http://www.aptana.com/">RadRails</a> for <a href="http://www.eclipse.org">eclipse</a> but no longer needed many of it&#8217;s features I was using and I had noticed that while editing Rails stuff it would start off Ruby (apparently randomly &#8212; well I couldn&#8217;t figure out the connection between what I was doing and when Ruby would start) which as I say uses 100% of my CPU in Windows. </p>
<p>I wanted something lighter, I wanted something cleaner and I wanted all the cool snippets that <a href="http://macromates.com/">TextMate</a> gives you when developing Ruby/Rails (or pretty much anything) on OS X. Luckily I found exactly what I (and lots of other people) want in <a href="http://www.e-texteditor.com/">TextMate for Windows &#8211; in the guise of &quot;e&quot;</a>, which is a fantastic name for launching it via <a href="http://www.launchy.net/">Launchy</a>. </p>
<p>A quick install of <a href="http://www.e-texteditor.com/">e</a> and a play around with the themes to make it easier on the eye and I was in editor heaven (or as close as I&#8217;ve got so far on Windows).</p>
<p>Finally I then found that I had lots of PuTTY windows open to my andLinux install (one for mongrel, one for Zentest, one for log tailing &amp; another for bash), finding which window was which became annoying &#8212; within about 2 minutes. So looking for a tabbed UI for PuTTY I came across two, <a href="http://www.raisin.de/putty-tabs/putty-tabs.html">PuTTY Tabs</a> and <a href="http://puttycm.free.fr/">PuTTY Connection Manager</a>. I tried them both out but it instantly became clear that <a href="http://puttycm.free.fr/">PuTTY Connection Manager</a> was the better of the two for my needs (the fact that it wraps all your PuTTY windows into one with tabs was the main winner). Now I have (at least) four tabs open in PuTTY Connection Manager and rename them all to suit (e.g. [mongrel],[zentest] etc.) making it much, much easier for me to manage.</p>
<p>So the <strong>short-list</strong> of things that increased my Ruby on Rails productivity in Windows is as follows:</p>
<ul>
<li><a href="http://www.andlinux.org/">A Linux install</a> :) to run Ruby on</li>
<li><a href="http://www.zenspider.com/ZSS/Products/ZenTest/">ZenTest</a> autotest, I couldn&#8217;t live without it anymore</li>
<li><a href="http://www.e-texteditor.com/">e</a></li>
<li><a href="http://puttycm.free.fr/">PuTTY Connection Manager</a></li>
<li><a href="http://www.launchy.net>Launchy</a> which I had before but really does increase productivity.</li>
<li><a hfer="http://www.otakusoftware.com/topdesk/">TopDesk</a> which I&#8217;ve also had for quite a while, but still very useful.</li>
</ul>
<p>I guess the moral of this story is if you want to develop with Ruby on Windows use Linux. I am planning on a move to Ubuntu at some point, but really don&#8217;t have the time to start from scratch with my system right now.</p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2008/02/20/how-i-increased-my-ruby-on-rails-productivity-on-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Link: Flex Creating Custom Components</title>
		<link>http://www.defusion.org.uk/archives/2007/11/25/quick-link-flex-creating-custom-components/</link>
		<comments>http://www.defusion.org.uk/archives/2007/11/25/quick-link-flex-creating-custom-components/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 13:31:23 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2007/11/25/quick-link-flex-creating-custom-components/</guid>
		<description><![CDATA[A couple of weeks ago I was looking for some more examples of using the measure()  method in one of my custom Flex components and I found this series of excellent tutorials of how to create a custom component by Peter Ent:

Component Class &#8211; Part One
Component Class &#8211; Part Two
Component Class &#8211; Part Three
Component [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I was looking for some <a href="http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&#038;file=ascomponents_advanced_148_13.html">more</a> examples of using the <a href="http://livedocs.macromedia.com/flex/201/langref/mx/core/UIComponent.html#measure()"><span class="code">measure()</span></a>  method in one of my custom Flex components and I found this series of excellent tutorials of how to create a custom component by <a href="http://weblogs.macromedia.com/pent/">Peter Ent</a>:</p>
<ul>
<li><a href="http://weblogs.macromedia.com/pent/archives/2007/10/component_class.cfm">Component Class &#8211; Part One</a></li>
<li><a href="http://weblogs.macromedia.com/pent/archives/2007/10/component_class_1.cfm">Component Class &#8211; Part Two</a></li>
<li><a href="http://weblogs.macromedia.com/pent/archives/2007/10/component_class_2.cfm">Component Class &#8211; Part Three</a></li>
<li><a href="http://weblogs.macromedia.com/pent/archives/2007/10/component_class_3.cfm">Component Class &#8211; Part Four</a></li>
<li><a href="http://weblogs.macromedia.com/pent/archives/2007/12/component_class_4.cfm">Component Class &#8211; Part Five(Skins vs Styles)</a>
</ul>
<p><span id="more-152"></span><br />
This series takes you through creating a custom component in Flex with actionscript and he takes you through all the possible options (from extending an existing component from the Flex framework to starting with a clean slate by extending the <a href="http://livedocs.macromedia.com/flex/201/langref/mx/core/UIComponent.html><span class="code">UIComponent</span></a>.)</p>
<p>As I&#8217;m still fairly new to Flex reading this exposed some new areas of Flex components to me, such as the <a href="http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&#038;file=ascomponents_advanced_148_12.html"><span class="code">commitProperties()</span></a> and <a href="http://livedocs.adobe.com/flex/201/langref/mx/core/UIComponent.html#invalidateProperties()"><span class="code">invalidateProperties()</span></a> methods and also gave me more insight into the <a href="http://livedocs.adobe.com/flex/201/langref/mx/core/UIComponent.html#updateDisplayList()"><span class="code">updateDisplayList()</span></a> method. </p>
<p>This weekend I have been getting dirty at a low level with Flex creating some really customised components (and my first programmatic skins &#8211; which are really great to use once you get one under your belt) for a personal project and if I hadn&#8217;t have read this series it wouldn&#8217;t have half as easy as it has been. </p>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2007/11/25/quick-link-flex-creating-custom-components/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Object Instantiation in Coldfusion</title>
		<link>http://www.defusion.org.uk/archives/2006/12/12/object-instantiation-in-coldfusion/</link>
		<comments>http://www.defusion.org.uk/archives/2006/12/12/object-instantiation-in-coldfusion/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 22:22:35 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2006/12/12/object-instantiation-in-coldfusion/</guid>
		<description><![CDATA[As I have mentioned before, or as anyone who practices OO in Coldfusion will know, that object instantiation in Coldfusion has quite a bit of overhead.
I&#8217;ve seen a few thoughts about how to best work around this, such as the above post on Java vs CFC instantiation by Mark Drew and the ideas presented by [...]]]></description>
			<content:encoded><![CDATA[<p>As I have <a href="/archives/2006/08/23/oh-oh-coldfusion-daos-gateways-beans/">mentioned before</a>, or as anyone who practices OO in Coldfusion will know, that object instantiation in Coldfusion has <a href="http://www.markdrew.co.uk/blog/index.cfm/2006/11/30/Java-and-CFC-instantiation-comparing-the-engines">quite a bit of overhead</a>.</p>
<p>I&#8217;ve seen a few thoughts about how to best work around this, such as the <a href="http://www.markdrew.co.uk/blog/index.cfm/2006/11/30/Java-and-CFC-instantiation-comparing-the-engines">above post on Java vs CFC instantiation</a> by <a href="http://www.markdrew.co.uk/">Mark Drew</a> and the ideas presented by <a href="http://www.pbell.com/">Peter Bell</a> with regards to <a href="http://www.pbell.com/index.cfm/2006/7/15/Real-World-Benefits-of-Iterating-Business-Objects-over-Recordset">iterating business objects</a> which I&#8217;ve <a href="/archives/2006/08/23/oh-oh-coldfusion-daos-gateways-beans/">mentioned before</a>.<br />
<span id="more-97"></span><br />
But to be honest I&#8217;ve not explored either of these in any great detail, although I really wish I could devote some time to looking at them.</p>
<p>Another, and easier and more instant, solution appears to have been suggested by Brandon over at <a href="http://devnulled.com/">devnulled</a> in his post on <a href="http://devnulled.com/content/2006/12/under-the-hood-how-the-coldfusion-compiler-works/">how the Coldfusion compiler works</a> in the following aside:</p>
<blockquote cite="http://devnulled.com/content/2006/12/under-the-hood-how-the-coldfusion-compiler-works/"><p>
A related thing to note that he doesnâ€™t cover is how much faster it is to instantiate objects in cfscript rather than CFML on a percentage basis. Just some food for thought. I can do a follow-up post on this in particular topic if anyone is interested.
</p></blockquote>
<p>Of course we&#8217;re interested in a follow up post. After reading this I spent a few minutes testing this out with a few different CFCs from our model; beans, gateways etc. </p>
<p>I was only looking at the average time of instantiation in either 100 and 1000 iterations and although I did see a tiny improvement in the average time in cfscript I won&#8217;t be going out and rewriting all the code that uses cfset to instantiate CFCs just yet.</p>
<p>I&#8217;m hoping that Brandon has some hidden trick or information up his sleeve and I&#8217;m dying to read a post on it (and I&#8217;d say as much in the comments on this post if it would let me, every time I try it doesn&#8217;t get added to the post) and find out there really is a marked difference between the two.</p>
<p>Personally I find it easier to read <a href="http://en.wikipedia.org/wiki/ECMAScript">ECMAScript</a> syntax rather than the tags in Coldfusion, so I use it wherever I can already. But if there is a speed benefit for using cfscript when instantiating CFCs then I can use that as leverage to get the rest of the team at work to start to use cfscript wherever possible. Which would be nice.</p>
<p><strong>Update:</strong> I&#8217;ve just found <a href="http://www.nomachetejuggling.com/2006/12/07/coldfusions-compiler/">a post on the Coldfusion compiler</a> over at <a href="http://www.nomachetejuggling.com/">Absolutely No Machete Juggling</a> that goes into detail about exploring the differences between the resultant compiled Coldfusion code in a simple test (not related to CFC instantiation). The important notes that may apply to CFC instantiation appear towards the bottom of the post:</p>
<blockquote><p>
So there you have it, the SetVariable implementation is slow&#8230;</p>
<p>CFScript [when compiled]  doesnâ€™t use SetVariable, so if youâ€™re doing heavy loop code like this, Iâ€™d recommend writing it using CFScript rather than CFML.
</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2006/12/12/object-instantiation-in-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add MooTools to the List</title>
		<link>http://www.defusion.org.uk/archives/2006/09/17/add-mootools-to-the-list/</link>
		<comments>http://www.defusion.org.uk/archives/2006/09/17/add-mootools-to-the-list/#comments</comments>
		<pubDate>Sun, 17 Sep 2006 20:44:52 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Outer Monologue]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.defusion.org.uk/archives/2006/09/17/add-mootools-to-the-list/</guid>
		<description><![CDATA[The list I'm referring to is that of fantastic JavaScript frameworks. My list now includes Prototype (and the fact that I didn't need to look up the URL just shows how many times I've recommended Prototoype), Dojo Toolkit, script.aculo.us and now MooTools.
I've not had the time to play around with MooTools yet, but simply looking [...]]]></description>
			<content:encoded><![CDATA[<p>The list I'm referring to is that of fantastic JavaScript frameworks. My list now includes <a href="http://prototype.conio.net/">Prototype</a> (and the fact that I didn't need to look up the <acronym title="Uniform Resource Locator">URL</acronym> just shows how many times <a href="http://www.defusion.org.uk/archives/2005/11/30/prototype-javascript-framework-documentation/">I've recommended</a> Prototoype), <a href="http://www.dojotoolkit.org/">Dojo Toolkit</a>, <a href="http://script.aculo.us/">script.aculo.us</a> and now <a href="http://mootools.net/">MooTools</a>.</p>
<p>I've not had the time to play around with MooTools yet, but simply looking at the <a href="http://mootools.net/help">help page</a> you can't deny that it looks sweet.<br />
<span id="more-76"></span><br />
&quot;OK&quot; you may say to yourself, &quot;it doesn't look like there is anything too new in there&quot;. Well even if it were just the really nice syntax changes, such as when extending classes:</p>
<div class="igBar"><span id="ljavascript-3"><a href="#" onclick="javascript:showPlainTxt('javascript-3'); return false;">Display code as plain text</a></span></div>
<div class="syntax_hilite"><span class="langName">JavaScript:</span>
<div id="javascript-3">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> Mammal = Animal.<span style="color: #006600;">extend</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; initialize: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; ...</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Which is a lot more intuitive and concise than the current method offered in Prototype:</p>
<div class="igBar"><span id="ljavascript-4"><a href="#" onclick="javascript:showPlainTxt('javascript-4'); return false;">Display code as plain text</a></span></div>
<div class="syntax_hilite"><span class="langName">JavaScript:</span>
<div id="javascript-4">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> Mammal = <span style="color: #003366; font-weight: bold;">Class</span>.<span style="color: #006600;">create</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Object.<span style="color: #006600;">extend</span><span style="color: #66cc66;">&#40;</span>Object.<span style="color: #006600;">extend</span><span style="color: #66cc66;">&#40;</span>Mammal.<span style="color: #006600;">prototype</span>, Animal.<span style="color: #006600;">prototype</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; initialize: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; ...</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>I'd be happy to recommend MooTools on those improvements alone, intuitive and concise is always the best combination when it comes to programming languages as far as I'm concerned, but there is much more:</p>
<ul>
<li>OO inheritance, allowing you to call methods on the parent object when extending objects.</li>
<li>Using the $ function to extend elements with the Element methods.</li>
<li>Defining custom methods on elements.</li>
<li>Powerful yet simple effects.</li>
<li>The full release (when the compressed option is chosen) is around 20kb, consider that the latest version of Prototype alone is 53kb and when compressed (with the fabulous <a href="http://dojotoolkit.org/docs/compressor_system.html">Dojo Rhino compressor</a>) is still 36kb. To work around the large size of Prorotype &amp; script.aculo.us combined I've had to break Prototype up into its component parts and then use a custom manager for managing script requirements (I plan to post about this in future once I've worked up a couple of examples); I mean who uses all the functionality Prototype offers at the same time?</li>
</ul>
<p>Another of the potentially great things about the MooTools library is the FX themselves, I'm aware that <a href="http://moofx.mad4milk.net/">Moo.fx</a> has been around for a while, but the really great thing about Moo and is that it doesn't seem to try and do all the work for you. If you've ever taken a look at using the script.aculo.us dragables or sortables for anything that slightly differs from the test cases or examples you'll soon come a bit of a cropper, <a href="http://www.snook.ca/">Johnathan Snook</a> gives a good example of the simplicity and flexibility of the MooTools way of doing things in his post exploring <a href="http://www.snook.ca/archives/javascript/mootools_drag_a/">drag and drop with MooTools</a>.</p>
<p>I'm sure I'll have more to post about MooTools in the near future as I'm planning to use it as my primary JavaScript framework for my next large project, so we'll see if it lives up to expectations. For now I'll just share a few links that I've found informative so far:</p>
<ul>
<li><a href="http://mootools.net/help">The MooTools help page</a></li>
<li><a href="http://www.coryhudson.com/blog/2006/09/14/useful-utility-functions-in-mootools/">Useful Utility Functions in mootools</a></li>
<li><a href="http://www.coryhudson.com/blog/2006/09/12/extending-objects-and-classes-with-mootools/">Extending Objects and Classes with mootools</a></li>
<li><a href="http://www.snook.ca/archives/javascript/mootools_drag_a/">drag and drop with MooTools</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.defusion.org.uk/archives/2006/09/17/add-mootools-to-the-list/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

